From 264521c900803a53c99d4552b255aecbf797687a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=99=93=E5=87=A1?= <154408238@qq.com> Date: Tue, 15 Aug 2023 11:48:24 +0800 Subject: [PATCH] =?UTF-8?q?cesium=20=E5=BC=95=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 6 +- package.json | 9 +- .../Assets/IAU2006_XYS/IAU2006_XYS_0.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_1.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_10.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_11.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_12.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_13.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_14.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_15.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_16.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_17.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_18.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_19.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_2.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_20.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_21.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_22.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_23.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_24.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_25.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_26.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_27.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_3.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_4.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_5.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_6.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_7.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_8.json | 1 + .../Assets/IAU2006_XYS/IAU2006_XYS_9.json | 1 + .../Cesium/Assets/Images/bing_maps_credit.png | Bin 0 -> 18831 bytes .../Cesium/Assets/Images/cesium_credit.png | Bin 0 -> 4242 bytes .../Assets/Images/google_earth_credit.png | Bin 0 -> 7703 bytes .../Cesium/Assets/Images/ion-credit.png | Bin 0 -> 6028 bytes .../Assets/Textures/LensFlare/DirtMask.jpg | Bin 0 -> 113718 bytes .../Assets/Textures/LensFlare/StarBurst.jpg | Bin 0 -> 195728 bytes .../Assets/Textures/NaturalEarthII/0/0/0.jpg | Bin 0 -> 12067 bytes .../Assets/Textures/NaturalEarthII/0/1/0.jpg | Bin 0 -> 14055 bytes .../Assets/Textures/NaturalEarthII/1/0/0.jpg | Bin 0 -> 7278 bytes .../Assets/Textures/NaturalEarthII/1/0/1.jpg | Bin 0 -> 11399 bytes .../Assets/Textures/NaturalEarthII/1/1/0.jpg | Bin 0 -> 10652 bytes .../Assets/Textures/NaturalEarthII/1/1/1.jpg | Bin 0 -> 13142 bytes .../Assets/Textures/NaturalEarthII/1/2/0.jpg | Bin 0 -> 9643 bytes .../Assets/Textures/NaturalEarthII/1/2/1.jpg | Bin 0 -> 15312 bytes .../Assets/Textures/NaturalEarthII/1/3/0.jpg | Bin 0 -> 10532 bytes .../Assets/Textures/NaturalEarthII/1/3/1.jpg | Bin 0 -> 13262 bytes .../Assets/Textures/NaturalEarthII/2/0/0.jpg | Bin 0 -> 8157 bytes .../Assets/Textures/NaturalEarthII/2/0/1.jpg | Bin 0 -> 9307 bytes .../Assets/Textures/NaturalEarthII/2/0/2.jpg | Bin 0 -> 7891 bytes .../Assets/Textures/NaturalEarthII/2/0/3.jpg | Bin 0 -> 10341 bytes .../Assets/Textures/NaturalEarthII/2/1/0.jpg | Bin 0 -> 7852 bytes .../Assets/Textures/NaturalEarthII/2/1/1.jpg | Bin 0 -> 6850 bytes .../Assets/Textures/NaturalEarthII/2/1/2.jpg | Bin 0 -> 11581 bytes .../Assets/Textures/NaturalEarthII/2/1/3.jpg | Bin 0 -> 15862 bytes .../Assets/Textures/NaturalEarthII/2/2/0.jpg | Bin 0 -> 10657 bytes .../Assets/Textures/NaturalEarthII/2/2/1.jpg | Bin 0 -> 12456 bytes .../Assets/Textures/NaturalEarthII/2/2/2.jpg | Bin 0 -> 12262 bytes .../Assets/Textures/NaturalEarthII/2/2/3.jpg | Bin 0 -> 14940 bytes .../Assets/Textures/NaturalEarthII/2/3/0.jpg | Bin 0 -> 9531 bytes .../Assets/Textures/NaturalEarthII/2/3/1.jpg | Bin 0 -> 10234 bytes .../Assets/Textures/NaturalEarthII/2/3/2.jpg | Bin 0 -> 11678 bytes .../Assets/Textures/NaturalEarthII/2/3/3.jpg | Bin 0 -> 10754 bytes .../Assets/Textures/NaturalEarthII/2/4/0.jpg | Bin 0 -> 8474 bytes .../Assets/Textures/NaturalEarthII/2/4/1.jpg | Bin 0 -> 12265 bytes .../Assets/Textures/NaturalEarthII/2/4/2.jpg | Bin 0 -> 16477 bytes .../Assets/Textures/NaturalEarthII/2/4/3.jpg | Bin 0 -> 11888 bytes .../Assets/Textures/NaturalEarthII/2/5/0.jpg | Bin 0 -> 7540 bytes .../Assets/Textures/NaturalEarthII/2/5/1.jpg | Bin 0 -> 10274 bytes .../Assets/Textures/NaturalEarthII/2/5/2.jpg | Bin 0 -> 16112 bytes .../Assets/Textures/NaturalEarthII/2/5/3.jpg | Bin 0 -> 11877 bytes .../Assets/Textures/NaturalEarthII/2/6/0.jpg | Bin 0 -> 6636 bytes .../Assets/Textures/NaturalEarthII/2/6/1.jpg | Bin 0 -> 11564 bytes .../Assets/Textures/NaturalEarthII/2/6/2.jpg | Bin 0 -> 16411 bytes .../Assets/Textures/NaturalEarthII/2/6/3.jpg | Bin 0 -> 12756 bytes .../Assets/Textures/NaturalEarthII/2/7/0.jpg | Bin 0 -> 9032 bytes .../Assets/Textures/NaturalEarthII/2/7/1.jpg | Bin 0 -> 12957 bytes .../Assets/Textures/NaturalEarthII/2/7/2.jpg | Bin 0 -> 11362 bytes .../Assets/Textures/NaturalEarthII/2/7/3.jpg | Bin 0 -> 11859 bytes .../NaturalEarthII/tilemapresource.xml | 14 + .../Assets/Textures/SkyBox/tycho2t3_80_mx.jpg | Bin 0 -> 118775 bytes .../Assets/Textures/SkyBox/tycho2t3_80_my.jpg | Bin 0 -> 152501 bytes .../Assets/Textures/SkyBox/tycho2t3_80_mz.jpg | Bin 0 -> 167980 bytes .../Assets/Textures/SkyBox/tycho2t3_80_px.jpg | Bin 0 -> 122746 bytes .../Assets/Textures/SkyBox/tycho2t3_80_py.jpg | Bin 0 -> 152999 bytes .../Assets/Textures/SkyBox/tycho2t3_80_pz.jpg | Bin 0 -> 152537 bytes .../Cesium/Assets/Textures/maki/airfield.png | Bin 0 -> 1188 bytes .../Cesium/Assets/Textures/maki/airport.png | Bin 0 -> 1554 bytes .../Assets/Textures/maki/alcohol-shop.png | Bin 0 -> 1293 bytes .../Assets/Textures/maki/america-football.png | Bin 0 -> 2595 bytes .../Assets/Textures/maki/art-gallery.png | Bin 0 -> 3159 bytes .../Cesium/Assets/Textures/maki/bakery.png | Bin 0 -> 2714 bytes .../Cesium/Assets/Textures/maki/bank.png | Bin 0 -> 936 bytes .../Cesium/Assets/Textures/maki/bar.png | Bin 0 -> 1435 bytes .../Cesium/Assets/Textures/maki/baseball.png | Bin 0 -> 1838 bytes .../Assets/Textures/maki/basketball.png | Bin 0 -> 1318 bytes .../Cesium/Assets/Textures/maki/beer.png | Bin 0 -> 1403 bytes .../Cesium/Assets/Textures/maki/bicycle.png | Bin 0 -> 3989 bytes .../Cesium/Assets/Textures/maki/building.png | Bin 0 -> 1765 bytes .../Cesium/Assets/Textures/maki/bus.png | Bin 0 -> 998 bytes .../Cesium/Assets/Textures/maki/cafe.png | Bin 0 -> 1518 bytes .../Cesium/Assets/Textures/maki/camera.png | Bin 0 -> 1976 bytes .../Cesium/Assets/Textures/maki/campsite.png | Bin 0 -> 2411 bytes .../Cesium/Assets/Textures/maki/car.png | Bin 0 -> 1498 bytes .../Cesium/Assets/Textures/maki/cemetery.png | Bin 0 -> 967 bytes .../Cesium/Assets/Textures/maki/cesium.png | Bin 0 -> 3610 bytes .../Cesium/Assets/Textures/maki/chemist.png | Bin 0 -> 1603 bytes .../Cesium/Assets/Textures/maki/cinema.png | Bin 0 -> 1492 bytes .../Assets/Textures/maki/circle-stroked.png | Bin 0 -> 2126 bytes .../Cesium/Assets/Textures/maki/circle.png | Bin 0 -> 1459 bytes .../Cesium/Assets/Textures/maki/city.png | Bin 0 -> 788 bytes .../Assets/Textures/maki/clothing-store.png | Bin 0 -> 2037 bytes .../Cesium/Assets/Textures/maki/college.png | Bin 0 -> 2502 bytes .../Assets/Textures/maki/commercial.png | Bin 0 -> 1002 bytes .../Cesium/Assets/Textures/maki/cricket.png | Bin 0 -> 1677 bytes .../Cesium/Assets/Textures/maki/cross.png | Bin 0 -> 1888 bytes .../Cesium/Assets/Textures/maki/dam.png | Bin 0 -> 1703 bytes .../Cesium/Assets/Textures/maki/danger.png | Bin 0 -> 2429 bytes .../Assets/Textures/maki/disability.png | Bin 0 -> 3437 bytes .../Cesium/Assets/Textures/maki/dog-park.png | Bin 0 -> 3146 bytes .../Cesium/Assets/Textures/maki/embassy.png | Bin 0 -> 1680 bytes .../Textures/maki/emergency-telephone.png | Bin 0 -> 1533 bytes .../Cesium/Assets/Textures/maki/entrance.png | Bin 0 -> 1307 bytes .../Cesium/Assets/Textures/maki/farm.png | Bin 0 -> 1686 bytes .../Cesium/Assets/Textures/maki/fast-food.png | Bin 0 -> 2019 bytes .../Cesium/Assets/Textures/maki/ferry.png | Bin 0 -> 2879 bytes .../Assets/Textures/maki/fire-station.png | Bin 0 -> 2228 bytes .../Cesium/Assets/Textures/maki/fuel.png | Bin 0 -> 1741 bytes .../Cesium/Assets/Textures/maki/garden.png | Bin 0 -> 2057 bytes .../Cesium/Assets/Textures/maki/gift.png | Bin 0 -> 1606 bytes .../Cesium/Assets/Textures/maki/golf.png | Bin 0 -> 1999 bytes .../Cesium/Assets/Textures/maki/grocery.png | Bin 0 -> 1425 bytes .../Assets/Textures/maki/hairdresser.png | Bin 0 -> 3301 bytes .../Cesium/Assets/Textures/maki/harbor.png | Bin 0 -> 2048 bytes .../Cesium/Assets/Textures/maki/heart.png | Bin 0 -> 1745 bytes .../Cesium/Assets/Textures/maki/heliport.png | Bin 0 -> 2059 bytes .../Cesium/Assets/Textures/maki/hospital.png | Bin 0 -> 909 bytes .../Cesium/Assets/Textures/maki/ice-cream.png | Bin 0 -> 1602 bytes .../Assets/Textures/maki/industrial.png | Bin 0 -> 1092 bytes .../Cesium/Assets/Textures/maki/land-use.png | Bin 0 -> 1773 bytes .../Cesium/Assets/Textures/maki/laundry.png | Bin 0 -> 2407 bytes .../Cesium/Assets/Textures/maki/library.png | Bin 0 -> 1355 bytes .../Assets/Textures/maki/lighthouse.png | Bin 0 -> 1944 bytes .../Cesium/Assets/Textures/maki/lodging.png | Bin 0 -> 1362 bytes .../Cesium/Assets/Textures/maki/logging.png | Bin 0 -> 1378 bytes .../Textures/maki/london-underground.png | Bin 0 -> 2979 bytes .../Assets/Textures/maki/marker-stroked.png | Bin 0 -> 3414 bytes .../Cesium/Assets/Textures/maki/marker.png | Bin 0 -> 2448 bytes .../Cesium/Assets/Textures/maki/minefield.png | Bin 0 -> 1907 bytes .../Assets/Textures/maki/mobilephone.png | Bin 0 -> 1474 bytes .../Cesium/Assets/Textures/maki/monument.png | Bin 0 -> 1376 bytes .../Cesium/Assets/Textures/maki/museum.png | Bin 0 -> 2578 bytes .../Cesium/Assets/Textures/maki/music.png | Bin 0 -> 1371 bytes .../Cesium/Assets/Textures/maki/oil-well.png | Bin 0 -> 3357 bytes .../Cesium/Assets/Textures/maki/park.png | Bin 0 -> 2059 bytes .../Cesium/Assets/Textures/maki/park2.png | Bin 0 -> 2284 bytes .../Assets/Textures/maki/parking-garage.png | Bin 0 -> 1563 bytes .../Cesium/Assets/Textures/maki/parking.png | Bin 0 -> 1250 bytes .../Cesium/Assets/Textures/maki/pharmacy.png | Bin 0 -> 2258 bytes .../Cesium/Assets/Textures/maki/pitch.png | Bin 0 -> 3288 bytes .../Assets/Textures/maki/place-of-worship.png | Bin 0 -> 1111 bytes .../Assets/Textures/maki/playground.png | Bin 0 -> 3856 bytes .../Cesium/Assets/Textures/maki/police.png | Bin 0 -> 2194 bytes .../Assets/Textures/maki/polling-place.png | Bin 0 -> 1772 bytes .../Cesium/Assets/Textures/maki/post.png | Bin 0 -> 1273 bytes .../Cesium/Assets/Textures/maki/prison.png | Bin 0 -> 1371 bytes .../Assets/Textures/maki/rail-above.png | Bin 0 -> 2071 bytes .../Assets/Textures/maki/rail-light.png | Bin 0 -> 2816 bytes .../Assets/Textures/maki/rail-metro.png | Bin 0 -> 2249 bytes .../Assets/Textures/maki/rail-underground.png | Bin 0 -> 1996 bytes .../Cesium/Assets/Textures/maki/rail.png | Bin 0 -> 2073 bytes .../Textures/maki/religious-christian.png | Bin 0 -> 948 bytes .../Assets/Textures/maki/religious-jewish.png | Bin 0 -> 2384 bytes .../Assets/Textures/maki/religious-muslim.png | Bin 0 -> 3925 bytes .../Assets/Textures/maki/restaurant.png | Bin 0 -> 2499 bytes .../Cesium/Assets/Textures/maki/roadblock.png | Bin 0 -> 1312 bytes .../Cesium/Assets/Textures/maki/rocket.png | Bin 0 -> 1653 bytes .../Cesium/Assets/Textures/maki/school.png | Bin 0 -> 3838 bytes .../Cesium/Assets/Textures/maki/scooter.png | Bin 0 -> 2942 bytes .../Cesium/Assets/Textures/maki/shop.png | Bin 0 -> 1544 bytes .../Cesium/Assets/Textures/maki/skiing.png | Bin 0 -> 3345 bytes .../Assets/Textures/maki/slaughterhouse.png | Bin 0 -> 2270 bytes .../Cesium/Assets/Textures/maki/soccer.png | Bin 0 -> 2420 bytes .../Assets/Textures/maki/square-stroked.png | Bin 0 -> 650 bytes .../Cesium/Assets/Textures/maki/square.png | Bin 0 -> 582 bytes .../Assets/Textures/maki/star-stroked.png | Bin 0 -> 3460 bytes .../Cesium/Assets/Textures/maki/star.png | Bin 0 -> 2703 bytes .../Cesium/Assets/Textures/maki/suitcase.png | Bin 0 -> 1129 bytes .../Cesium/Assets/Textures/maki/swimming.png | Bin 0 -> 2106 bytes .../Cesium/Assets/Textures/maki/telephone.png | Bin 0 -> 1702 bytes .../Cesium/Assets/Textures/maki/tennis.png | Bin 0 -> 1658 bytes .../Cesium/Assets/Textures/maki/theatre.png | Bin 0 -> 3233 bytes .../Cesium/Assets/Textures/maki/toilets.png | Bin 0 -> 2917 bytes .../Cesium/Assets/Textures/maki/town-hall.png | Bin 0 -> 2005 bytes .../Cesium/Assets/Textures/maki/town.png | Bin 0 -> 1125 bytes .../Assets/Textures/maki/triangle-stroked.png | Bin 0 -> 2837 bytes .../Cesium/Assets/Textures/maki/triangle.png | Bin 0 -> 2137 bytes .../Cesium/Assets/Textures/maki/village.png | Bin 0 -> 2145 bytes .../Cesium/Assets/Textures/maki/warehouse.png | Bin 0 -> 1908 bytes .../Assets/Textures/maki/waste-basket.png | Bin 0 -> 1917 bytes .../Cesium/Assets/Textures/maki/water.png | Bin 0 -> 2411 bytes .../Cesium/Assets/Textures/maki/wetland.png | Bin 0 -> 2151 bytes .../Cesium/Assets/Textures/maki/zoo.png | Bin 0 -> 2681 bytes .../Cesium/Assets/Textures/moonSmall.jpg | Bin 0 -> 18196 bytes public/static/Cesium/Assets/Textures/pin.svg | 1 + .../Cesium/Assets/Textures/waterNormals.jpg | Bin 0 -> 294196 bytes .../Assets/Textures/waterNormalsSmall.jpg | Bin 0 -> 34121 bytes .../Assets/approximateTerrainHeights.json | 1 + public/static/Cesium/Cesium.js | 14506 ++++ .../ThirdParty/Workers/basis_transcoder.js | 31 + .../Workers/draco_decoder_nodejs.js | 1 + .../Cesium/ThirdParty/Workers/package.js | 1 + .../Cesium/ThirdParty/Workers/package.json | 1 + .../ThirdParty/Workers/pako_deflate.min.js | 1 + .../ThirdParty/Workers/pako_inflate.min.js | 1 + .../ThirdParty/Workers/z-worker-pako.js | 1 + .../Cesium/ThirdParty/basis_transcoder.wasm | Bin 0 -> 500839 bytes .../Cesium/ThirdParty/draco_decoder.wasm | Bin 0 -> 285747 bytes .../ThirdParty/google-earth-dbroot-parser.js | 1 + .../Cesium/Widgets/Animation/Animation.css | 127 + .../Cesium/Widgets/Animation/lighter.css | 70 + .../BaseLayerPicker/BaseLayerPicker.css | 108 + .../Widgets/BaseLayerPicker/lighter.css | 22 + .../Cesium3DTilesInspector.css | 102 + .../CesiumInspector/CesiumInspector.css | 113 + .../Widgets/CesiumWidget/CesiumWidget.css | 124 + .../Cesium/Widgets/CesiumWidget/lighter.css | 14 + .../FullscreenButton/FullscreenButton.css | 8 + .../Cesium/Widgets/Geocoder/Geocoder.css | 70 + .../Cesium/Widgets/Geocoder/lighter.css | 17 + .../ArcGisMapServiceWorldHillshade.png | Bin 0 -> 8624 bytes .../ArcGisMapServiceWorldImagery.png | Bin 0 -> 12290 bytes .../ArcGisMapServiceWorldOcean.png | Bin 0 -> 9905 bytes .../Images/ImageryProviders/bingAerial.png | Bin 0 -> 9943 bytes .../ImageryProviders/bingAerialLabels.png | Bin 0 -> 10374 bytes .../Images/ImageryProviders/bingRoads.png | Bin 0 -> 8076 bytes .../Images/ImageryProviders/blueMarble.png | Bin 0 -> 7403 bytes .../Images/ImageryProviders/earthAtNight.png | Bin 0 -> 5836 bytes .../mapQuestOpenStreetMap.png | Bin 0 -> 11342 bytes .../ImageryProviders/mapboxSatellite.png | Bin 0 -> 9242 bytes .../Images/ImageryProviders/mapboxStreets.png | Bin 0 -> 7270 bytes .../Images/ImageryProviders/mapboxTerrain.png | Bin 0 -> 8300 bytes .../ImageryProviders/naturalEarthII.png | Bin 0 -> 7491 bytes .../Images/ImageryProviders/openStreetMap.png | Bin 0 -> 2663 bytes .../Images/ImageryProviders/sentinel-2.png | Bin 0 -> 10086 bytes .../Images/ImageryProviders/stamenToner.png | Bin 0 -> 4119 bytes .../ImageryProviders/stamenWatercolor.png | Bin 0 -> 10806 bytes .../Widgets/Images/NavigationHelp/Mouse.svg | 84 + .../Images/NavigationHelp/MouseLeft.svg | 76 + .../Images/NavigationHelp/MouseMiddle.svg | 76 + .../Images/NavigationHelp/MouseRight.svg | 76 + .../Widgets/Images/NavigationHelp/Touch.svg | 120 + .../Images/NavigationHelp/TouchDrag.svg | 129 + .../Images/NavigationHelp/TouchRotate.svg | 76 + .../Images/NavigationHelp/TouchTilt.svg | 135 + .../Images/NavigationHelp/TouchZoom.svg | 74 + .../TerrainProviders/CesiumWorldTerrain.png | Bin 0 -> 10080 bytes .../Images/TerrainProviders/Ellipsoid.png | Bin 0 -> 6173 bytes .../Cesium/Widgets/Images/TimelineIcons.png | Bin 0 -> 781 bytes .../Cesium/Widgets/Images/info-loading.gif | Bin 0 -> 723 bytes .../static/Cesium/Widgets/InfoBox/InfoBox.css | 92 + .../Widgets/InfoBox/InfoBoxDescription.css | 178 + .../NavigationHelpButton.css | 93 + .../Widgets/NavigationHelpButton/lighter.css | 38 + .../PerformanceWatchdog.css | 15 + .../ProjectionPicker/ProjectionPicker.css | 38 + .../SceneModePicker/SceneModePicker.css | 56 + .../SelectionIndicator/SelectionIndicator.css | 20 + .../Cesium/Widgets/Timeline/Timeline.css | 96 + .../Cesium/Widgets/Timeline/lighter.css | 18 + .../Cesium/Widgets/VRButton/VRButton.css | 8 + .../static/Cesium/Widgets/Viewer/Viewer.css | 107 + .../Widgets/VoxelInspector/VoxelInspector.css | 16 + public/static/Cesium/Widgets/lighter.css | 232 + .../static/Cesium/Widgets/lighterShared.css | 46 + public/static/Cesium/Widgets/shared.css | 103 + public/static/Cesium/Widgets/widgets.css | 1311 + .../static/Cesium/Workers/ArcType-26a3f38d.js | 1 + .../Workers/AttributeCompression-0b8f7b7d.js | 1 + .../AxisAlignedBoundingBox-93c1311e.js | 1 + .../Workers/BoundingRectangle-b88a4eda.js | 1 + .../Cesium/Workers/BoxGeometry-7ed03b36.js | 1 + .../static/Cesium/Workers/Color-4333bfe0.js | 1 + .../Workers/ComponentDatatype-ab629b88.js | 1 + ...CoplanarPolygonGeometryLibrary-b81a1d6c.js | 1 + .../CorridorGeometryLibrary-0264fc3e.js | 1 + .../Workers/CylinderGeometry-c437b77a.js | 1 + .../CylinderGeometryLibrary-4d7f606d.js | 1 + .../Workers/EllipseGeometry-767bd099.js | 1 + .../EllipseGeometryLibrary-ddb4a715.js | 1 + .../EllipseOutlineGeometry-176368f6.js | 1 + .../Workers/EllipsoidGeodesic-20aaff03.js | 1 + .../Workers/EllipsoidGeometry-52c7b814.js | 1 + .../EllipsoidOutlineGeometry-0505e9e1.js | 1 + .../Workers/EllipsoidRhumbLine-1289f7e8.js | 1 + .../Workers/EllipsoidTangentPlane-05ee7166.js | 1 + .../Workers/EncodedCartesian3-abad5e8c.js | 1 + .../Workers/FrustumGeometry-2418e7ca.js | 1 + .../Workers/GeometryAttribute-0e790d82.js | 1 + .../Workers/GeometryAttributes-1e4ddcd2.js | 1 + .../Workers/GeometryInstance-c4920693.js | 1 + .../GeometryOffsetAttribute-2579b8d2.js | 1 + .../Workers/GeometryPipeline-87cdea8e.js | 1 + .../Cesium/Workers/IndexDatatype-a9b1bc18.js | 1 + .../Workers/IntersectionTests-863687a2.js | 1 + public/static/Cesium/Workers/Math-355606c6.js | 1 + .../static/Cesium/Workers/Matrix2-7a8e9daf.js | 1 + .../static/Cesium/Workers/Matrix3-b2351961.js | 1 + .../Workers/OrientedBoundingBox-04b751ee.js | 1 + .../static/Cesium/Workers/Plane-5931b53e.js | 1 + .../PolygonGeometryLibrary-f7ee0859.js | 1 + .../Workers/PolygonPipeline-eec72ff0.js | 1 + .../Workers/PolylinePipeline-dfaa9e90.js | 1 + .../PolylineVolumeGeometryLibrary-e2129320.js | 1 + .../Workers/PrimitivePipeline-25e99fc7.js | 1 + .../RectangleGeometryLibrary-40180469.js | 1 + .../Cesium/Workers/RuntimeError-9b4ce3fb.js | 1 + .../Workers/TerrainEncoding-d756c901.js | 1 + .../Cesium/Workers/Transforms-c842a68c.js | 40 + .../Cesium/Workers/VertexFormat-fbdec922.js | 1 + .../Workers/WallGeometryLibrary-5c59fcf6.js | 1 + .../Cesium/Workers/WebGLConstants-7f557f93.js | 1 + .../Workers/WebMercatorProjection-db7467f4.js | 1 + .../Workers/arrayRemoveDuplicates-0d8dde26.js | 1 + .../Workers/cesiumWorkerBootstrapper.js | 31 + .../static/Cesium/Workers/combine-0c102d93.js | 1 + .../static/Cesium/Workers/combineGeometry.js | 1 + .../Cesium/Workers/createBoxGeometry.js | 1 + .../Workers/createBoxOutlineGeometry.js | 1 + .../Cesium/Workers/createCircleGeometry.js | 1 + .../Workers/createCircleOutlineGeometry.js | 1 + .../Workers/createCoplanarPolygonGeometry.js | 1 + .../createCoplanarPolygonOutlineGeometry.js | 1 + .../Cesium/Workers/createCorridorGeometry.js | 1 + .../Workers/createCorridorOutlineGeometry.js | 1 + .../Cesium/Workers/createCylinderGeometry.js | 1 + .../Workers/createCylinderOutlineGeometry.js | 1 + .../Cesium/Workers/createEllipseGeometry.js | 1 + .../Workers/createEllipseOutlineGeometry.js | 1 + .../Cesium/Workers/createEllipsoidGeometry.js | 1 + .../Workers/createEllipsoidOutlineGeometry.js | 1 + .../Cesium/Workers/createFrustumGeometry.js | 1 + .../Workers/createFrustumOutlineGeometry.js | 1 + .../static/Cesium/Workers/createGeometry.js | 1 + .../Workers/createGroundPolylineGeometry.js | 1 + .../Cesium/Workers/createPlaneGeometry.js | 1 + .../Workers/createPlaneOutlineGeometry.js | 1 + .../Cesium/Workers/createPolygonGeometry.js | 1 + .../Workers/createPolygonOutlineGeometry.js | 1 + .../Cesium/Workers/createPolylineGeometry.js | 1 + .../Workers/createPolylineVolumeGeometry.js | 1 + .../createPolylineVolumeOutlineGeometry.js | 1 + .../Cesium/Workers/createRectangleGeometry.js | 1 + .../Workers/createRectangleOutlineGeometry.js | 1 + .../Workers/createSimplePolylineGeometry.js | 1 + .../Cesium/Workers/createSphereGeometry.js | 1 + .../Workers/createSphereOutlineGeometry.js | 1 + .../Workers/createTaskProcessorWorker.js | 1 + .../createVectorTileClampedPolylines.js | 1 + .../Workers/createVectorTileGeometries.js | 1 + .../Cesium/Workers/createVectorTilePoints.js | 1 + .../Workers/createVectorTilePolygons.js | 1 + .../Workers/createVectorTilePolylines.js | 1 + ...VerticesFromGoogleEarthEnterpriseBuffer.js | 1 + .../Workers/createVerticesFromHeightmap.js | 3 + .../createVerticesFromQuantizedTerrainMesh.js | 1 + .../Cesium/Workers/createWallGeometry.js | 1 + .../Workers/createWallOutlineGeometry.js | 1 + public/static/Cesium/Workers/decodeDraco.js | 1 + .../decodeGoogleEarthEnterprisePacket.js | 1 + public/static/Cesium/Workers/decodeI3S.js | 1 + .../Cesium/Workers/defaultValue-f6d5e6da.js | 1 + public/static/Cesium/Workers/package.js | 26 + public/static/Cesium/Workers/transcodeKTX2.js | 1 + .../Cesium/Workers/transferTypedArrayTest.js | 26 + .../Workers/upsampleQuantizedTerrainMesh.js | 1 + public/static/Cesium/index.cjs | 14506 ++++ public/static/Cesium/index.js | 14506 ++++ .../Batched/BatchedColors/batchedColors.b3dm | Bin 0 -> 13320 bytes .../Batched/BatchedColors/tileset.json | 41 + .../batchedTranslucent.b3dm | Bin 0 -> 9672 bytes .../Batched/BatchedTranslucent/tileset.json | 41 + .../batchedTranslucentOpaqueMix.b3dm | Bin 0 -> 10024 bytes .../BatchedTranslucentOpaqueMix/tileset.json | 41 + .../batchedWithBatchTable.b3dm | Bin 0 -> 10304 bytes .../BatchedWithBatchTable/tileset.json | 41 + .../Photogrammetry/content.b3dm | Bin 0 -> 4176 bytes .../Photogrammetry/tileset.json | 31 + .../Classification/PointCloud/content.geom | Bin 0 -> 856 bytes .../Classification/PointCloud/tileset.json | 41 + .../Composite/Composite/composite.cmpt | Bin 0 -> 13472 bytes .../Composite/Composite/tileset.json | 41 + .../Hierarchy/BatchTableHierarchy/tile.b3dm | Bin 0 -> 78264 bytes .../BatchTableHierarchy/tileset.json | 53 + .../instancedOrientation.i3dm | Bin 0 -> 4432 bytes .../InstancedOrientation/tileset.json | 29 + .../instancedWithBatchTable.i3dm | Bin 0 -> 3784 bytes .../InstancedWithBatchTable/tileset.json | 29 + .../PointCloudBatched/pointCloudBatched.pnts | Bin 0 -> 25632 bytes .../PointCloud/PointCloudBatched/tileset.json | 21 + .../pointCloudConstantColor.pnts | Bin 0 -> 12184 bytes .../PointCloudConstantColor/tileset.json | 21 + .../PointCloudDraco/pointCloudDraco.pnts | Bin 0 -> 15968 bytes .../PointCloud/PointCloudDraco/tileset.json | 27 + .../PointCloudNormals/pointCloudNormals.pnts | Bin 0 -> 27216 bytes .../PointCloud/PointCloudNormals/tileset.json | 21 + .../PointCloudRGB/pointCloudRGB.pnts | Bin 0 -> 15184 bytes .../PointCloud/PointCloudRGB/tileset.json | 21 + .../PointCloud/PointCloudTimeDynamic/0.pnts | Bin 0 -> 33404 bytes .../PointCloud/PointCloudTimeDynamic/1.pnts | Bin 0 -> 33404 bytes .../PointCloud/PointCloudTimeDynamic/2.pnts | Bin 0 -> 33404 bytes .../PointCloud/PointCloudTimeDynamic/3.pnts | Bin 0 -> 33404 bytes .../PointCloud/PointCloudTimeDynamic/4.pnts | Bin 0 -> 33404 bytes .../pointCloudWithPerPointProperties.pnts | Bin 0 -> 33336 bytes .../tileset.json | 39 + .../Cesium3DTiles/Tilesets/Tileset/ll.b3dm | Bin 0 -> 9704 bytes .../Cesium3DTiles/Tilesets/Tileset/lr.b3dm | Bin 0 -> 9704 bytes .../Tilesets/Tileset/parent.b3dm | Bin 0 -> 9680 bytes .../Tilesets/Tileset/tileset.json | 124 + .../Cesium3DTiles/Tilesets/Tileset/ul.b3dm | Bin 0 -> 9688 bytes .../Cesium3DTiles/Tilesets/Tileset/ur.b3dm | Bin 0 -> 9688 bytes .../TilesetWithViewerRequestVolume/ll.b3dm | Bin 0 -> 9688 bytes .../TilesetWithViewerRequestVolume/lr.b3dm | Bin 0 -> 9688 bytes .../points.pnts | Bin 0 -> 15136 bytes .../tileset.json | 126 + .../TilesetWithViewerRequestVolume/ul.b3dm | Bin 0 -> 9672 bytes .../TilesetWithViewerRequestVolume/ur.b3dm | Bin 0 -> 9672 bytes .../VoxelBox3DTiles/subtrees/0/0/0/0.json | 14 + .../Voxel/VoxelBox3DTiles/tiles/0/0/0/0.json | 27 + .../Voxel/VoxelBox3DTiles/tiles/0/0/0/a.bin | Bin 0 -> 32 bytes .../Voxel/VoxelBox3DTiles/tileset.json | 79 + .../subtrees/0/0/0/0.json | 14 + .../VoxelCylinder3DTiles/tiles/0/0/0/0.json | 27 + .../VoxelCylinder3DTiles/tiles/0/0/0/a.bin | Bin 0 -> 32 bytes .../Voxel/VoxelCylinder3DTiles/tileset.json | 85 + .../subtrees/0/0/0/0.json | 14 + .../VoxelEllipsoid3DTiles/tiles/0/0/0/0.json | 27 + .../VoxelEllipsoid3DTiles/tiles/0/0/0/a.bin | Bin 0 -> 32 bytes .../Voxel/VoxelEllipsoid3DTiles/tileset.json | 73 + public/static/SampleData/ClampToGround.czml | 69 + .../SampleData/MultipartVehicle_part1.czml | 244 + .../SampleData/MultipartVehicle_part2.czml | 174 + .../SampleData/MultipartVehicle_part3.czml | 114 + public/static/SampleData/Vehicle.czml | 487 + public/static/SampleData/cesium_stripes.png | Bin 0 -> 18714 bytes .../static/SampleData/circular_particle.png | Bin 0 -> 975 bytes public/static/SampleData/fire.png | Bin 0 -> 104016 bytes public/static/SampleData/gpx/complexTrk.gpx | 219 + public/static/SampleData/gpx/lamina.gpx | 60712 ++++++++++++++++ public/static/SampleData/gpx/route.gpx | 25 + public/static/SampleData/gpx/simple.gpx | 10 + public/static/SampleData/gpx/wpt.gpx | 22 + public/static/SampleData/kml/bikeRide.kml | 10565 +++ .../SampleData/kml/eiffel-tower-flyto.kml | 46 + .../kml/facilities/GroundStation.png | Bin 0 -> 7043 bytes .../kml/facilities/LaserStation.png | Bin 0 -> 6684 bytes .../SampleData/kml/facilities/LaunchPad.png | Bin 0 -> 6735 bytes .../SampleData/kml/facilities/LaunchSite.png | Bin 0 -> 5655 bytes .../kml/facilities/OpticalTrackingStation.png | Bin 0 -> 2538 bytes .../kml/facilities/RadarStation.png | Bin 0 -> 7452 bytes .../SampleData/kml/facilities/agiLogo.svg | 32 + .../SampleData/kml/facilities/facilities.kml | 1 + .../SampleData/kml/gdpPerCapita2008.kmz | Bin 0 -> 382584 bytes .../models/BoxInstanced/BoxInstanced.gltf | 292 + .../models/BoxInstanced/geometry.bin | Bin 0 -> 648 bytes .../models/BoxInstanced/instances.bin | Bin 0 -> 176 bytes .../models/BoxInstanced/metadata.bin | Bin 0 -> 104 bytes .../SampleData/models/BoxUnlit/BoxUnlit.gltf | 151 + .../models/CesiumAir/Cesium_Air.glb | Bin 0 -> 586652 bytes .../models/CesiumBalloon/CesiumBalloon.glb | Bin 0 -> 712168 bytes .../CesiumBalloonKTX2/CesiumBalloonKTX2.glb | Bin 0 -> 453512 bytes .../models/CesiumDrone/CesiumDrone.glb | Bin 0 -> 1169536 bytes .../models/CesiumMan/Cesium_Man.glb | Bin 0 -> 490876 bytes .../CesiumMilkTruck/CesiumMilkTruck.dae | 412 + .../CesiumMilkTruck/CesiumMilkTruck.glb | Bin 0 -> 441972 bytes .../CesiumMilkTruck/CesiumMilkTruck.jpg | Bin 0 -> 296200 bytes .../SampleData/models/DracoCompressed/0.bin | Bin 0 -> 13971 bytes .../DracoCompressed/CesiumMilkTruck.gltf | 592 + .../DracoCompressed/CesiumMilkTruck.png | Bin 0 -> 427633 bytes .../models/GroundVehicle/GroundVehicle.glb | Bin 0 -> 6135996 bytes .../models/ParcLeadMine/ParcLeadMine.glb | Bin 0 -> 63056 bytes .../static/SampleData/models/Pawns/Pawns.glb | Bin 0 -> 253532 bytes .../models/PointCloudWave/PointCloudWave.glb | Bin 0 -> 62076 bytes .../models/ShadowTester/Shadow_Tester.glb | Bin 0 -> 42976 bytes .../models/ShadowTester/Shadow_Tester_2.glb | Bin 0 -> 61684 bytes .../models/ShadowTester/Shadow_Tester_3.glb | Bin 0 -> 51940 bytes .../models/ShadowTester/Shadow_Tester_4.glb | Bin 0 -> 131172 bytes .../ShadowTester/Shadow_Tester_Point.glb | Bin 0 -> 64928 bytes .../ShadowTester/Shadow_Transparent.glb | Bin 0 -> 3216 bytes .../models/WoodTower/Wood_Tower.glb | Bin 0 -> 1194408 bytes .../SampleData/ne_10m_us_states.topojson | 763 + .../static/SampleData/population909500.json | 1 + public/static/SampleData/simple.czml | 2416 + public/static/SampleData/simplestyles.geojson | 2314 + public/static/SampleData/smoke.png | Bin 0 -> 57979 bytes .../static/SampleData/snowflake_particle.png | Bin 0 -> 3270 bytes src/App.vue | 15 +- src/components/earth/Earth.js | 61 + src/components/earth/Earth.vue | 50 + src/components/earth/bubble/bubble.js | 75 + .../bubble/bubbleComponents/VideoBubble.vue | 35 + src/components/earth/flyManager/flyManager.js | 122 + .../earth/gisTools/loadGeojsonWithMaterial.js | 54 + src/components/earth/gisTools/matrix.js | 6 + src/components/earth/gisTools/modelMove.js | 152 + src/components/earth/gisTools/modelMove2.js | 23 + .../earth/layerManager/layerManager.js | 61 + .../earth/weatherManager/weatherManager.js | 420 + 507 files changed, 129788 insertions(+), 18 deletions(-) create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json create mode 100644 public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json create mode 100644 public/static/Cesium/Assets/Images/bing_maps_credit.png create mode 100644 public/static/Cesium/Assets/Images/cesium_credit.png create mode 100644 public/static/Cesium/Assets/Images/google_earth_credit.png create mode 100644 public/static/Cesium/Assets/Images/ion-credit.png create mode 100644 public/static/Cesium/Assets/Textures/LensFlare/DirtMask.jpg create mode 100644 public/static/Cesium/Assets/Textures/LensFlare/StarBurst.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg create mode 100644 public/static/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml create mode 100644 public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg create mode 100644 public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg create mode 100644 public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg create mode 100644 public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg create mode 100644 public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg create mode 100644 public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg create mode 100644 public/static/Cesium/Assets/Textures/maki/airfield.png create mode 100644 public/static/Cesium/Assets/Textures/maki/airport.png create mode 100644 public/static/Cesium/Assets/Textures/maki/alcohol-shop.png create mode 100644 public/static/Cesium/Assets/Textures/maki/america-football.png create mode 100644 public/static/Cesium/Assets/Textures/maki/art-gallery.png create mode 100644 public/static/Cesium/Assets/Textures/maki/bakery.png create mode 100644 public/static/Cesium/Assets/Textures/maki/bank.png create mode 100644 public/static/Cesium/Assets/Textures/maki/bar.png create mode 100644 public/static/Cesium/Assets/Textures/maki/baseball.png create mode 100644 public/static/Cesium/Assets/Textures/maki/basketball.png create mode 100644 public/static/Cesium/Assets/Textures/maki/beer.png create mode 100644 public/static/Cesium/Assets/Textures/maki/bicycle.png create mode 100644 public/static/Cesium/Assets/Textures/maki/building.png create mode 100644 public/static/Cesium/Assets/Textures/maki/bus.png create mode 100644 public/static/Cesium/Assets/Textures/maki/cafe.png create mode 100644 public/static/Cesium/Assets/Textures/maki/camera.png create mode 100644 public/static/Cesium/Assets/Textures/maki/campsite.png create mode 100644 public/static/Cesium/Assets/Textures/maki/car.png create mode 100644 public/static/Cesium/Assets/Textures/maki/cemetery.png create mode 100644 public/static/Cesium/Assets/Textures/maki/cesium.png create mode 100644 public/static/Cesium/Assets/Textures/maki/chemist.png create mode 100644 public/static/Cesium/Assets/Textures/maki/cinema.png create mode 100644 public/static/Cesium/Assets/Textures/maki/circle-stroked.png create mode 100644 public/static/Cesium/Assets/Textures/maki/circle.png create mode 100644 public/static/Cesium/Assets/Textures/maki/city.png create mode 100644 public/static/Cesium/Assets/Textures/maki/clothing-store.png create mode 100644 public/static/Cesium/Assets/Textures/maki/college.png create mode 100644 public/static/Cesium/Assets/Textures/maki/commercial.png create mode 100644 public/static/Cesium/Assets/Textures/maki/cricket.png create mode 100644 public/static/Cesium/Assets/Textures/maki/cross.png create mode 100644 public/static/Cesium/Assets/Textures/maki/dam.png create mode 100644 public/static/Cesium/Assets/Textures/maki/danger.png create mode 100644 public/static/Cesium/Assets/Textures/maki/disability.png create mode 100644 public/static/Cesium/Assets/Textures/maki/dog-park.png create mode 100644 public/static/Cesium/Assets/Textures/maki/embassy.png create mode 100644 public/static/Cesium/Assets/Textures/maki/emergency-telephone.png create mode 100644 public/static/Cesium/Assets/Textures/maki/entrance.png create mode 100644 public/static/Cesium/Assets/Textures/maki/farm.png create mode 100644 public/static/Cesium/Assets/Textures/maki/fast-food.png create mode 100644 public/static/Cesium/Assets/Textures/maki/ferry.png create mode 100644 public/static/Cesium/Assets/Textures/maki/fire-station.png create mode 100644 public/static/Cesium/Assets/Textures/maki/fuel.png create mode 100644 public/static/Cesium/Assets/Textures/maki/garden.png create mode 100644 public/static/Cesium/Assets/Textures/maki/gift.png create mode 100644 public/static/Cesium/Assets/Textures/maki/golf.png create mode 100644 public/static/Cesium/Assets/Textures/maki/grocery.png create mode 100644 public/static/Cesium/Assets/Textures/maki/hairdresser.png create mode 100644 public/static/Cesium/Assets/Textures/maki/harbor.png create mode 100644 public/static/Cesium/Assets/Textures/maki/heart.png create mode 100644 public/static/Cesium/Assets/Textures/maki/heliport.png create mode 100644 public/static/Cesium/Assets/Textures/maki/hospital.png create mode 100644 public/static/Cesium/Assets/Textures/maki/ice-cream.png create mode 100644 public/static/Cesium/Assets/Textures/maki/industrial.png create mode 100644 public/static/Cesium/Assets/Textures/maki/land-use.png create mode 100644 public/static/Cesium/Assets/Textures/maki/laundry.png create mode 100644 public/static/Cesium/Assets/Textures/maki/library.png create mode 100644 public/static/Cesium/Assets/Textures/maki/lighthouse.png create mode 100644 public/static/Cesium/Assets/Textures/maki/lodging.png create mode 100644 public/static/Cesium/Assets/Textures/maki/logging.png create mode 100644 public/static/Cesium/Assets/Textures/maki/london-underground.png create mode 100644 public/static/Cesium/Assets/Textures/maki/marker-stroked.png create mode 100644 public/static/Cesium/Assets/Textures/maki/marker.png create mode 100644 public/static/Cesium/Assets/Textures/maki/minefield.png create mode 100644 public/static/Cesium/Assets/Textures/maki/mobilephone.png create mode 100644 public/static/Cesium/Assets/Textures/maki/monument.png create mode 100644 public/static/Cesium/Assets/Textures/maki/museum.png create mode 100644 public/static/Cesium/Assets/Textures/maki/music.png create mode 100644 public/static/Cesium/Assets/Textures/maki/oil-well.png create mode 100644 public/static/Cesium/Assets/Textures/maki/park.png create mode 100644 public/static/Cesium/Assets/Textures/maki/park2.png create mode 100644 public/static/Cesium/Assets/Textures/maki/parking-garage.png create mode 100644 public/static/Cesium/Assets/Textures/maki/parking.png create mode 100644 public/static/Cesium/Assets/Textures/maki/pharmacy.png create mode 100644 public/static/Cesium/Assets/Textures/maki/pitch.png create mode 100644 public/static/Cesium/Assets/Textures/maki/place-of-worship.png create mode 100644 public/static/Cesium/Assets/Textures/maki/playground.png create mode 100644 public/static/Cesium/Assets/Textures/maki/police.png create mode 100644 public/static/Cesium/Assets/Textures/maki/polling-place.png create mode 100644 public/static/Cesium/Assets/Textures/maki/post.png create mode 100644 public/static/Cesium/Assets/Textures/maki/prison.png create mode 100644 public/static/Cesium/Assets/Textures/maki/rail-above.png create mode 100644 public/static/Cesium/Assets/Textures/maki/rail-light.png create mode 100644 public/static/Cesium/Assets/Textures/maki/rail-metro.png create mode 100644 public/static/Cesium/Assets/Textures/maki/rail-underground.png create mode 100644 public/static/Cesium/Assets/Textures/maki/rail.png create mode 100644 public/static/Cesium/Assets/Textures/maki/religious-christian.png create mode 100644 public/static/Cesium/Assets/Textures/maki/religious-jewish.png create mode 100644 public/static/Cesium/Assets/Textures/maki/religious-muslim.png create mode 100644 public/static/Cesium/Assets/Textures/maki/restaurant.png create mode 100644 public/static/Cesium/Assets/Textures/maki/roadblock.png create mode 100644 public/static/Cesium/Assets/Textures/maki/rocket.png create mode 100644 public/static/Cesium/Assets/Textures/maki/school.png create mode 100644 public/static/Cesium/Assets/Textures/maki/scooter.png create mode 100644 public/static/Cesium/Assets/Textures/maki/shop.png create mode 100644 public/static/Cesium/Assets/Textures/maki/skiing.png create mode 100644 public/static/Cesium/Assets/Textures/maki/slaughterhouse.png create mode 100644 public/static/Cesium/Assets/Textures/maki/soccer.png create mode 100644 public/static/Cesium/Assets/Textures/maki/square-stroked.png create mode 100644 public/static/Cesium/Assets/Textures/maki/square.png create mode 100644 public/static/Cesium/Assets/Textures/maki/star-stroked.png create mode 100644 public/static/Cesium/Assets/Textures/maki/star.png create mode 100644 public/static/Cesium/Assets/Textures/maki/suitcase.png create mode 100644 public/static/Cesium/Assets/Textures/maki/swimming.png create mode 100644 public/static/Cesium/Assets/Textures/maki/telephone.png create mode 100644 public/static/Cesium/Assets/Textures/maki/tennis.png create mode 100644 public/static/Cesium/Assets/Textures/maki/theatre.png create mode 100644 public/static/Cesium/Assets/Textures/maki/toilets.png create mode 100644 public/static/Cesium/Assets/Textures/maki/town-hall.png create mode 100644 public/static/Cesium/Assets/Textures/maki/town.png create mode 100644 public/static/Cesium/Assets/Textures/maki/triangle-stroked.png create mode 100644 public/static/Cesium/Assets/Textures/maki/triangle.png create mode 100644 public/static/Cesium/Assets/Textures/maki/village.png create mode 100644 public/static/Cesium/Assets/Textures/maki/warehouse.png create mode 100644 public/static/Cesium/Assets/Textures/maki/waste-basket.png create mode 100644 public/static/Cesium/Assets/Textures/maki/water.png create mode 100644 public/static/Cesium/Assets/Textures/maki/wetland.png create mode 100644 public/static/Cesium/Assets/Textures/maki/zoo.png create mode 100644 public/static/Cesium/Assets/Textures/moonSmall.jpg create mode 100644 public/static/Cesium/Assets/Textures/pin.svg create mode 100644 public/static/Cesium/Assets/Textures/waterNormals.jpg create mode 100644 public/static/Cesium/Assets/Textures/waterNormalsSmall.jpg create mode 100644 public/static/Cesium/Assets/approximateTerrainHeights.json create mode 100644 public/static/Cesium/Cesium.js create mode 100644 public/static/Cesium/ThirdParty/Workers/basis_transcoder.js create mode 100644 public/static/Cesium/ThirdParty/Workers/draco_decoder_nodejs.js create mode 100644 public/static/Cesium/ThirdParty/Workers/package.js create mode 100644 public/static/Cesium/ThirdParty/Workers/package.json create mode 100644 public/static/Cesium/ThirdParty/Workers/pako_deflate.min.js create mode 100644 public/static/Cesium/ThirdParty/Workers/pako_inflate.min.js create mode 100644 public/static/Cesium/ThirdParty/Workers/z-worker-pako.js create mode 100644 public/static/Cesium/ThirdParty/basis_transcoder.wasm create mode 100644 public/static/Cesium/ThirdParty/draco_decoder.wasm create mode 100644 public/static/Cesium/ThirdParty/google-earth-dbroot-parser.js create mode 100644 public/static/Cesium/Widgets/Animation/Animation.css create mode 100644 public/static/Cesium/Widgets/Animation/lighter.css create mode 100644 public/static/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css create mode 100644 public/static/Cesium/Widgets/BaseLayerPicker/lighter.css create mode 100644 public/static/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css create mode 100644 public/static/Cesium/Widgets/CesiumInspector/CesiumInspector.css create mode 100644 public/static/Cesium/Widgets/CesiumWidget/CesiumWidget.css create mode 100644 public/static/Cesium/Widgets/CesiumWidget/lighter.css create mode 100644 public/static/Cesium/Widgets/FullscreenButton/FullscreenButton.css create mode 100644 public/static/Cesium/Widgets/Geocoder/Geocoder.css create mode 100644 public/static/Cesium/Widgets/Geocoder/lighter.css create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/bingAerial.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/bingRoads.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/blueMarble.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/stamenToner.png create mode 100644 public/static/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/Mouse.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/Touch.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg create mode 100644 public/static/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg create mode 100644 public/static/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png create mode 100644 public/static/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png create mode 100644 public/static/Cesium/Widgets/Images/TimelineIcons.png create mode 100644 public/static/Cesium/Widgets/Images/info-loading.gif create mode 100644 public/static/Cesium/Widgets/InfoBox/InfoBox.css create mode 100644 public/static/Cesium/Widgets/InfoBox/InfoBoxDescription.css create mode 100644 public/static/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css create mode 100644 public/static/Cesium/Widgets/NavigationHelpButton/lighter.css create mode 100644 public/static/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css create mode 100644 public/static/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css create mode 100644 public/static/Cesium/Widgets/SceneModePicker/SceneModePicker.css create mode 100644 public/static/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css create mode 100644 public/static/Cesium/Widgets/Timeline/Timeline.css create mode 100644 public/static/Cesium/Widgets/Timeline/lighter.css create mode 100644 public/static/Cesium/Widgets/VRButton/VRButton.css create mode 100644 public/static/Cesium/Widgets/Viewer/Viewer.css create mode 100644 public/static/Cesium/Widgets/VoxelInspector/VoxelInspector.css create mode 100644 public/static/Cesium/Widgets/lighter.css create mode 100644 public/static/Cesium/Widgets/lighterShared.css create mode 100644 public/static/Cesium/Widgets/shared.css create mode 100644 public/static/Cesium/Widgets/widgets.css create mode 100644 public/static/Cesium/Workers/ArcType-26a3f38d.js create mode 100644 public/static/Cesium/Workers/AttributeCompression-0b8f7b7d.js create mode 100644 public/static/Cesium/Workers/AxisAlignedBoundingBox-93c1311e.js create mode 100644 public/static/Cesium/Workers/BoundingRectangle-b88a4eda.js create mode 100644 public/static/Cesium/Workers/BoxGeometry-7ed03b36.js create mode 100644 public/static/Cesium/Workers/Color-4333bfe0.js create mode 100644 public/static/Cesium/Workers/ComponentDatatype-ab629b88.js create mode 100644 public/static/Cesium/Workers/CoplanarPolygonGeometryLibrary-b81a1d6c.js create mode 100644 public/static/Cesium/Workers/CorridorGeometryLibrary-0264fc3e.js create mode 100644 public/static/Cesium/Workers/CylinderGeometry-c437b77a.js create mode 100644 public/static/Cesium/Workers/CylinderGeometryLibrary-4d7f606d.js create mode 100644 public/static/Cesium/Workers/EllipseGeometry-767bd099.js create mode 100644 public/static/Cesium/Workers/EllipseGeometryLibrary-ddb4a715.js create mode 100644 public/static/Cesium/Workers/EllipseOutlineGeometry-176368f6.js create mode 100644 public/static/Cesium/Workers/EllipsoidGeodesic-20aaff03.js create mode 100644 public/static/Cesium/Workers/EllipsoidGeometry-52c7b814.js create mode 100644 public/static/Cesium/Workers/EllipsoidOutlineGeometry-0505e9e1.js create mode 100644 public/static/Cesium/Workers/EllipsoidRhumbLine-1289f7e8.js create mode 100644 public/static/Cesium/Workers/EllipsoidTangentPlane-05ee7166.js create mode 100644 public/static/Cesium/Workers/EncodedCartesian3-abad5e8c.js create mode 100644 public/static/Cesium/Workers/FrustumGeometry-2418e7ca.js create mode 100644 public/static/Cesium/Workers/GeometryAttribute-0e790d82.js create mode 100644 public/static/Cesium/Workers/GeometryAttributes-1e4ddcd2.js create mode 100644 public/static/Cesium/Workers/GeometryInstance-c4920693.js create mode 100644 public/static/Cesium/Workers/GeometryOffsetAttribute-2579b8d2.js create mode 100644 public/static/Cesium/Workers/GeometryPipeline-87cdea8e.js create mode 100644 public/static/Cesium/Workers/IndexDatatype-a9b1bc18.js create mode 100644 public/static/Cesium/Workers/IntersectionTests-863687a2.js create mode 100644 public/static/Cesium/Workers/Math-355606c6.js create mode 100644 public/static/Cesium/Workers/Matrix2-7a8e9daf.js create mode 100644 public/static/Cesium/Workers/Matrix3-b2351961.js create mode 100644 public/static/Cesium/Workers/OrientedBoundingBox-04b751ee.js create mode 100644 public/static/Cesium/Workers/Plane-5931b53e.js create mode 100644 public/static/Cesium/Workers/PolygonGeometryLibrary-f7ee0859.js create mode 100644 public/static/Cesium/Workers/PolygonPipeline-eec72ff0.js create mode 100644 public/static/Cesium/Workers/PolylinePipeline-dfaa9e90.js create mode 100644 public/static/Cesium/Workers/PolylineVolumeGeometryLibrary-e2129320.js create mode 100644 public/static/Cesium/Workers/PrimitivePipeline-25e99fc7.js create mode 100644 public/static/Cesium/Workers/RectangleGeometryLibrary-40180469.js create mode 100644 public/static/Cesium/Workers/RuntimeError-9b4ce3fb.js create mode 100644 public/static/Cesium/Workers/TerrainEncoding-d756c901.js create mode 100644 public/static/Cesium/Workers/Transforms-c842a68c.js create mode 100644 public/static/Cesium/Workers/VertexFormat-fbdec922.js create mode 100644 public/static/Cesium/Workers/WallGeometryLibrary-5c59fcf6.js create mode 100644 public/static/Cesium/Workers/WebGLConstants-7f557f93.js create mode 100644 public/static/Cesium/Workers/WebMercatorProjection-db7467f4.js create mode 100644 public/static/Cesium/Workers/arrayRemoveDuplicates-0d8dde26.js create mode 100644 public/static/Cesium/Workers/cesiumWorkerBootstrapper.js create mode 100644 public/static/Cesium/Workers/combine-0c102d93.js create mode 100644 public/static/Cesium/Workers/combineGeometry.js create mode 100644 public/static/Cesium/Workers/createBoxGeometry.js create mode 100644 public/static/Cesium/Workers/createBoxOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createCircleGeometry.js create mode 100644 public/static/Cesium/Workers/createCircleOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createCoplanarPolygonGeometry.js create mode 100644 public/static/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createCorridorGeometry.js create mode 100644 public/static/Cesium/Workers/createCorridorOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createCylinderGeometry.js create mode 100644 public/static/Cesium/Workers/createCylinderOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createEllipseGeometry.js create mode 100644 public/static/Cesium/Workers/createEllipseOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createEllipsoidGeometry.js create mode 100644 public/static/Cesium/Workers/createEllipsoidOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createFrustumGeometry.js create mode 100644 public/static/Cesium/Workers/createFrustumOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createGeometry.js create mode 100644 public/static/Cesium/Workers/createGroundPolylineGeometry.js create mode 100644 public/static/Cesium/Workers/createPlaneGeometry.js create mode 100644 public/static/Cesium/Workers/createPlaneOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createPolygonGeometry.js create mode 100644 public/static/Cesium/Workers/createPolygonOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createPolylineGeometry.js create mode 100644 public/static/Cesium/Workers/createPolylineVolumeGeometry.js create mode 100644 public/static/Cesium/Workers/createPolylineVolumeOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createRectangleGeometry.js create mode 100644 public/static/Cesium/Workers/createRectangleOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createSimplePolylineGeometry.js create mode 100644 public/static/Cesium/Workers/createSphereGeometry.js create mode 100644 public/static/Cesium/Workers/createSphereOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/createTaskProcessorWorker.js create mode 100644 public/static/Cesium/Workers/createVectorTileClampedPolylines.js create mode 100644 public/static/Cesium/Workers/createVectorTileGeometries.js create mode 100644 public/static/Cesium/Workers/createVectorTilePoints.js create mode 100644 public/static/Cesium/Workers/createVectorTilePolygons.js create mode 100644 public/static/Cesium/Workers/createVectorTilePolylines.js create mode 100644 public/static/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js create mode 100644 public/static/Cesium/Workers/createVerticesFromHeightmap.js create mode 100644 public/static/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js create mode 100644 public/static/Cesium/Workers/createWallGeometry.js create mode 100644 public/static/Cesium/Workers/createWallOutlineGeometry.js create mode 100644 public/static/Cesium/Workers/decodeDraco.js create mode 100644 public/static/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js create mode 100644 public/static/Cesium/Workers/decodeI3S.js create mode 100644 public/static/Cesium/Workers/defaultValue-f6d5e6da.js create mode 100644 public/static/Cesium/Workers/package.js create mode 100644 public/static/Cesium/Workers/transcodeKTX2.js create mode 100644 public/static/Cesium/Workers/transferTypedArrayTest.js create mode 100644 public/static/Cesium/Workers/upsampleQuantizedTerrainMesh.js create mode 100644 public/static/Cesium/index.cjs create mode 100644 public/static/Cesium/index.js create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/batchedColors.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/batchedTranslucent.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/batchedTranslucentOpaqueMix.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/batchedWithBatchTable.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/content.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Classification/PointCloud/content.geom create mode 100644 public/static/SampleData/Cesium3DTiles/Classification/PointCloud/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Composite/Composite/composite.cmpt create mode 100644 public/static/SampleData/Cesium3DTiles/Composite/Composite/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tile.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/instancedOrientation.i3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/instancedWithBatchTable.i3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/pointCloudBatched.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/pointCloudConstantColor.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/pointCloudDraco.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/pointCloudNormals.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/pointCloudRGB.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/0.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/1.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/2.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/3.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/4.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/pointCloudWithPerPointProperties.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ll.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/lr.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/parent.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ul.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ur.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ll.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/lr.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/points.pnts create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ul.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ur.b3dm create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/subtrees/0/0/0/0.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/0.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/a.bin create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/subtrees/0/0/0/0.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/0.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/a.bin create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tileset.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/subtrees/0/0/0/0.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/0.json create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/a.bin create mode 100644 public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tileset.json create mode 100644 public/static/SampleData/ClampToGround.czml create mode 100644 public/static/SampleData/MultipartVehicle_part1.czml create mode 100644 public/static/SampleData/MultipartVehicle_part2.czml create mode 100644 public/static/SampleData/MultipartVehicle_part3.czml create mode 100644 public/static/SampleData/Vehicle.czml create mode 100644 public/static/SampleData/cesium_stripes.png create mode 100644 public/static/SampleData/circular_particle.png create mode 100644 public/static/SampleData/fire.png create mode 100644 public/static/SampleData/gpx/complexTrk.gpx create mode 100644 public/static/SampleData/gpx/lamina.gpx create mode 100644 public/static/SampleData/gpx/route.gpx create mode 100644 public/static/SampleData/gpx/simple.gpx create mode 100644 public/static/SampleData/gpx/wpt.gpx create mode 100644 public/static/SampleData/kml/bikeRide.kml create mode 100644 public/static/SampleData/kml/eiffel-tower-flyto.kml create mode 100644 public/static/SampleData/kml/facilities/GroundStation.png create mode 100644 public/static/SampleData/kml/facilities/LaserStation.png create mode 100644 public/static/SampleData/kml/facilities/LaunchPad.png create mode 100644 public/static/SampleData/kml/facilities/LaunchSite.png create mode 100644 public/static/SampleData/kml/facilities/OpticalTrackingStation.png create mode 100644 public/static/SampleData/kml/facilities/RadarStation.png create mode 100644 public/static/SampleData/kml/facilities/agiLogo.svg create mode 100644 public/static/SampleData/kml/facilities/facilities.kml create mode 100644 public/static/SampleData/kml/gdpPerCapita2008.kmz create mode 100644 public/static/SampleData/models/BoxInstanced/BoxInstanced.gltf create mode 100644 public/static/SampleData/models/BoxInstanced/geometry.bin create mode 100644 public/static/SampleData/models/BoxInstanced/instances.bin create mode 100644 public/static/SampleData/models/BoxInstanced/metadata.bin create mode 100644 public/static/SampleData/models/BoxUnlit/BoxUnlit.gltf create mode 100644 public/static/SampleData/models/CesiumAir/Cesium_Air.glb create mode 100644 public/static/SampleData/models/CesiumBalloon/CesiumBalloon.glb create mode 100644 public/static/SampleData/models/CesiumBalloonKTX2/CesiumBalloonKTX2.glb create mode 100644 public/static/SampleData/models/CesiumDrone/CesiumDrone.glb create mode 100644 public/static/SampleData/models/CesiumMan/Cesium_Man.glb create mode 100644 public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.dae create mode 100644 public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.glb create mode 100644 public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.jpg create mode 100644 public/static/SampleData/models/DracoCompressed/0.bin create mode 100644 public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.gltf create mode 100644 public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.png create mode 100644 public/static/SampleData/models/GroundVehicle/GroundVehicle.glb create mode 100644 public/static/SampleData/models/ParcLeadMine/ParcLeadMine.glb create mode 100644 public/static/SampleData/models/Pawns/Pawns.glb create mode 100644 public/static/SampleData/models/PointCloudWave/PointCloudWave.glb create mode 100644 public/static/SampleData/models/ShadowTester/Shadow_Tester.glb create mode 100644 public/static/SampleData/models/ShadowTester/Shadow_Tester_2.glb create mode 100644 public/static/SampleData/models/ShadowTester/Shadow_Tester_3.glb create mode 100644 public/static/SampleData/models/ShadowTester/Shadow_Tester_4.glb create mode 100644 public/static/SampleData/models/ShadowTester/Shadow_Tester_Point.glb create mode 100644 public/static/SampleData/models/ShadowTester/Shadow_Transparent.glb create mode 100644 public/static/SampleData/models/WoodTower/Wood_Tower.glb create mode 100644 public/static/SampleData/ne_10m_us_states.topojson create mode 100644 public/static/SampleData/population909500.json create mode 100644 public/static/SampleData/simple.czml create mode 100644 public/static/SampleData/simplestyles.geojson create mode 100644 public/static/SampleData/smoke.png create mode 100644 public/static/SampleData/snowflake_particle.png create mode 100644 src/components/earth/Earth.js create mode 100644 src/components/earth/Earth.vue create mode 100644 src/components/earth/bubble/bubble.js create mode 100644 src/components/earth/bubble/bubbleComponents/VideoBubble.vue create mode 100644 src/components/earth/flyManager/flyManager.js create mode 100644 src/components/earth/gisTools/loadGeojsonWithMaterial.js create mode 100644 src/components/earth/gisTools/matrix.js create mode 100644 src/components/earth/gisTools/modelMove.js create mode 100644 src/components/earth/gisTools/modelMove2.js create mode 100644 src/components/earth/layerManager/layerManager.js create mode 100644 src/components/earth/weatherManager/weatherManager.js 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 0000000000000000000000000000000000000000..15109db3cd4937eddafbb1400e5cd778cc4cb7e6 GIT binary patch literal 18831 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 z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a7622d822d38c661a56b32be271b815691b6df7f GIT binary patch literal 7703 zcmV+y9_ZnTP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TpF8gxZibW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE-^4L^m3s903CBlL_t(| zUhSL*cvQs}$N#(OeK)-)r0i};0)!M&AqgS$su2)Sc_1h#7En=v2cjql3MkThXrZKU z5<&ZmtWqYRE}j_3A$*kqD4|r$q??B2!Fi>yHU7?ik{|5JKXB#)^gbG#;+ zh_UTI!M{Elz7-eXQ<@+tWfw5C`ZE0LuV6&uNsMXQj`7X&F{Z%_qv{MWyh>I&(%(l1 zAd6KpuJ}Y|9==mpk8q7#L}=z>y=pb4DSQuGS$S#8Uj1eACU-ntq>m}0Sr{)0f^X$b zxZI3@UBoKz4@`sAzTvRm>kIyoQLqV_3;Tqh;go&_o>dtHcM?X{pTX#+ZSbp}3(sOh z>8O7{ZC4tKQ1uEN*QmxyrE*M_n?bcKiLqCIji!ne@MfDY0@`Iml3dtmU18Cjn10+_Fn0be*6eQ&10GBg@G^PQ;nS#OB{FCA3(Lm0OTM>XrPN~Ij{ zC`_T+UZ5FS?_oi3qU&>E9cBpLDPLHHzhJoPFJe)M;Xx%F{w??6aQig$KeQ*y^Phaz zbQ##5pA3tmTcI_xAJzPQS3V99(4pLF0=gdGsZ{g=OOJ4 z{r{l8cPP(_+zY{}JK#SR=oj$N{#8mC*A|4)?Kk03nG4&~Kf&-5C8_n5tCkCPgE|bF zR4}ei2H(}OWPWR8$?a%@!nSJ2uPukdf>J0C%7T(|HZ*&N;RKZ!$PmcJ?a}zCMTmV> zhY?e>7w4OUaiQ%L;zY4HOtxjMLJVvUhiqA(v~zcw+|0%Vkt)Ww+hT0%>loiW2a}rK zM?mwtc&%{`Ce+WznEFpKv~~$RD_6qt&bzP|GP4t~U(+AK+Ko7@)r=LYm6*{r&vHL=(`npvz3m5}+W9P*>mp`>sdDw0nBt9s=?k8JV4*!C+J z)|`StC26pUBsZ`8%0q=hik|AY;IwF9LbW0*Fp({DU?=3~FNM;m@1Z;@1nM8(hemh_ z)Gt;-ExH7ppL3z@5D)Wik4+Q>Rncj@)htBJ-7N?S`~dSOJ7b`?0M;93z&mLTR@WTF zeUT99)b<8Jy`=sqx{l)*O>X02QrkofuQ>v*jBvQ#J^;_0V1hRhqgty)T%H;u@lfDE1*#u+Rf^iRjPo)r&z3? zRzoh}Ybf}gfb!gXP&rfvrG#oIMVCSShjeIK`~h8Q?^myfGtWz#AtXTWkpgWit?j5D zfbRJ?ylHA2-ts<1wkN@-F#|3ochEO>nAG}8)uIWtW-i`qQb14$OLom{$T1*19ty|? zLc{qgbdC|oNrlk-qZqnJ??ZRc#;&|vB*7eqf3(El?6q|WTQ~;H$?6bVtQZHC#BcC^ z?QZ0XLXl5kXS4=mL;7}fo{<7*@}JVa6eAlhpkK%`n60n{XRHn^*PEf=A0NQA;bm^w%VqTR3jvZvN7mfnU zfU3o9Ea@B^geor;8XPE9 z(2aOO%GA~eeBlQy>&V3v_s*lwUa$}EdWtZOP=FwsM>n-DhU{Sxj3(em&4J+L+Ym&m zA|Qxzs|aH{1{*5D5X7c}A29}k2mu|R0Cr)I#(fOvW%NC;`ocb(+b<|jD zBbfy|$hTGre$5-;-F15ZgRqH^#NfYliDzi?UWyuH9)zOriI%zAo z7T2JEE)#lbxzM|p1H&`7VAx@*qPSR=JoCE*bZpiZoL@T`gQTWTI`|e8A1uex`kg3m zKY?;l2+A4`U`fhGC`y}9PSM68n7^bD<1z;Rz608CJhCw|{6ZG}uD(qUARX>ig>bLS zf=liK*q!SL+Agi(IHJ>v{o3tVD&G3;0Cb}|r%@~4Uc>+3^Zi;#Wvz6MlQ@chgG$tJ%FT!6sk_2c019Ze3I?mbjoe$`95gkLa z_;>JQ8>l{;#+gjN@v(F6Tg`=U%YF=PPREe?Tns9`4!bxHsr8kpQ3LFHF8rD_ur*Ic zE@3lNW=T!m>J;?n-G*Ua1`IMYVU&9V#%n)>)t{k9Yc%)-b7*@6Ze9EuI|f^H2IFyE z{tQ-S>ygxQ5OtzssB7AXJDKazUu+!L$ReOeh}YwNYwyA~awb#;bea(;G~>V}KMWo< z1@NTeS{jFex6GwhiFOjuhjrSqPg^7gdU{8o>ohQcLar?(va)A)Kxvw^x`Xnd&AJWU z34g#K`8bSf_P{WIC3NPIsr%52=4CcNtRF#jnMy7}w3KZf=1D*~vaG{jqt78?SozUw z2$~MF7{NS@z|0}rZ5BUb78O_OH-L&e!8e~kx<~d@dOuj&MItfK(G@gaJbmW_dcT{z zX#h(=UR@BbMDVf6=1cwFrq^>cMjpMA=VzAaqNzN#<}CKmC(G&eEWKue7qgYc3m-*o z9jT6H8{s1Q4LNiycVQVJxo%>4R%pY!OK9yGNdMq|@1G-t2I3bE0zMGj-zHd9F?Q18M1>}YX)Cj|h5a;Cw( zx5c#{7+E$b5<##HdRpIRztU}QP7_4wRPQL;H-ydH9AYt^+)BtM&+JO$)=}9dwMZlZx{4sH zp^$()YoxsFfJm0_3JMwmf~WxvWF5hR?s=IGNudQDk9{Nywnru7Fp>aGo;#|9#fzB6 zu{bKHZ+cK-Gmocngfi5IJatPK46e(ATV*;1+?o#62|WVw z@2FlLj*SWksbaG!bl{vm08M6Vy+=htPx%Ur*4>A3Q8G+Q5@A*l3gdSj>B6^#!-QZy zDvH3JhJ7fA`4F?E-Fj61Pw=kaj+(ZEXl~q&mYi=9Z(sl!3~p7!@YV|$(RQDJPQ`#r zuY>E+_4#nkvV~jKJvwhiaLg%zAm$yZMWSswBXCeh)Fsez&}~t`IyxWGnNYZ}8Hxj# z`g*Xns-ZZs8fqJEK;v`>ID40Z^QJ$Pcw~O2o842|FW6$U#6y#ZV~2k=AzBGp};Q z(pbVDl`Kzmee?3fu{RR}{U)s;xnwH9yhs}MmrtIi08Z&Ypl@Wy_~<372CTOm zS*+7#kh^>nnhD3D*>$G-m{viPbs0u89>65~9!$%AhgroD7_XZFjv@g)h=4xd9)|RW zJt#T92=k@gdQ{mam^AFdowh(U*KR^<#u8-Aaf23x5Ss95zKx-+nRHHa;gqr%eM7sR z-rY(K;ZYY4*YaWvNGXQp!KqS1r5MC*FnH ztYoO}y9BkM9Z>t4VjZV9p{zm8pKmRmCmctfvW4L4c!NDA7C+pSfId$i?mT#*I^s&l za7x^Sas;^?tWJ;@jONf-h6ElZco7B!qB?nKN-|^O2&CjLfTkEaavddl-6yTjwQLtL z13H_el~0HtW=6+XMaQvQT0?TY%7Sarhwz|q!>g8JK`MiaPr>02ZE1^V*T^z9Cbg(y zY?(U7l}O6iQgw_d(ZJvm4tX&S^L^!z|Dq0Zmr9^~BMI79gQ4jx9ic~EgNauv%#v@z zto#hjYWBit=PYQcwj75qMZ34!Ly_CC7iBk=VTHE#(|0JVw?nIWKcZU$(NeVmZ7B

&Pa4A+IkP|SZIZs^N%fjFg+O?PPtkj2RLkygYN??2aE=+%Qky<2r2=t!LK$k+! zss?hxD#%{Sh3cI!s4v-~8bVKO(p&;fnZ@V$(6*l*t6&B?wO5 zAs7YHo}{f5T0{`+ku=81AWFi{Qn^UU9fcw>2WiYD1knxhQnb5h8temB%w58`0!ezcaYM%&Hz zkm_a(O}M1Wz_oZK+^TcMv)15-Ot|I@g+oH8utUbD!jfX>YZ#DT1j}Q;Li-Wr9hymA`sjg=YybJWdXp4Rc%V8J4lc3!MLD*_IT-*ll(wp!pyaAWoJlI@_ zh4wpEOqcuMzL^Wn)O=_>NQZXDd1y(Jv8U)3j4cW1q^mHm3WjOrO6V;jdSnYWfmgo= zmzocuqUjJS%eUZS;y2(+yLGGP15j%Z!ahn2TML$;{p_2FrfON3|C4^xHG4Sa#>1tQ z&IjG(UJYUJDzkxG&LgPDisax^zkqJ&d~t%MHM8?~GC&7Pf&Pksp85#rBye=I!3`{c z`u##^+)sv9Tqrb57~8)sUKDxJ7-o6wbAn?$C3xKzevBUhD2aLd&?_(M3_+X2;ziD& zBvADnJjJH1Tt7-Cqm&6`2kJvH^na^|W;7sq9vlnu31lhMwJ8`>@D>Io_WUPQ{Vvd# z?^A-&LQSZT(x3!f4YEecu)8q=&Lx>}&MkudgGyM%?1284;!TI&p<{msy7w5Ev!Rob z1f5ggKxN6nLj9FZfWHJxP|L4Z<%Cpf79n`p_gTSxkdy*58`wVX|G*I|}5!OD+` zC3ydffwsGBOw(ovobpS=Pv>3(o5&VfT#1#E9u!!l|M^uH4C z1jRs4^#b&F-hh5VDs*!)pqG9D+9SQY0zxV#`ABA&jk=3ISs^fOSPs2lLnx?9&A7b; z!;03RvT_URS^`m9y$fLpE74r zsh8lBe+px&!!V&ih+)mQ=!QN3jbYtCv-=wXy`O;INkA`FtH$ImQA-${mU zc0RPz3ZRpa3T-#3`NhQ-`V(A~6bhLo%&uh>u0mjbO<~D$0$-9d@gipuNQEq3_>9N% zy$<@H0J_f(Hu|0$fdOe5K3LKwmM? zo5@3qf!+Z{VD1VuRBu5;%Ry9B?7_IoeO)JqqEN6X+?ZDP8yfGwhnimoW5H14Zf*e1 za77reHiP9(J2+k%2j7|t7*>Bv{2-SggqC6~ z^tWGzVetd#=jK8;jmps!=as{{I>Y!c?eo}z&PnPqS( zBu`zDjUm-B@F^cg$zAsc`J@JB4uw-u7J2Fl*xVqX!#6|kvp@Ih{VAW?4gJ}XFwRYY zaru215!6O&l3@I&*L|oQ7_%S1e8M&KNvBXFXBM>PSwXSWbVw1O#m)C|B6BfX%6>*u zb0F?gOg*OgNJpp%W?9iOcs1|9{gjVUwcQUtP<7X9u20If%n|N2_u*B;%wUBWRP-A> zi@V*n$4}Sx26BCz1BS9o07*nK(OZ2QjGb?Mn$Zd2pWv~Td zU2m$rG@#9Qs=_+v1N6O>BmR3p$J`Qll;yyuCIP;cA7N+-^WeJq4^P`YsX^K11avGss*0#kvRIo8@0v9j%se~zgoIXX{Gz=GKX66(LQRCv z)!ML}6Njw^Gw_S9AC_^%kIXFwN9IT9dhUba#ZVa6oPlx0Z5S73!1!JcOpd3+cufjS z7SRl~>@F-0N5SO8B4|3#glhL|)5bvrXIMYF*vtkocJcB<918lDdJ}rEq8dlDqseyen41r*t&D z3;V*S$OJxlI^?~z;ZtX04}{=)IV|HUU>=zXycl)5vfHRkdpijE(T4*>Iv3hcIJ9sCS!v4DfRLg-Jl2mCO+J&+%Pa>EhW$e zaLg}-TWJBjYt!IU7Y@%NCwQhmI=+P*GrX&^4P)eDFj873D8%9|m3U00dOyVu&wWe- z$M8Goe*YT`ukVFX@i7=z(QmIh1=ET+nB_&lG-(Z;hmlZYc2>I&Hy)Q&qz!=+Ow)S- zfk@ssqDlNJ{w&-sLeOjCYbe$6pvFF5w#S&u$~iJKHXUS=vexWVj8OkHfKv|Twke`0s0LH&fFr{1Ee*b z#S1g0-$uuHa=o;s2PyN}Fj!>*(>-%xDU1T|_k7sisYL(GayaD`Q8SEVFt}LgJHL4Jp2QvVA6r<7{C1uc+DILx`iH2W`r*7T2{y?7zCzxfo}Uw;Ix88g8hM3g+= zdFUI&B5$cfkPRhZKBDkq36=NR{D@&}n^28z6F*+K5+#<-)aM`6{%eB&Ga6$8eKv(< zm<$9bdGwjiZpfp&!#bFf%xHIlybr<~-i{RsQ0Ku>f4T8nd z?dY@b2N?e}54sD-L49;TsE^PFXNElFtr(B>Y~Dm776-CyQ^?6EgU#Fk&(pUjG2=Yj zSd+*jzur6)@UYd-J5x6r+e?n4Pe1+l_qQxe}zL%862`o(f8u_(0KjXSA=@i zt5+iLN_qG-tbl)A5?qT5DE54&EqSqQ|FFfttW*q0D+lk?251a_dW_zyUcFMeSE#_N zE);`nv*1!(1lx0;Ni9#;z$_gM%sU7B)DoBneFhos|3?VctN&p+=PARbEEuj8#p2?W zc?g)(^RnJUIp>+eAvXzvYw6Hk^kR<-^r}}cRs9oX;gI?j2IdyQxu}$&&W3CLSa_Gn zV`PD}(Gyxuxw%)79GnY3fPG34%=c`7qD|Ki_4KM&f4Ta`S;9Uk1pO%%cFZfIFyuCd zRD6Y@6*d@Iqw?XdjgkbB*>D+MBa0zr7H}*36#Y}~!Ti8haHqVS$3J`3tCu2f02}7} z?7>SAqVMfO$ulhldGM?}1FzEE7*etfgG)YvSMg%F6>Ne_Q7r7PU4_|}W#GQa{P$`9 z-gv}~{IUS*LzzEc zdg_*ZuX^>Lm#T*bbQku4;W`HxuXBg-PaZJ((GfZyTSIA}HgVj$n(<#F;9q`A4>qwR Rvh4r>002ovPDHLkV1jBLV0Hii literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..71b7bdf1c993b6a03d5ee7e021a3116173b2fd62 GIT binary patch literal 6028 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

-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%0AGV@2|d;eeu^iq@gYmFr!di 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%0DUz<)3u)Mq?O05Y3|nMn{x%p?;Ula0o30%ZgN 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

tS)XRORWB8Mt2rUnXP5R@#$;Zf?EB zTSS|cUbY#iYZIYdDQ!Y@xW-(%(!GVSg%`C*LUvTJ+x&IOCe!Q2!c|)>c%gQ>@yC)0 zuNy40FTWTOaVlz2_tt*Lsms}mu;Zy+*NY-%oKE73SH}q5<8qs?A0N>qKMK6oAN9zg zO}R6I>%!xh^v-zLgi{scVj{Ts{3?R7-ov&x`D~3&iMI`qe(heI>0z~)O<(U4No-0{ zJJ_8n%(}vR3IwQc-h7ir(bPoLtue+5sluGdxUPu)hN0f5Q1cMn);>kJHNv@*PF3lr zF+(idh0JCuB<y#&O`38^bzI2X>!O8cu(Z4}izt@jzsn4)XXJh3wBoi)#}x>Hn{MPHLJ zd(~ykh&dvpvD9NbR#)~p8dADk(lO;SOd@GXe$;lQbnx;gJR3Qu1H~kpg%1;;jI~p~ z9y$~clFeJFyemwWJ4#nxT8pNMqbr_9+yShe_Y(=u3BTCkvOgEG0WytE%JES(E+md~ zp-B#`VvX^eFKQG?dWmYT+0@88MesJvvGSwk_Bw;PrJoret?`$+A)Kw?Cu%Q)ZHSc- z6tIORN|A{csK2(>Aj&DP3lG$$kW`{nt3ND29_CkA!kLqlnT{*XHL&79&B*#-k?Lyl zY(^+oCfjT#(umU$*mp@9HSR#QI8VZm1Er#AExKS) zC{VCK7~P^oPVQQ*Sr^J7*WY1f0yb7YhvstHTaTFOK#g+t624ImTFt~nXxAnN;j3zl zM=i@vvr;4zNoiR6WF{OnN0C!yFudn#7l%W)*ofaiRgPIB+To>MahMqrXFA)Nb{i{~ zDPk<765OcCg*)(JM!jE z%5%1)iB>Z6)P*bF-)yyBKD~-gynT{go-Qv<%cV6Z>&5CqXA3)OOGd8u_$kuwuep6; zFYKAD(9h4qeUMdXEor%xuBtvr8Es7zU_ITO=rOKKs&<35ct z<47tr%CC|_Z$W3F6JY73-(d?$H&NPNq;9FJJa!T$cUGWtr41}?)KI#st+wKR85TRG zIUUN8==RZ#wx)G0Zv&ECM*NIa$~3)sYCTeh@W(}z)vHf|2-78Z_L_~D;`(io)=i}| z`w}LAt4{v_L-rWnGKH?UvaHgB2eXDnOQ>$U7a@|WH#FkIY1OFW!xdWU@wuJbUvZt7 z#X}NC1 z>NjVos%?|Y?nu%a!_Cmlu3rTN>a8vaX+1DlNQ1yN(m63K71s&WP9}3aIgR;k-f6YT zqlDr06bZhaA6k?_xocYycOoVfkd~WVk0eyrNueeVw1K0PdDue9LQcGe`$k!;E@RHQ zZ76Kdf%1tiD^%KMg3Q`l&m?U=gKk?Hnl%aZB!#Dx#djAnQPoALnW_`ciTEV$RwpZl zHRWN|2#}#KOD~~BMGc*~jWFeuCiTr&_lVKiyr~-v6eUHy9xOKX_@M2U{Q_55g&$Qe z*Iqe^e7+!}r%A4RXgx-XD;Hk$6pdM2@sb9vxpAq|4uTn6YEWk}!VuB+(nuDaYxs** ztAfURiQL;zYFhmZ^d`y~S-8f-!g{h*xr}(4 zXw%WuQs*k~*yoBy9nmfLSn@kCgT5-6< zCW{?8+NJf9l}{ENk_q8^)J%cQ`?je$*1i-SiPTOSyzDWONN&OuCP`hPHj-sEn_Rj(G~^)Up}a?14qa5*`i%S2jR#V9YDXb0&qf9A z(Lz`*0G8VbAwuo=Dq&H#;8ahO6}HthuRd>)QX*?#?Q!(scJS&jRZ?TTPNl z*7n&AVrflv82nnqfRNW1v>MwbKSR;VCo^^{3Z|Rr{s`qo8kOVpYgSXoA&F_{99XD6 zYunnT89Z$I7puL=1mM3%A-eFR)Pt-jrL@$Q(^B$o!$(9a^hM=|^fFLIoF0A4$F zRdv%+@f&zm>LpKERQd}pSV*gR>Z--*<89w(&KTU5;Mij=%W4x|^6ER>h~8z5P}{6S zw;Y1U$qHH`RAK#yW1}-UCC@FTsrV)Ypty*oJ;kCZQk8xO-fcJDV65vN{{Vu~$#z9p zPmd(ypCr;*M;WRn#p~b5s;G!*&}&rA%nvPuZDmJl7oN4#+N3>G=HIynq%Y{J6US1W z$eO-?s3gB7&|E_m zk8G)~)fB4fAy(Uu&RiQ*?j_AsKF!5O8RDyLgmpnPSJ%kPNYaN4`DETxKPbsBNlSD? zlS3&rKc&W;_h=<-ymiSOY@+8%CsA!H(VeK4qKatcEb-K6ByyY(KC8pg*sgbm`Lzpy z;X{z;58OXs(v7GYXohQK*#7`YGL+leZ>WM!m_AsToe_+v7>ULxlf3&6ot-(Jg(xht zYTiW*NmaJ9%(mp8?1R))Xz2OH3X)xgUBo?bjC~|S;!WxKpyRG&RwES&yHF!qp{$20 z*ropfa3q76nfLb)E4H;?1Ko*FPpye6T_H_JyDfO=$OaKO=FrGYqHsXTsI~7hN63xZ z{)tA4sZWqXXcyFnBeaXn$LLH)qnTauC1)mLlXp5~QS7`1415jU8|ic#RlD&81AtR% zjL*2WMX6Ewqp0x{cjw}xMQ(8>S-Jkn(W=%v4(85d4?C<$G2c-J%2X?qMYb`+MYV=> ziYFCAWKWtW`ZhMzZ$G13P31LwTuN%3KkRd)s(ffI(rq@nSE;8i>M22>(9~kSY%dc^ z7aYixFFp{ojk$|4$RV|KCB`Img=Kz&YYbFG=eXm}NRrp@QWZ74yS3bjYRPt3nNyQm zD=!F!geniF9>jDbs@{5`_f1bb`7X9qvUFX9EvX4PSurxU6x(-Xho!W~A^b`Sbrgl* zSe6QnEHS;LuI_fI;*wY8S3(858-5X5EFq0SWp1?^sBZN76q7v@lKW8B@tTfPRA+tj`H)Kr%!uC5^(>AB-F zU!-qQ4&;z%mG9hLAkZ0O}9nNeWf7u>wSfIK%=omU{tEBwkwDU?+Lmc$);gB zp7%Q1mDI5kH&M_e)I)zld^k|sR(#0Knv;%;Q39O8tp0W+WJ;#fx+MDrN6~0x)9b3C z7({s$6A%p~x1>|KOspzd5RDMlOHIc#nrnoL79}a7@0^T~$TfA9*ls1taSB_fETMHR zRf58j(a)&&w^!g~;*6apQM_?1iXu^$#gMFkqLS54Yf&8Bq@UoBxiwC`#4W?mCSP0k zPE3nDefyGVO5gi|nJV@vhVMRbJ8<=!@sjXvxo_;Hm*JITj6FxV-yb4ul@~`LmeC1g zM6ghjAxD8I&{ucOV#D&2n%(cnPfKZg*h1E>VyH>c{)?%mciuFTq#U)Vh0l$mosg5l z7ZMa&8F72X#y2z>8LC}VnH&fmU~BP-LM&Thqlu!8m!Se0-dV1wWKZ8#+f}gRY3tJI zdfGSn3ZkkyEfId> zl`{nTD^7hVBGBY*&3;EUcTFvF*hQqEyJJFjs#Pye`5k!cX`hj+=Ml3I^{M@ksGIMP z(wlSLL+`MpMGRkrhcPM2d-t&T&Z})wA)?zauapRcz*&8$jftNQUq6yf&e*5SGZ^?8KasKu6#?L+l?fo9%CLYgwx2 z?j~`vc& zLV8kYbLOQsqm&ei2Uu2F8xUfmENLP)2q^a}NVFEWX}?g{yW}~HuCWe_9fdkjNFvx= zL6l9ot%l8Mx{Is{88R-S$VDhJym%Z{$!AAe4tpb3vz^7nkea(Xv2B`*iz|z2p)j=R z4G18yT2DgD_1}DU64eyd zlldG`*W9R6EqjZ)lyAb-n(bwM?aXCK)T!7uxraXk+NX7PCX;vl_7qC+tlCjM`Pb~$ z@y6sWTwjS6)lPMvqI#YCX$Y1~Oo%lUD4EGmxs_|TQb)X|`a?M7U+`KER#anKyg6Z= zO|!3yQdiLkQ*hT8vlTS?2f$AY|N~BGFtSlBE{)k_T&r4gQZ!G~33w8AU4Ss3?Zedj6I!x-ab86pbpDL^Fpb zjK9KqbpLB4mDX@$`fSLYiYDdp-~0P1qDLueuHi9;sxSiv@$eGZMDTn8gY17 z$mjw^7QIDE8WdYt!yE{;-d*3&_UiSyZMEh(m?r5fB~~s;u~9IG7ba0NnPWjCM(*ac z5xxc@%W)Cl%FD#+Jef36+RX+n1kKvLQNFXPm5W-VFpxdD3Pg;Rb*AIzNfB0k$avKo z-I0%^&dOKVOHrsav_jbtWve_;b8C0Lax|v$s=r24kxI!eEw9CeG3vkW(m|-B&x^>m zmcrx=sG@e;poNgDY<>@7s=U2-9_~!MB8xj|ku~{6bVR=7*Vufty8evrIMJeBcDwYU zK<5kFsTFK|a%Ba489iPq#d?2L?nG>kcc_b_tg&hnJ>Jjcb#z_ifqIqLnyaUH=Tb)L zHtsaTzri&qhO^&E62diE-|TyQn?T5hwMRVEd>V!*qJM*vNm%Z*>LaBk%w}D3HX=#W z5s{!0NTI*c6+xdo%IY(9Iw;p7do&|>&Z2KN(os8e6?B}9S>vAL2_mO8pt8`7LYk+J z786cVlE00`OeWZ|+cqd`PK?-S!&Ymk)5;oGEbbsIl1(-?6Aa#Ebh*^k7csPxgKDxU zz{!SrkvS3O;aYHzjc%0A+}OQql|61ruuq<&g(RD(Wf3__M0>0$sb? zR9&KG{HvzRabmHRV+86{bKHa3*>TF^mphU5vpeD>TXhhx8g&&x(WqCqGQTrBCOXu3 zc8Potm9kv?R9?X5IJqj8UX>(#;b#8;(U8WYm*izToNLFq6>L3Mu|r>GNt*oai6?fa z%drZhm?eLeWqZ)-Ke1LjHh20W+Fg)~)fw(c?YQbG)x{mj{*Bhw`y9d53i+LS40T9E z?d&E&mP%QNq8_Qa8mm6K7I~ERJw!Aj=6%ClnvF5fBl>N;i!x{OlCH0z3n@>!<}9iS znuVj~1)wORUL6GF)t;p8qpii=sZ(0%Bx5QYrAI(e)?o`yU&8E8LCRPD$C_cbj%Sr> zFtj$eGuZ^Qg4@QGbakkUZUpp7sP{<-h zh*+qIb8{{(9)Wm!51C2RpJMZ(mBSzaHAyW!it33xwF_zU3lHZlX7Py2hZRBHZ zE?W5#^v&&ixETyfSh|s2VwXfhiKx@Cg(TAaL#bpr{2`*Nk0csST0+E`^LiQhNCs%R0vgj|;X)zrh zr6nQc?=VW%MJSWHUk>F(|{ zqf&HtT*wXvrfoxKe)3LN7=>08oV<`EIazicDV7DENMeNzsJCO(^8&N|GwfH;FAS3I z9?2P-;Cp4-oFHwbA#P(3>JqZU=1{Q1=Qa@xN>fIh#+Gsnt7!vHL14;dg>&vzK@mzg zqgG;zM0&hEdKFTVk1Axc#oQSd;FV>5qop*=Cw2NGR_0XZp9BbN0F!K?yhQ7K4hgFk z20vA6uNN6A`|*}jPAffo3rP>Gh#j2q=0#2t$pdXFXY@(BLkUF zTc6;GR#3SKT1Y+0UPF58^cd>f>%|0>br&ero+ND2ZvOj>imOfcLICS+|hlJ8lqF5aq>}?b4iUxfkq}C z%u6oa9Is6W;Sp~dX@PojiVDgtI}-l@l)`+s)MvK{^}1pXYn9}B2q;+y!dfv4bV?r; z9PMrAi5i=$#fi-G0^M=uKL$2SvB51*`WBt3vPP<&y0~1*{{T{7PQ%Kg8jYezc0grP)NOi_a`%u&7+*mfGO;94cl$1Gb zsRC`$VzXHp7}HY|$ZslP2&;NPfo`I45u|n*rA6t>(#XfEt##tWWmwM^Lt#sI>L#m} z{{XIT7>ahUFM)?Carim4PMpOin_P%0ebYfb(v1bA;rZg{G%ZK9d@L~uEz{sx$ru|{ zytuIfP1mkPbq%M^FSyny%DUpiHL7YbzKHQo6^AOiej*}mjxH6PQ47?YO|C*0Ky^h? zvB-$fSrpPre#LGOx+*!*4KUoxCs|jhbpeYI@FNu(R$9%;d{tpP)`H`MyO;Vic*ee1 z(sHLoRF}}CN(iI2%tPJCmvHQ9z)W?m6pI z?aWfhNKJ0bW zYHD$-lW->d9Qi_!uFLY|O&gh5%uuHn6m5%Xyr(Vxk8?)IgObHMIIz;rRYP-i*8;}5 zZ5GeySXxQrA=6+h48~Z-%<^iM;>xmRwOodzMCpjLdSGxAN{NdxRV1pix?9jerrRi{ z>P0%ERnMT)iV;SM=Wz`-8s>4%g7CXaOG$l1Jz(2pa~VU{J;kP4Q-;D5<{DFJ$)l_i z?Uc$Tc^JwgEcX?ZO-HXmmR%EH*lZYS6<2}&Obu4tP_}|pT>7FtNKFr~u&`=|mDpol z&$0fK6Har$vO=I4Y4aSIj28h(gHQyW~q+ zpyw3u#=$ggLQeDSK=mam&8eYZY8!5kZ;_EWLyk5YX~XoeF@;+cYQA@pW!&GfaE>*R z#KpMsC|L1P2-0xY_a5g|MRbBCy>(nv-}67dZ$$+KrID5{0cjTr>F#c6SW3Fxmq>Rl zolAGel8SV9hje$tvirN=&+o5&JTB*+GiT;GbGhfvJjY?hGw+t-5{P^}rfxahMloG6w^eUgjf*WgyVLQ}tl7x(K@} zmn*i`RuAuGU}A86TX+tS)~d{*+Lx6Za=tZVX~l2E5u7zPrU)H{f37txl9%-UOrFd>oDaU+e$^6`V!P>d1-4E zS3+J8nU?d?a1@JMd!YJqlX8br?fT0(jvHzZ7;xN(Rb_Y;G@;ewz1&WMQR*4-x7BBE zax@U_MZ*MJpcesoxIC}@{*((gO#U&FEHy=*w3uy@rIpsko^$MXcT0irJ?y>(S5wm@ z5r4I)rkS{;5AiuoVs(aED|&v5RvS_TIgy1Oc&DotR0^Q_*?Qj3&uW^ru3U0r^G&6G zv7%eB=Ak-rrPpqoEkh{D>jdYCJCe|s;a(j&+u_eFd@H}n_yg7nStnLsxqpZEeLc#o z%e9kB#rm5C^W&>HsS;!qc3IQa{wpW*{x)tNn3hRVUlzT(CPaUa@O z(rLC%0_uGN8!gOprg8$yf;y{#WyP`gjOno${G-{QK1Z#F3m++t%$pjzR3!2RH1ZM7 zmK!8QhN_KkB#6>gx^TCQ!_q@wcR72i8u0pVhQ?7jfA(1)Ov}4W&%kMR#e*haW~_H>8Cb4A?*98q#Rwaj%IL&WdrS zm$>l&2_D=Z!e$75kEi`{ga6_WW$>S?UW6|sT~6Be_; z52HMAP&G}pxB1fhDQAz{=lsPOpP|jyQI%*84p!Rm-?I#?hn)c}U5?3Vp=u;JCRdU4 zt7St0-tKIi%J82IQRYPb2N4*v4>&2QI$O)1GQqU*ZA>%7|I^I$_|P(Vs=u88E>KL7 zYBf*kZ{YLaGB1H?4zeQId-@%i?;_u8t?3(f?8KPGdHA_mPQg~UFJzXDCTHUH3;cg+ z4htYelYiLx9>^yi*ir@-XoXi0HIZa0j2XS8pJP3Xp1Uyqn-Wdy8JQ5NVGB*2ma(v? zB3PF8W3O}n{$YyFP8K4C85Lz3EnfS5dAJa+I`nd^`LuY{;iI!IYtkTFPEc)u)_7sG z9xLV4ysk2y22jI2LmyrpUal&w%X-zMMoUo#A5x0M7%Xq?q!o0`(<et)us@OG9ZAkzczLcXr+n~reZ zi8Z)bVpu%CZ=U@%)|nZ?BS;RP^WdS!N9X)W zLf{Sl;rDfO`*7XHh{&YU!%Hy-PlYeG>K5({CX30WgE|!$jCxaw4CC@rs^N?oeR+lr zOddSe(El3t@7(F+A644oSVEgmm0p!s&UA7sfbIVfX?6-NOb0eFh7T(_2Sm3o=|pew zRqs2+c}QeCYw7w@N?gZrsqj|XkM^ZB9yD9oulA{ZSeoZ#*J%&W**TV)5Ua?Pbu;&mAbMuUqhy)(oVze#-bF#Wtw3hj!U;Dxp!S!m zW6+2rg*XeoLIuqgaWog{nv3Po*j0!}EhERalNzy2;L=@h9=QZiGgH?;G1<_i|mYs1p3jTOrQZkJ0KgY$1fh^CNxS@-?0~h6RbSsxE0*L7^Gr0Nz-PY z^Dj@dk0YBdKRv3yfVyc^rtSRXM1W=GT#`%gel2!^P~FzqRZ`Mf3=+SYmJ2r8T)~r& zZJZmq26LGwZIThxg)Yb*+5Uyt%FhO5lrx!l2v>gB)i({TP@NGK_XqO~*_ARAxMUf( zywlM6Bc_zd`pYb!M9&MqsaE`^gkD|GzDnqAORi5MV-mt%B!5dlu2`ITNI1yj8Jobk zJMY9hj$?n^kr}t5eN%RuB^OI(fr4Z(ZSR~_+AQ2~+?m}tS|%Z7)%eJ5zF>QuZO^r# zwmP^po|@~#lf8B7VyjYk*(jPeAg3oFVtsY&ZYhrfF=shCh9%%{s%qQgN9t!9on;K7fR`!yS>twB#MHR#ZK3 zf(FqXG>hwwjB{!V75`}5X7|g%O=97O0XJqkYhBbRU3%1I8f4wb)<1Z8IAfY;s zkf&42$YOzWx%TcMiJ3^8FEKJ43$b{U@L~KX{84%J=9$V zhbj?X{|F7^@XSK?mVRAY#MnFJk-HQJdnHE+MH?0aEb>L~W~GN^%kQ?hmRig39m=Q% z6K|13(sSe&xNICkxD!8a>L^$>qIJYE)@q+PdLa6ns|4;%(0uMp%Ul~aPSXYk)#}N; z5QdVo;)VpJwqX+&3#B1tCy&Z7)wx#}w66nab!#~aA^LcvHcH=rM{1D&A`@rWVY>

DpK3*8zu7%KTNNLy(|POZGtwLcfRseviI^Xxt6)S<(OMa zeP*rn7=L2Pc(WWbCC}g}VKmL;vmEbOL+QaM*XScB>~7X>(eGC=AO6a=e>(oIC7wZ0 zvecF1#z^id-v94p9wF+*DkIsEhBLNh>+fTXP@g2NWpyX3RvMDmJPLmJM-umR4%@pF zr)gI;r#B0Y5?nPI3D==J$O)wlI$N9l@WpmdQS~ zAUR)z4~InS9wNCxuQb#zi9B7sE%Q4a*@>kV*0b#daxPkBr2(FEHhaBO39DbGToCbw&$Ke4?NAWNvHNP{7bP1V|eVpd%e3j z(CQ&=Re%CbPrX$`DtW&{;j!SZb7lEbli++#g~WE{1|Ni~HR^!P5NxPjG?7rKrr^hz zjQ=4jTkH%!i)40l7Os&RTlc5q&&+3;_&~UFwmIzG%HgnERIaoQJAsPJmaYEb4|R5n z)|)fF9y_mt7BLRJKCWaaM*8=#7sVe6`ot=_HgkG}{4g~F8**JFJz-D`TfxE0hrWdA zA7bLl`Cm(kTj)|?N}8-QL(Y0Lh6=4ob$Svr4bxN39|&!TX~<0_Ii1yE)UEy@rnZfF z5~~odT+BAawDN($IZ2Ab6s6>rYW&Ej57^tq`4{wxf6|7h-Oja}IG^FGLd9?iVJly- zduv(PD?hqyKlc`hFx=q9aNY+J%o^;=tpQ;EH>i+0?vH>xcP?}gFfaI8gsg_dFOfxM(OVca=D z@riGQF}>y=%v8iSQDO%s37LgY87R75s9WX2ZE<_@qO^@y`+`T4M|Foh4O`_)<5{S` z=X5yq_Th^XNDKXjaogDT?W5!)Vr_7F9GaxS6sp}GZoBb0JbB) z`5i_m*Wy9|>FF1P6NLATN-wy~POmM9BZ3Vc$qpc;m3d0V`1O7LX{Gp*ef?R&|9;W8 z8l;-%oIpeZG+Lv@HCMg}UlSRYy4B+6itjg^HXmY6u~ZoK-0E`ajUhxNSJ>6}3|QVU z1YQwR%2qWw52zxGUY;+mF4 z>!DC-RmNURHCTXfMlux@E1uQ2?31cU~TxtV5W|ObIoh3%ah-Ule;V& z1)FLd_)Nq;lYh0DJ;iI2^8TxK6%-iIuuV!f?Z6X^@LYDJB#y|Em@2RtPm)WOp^wo_S_w~T{nL5*r zy)o=CdN~%QbLWl(erhg<6Y&q0IGfM@RQCo8C(e&ZXe>twoeFnv%?u7vla78~{;@LP zp?`55-!cI-`8n_7lF;n6H`c=1NW&ssJSaMnu}R1NV>EVvw{kTmHBOA-V+rm|G`j+w{LC(f!1t(A&@T~-bkUIXx~QE zR&}!TkFPrc=l562u_M_s!NzZPVT`M0DI+PFnmMDH&&j5pGNlns-1lv@o55S^-%CEp z9^6~=iA}5+q>TIbewr!j#t^i1!UoxS;92sDmVmoUDWrE-pBG;dUr99c30J zB+$DeZs>XRZozufektO;B9k(#x&BG7H+&@|P9;94^HgySsF619FrMXf3<+Yk|FFy5 zxj6kB&tF$XGypQHRGj+VyVYq<3W2xUomoQB;A|NZ!}|~QC09J^6f#b z$MCWRMm+1jvoC#E^cCbhjk(WggKONS5EFGQW5J^VVHm)2~OlfTw6e@KZ--ynY;a zs1vakN1u|koRR^@{77$?rB*^LDOMs_{?w#qI{8C?s(}(8N!(p3i?cjt@F4jaS8iDS z_Gj}T?fQey+E}(sW8J@_6qNn(lVS&wLRDnuwIy%ar&4~3sD$=61R^(sKYxD!qN)Ct zenlB)Y$Jo&obm!GhgaPlC0p-~M_AK}Ti^^VzeH{?m}SJSC6`o;R;$1b>|SVqse%4*Nb z5hXe0lJ!f~+gV~mE(>A?K<6Anu@av=(;3gNnIsBtM2csqmit_-(yjfaS|arQgT=~B z1}J~*Ei3d`Wc`xDoT;bTqb#xhVMbHgRAO1Zugz6c=9$cW^?R~GJX5+NzAHb>NN#3h zvEU0%g+SA^If47F0TGPlENe^J9>%_q80}mVeB0>pK7J&#SAa9sS=m{fR;&85M)b4$ z3Hw~v7&IWM{n6W4menrHL#D^)DKnIlrOY_mA}>hqowZ2j%TO(X{xrqQ$B?|G#{?`? zulc;J%qHyKa{=nVcK`UFj|{z<9h+g>~_AiQV)hpN@n~l$5)Iq z9uJ_!&oqC^P9HDAK+@}-q8#Or+n4YWu+gXB_RkoRnGVX3WI^d!zfgeN9K6Gn50g9y z{7Jv96v)B#Yryc6(bab_FE5uI@A5DgCmzF_h+1i7oZ?20UO7SU!>t3Z^ox0Om%8+x z9!rYih~q8&xO8SjP2+U~@u?{dZh|)5N23yn*(LVwHxt=|q1FL9S=S6M8M&@30-q#N z?5A6LI%*HfQEU-z%M3bh^2^gYZn&1CZ_a+DN_gSoB#NLx zO4v3(qHXqsRc||qNU4)mB-aZKef{oI*r$M65$B<>b-dzx977TCH$A4>?c#)oHE+7E zbxB#j);lV}F@kZ|(H>1cQlhqRpyqN@{M!@n`Vjhx(dp>-iMbPlThWGlq?kY9wPm;!uqdp(e|E{d zUaH@demiM@W>uls_QWNUuq^Ic{Pmib&>1(SN{L@{dBC!=!h{fL(YWzzMsFwHgj65( z8e&Gk1_?8$FlnluY22~g(sD;&Fh=k0tLph*@X;W)mLd7d^@0#Hl3v2;-aL{@SNT?k zw^hwsoq0cPR4q4i>)-r~(2%H&j03t>SVl5-vv9c6XG|}wVtI~N7zeR?Rbl9n zx5X=-&2`S_cl<+ej~r2IJ6&g4y{`+A|mMOxv^M_f?}GWBS<$E&Z?oyY1d`c)4xMZ$LqvsanmR>lN8Q zHrhasExN&x3EZrM{Gh~gsYBBS`no~Q*pco$ofc||g6YBq78keUK!6FOe8_;+c;^)Zt3lM&xZV9sJM+7e%YNYnPv6e*b=x#F4xBWlAM&HgEIg{9DxWeGeqp?Fi#|TQ;;3Ra)HP zf4B}AY>BIk_U~h~Nz@WhF|$45$oqIpMke5(t(?RzkS8EDzAZoIcl?!ZS}>{!@(EclwG zF}IJHav?2y^|TlB0sLfN?W1MF-z#l#U-K%;`!PQ3g(9Aj@sbPI3rO(?+ zGg4pqr9XnhYAEWZP^MAoo5DeI*mLqbpbP`>FYyWe8O7c@`rYoyKQBU%1uXFH;W2_8rJzxQ3XzSu1EtZK0@{5fupO;_ZGPM=^l+ZA@g2P_4f zVie2FvWm`FJ6+Da{1@Pl>Djr3Q|`tn`53pe6U7-19x>wDoe(CB*=6PfHAeg?bNz+4 zVfAQGwX{*w3a47mN|C!`6P}N}sVP$;D2J(7>w#qxal$T*)= z9e-+1y?;s#!Gc8eha|%NV}n#}>)<(CQ>7-U#gXYJG&`K^F8yt)fBLL`X=_Lyds1^~ zj}R$jZZ4a68PXoYWJ`h0zw7?9FlGV_{`zH*I@mp}a#tYlQg z@AgN+m~B~I-F_>o8KRz)S0)M1GKPvvHTAd9QUd?CG!}Sj)1}#UD6a+y9iPs}x&Dcg zL9CGeuvP9?8Y;?^cXcIe_4c#3X58O6#ngJiy(>ayZQ!~@u&(bt)Fzb#DOAjQq1`NukD5YEnF z7CbRpgZWSy&WF*6Q9cchyyX3-aM2QXKj>QNSaQPNt|b-cjw4}w&=RU)Hx%6$HhBJX zfvac!nxTm6EG%ABbdi>MJ>99B0Ha0yKA=NWfTAv^!q|H2tIM=_yR_y#7S^Rsr`pMk z3BkBVqTN({c>?nstDH*jm@?c!*O${Nx71GZY;Zw4zcX~a=JimpWa0t~tVmdL9ynb| z>#M%eO8AL!;YEdNZ0c;fu~4S_le-bo-dB#G{nI{?4kQQ?1&bJ(Ot5_Cf-!oVRP;=fn=TCoy;%WxnV@i=>- zY%Kq{^d2{@JpQKY=Mk2PspizPLB?|X-VMW17rq^lba#7XC=25EMUQT&KVEgU>bSYe z^Ex}tyx;#eQ@t;E!ScUUH7fEQ@5@IOZvW;H9>oOpOMDKCy9>@T>Tdrd^LIWbSF-bW zT#3NY^fw9LFU8gCwDv>#^eZ03{nAo-`0B1{$>wWG+umBR1A~9;{#fp{?^nQ@sCRe1>f7Kdh-RV<-Bj9jYNKg;Kh8sttixaigKG_*#P7ig@h4d6fTr5Te#M{2t~; zdm-$-KDclC8U1hv>UT|O>7;KM%w%zVZ{hJe2yo4G8{%ldzDIBQ_U($JbQ5eT1$Jbu zm+QO!=vm{k9ijdGvR=1u#{ZR|`-W5vEs)tuOnqfxkEjh$4@_Z`7OB2(23$L{Kdz4WCo}7`dOvzrQe^(#PMV#O%676H(QP`aFZaNs{7z)ayyZR z*uDDUCpYxg)QzGs$o(eYNQvCe@fR0e;uYCRN#zSyqi?>)$NMiRgPV(&Jjuu`3iNWW zZY>X~d@3WMhg9X|;4 z7)DDkj3o&tl$~*Bvqc3m+XF>L>AjL)flAN!auEQxN8=e^_)(5)lgrY{eYmcp+M(C) zDJA*G7u}W-%;F0*^ci*taH~@7swV+mC@y?pRC+b-yk<63!=9n1n;AYyb**`;9r)6| zC-c)nB#yq8x9dSq;P6y>J2T(W!D6x=)k!ag1g{Fs?S1p@-?-@EVigx_1z*hgqsEjA zE$^v_zn=C5}#vi)Oo-C-yXqI`hscU-h zM73Xa*3#(8y(6T_GAcW9uUT*8i(qMM!E3cCdBl{icnWTRKoCjz&Fgs6l_bYJKX$YB zrdzZ&iu-DqD1NVDOOHd^QNot09nZq7jktMt8?3KlDR_7b^JolGYg4&F4l7v%TS_8#(K- z{_9*Nk?*X!o=iJtXr5 zR-cjskYM(Ec7oS0%F{@u^vI(Av{3UMtz7Z@NvSsm;sLk~Ww(sd=9wP7>Q-KJ%jJ)s zw}dqd_zU9-@(pU}Vdgs@d~*4B&8@mQX9oKq#_rxy5GzBw7vc@M9Rq(}rYLDjzULvj zl1$NT@F6>L-Mz|RmL#!@7PGqStUegXiHn1oO4m@Nlz_>Ox*3;CW)4^sH|QVVDB*Oo zPj9!K^xzo6VXY+}Hl|24AIK7ENZnr(na}_S;nXQ)Kp3s4~j6+^CN$YJ&lI5EPi#C5LCjVDEj^ElVm~H`%>R| z`5qfe6b+<4=4TXbS!(Y~u57#-JaHYVe|9$YN<#P{Y12x$Ib~b42Z3`|p^~g4Wo?nK z=vS+@WV;K~@a+@Z5!i55$iBt2G@Y$ZHci0*#jfp#q^XD#8q1PW5x?M?ku{`PDXR`6_LlU$H=i>uR4+BynB?AR3iE^J(AHX#Qwx@X*e#Z_qO#X~E z^%iBR=R-!_jF8OvNYD6&^X&yQe1{rb3bB-;2z@ix1As8Z}czW~Bvq!N)X4HekVN%bu1@6;sQvFk0 z57B~0s^B1?k||wV5KOc>DM@a}@clkYtG7g^3%*d6Vxq~81y&l5FE$=Z*^txu9M*(7SBI5CH(4Bt%F8H)a$0=ov6%y@31wKNwT!&cu53)l{)ji>zyPG z!dbtPn`Sca_x$&=z7Y#wma&PdAD!mk5TCbbOxql8Xbd{?@i${8WzK+3Vs_H|0rgRJ zJwXNZ6;7k}rs}7i1SnFnjg|Mvy=*snUjw7ja<>xjFeW z%v*oN$o54g=u?#m4B~g?+1Z_0%@+0r2urkyHUgf_2=|hU7;o{x7<^1kO}nFI+F7}G z^KZ?w+EzxMVwjxF%+$w=jHUKrak8$L_2YrJ)p3)1FTj%*B$*~c7G^)F1NB08@-A((v@PqNqmffor`@-SeRc#O0d_m=jKar++KQ2N!}!InSgI5?<2 zyq)2A7%nLg%x=I8Ifa@FVp)sg8cnWNA`*KL1>Vpfn;VR!|EBWvG%4xC!*;J|S(Kwr zf>@`IxVGRG=K&XK(>~$%R5Q*`$?v4)G%P#G;*KW0J3oms&S*R^VR7%!`xDadtNc09 z?aNE`-4lBap`qzu8y8oq>U}*Ht$)FeWY+|1g_`%6sb!ziE-FVp0mbt&LehG#vp&nJ zt7mvIq@7=IpUNt;DsDAj2!2LBF;0dUfgSnW!E3*JJ9pWi7?nQ(3N})kT+SNVE|jJzjjPKlYB3} z@z+En*>-f1JkyTKVOa8HuslIiZKtu&!kkFngpduOmZ=Pw-=Wj)W-xLccJQ9b9DH{p zzP)v$P#jvoR5oxXo6YX(D5`IN!e91UF}YU=zqq@^9iMcti5pVCA8vgT@qKz_{+oAe3+9}ei>ad#%dS32o?sjk ztLX2eRkUHYw|pnyzzt$*Y&ib?y$jC^@LakReTF3^X8XmA*91YOYwuBzTAC+<oF4XpI>+csM2F;<&$f)Q`F9Pu4bf5i5&auH@PF3a^&R za3+3@;@gPt@RNW%S(PtBvt1C?rLhcb_hcbQVWB;Ke}b+}#&CQJyoO-a?7svAw)HwL zRz0n8K}>`{_qhGkBYh4%xGwK*h`730=l%sH;6UWGvK&stg5x_R*`+9R&G;BOkaO2K z{;tt(#j|D}g+~g!N&;l;d9)KBsS?PFLzJj~t;~rHJB)ew;_z9OwPWRZD1DCC4k-wO z?Dyg8g)XmRZM3dUaaO)th^MAGh+3?`T7-Dhk|ozDX}Kp^^W;6=Gutg+ompR68<3XQ zHq5XEs{?`pE93Qt*~ zq*=FZEfa{EEWTW_W<_ax#a)!ZkwFEonBkfW*v;zJ5mRo`q~=98YO=QFWiG8>DvjBl z&suEdE~Qr@!Yxe-E@aJ&>_k_hJJxAxStW3JTE?(-m4*VFm%ZrIZ6l4j&+q0FZ2zrg zyN_6S7&RyIZ8(+Fdxx3*vNTu&L;S^H>Lysc8|;7{IZm)0M**0K>W zqAlEs5mMK5kuP?>R4c~QZv{+o6#dTdBmPS8MyRZYjxGDKe%@q zxfPM{?!n^&Hr3Qn;VW=c#>rDiqTlzRFdHNu5-VrLw5#}nld~~^h&TVPN=!jbv21-B zGNZNoNLl9PavWDR^Vw5XmtHPXIbf!XXdJPpV~{b^T8@*h<9$mVC(~!P-9_=sdv34D zIGZBc)@lsHS6h4ImGEarM*TXvPq1qrf>W{!#W_X=HZ~)yLyNBsCq7OZuRCedhK&5u z7%n(5!X}bRIODh|E~-;yx7)Xq1XjY1zA{&_Prosd_(B(y0`{4HW6aGNBo&6y~ z#%udhQpL(9`=E)^mquFF0FiKwmw+rK8Vc(RCz-ULKr@NdG=$Ghe zQ)BEjjZwbsdoOFz?yz_XZSekBn7wrQ?&@iEY5e&^FVBxgKIZGWl!nSK`HRl}+Is?` znmi-m8KEFMFt-=3*1PCj^P|nKN2YNVRmPc&nOV@?@xhWmLxUEx;(fqzsG(tg1q3;u ztpUD^i~4Bh^+<735XiGAkAHK)qG-zJpV?3vKx8^NzRf@ZxWIWlNjUTBezxJderTv0MiR3SL~_F@jB zSrs~dU`emKB>?9`jo6L;{b3LU!kwwK%ChprntRTKjz*}w1Qi}$7+s*gJ({V<>WBu# zF$wus^DnfLNyhcD_cd<)3TL9%CiNx&_|S9zcj>aMf$vDVA?q}|u&ke;=Nakt z>56}712dfpVSa)C=wH(kX&n8EHy7)qnk&PhBbKw)T~I_SH)C&yKOl^FWse(1bFMBC z$(QmT{;!!A_j*vtU4nxk$#gvyHd1lHpTv6Bm+$s=*LIT@kMr3CtluD}3_HDrx}V1U zD#F&eIhc9-jppa00cEg{ez7_0QkVgudc38~PB!&3x1Flap^xcHQLix9pnE@Cbmmi= z&J+vUPmuIo>Gmf}(oNMkk-!TBdiahq;6 zHRZ96nihX+m9sW^8e=~R8Q$k7YMz^UJ+dj3GMHx72f!NL~(Mq_|1}2ZibND*$*&ho6rB1GD=FwvQhfo@cBTZ}Bk?!3HK9KyVI9XDGn3!_MBaL6+XPclPRw>5Wg>k zqwn&Bdciy5b*5O>a?dPxETS_Z4b=RaRvMi1lhm*h7jb;#qLCN=Tjp|Y#82*6tQj=C z6V!nBRyjpy3#^5aY5b`t-MaYJi-8hy3T7H+3^{6#O{Fi|N-Narl-2pXefGtJEwW_n z3-TRj=e#IB!Qv+IpDlM|W4Yxq%7xg$O%3+!CVT;%v)|?=8J+pUmlTFBWw5xC{K>@X z{Yty6F6GGcGbg+g^9Jg#^M#$ySa;FtkR11);a}*7_YJpaEPGn!xJrVMm+*Y7LWEs%CB{WFKyXb_jrJ~H_% z=D`@ccMW`rMT26p&(@F%s72^qRw5Jd?FhP!yGean_Oxai@x%m0jm4mRsn5Y^&~s`e zPYiM&4bq1`0PVBZIUg0ET{>vcfIABKa{iQTf_hsdx}A&$EoQA9j;>wmqd`Dc=UPy716`ado1V?P)^b3bTx2hv2tOppY?#sg_C&>&xvyGNBv=s%NxV`z|r%Kxo+ z1`NFzMuXab3Ve4kbX4?A=B^0kk$tOznxno~Ltz2R?=?X!0#p3oMs^iY>d?C;l^bdl zpq|p~dr1IDz`Z8-z@{P4V_OuUKK)n?H0VF`Cx7V9F&b1hHVGJ?2aqmX^g;nyheC<2 z&)oyMtXDyjqe1*=(2)wV91U9gJ%^%;gcdkma$e0neT0&tL1EB)JQSzXT@VV8FAI8h z2(UT=@Dx3}YZ5`zgr1wD97TTv!>GqZ zuf~vA&}iu0v;R}|M&1)3-45pypovm6XoJQU1$dWeCn^eo2AwuhZvn^+Brv&tfCA!Q z0@v1;kZQ;(lx_^*5`YY2Rp)&u>gEPOqPJaDkEpf3DoEq(hjV)Kd%!%0r-w&6sDsWe zlbhIBAV@ExL7j6?tia$gq#vMS(RI2spn2^}*Oh%=yw2 z6B?xFbWIId9k8W?Ne>kB6a`Gb58O78{b&FvxQhCU4e2PloBc?FQbU7kfk1JI%mxBo z_EzWLrUyJ!9)LkI=w%i1`U(gU1Jna((Ci#?3h4w`VGeJ)F z6|io~5E_)42><4e7eqIYJI?0RZlHWpc-b1}&IRX5W-&Us*q~z5~MHfXSmsz;$6q zB;XON$$2P!LX;L;5pqNdRp`$f^SD>_P`U|h;(zj@XMi+6Tkx}k_j~kp!XK=_C6$i%+o%K5_++#a?jC; z^mz>(0wxd_9nXH4LAj%(_W*gf`jDKQS7x1O0ERfSH?nV^I*;;@cBmO>0`(OhQs*HZ z4LZ37>{3$X0P&Pr$OB568eLnMW0r8TA7m z8Wh~Q(1he)JC=EDMuTQmih26JG-7p9w+vIpwih5j07NDH1_m1dvqENTF!n*0pu~cYea)u yW3F_Nfxrt*_VE5>)^5m9Ogsi7r?p@xQ`d*~RtJI4X( zhCjcXYu#7(-hI|NZ_abh+Ml)e`JU(5&%U3zUjaPRP*GO_U}0eatR4=){X9Sk@Z|A> zVgKif^W+H*9uXcME-v1)r-b-K&!3S$CwoRlMoz^*LrzIgNk&G?MoZ7g#KOWtPQ%W{ z&dkZc%)BE4UXMjgo*w~LA{C@y=7#;L*AMlv;2^ov90?ud@96UC~igpUUv48BMA3VR|6Hro7)6jBoa&hzUiit}|N&%&nUMs7ps;O(} z8yFfHzcVof+1T3Ie{^v4`sD57>*pU3`aSGN_|IPv@d>{ZlafYCcRdPGAig7s=?f7h>djBXs zc#aWJvWu;99R3IGzmfglfqnb`BKu!p|C?(LK!}a?5Ik&BfIML1CJnp~-QYfQm7ifs zG_zgbTq~}RWeh)tS5_SP(z2x8f`^lP6PP}I3BGldfz8LYqzp)(^2_#S<6e^7PTm7r zV9WL&q_Hk0J@~(Rc7aQUGM9dTq)n0=4pJ7Hoo-4r8v*qQzd2@?@9w6>$#3P9zuZ-g z&pJjGeMUBG6wa(fjU7F5?T-49D){+5KtY4q^58C! zE0KC{Fqj}ifc@i5FJ>!FzKJ~UO4p{2Vt%G{qwpSZN+45lH?qd-!Nl9B>+35pjvk>v z&0Z)v4Y)}!zpYBW?y3xv&k}zQBM5#j_$>X7+|$DHn&%$y`Qg#RBUNvm>y6+rAJxv< zq=Y=*v4xy%--G9F+ZS6kC7*?J2S@0Ae0_<5UGdz2;HJ`utt62M$#=P~Z9$t}uSXdbQX%1l?WIvReNX%`IQpeuMrny{eN+TQil< zD}Tt!-6q$y1zYD4id6hks*8bbL=!&tVA|CcZ?fO-nY}WuuItbg@ocEx6JGQh+2HNC z;TgxF@y3?~J(i9~oYCN(7W&P}qlETqbO^555<14tXmpg}f2dYRe#9?{B>_3SuLnzv zJz!?-(gdBGX1o8GdqmJ%!Z+$es?)F&EqKwy-q>+SMb>rhalviG`gQKz6~zgC3;y_5 z78eZ3)N)!~XKSN-R6#OunOhYrO=(&Qzx0%5^aY(7q~KR?9OypXJ$ic;VHG`DK4`We!Dswj?!yw+9Y2Y+#v{1mWT4(S9AmR6 zm*n!yu@XG7Bt0`{>d=)1Mr>C~ypnm=KV=$~B(Lhga@r0&$?n|;itZ#FU-?_8U z!BA&ITW8hW8y+I?k7%lJaCtFIIP_FDn0EsnnWHe5S93kIYrQu)#iuk>P#<^qrjcqK zQ3!;aWVK84w3%&3t>-4X9S_-Su9yQ2C??kh7VxTWAP7+EYSvs`UxpB_Nl?PDVwOfg z&*XySw`7MSw_N+bCHa20j`%WMu+C6=ca4l$4r->5_M0##dRJP@qeB`^5>t8G^rjcZ zl7l3x#vfGt_2@o5S^O3i*C#%zuxhRdI@WpY81MpE>~lvo;q01SUp`?)ML?_xCs?eg zr{4-su}+F`+$fPXE{+NF`}`7SmMs}TI8C@1n%B9I&)=Bf-nElkr#)R08 zs}*=JW3X%u)UczYT9%MVcecI-QU4LGg(v2`ZmV5bFN80Q)iyUI}qAvsTuPoVozOv%G#tysN7D|Mo(xT zYE*M;x~!AL7dQ`Szf>_^z;#}a*iNb;+id*uanVGf#mTHMowKyiaoQJrTX>FjPI;8i z|HyunG0{ou&;nLaDU>BsA%rEf^`6AlU7mLjvo9uVuM@RL>1jH@(NlTpPeZdJ_rzeL ziNU6#`s@vhqDWDwk7}88)^MX-l``DkNCMa#_WE+Sf4%gM$MK(8iMl;q$c?_nKJswL zdAF5<(&T$UX_eW7U?#=Zu8`ETN!_3axoRLwdI@Gte(az7Rf46z-&rg=LHDX{s#PVY zc%j8|={1=zi~aUl8^}~ye;5(xks7^PKd@`!QaHpZc5)&&4Vpl2KBHw09l(}VAGt8D zpHGUP15#%U=753NvXxTetCI!0{e!2l34P<&QOXKzSaZK3;6{(CT!q-eG=+yqqx)@t z<&#GJZaZZ+qFAcRr^4qrQI9EV+Luc$!Dx0hXezOT^ke3%d+^vpFPIL?I1fz5OShNm zoC<4Ejbx9St`68q&A8v}k}IWy4n@E}3%)tQI0We42n}kZ@J>h zj_j<$o>fQ*q?2f!7aX4}uK2(`f73JPdiB7>fnF4I4)S5bR}*G=T#0L?z1{lRMIAv4 z?kyKZA5=jk(c&C9FH=6$ht%Py^zxH9Km2lvGNDE7Fz%S8o~dDRY$mRetn;sT-oqTD z%(nhllV96zr*L=QA)l&|0nK+%3+_ z=}3sRlR;xa^=WW%#cWt9Ua>lQ_a5+QD@|qyI8VmtQGasxd%LDSZrJvF;a}03V4=Ha zJ4^JuwTG>k+KzB64(@0sbQiLA7(sevpb#O&+xU=b9RNO49jaaj0 zkbEi6=J-R+;@4WlF{(eojiNR+Ro28^8Fs0y^t_ltlav8h__?-a_F26jl zi`0uaj8e$0f4fNH?7Iur7>nPfWD-LVv`P*nWI;>)PpHUXL|cEXK-7J5i$xudm9JOx z>^^i6LYeaAKFz6Alomkk&wjD@64>YwOVWoTl|t^s=9_&+bZU*7QbGNjhA-DgX*)yB z-`)d+MbbBz_7B0wr)40sil&BE$+*_JBt4%ZPY`x?*$useaZ!%m`$9-fKHjmCk(*GY zvyhM;5Soda;Su2DKBj3T`Au5=rOD&{el^Blq&NB8_&uc>^nE4Vyz_CCm3=yGPdpEc zXM9iZ@}hO9T4Pnn^r-O+szbkEVz;U%lhx~el_ciDy3@gVd&ZXBp5NCbpF)uGdMZW`fT4dxlQ_3@;H z#&ne^XC`^-cDBoFmgukos*d%!nqr-1IEhBV#J4c}gL z)O1-kMYaI%y!*t$Wu~p}NcnPTk~SGP@j;$OKOup<6CdE65@@lTPivPMAr=eauL&4Y0F*{O{6&L6y-r1|E-BuM6nT4 zjVqG^g^L;Tt|OvUC=8RO$C6bV3lJ8_@{5t~P)(et?<4=nneVvE-qmbTS#VAXV)HHa zV%tke-2>25wrBYsg$tMGxLzOz;kP|e3y`^JydJruiHE@O1eWzCN=kA?B=H#WV9Quf zUqfZ?3~AhRpCX%8EV&3ooZ#M|-)Kx(6X~XZvc$Ba*1j!`{I``Dxq?dX$VJ}06}bef zvpB48<}K%|3E<&MBN?o%=b8P|;~C$=EU;u7re$TMzatQ7r*`ATg9zv3UR9%qkLzMW z)6v%|aipS{JFS-vA&aZg7*w#}(ECF%jo#ac{vKe8GIZ#1BnxPcny^`$Gi6JY)3_P( zqJ@|Jy$A4mE<41LTwENd-6r;x1$)Lsayp92&&mb+dd8uZqEc5bK#GC zaoiyE4M{*-7|9F8u*!_0)Rv-y?JjLA#=Eb7*a%gJhJY;tM#nL%Ev-kc9DQsDJnJ`( zwbA)QpGW8uME;bS|I^`unv$}YPqh6|;7U?Z*^N87aat*oYU~iQ*sjbjNmJ>b{*myw zTO#mys%mRg(E9BbArLtm+G?7{!4Rt(itM1`T@ueRKHUVCtyD-Z-=eWUu~tbe=e%)4>mmxg37=-KNX-xr_J@$%rk*h1Hemd{F2n%>L#zP689mN zOOt@C&YTkT&j=|AbS47Hbv5q1pIe>YCuV2YgF{yka0d6q4^0Et=IEO_mt<|bUEqpq zOnDNAG32F&%njvBt3=7|| z?0Z4G<7~(9r!P9@(u;aLn=j$Hj>`i@l_$X=%{;S()s4ZOnXdC+nNYujmZ&I#FotX* zViB+Y62H;+m+BDYo2Us7{C2z48U_sTE#R?bkiJ6s|M<#fso$+uKLRrJO+VBzK9PcY zylblDJ=eXM7+?=xX3DTT&g4PYdqHYgot^S3VE2G`xTvz({%FrEi6F0Tuf3tnf|5=) zz8IaUqMN=y{DG7)hE^X7wER=7=wP@}w<36@1(mgsw*$oN1n#~rJNU@y8>hH`OI2>c zc~8xX6Tj^*%W2lpwcjxvW6ZViJ-@qg55CM9kwZdm8lQ(J5|mL;79Uz}1i8}c!gNw8 zP*P-T{+lmF@}ynb7-vt{YWQtq4xjYnvUsNHQ1AF}LxvvFVDgNzh=%XlUdl;$rY$Z9&Iy-9T2n?t+%ZJu@&J~%}33ETr#9M24+E~HRD2yDP zX7HDSsB~aVxALh1(+%fLDL5)gmrL5)&C`5NfrVfCjnrw3IEcM6O$2AwpHCA3(FqNHO$1ANm7b^+&itCkiuqI zm6=Ini>vXD!a0!Onh=gfLGi1!B(pEw&{1+<6{P2)|KZYcR(CXD>Jubta5)gH&~2~@ zV}EadIo%rgnYV{Nf5w|Kx_kk4%QHU6d70~NC+lINk&{N#tySR_-6_V?9Nzy6i=~-& z!&MziS(T!Goek1TuiN7*vOZ&&r)m3horhX>L<0`AVP|wSO8s@I)^}1wMHTrioaVI1 zwJWceE7@sNTb3 zapMoww2Kn`YF7H`*-kBGOx-j1@5qGakU0_*qLp~h*S#xN`B|K1)HeGaPJ;vcp}>jG zlhSxIB~Al`a~53o$_E}h2#UPw%EbV!1&=Cg=Y!j1o!LM3XDpaG^&YXt3z|911!VsD z^Fs6!v|ETyM|*v$OywW=(k>Wh*U~g`g!fEzN-}C2K9$Ovnd1SOh@({Dl%Na5UAYH@ zy&emG>T{z^EE}SholZ}iU47(L81%cws)&{?9 z8Z~Zapk*YEkv@SF*@iik*0DKgWPSi+*jg$ZiY3}Q#-I7K294+4+dJl2!gQ z4v^^KR3AYBo0%>OSFFd3*`eK@YyZZ&#y8^|&E8Li*{gi+%N+6GC_!~|b|rEG@*)@X za~8@uqI4SzkzFjJ8OykcatjhBpHy+3vFyW_|a< zc>CQTkrrQd3su!!Lm6~z^-#Fjdm>UdH8*U-ZLz1h4`58i33c0Q;l#~S3cZ*@MhQ+| z6L$U(q3QVNE^UALp=r}5NvX!zL+)F1R2EnMuRnW}Zh?HkT1Uc(n*`|<(h4O#U1d|q zQsp3blo@**JsbV=cT4Yo>c%{^&&HUljdP@z*EEuU!1KhL@q(PUR=S^X5&TYqmD24V z@6}1kHswK_w`*{SSi&zVVx1UN*xS)&rio3BQGLf7AnFZ*PM7|!xS@dKfCQpQi;tx1 z5peeTl;ifo%r~7BjLRBBRj(tTo;R$)&5%hrg^I+g6i~M)S0FAbU72<3K zi<$b9sVAD*Qj^8r6;BBp?&4mUh(T{%rfuGNXR(RJCuCk0QY?7G)?fb2AMz~yuvs(^ zTjB1cH`m)p)}C4gPD2!(y(kH_bAJ;U{lqX=$w_=>Q?6n*=!rp zg?y?xr)e>O`1G;icteFaBzHlnfL(ZZ)fOoD?$ZhGjlA?<=TF-PX8tyxPhFZGIekPD zMK`jFz9j9TgVqS9WCf_WFL;E;I~_MEn-~>s3(O-8p<}vkc^i4G>j@&A zY#@S^f(zAx{bM|O#^<3In)c;aABwynij@@fs56>8VQKyLUMMdQOip1Q2gX9A;#O(` z=7M#<3b;0i@Ib-H1{{fb4bi)XlY6gvsyUJf({PzGyq6dbm0L2%%oYXd-5L5=8qP6O z^)2sCq^>5qm6$mZ!hUKXo@?neTD_v30SH$v`q8-2*hUf!mCwqI2{yN^C_3hi*Rx$c zWmfjD{DD7?8w<<)?UNQr2~oRO| z7eA6e8P@7Jy^QfeW^Fl^U*a2qov=e8JI>arEJ3~VMMR2yJ~Y3rBfTKgad~n<&V%)n zetbg?isY&$MFkSY<-ODx8T--EYC7h6BwV8~!q*PIpt?iMC#S@`PH)hgX9^Hm2{Fp4 zCd_GwNsKRRi`uGYZaA6_N!SZCRQ_XXH>e<8l12wJdDg_khIvn> zv9aQ_)#5rXNWLhzxgbjvxR?Y7iT{4%RyROE{@A6>1J&a6bI)@e3N?l=1o)dp*$div ze|b~dvxst06s|7sJA(#g4tE9r`BTi8ef<8!x1yKo;{fAVgEWN8@VoO9io;-&h+Wt| z57(ch@cwTMwM)LKKZYNji4S3%)j^o}&(!fIAx4eDx)a zC1Ax4BE`c+vlGNS`OBBr*@}oxWwE0~#P)0}q3^O{D&yM*fN_$wOjTSu+oB`= z)p|re>HF`mXK`y}IHdl`%EI!& zu8J^~zhfbK01^v%f=scW4`q#=XSD@t`6jU#W)SP1sTc*J4bepMrWYf zTA8x8(tNPIlhi&~VF+aOo9+y((tv?p5=mB!@6?V3rN5!w9+m>!wN4+EZ5-2&TifOBk+Z+eZz6TH;3B#x-%wx#TwFoF;CH7aM?5c(ux#8-G z*7d(u-KiPBpUKtqE_Td(Y|}GXk2yV?^|7Y^Y`Z^O7EZplJFibft(y2yJcf$#a97BiO83yPgCXQS=YlDIf!sYk?bJSSf37=gWu1*>{FcI4YUOFu|yrkVG_UHToH+_&(N@`wWipXu9TSO<8EZGEG7@7gDqcqU;lFh(wMz^}FPucbQ0 zR;m;)_vfDuYWleGbi=@%CfKWuAYf5VoMa>0;=&n>0S;s4g%T<*BZnIDZk2#Q^JOr#dPP_yJE6RKP^2=P19?rpNop^ zJhm^y9sR;o>fzjFxX5IfrZq|Vaprrhv-NBn~MNRi3Z8D<9V;y&}!yl5OxXn(E+-`;{HBRF;&D!(yZZrWQc+D$7eyr-&gDn979ZctY@##xmb0{KFLYk?TqwYalP zU+1zAD+=tJFDM?-nLw;M@M;@ZsmAwlC3%+WK84}EOo^NOlbj@TM?nBii@3HM5obN& zm^@&Q~%sf|Dt zuJkh!e}&C##O0)jFor`*O%SPNwuCFh!XbvSWh<&&;x^oSlMpeG-lG||lVS%Kx@RSK zW`QxhPgXVqf_RNm%c)|Ym{#zY*S>uJkfTBCs8kU#dxzbb3CCeNf<;I7L1SD(;jw6= z?|ZMCc@@-prHkS)il^Og!@>C)HPjSb3J{wppCLsRGq^aL!D~H`QqR~DWVm|a?SR@J z9{TkV-6#C+3tLbgB*lwpmvypQ$*czXQa(cTjcnW3@28uzi{)!Z*__kie6byu<} zg-hIH4r=wD_(i(SiNP{WXZuN6aEsrkZ{f_{Q&xrRn9u z02V%vku1Hqj)S9!rO1R6?(b5X4Ps^UUo6%Lu-v5myB|y#+jq$RuA^pZf^U2v`s{lE z{tn+NU*~LJ&$be@|F1@pb^bEbp+~nvH*L?m!?5**3I00+D-}uLs!9OFskpT4AS+nA znFOxzey-~EZ%rYgSxn^q98v&msc{(OxVLw1kQtaN*|LWC3)p!QAW>7CM;T8&BT4<1 z$UkGeSfd-PzuO%ICt8JU!#QS!rcb1Vy#*(96GircT#&F=0^Mfm*}L6_Oo7a6EtP5; z%4mcu768SNm~w@_|*Q|vvSUrwv9|xZC_T^9iA5_wD3mOiV$oSD8HVX zvau|uHi@`Adcy8YvwdmwR5dEyilC-w;Wk(I$lz{&;fu?imtn{UY;Oi$n*-KACEvBm z9D8F|41m-_Qj(wTVrNBqo23m?CVeqp$X0PxA8kinPU8hbPIc$`T1nXBKs^|8s;Fd; z7D~o*I?`}1*i}mLi-O7FXiE#L7!Ae5g5G7WKkz9Ia z*IC&?8?Y7y-;aof^H>cnyFPKx7}kC{{m0K|qBXp_*xRTp+$*&01HL?}DQXH@)rnp{ znm&=`Z;>p0D1?4>MbhaMzHwK#%4W6oLt3J*CR43#Ez|b+ET#rU$hG*~H5t9;(gYf+ zdpN0C%2huHthEZ48qXPc$~tstRsh;IUoUrtMw>`m(q{$md_I6akHnw&-- zne7Jnrkm8&Eog_z-2=93{9QK3--z~ZbNrI4IrS&To!3NDfc8t_lbI^KpIg=fzN4y? zlVV#x+eZxgE;ceas>A{0`=JqLhEZEG<);Uh-nNya$F;(n(RE(wdhAZikeLrQ>QWrS zJ^MX{B}%@!kRhbrM7UycOrjUAeZM^I52@bncP>S^@TpP(d}k=X%~p}j=S(l-d5B}j zpn_C4=Z{pCwTBYN>bcv?H1wMoAy;W*Wsc^G%ha|az^VM zlPJ>!DOpS7AU4(u&XkzaAtex2KTc?MS-i!A-_+FAS@Nh7~% z$<-yO@xomEuC;6%o;W*U?*QW0&^{yhYR~?UPqb^UHj)u6Y_2WrQ>4X-j}M zNo#eCQxI2zhV)_a@n5}H1DsMd?NqQ^@q2nPYQrEV=t-?)6TwR@>hql`M^(Ux}OC5U-rtTzd#Zw2uRPeveiR;xe&f7S`nwRnL5wr8}NOag3-X_TE#` zTt#nym7e@GFlbDn0=sc+L_2NyzuurBem6;j3G1>oIlH5Qz7Z1!>T^2>e|oND*)w`+ z@geN=2yt^YjY1|WC_6Td@GSOKW!8_mQ5;jws$M_n^{3lcOi4H+b>gEngO2ji%@SXE z<*OyW*h-B6UOY^RhB_oi$Fx;M9nROc{WM6t-tv<@j}HhmR++cKa^DN;mCt8WaHy~` zrkgm*ch_mnC&qKM<9GTdibP%`9~;A3B9CIS+E$7Q zOa*Wew(ogPi%I+OXebm+6i#4C%Gia)T0bIPb6O{3bh> zdh(-of#hr&J?Ib`lo3LWHYKQ7PY*Wr`#AAWRKGuBi`!qIk;DJWpzk>-&dAi`hBa4` zB(tZej{pOXk&|(TlJ^5H)qRz(WT{xH*OnS4Mx81CWK2WcW=eSmt zTFdn>5AMjBQ(w{Z*K!o>ucR8JkGs;>Liso<(M9M8RH2}{G0%lpATlUvyM#VxnpWLQUh(KI|!ihos(?nc(Ts+l*}F>CuoGQTlz& zIo5m#ex-U3D9Rw`N>`y#&7t_|;KLgfH2!5UseIzg zXPC>h?URFxDZHwVCHy!*Kx5(;OUAHaWgx7Fxrq8{5Mm*8uio0)lmJ0 zZ+UtZ=X?1haT=74d-#>%g&g&T1zE|Fg|I7Yb(9632t-j28RpQXy!OUyN(A{6pPMI(H5t^|Ii(EVEQck%*o`UwhN;( z;K*)7j8J$ceNB_*fVx{wya*ot3$|07VstfR>}A5K=`VD}2GhS%87(=xaT~_=1oXkH{MZ~8G_@NxOe=NQK|!ayLzVI z>L~Sl0#nK1Ck3jG@h{Xcp%pvQkSoaA*3g>pdtMRAe#7a|%PD7xIoWEAK>l~iBdJaq z_o5`m4T3pf*i^ZwA6M|te`c~IPSpW{*im+@nWN@7$A z$Jx>cp~uu$UuxzB0gM)p?g4nS$RpUfRy|Pn0EO6F+vfA!anT{cyD^PLIuU0Tl=05tELI_-HxH^GwfG0vx=7A zd~V2}(C_!u42x48b@#YHwNFO#Al~d#rv$3yKlTd=NpbJUaRQR4;_f)1;4S3n*z}nt zGjnJTr^HQ+D*FB49oZpK)4@{*(MA@w4Z4skP-&oUu|_Zz-4wIc^s_8H6$W6*|&h9+f13ZIS6guyf9f86W&!c+=Z0*|$I?2?9%CqE2%EBKMpo z1immhjgy`gR97?HARj+;$sz8%7yN?TX$6y=SeMMY3x@{YqciTVi ze^N|T|5UMJ6hI6u6gK0dfg;W0l8~F`oLT=yy6WQp)MoK(AP>|UAKiM5>{=?#C>8A1 zqFwA=YsauNex~#l?|M8+*bGfrm?k`|ycU+u4ZE}R!@%3=I%!i+xu36Kmbjg3C{>C(z0Pb%F4Sh*VW=hRl7y_r<12i`M8b)BPlQ19Ff@JKXx)o84 zPuF&ye-WS_FC9vwHlji*24TongZL(keN+yi3JHD0FN-Bc-!QpU`Tl|+5h|As2mRZr z^&>Hfbm;!V!*2Z7h_a92Jcj!QwffFkhT_QWvn-0w+o2CvQex~%S?|r-`1Fz!#Bfrg4{qWWQK|S9a6rmo{ zYyO17?XStm0l_WcL6(#&=E2Lrs|iHTOr%r!rZS*1z#eTxgg~~|k&jfC1KV$a`JWyK zF4qr<246GNmJ9fjr1@^h_hi-{sz@2jC(`%w8!t+{pb3`NSt31_*sI&#G@w8m$jpSBBml4gqbB z>Adh}vU;k&^y4l9zL0m?4F*p!Wv^w)DEAv)t0uQEf`{{t*9-*TXH8Q`&KMV4w-iHs zXKwMZZ|B~RQSlfL9V4RCNt_K7`>A{53`cIB<~s;f!M)|fWE4Bc|B)jw<(FD@nQA>V zF2k~B`C<$H5sxE6!i(%`AAk1D&dL``_$yZ(sCGuI{|vcB`c>AC8d?PKX~bL^A;Q@n zrMOUyGPUVqo_VIKFm$bk$nQ@S#$p}w$Tk{*XPc25JaYZn-nZOmKYe(MOw&cGa!&K( fS9KQC?g0!Bf=cJzezPlIwR)OA#F$$pe?R+Q7M>3! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7e63bd63e15e41ae5cc6de1cf5c9d16ce6a3ac48 GIT binary patch literal 14055 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�^LnCJNOiE^|dQAevN1N8_>y7MSL3^S0uzkkUwQ+k)H z?Kg~*G@`El5ZO9O>6%A;_7tCfa@F4meqU}kDTcmjt|LbJg5xzSY;QgnvsT+r>Qp=Rq5=|3NKa1-vHE8V zuGxk;F+o`+YL_Z~E(LlRsOL4%CSRKbEZ=Fu^W08hmrS%2sLz0sN?GbEk1^{^N@4q( zaKvhwSCI5{Okbroit$ra|J{rrE#6hmqWS0oSKnlr*n)t70FpyOWJmvYx8;wtmf#7!~$b-~V)Sby55kTW^=>;-Ehojjp8yTtq>Oxo5Y#a-|71RM9kj0^5_d7qf9Q--=%KLzi*p z9ocbR>`7D%3hh;Ln}!|q&DhSddnl8;#uzeDL0D(?Ep8TT@5;K z7vk6-FDH28qOnrR2JH^#{c()JI88V9?rMsHl9NJ044bdYta-=OB%8k%Q{=#r&if!k z^Ge)@h|!fL-dBq}QDHX^HvI3cT!853CcI2;s=>TgWl8knEdzHN{%kD*m-&O^$4>8; zSL7IGQ>)6t^cyj%9loE-)nw$tz%ndvQ|Ha{hfJcG5ldXHA6U6Ndbu^JE8>*@im0g? zHzdNtw=(~fd+k!6JoYS=NMT0Lj}kifl~1iUYTU@Jht{1>j&g7|S=GO^ttT_GPkADu zHcv`3-Lk_=@tR{1CWK5XP-<#E`h7 zuceLahG|F^D9^>K{(g5LRuF&S&!|KHnq&PSEhkqN$AJkty)C%JSMw*)**3A(ZzWxE0nT{fI5#KymTA!jo`W;;%R! zcW>Lgd!c9F2%d^q!;2_Ut*Ts-%ogYEAX}}#cngNR5fEr_o<>1j)5sz zl|FHot?eYynAh>A2lR5QgMp9nJoVc?0D1A#+p%ibJ+@MyYf0!C zz^R`9q55mh?9QN;rZ_K)BoV=OY-B|Ifv%EB59(B!V~F-i`)n1 zPY9~ytvu&n-Irbjq6?_PelFhH3B9~-$uCS3k&ar8tJ`-4E? zgQlUS0*<1K084rB6G=<#>;%jsKmaDAI7E*sH8y@5MZj+^#&blIEc!14vZBr^G9sn z%DrL1HaM8wnAH0$umb6<{scRCXn~^On;ex=iM({c=C_POSsqIGri@mSqO>8_v&<~T zpVZzPVp)3qmZ86bII#8d{gZx$qn!MzSoh)6NtxD&ihO3ed!V$xG%5e>4#+si&0V=t#1#RJa(Net{;vh{h z1tK^4vqbS#`6-4)`m2rNB7*~$w>pbJmaiaIz`pucvO7}Wzr|cD1>_{NH`$M~N7`F3 zj*4^`D6&`3Bn$e@Z!DvicV$mX;~h;vpS)oWyCv9GZhkbY^NBEHWqaIqNPN`@7wFHN z@A~%>+8QHPULO%TCQ7frQd^YE8>7fm)!!iu(TO=3QZ-qtUw%^T`u1g7uc5olN!hWV zSz-%nz548z9>|i?d}HWogA`+()D-qln=9#|%4Yg<=oh4-*=^GAG+^PIBfVR{2-U z2Uc$#Y>%q)`@%b07vN(cXECuscm7m~E)JDo2=Y;*)W_d`dezjH=vCsfcoVx-KUOUk zbZ>xuQ9xSw^u9;$9>sr^C(FoS%#d>gd53jS%=;PO1*uV3C^??@UnIyfaX7|+Sq7)7 z9di47q#25t%$AYzT~cOHz6{`uM!$^cHBrrk;UVQ?~@O*}D@z0&+I%{NAQL4(bY5U{mrcr4Q`MW`~b~T@dz3Vn*7G$oAo&PZZ zMI;pha*IpF%?w}OmAcGLMKa`^yp5fH2AC>?#QHO98e(v7`-Rvo?^XNW0w1F+?@3fW z0&o_IGN(7)_T(X6{_|561Z`%0@}F>N%*+MP1Fi@>6|$PuADIoQ`#y^c8M3QB(4Ob~ zmD+?HTb$(2qbgZ{hphO6JPfatcNJ1F%BuX|BHd`{WLqf0CLc`@grzmUOl}a6VEZ;= z#fJSlav=SzFaC)#(a>g|mbohK=QS;4v^*s?gcL=?e2P^&@OxzJ6iu{gj}iVl@dqdQ nGEs^3tOoyPaiQ126}_~o(HS23x87XbhQfdK3C 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 N=ZW^Fvg+)|e*opc=PUpK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..605f63f13ae6f7304fca2ebffa0420afdc3e1f8c GIT binary patch literal 11399 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 M%z23(+5O!A0yWH#b^rhX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..319458e12a338f54f662f01f8a5966acbb26a891 GIT binary patch literal 10652 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 O(89*{jodQtXa5H+guAo= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a6a3859d6c448595bf674abb88bc3c51c7d083b2 GIT binary patch literal 13142 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 I`Q!5c09|P>?*IS* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6913a2b087bcaab44d4b1cb2a4cf7e92cea59062 GIT binary patch literal 9643 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..df89ed220abff86b7a6ebde048cd6427533a1e68 GIT binary patch literal 15312 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

^0hw>=ycdl0c0`L%NK1XE9zY5 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8f27415e273302f8e68b11f041dabc05d323e8f7 GIT binary patch literal 10532 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 CbCZDp literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce2b06ecb08af6d7f0ed5a71aede2e75d7c1da79 GIT binary patch literal 13262 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 Q{d+fdY9K(zemDKU0L;K*x&QzG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e3c0312010a8ff72e5d03f840ec730869f9d7642 GIT binary patch literal 8157 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3ec3215035c09e69bb908d948cf84ac199f847d GIT binary patch literal 9307 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

B(0oLYLG5>jB|SL<8z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..32c6e5ae28e354be0e2bc54ad06cdd5421087c4f GIT binary patch literal 15862 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7c390948178866dcbea9f05c0726c306ef073385 GIT binary patch literal 10657 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 M*_KK>`gZ!i0SZmd6aWAK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3e7abe713796c195cd9b2fdd35bab1a56d93d923 GIT binary patch literal 12456 zcmbWdXHb(*`2HIR5PDHSN@xNiMJ4nW5ctx2?+Aq61Bwv33Mz)sK|0bxN2Ci%HKBv_ z-U39rbm@P7r_P*L=bU?IpEtX+bAM)cXRqDox}CmV2GDA%YN!GT2nYancLi`e2T%qO z6Ws;yf4(Hd#3ZCtq@*AaDJ=yh8P$DS`uq22@7<$+z{X6^2xh!@kA<5B%+A5Z#YNA| z!^gweqr^M3{*ASNLp1(DK_lG1Q8++*PU{~WjN06J0v0096<@DM;qM*yTFxa|gT z000EUciH|=!v9AQ5CVyaNkF7z

(UqMK&i1Or?IyTt{CzX<&VbSiEcEjuuy@wiy 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�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 E1AMk3J^%m! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eabb83c797f17f2d050def7490a89ec0dadfd923 GIT binary patch literal 8474 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 DwUaJM literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..54e6b007638c5635711fd66bf0e865cf2d293713 GIT binary patch literal 12265 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 L57JeI-u?a`tsc*t literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..311241c8d8dd68f5e0c9e6bdd93c92450720fc7d GIT binary patch literal 16477 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 ONjPipD?QNFkN*H+1YbM= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..01a1caf81b392c69579a146845461cb84fa24c72 GIT binary patch literal 10274 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 MtS(79^>69F0GRHO1ONa4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fbcfa628f1d8b16cb5923858a851722ac939ab2d GIT binary patch literal 11877 zcmbW6WmH^2)1U{J5G+6-$lxwPg2O-vGXa7#IKe#-U~rc}5^QjnV8PvkCIJQ~NN^1@ zxZ5DZ^6s~C&i>lny65(f+kNWv)77`DtLkC)VHH5C3|0aIFfcFxW{(fxVF923z`=eL ztpBvQI5@cYPx0~b@bF2W5D`3mMoRIFoRplL;yFDH1r;3?Ir$5g7jz6jCMG5d8deTg zMs|8eCdU6L!N9@A#mB=Z!N(_Iq$Holv?A*til#Qr6ai z>gwqm7+P9c+t}LKJHXsMJiWYqe8WD4M|}SBH8LSFDLExIEj=T@ps?tBaY<=eU427i zQ*%q}k6*ugdixOl1A`NjQ-7ytX6NSD{;h9pZXvgKc27>v&Mz*nu2DDt;rb8f|CIj% z`#-qI9=R|d&4P{hA1(|`ug4dQ3>$|@5SLtD6VKfB8M9CbKE>#(AFdmJEMFs!?)<9#*re_m{r&i|=0EGIr z7D~vMWat4@a5e#d94=^yHWb)Xod6}0vWXVa*W(`7rj8Ga0;OJ060YZOg+%9PM?3&>g7ONHx8DMB;|LU` z&?t&F^{dpg?^vA0A3j3wwoezP0^Rj-$5r5$;UYB``Q3aJOTTB%3tTR~;b~2Z36vJ_ z+^@?K=VvCPPwut{Z_o{ZT`nOm@AGd2b-8EL>I0DT?@iM(re_p^n2}YQgjCW&WDkIl zpo`K~NbEWq8>Ts~7_3#3ctzi}swxM?+f;!2=k6&*8cN7{Zj9aJp&kGiJ8vREn~}gu zp=j-zuVKA+8hOPwizL@q>c7hWCD|kg*EknwhSx>k#%Fw465PR7IhR*D^UWQFXHJcq zQIB*TF$1rOLCIo6(HC;E>5og2iW~Diim{bCmTaj@7%g%^Rt+}4c>qY76i+1D=lA3J ze7?5&*suL58jqJ`x?tAsbmS#)tLqkYHEQoajXpO`hSW?PToz(Qe@3SRM>E?%r-Q=h z%rV6iF`ZL@)(60M{TrtO(7xFH=~MQVOS^>wISfS010eVjrL+)oap!u^wGdEp$BB^^ zeH$o}`TTbM^cA~dD#v^jPXDFARhKEcgZBB|##Cm9oJg*~6;*J{Z|VmC_ta9>1u!uv zT&YR;j$1ZqleGGHE2W_2sJ`Ft(aJ+RhG<`sHj+KaJc(U*rO&(8=-k?&og2+di2#yK z!!ElZ^J_x;*1%y9w}0NS^?izZ&|s2*@)B7W_k{XSW`=89!Ix5Qlev`PdeOh2<@EHH{W^pk>(WA*P+N zsmV=Z3wQ#Ax`qOuo?H!X1SMM=S8=|Ie%fJ z)N3#$oh8@@=~|(mdBRvZ!Ty)ar6NoUXaAEcgv#{kX$yCeO`2CbekWmvBhe zy3K{1W5$dVe_2W9*F2-?R0;BgvpxX4&ME~&L5Gh^@Yn(eqi}}D7<0M<>}AK!D?$I& zAtdllbC9mjG+t@rHgbB{_5tu0%!ED$YCq@4-+kp6y7=`X$BAA1 zKz97;Vyc~yo%c7hPY;0h*^2DnKQgd_6^J6}@eh>x)NKf=O12OEfu-_A3%lGcq0q&5 zqw!7*U4HRLy>EZuCOSFPFYX;X_w&~NWUXEQ^WzwVWjrL+?>3Cc+DKICbPAE4o+Umg zj?XpLantb|Iz*@Y|1o(oA1(R8t=_=YXY~~G7Zmaj0V<-(kS#9(PZ;QrNIU+GR|DN# zXgOv^<$wR@l~nR8MLJ|h)7-ZPlx?V`+4y+sbVrqEP+iKAi0*CT-!h1bTg#$Y=>M~8 z>r|f~tk|fif`eq_-n@y)9&>8d1tr6R1gwjBV`y<>(y86KT^vlr_zSd}6(*SKtaF~& ziKxD3H*caIsn8u^(oh=yjNKggxx;*S+RJlytdzIuD)Z|TnJKO4+lY@l#ucf;gP23E ztif(rwc>XpA}WlD-tl3%|Bg`8nt7~8Fo+i42Y1gG;Bc9IQwIjl=H~P?RLY*izTU|b zct4rp^9)ePdIM1>n-;P-`6FvJ$_nFphRxN-$FrnaOl!FGN}-k!8Zf&a*=5asxG}SY zevORO-Mo7M40qA_a_G#{6-s@a2Kdy2qHfRv}yqzdpzbL=~gSgzt-DUnIfRlzC6#mjxvn#FQn zH!y`O(`VI81E(QC!s&$dS^Mm6J$F@Lrczl^gxYw>AxtTY#Fw)%*aR^hGoo~60nbPa zN5Ks>4?+&PK+7VzhZz9V%w|vw$FN}T)cD!W7Cf`H5CeW{4+2i47W)dxHV_H<(Tyh_ zDFO{Go_S42-`mfQ@Kbn*0G2x_Cf4fz5DGQ8p5NI6a>d?F&@VT1@ylKSd^IqgEcd{_ zwH2`^-?D@=KtR93I8G}aNeHh$>qHM&78xs-F9vswQ3_>QR%Ay-TML96_s-gJnJ^s# zqrwg(`No{R5wfWAT7RJv_i!)!linP+D+0u>BgdD*&WYP09S2YydOc=g8)PWj=&RcG z%SldL?4~zKnHpEeljDpr$gqPw?05`p8*y`L)LI~ABnE(;Q&(8W7B(2(yg)qBJSr~T zm|A^4-S*UGue(j(-V+wq3}C61xL|8Rdmtk4jxYm5n~U`3c}^R5t+jGl8Yj=6Z(bDr zOWZ*3X(AjJdtP!PS_-_1fXCc`cR*#qYpso&@kBX-2LNUP8k@6#0$_PxRFLIC;l#R1 z^ao6g-^)mn5wbTm5lGRcY{nm;E)pn`b)%DO*K#^9$iwOs++S?>!8c?&r33d3V1$bz zyQSdxJCop)?GvNZ6K2|0K=SO>ohp$`I%{@5dVa;*opOMy8!KT9Du zAGjk?{ypRGbl@uXU?wvkBACwP5EIuN=wU)53KFp<)d-d?kiWVv<8dUMYcLDuuH z(Yb#=sl@zTdH=HQ=*tVr@Nc&wDW_m@sC;nCIW=;}I3n-F_qbJ+|EK5r(XhIyF_G&` zhfio8M;=-SjfWw3=h&2Esw_FAo!~v!^;w}b_uuoVsyw@{1}aMDPGiU1;psOSmmSPM z1}c{h{0}j00BC4>8*^slK@6ehJm;22nasw3b&67^`{aONpU^=rQZqPh&F*doW>{p& zeh9FwDH{83-}tJrVJ4N!=|hfH9UV841{5P^Rn^=1C5mMcEn++0C?G9Wp`YK_8&6vw z98Gs}&R$n$F0T5XcvD#@sv$YNFh5z2FZ3s*bnLvGRhg6VV%~L65g;HwCccxQ{7x60 zz9yrsQ?JtI*{pAx=OcI*Qc(sCXB*L+dycQ{Jg)b0!!CA(n>lSSWz^?}(8-hM_*Vbt z13;-(g5IkOczq!5jit?jY_C(dwgnCA3CtW19c13?*57i_m5gPVXA$L^>#j~5am2Ie zv*L{YMJWxOSCs|=-ydP!YB3fckrsneee0dp_S&>$5xyKr{(TbbZ}4`7jLs??Y$z&k zTLpS1#FbO8^0gYTg93PPTYnh2A0;oYL=XTgofTK3sr7Y4W z%~bkdyhA(_J2Com$rM(=kn6K1E@F{+J?Zo65-|+t#i4yX zF>pj$u0$~05bAAH-|d{3mj}h@YBcbsX6)Bio-P{pO***ziply$ZI9Qv>U}3sMZWyc zPpN&+@pGtJW_*pS-uek{0exE^N2Z?{D#y_(*F_1K!ZXr4*`sr1-#Caqt0s}u@Sjve zR)8lVJ*o{1E`#`YF|M*AQ`Jr%nZvOyhqZd|f`wp{-zTr3*}{FkzD8lCDqLynF8bbM zRc2 z<-h5CYX@YRF#DR63!V|TPTmP=iJ~3r%73KqTN$*o()`9c0B zY?+H5iz?s#wmPRlu2gZE@hHtiX04!5B$R60iLQ|nPi2R6lc(2J8-MT?e`V5Ly;uCO zV(&V8ZM`*}cPm@WTG%Z=)GyBAf=53luZ!lZv z{uVV(o44zkyq3!J2aJzU>)wRsx9-`vWd@Eac`gOqyt>ZN{s|V{g1jodR?us2{;If{ zRY^ifg+aoQuBl<4xVuae>U|{Q!_OEOac1dX_5cvPEAN62pCZy5jmFhhL3D(kuD!0j zznmEc%hW(#8y@#s+{VXFpsq8CY=OQP&c!T>OrmPIkc?UFbH??vUiX(uA7Ruf^X@sI zqrQdDTTd`ry>hcK6Bf1GWTsd zIz?*kONI{1dL13^rX_1y$_`mecbAgEUHe-ZgOxFZv~;nO+SeD~56>yPJ-(1pY%s&S z2^Hh5P5Qq>c$Wyr}E zWULn|8W?EFGlvELW+dAi2|&|Q(!FlieqXk7Op;WtIO*vG0z2EGsXM2gVy3hdiI^fo zH#Tz3xI3%Anb_^)3^yH;uvlfq?}deF&Kc~rLu~06xtMk<#!Er(ah!~<1vGL@Zo=nZ zldwkjBW?m45!#gd4iY-$4DY9>mPK0E?BrLv6cSN>t}17~GkJ*B4hE_v-qdFycWlAH zZ}|)AH4{u(bBdP(*>y$hV=1!j!0DPCug^-S>?@0g-BY(}h@7?B1Okdh_+jLs?Qz3R z!%={Tdz@4>;Ca{mx#RnpU!A~E$|VPWD=eI4F!C6WV%g)frn>H}z_lp;D)+!8B+b7w z*`{yzuy5N$KOs@TC9g&{qJslXwnFk%SG@*Im=iJ!@3F;gTy3rkmkXWd1i!@Oqy~n= zpktha(zRiMU6Y~_rkYZ%`e)!1;6hDCM@+{!$5U}QImSV#Flt88a!uxmW=*W4-%jEF zXdzK<9-VGX^{4YTzgA~ZGrM2-;8~v!2F*i3YX&p#u`*t&R^`#g|52h*KdC}GJ_ok1|CvZZV#?)) z!yvDEAqQx1-OoQkR;LDc5)}(oC=pa-&URaueE*%jNal7!)VfS>l&Xjo#gI@Ei)>CS zJ?#9|9-oM2%tA9UE(Gi3752X&ji`aPhFGX`$T8wE7xF%Ilx}t1@P+Is0(2R~vsKKe z2LmadD0bFVRp?GwJpfXiS5t0Wc#MYqGDXz|$rdf$1kFHX4Uf?UlI>V6m2DpeVS(VY zw$pxnx{a~RQyj~={?$?usza@T3!vPzV4zo0AztnPD%8On8z29`-*HCsmFX}HCK|bg z)=cW7fhr?}Gp%yNvTTsZ>iV~zW9L;>|LoThsScCXw?yCI-Eknp*c(Uu{eh|W@Mw6O z>`OIC*mMd*Md@^mUiB8GS&`~bJJ)4`zak4y92X-j}J=CfOaZXOJ z(l=V!nLu6s^NOMF!%XO2Z<5%H>^VL!Ew;~}-qVDClU1lr`BS?Qs)VfcMvsyg?rJ;l zeSZK%J^)yn=aq#wQUMLWx2rQ%%f9ouF8>~HLbcEA7;{) zIt9Lug0dAqda(7#nrVGX5ZnocoR=1QM`k5X)LKkYNugNeFxQLK>?KUyj5e)XJ~TcF zfFd(AWg4Qg>y+no$IN5C1vaw%MVF?=uBbzw^jk8o!rwP$c<@0q(-Ve!iDa;2p3x&u z%n@BdNDC9mUB`g>_q>Ibz|aY} zl`ilvePRaAM^#z9o;F&VW`GV8gQccrw@(_lX!bd6_)+AX^kBEAQt7w4&U~YDvNp!C ztnlh(lo@)xG2f5;c`O zACH5gl&6nSe*hTPTBi0dE+`e*dD0R;uo;uue`g2VV$#F9U_bQgBw$k57rFCsdX1MbJA?F)rO3RSD z9~5CC+eD;arUH7&O|e>&$YfZf(>d8FzZ5F@0Jtd~5kA5xoR_>I9Klsg9A)HW0WdrOOnn_kT5&G}3Qk|~ zC5{@m{Ma7gCpcO-tw4o+HXwUK_V;XxVQN+5*a&2*zN!2>&XVb;Y{#}%?bAhl4}&?; z`89)SvgsNE zQyQ`jr&lU^hS{t1WUQD`+rR%;a;zZwF}uqFP5$(S*w@PT6?04MKXK4Bm$cK^N9`MQ z$M)jw17MmHua-SOTM5R>!q-Mi8v-{*q5^eLt@zO}G!=2B2Z6xL&BeJj}DLN~g>=6Oi zH#w$5XUJBBp=*5X8_U@JC9Y4lVM>p#*Ejd&A-`};Pgj*M@OKgISbA1Y+P{pz_rmgK zvM0do=ad6e%y~oR`pAagS_6RIE67S?U|W%h9W(& z572lr#EQw2Hw_k`-4iV!R`C)69gBnjFm~sLchOSeKOc{Au9nt2j zZ%$I#I@73-pF4%IM1)ZdZ5COCv($Q{{@EP3*SQ^PfNhlm{T<}3rO3WzE&g;0+0`L+ z!KU2H!Y&+*ruaCDC;b3`6)Byrv#?GYz||nr`CC+^1JvE7GnI_-`iE1!y@BtJ~$iuT2em8 z*^+R&!a74Xztet!sWyN?NURgVf_h=vpt|KhNN8K-LvgS_G>Hc?^s*DN4yx~u{!S-g z9J&;g&Fe)j?1aK1#^+X4(`Tl#3@&&DecTHDl>Uv{S-#VeN|j0r7QfoNj|W07N~L$6 zm(pB57Bl3^%GBJ1d!-MctZ(qIO18L+nX_y39FXGy4(d|FL_*?7#(1dMG3+!!Hdw1< zD5iq?0;R^CN&X=@>Lr8rvt5P9ym_@6U>_B681(7vu8bXSt3(kfUJTwP8EIT7VXKAr zCI9i@O0YxfH{QLf69H8Z`>3+u(Qq(g;OD=2U7zHAGLXU8)S zc_(a)yAXD*y<}u(t;j2h^_C@*wkXr$hL0yo(<&w%JNEA8#n(>F8F(PK8f7<>5%^EW zj;s%PRdIlTDfYG+4aq#gl))33bK0;Q8;EPay*SXdf`acS#8zE3+XjO}*I=r$B`Iym zFJ}j%C#d!Z?b6$mZI>E-vrZzdv>>7;FMm(D2^*9zWac@!Qx=-6I`JI(O`seQtjL8* z^;W{w=zAPYl2k!!^)^%9v<>Ca~v#+(eHu`U}x zQWn-Gl14=sotOL?@$eD}3w$)fzWw)$8e=c>EHowaT-r~|*6gmYF^)8xels(9(#;b+ zqRSRxguge_jtO>!;b$oAA!)1F;GBXYV}p1L#$$OTB}H5o-fqkaP2ny~>MJBE#DcG_ znp!r!^o{qUPWSO2(*8Z`!6cfxVEwylM2A9hWaHonEpA_sBxO^aB(ysd76$G!k2umi zz}ufAPxu`R>2e6f%tkZ=avIjKJb7_=J@+>R-E@FSf$2q~pZf>T&?o*K6&e@ov>mPA z$bn2&z=)va_qP(g4Dvi^k&d$2z~QpGHwZ_`P(QLzu34xI*w3OUcJ6g{8DIc_(Z?z3 zddOjhw-D*<+WBw8imw?chI~g@8rq)l=v|f8*(Nl8I(6}ZeX)c{ z!qm_wT+VVJaIU01MH?}qs=P6mz?Uw_&GGuU0mvilV0(;j@(3lhpVgVn-#}dB; zY?ZqjYx}&&{UMLQX`8ayyKRwI)$!6Ag$&JPO*DSrM7@+c6^2@=&Q7Pg(j>ZE{)>B? z=S_W8l0g&ZWVRScaeXiw`b!!9n`{y9+>7x&qqAENdhO~i z=L5)C9M=V#LMAEmfq$MCx zx0f<41(`J{ehojUJLgccG^yW|qeHD?lX%}>I%WWmVuCImqQMsX*{BRySV16_*fJ(9 zRf!R~BexeD3hOt57KB*{RKzX%Erw3n|>EKEOKxOj6CR+G5o9)14U+ zrLPiqCR6M&_uiJIK!CrDC<>sB7AC^XDmH|pdgAnW68W?r#fYxCC2=-@zIB)5{jZmg z65%bs9Rf`rZ;MkWy~KZ-76AJ)Jhqx_o!xB$R>#TU%2(l|1u zJ9z6qve4eu4geO<+_~{B%o^pxmvV41EcDS!;6tV1{sPuA8yZPEh=_IVUB`Ab7>O`NjVCFbA zMGI41ji}8%ZIm08Oq|HDh=&VfpdV|TJV|9IC((BWmAWl(e``(8YAwHviCgYw{=)}= zHhfd%5{jT1&mLf#J21J zU%rMwlRf*WMX^Yg4kj8eQ}k{=e!yLd z0E7%sjtR41F$^P&#fOJ$l^I7Ff3S7HvwITb0ZW zQkDf@!h@tP699XYGn38drIp7MBDsEa{Jw-=>KTgR@|s~UUq_wBEWt*(UisDed@zV_ z#RjGkr>#B!a`)a=-qy7eE(vvwe(O7G-*;UR=}D(aXNnVM`l-7Ms^r(DYhq`1D)5p; zcO}0WN0pd+|1KvY^}#LDO-|iL4|*mcYcC_OXxJYfhF~sl+Hn5d0z!&hL<+f; z$9&^=opmo2-F(Xv=l9~PmqPf5q&_j<0Q-+M;#aO5tfY<2L(uuzQXfp0 zVh$#sM0#aoRn2bj!(s)aC#RR73yi`H-RIvIChmz^{U~Fp{g-4=B_=f124s&B6HBA$ z>G{IImAvsf>CbO29|5aM&W7NMwS3)xV3>|Lsyy<#*7H=ybt2K+TwND+v>v39+!ooZ+nb z>>!Yusm4{8C?SfnRZJM-olcw-#FbeTC1<7+T{HSJ2$SR;18kzf)~?51+N`s8F_MKZ zMMiu*+V|wVYFXz?jOfTu$IEoZNfllQjs}k{VVg=fWs=UWR_x45R)4mRpl+ zu5pMilMdKg|1ugG3}8J~N4_V@OsJRPWcw4S$o|hh1WG@rhcjxF(@5(q%=6jfNmfZ8 z?Vd{9OmY-+aT-x1jT;Gzlu>Od<=?Lh@nP^Zi*y!TDEt;_e`A)rqdrQ)A|kT?si0&_ z#&xWSrq9j3Z1L~_rRB^bQ8Z}sRg4I(48C2c4|z+X6(D|9nCSVZOhRUR^9jBY%#uzE zV@w%JZ47?^nDGDly}1Z>NP?K{3u=n6j?pd5e!$xpdz!1MtEocYZo3!hNdKA6wuREu zQHQFc?03==pd#CSidMecmR88?uzlvg2vmr}>QM+@STH;mm zr#}MyxcCwU!^u|AUrsD|9C*jn=tiY)s{ z*Wld8G;~rFPe}MyhN6BJf(FZt1(u`uiZAa>jGI(Vb}#T*ovy4LS(k55656I};2TKFPwxs+Jh_ zuGpzmk&dB0i?jrai(mC)Ba2Oqr!RU^pTDhLFjfw(B7c*}=u0-na$GiI&T0l>N6kI| zDm|g*mt}>K`_W;i7^>*ky;jxxwxX(L*{zI8Vks*ed0&t?)BH;0h;X(!!R$wp884U@ za|tYe6Le7~kq33{Jh}>Fz5AK0CWsK1CT=Yyr!~lyPJZ1c_I9}C!wEtLB&}!Yno?rV z|9xvLDPl8#yPP#;-*Ax%j`r~l0R5_h7g=40X})-$GJ}1$|5H;qbh+!hV_%*cl)dz) zNoPc&>nG#QKXuKT#*i)6VEADDM``(@x$l?lu?mw`y!7zRd&h{5nZv`7SW-R<795RJ zNNWY$;Z_>>RKjnz_#@j*eP4NIL#3+!=w>_2?$ilAmdpb5lv`~I@La!{u1t+;*gH^` zqBhTkW$`3aOWV#cx5x-9OkH@ySMas}g=5UtXb|j7-RddkT{}Mj)TS+3rz(x{QS!7r zfRzKY6QlLh#j0?Lxp{jjey5LS>gz z+=y$Vt`3<4YRWjXkg@l+X+fT4wr?b;!a5&8ls;X^|x^jr#m%DjPV1uheE2h zyAv|mf2%UTi@3gDmVgTJuSVi3A+}{kKB^P%DuG!CT|YS^OiUIGezE;Xk|$vD0@3}A zl4|3*{#(gUu1Evq!Yih^+e@~uvORJC@v3)f+?W~r%;_?O3DC5K&44K0GkIh9w2)N! z_;ZAT90_-JmFuA(%Drl^MO-ryO1ot*BU+DcyNlJ=O$IOOMyaP;k3*F{EVzrRV>O^`(E&a|57bv!MYRPYOPCs*V%bbG4hp;sy zY{W6^*H74z7Vgqb(jkiBUqNvdBP#DYT2Ck&J7z{~kiiu$E(9!dwHf;je;e!SZz)?y z!MK=N$ct)&wc{y!FqAf_u)08rZR=v@P`snaV9GUAiSO0)V|gUvjc;Sy>%#u=a)vrC zD$`!lW>&oyZIa*Ld($ZDzkFN=)ytvozqXvQ$oFoOs;O!YczgM1$V8>$;+ z3*gS9YgS38bG=I*FH)z^ENq0x$NZPBRi}QTk#!b?C%VLn6^JM@R(YjCr4URE;C9U& ztiLcCVV2_hka6?eUZ>z!W$P&99ac_y1(Z#qnYs};bUbs6q8?OFnP~%VnSe?AEV9!Q z+v3y%B}6V0c43#EwX}5p6XZpZ)xRNmySf=NA&pV~WYG90g?_QH!`Q)+@tJ2)Q;}Nb-#q;HH(9W zIU&*L bIl1ie$J5y!#kB{r>L`lu6K13!ALjlW031w_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..334ab2581e88ff5d677a0f9d27b6647242f5d6bb GIT binary patch literal 6636 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ebbc3a099b5bbe6d8d22b0e79231e6ccf595a969 GIT binary patch literal 11564 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c3a8e97c87b91e3dfd53501aec18385b34ad3f5a GIT binary patch literal 16411 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8f730f364ebd0a3db37383a638b4384662f1f733 GIT binary patch literal 12756 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 V@<3z0L8+)r-_^Uk2K+GpKL7*R`uP9= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..75235d6f8763163e1aff35b916422c00cc3a12a2 GIT binary patch literal 9032 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..036d682ec89d85ce8bd3a0aaf645ad008a621850 GIT binary patch literal 12957 zcmbWcbyyT{827tKiU@+B#FC42_fktp3rKe(DP7Vaf{IHmU5iL8jpULN0!xE*EalP& zNGwRd{LXpfy3SwcoO`aBf9APnp3gk@%zb~qb2oRl3V5QftfmaW!NCDo-*14sMSvmz zAMZYJ|2q=k;}Z})CL$svBzp3QbJXZPs%

{${_o=QKd%2c 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 cfdKh!MP6x{SuDa1Bh!zA%^s=Id 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 n!t@hwGU0hTWP&Zid5IhuC%> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..82c2a34aae83ac3608136b3b6faaf132a409dc25 GIT binary patch literal 11859 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 DcH2J` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..67192282d950d99c8a6e46de20c6e2291295be2b GIT binary patch literal 118775 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 KC|1t+AOG1BP&b$W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3dfe883b32634e08fef90982bbfe4f75388bdb0b GIT binary patch literal 152501 zcmb4qcQ_p3_wOn}dPww^=w0;QqIXvBi4uK9??i~Yh#qxyR$0+mtVCk9MB7DJB?xO* z5G`2k`hM?ofA_h6-kE1+&dyu*dC$Ca-g7>mGuJ<_e*qrpXlQEyh=_;)S~ol3dKJ*1 z9^(EQ0MOS5@Bsh-3czh52EeTwiRk7CBVzm?`5h4tfaJgTiEj!;05@j<)y=r3G*)1{(a&n40ly~pkzI})K;iG$$bkq#= zbkuaTj4a&G7@0YlY3bO6*f@E3`33kHo(hWz^NDiv@$>zs6C!d7iaWROJh^-K2_F+3 z6W{;$cKsPZNkMuu4iX|Z05K&I2_@0>Hvq$b6#Jj;zr*_P(1-yfq_-$;%H$sr0f>o6 zh)HjekP;IU6A_aW5mP<`P>GPJuo=JdeH@cf_E)s|3+aogRrdWSKrzQ#eq^c~?^>uc z2X0!^{6D?^w|gSuoBMQ>|L_0Zln_xqQ@LIM+`D-!#FQkI042Z$4&61XV63ex5MI)+ zpz7YCZ|11qJWFhMwvUXxZ&n6^pF)= zWiEpp+8`-wT4yvb=hrK7oy6M%u2UD6$7sBcKkmXjF;1J?GxQLPt7Wf`r+CR+f+a;&i7@>oIZ(^a|TpqqoBsV>6@4cv&U>=uZvQZI)_bk*my*E2Az()Cv+ z+7oQ|H_Wrhg_qsJcFG5leEgLFMLtxmq&kg371d;<<|HIH<@Q!eA|!^$VmfcBjS@V5 zBg+HS_`fygF27^vX}YKo@@BfSZ~2*-neqH&{a=OYL;Zc4BKEjBMQyIg^R4)oYDztM zhlj;Zlr9#Gr1o~tOXk7rzM=dmo1i1+m3#i13=~aw;)N~fHLDy!OAP*Bqqps3tCYdf zr}MTPl6I_75|jzrixahj1B{`E7blYnx^Z=k8gbb!hiJVx_{h{!voE4y*7XfYmz!lX zGg2#{V@bp6WYXC0QqF6{J7{93*6DFA<%f?WSI2Lt?TfxFEVaAXTok+lLiN~uY1^;N zlj8*{xH#jz{`g*O14!4`keVGO6>GGht+g~Jcy}Oue%v#5uNNX1f)3#?VJnTM0~Tmx z*_P|C4ZV~|_S6pV$ZWVgqN@hs$QX>nUtUT0zWgDZDiIFe>>uyuo7#vqW1cQ}H-?%} zvD2PcH~A6f_9!{pAA2|z6jc-qBj|8Z`Xjd+N#KOSN@S50gLI?!{=;cQ8Jm%c00aw7 ziGNk13D24>=eqJe3qPZ=tPd#q=inB$$Y`b1yRUI19$OZk1~gmihq4cvg#$LE>8Qp7 z^PF8#AFQwHMsT&@Bn^>VHi@y%Gyz%^!J$Gj-OmrdHPi1 z|7=2XGnA#Ef|C%wnHDeK2=|nR73-EP_2}qiH)R$6n<8!O z)0Wiys=_|rebHwaQ=r2r%r3N||D0~rs0G(y>rB-b_(T`FQK+83uQLyMexfXJjZ zv9N<)kYJLLBQ^E{v4Cyi=+$jLi+Y2v(2rYxlm&045%=B0l@)E=@7d-4xBQMV%;slP z)<~4~NQVGtd~4yqN%P_FVWk=ZlW(yTJ0}GEnt=d(NqK+Bcj)R11ks&`!jFojeY2Zt z$lrmjppIRqx4%NCT~PQhF*NtzoSiMX@ewj&ShCi8;EgpB7Z>f3?t2M3#{2xv4!gov z&D$_mN^PpQqc0Y$8>17p%bl$>E-c8_3*T9?YC-I%YbKpca*j^aGf84oE{}$wZ1W~O zF(DA>}VyW>rTdn+3%*Ww!4oxQK_0fcd$0lD4nk&Mg35tUrlsaN;T_<7R8#z7U2bD%BOmB%!k_ z(w0^n#tB)qTF<2E024k#)(Z4XlkMNYOtjH*vvKtS8`MiNa5<;F+H$I{b`CIv5tn{| zPwGECr(2BI8TsAdw0(^J>WUw@WgP6YT8GzN7pT<2r5;9HMIJpF(3`KGwJV`{zqeg3 z`f56MI@qoy(K<8;DUqbc$;;Vww;>ebF*B-1XqahRhH4#{98Cd1vHMcbxta4U4Xyzl zb#@9(dY;jud3pkje!-}}AHSzC@99?;83&&z79?3%$)fPj632qH-qM}PyCtl)ZWk*y z4F53B5_rg3vXBPRe)Xul*QSRscZv?Yi`&icTPhicN9)rca~%=9<#(;mL(g4RL|kM* zG}`>mV-j_E9ijc)jly=sa&$>SVO(^rE4)0J$TLkbIzCB*g_Jf>^aXS;^%h7nk8a|P z1`K+Prpm)VbJ=wiG>3aRHyH>DVcn+QH-%lcY0vjVrxr=<**Q1c9!q~t{sQ>Q*o(oP zh2ezqjBrS`&IsKC4VTjDz=?qoS!b`+@tgM!l*K$iI<4Ay4e&7}OzIW3uy;7r{Fu>% z-qv{O{Z|;`&#LcMS>?xzvC$NYr_9q=jzJ}hW4QOv-6(YAt^r+XZgTcY$l9$@|1jSy zp0geE9!1DW9Yh^RZrFJHg{L+;eyP{Y<5kv`q}5VlA8rC=s@tAC9Nhi5UskeDTp7MO z@-RvwQfoD552K&PIE%j!iDLRWNR;Ywc#fx7jCgLg`I+FlqE0E0wE^KaSF@-dqxAOd zj6N)j>8RZKaIzLVW~yV6J3hB^&^~RH0+1Ke^-112+pZna@=D3@3%&+~LBU}nMMOTmlDvN0lfKE?;NMsCp$|(xX3?AN_sznZbw}*+uP6bpD{rSB{$>ePRk)87Nq_&F8rNCFbfi9@LWRDjjoG%mU z|4lIs?_|F-r~P;$J#$M#AS|POVd@LG-=U*L<55@uKTktXwq&G3bM2|0^FXhvb{MIp zhL~kl4y}{}B+`^4D`hOA3Kqz5^;9F|p^$~{Bl)Jjf5>-sm}%cEMShHW#gm*GhT28D z!9@Rni*`GHutBA>hVh%B;|FhZcWbN(E}Q!-S1WefHk=XRo;rRIeCD@bb~bcg$_q1{ z{2hI5l&T&n(eh zR^|(;P1|gsu982#YtAXJWJhju3S6SA0=q}qp1X4#hZP15epvhN5P0)=)sacAqHGjLaJbC|CRH!vakapU1Lwmj zK3CsvZ1;Gryd2ywtFUf;W|9&wBbFsI%c%<=8<)cefkLs0@XA}%umDn*jt%}5duGOI z(Zo|*1RNhQ4zbq+8cYjn35(CIT;M6jR&{(+I&cmhZwnuR9d}9iqMWRa>xI_j&kA1H z89oNW#%$e}_D#Yr(iU!~%T>^HVP7N-Di(Z;`5yjq@{)0{RGZO*Q+{cy-pxClVJ4+N z7ap*|Q-SJ)&L2#w0zoa^bM{RJ%q&#_gl0T|W4N7PA)*UCw3-0|f;;c&wDcW~iruk! zHy?S~_NX~K-ZuEb!mNgb?ZFwYno3QWA`F*%Sldo$Ni-?1OkC&0>b>HfWMLr(_Pniw z1*-Tjn2yV>&e1J>V4y$;l?91uBm8KTiFIh)Pk*ngrvksp@lW%$4+;nJ;P#7VV7 z(XQR5>h=y^u44^0G<}@(Pz8!^68V!eUe0sZJjbG(mmS{uwg?4VVyUqyW2r2g%hLeT z8PI?$c(A{(0jX~?S_1qm;fMw-dcxkn==GOMfuOZaF729AWI71Y8U|!+~GltJGZ# z886HE3i{*60#7cZS1ZkkrIFb?o~_LOQU-*z+tH94y+%6*3oRK81-u;c#OlB)7%t7H zRA3p}Idq@?_H^{l`gsV{fE=WXX)TtU5VakNqavSrQ&L^4bLfXWJ0T^V7va(y{Nrt- z<_?C`3CbFOZe<(HB-lXd)wub7WGmI6teli^FSmE{->t+^ZHis@kR2 zoA{HV3c0tN-|R=s_G$~nvdgGMLLMv-eJ9@tn@YnchU5dbDKuU$$}3uve-p;2WXKHS zYKxyiK^B-!EXs`6CsF&0`ci*RdTt-<Z;Fe--%WsyZ?nuhf7K zRBBAu!;c#rFiUHET>Yyi*>%*r)g;Hg$}eeC6)bS*5WQbZH^Al6epG)#U|7-=sNDyu zsYz5CyzFKY+;<4TCSvmUdS|cWGxn=Z;t_|=zR9x*f|`BgK)Z4sOV~(f=mEB z5S?As6Vd2{%Is@@{*!EP2y4=2wG3>KddM{s^aa_3c#f@oqG27Y-39)ja_^(5%FsWGRNm` zEZOFIE?mGDqJGRp!B||ArbaZ)oA)|mS>Y8RMvtCDDCFo;I{@B_JCZF7bGXO?ncTGDn1{;(#KfM-wMk`3=&O|NWT!B-wQ zKCc}cd`Rhlxe{jzqIBO_?}il%LdtElbWHqdnp zvsdbvxy@}rNmoxd+=?;R5j7~fts`N{Dl~(&);`)mM?K5@Yn!H^6h1{C5T=9uE&FC^d*CJF|*5m&#tTl*VJy_&XtcE4GB-j(e5foFB{1gV*gOX;Ik`hu!PqDEm%a zs_CnlxC)lGR}6)Ic;WdB0^spr|^{3JnEOmUQ0RkXAIvgkyHx<#(9$T zGXHjG#;i%k2m52(n6_ln)4GENu%E;HnY8&EhjvGLKYa~;o^yK#WY9c&`5b$bx zm~nRQ#_!IvyRJyHP456 zSj9#ep!l&#pL8r}=`g4DNB8-*DaCMhrd{*iinT>t*+J~>>Ttys|5L?1pm$r!5s zp~9|T4EkfyM$DWkib1QDB$y)HT{fD^@6=w%qj?_9;02EhR`t@Fin6^1$TB3`02jG@ z?V~&Dq3CPC@Kr_qEPmVsZxEg{TJH&E59c;lSe$X=11)zZJ96zz$$y6+%T2OC8y~zo z+g|j0dB87kA1T#`IiO!e$~+myGXlp(U>-WldxH3~yX7L@-`&?0j(s!G87$RWbo&o6sXglb&W1Z_l=y`MHvN>33z7D0wM)Yapfblba7^ zloSG|z(JHbUu&73IcyiJP}Tl0Bv1a_fBW#v!_4iW;qCEGAh2W>q?It%(JJTvF@cQV zjKR|LjN|fMEq7G$|)m_$Ivb^y&<_DFIw9KP|eft{S z&9!T)%c-X8#lN}f_&bB#4iE%cmt&%a{-w8*j=TVO(pqlT0H1E{(COR42~D z-&BwJtptZHC(vjqXwuPGTNG$W)c814#8xV7j!l0QMH~DImYGP&8|T94KLIOU4?0G)C<4V|6JEE9eip!8o#QQ^Ri`+Br@RC#_8UV5!w( zi*|2t;F|XOy1E1LdwEcv9A05MtXeadbYxqf8dN>og{pzzb`3an3H^OIY1;d|afE$L zpINc&Z>3%y?Z{q*CpuK>X$iX-b4$rcoRo~QCqkT3cX(K|hAVN0i*M&}*HzCwLtq?2 z8ByS>sbh>WIA5ne-(mwAlp_rVg=Gi-gjCpZPtUUyc~pr7b`5#!s0fMW#1K+Ry**A3 zW&|}7D@$yS)|D5UK;unS2+s7qs&rA71x)Te?*&&+WK-Q7 z&_~;nj-#l!N!>!r*|Mvq){~&T@*jc!Jj}u{T*@82(DT6gTsXB~L$v%tWeEV>P>GOG(W3_wywG9^<5gYk-pX zt29h|v17AC{_LWGRe2*)%wgNu^o79v^kg9irSFl)B5AvI`ahQ~I@%3an>#(%Fd$Y1 zk?ho880p#VYsWn z2U^5=STIQqVHv`ftOA2TPrYIudr_>nPvy;^?aB-8- zfi(rFZwGl^T@k*nI*RMw4h+PWf^$7Pk5*=mqbsi}YG$`|>|~Bkvl&7W0oMSN$*_m| zV=Og#MW$b)9OUL0;Vk#bD;h6t;Y&AOpGTkVNblJdArbk|{L>SzJ*@5U(i~ZUdKE%$ z3y$w8YxOlAp*mP0-#b97eAsDCqh7tv%M z5LO)3siW{9OQ^5w?@>LqNgmpBH&Ew z3|Up!6R;M@;Mcbe$t}sQK;idr2EG(mHTP%r!n+Tq$Gm1~-oDnSRlixf_!~fmMjX%a z&WlFu!3Uisx^p)m&0_SG?ls^5a`pSF=4LrNQmVenBd|csjbZ6WzS&{MLBz2GGl+WY zv)>67s8_^tP9_=%E(;~=e-d+qble6jKFrwZ;Te1QgW58T|Im{&lY^OkrdO*FV5#nX zyNhBqcQ{6IOSf*YEGI=%R3AUhH!CorWswGsJGUj?~k*&X3(Dnl%`+d)z|V>pUdgT@Bi< z^D}`becEFUix3*(#))ApL$HQX_an~xm6AnsN+ob;AD0>%Qu}!tY9RM8^u|IYW2MVj z-+S^*tA+fU^GUb{aO)_DEb%OUzLbcD2oYp6vf;0~8XNC~s1}^T5&6@vza{T>kOKeo z=eVXFd8AQgppx&^u~w%!NbQ_%HyIL2n)HgoynY^g59x>td-HKv>3Bl^cG`uKU_ff0 zNbXeOYDGdP7S=scC6rIEB~2ro>4fKst#lRaKt4sz2p!xwu=pe0wPV=^LPmCt^j`PR zK1ihDw-x#^C`TdafvEHu4E|$@B~=dII>MgS%o=^*)+knf)U?{1xx8n)*5l`?oXsuq z_R&V!;57gu=u`u@aTQEnG0uQD<IG7E|7hbX9sB$*_Nrp=l`?rwwk zF^KxrtRO0mIlS5flkK`Fj-;;T zC~HP*7~>6eS2^$gnZxL@OA!*kRxlRPb+O)m)jDD8Bz;#vAX6@X(AU?qUkR&MZlVBoQa=14e%V?bo=Axod!b7g zO84Ue>?RYdsBW9!ni}}>=o(OykEZv*m>?fcU~H>U#7|PoM^6zGQ!__|@G3gd7Y=nI z2fb6F>nfyJ>K|WnMrnP+6J&8SxmUd#mugM5gEk}*DaTiV%nBds)3)oXTN|Y#4DmE( zq*(8D7C1n8-rPBy?d0NM7KeDwH*z2L=;GW1&P$oyoqIz+_SE&|CO!zN5zYFmU48@+JC`RxWdclu^UE5uE%F8(*Q^kuh<DZ0#s`Gi3H6qH;qS%&8OT0Uq-8OKMm=*b z&&pxnx&|!23+_>5Ui1m3hab+CQ0HXoo6Yw}CnKWFj;16{m~l=k%G#FSMrb84c1r6- zCe<9Z9cE@bN9TCintUHAT!kAbMHMrrqW5~3Y0@&>Q+JJPYccJkZN-<3Vl7balug5S zMf@=Py%D`vvD}H4ApDil)oDa$KRa*DlQf!_XYMuQ;V}$PfD|H zIVl!&$(?AhjRHSQoMDVYl1vTl9PRnCKO9Yp@eLGgYDT`wAm`*n6?4?k8FO;Sp*g(R zHz1KDd}fKnS0$dh!nf&}&;QM)YeE(COrR7xM(;rx)a(&9nE&7o-^@~NFmo%)8bjVR zX9bd@UF&%^&w?$|0t#Q)Ko2ILsB^N?g?{W47`X$x8J)hncZad$;3a!8vA61&(z?pD za}*yEm@SsCDN!qHm}*%_tlc%@$^wdxB;v9h4a37*PW!a=7eqtuOgfS_z6lzsU9-~Y zaZlqYtTl)@E}aUgkhhP?ext3I%VM>zhOyyA$hRx&V0q@ZW+DT0o(9?DN;_+WV-O@f zF`#7yiQ$Qi3w)X2_g7K_!yO1~6bWc*528RiM?XEg;eF<5bE|Tn9{Dy@#QJ{RothqO z-Lr6y)E^;`{u_VKq$shA3FO1vrXcmJSSw>;%p3G$3NxnC;f<>cuBTK$EaboBYjL#+ z%zkgTTvB#_JF)rO>f)B*7J{Sd@t0WvJK7t1$C5 zV0|_#xi2LDgKW8s$=AXbkG%$r_-l>SFgMr6uJs;btlzw9^ATa%l31`&-%NdOrL(bi zcsSYqVtzugz=>{@v$m1pE^A^Xo5r&gkM7XDy0)r7An(&6~TVmXW8hY87j`lGm_*1Lq`e?XEx{_?gezLFXI5;lyrHO!r|-$%VJE@TRiu*ioVXy_P<;2CLAuSa z-HaB!RiT2wr&^@-M6Q=>qwwHmTWfdo=*WcA2-;sSjRA8t;tN|>~ z-DkDfpRJ~d6p@R8-eSYz!Ptc#y<<<5 z0wN6e05M)!<7aidC_@4A9Y?v5xktm{^@(M1yHjOZhEJ4AG<0X7-2ttI9~IUNl}ye1 zmOu_u=$>P42y01hy5F6m_JZpQW`4ToTz7!}p6y&2^lP2=7_G%oDB4Sqx^e&d{(N2z z(UX|SDDTt}$&8oFJZQi#7p=}XwL_oUi(wSUb2YCN3GAH%COV4wh|r^1oEVZD*nj zCrvp5!-}=3()Bb4Fg+(@4t7-8QS|ht?kh}w|4E|2QRQUe_BaM{8(k+}Jc?o5%qyr? z7kgq3H;eSLRMKMUapj))d+F3O4jpwi`2%{vYRYv+y-|xE4-=0@Uht@ix@`7G2Awmgl|`s2BGr#sY$UIV;j>S8QG}Cv`%}Of!bD zmmY*mOAf7Xe+zB+*@Gt(`U03-*KjQfz(@2-`|7^w;{?1`-q8%*xDt(D8oqYyX#Fy* zV1rGI>SxFFI`-dOR2FKh8LvCUPeW@KKY>v}Rf7M0OR^mn46j>qK$%F76u*E2PyOH@ z7FB~GxxIh$_o;xAe??a>`fOi+L1h2ys~>>B#qIdQMLdsf>=Q6nh4e}^8yWoo{T$Z}G+4Rx z*fZg$sp(KO^jM$ksiQ;6b+!bvvmj-TCq?33wY(T)8(-TPa@~OLKdv1=Ar?HyKf@>b z44Wb2JjMM_W|U8}qjDbYhq@{j01C;B6Rd4sM~`*hw^!R6#J|1>AuUkJSyu2pnwoir zaDD-HdDw|{T`hHv2dPY3gso|E~a(@Z- zLbjDjYit(W*rbn8thi~h>?+hX0KAMesaB8C3?2-4oiL_O^f(Cb@W9Jw{|x_%UT6K@ zs_jgC0E52r@5d$MAFFz@T}D|=ELWzjC_Q2jb9GSF`aAnhL8uSdf0LSDgDB>?`ta?3 z6q;+4w=!MNBWinQ7eD2oOYZu#1fQIHxGL6&@ftiXnJb+(OcGo+b6=S_K?zlGbHo@Z z4NVy5(&s7k7yBrT_CX9JjB20U|EF2(_9M=huWIPf`bGVDKCPxyv07FCxk|gI`m^K) zKdUjQ(1%|9dnvOSi_S>5@i_C`?Kw4{tCJP+s4)D`45#KLY>DDcWQLH)${X3MOTRGr z!BL)PF)mKTF*MvSC_=C66Q7sI@O1ZsHv?a8+c6FAlWI=c`{<dNSzkU@&03QuiRN*xn z=QuBQc~Yrf5q}1hPY9}VvD0vEbm%X~l3zG$Q#r#>89U`vhJe{WvRzl1eoIu_z7r)$ zS~gmrL^Tm_f9|a4KJb!`40Nb%#2BKjoz!H#;?+N;i@!g-Vs>P$3Fsc~y8q<46N>xu z-@c2Zu^Q>4Rhjsa2V=U1N=-ZEdigTzt><{N!U9@Fi*g|aQ(><sAT8qY=qDI6}Oju*ca6fdT1xXUG4*UHz{Q&u>s}u z{tkpTlKo&S*(_-o8TNMAJ&sfm{|tufS($}2=04Qf#cO@TXJoA&PI9~pTA+KVaL@dA zhzqS^{uJ-7Mx7?lVV#TEw>-ZkP{2be8d^(|EbB*kCROMRhy8C^KAf|P)t@L|>(+L- z`b0;nP+6E8kCi&1@{EH%K0u~c|5|kI&xKLRMr!ROxeD}ZqSS>=eB=t?hm)iqRmn^2 z#i~i8yZIowNh9p7k@5G5srDVHQ%Pvl;_)8r+k16*W&;SYhB=dQ4T?s{*naqhSb$~6 zzexaUGmasb$dah3JVSCth05Yeb@uf+@f%d4`CX1YTF>#0R8D?lKhE50z9M*bj~boa zC1RiUKP>hLNzJw~t6p#8|K`74&gb_&;HRbsJ!r3=aOT0u`(uUE0+B0{yz7009+P1T z4RxdMsUoOi5V1wRcE^)We+zR$Qc_*c@XD^^>k$4)1#xhvJRL~NI^l@EcYmW!YI?&{ zdI#Djxy+)f;!Z<}3B3e{^r@THncvt(of3{&k?pbu3zTxBswXy#ucyc!8tYKi$=%Ub zepH=~PZ@Ay*XL%p4oWZ(NV+o*=E@+;9ILEDz7w`!jx%!}ena-SzoRCBCCueX;cdld z7z3q95f)QjLR@3Vp%CMR_WF%=OhGHabyCp^B8t}T@VE^sny9MEN zVV&``*8aNM7Y7=g{l!ebu=34{uUMn-NklaZ)>hSIn9gjMlX}h45GbhVJaa=|iIQ^a~+#N)Lv%p`wFE9F-h2pLO(2U6~a$u6Sz&$36y+a-pKftZsHC};SK}8W_8w~Oc zNM(zal4c#y2IaJlEYbB4ecv#>{NrbWpTtbcYUmCFHB|{|H^6clKH3VkHFgbPB!sF~ zC^p(U@$NaXsgN4RnQK5)m?Aw(B{NiQ)M6(`T<|JdcX@2m zuh@%|PKSTAZ)bg{@pcbPkR)oM_L$zT@Ka}q%;5#H+&J%jwsKLhdSz?E3R`3VZEuqC zlIkk#?8?)IiptBjZF41WY!4P5{2eS>OMEhePF=o}lw%MrZ0Zzj;S=bUgx^1z(S!{V zLIbJ*;0=18>h%}TO3oo=$h0Eu0N0O;HjPlzM{#rfK(@r4X9YoTz$-o&N-QRVI!%hx0~ybADurZ z-Q1I{7G>?+23&Au!gst4_;YJtV$i>Yz#r%&MR>pc!nx9?(wk~%UMxy~3#&h@;# z)A%dQrnOf!D|uqyLBX+t2WhT$sbvEZq!gtXFHwYJ@}Gg0Sxr>UXW2uh1uFR1n9jr8 zNRC!RXO{FIf6ir^Wtf=IKpJJ2eRe*(2F$kA$vKJV&ON+vBM?02-iWu&Ie-~;SRo}ZI9g1CCrFWgO1${S4 z6AxyYSR(sVMN?y*rgVIlnS2Bl91L#=cV~M)DyW%#I2+x;mcKgQHpBe8b44o1?QROg z!jgYjbrro9JMArpiZD)@(dVo?X(;B#Xh;X-{^AE1$%?WFH_rflR;$?e81#E&qBtySp`u2ya-CT9^}6&$g$f6!^wgK4t~n5FUbBKF!LU{@aU!78 zwy_QQK(Szx1DpSxXd!{_%hj>y(kf>N|3>Ned?zS3q^9JP%+IKzCXD`o(SrJ;&C7N* zxa$jE#*dYa1M<bzUrsp6PGdtZTqR2%fudMGYHq@ZQinVrKvg^clV8tP06@PPi_hs39f@St_%ZR>X z~K7DP~SLki!l(@u=8s8$b_y-2cPUFh16^}@?G$o(M$2`*?B4uUA{exgfG zmN=5)Ytp{OLq96l9KwL!X|Y;26{QKa>^sti*3r_wi&mR!v5wI!j=~BSYZh7?H?RmdT0Okc3rKA z%1B|fw}XL5v9R;wjjJ}QW0$`b#Gs!`EZ2bJ+J?#bx|gR}9MXim|v z`9a(GsJB|I*n5Dq+1~n2(W>;(`h%jE-?VjB7(IPP({mFaLx9h5gV~j6N1CP&9yAB= zQsp9Nt0M6N;;zfK9hIQAV12W;;^!}9rn-VMZ!}FNkkTO-?^_2>EG(l|`?0^me9YJ@ zz9Ef5m}d0Vc)%y^cC%e%w5>u4#F(zp-Dkok}xv= zB{YJqBfd`U?mVxK{Gh?zYe0X=r<-{k%k#j0iS`hqLbtmhH&!naU9ymzoo4{#epF=F zcp%FFH+#T<`uqFo*#X1K{l%orp2&9Nr!a{MM&E)Tp}0%Id^rd*pK|GGHLTL{GJvu^ z9ca8n_tt;|2s=>X`U=c#FS+n!p{MbkpM3UX%sX<)dxqiMT}U*pBU3XDtJCV~8TG!i zRLWAUQ+8m-y;-cBQR_zrXwfzPII))9_OgvxHrz_XpCU#-`1lBg!i`2+YItjC$yI5B zE}N~Uc%K(Ooo8=l_IKWM>F$)mmO{xEqcY822bMd^y{AoAc>P=WB_c38PYux3?Zdlq zaFbABoOV_8F>PvGs7aMJlr9k!tI)onAO!BOk^OL08`gsVaFez7G7TMJfn+jU*5^kr zak`leSR&dk za0?7PQJe35qiBJQ4IIplddwwCMH~gujTUK=drJ4}!Ev7b2)UILDwq_o@5H<5)Qz!q znkuq_B1#ZqsQ2riZ$u*>unQ*AnC;sCKRAE(X<)Zeg7j*&P^q{hz#FY24DOx6@> z?}xVuynZfl1=iemB+r{Ot=Z^*O>72G^M0*)zLmkQ>Mu5U7JL;*1<}HTtVVj^4{ks* zp9G$Jne|`04yzH?&seFCC5N-JLd>HU?%i|Yx@B$Adf}d@WnblI_?6-J1Vi0NoqN1V zYdc>mF^cHxH@(MA6VZfro=H>r%lG6*%>639Bn#E6Z`dExiJp_Ssmbn|=vj)UJI z-|jP|u1MJi%|xFmZAIVce7}Egg5Yos;Jj2aDZ5mAycQ7lo-KB$Hhn?`i_;K2V3~55 zIZF-Vlw=k)!4Koq)Abk8q79nuJ&@oP6O`VV(`QudhcXJ&rh`1pb>*xan5> zxK!xpx0C=%uXPklSaQ-t?a|lTQ4y8IC3F8h*c))rP(Zg=3hT__oM)b1Hka~Z2s>IR zKIX=?PD0233_vyHQ5QcUzr1YI1dKe`ys&3d?`1i4@CFQUL@?{^R8!|ooDtmc-_tFs*q;9-`t$_pAF

ZqfHx5OAa6vyqr5#`L9G+RqgCvsEQ7u9P)QU~%&vDCs2V4N#>{!?GIQja8`EH*~N(pq- zNY&In$B#26O@qsSVzW?2w52%sGd@8*A zdo5ejQutUSBe;TH=3ut2{6*-NXnNQXgOj8voHIF?HvOxPNr$R&j`Tz%jbXui&CW2T zNFtsYNt3VhlP(_kR#*~A6=MlD8iz?PKdfDN?8I@<$`z|raHN=*8tH4HJTk`UFz14mLOJ)8ElvC1<@UX;yImX$;R&-p0fP@O1(u!c(spWi>XYS0&hdlhX@! zqc<(vDa!H575CvNbW;B3J}YJ5lJ94HgL*D#RE@lT+wg|qglO`8P#KiEQ<+y%iI@DS z9{Q`-J|k#^(<0sch;oqI+t!7yvok~rICv>hI-sE6x*xE&aGX{>uO6q-%|WsCv~y(QWW1sh0%?BNV$gNEztYoA<}R5m1?9Ca^msNr>##Zb{A^%z#oKS!QVS7rEG&DsZ+4!h>u@GuRVJ{Eik+L1 zRpG_bFKnvE^UR02u@#p}W>@73g8c_NHWVdc`MeYZ#vk={Kxik9_o}#TSC8& zg}rAjXT^~=uXW^E`O!O>zarZ-_;;|#*veP*M;u7^8*IhHQL_SzgKCSgn?K+|cfDyJ zskYNT<`@N<@kSgyK)q3Ku12Lty61?Hont0o`INW}h>ln9uEb6HOn-I#O-x}>J-9zm z30U;H29Uk8(lAQomDuM`*MA;66TzeZ;f4zrO6kihm;p&<r0QKd5U|TvVFe3!`FvtOOoGZ=d{R8R#Om4UklK8F@y1x=E~A3x zd;g21v;J%HefzM1n4q9^h;$>}ATVl_fHVVTAYIa}gc75>I|oA=Mtv06=+QMoa%>0_ zVKn&c`+EL>{jj}uU-xyM=W)DG<8)idWEa;6Jt^NIufZ>;&c)hpu1bLISdCkBM`P#7 z-p^$f(K5Su5C$vaKUdhH!BkivpzaFzqS^P~5VZ`)0OV9sL zZmGnDnOtiJGCey>=}!K5cePICYF9d$rhSwC{V5!baGccZW3P;Xc5U=5)qtl=mkOb@ ztn)`D*<*RxKCD37bZsk;616zbgAnmH&2d*@Ygb3>r!E3(AruDv&uuhB$`=mz>$rQ# zMIIRxT3fGStCy4ROI$dUKS1V_YJ4V|oIGplxsFJV>=Oo&PVeayz zIR}TN!r`5ck~%W_5AAdsQ2T-Te|0L;gZ9+072RUAjeh)WwOL)}xGborqY0yR(BDZW zNH|cv(`@2ifOwy7RbIGkU>>7fz|BP}AyDeY9K;CSVlpj5-kAD8y>d2sCR^WXJk(U) zS{|S?WoiT>NjWOY*c`~O3=4UUriJ~=w5j!eZX;%hN4DlqvVTG}f_x_cc;vM4mo_&$ zGko&DTU15!9kiBN{Q^>m(87T|0K>u%`D&Pe$oIoUo#KAWi(UZ-d8th95w5Q|*yzp0 zW2;J&3!jmxC{?<`YUz67kB?QWG6Tdhpx>JofeP{tVe$&l>E^N}WUSU~Uu9=BfB4C& zb~=8)=%VmOi};8ELukWvxP5eT%enhphi4u4HBF^2&P*xdW_Ud~3_3^B{EycsrvrOu zf_1v(C&-Roh0^Br3^?m@pCy!)xtSh90z9U6YY7|*T_1#P#ks%5+&?bVLz~O8O&lK2 zxeRA)@pfLH)fc)Y;jR=abwLv91`4!u!4h+Nl`VVYBbA4wWD(vcM*|K{ZCaJ0>%HXK zYB6+_2mfv*X27o$%4~e>r@0st&2{NMKsSi(V`TYE_TBa6>h}KlExZwIg{f0=+yeZp z@s-~Qs`xyg#JgAs$J+N_;@3kz)6kxa_(|OHx-Y>#=ucK-E`BZE+BodVk{StZLQs3< zS})r0d0#XzS(ly<^~UD|oxEGw{R(oM-nWQOAGS#uzlTFOowVvIKs_vaEmt(Cp0N)mxYp)G-c;LhLJ=dA*W#M?YK8He^UiGymdtP5~*}c=Y zL|Di1=CepUg*@Yd^i7(a(~GY)Od9eJjw@%{A4}7f6H2Gwed5)3T#}>2ALCJIt1N@u z;u*V1YW645jcua}psSX_L|rYAvFr!?h&U7%47M$Ws+-A$V&5|po)+<+>0D?gjLYPGx0Goar;S zpLI9h&)(zIt3{B^w{0tNrbQ|WzUvKUS+yC_D`?YRlp?&}e+>0PRy3DO zYnyetR;^To+alh!qYz?hX!l-BLH4*IyWN5&rd6Z0l ziO(I+SL6%u32i%}XaM_K6rUvaayMhqhke?e?G)9M{j-coa>FJ4As*uFBa@O!VPfk$ zY1M0}v<98JDUjzy3mkHA21R)6qp=twYAUl1mvy4{1u%r+wbegq1dG*xm@7MLl|``! zTomXsw6|%(}2Q0?*mUf5%>U|B+5*>71=to3(AollFLPmTNOT?NtmC^w(Cl$m-S z{4SL(1@MYbxMz_VTb+g;R?rPGGJwM1$L#R4v!*ixt889KnIR~Rh^)PD2xZr38H^1z z*{_!9w?H{<9>v>8#2;bT%vsqZ`Q+>0cx8L->?R>BYz-ON>a>!k+4G4X_YT5%`vt*N>+f*>ME$u-! zhJ*X>9dBO5@q30TEZr@i!iDM2egkrvJrfL{r*2mWOi*>GxqE~uuNv|A@GGQuwb_Py zcGl8_5NaG@U&(sjM|>M*9Fz)H(DA29pF3p@e9t()R|Qu64StiLrY_$*9WZ+!SHL6=1RmNw6>wCOU1I8r+diJq=~lJp(Y)0rwfSb>EfU3<&F-75{pn)&vFCsG zGLH;jKKZaNX)#jQSW+&DL2JvnWC%kh;b?}HzjLWH4yug@?Y%m8t^U+<9q< zeRIO5QWdDe=_b%j%Bd-E;C_^uZ*WVg?xqK+UdU~~^j0WZ%{l|dB>WZo9>7qWlfrMC z`XW(mmphku2LHjy`niG14~Z@rJ^R6(qbBw z3{IWM-)(arZ#LekrkqP;ojnDSvVUiZqWh7FsY#1b9&It>?e=-1Q&t+<3O5j zJ1Sy_emoF?PbDQka4l8nz`Wb4e$mk*ru)QB=PA+legO$o3)bAO=8gR6N0{r-sA>KI z#YXnqs**b^%NIf!{qI$=@*go&Vr7Obp7OpS#C#f zj>H2Q=u{LHI{d=HNe5sW6$r0T zH+V~ws9uw(bf5Q*C*(zIFyzRoTA}FCov}reo4Th-@Z})d41K45_ryN)ZVprR6W3#GpnXCS-^v+kv@87(h7fm zX2R4)$EbmsSE4rk;w=ED&Uni=fXoQbHXwP!dje~nVp5|VU!AvEjMw#}3l7dSwn~2G zX(YYb^98h`f&%T35izwMF?0GLh#Aw8b| z_p^Up*-{oMF&U;%&}TIR_Y#;dfI96jC6&_sKms+P zLA!2-e&A7A=X=zO>hIVcfBv=drmNNJ1O2CMSaXN9^{udW$yz`63pqO$7Y0iMN}hk`Shzw?n=n@_X!Y?JZ3PU3NKaUr zrDFTaDGk!b8rae||4dKHtjz#JxQ#bNb17=o_zMWvUCw#WOa~s!$9NKBCosc=gj^m5 zPRbk&JC*>w%zg6*>}WyV8%Nl`Thl%-u{#KDnvW}uB;&;SnLEZ5N4)XUm|TQKOdpQR zYY-?gOs)RboJYhVulPU&@jK!|V|GM(z(lr9G2~h2MZOsjBwP5lU4PHSsDR0>(g0+7 zR{6}L=x(B(>qjODez?1cZ^{7O+!t=7p9URKKW>{ozixhF)qsaCvyDl7`dq3Ui?1XpgRcsvbEE@)B>(_4~rHo&e`g9 z6Ia)7CxJJ9#kITMbNEZBQ<+>LFN+o&^3NtHY7Pdi&l2E~GEGb?nqtF$CCukTL(QYd zzIcstG4xkMFF&5o+@669xkUyv?=1g1nUl#~f6$urXK5xEAyDUNtp@`Jng40%tXFF~ z!`c195=eLr)E&i-OK6!^!HY}-<6VA>PLbbQrF}9y^xo4GI4W>2Gp`J zmTi+Zv>8O*-pFQO;N%CyfeR@uEYhO4f9tDzQ3hD(t(N>P#>6 zg9PrSK4{PoIh3O8{n)XOt)h(98Q}pVm8X4Oypr5uO?vWWMH$0kACe%n!#XPa4Vw;tSa)SfM_-Y zTPKNsmx5b_vPdimM*|(}O_}Hwj$J6mc)8Ou&?&ksTR3HD*3^V16wZo}wbkJ7QPkV^ zolv<`*YrI!xOw>A$bdd?T+hE-r?ALS{sra7oV%i-D})kjUBg$bEX&_eQP(Z%+%TPi z0I#E2imLv2paqQE3tOj;9bT8865g?$^%15PPAjKvkBcQ{BI$Rjd)Q|1;42JVtCIA& z*H0#3bDvTObktgWC>eAa?9(<9i7yp5MizJp5s+I;8R77Va&{* z1Mouni@6#W5?=($0#VVV2K1Le#9_PvGe{0RGm_ ztj<{goA$_KO02k`F7UN;S!o*#^6I~RM%trpk`xVL`mTi|6SRS{&Ic6j6ms+;q$R6_ zKe}svzo=huPdr`hc$+>6u`|n;Xm~WD+6HbLZYG`Ol=81rG9G5;@m$=VpsbLi$!Kw# z5*d0(3dC@Q^^O?KXb%LG`zY~pwF*Vm9tPeLISsya5E^+Gsnd9`mM!p33ZJ#2z`G%! zAAhDv+@wOOv?=Y=d;Nhq4iNwL7YOOxd=8nZ&i>zu@vS52k?t#ni(6Uz4oma(21eESt9=y1)0$0?F`se z_VlGbRQk{F>hDavr@PJByfS7cEiff|L?nHq$DG`5p0mZ~&?Nl0xJ&Q~Z>~Gu_+$N( z%w1>x>{*&WFJB7%yTv3IaPB+V!n@h5Yj?RvbW6qsn@LVZ=!mDRdDUP#ld-|0NB-jE zcH8)x;Ma`)U4dP4V|em*lw*x%ZFrXbf(S>X2k|3Hp4hi!A36 z9gO)IRtKmKmUF7{iqsUG!mY~gvdDHhmegegH>0IBd8MqJ%|+01zy#`gC28+8EiQWC zr{S){+B?ACDh+!@Q)YZO$K%3wAVmswr-|tIjsI?$6f~D=0Mh65FmFnES2!=%+}1Xg z8-hi)Dq2d?jWbcLa1ej%2hqU0evyq_cF@VZh;hp9AZIu7g885ED-Q7nz^3a}^Lumv zO3r10z3&g#A#C!sPJDKBR^xIleO@earrf24BeOa*l`X?|MH8|C_S)JH=DfY9puFr6 zO)K4$XbVp;D(tZA`&l-_FztkiUNyJc+aGX&l)Jldj!#K%TH6ys6hky;T+BT3oA-Ch zL1^naV}D zZB0#`^+lNL)7Vd(@4m+&cYH)rU&q~otzY6|6Aen1T?%oVqlog6JIa-5kem;+6m~rQ zOJAom@Bq)x$y{^IfWb6}Y*S<_ocJe6Tj)O6fS3j=&y z%+Tr79uu%{F62{>Gc35M8u-Ba3gBno>k=A(;}H1!akj3zsYH}DiFbJ3lpvFw7Z~Lh zm&n=(wk)Ig{z)!RMz@rKwWy0+k$C4|lkwHM^plu>d1^j|{q5=0pH5ruiANh4FRaSz zF7?KIa^^kq)<>Va|+)seVJKl9(mOVN&Yv2U{Vtt2m$wM6h=&hD>XkCMj79vR zl74^ZC3uW)ox>GP#O(9Ev12kZ5+B%H`Yx;CdVEhS!hM&&PSyM--o5C6{K?-9{V)X$ zir*mXV<-E_f*3XZSd#IanD*0pj1ow?`=O|$nr8^~h<>!TossF#>)+t+xA_`E?9 zr%s(ElxksH#KwD&4Dh_fl`0>c}wnQPNF=jpO75{F1+pa}~=;j-Pi9tSOdD}ZJHUv(cLm-Pd|5~Bs z%{76^kK_ZVF&#r=?}~9mS>TERNZOmGd=|@II>QNh-rgm(4+|1}_z`Tpa1B$g2Fj-_K^t?&-fqQqQ769)Yv_4mT5sBayb=LM=?+di7`a+=$3JsN@~|2f`!zs^hu*hFbQ z+wE3&C6H!~a5{A>%8N^JuvJqNVS<2q%o}6{fpste%q;n~e;d_WVfrYbPm-8xwL6%2 z{F`H{1gAUU0v|KAYw8Z9A}M?Ue9O6Y8vRt9;->vlp?I-H4H(r6cE41mnEg8~RV)sUk zXP-Xha+eO040S3v${l0e;|1LdU zjZ-_RYnSYXk&5AT(i5tcdMs{%A#V$-r3z|60fAKN=QX1effr=x%ghLz7|I`Mlfi_}-$VTkX^G4G)P`?VkF)TvU5 zxxQvv&{sH4++BIdOR)ZnRo__!>fRPUZ*>{8nTkJ6NT+^L)$cV*{a>~1){;}r;(xHD z+x}44B2j!QD3$)`lv(Wvr0ftQD|=>bK50zb(k&reRhg#Y}{%h+VlDdIs6+R zd%DuQ&So(2N~xxVgJiOXG9jVd3L=mmtK9Cz@C5fZ)+K;+x;Nu9I;?VFza~La?Ou;h z2~TS)q|^QlYpyEOJ&}}dZOO5mPG)A^EB(-d^6%u zZZ000!+A&8MaNran!<9cf|R6=N};UHN94Yc_|-0}aAW^->4|A0zZH<_Z90M^d%cC| z%ShnKSrZBtZnm83$7t?5G20AoO}H_~&PeFQwQ75Mx_Fb=CZ|PG)f_QQPJ`(n#a+^I z0Se}-*oM4d9?doLSJJZiH9QL-QroGrGA`evV%2nDLI@%8k$9Mbw}|Z$x@Z)}0uyU# zZZRkJ>?^u8btNo_MIa}DLNiYiSzQ$QSUMO5R1h4siAlr4-g=)bO-2Dowrvl_4#CFPV6N3~`CoH_?%r z`NkDu@o<2R`=(^n_ejjxB??L5i7(@z`~CUs&%?pP8na`#*DkclqiVfx8>QG=P@Lbd z(H>w0dWO)`8Kv~(?ioAM8=ZZwTimL8>zx*30I}ViEyP9lytTH&+xDlXhA_k2_69)#J_iR z&xgEV2P9Rg`x{d3{@bc*3c{UnxZHE=P(9WddecmC3(sT1MW4a0S}XnhWL{Yx{VVPn z+1RT0Gc{SYbltm&N41&^34-65m+T&1Is8<HuHH(Dlvj%#=y5i^yJzVdfUT7kL zV)r<3kgIR+c<9H<3y;git?40{+M;T_k!Qihf9swhg#uK9b{Prt{`2}~K+i)qSLSRV zjz;vIi2*;cck%mFW?J=aun4NAyDZ~Cp?PfG^nK{FuFcjariSocn<^MJ2_PUb&#_sP1vsE(XYuc?Yq5a{?3CNxlwj411 z{sYJ*$Ybyr6C*+5} z;kV<>tGQx>1Y&UnNj8Oie&R&)mSTd>T{<=Gq%^&UZTWYql2Xc7K$yQRZ{s8>0>94Z z{#grl(j0zb#}F?YiyXb&tA3mPssm88Q&`^<`|<@#a>6eL6r<-F=$3&;Q6}qcs;!s9 zbA=XR1d?CKvSD^LPJgI#=gR3(oiXxWLFO%%uuV%$@=m0ruSdxT_10w`7fy{_xDoA;I2=Lo?|UVj zX3TeuqZd|uLivY?E>U|rc?t2E7z0ZD{8YRUh5p_!lR()iC0?sQ;PTpg{Hb1rJkQ2^ zIm0j4E6*4Iu-@h!tC!0Zj8d9zX7 zurx%f(YJblC<_te$Ro&er!saFUc}?AFOVqhE04tfFZ3&|5@#WbzAY*SHk@aJYR?Aa zT(dUsV<@5>eS(~YQBUzlgn7q>*JhEq)f>Y|cf|$gw_XtD z`nPDFS4=e)s){a7YOk@AT7Gme6)D)_IPqSjc`Zp$oEz4^NiDusHwM_xWKU!9Re%o7 zdKTAB%L`9P;J1DrcrYq+L@B0mPiy0y))04{=Z*MR>lq)5v@$yLYp$FC`uf<163S6q zHACp$!{eDB5rANlh7BS{BXie@7~FdXsAhorwdRlZRKL*Fy~T;O&|-+XT=^4tFrr zTwmqATlzM`-B?68yjxj6jg5zc*xzkf^ct@KfTezCY;c&_UEnHO^#33@qO6l{f^sJF zbW`Cp5S9=|qS0DBL#G|c%6kyagRlU#>vx7Q$#XzBZdXA}JSgXNjDT%-yl4b>Y|M=mz+sl9BPs7d!ZQfa$a7g=H^LF5%p>n)SCG z@nI8Nl3blPqTJ3}_%pwzbo-N1FUSQc9yx$jJJ2sazB-yq4M!u>9mG9#_kKHj|He^K z>fKcP)%E*%tnwMb!^o3t{GnIZp%+gG9G{#8?{}2CddSvyAetfRW9E+fM9tzv?1`Po z0g4Pv+f9Vh2koPRcDwvNcj!&G1MO4?MB4U?{M@33eJla;ihG7^kdpyNR`ql{8sUAb zi~M0Kd-=m6XFtYy`l-B1PJ?t9=pC3<8%*yWI1gkIRzenG|8-O-TDPP?vc$s+X)F*RAw6 zO&UFM!g-YX>5`G|N?baOQ;ek%WdCd+X_C1g12V)3Pb=VV%#p>?I+||S z{;1g5ox>lCla||b>~`$cj4K!RX6@}y{B#^?WPM{_FT!4r5&W zic>+Rfjl>XRv1zi2~C447>9V@p`xfd$Mk%5RHw1rMeBEE)?^wOLj1-|8EoX^Nz=_; z@2|y+YU;eN`?x1r3wR}kBD_E}g?+80QzGBqrO;gcZT$AvG&dmb)pm)@$Q_dhWe#$> z?kN2@e9=NJE?l4~lT;R6vk+P}H2&n%p4pU~teH@EV331!&7vNxE^YQK_CVxj$y4Dw z0Uoa@soTa`UrP7ymeIAI9x>vUO|W)6TcLRnA@RA<^SN{vX-RvtsbqnBzUd5@yd-Ix zZEfV8cjc6=u5cPypb?Pf(z7FXHqY77V-+HdggI3@UkYJS_JwvkY@{?>9b)wF7Tx4@ zE_1bPwQ2)l|8(M`3W=_0f}+%<<=C@*OQ(f3pkdl0ZrU#2ddzn9s*!r^-`YHd3zk1C z5xW7w$I;%V6}CrP_g{v!=I6p|Kd^{E3J{6p=%=D>3Try|L>5d_(x>@|2`r)4c@tV%uc|?|aW1Z|kowDV0@gMB|0| zTss9=TQ}FtDej1byIZP$T~`PsHF(f1H2|S=t5jG#@yUK&B1xBcvz&g8udTHiBEpPr zz4mC+tTyhb7kqICyR61?Gg0Rkd-Xcuz*E(`!XkOb(ZV12M)(gybwUFiqm{unS~;S` z6s%Y*w_4b=t`i>lHSaJJRd`zcil#iJ(z=F&Y*Q}K69bLgq}6}UENv{+fSfm)yQvsF zUQK3PdMigNyj!3aeMET0jY0%V_ErRhR#ZHBb#LWWn*ZJT8^WB)tYqr#ycD_p+V;Qo zqt1~TM$QqmTloBYV#lZc!Fzn@mj&i)WHPotb-dWxF!mdGI!`jG@k#4>m%?K-2D;ikCaVNRG-wzj7zKie)UzK#UZ)|R9QdO; zHduZ%1FY$PG)Y7_b<4FV&_8#&mQFlNF7O)UoDa0+Xg!4Z zjnur7|C?xdqp9)SNs^1>{D>HWYcKE%Dam6uoPhp57^f*K1hX&2h~<}F2e zSqD~z9>E6@ zYOA@NO)IkjusTzTCS$ikDx#@n?I<1^tN88KIGj+h=!JPs}g-L zkT?P=>Zw$Iov97k`XMq*6)e2P6BX)g#UB zE^ENeQW3JxqeU|pU7|dewCKvs9M}x0Ug=2xqUwpo;U1j{WE}KnRuq-Ua#3f$g0~M? ziIeY8-1qqPxYyMuk7?%n4;}D#lim@Ofo6@2?=ObVD<%?+Z+!+Pd^PnwwO-vT#!vEg zn(_gg+^);2jOmtS!R_m(cxYPaOSQ))y~p!T6z6N`cQ&ur8bx?_(+Z@B0$#8haHn1_ zM^im?w|JcW{lp?u>(aH(UG1VsbB3d>hDSjx%VV>vbg zofr!nx@jYhrG6tuvg%sIEXSjD(!_w;E6%@I;W@X^`;wljxzR=BWx7@^54qAs6) z<3r+{U$ZILNaD$7UhDKYQVCYRALHV}cy3*h;AWs~tSN)KYV{WrzzX;A(PP|He5C8N18hqL&El+t}Q%YEgJD@(3A4g z-q1)>N1BP;!kTK^n})7iob}f;aMYY`9(->)mv)_wjRhOdNF56i#*yzaq3<{oLK?_AIiaO>wef@SPkgD$(Rkw#2-#P%|-^ z-Iq01%AY?+(m&*|E{6y0Jx_iCjo%sfMzVZp!vu223k(KKxK4gheV7Xi5&JRfX6m5p za3x+&H*8SFA@C)2&5)&!8n0y0!#Q0otsl|NoI{2(6p+VjzF;aHn7TSUnaevx2uDf~ zV>T{&;1B&C(}522ZRq-b1pb^;Qzt^6X(`&>(i6_Lu2cu`QD<^1kCSQYto`Di?Hqdk z1U?!}k?`27^1L!N{``i`X(bS$<39&FN=PD^Tmjt8n#^1?puoI5>$zQlNJdz^*YZjS z@ilnSt?6C-{~Rpdg{o>z%y*_J!@?@0Sw!$>?(|nd*`uNo3b4zF&dRkXzPKB`L)J52 zoDMw6TQKH(GZm2YC{ohOccT1sP9}a}J<(%4BEPxuSG~MX?n8c=pp@DH`yK`OgWCxw z5@Z~c`XsM!Dm1`Y@FGkr z_~I1NdXweDqD~nsVu^g?uX*QVwlUeAeBIjW4q$D7p-OYQ@%>(z)E2?LI-@5paOnw= zWF9vF^`EuNIcO^>X>>U}O`;9Fy;mVZXW0?p%}`0JN&4<0Yp&@yz5tX@7hxbES0IMx z5NCO`KvTqK8|hWf);sV5rd3Db+G;H`tJ%}o-m*U);h)00^veWt-P|L!6+>YuK3;ii zKl;F-s{-o1`S5-?kHMHVEn(0>3|{L;QP-p@N08t*J3!&w@Y=v=gz~v*o?{k^tbN>BA*)IE_hK)J&!fZQ4dYeI=VXX0PmedH883qn%3QYi zm7pl2oDAU4L9h^e5dCD*!1JXsQk+|uSv3`*ofi9=s9VCn)!e3CDNvl(Y}D zKi);JFwS{Zmd>DOR$6&Ku7+NG^N6#w8DHxDgSOCmd?*-N2qHn#8f}tU5bs=pb?6-+ zm~~(%pCRKRJxYo&$MGxaKS33Ex-=4#@tKdZX}GzQ^#l7l(a~ZkwpyHi-5Im~=zNz~ zIQcg1em3yJe)}e0UwYqnxW2)6PUlnQ`}U^WYisWefCjvJ(WUg<$vu2;Ixxf~N8{Nt zk)mQfE+Mfq!<057u88ZJQHS>keM1*x1aUG*VboI{$-zSY17F<^e6UVbp{?=nUWY5t zS!87<7Gmfl`T@$}u&&h$QvFB{?h$0+?0v={r*H#hEmwgxre?}CIxnhA=QcG@V%}kD zt8DU$=gnN#nrIu{q@^vCB);KV1rxS;K9?3><|~{H&f}np#pJDJW>|nXQ-gAXbt)>K zc|85rdojtxMy((aJ#ZKh5E`^+3HPApcQQdN7&=nKjs7%)$rW6rC7dAu0RN+!dRQ&o zPHJDkHBm9MXm1wVE%@ztKTh0MtqpX386sq5W;_R|Mlg2c74!B=XK}#4`<9m%`2_d} zh3a*CHJw(kZQ@MjAse>@Fai6wv6-N#(hT>F%L{bY{xY2uT2c7)Wgf1S8{hlw*?n+Z zN9y4u%>-7fem1OfWjg#OH<@Ipk2&bKMz;Q%<9;SbGr? zCf8!2UfTKIH6A>J$%BJ$rxjCMKjY(=9J{&loh1p(h2EIixqI!8**6@|eO)~EZCv=t z-;JIW_#RQ<9B5ArWMSd_*vSy;x+6zmWX3)C|q6jj)}#2w8V8 z0uHnY%q^Xcqdm(SPSG0_UP=TpNsHj5iJMzYOENiw>))#P7wW7`*-f1#qXlB!nDs`T z8OZvBq>_joSfh#!T_dtdf#UC7_BdzT$lUnyzh*bbG|>oojYclk)l$2*p`-eWjvhI6 zhj!Qcf{+%iXK~Xj-ihhH^5fpYN?`y8yzk4*B1u)YPTya3BSTAF&BOX>l*P}zHiV8^ zh@Avk=0X@*iF`gBBIfUTjJN}d` z^`{()Z03f(4PR*Yd2D)whEHbV9@^L$*h_imf~PYUw-a12ke4BEU1NeE)8JSi%0oV6 zfh^Xv(Q2^<*;-%4IWT^9;LL1)Si(wrP~0rFsYz}0xa9B%=4_5(NGW*|s&@@vh_i^| zDA+6-bp7q69#-&u*{`l4=(^YSZN2s=@O5R6m~s}7_fdk%OH^3vXI9<#Un6oJ=gu0w zL)r<%1iUP_j=GM}uT9Za^ZA8s^KXy?;LfP$^1XWigPQbx;tmHeWmL$t&WG1|oBKui zZM;v2n`I#`c@$tXWZmBVsEiRd)x4lxG`s2#47Lb~dvKtIv^V96kM%`Pn~z3=J~^(e zL&Cma!tYk6J9P#q>MqR&u&r+vTA zQcBc-)`FfT;wF45LzSwWJFn+r!?3c{h@m;{7wKtpLu1Sr_d3;S z7H9J%w)3H}9Ej+zCeBDc^`okl;E5wd_=WGsJEMOmr_xw!*L#0X`smreSsWv^^sM{9 z9v7=6yGy6yuK(zV8{piyM8R}iV81N>&ua5m`IPS$yU#se`KgH@WOKkhDi1*MCrFg3 zvH(!Y(yCk=EJLPpH-81H$>yqIz9HX&E}h1rD(7*8K#1M+7w%`+0}g>7Ekn)a?s6u< z9_(bpvI%|hcj4Mz&1_4}1Y6h=uap#Wy1=JM#ee*UY59v_HYIg~W^c#+G{E)xy^z;lcw?=Ph1KD#2FalZ|BtJ@DH$%ygPfOZj{tF{F!e z3W=vw>y#{%o>b!-h3w&Y$rsS~$0({{Tq&(f>`F?tM>;`V7FwloC(rmhs1fd#gRhBV z^`Xxs=dYtaK)4ed@+>^=-!gkzqD|*%z3&}l^}}9=(O1*?vnfYlt75!J8|P*AXLR#c zbJTyZ_qY>J-&bU9ouu5-ggG>Q2XG@xMRL1(;{)~4_S(DT2m?O`&$buyK@*I0+|biG zzV*+Yr=F(AsCf-UP59rO#Crn)wN)c$k()Fm7R<{1|8NurnYQ!&f9ZIt9+15 z_KSLQd+m*wCQ)8Da>Z|#SGBu;GlRsGl7tcJZXJCTJJK%KvzuepJ(+Co>cVJ|@=)s^ z(yXT!%9AEH_BXt~I+we|xzml;LuU)km`gh#8Y?G{6cDlYtX#3~K@%SZ&d;E0+V{i0 zp?c}>Yz%aY*b?UM2vhSE+?YR(YFzsHyVvW_49lEK8_N83iltzE4t~4NU)geT#TJ+s0vH6srQYbQ9 zPR8t&_|xi!eWMSF;SIDvm~e6nk@`1^qI!O>lX)-S`Up>SY8cUo?4W!)`9PpDy%>zmwASm^hC73$H zx^1+<19=LL<0VaW#O+Xo@vmAle$`_aPR0YDF87K_IGHp)WBMhDnbmz<|0S0y3LRDY zC^(tf2DX2D73EiRDF|tsSzbDqwQ3Fm3`VYWZvrP$>2{PXy0q-RxjGJiH2dHR zEUVXf@tV`jGq!4k_L#6=5~5PAANk<^y&HT8|5w(8iJ}J=B#l@{HxpJIC?h##k{q4)`B6_rk^0-sOevZ5JiR@Kld&)YR?Q zs~gDk48?FCf027p=GN=3aB-9{1X$^GE!+(a#Lnd!AFto~GhCj&vkWbfGzg&`Qmjny zuMRyunh_<5ZyX?-wco3d*VZei-1x(SF_7}J68d%r$773pmJ;E(7?v-rQYGG;8tl0p z58&ER5Zs~CwixrhZpn0R{rIc=(2KZ*SBAKoP+t0{o?(Au3~y2J9)7QNv~*GTv`<4*-5Cp}){;cQGzT~Q(=7^{qD*yE}+j;}^^ zk_g2@Sl6YEw{)DK8kPb7SI75TpB{;vYSh7_pd%lX;|Xm^A3vbDM~ADO@&$8ni1_$V zeg`(zrQr)=8gDp%Nkdh?oqFt_zt(}`F*+HGgXOH0zkQMEIgisch?<*UD0I}$C>e!9 z_p~RyNt1l;VgC)C1G|`b-uLPQ&xho-X`>6cCnT3Nev$k%u|SMTFvKcTSNNvj6~#>F z96W6stYl_F7JP|~fLpM|uj+RqGmr4K!f-UDv0Z38(V4l@fYJ@gZPS6yCyO{J`Aalj zaplynwfdBYD129Vp|aE|GinG`)^Lx_?5t)3Y1;W7xys#m6@jPHcHD5XmAq=RW5LJW zMr$oql}-DnbIJcl(Rqin`M!NvRh1U4y|wnHR&7P?y?1DZ+SJ}uQJdO(&mes59c>jg zgAgS~Q9?9U#E9{G^ZuPb#&;p>8UlDs$Q2;C8_;Qd>k6T+Su;7Y!=l$q+6>Gq&Q4NM4m(D)|07rxZ=b`1rC&2^8_B-T zAkL~?n06r5OJ!ZS3&puxXSI^X7DaRt)dSVlJyVLV4+MDVbngZoTH-n8Orz6Vs~1%Ve7tsqveo#+}n?*F|fsI&>uUO;7A(B;K`l7DybM>h0(~sSYDc) zqNQIkjBQ1x#wl!uiqr*(#$Dg-R?6{>w1sRLs?2ne)GiRWu^N)rX5M!tRFbNiWgjo2 z%hFh-G#$oULZ(0)&({M!q%of%hrP_4G^su4@mXy!(G1ZO;7XvLW*s_BlW|}XoH%su zx6lcXd0HWHeUF7z&zEE0EWNE}Fa#~3rksHE{`|s^m+hvbN?=7E=3)rCR}HfZN`pX1 z)u&_!Pb+_L?-+N&!%_l&Az*hS1#{9N&*^no!(6*I)o#dJNQLx!KjZ=4z`zun2N^N; zIKEX_Xp7XsU+;roLF+`x_^@Y>ig-3xJBRJ4!Y0(l;=w1<>b{3*Zr{OY zYW?kYsP|m`#J5umd6ew`T*5jcxn)@)+qd(2QK1|cDe_MQ;a&W~Y3giTico>kQ9*QtFxu#Vob6KK_;e%&X@?0McmxlidoE{@B6ae&;yBs|QgzXg87kGcliyvao|d*Uv0LHH zA1I!0GxC&lEM|5CK;uJHb<@9aF!?;ShS@nF@w6h$pM8ldg@TJ*T)wEU3!s!!D^hy2 zT2@rf%uMetIW=6?xqV)6b)c8ChHqQx_#qfpZPVx&724hM+y~eq4lN>-1df=!gg0R51Ey4+D?}%QRw&81nrXFkDiso zthrVN`ru5g)jomf3ad@SNCLAE|HF$pdc88=rVP`D^LsK!E!&E&YE!;^-1z?p7F;Px zf}yU0zhwhnAq2843(_0y3B@x^{>ByUi4Mbz^{@LMt?J4Oc4x?sDtJ%^wbvzgw}E5u zXAC0m=2!3GsRd1Vq`l7j7wV8Vcm-w;5yNA?lxy_)oTX{K%ulCLt{tCfn=|Nf^&9f! zkY=K^yMI}6T3X<>7yy+XWl?om^_Icy=-~}xgM}p^lm|IKD%TZ_gq8{FIgkG5M zRiuV#>T?DSYp0bInIC;)Y`EO9^`C7x2##3HnS*B?owEZ!&cMM@>fFL>WtHb|#u^)a zd3EVMCWDc7+f-eyWK86qEvDYr3z<1joF>L;9P&~gx&OT5G@r$z97>1?#VT9;hM|!} z65XhxX19KZTC1SN&3L{6WZ(6zD|YB%h9aZBml$|-iDe^JDk{uVRT|^N1U=xZp2jRF z(T~ub2#&=}J8dzK;%%$P*29W~dt7?g{w-Okj{7oJIx)nfg3Kgtk3#cWwMwH&zu&a< z%;uh4U0|6hO5k=~BTw{fTJ1un@Z^4fmfoMbw8wzvu|uo^mdxGg%3H->m6wSK<(Ud( z@Z$H{yGE8;Ah$jr5tctYkVrvSbwXIjiB&vqH#%`27L0rGN}PPw*1gEU#+h|VwkIQ- zB?sD5+uF{bcUPC6;YpOsnbyVq~lIWvYmQO^BOc<{{TbRnwZ;RP>$oafln&C&0KvW zwbKuUwh@PNNT+~?olGk<^3fWQe|$WKDEBY+xY4DnFK;TP23dTDG{JI>QPPR(QhJS9 zX0&vk($}+oQ*&nead~`L)sG!+$Uzz=5^}2rm8tGNxgGi#VKhwEJy|8~b`!nPgk=tk zeC2(%EYm!kU+o01GIY0#J-*!+7g>?!pZH+xXm1laEU0!dS@u_NNe@i8c^u}8?b zu6uSR|12_c_*nUeQ6}d()daOHx>YY4lru(#b6YA;DzRN3J(^mFK>gD~ogdaoIrTyP zWhMVZEUrSGw{53Z9qQ$t_MWfLIj*@II}UX?0K!P9hG}qa&*_BJWz$T(x)94H{yYJT zIYFH%eD}pa8-{K0?X$y&phfyx25okJAqiuNU3Hg946*_hSA+ zV6}uq3}G#MMzV0%?34Pkyu_(gGaIi!xNPNFf#c33g+3oOEs>^E9E2tWFcE2}r)XKznc`*$B2hDr}F9mt(^ z@RmGE7+IAW=}PReo_UAF$Yq1ro3gER+gikS>+2>3*;jQbHr$Z^;IWEwIqk~FK8R(r zwv2;+8029F!s>0ko`$|fAk}*5%r9HYMbEkqR}?)l(X>PTmQmNuS*~BlTV~G%w6jaVD2NkA`MD#{6<&4B@tZ3#_jjG ze2`RDH-umEMM7PVrN4aH{%lKjY}@%9Q7dJ!A)k3ynx0jNw%-~4KQW16_IXrh2Ly2F z)N8tC4us znliUchTM;6?@-eRiOM6zs9ht3^)kVr<&p?|8XG5iN1K^t{NLE-@=Y3Nz0m6i?88SRP3= ztCsIP+bFS3tDu`tTm5;g?1h&dd!Msx<{71R7+cuar)FKF3XzgeyMsBXINf34`es$* zb$YDrY2Gp)9iTi?%(7}Znj+8YI)uhQasz3d2lvHId_K}ycELM2{eCU%R^PcXjMX?{ zXQLG*j|>XCck?bae)W@-XwB5k>K&x2zAkR_3K9c3Z#jPKsYz*{)fmDz*Tn69RtMR% zZkm%Q8dPb>*9vmJkXF}zOqCr8{(pTUm`uNn(M5@A2B_?m_QJ1;sig$+!bCjG7eyQH z{O*ntd9n1&Fd#VV9b*fQVfb;qTuQ%R28y0$PoV@eQqF5^q(w57Jj$}KTw|EmKlw_| z#2L=0p=MC3B*^^rG#P(L_17OT5w2bEZ%nmw65Eqp^(_r(JUzDdtBE)sh8;HK{hrj+ zr=Ag1&vk9Eh(X{pTJVz6k zPV46Xwf$*X+fTKoFbo8HteR&~#8m3XmfOPmeo(p^$PUalUZ`AoO>uHgnX-qqe@O1r zE4-L{^vc`Zs=m9CRTeL8vYPTnH(6o8`a1qrndvfr#vzR&xVZZGbrV;yQXJqV zkVy7cC8lyt!&bUY3rym8+sPqhJ}e4&Y?#ETQTHp(HbZaAi0%f!l(?b(WFQpXG#uCV zWrgp%=)b;84#YQul5kyShGJA$tu zq-B-h>yLu`(S43~4ogS}O%Q|zvmn8#d0_kBgcVX{E|r`5r@+frHeA8KD?hG*S+S7W z+H{&};8fGWIa_o0nDRd-+rPFIL_Fx4X7tvgg^`^bQhXfj=4|w>4gKM>KW{)wt4PDj zFW8Lb3&8U)MOyeyMq%FwS1u8i_mS%oBr`Q`qfQH|s=_}rgRPqI>y;lwSs>pq z!aUC1w09-_ehAk2bbMg_dOyXK^4E&ZR0;k@uvXw3;lBO-fUC-T?E|6_7wS%&sx6wW z%cXhK=Q|d2po3?Wk_~Q4@89KkvExs`5e^n0104L(Ep?8y@R ztL>v6@*CjWj|}8UDLhOt%zveiQB}*7#a(ZwM>b@^bcU_#5TRP~$D{l6_b)4N%a`_9 zTpu77bGlQ{(tcr^7AJ-&bMGw9t`A7n$!q(R`pLunS(4O?D!DQ_Rs2Bg&H#IbE(YgO zr9xPDjd-K|D%pL>?}7=0Z9So%dIb)W(31O%hEtPGAh3?IN~pspu~m@>ttS=?u*AVg zni`k2Np7y*PwkZ*G79G{|9)yFGxw+z+uF~T3A#62X{u-% zymDr%7mDB)dIpXPhNJKUib*k)&m&UJBxJe!JlUAW8EvtTXr_%dCFz*G;C8!jDX|7s z=3>LNF?B{hUiv_B*f#FP&Xff|BDu#oHntsn`A1V1DS@tlIliqwY0fcZ`lVrUdSH$$ z#?18%jfDD^x@oX;nKMzR<4Q-JWudT9YHmpljAHalrsFO?{{dF8VkGP)AWq9n1gef;C z?xg&GOj{*aeB%kc3OpnEMbv&6RlZM=abAB8#Xd7nz{iv$RHcUfag^IlSw~nYr_hH( z1@)!E$L^E=g5Wv&H#*1;FyF1TXN*T@9JISpJoJXOt5!O#QUmb>?(E1th0qhxB4ORc zVCP;5>DU3{;jC_C%^Z|$*R7Lt`Us}Fw9c_ZNZL;z-@Lc%5UpOyw{IQ~qf4>#A4c<2 zJf|LiNgl*lFDqyWZIdVXz{*c=_PK8Lr;|d!J$Qt8Kx$Zq>AR%fVajepA45g)&6AD# z=O~$uk@x4vXJgf#^?lRng&q!2sQF?#K1Yd1Mmii}eAETbm)5|{mR}nmFJwbwP1$oh z+cKwiBXB6Iw#1julFNKun7EcQlQm1uf@Uk`GCQXIzpu(IZd@BtdUr3A zit{Ls>mG5X!o2X)HNl@=EI3rfvYD!_^VYE9b1XZ->j~}|{@AjJdz(_w6Vtzi3#z6B zO;1Sr{9C?$)vdRcR<)aZM(dN8%*oIk^ix!v#XQt~YXN0gFX>I}P?#TrXEPv{%4YO0h^QwQOe z2fGbCM%J43B**zml)=HXeOLw|Pi!X2dkK=sZdE;M#!;zKUyWDqx){v{ zjs3zgHr0hRIuAzrBF?irMtKynn(sP?yv1l&>CLl~8_`%Vq@jr({@V3NFC0aZ#J^40 zHiXIIBZxi`RSREqv zhXbcU;6(b$Ye!)hibg;4I&IWRG}9y0FYr{~bVqq~q{pcNK-$xBtHnPB&)tv*>N3-w zl(siP}4aMPl1H<6Xe@)0r!wfhTo!0?#4oCqwa^p!(IeO(e!`;RNQy1f~ z*z%ZO4h z1K!jP+(daSBp5F|o{soJxg`H`(Hmz06!^okt&-UzmyvNZ>*5 zy~rjDen`*bZW-QD#ctQ;Qv^4Kw{4pJbPP#<#X59Ooe%ocHAw5-mBZ{^>hU;5q064> zJJUdOr>lV8j_jD8Ha(q8wJf>nSZrU0zI*ypuk)b~B3w>3^zpY~!XAdCkx4&~(!*vl zp?qQjX8gH<>+O!AD_SJUzk;>ddqZaKvA}$`d0TD})prjhm|xML?reEkjzHC(@%<>b zhb^5gFr^834Bk$9%bsV1kL^1%q_9(8Ays7UG>%^=iuGye)od&7R`E0Pn|;)Ubk&P+ zIEn-?DKR&1japX-4OBz2ss~E`vKF{fn4 z(0)~L6tS$AXIiquBJk&X1$!4hh5Ne5J6$IH`cT96eQenQ$c?bwZ(p#1viNC6{GRNK zvM<6^kJyf*6`g$Js%>tix6~VtD_BhA!mm2)ZOES9x_^=BN#~pMuCX#O%CfUKH2qC& z$%-_S)><@Za<_&t@n5fg2&Um2pih+ko{*J?hOH!TYQ$;u*FfXXbX23N8-Zd%#h z**Ri1RNeJJnb8Bzk4~GCK>CU`=Bnxt_b&2qx1DU(Lmf$-w4Pr;mF~%GnZK~s}=vDWR?RGWqfEKje!q z$vHXB?fN{F=wtB9hojyh@cJ-clY9hW@Pv074LW*f(-G23#4)Qpdedl^HArg5;vC6m}=^-bKR!A-uQ&n zm;PHWOrI{bP!Zq)F_r64drP`;+ew`yLb8*-3Tn63zL9oN)Z^?Mg(S$;yHOeEfb-=D zpECQ9*(-Ktt$ZC2^I?Rq=)dO+9l6I=sc9I#D4ZjwppbV<;nT|@+srFa_wdw&Ydu@u zt#ld_u`1{s#n?OvJIf*YAAxI^4@=}}g@SPzXYn&pVIikj>+HC19f0&GKT1$L?fdC zidI8PHI+OEBic8pJ&B;ae@soj9`}F`M)~I_F|bst3FjrQ<}Y|7d;RiHoRL3wwm0>| zD*XxN#GcMSOY*@y@IFF2cenNg1y?>b;hmS)sGwDJGkw0<`Cj`;6VkE zvW`&qDD`KLiUzB|>iKW^&($7rrKsjbQ`Wk{*{Z9@PzA69s(U{V%sp!r765zC4fc40XKAw6U2dA0fD;5zv9=p(sCE?T0C=ZwYK3-grBwxwU7UmSk`z!YQn8bJ`vW2s!mTGFPiuJa{ zqq$O|W>PHG&$d@FBU;fP<+aXtYe>N+zJlB|vVMgSP3ot71gb$o z9ICdepEkNz4u#Z3Y6r?Kpk_!nP@mL>mA{2YbSZ0+eu$LvOUop-pmCU;;Ud+n2XHeh zyxGh@M(lzaeuU-ibqKv121|#>UwES(-_ytZ=T1|w#1}GEpd7dp20S#6@++4ev)}bA1gGaBUnR-BrInRO5A5`%ii$+O_ zA4aIHJ?Kn-CgcDSHGiJU!XpNpE%=%#{IlUz`eS4zu!|D1I=UxcgtneD*AyJn(JQ%&6CpO!xpoWB=2&{ z7jGcFi#W8P8JF`1wIkPz_fh?idQ%6*X9IM^k0{%x#w7n6+cFbw6_r+9%M3~>`ZMRC zBWmHBq}I#zD>2mOv<#P<+&V29y*1_ZNRbrXR?EDP?1% zAW<#*R*s>Ak#2C}_7X;A_Za1!fPt#%`TcPsME#-8LkzyV=?`;z9+sIi^-(fv4dtlz z52CdX>Sq6RAE-VRP)SB%u#T;0;~uT03qAC~2e7-zs!3g_klpxe4S*87g7X#GUsfEJ z-{;J0v>Nj;#~ph*zr-vaA!-NDVdp# z?`7{OzXCmEXQP%28qghCy*bn)8OevzmWv`ZP!jna5w0RsPkNK0Lf@pRSqQ^r;7Ox@ zj!Wf-cU~SEa^;!u$@l1&S ztL#Tn{IRgyMDa}mZJ1xCbo~I8?o)-cJAiICKt0ZCyl9}cELM+W>Bt~@EVtJL!f?7< z4sA(sZ2#Fqx?Qj46Uh@2>?-E3oCYUAn#;sFTyyf=*!#}bdkZl^JX9Bq4I>|RS1ELb zpus|S6qle~Y#{!uZkba2Y(#kiU#kAFw+$#!yg78ZP16crcdbc38%e>!7GF;G`#U}M zgA|cz9|R^*dW({8Ev5x)UM)$op8fvy7oL+uAk110iKQ$V6@MJHN?0Ax^SMkakWT(@ zvG*W<|6Lce$&LW!F+wFXWd$oPw~U~l(=n>X#Z9cra%h~V3qA1LPt+D}_~J0GtjQ4^SX-#u1NpB?Aoqtyy)Ece zi`RfvW{gOI61=pIoqMY`NbO&&1Cw3p3?{tl{=8XM-~IP|i7J_AVQs^=f|o~IeP`qR z{pfO2?SHDj?^>-*8Zt|^bw>K>Zs27#FX==XwC?L} zkPNrS6@ULOOt=iw2Y+`kkV<;_8J*9KX@0a=I_T$0E+G0~oT+8lK=B1iu9Pnjzw6}r zi8?>_{C=k%Ybg5|W?X?!Hfsm&g8M2$=D}%?BuvZo0}hf{PrTCXWzLqLL!?Yf{;t(D zJc4MD6T-NZ$EeLF-w8bvuyvZ_W(Sxx;|ma3DsWNP>yfmPg+ z+`Oj_Jy1*PI%2q9Sf=zCHz8R48rGtyrKnU*+#^1F5O#uu0-Tpp``f9=EU_=v%c3?k zVlo+3q=WZ>@2%fX4BN|ll$%NGaHTNwme=Kb@28n_Xm()U%vSk-7!NqhvGo3)MtssX zt%-k_kBg4&HEPNY1Bnvpa&19-n?6u^)*e`D@Modc+t5vPLw37$!ht{24)S^|k)8je zxXv%dE@M1k)xA3w>g9Cs!6?Ps(%{xT@A+P0-^gKHD%5!VI=@+)tNn za8lR8rL|{#ymfRBR9088kma)^4!^^4Y^#{9FGpG&5EbaW%jrp<0hYkK*H7IWxp#?s z=S@<-(*Cor9rwh)dH5T!G!Ha;qFVy1g_HWoL2>;Mo1N~&cRbtT>mqzJ!SK|?2{63V zwiDyE@5gDWjQupWLon*#EfhHxqvP4$j&FKEJ={oEn)QA9W2j977 zUXgF;%t^@~OqTv0b(2^`@NY$%4R}1~LdPo^(pNNXBpGw~hVc|55}H;d#e&5>q+^CG z^$tp{Znci%|FWD`6l%ILs%5>YgZ3PQ`E(?5-0&dmDYKdUOR1@W6g&_qn&jkBgT83` zxHpbm2A%o*N9a1PXwrhyq_xF|C#RSE$~kfT<8pa~yU#ZriBo%nd)#9#=~vYSJI`bn z$K-ninIE;hc?0j_=C0>13YN?aezLSrDtbxFTjB;(o_wi&XX%2(FUPo-R^PtM%W|<} zYpwg_470p>g51R1pEC)-P13-De9UJ?HgA{wYYlH_sKB8 zu}($1(3a0e7w4Z5^TSP;t>5|YD;1wKV!ozVm@t@zb140$oa3L=9N^f|rf6B6*2JHS zIoEvJ7WvIcA@W~ZZj-)^YhSYkw1FaqJ_uyP*uqP|dT#(NpIC|sACw9=>dFTSHsUHg+;N zbEn04HZ2=0NDn@eCKaa2$lwzRshD@k-4}p8q5Du4dCoy&g1<<1`epL5;eSh2P&27c z_IAIXNKBzCvZw%=#FoDf4gw~oGfXt~@-KB`mrVyoop0M}inelT9S)T*jo5y`$qkV7 zMSE|M0Cw0H0}$UluF7HgpSv?@Kp_=>NIetj+MK;Y6aGVP{(2J*b-ktgP>(`2CtWJ6 z%-nsQm~Vym>Yyck?d#NFb%h`III5-N2y?d--#lX_93j=}hLZCkRmgvruwK6(Gw`9i z!A?~*=WrsO+UPXmv=>boVsQ4p*L$n*{sCgFNw&k8P=~sb4WT%sr1HiSre$-;3J*!Q=ya(Y}C_p{+??xvmSbHb0TL~Jv>!X+#)XKZEf&q zM3pqqHXj94B*5iqiJKl<6s}gAI}_t*Ii=Dw(`8LHQWhf`h_#oS*ELWdYSaxP&wJ3tXd_Vj~f#kjfw>COADhgh2NR`!_GTd58ul%VEsj@6Ivspb`C>@sDT6-|H6QPb&CTi5I1-PilEoEFbGN;xK zrmV`&w);IoQhYWU!lnm;2fEJ-L*_WfzVpMIH>j^9MGiumlD`AGVD&t&HW^Ln)9?3U z3(K$>Eu{-t?OrX;C6A)Q-D^c^P~?jr-%jm<5W+JsyCpetZ$yWP?rf{Ow9L{~l9s=I zk`RYBfzhh>F*>Bz@FSTqv+>}enk%V>7im51`=8=WO!)1nvg zV#Tu^%t6IK8@q9acneDqu3z};W7n##;|zq2DWvpi-bLA}%rx+wc`g##T~)(4<@q`v z@hNg$?^D)CJTr-@moE3+aD(vTFQViJ2MBZe#e-6jW|H;^Qtz)hZS+T&785Var++OP z?s${1>FqxS`X*iFSow$W*IJ{1{92f!j#(R5n#S#FwtYr+i}=4C?j37Erg^PdK`Q0H zAps1dqD&D&MGu!XNJbBWz*e-<7Dd&xeOBVEPRoO0v6nQ}|?l z4&7NAn+t5+cLAbb8skQTmxyn&X@OK1F`A6yJ$L)^S^MKPajLfX!7}{8sBgJXS)=c2 zv9v@?ZxR#Gde~ibw^i)*n9G5n<@21+fVX^9Hc!VQQX?fzu$&^rxZd553OmQwvncr; zwwfL)ACV_5;gbMEIP6@su%!8v7<6 zlp?Dm^f+(`Qq&NDd~J&0XSOg@I_AX(_y~AmjvBv_N3L8cuV>N1hkAw75rFkYbn>#% zfmdx^@>}VYi(OpUMiqbG3eIgysQUh#u`kee#oPWn+GdOfrRR%F1?^tjEFd~P!%2J_ zQf+i~$0!1c*I7GN@itDbwJfXdxm)bg*k>`4t4xd6FFfGuub-*q7?jlL^7>6-wj!}= z#n$YfnAZH$+->z2EJefN5qe)ucswvEci3vbuj*52lzvH6YDMAZ*U=qD>`w@n^8qg> z*3db>as$Vh?xTu!ti)E=)rETWyFjw0%Vw#D)GR?&SBpO(a9X#ft4^)8YN*GO+Ef5$ zAnNzBf`?{ZTMO64+Z0S>;DV8~OM_wBV!|6ppb(el2l)R81g~!;Eu0t>gv~Ljr)L3A zt_&9jmtnR}J?c&7g#5v1jFjJN<;|{+$NATbj}5e!*55HgqVemCWA2a%g9t1*tb1jE z|N5}LalnhE*N61r`k*2Wtfhy^P7AmyUU{BI-TF+aANf?<+^H5Iwx(QK(VJ^wu<5UY z2gJNEc5M{+eQ-cv_QQX}kVx`2@LXLj*#~4diHMhIabW1 z6;d%VUYd(6HQq{1p1yf{j=WslV|TXDG|Z-Jo?T84d<&z0_&x_S$8u!DU4)Mmn-bQ9 zxQn91gQO(&z_kfd*SnYVHkXv`RlpzadP(}Hu@-hu=|t&V^Ztmk7gGeN&?JLpzBiA` z*-kv*X*?_6F-^#}_OAcnwIg@v<4t_yq zA=8L&B+3zFQdMIjX51Y0<1g_6Jwn}}2NO0ynKArMA)?v$=hS^VS@ldpb<@|VU6P;t zgV*+XWEBP`>AJ|5z_bU9b~cG!*3pVmwXi;PYMe-s9xJvVSePAWmFF#cv0!E+OTV$e`kh{s<*O7*l#b&7jjv(_S;)Sj9Aa^zXF@;|OU zg~@vRbtBa~pM(t5!rM%y82xAV>HMyI6Pbao^W|l6PuoO!a+B>>q}I^~HG8&kGoRmG z;`Vt1f35*pfLgq29aQ1|88=cXxj!R#J@But(8bwJn%aDtZhZOrN7c7Glk^sour~64 zhd(H+ex99QALjkZ>^V=%&o^iK+N7KI=mj~+a+=>v#iH(0e$Bjb6Z)w5o5OnjI3z3s zOPv!I4$4QZ+8YfKSr3e)i@Uu(vVL8b@0}+W=M$auC*AX2s%G)HehV_XPpTvQ9|KPK zV1njJILbKV4d`EqTP_uAS4>N|E1B2c>zf^0$1=*uGyyf$($%>y2WT7l@IhCp;`E0l z!E-Nli$f?R6_84+qt8mhF9K+2<-lW~=WRLn-2ZAwe5HD@b`+U*=2AoP|Z=qM89`3}jw-z5MYL%kR(WKx6 zFaAjI4X=11&~d5_x`c0BeL46i=iEuK*B*vPZr2$*(x?0i#qG;YtZ7r%GYxg36=F;M z|9iD}QUtH|_`Z7nP6ygoF=EYf*#Y1sVYR-M#m^aoql0RbO)T6R=YiDIl8+wXa|z%! zIp2JNlLB~xaa^BRv68O0+z>i6nEglzwy^QC4eS^ z$JT}4i&Fqdb!qA#h<}`Fd!F^kwNwh860i<-aa_1xg9+QXBE&poWv@Mmf_9Iyr))h` zdRW%oHtjSwhl+?Y+3+AVED*DN06KxOLPQaI&JPYR_d0FcUKKqnbaz;Zna4LSQJ+^Q_OQm(By_7x#=j-uE4sVM+7Vg7;d>wyHCJvw4N^< zp3D7@;Az9i_Bk(vy7ee!E!QYM{layR4Q zjKV&{FY$Z~_~F)Gc9&bBxqfLI9&wp#VJJCxdVRZ3EctXM6xE;k*!O3Om_v6R$cHvT zsv=80{>oC0oIMp(y9;-ceqU}N$sw6kchu~2Irj=-vUU=pGq|7pL-ipd1^$pT&FogZ zVKlX(8aobE;n}US+Yu?5u^KDxPw(`yA?a!kxO_?!6rWCaoBlt7vVLNkr^$`=dR5c; zM$bd5AC^RRwg;_HrUX!sSyYr!P)q>YDy(dc|0n{i^=^F|CMr^5CtGbn1SQpjIeLlf zJF}euD78Wom=-*`^syhWg~Kg~;rc^$RH1F4c-c{Lw>*a+i$9*2&;Oj8=+T-p+NDf( zxf)m2ssRX9q;5FB_*uB5{h9!|sT^p~Y8dfON1E9+mqqdB@>c4HQIn5nxE|B+6b!%e zvlj9>Z!u{LY|K$&`CG=OD(Q5NPi4}K<0%R&j0Uoa%qmFZ*Lqq|Ilg7l{mob*XsYGk$bn!YZqtBue`I5`Bzp={Wdz zKuH<*S%>jnF;Z&8zc*|3MIEY3BYCzzRQEe-=hiI;$QaU|#*HcWbO&~W_25?HBY%i%E$Tgk5 zoia7!&Sj=aYG>bAF#&w+I`|=dHLO%S&?VB4W^nBdzEcxNb24UfjHmS4MxR#05C9c( zhz?)lCGOxLki)r1N0vqQ3_7Ikg zuha3rB7p@nbwx-fnf?A93u`GrTgzTZ5d&rUY`gCGi)V8QK89NQguykq#|ln(A!*HF z0UW=s%gPnp6Wjw;0rGw3<|0uEa@-_o=gtYKGEgru3--%E~{qR0w&3u&tkTP)AK+0HUdjm#QwfrM$lc$}nOBhY-gIME{u@YahsR54D!bT7C+ z8i$&WiP<=>xywgP_fLv_w3qpVoqN}mLhEdftP`W-Ht+I?ecKT&5Y+6})@Rxcsu=t1 zAN6!tUx_97Ty{ZAK#R-H8d_Z;=EC5v81}nFfReIy<3`FmA|XiHg02xbU-<&Ts(wxboG7fu^~!L=Wwc zyK|<{k~aOn^97wN83KVSk%~R0kTb$2(?VThz{AxUNWIiyZRV+1L06f3 zJllwVO_E}nE@JT9;Tmt8bFv4qHP?0?!=~_(=5^uvIBdXUN^MOM-6e!-`&CMA9@T$Q za)lglGrm^&IoY=Q%sD{__*JNJ|iP4eS(1|kE#k@Ve};e9Od9+R(S);gEo;rl$&bf}SoW^>(ism5@+6JV*l zQ$XSPd9OzggihJX>nImOBfRV4f6kWS~RP z3KjOQ;byD(lQvp2{zh2i?b8xDiqt_RK4sOGa(dpLJ9ptoo$d2>l#UoTPbJQA&>^!X zN#v&HtoQM zG`H~`DqE4^jn9ofdZk^if|z+ey;R2*_f1M`R#KyPL?l`fd;~_ z8{yCNHQmLIH&xylSBX<8C$$U%h2@7RL)hHHX8X&^4=XucCme(@PPy(wCx z?9aX5Fgym`&$?|7Vm0x{g8Ird0)#sTOsD!P!ZP_Ud=U1%^6ajYf#v!XaE@+zg`X$S zl^8T^UB<$1Uc`CwP6lT+&Lkn&&;gkMeJ}d(Wfc>^l>23WX}G3Zc^-1R%3XY8~$d zbR87E$r9)fcdL2_Oef}C#{=J=E#qItpgU;?5bRLZ2=&7xu5vM6N0cPv85)$sp|K*L z|LCJzW=UV82UJCgWoh|CA5;P5ohjwXLThGkANbU(AX2RKQJ?!h1X-5DEh@h=b=Ij) zO69ll%G@odx-`)-2Y(Xd-BjW1wnMT5PAe)r-Olnrsap83dZVOimnU@goVK$n_hj9I zTua(j-fxF#icw>etd){88H$6Et*PV|NRqAUSMkcWLNA+teW>%qMM`=JGv~JwcLV#- z=!#w;xvbwXhnXEc9`FjOj;ie#9-mNFC5(MJp?Yg>ADQN0qG51L>jdMG|QskRZc`mkPk%eyOYA>*H-| zhh)gIN@G2^+4y|vC33N-t-{=Vav!u1J+Z|3jP7rYp(wo%!bYv^%a&E?mp+A|R=Yyx zqqbPuXnp0lr>2zrro+pd_}?a~y)3Yle05(t#-+6`f27^KU*QAha!KQZClF^uSPdOU z=Kp%Y+|8LIYGW_cU>rhjaS#$3RII9FoliS{GsmlA-c8T%R`y?a}GfZA*++6MDu~Qpe%R_Cm{GIl@AlGL~VgT{5?2og#Dbkn%vcjx>CQoy9f` zGbyz9&-=!&|4GZzULxcMW_)Afz3jF1pOM`AO}fl4wT#kr@a z_7^AAZBve1kM;ZnF2=I9eA9b(Iab3dgxgixR0b!u*J*Gj+Fskxta;YzGI!h_c;Awkb|Y3wApX+fHNd~ zIQY0G%r+&32U7wF54{hb(^k;*le%lgR3iA6YFY=<43=!5E%^+Mqd@7#^iuEU{`M^8 zgY!#yAT#2DMT(vO`m(Gy^Vt~M!6ZL&)Q)-lDc%Q&@7=^GBF(r{>_8ih)#3} z*tGs<;miMTdcBq?lYv;uy>1wv__uktFV%vEFwC{RfGWN>r1@Cbp;r3svKe>yD4Mgv zDkPZk71Ofs3?bZLqv#ujy1{x=ciWa;7^cD{kT!{d`)7Dwxe|_BRxgR?+p5hD=6Xr( zl)|`ThW_xN%ACfJ!jX4#S*1FD27N)hfjY1YGobMlfvo`H$QS;tdSn`Q<oH8^&tv&@b4DG@al_q7KY2MQmEBAFrMGLh-N7Mn1f*g0&#b6Q zz97MBP8bv7mdM$a0gBK|*!Fr!vcTA5qh+msQqM%JsNa!V z{=VCgk%OvA-olX+kdobv7qE5(v2k~hLY=gT@4^H-Syc@R@fzr2z4bp zSIOy|Nz39)%jV(J|D)(E+?wv&D2@RN3J8KUDBU``L+O-mPzI8tbCiB{i;IU0Ano&6&^@7Bh+_gGje2=PCq<2i2lRxo4#?@30!%%SgJl+xtx)`g=b zG>8MFWn=D88V$4P`(mT>6G(Xt1>`N0T=-V!EiIV^V^tYf1%cA+93r=1I*pAO#gj}Y zon%hy1?FMP3Qb=B#wszXPB2@wN*|zv z?4$NLag6K#D^7&A_Iat>OL9`0dzX+RUi_4=)H#xFpr^^TDcWzobV-w39XCjcG^nC&C!CVj$#0}gne3|wt_|rMAzMA8?xXNa! zlC^_FOToa4NNy`zyFO>r^PWwl@g0fm<&ry$d)#Z`(HJ{jH65(!xG>2#j*A=nG;~Ry zE7R6Bx7n|dnfES*?a($(qITfqB(mx%v~l{lfd~e=Dkzx{o5W7@>>NzEl5Zb3XD%VL z+7=}X-fIar?=Unxzr_Tnp7qjOQ;LFD8k-+urz2#X<6CnPjf(Q7YKeLH0axBd6=tp6 zt*ZQ(RBMh!;bYBv3nr%ak?-CwwK7q>HYk4oHl92V^)61RWx1?OW_J$lKC$xw_le}}AwdLm4mS~-a+Xh)e z98b6cVXbnA$r@U`bRRTzvmv+PseQ{L&WWnxCXoN3SIBk+K&y&wA-UA+ZHJ> z<&U18ihU)c+fI5AQ1ua!Q4ZXSv zO!Lj=^-glv6rk8{=iysf31-GZ5d}+p&~G6*AA>b^ zkFFZ^&3p9aPV=`cHzzER{O;1~_4aK3(->`rEo-V6UMfvedy}i+S@Fvprl9YazKEvU zaNU?U=Pt)^7;!MaX0W+nZV~M)srbJB2uPw$~$!Fu2%k?|U zPoB|=DcBTJOnU|H>%#`+o0F7SE3znDoAni5{emb7>^H{&&HQ7(eLPLGue_QCfnpF)8dUMFR>ujIHg zqWUDSV5d=fQHIL9uopKS^(Abx7*rxm+1ha98J?I&rm|NFYFl4;7=vPza! za1-j0ZC(#-`-*GH3JNH{!=$|md%lZM`Wq3*S?pCQi0#JiS9YY8uCW}tAg!Yw=0vyr zD2sw8uq2vB$XpRxN{IDm5UrrWMl%EhF1_nxN#j?ZP5*FWGaUHrS^*Zw)={@8EPJBQ zW>IT{JiT^sKR548XSIt>{7rfUsEl`l$*^oqV>cUuX)BE$Up|NkG~r-k`X}eX&l)V| zFoCO2bBv?+NSH|PivEwJA%?1t##|9)fgT=sR7{g@{q3Agruz$6y{qNKK_}V^tYRo+|PXiM?W>Ir01oYvCH(x0t{2|Z^Y1gTeZ1KMq&MG)8a zI;Xa%#`Z|_=-=M;-|p-b@^EJ3guKwJz^8saEr<`*ovG)GZ_llVVgj2OBo{s4b^JjKmgBJC9+OMZ36Wu0 zV5=c^Z=%djSCnmnk1CH=&ZdUJ(v@!6x6@Es&8ICR{~d&fK5x85y7C)rLvy_^lZF5L&~gk@y;pEC2dapn#6nclo5|fd<&Q9C;3V z;g!~Jx0JRLw?Gl85hr#aeJebc@#t3Qq@4B(&^<=`rCa8<6!Zv5&fiplbN=A67JZKD z7fju3Q1N4)hy~T8Bw>4D_=O7!M$1n>?5c&x3cB>rd5qJ6WjYq8vE8k2qJ_>T>!$?G z>SA#a)wiF850UF9SCRm!3EK3$@Dehshlx7&(ABx2bOSM7;g;_irznJQV>`sWBOS$b z>H1)b`4q`(60B|i0Cltrxz@qBsDAPxvA}5Q{6}JxCgyPms%?akyDf-C7S5OgP$~6= z(uS0wyJEeUIAxt~`*(%!;?1t5{Bh;WpWbQM^VBSnMAj8?P(|U5*E{be9nIBfd>@#1 zQDJz8;*f{93$LsnO(hQlttQI*@+RAgjDP=%0+gryO8nHm+->RJ?ZhhCd@E7HY~H_| z8*tDSnqHcu;+~LhXT-s3P~~XPv;2~U?6SuEL(`qW;=_^BkK=`^iqI;j`hDzH<82Oz zwB`q8Wy-s&Nq(WOJe)5j&UdHL(!^ninu(lYLIEK9ko$)&6as0A{WnsY2MPuEbB#TzwY7*PI0{fDkk9<(Z&P?Dc74y$ ztmfjz{5@=7qZJYnFy&X`oh?XW5i>f2UfF(??|T^$a1Y%7uFsWatW$Gf`?Si-=Kh(y ztE<~2kSar4V*cF;Q$8PvW4Ykde)Ce^rF}*x!d{-4q9hq^&plQJF!${`k~xzQuAz6n zIkgawhUyi}=&xFDGE7Or;yCGyP9e0}JkIW07Vz#f;<=NIZe0^;^`re5V*}Do%?}Jt z1q5xs=H_IGvUQ~xk(-t_1-s5AzLW)&qv5R1ME``G(|!gD`2L_&-GkS?s|w#-De&k- zIfCq#4IP!ffj28o9^<=d-QgwF6%(`p^~=NA|18x6+M?I)n5sM0{XH(ZtsUD(86>=U z<+^7sSrbPNJVWwjHC|GEsNz+pvcCx4Ph{bG>6Pz4!JNzE1hl_~8XB)NmTT~?sIe0< z(q(md@7eDsJ`*hUJ8n!pb;|Xt0bxy`j%&{0!AL3k_8MPT)30S%RZdzKv3C;?;b5mf zZ2zvlHjg_79J^5 zzbAVo4krKDR<13=)_Xc@Q?8ZV=~g?jpkFEZh*0#+>_!QeNOnTtJLSSoCC$F8*4iU5 z_Ol}@&4M)y?xotg({j&Qr3Fd=ve_w`sFa1&?uM#WpcyCwp3U1A4K)vNIfuSmqc}!=GuRs2#&jj&kvymd-Fm@t9i4Oh@~m`}p>&;0M$#y5 z{K>?4$8MP2`9eIc^e~XQIi9&0D+l(^;neGM`Wb2-zS>hI@wL-^I4x<@5X zI@p)i(KlIY&a&Ln6JJQl{0U}=-s}d;$FGK_q%F_Uu<(%h8PPKhJ6SV_swofL@k}Uh z=1oPu_G_OB${^Uhf&7IDvE2>SCcAkseLgRqwlKA};UB}HtnW{e3=|Uz_zAvQoMEt& zA?&u*c%;er?$^JH)AO}ewzB{P4Fe}RbZ0^H!IQ=3uJOdPs}om9`KEDx_|H&$^JafG zW3{7|fNV3z;C_o%rmDx;jQq=fAg0*2sYgc~90N1!?j;cK`99D1bu{*bbvX3RorPj} z?Q3I@*M_Gw`C44FPrs>w1O%6eM6_;rkM6J0h@T&X2bhb+S@{v9*oC=# z{7#Clp3k2NP^pT-f1cxWL5*(WJ7){;XmRp&jHoK7l%Jod z9U>)%4%dFpzJY_Q#1p%nRApQDrmx*{f`*I}$QFGuD#Jg}Mw5y^fdA%o>2^djwG(B}3jNzX;(yz06)saRz>a^_XaI7H~Va0N#BY6TNX zbIdr{??Ar$nQvl^s!EC4t4q)W+glhTTHA+Ky{|qlAdz{)S7o{zs=cMFI??P z^Z-RqS_(bjftfjN8;X=<;$imkaBC#3w)|=k*7W>OMG$JS@r5Q5c=v^ zPF7j0%6+S8atJrTsa{4Yuz}e-J?|r)_T||755c2BSYxV1BYY3r1Lo0Ob$i7?$~$2bVo_?k2nHS{C_% z{7OLQ0@8BsmD8`E5TC-h^(vFog3oPvIDA14csCETH}NbT*Agg7X!}OjX5Kt~43=tq zY9GVJ1vWKLn9%j1Jd{C@9iJb~>;Ln!^kxSN2|}qW)X#yc&6$PlfsM<4!QM9CJBEpc zGob%SGWi75(`Z;`43>jNWRIpg=RqwGn(Zau1E2O=c!ha@dc-(%nr2K3SJiZno}Z!U zpuFjdMoyGtU4K5VMWw!e&x;zR^}wdyrTRJgSP}aE!6;c^du*?Vgl`jfiH*BG^Pv-< zJWKlij3Pl_Pygo^IJnW$JIlE|DuN{n20|QLleb^J`Xkx6Y%FR77)|SR(gC3y)63um zpCfq)&-s*yNGw&pcwi8iS zh*X?FGC+#2-#ch}sbq~rv<_fZ7!rz(mOWCkUTc*ecGGX;=7f!h`hMWBBTFQ)vc}#q z`%OHsal2F0+6&3${c}TCEzVdEe_&GQ0}bMh+gH8$iV&TNN&+@ft60c8X@);LY(J2G zW5;&4>4EstKw}rA5^Gggk+w$JaYLrT%l-rvk)G!h+VsV*dXuKIN7UmsP6)R<1TLh= zqJkfxi*~{=ac$j;0b$ch16%B@mGenceCLMxzcxb9Sa_bm%Bo!TWJP)Yv zx&W%=4cFiAMuZhy5g?u8gv|u{BQ)@7yC9`>suJ7SXI~=BQjYxY@<7sFr|R#iVEGzEri-0QN#}wiBl980D#kEaa$9Xc*XC z7lN58N|w~GS=E#*FZ($sQ!b9N^k}=0RQqEXR@7Un&rk4k|l?^8x9* z-~oet^^8Dbq~~!CaFw&BVrk-7cIKf@MJ)vWA4xGTZH|_S{d~H%&h=JkzEWX#{YZ@r z%S-Jr=lB8nvx|!zUV!Hs00xp*JZ%$#5zn|a{6%`BFVZB7*cxJ#bIWU;wAm!p{_491 zN}XzxQ|JuWU7`~GDxYFX6``-64j%|lbO$LbdaFwIxvj^`4!FBznt97O-(#%`UL$i(glD_mU{yA?~JIN_Yb>k8L0D6NBBsr@7Zw*1e3Bx7i+ zAzUK^!*_@0n`*EuaI3L!BzGUp9o$z8^K5Z>tN!o)FmNyuN^JU`7}|R@4n8)k>^oUU z;sGfa%QfOd6C}%5_b|4bc1p!tY>hEXTEqp05d=1&ymYdaf|L%2g566SM;lFU zx2ki0F!?U6oRPDdmGxrph~(DQuju5Jg*eh#? zXw4p-&3M&>JIs<8afLIDY*su=yz3|{9v)RjOpMMK{|5A0vB(fh7^)gai=-Nd>OP3V zFQ|-inofD#R+Wl3_8O>5y|=bB66)K4y`1t@?B5{;S*anxW=FsUB4FnaXN|pqzzGTw zt;H1#{HmYdSeQ&}80S+qxqGL6+Sv@+rFcSZZgY`@CK|OWP9$H)D)9vJ@T(_feXKe< z3PE`-J#%qCKAY13#BTD)6_g8~a){6io8O+7J!+lS=XQ!LJm?}~YSqKM4pA&+?eBY8UiJnqC}>m1zR^-q#g7=2Z&b9MtYf;yezzbv+Q0o z%5I0pH*JV5<#N+c@0V+t+m;N+1zMRh`F6HIa?Hic34j`qn-snn>&$#;vj02K|HtCNMxxH5G z%;fHZ%r5Ie8kc|Ph8O(?sl{F_sV zg{MM;$oESecJmV-gjSV?%+d}XB3dAmH<5BAOW5J*+V-*c!d;ZnzwG}b@$Tw89-g&5 z+98*rrlJ@L$D4Y{5;1p0`H3&wr?O6df5|CGR;J>#w7aY*&*S&wP75sJ-pl{EE^xVP zj!t3|ONy*4l%OjW{$YJKSX*u2WE~U|n2x4U^Vw}qe@2{5t?xjM504f!L8DoZL$ThM zC^cRrCwp)pY(Lm4i~Cn2;-fty&{G>47gta`29BODdmmAES86E9k0^Uraf2L)gb}HcQW=KhY3(s@@)*+tji*vPOcy&j z?g0H-VaH`6ZAz>pb*WnyqiL*Pi{n{>g9R1ZWqwK8I5WKyChysVOwM$jjQ z#NNFT=O{vxQ}*+^3$hIne~bw#8|BGq&o87Z)!yqOg|uiaB=n4U+U7;B6`-oCT-XXj z=hagxHPpdtF&YmqGO#P9Q7Zq_^ibrE@Pe{dK!Hm7Qz-NKiu;ue`;uHK7-_{OE zwiqA{r(G@{S!jWnc%$t=?b^Ln$^JyF<>HeCU~_Cn`c-%G_sR*_NOt3sSLv`M|HzRika41VBJE%T4_(t*Sh+>LsyN_C98ML1sPC4;$r++HE`K+S3}vRc&2Y2T$l0zMS#TF2IRCnMG--aGnsu zH#Ag3cj;R3qZvM5j%))4KPGD*%ll0_MKM1O5`JBGVz)VUxhpMJinH!6+%LBn>eBYB zP43CJB&x~AHFqT@0_yD4;o|wrDkKnzAd6Hd(Fq{dn$^(Wc$pEoS*}Q) zGx6p-q9YkF(iWB4@c^4H`>UHUyky@O9`>jRN8^+h+VED@mgSH$B-@W@9-X#Abk?4g z*@P&dqJDHKHMrST5FoXk>{a?7iD87!8$o40OW_l==ZnPfLXyx)_ewvW61+*ahzYJ` zKvoUU@`<3t895?r+(qv4((U2*d4yx26dD0XGioamC>hxk3E zTzGnTo(gK>mFd`Oo`3H$F|8um$6&p%EVjEMx3`8lmX?9Y}{Ic|zJyP)Tx z9uF&oQVQU}a(VYpLP49!-fA61edwmnUsEwr-eeuV-(4=z8ZxhV+crib(K~_??-N5e z%ceI?rU3bH37@pGh}(pI8H4LiYMymu-&k|-1x}-j(7b)ldK2DBvXE5YIF?|>^paDD zA+StD{loC?mh2P_k5DR<1yH_%0QmAaO_*@j3s>>weV(^DIznp^h*AeUy7sO<6pw?@ zb2(~PSHqOR_xgs-V;>GoNl;dVvX3>!{s!rjee>obJ+0@aaQE2ewW#p@=5BaVm7X9e8H>C z>Yux*_CK%sLGLn*EjOy>es@u?q@llF&@t_JpGO&pe&^XdR|H#oR|`kO_v3}fjg_WV z%#@Y!VLK_^5`@&+`%9NfV0eR2_MIe{79EI)$>U5_{5Y16s4f0b zqX<97nDI=ueH}|s0}2jHTNtui&70;rJKj|I6|W^VG+zjRiS??dYwx={y+1*x$!?3w zo7a{%+nm5?Usvb)SWKtaMn5w&5+XUYOAUN0TAXOJo<|$X5tUa-{^V5;j6Yp=9WGgi zc5$^x%nc#}{~@ZL)%5hzaMe(hq3bQR>L;tS%g0cU8ZX?x`g&r4+Q zDB{)8E5_i3&nDj`Qg)@3l{ansyH9+-B;pY{{SAQ z-pI9q%4dByt+W&))?T&Bzo%5lDnmzXUJ&MwGBRASrp@e4(GIccNt3w>)Oh3Bwpmm) zVdeGoesDMY#R40o$Ywfn>APr78guxc8QN=G((|C1DbE&T3yS_tgQXSSuDhNCrf>Cv z0V0$A;hic&OU-4OU@7_I9BDZY($aM zQb3$-a$J9DN5XPHcyFof(&7LoC~WeSh#lG0Y8q8c6|$2h4asc59+r@1820ENT1e!=jW(l!1;zaX18=3D2fi6)KT@z&7>5J zG*J${qkbA=$P=^e%K13aZMT40(O^%&J8nQ&)p5M^uPYNp+~&;nY5nA=$7i|ky_}=J z$%WF1?oDGQ?nv%NE}Jgm&zAIC3^$tXsMyw6wQ*NNujdRdk)kzD_bxLt^EpR^{`^Nn zH%*zTdTxM`&=k}thJQt;N+><=1CVmI?Kr7WDsEYS7R*_nA`Q~OaRc$;_{jRA*V(cB z5MBRX;KK0KXLW&*s0flGYno}7^wO4J-;@L%?*SgK{YN5m;Z;C%Vo7v!(VsDMQg8~Ch^Uad8Ocrp0S4Dn+0Y{?)2DHXVz8RkmHJ`ule77 zaKVZ*GdAnrd;&j}yi3=Ibj_yu-Ef(`Vm!@cjl<zet#xQ5mU08+RY*{OwQK#ADu!3VxC2e`jtPnU1AOWvYI2u}tJ9Yt6IkOaY>j)G7~Nf>D?xB>WXKrEBWpu!ph4Ax5h){$4j(N76@3uxjC|`Rki1I23X4 zdcEtU`C~?&qZC8({v~tPw;wJgWPogZP30{s-9LBE3&A-b;v0Z^_9rMH2}1qPS(bUO}C(T3;z4Gb?CXM9#&rd2=WHacWu%%zc>Z6e$4 zzGdC;rmBT>-8ytE>~+!nhug;D$V1vy4qJZ%FV6X(# z+|H{Qa2sH(&ZUJjf5j~e1=JenEoTw&L}&Zw81--~YYWLb6t29*}v zghQqAm{jJ<2P0){7;nY9Wgzz{iMe7Cw~W0*vtI19+^uHw&*z7@X6(eW>R2-I`6Fv= zWvFh~Kq^9&6>t$UGwzcfLQi|`-VBPEAT{_Gg-gTHAC_eP!k2Dad>@0DVf1FF67ujW zn8F^yvL%^~f&6p1A85bquHRjxkt^ZQ`p#r$ew zo155&_sZnO0V-EFLbAmtHzko(L1qTPMDsIq)c%*nRI9~&j$fvFPVXd;beAh(_?G3y z{_jF*UY5TBOivb%&yb{?d2RW-_l%(~!KD{Sp@G8^Qk_q_PR5Fm7va5x>avucU&GS% ztR~soex*y!yq0G(rYkJHc@}|~Jb8s(3c7sc%SGFT+NK8x>L1sgKs=>pPck=I#OaR*ff{R$oFf5;{#K3@e-Qlx)({F zK@D$e(Dss5$drVDj1&vDHoP4%EidDpX;WRP<~=PR+E0t@qb(}8U zD-_ggxU#*JWoC_Ygwu%#QDQ5ow@zV$Zhl#Q1byD6?-Eq3Z_}MVx|5BEj`2O~nm_)0 zt5#8nk>KfZ9U1D8$5Yg*X~(c3P4V%rO8=~Z!;fEtdI_%giMij(Kzc7}M`f!yx|+V} zRQqPY12n_I{wdr@8vg_(*qtwiVp4M(iuiPpBdv9^URyo^+)^H}83&`wd6hBak90K6 z|BvJ?aZ0%LMA(qV-SRKi@<%wyf^5aP8#j`I@q(}Gv)Af>ByHCd;D-pKLmf?}&@+QT zK{QUwH)Zw0gO=MQgPB^kSxW``qNH*C{z~(x5f7@@S6v# z1|v}lJ3{x2Sk>i=FYw%@xdi^<_zsbphsH*&G@emHuQF3q{+gfMb;@ip*#4v%KVRqj zm1}>CkjfG)bnD?v*KW4|tz_0);bDj6{KL%FY?>%Yb|viG^0D;`rnhDYDkm>%Ix*4vBC?vucfpwii19@>~IRF800l2ch-CeB|R4IQH%UZcLa#&ubZ=s(e7Xx^8 z4F9Afd>_jso?hF#7C?SsouOn8jla-F9$=x;h%o)BIfhVOhY>niz=q=p3eEqFS@O;;4@wpEU)qg~B9z~9o% zgJylp908`j5VVc!A^MUd$Z~?7Zhw`Pl@PXC(vDlDohB;y55ApEM|de~M~T{zKtQX$ zELi3s6v#$ClxTTpFCJ4%jSi{Q@}3=u0N&1|+x{o<*uDZ{{CwZK^5KQwuB|)0bIg(a zRcE!7)iceM-xsd;?RDCkzAQ{`s=cDk01STD>)NyY87i`gvAX9^8`B}YBgsI|W4AAN zyNMbC1*5fJXeii2)x@|icf^Z(6e;O@zm_Ph`A&LJy>KY9ri5Ay_~R<)?XU2XObdBL z)%u`eq%=msjk6#(y%qF8o$Uv%@1p`$jB(B;MlWclt9zu3V_#pN+`2)Xx~nd{vHrQV zHEGYfiH~UAgT~y62X8fHt`Ic_Bh+#amFPOJI~Sp;c0JzOUDCN>WRjA8O|^KryBY6V z`cJmi97hz(6zN&FHW`s2xg^SXGg+m z*z(+5--M`rG5B=bcppz2KTV}nP&|!q>=iH9Q?KJ=HdpNkl7;AF@{w8)v_Gcg7Eve+ zgQ?jR^t5<%NhUeJ|I!J&)nX9dNxxM?(RYew++SbbFCl#?Ux_6PnPHkpR|;^JH^SBS zOBto)mvaGq-Q){fQA4i@gc7o)^+9<=rxYg9(DKua*EwrY0DlfEcsDLKMLjb+_ISFq zc1H)RGRG>3#a7mjhj+GrCXqTgL;aoMnmjw17h~3K+plN#L>9EN+k?pfM&!~92|1UaQ8iq0h8aJ=6~_Cmq6NN_XgM~fk;W9Ka!28PIPNU*zXU!cO- zywto!KGVz#Vw<$(c;@c~@7<_|-6#|EZs0{nP8}*+Ks;~DLMYV1&Ik5d>T zGI%C{hcRF};c4y`9o%p_*!E$0r-Nv-Ns=ILv-<*Nof~9#T#h4`cXLPxm262}pqrv4 z=Dm7HsGsfPX@yt*&#hD$uGT#$j)#h81#HwSfc@}3{}|E*L#A>o#W;}BpU=xm3m<-@ z1o32Zh;W-`$0vu|;=47ty9l})FDk|U1UE?^wrR24P+A8M-Fj1+Nx~a0)K-de{Y_}GM)uR>q(VB#IKQlYe)hN5e|Cs6C zGo$van}JS^pdNsRw^1OkhA0B6^A>nK;5k9VS;Wvure4HVO!_Uu;?G_y$Ty zI&Tc1)7PY!|))#KS`zC1Mh5U!y;#P+|DWt&U$)%h}zsVJ9m z+tE#+l;?gFh>L$ZfREEIyM#Pavov}gwfLmaM0Nye^wvf}iW5)YMR=TajC|=wKV4K# zE*XuCB{app8(JDzp{nx`rb7~KUeTMoJIqph57|mD=28+thIJ9o)~gg7LS}Tq-x$=-JrZS^%ZPgcz7)_iX3frFX(pea?m~&t^U_I^mm5Z1jL8$ z!xW*agu;j$NnJ9K+-t-SN^ATqCDc_Q#USw+^qW<}*{m13OjEHR+6c((&-LGW*Jf({ zV1-cLJ8tI%KX1dJvUyy^u?@waxT~3du~UmUQtIZrfr{M=^qOB46`mDaZH3PG_ko%smuj-DRy(nUlB_t=U*RVdd*&7%`PM>? zcYewu*B1?#hgmOoGA0^!&+GQfzf7EJjTAwQ4y_9gHcMPJ{ne}-m(ZfTJ7}FcxrdD1 z-E?@sgjPZr0iyZc=*7hvG|NjjVwGgnIZWq>Py-oPzt^2t(&zPsQ1U2m(I#+(NI940 zreP>VhE-U6|4As{;to2I_(4|bJN15L&YaEBjKVF^frFLk{Ctv zFy-kIRCiwd6W+JOlgw;GEYFeAUX&_aUCC9P!oq7eEm`(9|ITI}L&$1`U-%X3&0{fU z^Eoc^sb-`EuD_BLW6(j#88gH;wB-5K?&~KVb#B{?`J6rlP>XsrIB9o!-!>>8LP*fB@1qWzujqbrasXZA|yZY-~QD?WXn*3?3sxd>%$5G z8W>S>3xu?{zVqH&&TTmoY#HxYg72v6`jFxUNl~vMvYRCvzbMs37(`Fs6qqEP5j%k% zmM#HfEwdgXzc)+lP>LAoMlNY3G3a8KjdRc+=sI}t_UsDKY6}-7@M10$VJ$QBu8%Qf zD!!G~ZN$YoX@G1Wi)&t<29aZHh!qFb$!|0j7*gN#O&V2A*qqJqmF0DmN*Ldq&jajG zzImn8BP#o8bFmpNJy%e^9gtqZF}e;;>6GT?kQZbBfKU~KF`zy^nz>n`%8Z3&aUs)i zW1Jd1O<%%bMX%grEkx{7Y(|6Tx*CGE`e77|fA-&Ek_Ys9t*Al*`xX4`878a`q_T(& zSL}fhbEU$cz`)}HiMJllnMqpr!hohd^`br(JLWo@MfMW2$vy+gi0E-4V2Wky0&`vc zbQ6=V0z<^qd0-XlpTQ1-YNst@$bH;*BwP_HY{Sg#Z{<(hBtAMxEcV^KubNar8zw~$olHb}m0wzU*$>Xf(xb32$S8k@U6ZMma1d5Tv>R84y z8b{sO54*tzr>C=O7qLz>tL6vPL7l80^MZ%xcWV`us^ebNQCies&E^teVjkZM!1;*`>7t>tW?~qIkGcxB z!58R6ZtxpW-p-uD@Zd>AAg$dLDkC@CElN5AG-}G(Jj0 zn6DnjaO5|~&l=~yA8S^hnk7y?G->EHU2)8UnypKs7fZ+Y5R`+!Pry{85_4>2!kLy> z5UMWDg5f91oVj#gIQ+Ds;lW7MbuzkFQfG5&K(gN`i8A5uu|=g=`^J9n`DMMLwFvuB#6340BJ+!)b%l2%Qoap*t@XRgm)dZ)e54?Q|XjWP(FTYl%zzn8AEj72&3p37NsC#j!d)w~S9$4e{l zHhPWSwF(KD<{%;j8{@DGWbInZyiH|_V*in3IllH|x0=)9{qrDfo-_=0XSm}V&Fb1p z;Sj2wp;@ib=$xZH~|d)>8|F^D8OUYW_& z(xYl0>qyXkmSwve*C51UCuaVF!a-|CYD-Z4jWF_lTbJ0Qq~7n#*1kV8OR{A1Wv&M3 ztpJ*3a!GPUAuM|AwFyQ3EH8WJW7v`ldb>m-F}aPg-A>GY**tsQ70%6%09w#D(4%wB& zxcsCaukuWL{mfgdsM0$0?vd0j^>iV&r>Kd8`z!c-X zD&L>^m)CGHbMI}=pwHkWvpYB%)Q&HKSJ3ZiH2S>4wV z47p_yO~fVui{KAo^R!P>2S&6hhs=#goBPAA10GLo1RxPFtgK(iRwG}^ZVr}yaMD?n z4e$biy7#O6=zN0_jaw?#e@|xaup#ivYrRM-?Faf+h(tl|54mewSCaAP0gPP15vS?o z+1ZT9PT(sn6%KD*nRvzb``yJ6OsowwE4S_x%4s-ot#t=GV zc6(eTl%a%VuukL`(Uiet&(9Uy-PX+Wo95CLkjP$|UoAB;9N*l5gSaj(Q@R_MkgAw> zgT8IGEIFc8U*-_e?L553-nbA&Xm+1wX^b}GuV%c&wiK`rtnup!Q;Y0r;B!{T1L9Jh z&w7E&*;1;K)pq7x6zRr7ocr|5K?Af~M}+d(iZO7wWbz=N#_jmau3$8v@M1?$jH-~Q zpJDk}F83ggak3a6bm;Lc=WED}d)uVZhy8M-r3_l91G)q7NV5gn#I-t3y2xIic1zGj zNH7zX1ZOOX$n3J^us~#5ThX)^k^M0uYBSx^QM?wwZtYgbD8bx-Wp;X09Ib|{)TD0l zucCZ%Pxct%wE(^|VJBzDUT5zKG*{0WcT%C2=GZD9_b7`1kqY;Oy*<7{R1fe9G@%tH zPETgMhSLX2q1!8P*nDya8?@bIBris=>$vu3; z?ia4Lam4T6ZA|`z#r-V28s2a{OMea+pooW8Z>Hcwf?e*_fo@m(2)+Ak`+B;z&Bl4S zW$H}G${vy=|FE~&E_2~XG!H2Frf5)cC>La0+&QT43xp=~F8Z98ja)3ebgKTG zM&scnI&j?L1n2yZ0+0(^ki);oz$@`@-)4oQj4N(eOt0 z9Ye!M<363?minH9!$Vn;eV0qrfYgfy^DQA|I{}d#0#{D;px~^KAA-AV@7HPbf;YT8 z)2Xr3@#+*(HN;{>g*%$J;UA|V%i1e_o-n?U4zG&y)0$ksMwmM2JI<>P^Eh0G?E*z= z0JQiL2`@7tUK^xBAUREsQvW&DNO%3!DV6VtXm!SrcIFE5@hv1Xg2g_9J;bPTO*WcNv1;mh;^qmZ zAKST-S{t$kr^<_t+JD4DNW;v2=B!l) z&r$usfh=3RdcT`{?d?n+QopA9sk%9_?FvCBO64MBkSC&M}F#(g`IL*gu9m0wzXAgf}5zHu?HyVuTJ05%-t;f15B!2 z^O+=q4y($Rx|JN-5~#K@j`d3tU?G-I43Ib&3tjZh-;}7;H!s?a2WlGqbFv(9`~JD_ z4BJ)kes33K;7$w(Al_%QHAL2M!1J`}*I9wecxy3F5%HWYROO^}_=3tQMV-4wTNI*J zsHCkwbhkN|=A%W}ek}*(h*7a@u-dA(BN2zPLq=_&7cSxw6yV*YF(9F1@t9S)VQa2! z_17W4pHl!+{Ri{sB3J{wv>-=r>f1!A1n1zXIuC)nem&ylL(b2dUX3E&cd&zpjRix) zaCbmy;hii(UC+D#MM#lWV{_2S5h_btpm`O`P(EG}QiX@ChdjnYJU=&SmbRN!xiC{= zNJ|p5yBfsKj!;RQLGv1V&M-zdr5e{q_bF3KsYM=V3f5;lv_jKe?Ppc0pO@4w@bup7#aMNpl7YbJ zJv=+?;hT;BNK)l9D$_w^;-PTKzF#w*U^H|C@?cY6_=~!|c{)5++9EIdL!Wi{UL&*^ z>Qq+Jntxo83l~!FmL>X>+Yi(~Xo#M$d>d;95_#A2oX<4w3JqdP-1t!+^xeF2g4-&- zpe0B{)bqjUAND8Lle|9cEwMEt>~@_@3dpTmiM933?q!pIyNhC>P;e=%kb?| z8OQ=NRK^rEJLM(W!{3Ip_vC8Uk`9|b_r#xI738NF8@|HBNz;ixXLO8y?{C8%kdW=u zW;5{2NN(4r_T0VREBMXmSZ3gQ5x^G zNK|zx^AlRCg&oj^Q@q>}A+qj#h)`|&ZboNh0$7&Hw=OpUrFcs#jRA$|Vpj}zWbkfK z>hO|3BrmvbP-SPR_;@-DcvvEoe2NLPx-%BAknUxDfiMK?~Dnhq`U;Nz-H_Gp}Zpc>R*+QgZJx? z$sp-YAk(U_HC%6m?xED$<+XITgs|h8H@8_#eR>Fy2%Xo8nA-RZc%X~=qYy$Y-(xQ? z=Zuc_x$l<=yRF#V`4o5&hIz!@!?%LPtHm3uty>l_>nyFl%U%AH!VI>uMJYy!$j#1! zV`U~qx}gKRPKq%icPYWcu%qMNj2Al`z`xyD%nQGdly}RVz*7(}iiwqUB~sy_+G@`# zvDUPo3A-`HBqY@15Zd=c4;*k~Z&(2jdmb;@y- zg;I5SX9H<9O$ubysSZu8z@SEj^eZjU%*sR9X3xBS1XYYBh@A^~#0}u)18jRg6YQ_ z$I})?QPG~L!iHvc{?sIKl+LW)z;@vT)3bCMx=L2ld8}=mvX#;BxDji4}0|W`(FfBrXn*Ng$p=<;XZxG@k9(G+l8C~BaHRwd=g=m zNoF4gqD$b+6ibr1{M(aGrc`bxD+<_ws<8Ua>oCl>I&L20PYvXn0~3cb6V`EEk(M@v zm>OC)EIa-)R5bWWWd+mH@~T9M(D-IGp5rJyjLcb>c32_nYbpF%iak43EU7nOl%{`P zte3b|3#?RrfNU*W^S8Y9l^QYRpPm}wDQQW=_W4y}j2S}5DzY<7Zs{j~c@fzVTJ^6* zt-80@$-oo70%9=i+J{XOU7cH6s95dZ>uyuUUGBI)vg?d35%G|ikQDnjl?=4T%YTn+<{JYs49q0V!zs^3#3{q{pg?YHBXxG=XttF#JOnUjTwx-&? z+x>E9P)Zj@Q~+76>*x&cjef@J3Tc-^qq@+>+;{7p3}#I=2#d2*Fzkb6_)P(%Hq2u} zVP-h)r7)h|hf0fX!qaVCCqiOuq6@a7@aGfq&#%GrZRUz2-Y1E2O{ig&V~(CasLSMa zZ?f^?@DJ7KR^=p4tX;%8zkBAM|8dIanHTR%w&uIZO)dc{R=v?LHV&0` zN{f4y_@BxBOR=y;BxG*bHlq@3r+ppL%V&yX%!^_Qn%EB-{y|NnO?JC?bobPv$VvJ~ z_D+$E=$a2k_qAwNyez>hU4#Z`1Fdow46A)Bzo=O%r&_3>vsd#O5DKQCO1DJm{PR{h zs?)6-3{Z#7;b7y=_pwb&FLniEY~b#KIF@FnX_%*}+tVQNmX813_)mE|h>7FSbC%|H z*pwFwhGhY92?h9;no6^7P@+xGT{JUn?K?Me0X(?EGjEpbN}rx+n*`%GnrR!A*pQM7?lG3&$=#5+0J4YUHmRD?gP&o{zvhIx5NT!k`% zd>TzX3R81|hVkyBN=AiWC{lkWgfpaB7Y z=}ou9QPi%dxFRn_wjTa2Wsn`r#jEQH9pKP*L5NRH-gl}2E@aydS@1iPNv{-@o5z*= zd#+4W#ph__*;dH)<1lTbzRXA2am}5(b=tS=#2+U3gNlY!q~4b+==vo2j?iEIh?RED z$n73rIhqoknJ&32GqF?BRCs%U*`8R>n~xAyC%V!65-*`~=5Vx3(R;VQ>w>JzoJ`jNSsBcj{u-;_GWajE#ZLUKNO#NL4E(WD3GQAOL!G?L2Wk!s>caq6R}zv3Ad62 zCtdO~+;!_x8$Y{-+@l{81U#(Gy{AO&PF z%jbqCP7i|{imvJ$fgOWnM?%=WNYSe!hC;NTkHTb!Luzl#1TBj+8@7;G1*8uAI3UB3 zXwc_p44B4&@hnYS4`@q2{lSUO$Ce!*VQa}F;iwz^t8q&dSt*dy=G(dZz=flb45b`S zAPV-?GVp=<2`0KNFZDL+aK-GT^n8-%=ad7c4r%;8w;L>Fe~4XZ7YLf}X$e)s#ZV)A z>C?yLGoq*?)l`A^ph$g`H_4v!I3ursr?R)X*YL}TEne^Ta`SDQ>0;|Z*tgv`Yh_N3 z?#xPEcMD3?rShUr=OobVA8;WI&xV*J(4{S(BGx~zt%lOCAeNnFjB_pKCJwJcSh@}8 zQdPH`6-KfJ?r7TRp)lyK(oa>~a|xL3V>vbh0~2WaI=`!wrvfZa*md%%-z5#E6cv4> z&P$#0(fe8%D6b4<3hO=ojTvyXo^cAB9p6e@obs-EB{-aocH*pLF{BGyw4gq)Ev=E@ z&uWf%(V{k4W8nd*?uj8oC1mG%gV`SjbX08pS?!3CKbjJzNxYXI*E@6d%-ZSlxa^Tk z(RlX^&zqdWjsa|f6hfE<&L8yux$C^%Kqi5WN`Bwov&*YvxrXO+zeu0A?yat87=@77 zln%S69Z(+jx=z0RVAMPKgX-R=AK1PCQT_lAY5dOls0?g&Vkki0 zeo%6&!|?B{=QwlR(7vT(w9nf`ZnH>Gt!eZ-)&NG@y+djC4JMi1WuHeN`9U?Q^2WMG zXD@)!LT5(q>f4;Akr(DRHt`DBtnyx)*De?Hw)F}jm6&Y}6I37q+vYUr9JQff6coy{ z{2CcMpxRYe!{Y{y(JGWl?gpnIrpf)RUThAbbLGcBk1zu5_vrx$HcoU@eE(=pn{wM$ zGSoZ+LJoRQ7Orr6g!4Z;BiGe9a2*q?PPfPj%BSte<@_}-rI`OCp%KzF`b&L{*=Xag zSE42v^5mD6>G!9MXGs``+8NK;rwi>>l-Gp|2K3OtHQIFzg^+c5$Fy>>!6kvz57?~$ z-*Aj*r?!WF%t52gi~ciMIBAx?%&fjU*Hm00pL47(0W3r9!lyWxcF$#m=Lqu@yAP(z z{xlv8?V0{%l-5ahw}k3unB-PximN)?Ry6QY2MmT*@fbX0MDCi!N~U#YHUG9Olha@) zUn)WU?rNfER9;`PEKM>gjG=I$mod2f3jEwyu1I+dZOWWF^VHG$^m9ism(nA=56 zT*q?)Y5ZrEHYRJ@YW@=C|$caIIgab8KYHQ9I)jICVAH1$<{MbI9b?90?10J0PgPt~&Xq<<}vWy7!N>lWI+B z`&anGb${b^-Yu@NI>J9pxJ~CS&Tu3JZV+xuI}X3gOt4DtGR~>eWd!LO4S=jjO1lzY zh9d;0d_-1Iph<+Mm`==b-OzoH8GUX-(PNGqox=-Lq>PrjpMHdANxKyd3XMZ5lnpgs zub0LL*{xT$b87kufex}Ff_S@oBn&rOF76_Jun21vTi?j_=03#4WWSA@0WPZ4kZEAC zuLGcC6%LThl}L#`u=Y=#boBk6(syBe;Ph{H@zP5p$UO<-Mb9Hc`g^fAzc*WZ;b2ac zzJ~7_xP2d?ay)6&S2PzSoJ3*cbfYPQjacIAK$se^TGQYXV(%G-d1$-$dH;5FPB0J^ zrbOY@}1QM^|(mHMnXCzpI6(o>z9|xqqSBi4e z{SIP{?kD};wQ@K1)e9bK_U5MFTThD(t&s9g*F3<@Tho2CCP#-|m<;GA2t?SAsw0Go zfy9bObl@apI8$XpWZN!6bWIpahcp^8xe;h&i|qKkQ`ZsuA(B`L>IxG^#4E$^ikG!D zg@MvRz+!9`pHx_+x8g_v>xje1NNYaYaS75dLiUpL=SA;oqB0{k3qxxSH?-7gEN!=T zstaJFrD`gjx_gECRlj*$&({Z2G$7ob)bF2PUPq-0?wD3GHch>zbn;>34n{s$Ey&8w ztW*_oDTP<%_;+P$p{#GQ6}xx+!?5gs)TL#14xL1-w6{UKgZSD!bS0W67^V!mWJ-FT zsQ7?wJ$YkgFs1PH#$MZR-ppj|fYXmfv(OdE;Ih~|S^9I*1;koEyS^MZYg=;JCzJ-(>gYu))EFSF0 z6_I_%Gs@O{JT}#yNn{q1>5CpZF}4Gqnn4#)odCAH$Z*9UnoR7{7h7~)$J}RdyGCm4H-EJcjy^nU|$6J8rIFaEVkEAk~E!^!AbR+sggb(}*;)e2^jG&3m( zPvTe}a=Ihgp8mfZjaHu*BqpHezPf~fI4!`=(QhQJe%>N9QC?yFY)Vr_f#0%L0OmRz zn#5OCQK}kM#RV~$?zf{poOU=*5%fD%L%wrMC}j_9@~AA6nXwkB$a7UblB255S~~f@ zCFwRP4XIRypAN7HN*yA*n!QE1|JvA2N(~e1CBfB`G7T+~^gYPbuHq<>N*9 zPdh8bgFTnPec~I<9NiOg=)Ba2k*ZOYJ_Bwq?$!KQl(T%M&r?7_&TuUp_>=fPM`9z zkcGm)ot8BP@xB^~RkybBbzrq;C;xu)xyIT0lVWdbx8JoHqIA6cJ^|%bVCLNY3RGbD z$d*LcMe9b5f^Q14x>AIv;rziBR_BZha2 zuNC@28tWFk5mjwkil-6#-GA;yxY!YcxNE$V$&^^!Z_XNH-Mj{}1$9N$hXq;5=mz}nmn?O$C{WeM<`rKzCE{c?*NbPF#_;}Qm`C=f>4s{)BA*4HF zJ9ZrcSQoN>F>wVa*TQn0mP(F!rEi9hW3wf{`KL9UZ#_i*S%Vx@SI9V?VwdqrUuOhJ z4U{hc-;6s$_hH47jU($i77j;qFU~&H(!L(WVAS{YtE}j=(WFc7>^|Yxj>#@CFWjXo zVDJrPOG%}XqmOag+ruf~&l$0x$f0AH>_FpgRY#BGHd1%Z>7c%U$@#4tRGwIJb5+Z^ zu(_Rb{Vi%2XBqkT(_skUzy;YL@hz)G!N2=#OZo4sU1QA@Bf7wetHG!nV5STw@_cYz z1>KSfgLrb8vU_Kl8a_r$1;Q*6s}I*R$c@(Mi1r^lWiu2OB>UMnWh%E_G0opvyYe@7 zMG*br#N!xd2rjvzMw-{NE_yz3E3#y-=y zaX{JEGlpQLgX?+3-U-X5$xq)zXqARK=pFY()3{EH%!SKO(QRIKR@=KMd z&GLG3!$VGv=Eisk+3brjqaFK4z_oNWGOcUwjluU{zW=*{27_*CJz+fU_aR>`Gm%Dj zF0PmERe^4m9QWi_uZqqGq?)`!8mCC+ba7nF1xKZ0`IE5l+bqPJ0iyhz!1~WzFRgEt z8WPeuB#J17Suj~BVcbTY&&WT$$6h*~T>5OnoY(QCQQuD5wA~@rG7W{i5A)S0Or@3_BrMicGPbQNI|Bt$_Bne-7_s-{p*ZoMwu`*D`KTUtJx29&GZ|g#P=G zou9tCbngqGsy{WjqNPt01xh=M^zHpmF;=g}ki*b2#=p#84eTf(R!WN4NcI|1D}h_t z1B4Jc)2PS+1~$MbC0M!Dintiq&t=t3==y#hwL|6i(XC?ZP3E_W>B$GLdgjL0Ax6W7 zN`3Pva}AT#AZz!lZKuPPx51Dts+ZrI)&cWz+o#9#_Q$1F)vA?D79MLn?*0)KJ;W9p zsTW+9ljJJkTZe&bAi{dCd(x$fB6yUrDU+MSE0nt+a6u|xE-JJYs)_dI8kv}j-1(?r z9Z7657zs{|fj8^t&yl8XKg&q-$+5Jw!kHCR1M1zodxs;rSP!REIb~a00d^7EwJbFk zr-#$5lM*jQ!|&?L_})wfv7bySIe$uh2tZr|TUxcw(;?&t@sVN)cQb9uj2ETST79po zXNp&LWrJja0@s*}s1ehR2n&0*Cj<@4x3`S>IjbmBw0-ojJp^;ySAy-FfkB)|H7#-3 zb`~*sKJh4bW>s*YdbQ$HqEK7K&$h4YS7!%xDaGG87iXHpA0zyUzqcrZJdxnd3=_%< zX{1Sya92KB%r`ic>`7GhDc9qUo^gP1B%y)0%aq1)7@-h1R z@7Y{K_)f zgxps#cqZ)Qe08)8{4Ymi{r>g&C*(4J>5C~*6b&(Xt_%2s7vp~LOd#DzXu`2pkhkyT zTgor_sZ7NWyKD#ALEh3ch9&Y-?1B{vyu2wo33wxVGTY(RL?B?O2aT~1@k_^XZpOkH zI(c;MNLbvj6)zdv5^iHVPVtt|4?G{-@;^aij~;Lx^J%*|*i1c9@%qA(6EWISy-rJ} zR{^r^h$XklK+7?QNQW*U;)HV^=Iz%R=&8#X)hKIe_^2)w5V7MR4dlxH?J7;ocrFqu$yh);GTiO{)9haqJxtk(P7Rui7p~ zpxbvc3V+Y(R9E57HuPnnuyaAlWPFhl1U6pC;eiz0#Fuyd>|r{M|#d zw`(dvylD#$LvDyTymoRfpobLavqzX;^~|oUBiixj(kzfn(_1SNro6}wXMH>e+{wMG z9yVs;G@n=Usa*>lD<@WkNaNbSy6WV6>n{%m1n86Ov=HQ}Gv*B$&gm&t`^$FCHU4A* z`)0f870(H0RDm^~V*x9j_?-h~#fWdKm7p2jecnCAX6Mfjut>x1jFp+^tjr8OE^sEG zwGs!02v(MoDh5h!7@cWi#<~V`hL$lf*N^vo&1Dbf(Z>UG1t$;Bj{$k9!s@TOEb#G8 zZU$fHyi6Hx@P*4e3F+~+*2PZTDWHqqaRG<$A)iv>n3K?$IgG+H^Q;HH2GEhKi&$y; zgm2~#)<693#;#WW8xyM&>Cp%`;(*6j3He@e&R(joiC4!OI&{`8p$e&7$?F*7zia{D zBDcs~*H?dZ4G^T%-MX8c+g@1cL2BprM4_Q@)lQU7(a5wn)b6zen@%v#@cei^7C*?8je1Ap*&?=k- z@lc_sVZ`Ds+28NqT{;&o^yXPogkzIoxfitJZ`3)q~nVg=u2+kz&E zar;zq;NktdU1nPtzA>xrPjIDbT<@HhTRO<W=Y_QdsT_6r) zD*L`1(K=$%ny;1*6M5i4ntG)LIPQS*l-8Q(l+lL?D}F0%9xG}@<_vc|4R+jm4t_og zSwyCCE0*MLI>VpIdbqL`331zy*$bbsqEiyQ2s>}(*7=R$W=!@06&P$6$6N(8{9z?1? zEV5-0Gst$!+*8(8&|u>FI*JgxTS{wkU%t8mN^$JT_%{kzx$2B~QOdx|^n z!KxXVjG^ zHJwwdc;6+3{SnkEqH(xR4j8zIY!Mk`+PVkbTS2nNopaMH-d?)yy;VrPJ_+&ts-lqf zBVkaev%*GDOM0|Keqj_|^etE~FEwK?#Xh<@9p1z(2o6N5L8be`EGO1c|1g4d+mM$? z8%Y1bDCbbH1{YG~fv)4(?$fLs?D?d7F_NkQrA>iM|=P9e38}v^2}Sh0^B3| zK^dOOA_bRvGudEG_0j-5G3U}TndsJ(|Bb8Q2?L`T#Zsg(X3DIS1D#<<=9s$iOx}3$f~riGLu!b!O9{x(JZD4XAIW8u zkk|e_o4xIhPAg8E!=yMQ+-j&3O^AJ-dBDv@`=Q4+!*564F!$LJmd7hFY)gpW?ALdD ze@QF<0aAU@R{F*^(o!PGpn?)L~*~IlWN+_$gf5tkGmAj3m=1Gx>sAJ;sCLwO< zZws}lA259|v+ds@&*mZP!hP?-IYx~!t$4?c8*6S}13pIi&F-wB@t9m5&qwZAT4m)G z-I>{bI^4MrWm5N}RtAn^6(|oYvSs&jz)}&1fi5a^jQ(ubp{dpR7-M@~kMa~fuCSJK z{j86MRxP&Bo3{kla}qk4%UUw##753{!)pO}-1QNF7w&mHljycY09d*`w*S4dwVXOH zKlvu!7O=RscWjaO=U)qnf3PM)g;M*gHHe#?mM<78lLX2b!Wi4=2$tHm!A287gDN4S zr9RC<66~1sj;LEp{U=i)1sFwF%#O)lNW~la-b&G2JQ44>-OyT8lc&MvaeXd4jKgbW zwLzkGs+!twF8uLM7PgMbn{M{g9-Y^yN@f+tSlU<5<OOJm{XaC)hRPUCp&JKr2L z(99wSVy;dxDhT5FzZ*Pq$gGxnV>Q0Ayqcy;^^T%Puck+O>q9WLRDU!LX-K1Ivw}L5 z53nujWB>fz%+ngr$p|90TAG>U>7I(;jJt)i*pdH?3mF|EPMYOim-fjGXSK-$ds8PS zVx{S_yLe6VaupK+rQTPC2uxyhf+Hm}U$!w;k}yENZLp~AZM>byq8LAG!<0huEgDf; z0$5WFI2an36TY0_y`tZD)S)M&S(dN(pnzF^?O!v62Qqr6D!cyWtt?VTtf{EH^nJLw zRS;u6^}OMV{QEo`i+DWZeUDMvalrKvH71XTC^r7z6<=Ibl$ohy{x`la?^EA@Z#11x zBBNCsIm2xZ_iKkg_P^Y44yN-PtD{KV@SejWi}yhZ^PW_a@^Vyr6+n%eUFTMT*31F zu_oT>S54q`$hJo6TXWN^Bg&1x_jDrGju4SfPLZIvLYFy_v&&;qYg_c-yM}z;5_q^_ z_0LvPWpX(=2i%(~lk=;06!8XH`b;nDzjb^15AE)Q?OC$Z;pb2z`-*?iw7uMR5aZe-ffWmnIn`vyuH#lr#&)3fXMCa(cNGa(6NFdkU30b;pbLfLvd zV)8ar;N#=L`Hk($z+A)+%Zr`XYx&tG4qU)pCh}1^L7mN=Rlp#V09+Me`U!Ai%;pl$ zdlUAvDQq7$oa*1Vv)Hx`76ys^iWvIjwRq+$Va9H~+WYb9k-K<`n50}xv^Uk0niR16 zuN4=y?k&~eoRv}=J{n1%4Y$xlz6i0iBeoh-XL~!X1fp)VR z42+^Umv?o|%xZt$1o{s>4B?fpMf1I(ZXhfEf*FeLr#EQ##!5O#KS!=BSH||N17_4U zWvNgwlzF(nffvma!)aDOo*Vgz*a}I8jO$UfJm6^ql1M z0tH_!|BVW433>coVnTW6nhmTGjej`}q|3Lg(_`jK2xN0)z1%PVa8uLKb2NrTY-W&Q z6qf$IUh*iLi9=&Wbdr8@=^5ou{fcHS89dojGnygWLaMW|`W>yI0 zt&XHD(4nX!O{P5Xz?jj3ZBtcT-nZ%Z;0%rx=2%{Z?E1Mg$XN}kmDa4oVH&+QD_rPW zGk(U>RTohS4`g#BU-I>Vd7gls1=~^CrvaX#HqZfiGhlEXa3Ubl! z@yRfzypm=;RGX~+JFd_lD`W12;`qP93#DR-9d%BFj(gN1xZvv(o^Y>{&s!lI<(bz`CA z@wa(;h?;->QH2%$7(tg61|kgSF?Me+rXN0O@%~}S_oddLRy*g4rjkiU$DO2+|J``3 zkL>9C7X5qH>Q2?(Mke_B+ylI=>*ndpBr^&cLbQ*h&*fBdk~t2wZr7Q$w@&9YQ647Q za<1KnY9=6iLkom+Xhvz17csz^!(2IcmpK{m9p%*DNA@@_>OmzD|@W8ScAiJPMuD?#v6*^ zji#@KZO7AIJviW`Fzb|gXN9SeRON?{3|*yZgW%Ysik1GbDIfO>pW)b}Z%PFObJEfBjaiLAy~H~GCb_~3cg^LtfWZVU$>$*Yn%T|-tYw^*@;;g^xweshh)7N^1ovv zI%>NPD*j`#0GJsP+0)@W)HK%`s8tvKa0m;XkBl=OPOMT5287`_eL5# zlVFcc*^XOM2{n||;tED4h*z^eJ((8bcHH&vo}a^ZAcWEC(#kRL3WHmy7U>hW%~dcm zmv=I(G!(DF)66W`Y{Uox%<@GZVHlqhv#2bTFD}VB#^N1|faJYAGSL<^3^_T$@-%1Z zu>*{oJoSnky&wEppuv05=Bf6EqmaM(xO9l&&hri1pM{jeTh z!`ewk!Mow?I(kbSOs*8z<=Z)sB&zOo$X=J8Q(E9|M0r^CkqBy~x;5WZ#)u_PtE$wh z{=`Lj}#^ZZ;7Z2XIR zZp0ajIc?@i_@lm_xTX3`$Oo*na$veNomBCvR73h!Rppoq4mOiY#lyMSg+|mYAX^9K z^AJA62DUgOK`^C->qwM0Ez$BW>wZH;3w6wyZP&czBL}PdW8WjU`Mw^GP)bYZUs`WT z2z^Ih&Kz4fHPJMM2am;_e+)!4E7ia=9;bQ}rl*v06a!Npp~?tm-(hu9NaD z-m&1m$^f6D1jSj_hw!8lM!yYtdY$;5hYRPRLJ2ZFNVsrrWMwvoH!w|1I z!e;*k>o_DvNaF;ilcCYxl1j$b!GtD>wya<)j{aSz!3XF5+epjzXKTMbhf8j@UyJxs zbv+AB>LF`eZ26zPlU5ZWSgK6>n%Cw#@v|gtKP_n9hQJ+4dt zvjQj(YEk}ct6Dhcx^Iiq@bj9^iILnkyN8fIIGK&VRE{~;_7s<6Je*-$`EJN0-xqc)w9vH%g(`cME`1Pj?MYb^QaB$P!rObe%g%NXua8)A-e-6Z zIvtHWq~_8yvzdLy-p{&cTi{N1m?kIL7&5cWe&`55kGBjGn zjr!apaidp>{CYje2a#8%sZ&-Q@N9R2i~qUFigx-Amn0&Md~YCU^OO{Qs|UsJtG!aZr(55ScxbY>75^x%*i$G3BaQUtGSt2 zYyQq}Y(1>xN#Q>FbR-ii&tVvdxLoceO^u&w>m%z;0j)!4v$>tljx_63b*$iJNd@Jz z*=d&KoSd5YSV!P9W*!IG#8sv1Xpl&0lc&I{0odl>y+bxHe2=5M_5AZU zyYGX+IJ`NpU^gp&j4M_m+c`EW#x%i{0CpC^SN27iaFwZJGp!8*?Gx&B_8Qz*1kZOwUpl=;&DgUUG zeB*yNLW7$<%(JTPUG}Zvikf3R0;8NIM|U(NXJW~=RjLqT`nQ38+@*KYr5``5T+(AQ zSOwl?Pz1lSbsfc-12=BH&Y3c**fGPIS(q=s?-%}3Dt|bOH2-+1N5Er;R#O-wLA=iI ze%%UcDH&I93M;^tS-e4*k5*%=M-370;3~((l6>C_K3u`?@3nLM?*@E-6|QSRo#GIL zLHi=%W4eLaZ-4let47VJS%v2_JPh9QmR*_tdo*X{aE#?4uJATAMeiE$WJ0WB2AAqW zJ&avr1z&C41>2Y9dUM@q@`Mkb&*aESBz`>UayYWtvYl6qksXllGma=#iCe164;y{+ zO9&3BWOmm|;rp13w=ks^>S*pEE4z10wZ%K7qutd_*(AmmkLSjDc)l|5r)Gaa-#(hG zprYonoaWWdeN7XhcD7& znr4)^{qE#bzp56vHlcWNG@i<59f|dmvrTLtrnbL2PG0087Pf>|j2Zg;S&7Fcyh>h@ z%S6h&$TC^;B&QG2Xten^pV<0o0FS?SWYZRB*m~zn0W!_x&c|ans@w(m=3i0 z`aW=C>)vU))I_o3^sm%uJc-cEI-Vty)&3+v)Gs5EypcaQ*BGTmbnWzk#-Wl(TQP~I zN^6M6;gn~+8cjDosOeb7_?=$`8_?&>*B8}z-^mA&lnFO=iKSe2%#+&+Y@*AC+oD)Q zzPz-1tjt@sZ)x7oaY^Q_`0K1eYzji{9k>+ktv$1{4G1VxCIF4Abfr@0DdIjx?vstA zj0oMWlOck-VCib_LQC+;%wdCgE!dlgUsq8EG!X5*HV8k(2CAi!4@c44BIcuNCilP`@Ye*5k2z(J2=bM9 z5?X6iIm)+biFxgTO=tVWjZSCh+zr?dzR|Tw`g#NLiT#T*OPw{DUw;-eV*PGMHj#<{ z${-o9q>h(cH1&Bs%^_UhOeY+!W$JW(0z3D`Rpg)g9vszD2zzvcLUrm*N4Q zm8s=yNDoH>lke>z`mA#TQ*6FvC?Ttv-RLKg7<$u9ePP?sE5XDS69bD*SOn0;K zx)X3Gly&n|msC1`xkFA$VaOlH13q-^oE7w4&A!N-Z_dXcd(ma{$ zl}uoCeVPZJ0Nk@H^3cd)<$twb8AXUcbTC1j`Bpu75M8oMI>0WxRa82i29(QvRqj4> zx9m(7i8u%8FLe{Rs}H-2BFst?G;l%Cn|9H=DyBg_-%qiSg^*31E9b{<@`R1i04KIC zho^(Hly3{#S{N{5a324jZ<+3noc%s5sJa;47L9f;x?zRp1~-w2$%izbVbOY&)d0jH-Z}z~1ojoK%m$ z<9xsm5XHBZUWoY10m?L*O5V|CGU>*7?*6{1(-WGPPi=e#ykY$Lr-4A~)JvaD`;kvB zwXxg+p$1Mq`=p;51|UKejTE`HfKoHbR7a(`N`p)`~WE42CZ2;F*yp?c0T0jjej>XJWLJ1j8`+iO%x3qO|0oM(+#nnWBj4`m?~Df(yWhQOzS(xX zUs?avuJ2}kf|S!}H=Ov_u)S$Vgx?Vnz*lS#qvCmYyzy_vbbe{Q>@F{y&LNZ=Q&7g7W)BSRv87V^Js4U-iPt%T`&{& zt84BQ802DJ-9`lH8#1KX{~l}Z%$d7K^2EN~xfDO4JVQ$EWvfFd|Mt(|?*C3#AwXhW^ALZc7gf&7BzG-8BwU2S&PnOs% z@$pYHnvBFI_w*_su>>b%C~qgLC^S`fH{7Nz4Kb_~lCm3+2?|5L|J*}v6wq;(VApSK z2h#MVI#gO($3!aDe}jDV`?Ge$IQ3qUJXZ`Mhss*b&Ld1cJm+@k-7!oBN;;K!iH98O z|C*$V*+G)3EY`2~(TDIVZ(Q+Q_|&aHuJr9mgnvtdVpOW>UaP#Y-ge&O+8!7MlY?Cj)QJp?@){1hJkMysl~oLU^5Sx zH?{;nCE2WRSB4}@4Acq|V2+t@M;lRuZJc&a4= zy!--2bV1gP2ri_V3?3j1dXjAZeO_eUa=y9Iqfc$ zCh|uj!*{G`3bbr=w~zp+JEl*IIXELWb=*E?`MZvYxY#<(4sd6NA?e7kxY&)p;E7#l zLa~@_*=Z9e*I$LESn0+?>EargGPbKIN~AiwvsF^;HZNB>fWG83C$ zbSuRP5yxk~LY5NLBHudJj#bmEyeF>WmOR+pg_`C>TiT771;!5(8X&rsJ9JRT|GdK~ z338s~eU`~LBA^Xvh9=dES&9TrQEZ8%39N`6$#=#|8b9YKXIAUW|aE5I?rqDDn zOoYGNr-6a$_osPz=qFMCMeD6*|DVwO4ML-3Jwnjx#RB;dsi;4;{XTc~j=yy_$8|}k zj1Wm|iLhJ88tU=GxHgjM@;I<~QCAx`C@3?*SyjywJi@qfsYq0u3Q29$fRMhp zh@0HJWo9GUEst17&vU@RTi;XVcx!~tqn;#z-CS7)WRmM<+SM{dP2SL@dxWFW8RWLO z?plN#m7>7wQm1`OxgZlE;Wu9n=bbX2HtIiI7K%)C?<37C=&BP$1sIl6+feHGTPw!LCyT*HUC4qzYCzmGZpWB5qUQfcdFjh{Ab?q2RJ?6JD(^^g~Y z`2rrPfoC{vpPM;f&+^E;h;MZ5ll~o!pyyiGa-p6^Uyd-d`57S|q85zI%I1^Yx>KjqG9L=;-m7`BbMyZwIt#xh+cpeafC*C4 zpup&mZjkQo7DlIZg9?%x9ZGjIn$ajRN*FazMo2jZj_!KD=lc(~-{QIN>pIWlpy$mz zOv=Jg0~N@G6KZhu7&ly_CVmOb1-w(gJ9-Ewgw+s~g$Fr2jbpSP zcDohSQ_^#S2fUb%;54s#k>{NAlKSuN%!$0)mPR0SYJTs^X2ZkMfIY~|RFKrX^M}0; zB%@q^nJfbrp(%=4Fk_Ab52DI+4TI~@MG9$vb8&`E6(Wf)9lf?fO)e^hD4B82X zl(D$|=1(2dG7s`J_v-S(BQzhqgc_J?IZItX^qqNicz1bbEsOo%Ul)~f$-X~|w$oGWUakdpgH_4KSM50d4kkt05;216T$9ZfG36JqI zJ3frIj=SrAr-nA-l}T>Zgld${(T!aE+E{6M_~*5#n%CB)nQ-2woy%l|OrF#`NX3|Edrv1!r%;Jgcai67uPut=K)ZqP3E0XzD^*cc$ zl`rFcu-X`1?4+{xz*T8h()jiE8>V-v>if_)1|;x&(HUD-O{VnL=b;@IsSouwPsBMLstL|dtSDzK z7^1#Vu%#q?{kspp-G0N9%dc;r*W~gfox;zwb&)8{=GIcB2tF$=7Zu<^FD9LxH%0Ly zW&(BJts6v0h9XHFw3{9PoN(V1B?X#094d3$zWgpAl7cK?sF{c(DVIKd$hYc5tL*8? zGvqhqNf(Y0=emBWxpKJ^(bKu$%iX|hdxdk2Zh1tBQ$^^TEUAn<9=i)r1*=GPY>;6UQ>nNzFJreuOgUGgK-`1eQ{HDi)?dF_$Lbt8_MgJp^loUwMRjLp78rkx(e2 z63Yp1M4M>Ft(=w!OBx!v2@089ZVNqBKc1ydG+7j*=Ug!TQ$EnvR5kH+$_c#&g`>?l zNj6@4LM4UWtvHF$3U}gIX;3%IXh90mmuS5t z9W8a>A;%iH6mQ$z8m;?NXK_U^@rT{>`sjaCniM$%5a$dlQ0VbwyqY$k+2R$n0a%oI zy07Y~$0W(T#!3xdAb9tmS_q#ZyxGUf$qbAueu`kMlLRdIg z-=SYls;QkFPX*e0O*nU17PVcRoX<0hR#WrD$hI+yIAp?r#hEgNrUL+~Hn1CH_Mp7W z6s;e}D5*+tg<0bJ$KFr$Syd^G&rk_E3O$+AeV#HY&r-yhBlt>dMn84D{qjy+ct2q~ z%(t1b?|C{GzDT%nL6`=F#uKtlGI9ZbhPGVX?27uk{(7NTpx-wSPlB@Fh}bINc#1DJOhDM$3QiP)>4j=eTWbl9kwgM! z#3ZlH^C^Bvamu$ha$4&hqo=@|E%xD^R(uV>CSxKpvJjA+XD#FpfUy?AK%r6dB$5_lVSi8Kj~FOpCRNOK6++vwZRr2O=&TD_#Hi~{O4oW=EbZ{|=YYtdP_fCFS*c?z-iT_v)5kb5OB9NI%-3dB=4xO3lRmv!N`D%J%eHq+#OGjR5Xov1#J zvI}4r*uMbyB-oj6Z2#i8M}PVR4*$Ciob$z?;;7^fonkV5J$8m|xWB*hcSY*4s5)GK zfqnkhM@r+>k|;BL>v~^x0^jZF+5G!uLulmlm1;e!+)%C>4ve%_u2*rKoTXTvbae`c zd0^KD{Um%_k{@=q9QXfunB4=j@d0!a90#k2mI00gRx8$$E`(t$T%}{cesIu9sbTR0 zsP}94pGfYUZe2)tQrSx9OIF_J?ir7iGcT@OK(pw?Le%jR1Cwles@jN!Pa=cBsuBM| zsz{!28=m>6~ zNdx(Rl|<++_AjBD+$o&yS-CZp6en*#ty2$JnPQ|)%UG+J*7ue{_Uzv9iCqCG4YidS zY<1V{-LPMd#URbK|K&DO6iQ>UEOTwl#j?mh*0%f9w1D5`n`*7~mJ5RCuPRGJj5r~` zxvH1%Y{D#6lx|V4mL`XCO56N6$=d9{7VXL^?axN5!5_(scM%PSwZ8hzA&9GkY2q2a$F0c;ZNIc6!~{M_Vga1 zgtd54(&vf}&}NXUF%+U`_kmVM)4+C^xP3B93aSsU`11uZp2D2md-a)dFQxVQ=d#>m zOo=0tF`TabD#)ec7H#axvlliu%@$}I{$;$YXVaJb)gvZ0=CXlTmE)&VDJnT0>VczH zR>432Dz72*z&r@g*#(y3exoyf0R5!oF!uJvUZC0jWP`jwmS(W0(@5ia9Ur#uB1t#u z7s520Ax7$3n6J{ys_JB}1Y?g#DU}{kV=a(QH@e`sxP+@s3fjFvZB?cnFz`j{Q_1G8 z62I+RD6R{QEUyMdeN$+(zRj+OB}3;j63s{{XANgZzK(AdFQebEbz5Tlpz zyWjRMvhUyisJ$Pt+ib7q9(f)*=p0`}NnhXI%qB_aFW)V!S z)zH)D{CCoeVt+i_vV84gEErW^X*a<#K%J|DAu+nOC1ax6F-k3_3we?-BXDl+*iRpSv@0 z$J-Qm>H%se2skm>)BJhVZw(L^qBOqM8WX`<>b3yrpK1<3R{SW4@W%ekb*>kn&vd%~ z92DcDeYS#z?IjRU9<9wUO&cy1PJw=NEL+x?d9Tn^+8W{o%pKYLg%l5X%%T!T!2Rr@Tw)j9X94;L!DfIWum)!hWfSRO)84j{b+*_um^Cinco<6I} ze3-DsE)Iy=EI!q2M!(jJ243;pM@Cs9i(5-)cgDd03aGlbhZ^itz_X43QRU-V1*Ke{ z_&Ph=M(4Acj~^_9u7IlP^OdcM)#K{>_Tf}`Gv2G{TR>tyEPXXZN(nP-nX>mBeDhk` z>?a9L*-DKh_F!61)nTF?wkSd|G_AP(GQm4bFZ(-1ZWz&FiCbH3gf{mF|DG5AO{ZP+ z&*wkAe3;fzENGS+giW{apkF?Xm*jTr%Z!wy=-<{I@hZP$TyGK|_z_*7_AU`!D3CDb z8XmVHbUr-+x>=D9mVM*8wio2Y!CW@S#KCtvK_HU>3$(ZfnboO|0HhW^u5?m^?z{d~VAHhvMgAdM}i}(mtiR zR-Xgqa|&GMqR(#!992~$NvvV~X>4P9S&2t*k56EpZ%y)9RKpk;wAN;wTJyX5mS0s0 zqq?eAm{7QMF6^t;3vQ!@o9(wbNQ!V}sMZeKt>krQc~Ix$3goIjS<*M_FuYRaOI=@Z zAK>3*j$8ZTkLo$D%u03F2y$Gol;nq4qSniI@xZ+yXGcJ_c9r|Hn!F(dd^i`LZPP8E zvevuGWP+CKN@681_gEKhI`srbcRdeYUeJ{>JM9@oNC$%{Dx1;*ZpW38%4x|O3%q$@ zoQC|K`fl+B+GP3g)o~punMVN%nVMDKFSAaj8a|ICVujrc9GfS@gTLlrcwa!<&##@c z^ukmXa?jll=nf0pPyU`%zN;rsr#Cvc-oWxDJh2#D-|&s*Y>QPH3=Zh%zuXvCIDFA; zIb8o@n@38-o7kTEZ~N9ALwRD}C?l>_#-LK;-i`_r*@q+RtT6t!kuTuijNyN!e5t(@ zK~c`l4485Aind=fi$xSYVCmC3b~(c)V&=87v+kW&?4$#<$0t+1@)c|s92)NQXV(9A zNwNk(T_HcZL@#$qRr((#H~!{Is&k1uDHB!fz3)1c%X^I8ri}7Gstrn<&*$9Pj#mbJ zjryPE4enNg(-$9Q%YFB{ggP}O>H7b<728je!iy?@ZLD?97mbI*y6?zWD5kQgH%3bb z?N`72#@6CKzI${!zo@4Fnx^y@KYc{R6^izpw8+yZC@UiPWDe(11_m12I|`6r2)l$b zTJh4)ezbd?5RVn_`iS#l7O#@$;Gp6|cOySxBbA!)zy%dmMqOGfkozUL*XMerNlj-v z$=DCb605%)TM!k95Rs)5Dg?LF;A2sN;Y{l|tJkjZFmk60ZSi9O^*!iqd3XtZ$V(K( zZJ~Di-#vj+;~}y1b>*x5q5{2ew&9o1bz!{oxjnFoUX~wH{88$dAyX7rx1$#4fQPq# zy~H%llPcLH_qWa_D~pFt;%-?3vHfzJhg5xo3bb$WaQHtpr!BZ&1tT!Wi0EJ(I@)Lt8^EI5rh=Yt~A6aSgFw- zW?#C1+4gc!Pe^{SKWpu3N*n81JFb4d&Vqs%|98(C(AC*cYGe_|nq&3>ODXrod)muz zuq7cdbNyNu;qNInj`;Ykx$I?fQ|!_8F#__=vMajg9L0HX{;$}^NGQ5v1HNCC9;e1d z+|d7FLl$lTq82f$CX{Ryh&yO>i)oJ39w3CUzI`$(V%ZK`m02BErTrt~kHqAE`l4t` zK{FzGxtnU%E?Xw!+13fjll^grpgFI*UNdrRW$jS=Pah;pW%g35=HJU&SBsV0lG}>l zw^uHkd0JH@%3$8$(>p+dP&6L8{aL=JF%(GcNxoJ8QfK$m6@V3Hv~s!Ybe>FRyMvi| z={hiqZx4%Rdr{LT zKy#@QPA->z94z)-V-3zfa}J)2og*Xa(XyGH-jBec{5afX`4jSGG7Iapx(^XXOAh16 z@@5-qvb}``*$|%JU_Y`VPh1_<%Uo#PJl*%Cp0HN0Wl<6yKJ1}~48M!xY;K&#vKYyu ztR1-Qq;S)3vgW4w77$yFLTzbQZ{?TI@y476J7){pJ_5q?XvwBqU)pcHJ2hRM7(=$f zBu(8VGXlEqTOm%F7n|L**;Vsc8N$~J93rPvq>oP;s(Ahq&Ij)VCPf^!!6pvLrn!wGj+ zw=kkPero#8(pr~rkZJ4#)wDDMib5Typu?52mwC%d zuZfDP?#t+go0T4n=@0ncH_M<#d@i9F@M@f-T{x`LF_Q?|Ia7K!`~f!-O>=V`23Y?;rt_i1M*dI`o<-R-SPJ!~@% zEDG7t7i6+LjX|0(9v4o#m=NW+(Vr?WXe@+vWhSAJ)N_2qkA{M_Y56p#6K8&k0OI$N zngVV|_Z+q1US9$li*rFj-O#T2>?D6|4J^!8&AVX7uyuTSR-}TyiYKG7>j}`7wc_0k z*3eTWn@=@UPM8lmIG&Vjq1=lN*#(Vr^L{fMSkvN_H@2mIj@rO(Rrr?HS4f);(|To0 z@#sOk3SIj(HGWY7{EFXvOl|N4yk!U2t?%NLMZ%!Pwjk37Gukh_d1v$J*s*|C+|cDb z6h+b-emQTX+roDAP*$CC)c;(qucX*O9TfN8e@d9uojE{FOaRjP+ykn~9KZ~mGNN3X zU4sW&6CC($k@*SrGe%M;R;T{cf?}!+8A8<$H;cJvr3pKQ1 zw(3|m>nxg~Jb$3EEc7B2=Nq`f4|`9@(7Dc0rfPiU#@PaAbHgIsBfu)a;km76gpup) zyA;Z^VX?XR566&QTFIi#owEx&_g8~yoF(H6Y1qP4en=Fw{()7i+~o#YM#R_oXWj`P z39tMc#VP;_r?AM(`Ze`8%U?7_G#&F z4`0Rh%O6zOIp)(<{;hd@l^uNRblM5Tc-~@_)ZrC)=$TjBt**<~#(B!|(JS)qXv?jUmCLSdGus-+aqyTZM`hs2 zJh=7JT3qe-I@kHro1Xh)_rrD@F|Zuxj7IiiUgS;qVqU9Ph~XD(tl1vukGYq2`NvS6 z-(SAspZsGsR&iVF^(3!sJ13ZJtEnId(SPf7jtU8=M@l_pYuv?OWj`J@t`)$4o1llY zJkc&!Y6h<+UV*twsZ1$X>8`h5%tA~pgL#n`C?-;8xd)N{K4^>IM6a?i=P0$`DUltW zn5!D4GKGkkB=JZ}LI?d+IA_Cz2zCyFMc)R|(@5|=Jy zKAfIyM3alVO_tnUadP{Ee>5_~PJa?V?y|@~2NsreD7wC1m<4^p+CR+pa*hjfy0(1t zUN#}tl2)HLI6gg?|7L9a-@PgEmjDAuV*$U$_g$g2Y$;5rnE0z!txE>qKKk8HaaXz( zz6#2oH;rvGYXlW7izm9P~- zlINwAql)b}J^YcgkN`Pddpg8={oKiXN^8wCV7-1iS2fZml1E^b{{H7hZDpv!vyxf( z?XK?@6%oxAhx;=IUe<*Li)4~bm7;+PyW(ef5agp2-npp&2wW!sxce=yHr9Njn>jG} zJeI`jCRvbw6RpF3Yf3sUQksro#E^0rD!4LW7F0y5A%IU^ui{$?5aL%Y=1$as7-`VgURA@2X!#U zRRmf_Nbb*CY_RaFlD@xi4m_TWtT5Oi&9$dkmos;yjn7Iq@AVtOj-^Rck|47-N~0bd zLTX;8JDQrRigzgVaqygw_48juF+U(-6dC`qd$OUY7RIj|{l|*nVp=`qDw3LCxCNXS zAa11Q1 zPvN(n*bmNX-(oc>wy8S%r(r8X1vKnR6gfYx{N%lu9%%ftTw%;Tn|6^8@rrTzF#kmEG=IcA1NfX#c49 z0=S|U`zsTVR0sLXA(wavbc%JD-7@XQHMfKw7yR&lga^xadpmabLz z+mjXp%*?5A6OF?QD{{={HWNjhskNqRoDG-Ps*dk3Ilg87kfd2E%Lphiyr%xvFHvH0ghU8 zIikb!=~qN*AM9`iAREpFeIdtAy|Rhk2p&3ag~WbzpX8lUiHO$+hqLW!##49Q9CTlA zImzoGNq#y5FuSg*Bd9IJg#`94hN3#|`vt7!;}4j&zM0Y!%hdplT2=1fUue&+BdG7Q z+*_8U?#JIJWLrGHx$}!-3S4iAr-Y7~wBJMfO19*Ii%60>Rwj7&ZVB&f{`{O z8fomk-&$Gu(s(l$>zm~n7`xJ;D5S5{8xqtu-i7Bd%-PT{zC`<5XEtAD1UQORRLR86 zIiN<{;;)?uPVmlqW%8WH?M8JL?0Wd9l%1|F87$w+$_|U-3MYOx!{1lWiXw;;=t~{O z7*iOCN*tx<9hG)zT&}6Xbjxzw%HDyw1XoiuW#$1A2Kr5RJPide#=|e_1bH(K4Y&3S z{o^{L@Vm~Z9N@yaK6DQJQNPrHJ|l^e!i>i!=Ee19ZPu(~wBoQkI@IW6{fp^p;a_7r z-Ivpl7zCzpJsA)5OMR|cT9U;DJKWlji2kV1 zRNXQ8IeG@k&G^78!rgQ(^tIARB^U@s`qA=&UniR@N|9P+$ zLzt3K6;f!G!VJG{43B>u;GK3{?w;Lv^$+o$O)(RTQ` zV_MfrW&OyB986cNV!mH1xgm*ZYq1-mJi2VHTi>B4*_CwME##kl`Lf$(Bz5rJfLrz- zc-Gyn#Uk+Qlj1ifA^^)4$MChE^X3`k61?$NUq7vh)3IkinW`;TYCpZcTh+u@=HjWz zuJx*p8K4L)d%&atcK@5Gb&A{EaVcBt?EUMimaN&@LHumk1qmo8so&y>?hu>N%EG#c_LTgmCArN&&@%-eAz^;{%2>Hvc;ZYdgg|t z%Nhgmtdo^F;xqL!LMp^n@V(b>l!0jhiFsWa{o)fHgB)w(A0{_fPC{e$K3frp&(mUv zyv#2j56*mzK5PvIOc@kgNBYL}1Wdg+_76Ql=*17ET5-T`r4e5dg=*?>KV3%Tc!-lQ zZl+KbuXP2o!>n_S+WAA;ruKp4UvT@$e7Y&cYlzW-*QFVUBX#Vos%>5$UwMW=r{%|! zd3(h-T3T1_?q8vwf{JS2U!CKM1$r%s!5n-YxZuZ$*jEiou`u2O^llyP4B7j(yDK)^ zlv=UWzkPY+OzRXm$2|sHncT~F72}hwW#T)`VCsZ@zf#Dd(mG&$lx69BPxb1?>Q_Co zt#pyE@9SZ;t(v*5P&n;kaM-EBgNY&GgjLF6SY&oeD3dm5r&v!SM#K<&d9&*$%o;QB ziC3mzSD%<1(qAu9xQF;NkvaXiDy8XWUv~~r!Wcaf3(VD9@qiek^(nhdimZISuWni< z%;QuD!AdfDWO9PP@)<~rK&frNgodywY@>4d7Xx+S+(T3TL(zi3KLrPude6Prl*e#2 z7G}P`hnK60j?Lkn_Ct({`GRl85d;w>1Oy=(7dZAuh`!W&R!IGWy*08h=_+3=vhja zvM6b-&g4_441_0CK}shj^f=Nfi7ZvA)cBILIND+6C)cjVY2%WS^>TPd!4DGDtgq|9IuU_t@qz_Ws49iQP_H|Ul%UpZ-=!91D@FgFU zD6Vd{RfWXi&*E+CqCQqBwl*3h;S8xs3_ZkUc1XZ__=); zLovqBlQOqZ0weEL%8@2nxg!^coU|$gSu6v$6GDQKi{EGW0-G!sF0Myc4eJp!%zKu2 z0T*xC0`7T5F-E;y*vvgO91gu;W^Mur)qAtfAk9}NwimrU$hYyV26JQ+JFYW>U7Q; z9qd?YiKECslRz|({HiG)uh2BNt=n&&Pw(96)znHm<1)&?y zALn#w8Sbbrii6mv|4k!UtGP%{KTiGffiu)GF(hnPHibmjROyA`8qrmVOC|}lF@JJK zrZx2D`c??Ju4LGBlc|2=s=n4wPDI{!ZFh8gLNbSWz!Xqm?Wt+OCy}IA>;TtC?js77 zbid%3AEk*DSUP{i1qhHY1F0=4;`d81^_ZNHyQ{ie5r>Jv!lfpqpFjctz4bF1`<7IA z70+;2?Kxu{aR`sLj642QyHPqsKrqHcSko;?V+*Aw!9;5S%2(Ab{?^r|?7pz`oUR_K z8`szu8olxgGPw+ze387^gFw&hwW}*97KvhSMEcX4(zb}gr}^UzC`rJ;_w~#43eo$-ahi3g zFq$JoRn}l+uUjwGfA=VrPbpF_#Vi#%L*9?d3pHOSg$vy?Y?Vd7JJ}9kkY43>xnSp> z?&aX#iJh}2hPc6feZu7{dn!G;?Fj`HReE#XcxQV%TBcuF!D0J)Yno~~WTU%h8x|wh znvDq-XMW@gN?vF$CnWafeE##vw)Ngb`{^)JTT6ya7R{DVEW{|q@|A)SPQi+BSs*zbjgPfjyKOWkURni?;EZqr^kZ-_F;3T`k z{2;>iG+ehQ1iYRy+?;>?Pv&#}uGZ(bdL;02$n4A3$>^ZK3gAvd$7h-Cyjsky48l;S zbGC}(ya!5!qp~jgaTXZ$Vc;esb<;L)V<9fa&Nrb6NxP}wDJ{1a)0AB zTe6a>oOOOsx(Mi!tCt!h3FbCN zE+{x8+e&yAScln{SMMU#Kd6faYCh_zPvq6eImG9w(SRJvVglzg5su7CnF;mcQ$(T} z8?RiAe%ty1qu4Pi6_0pf^##2HBl%pXdmKv(U_-VcJxkfe3@u8ZnxI-`)q<&#Mc>i zKgeA@m-zF=y$_Em=Yd!cNU_JmvLVs)Ngk*nbF*$PZuzzyz^VIt{4m7TttTo<5~~Kf#+5jCVY!q$H%u5DmcwdwadN@vz&L*8HK>l%S5>q z=!;n374gM~+zMH-2+R56ySvWco_=-P8F5qkTJDL(U<#+x2y-6X7!Si4;AlNH>zk-5 zT4R=Um72hziZBa1DU;_S${*Yl^pulbdKU@3W!p#9YB$V2(y!cHyOtI=0qt}VZoZq- z1@1ZB3FF>R*uv4gnqRK_`)1(R@eNDwhvE5IL(i4qAA%g=vwFP!auCeEH4-hW5!aqT zn%CGX#oH!0#C#EK;`kYaT9J`#ErYu#t*d`ZBIp~LD=1BVLtAO(iacs1FL+K*$Rkv^ zq%?X_H+1V~O`@Myo!}(d$rQ`}TI+2>L}F#-Ddn$G>Kd{2z856vam+ckuZ7>_xhYDs ztV=SR^~qe%{d~ga4o|rA1#&)J@TdICNj%b>ze_3Jc!;8WuOf)$-VZLB^zowgmI}>x zUf@}M*6@DS4P<;04s{mN(8lJ>nJPuiQT53Dj&90`$yfw&iv8DPp+(Y!#}|@(?(*!r zX=sZzg36RwRZO1WZ(b~Bc1Mr7VNy`Y+AW*VhF=3r{tq`$CGW>REQGCzn;jQg-c;_R z58t0vo!xOinExsE!N=n0_Io`SS_3QXe}8xt6_;K0%>RYXj| zMAmJ<6rWWUsOD1uyCXTKDwDZ#C5Z2GGMfICq2^t>_N1o66VfM|YS&JJZF{MW%UvH! z7NDkY$W7I4UM2L^)3r{nyo7%gLkN}Nb&4`r!;$aWY?uQG6t*}EA8i3asam9-5bs`* z6K^wivRMjHVl4A{CuH?nUA<^ecY(=?D23uKvtyrmB_tXSIXC}7<*l5fw`zJTbpGTG zb5j7$HL)@M{C=PG*kL#KCeSjysWq%xmTC$AW0P`)c$RNvrtCTDq>PdfHzXLdUx?nK ze4`$s{K9AT?=A`7dH~ox*QE&W@LftHh`Vt~q1zi%065V$*nNLfGCN6}oFll^goo}! ze;aIGyZTWj5HHCtNjUpTaiq^xM@dD#-WL!sx)e)!4 z>9!Xi?-xlrJpOGtYf0%lGPLC3u@Pdefx-uB)EIf9=k~4&t_B7rEQ+NrN##7(m|aA) zLfat~anHbRlIPVzkczlhN2m%(#rLNR0D5A-xMS!5PHBiMpA0!Zp7oAR*#s6E|J{=| zOC?FtKAGejb;oU7+-a&)A`C(MNtrZr59gLS4G14n_w;BLk*(*>KfF0E6G_IVa<nV+fdcc7*!{^xmCy;>kj zwMjw0aG6KP85|`Xs_~Z~e7S{0(R5ae6G|#PntZf*bTY*}E)o&IMX2rOd;!rc4|zsU zbnS~nQ>I{{ZQe~Mbq0>J5L-MsHKsSpNa+3P?bC?LT{>xq>15!W2j{%+_p68>#}T`x z?ZUj{C-beP^oWNwJ!i@HPkIPUxz<(Ft#M&Dy9W!B{K+tV{;dU-y%$Y8FOl&|VA4eG zFrY{pptVJxtE6F+Q|r*~b#%GSNSuxicx%lWTC*x1oB3z|Du3mwl1scXODlwxWH5_F zh`)m-A*KIno4z!f2fLr_eQp&YB@}fLn0h~j0fjw6@msa+<$}8?UxT+0pGlHeqxn;n z(4`Y$6Znw_zsD;BtNsdGl?^JFGk!4+<45fZz(cI9?uE2}bQm#$Xx2mF%lXLGd2w8Bh?2L7O{&RUY?+4cpB+-*>_ z(SBDKifZU7Q)a7Sry(J|h)`0P_7^7Cu*2G}Z*FYkS#6&??Lc!WD4oUmDGWSZh_GSC zki3xU^{a0DPj3rR8!Bd8ZX1eO-jlUYNGF*-<)o(i&_skEXH8o1dGP@g$K2iHD)t*h|ge0|9KW2S(ZcJTn zLh9PiH4ONN8Trv~Y9w=4a=_&HrF!{5AH+<)YcQ0rCDCb~po+=I65_;^)7pusYKw&) z*XfcR1=PLW(R!K{qKD&zyFW^?4^b>$b$2P6^hGeaay+=b6_j0E0YLSIMJc}R6G=q* zjcn+y>qKQJ9+ewWZ$q;A6O;7S%t*g`nH)W$^PEq0B)@EPNzr+Np?IPqip5jN!()_h zaF|uI%$FyVx(Tdyo^B!aDU~0LXgh>ph3=Rx3n$7jC>_?_zdo zFWrL};?$egFC6?MB3f__``5IDAqzR>WUcQH8A7g|Kodddo+eJGsKIt_a4+1jVu)Qc z$bOJhYq3&vAVExV$mTmRoZqc5iXsWtvRCk~=op(oTp9bedHG3?rvAYp)GSfthn z4PLCjoN^z1*;qj-afQ`PE!{Y!IGb0#cBESw=wn9BwT| zV%L#<4bIn_3f9vtCg>{9=aTo zh9)LJR71kWTOI#zb74sZi-ZjgVmHxj|7P2c9J?dkX`Vh!w?zE6C0|rxs^q_WRu6#- z$eTA=kR`2PP>pZw&9p#v%m%V)1#nmJx zRlZD-tFp$vk1+&Uhrkw*66W~69Z~R%@~&cF9sUq|RNveDFqV_t8LSxu48ZCE+Echw2Yt$5(}Y{}gRDDG1RetgxB#hCK_u@bGu zyh8}Jxj|Z1C8@4&TOVh_Ewd4@<qDj^bEE_Wi%~R!67z`Sio3qf`)|$H zs?xZuu$q~!p5r`&w@ucBzlLg72eu+Cm0V8+)8}PGQ607Gk}}d)biGvWF7x%5b!2X_ zYI>Q=?Su?JZ(HGS=y|i%`hH?tiw&5Y>ghvW?D?Q1y8MO@Pv^*c83)#)3C)eg`f?&? zv&Ub=5@?4oe&Q&AMIe7p_xyKn1DZ^SHVvq~jfm7|Pr^2f#GLHJ-Tkq!@>J)ZS2+}e zM;?p6+Yu!DGUdI^%o{&)Ilnng6YMUR##9(vE>Dr`Qo{DLx2&f*8|isi%(tvyITnO+ z0_tx&yc(-aA8Dj~eP;uESuR4hA>ERcr#DBaG4pDkYlBC(;?JM2PkJpWv->G;)TGeY z>+xfi8azHx<4m}3{GL&{6Fq75qK`l_^cFu)V#=7Z9-#8wIAr471KjT?`C z9a`B_ujl$U+PyPX-e09~qVR z`F_&Y})~GgENmZF^TF5eDQg{DOy#>w2|L?>4)DEf6_LF>{RH?_ES~ zv>`EqPykm^ZTMZ@H9LR(W^88ey{e*&o)<339Zw+L4)?Wxiw+?Y7J5p;7~#cbm>!!bUb^mA8z4xG~rUhx;EOFJRfxF#6t|})NnXuqOAVp zd)aX&G|5LQd_P;rJ4*itM{Ze5ynFM+WJ{l#64!@7`^n<+*Exph0y1zA?r0vuIYjlr zRQbuZlfNzyJ=;OamjKh`uV^~7kMlC>Q5g%L;lbCYuCvQsHEmt;L9M@0ZNdxrdy{$1 z`gbBj$r9I2V%%pa8lQO1t~_TnJNJu2!#Y`x5FfMGORJtP^RGY%m3G&0%@;;&lfIN8 zp(m6zyqI98sMS3}dg)-qGCVv{sP7h}o8$Q|m^aF|$(Y}zdf6%FT-|B?gxH?{ncnVn1VM1@xhaf>uA`5u) z;o4O^*$rt_Mj%>N;C%Gds;eL2QR=Gh=_g%VtV4s@w zu&1`EomHld-5aT{=6H6@lG;9{mw3!X%Bg|ak38YmDD^6yvL5v;?sNFWJY(o9^9|cTpAL+qkxW|d zly-FEIm*Ld=U>;$4?AFOSD)IUnzDr3QPU~E-P6QAD@)A=NCi9l<79r=gO3xsTQCQu zMNesuPix)zVJ)Kv2w`Kv{Z%Go{SYU&~y>Q$`X$E$VqDiqcGm zfX}CzvKW5_U%T>PFSvSKORMF3d7Wjp4^2+$ock@s-hLgTPX0#v zuHp=3KO9EkPvBWzIW$)#nrt5dRU>#7Zdho;$cPEZn{SE!vKLYhYiy}I><@BPg+k;% zPc9VZQXq@4)ontZe9qy)Gs0Pm2MglhH#9?Z&0*aqB+S;gjnx!f)p7}t`reX6dacEB zlkfTASI^Bj6VV+v8)i2gnWp3sfbuTUGKez|&L4yKoO>=Fk>0RZqI!TvsX{ z;!x0N%|5ci9X#$*)_I?7{iap#V1=(Mt*vdkml5B!tB%J-5EZ=g*<}-cj8YP|RqVBa zIDIkH1Bk7y)V*MRTU`tib6AL>!h`X}&k~V!qt>r?Htt7N+;%@S+WfJbrgut3+}74} zY`rV1(fE}%meu8Wo{5npL+yGa$$aiRuL#@q{5LiJPQ0eN^WUWu(#!Omn5mkclQw)C$uUo3%h!-HsxDJj!e{H`sMwVq;w1K^->X#3TPKal2)H z`*5}I0s!YK+|4O9iI+2b*TFdRh{*<=IE{y?3EVo zeEcIphSN-)O~GY22XoXyp!In zG?^P!t09s};gYA1xgL*>OC4f-cRifj6v36iZlW5elxs0!=Q2J zC?U#!J2s5JsZZ*|U%Vb&r3zJs!rckr3>y~fT(pr}1+OaIqhjJrQ`WnH{i-=TaovCw zJLQ0%RePN>f5u2wS_B4DbL$fYf4aqu(QzMqFGzyKo}HgB2ulmsh0uF+x}}zyAO||! zfP17{mHl=lj^YLVuj61mzHA`|9JFAC% zjVeiPbfGow6+_{fxjhSfaC~uCy-M1jK-NK*6|Y^%C*f&5k>ElYhRn$o7ks zPUjg)xyl@tcfvWEGCXU5Q2hNmI&`ERgDqw(o8|eHN=n2^`1L{G5gw&}f#!X$MPs-2 z`tg}MVhGrufbN9!$-|DH(LcE6N!{D5xFq{t=<{BTq%c_&A!~r0r{eu!C$;KkkI!-m z1Vc&OzA@T9Vi5guk^mMTLx3rQ9UuA-$10h17O|3G3t-c!cz2FYo6)j`8c=0nJ46O$ zEtq&8$ZR1>)`eByf~l>VuoZ4==BG{<~Mc?H5tCJ5WKG+nHxo zyFs5T_j^>0$Y_GbMprd6L&E}$wq$iwyYdk(GzjAJ`vE938IDd%4jJ)BqTVyfj#}Q{ z>|2a*`jFVEDqsS_@4n5>rRV3`GwSY{T|g*-g_a%zk#1DUjE0)>POVKX0P(}mCr z`#tgR_#{(jm$7Gr%YsN5nbYVAyoim2LY#2Tx4 zr#$xPiA4CM(Rbe82F5uI>v@DF(^0WK%Kdg`=S2WY3gYQj=!=M!gzt|=9?qp04zLZq z9i+3^;K`jY=G&91RD2ePsCVg^7 z{{`L|VH(XGM23V+&iqK$R5n|;FBUPGd#%ld<8w@s{8b-7&`LRhE?ZImJ7V6g9(^AH z#pk26kb&i6SzTTt!}wphxPW^F7*r7fT~sBY2U3W zH0cj+D-yz}-|~Ll#ssPm{3lK17aXWu*Xg%=2s$th(N;tt?ed?TzwNWgJv;LR-Kh{@ ztZNM?e&)=`d~5E}v{iHJqwk09U}_#7C_3eC=^PgIhSUOe^ig;qSI9aHAlOdPAv9M-!m$KptNMd>Iq2 z!>`$8c0O0h8a(#}f+WC=Ei({Zkw;9X%F@F zc*p{_N)O+*r0YqvgTWxV-{{xv8pnrYUnX6nyd3K77M;&u+WX+uKG6c$)d+`L)nD|7 z2hVa9qXL_;jOfz);;LdOtXc(PI`_;jh}Te#6lk9`4u>`H+w5B3S;mYbkSDL$Oc*n{ zo+L>L^+)z7Tjy6I;wlY3&u)QzHv=nYU(x$7+^l-r9CgDMNvFYVbWL2^qtgYzI&5*+h6Fq>c&kmj+i_0&RWHR&|O>z~Pw|2u{AiF!qUJE49*7 zZm#J~ENOy{-72!}Ig9-c^&lrU0rWIWDM$)vAz54K6I^V2>zRwQ#2d{0^YvwJY&ZXOmaAp^ zJWU=uWtZ1734ber_`!-7y}~(~jN|_{`Ji}8)L51$Ewx^Qo^6cy|ZYej(ezBn1##zINGPG~O3#`&t7H5<9Z7+}RyjV3A)eBKka5FdZ zsUBv;nTp4ksoXPhijV)QvwMa$NqS5tO6PqD43@}CU9fjrRvM>YjBTTU;c+e8@YOSJ zVGAz68qHn&$XU>icsu}T*&p|kyn(S2(Eo?uUyAFHNd%DhnFX~r^*;Qcx>W}^MY4l~ z=q0orltDhoD4GSRWRCFRRUq1E;bW%8`tkPqdjo^|z4M0zlj z$dtexWG5QCk+X+K^AZyM>X9v)MU8N7JUxGLUAF8{$kK!c*oJWg4e0O;>O1ty_%jyJ z;sf&6a+12Zmg=I-D$ zXDy=SCD@|XYhUV@Qfrr{mmBrEgX_j+tCs_kzuGM7ziYyi`+|@BlJWuy+3mMXpK_kM z`MD@u;1JQ)=9(|OaewMRFJH;cr8u#RX4wwjnVlcu!y3;1`YP!&!u%uyA)dCW)h2}W z!MzYLT5YZ^nje_g$J33!!Wj=5OtJ2lO#TZtLCQTPBxyx+SD02PT{vRZA@xu6Spu(* zz39TL4g{_<(!M}6IIV(b6FzhP>dL=x%S*r@$a{`^X7i5$_l2n|L*7^IB{8Hn2 za{gFHL~Js8^m9mtPg-=LYo1LLlY+>2<%kK{BQc{#!|5{L@t6^7n+?fayqhzkOX(R~ zxIg>ny^PVp;`q8tR7Y~k0yrS2{dNAZMMpXZAe*t?vwbAUM zyCZ&n-|IVG7; zO~@=6*zx$)#qVv~=kW+Pem3)v*F?In`{OE#tqEhB%)|IW!>il==T@arv4OKP|N4i$ zi~LV7s>#^&S`s-+2Yd1M5K7Hjeu>m!DrR?y;FB4_z>Ty`DviCaGXO5SehYfPNM9jh zljtDqte|hyg)K(M4zXkbX}Ets_4&HSATFhYY0SUf$=CYul)1gH#-|!3 zo;e+DFbz;*#pRuubce*#h4F;4ipgSgqj(B0SW~K8WEbi4z0-}MYKIzAcjwl$p_@5> zaQG5FCU$y(8NbK3m0=`0Mv{<3-Ltud>#KI7^Bknw>;@wu7fOb$4bo;bn#?dj!S@(T z({eqIe}LsfB`~BcQ%RiehHp0|(^mBUI_~n%(9?Pu9)Pc^%l2Bd>HmZ`o87#;M+}GY z8gAXsVq2E8b%qR#SQhYtN2&(v4iC?x+9J4tDcaDY@#%j1zar)QTQ7CWe-dBNP*Jw7~)EkfKHVToV=8k16>Ozz3^gQw4wV9Xp~*6-}xo7kebFD;xW&NT4f_r^`eEP zRQyBPnWdOi>Tcuzu4Uxq99jz`Di^X#>)bY}GS=>SCl+bybH)%i1C`S81d zcO>5krnoyH7uf7IK^oj=`Z099p_L}?Xa$e@L`|x(*H7(O_wjZ8H-`Sqd9Bror@oR6 zop6Wt+?-_v9vi-pebF>~5Au?%(MDpQE?wB|dTG^Iet*^R#3Fn9+;yFA2bA0 z$LUA*b}BHcK_OdDnt7%PQ-`Kfg-^bB;Ysh`_vMYr&ZQ^b?*4_hRs|<|<9K7g4pa-a zjtbaACFEqUJxA}fF^Q#%27Nu5c+!3gy`retG5+yiTf>s|oF|NGC?$MTo&_i52F^l_ zAWFHiWkrtXEVplE?`=MyZO5tUjfk_*4M4p3y+8u^)Ny~3IE6|GMH}{kfTh-BuPV+d4Y(z^I=VJ!Uw59LrF6dfMl=SX?F_JY`@p=O`Dr4r(g0OSPUni}2uwWvGDF-v1RXDOpg0O0uCF+> zrZ5HDal8Uz+AA4B+!az)eae<+M2eKS-8!KykjTWd_J$~_nr4~$c14+}mZJ$s2+#_a zjU(EIOo}euq3^2@D^1)Ee;S`oxJ{sky|K`j9`$wAbqcc>Qxk+zCy;d-9)}_FA!i&HR`J^Q`UlXftykp8Qhc6nR*YY^B z3E6Xe2AMnWX0KvaO74$3DsJ)DveS@nmwZLEf@%rL{MzI%>^h%XIt z3b$xB065lU#D4PFYhX3h_EXQ4Z^p&6yc!e{=HW0)=Mx}r`4OXQlI;tB(-Ct3R`1A& z*IM_%d?DU8UoY|*1rmQZo^dR0x;ZziNRX~GqRfQl6iEqyg0pk3?RQlvJ#wtoGx2vV z^X%PL`y@q%U5w?eoo%k(_moA=bV=p75gUdq26v`_60l>auWUe_)jk!tkrlGBwN*bI ztDu=?3K&7TGYE018ZH(=qstAjQ!57E=@eIW!}Mg?(hsD$lt}G|LCjTEMZDs%KqdVP zC%aoO%QF$!?`W|;R*}ro#yn&lT$R-%KG2BK@G#ADF3lG+-5KFuYhBv-5=oLMfm^cD z!FV*hmW=JN;}CL6@PViVn4#&IH2;hhEz(FhIGUkr z%MePfb&Tq|SCpEWYVLE?Q1gs;pa_|&Cf8?GWv{) z)Y<4TPkOcGKmeB5dvGCNuvfY^NUT|R8H6Spz%WLZzYdQt&)hg=$7U=2T-fF2Ej6nJn3lE$6^|97q@+JAYTZTpME|=2npp{nY<89 z%;e?ZdKFK4%XRce5+mp%TBEHqvi9u4jn8>FORkxB+wK>eT%~nE{pWF+ zEV_Yt3u8hOg`GC%F%k<)2` zY%!HNLC3UTwH6}na}Mo#^v^R=xcI?(%c1%)7vcLSGb;Plc>%9;j2+Kr^$No?QnG?+ zwa2s2NzMUre5*=AGE#q*EqmZ~@)?Bwoc@Fj#o0}5A>LQPL+0yP4vWLwr)dO`e}`^g zjYLmKT2vePSd{jE*Ys8GZ3j%tVbawF##rxjL|6R)odMp#T z_uFFY)GZlVbq9StmiZE|dM$8yXUPO16QlI>We_l>wZzb(95eo*0E~fVEys0EIfEJg z$R;51TDtf_Qfj62lQV0IJF!$IEYIaEy23t6Nu(PAKTXV?%E*n*3$5o42AzOJ@9zNJ z(!ji#S4Xb8d=lXDD_Sf|zB`c`B;K!RR|7H4^-!MmJOu7q3bwyG0E_lseP&0ivdBtMn>xLq3TEuMBhacc>dd8dXqhIC;U zs~Dx&_)fJqZ7h1_e4R7S*RHmDCT+Rtc7vUBk@6yDHLr!O9>;!Ove%sSF;6_1kSd!; zOhoMV4t8~3cs@4_&tW026(@~V#8)a1vND5pN_MNnpA|H(?r8ee<;jVn~=FQ z5UI*dZ&H=Pw%fbRNIwwZzH3dBnXV&_opDgl_}xfHA21+y;g&-(W716#de*VNnltu^ zQhBkV@Rtc4!0$sA#f2hK6kG{)DUl?nko`vY(>NOC`+b%tTX}$1!*Q-lfhaVpHy>p=QvH}hC$(w)j2Sj7 z^iHu$>TTyMV5br>x$>{of4_YE-M_YS6l@d;Ba2S*EEdC?jI4zdn>BrT+Fa87k&s4J zv~fDYxS)4wPSlRM`z*SHz^GZvHf|J-}jutR4NU z#qY^k8dk{@ZgX1>;rH%gjSXeR5P_{D*zPnxtXl0jBU)}&pLTN?qFl#AmFCEqwO;1) zHX_|sW5-JS{IFzztt~UV*G~USj%fs8!67q^IskIS#NX@8bSJ{iGvsZ{sE{VqjMkAg zVv{m$wnmb+2A6{~E`qdABi?Mu-`VE*V=lWk7r-twqGoRKb5*tkay+ySAWsL|Etq#U1~A>k^R&K*-N(RQyz`99PgyDv{H_<4H41%>(3;dmHZS zefN{J-E+$adr!PRmb8bExBI%A4M(iBBCv0?)6TmNQ%=5}3i4>^&=y4=hTkHmGM5FA ztsHEB`9k3r7ao>5&a)v>W$`Up<7%wvKsI@u9`7F|eDc6(bKSDot zDl@h(kLP3rcaR+;nQc!5-Ef7TI=*uO`mZUI@Pl0@Mq}IK{4i3bx?`rfokF;~hcWjx zLlwkpZ_%k{8p`~+a>&9CUez{6CuC^-?81}vx33Gf;SFqAtHp~8bcZ1Z@SiL`YF4n% zApG_43^Gz%nv!$s7TVq_x&K3{tvdCi-8n%(T?lULei_1p$zeI07<{zZLRrlW97Qry;;qh$J0g&W1jD^2!wGhpK`}{?ldu3&%G`jM<56UqXvP07ER z4=-`gwR7~%&pRD2-BXAPVn3!P?D6Mwm=1cGhkrMzQ{L2jteH{b59@hLGyL%Q(p{2u zG1NAuiU=~!=I+lUa>Xh(VbsV#4Hc%-*l9hZub};_m?-F&3_aaqBOoEkB!Z&MA+l)l zvv`V9`>ccAl7!C*L*m(!$KX#>iYUi?&SFzGGt*^*zKzN#|C#eLmoufea=;^Z6E89{5qT| zvXRuI8$7SzNb$^^T}knXzOBPdV5T|-IjsVDW^m6qZyZ^1#hkiuT`w@*++&AGpJVHY zHFd4gT6oC#^UXh-&~aRKPDa@{%^eSbc--O1_VW|{&{I6S59{W#ghB{N9PCs$**}k* z$5%;j4nLqXmI_+I+S`u>8N;HBJ{r>6?7JMEVT_Boa9Ts4rCC38OX72p8_V|%NF~FX zwLEV@Gw)xW0fQIoY#t@VL_p+~UBex78C5ehal6wkk#Xc*-kq``yfyW!hn4&pA#%wK zlnmk0eF%#;$8Viue9mXm}g(46^2_qn$?K{zM#)?b11&Br06#wrY7j&<}FTv|hQ5Dzo{5}$Z? zn9=Z%bfp4QW7|i2&MSA6l|K>a=i+Zl{5I>_gAcIHDLgT$l`+bT zi3SnhIj$=IdZe=T(M#<0Hov)G9xzs6SOr!gEmzWnih-q z5Bz<{A?*CU@h!iiA*X?v*I)P#Fyvp3!C$cQ*ncVsp$J|PVg;OMmbEq^P(*Lm;mI5y z|Ix9JBbAK(76EP)izDdizKz|*s+zSdt%>ezpPX-r1Sa%ntqw&_jz%uqLZ;b2YBX!H z^hB=!aC%Ub-b5nx5H(66;$*^9x+%*hSMNP#Bfg>1d%l<1ADSnFhbhU_0$OQd^IwDb z85NbN7qSL{^10yoh~fEr<3<)#mS~<@C~p0D%J#fXHlqVvqj0s{gDw?E01+MvclLzAz$Nv?Yp&B0@7pU1>BH^D#Fp#)BZf;=gnkY88dZVSR3!~kV@XQqXYJ`aNwwHl^kl&UKJ=fm&ESXs-^+}8VZZb{o*^AuAb~M|*k!@%l zir*7CTr(#Vw&6`F9X~CcPSkmHEMoXrw+u=ATnejC|1`GatFUs~M35O*-^e`V93~Ld z@m*~uy8%vtXTvti$Gtc9eR`*KW5Ibml8|LeW*Q0F5*ugxI(ZB9DM;q2_DzR%JD+-Y zXL|lYXlG6+e!GV1-QWN>Xyx*-{u8(=!J(p`P}TGX{NJ^6EPLpjGtlir+eHI>#KsK+ zJ=pBGv%Wv@2&;K`HZR(!>9T5E{I+HhV0~w*DL8CPwgvrSsH9c0pOHSK>USIB(@ZErG^L_pP9_H{2?U%vg#x6Uf zkpq3V?%Ox3ol>#0Y*AbZaGes5@Q)W&mRippQzhm77t!wIfUZtvyt{OYDq&J9-_bx% zzrxrba(P4#-6E|%FLRmNWc9~X69+2!;CHnJ^;UF!JzRPHKR-;a7f<^|yToD>XrBE7 zJ`5JUF@DHA`B?Q!=GWoK*8cb33;efVyC2Se%b4a8d^|T@-QRV!7&k^%{n?v~vM%c)5mwe-W9b(lW8wL-+dz@(a`+;M%U|2pO4N7S};zyIMk z&wKCc8@X(RZ3ZGwCIV&R_Ow-BW{&g4oX<;deGT(e2niK!M=}?FJ)Gc7g>^k!GVzy* z46eUsQb-)_xz02g!p^++H6Ubs1lUST&$#Qm&*{j}f#k%j{Gr=sFqM1sC4lT~xu}C` z6`(n#h~!~x+RWv;JeszFa53-tF!Tq(^7)7}Pe(WCSc*l&gfK0D1!!_Dg2TMUYra^w zNV`e0mB2adg0ep!mDhVF3Jay_x(WW2#m}pKF>*n#=-%cehg z!qZyr%M8zDb? zTZM|yDyc8iFdaF6LK{6M9nUMiYp~)~r=qL0Thi?zfkcu+Zv~k+*VG>B>9~+jgU4m< zh%Ex;J!AzGiRCX_o+v^faT)<07Kk@a!!#69nsiZz)$ImwhB&!;`~Ey_zNvh$p`(BU z;eoPCS-^F<7S%+vHcnU8p5n2#1)CbN;_c%pi9EAdp{2vc%cCC;IL<1+)C!4(D`TT> z@O#w{dZ%qx=&Xn5b1L?QwgXYRjX#==1W^&pd@=CcqDv&9ieu_}e%N2Y$cmsPv1qQB zzuQ1`GEvWE1KWrDqb7i^obID;R_o|T#mlZ;HO?R^l*OIGlU)*N2Iu90Za;t?&EDr> zsc$;)5v#-iDfAmkPm|9L9*)Z|YiCAy)kTL909Ph0osg*Um%8Pml};iPf8C|oX>^!d zIVVU&;sfSUzg10bPT%W{f67s9^b_?9|IqA<{a^)O-T?f1i6gJBHkYlefn8*JwLGsE8=pUV}5lYUasYI0=l+nelawTF`NE`8c?bz{OH#I?->}A zPkZ1v0Ds5g=uazRy(!N7s1B)!_0fCDt)5+R>tui<%C;i|oWTnU5Nd3c=VC+~S9A~i z<=2x_cY?CsL0U=jbqo3c*UUL5^6EUe84~{jdd9vOo-$7TSeo^b?7>;U)zO1j+#DV; zDnc5nJ_=&(#ZizF~F4sJUGRSbckyBQsM_orouAXV&3U@>$E*ZbIOBm90#? zI;?ng^UaU1fUaskx=2c7I;>9Y^uj&&I54osji6tl4rgFNK#iVlzGDV4YTz! zto=%gzs^yBJI09Rk8h77p`Hm0kFIpH_*rupgoI`{v6p+-cbww@Ruw>M9lV6Z*Q}$C zuyR*YXzlhCMfLn4n38s_XnAE%wSe{T+(qqSv`d?k#Vu``h`oT4kfkfmBB)BO3e;Ac zrPhryA=N^B=d$eqrAMYCgMuB+=~*#^{HJ8b120TIsqv(=<2m=6r#y0s_dHd$jO6T% zjhniyQM(OIwZ(>oTw2>tlZ$gKc-w>cvm39}?AiWZol~suA+_J|*ftj{1^Sfy-8!n^ z<@@g%>oDm=fhg~v@0hzd{@bofVVvX>|VP z>90!xdqbAc%Yi(2S>%&jy&iH)YuF+{n2>6EZj$muxxD5fTlHc#&J?0@?@Id`1NnDs zPYlT#KNGk2$)K_Y{&IC*YHMK*5-a?n@S(fl?nT5_U>OzNjI(h?>Fkjdd2{$w@?2q_ zo1+Nj>A%(^$0*g5U$m(Sm^6j6xdxT#AnB}l8MbGTS)=Ad!WC(V=PQ5eYiQ{aOJq08 z?Yc$0$f0$qAu+I$0S@v?)M#OMW!lE-w&3=?g|dBEuNF5zY@oGQYnTNMo-lQsUIx;Hy}8V6 z&ttkM_00#u10}Js=+sZH>1VNG2{8++F^sE! z#K5%yT8!X>`&VqHWtl!REqb&?1z?DoI$0#efulgEE(Pi;qL$RsB%8lUfA$AJDeYk(4l zL)4T~i8J?m>bO4~?{Wh*B6my1ef===TJRg0u>Wfpe3FGQh=N9CA@%A%-``xeG7AI= zHBg++3QbFUe{EO850fPRJyF}j*VQUyMW0PL6!{hBzRyw7BPQBf4x2Hqr599F>y$vq z!0IP9^zGuMU)mL`cHyz@w^?UWwzMm6T9t@ejTCk`3+P)2S8Hz9e;ibAQ4VMEUx^h_ z?Ga(Ij*{{Ru`_9VV`5UtJ9RrUmeWqROS1B%bhX|%zaW#(`vKP~s!&)s3S$8XhJ?qeAn7IQnB zFm0Q{?^BZ>fA>!G->twgPH>zj&FAJX%bBsZxx5AmWnp2?0v&CCJ>pjqr26-(cTQ2x z^*4TNUwtM^w>y_K9T>&QW1M-6Q60_h!r#7dqH6%W3P`5lg-FP=X1>tHS<@KFYJGO4 zX9Xo#eRHh1jd;m5lnKW4f%9{$hnTvx!@H=4EB!Vzf%J+^#y4^9DQ%uJcRf8w(^a2lq*1AJV^6Lg#E zkw>5L7H(lND~aAJ=Hk6)TQy4$3Z6KXisd1vdw|+;Q zIfBGhM~(qOqg?djJZzu(Y5X84|8Nhde({yL;j5r8122scwHF?U`vm0U%(Y0s#HGA= z_dMy7NYfq$_I5?NaUO(oO_IPDG)B2K*%@}8yP^NPc6%;N;GFq(0q3h3l*fyXgLgra zS=p%M7DoI3vxt z+?{4#v6Z7Lt-?|*JQTNG={K|J>o?%_vT?itX-wDB`!0pAp7@$uS+>rm>Ufexz~S*# zLG8I))+z)4iFm5j9|wK39Q!!DM8*z$8_&EY_c!GgO+{eY6U{{Bz{9xi_5rvSC#_Qw zEN<+|8o?dDIRR-C>NQXTTC=LRjOFE5wYj_dz+SFgRNt2_x##d`N;f&6EzAem<`(i? zJ<)|%;3|qlr#~n#Eo0ADnRhY$I6WOMY{$TKbc{239^-{_ zBzc@?ghzqcAn_#?{j{dXI7GeTUduC;tjk&QGD@1iF5R6 zU~6E)Q<*AnKDFKB-6}4nI5JsDgKmg!X{}Ia!186isYEV8l4$C*c7sB(Oj}-vXxHKtw6KiILCJmjMJF;Bt*5GJ$7ui z0PIFrwz0w$cR3xqWK?%ySVz|o(?Gp{fbsIn%f@+=`LvZXDt#e3wuFxdb;>xHi;!Fj z56k}3g9+0H!>X$+gkmGUnvC|{{T;=M`P`!HV{jQmTYp$xN8cxV!!kO3``kC*0eV!x zM?=4igYPF355r>~#oHC@rHEWZO#LI;ZWRb?&zSX?}YbeHxPM_$I%2N7T@z~h@qihUVs>lc@0WJ3Ftu#2S) zLB8BOYd=7@lgc=QW|vz#RFY1fT|S2xT`#Oi_#oZ>H#(p;W$a@K$~^6JeD}lC?HW1C z|E_U&;QUhuoXKx)!zDEqTOY+liPgFjIs-T{@6PPuym7>c$Ge1u=V{g%smlXw&M z?X(~%>CxeCy$}rK-nwgbyn1B#B_R#E?NVbvEOEp`y1P4Qa;UAqc*X)j(TJ#)>TH?Q zXjVtwZKp}d!R5taLquW_TgGSEPD&MYR*j3qsEe@a?QIxE(hsi+{$V3E4!SwHgQW6G1NjU`BqP*v)G%9d8JnJ!hyhJagXW&rB)J;dChl^gb9_gnujjXLM~1& zwlRLY=$*ho6&!K#JGXPT40TCj5EtXldvKx*>sLHOm8+14LDC8J#g=_6y{Wm7x@zu9 znMk!WJ=V*O72I;Je*i3-vuNrAkKunMsN~;fJDqBIr<%pUOm&jwddmNdZr*Kv?@FOL zVvzpZ>O6!RlvX|(%a|cJAxWB~8hZd(LCLiEl*4b@`1D_!0dx z4WLkx$WmFdzw$X1KRcVd@r=!GnpC;ws)b&5+OY9ut5lF{Pf-ms;{n}P*+pPq+B!%r ze|6L?VR?k)VsE6c*+0P*Uv+nwST2#pNyqSn5L8Vghr+4pmZOWO z%qH#Ts{`~X5uYgdYjGeE8?jW1-$#Md$S!|JYte-ySpY5EAO$gaF958~*^rBWyU5l5 z7Vd|euTr*!Z9RHrvu!nt<~<_nKpBc9uUhXT)e1em%h4}1_F%0$I#dp}fESM3&1S6@ zp!rF`5JlcK5+%I?BIi+35?r1P%oGZOYeL`d2IIG^EmNQHD)qp$ZsSu3X$rV5#m#5N zr>(f%Y9tbI_vzOWB*yGZb&b_G8|)#`jhD6};vMUsS+#g7Zy8RgCWoH3%S`l=J6%@zG>%CAfX9qX7YWZdCnVm?`(u%bGbYUaq78=D$nVM{ks`s^`= zom3|n&YBNFMisrFD=Aw4IE!%$^^zzgEOa{vH;O{>CT6XvLW|8ZW+jt*{g#PAzg4o3A)vhn zd)L~OIFpO_3xxZqJB*dF9^|c;+{P=uJf3jUHZzwE^7}w5C|5c~s+=kYxeJSDF)%52 zyapYZT68t*@v#I^pm;_4qrX;%lh8 zP2IkowXrZbzKlP!{1ivG$K2R^;y9bdV4U<0wM>Ufs_v z40rqbj%In~+!Xo)nLl9*E{rr1|ElVdPO8qn)z7)3?J40Bnoy_XlXn&v+pP1p=N^Yj z#g#l&VepVxASltKcA4I*Vzm?bIIKGYXKjKN2$D~2wtaA;=zH9+83|$ixfppNit8V| zaf%UJ>Pzvu{#~RhF5`aX^HSfhDORdEB~xd`JFRN8{JT#X4yWmDoWTP90c8MkpcMDt zHJk5eF?zO6og#WHVjtmj~oyW_ItrQQc)>@`5g9qQ8Cy)5tlYd2_Hyoq^P@8Bx z)e;|MbJH2zi-AZywn2q%tc+eo1^KE+dUnWhuJ(3acK3(`EDLz2zCB(hI&PP=zX+sP zf3>%qgX*>|JPwNIM%!PAPJ~cqlv3>rRf;t0AlciFFSfvvS^KnKS=Y9!mw|%;RJlNtnB_ob>O5Tx)lW~B zDwS~{JJ&ypJJUH||73jmoLK(jK}vG&bygFrE1>$3&Llns-Eu~U{>Ib9X~oLbG2Urm z+-UzEZ8^!{nq2vkr9p)6(Z4|Q&rHIET1+9rqrByVuC~ZsGaQFX)U|;D_Wb)4b7rZ~ zsgUO~t=C^|V%bhFJXR&%O*=A|vB&J12yi?&^-~=2fhy-y6);*Z*&gSeD>+ z7McCmE_P4F2P({@7zd?0B5UhNAn|joKh=l8$t8%)BgwLr@m;Lx1J3!Wle?5fa?q)jlcOE87EtUxu>!wJ5 zYY7nm5?_82(7KLN{+6?0@vCtQr%0e{e;~NFXJQ63y-)Z;9PC)WJrZNw z&=OMRC=iI*`%B~RdNy=26ZAMkRM=x!ld+5Jg}c*`fVb>6wmZT->9t-es}{UR1$KS9 zzV2h*c~8e#zJ20Jkvgm9$VRGQ6YjWX48ZN9LKH+$NN2*51%;IZC`C*{_bnYz|^=i_Q)$`(ttVVSY9>LfY-VZ!!=jt z^2Wq3H~d&KLv?W~V(`ie_DYL7utFrwE}N`m0iIBT0qMw=8_aBrnekuB?GjR6{_a?| zl{di!m5+&cEWOn{MkB565gXxPk(9630p$W(`xB);ad*42?&ylEY0sH?WSxM~naqA) z6$%-fI=BiWhP#odz{4@E6Ef2-GZhqePg4A%Ax-s+`fBWjWt=*HHVVUvbE;D6g_V5d zj;H0c2+$O~@yH|2kO?7Laqb5nrU7e%0_JX0Z3MBxDPb_hH6$eDaMsj$)%iY}+*5Uo z&Db*m?_H#r%KSXyow5phMoq z?zSrHdCv(We?j_#xBI05u5#KIAwpR7f}G_Bv$@4iSGDqM-0v>J-1D`a)kCZL&@IWM zIL(`9n*wn!q??>iX6lg_Zao?6HGRGa#ktqPlR8nmnxaTbMPj*nq+njM5HopIj-QW6 zz;@}c1ZDb$wuF|f)((*dbW(YT9!2?>QX48{Dt895((ufQ41-g(m^S|iYLGpdd5bN| zG}Y-i>AKPE7w?qvO5x_yx$?gByZHC|{fR=T?fS^(;m(!UNdsI4pXzFJtn4hT+sE3l zPf8}g7}w65ac2&<``l#jUPNzDVdl+diR1NhV0DMjPMqqV6X>`?ztB;~X`R)l;T?K? zwBI~T4>rR@3msZnuAlqR<#m54c!)tBHnd3Jc`}!>nvwZqbAXAWzp>sbFKya+VY`H| zH)l^nC!kUBfOQs|$DG7Wwsz(zy)JR?>HR%NU$Ug?!#`tqdvfwz3iPvs)*1dJ3^d1yK~6l%rf_y<$^_h^piX6`P6nFrRXzzj9gU4;Nm>z zh8~v&^Cm%eoSKazLRec6a1e3WBa&4e=ivso&vnE-ikU&~#%cT0(PMDmf~_N-cPvm{3Bo-2%e*y6c;?b%uQ z_m6{77jsA_uN?d|jKPYfQSTfbRy!XkWrf)7-oKGuG>NUN``-HJ#^$v4oT$zFb_Eos8XbP#sVGP9K5Nv(!0oRc zZs?-h@1nvQ^)w{NlR8fl2S(K2*UDF=IGQ?;s+O5<aAa|58-g&i~7w+(ZY&hX?Lt+*;Jg>o(lRo=ws+ z$asFGZr+dCp11qV7{nRGCC_PjHrsx3rPMY^COh)oB}QeeiOWf+8lsd$n$+qqbmp%M z4X{{0BLFswgdY~tWzLxQ8~ELlT#&BGGi0=Pg~$@J$j49`tzd%@{%o5YBU)QKed_lH zZMe)LSM4mO_%WcIraU;4OR&xQEPTIeg#`g9Q8DAD{1R1#v+VjA($b?(^>{n}wgOi+us_-_5w$@YT=?hdz--Tb zfW}-yW*4Sj^4#`3+fG3xDlk5HkOvu+LqE8B=EG6wK~;dN(%$o-mbmh(@T^kjme967 zm~X7X8|YNu8p_^v%qg^AvX!6@1UxWlQ!G75rIGKh(4qY28F!C*x9met* ziaelK=XO7qEovM5Lx#Qw**daq12bL2-1T_4l=>$}_pr);Zj==q>HI%Nzy3^%*!XAn z%=^@rCs`M?(Ix?cBd7w;EmXcR(z69Dr7f`|^LZ42&FoeV7Xu>~x zgWF2H73E8b#~SD_>?BDQI*bV+F&62utHe9;uaR-n(?;xtX@%8rnXhMN#N>FZ-c<=@ z?y2&TBji%!lS3TF@NalQ&F2V@?Gvdf$?$jh>IaH^?-F);#A5c#7yEQR$T0q_AORzu((4{J3dKk4IAIOr9=atL+ zi)M3|ZUrR8K#d}z1%D{h@}Q??KA!{nwcpJ|t?;Bq35W^R(Rs$87)w?>ez&HG5O`Bt zYBiDB!Cxgrt@w0@O}jZ3R_6G4AO>Qf&$~1kxg2~YHFbaZXe7ym`uWt`@d7-?wxkaj zcDX&58q@WlglksL$&~k8xUv=(BbpdTU-`bnK*K!K5skIVg$Wt)|D)(U9HIXIIIblc zic*e9wyf+uvu9_oqa4{}oINVaI%MyWb++tHgR|mrcVx%m-0AFj#`pL6{STkd`~7;q zp5yV=uhYRZ%z%t;tYS$-Zm8SdNyl>R8z}N&uiUKSIUv(!m?S|&ge$c5rM8Zy1qvTo z4zPa~z=kbaekHPsK%3gUy#d{2o6TA%q|w#?G>?{+z%iXHRugjYGk)Ia0;@$T5b!Oq zAdcoRTCdE7>=83LVQ-?97A(GX+3=Ezx^RLeiw@lFd(+PMW%5B3ul)^iodfRBiYp5& zIRXRGDJo<$QhEMQT8ji?12+NrzFtzm+UXuZEbec0*PiBGE4yyr7xjuOI_I6wS|w5a zMM^_(nc9l1&)N)z7Q}4RhSWSou^wN-IvRTkI5fAww{RV@mVfn`3!A!OpLJJYpi6!d zCic53(pB)IKH`@IiDOlk3^g8&=tbp_8EDm!QXVb!!I~-OZDV_sR!K1xwgO7k2%69$?13 zQyBQ(V%tt?>leF$L`|67?H)+$;2dWi{V&I1;4xtz!wl6h zCyYgciJFb_o7OYht^AJMj{z~I+osM`wF5nWnaJWgVvL@&Jz1&y%$m6`8w$C}&c581 z;AjmHn0uZcC12QtFir`x-F}n>HojzxOoG%W%oeNvg!_l&iGHA80&TfzJUl-H@BV<3 zqaUWPECym)UOFbybxF9;Kn)ls%7o{E1u-$cTG^@x$ZP*DdFgnxZ-$JooDy2HP%1{{ zU48A*xgjy9!doEG+^*N5bquAi6h=nAkxBJg-FPI1OPJ}V{gx&UCvSo~YUgzw2-K82Z7E$)+=lyxMlh(&D!km$W zq5X)6Pl7m~hv?o^m#ORU!QB$CH`VH;%nbrKwAuJ&LCuAk4f9h18KU26=?yfqvJD%W zzQ0qe>%93Ng&y`YgPh-b(2F@(%&;w%R`E(_7?#r5*pSBJZf{o`sp|Fw(WT4bY3fY^ z@$omcV9=eQcTxJZsR9{>d>#IHcPRWO%JAmE98f3+~9yu)~BFubMiS&k5JV?& zk%y1vuxpsD2GiS6gS+Jl_vEyFs{cHz`3+FS0xX*C{$pBeRv*LC_*`8ahIOF7ep ziye1qWF&!Li8I$X#`p|gu^1!UF?o4C&Ym+ z{&vnIRcjB_oGt=n#XxzxhJOt+rwo|>)wygvuUbm|&n%V7eo=QE(5z7lr_bY0dduore{h5x7QMs`_^rqd zH%u$G)@DZwr|1^PNRMu?s-!-Mn^v(AUSf@6`nKeALFBlzL`CBlMIaL-!Hux20mpdC z8Ns3f1loQd-n=&f_+y9N@}~U*d*!8^+j6fI)NR*rDDm{mPyla)5TxkeLZeJFYE5q{KGb_I!{SmM5sBWIaC9&GhQXd^B@6;vmKWc>SY4W$Npuw z0QDg^^xqY{N`2GxAI0>DrMzr}h|)DwIe|DhPg_l`;VHNnBomy_906KLeRt|q5%Ier zBm1B844tgS_oU{oHl46+_AIno8Z_P=UP@8EUTfP~=$z_dc){LWV~mje3c{%F+afWze&FSmSLie9NB|1!zbJ4N zW3J|SaxVC+ZPq$09tg7r4&Zmoi(xvxPZpAwyZtis)B^32R>cjyhHnWGkIMk0JOy+vSgery3Z6h1{EI4R zDanJA>O12XnoSPIoy#_wl9L-uSG|{9*2pej<)=Z28i!t4>4_G@6n4ME-wmXF+v5Fk zb%;P@Wg=~7qCuD#^V`&#q|(_dOSgi{+JDSp=Ey~GJ=C>x*Dgm8P^Q?93Cf(KnkbN6 z|Mtp-b7fQSOO6{LVI;RJB)nhZqPgkirILvz{M%Glq)z3i3G0r>b%(^$W4zE&eW`2} zRxN!d0~u%21_Uy*mhbBKWHst4CP6l~W&lRCm`&GC<9&kNUVgZSGIRI|C(n;c^XT=@jlhes{ahi} zgM*-N|N7t<2Psh(j_}Hj=15Iy?!b>CHVNfWhSDVS3d76A7Z>57H>Fgr8&!a?Gg5hN zLrYO3#{C2}!kC^MQ$PnwLAkgBo#r8^)``#)N;_}nU)8L;-sT#CQV!*M5}l zn=8Wy(&o>GK2hUE)#3Bo`vKsaUbXxEoB6KOGCjF`mED@mQi4OaZs$O^gGQwz7;o{CF0ZsOFvG)%gmDjY9}Uw6g@OX_PT`KF}~$V6&R z9?fJCxf37Yoll^!J#p;3*7QJ8NC>Yw9z9Ub{~txm`1(@9CQv7)GInx0T0)3k<=L&s;Em zYqB_# zE-#i$RQ4NeWGLG&WYux0Zv1kmgI3ahr`Q~;-QhjE75fl9P|#BnVy9kpG%if!a1q<; zH^b-Gngvr0_(pJ^809(rPNMVDM4o#Iw4%_~$g+m^T;9rO#s{$a*#(D|IT*TPqCnl7 z032sZ&>_5{0IhHte-`9z{#O0dhaScBa^5dO#l^W2(;NSE){5Qxm94F6D!i^ine(%m ze|^#SMqI8>DkAjne-t3WA>ky0QKMNiQ(=yJeuW(JEc$kI(&oVBOtU{+9Ax;=W=EHazUMn znrl&e3ev*Rb8+|*)bzL7%JLXg~gYx>##;?VZwr6T-vxprF6g8evzq^ zb@o4PS^`P)@ZG1a@^bs3f;87J?kZ4&{0OR(QX%>R#otah7-oCp<%c`EM$Mqa#%PYVyN62=BWm=0`tHgQ{XMnkQd%A<%s>eC)(J$dJCv)McT_)|RkJoG>%U`nUy#oJ9Zp(0sZq4W{K zZ|jSMpG$p>eCy{mPD_Bwlpl20EJCDKc&$h{)jL_#eC+`JNF;4){^%b7k{jD-fOm<+ z>Dn0RU8B1mL;oD%BE2tMDU&SY{dtm`IJo2%HY=&)$0>k6wnbYc42ujsGPZH~ zwN{zZS=K12t(M%hjhYb`=aDoX=y&%Q3rIGMF0}m22UedIHJ0vyP5ZvBUhb=@Tl1OQ zJAhqVwxe$`i2X)%GwHBuX+L%OsKrxRy>&jYS@~A$Src#YWtdGXP(O%UA=%jOxvxT>fQRLG_X`(Y|>|;t%UEsKx9d$DfQ@DU=MWzz6Sx z(ThWM!B!7EJY=b-s<3{SZj^GQ2I+Yuo}WUK>cH>$B5*JK=ComdYL~~K9i94kRo^+@ zZ&6x~(h3Y;Mm7h+aq5={-DjX;CY}q6pJ73#8}MW8GWE_YainTMC=@iyCSYyZv^*W7b_K2H|>2>ZX{XDKC0_`2q|1)Nw>+IthE+laM(6x%^K0DK1hpoi_ zAp=yZWnO7_#Zl78%6BZ$Kk2ww_#yav_%rO6L~XCspd=!bUFowgZL1{bz0kv(qAS`$ zv6-Ejf5#LRESKnXjdQb1qyqx64^o3dwWztg*xG-+RhVTRDA!`Eww-)ij6d2goP@XB zWyhvy`kWAPE3cE`DmP;M98WM0Vje%1erv<>NBi{B(NcZ+85&CU*u^5B6nJ^rakGN@ z-@I^8XcmXf0BZY;5cO)2`K4E!&duqic;ms*O|4yR(KQn*ca(g$ueE-hLUm~mhi0Gd z-ClMX>YDxt10n^P0e?;$E#WvAM2Z-;?1naun%1Lt=QW4DouakRch5pD0bcU9DslM5 ziQ7Wi^WSCixG3ePy8{&zjn|}lm_ktc;-#Sbt1`iUIXTt%oe3PD+vsFhmTjI*#;;oz zPzvz^^0@P_q5=QDy1S|Nq4Em3WEXNU^F)S@7lXj?aL4W&xzmsn%rrRC5rhP=%Y*U$cTnYGsgfd2yNxa%=nSsc-6@Z~7@O*dfh^N0%Jd!v z<-?07vpDkCiDIvs@iXGysWQpzylChDCj?UvBT#;dE+6uP z{@}r$;x?-;zgL9tifcpe9s${c9S&RV<%eb0LMVYw3&}Sf5Q&d*?{Mebp~@21t?2k{ zo>+Q?oBN{E+)P- z9FPPLF7te^+Fks-^9~*l6z8-E>$8VFS&}<->0*93!^=@ZECfcC<@dm@RF z`6#-;dq+35LL+0px>z_y;CMwFKinL?%iobg&^8W>x`Onw32`Z6{T`$GsBr=4Ot>%( za_E*m=!lb(=d8VXmC6ryG%XFIf^iM}EH#G~2+rnbp}9L$-{Zyg6fO>!|0rjGTVFF> z_enWfJ9Ewcm&z$3xmcdOh(CV|faL#b65mSmT$k@^Cl%FI?37+u z_G@Y-)0w?q6>KR__o(diBGRed|+XF^LTm=Op~jhH}(u|8a{vw{3D;g zc+$-H1I38vITzFNxZn70;xbgc3*5q%>}4{v_LZnMYfvWq9|gvHz0qTg-#m9B}CJoOON>ln%@yu{WSF`y3~wQ;7^!yq6SDoBH5Kq;UWA9#LJlh_15buXiVWfdAcRAA*Cid1Qi_@l}yMYiGhWn$E>c*@*;?Dna#0&HH-4@ z)%T6HckuMoqde$Wbmt#HFwoxeVIz%~uH?G1D(&7n68cqGX1hD!%zC_Cq`iONtllz} zIw0T>mh-jLRad^6yaDqNk!B-Gke(nv1581DdJ&L}6GlYiE3S(zqesOe&`Y zY0CUN!S}%r6UW-r@6TH!nq8cWyYY;r_FF0K>9%?leV0=x4_I+a623Kq@s1??~U3C~<{=XYmYuG!IYJi1d;VI;$3r_H3Yd{F$`R387D_xN)>VX#j%<@>9B2J_%JE>8Gu^RiFASdaz2RK=9t0>?;cWy%5KTA=N-Fb$a0c^Kie zdg+TvBD(pBl);08oY;lkT$!7YSpn%)c~9DokI>D|?186%z=p}ts9-^81LOZQHgK-7 zT^6k@Q6szm)S0dP#(L~jbi&^s1*qEhoi7VK$S=kA=k%{Ui2@y9nI+v^RECL?DNhUZ zt_#l=U5HjDW#;EXE?lj+mcjZ@Ya3hL8$i;5V;@yHf9#LCWXXC6*gh+=jdp4s2PYnWMMYi&rq((SIZ{BG&pytN#9nis$+Uug|#Kxs~ z`bUzyhC4oo6J{%dz>Gwe#2o-ei8gq{SB>zOsvsp!%8H`RcFPZ6pQ1)4--ESx7C&}G zrk$k2grY{&m}+hv|Jp~dq;PvL@hx2t79b#%-&lH^9w0oNbF=#En3bnOQ116svs`f@ zcVQ0^S(A&rn|fgN7XhwHSW=dL-MY+p z4K=q`gZcJp;7$nN#dpN^nG-cV!=KXf{mOZd7s8c^l40QxiqYguxr85Ud2g*cU>!D3 zC#6L$nnhH%iW3E_wZ65fq2ARAP_naET6>1mo`!cjA2OHN+wnpFqi7s~wB1WD6P@Ez zvFJ#3`vt3MpV5do`PMxkWl%aAJTv zXN3%;D7U(`tCduKClk0|Ga;6FZk3VhdZ$%Q{|vZiq#-O_nRC@&#fzhQBEr6;6OyZn zYS#DnCiplS;>F!BgI&u>7K2S|3kFZe$}o2^x+~j^u~$A1Y4_6upCE%;+b5ph)}Hv> z#txjcS_wB&C@_f}ylyvuc-i#p z$Dq$X?7IR7uE)FV6X3}Sx@UG!Phi$BFe699Wb(KSQ)qI3hN+u>%_c1Y7%2Ul#CeGk zfgK3YCK5KQbqE?WOgj{8q^tg034og4@DUIO2rm0tbryL(lY75X*OTasf;lY)^STZO zm>CAYNWeAG=G&0{15AD5uZPhi-MgEX1goGv^DX;v>17}o8OzQS4NHTYxc*}8p9cC@ z!1FaoU|j(-%zZ2VimL^((%xF&{)U6wuqL%ul(fWRNloxb=}LTT7-vBW3k%Pz@Xb`p z=`dTSv*?f)8>VLrq?h`88swrm#DTG;s{#k~;*|Qic}i7hnx%c>YR@-0!^%hF(T>FZ zi^EWb+!pr?Lyg$X{>lffgP8k?KP0uejeNk>6FC4Pm64{Gsp9UpL?ht@w(lMPfVtg) zyA&k$#qC9I)Cn>RMx`0uFSRq`hkDG79%~j(L1&K%Z+r91t!L8|P`)GRTWtqX6;yq? z_>V%!deFTcCewSnZ{VkuriG(R04h8$V)sqE=EKOiYtwTV8^oj;K+SKp>I{620)Whr zt3&MQTx}@d4A0h@^b?b%u?sPnil|I-ieQ}x4JlljRGX(z?KrXd+y2n;`p)OsE^=;y zJZzX5C`2wKIg$P;g!ohngb99sKO&~odUMy-{oToe)-MmL!3$xD_{X+m6|JRG!(bH! z5M<4zec-7l#4oZ{n4k`h{|%LDO9X|)-^{oA${+$7mak&K?V};&P>)>2a)P{IR#S9e z;DX-HX-$x6kuEvZJVm?wgCc$I5F`0P5g#2+ywy!T1C6XSos^=VJvRWg3;BTFf&PO|tAnolR?09?Gyt&9YE~ib#r~ zx{@JkL=mp|n)$jMxH#yL!h+qR=uk!UXg!M?oK*xNM?nk=j`4o zULnB7C)X}1zEgWwq+=j!_Cow7K)B(cbNjtAjC=lLYYj~Y(QJ4Q1Pv><>(8BuszL7z zuXk z!2)>-BG7WlY-*@g+E*JEu6Mn!d*D;Q)tFpQc95sOQ7RsEKk>31$VnOHu5V{-c28Q| z4jifJCY;X6=;Fe$Xp1Nxmtd< zfj7J5FJezWhXTirOM16EF6lxAt3T4V4o;Ck3Q{>yB0q~HV5IgZgBE=(ajT=F+qwLm2etKYPuN_WG8p}$GcT4J<=2YjANBP zK?~0M!FFT1dG!>%tUvy_n9kigA{E+k$J9CY);2y7Ps#DUM=5{!c1l^=?UO@{|62TY zdbMa9h_IkYON8`3_MvK=3}+S?S!P%-$?FeX+F4q?k2#+urpGn+T&h>T)4F2VH4hVa z4(OG?x<$!f2{e9eFRc?10>l~Lu;jXydJ)msM_J7^*J}biA7^h@_q38qB}OFJ;ZAk8 zN|!<@O=A2Z3A3_S_9vs~%|JckFc3K1%v(dK?BmT}5cnA&uYJY7UI%Iyu}|leJiOA= zCVzr2rzGh3M*}ymlGv<<-~{_c0sIyZp#TaEj*dbc#%9TCtXBd2c<1s6M>s6Gep;N6`-}kJIHKM=) ze)nh69|TIn5D|oG4(pmdXir&=6w2MYNVvYTTCNH;qAUo&lUH#v4jnWz%J8B^^~>yR z(>7$SRf*`oCiLlMVa7owE|*x|gIs*KUn9%s|ImcXtFV2Ta{}i5&Ixq$*9%9<@SbSp zqz>T)NCH_M3@@VM)Z8DsyvvJbUv4qTpj}7V%u;_x7@iAWI~q57IcFm3_UBy1oGFn; zOxp@mYa(#IH|{p;&Eg>@h7R8}o6LHcM*YywTRWe;z)~?u+@1^F@Ct1|to5bPmQ_`A z+gaGO0;PG(OKw-B8am~QO)7>uJTH>^x54N3=L8DN7cWd+FG^bpcIteua{Pp_&<5pr zJ{Q1regb0JT!AOJ%sLCcw6aV*zAHPtsGT?)9OIzi&Pv2-T~`MwRGn9I(M=!$+|o72pA!3 zfpzI}ftDq2e{Yq=hmL1CmGje{fPf)bYrY&k9!jVYhh2~^r zAQk|avxGw})=1O~o^Bc-M*pA!oB9k5UjxZ%etK@I=zjBO`8V@HkkndTxSn0{GcJ!* zQv)jeQ$@ToCReRtcLmt+(|jZ+FQS}A5DyhNO|q&csDHVUedt}?YNOG^rs0dlelyy% z63Gp1wfNmKJ>j{#LpkgFs214`9(b|hLsxgL!D*Q`?d2VZTh=fx?Y?>TC89SNA3{#j z;uxY~%JAW)uZ%&@nrpiNLKj>j(CM+ip;5FtZB_e!6z+l0wd#Y+Y6O?4D1KiYyc}it zhG)TJzaNJ>9!M`z{TlhuUacP3KiIloOF$UesdHGe>tXTxONMGhPdmM&$CR#nJ!HwW z7BNa(DBc-UPFPtKU0RjiGxRnLTGR3H4qGXA=F2J#bzhRX1c!Ljw*l{=;eu<){ttJ zgve7w-f5z|sM~AX&qPk_X;v+)!%!Wtd3viQX(igY7Bp{2!&@37J-t)YZ=9KS(nd_~ zi2AdD#7%E3Wfc?#5;YH&qCjIlu^(E$gy(Kn-2IY-NwsVG7rAqO_9nDW`MZqEm)sBi zq_rOTThjqw;D(`|ad%JPmZYQ6;Hh>b_^NE6iusyw{*OFkN16+!|%Wna4%Hsg?kycsMT6 zAYHX8hmSfj6g)@njgi)uor#>ELxqGZn3N~#ZNLzi)Wo~5AEpOibRJ{BF90=m^J{8l zp`N`SfKNO)+1?NNBCYRUM*2saVg@$`m1~?yft<03Y{YhLFz6s}u5y>7O0eh8w0@%A zWif(|mQ((_s(Xix)M)T#F6&{IyymkZJxRSA!Tkc8&m!V>&ofO%U8a z?Xh%RnKwW-{Ypod7HbLC46c|PF<*Mbte^I>;_akV26In70GF~N8$Ol%)p^@MBG`l& zb_FX(d-1GCZ`teI)sv_qEC_ZWS7pRrifutJ^n3@C4IaI+G1^DJV&*}5o1CcrlgCB3s<(Y2Z#^jxgXzB`BZinX*$&GMJ8E@@56^Uh__oX<7DrYEW zZMo}6F}y53siV{`qX1{3P+(RyT^3v__{!&eVzIghnvgatHn93foYG0I zq|LnRwx7)bBHh8kBvO=^1os1US0&#P-__p{f|)DUQlqx{-Ah;?)wbJVf=wrExfpoI zl0v7mrz35epy)YTA>RatC7HZxE@RU+AdV@*x>Y`?*!+SpHxVPl&03vSeO<=e*j_5$ z7By$^BZi67(3qD+4hZ7Bci>F|`s#7ymL(xZ0tm=0aP+5ajlXMy{Z3yjJ%|vIup(Qb zxgh-Z#4Ib)C5$pk_oPA5IGmhU*U~{s69(LDcP#iT^j|2nGV6v&xSNok+wkQtZCbC& z(^SW3t7N1k?T?!->=M-<^-)h@YG=sA-jYk;zIm=c;Q1@EBiVxXD(A|4&u5$2kG7Al z+v)iDvuLl@FzbC}mXoW_seZR1hWywU-WE7(0lI4Wrb1{ zfO@#O^pNw6&E7C&kcxJf^e59Y&L+~Oq}IglsGBg=t^tT*vA3P41i$)t1upE~!TJ7# zF}o$DX#nT%cczV;Y~srCSNwk@kjvHY>3iq?De<7NS^uqI-nv%E&Pa66OT}9_&-(dl z^Lz2j52TnZSEia;2bz8~$F38qox8ub-pkvp18;P*3mQ&IBvRZSceXf-n zZ`p5~E^ZiEOf?bH`owX>a4!==S)zsv+`~q+h-5r@`W$EU2)r}xtsZrg{w(`Sr@zl; zjq{R@0QzC!KN%?V9+moZE8|u30qO)k9SJ3IjU?OSqGJW~TQsojaGi)a(ZZ$}`}tV< zALVf^ChdsqDPGNHmZ?qk=OuchUWFDSrts4z&g~ftLsb`YyRfs1!)wh$z;l#0IaQsL zc7)|wlkRccAMkT!(pC&XMc(ezG-dsxvVO6S2U@#^XmnH%4j z5`lsL5UP;6m^ui5Bsl9WJ%s9srVHxqMJ&9NwDs;JI&!%TEpWEz&21OfRO!8X#`hNu zQkUob!(To$P$x;)_vLM-+YinUE0Di4sp4b1ptm6gE>gQLVl~OX`oPXkWx=Q&&KU0bJO&W z#_G!SA)3F+JaQN6V-~z>y#)2~+*iF%UDAzAKkr6=xNM?(Y}%v7*kG8e;^U{*vG@1< z2%~1;g)`&gWzNZ#Q!$YMT#Z*AaUhuNG__fRqcCDQl|07{b3ThbmMPAUM)o}8^|aE* z-TN77k{XVF$7H8COnDtm5$U+~SeUW?u^4`TYxPbVSneqFi&r8}8C>v*R^M3kkW^uN zkL5KXdYhf9bE{%|Z#>)`pK2+Iu{ zHUQ!aG78dP9?Mcow0uW&bcvToL9XDMexN))rA=hT+cnx@}8dfc{`rgw-Kbxy5z9(~%7rTH4wu?*+TYB9reO z?XxzefGwR)60G;T+|oZ*C)N#phs4|aJb+o8D@fF*wiw$ zSEbp91H6wKQHD*FKeMSBTzeV>*o@|y9baieVtKQ1`uOERXijM>VQtQY7w<-e#Qj;T z1TGj0?NDCpyl+wqO9?|GvpTAKcQm(#IsGO-h#xvt4<8xip`{`(j^T@inC9pr=1i}@Vcr#@4>7CF zRHXCzJgJf9oq2w`$$Wp)Eq$Y}d-UkY^_8`QbP^{vH6hnfU~!H_@*nWGE`H9X&h^H4 zA0O`S-f4FzS;^UrJjEWGn{7r9y#I8%70L7a!pPO+ z)Y>I$o%{)2*YAWcXb6QxAF@+zrO+^q-Qf&7*&p|S<3Y59x*C7dV6>eeou# z*O1|=UYm>@QvQNmdr#SZ;QL@!{{cH|GVuOZKHIHI8i(U2q73CV`~IU?t-TmmJ`E;D z5@G~?+=csV3Ap_W0z7a+hITi#|6p20da+8c_r(o~9t2+~txK(}UsRHRP7e%0Mf!j} z36=UhZC{guUurks$2=Ly(0;b^o)5k#v^Ef~C~pj9LFm&taL9>sfBuicZDWom(dh41 zq9LC?E~?GvaFPUKvTyhe!NNZPE*Y7_Qf_iOL{pjB}yz^v#+)~hDepn`2fKG8PFlCpfU1aDIH zajha@T0fQH!2j@;Dmy66e-(Jjyp`4k+*@{zu5FW8on+k zB1x@-)ajD1&107Q3oF?s4Bv}=F^|p{YQ1ntl*J}pmE{Dfk0eMc9_(&z)<*qWxSjj6 zX3oYsI2+H6pqByf*w8oqAZ#CE4{*DbuOe4}a(s#Y5b^3AWS7m_f=}c2+)b2CLQ^p& zH5uF(sRpQ#%YsEfvvkD+GkP223mAk)C8~OuFQsDW7l86HEpH#br)~a6R=HZx{rmup zow-LK^P-c6hZh>Y9pLlceHk`3E~XzEkRhNGjcS>tzO?JO>8c80F?7Di{dU%YJ|7d8 z^5hjFS6BU|h8BTVKf03`n#!aP@9!D7L(5_2$jV(0S7UP(TFwSV`9G~%pQ?KOAB6$vYJb5mM~?v4 zsop%wj8Ex*wnG;GEDuOYVGaSc<33z{s3B#Dy|u1j+KgeqZ?tHzf-Xbg^6Qa8M?#+I zpSkDjQm(n72daOyXthA|cBiPPX~m+%ds=A=RF0(W+7j{?!WY(qjTUhCU_rA>P#A;I z%RbWHZ!6OAghszbR@Xrs6 zThZ^Q(<5>pELV2~S4F{0YoD={Emps^vU*uyJ7+0+cieoeS9fv%qF8=e{2v7ynE36P z^g|@=l|3aM%oBj{sWrrL^k@VwLuzuEoLBHwFSe%|yuvH}wbhgw0w!rKx;=p?4j7 zbt)v!R__^xb1IGpt+b!GU+&U&228IFL$-`}+3ccY$aOEZKA?H(iEQcK3H1_Gzo?gb z-s=FSQjQi$a5_)JrbRj2x_A(0{3AEM$s+XsK+KgH?~0psj0?Qy(kXMGdXfk#Xq!|~ zCF}}l)bPmEqC4*3DsBV(Hx4}|PlXJIQbJR|7LZV0Sb7*}zTk)qutP*_9Fo|h|yX8|y)pp)B zbPni5t&4Ln(8)=gcezI_EPv*3G8M8^>IC}n#J;MVW?_9y-uHlpqhx4kmQGyuDeJKBaf*x&^*$CsU=JrQI4aG=bDfW0uUF;ZpAD&lTOi7#r zY-I7C<6wPUiZa45u;+Kp`cCCg9oJ_wP z@UeU2i9b6o|FI|9;$Ee`pU&Qp5ogKUim$s;`x^hm$8sb=kHb2RZ_6~o!r?M!)Tb7q zZ3J)WWA|{Y2BE@H^4`{u_k0W0TApXXr=`Z-k8{$u#k>5(Zudiu#>Jh`+m%}GAi?RA zbFqgvO-$IP*iFJ_*Q3`Cu_8R!mc1Tg3t|#Sk7qsq5$3M#TgEO~Hh7i?%+h&Gr{3@t(#{mRtV>02NAO`OEoL5E+de-qRVsr8y-@bC-qZzCQD zgqhIIwSC{MvJ&A>m)WFIS4|FTeAt5oA!TvgY_s`Ohuru<#KX{L!;EwAg=)eU&)D57%IIB11RLM! z<-rr$3zc*;dSKaVkE+5jIkas9ZZF2U!XB4XD-@noUSuv4#u#mbyVI~=W5Zm%(OG98 zPtSX&_S?07vMc@7%-H`ZyadI;M({y(Ll2Q}DT@*3*%R+!g<5U3hSh>S9rUS0?+d-s z#c;(?;rz)Jt(bhNb7buACoe04J59sPw`;EVVofLBa&8|@J-zLkOxUhAfqLtFA?1r- zEm=7?hvUL{s(6F zt4H{gagQn@zg;u3_OZAmhc&$6-P$2$Ft?)>YcJxVgU6RwMdH!^lz%U=N?yg4TAxq9 z?6xi^Ez8vp$e%ZhO8%3R&HM!F_c@vX1(?q@<3H9J`)633j9}g15=zds(h8Tg?b}-F zBgw|#dmiGliv@?mDGb_qa}HW~{m#Q64hjCR0+Vx$F2>9#LB+eucWep{6ZPP%TWYrG z8M12?=LYS`2-@Bn%E2}pkRWoCrY*Hk}Ql- zg-62#MS89^n~HhlPkaDV_JR8q9o0`mq|`;q1d@_xlH<;ZILQiZn;NvgUa(UUa#PB< z!`rSQ?M|!1X=q}4-sW=TXQL!54L_h@O_*Du1gYCd>x4QXJ7;&(M+UhJ=0y>h&ffM| z-u(tII)IdvKeBjy4!t1eSCjLkFn&K77W^QO><@Ztfr~ML=7nbG`hEZjv2ysVx6Jx) zm$o!NUQYbXi3{wA<^*HzEn6W4L9`Ub_YsNElN*btNna~%Y z5b1eILC|q-mI^-eb_AuYTqtlk>bOa$Ee!YfcfCEsZdReLz6HXJpx@R{`Hh=V97uWDvdNIIi;#(H-16w$KPZrO`74Pxh+`KC5XN;YG94=jli(Z+-FS4w$GeU^{T4AD@>Cmf!3cnNS;PKoMwt5ixkY{@(<0%q0R%*kfwW1m@NwQ^B()(_2E2Q^IUizE)q7VPO{i>K9 z{oEOh;da^TLBJt7&?$x2H@~S>-RiyeEriK`6g#s?m}m^^Wz}|~0PUC=oly!V6~WQ| zq^;LqW`Ta*El~hK#)+JS8is0#=3X_C%LoY~zHKBVo9~;O;MHE(jjfOq(_v2rQ=w{W z=NHYBFL&QO0ym7dMqD_zme^|Rh5LFY7EHgQI<%1I`D)fQh8EbZ=GIrL&x}95dEz^! z`cW6{gSxV}hwXlz1kwhx-%66<-2=q8Yefbjju&G1UG*ZQSpH=P)jjqb=w-R4Yp-}1X?mhXe>JbsHc3^*Tk*{X&ibpOynDxouRQ zc>6zjEHVzS?5HmsJN7b!)}2|qL=Ws&X zYblSiCHEAnGGnrjWo`*d-Lw*4P`lFa6~RbRQ@$UvNgb|m$0kN{iB$F}&1`gBogH16!ys}aHaKkK)>mKCkRzM_ zS-TB(Nl8**=;KMZAxv*mBS)j4F18N4tTdgf81@u&V?rb2F6{G#^_vnFd9uMbH=Nu*OZ znAK=^>UC=TxK*}lq;*Qc-Ip4B$|05NwoYcs5rBD0v9slKBEl||nB|@HPOEesfLlw^ zWdlVIOyS(N3^&7O6a;tB@zZ1VtHr22+Dpgg6Ej8> zK@Rd1$hQ7eva^QX98PXZ3rL)1OkNY)-ru$P{E3fY0pG-=at6vy zVeMVCFe2YBfzmCw;uLIB$g7&1MXhx2LD_~I76jEPgt*6Q=x zD=@H=qX7n)LVkf2Kcd{lsQJ$TSHi;*E>4M##?#Fw&A&XVVb}+>iJ>HjCI`Py{JiaM z<=5Y5kMATP_kA2N8NG zv0>$j&3Wr?d9a6`dq!g1F``A|w3EjLCcEuNGPAlg2SUL(1S ziqANK{q5dg&>8-Q&;n(c^f-UbxsYO+;YC@*#fEpnk*2UJrb*d30kMk;UBEDohe9Kn zPa|+T3PYtijeJqqjMYHGR<6+#@8sGfO_socl)w-TnKKwyQQ>UmBC1{1w{0Kw( z7dd(-_$&bJor42a+!;UTZ|{>glYp&6gr3B%ul&511i;2%-_DBus8rCzvByobC;q8` ze-{|DVX8=6KYQi+01VCj=v@ib%RssrL5VI&XWHy2--+G2q6F#LTVLYK-TMAfwA3_5 z&Hke>WhZc4IGB>{8>8SwN7~JYOPSd=_wV3LXxe-UZ?N?rSix~1q@VSF@uU46DQT|k zni!f~6G4-~%c;{jnl6dbxSD0pZojh#2ubJghn7U#3y-cPzx~zA#l$b^86r)np36Yb z!CD%Qtwh8izNP{!pq9V#C#9sctG&zM`uFYe-?;Bz%ce7!G_mw5O$?=m2Jjw$%-Q2( zDRTarfeobC`E z*Uy~E#5dhM9SsLcf!gk)M5drg%EiX0O>a3>k88L?$v~8sp;p zL)QiYBew2~teyn#kZ|*~ z(d=uIb+uZMKl|72J^(Te;~gqb`de4@a{H7t9USLS0~uiWPrltSJ^j!3AEge$r&};& zgmSh~aa#(CGt^1$KzKnuHZ|XzXPkciL>k>Rw@g!1N*y#nD{y)=t$^@xp;D936+R#8 z*^2VM`9*#msgSQ#$GQY`F^iYE>`{fx+#F``6f@l_cbZG!523V5QxVH1rnd3$eF*yu9#p^=`==5DpXi?C zlD#Dhn?pyo%b?&$xS<09S?I)%W{T1NiZ@+>xnJ@Vj5ffp^Mj5U6E5)7eICc@O-6V#(R@g5# zq4tus=6BS&z+P%!U5rrWxX?0X$u!=?Lm)ZLCW12R-3FvssYsE$1c?tPCnd0!AZl-X ziUHZ-wlLpZ0!GDRT2*)g8nkc^4HyK>nc7p2Gx!1Tg^hf_daVTUu6%2@uKi`;Zt!l| z0!P;d6T-x6H$(yK;Yhovd139gn(9{!!2!P*&fp`%kkbZ!!(DIk!P)HHxGui2A*lkY+s25*dXVjx!GH}fA1f=a*q&pGnFm9pkF49Ihn!)Cv(z#VI9*G~8LdaBz9iF6C zy%fKN4uJYD`dBi zqfO_Qn1nqKPqI$uyidfE;N2Oa<5}zj2OdxCH`G3}C~HKH6P{Tg2x zek-IcHZHQ2PV+w5CihNe=ll!Tdj|<`&GwNKo?=E$oGdSm}W$?Wpl?xk9LS3v@W1FhX_YLiSb4mKftECDK6x>&y&lZ~}RmU#=4X|Ng_L(w# zrPI@}jR$Be<3pAqzvj)8wHBUd=ued(S*=jADf(}4k61e%R0i)iOII=(m9s0|^N*0u zw{_pfJ|9kCfcW%7P!b$_LA}~O#NqjbD@lkctLWkI0=z0hOsv@mB5nQqbf#W3?#{5= z!@8m``W*+;`k&Jx$vt|k#zcDYG%X>rlRJAuW!>zFN%WY63#~al@gGI$B!p!-bU}AA zps1u_KtIP2QHN#T&77cL%8QU%NTd~=({6WuOzng zVvUc@&r@h(coUENxoto~o#Wr9#R(JOR=?co83C|OhdFYAzmse><;m*SBh1=gOle^^ zEtc(${K~5r(%PsB4c?*th)}npBblXw?tx!L97?}p8T7sy_zWc# zvL?iX!)`aFTuKgwVzD4iO@#osSG1B=o}!%Et=8|UX2BqcT8 z5qMvw4d4Ar99<<%u>}#h_8QLIFDkGehvM+k+bfVA%vs# z!#3ds^VH67q!#23$(vwY-6)-nBXi203p3N}g5zoDzh8|MLftbvsmuXLtZCo~*9dQ` zU)E^e?+zwGu6O(BM?6gTEajU^jT!-vB)ascr^_)_8$lfcD^K?9qeQL; z3)>8Nou@pA5zvSiijkg_PKUMBSjz5}edz+xLIvTQ?He#cG<{M?!BC z4&icN2zP6`xpGZo1$HxA>oXpD*c-7&?bS!CW>7Z;^Q5=)k*D4CB=fZ455K``@x|(i zuSI$otSU6p)BP!n+d!L$QV~kx4uQm0RPeG@6*+Z5NUm3?6j1X{VhOQR44*2A^Bs1x z|Lwa7Ox0;KL#*&cMZwcFOEekIA;^)gcJ2iF`rRq>|Lh&#e5mP@aS@w(UI@xJnPQTz zr1Nun$%d>DKQVOlswDxVyW0(%0wD)N#gv(uue=7x&+m=4eg!fam@g?l>E$_94jV*d zSj~V02i=|+x6SDhV7c{9wxMkj?cZzSCVu?$H+M2&666AD^ERFWzi4~+{Slve#39Sh zdboalqdUy%Ya^bO1gBThC~hgKHz|U?z&%b*N(yut9Npw0>K5;$+Y2E!*bS`_bx}0+ z@eX3X4kB(dPqQxid;14SjaFXe?d|)6I8{-o(@WU3@p?iTil07#Tcu<%KKh{RuQIgT z8)g+KD9!w63>(8X=>5q0F3Q%Vtyc!$G$0I)p}X3nU`s+%Mo7}CcH=u?Yxvsd;iCK# z!A%e9m+#`_`~Ot463^vR^nQlACHv6u@ISXVRmnedi?*h-KVMkGYDPpN{!#P{HUTe) zGgDyFwB2(KV6{geDh;`$2>G~F3CHY6>p{hXmTUtaT2XZo^68o9^OLs1mB&AS#;=VY z1TxR6d(~DfD=Bq!VR*j$ZD5j7-)LfRlj`1YQF3eJ==DZr=;Ni&B099ZdyVgY$AIV4Ak zNt1J@Phy4Ia|`Yg$U&u5weTq05<4TEP;8X#wReNAK=dC)gth?;Sp@~{i9X)IFbr_3 zz7qg_jp)9Fs5hvj$gQsPz^`p=P3CLWyEs~Vw1+B%DlbNBxIPmH9!W9Z<1%P_AqIyj zs>YOePO*}30rRnyXoB6V`#b(IX~9^;f{DXk$jiwWg8uppfpkZhhu72phC2NpW)iPQ zlNPV*!@R$sUPtdmMp@H#|D#|{CL#|`N-?^`>qlBj;;}lH1qo>{@j{c}fIIi8>=sx; zFCeTy&x>}AYLVWpM&BisSEL2eLJ1>G26yXZpfmR&9K#vXYvDbxut^|jIuETv)*kd` zX-4iUy3AewYvh!$N3*6x>Vsp#?|uwApDd40?n+{xdmM?Zqt8VI6L~^fyj5peuhm`1 z*fz}OBWg~{hC#}~b`Dc^eH{FQ@RU!%s6ce}9Mq8VqzUoa60#y*88rHkgE9Hd=x#VH zqT{jTiKz>dBWS7U$NI%C&J<15V^wchdH7^KLZIIS4K0@aM)mjgm?z(M9pP{Tc)e0- z8MxoSXu9hr$ZD-7Rl@p@qP9bE6G+tf$MOWk@apL)cyC*ieA7e%xI}Yxh~8hm2;(tL zmRe$_4bFzma#+SaJdv0vZ%E<+YL=@_1Vwzr^}im@jhAH*vu6PXfBE8PnPuta2pVT9 zN8-U0w*yOM^%L&yNjv+JqP5w&V%f<_J6zCZnz!mGA?+}8OY(izy$H5)-(Oit$p;E>VJjOJ84o6Hx0uO;PKsaDDCzGZLdFkTPq)79 z5K+z?d#-{!X$(qflYuw%>qp3=BxjO*l9031fHz*or>8B~W^E3ahcdolA%^g6nX->R zB*z9dg2rRSGa`i5(|b5QFS}F zb{ON~Lh*;KQ(Tnyy+GiA72MJLTr!pX&1v>TNsm+R#n-abD$WV)lbyLW>;Mw7(6k^Q zrZZiQ@$A2lIwY&m+s0fY2F@@-SmqXg>+tKerGc0afr0Zn^F*;(SsJ6 z5RxaDkAD!O1qOM>uHBp}I>Jnm-*1JG6KTrDSE3NRz`4#4TZ;tDnhrUMGpQKFs}Pv& zMb82_bDQ5;KijlMk}zJYr?GLnj`^L#8HBrhx=?_UaBU{tuCev-%;R>caWz9VlLGz; zNc=xb*##<UZW*-S)IQ zb`dpvH~5sWB|IxGiJ_taibqGtbK39-qatW*{3u1N$MkmiW$31&cg=eFA4ar=MqA%` z$K+GOJEr!`kVK%ktT}HC41D-$>}_kX%Sh>7eQIRHnP=$EI-2q1zdf0^a^W3%Qm0B& zB3Bw}y(>VSQ#l=ZdeM~~4L9Yp_;{u6!UZN^b6I1@^LyTRuO5_-zk=s&8x&c*{SS&8 zHxpj!-SlrMZ!snfPDh#kqgaz~B}6&QLctaalZ9LmN%JS)?B1YT6lRHEV!On7n3H}x z54M**+n+d|Owinub~&)2EbKS4O}NX{WnVy5Eo9YqWeR5qMn|5YMGNos<{_A$ee)!Y zbVVzY{7tIFH|jXMZ$NgQ<$#0!Y*H_r6IVYx`1omSt2XU}Nn|KmVF_j_J8kw_OGzJK zX(6*!R8KwRRw`RJ%Fvu9%*Y8qo||)b z6`;}l8yALt0@G!x$PPVk2Wfy76%XkI_h_hn&OTHpUc)z<zvJ=|C(bH%2-*<|KoNiWmU$!n8A%p%MEXvv#~Tkb`9{)1R1fPaiUp>0I#oC$ud?1W6y77rAIVsE{Y5@m&vIvwO>&*TaE_X3lY?!m{ zGx-~!i;pEYYNv*vS$i8kt{?+NB+yCqfL-r)vdf&o&mxAHtqK|!I@)9;c3GryeB7GS zo9^*})MLD^yJ5vKW`y>sa%x@iQ~-^~;BtKH%{MJCr+uG^n5GCT%DiG$v)(iJe3;$z zyI~xy&+E`^j{L~-n8GPtL~p<4poWHPPFY|jk(PTQss*j#!heUpSGf|aIUVFnD61Rg z;eU%F$+k_ikx)5eL)>M0mo<6Uki!3gN`4-kZ9d3A2SrPXmLNXeI;Yj>D(tgxfPOkZ z+bT#HZc!$ywQ=N9MTuOYtznpa?5T5&e~M#_>wq--fymgiF@isvp%J-T#I=0*Sg%^w z^V#Wg`@JNldn;g|M+ zmGgzwbTrFa7o55Nk3zwnSg~pW(1={K?4_wj6^B7pTmW4;!00!3Xzs9)xMFW}`>mJb z1dr4Zi;9v#RoTAcYI_r>(3`>1lKM9=4yJC`kZH3Y#q3tG=|Cx_&HYp*x1xG2;(P$RXv>G4ZSoyM_TfWe!@C>|Ueq zq-nQwvpU@n@ut7C+!aN(Kn)1`eOnyJ)!57WZr|szD>tHOtQjM&9;5=#m(1QHWuqAp{{HESW|X#zD2+DfFE{3*9G zwbwMe7)T2l#uqeu{)v#<<(s+n$;E>_0DZgsAUP<1Pn^DrBjs*oM>11ny81r~ eF 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®J-Y=N_BX>PM&2>Pl*4dvTzM zoh^+F5=|+1_0{z{*9bc{MnEzHo7U(Mk4a<^>PM(jynB_B^h#Y`w2MYjXoYc)@CVC5 F|Jn05A1?p^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7ef2363f27a8b6743202502fa4183362e9540def GIT binary patch literal 167980 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�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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a8421113e0b4a7a51160372eb19a6f2ab2e35884 GIT binary patch literal 152999 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 UE9TaW1e4Xu)s0izmhVrFn?oG1&1>9)rdqYW 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� zIZdbr3b|9gUwi4=I}QE$wjWMGjjk^Q&lk+^1KOQKoLD?zF?4kxgg7@aX5+Z*TNm{j zT05=fsmrVjTW&)DBHGGKvOLLF2}rLp)zt(O^$A2vKgo=$r$~AiL6hJ*Su%Z{P~JiZ zo+>({DG1Ea6RXPV;*S0kmwbDm_EBZYb$SCD9cN`M6S&8#w+H@^rzhY%UM?cO9eJ^c zU;Dt+wA)1b(*0Gnh=3el5h38CLH$Us@3S7ET%}Ic@M=?cemWY1e^@ zojSG6mqTW4_-!7|J+i&|L|GOzGSor#4gU6ST|H%NP7H!3g%s<@_>4gNXL769iBolmWxc(@|0*L4QL*Pe#Ey`n9XJ zc!kF8ZHHlfR~U@dGWnWo|<`qYDYrOBxs3~ zrGnuW7@E;v%&%k(dHsGE0(0{o)y5O->b_-y3eeV0? z@TwaOhm`N6)ko?sPqY$Qyq(YI4poFvbn&cU+kTR1e9fm z0;nIe-y{5#G89|hH53%rTSwEM)gS~I8}n9kb>9gU(>AZ1H#-qtfiR;Db&WVE#x0J* zY&J_DI%gQj=G%by{dF$0XX4Klu;%jY6Et~U#s59^ssFXjH?QWrhA?}DyHIQh7A3_??_w3;>9?o_F6RLKpL}z0Vpg$6fQCH zg^t$A7PtL+y6l_pLWthW)GPbAeM|NU{Nv;M#vNWn-t)o^Aa`$r_siYVJ5>yN#EMP# zsM1K)e{#v`qxZLAp8h8ZU|^hj5{lh0c|2s_2a4R8sSaD#O^^bR5s5svU2CC{&tK87 z9zWC_*+5GZbtI70x6K@hg~~S=iL_0vsCp&Lc!YH7I}E-rPZ8-qJo%joo8uuqQEd4D!=rakrAI7AEZq+W)s0KC0raJ^%kh{yk4oO9-7w z2FXM;+Z*g! zd`#@feRN{dr;v+$RlL9dsASCs9;vRFP14`cvtrohW@%dG;DIy9AeVb@iU7>3t~n+v zTquh?OOw0F+g4m&p&t3B2ajz%3DKL+NqJ|)ULKk3GlePU;*{s@E0l*rN|Eoaeh{I< zV1vgAPhDti7sFuF^FKzup*K!DMtM2nwzOeHce?gonWuA`%~#vVB@4Ng>)IpzXWT1Z_W6W~f&N(D3$Yu%FNA?8b9m^xc7mVx-Ws zChMmIf1Dmz6}4BFQ?9KuGS(h9nT3kdHAqzP_X}5t)t28tK zC{y6cr6RF_d?D0vDF?^OK>RmMlbPRTB%g`JN~MNS_T1JTJm{x%0hmzmIq@E$R1Jy$ zJQMebD+9_Y^$U;&WVJ1r{R6^bO8O3%_U@oG-I-39zPE8b&ODG=dNJAOJ2e5hY~3ml}KvY{hLJkG=lX=m#|_?Jz9;diqdU`dEI<4yC? z5>-_sQ=F`El`{AT_03+Q57Z2txGo2JNUpuQ0KXn~RxWWTL1DG@wvV-x zN1Al=%^*!kD>oUd+f>vEl6 z)vH3~L?^^ZW$r{DLPf^^$Iw{@G}*RcSVR#NL_oTv8>G9Gh7qG=loFDoyA_liNH>hp zEw$08zz~owX(>m%qejSx?|c62KZ}R^zOM5;j`q1%(%b^bkuYgU{##Mp{I5W!Zp9P$ zP=$A)7;%spzhZt5;EO6X;_@Kuaegu8ngB>YN{|1uUf5YyAHW80nGz0~zaHH~#6R~5 z4wQI8FDw`4W6m(3wwk9LPPE&l>d}O$=cn!pwO7gJYyOm)5?Uki`mEtk&_sHLxe<^F zG{%C1Qm@kR2itrzErVZ4sj;t_s44ABQ$ZviNvP5!N zS&Mc72m(f z>O9R_*MSilJUJtD60ZTy>k~3~FHoD;s?FpOi@RD@6+~F%S^(>sm)Sp(kZn9a=AJ}^ z#5H#%8dP*L8@q#=esrbwJW#dd|8L3Gy~WYBmD6AJ zhchKEj;fQHq<0#clAP$1P6-})aQ+5g{6OtN($c09e;FU$`5754vv+GgU+-=F<|jIx zKg*a=XQ#Q;eZ7Y8&XG^(UaKaKC|vF>R#X**QKmD-`PdbWBcFYl8JFoXOx^oP8Dx`0#~^n&02QjjIv3q{2BouO}MOHPoB*)s;m2l*25FGpk|U7 zW1$5e@NS!cI*(S*WJuv2yz>5f)Sv8MqIOg#Pq{R~6ezzRsLk>C@#ci`?UWwDigulM z*tLsByd5~KQFcDAzls-lV6X|EEEj_m-9$H~1G5B0hdL0%$#GI|}-)%>4nn;g^;YYr+hm1z%>l%+Y+aflQ2oYF7m}m zjwnjT(>QpTZh9ATL{=u>Q2=r5sDc@PMw1h0@Z}Vq!^oB{?BAV#j>jz&E8jna8Y(sIr^Kkf?hPgGBQ!sA$ufGYS<{9a4~-?6nF|Un-;1cf(PC2Xv9mU2J)nL#`Y*daC3t$?7=Py zQWkqf5~R7h&ShP;6EGM3xjJnWfGPTN&LNDbILK~jMgJ&e6opS`;M1JAcX(vm!frjm zf|g9VGwh0$%drPnN7b*Li!A!WA3lg+DjOXz)M#GEtjvyF2K83>VaJF!4{s%-I6!Gl z%=c$?Ui+qUUCeH=EGaaa^2U@|8(Xcft5&)^8MRk@qv(MKi>M$ ziycPfjaw0DLS2tnZ`$IGUgbUN52TLs4qNYS`Hl?{JiW3>?0IMkH5re<7eb-;fnG9# zSF2K?U|~TcbP5IF5Pk(EPfOPDV053fSwW8UU|>vkGHFKt`x=w9MM?O|%rmf=dl69@&c?hq=XNfVB%@=T(C^og(A_OFD8^k8uu|7h)G zP(rWLQVm5whMDix9vrx62iu$e-Wr|Ivp6UI@gGC--|+hZT@O1P(d zJnVjh4OvyJi#vDtvZGho^!}reM_8jphmDY@YPh|p5s9Ga=?%*G!CMtdU3|ldjcLsX zdc7D2(sVIIS2rGiFf)CZSS{RmE*cW6TYIZOueCq^a`?s46CdC2o*^YFTXTEBU3#X! z`d0H*BzZmc?m5r%XFe%U-4{4HhaJ?J$g}+SQ!FcI?$QBsj@%2JLHE%T?| zU>E`g8+4}DRZSGw37nOS@^Xd(4LK~lbWG3vOC8^72jJ#aY=&dP&gcVwIgjG)OQ?$Q zyXPEA1se3pkLbjgT8i)(Dqjd;p@dygaA~wp`<@NyIJm6Mw#M) z+%HHA54J4R@Av=iEvuTc6Yv`TJ>bJsx2FwOhN7dSmczCf`d=H!fF4Rx{V46PN$d9` zaZ0322djP&rBSeU6V29Fo&8AdFN`Pk`|G!u8c^?XJJDOclqiii0kXDo7cFtT#K-?>rp(8)i z$fnV19!-FeG@q!*B(FJ()s4Nu503F8|(X!!F1U>WQQph{0?H<1}dZc)Ho zc;!p8u(KcC%3CWbw!*jkHS5c!#78kGe-28n=-{xXYQXHw;}RTPsya7n9JOX3O!J6oKUuYq`QawBK+S| z*50U)LalsWy=NF^fH9k;6I);(G7FjQiD)* zR}o9`3rLA4c<1DmogP=%^LETap)m1l$$1s}Re%j33u-g> z`$2bX{Jl~c_D##Oa^lRHR&nV+XN~C}v?PI@1sE4K5d5)nbM*fACEHl!L-&%T&m6_T z*ij`5|AbLLEKl0N}De{bpQRkXn0jRzKd5+BMW! z&_r5yAR_IbqC#6j#t{_V=pNqcnUUiGfjRKQ%=KBRYLVae`ZNXpXQ9 za~6pDUR^V~%B|4tAINXblCv#Y5|Nh2S`H;Q2&d>%WgZ+9&%^X#aHXCxjt)X6k4`Fv z%G3}6jEyari|I;(dTuuPA$ac+iD$K=&uYCZqGg@_1x25*d?W*`3WcLO!@E`N_Okn~ zaQ_}v3Rv$ug6Ae*1*!OA8&aF8Qf1HzGqiy5H?^vH1%amujle2o;$~hB zoUL!1^`A6e)TYs6-I|bhC~k^T{bmALTPZ>%GXT>(+gZH>8aOaw$}~T`-i?yrY9LS% zR#HN6SuUyAFThNGy02R3a?sp)X3tn1xi^v(*cN>(@*>)t{O`^QQ@i)dc-1NG> zy>QXkP%Ki$)@psmm|k~d#ezymfZDVefE|RsJ-d5e)Oh2N4>Pvl+s0UZPP5kfCDmr* zpVC`hkk(lrh{`rTp?~!|dF>hCBz2Z};Z<^*<5a5RVDD*S)jR08Y z2u>KD0kIAT$`$7i&;DvZ+Xko;e_hj_(4Fl8ZsDu2UVQcFpj>N~kh-xzv9#)_03UyL z{!xjAqd<#Bu2AaVUe5&!_mV%8AePSA!AHHQFou!e|ndVn8o?#M)J@J7@gq()4kw19n|CPK=)Km5pyPh`@0Tsf&dPlm4h1 zx|%eY(cgyIuq-Y2DBk)f%S(kz(Bbhe&v5=+?~i6o#$0!}6U4voT<<=3$<%%2JU{(I zjRdR3PwptIgjrB=3mnhPC>zn`^1*q0;kS&@e|&TR=c^ShB+*do5ep4uLXEeky7yU5 zS}0%ja{p{SWHV=#yI4^2Z{0}z>--ooQzU7WHnM^W7Cx{0P1b>qX^6-p+i$DSmGxv^ zm9G)#g>Az~KR02bX9Kva8!!rkwY`J-$~8?dB=xwfjoM>M=xw)G3#a z&R)fv&9U=~FeUz4H+uYm zM_ZtD*yS7>->gED*?KXqI%VI%x|sR#;8{E>3}UW2ZUrcds?+qQD<98u9dS+(~HlRX+{Wd z`xKx3X3t;p5GKIh`B4Gs3If?zjq56?F1m5QRIT(*h4Cdvnb9v)eYZVl4939NUAQz? zsEyghLisw@%NJqnfb8(Z)H@_vU7k-m@deEX)O{&!DuFo+4+6r@oJ*O_#zG=x9jFL> zs2dw^^UAx&!NC*DM`bBD?w?M9r$(|LF+UTaFqZhwBVjnK(_)!<>&1PP3((S{H>l*J z>u*+z{rhfGCo@GDBb-<_*f3Wz_hY;OnH}UEav#?z{p=`sp2&r8!gMZGHtqK-5ofw9 zn@V2*Aq+0*M}I&XveB)1QcNtUHTrfo{+xO6Nvoh#@U9RP8oDb-`m`D)ic2+MF>mmJ zhFi}6Di2>dFmu7ErY3Ve5BE>~WU<^^0Id$!+xLb%zO|?kuEW+#4`i4lzebdLnR_Za zV;R*`Xwe_2++7+pCv-&j8+8MiEDALw29$OAS@5Kj>f*_?Fy|tU{?4x8UB`|w$1#G+ z9?D}}AyNEBM$uAvK53Rt^bYLhfxd{uo2jJ2ld^n1iug{j&%^bsk6KvHG#HbuaH#Vr zy}Ar^Qo~w%Rz0lN8Xq~cuDdC?2`IQVhLv7NDn61md7I8Yj7|LK0I`n^CU>?;{x|bG0lEX1zoFv+ohRyWuw65>3_3^Kg9yZKjz2$OISce z*z3J_2Yu}Jwcmr#%Nz150k4Fp-sp&&pSmVve*kjXkv6B9EPuBx$c)wgW4+gWi`Pde ztjarGg=04B#-URgO2Kiw6QGNHxkqBExF_Nsj2PHE z`}G2e0~V$~20{kcxhfBT`>U9a~2ha!?8&>*~Ch^XK0TRYr@rUgN4W z0;)T4Rz~n?y;n&-pKCaE9hO)aHcuuhl|cY|lQIz#5DbV3vklGq?~&>N(_B?V{%6pP zt5a|Dp*Z2lC~&4(MxNbBc4Tg)_1bg-U*k6u8;SbZR)JRy3W=zMNi~iW1=;Mzd)LhFMF6x~IZ{9{kSyP9JON* zGwj0*IoK6LT?OYlC80T$Y<=WHr5!r}4W9nmPw>6T9DM}xuGt%u`#iAX zAf}5{2Xkr7tiaTz2Tlqs?#PDoxseP6Q@A(_Tr2F zyoi(|lT|A^6-(kIvb2>)N8$`kxXH8Lbez^xa%v82C@Y>Xm&>HC(y%|}Vw4qKyTR?8 z6DPe9;}E*BrnB)!rdOd`R1Kt9g(Jho&_b?K7mLa1rZJ+F2aZpLA zyhfu{zjE7Vw3JOsl6;oAhw#b~TeQ9wI^S1#qlG9MM z)Rcu*Myp+K-W&C#()lIrO@~Ggo3*}zU3RJh{W|xAAy>JUnj3a`*GJL@5s?b#6a?A> zI>_>&qY8e%T`JjdQ5@#q6f>7_U3w$CPYQ@|Q^?dia?1)|Zp83KO-BJ2I9juNmiwLN>k~l*bXNoezkSngoC(TU0BduXoYPevE2RAu(ZGye3wEfq`X-M!B@l zweP|C3_W;I>fO&?p-1`!f7L=z9Xxl7*RaDQ^hG+acjCBt{j^mU191wG!!fbL)Z0|9h0`=85`|g-=RB_+j}APY_g!(*sN(1vsJ3n;ejpqRxEi_4 z!f>@%5LSk1uU`<`)@4OM3HtY@K$-lZ$?%eUD|v|^>px_t*62_ykvH0} zm*p&$TpIC&K_y&3CCE*n!i7)lKF4otg&wGjvkKVU%uX-C@w;M@{;?Wq?P2E$I(pT` zLPRy<6In=`;JKHNIoK_ux%p1VE9cB7RG4t(3HM19exOYlG3UYk+bgk@u_{?aiKU z{ALyHi@Ldm2{2m_t7dOTm0<$@Vp1ZEW6;OppWbH2&1ull2ez2%!lQ{>*FbRgVaGgV zMP1DJeA4QLydJIVaO1i$k1uv*5_)v~XL55hcvsG^>=n>&^e^HaiTb&ws1N9`9>>^a zEd@u|t3{=Qk5{eqJ2jLu*9R1Vpo!loAvg9I9q z;?a+jYP~79EO1XXH=OL4pIy$on(`6wX}iftl79|N?RJ8hZhl(@ynAx@ zeij(c`)Q;3ySv*8tcx=1v*^5NvaJs=@F~lNu%?jd7h)XTMy!uB`h=V(FRl(=IB0Y^ z(`(sNu`&6=U3FN)oqw`Y*uxlu8nDj7;0JQhYJTc+2XmB-|Fa~*R7wng?O5FT5b3lHRrotc{_+Z zEgeQK_dAn(Q-JevQA3r(4>i}a=)tzjNx(X3*ETIaNb#`6-NC#V0Q(OP1U~Q7{*{>|NBmao#ucDd;3sTdJx4J)aQ|txCP0 zcXUt>>+KA{CS%uy?iWgzK40y&zQ`!7!tZM}-^!3Hf<^Z}|L>kWY~N~=oAjiRC>M-& z%SI-Ytx06>l#_yGMqK~uR!VWkqb0UD;3Pj6WmESlQsV_qFJ{%34oWEtf79EU!YHJ5 zhiIKcow?|EX8q?CpO$qR7cFZ3nUPd|SjvQJ2$WUha`$9Cu#ov-cVm4<4oVfXmL9Zf zWWY`xOjORr8ke)=^7N-&^ah9f54j-)p|mV4wj#?0$*;%M#%0d@SdM_)@~uN;&0Syp ztw{;N!LXSCm&c_e7$_HP=Dhq6@OSp!=z4G5BGbT0kaqBaRs_Wtd6H}le0ncMLpkA?cyXn5Lw)X!U>YkffH>qYC#*fdcEw-=`?!RK7BW zbGO-+q0T1C`P<$lV)50N3;$+J=_UaA1*J?&@d|zyBevm#->>>Yku}qcVIX)+oZU5% zu1^>9CU>X%8hA%fs4?hHMXgbacqY>h?A7@s@Y_kx1_Q+I!vm9V6)EDq70NZ;CR+?O z_PiM+!~M8PcU`u;kwRScUz3u*`?(v;Q=X~V?Ojlgnwy9Wh!92nFiU8Ne%g{mcy6af z({Ndea+I2u6)n*tMYYVKuu$}&XfeN3u%72JW&u2q`4y)21hrFL_tV~DqM}}de>mMw zBrECz^GWjN<08&xrAFbVUx)?TP5c%FEr}YyF ztFoE0wp4@QJkZtFn-kdI789D5f zay!Z9tj&ZRyeTDLFm6SBwU+S4&1pMGwMaWaP_lsWM=mp|>^F3Kd5D4UK(`vOl@w}+ z>6cY@8n>-ryhl>VULK%2(8*|NjZ}h=WR^KBHR~KXNmuyBntTTbw@h9I?>;Sl zWL(9!#F6Y)s7tmg)1=GZ%w*k-hrUv4nt_Uv1J z!!Ft`&cE{aj2dYf(0|>M%?-#P)bz_b%Q)1sA5XH}y}5STn|%fT!Y$J+CHL9Hz~@_YNhlGlci~Bs0~$mZV%I}jx+Frtsn|lTXJtu_Id@`*wmTlIHK_=0jh6Mo=0hBsVz1Ni$ zeYJHkrj$0S*)ytM`||&#^<;FNUo#LCgC$es!V`y%U1EyT`83#MHQK+j1Yh>!7$+%; zjX3!39~;4Qwb>3*V!KHPU zK9INf(B~E{3PvPUE88CDl+Bx&d+>?+x7d1)f#1vk67f~RCnd<@vbmEad`^=N z2sdi_zG+8MCk_|7yw@G;4TMhxYbti1>upB2a#BYZbX)?vzz)IQxq<^?bnSvFI9cUE zufei8-MC))vjTOUVyt9>jSaDC}p3j~xFc`}gkdL}FE4cq2U@%|oD_igoLKvnZK z?}Ppos+k#QSssmB``QblK@@I_lkZk6~&`2R1vWWEfOPR*V>bscQbi z+jWW^g;N$&48z2ZO9}$~<(rK@bnl(&T@6jB_O;oBpYc>jo71NlRFi!b;+AwVkDgJs zebmJ>HHL#JO9KQ2I0GqkhGZ2^kRKwQirCfwV9E#fd5h| z8A#Qah99KhDum~>IZIO&&H+FiosL)5@G@;n3I(F=yDv5N0V3?W5yf(Domc39XrXv4u2=RVXtm>k@`OP&Ii&j6n0Q=n19kH zmdZ`*NxNmUX4eIwd{rG8Nax6was^^7t6k!4 zU0xBH@zyl0W!vH-15%4D$^JL<>7ht;Vv7R9eR+|g&XysO?31!58Ns1)XbzMYQ~6pX zGg)sV)26~~p{lsFWy<4Fn3krv z_7AWk6K^gFJk7VAhEtE(M2j{5Oa>37QMu_inG11ShEFQi`S~?Q&#~T66JY zIRHbeyV3W|JO8+q%fsH=?7b?7IiXljAwnivw&gucJve`@eY}Z#ApZ4wtWH{5>h?w? zl*o09&ZE&CwO7+|hEEz+RH_6i41j1&_{LSXASnGi9+Cab+cR?GTE4@O^o$*;?TP$D zTveQ<#!;9Xfggr8WI&rn;zB^x$X*7UMvfBcjVpR8h#_aqtfw)E3sYSmg^5DC>JhQh za061ByNZ_&rlI&r!+Cc?gBwI;lRMjPEFw_pX6?@oFz~MCJ=tAg}cFyfkNUwY_y2 z7=WDw%|c$g9T^lwTQ`Nyi-(kzez=~OC=`3;cZ!ylM|7JeVo>Yr#;+4J?BG&OF7#eQ%F(zHEo1HayGKi2pRLLW)k=uL%g_VIjH}ZBn@{**i;z(XtHwD z0YsMeb6O*!k0Y_VwE=VaIh#VrRr8Yu?=o1I!_PBxYU1<<5E>hw4ZA-WW%ef$ba}M1 zV=!TS-?&%|CE`D^Zp~eHA8b~`*$Iq>dMO zdho8fscqsWFvXho`3#QZv6aIvCN9=uMfC?cm7ntwC)sL_G*9VaDXpcb?D2>Z zp}7LvSwEHff?r=|?Y1oeZd#3a=Z%m4*3Lh-@-U@54b4v;_IgRw;|88ew72%h7R^PWfCH8@+s>g2v79 z)`b3$1In(8+oR3Ms}LP7dEe}?Z|G(VrpL~#Do#-TRP=J@xU?yTu>-QXdj^D;<0WYr zIn3=@*C$c{#p^4)uampSu+g`StKiPO2e7&D%ENwj~e8WI^wmVgxH#lH`uNfofd7U z#t1(ZCBdRHN4BKGn%~_bW6bx{_CW1ZIW_NEZX)n|#}}_O2lmc+M0g&wmu%t!htjK4 zj5pB5&$a~!7cb_M0`xLA9}FbrERNYWMp{2l+tsi=Ju9C}ilyv$< z%8zGSl$phq-hrCojX2n{4z#W9aTCU~@$^4K@(&*1fSHJIj?;B6O*tuha8aOG-5Ys>2J&4 z&R#WHU5V905w5+ATpe9rkIZV8$9-8JtiN zWK(<8bo;$hdX-Z*UCjLSv~ZG<48l&uXU zwpVPIAhm`~?LfGc>3;OfLqyazg!3q+{&;U^m$q1+Jx39|FmyyI{qLU55~raciix!k zaF7x5fX9be3fzi?A(K{8>o*?_O(Vk3=qp+G%ruzk{xnhpU(0WPZXhREZ{)cJ9!gQ@C8`MW=O~Pjc3n zf7v3lxBOP`5pQ$Vm{rB5nEEK>Ux8_a4PvZbqh$=Utm_+T zM{sfbEwiF*Q)e~to68A?*fF3=O-~Asx*X5qYfFu3+8muB(U6b-p{SckIlFYVrS2tU zSx5lP6y`8H@USB}eJaUu2}TcAkbqxQsLMz5#1G9p$_381ul{$>=a}J>-CX3?e)5)v@Z2 z{|UU&57L+XP|($kP3#f<@c!>n(|EL6*4;=@iv=E60+T@G^jCP(bQ23;1&i>#jd`Cv_1^#V z7P6vNvx)rcDh}7JCB0$4E%VSdntFy=e;(s{?tT5IVsj0}TK5$aFmwp56AYK0jil|( zfljoSGzadoVMKW&fhuiiLJd#fO-%8+B~(&S&ccIOW$?;z(#}i>@|-#fH@n*H`bXYE z=N-M3)y~o2)qJa5-_xfTJ_+b`98NdS9X8qM&>EYU%z!iXy#!3L%j?uy(A=RQ9X4Kq^Xd?%(XXlgHqVLpvDb`LaBbwy&1 zul5}Th4a2eg!?rIFs7~?LM8yVV=?q0$%)f33aywTzOYlLp7ndkc|9;W0`lXABq%NY zq4CZBo04bI;9p_uI5_Fg!|vvz+B!}I-1WMsg@^271Evi{nVP2P71|ALa>MMQD< z{b!5p9DMIi<$G;xRwI&lGn5?JgvwSKs@nRxKpVnmww`r&;lj1N^mny7Hv{X(>U7kDh47Xu|eT z-@0CB^FA*h{rl+bq;T6>MEg)BO@n5(Tvdretlj=Z>3EIs?ievP##5=)9&{r+7>8K& z{@bq9$(BnvI72=yLDzKJH##+2AlLkvk|H@^bGNa_&GVm+MkU=L+2RxaU${F!RH<41 zHSIE~wrCxrYAs8-Uulu1F9Ck{2V>OnFI2z8bZAs=I+0gAPzr(F;WOXgN0d1{Kv^X7 z-AK?SJTgCjP^~9@RJB_wleURlX26Ptdz9f@)zf#{#x9#v0-h-Eo$d7@Xt|Fq%+ zG*hW#{_~YKcGU9HD_}AEU09qCt?D_o3wX;c5nR+En zV`1Cb^(|Rld8SPOe8bJ{&s2*R1$;O7otgx2k7PngO3r4mtr z!RswBRDc)59o|&`^zJwM18{OIR@8qeJh2Y43Z1HXLGKl{J%qWM1ZhlpFHUDd7yC^s zcvZQmniX#WM&vy@Z6C8JD@g&S%AzJl-}Pvn4%tsTGJQ%*IaznVCk?eSHOZV*w$83Q z#~{q@Q%ghK(d14rx3LT-y15qn8GBkPGBgV-veYxmebR-#_UrdbJ1j^3ck6W_+gDV8 z#L;*Lz@pHd^N5LN8&|1N{}|CyJ2#Yk-t=tj3c%+FtO#?cX3E^O9F)Xur!Jk*1r4Rw zcXa=&O`J3(Ezckrv#EH2i)6MUW zPPICVt*$qGwfxv$v?Sf7qQh7w@m%N6D{xg>-?StSqe`QVO8h<+);ergRtoaUEP=fZ zWQzB@^`pEl`deL9ZC|uvR-SGO4R#~{BqTv?`hy2bijuZy0J%^sGk2GF+}!wAy;c&j zk)T7?wXcS{aap-^O`&c4&;kPdS0g|Qb1xUA{6t7DDJANJf?!Tz}8>H{MywF`>hD!Zg?G^GsJE{R);53#rCB+3PRs3(TmB zC4C)s8wbKOcBIXTiRjic-D++Mt=iUf=YVm^8m+pIrI?9|=!#)2xkRJn$F{=j;l6A% z%ireKzN%$8q=u$Wb(Tk=WhMpZbFGRc=PSrR+c>2|_;Xs7^6KY0Ul{JxUhi^?T4kS2 zr+~lwnSdG#%{csg(7JUo`v>Z~A_J%`&Zg2qPqiOjT}xv$$>&8h#L zx9|1oc^WFce#N{RJ_QsMGWM34hB>~!D;6xlO?oqT#T>ebn{O_KlMg{GiIW_(^$KH^ z4^+^oR~IO=@>q=AeL;1^(hyHNqWYO7PSSXlSHqW6D8GDFF(Qx9#jRQ8QiptGM&x+| zT~biPN}r-$G0psrP1u2&dtI%*_xYq4La2FdX7_3zu9rBwG{Wv-Lw$aw9L{)1@!a(r zqOF(iWSHWnhdRoxv;*tCbK^HcK(O-Y1+G}R;?vU{bxUD&{Kb`A1ZP=HrBD+M|MCCs z6)@;21$T-QqRdediZ4Gn0j{5+!Bak=%T^)^tTeKe3@4=y#5Wwd!HSc@$~kp6CMZxEe0 zbk6OTSv4tKIBl~QbueLs5_Vv*A@~1|6@V|j=DKhPcPFB%W>^Au6CF?yzQz3zH1SMAsdW?l1rsO{s|aXB?&~uh;lsegAC|U?k~7Ml3aa0TK2ytgM!Wt+DD$PShl? zmZu`5tZjfMvHzjy3q%57Om*g>b{B!F+c1vZMhcj6gyDE=FrH6sLE1n>Cf`2D#gq03 zp2J!ri&CO3&dM2B(bzHdLHwIwm`r$xqdAz){x_!|NdwN%p$&cF2zeU(lAUjH9;q>g zSbt$zw%(*wMw9JH-y3!UzkQv0^fv^vuF|Cy6lN;WJ9oYR%!e#+Cb-V~=RE2{I8p~>1iuS$Eh>22k?GQY$b8NdXF8nF;P>Dt~FumX^*UC^nb z^0`M&P$KYnKAK|nh2?4eyFr2>x#e=c!;Cqr+K{<-tt-6+((tTChQVBU*DWeHJ|$Dz zqP%v0`>x89%X2x=!qG|+Y`?j_>g&89*-4*s!Fnr4nIQ-61+e4`S6u%YYeiA^*{wcm zcZtzqWm_#^$Tw5mimB#dy<6H=A(5goR6wZAvOik)@dndm;hoj4^#nB*?o0AiRTd{R zd2GBaJ6{)3n%KBy_ElRUa`q_bXa_jE6tN3&q(Dg>S?sbboIDlny0bypFp&vWMC<0s zG75t$QILKYMq9CvD~Zl%zqcO9aG%}jdBNO##L_(d=*8^uez{o;iioIY?7mI|XOWJc zceP9UH<1~O3hCfeGRI|aSYgq8$SzG*9q(pq5lMcx>e6{R%E5K0Z|6W?_j5 z0O)GEVY9F^{?YwCw6yst^TSodcUyrF|p*pDlRQ;~!!Nr`3)=#TNlSsKQ-EL+g zDyujRe`^)a)O(_d6Aevs+5L+~wYJmN3q|GKq0R!Ek?yZOv#+P($`CW>^TOto{5`OH zw()hl{NN7j!>?WZtEB7X@d23z?rW`?ZHP7UlZyOENHoRqD zTlW;)7s3iF`Vo`cwf8A{#(ns@_(DD5Uk|PtHP$OTj{-afCS8H*XwlKD5E4c=C~CY~ z`zHrOGlB)6)~lOhxIg?A(x~q`RcQO1K-1HDS5o-`lPE!vPR-#6xpGqZ3wD%R8ob1o zBz=-9f3tV@YiN2x5u(wtw5k+wHR=0ZfT8Y6uKND(!iBG)ZvM(DCZ*;v^NAXhw6cof zepC?;?)SVp`>I1ujbZ3*1f^I2RFh^?KGml4UPjz3^xKnsL@Sj5Jo+Du&f;jSC+cKeE!`r<|6 zH^?f)8E?-iX)Ed7?W8E{WUq0hz`%^Lo{;eo;d_vT{!mU%DfvdJdzmId5UZjND$r$J z)%%M{d6-dKB7Q0@Bd{suQ?z%S_yUBVO;5}w@;Gi{_7y@F^ZuTFiL z-}!re0=FQwr}kMDT6ep4RTV}^uk?vvOq)q)gND1PVA?M2&&9CH+HmSR?{9kpdAZ1A zu6O9FjM7d4hF}NVNMJA3gb)zCQZ62kCVkUt>NK#$6#-B^&G+Mu|22m?r{&veAiBl+ zuR_7dUN&;5xtT!=j$ ziEaCAe~Yc$0C$)KroT^C%E0fdFSE;A>H`3_Avv9pUIF2$;LFa*x4-oBH3=<3@9+k( zvUlAYd;22P(F|+cj9!}2NZ;j~y%UWmGU)QSkw)4e)`?y?2^N-G1|P{ZSeO`P>0B-+ z6th#9Nml^21TX5ic;5M|v~S7usNHemJ?K3;1Vb^|lm2SD)xA6g`ltBawXl~8vR$nx zx&>W1kHv3m=s{(&*X-IH=Q)oXJtWlCEVNdm(jcbukz}Bu_nSwFwX;K%Jkm54{SD=G z>5d*G_OjR`cwY6-7*OpxUm`|ZjIwG(U!M7zWyK|HPbEMQ{vLa$EC8lVo>xsPZS}nd zE*pL!srw!dBVgtQ*UMfBtUXC|o5XYOk3uTyn6(uj-|L)C^ zX0HPbf^%(sE=eOwVIT*$V|O<1@q|-+Xs^jGeA{^ zhrmuDXI7fMMAj-_f6NxMV9v;{ou)6N_S5{YE# z(PB-b{!h_)$5ZwHaa>lZBzvojY_jJi**kk)Dr8===Ot9uMRsv7vbU^j^R-u8TU@%C z*Cq23uF>!O{^DPc>z?!Zyx*_a^Epb!l@%x*94JTF)j`gR6oSw*l5-J&;Og~Ex`}wl z))`0mL}Z?^1X|Xw_rH`yufG)wvR~skELy9S7(TGv>`RV{#d;mt=@<%=V>tDloO0x5 zZ^~yLo*d7SI!QpM0)Y4pc^LNx8=-^qZRTfBjF74p*X8*?S_0+l{Dz8^swUu^qs9U6 zeJ*b2CKb-Y zB~k9-y5k)CpDOm&$J7fya%|OnBQn)r6y?7R#;Pc|fBCzv41Oc^mMw6vuPDx+=GVLH zMzWW)HtqVPp}6jQi(N~OdFa=tGxV^vG2X1wqx^xteYtkt<+YTH6Je(>BQ^m6MS&%s zHOCVCchAxZi;n(^Zt(c74Y;v_)>NiiU!TS5*P6oSlB00!&3Ev$#LtN@m7`XdsTe1kQ%|J zz&Ulb9IAVclm`h(nDv)`y@wz&jRj*^Mff)C%jjA`AUio33&=n72t8)4pk@??0yzfj zOj3%-&g2xbAC>U8U_9PE`3RC~4v76S-ki^CGcP@O6t+vnM*pknT`ayQSM}_|!6*SQ zc|XlnQ*qZbV9IQ-I(~DV39G--L7xPD=0etHV$=JJrA8luF79DknFPD@m^fCkC_{+O z!|L66$l%%YC3cb{Z52H_fs+ObzbeGjS>p$4G?6jmbLw>bSwQ^aj!Fu5ErqAw02kR| zRrY3siGb645aQLagNn`jLwgRvsUEWs+0!A2aUGKmUy`r>_Fbl=h0#m-z|@2`&T0%* za~6;iF~uB}(#3crI!$tz+99UVP1fzj2UXgnf=R2@PC@2e*nD{4oC5N}O5Hl^P1@@2NN0KF{6e$R7qrVpXZsKSpJW&;CE;EIRjOBn9DN@-vw)5 zTo_+3yL?7fN%f_#877I4fV#~>wlr$vHN$e((H^bE^H>tYSQzLiaLIB{YalkaIbzo; zhjSx7pu#@4Q9ccKs=U^p6FcuZ06pc8AIVqK`*Q04cq_XK%hGxh+r*5}iQ|b~pZdOz zD<5O2Bff5=8(>M{OBE68#^-armSP>-tW}+iyQZF(@09k=3~|>9Fa*5|1F^l`9S93? zk(#w+H5b@FIQHjJZ)}@ZyB4n_{GCsPXul3hLqA7|6pcU<#F;avx4$FXtsjBj81WE% zx6h{9j2m6wMVbRRzJ2zE@nQ@zs+3}7T-a51;v-s$3kg@>n5C3H>so5{+rIYpwcRGy zogHg>_NG$jZDI2X=Hp2h;Uga(Z5B%B+?B9R{S6H;R9$0xItIP}_!hojT6w!0qd!(T zJHYo605KN?slJmA-Tn+S@2%<@Dyb(iZ{EbH)qh(4QhnPnMx1)bKx8Coj^^S4MOFN1h_5X@@CboULg@P7Zz-!Vc^#nDQQf5?4~HT+&UL(LNeCSo0>qHuo?ZY}JV z=rQbghsuF^(v$ro;vCgghO0G%_BzR|jU4}daTCb5g5l&f44bx&Mf;wgaq5)OGBpIk+hn(X70hXk8vJ zr-ZhHi;&VlTt<_*?xS;ORTZQ-+uOW6l#UL&#Jl+&v=deN#bAD_*o1Yhh+2ei-V`U3fj6B>=<=9|7Qr zxkgbQmIqZ`f-_Mz$)tB#!=kgR)c~0Fh|uRnXZmpKF{Z8i-!FVGHmjMIs~*^PX3stt zua}v)581Nl!&UXZ>@VnhXClOZVa>x}94SNZO!liyvl1*v#A%wo(KR+C;;+fg@PtAp ze!n}Tk~xf5K!+!&1+XvqQ(sdyS?K2yUUQ1K4v4-Vlq3ogi2wvPw#ul>DHi#tvO5ZT zxl1jhB0uZXwRz)yE37q?qrVRbM4(~Y{2!udoC)hK-MNjc(|7i=U-t%{&6RU}?jLO# z8EVcfUjChK)3Lv*htCg5$uqZ!yVBM-x4{dHcA^5Ww$qD=fsE*=gto&#n8_Jow^{FN z>rapt9Wj?{uj0m)|7fW8KcdmcU#b+(I@P`C(9MsfQLT41 ziZ#J>kei-CSWv|{?T$EuG2K>S%ou(~1uCcWtdP5Wv+mE_SL}@ZhC#JaLB)kAvifyP zxdh2wv*1_j>bH(u-@KW{B9&$5)If5Y?nr)=%&&&c!5XMc>4Q9zYO)yf`)#g|_p|oe zM3m1=TC{y2<7{St@8|6^PC+}igkZa$LwWM#&(aty%>|7~9w~bbsr?k$9)egrkiGH~ zcNRmaIlRxO^2)5tUoaO>HuPnf9M8)o+^r{dVp_HpZc=)7RF=TEC06!p7JmSEp>3Ky z;cL~vUUw5$pk<5Nzm{HtHq!a+2z^Z2bqzYHMPW=x`~q~MICI&qmQMVBook3=y8b{8 zhBn>eR2`ElL3m*Yu0CzM^NxT%Tt3#=$>h&X+0bTDjQ(y4vN$OWb5xCNPqS83vg%ks z`q{K$39#mgXcCGva^7tGVyWp~dNHVod|RaQ$3fNLZ1x+w$56vFTs8BHXK8mE)jT@iDF+kj8Eq_U^&=6dplsFD&qrr0=b4oB&3r)?P~| z_=lRzR}yqr>tl_f+$D?N`3KNzNfsmNrmuGHbr+ZJI(yDE%b1#ME*mGhl;vw>F!_F= zzy!TH5OshAW!=v5aB&df_D&S5aA6$(Ep~yQ;TQi$^jA=TQ`@tma@z$sw+`1G85mQ3 z`(=-U`ogUE0)Pjm%v#l@gPPa7kDZk&QHekFYse-qG7#<^7BkjX7H%#i9SS52wJAUd`L2u1;_2^2(GT9jn6;Bpkf%6 zX^9x!>X}`?HC>OhFr{xTFIv}zzf)_akQ^#zU3c2ck|UW`g6 z?)tW>CDp9P&IQE&;?i_-4e}ga`+s|5i(#Y!U2|yY?IWDQ7KB4 z%4?{O9{`nKpEx}d@ob7S*$UZ~)Srk5nJ?*7zBeP(V*01p&7Bebyg~zxXc+toP70;Z8w&qm7$KCX~hUGYH;;sRk>>=y+g66nUpW z8ff85K^y-OdDYa{L(K4gZ)*?o%XRb|eAoi8*aGo%o;L9}fAyV^+tY>W7TMc(H;ymd zwaquj5T?J?B;4#+YoU6n#^1TNUBubpAvo~-h&5lc!O-u91old^j_y)rkd`buYwUUK zH&Mm;59Q|d5LZ??HuLXa9{Sz2-Tp^((~U4CguZ=0Ps^n`=y$8(tG%02n?cd~Dy*2P zqd&tt|8u#y7ms;`7}IQtdKaxtSils+uYJgr!Q+)P#YTEASB@g5CLfbDn@T3?64wFF`Jx!%?pgUqM^LzHHsD|cNIo*6T zq!sdcNVXx-Ky6)Dip2NE|6SZ6B(2?FZAghg$*1?hN`>o*He_SIQUtkH9+BiPZX#5V zNMxukk?qO|Ha+ay4|t@{~_KB#+*$!uERhjAx3gHD^Zai0r5MrcRag}QsV_e#Dj zj|>7@MSTwkY6RKZC~mDTxcdDyNF5Z`$Zp%i-n8$=&t?jnd!B~NsqBz1LmC*9Q8iJ4 ztgfgG*A!+$FKx$no`M&^6&6Lyv*}&==1N-3!BiWn%%MCOokKuO+hD-~ImJi3d_SE% zh4F+|6btXObkqXc?=TS$h;)@fhVj)Xx8q51s)srQ9beC8gzGc6^oguPBC1Kq>0fOQ zFGPrf=s>bL9XbS-yNCVXk-L#~tibn&@o8W?sC>^Zd}&2aJ-vCp8yo_5OY5b9n!dh=Ol^K$f5kQw=7gV&^|b*CsJ5@zAr$y?84j z_&x`LoU|Y%UU~)57zvDEmteJC=(Bl^_&9Qzk=-(FhzPIZHa~-LOQH0!Vg#<5BU_=! ze9<`M!a_d8oi*KQU}^X|H)1g1j_%366B?U8N?S)|b9t2LI@<d&Z9ADJaiZWQ zs(#zD)k?r|2i--d$?~05Zk?FsYpmI1yWq zUknUtcs;fHN}YJ2KbSyp*vD7G9S%oMR%YZhn}M#Gi$DNtDT@dUlXrRQM^6k@tob=l zp?(yg7j{FywiWx3^7Qr9G-T{CttppM(qXv5^Db(jTB9KAbf*qq#yffEJA$+ht6%vw zdW1#V-5g1GJ$s)|OHyIw%QQ@kzoZ`KU$7r+=6`USfhQa`q65S2^-Z}Si^(^X{is)g zg*7anO#w9jAjVcfS9^Wua^)K-*7A%l+lWNnrcAU1qQ@-pw%YkS2ahm?_+Za2%T8Yz zsbJb@e3Nt_eWO673BbT=-Gk^ z1)4_np;%)h@?^9vC_P}<7%Y90OSnG}WAYCEQ~5wW>t(%>Mlaw`N_!oe`S(!BWK3BB zSU+I71kQ_m+n?9-JgiK!ReSJr{*E};bZUYXNN#54aqpM?bPHCGiv3(u3zU_6Rf>&H zL;BYFB*kNIRYLg+4iGQVglb~5uH34u&GJd*P{312glXjNfJ3&VnGPZA>957BlUYc? zVU6Gz*ojynqcc63c_1qAAJKy-4~ms5tzmU<7MsK3l?99%yH>;qgRv8htUVVNSH2<| z^F77b(E8Rt`z$)qD(=@VI>8XF_4) zZ=u^vM1StmYja@1VZ9PMH!i{& zsS`UGu{9sQ=&2sKu8cTMzQyauc=FK)bn?t?V?A*p9D|Ie@ih97%AXS&9I~r( zZwfZt&n#A8Ro|)<;XG!^so8J5c1bRgFS9AiW)~Hx;C8uK@=02*YOOm@*mWR^Mtae2 z*W=LBxF+g&Tgp^_p$P>zMM>Lr2fwnu+W_*py=K-Nh!t|j44sUjtj%p3|ITy&sB-?U zxxr{H3Mp5#&FIQov}48D^gtDs@zV+Oktz{nvl}&JrJ+N{;rXSne9nQ1Ca3?66TYWh zVsx8@Db?0e3VqzzYp7e!yf^$)AbfGQz{jF1g_(6$BwHkrJR_*aBjwwDUeqSqWV0lt zQo{N*JN`*zDses(e5(DOei`qb>&F(7WWI zzx5-8iX(f0ZwRidq70HnTXkd9vHCBY)8Z$kX+-;7Y ze2J3Vb6%gWmWA^}Gilw@`Nb}!Kn(q0g$-ir*JF&VAI*8iRA~1^n%^c9BToE;?;Ax5D)N3%> zvx|VTz8YzLvWOnLf}TwDuY^Adv=D`ow9SS3V6V5?yD3_&B+}xihXx+Q+5`8hPBueb zG@pthD~xjFGWdb@1UT@5_I z&gyy(6JAL()hc(DN$X@+Ee4^EDz~-P%bvr^oCMq2h5#HlH7UCFAnYi7$yP^g-I#-Z zRPN%Efb*mg^x}Bz30P=&z|7RR-al!AMY4teh>kB^o@KG57u#h315$o6wa*-m?g!n_R)yI_I~r;rm@ zg25FBAYCaP5*qSc4s!4Z9+|11A3F0f4Cq9NRnN3&y|HP&X+|%wknOPZgc#kEYX_Dj zlqWxXH}=LAS!%u#^9-*G1t-_;oi0fIms(i&bJF9MhNkTAy_y7*v>9nn#ryH-T-59o zC*V)l&Gl4^H?+fCR=g$v3G|IUt``LFkUQyG%aIwcXz;sd1ea6;2MGIB-KAUHe_k|Q zs4$a|?j3oA*G}nCMAeSJd>ZTtjY&q)os_t6wdW6d3gpxxyM)Z)K`>`S9shYY>p2H1 zracVHfI56@!-Qw7dqEi)r&c?y-erJAVV-yLdNVX{j9O%^SI^{3(-`r*0>AT(*{tS# z_Mf7$Y|6!zdk&Y#Bvipg6f%7Mlu-bv4)y7GYI;$>T)(*3Rx{^Kox4?Fl8ShtpxYBP zen!}qrx!DZ+C)++J)@HUq4G02jt=GL8F8s-g}2E3W)SvBc&btNCVYzhj}eHhz|sfK?S* zwUOAZ)bw4wvsoIAHj#~*t?Bf;&n7I?Qn8^kpAkvZ+J2BHW9<3fpv;4%Zwq=un1Hwo zZ%dPECR)kTr98u9x z-0gcQK)}_WP8Dr_Was~=n9XXlqFleTDk~Xmcnd);Aw(av)j0iSyc_h^rcle_1E_oO zV{`lvgxqwX7G*;=M{p1D-t`|$B;L|*#m_5Niqv;vy0QnpN|F|&7f?|-Te|ZQOa^mx zjnC26v+b4Gko#RsG33!MM^5g{p;w7-0c*J*`Im2^IyIu!$l{HY;K}Bnl6NsuQQzGy z-gKURkQ>=73fOx-1SO&Ezf*qQ<=Lc{#z@2J+3#P-nz<7I-xF#2(${Cw}Yj zn@-#5b7|{4AiNL`()jA8?^PWxl0Gk6eM^i}J@exy$;JK=wN24DP;g4?>?(svi;*=b zQBg2?HNI@hD^Pp}Hge3i2Rwhp-+^uJYd!qH?=q98(>I`%@ z2(Iaze(O)#d%X>!-pN{MA}HN0l(Nm6ew8viic@rFokhD@wIj`eY25bZD9+{>9;w#ycFeh^0;lA5gVM78H= za=E@+BHCZX#h%hEDTTx4bFIhG915<@e)16xc3bODH0|R3GB5GA#3Uq9ZL?oBS@n6X zMdfY5JMBm~M^kyf(+8J1f1TX^l;#I(X`AI4{k56wB*uy5{u4r1SnDg9_Edzp$fPF5 zdaYjp?sAKv)P?QKl&+|q1R5;QC8x%8-XSGNO*XLke^^MJi_89}_tyJLOO8K3>9*B& zA&0!&tRJ0~a)0TsTWjAIL(2HH1`cG{cU5@93GGgN_0}sbkh8XfGRu0r$YNl4+u-&L zEvU1RrRcSflq$wd&ep^DA5pWirrO&y41EH#k8Ne1n>a6{OV_lXrx))MkW2zh&e0{FHC^H}lx`R5e| z5h?C{3(;9`cWZLV9#|gz6z2btK<@c5$KP>Tpr*FB8)d0QVft=n6=)<7_7L*KW&?6V9L|VA~sS1bGT!j(3Uo%oTvZ# z_6-Q-%SP{ouf8K8<4FvH0XH;Qv-rDF_hGZpw*FzYx^5x!FX!)_k{GI}#^#d^z-m!k zqWW}WJgU_AP~<`#!r)+b`1YyV{m>AH^SRz{vndormMtR)@hAMO9YX2BK?j%Ha(-AQ zJx7`oy|7cGHz#YwU>q^1M<1-HJX4(^G>H2 z{R-MEJa>wSSyf320{DR*s=dOq{${5P<}csKX6L?RhDvGJ=^ zHV}cj!xh}>M~$|7I@=uwm)|U10Csy{$HCu+-KSJ~3wssJa|2p&R{Oyrn^SZSYk^~d z{v(Ejy_0FbgA(qj1k$i0FZL7G5{s7@HxAl`F>@UwSVDO{_i%)c6bkis9tTs5U^v?s zPLh?#y|`{Dc*wP;R_7pcmJLD>jW%2BrCAE1L>Fh~_~K?oR5P-8y_AJrQ_4nt0=0lZ zAQjq}g2HZb$Sd}E92yi6PT-V=f0dq!XTx^YP=EL;YWyrVN-is$(mP${u&wjcQsSuH z>%C+YR;6SaT_xpwp`7ShssmQuah|q3cO2^D)SRumaC7`eW$-*G9yT+kd~Q5L@RMkQd2+GWN3HsF%>13K#*_#*ByX4$5`O-p^fLRN|) z7bFLq+0V2mnm#MWHGmoF**yr4zO!dkvWezhSe!R^PP{g9{PiFLzgxZ{H=H26@m_jx z=Ufn%zhJU5;}uBFI>eF#D~9u1QbGL1wcyD2@8AA$&q~IBt7w9gqZqs0;cRpt0Es5f`eR!<@xPA?G;^DnpT?q z>BJShF?beEUcR7!Tk2Q4HhpxzDjqEzZB{>Fxi-sgpNDJdrZ7?*~qh79>e-NVz`MX~Zm6IG~y=Lf{q;lri=d znDTRE?XHPLOUovx1h5cq6jd~Y;ONt}PKvTL#>@@Ey7H8vJ~S=OD(wyk=O61BE%n5a zTFBej;ejOTNyrE>zv<7Z;LE?t>}=?oya$D|&ax+)56iSX12^MO$KB*QQ(Po4c=`Lu z`l6I}k3esAnFj8~sjCT%dc@eudUU$AO-yKXF|)QLfL zmCP0<`Tf=n4VYx=Sl2V=T#kz!NH7BgZSA-GE%HiW#9aQcZ87r*`EvdAFw`v4?<95Zh$YS5=Lo2dac*bMG_m!|V8!j{4P(!LZLO4+GFIujT0#@w z9K-E1qq2ah6SI!!j2ZB{N`gzLrdjacI(_HDnS!yl)zKfh~?othIWIc9{> zhX}fvE9x=!Wh{CreD{om2An-+L6zAZ% z0)e))?B7VxPwIU#Kc_NlE#%8 zllDz(E5UV>{auR2!%UwAc``1&Pq~AQ4lON1ilQ>%*~0^^y;)EACbPeML{0)aAn?>Z zaH;1KmmuXL721;F^S#3avr;#|GaX7w&%JPKO7|J9L}tgodnXgc3<*jhokg2ZIdA6x zFJFK5cCIH|KL7{gE!jFpt*8OCW0gDF#-mV|kbBol9E91aMuDSy2SK`zzWd1M@LKX-(Dx0=g8DR=eU{P^cap|`3g*!o|Fv_> zI-3W1(gp!&BOz`Y%B>QTo;F=`V zJas&&lT3CSD#Ie?RU*0gpzJ@zG1P)pXM3cQsf*a-4`B**Dc1JNh1K;ya-Uh)0-)EL z7V{Pi1!=@{MVU5sTOjTi&l05~#~>@BqJWA4FsHp%)x<*0*NkA<>3@*M5sFPp>;<#g z2O%T^-!z+mbxKCn7BKtVW9()@6U(I_cj4V!CJcq%#`RcS4MLD|K(3E>Oy#Z^C!4n? z;@e_qD2BZ$h155}{(5>AxDatxybirOVNQ9#{3MhE16BB$dSsh>B+`FH*!56}=l*ba z|3-e1Y#CYD3~aM!l7?=i&u;%+cpU+fRBt|2YltClc!Kec1274Qr(+6V1oOC-9=Ik}jAJ9&{ST(HbUPse5X!AzpZ zkM$ITU3dp(19bwK((iuSEd1)uv>4cg`fExErwW*D)RJdP=u_6!_1 zZ3VYqeHQpf)Ux4~r#l}X_Ea=pQdl?X3hMt^!zg~B&8GY|`=133u^2O_JEvSaHg!Dq zLb;1!C)9Ta!7tWGTNBrn>>;MF4+-fSPz?+3_>hb6oAcS{>0mT7X@dJMfFsO)!oI?@ zbC0^}Nmk5WzUA1r2U$iR#(PusUnoL}*;wDm0Z z{GBdp^D-<~+dtEG0V#(|s*M_@bFwSO>_`A)sW!x%m`PLTit%f1GtFC8-WNbbLcub2 zHXis}^DrttIOPX4AHFHa&JT}HUn;d+W^WkMrIf~Lwe3}%a%z?~>Wt+AJL~Kj@+Y!l znV!*q0h&5gL(J*0R@_a+ju9m~ed6!%P|SdvV83^PfBMcMPIe<^fjT7uSb1?4O9=?;2{i?y1#y+k!nB{8%nqyD8YMx_8I z{jKZ3|0b=~UKv@(AlKlzJlZ<6TA8JTZ7li>(NP8rVT0U+3e`ZvQ#0WyjLbnkmOm#8 zv1sxLSwS0OlxpzduV?!ske56Ch{cW5xRtwTRz^2+emh)vRo5 z$zIo^z>s<#?;g4_5h*^+R;~n5WiZ)B#&B4COE&&L^~klayxk2iU43$P(1IA~vZ)yLwE>OTZ2}5f_po~L3{Z-w9mRg zCGj3aXT>xj9jWO}GQfAo?09i+6RqYz>#*Qd_qj-KA!JgQSmMp7h|cG=j?+R03tlC{ zRH1mnAg%Qa&R@Q^^N|62!}Z2+GT_9K-1U)!JxSl4$!G+7v6p{$92-9=5v#;%s4Qdk zBtDJcn?&f>Keb{@hPbDPnISPk;m#_&Q1@mcJAqRJL2siVlP3k@NsFoUdfXK`a`;J3 z-O^@PhtOI@?}@rb2J@}=s}dL-8do0F4HA=)$`}MmvKaF)!67}-2_2mP_I;(kY`9A_ zSMJ~<@vf96dCozwjfFhrGoFMgbTiZRnH~or@P4&Wuq2I;&CridBk$*KLz^LAiRl0A z6gIro^v8$inqhbIiO@X9Q;@ARIF4uN-JcdeX}ar1W_)*MNWtZ4x8-LX|?yd{zxO+bzqvscs)<~cMx$y_bpUv@cpKMvOXu|c`FFOP{7y^ z*xaJYRmQU^lJ*^f_T6PG#C<~?ZI`-p>%krq01G+PRd(LqCU}N#FJN@!f!g|WrbqS? z)}!qn?_7N?iQi8&1{}y(aqLISP`n#7Tb=|+mX~!1_kcw2gh`i?gw<)?%<8?6)T(9{ zpCdo^OBWVZS*Z?HAD(24=`egOv0Mc%PYo;be|3Ecsgne@6he)!f<<*gSPNax!=& zVDgFSuvX`;wG6W@k6od4?uoOujtxql3>FLfkdS6sHf&F)i4?V5VfixuE~(KxN63#3 zKornCJg{apq%+}Qb3Gh#p~#$RtpcP#!aB`=C+{~SKVIQW#LRvGjM<>QJY-xinCAns z{FgY-nOHR?+MMPHl+bzGF2)?Byb}VpYt}8EhrKlbE7h!lok8UMxX)l@i?2{y;%;e+fO3;_ ztM;E+Q>yl{e-qsByT1^yJ>=wV$Wl%XTPJ?`nHTnGgPrE}VWDx_tVJ;2Z!yyq0O&UK zd;Vu@f387jxOaZY49<(^S||j;mqMBzr%=fk`Qp$?amD8tuM}9FOUr2M3}%H}NgOfz zP=;MhGIA1U26PMIPhrb#OEuJQXfjwDR( zhSE?PJrqtLKa(LK5ho+RYNMH@?Pq8c~1r zOwJ>$t1`te4cO_;OH@+$ZL!N8l&1A-$qHgn&owq*as`+*u>dbk1PNGy3s1D88$)09mi5c1#=Q=UO&3XI-KS9JK9#(#kA?5fbG@vMTwA!p2sk>ee%%5XIv@FL zN9$Zw&TLN@1*CBc-MIuJBL^I;Ndtm<%^l$3zBQe4qQ*j6^=w{1a-jOQoNf;dE;-;5 z=m19=vTZL?-HNqJSFK zEIsNv#B2@hCzi;!TDu|!Ym9%cc(z&JoqUMXFp^OaF^f9b+4=P1PpSJ?``Qx0M77ua z{IsDKMvCo=HF3-`fb3N7+y{F$=^L@$UTL6#;RTxE!!WH>A+P32w0SB%6ASQjTyt1mJCVUUA3Ka%EPJIPX>Rwn>uzv13!a z0wN$^CELpp|A@T9Bd}V-Nr&y5iY){;51uxg;s;h{q9}}IKphWjN$oab*)y6?=p?87EUdTh<2M#rZas$4^4 z^qp1Mo2PR;n^;uwr5k|Iljsqit}gNt-l^F1*2-Jb{^1+Z94_fk@xtaVxEsBZm5-bI z@Xd%zxIS(y@Z|JSSBY9U>l3+KC6x=f%@VN0DlO*D^G}@C;}2_|ZQ(6X3-$dU;f#gK z&`v*FOL5M5N^Km?l!ZH{nF-Icp|Y3c#A{`(DGYPuo(HHWQ;G!9SpE%y$%<$4X{YiI0pT(MwS&FpQ=TdM%zEoP zTkw4Ju)3$+?ozj?`Y%RCNcJ#9GzZnZV8(rI6sTl2C}pI#IrtyR)0G#a&r8t=6T?r+ zf5XJsE`0H)Qxs~gT6RDACf^pzO*~c`m#g|c&#hk8zk0fHI_1r^D%jlB(BRSW2fdL^ zY@8q%XKoTa?yRGuT!nfvf>A4o`~ZB_-gMLYSsT*SPedt2=zA)J?sS-S>|I3UW=}1R z7V}fvxl3Uu-m`Wwj{BjR;+73jHI0U33m;vxvNm1sseM|@k=V?`=TFrsv4fo%CzKJU z8pAr$>fXD%C$n9Qo~&E#*;bUcEht8>)%?e;OAFpE>kH3^V@njQfW$W^)9A&nh9q9~ z*9kq7kTz+A0alUG0*83kT+Y;=C1bP+YTtQ79m=P?f-%k#KsDDy{cSM!IkGr=^XKZ) zP1j1-eaMs2-lF(0B*#iUgYtzMEYoqYWMAl0^^Z{COe0K>9PBuqCki|E(wH6J z1dh&?iZR`?GmohKX&oWW;;4hXZ~0_y(vv^!kghhR56bxiH0r{RZcc?$0i>6sK_T;< zEQff%@$|L?sr2F;+pabRP77p%z1K2n4gO;ze6uE)F*lE%b$LDq$+^I{RmbGFU+QB7gXn ze&$J2P%}{$Ke#Q|Act4Z>5zC=g8%f13n? zOgOXgmzR+jV~i=EZD@x}*J?7DymG`pq`>}YPxbCf^I&60Dy)!Cf#-fIohAy{ZOpEn zFo!)+DM2?``GyP%FX>F2C4=88a67hj-}BEWtvJ{%L|8Ch4+S(zIe&^Ds)@GGmj6{A z&9X8jQFz=)SK^&Jn@yACZ!mDn<-n{!@+n1N^)1E(AqA0o(pG}AC5r8=Q^CW$?6|TU zLiBiJem%ze(48si&&s-r3QcJ7TEb@15*J@8^F7+8`RZs9xTD`X(~-m1kU7GR1N%51 zho_)Q$^MSl&*!PbFg=c#66EjO{pMw_Ri;T4OsvXC3>f2-D$0dJ3$5N#FHYs2l=ok<`$td{QQk!QtBBY)h!V(QyO|ugwxqkk>Rpv zHYuWHs+AHf*Jhfw= ziLc^sSkGEIMjJ}ANf90D&qk=WVk^t>)tS^2xETUgi>!3Nn_iiK4uhL) z=HK}mr%i2+xNpU8ib#_W%%e_spdH5QFSw_{Ljibh)Ds%xR7tWu+u`H6rvg&UOzlA0 zkXy)s)_o5@Wx5oWOQ58ftubGKIJ3QO-)j6C4H+Xfj6ijLRle(8KuI#Fc<#qS`NHT8 z8qOH;WuCHAvwzU6Cu!MTGmlo^N>g@caWPMz59Ui@%T0=m%U) zl<>wf)ssYbRp&e`4zi#~57`$0dtuIm!T z;kiytnJj}3lpR>^z>4_=FcGv7NfpK)>JB%b>hG`kcwSuGINKZkBO39GxS~_O0)9){ z`A2jPybY>=pBE3l%>k7rKY0Y_v+WPjrA;@x!eQUtH{q}_((Jy$_blzYLn4T&SQ!HB zlUSn54We;AXuK5a|Cpprx)pt^(HI^{~f51*6oxZV`8X<%inf+K(e(Ec7{&Z-@rqD(3mV z)F~mY>T)#gxUuqMFr#4Bpc34ymTgce`!Vn_)cX<#vrGp+4hjvdMG4b>$Sp!@_X-s) zG1>lIul4?*Yj|S5ZP)+eExq-?Ja|%to~lM&|vqs z&v;ri>o?|<@BSQcy3>+s!lkTluagAt;G)oIKm(QFto+<>%-XM4Xy=m#OKg}I`NfOV zc8}Nb8%J|@(F#l44L^ZJ zB2v*Zf1#D6iFemZggY)f&272XP55f(o~}Bc3JLJV!8h){us5S(Zaz9>9ropn2j!Wl zX+ceXdk8stHND_V_uUQI3w+7Q{Xi+!6gGmL;_lzc9+ld;-Qa3QWQEodcc^#1InhJo z(X0hLu0TAHcv&0lDif6Lbg(#O#)*UenKV(+A*T~x=td=S5c4zoAE9^i9Xwa-52fsr z>Tk;6;4DLoN}cJ0(6%bp*g3{EJ>arH9WB?K(PceRVK6eBK;JB_6>1md$mQ6uELQPB zK5rKFnvW*NKz~9_D7GA817oYc?O^;(#zVK_A5rj>amLFfpxZgp*fbElTZF)%+l=cg z%DZ|_<^hbJo$g37Mm@+fIr>5Hr3-)5i%=t&06yf4f^K6Xx=G0JdOkvbcywjq>HC05 zg=O<-GM*Y)Rb+)&x|ME;_&ts#VylhX23yxp3WEXs3`fV4)EVHthrMA}P29*qgRRY& z*()hcoTE|Wv6NiFW+cJo5w$3rbq74eycwrhJm6jMCBsZ;>)5?i3$S5^OlEs%rKs|2 z7_C;Bbyy9vEk?{zWg;Kw#VnX@OtF;&J%TVISHsc^EG{Q?)}MrD4@MY>jqVhD&y~#- zxOC~PjnaQWy*kO7(kxo@WwwZtBw^lFv$TB-ZJ8ce)#k@#lz`iX0_!KDnJ`S~)XxTv z5EnF|#g$!5e^Av^Lp>{B*+ey9r$!9NqcB@;Cn%F#;(azt37VZ>pHb;-GENgX96WDm zKi@IB<*w+OD0URklZ;hSl#?=+E;rLRg=LqGf*kmm?OMeDjHI5$)Oft=%I2 z^(yGT#j*Si^Xn73gU_S(MJlzxX99^`3^3ZpF?ynp^A8HvxMy#};QwTO{GQ`8S5J1=>nG*&MB z;Fm$D_8>@BJRMQT3GUK}uL@kZzT6*ok$~~=a!u4PjhyvZJ5Y!@GLSW8?_F(IiA0s3 zd+cW{F{1!7P2AG5J=arP{DTeNg8 zOGE7&KMltybli9D)xAf~R_gml857Y#0nJYj-VegE!mZ~_69&Bpzk*>oE|dD#e)|m| zm;<=G1jdnPzlJKm^Jj44tMK$6>GY7SKf7_75Hck7%IiIh>ci*S^qzI}tkI@37T?h3 zHsR1l<|l1t{y#Stv_=&WaSs*nqWaXZoE&B;D_N!7rIf_wu?hDql}vGS^y!>m?EPQg zC?G=I#RP|I_vew1;a_-zvLc{w$kfvdH2z-HR=Y5tTAecM|H{9&RM8|M{JnvrsU{+d6RWqbYblAv&HhoFa;du=~ zoEAQcn-yENzE+8ldESp^+W*1h_aI`vl)+r^phP@N-!A8~!`pZ1*Nvh|Qui72e5MS+M60RgW7x4-f9K0ex+iSgb1x5MTyZ+ zLT&%&eqQI@{mFe@=Y5{v^Eg^OtX^;|wYQ|zK4v^a(SmZ?d{cUXESGsn^eKX*CC#An zT17MI)mnvwY<`MINs%>F+xJgTxjsqj!<-}BwTFAZ1I-yc{(G#$AG8MO+^a`&%$!Z` zMvOSb%KPt8y131RB&jvLdCaPmRDi0n)U3OijS^P%59v1Toms?EF3?eoz-LG;}5gFYMM)vT0?B1=YH2n5W;~>rC;lWWL z-5~y8?_pNZn5{#erzJ$k93v+~9IY$uLuL{pJ-(!@{65oe($mXCYS<_8t;3afHQ=O_ zdHilrs4#p$z|(zwI&ME&UPoul-3y1ZR_^&K9=?(8;Na8RxFw<%G?GqNZirJbh|}vk zcf(M-up#m)ZJt#9%~M)%c_r|t4!pVwg21vccUFF}`(yPU9<(;_H$Mo5et zM@6*hqLk=$MD*c2P8Q9eeElOepJAYjst~5lBqDVzjU*cTbTXnGI)08;`&dq^yVi(q z_7HU1;Ai>Lhk6!J5(531L8x%PmcpkU=yXm47E5nan3s!YO4IMsHbR&7W-u4%U_0L`|lyN}qFdG?l(_1Ymk~$NM+vTLTK?ilyrOK>S z5)uU`#}|aw;%#wh?5G@nG0Fa7+riFTo_;MGZJw&c4`+uJ32UG2WlKZ!>c}JIyN#G) zMZRyEd|{SvLeZ7FAvUP;&8sU9Y}X1$xI(P#nQu$b4n2{tpuvw)enm?mO_MV-r4lL4 z4igoHu$y|W3+JEWUV2#*kG;QcV&gDkG=c<89E)58qZS|^bRxtP4i6S1yUb31oovFq zDrzW~aWL1FCFv<9rk}mJWYXE8Azxat;6Sy{=smR`Dniui*W-#fTbv-q>MT{qEDvZm z{F|dg=8y(#p<{Tcj@0_^KnE@YXHw}qQ^`9K3IkC=i)7D3^a{QY3@vkz_Ank%n`5Uo zy2yS8R?phh-r@bce|vGdWZ$C`Nq^$X%_*}aUuT+=l9TdDl6IV&SKnBet2dQ8YuonD ztlYqDm_+8se!Cwc_OV;A_tIHsE`Aj^-K?Cw@tLpaqI1s{v#FSZgcb{hI(Z_b)pM7* zm=!k_b1NQa=$t+7{ab@oESC=~TcoTm<{_tZ8dDrb*bet~Rs4wQs=Nm z#{o~a_2(B`jh3H57L8|reI1XMcbk2`tMlr0^lQ0o!il&@tZ|6Oz6{xaG?E}z7shcg zuub3UY2)|9qqINizie8mVHw2Q$#?_(kQ7{%dRffc|0+`K?zk+6QAoG-Vwi3=XFuA$ z^5_sS=~&X(wPf=50}%G9;`ojB(z}fpW@npAcJ!;l+MI9G{IJ_%222Bbm2WtncJo7H z?{426Afh`)QRXbVli%#q0{Odd*@YT<{?A6IAr58w+JeW3n-HYi_^lFGLh7t|k@o93 zxMK9|C5T>YWJ&H!?0ajazGzO0MNe&v(UIQ3Z`j$w`xOUIoSmYnBsiJp7oAWbEZ&Pi z785OdwL{7)3&~~VDpurIP5A;SqyVlRSN{Kq+I z6xffk=OR3TO&cBa_8(uP!smgO~wNncl&&2L7pkNenJkFFch%Ii+|lj3hr z?zTW}Qd%f>S7OT8fd5JsTIJ zfwdYxx!^v9#Ym50@`-jj@zk+BFg|?1TwK4x`|&R^uDti5a}{%CC}PEbi~+iy;cCaU zC*!{CcJd?d)AiqpqzWE+xev|8tg&c=?h1S0n=*`zcS|MQ@BBBp>=3s2?%GnbNth__ zzh5V(b5gJMBSbdDw81tU7#CSa!?}LMz!Te`pm`P6;u?DVt=z3~U1LR}!ikxOL2>H=5L{b&Nkn zG(j8JVZwT^xAIu-(B5yS>_nLAo!fBGm0y-$wR#<~^Qq%;wZ@0)JCEQX$YRT<@AaS3 za#J_yN?l~Kv$;9qP8KPY<{rW=W-^ELZUShG_v#F*U^d`1ttStcgB45PZTpn8fB<(g zEIxPwlKg-w4RuORe7=^=J;Zvj<2r3}mjs*Kn}!3MY*h|#I46VG7~!=IfE17SJlv4F zZQ6Z&Y4+6Eiawb>Pht4b8uTq`DW0=A1$Q>tpp~7z&Y@D`a9F{fr0yHqd4aB?|Dx6S zmO1>UTV4;wnDVd<|#~FP-ErPr8p{_h^n1 zkg^e7a!jqQ3qBSMfsAjOt2xVTH+HMABJJ$s+Y%AogXDdN zPkl4aT6n%OiqwP-0L2sNdo90}?&S_~_liqMt5|#9cwknNX-zS?YCko0KrE@!YxYS$rcQn*ODGEn;l6D!bB?6AK}vJ# zbE!triQ@nc4DZ((>Ve{p$UxBTACislgz{m=-RNhdy!Rf7o8bL>G&yXjDMe@t zM2^Wxv>uKQz1XQoh^xDVUXObl{42`wJh?6EOrudN?gQ!9^OP_B7FdmbZ8Y zT-sb_9l>Qa47O_fX(GBJu3P4Kss5uBO&qcZaDGqWI8v~NVG?4!F(>8)x)OBzV`Db7 z4Qsn=;SP)c8m)L%Lq7Le_rE8Gx^s41vU}xEh%~Mx$Ct3y>e|WdzS{z^Sgf3r@gH-J zFX8RKPFp|;Yn2A|?jX$30uxnJ{{HV8LnlJ1{BtUugZ_Ks>0&yfS(X#`ps!mMmYqUn zJgKyI!W@&yQ1Ie5+e2%LpIZ@96gC z%N~_a%E#LCPC1yX?;iJtcq*N;Wf(@pN&zbhV@cZ96eRew z9gp88(7u@K7m?!?GCjoAFkzruYgfYS4K5!f=E^91%3_>2J5c#3gynKTwT{S&R_!@q z97RauqZ9s)V3bbfj`wpDYYV6E^@UiqP>BSg`HZL21i1cIEns-Q1|8^W^X)?g#vAIZ zBr|l7uV3dnzBL?zj-{n7iPxQsaY{I8OJ(NW_blnbMVHTh_@;Uf=LfWViC=s*{21E$ zKO#YS=|Q1pE;^2z#>f+Ihxuh-Cqss^P`bJp7RqY{R#eQ^9~nvefO{B@-$LoIW88-lpcc$%j3zu!FIh!K3y=)z?u1J zr8t$UZ38R0RvwpwoK+13^6hu~ZPfC8414*j*ptUc+ zCiL^%TiLLy%Zr`+71qKjfv=Yr-n|suN!?hc%;T{I7^r798RWXY@%|@BodN4aKxfC8 zY#4Nbo@H@A8InaQ&}X{Pe-MvpJ-^t^8RC>FHRv&Wm$3S;1Mk4`59wz}`{N8iCHs9# zSaXS%*WW0|m=^HT*XRX!()kk zRTwtU0;^wm5(sGZjIUWgU+_NLwFSBhvo%9Zo^dE;qt)j$PY{F_RD9hdh#;#cg7K^L zDF@SW+DG%GkT8#S!^@_P3r5mZ`_gk%?}h<$zy2GKDaw|?RnYD!YY8kf4oU-4zVyk! zC|4x>+Ri>lu2RAUe+}O0+umx@(`M|v9qB_7YfGqAR0=t4oJLA3L9%%H^oFf39J`sK zO)Dum+)FOqa?VH|ACwXeoMP5M^-% zBK0g+cAi?384oCGi5RUD!8u8v4P#JQKBk$$^cM|x@}wY0st z7i~ZViTNc-KeSAoa8Q?=Qz#Mk?G%w$lgfES1rrFUq0D(toB=Edg|Z8BhBVgRo+F(Y zQcWFX%-$v~qD07gwy#fx@KqbtpTqZ?^ZcE&a>}2rgk$TjkV=%h%lY18APlaV)F@kU zU@o<7TuE1;L>-YT+1gno!r)hFH+CwG{iZ9iI zc3pPi#z~rfkj{xC%#cDDf7!%{=`#3x#wNa&H}IubT>Ka?DZ{rsq%@?21`(fUSWKIt zQ(2pgW(IVwSZ06DF)y0zb?hYv&+=o;xVpJ)xg*j&O*NkFfntnYl$OhSx4WNv+ZPGE zuH_EJsk@z^!u?Xm-dtUmidEN;Rk@X>-(DXzgz58Ij-+9sIVF-2I$Q;rV`GP|;Anm| zbD3DXNyD0`P~Q^{`BHX1d_LFQB;vb5k#5N`Mz2R=O<=e-z1DG3D^=Ylw*UHenNO=- z`_p4+#{(YQxcyG!ZmTr#?3~FK=vPfOpm4z0)Ja8<3RHn5C>v)*|IMks zFE<7;fK|#P!aSD13lflE9lOCV*IlGWdH*)aF~v5+2w_5`mfBCD*qK)cazfz_;M;OR z$|*lb9TBLqu|)|sv$+#ed9r1k0#ZwnM6f|&6B&kHT6eX>5-`h442OuYO_BfufiPcT zUoQ`lI_9$fC-moBTEQ6$QjRAKKk)#DRPKWyZlurh&)kzQ=W?)j=I zd&_$Gt%+8sR5T=J*qMY6_+dgl7miWJVU9!$H1geCnq@a9WFPmQ^9{(Yb?`M93I%*> zax%t`(?$Y8l91)t-pv~~fxW_1VG3zMkp1$*tn4f?p4Go$QJ0d&EYjSMSr0dBO4bTd zSqnB0iw9tZa{W6m{g!sK&=>oX?5SFL)Gym`&{zSdknKJM$|hvWg6j8cS7u*8Atbr9 ztBX*~*>ft{WYA-55P2Ik1#11F$Zz%|C(JmQOXqM5=!^k84;Bd{ZQn$e{EJOn0_bGc z$5ed19g62S3ZTKkV_R;Ny*$obF|5{egE>*<3piHwn_Jkp5yY~UdNuYaJu1Q@8oC*m zfI$YVg*ekl$!R^EIl`Je|G{lj(;OLC)wMf&JZHM-izpLT2Q7cLYsM);rzN zHCYt9u~23y^E60z5)k^uU#Mt!d4!cRon@VZuda4ddm31}*x%XO$BxdXOvBszVvEZa z`H-S<#GJPFO#dUI$5&(|Xu+HM_gkbjY(Bm4`{on?upYaLLFUqUAg*V9_eFo_N)PKY zzqr*gVP1<;pp|!K--=ZP?Tlnywk-CMUJu`qhS#T%HO7c;U09PX{zrB;vzCzhn>oKl z*J^0FLCe$G(vsnD`v_p?E=h$vxtuZk5Y+N$&T}V73@@>^StfP|4j$;T=Qpz`g8TnO zmi1tjlfBiNI02cMh6w^?eL|z;-QRH=mPyXN%2$61ZHsXKG+i@jA=XfT2Nb+z z{pdz<+34LK&f1F&#nQbW+%PU=D8yo$Y~ZfSKVcLFk7XY0s(7yDH7m8SsgtXWExUZY z7cdu;`mpBvWSKbgR3b&N0e+4{c^`0*)lOoJ@V&!zG7s~I!uNiUm2t3^Cw5fcoQmA# z=*=x*8DybvlblxSp3LA|%)%JkY!T*|Qe73S`421F76ftA2(t&ZQ5cl5%h34KB-xs#r#foyF4tQcsl>+}6S08X#a-7MR z+ud1wA?c!FO&kmK0{H(54TS>Reoc?Q@Z?}+-I5{gy%zY^JsPTD{oP50f7`dA2_2-& z9C}o?Ouisw#z4j6`*rsi1xu?rPtnDxSp^WDRI!ZGq!fg*Sm-G*|2|2MS@qpdEF}>h z4R_?S$4CLZ94`_hBLbtR=C{1n!silkSOiw<+5k3Qr|V8{W4{6;r{d~ZrD`Qv#S~vS zmDhd@mRu*WzrS*Gc|m0*n!b#GQiUvGE%}l!B)a`F+EtmVXVfJ&33J1 zm3ui2l;3@If-b^#ev#_Fa0TQ#gkk!z_rv)WZzY(Z+Pf3>0v-(uaABiItZ+BPFx#Q2 zY6NR_(1NiDgKPiWDW|g4y%}Y0Zc~?;_vHyGV>(I=-qr=;C8`PgMSy^KOXkbBP}Y@5 zSr5+uTSqAe!KYsva#m@)zyn8(dm469i$BJP^nN4Bc%1?>@h!cg96`b?U5ub*ADIm1 z1Rw+gh%(A8HVo{!m)={T%;=xxt<@O=<4ExOk>n~6CK0vWFV}gfUgFY|*X}x~uy#<{ zz(s%ZQ)B!aM~QsX>sh~D%JVp?c?Iiz*375WEEv1p)Pbcu1qXRQIpboeuB{pft6(Wc z_U3*cm!)S9G&cuU9n{~Ll!37jx%cZ`+H#Cf`?$|gMSc<&-y`Z8elxnc_?Ohd@)}A1 z@iQP62XC$3QSMt9Grel%4=(SC^mBUALFJ}#^->YuyefaZy9%;03UWdWm&IwtnXY(r z9C&WEFa*+P%4F;*y!r z@zwVT6jiN8Ihl~h3Wthtm?H~0Kx%XUOYN$#I&@i|$pzIQ=nTB5+JYuLBXvr#ZX zmsw6UYW&>N=smD9XfHvCmdFHZ<~GzLEQ__x`0~A^&h<-*%u1PnjdO01Rp@|pe@EO@ z%HdWkA4pC%_FD36sbbfcr)B(9R+lT#%Ksuw&xxZ&s6<=zhO(gh{HWpul-q^1C?<2P zDk#jeuv>&O+3cy`($!#~aKlrGR@lI& zvuztAc3P!cYCqUTjGCk4Sgp5svZ z3ScAL=aL?+HMNq;sWF-rI&ZTBSDyu1B`n-uc8Vihdy165hM46z8uiCXBXWl$NeU?v zAH1a%)b&{D1FwWRP4Am=i=*wyd)$Ed`iTPTr>q7ln6$i)&SXqa6LmV#I5_$v(&LRt zj_;ZUq6gJyDy0(R#ZNp-=-bY+pkrEbmKwgm|cn$svV znlcNncYeQLJ;3a?2B8IWD?b0dtzlil8YhfO9|t;qlT^b%Gsjj@*EeFFpPsg7IGW;5 zhNqGK1gOA@Lmdv_?$v$KZ%G_=3unUe14EL#n@ve{AN1PwSYf|8* z1%i^SKL|KG_VM)*3ra{(mx7Oi&yn?my1QT*=kh03b5VBfVKRQ~9l)j=#EB=fq=W|* z?`3lg>u58@=a1Q!S|tj7PZvF$x$%3c+rrbiuY4ph#Cg;gu{6YZI9rcPR@eWgNfqAR zm@@2LguK5sPo5L!a34V_G1J=+k&{wHZWF-<>Snb~Fdz~>(ll+D{WJ^^@HH!^0$ z@}G@|`^U6^dbNr)!d<=*o|LJg3+G3-J zK73^vn7Uw96m5|k@+n;_s8(n6s;|LD0bRJe8(C6^6>q@ZlHwUE!|*QGby7ji=f8)} z=eL=vo&bA7Kd;4nNNqz-5ztuaNS1&MlLk}-RhXacBJZvA0y@7J$U6q6*j@dHQjg(YLf_OauF%KFW-qQW%-!E0?F%reB*Ua~z`=#-Rne-bjmPO=TM+ zUeUt}ApL1Jlz7;j`I)vqy zI{^OpRn5k~eNZl*ef0>d-0T`E-<|777kji-SJz(hq`HRQAvvCyLS_1LPvxeIEX#OR zIU@0}=D9@*f+Jh01a0wt*qgamzKh|>tS7WS{^?PsKfYmLJur40;#x|Q968!O*j3Q=76HGJwAAbR&qW63G9r%fwE-FmjJB))j&DvYA>Z#TpNmm#H=Z9h zx=;x?Z48;tW-J`v`FicyW`4<}lPqm|rsDi%o*ot{Efv5lt~6OC7QA>z@K4a3fVe|A z62!?=X{OkCj)W$M5PYoYmna%a+2I!tNGr0Ve`h&;IXfPfXAVjF5TuKwOo3}> zaSau=t%@6cmh6w8>{lgyj3Nhi=FAb$wp;t=ho>)jS$NLhw8fuXz#eiw^`u}(+ca0s z*UrPht$nR$msq4alHOq>mb~?hEH#+g_K%TNqOb=aXIQ#X4gDM7)gi@NJFQj8!`&;- z(yT8MW!8^;o*$JG>tLB5yxEway?i$Qno)19t%|j>V`oH%c|4mT5X7~R^{6MRBY=S? zWt_ry&`ak7rfhls7;GQ>^ES{7CBywM{E$*gZ~OY7-9GFt+Ubk${=1mmj+msXw{cUa zv9Y?UxT3{=VxGhO3U4QU+2X;z;qi>4dgW}*C~*s;N!r66MhS6VKRf#vST?V0{;=W@ zbTm-K(F`{2&xtDTM;5;$?irJe)_z2lg(gr%MeH zon2QmS8f!=rV*)?>B5(~F540$MrFhD<-<5nt>3+J#85Z9CEF=5;wscrMHH8mq;#INnIuR7T%UQmG1Q>|XdcYlu9$zbVWH z{m^en8rnazsdXpOBRJgiA@m>tjQE8vKb}ldcSc@ax{?2hNt*)w*%U?`cZ&z}6xKeWf3+C*9_jgsmp(c1|B+^QQN+rOKF2X@>^LnR+Wj;s7 z*RHpc1iTip7Pw4v#KCaxr10#%EEU?4N3Wf-+sRf=}BV4FT(vWNWAFy4dv$A@sFK^=f~-BLD+hWXt`|E0X28n}=< zI)pdx{%WA%Wow00rbl9;7n73U5>xNvw0pVKgARS)gQkGg!6I4VIorDZia+#`QV6+u-rMqPRQ5lGhAX^TME zzx*VEcz~$QdKmnti~ga(QB;$)TvT?5Cy#zLA=SX{thH}hUjcuaT4PuK947|aO@+(8 zfYrF8=N*IN;ts=?OZ5FUTCd*&QcT$6J;Sd?Wt`5;XHDa6iWl{e3L|bcA6`Ih&u`Ws=(`J|2VA=1k)Mn0p< ztQEaQSX>nXC?jVI0&EUjNEZG6-zxuXdV+KJg?0dt<%*{{i4ge6a(+C5E)1VGuMojz zGZTCf!-K3fK%ne40*9N+RWGA*oEG-j{+|3&;^H^O=Pe7`Q*hXaudI{|t~!`(Xp~iJ z&F7%kXlKKBghV91bZ}E?SfGYc2$O~S-W=ySKQ>j%WT|tUo)@*h`Vy`jS+)!MLd$h$ zR*YJE&5OT&uot+VBEU5|>XT6a5V_OuspXX6KBY$N+JAphHTp&XTV$LsB&zi$YL@yc zzD)jDNBK^6`Oel}_ok%g}tM0C$TxPGQ4^rnBhx!d-iLQ%oNF50IJ-5GPK zU`FB^KxNY-o?QQv9RGD7wEYqU3Qd#2CKJSfa7LhYw3mxBE=kvpUjmFYGQ z&hAPUcS{fTO(W~jY1uN-V}ZE76LpZk^ERg|%Gy?qQ@xew>Nd<1Y_7MLw-rYiig~1W z=C-Ni?XfxfZ{7?psXB9e$-{1kizDD_(vj;3XMK|DAm%lIZmcz_yNS>*$8h|c|>Lq zyyks<9f0ue7m&XHYcb^zYGZPhm}c-h6|RGH?{J`MYxC9$T@Ca2ROJ&v2%B?MN$M}| z_O)!oDY5q9>oTIo+y;yz#mz@1x_{P{61@ZJvNCK!JL3%1#ipKV=8Me%-`dg+m8>dN z2XMICb3?viJCQhg4TI%;nio;7-jB@5jU*b}bliR;#XfPFnp59cbMXc~?6C6Ym(Lj0 z`-y)cg;qSBCLGq|i-*Lhp~bBUtw)to?ZULAv!%_>j-z9j;hsY0n4tGT_*L4qF;m0)G2YBtj7BK9VAxKSKMzmbM-J@PwC-)+>f^r6ixXo~XutJ~tI z-y2M&0m9^8KZ6d2QFeo;&;v6A&$3I}?}X0^_Lq+fEctsyy>T{yG(0~|9lZ74r*{kJ zY+MbV+}o{A<-L<<>uPPPld*Q|H!|5Ufwf#i>{e+&7Hxn@Td z`_f~^EIh@bj(s@kK*6Nj)WZ@tibp`W9%1RG1vT5mD90LGoCbT@EU5^j_7YqAMwh{o z5MGrZt8lksjckn%Lp7)-`rH+o9toQd^;DF4dWPQCf*MZHkrLR?*>%4=rt+oimVt38ef zfmBDnrNmQ4nH`{>*o&=biqpou*XAz zi00V0>R)`_e!HeyEZ-({dT7(_*#x!OD2$|%RT%L5gbTOTU&9OJc-Ry9Kw|I2lvkYZ z4k>&*fg&NH@;Sgxy$x&7bni}a+|z$61jK`UK5nSwfvijrON{lRHmy|sW3)lQ4dG;* z^GH*H+bm-mSVe+;=F)MA9oP{j$Q1Hz%kuOSnp(x~JnsqkC}ik6v=-Uz&dood%~P() zdRcJ%Dl=Q+wc@N|WPsy0b6Lyc`2TP>ZuO}o?)253Or7>&6_BK?qJZynFFdYThQcJ! z;NH!0VT8WTQFP79KK_or=RkN2fm)%*U-2aFO#sTSV zmKlc5HNt8`C+^STichXp65azqP*A?%I@^=y@#~j0NWn<6T5@F>Go?XmG{Pr=w`2bL|NA^uGusi_N%Q9mwSScz&?us!FE zP7xhF?)O@%c)r#JfNsRk?8eL&Imp=#vfO&9P>*!|402vu*Ue%}%~ zLZ$KF;-nB?C0B)VxxGRSWvLK*x(}COZiPbmuVE{}e&NnYO%WG%o!cDuVFcFHz}elp zV^YG&DlB}f&pvmRn!oJUdR{VMw2t|#)xlvfQW{Amp<}5{p1ak;S>u#Cp4V8ju&WcP z4!PUbu~BtscCs)lvNmF*AtvUF3wyj5=rW|tUf7{USvWSd7+FmBJs6HfQ2|h2&-3 z_($n&Q?q~ie?lBqhI6q!_8WRQ*CJGVkjeP!r;-KB$yguXLR=9LhUlXEy#__+a*?Kf zJ(~+5+?;&z8l~L0x_tr|cH?K7sXVX{HlR~ew`~MwZd1`Yo9?)pxuqHbAAEXEm zeCfT7^Xf1TuJ^=PTwZ?N!tN>8ljfHU8gMGgXW1y5>Ic?Lj+0Hx-Q`DB0TmO&Xq(R9 zin)fm8YoQ4_Bi+$O(v&(*CwGS+NV`^$F9+MvdNC9y2;B+dg$_dI9g+0zAJ`TXSwnm zNNX$V#(@PalvCa-!1KrX`1ofwRdi;~%2sC_Eb4md1AadZhjv$dV0IOvsWM~fw+%^1 z8$A8YV6aa8l{e(mD~D+1)*A>+Ccdl+#>wRdZ)}3b%+8nK4Htazr;9~X3C~;Eps~hW zuqHWo=LyF?RUz|XMeqCY2Hwp4X=o!=Ux*Wpo1~m?xo~S!LvPN2sQQZ4_i%B-)qW!5 zlf0R4R)Q_t7qcm@`qZpZ*10D9jU~zK8eiCCkoS7zxZP(XyN!3-i`222FVY-!ZAuq0 zu#5STN-aNh(BS=!D2B&DW3Tb$*NeI5UVm#o{Ize7Zcu7=8ft%Wg=DNfS;IF2#hvdbxMxU%LZB_g@k8lB!K^*2SSVj+}<@nCS&%C+==n|Pb zzOe%*zcx8$1IvhPH@e$R3kd;?MxTD;tc`BCB-T%(`7LikAM(SHZ=O1YJ$)mSH`H}T(z*LX8ZlFWKg2heQ z%8pob(7{TW`@=&?JNrnn{~AjwrsxbjZo?ke8hMns%G_-Sf1!w2ij?Tx^3?g^LxVRQ z`j8AumW{}dQ}ZAMuBA!!^E3LrlN$Hhd70PCdg$%gw4_Iz4`MSu`OOBz#LME0*aZhr z5p42wE7@b7QT0Pi`TR8yt=n3_SHEoHTxTbNqXZQqR1^L)_Q)Z>Cck%X+=K3V4YQLi9rG)X> z#ZC#mPR%S^Yrx-k(+aRciG0hkBJxCHSW|ortzP||!xQ8;s$$?g(aI{MN<$Y)i4hw% zaTIEM7TX!-mE&8_Y9LM)5jGY4{eie<|HzAZ9WzyBpS%=)S{O-eYlt3RYO%@@nA{sT z*%#HT*l8P?pXGeGgpoX}Y)ve;qsrZ6K5ET&;qAA1M5=QqeQi16z6;0u@lISt{R|05 zN|S#j`$6mk8UFP2c)=I=mQ1r@_g%qo9m$YUuK&$Cz%Hp3bhwTE0!}&Qw@lwjc5vPM zD)QPSKMtDo03^6PhR;IvGMu8ewAl^xGJkF{rGwj>x5AMmhNCxAcNZR$CSduKInCeh zMohU}N3AN^FZjySuvSHzrZW>AuqCB6O+Tc;mKWP|-}UG&iyDtpPhMdwAA>sauLr=n!?qq!lwV4+ zI!)iLe@%|FieI1p;J$Ds;czzAQMc}1eHPuxgr{CuzmScx*9~Vnf8rSulwqc=_&*{l zm(FSHt=@YNQVKSe#5;sg{VZGiI3r9G`% z=HKFX?ns%+rXR3J%p#PZN|D4mbsO%90$?h_r}Ctyn+p)9c@0(BEXCC0e_xJR<(K$# z&Dvy$s{AsX(Wh>eApPEfO|12qK09TGYtfv>#&Z=anYeX_@(VGr>E9I0#^Ekvs6{4H zHg4hFcGd`L@HSF>R_JudQ&;!bjg*I;spBgHaBwG+#a+ zZ<;8*Z6IGgBFxc{$|6&UxwiPX{w**~=#fCT(?!#4M?Lw2)_BGb5sWz`Jb3G`X)qF} zj%SW#9q(`L)AR64jBp24T$NW)h~LG9NA3?3!JofIFG`66MnG|^dML<00?sn`;~ZGj z^4d=Co&AqYJ@d`sjomfb*yn@UFA>VG3;B}iKeKx5bzZ?rM1scDf8k7#uh*NhQ-?8n z$trddzDZh7jmzx=UYjOxxP<v`bvv-0e(moPd4MccuZ2`hUP8G6$Bj}9X!QQso zsO4;*@yxqbFNtnHo&M_txR^#egI2G04oW)k5c|7J4;-<1$qPX6Re;93E5Z_YadXO* ztpzpi{)*XZ+#P-tDQ)_Wl+XRRNh&g14P2ol;~Vun|08aCcNc5c4RKn4qcOAlUoL{> zh9ikVj_*|U3br!x^SbO-RRo|T^R&MZO%)CJY-2|qK`OT4Y==$F{}FXIJcM()e3~`j z?~xxCi62qt4E6W4Y-YWDZef+fprP{8qjenTO#|!^jraD@j4gqq;V>}y7nvB+$FRYj zvmTi(8YihzEj+DJ2%_*-TqLJ)Bw6k+J#a7ciH3nb$4}B)9UuRX$ac?k`BY*oXRIPZ zE_ds;+s=lwIfz@z;Bg<_s!o_B{S-9jO3`@L<2)(u{U9viaKdg*h19e z?kmWEn0lkj>h=)U`|0xH4;$VXj-I+!lcCa01})3pzvBk^F9xdJb?egJ8` z3fZ47IPvkkZm$R_{;_W3!Kmdz4K*w+yUSxTr!-yy*!Uk#Ghm=LlMkSg zNi?by@wV&H1m=-U4+6GzQhb>sPOIU8w3b{JR^$%4ZHqgn3@6(sMPXhaS?VE?SyRU* z2<30QNjWW0qn*8Eb&L_F>qycOt58q{RAKoaOM*tPs#w?ZEwH@P?2A)zoUjSaPyo*-MzJESp z31w_QKA{Vbvy2Pg3B3`k;`yfJ`8bW}O*=q>(2zU#p)0RDtPmcxHNog*B%Mr|3u^~}C+pFd+HEbX(+_`IsSJ+5mq`r;3=iL1z zm50zz;&YWFckD3E+wl&4HvNGxaRX+!up+To06)&?-RNjscDokXENj%1_M-P{uOM%! zd{4?DYWYd%h9KS8Vq>_Yh1B0#{`BbajfrHz7O}VegKkRY#**uhq9JV9&B?RW*JG}x zB9x>Z>SwaoeGBba5968-szy*+cHWtMSaNWy_>t z>7oG-P*#~dNMhfyo4^kOS;%2K3ln$xKdFg)KVYO|eoWyOitudD>~a&58g}Zw#R0oQ zpiA@)+T%IvJr}!R8_8nq9m6vB={M%*>3AL1Bv^1h6o*hkZ$NP}+Io~LBwR%oz(hfW z=YD6Z)NCFX@LIlvvii9yX|47_wa9UpYflYlnb^AzQP=z8A5+u;D@W`P3pCQXfo{Du zoV%|3_bIwdV;((oEW?#A8C#5GY8AI);=Mju>=;o0nG&*iBh4D_{&O%_(gs5pHr2T*&CiWKJ8aqYFe*CP1R#$6tya|E zQgs!I?hFsLt41s_*1h5MMhM0By8?_x(clfBKSqKl3qEXI5n+Vr{IXU&yFmHvX1`eY zJ3T7cWGvvn`}PFs^XD%*qbwR!KVaPZ3&rXijDe=uI^Nik;L;=n+|HWqp}P;n*G?O_ zUVKXjNKCS!|5_a5J7zCyjk7}-XZcR_IF#~L-^Cs-e2$sT9nBz==!#{4x2w3 zXDWw|Rxq;J-xeW~c@iiCqd9K0d-iOsVflkdsU~S8 zv5P}qHxS5xEqLP;tQV-7Hv1~tsE?lJ2|r-W)O?cRFa+f<*`Zna`Sjl+nWPHK)viB1 z8gOCkrSH?aH=)}zR`8l(--IibqK5&dKAi{ZchUQ{LRMhzUo~)%AUX4v*N;g@CP;; z)KF?uHZ}T%?&~FMCV~i8QDJVC4`Oc2&nTcD=Mwr>E!FSRgE+B2-T~bfq~=KUA)>T=80p=L-T; zfQCFrKA%l7+@xhk{Z|$FdYBa}lf&m)t>gW<^z+ZZo~jh^M|5P$)5KSAJqkvFlDE9u zRNo%FX{uv!9Ad1kAnZuSw)d`mZ?>X|ZF3p={{TJfy=m$Gp^+I52KZ|o&%c(f!6|fQ zEvJfEY&iCLe)^dVV+mdK@R5_rYgByn0kF0ko&H_FGpMWE8D7);YU9*nB1OebtgL@A ztj&^;l}10Oo^MqS(2S)7?};3j`JYVz7DPlzVcdpJ_xayiF#iCGOra?v0(R!Rchy`Y z2V_M{tV_!AUj6&%C#Fl{$KgI8ac%oL#APk8$EG`b{rRpneLolLNmIL?dsm-sHEf|S zwMpIzGUhKi_Q|5AP=t~zQmRuT@%CK?(qv@D3q=Ecs|SDQM52)i$?6et5?DOzpIv9G z7piqLxXO!X)%5%59*F^rde^Z{(H>54)p>qiqEU=!kNk&|i?46Y>!-tFu@Be!K%<=B z(^N%-cEdXxB^5UNJ-c(D(qSd2Y=lblD({9e5u)5EFNkr+xbhg-r*M$^gqUWnnoWKKRFPZN)SzKLy8jB*9>p5L77r&p&L z&6Ik^P?gIOG2Q1c+W6GUQ6ny%>C#_?p>G%Y-$6TvqfxGSjkxvtd1~eTLwO60RlvnO zSJ&&Q>J-Ct$(t@RFTyXko$D09fg2@Tt~QU6`Q@NDk&yK_0Z0vd)-^pz-GL~#^#1@o zwYFbPkb{D&m+;o1jAKS#SDewHzM&!nXB#u{+5)rbmyJU?As(g>qWe~R`u_R_-L}j0 zah`RUMJ-rj%gz2%pa|Mv80B19tTEdZ40E3U0F|nPQQhGZRz1#m{O_r2F?Qbz-<<_Q zGJ0)7!^I^2*w|m!P~GmAi1YmR)l|BWQFg|nuLqa&pz2(iN+h%2jRiZR67Y<#bYh2> zItV-7nu22K&)V-s@qMypzM2E#DHz*J;XJbaznunUeM@MSTD|^SzMD9&QVfX2BfPwR z7mY-Q4mb>>V|v#Yp|yxelCtiV$LF4dSB6pr1T8)BtO z!HaRV5fQ4;1Xf1NN1STb48{a${{Xl1pv}vuN>^)|`QCjstKl-=N_c!OFWkn0CN_9e z9#ws`$($6J#zrZ|OlT1*SaDMP{Kl!;#xBGHmhpd2D$q$FhGYK!054K;q;}J0IKYl{ z#LRasO9~c+=RidU)7wq&+`p<`oa-3cmL1fH>Hh$)jQ;@qr}R?(v!SwM(T7*zJD9s& z!HShNUA5yQCN_SPzpjFtl=sf5;oxiV)SyS4dYSy=S~gCMJ*mAh<%-vCJLnM=+XmFy zyqVWJ!s8vaa*>UoDNona<)N4e$DS{?fsnnuC_Y*NIcpYr>qhs4ygAQg(#lUrg364C z(?B&7!rh(9tu(QTQ4xGgSN{N&rP~#XT4ldKuDS9S=qiGwO1qw#%565b*OwYhN`Ssw zky!H9H%O>kC$M>FF^Sx%ywKLGt0qY%EN_#wo?cW}-lEzf`rmXVRr#oYD94V^!sXgW;=4oXU`grZ?PkSVk6T%cyHZCH0E9W;SoiLlyQH|NdXXZ2l$ynzO4Qvl86^9=! z3dCaec-E`DnfqunhLew7YQgGrtmMH}%cpUST~KH9zJgWa{{YsRH-5R+t;>sijWJ^> zQxK1*Ith5awSP@k;ot69urc>WRgbI97xbh%^5psiQ@f4ORLtW ziCIRo7?)Fvi{bicF)F$a+Qq0ZA8jSdR74(41gKnY_0EGvl1#j@?`D|8cTaIliB{hA z=b@Fxv(1^oprf`;1xGzglULl-fSmZdd3|)o44(;ZgypKvf!`;kw|9sBzhCm`+M=8u zy17TG)9I0%SjJu;O8M)W-hnF1V{OTh`rMjuaD2v-RSMQ+F zyzP}WRCm^D_V`M=LoSG^ce+tIryAQ*)AaYJk9`C1{{Z6}qU(C$);~Ic>S7*~k;D?Bx#EXv=27IgEP|1{*a%B1Qs&;LR zg1pZ^zJkaS=#t$S(u@VXR%`Q(M5M%H21HzE4>}ykOg+EOoJ+xbMIFu2^w3t&sNz>m zvMB!mA6;TFw3L}tdpu`T`jsQcm*#ZKz`2W>vpCQU{M%1I+dzxrQ0E4c+KC;?)$+cE znIw?hXOJ`+J{jLnbpE_+LRBKXSBhK4otsHqtFsOr9uI`OPqKbIxO(w z^)X9sryKeDXd*N=w0ahr?JkXU$t&g(68Qcp&`v)HBLX<3b9`u+%`8{T&Lo?MdVjrV zbZkJZQ{4V^?~+%ASkzOurD&=#3uT6)^I@VrL!~pRv!?BE6pPx#Z1?9-UB!|+YQp<# z(bDO4C-FWPPkdl*QY*BqwdIa~&V!#$B&7cUbgO0ERuA@S4bV_cs66(paqsolMp2RR zI;Pp(;QdCVj7Uj}$JKj1s=ogK`=Gv`LVZu`4w_rFz+HgxT7j2_5H^JH?gz-vZD~hm zO=USlB1JiCzHz1Ar%8{9EF~LJFxTfMg9J+@Pf>Q2kokFI%fEdYoIg!a%KbatYopSW z()b9ZkF1^pSPxlUkZES5D8hw=i#7ygDrlE(*zWV^pq`XB^|m7Bh^49(VjEgQF*Drrp7V&jqF(0DfyiN8@0(Q;)m1x>6c3Sd#>bv)h@Vo7WEnm zza#SW!eqLhnayWE&VwKRy|R&Si0Hf6TUZiePg}vSnpUXono-UcSSG9dLGnK97 zdBA5tl9XhfHtY-AeeqZF(giZKDe#_O<5M`W!kO#Y?dXHRoGh_BZ`Crm+;EclKq+0KRD z#4_=3e=TBY*}H@@rhQkbTfelU(6#QALI444v>T4frr ze9JNFYGw>fT&uHoY7rDn=n!NCd0yHBxN)CtQzleUCH(ZODAOUM%Z%N6bD#py9`$Yw z9ETV?8ls4?+ibj>O$=0I4td8HpuldrE1OFVU=TgD{Y<+X|`sf~6T8A0!>8!h>lvj^UPX9r z=U0sby82`;;wleiGy7V6ujbvJ)xLxUBd%eq&4u~q&xwyxBbk20si zx6VB;P|1-iLi0hYjHS~XxVTSF4b z*gZJsL06J;cRVqwN;NTMxR+0u_>WB%c@L|q{arA^jqqFi=ro)Rvz~m-6eowxtmtaI zHeM6YLT5L}eFe{`^(0DG)-9{~`RJu`aAke9h{#aFnI7lirZEw2$mb_I2%+PTT{7_l zcrmT!W%c74-mXt8&{X-iX?==x7F7?TVb*F?)M7MaT0&H)uWbRkMtix_J5o|hbB`@e zTgN`Sb43{RGy_!ec-51Z&A;2_#<0t#BeY4Flm)W<&OJ2CsIryVN;HwEj~%Pf&_lQ_ zT653mo{~2b);PSFdGh?uvo?3RwyM)6vV_%+OjG;lC2Ce+^wL)9bN1Fm&NK=nyu7ps zhHK<$o4Vz9CAS(P=G?ceN}}M;r|tC6Xp-GSntSVd-It8#LTzh=@^3oXD(@KwK-aaL z4gGanNLJ%?QpbzO@c!D1;{LqpTNAhMpwW)$k>OtYvYvwpn^?P{P%XOU=BU2^0C!x* zvCMBZs$xb4M$6DiXBp0};&k>%Nn2|6$8SD$JT!JYd1%iPYu`ZeR$eq+(elQYa+Bg! zz+1&*TZwpzu17${V+Vw>M?uD1b6$Ga7Q8+z-MH4YaG1t{g~KM z+9Qv?uo=tWL8Ovz1)K$F$?1AVzqFUWos4`=+%$`yr#b;DHeET-Z5A9F(dPy0DcN#o zK+4)waoe_x4f^(VtT@lPqn!iEW-D5NyB;y7_c_P0s*g@z4qZa&cOtX&{E&Z)Fzw5d4781mG(tnzlyR@71r`*+f2Lm)uOVWhM4&vjR8tr4TB5**>K zfA>J#ND=AAM7f(L#O+0Y?wf-gh6g#fT=w{?@t0JaY~(n8dI6qcaf%&`cjHylrwo_@ zQbhf=0VW%}81~mlb>5sdZ0V=!9g$o0QB%`E%XFo&cAyyr;<@tC(+H{5fW3(=W19@> zVp+chdH2>=sIto`XP)=>&|r@G+*M(3Rn^(?QZn2>-oJfL%NcbLPR<=%Ck@o1$~$gW z22A6ho`OuQsv!RWXzFpd&a+AU{WP@1sV3Y$T3DNfLyewWk@u^q zp4IE3Q{6)vks82fz3G%%-C4H5K6p6Pk@T}U;_ICUUF3R9BMzG1>*ilwa^;PE9t~B- zGYyy9^C&-^$R8k|VjJjJ#@tViKusmEp2p+8D(R(*?3iSoSnS z;@m@V7!RG6bNTJ52_r|Z(^m=kNQ+fP2Gl&o?Ee6&@Ph3=48KD(dsoe^q9T!ZwC zYR@_yZj};?I+@I)yPr)YkTP$*_te5+ zF==Y(F!|kf(<#ryRbP$17u)9Os_OK*&t7;ok|le$0q>tZb0aE~(%d&y6ZtjQsT!zujwVhPZ=`fL_rBkH#thVd;Im+rpKolvQkj-M62A{&lEqv zch@-giQuvE4?doynz_Rxb${I_3i|ndGzUq^J0oH?UD*EskIdLoLSOG`5{ta%dA@S!3D;M;rT6VnQs@CaB zFq~yLGCA2>Y_5MiwC;(}yGHC{)%$A>Bo6E zj9OUA+?D4^j^291XM|-g4c&@+XgTd=4Z}s%e7v;oAt=cVW{G=wY1=78QNeVWuGRCu zO;L`T?2R$Ik0q5{{$7CTN<>zrIU^E0nLqREsaQ9=+RhKmX;-T$OB5V#uKXT=hyhqZlkh636f)iQM#kKetMH>9Nu{L@2wJ2B*d2)PCqL3 zq>?#m@fWw|G#Z%*-54py(a|PYizUAiZ=RVKIWTTFg+8CQq|1~KH$hNdoJoZ_sTX69 z+xgI0m^*B&IMrZPho&)<{j@w(IL_<7&FP#-%0S$24Oh0Z<2}shoi#3} z=~>X-_U^g~Zc2xK4PM+w#5P?Ws{H=CNlT?D&LMbWg_l{>%9C~GzFG;bvPGu*X-^Hf z^6jORc9D#8=D(kptvPO;!r>ceT$%umac(dU zrFfT$w-%^FSXfbAfS_Z6B%e7XSbtfdbN?4$mA=~Mxi?tJ) zqb=D3)@zEYeu&`?e9hFY_HQH zvhRb7tmrhNjrBb9oWDH{3Y2FWD#06HJtD`xfd1XB-Qc`x`f-%kY-Eu)G+iEgoYCHo zEoiPlGmE;=B$~BKG26bgDG`iVqVFrJUGjsuCGpAIiC{}b4zKO&y$WF zPh$g}1B!UG)Fty`q#io11mNRn=puYm3E@;iCxWfoGxpW3pz z`)3*j>HI#VW7L<02XqmkFYBH>@vd)raeefa@Y^pq^wyoSTve_Pewqzb_^vnKM{IV> zr)u}Q_10Mk+h#qzG#Pwck`DfQ+mi#1$8Bw_rQnL=fb`C~&#w-rN2Su2L#9in$(LF) zmhPa{4Xi+>s5x%&K?4+#D6(qAYd*euhPQfaMW>qe*1G3GQL3x%WBJjwjb}Zpop0?h zYo+`R@SGvka$fr)`HWn@Q$Z3cNXA209(AmX7B?t}ws+7C=8Ru$VzyFKb~*$ZNt9xt z_SDF#YY!S?60OotKTQN}3kz#5gIVMry2bOKbGE90=WMiDn^x<#gG>o>KE}24MZSFN zRVgvE6?IOnkpeGI3mTDp=qJTEZchwxVT}I(=A~@y^wk$4UK_mMmWe6{VDiuu?Y`Hh zsI0~BW`_3etT?@5-z**U8zn!ptf~XsRL%HAC_!HMU;NVUcS56Ob_W>8*FgMUthxt9 z>dEQF+;rr$FDP((>Q;S7Vm3hRa9jR$EnYmd-H8|#6u|$jfRH z;jCk|=pv{`FYl}35R%FygJjX*|D#w?mM67g^P(Og*9YBjA28XWV7OoWU{6^v8QuBdztDLX3g z>6HMjslsPcSAP|8U-_z(pr55Hvgbff*{ZyMcWogkhgB@Pv}*nJBxANV)wjW_>9OD9 zFAo%U&{WOE5;m%#gB)W}O@ra2ky(k4uNu2hBr;2}Z0CZQA!MkVv)Yf7WjGg3|~ z^R|bnG&f38_mkT}bLr2gQR)m!bHOarPki3BfiDMuY>low{{U@BN-+k8ShJe)#+|z} zD9dft#G}_yQuPrPB`V67e_xigRhU5feRV-8F;l`u?nfZ@^Z9CLb~2K@cgL2hFNwbr z%QF1DwG3qm7q~#%o(^?TBQ3-|e^;0J)4nH6j65nT$CuO7{rAyQEG1;+AD&%l#fe=( zjE*h8Uzazooqm*heN;N18Vf|~uC>o$Lec2{{{TG@#jp%3M2`>W{%aDEAsE?}s;)k| zNU%ixQojkEXvp0Yt7K#}jdP3ku=mb@qjgRtfJ&Rw(IiNb8>Wll@)OpymljkELW>SR z&pM$xY$ODVP_bNAe?0XRGbhu8Xo&-Cwij*lPH&&L8e@AxC6`pZW3}M#u6-!VbCD9U zY5C5&OQ#*ZIGsXX9~Mk!j(vYCK{FthDwVXZ3xC(wTWp4Ll#%URdtc922|`hh-P_T8 zG2k)H`gv-0#2CsuqSDR@N88HvM@jVdyJrJFJV`$nyue)i}&j@F1qQLhlj?~eTA^Osw6ES$Pxr~Qm$%S^gMIW3HQ zH`sf6@O`wei{ZOKpNBc-xzQKboWHI9t8zvu00(rf0IPGyo<7>=C_Oe4V=Ly@C%%cJ zw1MGGwiMOh&pPQr)7?5|J{xTUxX*nR=czqC!YEcA4OGYwNRH*bxB7km06w~@&tOIb zW8odp%6Izav_@Da&Qh9CpWC7#3GPRHhx6sFUCP;b9{TAD>5_}#q`GeN{`D|o&B#Wn zYmdL>Xf9HU5gA5ZIQTb38&X;>&7rU zn?S3-Zu!tmCDrNmjfP4DX)}0xKDs5dYDb(U=8rBkn@*HTNiJC*&NOad1~%Q^+}-FM z&rsX6sq;z~bYI`=qp5pHkf_*GEbbjIk=MlE;>QR%zW9QH%x-++6$c{qOTS z31PK25)3Vsj@l&#ZN>PVuWQE!w6Wo0N%M`A{#J;1ri3{-4&R@?fR^K>2+5sVkxC31 zKRX)eblF7-1#(F(PSvRRlBy-^;;j1q`legDjN<_pcGBuUem;C?G^GU@bm*X= z)M9k{ak*7SCT{3Gf8LedB$1gt+6`x>L-iLLy2@mIbbGHCm}r04I2~^8C)Dj-yHc0P_Q& z(rs9k7qP39q((k0Qhu!W(5&lrNXDXeKgU0P6}_V6ZZn``T|q8P@mJ-ki73e=ZA>?c z*2^mz$DbNF4ofcd2n9)gowZSnUYgCSXb)xc_R%~7q`bf0o%_16mLSl0K;ZKI^cn*h zcv|^mSgFk4VP*Sy=igFczC+7epNDnfS}(JW1$dq8d;Xxo=lpS?o3ubEtQr|SyLjLX zX(HXqfaGgB4JhqPM&pEd_tHU(2}=A{8La;RjbwlUH4`XmZQ6xV%juwG+9gEvy;lA5 ziBaGMp!wy8WM`sgt2jP~T?Eoa;1tvJZUsB4U1(6b{2q_rMgVh3(?71JQ~B2AQF{-iCg^mo*fZs}7?y*yV*fxMTjwIKu3@z4m7#!ouaEZsYo zEog};NQo9wa0YKlbx^YLgD!yEa@%E(K6=G@raNhN)>V?*t;qPI3*62>_d$%vrt{s# zvNhZe{%*92TSZO1^}5!nT()?Q1lDSmm9I6R3MYVl4R7rV^<6e*n^QW`h?cUU%^D0t8;pl9 zmVv6{8eMew_|zMP@7jMt~)M{#8Q*fL7V+Y{_7VS zW1ROfrZWs9@_Tt`+%zFy>p`3-*Pb8oqN+yWuT5-}#Y)dQ+niI!mVva0tBwt3J8-Uo zvyR@{#}<}o8jv7g?rT-68~*?r#BSB1th`>Z8@x&$h3G07nv*(sRc#O7T5=^AKtodq#^Q>n#H8!J+|YX-Imxkm6;ZEp`@=RvOVrscH<37gSe z;l6a=g$Eqy2aX(R+J)nqJ@hFnU(~&@X?K2=;_$p^HL3%i*{y0H(_`4@L(0&49kj$+ z2Mf;{3^I*~mQ(GaS_gxTYUi8s^wzwYr_Vr$#Xq|3R~4+RUtclNLmI{F7u%lIpkzdh zSjyD#703D1`*-cD9jAnMWM6$0n~51Y9R?%ITz1gLff2te)&V)MS6C98tp>_f;LU4L z%L$*hlxUXJ9vacLp-SD6d+0JyXH0go2M2Z51z6Z}=hItkwu=-VB=^u%pv7Y^)S_nw ziB4N-MDjiKk?%Z(JnIBPrSg}Sf^0G^r)@ILczjN8&sPPEWP~LL!*Z{DcQv-lttE_^ zpnCoq38;m|Z1Xe`D)&c=&NZYl6N~dRUVm*esTZ|WueO6%(>_{cZH27t zw?MHP#yQrKOK1r~TH`>0Cx&J&kG8c%jM6eICU5h;jqiseAfc{4dU|nV)`-aIvaGKc z-v)wrGHndFssrV!Sj)i}#yR93Yu7<4New;MzL|AauvRK327zH2$H5sJW8&QR{{R}F z2`iCyVLbkNxJjH|ox7J5U;bxA!q|*h@dWRmlc0Kr=#qq8u?Vs~wIrRpV}Z*?e=)7J zP+1p_F0sa@b-Oj?;dC8jNt9)~b1D|@vBmpnpHgZaO7N6zC_g;)Ek+T{a~by*!abmG6H$RFcGW!*MG zoZ6+nx{Hy~1i{@6ETA&pB(Q*qT>k(%CWSDtc{m)nJvh-_Sut4>b}H0L?T>!imNLDv zB(_G^7v-*S>QaCfQ+3DFT`Q+JG2GqQt&iuffRsPx+tiB|_ewlb&3bm$+8d<{VIEz- zo|>XjdXH13)2^8+ref20ziZ8D*vP0<zg~l!V9-p6vfQz@MBXCKLR&1uZ z_V?BeuJ`ort7-D>^0J&*7$V-8jM_zUoEWdHZUPaf=<>aal^Q}IpY#9FlX;zmxkfH&7Obckspb)lPj!r?H;zhkn01_x08!G21T@STBq7 z_2=JQlYEnKT#+ic_t11+l)8APTdw%$vD+B()^!M>!J5vRKx7vJ;CRkAUI zHR=-cBVu9xb)`N1CN9{Ey20nU>)Syb8+vR}4iBGx{GYdNZINa%=2`I}SL2GPxJY1Le{PfgI!WMYD z-;S*naS!c2>eHdaU1k1bB-41qa(Nq0%d(?HzYPM+>1Sk691T>?al zQ=+&)bv1OnM8*DROVgBx463*q_tRkt3Xw@(dMf&TGH@BnFgKBBBI};t>rkxZV2i>X z{{TP6osc3vDMJ>RtXf~5jqKwH?eN5WIY~F=epF+~)CC32Kf2?Z^U%&bMRw({&uvtM zWbTKHy(VvuO%j4`y{^=aQ;XF=-2VW$WqUzwKZ@3{Bb~<;U#C<+l@N~gjkNb)FP?_t zTT#azeYwyOoa1rnuI9ysid80)H5s*BQOke(qD=adY-J?JDgn>iL`}Ci)fLHl3MVLa z1x8Sj%}8tNCZ^I-BO2X;Jn8JQYOwZC&*N0D#glfN%KrZVo%95D@2%i-b$U68CRZ!2 zZFI<~?CMB1o)mW;bXTslAdb+LlB{Dt`e-L;5#1_RCzq4^>u#wG&E4~P@2z7pg1_p^ z{A)@whlOeH4A`D$o`Xvgkr=U${clnSnjYHe;Y^ebIj7~K0(CQV8KAJxNt@>!S^3*k z%fP}w_s$V~zMq)UD~!e+@&)A4% zXf&nq8=ww&KAJZ>Xfe%RG{#ij`thuW)yo@p=Z}_w>PYyX6Q>=ckn+@}suUjh*5^ zeYHhxHrn#zTH^HTo4$3Y8VL|$KEIy24Y3rvE1JfzF_es1$s<9CIm_hfO0ms6oH`9M zfyQ!GYYGud@bjKMv>~$p0K4Bp;RgyY|s zoEWBMaxUam`TgwF$}x{oj`BhM(c${(+eYZP^)v?RhTg+^*O4CD7To#kHF)DeZ^II! zDA7{!TD|*fP0~n4@5t7YIo;1{<3d*m=ql_*3eI&l#=*nuszHF3NaoynR-}^>i9TpL z47coSQ)W5stX-&J%4t(Lr?ol?-0hH&Pj9}lKZiK6AhDH;8!_fMPnM#uJo;Z6WOl1e zSm-kDlfiyk&QQmfmWlvZK2@cpC`IJZGT3!|Hz*H&Q$ZUF=gUs}sLz4sv#D`(S;goo z2L7Nf(LqCxrnO?KElZMG46Z`8TO`4pu@z~oFPGmz8(q{=`ZuNUxzEo=JhfCM_(AP_ zXeLpVB*t-LBatc5URLU*IZn69XvMdVHH&E7U9#P10{A=Wirod@8q48tD&6Xd42f+y z#CgyGx?U1ia0Td*;f;4MM;2J{*{tTgxHKICBpaJ*Yft`8uYp*&EzMtj2{3J}_Tkk_ z!*M1h92L9mpe9A0*vW13)o$4)5o0Rz1kXJC=s9vn46_<9PzqFSe5*jh1rFIrWmaQG z_N3L{eOn%Y_-OP3ZMa{ESrDsh@{xO6;Ys-JY) zCJ_QFy0e?l=f0SX*wke@Y9}YQt7hYLWl6}DP5wHHl9*+8ANJ#q{L=|LuoBGo1#aYqcOatro;oHl}fx$=60xsLmU)8d(`%%ww^xY?O>mrqeEpViS#t z2@MwKS}%w;ESx#MaiaHh{6i+N`4`T!w4ws}Nh?0OBD!_d>TOe|T`DYL$BCMi)8AP6(X6^Yqr*1CsogHP6dME_!Pld{?~lKOJa44{Hf{r5gEpI%7Ai z!qafj27bRIM~Fi9fs}Ko7|X!P*wI-o@n3I!X}vzAzvJmKjdyOJvBUP(j1Hi`5xaLN zPdGeZ1AsnXhNugZ2@%^FJ{-|^=b~|x2}8keENhS4)0je1dYSGE?e)&4 zDk6TUc9kc7-^PGhcqL%S@}*r|Y~c5=PcAf*hWNXc@>?D;+ZB#=MBeSO6qzEnmS3mmmb-QT0H}Yc>GXPiUxrJk z{lit>`Oj@}i57AAl1P}S{{U-#e|=o#{Wv>F%Ij=_qmFp>^Zr5^PH+5^lPNJGN%7ed zh~4%B+Ko(Jo4uT+JZ&SiEnGf@TlDkLb*0giWeu^EWq0ahx8`4cYo5k%lj89)jnEul zZu$tG%aBKH{{Z&8@B4n*W4EWYizVSJ9(Su_C`ZQ~q^R35xz{&{LA1~EyO*l(X_zNc{-l}MwV+0Wth(Dh~1 zgdr}a#1MqIj)?4#ABxH>WL<8*M5B-V(bAmFml9Hj0!@MCURV3;j9Bl4VPkyvr?=DF zRndAKUa24IJ}*q$L(>T-mKwjVieMc$F=B3gbMpt}+OfjMo}t0%LOs8Epq1N7Gd(H~#<< z&Q)q3pO?<2Cy5|oI8HI00hxdHSDt%oMK8q}J`{*K^wmP{FcmL8*Y@LIr~d%@=l=l1 z{{a0p{{Z3t0ImLur~d%-um1pvcQ=1_fZq8A|TtC0pP+W#2d`lS?+uijp@crFR`8_(AB)mt5 zzI*fdd1y=tS+IV5UY?}4S5gK$-Q~r$`nm~X+-xEzHH6~z(sNm)WfD!VP?KntUzyHz zD<6j~z;32Hb5)Lhx;kv3$Rv%v+6uTzwjF_^m*@FGCp(!IuG_p`e+^ zZuSR+Y4GuUW!9QEu#`envu?bOJvF=}`3u9tpO&W-HF?kTods3R8DVY5-n2t&d!zy> zWo?WccpeeJ($Y6d%PY5s3j>)`=2}e>Ndog zxpv`L`s-rkRTWvseF26B0%x7dGm@u#}^FyZ3&$^ZIKB)r_LN0WM3>LqvSh?&*>QZYhg1tcGJ3 zcYBHHrZV`GfW|U#akul`&`5J!ICEc}wNdfNAsmI^`KygeDvB&`BX_J8HE1}{B19K0 z{+?{TR?;znIHvN+C1Z=e=0AN#C?)55WqeL{L^hYe=O0}IFV(fEEh{c_o_=~IyCPW- zx;Xdwx{Atkq!_fdXKyD!%CQ@x`PP>sw}!a=^)IHbGubuS6>;M2`TXc6uvka9z4cLy zY$Vp=_c#yC=tIQZNe}5Vch&?u8LwRiy|-~K&wT)1WzM=!;gXxvSr!GxuEyHW@2Ga~ zqx9W+=m|xHMI{x!aetZ7{jKwUT3IrFTHO8ncF-N_jX7hVK6Du?&DBPZa@khVUzMQI ziQYzUj!iP~%VHROO=t6+4=kE*TD)2Jw?IoRfO}~+fb}BNpDWbX>1FqM(R_MnE5gPh z`mZLdYqmg9R;}^*T9T}}eGW7&%FG{41;@o9kk^rmH5K8%mb2nq=T$XoQY+Im=r-hc zZZ}uHrN|Lf4*E|Bl8sqf19L~dfpSEuO=!s%Y^n3TWFq3)=JX|3o8_Rr%;z2Xsy|mg zm!Yt-ku7TLoe_+uF96D1&|Z$*{InUX#*G)7@jyK$T6_u27JhhtAB7rX*k0B>89w8)a8|s*4kquKLm& zZkqD)(fV5R<eFn$>xh4%yIX=aHAsjRjtAyVkTpC337|9OqbRzvn?wlu0!na9*@!PS#G| z=WS)2qzYNaaB5Y}x1eke_F&fSnr!-KRV0s5m699d2BNawJv116u-~4M!<_#5J!?pm ziSc9a!`z{V^UuFnh}+Urig;& z4}ArHYK?>R*I{88#JFk4|xkI7<0*QSG1gt0fhm!~Ok9+M?6buq8X)6|c{lhcP-pGy+l6mWKPsUvaT-FJDnM})rW zcHn>WL8L5qW5}*GU0Gu2B`mQHHH(nM13SE2-Epiim5)u6BM9*K_t0GBeOWLTG!?=5 zjYMS&y0DF-jn0RoE7%j>G{#Y?`|6ZgNS#&S#r^ag?A=wiD`lF!vPN)(fEA;IkLO2< zGqxdTaIEU2##8?Qk8qjscF+SahgH*%=k!zctyCCA@pQ>nTbFJ;`MpCFE|$yo_0`3M zx}F%e%fn7Rp8o(n70hmj_Ptx+oS4cxqW+_gmW~V&suioRO!23w(t2G$a&k3^9G_hf z+@%@FrRR0mIs{bQAkn#a{k0@=;EFd(MQWD6RK&a=Gwq<;Yoog%xd9i;9D3?+f9RsJ z2cOGWh)E=E4-*v4Yp+R+*k@|vc4&KWV^LahoEWnh$v0c;pUT%Vg<5fn&V03RP?RH# z#`3+quiH`)+qwjE+ctdo)f!7C=I748Z!KTLl1Pjgk-NMX+;tme@W|{JD(A}vt!@?5 zh*6FUtH0ks&X>Xxi*4GG@;+YgI+(};5$Zb>Qr~?COqnU~BpkBB`+Dl4%444uHse2R z{{X!ar2I%*z4KXp{`z`-O`SO%EyE*hh`gQe&sinaiz&+PHEmy>bnj#{jJCzWYSxO| zcJ$G(o?_FBI8SGtE+CPViIg#0#81pumasCEDqDh#{{S58by&Su#N^H7SJzN!LLEsg zSlur)ALai5A4`!Qr%E8~_;5l-cV$}g#r`@Dfe6NP+ZM7rIp2 z?s*ylT~nysY9&4kP&|%W`RI{KvSLW95gs%7<*Mj)BMA(~T`?H}!FjJQEl4uyN!(LR zwwZJ5{Adr=GAog&#-CQc{{Ve-kHVKtSE17HPaloUw@vtjGS6Xd?ZZg z^Y59q7kdIKiYoyy$t%1WiFdAkg}HUe=fdyuC&4gj7m|a zyZv+Lsg&i^-782L3-ZU;Ky_r3VuL1!HhjL=($A-RMPQ|aRGt2prG6(?GmvzM7mjgvHBR5NhLtYVuzVYWkChQZ{@-TUK+NuY9e^jA1*xE#`oYgs*c* zWd1R&4z9@(qEWrfRq=W>-_u$sCi*IzIyU%i4+<5b^s7l#f5L^VGo!TGkY}lKu1>sX(g5m(Sy%RwMn%&dGk- z%`vHAkKak*j>Sc%(1Ym2vv#6pCe3SQ@&M&txW=QhbaEqriL^H$Gf1!n28jreYJ@0 z1Q#`RgVS4Y{GduMG3EEs7|Low3o7Ei`UR4VI*h;LDg|9M7 z7Fi#utX9m%?<4$ZF(xI72~BtWqfJ}bqlr2$_La7r>tKcCy#fVtHn@4?M6SG7>3^P@ z1-w1=QjXYVz1b+nf-0Pk8oHAg!c=mn(?U4K4<5S77|xuRnt9M`l;tUM$#d_ZXvuQC zV;WeLRj>C4Z8%{r@~geo-|zY5pe0x5@88!?Oc_+vh1`&|KDwJXX5U>V&k2(mdGG!- z0I9bWTVb77NEv4}>+^obrbT7S=TtD;wJ~(fCf4G5Q4q>V>&$=GwPRwWkIH(JqF zJc$vZ?Vtm6fXcX|omLpJ6uJek-%>|%Qd(x()zWmoOk*4UPe1JA@z6|)rb}|p8+odJ zni|_=t@5oB1B?1rs467dV|7cMdVKT%4rPn)p}zN~*)@-*oKb7HoM;LNxo<_Td9L1C zWXAj$J#(yGEfnJGjRWNo=S)So#@V=_yVSC*F)KZ}#)>@aL8~3FPTvaMhK7a2{!|SI%++aJp(3aK5&bZbE&M)XZY5oNSVG31<$6$m5H{nWcun-Hy1kxoygs7tIMp&#>j;fzJ9t1 zInG@JC`vM6II)y@C5Kud%(|{=@2reEo;b05lC*^?J`t-L&<*c5ImUU=+2LESTx(-$ zR&SfpSiaf|_-6BTsxEJwe6=}RDfQJusW?Vags7hz#aoOPf=T*6p;<*u7aCfdIkb9L#h{kUqoYU0I`J|#I??X5tURN`B6qBUS= zIH8(v=~{Q#g%3IK=g&l9vWqHv()0c_M9F(=nq3D;N2o=5yP~Gz&TsJ4l@6r#9~QDo zC4Bv~jO7V21dKt)o9V47OzEVUNWgJsG#uoTLV>%!+1FO%34B<)lCHVeHXvIr+$Voc zcAO$Y5_*>_XekeuZ~f6z)BRNve+|U188gjeQ&U*9PZVwU)jPfx!5Cid%|D&B5toiE zjl@nOR-kKgBeakbb4TS~h{|%5Pt_}-zB_9~Z)rmKNB!wy%cueJU*Ge#sM1CRXj7Sa zzs|5iAnjiN0I2lV>Z3VIC5){+v`|PomS;YCBcys`T}N*vlJ9@}{{XsxAw9MsZNl^Q z)Y}&nW#f%?q=s>4>RwMTzvXB#B__vgVwb|i_Wizk&s(YRj+;3!f}pEc%6W0E5-Eg> zSG{ujYJ8}7M+N@?ca>->cId|B#6Rud+0)b*+$RJisb!_t*S4xrjAbZFRUp06z+;L% z^)fc?xk5zq8|UX)I5DWFq0u^>UAHI)_XYlUuUgRGPCYVAgfkZ+dwks;I9!N|3;L@c zFHJB>xQt_RGIz<{X#W6uqDcg39(*&4Sl3uFIvc3!)(z6ceqHsWe-S_`YpzO z2agF-IqJ#sztR*8b8HCnckrR#oG~ zse@n>WOyObX0<8k$T?^9H}&5hYmFHuvYL5IpgQ?Zru=5C&0LNos76>HRw2?$AlOuY z>uOHmsWEan2&{wFR98ALUUpr!Gt$c-Lp7yF1|F7mo*|7D{-w@XaO1b8OEU*+o+g>3 zkk{%KH2uaEh~gWp6}`|~B?>|YpP!XRlK~>#TB(qm)J}f=wN0fpCN%Ikb_|l`N!p~Z=4nq1*iPVa%c6+Jt*0b4Ux!(odd0H7gL2^Qo{2E| z3t2vQ#UxfkM&3N^@vNa!<|_vNwL*v1Zp7mRbMFTwz+PTVa&uW}5~LHRnR5j9M~jzM zAV97`<-2i_24iF-ww5O!X@IJIiynKVgwrLDDWB=H^4UQYEuxzV!d3w+Q>bG){` zm9@7bRjA&R&-*6lv%R-;6jHOAJ4=)J${1?;{e$m;KE8Lq%uvD#3{wO493BvUnlyFOr_aabCif%OzR=94 zF<3p?vyb4thE0FlW~i!za^itQ-WF4+6p>?O%6pC}>OWsPE0Cic*J#EWK*q|eHpVwu zr5d$&ybi)u`t~n=K+J3I=)?<(cVaVvB3~9iV(6%H`|gr}Gi+Nu$!UNh*#+z{P8U0| znf^WR?A(hbEltMtu6Yd<-jL?|IMx^Dk^YEN<-1K8m|Ue1U~p^LbJ?@HI}y>T z&;crNBEMYR6g-Old~p?Qnp#>xv!3ese!CBECG;h=s*__kgQ+aAgi?Mtap{x75#a)_ zFNIy(%znGWQa|k;GQ2jWLVfuc{m*A5O%0dS@ahW5PB|;VTAY$Yk?a5R zpnNDJLAT(?lL6@pCl~#GBYXD!pG9P}4YlMy_aQd(MBKclTN8W;s(ZOLimeWn%K6Ng+6= zr(EaR%CeCBu8-z|EHFmZw7VKklaTmu0UQ55V$=rC9~`gOukgjZJI5iCnAFZp}l zQBIN5+JgPH;iw}`&IFp{JuLLG0Y%MPcVzO(?7LU4RB1c1Ji||&(1HIJr3h*EpPGp% ztt5|>6`4PN&j2$ew=OS^EcH@-(q6fspU+L}u=$l2H_L9FoqJGxR~2odga!TUwR77` z*<^DruFT5Y@TW?ta3kjjb zStf$?v~)Ep%jiT1V?V8$RGsRstWV~>!D1HQ7r(F_yH0F2QgTOtlBijFT_lkM4~`bo zx~>pq10T9RXWI2Spw#dV>yzty*TvWfqiRmxb?CcmqQ_@=Er`@0%H)3OdxL;Yqvi3S z35rFVvd2gU^FOnK@u+Hu@}YHP!;)pI{{FLHCA3!ZgDMo_#y{=*Q`c&a7YLidrU>00 z-Vk5U6X;E@A|d^dTV8t>C^m;Yiy^i_f{aa(wH?0vr+BFb#3{Z78JnMbL$S{58aCary7ocYG$%Kn?k@Sg5l!b%mcrodF&E0*$$9jNCl@gt#MlB5;Lj9`lD|CS z7_fi76|s-j{#e5etuaH{4X43H@M%(+3XClIRmD+G2JvNN^$x$7auSq9TAU{Vr;+wr zp-KYWc}?WLU}>zB2ZRmWiwh$(0PMie?4U^s&py~w4Ft6`y(7v%NwSt66ph5`4*(HC z5y}kbWe1pM?`r;ZjpijczSdV(JZg&4Ak;VYXBODm<*dHINzWIoe4p49D_;FZNrYd{ z8chz0aClL*;^^)bBxg~4$PfC4H3>OQuDu_4iKn-IGKEY&i6-wTkf6|8p9?lAv+pC! zkXaL!#O434!DDNJxr+Fm3lGl7bU>=%QtRc_U&w5bw|57-%!r%PpZ!l$JC72R$LQ^h z9;BL^XTJZt7%beuQ#+UokUsC06kbrs5oFd`XA9K*KIxJBq@=fXvSFQ2eRK z6MySteJv`$ecH$lE^;k;B`R1`cM8BSDvQ4K$_19ZaHv7v^DA>=q}Z0Tljy(}R|q-r zhT5d7P1iL3?b#X-owSs3zu8{bOF(Nr$Z6q!H45tq7Wl@q68;%3)QI+_*g3i(`FZk* zXZ6KpyWE4qQBSyps(mtE$EMCV$!7Jo_mqEUDYH)%?R9ykA%D?^X?84GY>@#63a;E4E>q$T8#0!hp9O zL$QveqSw8qao*n!e*R>|V>b)of(D_JL#N2Yn!Sm|}{VC*5H zTQNY;q4e#q;w8TYvKceyD^oFoR zF|Hk!sC`Y@f2Ag7`z@1I$IZi5+h9D8d~MN|uvVjg!W}KlCD2RW0ustu1@%(9VplK4 z_Ul;p>c6_Zv)?1iw5$ecrmS=PD!qy%;UH#|^@z_OL^Cy#*H6^sh5o$*Y<$*{{ET$? zJxRuldRL?fE!fAqwx4fwoglReShXLdBmW$RDV-=Efn$D{)Jp{v_=~TRA>`V_Jb9+S zQueYZi#yBqE2#@&d|A`CM-fXl5l^KAfvD-V<12KO|0k;P?#3HU4TIUly~8TZGeN0A0z-sge=N5?+nDGhk#J^4-HSGV%P$whJQ;Oo>GyyQ%nP+oG- zj7&f?C7VW2;$*-s#NK2dG69}CD1wrE^nzlgUF3V+ z>k%x-cl5RkbZ6CTo*(LA65r)HnzDDWprw5s$@;=UBftr;x7JZBUTa)_>(=0XAUQH| zEq(bO9Cr?c3i|zmj!oZHlb^Gf8YnefV0=g^3Vm?PE%uMo8NgmFd+d(g-w4l_eoe_O z>48({9!a2I&KJUIBWQ{aK2teb9@5T=*`4d?AcM$`TCr6F<{~+{-KJQ54XQb@jowbX z9pE0?(0<=Zt@jk~o9O%t7&g=C>%jB?pqRojuW;C$hf@EM`y^x_fo&K9v2y2z*k($( z0B0V-Yd+uP;I_?^D2;UxekW zhHBo?tdjI^UxmXc*@^&=EB_?xbIjB{+S={aJf_!sS_kVUHE9no6xie4~fYQ10LTpl1IBRFGv(&d&1}r!nO8KYm~vEbHM}JuS>8m2 zLif*dewE76v)g2W;A3Z;!Pv6_`y#g4*B=uGbDQhs$Fu)c-TOx8rDkLC3~m*&t!K9w zQ1n)rxqLX(U?^aUGSt4)7AzfmM)LO0G3~}^ZwAbUd9eIFjX(bt*4Pty$1KCo$t08` zFnr;8H~rbHrL@?R9n*X0Ysne`+l5f=^AqF(lT%3ptRY|ww8ib<_H1xZ{rayL)1-#3 z)J03PjZH(h;mlWE%U6*d*Vp@&Le*_VAWT{Sv|T##J3y}FK44G|8pXv?|U z-(u&Yz5Q@ko>Eo(3hi`TTYCdLrF?NnUF|#MeI9KcH*psrm*!CfzN@|58Ec;o_l5^sF#k;#jl^j=*HoZ3%+c~dy#i%X>4QeKk=hEe{y zFsXLQ@>P?Css2^3e;dmf4$s_q25bBuGRVcyCU#JfLMn+ZQ&7J45iIUt(Trd(!%1>7 zZhj&C>KPr5UGe?a6VI~*GN@mFY3Lxi*?>Kyf-E41yBB6x67&e+1Gf9x_EU9vsVZDHNALgaWWUenEo?tfhkhHF01!a!*<61q{;*Iq>R^! zF`NE=Mkp_3ZsoWm!&CB1(@rDa0T{Gthx2LvC^Ou@&vDY|VNRFA+L*xB z1WIT$sQbaPP{`Ahe$bO!p?;IL z2hF7k!DbTF)(JK$m%e4RQpFl>e)0+)M5KO5uTiGv^}*baYgL*eRm`_pV@lK+R{TKh z^*VCIGkn#27d=Z$^PR3viM;4w=DXRWk=WDu1R?+5PJ-;20<86XBemO2T6BSjH?)g zlAXC6&(V_(wa5%(k!-~!AdX(rIVbc_Qr+z`od$sjz7}n{<-wswf?BQKA--N%yJqm3 zZPF@`;M^7eFtrU)uPs+R>s?(zzDDbe(3=@h^3P{XS_W!F48Twy@v1H*9rIDFK?eCY zxa+-QYH3E9*lFH`Jet0;=}tp_v5zk1%Ki;eVMnALIg=sZ7|%jgaBrlY4*2j&?DOSK zlw9(W3mIRr7t1RZzg}*ZxPE4}IgXrudzzh#@Xj9|c8m_4rPsax37dPzKTq*B`|9S$ zBw+D=jF^Rhiu|{Pq5XHRcLncFx0_3^in!8@b+iMqWOHpIWvu|3;F-~K5#|NhDB9G_ z8p+PS+;npLf!mE0n%3UxjU*l)EWUY^=oiYMRJ>HiHF#G3S@lWMJ=jEMakxuUk4e4o z=*z>!=cco=)?DwVyH5)y7PyTDY&U0|dfdR1^+?8)LgB;9DMr5VtPgjBZQ)$P+Ia7g zk`=G1Hq@=A_UXB6b095`9&sO`Sii*K%Fs4l%;J zxB=WdueSlpUvpkUvxS?(SEL{klx1p0j6uedb)!B_S*c6S=NOB5T+pweX>#jL$+{cv zyc-d^7(4HF#J8(<83CB~7etk*NUCyFae;Z|{q{}wuVM~o1M?i}g(O!pFEw>20?~+L zq-?8Hu{dh_zJE(qnl-ZQD&Y3qIDITM@c z72oGf2gtfgRI?KRnaSDjGp^fP=n8BKi2JFcExj6+upUW1M`n`W^b~=Sj1DJvK zDxqMvR-UFvZ3zUi#Bp;G%PtOHJ%k|`97I}*;N5YR(jVYY15-Dj!y_uXa(`uYho8)p z#el2X_}FtQzc&x=L4FArH62kE>^G zj*srw+dZbSco`CHPa~`k6ht!1^%C>g08)Eyp_-z>sFTU7qpCZ`d;mH(83Bzmcx^3v z))QBb<})NGKhilHkwxfG4kgdEOT#hJfW$vMy%4A79c*05w;nV3f9pE1idcGsB=z+` zNJ?%v(9aM;`1?{#!nzkgSr@GL9&UcA6qTKFrnr3?(%^VsH6x0K&a}ZxVJb!q|9leO z`i8HW=4$!JHP^YvjTXKbl@6z{40CgACU&{#@gyT!^c-JucNr5G6|p1wUAD(4MfcwNch^}x+G+O z70d2lOvaZZAw{-fe?7_MaEQcq)Aiv`@iK_Ap zY+iDy`xcnKM3|1g?d*7#VPq`BRSOG#Sg*M;8+FkkOO_Q78s(JlwR=Q(Jba8|I#cd| z4G(dzem|b>kkb6}&1v;jqNMR=C`w)LL5LB^^`5)K+CU#pJ<%^DYXl?UztV3=MiPgj zGfE+XlJ`t@|6s`YFg7ze$+P^6<2j)W8bSA765Ct`uqr)l5$yfhYYlC51KDO1b2J*` ztNe;zKwEiFmt5bhN`4CSa@6ocW^OqAnRWY|o9_45!RS$)W3`D|ZrejoVck&9-e?=N z34ealm`We9e7;pyLaAo33}x>Vk|i$PN4{aDtuTd5o_ot$&M)P@?*kq#=@|qSrMe4i zip3a2g05U<%tUw?ZPzc461QrBpPH6w9=AWbv+aTEz0G*Izzb8Qv*zRO=XeHdh}?+_HSmqa*G454<)%bD%BkUj zPk#Gwv8gWB4w!F)Q1$a?W!>~(iCSfk>FHMwinG=Ks}bZa2Um-t0GOth42U+fgg-mKkqb#2P?3y`xq_#UZH1ko|sw58b#O?vV zwYO5XghVcRm0A^QgnLeQN#N7S_%UHm>@%EqSVI=o3=a1V+m?kUChUW_;f?F z>h4Vr04!f4G7*7q@5GkRX0z0BVT0=(c2y3O7yx<51-<>Id4)(-d#dL#rlsNYBK;k$ ziEKY%1EjmyIr-Kkc{Da#qaNs<7uDYKTzF->-O8%8Z$~=npu68gFE!~dZ@iddeJ7|l z@=zCKmJk0XX*+8nz@tC1hutbK{?ufPaCV8W2Bt?IxzIb@kbj227tMN9yD1}zWI+}a z2qdfnnC1?QPJ7dwf=y)_YeF*%i@8}Bs75=U8%k%{Uc&DPJs z=G@9bsZh$29g%s#I1zK=k&HD=66N4-**aC4KS!-4r^!FHBix=H*0I-swNvDQzl`O; z5Fe@BR82wv?o3F5)>+vdnG1o_6{(54Aj698K0w+-mMJ!iLIk2k;9jaAZzbo91$c;M zlOu|TUDxjsQa)2$)ZQ?fFF&#cT$n`F_4lCXR%$e>z}u9UBNGKP6TKLIwtB5nJ9(#5 zh<9n&yE8AAGHRQ^;C2ii{N&YqvAbRMsM@AhP=eh)7zrNk9U9H;mdcj4o2Hw+Wy!370Yggcm%5odMJNY(rJU-4(=tG}?Hzm*q6zUO1_i^s6DQT9#?$ zRbN+)h?ilXh;OnV%&I+jLz1?ZgG&tN7F2D|@`5Pf$f` z*hh(N3QhIHqyyrw9pA*(ab^7|e&VKkqj{!tYC+?7P|t0+lit*&nYW+BZI}IQOeevA zeHT<^E7q{>{O$x}s4Agv@%Z~&&?hS9sgi*euXu6~^iCGH77s|-%?9QaT`_2-<=;IUK&$u_qmyMxE%ae2^t*rme++N{fmdP=SXqe}-j zHEE{c&~Nlea^s`nnNB5r+#6(0j&mU|ZI(8lV887OpBx~q$$ue8N48j%Pgi$D=H9&=kX-J@j=hXJZS(-~3V-2W9=AgKZ#pTeI5!(}>IRKXZ=}}Tc&?vNHospQ6~w~Z zk&AUr>v$J{uqB0EoEWPS^+P7T#CmNqRD&flsz1}Ee8`{(o)5&CKslj_YV_SzWoRu; zcLgKtEj_8dYc3|ugmRFpwmIuFv&YqYWqEthr$5`u%nBUDWnIO{;b{V~X%Hc|h?Uwg zsHY;JsoD+Ae}s{kiwNZ`f`{j($=Vz5cRQrF(2kvGlV=vuo&+*F8cPnp4ae2oM=pw{ zUM*wyU2j$TuK0rVBv)8#F)l_F8OAYp?>tW4rCG?{s^cdA#(MOw^=2p|z!hADdNorV zHig8kjOBK%%%`9lj)m5n&+Ts9w{&M1@5MrR#jD6VD#?}gFC(FQTlGILo=J93cx`;9 z{eK)i*q!z+jsu@Oh>B=o|qQ`XGQ+4pY%z%F#@`*l}Gg9D5)-*7W^86wzb z%Rg7b{AcK`@5;pRiqxNE_Xa8sII2MM7EF0JOQZM1**n8Yl0wSei^U7qtc*$1miwE+ zv@xOhRYn6X7(3Zi#~3OqJ+-kJrCgt4P-U?xKOjXEzVe1uQ+7kc*=bNTv!nD~BJc7RmEt=;3gsl(LcuY8SUemWuv{KDED|xOZ zM1_b?m>@z)B~vs7LaK!ieUg7XU+mh_R1$zl(Pg(QCU6{_9iJdqUt>po9jnYiF3;v) z0E+XGV+n!@d*#FPHX4rv<>!1V6C)DX1{wA@vY1Ls8i;9nx>Dq7*v%CSqK`qjGz;Kl#0N!LHMJdh0n66aV9>XeL- zXK$>S3@!T`&6tw6yJvhUDhmrD7l;{#UVwm{)vl=>w+#tOFX+>5{iIJDyY1{!LT8%( z8tSW~T*kQ`GMk(Yc4;#G(8ir-8<~0X<0x3lm#KO?LPLg0J<^>vPp@?5VSA6#z;eNB zrPP#_8O-S{d# zyi>Y5BWBnTP;UQwQ;V;mKO~4nywtZ5ucbM10$EsDpGUFk_I}BIc>fXaKcuzQd0=_- zO{z@m(5#koBC3!{n@Yos4ZvvknI;;a_i08`<1z(9|nDI zAA~GslAGquxgYL1etM%w8`(^NguvlqC;Vqy;440XM!($^=Z}`;izK0OqSntbdim=E zD~Xm1ys$7T7%p9ov{*gfv@&m^mG2qMt!4M`#l!1ECDYG*A^RcIAKf|(qAv<>jNGnL zEu7rgWb;e4;j*VGi_Wgc4LUqkW(WO;rBc)eIAo_R7n@W}I?1$??f$-Kqid*l~1tqI9FQ3<+@ z%KAzGzf`Ns!EknvxyH%;9_>X2{w)0zzk3?igFD${ba|)Sa*<-~v@$Z2Lm!B^;xJm0{p~rWN8uv`06r3%8cGjnS1xcP z?^SR56mCO^C_7~%)3Cx)ndUfA!KfRqM%3>~-nT68MefWxh2A%^Bn4pg5=^WA?(kaj zzdPaQ^IV_*Zk8l6oH97`#)1&5oCKu*25W&|!2tl{yGjoUF)#h=N!e8Hu)*4<{KNFd z#Nlo!h=PnYi?2BMufl;7s7M;chU?b5!;^)~o3{`52jj_v#is7oH-a9Tf1Q2S0ODVkG}(7oKM-CVWtKD4ylO7s3PjT2z-mR`o;_=pPp!o1l&7C5&*U zPgmCin71%?$J0srk3Xl2Y!xf6T1)(Qt;r~KKurk-C)JQ3^aBvNcXyvnAc zX`&C+%wMhK?&(*fv52|H`GU@enxyJjkw-!2a@N~|!xWV&#St-V$A>dJ;bm8+ zv{+ZkLtybvTvgAl5i#HD-(d^-;V;Dy34LI1Q z)`zOszy9a(VK4HqC&4)24qvezTN@L==HDijgt6bx-nW@%>?fN`B?d?)i@0a-_`t;d zsG-{(l~hL=AA|6Lkz8yefzvILtE@;po@oVFpq6P$sS@Mb*5lJ?7Wz;I`!|%BQV>>T zs8;cAt_}uHxj&~NG$Ak++p$9N5VbZ?nETXiIR8V!5(-UzIHVvz+tWVHeqz1f2VKyL zA5L3yOjilM*~I3i#JbTis$ctjeVE`mD@U>>pf!cQVZJ3T==Aj=g|2y8p3y&VOYt6O zUV55tkFYR|+F4zFp2hliK4DRLuH`Kz6Re0yrtOkRf(Xm#_p*A1bciWGk1EymA1xV2 zN3-f~Z}^Wo2ZDuKti+uq9$y?Tm~H-iM_sd}HZy5_@)X2K@pQmMV|y);UHLIDH@SRF zMBAH!R5`W`-JEDP5T|p(Qg=knlGr8ftH3QuZEszNM9xBiCRezm6&1x*eo2$-sm{rD zBdFd$Z{nt*mT-=XLi02UDZVl?9Nuwg;I z7-OwBeKP~Cx||0T=KqOGZXQ*yS^y~){m#tfdBNe)_9Xt?VzjC3fdP|sNM8(>{Tr5% z;_!eK+DB>#G~^Lo!1ve6seJlV@G2EP84krQP1TmKa5}j55Wa%A#{(_Hg$g)#FnDZ%T1q63IFj{Pip0nY*oQ) z2z5!$lp#v2pEvQ%ZM~ZlmM*RpzQ=EaR<9%gA8Tw?O7fNG*$$N`%}epR@r$COUCzOs zbl}w{ddCY}9c0A8qJu zc$F9H9@+?Q`?mGZU#}MN>}>&?=ejvdrB40-T@$tMlq%nhRb;h$d_x?FvilaL^36){ zxopqE=PlyG_`jn1FEtZ3zAqd|&dcQ@ox|TzF(zfiaz46T(Nb}|z1Rq(_nPxEk5sPs zrNSa$eTBDFI_(B~2r0wY^PN6J1YTdW=vrS5Uf-s@|LZ#w(p4aF)?JWi`Kbd`D8X>Q zAuI)ziYM#8Cw*$=7ZY3Sh|Yx+fkpIEq1y5io#3?2cqRKb7`P>TC*g$G?6;^|!7Mpp zO*J5RTX_eJg+o3;4(aAPmgV(H9yG91hbf9Cv&37kk$n^7+ee;9Nc&U>qMg1dWjcs8 z(Mm2wVy|BNwAsi$@)><<0+TXgtDY{`(Iq$b-fj9zK5x1t-oW*SFa4I4qe1R$&kcl; z6yAfrH+?Ddd|4Z@8R#^rXPKdaMa{V%1G>*~$FuFWW%ZLW12t?-Csx&R%vyKC?+_0V zjKGI#1NF($^fh7h4HmsT+ORVZ8EYxn>0fLLOv7xz;BGMVaq=5PiFenrW#jRz-l#+^ ztmO@DUHU&BCZ_F{@^ma9eJ?lGri>D8Yb%_&YuzDJZ0!)l=b7!po2@?WbhVrA4}d*ObGplF*+61{ z6{+npgo~6mBH0vC%f>D8xeZW8kZy|Q7%tY47-m-0@{qQ;m&x{90t0?pX010DE6YID zkPal&xz$N^IrZo*rE5$UHO$%Z{1m18x5hS|J62R@-exOnjxBkFaq=JD)(V@-1bi6Rp2k9I`KZ@8uPlUlUl1yHdKgjpzQ?VL<7 z4a|4zpXaDZaN-wSXC;txY`sykPr2DZ#ocX6M)!X6dz3U6Un$Qw{Q$WF0{NNUV&el5iM1&xU{>CwU$fOv6FD8)o%kqonfRMCP}mh;Iy3Aw4g zIsj4;AgttlZxk98-1F!GPVE9{3hT>2rJ0y=BXQ~hGTZpJa=dtfc=fCKxX!otW&&X; zIetk_1{}o5^BwGu40~xNaj#NIND2b0rI?w`-R4hOvsRa1-7`II2r3+NI^WT05Dv8I zLA^joL^}tYV<#&KrD$3MLz2t=C=V%gFjq-Vs?2$~Vk|w#^=l#rtZMWNHNLu zgIR-1IcUIVP>(NlbiJ@v|mbUL+ZoBx7W-3XT*RYyXaQF zrEa}u9evI4xU{*IM%RgSlRxL)rR(HfPll=7>l5hyn-)U(_5>p$!y>4p!ZNTVBySko z0#nfk8}Qgf4>;~%GZT(f6oR+JJ9TR0$y?x#9yuR>C7;M%a%fQ=E*1A6Au0ZJHGx8D zzdZj?RpNpi(M%n*_?V3GU(Yt57Cd5K-81>o;Db3MKdrhB6G!4UVNROU+nQ}#Gyb9G zahQMWQV-%;(yx~^h`;+mW2yiD>I{d@e^)5n=6sN!@8#(`~$@@p<`~E zy`j(X!EVrom@F66Q^AU~pq5f8oY}(r@*}$7%8V&}Au*hck|nOU?33tFr+rr;JAMg< zMT)LZc>egsom5|7K$PL%rP|sJAQ!TTpztWM>e33^J0S-{-!hsKvEtpdRjke5^pvy)1GB^SjJd<+cNxvsoiEnc-Lrt$9=0vE8QGjZYe&*pRf*}Fq7)-#*Ztrv7 z*6taU0pg`)q&SYRgB<1e+N*nAWZ2S>Vz=GSJpW2q7xYmgW$arpQ>*PD^Q?Il_E|_6R#jcz~zT zS3mWsH^ek84bHJZ$4;9Wa1)S9Nihqg^y_CMs5a4Gp$Sdd%6ckuC-@S{R6^!0cxf8bp1n)@8!;>W3Su1GY+m2*5uKx z{c)+tqeLWiPhufeH$|~fQYUt=i9*;hU0&Sd5N zGkp1+$AlH|i~wc)*J7q%!fTf^ZH{y3mCsZBx(804B$U^W*(bNZ&QmLcgSj~xO}$E^ z4yT{4KKQ=wZ;RcH^LNu~SaIPb@0{qXvpsaKVF8XVrG|?7p!(vp#a7?JnTc5~t?OXu z?5$67I-CeQKP7!pwJ%sZ*43!)8H9yoc=y zAXy{km%XlR%yj<7mTdBA8@`t@NPq|ogLvC~P(QTR_iQnp|E!;#YJ?`sl23ldZPTbj zjui!xb92aAfqM72=$Kpcj2K-GJ*4Kz2+m%D^|GC6{Zi}~e2wHmD}RP}7F|62(~^fSkxsh%B-P;lG&^}agl>6!E!fZz%x;vTq2nrvot=N1CT&> zCAZ1z{+~@_*yJpAYfi|{vnSR4-LrtAjowwyIDTXSS3Y@U^dJp#yol1qY(ZK4u@leP z!@4PF!^pS3^1~XT;9JF(uAq!4X0dbVfX(2*m(g^?ZF_)9Hs3HXzfY0oajJn>C z(_HT777$WPK8718-ud>3oJ$R_J9=g;M9=#!^9{nn8(ngP^@VL;^Il`$uM%c=2@db( z!}%SJCKJ+hh6QvU#ht2H#IDI+8(%7IRgU3=`rGe0wTG3oufWzes^^_Soix9KJOpKD zqGkPleLvNP5So1ro5=Be@6c@fw0MI7ncHW9P_0+fMSTW;Jv96_aCpTVB`R%J1c*>N z_O%0f+A78OY#^^(i8p!7xx<2ew3$t^XfbkHf@w!_H?b`RX7h26ZF^z}WfM5%2!_4iwgv;|2+y%`>Xhu)Vo;6&?OQ z!yr`O$!IQ#l0AFG_vPLmI1udX=1wgPs##^f_8=zdJr*SQjqU0`Iyu3r= zKefE3BACku(AHG3SGb#Vuw0XGf|Ig4h{+6XB`@9 z&spIfow>y6NrqaZo^-8WTpmuV(Uxm5_T&Y^>cVHKEcwX|hU#_uAgcWrryi?z5KP;ugo8!T(mxSG{tKybG<6iQoC7A}d`t3Qo&e zcOK2{G!A@N&)7C(H7YUb#9WtQQ5&TSawBLI{=Mv;wcaf=XFpytQ$Vdp?hv=m9trPM zhtF{}q^R;yGNV*urYoxttN*U{^0iXLC@dUKmsH2obGB#1s8EDU>rVVLy)O|n6BG4X z68EP-u-+C$3bcXTLRBNtd5{?g`1#Rac8$V?ik3z6@+5Cs#6GY@bvTJ};d5s;Ht*@j*Rtil6iB1OHjvp=&2LH$crn04Bb; zmTC#s1y04c872j-vF1wgkB*kF3c0&>Hq1V8!?ZR1_o6QPWgRwx-iSB4BXH9KzrOw( zNIH~9h?gC43daib>t{JMwY|fL1y1cyje&ZeCbf-TZtXIcL2+yCGg#h7*j*>?cOt~# z!>F+PMu9jL2?Rx;o~SUaw6;klZ1MBYR(F_8=69XAIgaV}S8SG*2-tp!lQkiQHbl;H=@5*0B@@(!nK%J z+@~^C6pdhm1>%BV2|r@9?El(GifY$>`;n~G{5O0n&Q}^ggb%HhDwza}|EdtETb3W) z4$}H=jy*hX!;ZLz5dY*kI}g}nkeR}F?(m7;w3|Fy2qKl;Uwg?wuv zv-Z8gAQ{V6=@!YTqbNNo+)O>|yBY=@ zelW|RhMWg@{WKV5(XX9%Ld~xKo^~LV1n^AosTn)9+V2L|@wXkZDySAVm03VE{7ve` zz`E%YGbZMthBR6KhU1KZGe0jd#rB|(QJ=mJvw61~`oL9~EPGT7AyyL(Om=~4HNL!qbn5-AuRKW3iN#sfe`0!7d++G?Cbq6pmfj~N0%f$b0j#&Poy;)0W#|?-8pYRW zSu>TOTDn~4ZWfT0W~SwLG?$pi<~n&J%u_$rPRn6Z*cOBTwOFh-6%O?J>NkXVKKzXT zUdM!$^40Q(*CLLM@))OE8D=24?{QHL8KuFzJwBbc_s!I37(}#TU}>j)DBrT5{9jL1 zj4#IV*JhB`t?=Y-o5}dWy4Puos0cx0M?Isu~SJbBHydnv-JDW_k9fv zbHc)wG-DYB_~_w;-tip(e$VVd*6?W7iOjv{abW?_&F2}`viJVGhHso4e(0ABk5Tf< zI3?u(aXO*LCx^4tN!0Fal~w;;Tf#TOB@1p@deV|s$zIX|p;@{cl{z1L14swN=}+CX z91+g3j)l1n-(3`oYJ*>nr+QV!C8p3R+dw-XJ4duYZ*3XCdL>Yn%=|Z1jpOx-?86pc zkDJbjL>)3d9AMS{>Y?&Ua*!%0fzGq#H4UF=DUx{Fb9yu^Sw+zA|L7&BvG3!wv&}1Ef)I7+$=i zAT_Yqxj^3{cefgv7xwxxh*6lq*OgK>jD)wRG`iuaN{=V|lwg=rQAOllf0b1NS*eY_ zgw_iB;0#CPHB`G7w=CG2D(LPeE}S}?Dc;Ha&EVBi8c04C$l-dp*XfC(qxCR{9XxTRQ`t`#K2-g^#u?TZc<& zDd~Dzbi<+vVf|#m*OjIBK*F9^Kt1FS^;*zF*oUSFm7@f2;2(cm&6_kQ!HK=~@)Pp2 zz5^m%#F;lXa^R;tx~`Uenh6qIS`lX_!;Uqug(jsruoTE?|7x-6kcByMmk2fDNi3K; zo|j)1kKnxM(A^XDQ`P=x+mBbZr&c*5fQ?#1g*vOJjz{wp@3fB*rwbgbU3=NyYV!RV z&u}KON;PEFzIi|Erd_n+<@ru_kyHEbXuVMw5PgC~mQUROw5xc>!k76$hi9Tbb2 ziIal`<+Y@+M+nY{bhyubIw zsf&RSTZ8KVQFI>eY`$$6?o?XT78JENwKt{q-g~qSwW+;n(bfoR?>%GICRSS&t9HyF zMKuydNvs&Z@BRJ&M;tklH_vn3_jR7nKj;OEuOlZ^L}O+3+Zep+r{b&cne5qa+4?=^ zOcAkR>p7x4j>bKQ5d7{xugA~xU1<-1V%C{E9%G6Bq`a_~d&QkQt{PLgOCQRuXreo@ zk?NzUXQC+23NR!0_sSQO=Wqolgf8B4`DY1B?Obhvvhctx*hl*OY z`eYmJ9(#a=MMlG^T-yOv2&y|o7P$rj59s2l%04RnQKncK$r|GG32tJtS!GJb!g( zhw3uu;^L~KGGO@${x?HMlLt#)R6a-jwHmA;Of1zvEM5LIDPZde-EhJN@o@UPI-@tp;x}i7dGtm3x9Jw>UtV)NNkAb)hAD@KG+Kr=* zxLv$P*T21d<-cExBGTo1>hy2*hOt@?Mw$J4-$W5Z*#7TU;G!dS^TKYw+cp>yeAs_+cr;a!ZD} z5JD*gL5+Ay8RqNzFwemZwZvGf$|aWE*iiV;-t+=xcZ5h|H>T>cor+F2tDY`bPfNY) zZHJn_SkS<9R=l8^Iz@SDLCUG9Qfbkw7fmfW1}5xr&dfh+5YmtAULrCeoL0+G&>%F+ z0D;$;k-Tu8=gdxr{aBdlxG2q|KmOK8aBz=M5>#o8q}DN zb_6)?gok+qpzY059^B7uwr2vflq7IE@YP+qwqp6|A=~I$eg)EZJEBvSoh-z2Tz~QI*LLxz?#w7zw`Ixur8U3b90Bim?csktmjN;3rq4fB*#YCr%nZmIn?M@ z`C@*&`-*%a*a%#bkL$y4BUQ#W1-uaX0H-5COOU_i5A&cGX#v-0h+fd#(9KST!K$HN z@oEmGu1BUk?BP%FR>H7i`}in5P3v~=|CIoHrnXhCLW_)j9_r_A9o5AKY5)^NEtT%q zxJ4d*R08cPByG8W;ObhW1{O?+2=gGifOEC_x?4nh-Pd17bW*xLd^lJYB#V&cB^>7u zWODKCzdxcA%XsqZzU6Y4sljOr-{IkGblpa}?lW?lOYb$_^ z&$5nKghp{TVgGWBhcfJ!CVKdn473rv`xQ?@IP|2|ZuYJ_KB{x+2EseD^Y4F35dM_! zy|&oXh#ov_m|NdQLa>;Or~k5PI&ALfX$!CUv4qW~zVCVa3&`|zA@&!TR$g_R3)g3) zBEBvzC@r3NM&;h*+ucL->rI5|H!3AODrWoL71rCzicDQzPGSk~`k40)&k(175=Y&t zAE)!-&Sn^Dlx}RQ$~de&*usX}yo6*k;8hk~T;`ye*HTO2;_!|?84tLQ_jJyfdUhsp zMHcf=hG$}T(pcno8MHEfC2HpX&CmVjN;*L#jH^sAf1OO0>HZ?;|Fv=29cO8DD%8IrdZ~0u4hEgfKW6?y*_Qalk zk})6r7!J#Q)L?vi;mU6!-LIu_Pm>b8QwT#R4cXKpAAAixn4X_7W$){2DRn0L z_d4-pkzeQ)fIjhSt{I3+{p8-=MQig=qgKa%s=86+?)sclZFYCvREpr{%$pCgkA(!n zEgy7#800`2%zN3w&KoS=sa#84weOQ5o9QA>k{F#Jkur+|vqlc`EH-z@S00kRDVS>i z^6v_tE)tMD`8#~CjMs;yOEbXTvenk&XJ~Gu#FKKnn4ylQq7I30$4DkeTiFrDISUIM z8eLjmSxi+|zXLsmOLP@KD|F4-8(#mnODnbCOo5B+Yk%l_>0xbHw5`>bVh1j|4OtXN zSz9ca`zW6D`hL=;GyeAe8c?RGynk@hkssigak3~DT+x~0p8UW>P|mYSR$xh+esh>d zt#KlzeP~lFgZ~}fljiC&=g;e3j<~RVpA5t^9a-j7crsZ<>k-#ZUP95d4BD551Gr@bg+Eu*Vys^{6F@ zzoG<*w4B+ym+?chP!@J_x&$bCC=(>>t*X3S2dDK#JN>{y&7qG`=CmDH3Jm^3K@Ozr z(me9S^y3OA`baKzx%&tm74{oHrvw^bcQlM(8Q#%poeHpc^m?uNHzmTfBYUs*hR`!| zquPfUe^1{$bh=cfKv21rC@DeKdfnvqH4(!=S*uAhw?w>{tsdC$UHQzXs?|Ii1 zZuhe)x=uieU$_{{70KFx#^e7j7abb88P-s3vQmZQEX{YuYdW1VZJU6~;Gt);_rqqn zD?Q_9mKf@$nx7St^?IsA_om~LZ^2JX9y!^F@O|@kG~Gkmy!lnl)kyl>y%!K$?qXT* z7#b+58bey-(1-_`vvR>lBdopW&Z7z;^_Q|k%Xy})I zqr$DLKP+a+%ZFb$bdYgW- zqTiJmKMEoIpc;A=US-xXjV|u`?-mnuF0)4R;{vCS5bis7eHAa|PlJ3?LE(bF?9eLT zQv?MzT1Tf$ICIRpm+6Ic;e{(ldEn~<$a1K(hO!qGHS|Gs`nUF$>72zAW+^?n_x_N* zFpV|KdEo@zAu+!yACDDa#ZicI(G=6hIaY0^!$q>uj5%JC_PSk^eK6oN&%+pIZ)JTX z=a;9Y=1Mbk?0>v)BG=%|O_SY{?|c$EqbKJZCYJr0Tbe#f{i-9OGtlbwG)Zvu$mLv2 zzz$3PtY@YV_y1obtS69^dZ3}Mj*5KR{TTSW8YL*v^X*>b)A|c|Qdl}f3a&>aU-lDn z;}DdeoKAC!t{?O_d3AwyV2w9E?_^Eu;D<&C9QG^s;Cm7-bJT#82au=dZ|1 z9BZysy0NW=R$B16r;m&3jx8B>FdMeTtg7*ric2u4?MY;BJ~5|)nP%ijKQO<3f_<%Dm?+%>2$_BVxZYwZUTzej zy+GS^j|4cuHI`$!5+e3T5KA%|^cKV}JsbbsA`^WYa3BWWy!mSj7eB<$2&3*jG!Ym! zFOH6G>KST8yoU*S`D&1Ql#Yi&mVclXTRtC-?3aaka`A~da5!6p_7S#K3MqlSy8Si6 zW9KsG81d!vt#yUItrO3!05IqW^Z29~)cp7YI2UIa3;nbKg#)=z6LhP@)Jxr_>CtGU zvX?*j^-8-Ai(k-!f%0+43vbWZRU9grvYkDxb|P!|YIVk73)>_tqH}LK<@nIhgg7ln zUhQsy$Z5bdly5Y4K0#g`!sp08;~W>hF`HuGd3NHzUsi2gn&LC+kKVVr^N6lCVx21K zJ41A|{e8G+m>;B9$}*U~R-8pazPn$7Ihx|#yp47od1jwz222ZgaRs}bq}VRdxj69O zEq$>BmiKWnv=C8kguJ*wlb)jqhMt5yMUA%{9Qd=t zoDzosCRd}%+CDkJ^y$HSK*&DmhwlCUlUib>7=^-w47qmz4C>>{q@Z4lpcXkf5DlF z5*bvcF}THSSAm@dbKeqskM>aV>FoEU&PaNN;F*F-ufylUMYA0VR$JHN)ukGp+L@OA zku6pY!GxpIy6&;GE$7K!e-8K0W)9?Bek7UD(Sh?#F|{G>9&P9<-;AMX#k=hHLNlD< zQ!6Kk3g_P;eUTDvJ>GhbGyT+UD`UXjI_X~Y;+IA7jU$v<1Jv!g%yws0UHOV5N8;&> zdtFatw`7*i7PqT!opghT-za+8`baHH$O3!3tpbbGpyIkC_@3XGE6DQkArjMI_(O*W zGZES~`NVY%2KrJm{Mp_RbndU_by4$64Ani?gu$g3tYJIgx}kU+v#sS~h%D*Zsg zBH)gw@%D!&kpWKBKPwls*}Ie8h{Hb|$-52;uig@&pUS0Nvzky~#y41GxW%##Bq>th z8;K48b6&PI$g3)6N&VF=(}6EOSs)2UuG)@NMNco0=?qnqIZ6DY9$;>fdl*+WpT?`} zS)NW=eQ8>|U*CNHBdHL;3cU<@(laAGPO<+TVCJrY0zPV0d$%JQl$TKq@OPgzv=l<~ zl?vT-Q}#M>RmixtPtrSwr8ztqd-agqpU?#QA)eTshUeNmCR`w0H09v0&q?@i~D>ecJm^jMPHxCANexZ2P-mmw8>=vt!$} zk5y5Ri`Vem2Y6ss=5Ch^vs>$CI9eqpMtycFP!2<3^+CL-%@+q|Bf1u&n!s9{&84yd9{`>NQ6 z+OK6wm|qtx1U3cRIe1B{49=?_Or7LCHuTgbg(i8ZyA8iLsc#ZUCclt3{qbkb{Y7kF zf8dfQd8W%3e--p$X&M*Dcl)NDhER9sfO`ixOTfPEEM~0zBuu)#NV7WHLxe(srNryr z0r!Ck-&DAJY;{0c7gT6s3v~XXGYWP`>{;hleJslUX$wXyZnUybNjJ4R{*O-)D>U=S zrj^s$yB{GW9Rarc+0h}IxVcd2WHLhMBccT3e?^8 zp2h*NJFv(n88+alx}A(rg4KSW)@N^M#L~^~x|2pY(k)Xbn$&oQ?!zmphm#o6GdPB} z>Y@cK@WBCN0p)8AnzVKu(eQXRxmW~n7w|2pF?+-G(rk1!9Scqi(vw`VcP_-*@fk#cr6#}he%#;h^KINzp^|mfuiKZ z1hokIvqK@Wn2!rgy;tM+I<8BNV7{9>9HvW^)sL(dD~8=)4yb^UfC_@aLMUbZz(E?h ze$Ruv7+v+>7r15x!1wYmDK@YV(D!Mch&eP&A|bZHb;(NQUJuzAzl@b1>loZD3r{I0 zdyRZckkA^enbza#^3&10=JOzr9mHS1C{sN7xIE!O;nNlDkh-T_kBv56C^02e?HRO= z2V39uiCRE09*J?yg9Shv^DXeG|Ie{*1U5AE;ZWEgJTsq`qK4l?2u49uAv$NmVq8&% z^_YBdo57oD_$XG55MK3f3z|wX<0uJ8m%IyDa*W(EGuMT+r6;)~+bw1FFvD8#swWWt zH5^)G1<}^4VRXN9|8V6Dw-9Z-c%Jt9V8~#1uKZe_RY=i0^OZn}0YwLSQ8{Q@7QJ7} zu?RYG<~DK886GQ+8uan zUhdFrWlcs7N1*@m->pxfyyzzhDBQHY66=pW3ZyYs3klj3Nd{umQ|}eo%v+XNk#pex z;GnOeu9DI9RdQ^uqAeY$bUMt1-{brnANDWQ{|_u-KmAsxrdRjFX_WSSSbB+N-FdKG z4V$NJXWxl3@p7Y2ijzzQaD%s7Nn4SP1%>FK>6Dd^px~D5n-q5$pYPH8?kqv+Lc@a> z!|sE6+yBtQ4X%R8>>nS?)y>-Hodfe>*l4$rK2q6=|}{VM&fc=}iU+X*T{0LO2&6%t=FGicxQNsTaCAU=&L;3ZlG>Qiva z<1=8y{dXK%W(603t)~{0@o!cD?BZkSMUfd{oByRUVe;(45o!8wf#GR? zQ6NTh`=o6CAJvXCKkS(;et|-hGS4z_2RFAd=WFVN`Me-q>ss{HYIe+KcZ#6KQs|no zrTF5%TZYB4Iv$Gi_b^+%;qGPjQZMHDo=u}la^=vhPdXQTU3X^rbRuO`J$^~SHy+s# z1_#Pv2Y`xWC-b2o+r6ZKefI*v$Iof)hfRrpT#p; z>L5D8_v()?cdsL*-253k(1zv^LOlr1;iY-&YMtmegfZc(vjg+q+h>FKHETwRWG3bXE#-NW0R3pYzcs#C|}VP55i~RA*hF4$BSxBDp3) zeQY>{7Cz6K+)V2bm7gc3s@F7rGUHX& zVJ!bi&T75)=gX5hYc`DMD3r>wK}zGEOgZD9na`__ibs+hFtZ7d^f&?y68E5 zPII7PgiY^U2WSY^espTr?B69fczCujCC?n>i* z_v7Tf4ol67o zm&oNqO;aPy$VN%-Kr`SmSgM$@o_=w+JMSr`OXBQ8FR{XTUiOU+?k7AiMf8lut#@~Y zq(-XY2@D>^(Mqti?&@c+qJfP^Yf=MwqB;rn42na_XGN3u;3i4FaEis%stQa>faS-N z#C7X5v#9Vz=XE7Q{+C}9yBlO{rB-h zU|3e8hgFZ;Xv~r4FBsc9EJYU$*m)BU|f&hQ92#uzdnY5zjGNvyP*%l@iA;Eq?CzVuYwD%vVJHIa)xr$pb=>##J4 zUtrR9r_BF3bBAf%D?}z(97;Uc#F2q+h;uspz3=FCub9hn$)aCzf>=JH5}k^xHVfFY z3wGGw*$9v9pd|GV{#I($f=RDWoZ0v=oMOjiQ5>Np@&bZ=Y=8G~2WewsHlW&}?-^_I z;>7Xau5rRQhr->50`_dg2V4tWEV%{oKrbi0uKiMNJ1b=z-7x z)@NGzrGf@?n&pay6u+6KcYT|xqatZGa|W${V%5Lf6>KaP;zJ~JETR^@6|LsPujUM{ zPt~n~$%p-5UL3P&u5N7zGlEnEdzd>aiyW0!R7v@-D^@|iWTTKph9+v|28!C_cB4k5 z7uS+(?4H#K_pzq9+>SiO?L#EcVQ9PIgWGG3;341$mW~T}xxIeMCVv#SD5KHVeDgXmEvKKb(Pf+o`^-bJvdLx_x{b1u zdy5S;q_+@l$KHRm`s30~ZbU~sq3ee&Q-tLTUdeGPMnh4!QZS9VcK*}e@scw3C7$rp zT2%*kuenpwcTeZ7eKos=q`D<~TGQs)CzGet6~n8SH|uzdWh%B0I~>I_(UG32R3DL= z!$~50HBcGBjGE3WRmnnIb3hS(0D-xQy?nw=+1i{>a7_kjI;kVCe|9lkgl^k!^FGg> zAkiG^v?f0d-JTxk0bX~D5<^Xs0ZJ&G>%!jn1&WI%PYiAHQ63)m9$&bMrDJqNGrJ@{ zq7cseBXTjO5Lm&PP0afBq$nW!OR4b3Aem>LELbUpD#5s9U({ZS*;95_2owDnIETlI zdzu)#PA)JcJejNz~Xkf}3HHu?e+cJ@)s7n#fG-WOKt%$TW6q;vbSdT`h>%_Kv1t}N#sGJM`k^A!3fE9 zEs#s_@D58mkL1%}mI527;0|WP1Rhv03)hO(-FuMHwsX_2V`xrtnAKpLMI;JjF7_ja zPCKw*fdhqzL&mAUidsyn*uO*OXe6dIcWts4@r)J>Eo=_w6Rg@ez-8aST17D>>z(TF zGs9hZm=btmer_A7YC2o@bqsH$N#9h;j39UFUu*aw6^p@>Mg4(w_DW4Fd^D3eFY06q zD(3YFEQ24LH?L%;$-Me9TX54Q)g|vv!WQmH|0L1BH7K2Im;{~Yn4sZ+1kX|{eg$;Z zvVcDgtD_?uvAXbnE{`*4v{ifTTrQ@#!C92V86LBpZEQK5L4Pq(PQF5~6?%G+Ul#Xj zOMF#jP3F2?McQv%#3SIbRw2m%?|0(|p7mpjID=}+Us?Mh7dMRJGB;Jxkz!WwT{1A3 z(s|p}F_xXJ%bQhYQ#BjXPmv~tw?&1JAtMaOH+j(tr`&%;i-(Y5#pqB8US(Jb{CYVYxH$RfS?Txo+_q;*LKvVS)M&L)S(DC znM|FFI*k(lNMxv*M%l0(Q5g@Pd8Dk) zt%^R|?()&Ue_!};scXpG9N;s{LHnNGx~&lfnC`TO88pOh^V>>lT{9zKV2=C7%%qaRndI}KNI zl52iaqZm27#C&h9OA%}ht3Ox`F0^E zY<%@szS+#(`ra}iK{WwF|6Je@nqr)69rqA(VJYOyVkPzc7JLc2wm1FWp}ISbs8;x5y+&Xl@*EX5ocQ)1aLbN)*{l`zCI7YHiAO?okN<$i&sf( zOoRv*dtpR%&vHa3x`O0QQ4`5d5N8gVO=hADlU4}_a0ucQEnRo+cdlvLTBBSX1}eWJ z)8_)nAxX@h4+qc9E%d4;0iiSZ@BeNU%)uMp7Wdx*78puO9wo#b-5FF^w(Yc(~ zok?|wKE2$_57A^enK7#X0Qv2wttS#*Cx6}Z#8NEpGvKEx$1EN+#cGkYBdzfZUi>R$ z^cw9kqPJ=9<1h9!CJ{l<5bspQ+iV>Xdj|OI-*k|pYEME&W{s4`&&nM*uo>k^Wi0(l zB>5Jn+<+M71~Fsj?)&!)H_z~B>xYkI*&W~+_Iv}QW3a4SNPDaVd*H8YIldQS1v+w+ zMk1fvH~~i@%R4*fUw5}8IhgxS`j4u869hi&N8p(`-paK&F_n`)pi|}^I)s+km}XWP zOTR9^712S`(LB&ZDVGr^EZUV5yU|t(`jKF=R#oa-^jIpFWfhTRS6CghNB^R9j4S-i zzsmI1|Mi6D@%hlG(5VW!3r)n(|eTjvu zetC>)?v>Q8u2@tUHmrz>R9K~Ztt&kA_;kLjI?$QQvs@(QiPBR3*@8wd#98?9e5{3* z9MC~wJYafziJnkb6|C0u(f>EnJ6+sfIY6nzkXy8|VLkf-M6|y(rC=FdU7W8-HmS}T z3o6LTSVnLLvq%R?b--coWxp!|y|$pEN!JwX^CSUjS(Wlj_pvL9b5#T0?!juw1nq=* z9%e`zW%<>0w8BY_V4j9bCQE2^jG_nlNA>D~bH2Sw(iq;F%Su0!n=u-iMWQ zd}uFkBLC-u{g0-oKZ)2t(C8c0nS%IB?4wUMzUM{4x%YbYrM7!kF9@*hBkq9pxqKS` zB>AY-ec}_I#cH*J7N7jhS@!D(0tU7*s+IJt|8shH(jgUu?>^}DEL9s5GR7b+7Bav~Ku;WK@_bXTci^3%Nw(lWw@!oPe; zIdgBKvu-v8l!YQ>s{F5%SlM2g72!@6KJT_*1H;BO_}ckL#*6ioeR6$b)HCzOsl}N> z4ufsB0hB{V8uRDcegune&e9>K9>T#p9g%$gD#Po#rN|GWE&B9$K{|G7AnXoB7?dRw zXSM#c&-7xa+*r<^w}{O0(dkwHgGVtIPr!;N+I*Tnem+@uT*4*OR6Ys#J!wc-@?3Wn zsjH=@rl8$FIaxBHtlO-w0g12}@DZ@Y`@sP_feBvUP^^lSQ8EEjg-*<}qU+tRJ2k+m zt)^2^$^^*IEc2+greyHpXWMGlo`qGkdB$ii-&8NJO*$i}cXyf&5*rCrjqfmv`F@Dc z>D+5YE%stQ*;G+r$1v$@WjRQ``Mrw+#Z=?yW+HkAi@m$$;fA(i)lxy^;^4Dk+%m}xH8O7||2v=xF(!%3-aR~- zMyZWsL$cq6~ai;Z+Yd((7?g>xoQ$BX#~iCkG)*eY4?wY#o4Osq}s z3tGeFGJ&)()RBdN*4s~U^*)JIY|Z|zLeEs`i$9yaBemSqZrFT2tKP48S;k}`*h7d4 zUNBRV8xgIS4jM+QWv1+okADmL0ef^2wdza(z8x2nZA@4i-`hbkaukh|!M6xO^TG2- zUk>m{Sm1p5M2(bjCI>s8X?!01UK2LdJg-sXzgwhWrh0d-t?#Ikqtdx=OtJ}MBhAR? zlaSo8XF`3a3#04Yj--|AsnbK|3)qSJ+1(N7Ldr%V2+ql;pqnXno{ihtscrIWNaz2; zh9m45h{~leugO5t8*ueQ$xn5##mL`v@toH86ET@Tq9 zm_|2{&q5b4VBzeQ!~4ds(Xm(89inVQS-v}^%}b_Pp0XmHFWW?=&(! zZ<1KMaOK-<_Z8YwtKW468m2b7X(2O`Y6j;~FHF|pN)%hi^i@b+btth}vHEY|wQR_U zM5{HD;dh@ zUovfP+n+ZNPT=|Y*Flogk%pcF?swsOXW3rp)v?4cZ~k|Yz}J1)iJ9&P-soGj9p>{eEBEeELlDLVtYLE`ZqGaA#``*4f#pfC}_|@ za*h(yFM!pDoY7ElZBC(!^}ziESN88D)?3#SQ+j3QKQp6~W)dhpJliay);s*;@mt?L z3sG6G2f~Q2sjn5J4Fc{LE@hnswgoA?-J?v`7;&HZfIe;~VNlahHr;7ZkJskEtYIt% zBNA`@YchBd`(zrlnT4Xym^yJoyy{Qr6nzBI3!02pz?%3ZjB%y}ij82B z;MT69eE90PTxoqj7qx#|Da(sQJ!L10_0_@{S)Caw{{FV6G%z0pyIHNYq=Ebm*zV}h z-rGliT|rIkp(_y{kC=ys#?VEinRl(+YtK$*+_OOL4I^Fwg@eXi7P|bdp$!(w8FP#=tP`EStl+SAg4gGG=6R*{kttNxdc|J?AnR^qzUq|X-Rexq3Uzx zOQII_avebz*JAfE`$!TgEz=aW%MyLP*|bjKkk)>339Hspa(L`*{@ZJ~#&#Z48=Pbt zRn=d`_V2c~e^L~1L#2-&9tEQ0CIW*Yrgg<9oDNZ4rMdBwA3g*f z&r{e#;*muo17-G8dKWZq>=n-k2&DVH$v;l~8-lVjC3OL1ldiYW_PmWJOU;!rl0HU% zX<8+vp+e6_<3}J_RY{!WFPLJO)NV_%X9PocXIO-pWO9n80L5!#zpvXYle0D1%B<>v?Oj zqlk;13o(8X6pfA5>^+2*i&{(SY9X67Pt5+iWy}F(siLF~6S_)%z~S;;)z3u&JZ#|^ z6?l$~qDiS9YZ_&(k1Y-?Zh)l`?T9L9y`^FGa-H-=6g~M|_c*(bA&~6n0F8+Ob!Tyj z8D!CoqP4NjbSvjwqIxn;1znmwR?tcEtv!@~UELO>TmCHhgpE+uePnO!ka@Y6_l1jY z<6A`7UbD$tIb)2*v#^%J9OxtKWupz=npog?0}}+qQR%5VR^QpfI-?w7)n6vF={b@C zysmVU%oy?24r9^%kx1pMPf#(c?A;G9SS#_DZdm;kPAYaKCM#UA@>K17SP{q8NIj!d zNv-MNV5Ba9Pu&VJ1yml446Iklm#;t@dmNh+7gJ4cZNX-l2}YFvmV@hXGt^3tRl8E% z6ZBC*EsfmdbHR~1M+X0Fk^5B`xW|9DhJ{z9&6@)h+OOVFm^GQKnK< zs@yix&irDPgK7FwNKo|d(vXL_j~1y}5!prgHVH6tAgIU0X&z#N!A>TKGTmnC}ZY)6u%<=M%MUNJM;AyKdy0$#P^Nx z&=dD~&Du6FuNnhA)30wMB}dJy=Gg>VatU=cNKP*N%LZ#?;3r2Y@rk=Jhxjub%{Lrr zm`5Iofo&Nl#C_?~(Xr&P*-*!K_sd>Cd#)CwOiG%AeyA`pG}Iw+OYD<{DTa!rAT;E# zkv#1Shi4Vgh`x!+Z;l^>z}5|_oH8NvO-3oZ-%zSevy-1T%jGnDA-5htX)0xI?<^5< zJuOZ`*;ngUJ&v1F%j2L%4K5%?Q%(L*##?@@9~~(vP86rf!(A}OLA(J(%-0E40Cmx9!OT%lCFPww zD#JgnyircId?hPDJekAhs;o$j6`-%`6r;z_2G>G7YBgNQg3x=VVf_Y`efHXd-P5-x zA580#=)M2)@fTEU70@1iEFY>>YgpKpEDW9t3>p{Ph0BMz?(E2zT(#4*rfOCpO!=^QVfqaIbz8AA~Md~b@MDdpf1z{28oJ9ct6-Q>}C9PVGq3uB_9=6HWq0mqd0 zDAsvG&v^G=ix2^G5>8?b>R>L%aQxv;LxdS`;dba@(9y|_fUnBvnT|dx4H`Ge zmO9frLtkMTR|p@oGm4eH?A-4;&pqme@}SX8P`)1T~C*I*7PVXFP%s1J>KRcd&B;YY$SR?O$`oP07gLShQ=8 z+|ihz?aumVpSY3*oD)3EH_MIjG z$Bir}?}vS6zQ>FFi)sFr$O(Hk8B&89gUQA}7lX8pS&@=z)KM&>4dqMj)7g2t5o#H4 z8*9*i0_<4Qe6y0=(rYW`+E8kqYKm$e(<&dH){OyupL6VQ`R?@N=`5d;Mt5*0H5ehN z(|dVTzb7x346$9O@GepAjFE2LZOJU?6`$Vm(E1n0#YapAhc0M??8=89qoglgy)bzR zj13F8QXc7A2UGeIjtNVI-HEVhMk1uwGCTJ>>s5%ZKer_vUwo*`UXu#%JU7sA$IYv# z{f29bmYWz(OPlgmbJ1Ogiq?2@(WwPpY~kSTqe)#qh>#99(OyJxJO6%*vFo%Fd@FOb z+Fps+Z6lQjs@00~Xnv7JJWmEx;H4}jL4i^@e6ROA|1ZK z<%V@v3Gkq(%#z<8ncj&e zf3T+JdT<2oth4NzpK2%V75W4oy$WOx9xF0G_~>!}0rSn(jYa3YN18i8zMH%^kY5{O z5+J!U)v}fAsJPh93Z+76KF?}BXr_(oYD}OT{Sgv68&bV-(qQ2(9U`LgrRg`l+}96F zkLN9A)ozL@Qgt{J1YsZ68u*1e5ho#3z@os$WHs<_opGL~dgP zlB4c-E;}w=g*>f!Zc$crcK&>%%iVNc#Bi;`&BL&5qs^_G%AwN6#|i%64%y8N`e0wx zY0>IMbbQ@@K+-&iJDH(}i8-w`oiyi(1&0A2>#Orweys&xn}^m0_Ycw?A|-%J#C-9i z#Vl0fS=gShWgw<>E|}lKD^kL^@X~E{oGLdeM{@PVv4NlaVK^g6@^WtV#I}`h4sfsh z`n`&GQ?TF6X}T^dUH>lOMP~pt^Avb_zfm|s9ZYk&xJ9!dghCG#et%3Jo_}{}kk)dl z<9j0I!N!+L7O55Iv+2uuq2F2)!653con6jmMJa_(6IS-Mp)Lq`M!-(5>uezMIfynP zgLTgq+!0RZA)lB=$MM~_u5d>dDYQqm*C})1%KqWsAIM&*VRaxIFMDR{K&csTk1z}2 z(eM4!8DpcQm(Wy0dsi)F$D_Zyt##5F!-qGLsbuKu-G?o}t(8=+_6ub2xAYLthZ_6A za}+f|k(wY3-e?*|gw^Qp$`5ch*#F^AtdY)O#QwoZuVbq;Q85$vNp=~Vd9c9!|qXhp9 z4W(j&^I#1Xv(~H+x8bx9k&c6Y^AfuLUy-baDltzKVTcj3asZA-y6uDwR02)P^q+== z9^(shw7Q>Ku9|xjPq2Lz3EZ#bgqlN|9T2?#kwn`B+aojdeouLR6OkiB5OW$C_>Ubn z6`3b-)Ncn{aMfC^v?^rQ2VG10LC|xUwH=8eZ% z8Jz<1m~NT0g#^MZ87K>LrFxSbJ7YArr#JC(D%?xL;Y&zMzVkjs-ZbyKJpKNMCF6_O z@s$XfBAMt{30fo7)ruxe6-q?~uAJM!O!ccL#-fmvauQA^09-#|4vNrLez?Ql`F_Iw z1Xd71{cblMo4!M8=A3 z)F@mLk6xy=X01w&d`pUtt&54h$a$H@-*KKl60|bo%)*elGZx;K=}1fbzg^{pZ#SKU zNGfYKN{`hGi9jxUx6ivH<$>V%VLSg1KAlzT3t4c%aU=1>>E%n;6v%6SN-W%frThTD zIqfBXs!YzL&DR4q>HU8K;9X+~U0j}kQgDEpS%&>b_G|ME>olXzS4>2$XKhR@c=TU? z`^MS3bvR7~JBT-+Wf(+qcKmniqPbwOB+@^12wNS*7hYM2y6k@=0?-bigkNvWRdy0* zM09`YJVLPlgoUFg);5=lpBp+)bUcVQMA=tS>D3^x4SxJC7<7?$jt;XUmIL(TBgV{Y z`-|k|;yZ}TBA8e$v)1{I$IiYtY`TmXh&`1mOI1yR17+DPlhBYQXhqq)T#JAe)r`;x z_wdi|y>ryG&a1Yom)U3fP1MdZCx=y^S(^$>f@6IMzpdhReX|NIxTqSXnsDYdj=v~I z3^e)fHAPB?x5`?2dXcNiE(BH&bFoz3dCsGUpGFVV1q(yu7QK9V?}N7A0dkgFxeRQC zj3$(dw{#I8yk{6iPq2%MzGJX>>xXT8!>-K~>})J`shE-V>$j519?J-+JG-+MWL~Y00!iRy_?&2 z!&5zrYI`lQiV=$11ncJQBDXm~Fi0~&_4{>wfcOc;hh+97s(7ZuV%-insU5}XrXi7`HtpCr5sdobPCy<6~ zPXpReKUn>|fC22wsxSE~39+W>WvM(B^TtzU^i8i~BLZSYVFVL;=91mBq)nNlV;Uo! z6}lfHGcna;2r#rj6V>UmsagJ|$O_Q8hhK^aOMd6uJpSY()tdJ-%fkhoUphjk2;XnSt*u8IsK>)eD>F6X^RU@C2$DojFH>vlV9 z10RQZ0#H&T8-+OQ3PBk1 zIM^VAR677H*`D-H3Zr;zh1YQ}2DPjzv+nI?O^BsBf|#N9#>^$8Xv^Z4s@!G7>A~`` zJ9p6DyG7K&Y7^GJW2Wb`1M@SdM^gh!1M!ny_^ir9)eKeF;s}}h2|kCf1M4y3DY#D? ze$F=8X`LAy^v~+E_<-rClJweskqI|NoI{YUjbD9$uK7)_zgt`>!S`ey(To{<<#fFJJ7ibVNU@{#*N|G&+as0T_pikaeCX|M@>wkUL2rBmwyL2 zKhYvnSd^6vl9F{J6YSf`rxG^J z{W&4|7DUy&TS}?q#7wi@1Y}L#542gdDjufAt*zD0zVD&tO{SmzI09Q`*dZ;vj1^fz z%V(RA`NlCES}&-*k=+u_^*ATI7b&m7*gNBq@JnZG(W&KLX&~kG48HB*Vjl?_`t;TY<7LhLB8bg3+%|yzZlSmxuEFTllKAjBqkqs~_;Pk4<2~qL_{Ykd$wLh26LG9v>SCQV z(Q&jd`WCsD^u_yP3QAA4^x0cyOh;d(O>xRP(+vp=dw-ja_iqE%N^gxy-#zF2e6shj zo!y%j^*$l7dv8!Px)g26m*h(*6F7M66C;jrfoQaTsPR|*-dAiQc4Ti+|KVh?f>TGc zHeoQLJc?rZThS&N^sF14tnCCgj1Eqf91PgTRFol^wByYjtT-Gdxn(!JU+W3?2#_o( zZZB+YH6DcdRi%tJB+S;Z=-yPHmfp>og{1;LG`ENJ#+gJhK+}4+^#jahDPJ9=C*8Hu zoS6$+81r!+2wKG{TQ)TxTsgH{aXTQFLz32(x+gKbcWE6^2ew9o0aV^ffuo* zwUzp4K+&Y;S*Bg((vlU_4Xw@nmC{|B^*5g=Z&QAiV$VWqV&a7)z}Ry&Jp-582M>#u zJ@f2aI3P8wc?@hK2%o&ZNOYK=;ei+^w!bME_v+A$a)rFvb&|nP5-{>A!mxx8TK)|N;9-Z+*&wgf7Ux%#zZW=O zHd_c{@`MGyOQ*4Yn6dFNq6hKb=}HKqDyiq~b2Ad3sQN7)ZQ#(NW66!j7nUQn>#%GG z;EXr7vekYp9`6C7p!bCDnV=~t8j9h<^70qlo*Zm(>+%i7W&1X=RXfp4a5#csaMc zUnlF|?G1Si;;ad{m$@HsojCW+Xa52Y1 zz`*56Iw^{5AEK3Wx%toaKa%ntjJ%KKrnI--{b#`4R?If$uId|~_Ui&7T+X*%-u&>X zZx0_JAnSG`q~O-Pt?0i^=_!7qH zCTXjlY^T9u+d0;S7O>2D<}cl#o>)#rvbQKIkM0UaXFSq(Ro{RmHYM*P@=2A%VWDi- zPA<)($fcRZ4a-pEhs}sTt@ZZ1HHF%h=Cj!$-s>$DEuln%N5yD0w8Tt-t)8_DS_glJ zebRgvh*B*pq|f9sr`7ok#kr}h0(3(BRQGVyKZCLJ%Vs7ngHOMORjRrU=BB!O5DWtabw zJzYoqhB_E;n832-$pT%;U}hYW~t9CYQ+LO5k*_dV$Zt|}gn-~!IX z@=z3_I2-!FNa&vX>BTnw$#ntuuGh!TrabR!BK@}2rr%bk6)b*>WEvYM$=E$_zw1 zP~waZ13)CkM%VAH8ar8B2G4_QKk7%xG0cKZf|rM1(gu76+m zjv+YpL(4R*j)jys^XgXFD2l?_sHu>Mjyw5F^M{6gt&W=FkWWVwlCRNI`^6YNLc)#x}k)AF_nPh!mFMac*|1DD$`X1gRB9_DPZUAd%5K}Ydm}Yjd_@E-ZCWGw; zzpxtU*fSjS<&c8W6}a#M;zp^Y#26zNT+B~(oq8ke@p{bgVr_{90c*jk9T7r`W-3iJ z2YwD7rTompHIW@5YjLNuUQga;oz9oByUWK3XX)aDlUlO(le2lm5_V5G@$92KgEe#z zEZ&^ubDp(fs2c2Q5_*1w&ZeZ-wDHe^C+m`U7Lk4PHnoMaRjq8@3ySR^{;F#u;)o8yJrttV!{DXK5eeJB@E2hH$E_!mYn;w*Vc}@(KV;oGK`rdwe zsB&Xz-ZryA!AJx}`H^qYcj`lKQ-+RSC&M*Ks)MPEZJUy4OUAZwv!o57Hhfm(;-$KX zvheRP=&c@S@~7ik?p7V5`?#Ij*@^E~bAr%Y7hv+SfXPpCF+zw;OaF}Z^9r+%OJJ|Z zu9tOpGa8c<=Elu+b~6p$&pPb&;!hC5bx*xRs^jrW-5`z|6hR2zx_kb+yLT_S6B}pc7un~f&`y*bw-??$#VVc3Co`yYzqKhhzteV*1jTsM@6_%gdVx^ zdmQAM%3l&==a0jp)Qr!Q86LvSbL|;1+@qUSDG4+@FWiH~zS?^?%`l2{8jZ#z-T{ed zm;5TsKLLpyhiioUxx3mPGJcY4U_|>-qS)DCl0`p0fcu#0)0MS+fb)bfg2TnSfa&>e zCL4~-=7Rxy8Xg620rlN&@=4R^L45wA`ZLg~`>IAcrK!*6DSoGpZYWOb-@QT^%o_XA z=iL$?jb`s<9}@Vs8(5Aal~-_|di;FiO)ch^#6+_9YLf~F_F2r)2xQkfDVskvVp5E?+08!&zps6}kJb80*y{+@T{7WY9nYt5 zq_8W?OuEitSlZ>@4VobH2V}uqZcn-gSggT%y3ikFQy-fI`8(mZeMOV;n#?(x{w4pM zQ01by7ee<6s!*5*qZCj*Ejk%-+s=Tj@2<_`4OMk5z&R zuFP5GK`~KWcjvFTDO34YTTx|SAg0eNzFYj0tgF?X%)U{UV*SGFdPxjPVq7 z@6#ug#Ur#xusiDtsTE>%!@{s(m2yUDmq0+ofROhL2%H456=96R+luPkLh4w^q^(|g zal;#Dk^DTT)#Fhex|21-bk;+S7*yzqMs2FO;?v5W6&r=H6T^m7=BJcGt<^GtUuf@KpY|l#u>z!XdFr;hJh)^oN-=@n z8eHx3vS!TJVw2S4ji(yY1uw9b(V9v_*}B(M*p`((FinPo!Lsc+p$uw`*_LW67VB~l{RU*1@E-~IkKBWkQ*%!NdDruqSH5RlU`q#$ z{@Wiq23u^99@*UL!l+tcj1R(FVX}D&7}LyY?*z;2kjH3LHNdJYV&6jWZTXqU(tIApOETmJRnj6NRIJD5 zqKe6uaPc)mCW)X*uVPs*7r`RHvC9tC>J{&yvJ7m(pcVlk8UdqkCk49*_~AZ2+oEBe zr+K5xMW6iIW)N%R!-GxbEE_ooC_dbSRkUm045buO@j3Tq3!bVNdl z)n{BI`A_)AxUpH}ZhL<^rIi9}&VzA=HGv6VW?_hDGc}Kp>3Rlez#D|W2QTmRV{3oW zZElniDim!PCH*g8PKroFu{Ge&J!7qqqk8sq`%&CHRiKWOLZ~xcQ|zU(j83EK7x2nS z2N9|(lZr@p`-CB1ZS(M54Pz>s_J!wd&wRo^G<%eBEkj1Cv&}h0Na#ZTxxN6Mm99~~ zd`}Bdm%>D^bAmGLUR;#2KAR2mdy-2EGRP<{GZ&mG40YzU2A3*UR1$gRO$X?HI`7-; zW$$gDj3j(K+{;L@p~>yj&J*Y(Ek9(b{rWfhPWO#VH+Hj|8)G$!O#G+N zjr$|TMul45@Z)?v6W4~4yy1~%^3bl9Thjsj3ytP{oV$RfTbkX8_j)=#YR(W#L6c{< z8fMO6JnYgcEzh!HOriQ7E^;V}kh>xpz6SGiuv3t}nIzRDpcvy;>Vqx$#9@c@5 z%5K#G-8D1XklQeQdBv@ACy$1b$X#$;RsM^o#@Wp;l`cx`6F8a%hErH+^Iw+pCrxjQ zMR&lp;+6grKFJ_#n)pnToSN<93rpfO;*Xsq{Fn1HwB;95%bJFwrRG~a4xTkfE$|y{ z=^2;DvkSCe=)EK@glqE*kJ|{lMZ;=|Mjb+bT-cwa+%7mB@7X6#P*c(23T?eSv_{## zH1;XaI_b)!5z5pFJwdFqT(r)@O){vg$O<%w`PAR5uz4T~daL$ypTWH%s_o;B|1J!qP zULLPLqq`)|oi`!i-}`gQf`*diIpglGzdW+IQ0wg%l3$dNRdjVXWGw&0cwV4)>qAWy zmRwT6CaRGT5e(^YsQ~IXA*hf0Id>x&iqvrf7 zQWxLs2A6pCd1f1{KFi;SoleHFYrs2-UY{%!QVNa==FOFtv32lppU#1r0!-uiJeX?E zrU&jn`q|ORtb02(IK9#_9MOz)f0Ay({WnN4(YXjAoCXwnK3z8-83;=4;~I(*a5QXd zF38K{ndu^q5n0&1Q&&DBH4s1e+^tXovFDyLbvl~>xVb(}6d}J`N+}|=Z7Rwu6Q)0r z#HC$c)^Aq+mJP`|j-T+nb;mT*&EQ4N_n@$zm4@u)nB6i7kY%;zEMP?%yPM9~UF!MO z_PA(+FJ{#ED$`6`cu<}w`Tcmp9TYpzHm8%4{&e8!ty+=zU1{#YyUlNSe#Gdkv?yoV ztXzwG3#}g$ z1WgH>WfHX}scK?$QT(s^yA$2s9b`Xcu%jEH>u|~UkchLP{sW}__HglK;*f1%I52&v zen-i6%3^LN9JzWuyfk9zt#mp~w48JAw|HptSGz z?7Y|k)yy1C9QK(e3mEA!KN&oA=J=trl3x-@Wm(aRd{sgJ>V8pOOVp^Q>a7Q3CSE$6-!$i97w4s>M%F$L0K{yH!ahe9 zY*5`Tl~jH5i|5)^)AwINyNazZo1NUO0w&Y(MS7GpO!byIt~~ zruRjoSXJ$x)x$@XB|tXfM6%l?yp7b27NpHy~Rs1no3S8Uiu#WkbA1t zmPG*kJ+94{OWcBCAav}WS#+8Q=>@C$K2{y?e?G{pE?xu8@-VI6MZjJUdM>6aA?~4~ z68Ew|?3c+N{?TmI-RO~%z~kM@V4tXa;{3pr0hvnBtBe?KwpT7LX17N=+drFaQ+->T zx5+m?^jO|8*xI^V6K(7-0I!?c8n2j2wynAy{U;jnQ8D@8+?8B4&ZEn4cogwzUPq=h zvF^;4CW6dm#B$*WjGmURznVDfPrOLWdE$V}L|k397(7Y6V+Nl`EpBPsjTV>DcA#BO zW=5;7_!Tdq#nAHqNX)0V)isQ=8(&sg`OopSbpD*98xPPWBu#pZ7G}j)R52AkE*GH{ z^ZgZcT$53PB}<)`%FHUX_0Us)l%EoLXv4uXyEuYpKvdCQ*jc`K>a$#%P;zEl5S3p# z*wv(wg(TVy2WYGfsKEk#tuB{=5!N=BUL{c`(Id;Xz34a4-z@DQGA`+x9h?KDnupPE zX14R?ak?Gbs}zrNCePkElAg3xOFEj!bsi%^?)y11m;TK-@V#!qR(ibP0g3B49^kwk zH<+5KvD<1+?8`U@{ho20)v!86{PPbQ4{a_8Qvi0PuWD|A`_(t_TejS>&}-ymp-!ec zv!vqF``v$z@J6Z<9(kOXx?lYl;hfcp8YYi|qs>wr?)#e9&vjH6LgY2S0b7NUyj2|a z$qZn%2eTZOJ}0xb%;^y#7R5c{rOa?>KuRU7;sL*u!Jwu47a=kM0mGx+!Z0WS`eGJV zkS{_|wa0oEc-UUW+rTkx=0TlpPBFC`3VsdyDSP6JwCr;>_}X&!X96>AYm6? zz401NZ5?OZNGFIlKwoy6a`b_{WRXmc@Gy^HS*!mfP7gB2J!M|Yryec4e+JAYjrr8i z1iOGmDEOWc0cL;q70<`3hHn?%wZvd9)uaWGrLPBLz4+0;D{+HuurYQ=#6kOZ-c5-7 zl^BIc1dA&g@*yqA$$Y$!;nU040~zM~WTUam%S_`Ivkod+*bI}2l#Xlh(vypnZL`5j z&4q0fkK+wht>>MDzE*9ws~yk{Y+KyBm!m%S4&oO$9;*7uXV?kVc!J8uWBQCU2=)21C=68Oo1&iUHf zzCyz0_Hx0K3+E>{I@HOiBX)56RWvVY-5@2>3KkD2hg#z6Wic($9m+gbTRgTg_PMo^ zgB6I574G!5aqDm<3VYUoEH37!mu>}pj%m`u!MCevjv#-5K`gS|JJ>tgg!}CxMqaA! zm1J7KGlK7^IW3j*_gT_^B&f)Y3LcTHcX+R|2nGkyq)o(<&dUv<# zOlxZOh225+IO0Qa2(MX(lu*>1P5_AcR%hmrDFdm|5?x@}KLQ*Q2F|lXOx7ZAYPAaE ztY`j()##Lv?e_&h(Q(=|L9?G#AXJ3m3{M-%zEy_L^kp~?nVa#)R%>%=3iNC99(_i` zvvrNj+~t$Lq5qNWl~f5_>0ueY*SIg7YiAs;hBFeO!x_=(rRMio{^%*TjTDiRLa8{E5ZAv<;HR7>rpVTw0;?Yd!b6ZRn zpvYir)d?tm^R2)FP&1Z}Q2uzEqSspcLh{yp5`K zS*D4{>;2gJNare5Hyn&er}OLiMbN0$x&n&B5pa)te7E{Op=PQ%c!ugPW&}UiI(SBZ z>I|}P3%{V#lr#~_DLIyTGEho zF13A~tI&fo<08#rsdTZ%Gv1`wLDbgTL}GqADjxkF9{IZN`Q&c$D#*Z05Eqj9$=`HKcnqxPg;bk6VlxnAr=HOeurrI^M73vx}-H*_g`a?f_ zr7PwOdow7Bu&a(+9|a5{JZ5L=`|Z9}G?a{er&zAg%*yqV+4fv-&E@PK`0&M+C_jBu z$I)yCb6&48?$bZ#<@naFW^^`eh6XpVB{63o$$EJP^mcUNhOjnrv+fpp?`1ztiCMY* z#G4c;Za@2mgr5KEO9Zg#ulduCI83lhI;ClLUBcAhwMw{F|r{vi8CD#$Zo zJS!pTPk74F30}>*<-3P`Go6{1|Hd$JHU?rXHb29*cX=aLS+Qt2y_Q9$#xZuXU_F;R>^`~(Ef-!guB2MUxs~*afkx<7 z*a?xYs*xQenAxT*C%rM`SAE9U;><7yu1%_dY)mEVMzqpiBJbO`s0sgCX``$0diAL~ zJs_D4svM{n9E0YFJ zd1>Wae$t}n`F6s%v3jb*{i6AnlXF+fNE8%DNEUFDrgQ56o?@*@hlftMPs$J_B-!%0wQI5*VkJ+!(wQ|;`d~>g(|3o!-a&4ZQ-(At5_4kdWCgt+3Xz+Y5dx_FsrMD2@rrYVPgFJQA z+LHQS?a{>+bHUKbupe7=dzAKYvR;HWKXZnRwS@RI%>2wPIpng=m%yRE8KOEm_E#~? zPB^24Y@|`6&u^#5zSSTj@=5IqaC~8#v`HSAZ$M_`)b7+~0|%bGORnvY!S-i8sG2WV zl0?IdwMoK=)?ElJ)Y8sZaw?yK5gEbk&53#Z;USh6D2t=5P*e_3H_F>YyNY}oNnw9zd9;ydiQ`O5`kHJa zAJnZ5o`5IT&ECf!C+ZoN``xNpBS0@&`h zCShwcW+UG}_!zG46s1?q$h^Wv?9#dzaYlrh>TV5QID17G6pyy@_1QKjigMkpxcN6# zzNWCFCSz^px;0GmB&kqO6!yaGv7k^7R?SCK7^pfNevSLL>VPT8yU(Qc3+CotKy!&g z;_1$6d_CqLDwi8`izds~#+pApm;iBsr%r>8k7jmTmHK?$g>oaG)NR(YpUoEPbdTHRE# z?DJ1N!XE3bLWYvJI?-NOnWAb(ipHwJ*5+SNSk>!MqQ%_No3r!$PD}5CxBWq_^CE#9 ziNc?uI7^gJ;V6C%VB{%QW>2mjWG-}6c)9&^t^&LsjAHS|2K)$LTLF269N|L4zA0a1 zhhWaJFCt$MZdgOAP8PL(bAFNb`0I2PFYZyxU@*CS(8U&Kh%=jn0dF7e_!-`!_66PG z!vf=oV{6C9gjE94n?Stjg|$)%loy;NRgF zc>mUu*TYfnm0f?KB5~Y}+=hO1_)8Z;#PBRk!=CH@3~HZ#!uPIKTaqcm4sE&YMBxh> z0&pbr(9rCJ(ae7StNkB|IL=^63{$lu($kU*%)Z_QkY;MY9uLQOMg0wSI77%sm)?yge`xQOB;pWxy{K6LsbKOT(>c zK&=8^h$_$j)Sug;pG-JCX9>IOBv=fx8;*cn*CWaWv|9L{E9SQ}bw_}l=;}P*gd~ow zHk|*Rpf%xC=_2~}vpm>ahwxdlo6FkXXKAgepb2wY*Y;<0^Vw({mANVWZ7vq06VdIW z9znXT?T_~JmXoaY6Do}uN{ftaJ^sEqTFGh-%=JBPNyw@T4M)g}BSXMNni*fh1?qSR z)%oC%lBX4e&&a%sxs%q5^SjP^mM2`m?uApNX2Q0gK8S2{zfC}WucPEIt($cN*bNN! zJSq<)C^s64QaGF@#A+`Z>G`Xl*S{_T_&*&1;_G7_G$L~5oo>umOYjsOlUp0~YE7?9VQc*hbM3k$j@^FB zoO3UktJJcxn})-^;}F#|Hrq3z&a&& zxRYxBu!!EXyZ4fqUqZ_t=v#g}LN&FGkf=7T0zCa`8RF<+=AKvl-nG5jjR@5$^(%4q zuckK&t)U&Ssxl~+&>Fr`%0ECasXfjwT#%%bZfHdhH;Ea;PNGZ!L*E}~nb9h)()VA5 zscp#s=B!UB;Q`h(alv9=#3j|aN(;nJF`zKkDQRiHp-1p23 zI>_lW*RC}VzxYwj4#uS6*(Lcq?&Xt+1$s%%wx2bagzdjFGL;Ec=5;+}Q_g+}oy$CM zbu;C2cK(AO9oN+>nN~Wy>yDg|XNftisTBKJakm)qHaDfXR*XZ*t6&wAV*bc=?&j8m zmf=Lt@Ek%j!Hr>SaAYX|y>=|aZi%l=U~LYW?gzQoSbC)ddR6!S&Ow>{F=M)uDR+CLy<-65 z4b%>GEZo{x(uA9QHK3TbQ!#H0RA7$TYyxTpv32;y<@6_<*@wSF``mg!TRBHH-Cu%82Cq|(yfbd6!_M;m$hgnjM%R#X;LpZ z2YCOTG&)1HH<{m<__q=@b1?rs7n`)e|K`P>udTK27hfFjn6>n@w&$-qf6UVf)r6CP zxJZ0}T?^I8O2M$vXClM>zqKpjh1M=Gr2f}|X*e~yc_P-nij9wA@Z3)n4k4v?AfWth zD*Hj1oPu=#ExC>Oto*l{vA;OB;$d_NV-vrVx+1Mka2(d;w^m8oIN!yV^k5aMM$)Tg zCIJiR457t!qPu0v$pQ{t;$uD(%^0Kp9VFKnoL6}g!qdC;d z70-1D^h#?3@)asa9{T(YN6LIXgXGDSn%n*z-9>~+r8Q*DRw6DQYy3x2FAvVE^a^FT zus@xV*HYr3qgZBm9b^E<>{ylX_=VHzL3N{Ueh}h=_sI2ZSaZn`ls|YnBC~CtIpK@& zl&W%~NtCJ$$<`)g`DWn-tyj2kmck#i8TJQpiJAq|Ir0UM@fsTCvk-Z3KhV`kJ}s&o z`q=BJ&gRWXKDS?)3WOHdR5fK2csy$?47r}O4##QTV>UbAY2wBTrZOi1)Xnz_hz~DV z&PavnKx^&IjL6f$$yu1|bI;X++62903j1U^lIqCTp=QnfD00R7gU( z+x1oO05E0(Q)8cy=#M!-k~ZWA9BYcL6$yL#9RHEfy;4}}p0n|+l?$L}sd8>ab#z-u zqYdH*{kJN%>kB?dvRbPq4*Dgz?c44fK94bae%8KGFh2*#q4tu&wAA(NC1*VaMH_-O zs%{?P&$fSw!03KY$DRjY5*N#)>TL!R)sK~N$CGo+c~Ld=njKzDNwrV1TNG@9c`IMq6rM8Hiu&R9YqnKr2Fo}yyE1_#X8u!HuwgboRYPqubNJF$QW%d4 z*$Jca)MKnzNz{AdUuW|1QVF!4mJg9hk||a=YXTG5JVZriXjXtKTPd2q|zhocXEVn^z_ErbnXaJcPI%7;g5@-4P@Rnl(JUS ze}Qc+;~x!xdja>;z5~i+;rQWSa?M0@S^M@>x=Hgz>6(2^GwUFBHP@2bl^#+m##%6>n1Yk@PH&t3sFMY z&CMKqYYvb2It-xLdOsd!8;bwi$xr(rVr3$Ae66q;f1B2$AGMtLI+)39kBwI?D)r?R z@$(QHuW}#XclhyUx%tl7>$}^Fz~j%LOtQK$ZI8Pe=9+1E*ta%WG`WNa(K-gZNUA-9v*2 z;y5ZEAL%M+sVH9$Ud6%#uB?D<9CW#Ktc{mPTC_;cxz#x9_+-CW{5Gk!FiJ8AAO*+W z*1y1;7zMMBF1u^*ae5Ojx0Xhh=7Y8#eD;XzSVT-6uBrySRarJ+IGIyQpFGRm0QD#E zpC4}S6swY+xdze)2W^R6q!#>&wi9tQcp~s~oFUF5y?vk~)_b?cf0v|+u8D12q03b% zy425Sw^lo5P6<5pks3&(5*_+{KuQ@Gr}uulTo-FV-r*)?gk`*ej+)q8^J7mNbF}!& zlo36M?#mEIH{d(VGIrRU%>Z(jFgp&86`^FDg*`M^G=21lXkb|PQ~Hk+p(uZa|J`Ma z<)^Rm#045WUZ=`>^_@NcmlRnSg}}O=Td0D#48EgQz}Kb8ycD4NE7yL zJ-HX%)GBUFUTSn-_!jLt@pQt8JkXi>2H)8g@pga)+0ZVbMiawdCiG zksqEQ5$r!bq|t9^imrs|k9WI~^6aHX<&JHUN^(@6$hrw`ra5})He@l3hcD81s_ZLU zIyP=}#5;l%g)ErqS_6w>C$7R2Ww#x)D+Jm!Z54v=Z!(7_-eMgaWej1!%-Ys8cQb%oBg-8;V6? zqomMABYYnpDF*BmaX`9T?em`5>6t7>n}64#OsvK=yPHI$ z=F8p=2YfR|X5sdRQmLcjLxZn}{y-Ahc00Jyi6f)V!s0)YKNkR`n{HQcH*<=MArrFK zX|L?BA!}B5HxSgOeom3$Tos^)-$dk-w|(0N$R&iny8Ds`7g+;cGV46h$-W{@t))A= zqqVAE(ql&R!PR1GDqSZG%A}>173A43_zjO{3n7NF;szUc2o5KkG-A(Los{nwOQ9|t zDS65F**A=|Jr)vx8o@BD;*$vD0u++;&c~W&UqaEt6cncV?I7h+S^L`2B)c&QYVmSAxo*ilKF1 z4NFhwDiO^wfSAk4K=HV}j%DVxrUEam-xBZ+*N3_LR z4gK$!?$#-ECFM7TbK27g5y%(WM*$+6akjjW0pQ>W{4HQJ|JPRj=69LMsVf7OsisZD z6uY0<+-0I{XRGD;E<$yao|enu%SUOc5^QUoqhO`GT>(2QUHySGd!Hm>Xd+s?U!%cuCc0(`I&Ao;q?mv=Qp@arZn|4W$^9v6lzEuXkQYRXR;KnmZoUW?x z;GBgb1=qo4n3PjLEu40TP*O@+FpuFf`IB|P8Ul#D)Oz8RQoXp0gjJ}}jUNSs%rE|m}ql71;^%euiAAcYKxw#H=Y<)}Ruw1fxJjrmX zSK(@EC#{Vq{BzFZ!0xC#$@6S8cupKe_`tv^Kj^JD(&d7;c0fK7!>mgEK}7t1ak0Ec z`EYb0jZ~dqI_gQVm$~}VYXqOd#fwR}QIpquhXL0lKMjLuiC0x3-e@W(g?wlDW% zB+Q^2f)0)@)x3iSAu^r9^4)RPZK0==3e6X}x_kes6c%r zpU@+P#Wjc;jLljK*Ct+Yx?e5bnLUCN5>Jr67XKoJ)*S$S``zLjT{3l(HqcP)+|}$y z()tamo~&5HA#+MTeV`-r_4zdKNeN|TW|wu(IU>~FPyU}P7V0XL&|!uyt`;reIP}Hd zl_Xe&DJ=eeh;6BBXF=7a%BivnjEQdko&7{m$twA6`ewHpCd`oW@b=L-!Y?k=rt{FD zv&;uBZPkNnGmuGN7J85%WI|M-02fvK9ho@kslcg$bfdHvs(W&}lh{i~~qb96Mdq2}v#lT=#i2W8Da5Bcaf{mixD%>Is;F7{?s&a~t5fo#{+G26E|%h+YA_yD8023^c-S zz-}2W9(XznkPKh$Egtg-T&z@13YPGat?>1X%d;oQqP9*?Tpnvk#ggVuVUGKcP<;?NEa>PZZ#FW zQ6qaJkr9~U;_GK!q8ia+wQz?_HcS}QWN?5Ikt&)mu|81=**vhU#mPwJF78T=k0#JArIS&%3ErO;p(4I z%n|x)ELH!UN!34QSRLfK-QB5yNFd8)*&b7;33e6CU*at&mbo?jJP}sXK)p*zUE~+3 zLAYNrg?R*8MBBB~t!8rDPbQ=l_2TpJ!-s8hhX@rDrbcfKh6go3lHli1h&}k+kF2At zyW$?uqH+6rzvTJ&70N;%rU~cxiBPb(kL&&#YF>ob-UyKRi`+kRRq|Y{7myl46^A%; zABZG8Fc_H&yUW4)qV-2T03>O9G&m4?;j%0!1uE`tDxz;>+8z#qrm{UN7C7Dn?CL@n zo*5<27KL&*|NaALw_4g2bYIr;%3cQmJwk!oX)5hH+1T|Qfx0*HCtQh~2iPqJv+0yW zCI7fp`R)_?R9!9hmEY%+g1I+VUu_0wc%Z;u#;WzwNOCcH+ui$r2Lp_FZX{Z?%k>DU zKIr=3zYmn|3s?mA@dY1#^~y5mm74nu82)mSnl!kbQ9EW@2z-+zX{r5gh2wa`hE}P@ zUD2Y->BOoIz5DV+@pj%AnaVG7ad+$o(+i;9d~pOYlrH-s#qgPFYxC=QX-8v<(NMS2 zO?s$|$Fu3K;Uy$5Kft+2DwLd2q7nmzhGn8q$-CZfW5>PNU+y zI1Ha5<9col&um6E29h%Z@o-pN`A`h(vs|Xy?~pU?XwqC&EbKZ#@(Sm>AZdMK#N1C&C}er?sVccjTm-0P_z!R z__1ZYyg})FHcZ@*?U1%~DG0d%3-d0@DXQl84OSm=dRg~0)Q0&H^{Vm*c4OZ_Y)9n#Lngp~ zJ*KVWxx50dsgMp;QO$iI9M=AKLIYL(BC)q1(GA2Nn0aB6^xD#Q=A_EF6Z-ziu-T2&uddlziSbCL5d+0YS={9b`+EuX*=b7yUqd) zNu@Kv_jxfSJ|D(WF5kpJLOVAs4D2YKyE3bjhAG?I%)obvHz}LM(NWgf)@+(o*rkaQ zjtx`;yE|SvbyFT%a#y5Rnt3sR^5ck&Xr%OX0Oms-uYtBWgz#s+F*!*#-V5n8nrLe1 z8h5|Z4RD(!%lmTsFf)%w=-%QU`lR|2KRr<=Dd?-7EzCwKcRHc|GtkmXKL4hcj9W)% z(Jne7QAc^RL?^zJuQf=#ja{NB4~|p9&g6d-lAd8tN?%U^#J<6?iyq$;g7a@BcJEu9 zonV=H)ma4WW|K3wWJKC`mtGr+V`ew{i{<39Cbi4QIg2+p|v?uyD;v?Si^&p=6 zhn?A`VH9D8RWwwd5}wuHg0}4eIq679eESeCLa%Mrcq(fP#R2z~R{Yx{T4(~^YtCkD z6u{?Bs+M+34Tdz*3I8S}o2=0Z2g6LqPtM)m%A1hsc^e((`(Kwo{vQ2zW^ak)M*QUo zRJGS9fw{Cam28x5rlZ7ae#E0!Hro-7N7Zr(!%Q7%)rET6WU7-@g!3HQkxjVc&Elj& zu>SUA2xLU|wKa0Ht*mjNWlek$e-J0kHdXh301659_R`vy<@@N2$#j@XGD>Q^_{pdq zkoDrjsXB=t2n+dIPtiF@2~a{zv*hXcvFR}Cbh=4K*85Ak2bQCyBdfYo#7_&JF9xXJ z8>t?r#t6fh5-${X^2KVROQX1^Osb`H9=^ZpT-ZhuH^H$~UfqvV z8Fc{&~VLi^DC?izjYAp1P@#iyoAE#Ew{k zkzP#|rPO8AyNR2qa4Es%#cQ;>zxx({X_sA2(ik3s5CNTc4JyGkV6}w3!&G zJ(}b8`e=iQ)Tl8oEqU|Mb!8WNQ{Lmqo?g%Gr>Qx}ekW3LlwF|nSAWa()W)Z}J7v0A zD=)~=SMd6KnwuSzT6x}a^3w^!;Y;I2Ou+b8iu3MkbYJR-&FC~p2_sio{lo34zKggn zQcE`Ezn>Z-Y@DQZB^{uG@JG|rUE|Q{^?#!NtE(^SI&kXrr3gc!#@?;1qu4Qi=DGg> zO(}JyF^Mh`Qa?}2j{15#dVkf*eP&iZ8g}2$wm-&@5ZK48&1KZ95G9=b4_#>zj3YSM z%2L}E;x+fXbabWDhxGkMMEC6oCl`79cKy5QlU((FH%-OH`67AdkK;uX6RJuQxDm$h z?KAIMsC8%kA5|c9YL4ymrd!@78q8{-=F7wLeHty>LfxVm|iID>}j9DAtEn}Z!T{=ytPmV zrPS&mN>Fx@LXjI!Yp+_+5$Q~p*vMGqcYD9ZYP!rwS{BOlma6O8_0AnOR4Wdd9nw@U z+xFGNsne7~aSovh$%!|1{GYL?ID;4$G>e+NcJ2Abw1tA&v|qPx+|?Z*oknHF=E~5- z>H*V<7j<*{tBq6^L#dp$+LwIxb#GI8?yZ%GMRuND^%Cl`S#Fa%we|0&6BtygKw_io z-$gKy6x+7IDp9fZ)QbsiiZpUO-l}gh_=T_O^soHW@cbs>C${Wszy4|hfAVz2PHCgQ zwkI}Hq-Sh`v5UvgO2etNWwr&?7f-IHz+fmoUC%GI=o!E~B%HoKdw<4_rrU}Umu}{? zruDkgk^=VQT8MOIx|?XJetK%4ip3bp_;3EYqURbVj3!>YguPt4wLCDw$eG-K0Fply|nrDUz%T%K7fXVaB#OQ>4M*T3GiETo%TcE-3dpW9iCrtOPu z&}*c3WFr?~)0r5`A6-NeXHcx(Mg6tQn9hK4k59_iPMo??dNS(~>O_1{jf#4@5$Um( z+&8xU->#_XKAfM0QX?5hck3m$vti%8YG>2G(ukHu4b_P=I;UXN$k#$;kt;+rv~D8 z3OxC3&~l0KV$^C%$l7ojenEQATd8Zh=%INtq?og*#v7Lu(mk=J_g9N$WbKpj(Nj2# zV2HBh`hEWZ&W2O?Q80AOh4S~-*d&tZjpvskth=_v@}YZwjSxw`k(F+YdTU2LIp@ju z)pZC#+Y@kdlEe6GctL72eEi=k&`kp`3napl}iT0r5 zH&=}iNcA6yov~EoJ+IF-pqrF{y9>kpx2*;nhp0`-gSmcxT`SM^S%IixdkA$PQ@1UzFj^iaVPTpD-l*Ds?sO_d1 z>h$8mD;Wh!R6dRIqi_6dq?d{e*FR1_Z2?ST*?d#YbF4;EvJqr+gH%b6PEe48i}gEw z^)O~tC=dJoG#N=U+a7XPZ5A-L_Za6(A&FdtYbf2lyXZ8dD}Pm9FZ0t?v6#x}zdkMh z0NoLGN)nV=N58K+uA3OjX*qP|wcB33m)gw-G9w0Cs=oTDPySM6l8#2|ytSh}t6_Q1 zo}g3O`|+T-fZB;&-&)kjtE~3Mm~GDdMwX86Z9AAU5G0#qF&{6!f(-UwZFK!BDoV#4 z^x%^y-XhV%`QKBzp7Eli@veu3NkoVGD8Gor$&*-PWvGI$HunBBJw{c#HR-JrH7*|BdJIKWBHwK4q_rb++ZT6SXIxZDKq&9$ExNB=H`~=hH=?ar^5CH(j{U3+q}6lNM_MiI<%7jTBNZAALAj zjlHw1t+6F$b9i4p1;i%=j`V{mG=7sA)b&UmX^~~Ll@{At&`t8&G8gpEZ@!CV68!o0 zG!k=WGmlL&Hal9eM_MvL2Opp3Oi=1ad5bR>jRJv0j$6l;q|4{qjWU(8;=PS!@Q5^b z&=2ag9916N>l^~m@vU~OoZaVG30FR}cF=0t3Rxl69>;9!VKXbI7v-(7rzh7zr0_s z(J_SO8;iB8kAH0f!}}M>k%Y&Hn&)g2qwmco`GLQ=J1HqKhoq z>DyH(^#rlc3Ugf7(_HF-&}F!n+l*<6wsB;4^1rr%w@}xs+gAz7JGx~%q-VX4pKSz5 zH%nm1U0U3((vL&SSn$l3O$y0wvnY@J zVqZ6!&_i9c?QVq9G5BbnE9cWq#+ba9QuEMFEH1D->Xz-{ zs8b1YeFFgK=m7Wu0Ki=U84(lU&W%KLvjr0||8F^xh!=4Cf6m{!$rJ(H>;b@=E#WrN z|1MK-`}Y6T`>!s*;Qs$B|94)1K|HJ|5pw`#3&2^+}`|Oss3wMFR+lV zit(cWF(C;dk!Lq0VoCsjrj%e4<7J!uK7R_S-P~^6v0mp0K_o;giL`$2#5G&2Ba~keHw7(mX#nzoD^DwIG03KeyboQO z7EfvMt99-k{HkD6oVBbtNBdMFC+4o>HaY#->i2={h<+(TCOz{VIL}Ghx?`HxN2JnXB(G*_$@j_v^x{lxwOj zch17()fZ`DY~rlyvg#BH9F}%l4fgSh9D>+bZ9AJJqo84=QPPyZBC_f(B>1Oz$bT=mb^+KVa=o2|%9{PX0~MSW6_ZZESp0qHf-CgwWFV+IC ztXa-n)@gc9KR)wH^t$Yy0A7rkL48Xfq_q~F)qt6BLz$I26BVJglkJk08(>aIdwSt5 z&xEulYSyFjrJ%Ebc_m=67F=$a-yfc&1uR182Ayq++|R7JT{TNad$Hy=p>85f9ridI z@^ianCUvDt$OQY6PGlUNWM+(0tK}@^(`8s5slvidlKu5S6z|p1g(5)JC8L-NccC+{ zWdI$+@k0C3owt;CBF<^EQ2Cj?A)Aj3cco!ekh~RDpjBM zyarqf59+AkTC;m->Q1I9Hs-f9wc}b$V2r2kkVjuTn9alwideZACS~wX@GHM(q+(4C zSbzSbji4lo?PG1!k~t{SCDpq9YPVaeF>n`KO`^e&Rei@<(V*R4jl{>j%xaTkCuyUm zVYT%s!T%NFozK3;?!QHOqlc47ULO~xPGrIX)kF(oI z>2pwI(+(XUlyLKBMAIA}BXVDK{mE%WCpj{DWTeS#8Vnacq=>28E^%s`aPqOc6Lu+% zVqCGR>z6yIlR%Pw*pM2gKR{BIUjr)h%|CUH^dY$XQMXGTdAE6Co)k;Kh1On9Hr5MX zT9m48C^dOUy_9OLEB|xuJhfG_s^LZVWKHA&k=YbM8Ac8Ztt_k`>NegK;DZG2O@VMCQJ0@92hdBYGsA==D z>7z>6z~KVO{~^<|WxYY&n8&3%|KaxW{x%FUV)uQ+tT^nBrkX_@oP)R7JBqg2XzosS zI02S~UXgRh2G6XXZfCBkv9sP$Eg6V=F$X31!!N{B=^88=<(3s!$aP<|4KdB8jnd_h zqjxXx{E|DiOP?{8A|8?ltB3|aXek4|LqNu!8-ulD)^;t#z-qnc-;RLbLMXnhVIu2M zbLeGW4Bs58iT2B2k%Z6c9Fx+E{DOmGv|{_z-f=kp*KC(1=PSGvz*E;cU?FDvtX2A- zTl_#0qdr0k>iiMQZgb}lGgqv>ISBqy_rtRrwu`GxzXqJP&E3`eOd`<#wsyNg`5J(2 z=#GQ&-a;Q-9f>dTs@fJ{^5i{L?AFKk(mdk&%buH!$X8au@yTbBC#PqG}4?iy!Vw-Q!4m_OWR~R!u zMP9g-)e!?SQ@wZ53Tjn66?_u_FXcQJ7`q+PBq<9b(3+GhRt3KXh&++`0lws>h%07W z49>1?zr)AtOlg$R7)HEZt&-TiM}*!PSg3iBs;oC?682)=_Z%NVme>-&MJ3}#$aj{s zLmvK6)xxd53Xn6K3e(rB<^3ueU8%_}d>QK8UbtTv&f*Gvn^tRz#?|69d5q1?bOv-N zinA&l7|4i7A~jpE!W~SJ#u|#MtFxJJF04)t7xk3BrMCwV%9E;!4;uX9fwC_hXfAs9 zht9gg^Zx9-BZ8#vmTb>v8>}KD>uRjX!_e5BLr8E-#)$^>Is4L&{c~6RM4>3dMBmuI zOF4NP<;p%O)o*`d*Rem{5>xd2)Mf+_YAkOqcg?siNQAX2eRh<6Lxn<6*MPh~Dtx@| z{L3&jqUVSnK7YZxorq-E&WKm`Zb4X15vIKok$u?p;l1I#o#*&*?`iCDpC4{0#e8{f zE1AtV=i+n$pKrl$?v%1|W`^Fa2Eu?#8h>rB0X>MwWAN%gB3o&vHfA0rN8#2T-A&Q$ z_^ZmLO#1XZ0>phOZ)ms_W0ngY%#BsRu0HZELP=*l&I#nrv;HdQ!o z6auqe17LV9f>+fwfTyb2?4bj1+N*%fxBXX_N6%8(8ck1IeW;`kA zlj(rQud%~4}sH0O-{HQ<~xn)CCf&+NGR|2S8+Y`l(1z%e_q0(KR4=l_3ouC=;wX z{q|c+fG+=*az)owNVkL)D>Q>oR*3Gx4W|6ZG!tVCCO}2#JvvXOf$;;s*9r^uzS6ki zdmQ_S5ve>}M0&|px=MRk%LJ^PI7Q{;OMZ5V8vnUf*#S)Fbd%3&9Z%Mj5`XxO8wnC~Y@(ZJMYCN4SQUggJ?Ss-rBAmL zHI2Mj(5G{gA%8~iqQ2>hGr4t*+w?Q>afn}lcO1@)ila(finKQc=(~m)Q#`fv)6V8+ zLSBiu^Pf8#80SatmRKW3kO+y2tbdsPECq+y^yACJJ`-Hwv(D97`Uv)SE*t92SArc@*CUzMI(L>ScNq2B`8`Dt@rZoi2P7;B9p4z3RU0 zUAcitvX4n;BOqmW&KL5WNG#k1*~6CsoMzl?KQ6(Ed;oOliOu5&wO4^!}he1 zm&bNV=OK0>EjmwdfW@{$*RYwWGmAt0Z7)xMJbSD(A~RVww!g}aI9VuG(YK)VakP@f z?_M5cf4q;ER=i5+p*Vj}Qm3}NZX*9?>DfUEoF+w`OXf@@`k*>lR=KA0WFg((O(Ilz zf~gw89_!Je(H)P1_RmM?5J!K?;aqEb?c+p4bm!!pRfA4DN}^b!HWBFSjvTbPVz(jQ zS)NVf3Qe2_zJB||N)O!+Zz#{ANpIco-d!(2&qc>&Gi23%IoOlBicws8TwuK^%83p`Mcv%bfL*ju{y zqOCOKmu8c>+Uc}QUB^M2R6k)hU)XS^*EFgcVaid!7rZKBKCLC6-LqZNpQ-9wMA``CeqF<8D2eCe32B9gV;Q)ZI1_yx(-I}A2`w=vD! zq)ycX0eLEB8vC5l2yar$@#dNOn|Hk7lk7Si(et(s*uVJnIQpRPW*T2&GB5*#O z>W}!0kf7W(;6#fdE$ZHl!E3)K)rrrnAN-!^3hB*`EID2 z0km?Lo2KF*cxZf{x5akqZ0_zA7ni1^dKQaqM3}a`lnB4wvB;EsB|Kw*!aXuNEXmF& zVjYaoE=vM>y(bi+ixSe|pn&lM!IO@i)+5lzjEp!Zm*xxG$Y-zlgcw#yf%_4SICw@D zd6qEGoom3K8h&kHKAOu%-{m>-F8`6N&?0qPD5U3uXYR)X>(Ha;X(F-?POKL$j28T> ztSi#p4JTLPpQF3`)AU}Y2%vPadr&pMHnpadSdarx?N-i2{LmtsY{ImEtJNKHUqpy2 zN&>iGw~7e62H2QsDk4*}+d21l8&W|&&i&*~%)TAc!??1pi3|*%KMSMOP-vT)irbQM zl|4Pedm>~jbt|o&I?$$@S0!uf4Qcr^TL>|D!N`gKh;nJU5S(l;7L9R96Sc1=$bpr7 z;Y;0L8(Tup_s_SuEQVdaWsB7|W=|V0m(W+$ z_3U67U-T}MJn$KJYuZ4TDcZ}9>5W>&V;muF+;apbeGQPBmbJMQwE@b2d@0eZp&`%#CEq*W-EjH)FYr7n)Ng0<>|~^aK5=-^;nbMz2PaSTgiLDZw|B(Pdi?j zMWJliQmo*7vKpTUzBfw+jbn>rYWFn`BksYG@$(sf^Ai$G!qGO`!6}%j{S%0!?(c7c zBN0Spjf4*uhDMwDh8^Gn4r)373zuuaJ{lRJw{X=0W8WI6PPrLcvwWwkVJQZpEJ<|@YLDysC-2)B7uc}Vd1qo3KO$JXFha60Xi5iGVf zRfWV`JMftqzM1uvYH2Y`d0%r?TP2jTo?aJGxEUMclkzE=3uJwwr zAyj8uGsc$u+sW+FAbJ-ORgOWX92w%S0Xn^{I>>&R`cPX5YGZx0@K-?fYE_s4`!~FI z=lzGqdO8NL_ZH$i2+lR%0xf6}aVUb%Rq|7gLU$*}eKrC1djvdHu_=UMCnpObiCI6K zhgMNlyzg2Gu?ya>#_7Rl)tl}8^GU9@wn|3BG}J0BR1mC3D7e%$;Gfg{=HUia!LMz3 z;D(8X%f_+9$W@WwM=&8AewW5Jl-))QT6I(8#PRUmmEp3`A)VG9!6>nv(8N0XhsQg1 zaDBTvR+CrOf(AGIUUYvLRMMplRki9M)~aE@fv3#s=kSM)N@mEErvp<-wBuLLcmQj| z|3-$P;e=oaQxtJvV6T5la>_TL5Ke|u4RH+^-fk$B>p#9tM=9yQ@78rC&J;Ma6@k#s zu=dEJI*OoF)6dooVVzO?(B1Ek($fp&Mg|*l@*8YFz}7Ets9muen-BYg!b~!br@@@a zltb8D-$I?vSpN15FngwJuyRsInHd?0KL zk6<=RlK$bq_TVzFx+9s(Yd}3MGJ{bx^?vgKpPX#s{L7ldb+WI9(J+^J%&}O55zj0x zoET%a#pti`Wq*#9s<%6g2R7gcisw^~pWyL&dkOx`IhUfHN8jUP1TP4*R(NKu)>ZU& z0BaySWpLr()*4$J6E&4WR`0-M#u6%#GpC9;50t2#6<=PTfB8kT>34&$HYhDAy4pUu z#9ddq=LSX8cDTcp)9XHGaxTvHW%P1nbAV)jbjBeu2VQ`@xj_`2{yhC9#lj&Z# z04X1P?>j;zzGA4IneE|UGTT?~y6ntT=(3Fxz;>X~pqDe_1>81l5RNzF2yxne4^D>B zdq3Ufz&w@bJ`z(5m*5@kAz2j>2_zu}Pe9MpfG$myUE(rmfiFTi*f|vu^&D2=;_>;< ze1zUTZBHgV5IiU`J;yX*w3Cu-j@^@Jv^-12Y>reH;f5k8?>t20+e`-8BSXCCC!d4m zL$9jY){Ja|+s6wrI9rK&gfQ8T3$@M8)0XvwYXDP26EfB`;(Z^kIf63h9=p#j9Jh82 z&^~@Wb}n_ce}I&O&5iwzXW3AwC)v^z#cM*^>7D~WQjZVF6E!%TyceUeXP=+ZP{+p!-Lv9LfQH%(J9=;I;5g)9!_`D z_$yz$X|anC)R>|#v<3O01nZ^Wo&`<&Ti@}m`TFaMY2L4tYGsS&(CcIhhlu>=$uL*C zD!U*2JrKf)yz6DzQ#w^dsod;!Q1RQrA)!ODli~-WU^C*;IX+&;%P7oA`sN!}vp9r^ zHmAHWNq*;vTfPPa-X1P+Q$>7VNE<yz-z7!eGhHdP;;fhk>+n_V?pvOJz{A?i zIr78l_zd@9ba^l|y7n_0dlFu!+(QuB^>-7X{?xKP?cfB_-9PZHpaRKddKb`ZpRmYL zlh${X(|pnK)aqjMS?lzTGXGNxXR`8qILt0cOj+JRc|0k%Yw7RA-IlcE#I9HQ{+(rw zD)-Oh;jJ>=jjUf|b!MKx{DfNO7E7Rmi;&pSv_5-uRtir_1jZtcs8_A)PowT1;y%ry z0!RN~dCCh>Q=V6;&iUd%i8DvU{*%KY)zbX0X1GeLfMJj3)*{(!fEljjYlWGAqBt43 ztKbB3$VIcui@gDo!8XD4y-A}xp^t?7EZ`3`@74Ff?F5rxsC;0}CW2zHmV*X?^ZzhG z+5&%60-g_Lj|eOgMuMp$Xn$Nv!01EOxnZ_;CuQ@t7xQijO&N*@D8=W7n!@8X&ORt( z>2Od(ImRH0eZ({9-vCy>5*uV|r&o9zc#rkp?+KQG8$b0f`nh7zMA%wpaG{AKFdapD zGax5&-f%p2;B-+#bC%{qX|9z&LZrG( z+1!A*cgIL-+CZQ})7ln%*#0-Sn^P5K=}BrtrU^6#{xi8z!d$tCo)@eB<+vS51#7xy z-tblJ7+vxdw?)NbwHin;r70O3I-Wx zDyoJVKLu!lqP*p|j*)X)FYC#?lCOFR(2BV%=~Ib`k!} z0F2HsP0cUJ_r$B)&T8-Y5bLwDllkwg;YYomQKQt?FsZS!QFT<}w}Rf*FiQDYWQr<( z+uY#-nsw+zezGLFptSA6s>aYRcOYtSe*D!?#=5ZXcDdUcqU);_Su@=gAS#bsniNguvY*nEHL~i8860D}%d3#lg3~s+UodFlo)%GJFn zJ6Sygwj79~ey7aL(tZh&8wm|IqSLhC93DX9;LpA%JGME^Y@DAUksNya+>m4`+2Vde zf9K(kakwm!x3m3@?+wpmLU#O%5CDs4F2o>0! za*fdAtUc9{RT__OK>e0s*(x?71RZiBkJ9j(%sI-w8C9F|q$&YdY5KwIm)aUHEBrE( ziWV^`C~FumtA+Ki`-ukL!gtKVv~%rD@FSp1Rk0`ML8s?TF}|QM>Omgy%#k8hv(G^# z(*oCkr|`}%-x7p67r6a!yICy1>sLK{^yxS(DUH~{ zKynQi)Z%4jv!l5B=#)IAvF}2*q2d$KPkAD8JYjmK*8mdWN2T$1Ct}`nGsx%QO9^^E zG3)G-H+|%Xw6V)qR1zM+D9ly_&{)mYu~C|EIyYPup1Rt8qv)~OR#lAJR3)Ps)r@B0 z5fLpa#@7J)%I&RjR*5*zX8A$F*84lS(abtMDT$)8tI$En^vSFWnpajmGm*kHs@zcz z&Ue(fwn4@Z?8+l|xm*u7KQD~VsvqoiVW--i4=Io*QXSdF@o!rJYl_ImULHxHbW z*r-H1EJUvnL@h25q?b5uX8GgDuyhd7+C$@{i0&wSXt;C3uq;lQ-g2}2w5w< zs^PoeOb{B5>b6i}&pY8y2dMX!f3#2AEgG?QY;{-GPF80`PQxc|M<}Ckqt5wYzO-#`0){$Q|2{@kC zxj4+IdUIu|0<~%U^VMCG*{MzIbdyxn$A~h8bxb4+wni!5G4t>moCAyQu*nSOy?FDeGn%?7px%)KJj#ggS>J{YZ33D6+lIc zL8nb(~g`MZui=P|><4vu2GgXH6)I|I?i+i;@&_Y?B&N6vLR^Flol?KKWB(x^ zu7)Y?{S*UZ4OL{D-tN~+8d;3xZ@kzP-Hu{K=S%I@ll{$b6cWvwtw&5xzC2x2M=-A_ z1v2VeBoStek|tQo4jS@@yC)b+8x@C~J$sQx@1Kiu1oCme?5izhnO2r9 zoBjs&Ja@q@AwWk9*TFxbv z7lB|^tLK#0fY`}M7!%I>+0Kwlb6m92-?Tq{M@aZA9PD`r;n0+ERl zxqeK=L(bNF!e5b7)FX=zU-OZti%bp3+YlFZ?SC;J_7r^&RDPqG*V$VHfl11$k3H`e zTs>X5#W$*DJB8jY(a$!OcseTlYcq3&!@)JYu_3Rkm&V$T1Quz=vKlJ4UsBRJZr`TI z#6IPB5M07A%6aBPe*@`2I@B0YoW#29N&R4^hlk~GpDzU+7$b$zOhKEsNZzsg+$vgq zH~w1$eYFO+(9^19ft1SkF$;?GPHdTf^y5kiA%Vz6XmFT?swfmT%KLk2*pR*z%Tw8O zG8ro#&o8xK(j}UwTb8M49oi-<{WSM6|JABCx0Gi^(r+~!A{=RMX961=L?BK1Lj=w4{H;sFXvX8 zl5h1}ECwNDbra_@*6$4HYA@OKU9_6Xwt)WOMgxW^kA*tVHltOIa<=O}EJiFAEzjN( zt;v+j5IJ{FG6qHSkRh^!PZ;c4^j*ee0$x_(wJR{mXuF2g`l)h;RzJq({$O&>?gt+; zRCr;}!)4nHp$;TIoRoFuD^{6)g*6wO9HJMR*#<|pvh2Ah$Zj=L6;-2;YCijiXJHb0 zhOE*E_77xQRS&JgbWSEAG8X>6qD7|teP`1Yxm<*gLJfi@i-THRfugd&>eOD@!T{V9 z{F0@LPnG7?Cx=HLlj0$I5tR~uGPo(r4_JPCjn{>-lGYL$H?IM={v2sMX7NYiO~X^t=U9|x)R{W?buQ8MC@b< zM)nhag!Ae1^!1A?0&3tvmEg}#Gt#D${drBpZ0-Do^d~ZW%z!fVN3-_Eik5vsM9O^e zy2{!|_@e^03m0jKm8$4-ePeCsg5tOHb2*xU%ns_ZeV6-{Hio{rB#~xJywriX`b8Y8 zq%t>SjF)KVtWDVIJP|SOTPm-m=yojh6cG;%ZVHA5XPFBL43GBt)Aw^SyXU!U@xKRZ zj`U7b4p@ipMAb5HHm%L+>?Z~53P#w4i*q@2`w!9Gve#p{l0Pthz=TheWXri>W7&o0 z<{>=N@S(&lHpJp1IthY5NO~>YB?*B;JU|8ifm?SY5*hy$NjIm|A@BhK+i| z=IW2}#I~~{i7D_6rzR`mdVsA%jIE_I51&O6cm6` znn5#FGmd2cdd}y|f5~ckf%2o`QpMmgK)JB!#A;=8Fve>>4 zH!*0seoG9|6?XxNG5z5?oqf{f&a(*;t`55=!CRNgu=yj)a84!LaL~vN+p63Ei1FHK zqx~L1$D^GnS6(i&<}$?I--=;?V2M4f;<)9+iXe~fUtI%+xN(!W5#66JEbg^)4T!N+ zNzK#Sc$Eixo6;kllimmJorULN7xT%OHNY!r>1Z2n9)jnNjqUel_2`5ULCIEjXV4(99Mh zziVvLglCm%GB<&c&f2(nv5NE1cr9#$za&bEK#OYr?AeVcnca|>!PG{u0XSQMmwK@F z;>h-HiRd9#B!jD6f2D0%nJQK%Mb!}6B&}nWI=-EfvapL)G+(EC114hxOb^!bnBx`uN>HZM+M8hX^k)Zkw?3Scvn-gV^R2Q z+(o>g^BOQ=%wfc5Ln4K3mq@BL_@rlowCHsqt(0aG%HM`tQG*r@0^mV9_QvWkZr>8+ z8j>pzg52jvmTR(rr?5C)CKOEnnyc)<39|tQ4#f6u~sFj*!g{F57hC9xtZ?~VV zF0o03Fx!9CvY?v3aU7j`;}zS*&BD)S7@NBFLnTVgKkW32l-@6|MGEVc2My|h>W6=c z;Xh+VYUsO?#UDJO^JLl$y^zRvtn>!ms~N~@TDx!&Gso&W%4pt}zqi2qVP`4<`NT%I zd_!eyE(+42Ps!LThLpXDP2UJTiZF*!cN#0$lK$g?S0koxgYEw627erxC?s!@FhC<&S z3-yQB#6yb2VYYC`A>rX&Y>D%H#)jXxv2#?CnIRXqk~TDFCoa17mpd~z*>2VnQ44a4 zbetZ36N@RcDQa*=b2-&IEjeS;gf-n(Vn_sLNKasQo2qqYIf#baqXhVtx5H@*T}Ofw z?=81edwOv$*>DA_RF?&Am*gw=5BrJMRgfc@wJ0Xvi%2j-vs-9sFNuC{v+Dks6y0{E4B1Arm#`HST2)%fL?P%{-13zXs(omInJF%3oAFJXIt$4&W z`h(c&qHAFF5~3dv?9`RyRp5OOHJNkx)ei@KL*`FK?LEMhjRcKHdz|l}F#^_#YLmk{t~r}##u#h?E)_`(RQ*M8Bc2+D5hC#LL;?h&fO5H`951LSKa7 zwp2y8o^2jh+yW~)+1$)_?ooWtCBF9tEb5$QjRIcWE5H=@OAw2srGAHTg@?+^+8Ml` zizcYgdD#|F4zT$iA!qshxb92a|LX5OcfsGkaQzC*ryQhxE7N^9v&lSL(RPk;;fL}n zEq{w%%0X}!LYaRq9#7x19RaDaXC*E|D|ym>_wLv_0<-XN2;Aj@4Q>CPr&-1vu$YaT zFiaXn2m7Q;%P6q)>IXs+9A$OaipOYAl1QBRR5e-;Gi_@6(TSA?c+L9`Oj(qJ<|mgD zB2Wj%Z7Tyr=%qwK`eSa>El)D1h(D1FeX{Bk(257_t2$==HLSW#a~Uyzg}c8E1??Xq zA5@Vk;7uPO86Bw%FrY}^$Gp4hUzJp^I>SMCp^N^_LYRbK0}Bn$BCC#WGkTggi3CRW z>()OprVX`qsFR7T3Khl$w!5v+1gLOivD=q{o(BLpoSKTm8-J{cN>^KGr6567rts{ zx8MDdQ>uU>Acu@UwCghLXn23%cLb2@L^3+=a+f zvaXXtBvsgdUP5GD$Ki{I2K^W=k=+zeHN)4ps~GDHr@ur@xG*#y=B!VcEtPEY=vAFY z|ABO+cpQ8GICYxCyhd`iZ#dbGNMluI(o&7Bzy1s>qwL>BW_YGx{TSlMl9&;Y~jPzle6$QCVCOh{gJ3( z=8wx#FK^!aWO6=Lt^80zzM}#zR<;qPyac(QqRp_JA9iFHGk9h9)y*!GT_@t_4Ms61 zP{jr<|HhowmP{_!IAy)@@F*LZ;p-iE4Ul-SI+yA>X3<+)$*Ouk!-;Z{Mff-+><+8i zBHH(z1hR58clIie)5U&4ZxCyl%M3yVi$#AG*Nd8LP=lN_m$y401Eo}>8c(`=|e2@&cVYs=W28dJ0Nr(#@4Fh7Q zu@|nlfKCQ@RT}cuB}8}lbHisTy0SWZoGnng`U}7FyqrR5@5jhxzZgHZn;>d4QGHs)oLwa)lb6PSKH^3A8qfRg_{Hvbyv)o+QF24=QnB-bi{ zbqxe!H>rt(?eeT2Jg$s$>ljT9T%w0I<$eisPY7=P*We`d1%{#C$ubU(Qa~~Km~6?E zl|#GA7nVP!Q0)vBSGJaq*}}c*?qL+8{Ak25<8@~6mrzPv*EjnTJE`s6gSjMs_x)+t zJMTgpj;zc-r{%b?g@ZCD&SnSpW8V2L_vDFSwHTuxAA_7li6!|i}t{WoM%Wk#PkO{<@S*%N~TMuo&ytz9VSZW%O&y{PpQ!6e1i z#NA}a$-&gv7loUwc9$^}WttRc*`l|T)vq&S_=iQ*?ls;|<>{o%D}>#dSbHC+{N1$y ztYnC*r4xkuQ2~1{z=Sg9dVc8sNpMtw3*ToObSxryO*qL^LyFNRQ^Ssu%BkHp?JAGF zW@Y_z=TArjA5?vES17Vf5@jweK2^nQ@R+zMNKc-UNQA@g3CrdX^DPq>%~lQ1gHxLau@)6 z$EHRcDCoV@jtOzi*!>6ht-Qb|Lv0IoLV{Dt?x&u8_<1sNA#B~$I)GGcWH_iZZ6J1C zrPI7|TgC^2j_2O3|2cP|Hg;OkzL3yC*yj1h^bM@VYd-l!!nO-4J&b?f`@)56h+mz! zo|3gws&4CriSjP=c%h~@%;rvWvDxf2Em)pXBWWhTeez1jXaVn;U85+4EYcF$YtbkE z#2BG-3u+7ey8juU+^BEjN)v95!CI!lgwO6Vxj;T>a+@vfmRJ@b^#gCqvw=PDBxXY;UD&^m-rqnw1f5;14f z*6;gJ4ZJsD`>66S7?(e_LN-dP@Uu2&ty;N)KfZLu`Y(i8di_hXAM=k5P}<8hlr;%F zY3Ujoi-hgnM9CV@>5S^ybOYW-cY3^FJHte6zbp-5(N^zh*6wAc}ZOw)9v zrwV=HuIJ&zkf9RSCeR~{w_DU7?W->}w{a+(L18^@!oc@fqf4P!*;*3@gw1QFWc}S_ zG0QANn5%)0@K$kA{cB|0;cvZpaA7RdZ8&dm1tWi(O)cietxB6T6YSs2?F-lhPgZ_W zXC!+;DQ%Ywt3qDr7R1HatnE`{KnV;U>5S?r)o`O7+ZGK|;OI82;;be8(=y+3|Jj19 zA!lR|$<}h40r-k5_p1?J$H`kbo&TZnSfJl_C1R(s zGT#ON4fJ6m_2a0u+aph08aKW7@q*X>zbWr914F915>*jKV%3HGUVOJf2BGKie{c}= zqd+p7e3;*l2f1eq*8umd^X%GH;>5cj0>byJpQ~J`Yuac!-0>e-5c_v2K6(Epgw;FM zXw?87{-?19Z32Bf_sEmGb>eN~BDOmIbb5({i(`Lp7cxx0FQG;h5J=`{_rkr2jP(&z z!>gtWbMo&L-`%I7$wfVSKf}-b&B4C4n-g-gkN18i?-F029jRLbgc!n2#-W_NQgN_d zNi3Pq2-NVBxdv=RfL6l`kI-M7d3UOH%^d^4q{f>tfPU>k(lut z^Q(Ld82y2>XGr1-G6xNS@U&SSsbh*gwK^*1K<_mkHHaEsp1YLdjHyb!E2XT0ro2Sz zXz-KLAYaLEA76#-Vh`tzK#is(8=dv4)zl6O8qpoLOt573{W4Kmy)z-vUQ=?pb6kc| zwWdTGqUj__#vMj|dba+zpYVOMO3x$zbpS@XM4Z}y^X{ZrMGBjCaT5X0sI|92B4Jy- zBes5iyr>R#=AD9DePlPZ>0kVNMHn`ezX(dam)}na&hB^^6n40ijS1&5SOsdsy#ue#rh5o5Bvfad7a@(>pJ9O7Q!K>fFjzZF zSR&KqN*?n|ev3y94-6Zp7Od`R^d;Ojn@iD@pVzCJ#`k$;ln+0)$&n!K zRNVsOXQSP+v4!4$x&62$nD+P1uK~pJzqf9lkMW$hAPIF=w|BHN?;($GC0CB0v&4<3 z!_9c~7{~v}eiM^-ki=}SnX5A4kFw-E{TMJNQYRv`m2JZ7^5 z#V?cMf$xrp1h3D69y~9H%{xIxhZ)^*aQvXRt0V? zGyUsR#HsCNNol-KgZIp^26_QzdrPhBm%LRM@}yEEJtt+@ zWDa-qSXvE^e9bH4L?_X9GI#Ee0ac^QZ8WB&XUl?pf@~N#<~!>04R=>C3a-%9pWz_; zZ>B0mQgfM3`z50~Pju{Shx@Z~do<~9?bmArxB#q~YAiXdp8lLR{hJWR>VCs{cq_&& zjqc3@pJ^J}Q-*-JpZGae^ph`aH@|d9xNIe%LN|OAstZ|5Mk8`*RlPe44~hQm7t+?G zDkd~8T69L)T?0&`j2O3Ft6HX}EDgrKDQ$sno$VrOIHjZIpT81kqTwccIx;3<;I*+g zm+A=_PqN`~4=Es;_>Ug*h ztew@2Di1dpMn2AP>5ks~{l}1+w;NbukEl`mKHJ2J6LTQAXm;!RY#FuO7;+g65{h)D zbc7pUB8hsVb!s@t^LvgHOvWL+kddt)g|tSc{g~ZvFr_ z+Ob(GsoV;6X!T7NKE)cXWf$4VWC<4M4yW|uopOWKP)sB;YIFO`ZDrOlgzYxF?3i$S^30B=NZrD--U5qN^6wXUah^=-m~`Jd(^5;jo6X4v{q2N_TH;DQT%H}2@w*M7$t~A zQLDB-dEVzmKKJh)*E#39zGu%GP2bt0Kyc!{vpy~!E0S+UQ3e3L_PScYY#>GAVPrkU z)nJO>4Eo7a*2W`riT_f5{rrLOSjq!v1-o79H4DK&>HSuVYw^>0fK5aD(K#TW{)-Bo z&-5B2Sps#V(lrDszd7)DPWk91F8%o!(wpUKQ0X$?m7DtHqMz8iwo%~%`HVNKb(+rh z)1+fjFI>r%SV9jas9!ppubwng=O~6*oPVGw@Ez9l(mk+TF$sfKjk7S++?`(Wv0R+N zi?Ch_H6U5g7+z_vu>yqn3RhNZpY-CTXChs#dV21$6med9`i}8E>X<=+`3gVwFif%X zYOHvopw_czgAV%Mrqa3vSPRk#8g>jXlHrqj_u0W-^9pDeRDauDgCMxJt>#Ni*^nXd zG(8ZD3|XbtdQk3yi9MH;nOhZ10ISOP-CN(0@uq{;A+Vt2AY=7mAG5^PgQy!j?~M0mOZmV)yRMI3?pSi+tj20 z&de_fR2*+Lt1f?ywl<;~?nZ-0k_hn-D zu}9(Y8Ai2&quRXLe3eOwk^ZA@>s9fRTYdU}4hx{jIURa`uRi@Qxw{TZm2Mfyy&@vWEarBFx+iOtvmvPQ2K#$KyI+i&=^s&sY~x<_`9;h(JYRE(c|aZg zE!BV0V#h{dNO9)>*|n3l4-#T&~NSoT+>FF0o9z4B0_0%M-N>8SRDt+%At z%bxU$39I&zeWQ^0>;{$4d@a-oyt=Zi7IW=t1*7Bb6xB@oGAF+MBkF&$P+dVIO^n8j zO;dF0hN`N5HvNMw5tcNvI)u!WIQiqWZ8SMjWiVYG+SBy_&b}~8V@T$fXo?1l`YONf znyGYT#h=C2EH@&uFh@h5jnzu-)6joJhGMRGH6^jZyDfHs?51G?MGFxJF$ALrQCY7v zBJ6vb|K(2&h=t1Zg1H$Y%h9~z=ketZ4|#ervARY(L(9_c>2ZB(k|KGLrm?gWeIPt> zG|Ro$%b-ST;nv3h^oS~F(b}C)2yzRs+hP!#NLSSJ^}I_sQ*%wp*&g@?gDZ$_yYo>h z$CF07aJ|{FS^)XE2{62!(B&$tHP;;$7Du1X(f;SkaLUye{i;}iZMZHE8E>pwr8R0n z3a!M!{w%`zsDF)%#wZuL#3a0kvJ)!-?W&w|@!41E1Z2aafmisSP)Qj$Cl^yUZxcsa zyQyj|RdbnCLQo4hs=wnOk;QDutCqH4-1s7cldfBmUYSU8<$3=7$gia_O6RFcc)w#Q{~xK z4(B=T6GoEFzchlrVWBMz?a{OHVKjQZ5Rq0VXlb15EGH)yC#m*2|75h^)z>|eA{|0c zM~}N;x)LzO!G^QXDBk_L_t&RVx!xIh%`#JLJ!H;gBz=G}xiQjo5N<3({nW0K5t5H$ zZ0XC$BwUX_&0XaejKmf8UK~PS*>cr$eQo4jX2JgO8Z3?$u0I3EjkSV zrsuv>U*{k6doTdBPu=G%v^P6%VjLym)Cw^ywiN`gei4&C@vZuQLB;AsxQ=3v^j`R!^)SX4)%4a}ih*g1N=V)d%#TMztY5Wld%&vPJv zI?EaI&@RNXa%3oq{%papjPz;RNndf^<5R@D^MUKL8515~oscYaTxRH5h*llPr42Du z>`ToJ@RpHu57(NWXeYRJ;k80hI8N2oqpx+nBloJlpQSBLXSw?CqQg-*0^r{L=hF0Z zh8evGz{++6LFMCj5h-)P6qQaW`FXFa$Emuj@VJU?r1EhLadIP@qPd`{zPe8j zM&BG9%K?{E&OU){dvzJzA-wE;Oc!`4+Lncaqb=Ws)?2$4OH9c0B+!JehA`?&se|40 z`n#)etvINkc`_gCX$fUlLOH7E7^88IeQdb&zcsMqm+=I@zRMB=i5U8oHC(x!f5kB& zIlb?d4K*M01uhPY(7ypj=j9yQL0sY0e>qi*)z9jxSY{%;<;CkTCae$`P^CE=3^ zn-n41__PIEl1aH(d)LgZH5~>PS%3OJb`gIG;pKwPicI}qC&|Fm5 zxlB{0=rP*~;xT=}yq7MExZg4eUCsQwakP!1z|?I%F{i$*GAHtxiai@hDTL7i$Gi|< zL_vZ`ZsK?Q6SFi+ZJ>C)`XS3hi;{*J%U$`_lDE;jpZ7IyLqOrqPmcW04nm%!d+s~* zae7_HHkS}+^g{ApW8B-key4_-`5xFyU9G{c4=Qo}n!n!&D={+iw{Oi4ee4Je@zdVd z%!zM5OSv1EStQc{wyh6d>t5?hwk&w?!$(c9lBltVtT|S{PV_U>#JflUhh|ScEWSj= z&u$VJ=r&z*M&TpDM*aK{Z^EVE`=BKG4ZnDE^ zu_DJo(}Q*6t>J7$ZPS6KbfRN#Z|g_mf4=gipX?{H-A5D8O_))*ti`)lwgfAab{ z^Moc0vak}NHZ{IAcHj_AXxPx?d4B^)>NkH2^!k3K&gU ziOGL-yOTg9ZF3H(scRF_3*GVWY7O5@{k!9kwPDG2FOB8YK?DD)hC!3+r>N8jtL0|l zG3+PBl0Z@CtMD5IZ`k#Bi216_sBi~^qLh5bap!*ssVu!s%*_t(TB8j^4LkBF`4Hs3?P44EQBtl`|EtoZCyShVUf1m=Vxphkpv>Xs~n z4^if~TyW|_j-Ac=m4c~g0Pud@KcbOI^69sYcBx{Rb&P${gf{l)f?+Q)-n+&_U#-5PPbvTGMk#;VsD=$kFsR##5qdo*U47+ReM!}aYvhH( zg^@vKRg$q*ob?xUwauvum7-|Y{6+2@KB)IOO4HOvG^uL&*VZ@e0lc`ytOj*kXbDLc zDF3|&QXY^TSAOJ}naY+cNBlNt>Q7R-Sbux-OyrF}IJZW)(wWL_bR^)>`8Ob@kfD|Q z1cnm1oFRdhimx!(yc#~fhz6JhXVr}48FGFsurSy-Kabk^bXJC9fC{z?9m4F*rU^}a zWr_e37vV+DR`WGR9@6x50q<;atrgD(aQB|{kWhMEwv*DYFaV2nTt6L>OF`3W?8k9) z$qXT&tBfCPxh=T_jp9PEH|B)g?*H9$xaEeB;_qu{$Cll}viN^Q;D1EN{U98qq>VKoO9Uc+y#{ytv#0BCAR{bs-N;AZ-~pY+9pmZ9Xy zG?|v>L~|)|W$ExA<7;fup7P_7>GArB-!>*n#R+VHW~#(H9dD6w@P;bX3)xYeIv3+| z(r|zAX&S?^4xzZ3Q8?lv7&o@xtqy$|n*-%{Iw&Q}eqYs;e~*{$5?G0G=tPzq;K#^> zxHN?Z#P_bfZSWIO7%yBu>?k zR2;YAfu+UOvk%u#e$tr@08Hde>!>s3ZKy}{KTJ*V>6BpCY^}}%PoOI1`i@aG!m)6> zcbyn>bg#?e)HBA{8_g}brkdyJk+lX@1lQR7db#y+qtUIHpi5i}cu*;1EJ*J)@<%8_ zD;i&LEmq$bf6(~BIzDp#zer1@41#LAn1!dYX^~>T!_&KY0&7<4i?%4hS}E(Wv@U(D zTRjyO+U6FKlNG)4WF%tj?l~-9lRlgm=kQk&Zc0(f@_+=Hnvj(!w;)xgI=XcdBU7aO zhHcj2arHko4ohpo*3-kqyb|e8L0f_@)f2(igp6X+$=M(y%8@y0M+((9HfGx}d_4C# z6?4cy1^rFy^x?P}5bY^tV6MRyJiV48`jdd|VIY@%ycfG$;Z6P*L1X2uv{br`vJJQs znSScT2CX+;Ua`(Dy2Iz6doi0!&m^^PzhZNY&?8ysl8j$@v{yR4$u}rB8&@HrKMI#Y z@|hXacVoG07DE^qSFq;y-=&}zZzUV+OuO6zi#%ceJ0ra{J$m6NBS=6dSqn~dWT2)gjWFdKg&de+mc9Z55b_@o(4p>urc2!8DFLCWQaPkq;? zEy3KJuieXT9wT%DeK*gLA$}Ig29!YF^wYPn;_$PJT`Fs#FETBlvo+NM&i(W#eS+DE z|K`Qvyzy@Z$JoANu^qwZYMa5@sYbbLyJh@|3Z$32+5{dOi;r8R?me#KQg>P*Ly6M4 zP(x6Wrx|a`v7hTX;xg0CtF&T3(j);P^^n?|(B_b%a3`6WX6g7_^UMZ#f^gkrczboSh%;oH-s7jB$3uao@(Pk?*E?mx-{rl8Io-o=I<-yP z!kk2=Z#*A|Lgy0E(2q&sb38`R$6>#j&FZq-HJgI15u%wy8(P8G;j(H}!(L@7?p>b3 z!a?Jv`NWDRnIB}yZ2(SgZ=;6VmIg=PLgc`e8hKBVDXouX_Woea_9fSf?ombNNh@Bh zere4lzh*1&A_PmO(XSG$J9-bBo}t-~uA+7%Elh1nQu9t}I5o zNTMH3oKQ{pHTZ}y!kF%4GkXjcJ<#N!p<1$Cafptw&9hn`N!vEET3AnA4GGy2JrV1> zT^7y}kEhwvo%6SC7y{ zWdC>>dXRYl|B`-f1=#yr4?&pA1sG>%Keww&KVzlz4@;4GmmYK2I zX^iJ64ZAx=m6B0ra@B1?TOPyWpGM<1w_TEkD+6mq+lZELapZ+xrdE+?=DTqOMtP{d z0U+-};#nNGRyYPapV+d!Zl1e3{3q;3neS(_n@3Y9&DWj0wr7pMf1u?;V}( z$FC(Xs0HKwGYTr0hV}AeghNyb5J6Vv$e3CAO>Z;h^ekOmCL~OaZrm+g-xv8dQuJ#WXcTv*f0=s!0PG()xWwI{}(ol z)@nI)@1x5z4?k$s4ZOpSHX1~lI7BKM#v8I|0%Z;L`31x{-QD?Yc%$9>MinYvglXb#F4#%)DMpsmKR{BM>fjkmFoay~%Fb09Z`a4s~L?4O0uV zO&Zps%NW;IVnSPC*B5l%vmlou$@;TfRdXtJbEWSc_Bs@a%;e)dvtbgwFd2i{>V;7` zi)dTQhZ5}iCg7T`z&8CrVcGTde?%TdM7|})XrxI+z`fY9s5u=pu~?R(l%$}DEB*c< zwn)2lB(ZbKB<%12&6r5dR4%zRU|a4Xd&}(7yhisM)Z}02#{QFH>+!4U-6k%e?hnK1 z!Hc;e3)ZsFhIC0Gnu)afAVEj7;@eACWTtFLsU}XNe8+D3D;`9}AVaE^^y~0!uQbb| zuot5Y{jjYms!ZmJgNf&&58xd|gYmsNE>clKUfJ4m>3B_Db(dtlaLm#n7E^1za+g~y z9;N}neN8)cMrF={{i{g#EL(LWjyxmPBkizH1NmY4t;^VdL{Z-Vh-zLaVolhI7Tnsi zx({|vLA52O2;6^JTRgKSfBrTvA_A$Ya#o-ihV9OoIO?#sF7!2QY{~|~>8;d7LtuAc zho-PQ>D>o!9TN@~aB%s^qOjR<_BIA`yM5ZTTb7_}oso)KSoKmecIl=A`CtW~qr()3 zDFj{vkTvs(s8h9Oc{84A%I_DR3Qd|8%vg+OAArHo=@=ly7}XDsS-Yrqu-*d$g=EHL z8e$@+HO1V!8<5)1bxp}(-}A$7Fzff6oYZ7&wo0^#CK=^`^bJtsc zAtz8gu7Q(9N>MZD^FW4NmAJ;>&E4}E!dyU%zSGbJ2p6k5O+qD6}0w5$Z>V=(- zLC#XEr}((XnrB4?DqgSNkov2?s1KVEr6G$>498qy>N#Yrq{h!^8{@7A93Py>0D za#pKu37Y$vQImwWw#_|>QG%0(>227&KqN#CNxj;a$;Q+5+)iG;C zH2WC)C-bf@8h`JHDgduTh5%x0$-I-F!QuV-rKb#fzL(idgRE!OM*oQFO>@p!VBe!1 zV-uyA5+oFN$5J$uWal*P=zk1JyO#M)%s}gjE_Tbj z_C04S1r{hU>8WgAd`Z40+q~V*r)x76{tNy|UcYAOv|ockKA+qmS_#to^_utdD<6@TDa-hEi12o6!@Z&c6X{!9rowDi{2a>&{B9$E9 z0WC8Wp9_F=NSJzeD>AG8OoA+tHBU2hyvW1fNBYtyNdD8%07VxST%YhS@EdJ7VUEr$ zb9jWLsA@N^{(An`pD4m4*$nVT!UdU@)6Vj(ylNdXtAz|DWKc-RrBefRjk*1$ORD2& zrmzy;6$0LV*=m2!Jt-#(0!DpYj}i)h!Mm#r^`k=;U(-2k?%WluGO6-J&~<#BmV-Ka zpB6{3efm&m4m5WZKPaWD6pyUWf>!e-Ip}9KY=c*> zB_sk*5n|M)TvoIl&$qrpcEvj!u3=7)m+Nt+$BWe;ESae+Mpmb&VsK zNng*4sNTm5veL<3oy}&yTzT4d#K`N;|7_kTtZJ;c)Ga}<$^WKPY9$rWJM}uaT1Yx+ z;3?x{+>nFA&d3WERDUDnc$$rc$T@VhwVMZVjyKfv?-Lm)nP94Ljl8EoTQt3I!{WWV%P55#&MR7(x~qlPAA%k06?(B_&OQoR8rRh^n6^p~p=;Aj6$D`|a6*FD(nI z3{ii)%l-UsG+){Ds_Z$1HO0hD6=GHTKqO1uZ`Sv*X*po(??#emM@S@2uU^*}z4M^= z?h-wnaJZ5JMYY#Dt3?Dt%q!Rj9x?w1Dr6aRD>q}R9>)k3(GTv`YYkz1t*fe^$Uf56 z-znkSIvv#c(OJ_EqqH=Ti3GdB7enQh*#<62s``xh@m=q-@vI8?A{1QBRv`@akLX&X zVoF$ohBpHj!!_j(_PKBKB4O`j|Dg7y^;^u+RN>DrMvV7IYJWU7oo%eju6V!KL~NiY zv>*PB;Dq1)`Z_BVY)DrE8uYuv;}cJC8~bj}e__!8hmPgp$hj)Kkra}*d7B*;Nz^8gKd{ni z&-}%YxuN=BvF{qYzwL;<%Y4+bP=MPFF=w@a=-TB4->H?anRO z1QukzSa%d19ITn^>X!8gX`Lc$IsPQyN&!I}yl z`tIjuuC$W;v=;1*MrajH4yl*E`g4N@it600xX(-i`G4V+s^G1s0l+4al6W~aMI9oj zBq2!>vRmZ&-_8VULIazD65Yuayhlu$IsAH1DD0g&cuTzJ+UJfTfYKNoUj^Z3Z|kHk zya~jpmXW}!B-%_;x)y@<-+&!jxF?cyLZZkm8+{31=ZmkLSKHe*xdj~}?OdQG#n%~EzBoh)!9D*Kbn?jD+ z6B_Qb1Y-p&U@$wJ-M-Q#6H_&*y*g_n5}$Tf&frVyAln-HQ>b?@jS%4d5s*#_4(EDt z$^+X!Z9w*N1TkxMmC@?Ngk#o>0fkbA#^`&_ojTSPKfVA;nVJ#n_6_%gnYZIRRkkS0RMG>NVPmHs?ts2IEE9Z90 znL8V%(lDnciU(+q+rX&Y-mN~)_;q&Ep)vG?gH0E0h=KuLp>Og(uaNW!CS-S)#DtvQ zB~cV=Z(wB;$~%(}Y?|NI4dU`mR@+*%><15ql_y-fK8t;|+G6`83(`oEF=(g~I5y2V zP-1q=XZX4dm%XC4OtJ*^ThUM=9${;fsykEjH>L&|o(g^%c=Po)4 zdx{SYxYkM(i*E+(w^iBa1Li4d2 za6aI}My^h(kz+7~O@{i=`xxsF*5r}4e?ArQp*!(&uOpb=!lK+Um;la1Hb zPZEBE{VlJq7zo+Vo>S|_u1f={G!!r0c|m`284R>B z_;!ANHjmf51oAbYz`C`Cz_k=bhfKV|&yZxIWam_&h<`+ioe;A^El-j%9OU>4FQEH^ z^q~qbmv`Dh$yu{0=j9WV+7bW0U3cE(DOWjMAo^)-LGt&T=6X@S&$%X_6X|~sPFaj& z7!mxENN}DK<>dKs{Vt$Nu^s;ujA1EVw}Kv4MRGFhV55gp|Id;#OgMJ>T&LBY zTKpiaTk`WbH1WPUr(Wk+yau`;1j<=m@b1B&T&=i{3tRa7@+`BDC7lJI!$ZmZ<`A+C zot*J~>Buk|o&!u>c82t`_v0t?Uc@r;n0WK=N#efY0bTEM<_XhmnkJO1344=Pug!jN z)5V*<*!-*zofTzcw(3~_GWn>TrY1du2SVC^WM{$=?4sx{h1KoDy<@}#{PBK%o!E1# z)EV(kpc9K$_ikx}_6zg8uY=!w9(RboavzM5v@7)^Gtn=Xx+T0ZtE-w~4KDUdi_ABm zK?x~g$tj%usx(&jifVj$MS%wNHj;2o@c`Y_`fB2zmIo z`T&$#kRb-O#}EgsH+2W-yW4mjc|P8^@DykCoQ{%wTTOx6Q#)R1Ps=HF6cUh~Uq17d zpm)_)KkqLx-{S>}in=>p!IK$09;Qk*F1xJS9+#ql9N7oIkTU&B)r)?o_u}+(#~U@; zHrOS{qp=6jH1jwDHH{DLI5>S_vUgDCDK+aP=T4vQ6D%(u9bn6xY<;_^fK9o-N8}_i z512JgtL1V1ZsB*nASN==VtAn6t+u7=a}i@p_MXS9c&>^eWI{d=c6cKxU->HF4yYNT z3yH$K$l1B{`?VRuyrDT{W!}<`KA%r9p!9vMvlVw1uwpeq=sX$W#Hfr zkZ_DLv>-wBheJ3U=wtjPN^N6tI^Y^1_0?5_;rkg@Kf{C`TBp}1i$UvKC+Q~gSqH}7 z0FU2>zGN58?8&N!Du*2*f^%jiNv$0w(qk@=yqvC!!K14W3$Su^aPAigqbFDqmT$o8 zFuevDUHyo9-60E+_R>_YR?^uo{=XZ2T8uxp7RY_9#-v3aVN5fdT36CdA`FNl+b9is zypG}Tv&vX2leERU9&PRc>TxHXrFfSd2Lw^UODkO#H2&BH)-o za;nH+yB^xv3avEY{S&z$f&dC>M^&fPH{0I5UEy9FbDJq)S|AReH%~c+>_wl!A@(cy z7teZh|Dg*;yY@3s8=8IV(zK4Pz&?%F-HA8UgBl)2eePy zZGP>ks}FC$9jc9Ghhp3b$_!PQ+GxE}8fv8A&Ducm&EsYmvOjvOJYS19sI%N)c0DS= zaQE*040xP`vI)aZa>@ncT9Z4Usa>sWDa?6mo9c)ffSWe{ z5drNvC>pz`oBuzwGkJgXJRy+&cb4<|A{2<_y{-gG= z^u|KMeNGRn6#iUnicR z19M=c^wh78_irEqYKk^+MTfzJhL2A+4iv0FhjsWVJbL~V{v(llM?SR1aT<5&KoVj@ zu;QUozGl*xQm}M9SZNt{^g4CIv-i0ovoz9GeFPCi!DH|LqNt%FCx>z>nSN0efnKTM z=iX;}HOP{69fA-&&mgt?lzc%*yh7EbM_g&kX@w;J577}+6W|>?o`MhE7Okb=%jGIq z<9NZGCr6s2OjYOk+x=>yilzzviQ*rwuZ`9miZfbQdY^{=`pzGC6}1cC;uGYO3d(qy zwdCJ(9(`g(2K6;1Pwd5@*KIjwG!iv``#VbhTnZ5ZpomRUf|@`BO4jq}^B|m99qMg_ zWB5V2tP1!AL{Tg76Q_OQ$}MCRAieBPKhoth?y?ojtXt1YC=Wfoybb zaNh5bk@u88*>Z46u=nhx4J7dOq$U(~{7XB$#No|AFW)Qw=B=p)YVMEKO8i2DT|e)n~*r240qGxq%(jCSQ(N}O@J}1tpc=kfrjZQ zjY4b}*Jafec%x zCMBVrH2UR$%t|%x02x9#fJAq$v5#-b-{vD+UFUFZjJDp>eMq4U{K4~nrMr%W^N$do zusVuXrA(RW>Wru9GJ8v%H4d-w0J)6jt0t$Yb9|M23Jl5KWfH>DDGG*wl4tWc>L)+V zGqjfktIAh&#{adrG`zh;DQmvuXV9wqvIZh(8P!G9@`8fg+Ew!M6?}v=?|Sx! zaIL2LoBQ$~rBJEg5vz`|{UWi!^xN0Ktm|GU*BhqsW?+k|WgwT~IGVBeR?;SyiVn=^ z__YHBop|QHlo5p&-?^5T3F>7zvuf-$qkV?F)xJF?tXvZ^UtDli8+%W+KdT|nGzG~U`W=Q|E37T3IDv|j8$7Y* zW8Pc~Qot+E2U44lL>*SV*xwdzsDuBH!AXF1xIFa3hFkm!M|)fercEdWyCnGNz-v(7N(E#&@?WFzj? zz)Q#tyS`6hkC05NjCQ6(s=9M+!!WAqAH=A~1AkxKoaPCNos&g*ioeKu`+Q!~;%gok z7)CYL8FNXtIJy$HxAyAMa(S$!PYh=bic3~3FuNOVo0)S=*wYsnR1-jFFDD)8n(Yb& zyl1Wqj6}rMu!{=WQpyqkEY9uE9|;cf$;8$mX*UkDKz^^do~nGqilonpeivrnN#pIA zrjY3K-ynfeA@mO0t%tJOe$4@_^_sXJso|x^pC->d(E=cV62zMY!h3%#Ayk?8@9%#* zt@wm|8APe$^>ITw4Em|t54I@%RA}&C;})6F4>behx@uV#n@u`5Bks9`39w*oCq_@; zMZlH-8x6v-WOztHU3VQHm@Wj=DO!aSl&X#T1pUo2T+8Tt?&OLeNb)sYKg>`SZfmmlnu z4{g%p6XWC)_MJ0)Ns=C>+vK>YiyaOBNA!Z1^DXouV{NgT)8DT0nR8kZVH1NyX<~Mh z_DDR%fizkbSvB{6@KBl|i*C~W+((jv+#2nj9}_=OT86VPoi#GP+2rbidyWDjxktq@ zj1QXq3xk`eF@7dx(~3tTz>sX6tj&GP8@n@!pq%u6i`c-JbYp^qb(r|&ZW%q?1f0?=Y;x!{kl0vZ zvepg2#Ij1<Q4dj-7-RNpN55C0(U z`%Oqbm$&(YBGDcfd~<$v8`8$}+M>%N#mYA7a+dI6`TQ_;y)-{v1}X* za!mQu7?$zsx@Cw}*0Tx@#cU`17!Wp@H2WTzgdSvS`A5Y5Kq7Q|7hNP@+}#u23h}kL@V^R{0g(nfPbB59~$<*owH6c&2f4!fTn3ELAH9Y+A z9;+O))C42(PiJ<#f*mRiihSzTNgQy>KNws?m+p~_l8n;>9$TkXJ)Rzj5Gl#&9pONI z))hu~*Igk4n^1E$xG)iu;cTPsNyF&79UOL)ipL&Ie#4`BhqyyDBdD(VmD z!W0jo%6{sQK#tyQyN;x8R;obrbMcB`Cgb|iz~X;IF%o1+y+63Zqn*Jruy`@ z8k!090dbY9X@dGj?=%5&Qa3;R4z<{oSMYjt$rXfmT>b zaJE_$gM7FTBW}!6-F*_IK!0-h?~`Pu0E3e~)g0NVcxL6vEkPSZ6h8-dUOymmF>IfFox=T-z zQ36PpzIW1W{}gCg#s_tZzX(5B2O0U@uR*0?W@Q?!gu>Tncuy;B6TVSW4qtoLy?(-a5H=()0s()EgG#V*C(=OlT4*DyhrFbmo zoME-M*PNbruIb9DeVN>-;FF<&*QB;3QaNa3xKp99F(5~=_JOSW)Vbq_LT@Ey(Qbao z#z=`pn^V5**k_;fS#2BpL=zXyR6odGlm9w?iH<6!pRg5icNVADawBaTl*|WxiwpVj zpXNdT--`DaVHmzX50Xd|ctrUiJP%4r8(iD%t9MB+ISH0(>i%;JFd4)w26|hCLPjbb z)R(gpu90yAHDX7-Qbru*-4LQ#217O+w0|yU_(+JJ1v$nLnyNGglGU1vez_iU zWEtS(v1ojmP}_-gcr`~@s-&1AfWaRwIVkRvTYw;4_7$yXnUoG>byK$;TrjbzVbrXc zj*(!ZBrYJFa2oKr_LP0$Tgx=+}=UB{j|_@GIDs9lRVHZs&H7zWSJa+&<> z_bNXa4DaG$G$eK(#^W9kF2K3!m<{If)S^jYB#G&ax?v-OeL3d*PXm9 z1I@7-r_U7rVvQcM?4~doZ;nUfE2zy#VV=4EJ}NT4CbFZJ?W+HXmd-aiyZWR}bH~S4 zB`gTrvio9tWqeC8)UPd>+e;f4;V{4sRa3;U=7$YKCWyM$E$cyms z=W|r-%&&k=<#WN^dodR3O^I54k#|iwe=P~s`1zsk2W}ysKuxX2(XZ6=f^%AO*HjIj zGdn5{$i2(H46srvV0g#@RZf#b^{a`8ev5Hbvc2cqMW%OT+2PEm{hlU!ehv5rHb8?R zC|}BIOS`Fagpah4^RIbfYrC<<@_E_4YO&Y91`kVT5{etcee6aV(eAW30a=Mw5@>-F zO9!K5cuR8r3?EtL$H%eIT7wNDEs5=$60~}QJ6RxFYVq2WH(TemMk6%_d*yAZ)F{<| z(3+KC+WYfD3P`*>e$8k&s0)r9|vOC z_~(0&HVOm-yT#CKf!G&}#)Mea+f^3J>GR*hT$!`ChJ$E+{-`Y*k4mXvXwF_TB zib*1MlCaFnGhN`RgU;}wyKvEO;PVkh1v=|NtlYLk8q47!!cKsT{dwEB2OcM6KKI>` zHrkvVo%^OYglR!FSBDFH<8>w>ZwVsj!j(T_FNn|RA`b&hA> zPtrR&swgtIXJ^Xu^FdlorG{|yJ~8i`V~Whf1AOZAn*&XT-E#=5s;B({@A0SBdv0wN zZ-UM%(2PkdDp{#j=1;|zMdAmQV=hw~E4X^!^k6V2NJuLvPk6|Y+57Kw1In4+9&Z|Y z-e4c)oxqpOE?69pPl$$ln8!TPuChERF$B#QXI&CDEc#`kNJb`RRI#0e{1No)yI+4X zxLP@_0DT;F9om=6&1~4Y?5e|PIT z77*|OHyuw|GV-U94`hBjG4`|OL+QG;22W6|g!$RG!)pc6!wf7# z2UvpWk91~WQmJhl$!R*jku1%a93wBGWW;pQlDO;= z0Qw)1#MsPir=@nJDPhvTVuJMLQ7UEEd{HzP9S%K0d;B(+Xp z+7HqecF=scoSM_NvM;fNbXPk+CxTsc&C>bg9SQl6HbPWS%|AD{804o4c{ed6`jXS} ztT1eWcl5Jpx`)3#Gd_=B2e0#4wh!dsgYJG!%(Yv+R>O=>ksV?oczwpK3-=?iY-HY- zMWB&1i`vl=6CgcU^Y=~P-vxf~>vG-i(_?4Ie(D!kfBEp^atU__Ms|(PH5+|bd<;Y` zC=6WDTUjFjx~i{f_^>7CG~pp@r7q{ylkxgLcPnP#O$a$OkSnHkaP>9-wC2EpYA&1= zP14Ma=L4}i#lsBL@w)2nD6>Fr3;(F=0bu8oHHu0bbG3Z`zRr@=*soJxPKy#hMYNAw z5F&4Bqq!$5n)2;5(&|)=Hdqq|sOfVR+-Pvu{O#ch%22jWHql~KNy4h743# zCs603QQcJ32WCvkfe{lTay2!yPqxL=AK+)ndkXJeHY}`wXbcpH3oqUEa>{dQ zOj#aeaR5X*guae>fls$d1>V};Emzb=-j~`__P-88K?C%2pvKfSM%#j+x1Zi;Rq+J1 zf%j9r2ruR@W7S*kIy{~Zu8eK+N&RIS3-=1f6d=lvg7BK0n(Sc+UAQp^NuN(^K30yf z5G3I;`#USSIsJ;R_9|5)X46NfmWs=_Vi~=5x>wumB9_S8EV)n_LZWMimoKM5E};tK zuSNbx(OEb&^}cOfMF|lUlrE)1Kw@-Cw{(LNf~0hV3ewF0X`~ye0VDQPU?T)Z3nPRH zW5dxC81a42`!}3(p7Y$-eO;f+#*=BJh+;e}Z`mgDz{Z#`hNDzs1Y0!7j28@6ls-1U z{Tkvtmp?tE+8Ng^i+Zx|NXHt_W!=G5f6KyxGu5ARC+Nj;P!$ z*Q>YC0*lq~YzeoIc#6Y_2_oynQuAgKT>G8!-)BgY3@-&wla~jSBiP@)_Q%d8w?kW2 zY~D+3H5)I8B5%`I!zKLV#I9cD%&rY zx9x8mW&BuoN z9BD=p8Kq7}577Qa3(vPY<3i#J6$)l@TO!>V_qU`+XE2a1iR}7qd+sR89=)HMB?h3O zkaCB8i4XFgG?-~G+?SIt;m$x|aM(47&RL@$4f&L33Nf)`9Y|#spt;MM-^9`?drkO+ zj*O8bdE)3+v|uxAc?>xAAW3c`b8Kxmmbah%(GVcM`t6fCv-OXvl@!T6~c=N*Bc9brh?ELCqg9KlOrh(cxIF%XD1@|ahtW#q@rulBC z4hrGz8@iw|vTzMb)O`mLJo<#k*ErM%c>dl-I&Fx0b0Vl@e@4j6FWjy86N!}u35|`& zO5S#{xbE_+&=r{x>35XN3!!Qhe86zFz4*#(X}d%fl_RlQU6+TGQxq?sTIiD^w6~Tg4e&kpq>Jw%z-Jp^0+sB?FgX zpIE7rPmVL_gIP$M}3nIr>Ftg zskC9}>}@Bp2m>`6(_1li5VCR{;?i83h%pShr|Z(Z*7^0;gG=}RVUO&T-xymKa&fKk z*XQmvFa16%bp6|XvL;xPG%>DPKqO85m$7hQBIjA0M zq-lAx+FLZ%LhWD1tBJ6-@3ave;vK%gEjb7H!n-d5$u#xDtG*h8B|OcpB9uTg>DbR1 z{dtYuKMrgp2Ah02O(EvV4c(hpo}Yd{=$edPd8kGX+}N;*FCfCd$dqgGY5Hn);VbU< zeKxLyEa|&b7!$3Flr?&>2o$Sdn0>V+B`yEDvF)-AZ9z1H9j%p^3bpi zLw`7%;eCbG^uuMpy{BG7cYNIiMHb67iBQf3A7Z-SN8Ln~s8TywnC5IK0)zpB%qwlp zqfc5l?~-U=@KHoF+VU^%FC9;ByyMJ_d0cq9XvZ*}W;`8r@cI?Kr7vtl-IafaeDP6C zSq(HuTd7WrtrISW;25lRs}1P!m~U0C;b=*;R*pN+cvLHn{wFjY0Phs6#@7V>BLcNK_C+*$4uVdAB)fW2Vm6QN(nGoMX5T35iYm;#$dhL2Lt=JZ_suiG z*K`g>=rlbFHu;h#c#X*`S=o8h2Z7u4DmR`h!X?dU%9CbwIbVzSaa{Sy6BSXKnhvb& zAR~)&#$3a7V%>c712?{M=(sM0lIR)gXi->3Gb4U6)#?&Y%gllxEdQOrY04_GDk6cDoiglkzqqogz@d~jmkR(nDFkAo#l>o1Ds`y7ki z>+_8c(Y#Sow2z#&FU}SFa1x-bIqOlMjtpf{xw_&Y+d>m7UgoNU7~moZ;&~=BtNz{K zq(W*6h&xMS{Kvcfr!PIrFw9y-R_Z7-~@ItOhl>r!!hF-fQ1fpMt} zXzLNZi%eY2lAL|x&X=Mr^_5A9Vy@yk+!=1Sgn(CbAaThwfW77?QuKUoZueWS6HJVM ze2)MW(>>Bi{i5G%GV`nzy3m#Z2=iZtdq0wIN8xU6pxaM#ij7NZIWT7XPszRR^FUfo z3Nb1_Uf_IRX1c5bA3JP{#HwH+eNmj#;#YQXnyb(8V()~X5Lnt0!e$qqT6yl`MC+rI zu@tNF4Le}II{vgp3{OC$*$NP>jp{i~q2>n$ZZPIAL0o=U+O!!$^7xgXyLor+pyz|> z4(cj?CEIIb;9m%idZHKPV2Yy~dqokj>pVXX_f=yorn2_FlUR-8S|7*bD~~iRZ+(|j zk4#h-&G49y4kga9f3GUhD`a+LnOPHkLYcrg{yz0pw{bqb?anR7;~etC|3oYyI)ooxOEnBJ%? zHKX{0zKV46@zVmdimdDq(!wb0xg1qfb*D#Rw~7c>*Ca$b?*chXwY@{=5U|CF6rC>A z1Ca-f;SS5mkU6h}sCiw*fzBuUP0mw!EF3nbEIpMdR`)xCk`D60$Q?5`h-ABK!Shlo zs$itEs6yBxv_U*%&II-5Q}aVPS6V?Io{t?F@&A8|@w7j5+pLPq33U2eF$=Pa*cG%_ z{EADH*2abK-4_);snI^04(DGC;EGUNo%+z^@Xc)ss%tFgM;(k|?AkhzX%1+$Y-D#w zicfhA+We?DGyutHVjr-+>EB}*t~N7Q>?E-aZT1{_$bOF8F>Eoh^1k!Tf)cm^20lvC zW0e&hY={<%x{)LE^}5{Sud}9uVhBiDYo2owx*8K#0bKw^6#adn@y#{BRz9WZpRrN)wJCX{u^>sv>3)FwTX&0WB-4b7oI}a z2gO*h+dalhn<$_?YOwmLSyL+qm6tlBPUoZ(Y{3JnoERj1TCuA5k^#~Y9_uX=00)M9 zIV$q(5}*Hx!c&?l-S)8}mZ})Twf1U-4c-qP**)-Y4lyUzA>pOb$_8#JBYv8(Hs}|Mh+^$I>J{S+xyz6@vHX=Esed(3dINg(p_&u9|2Ksw;gh zM-}FAe*}1aqTUoK_mV!#%rWUIs^$X!NUuu_(3T7S3~7}afs)J>u^gd|OlaaNG+p*N z+n~?UTOnt2^Vl}4_D7rShF&natP!eGwtH~-FT)}xVOb9H>(zof7wYHhA0KfeW#Eui zic;S$cR5`FxuQG9wj%oj(+O)hkt(>z)?uxjZieyl3sLvczh?(uSMZHu`6@uGn-+Io zsz=#`ZtHEkFhDNy4NMNcgle}31sk8wkS+ zSVb6>|L@kj<)iZSl}ue(!RoUTQW{TpXNq(xM{8wz7w2|`*lP&RDVl{Y^{tqP_%~mM z;~U99xS|?OQ(j)kyt#}UsnO;>{rERDsXUH+Bnu~)GQhIhSkw=42%0JC{v_*SA@J`K zV75C8h^OB>P%HC2tHWlM5oj`uwcE*98Hn!^y*-}CGI}b?-A-1Oqcb_fA$O*&S7b3V(X<$iM`Y&;jS?FTP+R!n9F$E&cD_=)985yfW z$|FE8?Ye<#DCmjfVln#ZS4I~jOeZa%OHB71^hN2rN_d;S_>&ZMc@2!uI!hMXd6LYt z98*JOB9xbbY76nJn#Q^P#pv_-{WV#=?_-gkRcKy+Yz`kZ+ZK}IU;~_1Efs+p1eG=1 z3Zvi=W*S>jhb3^HZVa`!F^<|&+eA}cfoh@wg7AC~T>oq6H&Z?zj_CbQ@1;h5x`ek* zXEb~G-IZO#kK(91bnLcfR2Twf&X@2l5ihx+SynuDfXi#I#x&ODHEjci^(4Hxis;NM zRj1QWQnsNgYVL+xr6>z1L+iV!=1nzKGHDKo7P}c)h#Cf@0!T$jQD1HL$qk!U9nXOE zkx@*CnHis#*hNeaB02_WGFeu)C9JV}Y*P4ugHgFPM;2FNMe{ic2E}e!X&*B^*I`CW zuk;tCG*b3C!T?>akbECDIfORTdBd-%;ieQ2b;D6Rn6a;XUqC}T_uS)an(FF4(_4Xz z%A+L(F~pEa;Ry0A7H!Jl+0$B3KJ#`<`mG;o!-}UnMKYE@3+hXP=!+2+c#H8T2RwB> z;ctpEqTFUa)O3_MQPOlM*iHpOv)7~yv;w^J;IRxHb8b0?zoyLRPEqCp9D^U9v|&K0 zp^|OM&siO#5vcM>`G)!{n7#FEz6DM!g+A-u_k;9F*1f>3mwHNXVi(pg6t08B?nrfB zx(j3pR7J_$tvGarx4xaoH{mY-vL@URMtL33fc=X*O`K9Er{d|tIxaK^JPoYTYS4_d z({aYdloCnmyfO{NG8J~pFpxgp>ETtadB$jkgfSvCE?ZQWCVeyP&sI86FcgdftT;+J z>{VX{B;vO-^BFEXti~{Cl*;pTaJW|^i^0N+FH|Xbz5A0?nuHN4P^&2vQqdAt;Yuny>jgdW(I+k!9_UB0&wgz? zb5Yn2Lbv%djV?t=;IU2HjGEP4^{>y)My?2tv>V`ObPTD$;Z~;&o+HKrHo1_#qcgOz zi8I95MrNxKzo0Sxph9{1p~0M{@5R|-@z2Z@{#+A%XV{Q}M|is%d-0bKPb}qXnB?Wqn4 z)4@$pm3Iq^Xx4S77A=4Ok!AQj{g5Ex-~n;Lu(Xg?Z?>bfdk!mVe1$OvMo(}M;+FzL zbeapHk6q&Jhl7ZYCRb3Aq3>Y!2ji@bw({(bnx91do5D%{1&4-TxydX~wvh%z!H&rF zg3K@QDvcFAxMVo^OhCS0DtpH9QcYY)nK?u3#E(z zu8Z(Uy>~82mhU$)s*KH?D;mwe0&H0OQELl`8oip2eD$F%LMn#(CnDZHT~$Mor6t4o zXi0IqF^30(@}A+=lFtemRJL%74AIQzeo zXeVzmsyFw<&gq5&ZCq@Blt#ks#>+eN{vrFyOjA=mB^hk!0MZaFveo^zVE{fD{-sh= zA|qk&<4?Wh1nNNVHBOo2u3`?wCtj>;*hj2O2jv>yIj^W|6FM5!+3aUr8P~u&N+6jP zleIt1_q1vS;QE}SAN|#i^DWNDITQ_Q9-l7aCmp_YxJY%mBdh!&fVnUJl11(ae3iK%Jv?sMLq`y7s%z8rVUb`Q{3pv ze>MF=C(v!!TnMJ|VHk~{Lgpaf1_aV9{Q=gkJ8w^Au`xzRQ0G-`_W2B}X_qa$DScD} zclzgX3V*+kOvehKN$~`(@k9Xx83&o$V>XSeW2nvvWBg4Q{Yenn7KzPx8W!%FBilF7@Bl4NvYL<{Ex{#y109c6o4iP2kQ-8JkWM#4pQYI0Z5zgH)o^A&@ybC*L2 zVvAV$DqR_9Ar&p&qb=UvCA14I*_~}4??Me(z9)m8Fz`4DgRN^k2t2$I)fe5m_{giE z*cs8wdluqhm;YvHa_@ybL7P7`v~}h$lGZIb7TvxKo(*aNJyJ}p2jU>W!l)`-EgQ;ta#M;5usp?!bP{w>L+BtA>&-Yl`>4cr!9 zq!mCYQ!2?KSw207#JQ%jDkF+LDk*WpS!{jHuI~1-O-B{`{x8p7yM2JPUIRO=dI&?$ zH-}Z+9b2v*hGLL~hqHcNCxTf!9TRmlHnDMl(tn0q|1FX8@8odd?&pj~)|#-hMd6=m zzZyW*57iV0i|;A3F_g>}l{%grBP};4-adm~o`C}R7P96&7W10W#f~EfCH_ph;#@2| zfaQ8Jkp2bOneQF=0cd^liKSTjtp40bBQWYY|fMqUd+8= z)%O+_+OCjORNZY$5uGfH1Z4~cG4OwuS?%2PoXQ0MLsaiM*?d}B+qHi5jGI$oE&uq! zowotU)BNhFIu*^hPO{wus$uV10G*ar}A75Bp~0eroD|R*Z`gwV`hz2C-FMMo!oZL z4=VwcKAZHU;V?2-YWQn1GVvw@A(#Lq>QMpxi943H= zLDXf????gnhT?B9(e0tIF<@yVI%(>o=}ow-`_qn48TFPWL0L1{w$$)yo`aQD?}Ou` zaEcgOv1Ec)lKme~^M#!GvaO%RHBAL>LZMxk-J6ZSUI;b@6~OAP@u$sNTbco2;^*qD zMj?0rkRPbyMO5WNhOL$wQe90?8>{J< zAT(&m0mG=$Vn>`_+JYxviyfS$1;@#~!s+Z88uQR))a;+ba{hm@jAo+YW1I>S@!(Zc z9;{#EA5IZ4_h$d^miKNtz?sbDpUt4#ulqNOA@rTF=2KimpwmVS1q$$=F(baqbQd5fh%Ujo8>2Z2Rw)2Y5^W ztFl;Wkhr2gSAMaBVyDIpqjuc2cnp5nufjOoANxr@OnW)xG{_YDz$rIE-#qwaW3a+r zo9IwxnAX|+Y3ULvYT&Bc&UYrd4x-@^`MOMLj(`(>r80%Tj?3z5m=ZplpRO04se}Kh zw2fwJi4IRrdMQ@d=VP|)8sRp@_Eyz(-_R9hVvxE&wBFHDB8OFrggRwU7DvrBq)r_9 zxG;8E7+*3g(<*-!OzbXFhF7J!&bi8F{dcR56=VNwFO{grICLWL{ovpbX)w0?&82+* z-+Y$yljg>vtipc_B|Jd3Vzk|38-0GUr&psHcoWj$DClc!=bB+KB67z3Lbpl(k1P>; z)md`E#yCi5NY3<1!Jei5+uW zQcbq^${&#f*%}meBMMgv&UYnry@pN~)9<~Lnd&yBRmB@fpOt7kzDJt5XO83c(}_P0 zLxk8)IgFUS^dT29-gme&uewtmODLHQdjA%Zw)5`=51y54_EDHO^&Ox5wJ3E@6)=3T zF<8kf`7oRqydX)Tf+`IXYo1^9^Y!+5;7)5za4T#1wsUkc3)eFBH4)$<-xPv;pn;T* z1e7oB^~@AgL;eI8usSo8la5b&izUOyNCBSI17f2B+o{F7k$`IQ38~P)_PTEw+k-m} zfM>^H?7e_%=o!2-Ior>wMRq>rN!A#=ea^YO>h!lRzW%w`&{V->;kfR&?pT?XmuqC-6HVF_^xzPn7iiYSZ9DjPtdlW=5O_y9gQlL+S%BP zF`~r(nIm7Kp~t8iVJ@{ezi=V{f8~fMu{F6=$K0i9l^EBr)4*?f+M;UjjnJp&Ijs$E zjb$UU7_#mq^XRsmFh%p5Fd&v=X`TRsNQN+-_n$3Juy$K1F#jqS2b!Qf61;=YaV`&% z-7B|iKCj7FPtB&e+!B~(yn@G)HRL7t%VB4M0p<V!hJU!9zRXd?b#}6tjurQUc12tV)mN_L zri}U)PutV6eD93mAA%P}4yL`|=Kl^}loqBGMC-SREXtdbpOnAQ8?&)N;dYu@lmHWQ zmlGZ!7rm;K41ovIahSsr;!!E)K&pKzF$bJj@R#+G5@`gh4! zz$cbvFlGx7R7y{(z3<%Fr1F1-wY7!F z97(+^x!DNg`tKGLh4qy>F;BD0u0e4+t`<0!Z7`>JG;@XA?5U)N2(dU)1qXR?G1Bs^ zY_l(}kp?7BdlH9UHmsos+b1GuvL~`Hklcwr&pdJ?>Keu_qvZGQy5Eb|czDvxnZ@H8 zfJU7mZU4x(Vz1l<6?L+C7>BijUho9%TzXgr{u|61(jslFmku)A_N~t<+IPsJNrf~S zAiORCfm)7Aq;ekeg1j+tX^t>ILa!2Wx0K2yP9p+*dzy*p{-=Q;;An79+n2VHV;_G| zVZ3?}zw<1_eorA%@*r&-Ay%mnA~{uBL&|6Qc6B9?wid^s;8 zR0ad8v&_Z$-}ZWr6o#aW7vrZQ-C?`B_{Dle|URXnttKS+o7f%6{Y_<3VjLL%nbt(>}!3 z=O~v*9WD1X--x`lq0=uGQ!lkitE0m(2rRIR+a6_WwM7`oF~$6Bk8{elU;_$V8eaX@ zClg^4|0%{C`Ptzith8R4TKQOOv6AJtcr@X3Ny*4&ju^3jX2LGFJ8b?`{+zYJa{lm~L{NF9*+9fks!cx%;PGhAnJnI|6AA1d=Y1qo} zF;jr%ENIjPBaJDoMs)@Xm7^tJa`u56;mvEp^)408tY=3DfGvoY;g;=C`pScs90|~f zw4Nc)NoNG}EcwXlXbB!{b)*G9#i#11e^|kznOLQitrbLl&6@9Ywy?iEPE)joa;z!R4;(yI&a+P75Mtr0@d%>JQakDt~@m<25EynG)@0wS0lId%F*;hSzflH zRy|Fyrgc(JHV5@aG?C;GbFFqq^N;fL_rnvzcmy;``s)n1TIsA$ z!91pTFQ}IDfvcpApMCQA`5Zanjbl7ba`F@p)!7juN?k5@@k)F0lUMoFT#0?9dhPkoEYVBpeAU^(3Zr_qw$p4yjT6n}c14|!5zdjS zV_Vah4O1C!xd^Lq!B5AfJ2h*wt>fhfdeM94x3W0Q0}&#>!4aJzF(ovRz{I`+A8|9E zam3AfP4_tYi#+~XCCt?6Xq*{9;MU|3!KGu;Mc4MPTJ6g0Cm15xB^grUzO;`YO(nkc zvnH#JSB>E^!`q+We2e=cub_27!EMlAI@&+K&8WYbEr$9jO4zmA7=3UoRoDer+pDHJ zdoK;qRrr5YJQVyxl&v&-gp$?tHFPy|&K{Hwe->QA7s!xI+81EA8;_{Gm_*PtL@QlI zLut47=uMhL>>njuWvvwWxpTC{=1iCs(qA$!q;yz#!Az=y1v_c!9Rjy|O&#Ii-pXef z72?0PC$WYhWq6OvvC%3_9;GdEX%xxlW+1(-;avJxi#?!rgye43Gp- zQ-%h?gcA7XRIU3!pE^#D%C(?W|K`qfIMo6=y^?!oY#Yn6!f$m*orfZwMKlnkUAC!% zM3wOxc7@#(6Aq@GPUe{iPp8Ah0>ONq5&HFS0^hpmD)|s9S&Sn++q!mT94(Eta~n+4 zp7t+XEn`#OpH*%Z?ku3wKpX;_ErBfWjJT3Hn1?uj`G^%B?#76)FE5y7nk06;ak#ob zK3?ua)^7`)&RBDPg$K58)rkeQlqD~{Drv{v8qL``4iQ6S2GW=Uc*XrN%i^=klNvhy zZ?9y#voreL*@e*`(Q4}IH}rUF@sl=~<+3JF0-3)zX{4TeP0=2P5gaui z)PkI+GM)1?+*BHcn_|BkQ-hv^$Dt;l%%>o}3&ap4?O$re)746A_c0^t&O8%gxX1W) zSKK$x(x^^~??opzvra1<_y6bKx!EYu{EWvTharASl39pFCV3rGe%2audJ#Z&^Tyw@eRQTKe8fSsovxXG)|{9 zGvx{Gx(krXSKb$Fg;42S_ce*;ST#vqivs@ql*|L-;zxr)YC;GAq&I7Rgcv@PRC_Gd zxgi2sezhdqfb^Q+bLwqbdA0gkvA1+l+m;(tCD4V!FlxdJJ}*1-8TXR| ztf|kM>E#C;ay-9>;Ws9u(5jig?zUVggkBR`C9fY3=E{nH){_YW=|HnvRn>px>5av( z(e;>EW#pS3KcWnMuwJ7d(#h-ReI59a21Sd=>!?~iJ@8(?D|&E^3u{Q5IlJ7`VB!8y zD#`j<(r8F)@aQN?eT!*4 z1m>euc-sk8Y#ge1N{N%E387Nxjo7P7I2^ElnYd96v9`McglCTNB+2mQtZypq_aXJ zwBW!%n4$mrv_kQWerdU(xImMW(MO7G7`<7?I3jFyaZtWT!KXu_oNKkVLDtP&pchg_ zFG{a~Q6YOJmu0m!gC2N?^SScXL0l`C;{?`3YRz#$wDQ%SLjF*sEAP|l-{*gnqaHaA z7^{gYfh2_Hr8n_sQ=k5feAYb4S01eOs*MJxhHZ022YFRecUI4=5(gMY-{zkZJzVx1 zRdSV-F0UkS^Ux!Iv7VT3V9#uZceDMsP6!L4hTX#eS6?6U+I1mOc?jep{seZ^9y;6wo2)mt}+>m*Z_&JzW%=OLsY7bERr*H~h5ia^a8@*ra z!!zS=JxH_6$DDo0vUQ;tIiHp}D7ThJcSXrinFq;rfVY`+px>@qGiKlwaD!39fY?cA zb90$0$Jnrc$mep-g2i9*+nnef{f~%OglDw07E+R0(>ESE_WQyyQ9-Bif26H4bK-84 zpcFL4fN#ODEXkk4r>b5%v1@-3%>Z15EjjdYK6{_+*@+ z;YtU;EPyP~{5wJ&VUc)a8Sb|OWWWLg-<;==mfg))T6sXe^srP2-6(ry%%$**w(le( zzQUlQcus6~!=Wu4G)H_zW~oTOYtFS!`>KuME*=a zi4G#Vb20fi%O=|9DSaJ{CMwhZ#kNptk%vA;*H$Xd=!mTNF#@yA0BQPKCWT!VBfYoc zO+Fgng@K{(y6Q#6BKA77@-Buy@;s;g=|?~!V$74U*t&f$#N7FeKKdczlUUh(F};B4 zXp+5(SJ}!NkLP1`GT2~?1rnrC^=Pq9{m5Qr1F^TKFdDFHrjAgrvX_zp4a-4Q;IW!T-p;Kv-CAs{;kL-NIv;gL|`h(^sS|+;NpjaG*k#$p#@eeHj#!z z%;5XXb-;>p=S64r=mw;#8iMpRPFF?5S(fP$=a~%1PB23KAMpi?N^TSyUq!Y^YdUexV!u0X!OxZC7QIu_1s-BlK`F#{FVot){%m#9g`qV+ zwwYgp?BCJi#BY7u>|czrXQgn0mP%N-ON&rBY@8=J*%XzE{klA;e*n%uouhC1TS#U6 z#8zG`#-6Nt@Opfax!<9y>+{Z@if6zGHc#~*@m+hWe22&8<vEWYa!{t|?U! zU+rm%GX)ZpHD9mE8`q|CZFTX}D83v>U#SeNsvb9r=sPJ-A%If;%5~Iyg{XtCD$C-l zbNjw2{X#Ceu@gzs91Tt4!#(sm82BO(Ln_2qFM399p!QWKuJ0}7Zrk+z!`Mi6^R^}o zHFsrw+VCL?UcT)?nmv(fClQHUOny=|_PwGb2ix4W2I&YYw)p6t_7-^E!r^vnq@G4q zd7&+nyX~JP)=tXxoQ9`kI#jL3N<6keMJMI2no0Y4HW$@%McE}9`GhF7`ddZUJcQ_H z4w2Fx_NAs)DN+8;p%!Vz;o1# z8zefb@}Oho1fYH~ExCw8XVv1F$l$;3Qxh$$)=ltlxxm9;9l4nLc#0&6y2R?pzu(xF zy1v{~z2|~V8ri*_-25z~C00CmiD@uMJzi?0{73N7EP>8-vmrFl?oV6~7d zPv7dmDf5^{3RC$adod) z$$SpdS19Tw;~)EO|42B1Cn#m5Li#TN#j8Hc^$^IkX!o&DLBd=4h_x!-E8*454|Q30 zH)Yf|y3@Ru)7tZ|)0T?m82^>NNw;TyY&dd$IG1omgD^bsK%#gnF z$oe%g|D!H%-J>l=0%%>zG+4>Od`bsG4`RbG;dSN3k_q}1dA9?E9R1OwZUA#{KiX)q z1r+sY`cv?ammIG?Z^rBsp8U0@vYI(OsSv-zvk{ywY5vzkonItZHvnTg2!4O`&S919 zv@8=d(In1ugyvZI!hT~ZTe(!2IWJ-TeLS(*0HKwC|%ZSM3=bXNw4bjifL&gOey zujA4EP;bVS!!c$ashVC0IaCHF*l}AY4OI8Q2|NyfH+mE+I5W@G8-uuF3R^lUq|1!W ztk9>I@NQEVXwGS-aC1KsTDDmXtlwO(@vlYV7^$h8)Fpkl0g-)5;=Zy*jJL;PLy{ryf`(3Zx$i#X^f0K1%>zg}YTI-rGjA{FL zzXEQ#HNeZ+hRIbM>x(Jm|k$ z)P9`zpYudr%8}!A$#mkReRyz2_%-82y(?d)&qtXwQr-e=Iov6Z7Uh0 zr8f~lnbXrNH<#{`;TG8itZIQSqkhiWN5Du^O+k1jQtx@+m1o+wC33Hb>$RqFLZ#Q} zY>P)jKZpI>ueb7+X>8Ma70$@6qSTBU=QAIJT~jq3q zzCx?{W(2>Fuq*amgQD!Sc2CjgO;rwCd}JBXN^~~&i#gy9RWT2h@>V!nAxg}0$Enca z#H_Vo<9ryahg?&0-d5l3ZqP(Vltf&30G7=>kvKn|aZ=H}88{P?b?14OU+T<;<(#ui z4G5BS$YEL7?^$U0!jEK z4u*`Drjlv|OLO|hMARO~U}sv##%%hN_tw#}(S`gx=h-oI;n{;DOM?(jvup8J=x1j( z*_MxzbjplGM;5I$3TaxKLoasIOKh@#uzxMd-tg-4yJEmfV8Tl~4}yHf4ws~voOrJ!ISLL>-?TfKMwnK& zQl#1f+D2FFpb}kGGJT)chK0;zKU`qbgu!Xxu2@t5k?;d1mJh0=JJB z?>%hTrup}KvD0+=%_2BJQ%UYNGZerV%%!gTX+i|r&P%#l%D-q90l};LQO`qElJ9L2 zSTpeO&c$v1k4!ql7O?3hH4Ej&4Lt!wEd(bDN>M&V-r;M5ZyN$QWhQ(HO7yz%QD#7mRxZeLQcl><_g(9B|n zco=o>Zg(`dbhrs-1QcVZY;f;iR?pvVx8-KfN9~9wZhOZwDQbM(2jvU&*6t2e-i?%h z_RldKHCa|&!It;-R0_uxWg2y}rXIkaJ5H#6$exK6!dJc@1H<$kIvzd9JHc1sBw2?$ zQvyXq(XrTagcPs5-1x(t_H??TTMrxr>%JX=F$?0B zr%?0mMPW);XyfywGx3i0w}m{WUmrDxe4v|_(-tbcYx_^ZaY&=A5ah}ddAUn5Ws*Bl z*yJ%)cBMWy`#WkJwxMdAm`$)RK%22tvVGgS_EZ}xI=Yd36z!mWx!8SAhMj1o?k6PU zfVh~oSLX?y|bsf9OQKXiv7h9$;r3q3?yVUb> zh|Xb~xqDF9|88|UAL22pF-4SidU6l$YI$9-I$Lx*!lH*8tHs3;yRAN)#z1zoBsv>6RZfSQzMyc9diOOsNJpQa1tn00Q5Y?i|bNB~FL?bTNJiFn_gS0uhjLHJv z6>_*kNNl?&)U)WYLWxE0(-1K9k?4p`gf;ymIg&?p7)1s8iv+CgLA)K7|vuhk3I*9tlG7qdn<(8f4-s)?k09M zfGciO$WzEiUUqFG=1kSA7+a`;k`9nR?tA>NK=gfZ$=13@#zzNHQOJi3<2YU~f{bO3 z^l|8{c6ch9=fvBwXsXg9aQO-L)sYyn!^@8Hd7xmt&Qf7t@ z0movOZl+A!mGjyYQW-Jn1>>eT-6*^L?7B^WTw||0L9r}kgNWWq(#hCq;RoR6hHYJI zZO-0I`1R9?TG=4#0w$dl)n^>FN975#-Xm+$;k&2R=g$kAX8R-0fw^AF85}l?x8k^t zW~QF0(=R3`-0ujX@|Q(K-+*AX`37-gO-yk*c*a5BUQ`OwJM|Z$#tQFafADv{J?Sai zpc9Y}i?68u=tD@0w)Amvm88A%@-iYJ&n;}^em zzt3E#d!0F*PD;AduGHpoASA(1!ukB#N+s<mi5gjXOl;hRhujI*{Ao5yVVJuqlD?qHuR#(+L3Cyt z;9u>l^8E{%;?AGpPeZn&EeNnb>rY1##RT}9%tPh(O7=(F`u?=62Wqs3j24+dOjFa@ z&ttsbIQzM*u%xa<0K4}R{V$VQ%(u8w2ob%lOXkYMID)W~lqQ(dK_Z4akU2``hBMnO zu=HTsQmNL67=z;K?KXduaYI;*npZTFoqZHfXl1&p4^DyO;h62VQ^3%PpvD}(4#Pn1m zhPrgUxOe;ueQQCF6O>uK{W%Wc&}*2p&?()U0bR4dpe*zBJ@>lxKTFLMO8uc zPdZrESR-cYnX$Zh%)b!;^POIl_bbl%d*<{dS}meV5#;|7UjYpqHL8Y~HZ~GCAT|DF zCNUYZ2NnYXcK4Vr@fBjuq_0B!oDD+tcT)uT?W)&+3Ql!@T|@@?OO5apEUt&!JL%BN)G9C#ke(i0b?t>P#ZCtybMpPD%iH-X zK6$h9g>;l#ghsYOD7Mdwhh8kVT58!*8Ri}E9L-y+rfU2RD zsQ{-AK|fuGk8w%xOD}|JPA*Nx2q6ij$DeI26Vg8>w$55^HXabKNp~35e;88U7g-1_ z^`7o)`t@^J+)apE#%R1(#eazC*-F7Krokw=xI0Gr7wt4V7BL{13jI3;$(fm% zW$i%`Qzya9z9}1PY0F44HHp8-CfZ%Mw^8~p23pUH;3IFtt9~yEXp|nEkU8(dt)Vu2 z*=OQ^mwJQqQ0j)_X)LdV_DQN}O)DSd;1&^O%%nd%t>*BD@u1d?bJ;@=;B}>_llYYhI^*?d!no=j%jyK=2F5Bd-?NNFtu8%<)?>QgW)oB;EwDx+b?v0N$8C*fP+`9# z#@|6Z_r(HY+;lk~%b)I0S(Pc_*ROqg&XA%Fl*8Rk=-~^i7|PKUpU1tlf#r1_2bp!v zG-kK-GJQWNAKeJ~{CTaDh%!|TYkHj60-R{62{}vPJL1@(6^X`K8xBP#k7IheJIH!6 zpTYDz_ z`#g5Nk7T#^a8-VqeO$czP5tn+QUA5Xr!HcCj)ZKUN1sDahHo|YTjYF&c{e@VI?Bs# zA8T~26F$QaiWt253;aic?nAU$oZ;m|fi;DXnKMGgBrpLteEK*rW|1 zY1_NCOcqvBi>2JGgCCqfmIPjRJsJu+@v#_MTMGcKH5+*=8^Y1UlWzss-mG8IGG>Su zA5;o7)JBLYur{+BH1RczfKhDhG2}gFn?=gq#aulLhq}q^z(InzG06rR^I=x&8*l$P zkI{0Sq)$IW3UrPKh8x~$Qhe7dbAlxMH{DV;vwlU7=x-ke@bWw7Zt)CR1l+ZB9{GPN z{f5#@{RIM=``#}x2oU7VfviX$E^K`LDhwNPnTZ{sR4GnVgoGb9WtwCf@qU-8in#de zQzla$*7V*_P`g?F;sSP)cFp7=7`nDtU@}s(Z~Wq0*~#pzM!e7@$1f}v2JPV7YzNGl zc6C~MQ|4inF!m)@b18REZF!`o0_^j$Y7;31b=j%gGa>3P0v4nQlaR9 zP>EQPfA-?JZ?&kmHrqo)6HT+ksuPNKG%1a7dXY)9<#lX13w{?U!b$vj*I77iozbc7 z6kx8o|09WAEEgNw+FFq|Ti%WPjowM_?%tbNP;NU~RPIv5$+c=pv9}E#?+LpsyQ}5x zA5CKMv$B_-C6k(x0{oa8ki3dW?m}j;O)Gq4n0;xAn}hc$kJ7a3+pRH7H%_&#KR6P+ z7kqs5LvUVy>;##+`c@?GUaCd;7PdUOCoPrsh!8Q$1SnSuJp4JGJZGwYDrqvX zj;hnPbwWd)|7@Het(O3|vr11q-!}ID!7*`?sbE=M31+owruX5BuED)~+n1N!1`n4s z`VJv%VhZ>DIXLYax{^6A11~^EB_CXauH79An9dHGpjuq~k_I(NHBQ%i)hoLs9(qrF zDoa8B9vhfgO8*64DY9v?Awq-A*@G?ehE$%uoDwC&Iq*m}%Fn{&r|hSPyYq>IwmPgv z*;=kkd344)t}Taz>)_`?B!s#^4lV`$6F#D7(oigS^i@v;E+Np|d*~=0*IM1kkyg{& zR?pgvMAVb$(D>U=dA@4*NZpTX%AYCa*Lar>q9B)-Q@QZwdTb$MLQ>MR7h4>TmX?H6 z=+~dRB{vv+ZpQ&Ky!BDSc}zB>kcRGhg@wL^J)|l%gm39#{Fd+>G;}Nwzf!6tLcQ~{p*GAA<^tr!i-`sy$n+e}*P$a3gD*Q(_A3R#0 zyZa9$w{3q==r#pV5E8=vX^(hay8ATY#qNZ*QhyuDzII8HE%!=T%VPZEf*t0~b(dCv z_2PMlQ}46|BU4EAV;W0q<{>Op!}Uu$MW*Y(iVlgo+yrmXcd&c$FVGd8vK&> z%ME3zjK|wXB&#^JO`k&Q-iihKU`Fy#%ekB1BmA#s{Oe{WHY(;3_C=VK_^g-W4{C9k z{iB;-T(juhG{qiVU4=NkqhqeXGze<>w>FUwwDGdMv(q3PX(guA79+2LKgyQq%IkYIDj-u%-UdWEQS7 z!4ErfS>SML62{=nMu=yow;X5sN46Ygb2GSaKdDJdJH`dWM{K#*#P2qjHx}9O`S2wL z?s$%ii6k17#oTtmaqi9BbGA(9BJtXb8SdvR+Z9oXRj(GHZ4TWqGBoaQekGbGar61- zOnj9MSAc);J-r9}B9ewcaVc8cUnR1qdNG&RNcou-nVIHekQ4x)^*a+MGNN*4uyrhqO;kZXb5DGwZ?W|7sbEh$w`M%*13qWU4p)& zj8&FlPn>lB;tXawI`|)$r)y)>cs@K0n-^n~nnX)y%_^#0b&vLzo!?63O-w~EGKn|7 zFtLFXO7&hwbb{FZrKs--@yYCgyAZ`$k6~$;jxvlgg=wn~lrjwp58U^WKtGcRpN=zh zk>bH66xfQR<=~4!o;{hxpDOBa**r`1DJt+e-_?MWI11SX_F^ER((QDbI24o;l}pj; zAVgLsmYZ}@bAk^LZ@i*DobKtF#>qzS{8kuGav}VgQ#^bRh>|F` z{&c|qDH4XPoAViQ0M7f>(F2`tWr2tURBuno)NaoB3jXihe`Kpu7cT0M3uG*4RrCQE z$e0dd$`u-b4lDJ)|2ILCdj?N(H-7X^Z&Q`rg9V$*1_tzW&Bw?*V#;d;D3`;}WK=6F zCO$vQw|Pgv+U`s9?o=zq05^RIb5)t@iF!ze+j!XVoag>p`@qu?u}eIZ#B2NG^oJ_4 z-41L+bm&St9rU5-*&Z#W|o=4W-rIJTkt1u0dKyoi7l}#cwcCNYy05nJVx5YIw!Gq3E!ak z=a<(p5yNpXN5{d|OlPSLY-?d>*Bc?S{Unj;(Xurcljn-IU^v^_&E_!BeeRd3J`;eJ zF~HKz-kfY+cY!wl3qF`*OJ~8b$FY*{mgL(N>h@U0$(kj#Yr`!W2FP@y<=ACgvXU)Q zIZghSt=+Y8*swpus7dVl@mmfX#$I|O#qpmjO7-0aU+1CdlZa)$*#3~mPaM#vr>e@7 zY2>9Nb_A>)V32saJMC*^I~0BjtdioX(npgJgKBuv9#mI=D$FMYH<2J~=bb}5TmIdZ z)>6<8aPLZXWrba+8lZ=`a+H;vaqUv796X3Iu9PynNBx;La~u6Q7$!Gef2C20gj9WU z;WrgGu#EP;H&`%-%+0s*`?@vfsc08p0Fj0|FG4qjRO5(xudBBlmJ_Rk47;xENuVYb&f#3Mp z`>Hg}d`&YvOj^|s=|xsB%Wm|Lo)x)9j*NL`%4X7>%swjgyNg04e(5R*V)EeKK7w+c z-Ql@nio0o3Z~G6V#LcAuF&Co3{mrjE4h)%#)-OVjgN~1v^_Y1c>k3HCrRx4ZBvckj zYqK6!eA{BH<}cR!H~+RWi92udXd+v5Zub2zWa@w^SBb!&$~ncIqnV|S^P-gq$=?2S zB$H0me`Mh3%V16CrHE6<1k>h@bgWdA7aeTScJwxeP#2?n&0RC-8rWUEMVh<$!~rZg za1ngV=>=!{C+Lf7mN2c@x)SzTlT|)a5nxk`cHb#G0=l}2$Z;I z)ZA@+fQ%sGh+7Wb=G@(VKHjoU#(v83)Ag@AgwyhOO2F%58NnolmRF3Q)zwolcXL#G zndY?{^Y>f~ZPG4a8lPwCsFXI|-&rT9RZj%K(-*lRrH!*o^Z!IB`qVI*yEq`ZT|iqmjEZzK8=IQHN~ znjFnihLhr;^wD zKCwQ)*zNEB>$#@UnEs_l+5x7uOXYgPYR>+l7lCUVYafDrnuyjJcg2YgSB+qRvz>>a z-P2RM*3YrQDKQfNoXn9Fwz;0-HG~Ht8q)Yh&?DJJHo0It9&pCF{MzRediOLk$=_9$-nmao(ntZ zjP;1LtsiD8I}mT;VjtFd9)(Vc;O5rT7 z#j>ZD5in1IrPMpMWE-(^ttz&+8y7RM_2mC5PLl5zp>?bb8jo<`IDvvp)^ZSze|`4_ zhiT0~9J0wkP(5ArhD4@}Wfb6!Q#ZE38;W=7;n%*LTuJFTR*SZvza2iJz!9O~lFj)= z#?4y8jcjHSp2wM1vB6fN%vYqARdWY49u;V!tlC=B#!w{y<=_yH_Nxgo$>@=`pe`E=I^G#(30^;%UQp!O5@R;qwN6H9UWN$4F1dJ+PffCr&w(t?%&i z*Cw+?ECw0Yv`;tQ&(GaF@)XQ|?C1-qhy9bpmc9q%9$P+}$MYat|G~=0)^fcV|4K%S zslDL%YyWEX3?-jx>4ck4X9Trn4}jb+i?{XEQ{gI`VRP&8#2Pwkm$+h;wLAAOd{iQk zKM9#--A^(EeoE1Z28Lsy0hTM{mu>%V^?0Jgq!=_`lPZETf#^?Z{zn!^u1=X{Bu;D^ zZh-Va(>z^RF&~-+McaUT?X;{-uXo(bly{z|fTPh)71_OEF-&poUkcCMKL%!yRBgYg zg1Vi~WELMCvBiLCHTmvdjCQma14pTQ>*o=X9maxzcjU96_3sYy%}CXA0WC1>Gsp7@ zKqCgZ)}fwXM1>90V=RLMiy|VS>!1>c*Rfbe%@46Wi}~@DOwc zO~IlXF?5L^cVqnGuw~sV6N~~`Mf;oDF!Eo_?27(DX(@M6ahhiQAg5k;%+6K#0NrXy zj#N2CUbcrZpnlf9xcl4n&Z1CX;a@OHfzqsB@;hRE#{!k zC?-SPdZDb?#oUK(%(N{j;l7|;AhT58dw2mYd7_Wn+F zkal>q%NY`lUz2fI3p|M&GZ{lj7D?T!;nIuvbG6Yq>Nm+k9Z`K7Gp4=uPF!SbG#N8% zcVRd40Z#n}l_R%b6u@E{dSI)Ss6I&b*+(}G;UGsyUju@N4E>MB-J${`7yLu`_(bb3 z`W|=t_8#(Tyrz18admXx?QY0R%}b?i{f+;~^p;3uc_pE6|FxOk$FEAtNCcPwJ%az= zFxag_X77xZ=AD_HmakfN)%;7tUj~kGo1h%t?^IihR{i$`FFc=8p!?f@7xA!hPyI$P zOU+GFyxj)Kwf~@dCgYC9R2^ciP%9S9 zZUobZrD#DMwyuVDLMw~?_bit1Aqr-z%XmFH6ccS8^hs*0Mr;_2i8g+UVu;In&YSTu z662y8j-(V{`@7(RtKjTmAe>xF^J{9;j3g+=^;{7xoG^!Mj?+;x;x@ zuV#5JRZf>o=ze39e^$tviunsKR8sB)CQcK9Qe{EUo8MeU8mxg9-nS6LC6S+F=U!fk zMrC^~y?{5)`X>KWH36-1hJ+;PpOsi|MFGC@2g54Gl65eN!W3Kym2ITSL*JS&S(XPE zfhVXJdW}(!F0Kw*XY1^$CIXW=SbP5v?G>m48LcdzeEIB;qd_#oOEoaI%|D;#Ae#Jf zORg5i^`D0?c57)NvUI7dt;UrX*XMUrY(M_n>=YN)G?-x4Z=7crOFUZoH)Cdz;oq>+ z-HJ~&%!CYPf=!&k4zJH(Q2NH%k7aJv(`^(w6y^aREnl=1uKWE~WWm_Lp!?6+o*r!% zo|p^j32eD?poHqVe}~BCG3iDfq#f4R%{CCk-OP=mfxBcoH7g-Ji>CsMIz{I4QJ1); zGJQyot=^=s&|8<)iyZBroIPwc)!;Omw03d{hJHyb;C?5WUVQ{7 zR8_aESKY;nV+T)4ohQDpG7Aj30E0N`90CN-a|af4S2c8V2na_aZ$0cZMnJoM@w$qA zsrYuZuDO2^iQI!)h|x@e%xwt(sQ|S?rd*(Z1GUGn&`?Mv07TC{e#@YO^TjA#4wICr zld*bEshr|58t+BlRcx;bSx}dpms(hVHr!0;L=(=&-gWrGI-UNTzZ>7 zZgRnC4Dune@aAbXTmWTjY`DI^mMtpR#7>pGS3vNvI?J|F!GME z06)m8(S(Ps={74**FVIJxXiMuAV{r%zpjhhe`K#6V;K*to8?2QM`|-{&457YMkVW& zWDPOz2Y+vO9F*dDv)sd%zuO@n#s^NXej+1HvKHg$BrcyPFLuugrOnEp7M0H9F|7yY z8mA|xhmE>l8K2WNg}xb?#aHZV-Ot+9c}FI@dwd;oQ#beJlFdu*aywusarJi&KKEbM zzjtyFr)*Fw+VvUyV)WZ8OI$U+!seOJ>5F7TRndsEfyIQ|uFFqbOxyagAhc1*c~H)B z&SP~>R8ColvK+iwrR2`|mTN=b&lyXp8v@@71$ZTGPQ9^=BV~mz?T7vx!&htre%@fK z!#kvkP21*6Mh5247`r!k53Y=9`qva9>|(P{qpS$9yZ`?CI0>AF-2Gbei?69zi*Q;V zbM)D0LO)~@a(Sdx;`UhhJ*4rcN=aZ-WDhNxeauL}2fO}b$+*S1Niy}xC&vHBN*C5A z%y<~Hzg0>91^SmO7cOl|W$YwP!5Qnwe&5^}QCW|Swf@P-G&;XZ11!p}_GVBVomr|C zURG8AI`|=DM;0@%lA9%rbiB#UvRCo3T1+9m44w?(iz^st6_O8MA{T9%$=~{XHm9{A zK~99JpS9Uq#1=OZo2tzGZYwvd3+RCjZN{3j1Xbw-x&$x1+3v>l6S{^P=1`dSu>1BOlPJ*&s@N(89;U zA*F2HdslK=fX**49U)I_OnETLtqGW?}^n^G> zF;gf#fXW0=XV=L91{NFFvKyy+W%lqqBe$&FuFggjGRbw<+SbZP!o$&_O) zlPCEB9S*wYS|hSB{#qsXOa)MHPq?Bd^&THa`6y!*Y*AG;?w`{QuE}xVFgkzWyxzP8 zrSTC0MdVpJMJ{Nj5182gYI*hZphEE+@tuGIt#{k}b+Ja+{}P|^vF6PGn^}xi%gW^L z`x_lB-GhiKlg@4r46J%41>K?VP)vqMPu8YW*mETTx^oi$-E6JSM-*xPqB7u8%21?8 z-UfjM;N9wc?}=Tzcfv}+(Dg!_WhXGcpmcl{*6$Wok{9+DnIBFiA53K(gn324YKi{= zu75o<*O}~=JaD9&yo8&8gzMTcM&WLZ5c3dDp(*!eL2@q!Ze|_ciLsF%iMEU{DWnzx zDVil4SWewmEkLA&;>O?YP>Dk=XiQsD`lA`@7i{PUAKo}Xq}wZvR-RmVQjg1Ku&s%g z+6q(JHHo9c?UxVba5Bdw8^4}?ukFJ)eSd|L0Ox_A`rdC$7}@hQxG#GzR< zfsAPy+fS@pS*X?$!J57jojTtGD#y+vl)D&Tz^qK~^YI&5b?YNy2VAG?Wyx}1ze0Kk zg_2aC5ImAJudj}1ZQ!6PyYSq?N7tyWjL)?O~&ihKpjpOf;`0AD0E7WT!zn#uWl;o~wtOwd^+{_7x%8YTZ zR%!{&r2TrlG&v)!B@7Jo6FW0u6CXP8O=^Ah+oH`Vll4Kwdy?zGK`G^r8*+%YkY}}0 zHSce$V$F2AcMn9xp8pI)q15Me(7M`m<4)(p4~8{{GUW^Jf?knexS}c`HVJ z_nmz)D%6aV2MCn>qB9V04^E#Su#&NC&OhP~YnRDOhxS%6QZ2FN!SXUN4F@&a zW?k9%vs=%v!|5bv{;7gaq+;Faa+kn1gfi)doy{*NsGDI;4}R;pfW<|vC}o&Sza5XD`y0JsI`0{4E9 zsvz0RmNWSEPMsE_u$}Mjs}DSJqyr+9Hmp=j@jQkb)^5du+h$i-(AzrAL8)38)3Tsf z&e}kI`@3qzJ%z6zT9%AL?`N-(33(qASoDKr16(qInaNNjLYu3E9Yh(s=0v5;&uV8U@^^2D_;%~ty z=)WKtAyQIfv+K_xCMo5_fJ{9 zba^%<9^;rqHYbkAzrH`-WCHHM6sn?4)LV-+%Am&Qs1dvsc5n z{2$q7h(dr<B|*H)AfrX$Nq_%6Ft49L&u+BDe-zHr96T57oM#jU#ba; zqwr{Yx9I)Z-m!#@v-Y*bL#CkY)2quaU70@4<#yEgPO-634MeZvn*;d>s}WiCaBl_; zXm(RqOekqe@FGSEe!%lsL{AYq`?DlsB!SsmDQ+Op!ONT&*0$mcVik`hzQh_m z$8()jK9+mlVyRK_ySbZS8~F?S9~nEh_vYW|*ntoJt6a?X@4)s}E1L9RKI$SqkL5CS zmn3Q-mrp2%YnJ`qsaN{r1#*+|=1!&VlhXSuT6vnT7 zluGRWM0r95zxA1Fy6OG_c2bt!AN-$eKk7!bbvR|I9Nzeg9_VeMnj@+R(Eq zG1m5W0k!hX%fWi6lpjk>Fr#pg+?)^|%YXpFCK>0t-KJlA&dztt(uZ%p`@RV~MpooA zPP4Ik-3ruMi5mrRzUzQuL6qUClv3k!`RgaK#2OP&|-j7icA=X?(hZ)Ka?7-GT%+c}EA=V;hMNDq4 zr!63ca^DH$6WkAHz-pBA6Pua@^QXUbkqhV_DmHaoNik?zY&7;t^q`#N=CeeEg=a2y zBzpsV=A&0){7g0S{6{0_C}o+;3u12G6c=s2+H+iPkwxjzdlc0dsHfH3A0}EXT4&!p z83$1a$sK&k>Au+E&L*k7{`qk>hBoK!U2ETuhLj*Sdif|Hj$ZOG+$l2OSvVa*4)ufG zO(#@*-wHZRUwp)6`t+Ai@^c&TA0%R7F@Ul80`YcL&{VclqIG{kRuqSi$7$0I9%vZhz$XzP_#kcTF zDeVZ*N9N??1sB#X2EMlQ34i%aCx&mq*6J4z@d{s@dRp3K_fdgA!55F`By-QR65ZtW zUA?(SyQZ~!thRTZ$(sMRhL~ob=i0V{C+hYKmK{nd`-bi~41^|_x{~X85J$S=lM;S} z6EAj@jeIr-sPHq1)x0`vif2oYMwu6xL};4&M%Jv)@7ARBu}wof#UJ4%Tw`C}0!r*N zanB#`4I{h%c_pm>P8Fh1B|4uXW7jn>WmZuX#?*X(GRQZa%wA?5qF~3W3#KPzh?#2| zerwVSA1fL=41P#!|KdYPzPe8CC2+Jil6G^H(dLEf_tvgGr<2!)yFfwHy)&rk+P>o3 z!2xBMe+Uybc?eD{1}XtJmWHrx$M(;;taLeLg2LZbz~8J#?Qn74`u-I<|AdH9RrXa% z^HBe=!e}6~r#H#7{T^6-o*grbJ@7Es_O9Q~(CNO21KrIDY8poe!v1*%XTj+lA#$PV z^1LgdyV&!a z`U3vnG9-Wd#JMCm=P$2p#3~5+t*KyJe!*#&umDIszwGs$9(zsrVi$bxqjoRhCScJNb;^1KJz!^_kekzpALca}Xq3oDnjZD6-2Qrc zz4l@IL9a!DWn%qcx`7K5LN!7CL;Jhz_}A2edy~YIb>_3Y#v?`m6eZA=Qgq{7YHf+5D#}!ADzj z;>#X}4ypwZq}Yf!N`Wq}xOUOy-qdT{B{JoeVpe-5J^1wHm2?dtE0;MDXb!84FC`nk zq;pBhizRP|AyiEI>Rf|l_1!L6Dc^JTYY>F6HmF@H);^VTAm53c0{irbl>p(}c4+f{ z#KlB>F^Ddy`E}8JZc59eY=X(}-KJrFuB%?m>bbZ1%MaiPoMwmuI1#(3@V;QPe3fJ7 z&*d!6a<=g_2-5iWwQCZC+`+g{fqu=kI9r>cKx3pyW&kic9qy71Hh21U6U*}xT54Er z#8dBF`&E4yGVKL&SRVSLAv&TOWu))TfG5`In6_+{w(LOyRyq>L@ORvA|NG{DWX7!t zdb0O+T8;~r`mP;mYJqDwWI;l~>NG}g!%rtQzW;c9F*=&0x|GG3f6w88V_;-{1jg^i zH~(hH@mz31Z~c>0F80EqFh%*LqcBZ{QhEJ4c&cWdz{cL}NL%&Xn(iKZz9tMBN`>o@ zhxhashYCBL^+xLakZ+%;n1^PgC3w+&?=cg@GhScbXqJgdzyFK<*`{sLnsDbxb5bC8 zt0j751mC8z0$UPv<#{4RZHfYGb|9nS2B#yRVGlX0BnN?IK&h(aZ zs>tN?@xV*R;rj|PMkT5gC3SV=v_A-AL}F{utRe6eNGJC%OjH7kZMv)NE%EBjQ;Usg z7h+GmgG8+mczp_ZNGq#1*^M-P_^#le%<-1+rS;S~9oZMJb1{Atv(?MVrY3!p&2cmh zItJ2iI5Pq5U>E8SdZNJSj9R+pGct8sPJ@S0^8fM1@&{~8#%IqwT8$ssQ`3mMLE@TD zzxQ{SH|M`>WAIAd(QQBP5oup;?Z6MY z5|r-<=cxZ+VA<(Es_ohUW>jU)65n~)wE zcp`)=`>!X9OrKQijnvH6Zr#qJgT^^?SFNm;%UQ6tk1zqslVCPjNi{ip0OS8+*wHy? zVS8^qvSxCG3c67#Fq69ocxL)_q+-H8_~S%Zwm#2oDffL-`eQICem|?alQJ!oxHNV0iR;&qO;eQ33__VKM5$C z2MK-~G=6>!53Ha8*By7N^X9xX(;oerke^4b<8({>rp=jiky zCs?0g)pa#3RC_n1Xi63_BVCX>^vEo4S;>b@5sBxbDsgr3KHJ`3CGrtPGwMg_MUxl1 zY~<_@EwqSJfZTTDRk-9P@PQJd7FV~s8)`+{o_VNkURl6;ppzLJ=dTMb_1}tD%q*GD ziEfH_dVO6{?mvq?|K_ckB+u$WId6IzwMW~l;!`xo#VZc2kME*?G}N18MP0arC)JB~ zadaqRnX(zwmt%hwi+zu?zpX zU`By|4OEKmav1U{G;s-pk@wd(KGI99X8496?aSka!j_28>DqZsKbSWg0fEMtx-o58C(y{uz=Kv<_yDLiG`RXL{zUG5vi>dr@BntnyF(+@48gibKT3isP zpkfgo2p?0g5x1VcgR|x-ts>Am2VQr=7DX*aU(Jk+U&S8OrZ0TpHWz!4{OwxmW+G6h z*}L@<7^o&XKmTH%b}wR_?1Ots4Q;oRmIxi+*jXv2w4CQLUg6OmSGz7Q-tV@Dd>)sm z=CuVRHNC!+N8C}g6f%sXuaMPk{jnc2G}_ZM^Q$)SE!%8d@^AzY#9N>IN(!sjY}yyN zU1E2+%daOi+SB#n4!K1>;N@U%&8=%Mr_Q6?+O^XS0%P}@paV3zcXW0oXnF80n?t{5 zF1zUxnEc+Cv%a8%Gj5;FGu`SH|7Rv*PXCWop&u}0*i%{7*=-(Cq%!W$N}n9>NV%Ez z?peX~1hPNx0fXvi?!KOxSCu9M)!i{g516<@Gjn>{>So-YbU*wHJzL6!GX0J+tGOM# zdJFQF4bWJwqu<*4?-w-z36ST(RTI?meu|(R#W-Pbfgv5V%zG4}vZtrOyzYkE?sih`)KxPZ89JW8MRUIhv;jdS`|qi?trW}h4xvSue>4^oh6@3S1(L%^k|O?)dx>V_UQgc z<}#7M1?@jcg`>UC(b@oQ@+WLNrBunU>7DF6qa8H>%qv*P=oDOpiBXfSy{iIO{ zM?}2g{RnZ^s0Rz94o*FG_gLBLUkE;QZ96`^4o9xPvMN9S331j_P17^s7F{*Z zVUa>gJ>a!s3I=W=U!N32`95yiH5IA=EOI92BHJdFvD4~Ri#u>|SXu#)P5+84l zyD5G<^PmbVTBKe1U~F$!3*CEPiw9K&8dWT=j^&i;x<4`&wa?A05QnQz^$GWH`>3$)GZ<<&~Cs3!m!_z*@78NHvYC$=OWzIhqemfz4o z0v`K}z5u0;)JBQ`#@jY~z@*%`?RJQXX;Z*xiGxoF*J)tVB*ViGqlFjeyST;O;A0XG z|9RE9!I=c$Is7umde_*s+;Vl(1d_R6$1(pbVmllxgH-7ORY>?gdgjKayXo| zjfD7yPS@X=Ot|{wrUHsyIc$(44-v>`EAmwyVcEHqr&Fb4%$pD)2w$BolRQ>7NRgdo zXNDd!p;Jbd7yUSeEc~!Yr>h)it;XMIFrtBz+36JdAKBg;z|ySV^W3?f;^LsSRJ2~# znk44#{X{IXmn}q*iy>&j4T+pm8hBz}I5Z+Oj4zRK56o*9oKbcd1W4r5L8%<6_-H2I zrh2<3b4&4~4UyrIwHsylcYe=GKh~?YPzv?jbi}AWaNH;QYqfWXz@UU#I zHcd5rnEoN8hAwD2Q?yk)`&O^vfG-d@aQeyg%d7x!lXWWvu& ztLQ$31L5$#ZArm2Jf{=y*k`bNHLg>iQ6plu;yh12o&+;`%fDMq#&#P`l%N+vXi*m}_#QvG_G$^0=xMVvx|3>+2&c%Np zbkK}GQ+tD4)*p@0&+lLX||mKH`snrL%^1#w~haMpUO@JrHAB z93ETrAn@KZc=5$WNGDGq^KTy+UG%ep^488rcBo9Sdh>#u|21!+W{PYW?HCHGyFI27 zj2ag5>rc(hj~|r;a)V#D=EG4>+Mamjh8m_8{YTcLYN(&Lj&>%NlDkj4`M5c;xE%t% z8udZnFYHs;FbsU810^iGcD7WQrTulzMgZaNCZIbwXk|)hhGxje4g`P&oRnHaI0Q7S zX{VAw6ggRlZdeC>KDY%g;<{{6nHAwEMK}I*9%IuzVuc7WM0Hn>TM-+7z;3QuVfSiv zUreR#Z$KL@)`z9+o|WI<5$|i~`H$@TC|gL)K9fev0iqkn1kYTt183DU9?wY;+}Nk- z+N@1Q(O+d+C5w>QhQ%Qe+EUelk*Anre0hf+>PRn{p>l1zq|-31w0zi-ioefGG*l?c z%Adxv?66J}(%?|5s+yMfG18#XOo+z_q$4mWTz=vHq`B^3;5G*aSRE)_dNx!sdoTvy zVU3o{u7m4fB|DI#k`>y==~X3MDLR{e`DLuP{lq^AUF@1x&9dhB3n=HAR}UZ z?QGvF`?8-}X*fa6FKkNOH!x&&MMJ0CBX$kR+-oQJSxFVqXzBjl?LkHCXkENX3r^`` z1+?tL!3mzlH_b-c`uK_VOg`q)iY@z(%&9KkAL7zG^8OW&A9=3xQ?=B~PN|tV1=wj{ zZX|++{N^a$4==}b2Nl%ZVau=PKjb?j91rCG*0UpAOEnnANNqMCR1I%2YIp zan3t26e$E@Fggm(P<1+~*fZO`v6Pocmi395n3>T(VWF7#J>3$scf6C~;cN4vqqkI| zF;Rc;(`B^E#ZEQ22VhCC@1Mk6JJpp{Gm&cBbErbs)xn#j;pbcs96M0QuHlA%9KT_l zl!E3|?6-PDHFHWl_Z~p&km!sJAiMQ>>nrjR*D>u4X1>p)3jEL;O*Ka;qyM13OJGz3 zzVUfojTOBA6gfIp4v_9M=<@E(zo!cSL-l7q+loFHQf$w7tqLVqZbI`o9A=U#%DD22 zH@n{z)E$I6-QJKk*HW|}jN&4;4AvM~s|`S-<>qKfqR3u)tU9l?`+*ZXs5RHI-ca<=3GIlDV34xBkykp^r?f+;(pJvS783L9R$0lF;2SM2N2g5muC?0k&FMd> z7S*rbR{cG|l>5={<~)3^~l82W%^@euL*x|GJ*k+#lTW-uiT~pWOGrF6tCk&UC0C;wFIWoHhgV5V@+{*}f zam{LORrgLY`D(AkR5G29H}E?6Yk_6df^QwHe^fNZV;M3a4$;UBD4S5ltT-sV0IG(E z{p(G8zN}Bb=Ba$^Zxp_AleuIooD1VXDIw(L;^!8Jj30oRyHD8}esq;}=pP_LmAPt} za(1;OIbG53+D0#tHd#l5S~7G#Ec7_4PdJl~^B|Pimja1rU&}+P3bmdx4yLk<%LNCx zEM}nRjRW+Fz=I4|%9r>+?WXp)k?d;z&kojEY@yZ{$cjt^i+#y?JPGV_YG4SH`6`Bx z5?3hI)!C($?+0Ip3=HdZR%9%)Ww&3BvYKm6?fT6s`YG;K-}&0#%~;rQ@;k^A0wKm& zcEQWblB%W9B16%J6p|>W&%)2(3o@6&1INg$rAv=`IwRcQFe^v|kPFdSAISa`hbWZb z{`B52I{?xW8!JsebtMI3Z5v6T{59s@S+HRF{{T=Jb87-UP?**vtEkN`;vo*gQZ?dA z{U{=>Ef{8S_@*^FEeRpIk+rO1I+Z#AtHgFLP}>TcQ!ER6NvK}z&A$dM`QZ!)U))pN zp{Dz^NNHlDUY`yEBkB$uy0T>!Z=4_!Udu5Pv9=9gFFfs*1$r;SpL$ZZF-a#%Zgf{I zhQI?SYaUx_9%{R&w|pma3R9DDDU+^A1>J;P;B5G3GJQQ6duUy=?4F;%=ndr#Bfqx- z+KxXAum=~=)3-RBEmN=3rPyp}W=?gl54 zZ4f2xT+j7>%&yo>;g&%eRxIO6IDtzab zHh8a>SLNEj3&gI|{oG%1Bl*x8r{pR9hAuN7uCm4e4jpCLi?tBLH$8jGy3rkW=Y?}8 z>EiW6BBAb+tt7nX?QNwfue1`S9mb?p6lZ(`z|s95MQ7pANH+tfOc~*ru+i~*pZ7o5o@YDvea^YA&jpf2 zvPbS$c6>VO@pz-?aSyq|@8%8j3kE-Jx77TPU5NmE;T4t-o#I!@@>J6?hf-xO0~pqh zh9^8v(w+ox#s8}RIOg0e>!yCu#>g0SS|(S?dhUEEv@>$BknRKL!O5T`jhOl6{FU06 z1t;;KCH+gth=rchwe|Sm-@j$2UasKTPUeFt6Cfvw(bDf(T!c{? zsGcz5Y^^9_Fn3FVh9a8!X6%%;K6NsK$h^~86RE6qWOLk@J)kj#1KfNMpoHl`|Fhz4 zi4B?WKeC+kb*F^`nWXAD&}OWvMW~b&e&lIqE*kB-|*<3O#jsDBO&&(0Maf%6WIq3RR17 zF=5r|jczcQ^!c-2_k#TWL=-UK?8QhVD+zQmo;OE}Wy9;}UKms1EjaHqBXDnrUbo-$ zOfvDM7>~pK8~heR+H5Y*vo{#pUpkti#Ef^Of?j0Np4je}Ql(F_?HrnBx()|65G_u2 z>F#P?wCA)&bL8w+BGWnN+kPES8O>|L;BUJZLUrH|XuP_VRU$pDEpGcPNR_|IT23U6 zlrEG?-h>?Eth)|5B@kP1IM+7`cIv4mH7+qMu>!$H?2i9EO5A(xd;lSs}ZpY;kibNYkhv z4V`P(u4nhQjfwNbzt32nkfbj;cvi^LvQl+;3MF+Yh&Y-hHcAzjQ+>9o4y;UqZaIv*BjSu_c0SGDe-&K?wJ^fWWOY>!`W5`|+Nzhc|L1?KbACwx z)r72S?>x*dR|j}4C;Lb65J znS`4%JM^M`=kmp$wM6aP`In@UDgoy(``ONq@CefYp3KZ03ExR};Rz_&>aJ>&@tlC? z#<^Xo2$daRWGxbg>PZ+2B4GjOHP3i`sGgNET|UESF(QbIO>RD|$MJb8)NF>sP+dZ? z-C}=sHhJ1!TXAGV?E$?t`@;6*v zeIM4_fn~jrO0cq;p?#Df!oEtvC_8xS%5&RhHn{4cBHa})GPFEL0A&)=C+Uagcj zKxioP_b{KIVYqxBdSQ@l0G@+wAJDJR|v6f!E| z`muSSfKZ#%QN{o5alKrBKl|mOY5HO5`qH~In{eoP1P~X1{@=A<=}7J2$`WW>K{ycB zX9jH{sMyIZ>WZ@$raR~+z3d4U|Mrj6AZw)!PVO+Tl}Ztk3a`e|Z#V92{1?~O{r>cc z>E88jykU*=y>OqqO#VcW8|UyLXRXMhSaDEUqvkV|5S`pNa4TC67OR*|v%&7;98j7) z-oC@Rase5|%>WIEr~998rSWjIFYhLCeiCR6O9tJvSB%ZF|KUrr+tMMlPofWPPddu% zUU8F0x$9=y1&L)cb#%#|zUE1PbsE1dB2(>$hl}wuP;5+pj{=dA|m(gfYN+J9(22NG1;-Wk1O}+M9Wli-m z?9@xpeJ<6kg7(ue)U;{**U6UK3GyjZjK$yn;M(h%Zc?s@O#JCoO9?oInW=Ztn^?*> z`@-}i^5tBw}LNY8u1@adsshx_q_8tp>&JvOy-$)4L7}Ydxe5fwv#B3zKVbW9MY<@k~5v z#{Vk2Ifqw~Ul^4Pm}u)7u}GZ87EC#Cy9lj@K8N`ghB`cn8T*2XN>j9NQsd=*KbQ!i zdL^)0>a5s-`lvO0zL4@3GNt~vy_Q%y$X(NpvJYtJwv)yn_L@KoArDHRFAX=)@oM=! z0mS;u->05M@XcO>V34xy52LSK-vWBJ?swU(%`}eQX!;hqKjY`Dey=s?Wx0?R;aa~ji%OO26=bh& z!vbr<=jf9ukq!ZOdCVByv4t|*9ZRV)hnYymBFY!FLd+*yg2YsuK}ftmD9BPSBA=QG zHPqX&Lld0u!YgC_o9J|2CS)RDQ)QdyL=8wvI#nBuc-P(hGhmD<5#A!&iB(v6>dS?; z#>n%Xvya1GnqB$7pA#@J{qzj5!B1p4>fJE4QbWVdcOi`dg*N3-YD&YBXli<2ygpJc zWbL+p&z5LVl4$vK43pkBIY0G(A`JWavU5=`f>s^A;$2`jMk^<_drE!X_srkjw680b zV^pCzTjEq2=!-h{Y=-eLTLGOa;Ev|ptd)S&nDRYN$M6+Qo=(XMn25n-+nT#aU!P9h z!-Wt!g2TBvl~(g+g<>>9$Gytle=9L8R4G5tzw7zlyq63=)Z|B8Y?oplX9&V21p7cm zbM$88>+h*#WOE-eI{^e^%cW{lsc7^z{7$%2%+3IIyTNqLy=DaqKX+F}M_s0`O7M#| zo}7AUKN$$EJ_*9u@?F?qg1KBEy9v{>V__f3IvyKJ-9pV4fI-q`abORUB7Z*&6FMbrjc&zU4cWjrg8CO)v znbgS{d+pgc66KC(4$W;SkIzf`g3i42gz*Q*RF2)Fj-S5efWOeno<#LWK7QQ$V#V~N zmji=t#aXDB-%D1f&<9`PB`>^>PPUp0?d>LgABKu5c1ktMjk}+REtq*^THae2VBbCW zcrqcSw!NyztFSBOn=3ofY)LY4DY~iix;5TLhQW&A+>4NE{NNXgr=7bO>y%w4A_SRv z)s*sHRO6%9Kd1HEmgavzmX`I6t^21Q$!?ZIIynHQ!AnKv&!4|r!hj3hLF!Yn2ejW; z|4q8!>M#Ls=+O=D{12}`w|w1WLBH{t)%mnt@L+%68`!OZ-O$6oQz5AtN~CwfWr^!# zUCO`EcAsT^2dgVRz44-TV!!cp zD_SSevSScg(VC%Hn`d#hdy8v!#}77K3q@l4If6@5zI4>0=UKx$WPnheS-aE?KZ=$W z$+{<&j+Gh09fW=0hP8c{JZucfyU1oQxj~vtK@amJmoI8={0o_n_BoNI1OF)O0K9OJ zvyx9&^gN1Aa2aj!RHjAav~Dp|Ho0HFH%Q3=xZ)MTKX-M?5iD*3lCgeZ+4CmQ&*iSz z=m%^o5s{KD*@XVwn;$yZv3Sj1voK~k&VXYaMl)#jRR*OcgFWs}4hr#?Ox@ zU{#f_r*6LxeeyJE>2&FP+oMu?6N0I6QXe?h1PGJW_j67OWl*J-Of9}(9_tIk^Yx~x zncW8!(T~~}(W&zMar1|V)TIC1G1%khWppY`juqO=0d6Pt*vEB+XJ#>TAJhAXKSpeh zoq6nzRVmlCy`&z4H1xBd#T2#fs2l1$^(bf^Kc2s0{l&Nc#abiqW?|Q6PU`-bLrDLl z@Ee*eW9!9OqJ24ka$@o%fM7qIXMv1h4Oc2T;<{Vmhv5Y-eSzhE3|GJc`pYunOVEVP zcdaG~|@%3X~f4AZD0O)KVUd4Y!FF-LEL_&29XLPSb zY3-C7gR^`SIDFdc(mKhv?y%<|ORzSv;Q^{VouXE!kwxv@fhERob|7VR_B77LwCF{( zkI5)lF)IdW1RMOCnGW4%Vf<6+LS(bU219lIL3pzX2b+?UVUs6w)9VvrC|*_S)`j%e zp+Z32GSgsR1y8c?@2|h3RN!Tr&VyQMr-@A|-O>9M#=P(y&apU$K~h zPy*wJU67vPo!^aOY_$d=;7o1zgNxjg`m^5=YUz4y6hmj3o3yrRVG`WP z`~0MFcNn$lOi@1IJ*DxAAKIz~vrLtoR{R>;dPvnYYvFep2`dN|m-jW@oh)xU>kCLDQ)Cu`eWwh@Y#U;It3`D`tDe5%sebv#kWWPId? zQ+>L3QKx^q{b(WC^}DHxfaMnGjfbS)c%wh_LZioj3xb6UZB2Qih8|K4ObT8j#t$*f zy0Ii<$|jY%n&-jVsiCTS0fknKl|1bkQ4}gA@HmM&J%%qSXOmJf1EtH~LX+@1XuhIX z?H1j54ai+0>is4A*`l$+n_X*4v5Cg=lj2^C#=N%CEr+ZN@1TSEAlkKz4pIXc6Va=I zE`(nGqoc>55j6pHt9C9mCc2xw63ublywdsNaLz zh10srqN`4GZuf3o%rP|HL?dDXN@!IYme-5#)Sa34+Z1n8v!s&UZ2G1COU- zqr;w&4rdH_Z^=ypLJTusO`y^>Jk{2JMY-D8hCmDvesuMnJsU9u-KhB`UYq4R2pAoU zo*2i06TftQWe=OHV?6gkGnSf|YOAcJg7mn#sqON;u52@Jk{*YVDzdbM(`?wW5D#X3 zyGFxC9_bEyt69(tK-h}Lzzp5AZ=6Jd8fsB96%O?00T_HK7qhV{MN>#Wlth&xlFFg1Q ztOO5P{J`Bn<|jONR7}vR2$H}B7f;zRo{lq7*!G}j6EzSp9v+DLPP2LdP-wRQO?jfAcPFd5MZp@yk$5xt zHrVHEXHU$B!RmFIAh`K;b31qFt)%JCXvk|W=mf4zhPqZbN;bI8=VMZe=e%z6v$Vc| zB1$CqP4-4lK!dbh+)MhX7yAUPE#fDPPo(HaKHD$LauQB0V(M@LSY+2a`yMXLe7CSl zJ+8iW_pw281T;7S1#T=|b55K{W`etDF%)JwyX*vu$Py z&b+1$3vON=PllS+=!V|aYyO-i3Hj!F zH->NyT~8!%Y~yBk`3wL@Y1uo&?3Hwy#b6#0p=8DU&0xM)fhvTs#?=#??IW7(@8bDm zA&W?p0j*Z!%(DXPHv&L;qulB>+;e_8j(xe0#`+ovjQNC0l>6R2ecPa6Y8mB z^?avF>ind9qB|4$tcAVM4k{&-aK0{#&nWcH3?E^u&`lM#9T_+#R_2)1NC@MgYgohm z3on^D=wtdly~(cHlEOLQ zv!fFgzy-M!R)*mkEx7h!El?5 zvHU#k*}9PL@cA$7=RtmA=OHg3nK-HMZrK{T(17c$00W5t2*ruiWW!vEQ}sk(CcJC) zIMVaIfY6<_OnWP~HDSJK1j|5hfF5Z|ot8g|nf+`{UZ|((nw*fl^r&Q-!L#jcW4F1b z8oLBbR`(U8S9zACRI2=nZ$lMheXOf%-g=W-it$?3JZgAUd&JIyPlZh<8dUl?;gKkJ zPlOZbT46bL*81h4^2)e#6V_bPUiI(RHOmiJUyr@t-EuQ~TujXaX-)kgn+JNG$h<&$ zt2GbqMteNWpP;M^`J7?#-Jw&(!K3q*^m;%k>*!9?6VQ@x19z^2^`*c}!t=MD`g*^o zj80JhIdvf6T#35B#sO+Y!BDfrtx&r?`5SJ+UYt^Kht<@BN&5v0ZoXrapi!n}lZYw1 z|6SwLU7k*8gM)iI#!7NvL4@?nL%{iWn7)Px&>c*Oo$xyxhpGDb;<`#l?QHtQ5LM=A zpQLA77BHEVdsASxy(RRMzOzSHN|PbUB?@OdF%VIxM(A}R9PStkGtxielo=@fk$3F~ zm0wFlcF1=IcYnSrsGCX-kKp5kok}W1AM2Fq3UW6luZNp{9Cn0(=SLtf^c zh%zA05$s%^)=JFp20Y@EJzDrCY|0+7C9zU#SLo3Lb|V!DT{c7l&#nu>8$+eB{M!H` z1yeBmAoX?u^U!xf)?d}CiW-pd(G?zjP3YnZ^k7V~OfCM>rE(N@1{zMUSq9V_BVVyLS=I-UYJfy_QQ3Er=gCi>_@Td(YR~JbpA5&rbw5+#7k^ zMj)SE2IuC0S?b0kAuNGco+^CmTqb;6FbOx&as`C`T31v!#~3>rc4J8Aj##1?VTNwI z{$p*8xcA+m%ivx*1Gl$7iPk{1M`+Cb^iOsNk{ho7C>ASvq2YoI<+*)#?{r##`1#Aq zepU5&ftz`4ZOuu@iHBtDm#mWxB6F{yECz+7SNh58pD|Hhw&ZplUyviSi z>x20nPfx5ub^eGkMW%Ma1h#nugEF|BI-u8Co9QkcR+Pqlm$D<)spNg`-|6@^Zc~;n zeM9;lG@nXAt~SUa<4?_Af^BUrc_!O0xXRS#qflB-Nk2vv{fLXV1|V!xuEI!BEAs(E zVrU@KPr@PrB(ZXv@xnv0l6kcvyueMBvE&d3{+1jG84b*IVJ_2229WYvTF-5%t=sCm zx5QKRE%<9>=V3kg#HQ2?>YV*V8^pbn$`HCTXq4SCGr$Q zcXdV&ky3#84YBLpWl)ZYy6SHD9B($a(U16hw(!p1Yc3kxe(tGop(ePO3sk0!Z~>^)DEudq8D|`YnV>}R((zYSJX)Sod-+>Njw~8#bRbx~GLwtTt)B5Zb5l3%*FEw) zhfos!c7WZ^T(AhZ`$fvbe_6G>w4WNOE6S5)qS*oQ18|(bS@W?Ju|W??-tbLgn@&qn z5L=Ik$`|u#6r#oTN&YP??}EYHJJ#7)=qv!a21OpXTc+UZ-U$|=Y&(;(@~se0#Mp|} zxV-;%B{l7KCu1e{cROb}=RXed{8e^SM7z8ib}KGhN`JCw%9p5$cwRymvk=Bh|9 z1qj<7uF$4&{@xrtKb|x7`KZ}sNrgWKq)3%~;nQzFgHz+Wb*|J+jPD{8J_{=g4Q;v1 zZmYv(xHXBaKyMA%hK%S-Z0+&H%mB0_VrfROfoCVzLpOYWbkcsK8CRiM*o~{kZh(!f zml@spqC!J4HR=q?L66%WZ>f6e#9%bORRHq5K8`N0tOtMK=AwQc5ryfJi3yOw%A$t6K&8~Oo!;F z(Km-{Pqk@iS)r#>R@x8j>LJ}w4T(F=#1*XnqI_RP_&eebx$L{43sXf?LB){MzU^j7 z0__f%PKuSGvnQ_WotmD{8Gh;1Ltcqj{C5rY>wh6q-Qsx?FGM6>NaiZFweX06!O1y( zXI6N?8yRn%S@|?$HY-QmaNa6v<-=1%SzjJwkmbaKUuWAF_E9#$T>ra#iZ2R@H_Xh_hoGe&JN)n3M6Db{Fr|bN&z=J4?}U=|P=3_Y(}qCsN}tmC zj`S6e#6`_1vd#O8az%wk6|Y^;&VcP5`M9}a9*YOpOQ2q%gaozAp?;Mnj)|rqfib!j z#%5u&;**n|*JAn@3{~1XuM=ZRF#Uu|{Ea~0$qWC1{K;K=?~KO@OlZYEH0y3P{LQOaeCX~;sPVVE(TE(k;nUA_&ExvzG&-crA zYrxxk+I1%bwed49UJNo0eIPZ5A~{E#IGorgRW!4mz`5F#>T5vDY)7x?@~gDB{ z`UcnL|E`g2#q&3Ag&N%Z5MftUH+!L6(da2r-xpAlGijQZd3Tdg%aJxwhB#o#WNzUY zcM}UN^8cQ<@QTmp`=xc?rhV9)al|i1aSJ@&R9F|U}Br|{nzy1WipwQ#nk zt82FhR8c-wy_ZqO@iS+3$C7)VBvGH~M8U=0{M$iRD1P~`ju7YhfKEKlR^;a?h{6SUpE#W^Yhr1g=q34lIZE;lpmEeMA9dtF z&gl5+Ppo<=wP88{Gb62?n%ZB_WdCG*${AJH7?j*#MXkbile@&ykV~Y))pF|OLP}f> zv5&D;$%P&^rnf!jS7^3zx>%@TQ#2Lx>WQjS2`)2zUC_0FG37kdE&+c7;)Uch5oL60 zh6|CQbIzYxjvx&cg%{$b`>z}!)T49d6K`>L_l@Y^P76J2RFKC`yqop445-j(-)OD3 zrGy$OpI!gag(OxCNe5Y!?pt9kTe3Lg>X|g5Az!M@d{N zp_^tM!i12Nr3gT;OZ_K15r6OL>t{Q;7TBXJmy|=DqFb3thpFCU82v;*?EM(aMy7HJ zYP72lo%bsPdwSD2==AX~+UV^#{T%QK;N{f~`7=_2Q=?cl>QXG+-g%b!n~dZCe#u>c z_PG$!UdJSzY==9j8}cwvi3JGzMqvAt*cX5@QTn-KQ;ATTT|R-c4J>gWCAH( zMh$V1%2>Z@XVjnkdTROn8d~pS$Vdlu@zRuW9m|OuE2+kZ3XHM#Z0QT9P_iDy>$MO1 zkuWE-EfTqpINywbPBso5G~B_-xrgF=H%f#H!_ctXN~qECi+~3Df25I#d>5gwuzy?^ z@&cbvXf$AyV^;YJAqy85%*5hg&Gj5p2~O)h&e->8_XpqR29ZP83q7Rz7M)n;wavDT z&0`EL#Bk+w3ea>rBy@Fmh^~XD4eaJ5osP ziR|-ONx7e;3Lq-||9(%fdHm`B(L|HfDvg_{)x=3Z;$dbGH_V!N-{;GUMO~78yD2Yr zpDv59p7$!3m+3ld&(evtqNUEFy02v!Is3J;uXqRhwl`vNLoQkhP7Z@WQ;%wUmnh`| zyE(Ty?#5HuySldZTS+m;U3S_i^6&VrZ`s;)V@$L!7ee~g(SF0j7q$#dhOR1w)+eCJ zS+y^kWy2Y4=s%t&?$#IYX;-`aJJz<-t15I0olfWV(vtzOxwp zjqneJSyxgSBCm*kd62D^(EI8ZCDHxR*W3n3%1(U$(A4YNk7+ubzUPzcQtX*giurIW zN^xX2_}YjXr2m-tGH{p{w}wTOq=u#v(IC=+ZM* zTcXQ6j1dCHUR7@X#FHs~ zi6Tv3_+Pp(wQ0h#=x8l}@H_n~JZ;Cfw9arlUD+!q^2E>M2@M=}xm4&xcwM}2isps3t3xN&Lg=(dM@C@?L^u`1MO6Ouqe{S6;&7}0YOM%n@&{H{|pP~m*`Ma&g7eyZZ^@NoO9FB}U#Z!T+d& z8cX5@$T*JCj|IOu430QDH1$+lESQmQ60G~~iRZ+I*;qIP*X6P_d_Tr^cQN(CDM8b zUa1Ko%m+vRTN3vee-Mr9Pn9Q`gj|klehW~D@NT_}(rBivWNtePI_N*H*-_aiqi06{ z?2L?y`d{@cQD%mY(Gj;hP0#yr@=PO{+6v>ydiImc!!Yb!C4MB+UbvUUL<9)~K6#XM z8cV$}s?=u|M{;0uT0yiv&=Y=xFcRcI!XzZ-nHqg4HXn+#S zB$Blq6t&rv4^)OnNr@>5$A3JJC-A+A)Tcqmn+!1L{IleMdjk*8B8 zFG4i;3bIFY#>^gb$!2Jf#H)yXiR7n~id*_nuVGI{M0M9*yfMuhlH`UH!$LhX)YA9* z9Q}=S=Ep#__fBEa@y82}g)Y3je|*N@69Y(PqDr@G7BBc`=Q4-2#r3Gq_b0jtE6sVd zT0_!B|KY$C7jh2_fk1?y#Q7fyfrrlzTySOOv^(N@w1n5t_8I7dfz0D;L#5oJWoG{+ z=MMi}FbX+@xL(osO6=w?{ zWxvI!;MK%T7TW{&6MJ8-aerKLPVS~|Y5&gDz$n03do<;oVs|8^DSDsvy}#GE({9=O z3GaN!D9!h%&tVe|w=kzIbz`;f^uat5;ozp9av7`oF zyAMWAMb{;A6FZ4Da=_-mQi)!JM7@rEQoM^6=s4DlBwC zumCBGis7kM+V>~b!gRH63XY!EGm(yMWGGfw!9kBgWQjqZ&YipkPxQLRTpE!{X?yjRzS#P!|!CL=JVev2N zo|0iCMOM!VXa&Kgu@zaFPX2KnJdtD&VZ6Vg+eIfUGEiOsmZx|$%OCrh{(127lvi`8 z>l@L0KcTihh4(dF5VOdOb^s`OE>hTawyT9P79PRjYY36i@*%a;sP{vCwKv*g5wZW> zo8QNS=-1pB_Ho)E(!VL0CyyhU@Ry#+z2XM0Vq@QtT zRVUX|F{0kHwcQ3X7TT?5Ed;~CH5hxRKX~oE(u6r*e>!4$kbnd88HdA7kMNjDw1KOy zfcU?;^qkF0$Gz%;?q!Pof`(h8iKU0G{xOL&;fcw9R`340>jizCXUx0}k{;gP3uTyx zi5FB~gJ%W${?vP@IfcE-* z_Fm=MA3MjWXeHY80Z+B>l{if|gmA+u?g3w4UCUqybE&&)b{BfyPxrBlKyR<6$&A&5D40?TXj{8xfH=%sv_&9OZvl z^La(QhQ_G9vP*!SgD_41T|Bm*Hmv&NtJaeAi^GZ`qlGu&0_UhM{CdhH#r7I~cg0WO zb>C}o7q#x8`-J-&zl5r-N{13`bB7Z{Px7}J|82%r?vN8i5FU&*CuymMTvXw? z(HA;FIg*kK{H4J8C4MV&jF1cnIOfhwMMYG67hz0@(zA*CIVo5XiodQ!{Ac|L z1(z&GbW|`{dJjvRjpbFsY?4R~0r&I71~@G)B0`TB)oFKv&FZ+|V2qZjugtYYD*s*5 zRaC;u3aue+={=_)qI}IrCN9XM%8Q~Y1*;TTm=JG#Lnk*OD|+5TkT%s+qDD(MFN^gY zfA}|2O2_O=btpw}g- z5QI3QChoDNNR!k?|9Trvz_=bNj@o@(h3I~`Wm2zk=Cl(&Y2f2}^#n2#p{?rYSNZbb z-4s$i`qSU-7VK;SSY}=B0TUASfhM_fj;8Fpoj+uw(w&UnE_%MyWikP)`fQaD^Vo4NvOOqe0i3;_@5h9nEf!Kb?9Sku zjXMD6g6U+Nj!PP=D%1_jTE+>2p8pZBu+-<;9P1AHEx; z<^B}dbd^d5A7eE8*%l#Qw|8Ru)hbV<&?sK*Iu~3?j&r^vS9zhw|+w)0cF&4ai$L4y;An>E}R zI&FhJN|mT6(5C&9dM4sWCPPQF?elH6ruvoFUxYT=SgM~tX9Wjq3g>xG4AY&%BN`8J;qlA6|)=QDI*rYd@t6o$WabI$QtL zocZUaT|`0WRd-w$8^D;Uq2qeJ>^2fhsOhMZTy>l90kWQIAnPTTFPto#2l^4Yw45w{ zfgax5ws#A6gk?c)7KK64GMXXvq1Be=IQgnjbz1U=-)3@zW4yI+NLyYgjg!}j#|g10U znVUuEX1%B9fWL#?8Ezd~NdNN*ElA-_=fY5_5my{6PYHGr(E9BOCodZfc90jcEZ&9a z&q&C>g3$ae2`!zb<+hhDNA@Esm~}Y?e^RaI@p?u2cuRu>)|4?28bOH@IeR@$6q_0w(3R(m`^WDGwZ@v-LyQ$IY}QN{7h`OL{^ zi`hrlhg$&}`W=IAx0)a;*N8-A!Cq$poi}IZz%NqieB6pc#MU$X#jaeVGG)3*)XOkH zaW0}4@^dps8xQ?7`}4BBDD^jYgveFDgYP=5;|bDWN{S6z0QiRpYX^43FDSA6UQgk7 znVGT^4}2+|Kl8N1$Lhsapb&|*(N0utwdimqo&lOKHk)iW5o3{KbxU9r<) z$Mv3rJHDnC=&Ktj9=Xsb8I0NNU+glFA{eF6>%sZUdTEU(=l!!bSvK3D?kSQtDJ3vZ zd4e5?s6v8Zsyu~$Pnhy$J2J-zSg+mt-!=bs&tC)~(ig!N_vQvI2OKashh2X%Z(lUC z+JBV3wgdF3eVGq!m``wOX`E8=ws!ur8Twf42(f@2FRg8$GkmmA5D+b&!U#tTTd z`MsB|AOCml0^OByJlz*@6H?Cd%{Q!nR!w#d`2Z4}y^Vb9pb%sF`TziU$UIYQx7 zjFCX%S{9uiRV2HVzo`Wq#McJr{zHqotQL~*!dz)RE zU2#BSfNc%k_IRH$%cI{H?YIBb0RSV!u|#OOe%7n}38{Rq37Vx|5mckd@P^K$Dof$| zlwoflsr2{llJI%o!649tKbAb*ok#%-JwMsvmNAYgVV(hg}UW8 zG(da2e*e3cy#Ai2J&AohZ~DO`>$`*A_OcNl@5j+>uaiSIi*B;j@RZ6j7P+Rq$pj~v z=P9*4)e(J`J0Up)mVriW-Ja~-PwfkKt-AT9(twV!NRL;7r8c4j)y!cudQ|+NA9|DS zT6O1F-b#xusf|NdKK80xf7~An`5(?TXJhWKO#+uC_`5fsa;(B@xLwVkeQ<)BXFqIt z8i4WkF6i%DDX!QUrxChB+BK0%vp5uz!Ki%IHQnDpI!|mv_BF4b-N1qsm{e-X!*Ih3!Y?gsZt!vqWt7FGw7tJS`v?;qQKf5&3Ll6LM+l&2P;*!*2wIT^Js$uOcS zCf^tv?(WEEzvBah4XLYi|C0uQ2|NEJ|w z;8OACK`vyuqj?DiiS8zzi>r?EYDbH{qc>aldo21&e8qruA4>aael?7uZ&NCCC%L=0 zapu#^@g8)cGE`mMnfg^J>*=ggHJn@dS<1VD+tt0Y+}5${Jf``GJKa|7h^ca6QJI6hW0IV5Z zXYQ(mOfINynL7+3sKozY*AjX@l-cp-@!9StF_Vu}5@AXCVp#c37oRelQA1Dh(BD&# zGQ(HQT8(tFIUJ4ABptKz=AB0{j@-Aclee(z9)g#{uy{62`^8>(794!<8BDiNsDMK5xEVsR-sDscDVMVY;2=h4vO>7u}J z;R5(+=%*5RH>6*jSzk#KF)OooA$4QI=^`nATnN(OkHvx)a&X2_?OT2sG(bt3Y%H$3 zb|I^owyrlBafJ3cKAJleG_7vm5WCF=(8gnY{#g%4W-cLl3A9?K}^6|5cXO)+0qM zmHy-Qz@WXi+pS%Od^7~Rr*u&)rJ-4-|K`m)ix)-_;59w;!JLL_aThfqx;1LH)8w++ zW&Hf?pGJwlU6e4GUY}5Nb=3^o4n`Pb&OQ8u*emq7tP~z$6rl=RGWvY~yY@7^fQzZ49hNmgwS4t>)&tEv&=~a#XyPLSE zzroXw`F6ZNKj4F|Vyox~cbD-kW}Whq(HDjWYgq#ag1P0gpS-_-tDPL-+*>yGjXFlq zX0z>C9-TQ>+^hcJ?Yv2ykK0_=gbc&F34ra8eAM2FvSv8hINvpxE~v#}iJ(r%S+BK{ za;*CtRfVt6FVb9d-Gs!4~(wLM6qY~&fJw*663?d zH2=eTy4IQ^y;<(eQU+zjW=klg=A2B~%x*`~idOuVEO-lV#>AVd#PcSI%Qc!5dH&4V zV9kmlqTmbzA8GXGtQ7uv^viFlUN8rP=rq-TkXDEtsqpey2ciXK7P$n4*y!CAlWAc2 z>2-SIA#)wDq%R>Rv-3Vb`u9hG-j07EqOfyri=F*>gRm5Coy`2FK?UPp0=n(nw$$_3 z8>em_LBiQF!(rkg7l@*GwJeO&Z5Vw>R5x7vm#2DTb!~&kVR%|^hKrkmZOdNU!;@a` zKvKozsl&4*0pAX#4@5Of!!9cLg3FSE1wcT!Q=_*(wb+NC`E#!5@%*$I#=9}4q^vgm zjrea~-_*{@VtsG#-CxISRN?XjVtK4mfRL_5X>sbeb&B6E(*SKEZAw8%Dn&-PedmLi z2A@*K7(`1u;|%3JJP`C)95agr%3(C#c3I8|YQF(sv!-06Ec83SI9w_9^>zW>anVg? zbL*)@$NOhT(}_402eE2o2i7PYRIj{v1-WH1Sm-2HhPkAJle8f7E;9{wgd)Zpr{c(5*Y|@qW?y zc0yKiugVt{pRVHfZnc>Lhc#Xn9~ABHSGLUtiMY$#lSWk_%YuwyLesr*uJ0mI|| z5lit#)|sb}#geGQ`m?HKSAd-^xjv_hedRGFI(;)J(U@gAzQYBPrn}nY?_=FPP1*R~ z(+(9Qp{msYtw})s%#E#ETy>tCky{_aJeixlP`QFG(j%#ebf}o_kEYBJD z=d!{#;CV*pQy8sj%JG*1l&h}z}9?MY9QSrSC7{) z-O$I_e{%8vsZA+MNl&b1Hu%Jbkw;QAVM(@B$3BEwxlQy>r<1vVT;$nP`x^ha%O-d;n><%cAs@+jnQrY2Q3YLeenm$k25P6eL1HIU6zn_VT?FRLSpIt(3 zaC?5Uatt=*?)#APZ7C}1Y|dYLRLBLT;PR)es3pzLuZ?-r706aAkTjLTUhc#t=rud~ zw@y_4Fdww|;t!yVK$U|@aKU4_xx6gt`{}zD^qGyJqBK#qFTd{CBIeFuq4l~!DzcO- zbYgn*WZv&JI^a?J$;l!Xl&&V^e8UPf53W@cQwv~5!G2`F8$XYVt4wmtFHc^JJX9yT zx%%h$MzjMyd11T0lYQ**6kTTa<{Gx<*FnCJVsb?J%7v%V=TP5PCIjGqmT6718}>Y7 zk9_xk*E|T;;|y!Zbmjo=&J%X1x6+A3U^mTG||^mE&6E%myAj zFri*H7te+@OY1r#-DuU=nJ&wVNjVo7bDk0l$J+h%ge%eq4EuP;t|gA)$fSg`UaTtMP7}=MJ3tCQl}}u)A<;{s$GkuL+0KzTDs) zt9*T@$`ko?MOi|fKW$ulX3`4IVrGlgR4Vfulz4f1b@=MaLT#%O)yR$Bwyl5#ecbhn zIMgPeElL_q7RXqacfJ^KYfChP{Mmi~C69m*O^2W3g{F&-tkl&k3a0JcjWN7^Pk!?E zGb%>m3}16|_W}WErv5tdDn=@|oT{_ttb=rPG3(2ozoz2;ji(0~<-(k1bJ-WiR{

    b*&C#e?R-c!Y+IkGbf!#zix}h$ez$2xDZM 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
  1. 1gDa_Mei!z}iDsxNWvxUXUPBWjvR%B0?&YB26}8}w^22-X3p z)tut4rs+oaA<*9nqLGr&qQ4BAhw%8!59Jh|uQ@+s z=NzBXNAh~5MnnSIl!sS9NZAQv`T1IgZlF`>Zs$+L(F{|Ap1kntG&0B+J9#oh!o`yg zLL)Xnex{KO6P8+M&HCPtfvFwNJCQ0!wU zs!?CL894SSf9F-r*9|u1vE;v6_s(W*`aJ`v#Q0WE?yT8v^ z`b1|$aqqz{UYWi|ihB1ul;_(ti>Ie<$q_)FgqH4yRrmonWy7)Od^D-nBWA+{Oxbi? zxz^hiqgJ)qRMWy%ncq`U!QX8ZBwQ1wll-Yh!$B5ARH0!;GPi#FvmO(Kw`?1PrRSWp zmuR2_+V0{`3y++eVNrZ_Bpu_$FM>N;xsikJ{_a-?jrTP@oE7AVX9%$7pRlnP&EwJP z!{*WQUPK_F*8t@`m|M>j%_KS*X!`);Yd5%kiejzv8W4fanQ%(`Wp1mM3B5m=hN(gw zex!eSnSXQ*HUTsQ4P9dG-z{Cev2}dD6eLEOjt-B@t>fnZN0h_NJyXZ{sn1tX-cB|h zHnn{q691wD|E&o)yU&pPr*Lrh&fma;qI3U&y;DZ z60ktfLbaH9pi@sBbzI5c(S5Y4U8`w?NmY5YIp5-YAOU~(M)bi{Ou3oKy+Acm<)S7` zX;6WI;kjq&2m*G~#d6S)Rz|+8iKfQlTH1PIn6?C%TcsT@7lZ!9@Ose$p4rBq)Z6sJ zdFNLie2PsJ6|r9bZX$2t!4eRz{$0FHnRT7A??-dpH?o?;zQ&o<*$B&gvA-FT5A=8zt!|q3mpxv{y@jT5H&*e&DWd)%L;~{k)L~oF zB5li-*}JD_%guS;8(%xwDUYSfp{thjL-a)NV1MDnLd}9w50*-tw))O|yI)@nsck*! zeuLe!_pc;H{+s%PGpX~{E>B9gGOJLd!^;H<;#kYDgz`2ToZ+klEeY4@;dD*GCsIPM zWQNz_`GQ5W+z|gn6$+}?AyeRebxX*kUg5OE{D-2sp88~0^`(Fivd}=E_NZ{IQENdEM93;*;R;+Ju|j-!BCNYl4Q+ri20i@0~hWg?Oo^)uZaPd*;xfB193DM&MXzcKaW3vQiIx+Q_jy&BX4Cyf=yHgIB1 zi)nkAhHk217?CK9#^&kYZy`_Pm}CJhC)B<`2vh1__2SCd$I8e*)5H}8*-WN}2{(

    U+p|UPy^_6=WSVr}?kN_M8tN`>HdZ_u>u!JY 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 M5gp@4I2{N7*#rT|-v9sr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b7746842450337edd3077787e78714d54613eac1 GIT binary patch literal 1188 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 Ef)m}|HUIzs literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b75a5d9eaa9f28c1903123abfb7e53f381abe74e GIT binary patch literal 1293 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 FV1ko^?Tr8c literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a663512ef383476c5371146562eb372718a0936d GIT binary patch literal 3159 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a67cee06eb706317409be669ca47654565aca264 GIT binary patch literal 936 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49vEkE{-7;x8BZ;^$1RsIDVa7R8XW;P$JMJ zJa$S#S+K~ZZBf}bRisT8`k0BnVa{K6K|H5Pg7+Z5T4O-?B&pPJrQK4BPUfBFuI5fX z@7Ut5nQbLj zwE=b4IntjL%1$|A`EW`>$g3T%GS}6H%;GTXkK#x=X%DLDzKcZ8bqqtJ7N>`^j zmz`g~&_eX_o(;C~2OcI#>+9&;>2O=TZ{|!%`xnW1dGFGUX6^}EvTbX9_x{igS>_V* z^80V!xbfp++GgG8wbyv29MPYC`s>!^%b#a5GWsRXcdZM_{BL1qR(3ycd;Ri;wu$dv zy{cNbcJrGbSF_kcp7XELynNxpht5Tk-7=n&Hb%VJ=GGK@w&C*6=2thC_5_+d=44?~ zz7?5pQct3Yd7{S?#-m2<+qP{p&*qYlk*V?7c;?{y@B5t@m;@RcdKDbzntlELoxQ!i zUEZm3$K7}5cd@Q$jj)m1f2?%&r;imj@&XMEED8*a91buIcR61JL1?$3M*pv0zw~3e z9z+Si6(FfaVTy=exN=40^@|r3OWVJF`*z)Iwyx_#UI7CGgAXq6doxO%=kxzkWMCAL zW8_%DvUcs-e0O(u=GU#)U)TPR=YH|-om}Mk^8G6xDFGc~;M(x&o1wk^`>V~bx)qq} zLcAQ()1Q0qU4PLdDk^H3ukeDfEw9e*viceM@|uC_9=F32{_j7uRYC6tb%!1nWR#VC3!8XaJU#XK{W;n9R~tG&3EE#Uk9ySpymVO!_+$xbtytlqqd{9MhFa(M5dk2(ICDN~NOzPZjM kb3*nrCvxhYaO#FVdQ&MBb@0JrL$(*X{S~Knx0v0)W;cxF|w$-$6+@4;P?$So8C~z!E%zlK?>W&+mZxaolDU< z-fx}b4eV-*ON+5CRdz7C7Z&S+P>P(8180KrA(?pdV#=vQx8|BxoI8A|yrC~&Si@A( zc1}?an!sl9Dk_CSwq~EfV3Z{^mCCxR%KWH7olg}1o~M?-H>QxmzM0_4 z=P*2wW>>m@gYO|Sy5vVhaX@&NB3Qh5BRwcIv`I@{{l)0?^p3mn{T)M+@9YyAZBI7h z_`0>N?d+AfxR*AzwtR74U*B0viSyIK=;P(uupF1*Y&L# zu#da(JR3I!2@DLJg+xK;SK2dwc_uS7G7<*Jd_vhu*%_lGhlMd%E~yGKl9LcV19#y@lT(2 zgXQLbr95!!>B*Zy&dL`u2_GgVlAS!cb#--TVS;GZk&ms#JZEkK79*vxQ zO;z4P1UsU5Rw4$2Q6wcOYKhF>;5IhuE+kTQ=6S8_>hIPZ-xMHALi9|qj@o+zeq09! zhj=-gJ*gz0Zh$r*t(@6j@+n zZvHk}Qan0}do|8My-hdNJp62#n(%z(3@eEu;ffs>O{gsBp@ySW?YTr536aUzdYxoC~pui4x(wx>6kX=D;Zf-meuQ%9R z)V~NfKI-~mbo6Ttqcw*P>=BKv4u#w$lgVMX;V&gBp6(t+qu7&*F$e9Sv+`a;dmoG7 z_RLyq!dQl@1H7%Pizqc6o7z0oUK5i+RP~~I32YoE!1Y^(S&H6a!X4cix;v`LMlHLg l-Mc}esmip9dtGU8T_^QbC-5%0ym|jn0WWuqTeC}e=6|d!rZfNm literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..23f344bbfab9618ca1eb6d1390c104547211f9ab GIT binary patch literal 1838 zcmV+}2hsS6P)Px#32;bRa{vGi!vFvd!vV){sAK>D2E$22K~#9!?VWo_ zWK|r;$F*{)WDBF(h~3zww%x7WUQ4(ewUv(Z&>SamOeGb~K&8?me3We=>pBR&(0m|< zsG#K^4U`ZWNSTFFlOQY~x z3{?!G_?zr@RFtv!OG`^Bb8~a9si~=~g@uJwivKx@%IXwl@L7#9DyoOqJJmmu*snQwJ>A;)!r`tK^gIVS^y9$ zDJkgzAUuYuE42R3&dzeJ;%``1R@P@gOn4BL2LR|5f5Xz!(!K^f;V`Pt833{T{QM69 zPdFgD_(_N0EksoRI~w}aI?q&9`G0BoOH1UK&-d7_hkUWb)o_=`-_p2lk+hT z0K_~VPZ0niN<;v${zBB$)YS3WB`zw4sQU&a6Z8#Kjm0mU0sI|f?SMqI2=D30O1kH zkogE4837PTe;vd`Ede1&mXwtAQxJ26TM&X|85tR$2MdA}4|X90$%>1M2YCW;I-TEQ z%}4=4U0vN-o)88G242KvE|($LmLXb3uY2+(gbvIWcBu zXP@B(z~OLwkMZCNgky4IEH5u7^McUY+WNZCl~X?mcPb=oM&}3jiU{F0h5FH|!SP_X za1f*~eLVz$jOAGau-om67!S63LKFm{s;a7)HH6B_%C`~1R!@k8Ak56nWEi-_CDtVB zrL=DhlNcj+ zjDqM8B9!7ndV2a7oRhS@CebfaK87HW4d4tQ_=KO-SMY|Ll)OQ2_MDlS`6&ivon4aN z>CVBy!I!XTr(76{GF&1Zxg83oz|$jU4h%LTO%yk4(E zm~sViZC>JUSW!{YyJ{goXBr7plAf5D$WBg9{$aB)wY9Z1S|ChLPCm=9Tw&iS;s-26 zukS$y3vY#mh41l>3(%G*$#dg&Z0n~LC^0edycP%v2?-Zi%qfR;q9%QTQ!GXc9XK3$Xv)TRtKI@?!)B0U5*H;X)*chc%7^S79?=U)4>d1}&ptX!36PWEZqbxPE zZ3P7d?*pH8G@QhbGNP8_cTd?B+lz~fPt)F~yu7>}fN(5q3v1)!<2gJ5tV2jpnDV5$ zS6f@#Yhew6$MH9`2~(iczqEKEuo;BdJz+V~qE&p7tf|RZ$>u!;2tJ)FutPs4u-w*4 zGUfoEcS4~N>{giW{Fmn5_4V~{h2<)2GD`7(;OXh zG&D543B?4GolABfd6AK1_e;Ou7_xH$DlMA#^GKfXD-DE>j*bcq&;NKxdxApC-(^&z zpe<)BBx~Fo64RIvj8~pO^&{HRQG0uPrA7z`gFQsGD?H#SgFI6ff^;n~NY)^)-V-Wi zi|F+NUR0>XC^9QY1EHy@>5V{3?cHwoIXn|pCj^_#_B#!Po}QjpHpLMyML9*xP32mK zsIyn;6 zf4$}3jp}Ml&QelRzSG(AkD{{l0Jg0&B0Fq!OkLv3OI5~zYXS*L7W1kd?MQYPD#|b) z$ji(7khaf9@%4GZwa}VVx7&RddOs!xTsB^ybxQRJs>cq3MWy&S&gTFjmQsA|^Nk)E cX??ZI|7*Dd*pJ!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1quc4ZA&E978H@y`AgtArdHaeEFp}@-1#IWh*{} z1Xg?$`r8;&e%n4TReM>`t|XU9>=&IKQ>r%lxhioe-Q`jIG9@KZT##AtkX|L%eY5BN^Ru(Rr?uVppX8(WvBKv5t4VXhJQn*2 zx8|&1QlBBeX=jbWeWp!QKT1nWN6$&ww^m_-@ZGgnI!>NE`8sU+rJs|}ZM}Nx*>ml= zHJ+X)<@=9sPAqLb{7_PqWA_@1HzHbdO)_uHl0D;p;{EskL6VdBqE>e zq6f@cm(P@%&zLXpGRHn7@0_L5S^K3)b$5K9sXzJrQ!G^Bjd@Am{w-TdPWB!ZxU1?T6RcGan z!w0@R{rQ&&^Z{P0uDod?1xM*WN>+!M9OGl0z;cbh2oyO#$ z{AS68=QwyD+q&F+|`-i+)(K2t(8R?ZSk4=RRym^yzEiFblcc$Q6Al5E)?U2#3{rmTOF8OJq&Q!Jk*ip&a zD$PTGrcIj`=l5Q};kTBvpzji&;_0r7FPcxCI`#3F)q6!u;=;qf?^?e6xt#CONf-a@ zFPlG2YK6>>d5;284p`rG+Hto1fvJRpU`$xN{1d4wpUWfGuB~VM6h3uUQEOs0D3y7- L`njxgN@xNAi`h+a literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a15cf99119df13c3f50968f637e6df3170134342 GIT binary patch literal 1403 zcmV->1%&#EP)Px#32;bRa{vGi!vFvd!vV){sAK>D1rSL@K~#9!?VVdl zltC27*X&}Z(M?T5iry-^5SG1^L3?+#%vDpe+{M5mkZ4gN5)75dkbDu$$`|v=hm>%; z;6qO)A{Lq9qalT135I5vZZr6xjpI7sef;JO{NMJQ@67ql?#!7vGi$LhmbtmP1f(Po zvl1;z3#udz$pccXWXaACg+e>Paq0>AbC1;C4~|n=QhI+hILtr*=)=3nhsVdqv-jA(9dE;Ez!@d~FA0Ni9nd3kw#EJg$Zfv08yP*+!1#nNuK z+dZZxfE2Q#^78V>EQaLf=JqR|3ma6BohM1#OG-+fv$Wgi^Sz?9`;1&elF7>2+S*DP zzlw9J^#uI^EU`N?Gjo`w-8D5e_bJaGkYxy(ipFp;7;ylAwavY~y_YD@Cm3RkhyYZJ z0RR9eZB}9oZC6N9Z_uHjpWQXw18_Q>zvQloAjNXt`!^~{NYDa+jjYh?^$sWq#`bd# zAfB{27z~!MwAbVDeA5EJak9eF($Z%v2KoK|AjKdj=Kzk8Hdj?uJz!~Xetv#8WfkKvo|Lv=RHe%F(?XvBT4~8iM}eTZ~-z=lU@M;bewhr z00000NZIZ7DHfxqr>8Slv-5E<$p~OpO8|DV;`H?N?~nnpAQYTVPyo2q0+2>lURGB2 z1RTF0G*$gTnSxr?0)x)cyq2UhY8<3*b0#yX$iprX7Y~x~y7LsuR000000Kj|z zGBPs0fb;bOuq0Qey1Kd+oNo;k78btM13&`#g2BPTd;nk#wYRrlrvNyt_GWb?`I3o= ziE{wJ8X6fH$)QBSQECH#U`#^x2hOhGDqjW$U;qFB0DuMnSkDWXRSt(^N>2bO5DWaT z;^N{L6aWt0vc@_)JFkiips}&>HU+>wtrAzG73`UsQawFAmnl=wtz4#Vi!uNs0P6vO z*=9fhfMWo5yZtu+&<}u$rop5 zXMchiK&R_?(2G*Zmj?m?q0S57;8XV)Al!KYG$j)%N2s>8wp#Tw!4iIg)`~t5FLNFs z&d?L(Fat99NIw7o0Ad5M*=*B-0GQkY$V02qjuU51VU0HVx*00000004kf0A8>6BW%Rz2Vlv*Kz)7v zU6bbm1q~0v76I5!8q?q3f6>eU@GZK!=K{gLK=?cGG)+gBGY+`j?jL4!K9@HEE4}J* zwfBA=0L0Ra!p54(`S=R^Wjb5D#pn|5-c6i8iBA&ZEP~Z0pU?MtU|^siT>C7%6f^#H z;Yz~yXK(`m8M96>0GlnmmF50_#e_Y7y@lt3j67sg=clUetAEZ&&<#%~#s~la002ov JPDHLkV1oGCVwV5_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fb871be483a439271a6a9ec1123dcd82729f1ce8 GIT binary patch literal 3989 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..885f1128a60dd5382036528c43f8fde8a1a432d9 GIT binary patch literal 1765 zcmZ`(dpy$%8~<%FBOCTgQdpN!Te&nlZimdBllzeIx*Z9J^Zk6E=fCH9zE6R>s{>3yLjeE)n3JQe zr<8-g0Sb}kKj|qZQj)oZcfkWdd&&Oo5Lu}PUG{Xa23ojB-b;mioTJ}m0D!Z;0W=)j z5C#Acl9Mf-kSbWIhMhlrQGIyoNN$W-(kRdHoM>idX8S_@pCZ*2$mgQJrWBxR*TJAB zs2cUEDk2~1fhbc4E0hMGsJLEyQXWBg3Pqgouy$0`u#;DzBK+J{eKT%<5FF{-Tp^Oq z#H^;>%tT)ANZAukGBa0iZT8h5kC?>G_Ghz(hXewFPZ2xe;6&}a&3n(>rXY#GE}D2i z&6X-9<^_?Zw(ZAGU0YO3d|@h%JyD35$hc3iO}Wd0Lkv$AJH7>pC1%b*EdCMYmrOa| zI`Cu1~I&&#m$8@S|F~9LxqPftz`eaYuO@@ff(U%-qyd6Mlx=lwy#~YF&Xgc zv~fv1;m&zNJ%GhvFv4SeN$bI}NBCzWBN`WoMCafPjgLxn`UrdMctBF~^aP*p?Ghiq zCU=-x@ez$eT?`Em*P(!p=0tCGTIE+LwS|T!CvV)V3i&=rUS3{UQd}H{MShRpIQmBr zM`)ist0JIrxLivY#_D~}cS7_-VjpjM+J7)BjU5fx0kyaDjyu(+{VSf3$Co;#A$}>x0jZdAP^apM^~$Eb>GaxlmU20 zM@Jb(wQ%%tl%<=m^AA4=^RoK$8&kFz61gt43O&fnORPgE*QUo7HJX~5lBM$@TP8VG zMUNdNj>+J0cyCFmHhd)FFxVT+M?{Fkp-av&F)`J-^d8})NH{j37HyTD zzBT&0v)Vp>#;sj!#rai3WJ7_2oJG>Bsqw;!q@<*WSJbeteF6jDu;=IJQz7|tcZUcq zHZFF|N7AAX=<8AN=P_c4SK7% z7RNL<6sxXKvPt&#L#R`S$II<&CEZV+oVz`dD?@H(2H-Nyd9{5=-ixS*UJ<>>`dttw zxQVWCrkty_nxbOilzwMmU?9Lc9S*yc9Ju|O$8%?8)pUjDw$%>3qS4?to$J18QXeNT z*rlbVVdtV43Pb}xk#KP70>DV<-qtsICAr^7p-{A?u1I^U-0Xp_RKsG>=r^TNV~M^} z>l8_wVMAm}oMjf2ICdJ1?m@28-?t>1y*B1WJ*OKXz@pXmJ>3kJm_nmisdNx&RO&@f zxZQA0mnmU+7c{JIR zAagh`3vGeGeKlFr%nsMQNofBZz}-Lgh`BF0YdPBIIN$;5@9j$et+GlH*(Hm8dgl=T zF-#U@0-H5BzdffXj!jyq&yWGfX=c&?s{#c;NI)hFPzJzOz(2*DinMYRkjb+CSNZ=6 z<&f@?yblYAxno+(c77Xyr$oB5S9e0SG^iq7qc`=KGTdBPC>VP0w9_8sib4w-ixp$H z*cHJ`t@ON_U_lg7>JrU1+ww9_9_nLAd&0{&Vy z@gaxe5;1yX;I!9-_NV^l;~MYZ=ADttDRb5L=mtT}{gf8*Q$BXR{7Fnh-UBTgO#JiS zjRwrm_GI-!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49wM@E{-7;x8B}8-z}6V!Tw=m&kBu<-y0QJ zysO__vA=Lq{_&e{%^EpJeXJ@3Ua34(v|1wJ#{PYSg5wW<74HXYo!OZu3*>Vbi|a== zrg&`gdoQh>vw7FKy!G$*d_MQR^|{5l&-><=Ka)*wOBXr1EKTCr$%`3Jgf+xOZc0m* z=)Zii>V@OyDTNyuP`t<^Jrm&pxXSOtO%P zn?K?4OU=I@yG%BV^I0GMQ@3By>&32pWhd%%tiEkg;yh4s@!JQRt1_vDeN#CT)cq{7 z9H$C2$Z@*o$o_F#{Bc3pYTGSBN{k^|Q;&xgt-JoZQNC3uhTja+nviFSyM<-);T%-KOOXpB9Us zwSHM*RnG9h+-vEjU^xc6&wjVwev4)J(VJry%>oQ{5ODBlNHDlj{)k!9_wp`?5D8?1 z`Qs01GWaw+$X~iLabv`pzSDPAggU>M@x|$g{kG8C6{0tNev8w>eOnl2`aJt;7rK3$ ztHu_WnO{xJFE6YFWIrgIq#HeE`L zQ@s$iHtdX--IvI1A`B@HWjjL7lm_)~_Y~x7-@p5nh|B63pBZl4xl@x;Xq4m4eBo_b z{`prMR;{{kAsQ>YE0=dhrASV0?%I!gxK@R&UMbmZKj~Ay#NA_mtbf-0TPjj~UL_zgFwy2Y%)X4Xq9gA60j zVGC{sZw9;6xLmQO+l(iE=xEwV-Mp!}Y4hn~hKOeZYZ%uR{hqYyWyXh1Y!6H-BbZ}? z-eiF7SCC-%yD!B=>Timw3scAO$MS2Q_}srIzCkD`FbECs!(_ezws%1nPx#32;bRa{vGi!vFvd!vV){sAK>D1%pXMK~#9!?VWu{ zU1c1{-P(%v9uf2+EedCQYiqXIT3c;-)$27)^x_MYicU0dh9nh6rc)yWzP_k6$bMUZ>Wea`Rmoaa90 zdHJ1?5D0=G2!bF8f*=Tjpv|w<)zw>>AM<*>hnY_@M+cElF-I~#!MtO$1%3TXMTJ^kUVgd1zu(i? z*jQd)Uw`IicSA!%MR#|1@#5lQq6UPpfHXbI5AB-5bar;Wosf|5OH@?UYOpyjF7A(- znwk#<0Ai>EBD?nA&ljYpr{~S+=;+JA7<`piYHMpN`D=9{g*L zkB|RtVPWAF4#FYX01l}OFf}!m=5RQc?Erw>+uK{j0XQxjz!7x;Mn*tq=H})y z4nQn*$90%`jk~A`r(UFK0EUN$^Xvqmsj2A$f4i^@z>CzA1b_emP=PpT_*nt~%mbi6 zh%nS7*&P6T9{6Z-ax&eh=jP^;*8vd*06NWjd{>#T7^~V985afz2VWNr^0B+% zb^wrI_Q3jYdwcu40tmYSK;qEG^z?Kp-!lRLiLR)q_>{j306>S+($c=m&CUH%k8^Tz zzEXy1R`~Pe=jZnUfTV6{adGkI{CV>7^3DT*BmmS61%LoQhyefq1TBD&Jh40 z55P%5jP?Nl000000000000000002Nx1EA%JPpZxScS8LcT3ad@4Lt_{l7=D%1_lcG z^OTg7v;%-705mtipQo*@t(3o$0KftOw5pmN_a8qcIX^$2#Cvy^{ z1hs!J7G_!O#Kgqu(b3UdLGT@hcG&=c;gxht9*^gXnVA{4Aowm8{0Ff(*S`Q?al73= zsGXXcI+2~7{dHMcStCuzo3bVp05rEP&H6A$?4qq+K5f(h0KWlHk0%s6WK42$a`I0G zYCYxBxWm*vVm1e`QdL#;$p(RUFz;v0&Apav(z6?Yf`Wpxm6esX)z#G>(;%B5;FP!| zl=%Uw?S5^@0|1|fBEqF^Qw4yvdxkAfWdi`303vmd=Kz4YGh(#o*Yvi29RSa$3otP; z@hU5r*De4kD+~wV1=*|x|ryKJzd+!!2yBeDTJ!nc3r<>mEu06-Hgg0_E` z?1W9*DM1CFvc}`_^aOF%6mMo`=7?Y-g`RHjvMSJbvXeigJXG*LCh7_F_4U0`R8-WR zm6bJ21-{wMuHzf3^&K4@?@%QZT=OZ7_|T8?J-#+EJNTXs>~kK7=h@%8jW#bQ5Ij>M zMCndLpd?{M;LP`az0J>21k0McKrevf>H}wIXH(dZ(YGlnDL=ycoSvS3VSIf2H9oDG zUH}JpdP74)`Lxaj6YPFvLV3~uQ+ zLa>FwzueN&^1ep!pEfj5M;~Sf?a^9h%^>`Zps!u`qZNE5AKX@7o`SdVgKp|H#ei@l z_>|yVqvjv>E4#V^Vc$9sF4=uSR$X1)8B2n%2Lh#akBNy{uxaqGiV}HWAD%XKT2g`V zl<3R4y1L$?Y=CwPzD6qhYtxdJ%n7dtf$jtvinfadxudNOJ_q3dh8Bc=mc?fq-W?OT zcge_mtCI2x6Wj?mg1;?9wv^^*r!pgC$H3F_!>~>9J~0S_AP9mW2!bF8f*{}YKb{#R UyCZWW6#xJL07*qoM6N<$g0*?N_5c6? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ec54e12a21c131a7d455fc6735e0b48356b0d1be GIT binary patch literal 1976 zcmV;p2S@mcP)Px#32;bRa{vGi!vFvd!vV){sAK>D2Te&tK~#9!?Oh8@ z990yhAL~Cx>L;nS(U>$Q8f~nfCMNX@?7s-REG#q#Xjv8#@B=Lgh!)!NiM657)Gwha zrXXsIO)F7Cup%a!U=gXL4F*F|6h%=hN?Cj-F3mEX-FdUjEDUpRaISKo@idAR&sCWBEdK`Z89y+ZZ0_+I{Nzhl9H2?JENkaybRMyBPAu}Q`itG``U%({A*-5{-U-OH^g)-k+AWw z|8)}+6E?fu{*4-r_lLvb=p7#)kM*~WvPhLToX)?N70RGM`+8Rp8&?S1{_^tjO0}Io z1K1Ll7iC%q&c7^ByBrFbu3G{$Kas+7Q&Ush!bLz@TH41V<&B(=fzR~}cQD+`utC@? z0F#rG*4oC;Y;o5GW{K?ECx=O!g3eGx7K zU`wQ|8v~S83isn_M~8&@Zv~IzmtZvL8*K)y!DyFRZQ-h!X0!R{BS((pg!;53CMJFv zE&^anrEaZ}`Si;Me~oTm8GFwxP`ks%-<8c)E3{s&uI zTQk*)x9A<)wrzV&_!LA4<2w8H?JFi{sROs$eOQu!nwpvta+W$kFOUcz0*C-2fCx|) zY|QeP)9L&wFE8(HHt4B1aNxl6M~@!$w6wHj<2#PwH$-gbb9}Sd2=KD;N`Gl->F)mi z{zTq5%$YN161Q*P{tB)QcXxZy5U^>}rop{?_r8evh)@G!xE4B~iwNMy`RwfMcSc7? z(4BcwKA2dsV!C?6F;K75>sU4@UudmN%w*DXj zW(TqU*}s2(QMfYVU<+YnA|OZrOKmWluM+{j>A^rVN@@Z&)tCm=6ai=k5E_^3xTdD2 zJUlfXkLO(gwHe3c5_#;{u`D!yx+NeZBjZCkj^DX+XQkC@JsTt|; zDcupUb?eqQc%0*QyWbDhMpjnVdptG@3JTuT9RZDvjk!F{!(3jH?Apm73o|YNFL0%r zAx#i~aKO;ekb|T4A68?IR*2!@VY^Zx3QZ7Tv)P8EqMZ0WSdT}JEuLNx&eIJ6>;-&E z${|RXM4pWjVGf=i5jq9BApo;hQVuzB;zT+-cS;F+ot>R&Qua_L-4K9vT2c<_?(R-e zC}1`fU}4@YurhtE8v>Bb%G3Wh8jZir)fUq+#xovZWg5^80Vb2_cb*xq&6_uWGFMyB z!9%veU>MiaIKYcGUdl1m)zvS})fVQ2rR=n~w?C!SbfsnnVr6AzFY^T8un=%A3o&>` z!pOSN-AI@<4IMnrLArM+?*i7$jiF}q*ifRW(;NXvv_k$4kAoT-8lE+q&7-`!aW1am z(apvi2}+DNG&vu@8;}Fgm-p=>5o~NQ#m@PRr{AweAWm}xpr#@YBWD(?v9a+P;1n?cl@S7Z6h(}?4v##fakuWu1`vv)uwe&qHk5~JUl$PQLWHO^iqPFv~sfd~@L^Yio3ddmOxtcX!?d7?e&yGf~MvZp@bTZu| zlpW2Pu!U|VZ)%BDN{h$iX;v#2bWyL6VSV&puw_nfZ?8+P<8ckHg$`OFqresb7~vKb z71d&07;3fuoHD-S7}kpw7Z=yKT&^xPx|p;|(l4t5BUqcw_C0{_3uWUGTBb?_5CKF0 z5ujgWW@fgC5wKA>!9mVa2f4Yq4Ppe`=YL>iWF+2XGW|*pQ$E?CuCA^?xR*8vxK+ps z`pe`nWr4AZNY3j6Gn-`_#WrSDaz0egH6IiE0W!XCp4l+_PO%|7qL0{391GnD@=;P! zQXOcim2dObr89ent`OUto1hwu7wyQ-4qVCbC^;uA&R-SiuR|{NZC7t5N2&G~S&=;d z;j$9@-uwQrfykH}Vtifw)$}KEBqSsxBqSsxBqSsxBqSvBEdK%j+k|KG;WoVh0000< KMNUMnLSTZ}C8~D- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..36e0a92deb342424d23a58fe325c74c07b11deb4 GIT binary patch literal 2411 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 A7XSbN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..df244fda024b8220e1b9e4dc496c24dedb952efa GIT binary patch literal 967 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eb1ea3574940e0d0fb4332518e3393016880bcfe GIT binary patch literal 1603 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..88689e47fcd3e61645900d6b2f763264df148c45 GIT binary patch literal 2126 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 N002ovPDHLkV1g;=myiGe literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..37d8fad8850f8e449ca94b0848c5d46d3ea7d99a GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-3`{FMT^vIyZoR#0*e&HKa-h(3f{PQ!&K8mI zmSzW!T_WN;PMKuKl-P1abQH)x$hox4E4_5<()$N)ou6<_Yihz&Jy(HslSJ~;{8=}@ zd3F14VS4%d{U4;xOCJATTz3DAXt0**jT>^}PFbcxm8OOlQpDfPC@_kIW)%kb@w zp7!(=56~w-(4)Tl75`U(x^ymu6dV3zF=76uU%?+eE^HGrns(f3)tvM|?;|3N-;TOJ z{Qg_v&3eHL-?nbZ)z14g|M<#_#!LkTN7wv|>%aBf@AhYj?CD-tqWdNnGpN52TNGC> zxOqSK)DuN#ww=}3|8F`gV?p1B+Mvsp(+n6+->)#6U8=hJ+QEc^#nKMnyDVSSUi!Br zclzn4OH16k*lxW3TKB?l&B`Lv7qy;gaX0$azNsleoQohOSzmnroqUqPeep%}yT9#r zeeVfkx*er0s1yG#}1VRO%%mCKZ6E5`U8Qg;0K(kFk#PH4?(Vz)N;R71 z{YzAQdA?hPVe-i*Q9_pty?A{-5c9Juv+M z0UzUyf8xg6fiJ^TFXPK)-mo`e7KnB!@b{p Z{~2!INpjQb4|osK^j!HCg}w literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ff5f8a2b18022fa2455b1c539a72a7e3599687e3 GIT binary patch literal 2037 zcmbW2`9IT-1IOQ+jg977QG^v*nj=lt{~OLIiA=1!Sf z7M8^3C~}{DB-gM|R=z&JeSZGF9*^hi`FQ;WuT&drON6MLC;$KmJkG*y&!m5V3Gekx zLD<#N7UT#&>FDeG^#Ay%W#sXB*WTHl4OZ-5e2nLgVTT-)G) zqU<7g(APa0^(iUpT^*$};$sYpr}64)W&KmNy~uOwOXF1HRQ^(|KTE z;P%480@YweBqb|rw~4`E-16`^YRa+)4YhQ*kl#9ukkpEEdI$1ybD2lTRCmO*iJRL5 zp3{uE@@>|VlkQa$!vEGcAHD@?Z*LbkySfSnc|6{LH7@0jw-f(Uc7ugx{UHT~7m9}A zwc5J6n~9x(xD$O)>+Fydt=`=A6hvC+?ZVQZzP`Tvt(Ec7&!eLhWpl9P;_8`9hy61M zaq)^#|E4YCu>mEH9A}^Td6vzQW`|nQH-oqz!wueCe0gMc$r`o0yIYZm1WS`9>LW{{ z{?JQ%b2DgKSSU zg=dd&w+|dRP?I=wLT*QiKp;#^5&u%OlS^vtc8L5_Y5#N`8*2&I(a|xM%9bqai0=6O zcvUMjDD!yRt(R}P78b;m+QWYWLVa&n|>pX{IOYX%1t zKlBzXEiGj=`k-bZyT-R?EJ{#;4fiT^1-@Btlc%&N>Ub(Sb-R`tp;kEDwm5hn2rh4A z1`e2e1Rv~3mqmWq{zCHVmQ zyztm(Wo2bRv=p)QZ+pG6zO%#q{dPyYluQlWE^;SPU2ZEQFBW$qbeX5G1%2>)5eq+c z1*YYG@cy(34Mr@tj?>lEb$~^`L#E-2jpC52W-&1_!-RGHAq*<`rjJj!8&AbQ#DMaY zEg?guJ;^7Rl@!fqqY%m{_m-eH@);7-$klcZ$C@(i{|AA1UT}Y*tE~k^zREflmTP@lu zd`u59Z0zxhiaQd5VM5Y7blP3I?(-&d!o{ZPt1FXlcdx0ij7)?bYcmi3jJuU0?W+z7so$&n?aVQJIMo;BUm99lB$~4YIkzMtFT2JKJI5};L=N7+;_B63^xGpXC zA2|FZ#axJ{$DFadU~u@hp6-|BO&Qfo;BM7o(L&M}5X0~5XW`Rw`MG>Rzkje=e;?)?U6GYrVK!Ly&#yzFZLY`Y}AdO02(*`Cml|C@69K zOoe_)#h^-So{h8fNc&u7b?5Ws?}Y&HS5HHff}OoR7Z%C1JvG~)f2|EXnOf_ z^s8tE-x>f2suBtY{Pnu)?;juV=M7A3=hAWRemBp=BmhwP?o}S2ol)+G=iLSy21b7n zekF+(O(F~xh7wz4&@O>(^D*-(8Z)Bt<8yo?vA)x7A}t?>`iGDQWA4WTzq;;`3boQJ zv;;6!>f}=f;Ao{Y^#WL8Lm0lJ-mt00&)lh=85-o<0#*SBNXJ7^p#NL(Y>0X;(_O(0 z{D4Z`P0%yvRlmFDt{j29rBpUUp*s&y*M9Cye82cxga?Q5j{&!|a n`7&TH1_(RJwlw`$9%6REODgbgc`LT!-cG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..102638704ac3a302655240bc8b51071492960438 GIT binary patch literal 2502 zcmV;%2|4zOP)Px#32;bRa{vGi!vFvd!vV){sAK>D30p}-K~#9!?Oh8{ zRAm&#@R3=Tr8y>LS~{7NrDd9BfSeM@I-tA)p|~ z%#3l+&@3{F95KtWEGLV!ED$=MU6|!^@BRN}ciFqU|Cu=h!!UPuzw*OR% zm@r|&gb5QSOqeiX!h{JECQQqknwoBJY-}7x{sQ>~@)6{H1TvNf{#F9|F>+7xDGEM@ z{->8f%KX50A%BDbc2@!3(7ot?pTsN?$e9j&X9DygayJg(<&If0oV>e0(slpb7=gg78A{LVDv;#>p1|ryKVQ@W_44J*ev1|@%J%T^_|4VT_1}ny zh?2_6%Gr!SOeTLAvq~VXJmPy3K+kG{cw;N?!U;!1LI@^;J;#xuv0 z--qBkaxOm-S&JG-_4V~rb8>Q${r&yFB5)g7;2XM^m)FnBmoHyeS6Ao52*fz@dmSba z9J%~WFD@>Q4G9T3Mqu7B26(won>Ov-x^?T)5KKlOz#;CkXW+Z?@C&a?l&x$* zF5iK`w{mcZdGqGIfBg9IFb)neSoa*l)LhZzdqI5 z+xx6ufLGuUzb7Up?!fHi;1K<-p1N8(m$#PdoGBVQAxxBT!5gcOQzI|LAf-t+S z!*coa=g$YupFcm3a`~%v2z(nd7aAIR4QmmTGTaiQjLmc7* zvvUZZT>kp?>(eNgU#+KH-pU*zzqYnE$RrLS)#b;qa``oD)};CP_?&Ze;1xK;AK(xd zFJAO#%!mnXI0XISeyz;L7IS%Pa)@QimaXUD5W{Z@=6RDu*a5D~px~0RebM z{>SX>?ALvLeQN}8=5cp-_qwE{r0rL(T=A8w_z-|0YGvcM$fi!6`lA4`{r!fBh=}4- zr%ugM*#n-tS>MrOx`^76B}+DWdV2mUK;>U@LPA0+l$IQshP8J~S((Lpu{SJSxNs-( zT>-GV`}z6RY}>Xig;BTzJMO1ca2rVOsuhT;s;Zf>v9a$G1N>V6-YWn9B`qy&4VG@L zQO|7lON!(nQj}B!ff~r1IdeY5I_Jp1qX3zZkg$t`0i$Es)7YlVFjnoqq@*Nf=FFMp zw%T+tVS}xw0a(T%3dSj(zU}Usp{`B-gjU-TzGu&#g@J*ApF7B?uPZ7liemupYE}`j zRI(Vw>i>fEVI#8V0H6xYp(W~Kk+vi~{2ubLEa{0oa|o3HU|^0kODBvo5Piv?X9WTr z0vUp>*81b(;`TyU$`OFUR*@gl3%f`<8BO_NVq#*Bt#Ake{;!yrm;&^;@&1E?f=;jk zfM$!e1-MKOar*S>8G7arXfsAdMHS22jJgj%J2^xdKCoVZpF4MM>CvM{Us8I%HWL7Y z{h=EVhd`|)G&J;6YjFtV^5Nm(2U!XSn+t$UGs-;Eo0pgO3Vq0v9oTh)JpJ&20|%mb z-k;3|K+?r<9jrFs5Z_ub5Dl|t%_@gv(wIZvHW>g(TQuI-6Yl7tu2``mlQ_f=<}44- zm@(rRhpNr40^lq^54L;v?nGV?z#*0{UAmDt#3d7tB%Qz#$Mc#q0cdq{ao4V0Nj#$!90EDJj6*bH z^WMC9^Aar`PP5~J58N-Ir2KHi0JH=G?@#1WAFk8qbY2!_A4#fWb z`{Pm6GX?l&r_}f}g#c8_0`QZ<02raG+g7AzO{+tFnVFd@%vsyPp>J~^gM~0z4z5(O zZ6!s~SPsYO=C&1i%My}zJ zWMr&VSO(AFbg0$|7(E1_kCJ}K9BZ|?Rm`}WKn={Anwk)$5(sYN0{d1ujx<5HC25F! z^#VRr-#j;IMMXswYCPj|R#sMK8|}YN_JRINA1Em)DaXn)p#gnq2nBe!1*)>RJ3{Sw z$ne^ne$i25W|UehQj#-voHVdv)NCNOS68Ld=3rOd0=rUGElq*v{ZL1&54Xlc0$ zG3u{5YD`Z_PHc0IInDshzlbUR~>T{@9-X6SlWGQCb%0D0DOmmlb%f~RrHgT z)?PfFFkFd)lurZrGln%H4WB4ooZ)Q5?Crsl=gTDOJ)LaDF#V-NAfBubhbwYYQ&ZOh zY=fFmEtV`6@Y2oc1C0S*ArLqxF-&@vS{cGNzt2Y6BZg>vxK=_gv@ch!T9v^AJnm&M z1$dREw1;%B5}rLsx{cl0$<|HM6uHQ+QE1Obh^yAbmo}I-EAGaI#owfne^5kW()C>{83lk!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49xYOE{-7;x8C0M_n2HLbNplE1kTd+-U_8J z1fD9sJ-;%i`dO9PaWg@0GlMr5l7yGJHd?zlaVp9k>b`Mnp?!k-($jjPWn6D2t=TVd zMN#a~f~b(yYwrtNpD{gpzyG-9_V3K{aw6Yq>d$}Q`uyYb{NgB`u4udY_a~ixI?MHz z%PrR}Rb3YKt8d7Q{@$Ck|8CGqUy(a1T<^p-c3Yg>|6-B8?y<>5YiI9|6v^|Sl_;gD1&a7EJ>>78<{%P;nvE#+uS+jPT7#S5Uo@ZodSC^WY`0$I7Ks&2T z^USmPI_2l*&zR9+HTRr<*lN@G{);AWt5t+L(>F(k&(uzApUH6c>8$+CH#dE~_2&^w z^Fj8f>zIrgr``E|`Q?`7^XC6d{Zw65Wfj9zaLK3P+oR^=k3Vvo)Mh#@yzuwZ>H|Iu zYkwSAym;~Tj9-_&eEq7b#a0lTV8}^(=qAtA zlIp!TWvytZOWt*z0~an_(4A`fZQZ(c;#>^&lTSX;ycuO|Z2X*&fuUg*i-d&4j${*8 zGrRfvE14#EsGK`>t?Ou#_)JzqZYE%K!aze5(~o4GNhjTG^p*$tFP-*k_E|F)2Mv*3 z=JxjQr}zHw{jt>PbN$(K=jKgbYiem(IdiMRwI-0}&y0WS{!jMWr(|Yhb4EMK#~ElX z94y$!SQ7jH&DW~LEbNq3ocJ%7an?Kun3+lLn6<(2Pxc#2d-v}7Ui&MPd)K|zoO-^{*v`j)TUdSl zf9GjR5nW)lD=Zl%VXHv5`A3ebv>5!7J&{a=V+UPeZhxYOh&>999Se4jf}V@%;0(N#Fh14nO>G*DEzI z@7)=$vt?6$*Qre|k z)V{Y1W-`n^!Wg~!CCkwneVw(7ZKBvc46gR8gIwn6>gTe~DWM4fpr)u0 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6642a3af2a8342896188779f3b75939d26565cc0 GIT binary patch literal 1677 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1cc355097788c5fe5252fe1958f04d492b68c279 GIT binary patch literal 3437 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..46b7e1e1cd9a0e7a5a4eb7b18fd6b68ccaf59ad2 GIT binary patch literal 1680 zcmb7?YgEz)7{>pYre$v45(Uc4dF^PKnP91FX~Gs>7)F6b<}EKI>QXXwG%v$~Fg3F@ zZ`jmK$y*H5jCrZN;2EYS^Va?r;VnQ^YAUnu`?B|(=Y7s|-uKIM&M({F*GF$VY&!q| zdKk19Zqv_yk;;j$w}hKm%KMEm&(aLlSU4-vRYPgmg1(qoU6w0KiwB zUj%s(TOA4jTdgo&$M7`q!u{xzh(O~PcSd~nMNv3)6l`tXZ`Lj~BSh~ylgzMd@2qsL ze@lP7)qnEqPD@1=z4iLGz=~f~^HAmxD0GER8YSUs6c?nwX1TxuXf;Q*Gmh`DuzO=LyXJlkF=;-L^@jzcQHh81tCYiQ>jJ@l`&z=<|5W}-~ zD#3CeJ!;d3!;b_Xyz8i~t*zb#gC*NpTZg;Z*hnt;`3>GUn3|Duvo*n`no&AM)>a+{ zzjiBhDmvusY(x$UTHAeh-N)ZQXCQk6i$<&JIULaHuE$_*;?qu=mHdXXkYMI{H~us{5@4wRYu!&b*HM#Ix0mf zYy~BXUta$9c1uf(j!#HH&}wddV$#~tII&oKZUjL;5Mr!-&fi}qIK|=(CF5|S=?@<+ z=H@k&&X_)!)QbY4euylt84xhd?$h#caalf@mbUS$v8wdap|m_2yop$MS$Ha4HV~I{ zq2qeneJrMg`|x3M-bXXc*%IQ}v#gmN zcVEAL4G|VY09VNL)#9UlcM1wF>ZTJc6}dU0_vh`Z(6Yic}+^v`F7BEDIJ6K2FiIa#7mpNbZUdI-;sQbbp*$bl}C z$;fkabL1b9pn3CHjBCQ-qwcHQQG9{$)RyJ-hc^4Q^W>gOroz7^KiN)byzK4$d{Pi2 zneR#cN@0lPyz{l#8Q91!FE4LasZ<{)B2z*`XV`6{o9uhN>QZ+-$@i1#)0>VC?Y!Ah zL||~9y{Q(7L`fein_IoX2sj*0GQM;>;z?a%W)Vb_s$~oXk+U%_%GK3~?(S|@jf;o9 z{jB!0KZGyNY3*Bq5WrDgdMAn5J$0rY#@#x}lfpqLU!^+E<@5O%!KsjuE}FZBepvKw zsNu(N^gv3+YFx4>6UOSf%__WDLqvhB~Zs^21j3e(u>RB;t^)f%YS*+4+< zwLfDJTsgF3uuSqE3wZ5Gj01ZxATEd-Igq_~w10sNk;Mvfbb@^YFo00n55 zxBM@F{_9y52{c}Y{r;Y0_4bObfcalJvxMh%S1lb(`k=yo zNh2gZJzZ*eg||V)yVE;YfS#V767V|VX4>24%F3Cu*}Z!u?FYTl+9Z9oNo)@Of#E;m z9oBhLu0o;UJ;*JuVTVwMF6;OphQmM1&f3>hSJQ4pACmP_a|~fGF~ijOXwsjNP@{6} zy`8PHhQP-|nK4TL;*@b+fuA=eE1}hn_BQ=5gV6<)ojm@%QVobGO5QH&Z10MBa_8yN U_qHjIzLdmx`+C)Xcm9`u0ez_m1^@s6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fac62396845e81e45b98752d76b3cd6cc35f1910 GIT binary patch literal 1533 zcmVPx#32;bRa{vGi!vFvd!vV){sAK>D1(HcbK~#9!?OaVr zRY4Sf_CuObN=XDoY5vfUErbXmiolya-m`jXkz&>>7ZSM9+_@;Ql_4m!EdrrcySJ%L zhzk=D7s*?_jU<&I2!bFzdapa=gWL7qnYs7QnYlk_;4CWh&V1jQ?|d`&&ctF8Td`Oy z)8llZP&g99Ca>v$SL%^8hfYQtq5}{9Nh|OT(T*s=fnUo2zZ8{{B(O?<)@9B1NbNGI+)Al9uV-M2_RNi0r;RZ*>mO_!G|P32Y)XMpqZJOr@g(sv&R1LL^7HD zF+M*2%9kXtG~YZJh)xq7rhzgwHTBXd=yuW3(Xq-PA>j+RV+B400j$hVBoeG4X>Dz-ld~{afVv&8 z1o*w+T7kc{wRPKxJCdULZU_h>_(XQ>ezv>2dyb0$k#5H=0UWaP$B&xtIq{$~pSL4H zb2~iXlbD~Me`Gsu2)E;gfS|b@E6ulyp`oGomg6SX7^>j%5)eeU<1{hH#>QUT5g-kG z2aA=!xgFOtUxw_sCBP>Ix8O$exd_mwe!0~@bar-Tp(0@57e#Y%lw_} zuQo5jTEi?mcHmo(P!N&%3kwTotc2 zRG`~&Av=s&UBeG&v$)F(Uy$YXJg2Phmy^fWhY=p&1E~bo`%sze0p|Li13X&$G=PH3D{h3Ebb` zpHX?`i*G&!mqb8|d9ayG<{5Sjz^?fUbF=#vl-z>=>2{pFu#du)MBHlNBO@bkWnFMbIsSh(vKw7ivfvv?Xy6?;5(dE+?T*O%1V+ZA>_ECB&Oo;#W1WC*2bP2u7k8{xA#wuS j&RuJ94)9wLt$*z=x$v=T>eQds00000NkvXXu0mjfj>pns literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b0ba8c5d6ad858d5b79edfe30fb0cefd28ddaf26 GIT binary patch literal 1307 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 BqFDd{ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..58c2f27a8567c693ec875537330915b00cafa33b GIT binary patch literal 2879 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..265edb8d6751d7cc9a4d15f4b81af52ab10e9163 GIT binary patch literal 2057 zcmV+k2=@1hP)Px#32;bRa{vGi!vFvd!vV){sAK>D2cAhpK~#9!?Ol6J z97P!47VE3NpS8yNjIr@Wv6k9mQz^$C$D89gI1V^SN-#b`fW%fHsSQ3Lxf)4>z#nL0 z|7g<03V)PDG-*V{hz3QXL5QghYKRXaDUm`8&NO%C#GToh-I?8;WxnJK$+7#*%D-QupU}YEBS_d={XbP~u9sFI-(l)S}1oSDOw<{tFsJI(w z7D9I!04EV+7wT>Ub$%RU*DVtGStP2%ZYD?DT{Q7p_{pjOe!%E}MpfhsO8{zBvF z+8DL<2g@$q21&6xK0_t#+T?u>%J0at!aP0jo9Hhn(dcR~{YVLDdv-xV^#}xJqjNK$$xq(37OBI{TLKA=j3KFAd{KbJE)4931JX*Vjg@xau>^YJE zs9vx4ch=zJKtpMMe*OflEk_UlH6tVAFGBDy&=7zcI#z2=PR)Mmf*)t__KQMTXO{1O(g-607-x(KoTGc zkOW8q=m~JSTnmx_3kfJKEgcdW{M_8!GeQ&4)z#G~G64+@4Lu?e;C9+PKy%P<2LkRe zy7Oo!h4UAJfX9UL3xY?4A`*Z)U$(nrR=QfHL!r>8B7qOjA%q%!NW9G)F!n>=rOOq& z3(A{qX=y221n@Cl6&Z>sf_j4NP6E!QMG;9rg>TjHMmTFH;5{DCISseT`xMbcE12Tc zsZ-C|0sNkxo|iP-S9U3)3aq@AZ%#)?N3#{czX626cPLd6T?oR8F6qq7j4vDxf5a2? zl9G~P=-f-_HMdJ~ih#!4M(eLRFfdTv+}wQB@ArQL-b&BYI%WBMzV8nnJlNIO*Y})` zc!e#B(lrr!fVSc03mpW&=$M-&y7WC`yAc8anR_LQk^o776iI+2K#C+l5+FqqAPJBn z2_W7QfQj+$0S)mG?yqD-vz%P(L;`@VtD}iT+@!gRfIdK-tPq#2gf>|c&^tvY0A@|3 z09@;wA(5oOOh(}U?|4to?xPh1M4ii?OuCW=s3XM|_O_wy2fas8$W&#G8sK#cQ zrLduPA^=>w$ISMtRp2_*#S04yIfoA)e$(&wf9-O)7FBXF{BY>dp|^&Ihr>E5bFY;I zpj_&4IyN>IYH4YS6c!eatJLEH{Jp8EsRL&Bq9I@_LxOplgef_6Gui5kmy9aw~_vm#{$u zB<$r$0LkiRettgJ>-GM|)6E@4zz(&G>+9>^VHkDz6U`*Wk^qtyO7O&f#j360aCiVw z&OY3vWJ+*FcX#*81ic}F1py@E{mGLjUob1kLu)y+Q(e&E1?ZZimIZ*PBvR~z86n@NZhxZx@*q8+QN zt9yA80Nvd!imu$GXDimFW^8b9u!?6RDk>^I=0O0Q77< z2P_HT{p2$ndQ=Fw+p56p#>U3CSrE|K+1X@OU^mc*SsV*`P_OK~8-`jPkrFUEIvV0# z$LZ;5Kh?fJ%b{p!XsD8R1J&LWNC+?^C>%z3niALz4Bmt)C=?2vHoJ?H5CFHuElTJC z^)4PRBD+xq>P-tws(E>NKhh8Y773qm&Lwo-=xLu`61=E_X+ueMboV9_0(idVM)jhl zU)y8+r3+m{5sm=P;4fSLkvCA#6&fU57>Gri`n$5jSKs`CN@wfuzy zSOvaO2QFIyd{LXvKho8ZgZ3A(^f)KY0j{%A|V-9$*QWV zei6YhDk>TkCY259C^M!fPMmmAB=94V$g3LQ?@{a~Bwp1V$7xnCSc?Sb5y^^Og(LyT zkt0W1>QkH&Y)2e<)7#toJnJuSz{wSU%Yf2jJ3(=hXf0Jy3NtCv z5(0;pU@$nOGk7FLak7{c3Z*NkP+3btGD(}HnWk(b+n9)b76I>3r2J>aw1H!o?7vSt n(2WvpvYxSn5$I3bwT=G(+JH4uNBw=x00000NkvXXu0mjfmN2@u literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..866263e16b72f6bf5abdf6ffede21aeddc5a7c79 GIT binary patch literal 1606 zcmV-M2D$l(P)Px#32;bRa{vGi!vFvd!vV){sAK>D1=~qPK~#9!?VVpp zB~=)}N3FfGq*A505+iBQUy6np8#EPM#e zSHVXK^g&FBz`!6PF$|FvM35reySeMGtM+|xh0EQ0&dixRbIvz&zkv@$XXg9!JLfxR z&U`atSq8R)gM$b6_xGOwc?F~f1#@*fBw+{DTUtez+9v&Wa5{#9V zmF7ZPKI%bzhsU8EtE;O`km~MY3eSP1m45BS9EkBEbkxHemXYX5ASGO$Mx3#tPCl$R74Gq65 z08EktFf=sug-RZ^xo)^+*P^$#w^O2h;P`D-otTpHooi%d_U*~fmd)lcgkY@f;nYZKqZgq*qfWg7Rp+Eqbot=F@ zp9A&v^?$ex%HrbUyD9*1f492O&V1*bo15z-2LLWaUQ$UJ0|Nu!c%6p4Oh0I!$~n=0 z(>>svYOrw085|vUa$%$c0NR1}pk0!4?g;>#A-NVbJw5$_A8RtEWO;e{8rc<5$#U@R zFa*E3x%n4?k8u(Jpc|gjxgx4l;7U3zxieO7QQ2fUwzjtR&maaLrk!6&{EAzYHfRkG z*bR2Qy}e`L*goZ;<5KzP=;&t-?hBV#)HX2eaZQy8Mg@ZZFy+dKr$Qe56G5mAIu_F4 zmsvsDz~~o368K6h$QzcP2QcvQK%^T%z)SEF9m~S8#5`Lv_mE$P-`{Xi#`t<>pg${- zNAdis!3KF1=r5JPmu6a!i8N7>v7y{x znkqFJ{7Tcg+U_bmw1adeH&PfZj}e(EUDP?fJWpu0a+Q!R=Z!DCO-)UG7>mVj>a5Sy zwF--Vp?`%wLRDz+6OtmTw4V!QrU5uvqW1L(8c`vxu62JZ0PO7XZDu5zZYC0me~J+R z`mOa|K|W#yR=tB6nkBeE&xf2juHgm z&pU))TS?e6KeQ0MKu(Z%e^a5Pn~fqxS{*_ljd#Wdwd_rAPqmX|ITI zS{*SqHukAsAP4~1L;sAvGcE(*0-*|o*9h67@6)!B=c5yV4;n~D#H!uIbN~PV07*qoM6N<$ Ef(ec2SpWb4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2169d91589d4f1e5de6ef5d7fa32ccec863040dd GIT binary patch literal 1999 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2814f3cd541ec74cc62887ac81597d334a21dd38 GIT binary patch literal 2048 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..faf294e870656bbc24bb750a80e42df7d219ed7b GIT binary patch literal 909 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49rTNE{-7;x8B~}m@S+rbL`{lrs&1q?MkBN zTW7ektSq@;=KFpPr=rJ&7J-grw*PFcK7J?nCw}welVsVRcTjPKLdsgvRv*jz@)Z(~ z@0uExzn@#VpZ)xm3(xB2pDw)cyf!&f(({@cc8m!}EQ<2}|u0zkTE3>e~)_4q|{pP3Mu#5Na zhids(7k_M;$S~FGsf&683ozJlf)BDWZucH+@-%KZbyee>;i|^_7p|W66m*a|sb^B5 zTH#x6n01u#nSQ-$sJID>!XCDj8|Cth8tj{N5ngwhWmk+nE9l(2oJ~`^)M@>{pp{=HDjtjG;A465{r7pv zxDw7)$4$J;W3q ze{U|@`KNKA>#ZJ(*cGCNGJNxmcDzuM7Sv-=SQ)nZz2v=56MH$Fs~y+9e#f?V!NrU{ zsU832ZgvhHvElQM=5{Y^}n^Nv=&W;imb*EQTTZ$~_tDxaKh$T(-W%sZjlZ_0MmEWR-?@ZrgHPGCobOlv9mtp3=+V``_;2*(F>D zHwiurnmadiKX2vLA1kh_pOC8nidZgP$*sn?M*Ys&Is5f?9OAInl>DcB`ik;Nrw{8b troD7;y82_c*l~G*-Lu&K8|Xg&BYZe;o8YC=yNf{X@O1TaS?83{1OSi{ej)$> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..323c964948a2a1fd4cad80d51262d13b60b3b242 GIT binary patch literal 1602 zcmV-I2EF--P)Px#32;bRa{vGi!vFvd!vV){sAK>D1=mSLK~#9!?Okt3 z97h!2R3X&XK$GS}C?rrqghC`FCLte$hM2p0|Ee(;bN1}lsFc{$1O%@IK`5d0OTkuJ zLMs$S2&ErH@N@emfzVQlVkriS(Ao+ng5_Ehuk%_DuHMYt&hE_ao7ow7pyIxH@AsSc zX7|nPtm7bSrBbPm$csBtFH7(C_V$4topp|F{{sCC0i~HpN<_$Yhl%VVKQ|F+6}_Gz z&0tR?fG5r#k_4J6Ib`aHKa3pssz@^h_nEB{=ok8Tsi##Z@ME75HVDo}PZk4GGz7_D8om!ETPOz1Rq#8ag#Kbwf4yW%>Nhoncw2s4QSV zOAjXSkJAiXT3X5l1%6pbpI2)UaAR=rOF^AEhOXnNM}N@Zmqm6I@N{B$(mg>l>{4gv z&tVaePA31TML{bRNf)`$gx1?B&Y~l61z=q@Us8;ZLy;@b>lVQ#=ADCns-->LmVs zh9(U$M*mYR1gJ1c09yBA{wV!}kv! z^hSXI@Dl?8uT<5378Y_*AOQTtK)_3O4hVM+sIvsv+fYluZt3jkc!-FAr#$diS6914 zb+Xos(GUQuQdkHWA0K~@N5DXT|5u_qCnhEemhjxcFA>mb%!3Y1azaMbY@X>z~ zH32*C@R}R}dmQY|PQKw2aKumojySqBngdXuff_t^VbzfwofVIw!&9TwZ(T^~J5B3bB<|^=IGV#?(f0`ANn_b^z)txyzEex zDbT-h_x>CL4q{6~jP!HRF}2Ygez#EgI1KQi-^iq&TFaG~wlEq^0BcM8Yw`G>L4ptc zq1$R6W)$3=nHda{0O&7rqrV~wPKBL@7^DAGR0yE%9eSgu=Ux!tLqFQ?`B9mMR37f? z=1^8AN)0|K5>^^w-2EJIqSk0Y6cj%b6ryUq|W zfc=cuTZ=Nl2R&%ta>ty8W+Z+5VTSP$28;Ut2{@}N4KYUlS&O=h0$n1Jc={uYa_k0|Kt>-*Xb`0#&r^!q0u;WY}hIbsYs0gYb1 z%*y!!YNJI}oCIo_I-k!|*9ze8w(KnTnV^AHN*Ea#`J@tj_?>geQiDa)dla<#JmaU; zqNu1yXUqv#rjlS$lTSjsOYqw*S|Lo#I!?I%09b?*A1i|?9{>OV07*qoM6N<$f_oR< AT>t<8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b3b525db81c45627bcd6719793834151e035a1d GIT binary patch literal 1092 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49qt@T^vIyZoQrBogwVV&~{sE>%If*FGAmV zuD;UEK3~*xk>@Ovi_WtaY?>(3n!xAe@3odw%_-A0bwa;N5ABe9Qru^y zM)BLtYp!NF?)_jMDDqTx9c%2XIyE)5eH&O-I5(-V^q!ss zjf(O$3}Mrig=RR;-1R?no45nt3mx4ly}i8+CnofrxO1E@e&MG?77}j6^?d(=NP5i*GTW%{usx+iTyc^#9+I9D= z;SMK@OH(^THAGfP@OrN{JegvoyLn%((t@dpn%S0n7RyXLHsMojTJ7zShOXJ7`(}q7 z{Pd~lMoz%m-j&y1+s*tM>Co_RFaM{u?r#e-On!xhMQ9yOGF04br_HGllf_@}a*VM_ zx5n=N_10F_)}rHi=AUOLZP_Ywz}-ON&x*%oiSRf*vs42%pwSqI`J6&&0f zmj87vEmmYvo4<7FQtO!AOFQ2D=lKyhfAIp<1O{oduWSotHwUe}Qrx1}fAr|lYA2?U zPe1<%x1`UzdiAR3+#dIx+n3FsJ-gb*+S;1;hlU7Oe@of<(D_N~h2aqgo~^ic?P$25 zkH3ZM?LEIum|kfeub4mKiDN|2!OhPD1FTNPAI^7;m+tLX0OouKPgg&ebxsLQ0D`K| Ai2wiq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f86b21bcd08af8c9ba96eda25409fe0357bd6245 GIT binary patch literal 1773 zcmVPx#32;bRa{vGi!vFvd!vV){sAK>D27*aMK~#9!?VVjr z9Yqv?(Q345YOy~?s|hBJ+L&OgR;#Hsid=r~DuML!FW^r|6o|%zAP;CTQi7ByQt|0FB$Y?v0}1+oxh*&+xi`68c4lXH=XZB*a$aEX-E+=2J9FmD z%-NhAPM_V~-NQ&uQp!U)A^RYk9uaCM`thfbyvayP_V)G;=;m~!^Jxz@9%AMAqYNE? zhaiJq(Wu2g=fl1uL2vpDFXv~ACIH0RhQ6F9!udKtK>EET)GqYs+)et??d|RIWHMQ^ zva-@ZBWr7G^_!cUmt2&6UE#jJ(5^4oWVdr?XQzw_0GyMSmX_WrEG*m$A`J}<^MpP# zSJ5XRX4loStWCRZ03k2{Xo*hF86O}2G^q145{t!lbn1$P0YG0kfpZKi=Vzp@uI?J< zUhyac5aRrdtgf!Ujk)Kk$N|7Pzp}FOIxheqgz?}mh7Pcd0MG>mPCwq>-aanU`Dxh=(iNfWE{L4D2L^x(IboJ7!TFicbP;2)<t(nZvIiU-c$h4A79{==V6$tNYO%o?#X`5`uci}482_es1S0}%IN6m=NMft zx;@QBMMWtk0T7&jTQvYKp=mD3CRzFt0Vo!7(#kEju1E_2xOH6!&lGlkX8qtQDKymu zfEN9}7sJwWRCxfnFs-VpYE>5igz>;q9)MF;aCv#TNhjy0L(~6g(*&wL0r`IO9S{o2 zjCTBrHe)~t0F>$izzQP(-R1%DkO4TX6@aWAy_V(x&b!U-l?C8+DNiPVAe#vc00Y1P zFaQhy1Hb?<01N;FzyL4+3;+XwYB%u_kz4y%9d1)e=RiBW5rBIXQv71%0Hlp6RY7Su zrRkyJ+^aAEOW1*AhR#3kL+2;7Z~Zod@@2G^AoU~C$B}>Q8}?N|oSvTkNcHXLtmA#J zvazvI#iaNk`qDXvqe|b02>{Od6%`dXIGtNNZUDH%`;(KCpYS}VKpiNA830tT<$Z3T zv9a;zK!b9~0SGyY3v(sRy$T`=fKc`855c>-k8uN#NF@HWe|KhP=0jQqc>%yxdz_!2 ze_uw49pZQpHUPMIU&P#|zP|n!&*MP|0Z6U-1-11sI$Q`n09?q4X0E@hT4EDEIdE4vKn8sTOC#3c%@IFFex`6B831z8Xqc0XTi9udnY*2{YjHkplpa zzKmpCe}Dgg=f)BQKyh*LzW^ayaOp(b0LHn-n=;*j2F%NVuG7B=e5LA?|XmmrK>nhB=v5VG01<>$Jl?^3dP!S0))J`+NYavNo6};9wAC3;+Yb z05AYl0x&o@*bA>2cayfZwkfBVz|nlyi--U~t4lJOtYHcOMrs{S$TJ4Ov?N22(mGm{ z`f@P%@qqR|rd0U^^drwkrS-FJbl4fLkFMyfCas@Y5huTCi!6E6%l-ZbAf3MZbLKKk P00000NkvXXu0mjfJQXlO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..53fd20de4216737841f12430ee9fb6d7d338b0be GIT binary patch literal 2407 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a78e21a5b5a78a08a78d660a0129a7e0eaffbda5 GIT binary patch literal 1944 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..94972f7dd657dc83ea14b64875909009c651aedf GIT binary patch literal 2979 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..825eeca6997b7946c5308d0208d9a39fbcf2bb77 GIT binary patch literal 2448 zcmV;B32*j^P)Px#32;bRa{vGi!vFvd!vV){sAK>D2_;EHK~#9!?Oh8@ z)>Rb$i<*zrOr;c4QO$ z(cRrWg2?!;uCB+3%qQ|J5oaQ6iEIENf4`o5t|qdQ$U-7cL?)6yA1T;}O`wk?06tD+ zDfzyUe7X_YVuR?&zh6aUHj%M*Wcy#~lL2%h1{(plCT6;GX4rQI13Wb^>xKbzp1eqY zcOH>Zng*W$;YjWGpa5)dZ}+@;^QQOp>(_m+UAwjozPGitZSCyrbRW$BLw?(pe9k4G z4q99FW2wXJ*S2?bbaHc+fb-hcz-!Yrb zH$6Q)8$&}wE92tg-YqF9No;9p@fn~pT!>83%Br8$pN$95j~zRfuw%!L3Ig`81mt@} zx(6$uq`<(yOIcZ2hXyLWFfIBzQ^X+A`0N?!TX>1wigz~<&=zwq$zPi(dC zLnYqc-rtv%l|@_G4bLc23G^gu#vbbA$&;^;RsXY;z_Vs4EiEnAN*JpwC6LKZ0JP8R2`HJHcR?EsMlL%gV~iRGQQ6Pr|~&KINnYQ@FHNysi(C8h1RSp9qU z?0HXx;NKS?AD;%ORmfr&&~!r|@ayX8f=njUpK4VA?1J3f+;l8gB!&4|sioE5YZrWn zB<=K~R?=w7!ORxQY5A~Q<4rM)+hMrtA1gs4tB%LgV0>)!GAGIC4`jgn$ z*bfjhG*_%rW1k;ROiV1&68Io~etxxx0+xxPfT!3W4i69iSZfM^{1BU}2AZWL4%pk< z`-;{S045hQz6=%yF?N76693=OpaQyq-N7zKF%+VEWUpq z1!QMuXJ}0UK&?ko5sSsx0i#$F)`bff!eL8lNdX5B9?VCwq0_~x2drm#KwGzN{ZUKy zzp}D25-HA)6RRS&Sc~=GUbkwlAm(R-XnaxHQlQTSDk>_Xv{DmDNJw}aQNTj6IYFCQ zGvw*%*`xsl+(XO{*#Aewrlma1PU66U18=Hb0sj8}HOT7UBn2_c!VEPuGz1t7hC6Cj z0Ed{hKoV*q)@TDL8)^lA%a$$ISvCaaM~xGt7#KMh8f&Q48OO)RzatxRF5Lwqv0Lzg zfq@s*20j#>;Bq;lfN4_S5m>}d>coi?acZj(z%5U#v4`Y$#c1yzBO8*EXrWp~tN%7I zzYzt%_gkirgLvga0Y zkt3Oi?O!k3)-|**oGUx&ef#z)j=byV=l3mAa)g|}qaf!&COC&x0Nfu?Qo#oN7N?7r zvmp0DQ`Ii)c=;%{es~TuNC@5jj!o8akuQ5S?i>9U~f5mppvPNSEhYWGG z0`CEDR$QNH8kSmg$W2dA&yj1kG&nf8iqp8yNl@Z|9&1=zVmaoCj7H-vPBT|$L8*f} zohzteU?*fSMF9Z; zmt>G^`=h$LI+SzbRmXb;Xk(`r*oTA%hg;`TMm^ct*{>lh-=w+@>a?M&g(-qtCQ_NA zu&}VtI1Tyc32GelHB=V;<;Vf;a|sv@zi{&WYZToveE?C>8jMdQa)-sc*bPTjL_Gu8 z1!#}af`Woq#mW^$MMa(FL_M;z{P1gJhi zOR(X5Yeso_`O8=nRw82rEe)D0(y?Fw^Vnc8+#ZgQGb1A-o74MqhM>hkTi;lutq&bK z^!iYTrVw&+5^YNbEf0+5KGem0cr6x2E2PXeZNFEN@=Gn=BMFXjC@y?Jd6CoQ&?sr! zVHt*|283xH4UY3c>^{5#QPUykAe7*Q0R@iJR(}v08u}&DYFPTN=Q38pQjR}3X9KC~ zDu+%EoX*j9wE6zP1@i~w05#yYXe5knKXc|x43^~-{W6_G3phsXd@#Vq;JkPrWR4x- zfhl1oc0S0>%}s+unl%ML_{vE!+wJ}!m9PW@GA1VGBWv%4GZ8=cJe?*b%i&3FEPRQB6%v2sBRZeS1AGFE5Rg=W((l`Cz8V5%UM|&iI~g zjo1|;$=+37= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..60e174abbcb228c0a069449a161e8d777fc7621e GIT binary patch literal 1907 zcmV-(2aNcMP)Px#32;bRa{vGi!vFvd!vV){sAK>D2M9?-K~#9!?Oj_; zV?`J)yRe|^eb)q|LR{Urn%##@$ZpiQ>jes>7bpS+DHo$4ay10CMj~Xn2?_+cB$bqy z00KUUgr`Ok#gK>~F@^^*E2cqFOp!=LK@^-ZttrQr&YW{*=CqwZ`5s8yGc(^e^Us-o z{uxv%Zrr$W+dBbp5#WB#23_J~0d!t)iL*o4_V@Q=e2~vYpw#2E(r#ke0gfSuwjQgA=M1Sl#h8s{uha6iCSy$JvjXhZ%8T*LrGD4;GkOX>Y? z?Ck8EQ$Sn7UA!Li^@S)Ofvr;vdw(Jd`Kzm|>4yoBo0~h$uni}C@OskoOOgH>sbu$~ z*Xvgf6TmeYhcl?Z+E3kMu^I})0ThR9v>fiojp^y>B#Ok}f?9W60jP}z)Vd4|47`9M z0GOnIpj7Wi@M76I(!%lpjNB@KoP*@h9U^o_j=rpj6DJp5)!rrLTF)_n04e6 z6$=XsPZAeuRc5XneM|pYquowZr$o-Rcug}iT{>;Zq z!FAXTH=E5L`)XWcW8>>mMgv?dk?j2*ZYY+9ulKh?7pfa4X46B6#Kgqk1iwkf=wX*= z2vAZ|@-9Z59v9i`KR>JvrKP1KLX{)rYsd%7#KoUQXjS7$!>z=LXL= zCDd|LQ&Yc{Ljc!X$Wf2-9}`1940Yp{3j~W}vIv4`YHDf~?l-{LI8FEC#@yUof>>X_ zwY8N(Wc~pU*Pv8jW@hFou@&&Liblf7$jI|@3IOLaG4)7KPhS*UrbeUr)t>;j(dv!; z{rxZDG#t3G9XSPXtqG9JUt3#yLTY*Q^Yccgu^5y$B^vI>4X4wYhEg_|v_F)iJXym5 zFe)k+5v{GQO^20bv)L>p1n@Tspg?k#g(|>(a;%DRk(89QNwfF+6CfuiXGYF)tXAtQ zsIiYQmTqBaXsC*&06jfDuafLo9zsXT9+i~KH+p$f`fvBGqN3s*k^;c8Jc5m%k}3x` z^m-8^_CbuCuCA^+lFxU;;c#SG7z+xv{aaa!$6_fZxwj1&HNtNIV7y z2XhsjC>89GC3O=cbFP<@egN_u76;^>7n}VR%4lwGevNv(i!7IK!CedN;RB?8Y=qw`d&7h&7T+y28T|k`!P8=*$EFhNKFC;&sm2DG~i`V z@W2JUao5X@FuriB63M?&3ehmP2oSQSv>h#&(d?tn7nDSPlo-;7hli^IDack?Svg4a z&Lm=Mf~u;jw*xua30&4!Ebr12l7E&})R8rydjg|BK45x(FvkAt>gqZJLV#f2fMIq` zzSN7gg9RxmDGzf27$PexD^Bq)2qvip@dkW2pM)6!o{?j{2#dxML8H<95-fS2t~Q-l z!dd`phYaSBVqE&9H2h_^+n-g;LQLuoS#@=_Ef9!@DVOlF4#8ePgkl81IbH7yQ&UsV z6c-o2rv$=HCes(Aqob9+BBYA_Pkkg}|L}@5cxeW_t_+IQ-Q8VVUtixL7A-9;&Ew9AMBi4-Fgts`+?w%nuPB#K))t-Ei)wRtU}p?LUTg tZQz_%7~$t&mWPTPH*VaxapM*m_74Whh|T#d9P0o8002ovPDHLkV1hw3Z7=`; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a40ef9c1f6a026e82e340c37c3dcb7667399555e GIT binary patch literal 1474 zcmZWoXHXMp5dDH8k)o8LoeBXYaMCWK5I~fYUJW_M?Qy!Uoz-bPznT@(@gO%MPeVva%C@cQ+= zgdXD6iS!^OuN`zXwloHyB2kFz#Lt@{B%6ySpzQte8QyT%2V+kH;7IdcLfXBb5&_`1 zGe;T!b9;nCyN4m#9&dM*m$WcWbQq~o4#W=$$2^A(J-VURl|l1ulWl)h6_eO!(}zN1 ziarG{C(0G9t4bzgl zR~Zc^W~LmGQe$enunc$G)437`t4EO1IcgzmA!kAy4j){ABiDB!*`iF&{5<(R+b?+D z2ic%}r>d&z!YqdqY{u7w2rn1WytUIqdVJG8IC#5sX=%x$Ff^~ft*s5W^fxNk_dqu5 zT&QV%es6EDJv?P5IdWsSgHXXeZ(xuGH$nmx-QD%t2f9@Z2E*|^H(+IL%}xkRjDMem zu)4E`2L@Kd#Y1y)a`YjMN`(Ric}j&0%&SkddWX`)ysc(nBtnRuaMI5`aRouS_~TS% zD-`V9s(0i}dKY2ksQO_tpm7=LmX--&Y1l4xc6MH(QmNjjAgZdWGR0+O3$ZnvL+1VN0GkYaHBg5Qva#qU7)YKIJax3VNfI#k( zy7d+4b>`fPi`lWpt}d)1)&4UiPpgR@6~$lVL)cQyX9TLX)}^AgFWJ~M@P&q`xNxG4 z+8QMGHu--nL&uXpOj+O#0J`Q(IwwI+UOq%|1V~9srwqN0)P$s_rq&$K#xMypxbPlKjK4fHBV)r2hZ|7ws~qKMPmC@vzY@wP>SXPX zJ5R4&pb}CKP4x(xs6qFufF^;^=Y!3#j^dJ%SrJHM6iW|(dG9s$DRBZEYZf?4>Pg3spyKlFCTdEhwdMZA8 z%~xj=$8^~eV_Kgvh3r>_DN0mn4)*uInG9qYuv=>0NaC)nMd{~6zssI<&bFG;#Ukcg zj}n_YBKKghXJ9N=0Zdhcanw_(xJSx8$(1~V2a}am;Bdj0bq@-WeuHCUV=!?0asc29 zYxJ7%>cTaPKY&)dQ0(o8WusXNR`H;QU)ONVdN@BnKZeC(9eswI`{2o?YKT1vtRP2N z9(U35wMh4dJGfdqD?oK)@gqO)RjV?stYe9*Vvd85h)f~dAAx#ML>@9iO3-#$$~VY1 zz8f{-{n6&|g4Wv$uRoOAM?9%wtRrdd3N?Lf+{UslWx>Dh@|)D2z0=LnR;V(Q>*46G==`!I=i?(ehDRa~;!Aa6ClAGk5)eKM* zw?$cM&LnCc!!XokmT3f%i%^`Ih1tNVsez9Eh@Epk_j5i!+;i^v+|Rk^q9Q2>xFZ|@ z00cFR7-QlCUjSQU>VMZ12ABvuLZA@Agu<=7uHH0l>QF z3m|tQ- z=a88;D$cwbdj7gS3O5&(0OKxU$yf;txuA)KRT06e!hO z6%`ewUh6NkO*`LHLkb{c$hv0>S?TF-YBZ}(zYWzOUT7nR$VfwH zXXm5-?&`}t-a?YU?e!^eSBs_Q_Ig~pJqo21&a0glXOD7fYnSko-JPi3j-ZXQg-{xe zrnegp>IUH;F$Ps)7?X8zOBG5bFI$)-IR;I=PckYM3PvRM;5wclDSo%#fwKQdbqf^8)g^`#>gp1a0G!M zrAZds$Cqt%&{rx|>}e9dsHh0{#c79_V#VavvVT5JT0nV`s+CKMtRwdn+oMKQvOe?8 zJq5?VT~VRTPr~D-^^-TDoCaOVe9BaHtgDA8Z?Y8n=79ilqSAm}dFc&{;@Y%)WBBUS z&9$gMqT^FjnJze-5vkJB!ouENvc+IlA0>iqH?BURA2Nj}(|hYyi8Szjvk&FpyZcV? z^qB5Fl{Rl)O75urhKUpk)8;N&R^XW?W*RKokeVUQamy_H>;vz6`&j&sda+n+>+xOl z`$EqxTYi6Q(ZqxD9cN6zP5~KH*KgbimeGpm0?$ogQUzwu>o4>91}7*MfMOq_&2{K; zrBYeZ($ezz@mO49VzqXs*}}2K(90o@nkTJbYogk1n;VL2Uu+lzf|e2;rl$371A#JC kPMO<>jKk$Y8}hn<{9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..23c179003a5028a6345a3240900e1837ef04b8ca GIT binary patch literal 2578 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dbef56f228820e5b9270f81cba7fb9eac3fbe0e5 GIT binary patch literal 1371 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�a=nmM0A^3^Z z)RF~IJYqoIwIX=#LX83pRS^alWd{7jiJS@!D1Iix#UDC!Xfa$omD?&`O4LlAJh@sU z2LQ=~FDrOM^%pK&NF~~N$jI5>OZ*^cS``HxJ$iJZH#d?S;+)RVguCAV@)sKRLf^R4o z_WjDr$~59o*1-q^JRx=#^sEYIQUk|bKyGesu~DaJtviSX3lk31l zTM4XuK_%4t^y$;-SoSJ=hPOdapFaJUNP9)$56oELu?{QZ&fK|k%g|R978OJxv7Zdk z(*Pc&hPkUK9rMX%{JVP0cpUo5%E}f{61$CMmw2!OKrk;6wF71~7u~7(Jj# zMnIDj{diIj@5cjvIEiMY;@=0ZBaqhLE6KBG&(2CuPyaF7d+r$7XQ$Ko2H_2j@v8WFVY;t%}v5gP;zYlPw%ZlBN? zKs-^)t$*_@6&@ZRCS!!x_pb#PTWR_3f5NK7gF&v`waPzq0%M}#gSLKZtZiwD8hQQ$q zr(vB8;nG;ekNRSOzW&D5Q%8RsbN~YqiU*wZ@uyf43;_;{s#_-t_BMV{^y?)LjfWuy z`r`eJBBxrGg&=t`e;xH7d(%}xG_XEsSeP{u! zB5;;s9jT|JxZ(|~%frj4^%M)qQi8)K3QYOHSv64S7Nz%Ts2A=)yDGAbuer%B3B~s| zvo0Hd$E=5pA;8*lx?CEXaG~V$i+%ik$I)W7E6}d88BFR2F_bd}mqj2W82KI?UorroF6G0*pgbcW;KkBt$NQ>?ABNFV7;{c}xa= zJl=UhfUFMLj>!4yY2{an_=@O8z4WB&1p>B|->32N&dckvtffY_W0;+uhiV2*9xSlz zbtPhq2yQ6KD-3yg=cPe1Sm}4c^h6+)U8xWQ+o@7daFGP`WOuh30UPBgs zK=oR_s)%p&O0ldrbmYj9T&eeIDEI-rD*GXgN+-5|shX++sqz33XbmYCqHew> zPMr9rw8c#vB4}ujCN}ZSymMEL~Nx9^d0iwjPL)nv`#(ikeyvazNjZ{JyDcYU- zNHk%9R`DNMDntsue^+tVTLm6hv&cJ^j2&{x8X%n51HS7eo~JP}G4an-xH-6_kRba} z`avub=g1ngXm~KH#N>>S3O{itV1S5%|BE^hNasOT3vS1>DqLB*wx;i^ptBZ7gcCBH z5aDm7_~1m5+4g#rVc(6g@(;!U!It^XZT__T!#W nKb|$J6_14T!!YcLT9fntSflJP1jA9f00000NkvXXu0mjf3%pY& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..741110e37e065804f2460167763c03760291687c GIT binary patch literal 2059 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 W83OF7@gwd40000!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49sslT^vIyZoQp*He1+HrY(Ewwulw-x*bXt z9}+TOuho#t`Fmnk&f-iT?oP(rBDb0=M59~;PC71OuYR%cNc8^}E=!F?;*R_~GuCn_ zR(uKId8--ZIj2#l?dHt8H{Y0?eYelPfZ`>n z$y=k|N@Q%|tI|K2>$u3pOypba`+qauKk@6=FXel-DjYxV|IYp``=(8Sfe8~evF(d4N&mEf<%;{MzTZ+d zKO5$T9q!9xk5AdWY15}OX(u*a?%x}?S-PypMd@i6#{>z@#XH|kkF!_!yyeiFH*a=_ z9bA6V*UB8XROw4xd(WJQ}lR0mp*fv7vi-ek3olpEYNWj_E$lPrEV-7aEDNFqXtMX1toR z?)84@+a61U=Ig4=5&TxSdvzE$r=vi^t$n+8{n|3~_WgBjY_4H{bsC;DdButR3)uWU z$IQ%3u1IR{t768-b7ptHpS^eQ!MRFXHf;D1wd|me+UIHJ?@v8vQoE6RG2_d0pX%AO zXJ^i1xTn(TZ^WxM`DD|Xi}%u*d=mNhEV^LJ&Emj7CDibrWyZ6Tr$sxD-^}^8H1^uH zYx6!_>rdD|)obYzpX#?_7k^2-*(Sau<<{f1{_1;IEo|2O(X4el`*2Ly&3T(rx!$N5 z{Z>hwzCT|_#9-BmgA=Q&YwJW3*8E)jp}g<6^!09uqMJ81beERwVc6dtdFRQp(`NqV j3xGL}tJP}9FZSpA`Bn$LE&L2D3>Z9J{an^LB{Ts5?4$8s literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5270d3c424195b82c728422293fc4589edfebe11 GIT binary patch literal 3856 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 UK|+Dz9{>OV07*qoM6N<$g531-egFUf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b2d02a9041f5e01f43c9b4f73359efcfd8e51ad3 GIT binary patch literal 1772 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..355cba44adc86fa9820f59fe440e1c0d99d05702 GIT binary patch literal 1371 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 X_$`j+;@B!`00000NkvXXu0mjfxTOP= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..42cfeb7e18d5bfa514901f2417063be45cb6f3f7 GIT binary patch literal 1996 zcmaKtdpHw(8^?cRlhZPpNHv6z@yuxtCE845PkC6yNWz4e^Kw2+ITW>#jB+fILk>wi zs%12Dm~-t`CuqVQ$Rips`a64N9d5a$Z zN>XBLf6R+C+XB=VcN_=61D4D$PuP}+gp-MQP}{fX%a)M}v2_UtVEglb1?dc~@CIO; zryT)zGHUqinOKLD=a6Rws2>UDROaCt^dAqH8*}cY zV2)aA+&Jzvz8IZ&cfJb%f8>k zeO5ERt@Uk9r2F!oLIYc>zyC~3iI!z?Ff0>y4Z0?iHm1#(Y9Gs;{$%8Viv%_hn}8I+ zC~E+aouL}&uDe=O#n#K+KXy|n1!hIf1xMrMWHMqCS~*n*BYz9v1gp9xVXR3M1Yc|+bqw%&(F=woYSYZ z-y`seMB?V-3!=e=tStEe#^G8qc@vER(CanO$Y==r+*eq~@90?4Ntt(abhHj?UgM09 zd+vU@8{=%?KmFn=b5F)meaRdUdSoE&0ZYhRS9j(kdupC!dAOS+m z(f;ZVnyQG?O|(kP&10?IDf1GS#=kuZc!xzDia=+j&Fd`Y-hN$~En;+>fn~V$`sNjy zh36ciM& zJ|LN-u3vU(&&SXE`}geNt|->C%+(WV_s;8D^)Cu_;6KmW6IQ>xZO!~b? zj~@@ivAkua+k#^BfdetIettSm4AK?;C&hy`@TXH1e=hC{vsF}7tUHZnCs^`JopOqc zHWtZKKFTe5sRj@_yd;BhJojZ^U#)0%HbOGWLlySeo;YElRtx2$ zKN?TX(MziVuUB{AmXVQ>Wk7K7pYq%lZAZO+i|nLXpW00-P4iRMQ59unTQmB!L+X(+ zP7>9!(HZ5iRKrbE!bZsz=Sdmfe!X&e2Ialqqty+UW$;vg5gD*vR6U7d1>D73GX=h4%WHFm-g)tdjU=5))esJJTA~yxmXmOI&*{ zkX>C}-HtgW@9TFww!dHPXUU2fwj#tvA|LT& zJ>LVmAv8iG#Tgx5^BdQQ zt29AeMbRBk4Yl93HIr|Kl`J*`gzqUB;0GG&l8yv1(G@K%t2Td?tye*~ekMgyIR&j0 zlD+*#I#2_WK#cLffRqA*XSsC~Ie0reyTB^e<;tZ0_x@jQnTlW~eyIF-{%B=or7o{Z zGdeojl=4s;n$y2o-9&M5Syf56pT>dbHR)yh!??{s?;o>-mc1g8=rp|4x_$dD?FS}C zr?Jok(gk%>1Ee_jmT3SpEM8-3DMmrle+F}9GP8wD#s-hNRUQP%H?DT3Zub&LsH$%6 z9Xp6gv#X$->~X&C3p3$e;YZ?VpdNiQlZQ@w9(n^HwlQMV0j6y6t;WU7mbiQa9i0mH z5$FXOB+j}@4AjyOy;EACY;(OsjKXKLFk~MeAMw-I4X_Ik)5a5c)9(Wt>uce{JXSeO33$~hVPjc@809{){$zf~tHtBXJjZ`b@}pQ(4zO&$s$ zM*sq(17IqxFU}}B*$udq)>yKl3*KB3$R!tKeR)gU^MxbUH> zQe!PO(~dYK2QvI2^@g!-ej{+OzJjSRP)Px#32;bRa{vGi!vFvd!vV){sAK>D2d+s(K~#9!?VWi{ zTtytmYY*!mt+CeHCN{OUHKw)Ry-c+BSQgk_xsfWMVL5`NfSj9#qX~jYk=m-%;sHVm zp=lvj5!9w>2;q+gNfi;LMNE@MLqt(pv=z%bzvQjmK4u=fZ)f(+d!0>w*@UofX1<^K z{odR&YnBEdr_;G;YHDf&`Zl3&v&I&H>`7$zp#0o2%jh3e$Q7ut7GyTw4CU=nWU~z` zJ}TtB$gDhy?`Dr15&|mJN*##r@`NW01%V{~g$oy+D=RCjEG;d4Lo4g(=twoRCy>Oy zc=2L%R8-WrCX>mjr3D8EkF~V4q#M!`P$BNaiGTk5`4}XAzt-ZrLHGkf$RK#a235RM%?rf*L`nOubve{gVc7ZQJfSMl8- z{Mp>x{0afWMy?@{#D}n>2k~7N7#OGo0X$)j-o*c2FXDUQ33GUg`Kxgm9T*sRJ|ZIG z2fc~!<_Y7Cjg8p^2%EToAc;S%<_`@G?NTFtP*Bh~`rRN4v)OFFP==tbCy>O47p~fx zA0Hpz$!drJ^?a)g;|VC?HMk7*_xHaL78Z6+t=sbmK!R|op`js{@a)Zgg&>J<#fcvt z9)8Z3xXUX57lb26j^t?S2`HiaS&7d(0L?u?5`S94eSLkgp`oEeG+G|K1CStGuCK4p zBc!thL73~em`_uDy#R1QsH>~X_lqZ>huwt>J0Ly^J3}7FILrF<-_( zpy>f-_Xod@K6)KqU}Xsj3112T0)PM@00;p8k7{1Z$jE3ig270t?f}?qwx9K|2+I>o zPEP(*01yBK03!gfN-LvzH^TyW0NH%bZLyI7tk%JzvV{VG03ZMe00MvjAOHve0)PM@ z08j<6)9G|R#j~M2ZWUueVk}4i5C8-K-vC%FmS15Zs}U?NF0M<=35z*l0YCr{00aO5 zKmZT`1ONd*0MH$PfPjEW*!~aS91A%GODfG~^WTO6fJFa&@7}#{!KRMU(b0(B-rjhJ z!%+j;Bqu{rh-jOOoXBr-d|b*sHv$bm?@ujyS+nrfbanN?|}UL{P%fy z2TV>*K08AtxvJMz(CF#Yr;~66Yi(`a%}G;qs;H>w9b6vA#>T=CpdP*V1ICJri{FNR z0K|M~RY2>9mnNvI9{_Q_y}kYA@$vC6=m#7+bg0OayDYbotH=bPpUj@G469Um?E9nUs{&hUrajqzPcY{5=3xU0q!q5)$$g^d@gc z;h~e6lao_-<;s;1Oiy|#?TrhoNh6w_ot=r`f^fX=&0=kBZD}xjrf_s6-Am!%fpB)d zQC2)NG}wf48j-xW(XY37kgY?y%=6o3Hpv^7 zB3myVTF&uD%tDR| zDDzOpp2lVV;K73>o=j}WEh;Li4_@^0TkbH8gyr%yv$C=p)U<9=Q&U?B5CHrlF1L50 zjNK~L3~J)TeDTSXCsRDx?u!0)yZm@%7~A(|OyAwo($ZQ8%}f3ufcUg)KG>c;duj-+ zjJbrS@?-M46Z{WBs`*=S;_utH?=@fMeNpK78dFd!++pBl zgJ4=H%FD~E^=0e__6sY7qs5ww4-+-Mhz}Fugk>!2RpfIiu2tmgm5K<$Cxmds9s*18 z6;>&4S9>Q5DHN$$^`N;YNa8<(6TiH?yu#NdhOk17(CS(2!+UBTZpg&paC|^v4&XDA zCwLPsJuS#w(hHY{_|WR<>guv%p8p_)igUL-6oGIw?llGom|nUI!W}dLtWpr)=Y>{; zrGeXNT?d7p^@#lWup7qLPy_}$YY5?J3$r<4Fj#m?V@eWM9@7pzgiy4D)dmr}-Tpbo z6D%|VY?fb5j(V5%G|uMl?(R;&)Sh(=-eF7Rp$J6F&CUJL*D_>gW;ViNW0tET*7|X5 zeLJh`0MWA__G3A=(#-fmY0`mprY$Ucm84L_Xm)HR?b@@3ai*>QI8_l^C(`f%%d)^# zhO=3?@Nxz<$STb;E%W0z)&gmP0d22_j@VjnT5taW3fPYpBs!vd00000NkvXXu0mjf D-P^wD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..201bc81ca35ce5287e40f87e5974a3fef1f77a97 GIT binary patch literal 948 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-49uRME{-7;x8B}8pMAMN;`m3asSAUT_y(vM z2^{&Eyx@UL!R)-hFIR0{)Wl&`y&scd+Q0UIB6ZRU8 zzj9mtFF(Ag=dns=@srhocQo#JEftE4kKey{+qSawNIC#1?NJiNBJ-a$TQ zVL*id58LUqL)UjLJHWH8>9We5DsG8u?90FX6g%|)?!}BRiy04y3gzu(?RnKang7oD zFvcrk6HcZ)+LanB{2+G89hroh;*3`U!Ll!JFs#tm(Xlc9u|Gjy)BHYb>|L2#r%s)+ zEiFlAPsq!AxAb7%ivB5#3=K>S48TO7!N9P90mwPH_j48H9U{8zXA(0e0>tIl~0b4ow^mP$5U|0?gZ z>gucBq>UB#SDs7T-2awoNzh7jzje_oLv}57FJMk6`pms<-MV{Qh0m3}xOwwtI4~_? z0|(65W?Y!Rf4<-H`PNrIsm0HpE4}Q!i_*t)CreL1E$X*oESM*sA{DQ8uy?Z<-^!V4 z3=-R{Co^pAPGtD-UgU;h`1&i0mi^D3&wly8VZ*HAXTiqS)GXV=XZCH$ zVTQlCG1ud!GNvCZ%u>SU1RP=xj0_CG>>$Fx5Wv8I;6PMg*l4tC{)bDKE?qu)^yrkU zVcVUa*B!dHy`h*dF6OZQ>HD6i&Ten0V`uc6xWTezGGC0yE2G8tr49wY6^o4Cx4!#J fXJ5?u<1T-hk`4c;O8@(n2r|{v)z4*}Q$iB}k9V4L literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e3c75f6b3087ab511b5d5b1f75c391633b7d5f2b GIT binary patch literal 2384 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%0AZtWr z)nphO^i;rNm_;QAB4Q9izzuop)~%aw^1c~FRqKY$jd>QGwmN}?cF~({_3G6N;L!rF z$qVT|3nYJl03j4A@Ibg2I)J-o+&r;T(e*SvTr5SZ8f+Ndunm(IZ2;hv0yLbPo4XRX z8{yV%z{AlF1{REwSW$$oTRPGiJ=6=qZ{dq_I+Uz%sG8W`gtZtfL@AySX`;FYR}&@j zwvjc%-mG-Wn?@RtBhxzB-Hy@=XxoDODivHMk8(lE^HgD7o}29uz$r=Km>=ME8gi)O jv&G(;DS1ksr~3Inte7zh<8AW#00000NkvXXu0mjf$I5Zq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..816282a6e07e44e9e667a42d5c4e8759b0438144 GIT binary patch literal 2499 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fb20bf4e24eb49d5b4acfae16c143e714274f338 GIT binary patch literal 3838 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 Af&c&j literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..41f74164946dfdadec10b1851bd68a6a2cc58b3e GIT binary patch literal 2942 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..11a6b755a2b887a911ba0833071d857352fd307a GIT binary patch literal 1544 zcmV+j2KV`iP)Px#32;bRa{vGi!vFvd!vV){sAK>D1)WJmK~#9!?VVd_ zV?`LptLuucyC}QL>WX&+7jLY)EGsK6?j~)LUQN;~y`+-XqD$2h@u9JW7Ao~Yi(>7I z#rC1JFV)s66s>}_R9tI)s6`(X!5WBEBE@Rlu8C)q#qH!f$;p{HC+Ru=!2d1zCiDNz zne)w@nK=aodHzWx68jY$63~GHe6)R%$>bG^VW$+87$v0)hoURtc4|xa7->8uxc*HY!$ES8JD+mKyYGWo4x<7K=Tu0Yb5z%)dLG z8I_flUppL*q->RymHn6j!g0G~I-~(ZLqlOBjOP^&hX>O@*k|?DPgcCOwROr2^DnBZ zs_HA-Wk+gVk6A6BS6f@#J1P(!vQ6uc$Kz$`Ome&3zZDl3NA*hieJox4wY9ZMTU-T7 z-@litXklUDpOi77Q0Oh0sb+tF|4S+m5-PtrXtmbw7$oE-VN|iS@ zHujw5uL7!qN*D19Z-&?F{m#fiS0E7hh=6dxmH?>MXvWA_Yq?6dd6`xE|J{NBoC4BR zZZsP85dijB_6EGXyj*WaS3t${cs%QT*)uaUPZ8feWR>pcF1~W(>vDp zV1q;AKOEi(E&N0_b1}oi!!Piacez}@o4FD~8FMTV4`|-aGS10d8-GS;<-g=B9}EUR zFcW~vQ@DiActv?}V-=Z=oSU0#F?&6b?Ach;W>532;`#JH%($sK03fa0Mw-7T&9ajB za08m{<^MGss$M`}91_pWoz>y3D0v{T_+@0!v>gwt~2Y`R|x8XNp^#9psLjV8( z000000001xBLLDy!x#l;Ry-armA$6vQUJH|!6T7~561s5wgZO%a7-ByM_JLpvqVR;!f181w6wfW0C-d{fRuxlnwpwEhSBP(sHpf}+KreB zq*%61U88vyhv5{dYQx2-Bax(3@)^=Wo?_DQ1g9?13z zxRDRShS@MUvjztTUnBtBpY0WJgb&i!*Y`3E&a7ZCI70v^6h3FIp`qbZ7@S!ikLOq6 zOh{!x?s*t&QYwlJ2mk;800000G95PzX+OkC2mpJvER5AI>ZL&0n13^|FW3)bwTqq1 zD+1tf7Ow(?2sJl1&*=t0%>%8kuX|yv*n}Lipq-wE&d<+30dq5JWMt%d830aFLD(th zFj-yf-3Thn6J1gsNnUz2G&VMV!cI=KyV%yG$;rvH(vP-Resp~4N9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4fc11e2e5edaede5a1efa409aca19b46619e7149 GIT binary patch literal 3345 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 bNwxn1+}=3eX&$w^00000NkvXXu0mjfOz$Od literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b094cabd1d164d2d71bd420993478ed4a355baf GIT binary patch literal 2270 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2385daf916c328a4581974f3793f9d0d48a617d5 GIT binary patch literal 2420 zcmV-)35)iLP)Px#32;bRa{vGi!vFvd!vV){sAK>D2?&^7?e%~kc;{Gdd8C^1}%wz~oOkLjx< z+RKUQO0-*AY0H)x<98U$bS3g|b-Dg5DU+tAru@gp$AgB4hr_O3y&84p%9WVG!NJIp zk&#e%KRrF|M*#>=SDW!W^)dk%Sz20J=IiS_;^pNvhfBf1!CzHXRlR}(gfw9uclH^- zUeAClD=Uj^Hro#*4A-K-z`$?LpFf|j6Nr1Aan@T=XS$D%&-W~uu0;O+{?~PY;N>ig z-+(e85DP{yU4dpnpCE#0fhI$uqoaE}Iy%z& z`}P z(9)_I2L{tP;f{`uhV0+J|5uX!96EHUK?8*4JjKo$rH;UC!5w5kK)`iMCt1~#H11i$ zY&PFCd?iR9S*bQSoPlL$XV)8H`$SPqb~}0pQ&Lh=E`kv*K0dxnZ{H08 zftJ_-c`TYG6vp7~?L9*Y1RD$HTWN?L*s%y|ivE|*o;{mO352aQnZJp2=I`6L?+=j~ zFEg%L3OZpGQ@M}I{HUm?Pn?DMcapSQ`jK>ZL}T{b6i&B4qjWAaGqc$lnZH0`VPT(> zoD+zws8R!u$u-*4)bs*Mr{GlT%*b&rf#RGtXf`V$wyP;WvmA4xi07=&UrS^e}ii%>Afn2e<4I&NPT+FYkO`_t3YThtmpaNxj) z&LDnB0f>%{?j!lOLM-ZbO#pc8EJOwX*T*dv5UeVOlpO6E4c{hZeoalyOQHe*b|}`{ z;5%o(r{f=cdU_Jo8qCVdYNTM?8Wj-$76(IBJs|f-yWRe=tB4=H0I>MJLXya~B_aPs z001&|6vdDc0311T@4Mfe0=-|ya9lH zz0m;3h1&xFTV&Ej3t0jX8you(ZvY^n+h_nFi9}8WEviTY;o>X-7#bRi;0=HX`Uyn4 z+zMFafRBlZ>1BNeK=G^6BE2Sao~sZ5c*gN%Mn=Y4yxe=Nncvvh_@drErKF_1%c3uG zE=mC43CEY^<>e(j{j0ULwTEdBHZn5uQ_&^{6c~}y0gvd-Ze$hi0TB$OgA57^`kF>x z<{dCxc0u<$zJ#Ts)(~VJvI3#FxVQpma1h1JBB75a0MH)NNf?k)YpAcUFP=lX&@{@R zA|fI_V;v0#ajHVug0ix*ns|f(0?u0J2M@Xdpm(T*@@p~?a=R7)c-rxgZEbBCY7Ij988`Fq zif{c*uO$?U)2dcIp}h}IN=oWC@QQSP*OR1GTb| z67zTj&$4DbPL!LpZTt=~N8lZ`c3^cNCuzw2Bgkvf940)inh-uu(!N4^)Ltb3JdBKB zpvm}#hK5{P{elo0T;I0tA|7%-2n-Ay;sF3H#VqZ~Cs_2azP>&Ob?2iJj_9M6q-Qa5 z73AmV*NW_6Ti8;f=thM;?!d|u_Ve@mR&-IsJK9c-ph7Tqw!G2NY>*W04AFLaClTDA zfLbeJxm*JU1qD^2t^zGD9#2xTlTj(u#4D*zF94`Dj93$tX;$dtPQB%7?vZNY)6 zXv!r-59%#QEcF2n08pdH2Ml-~wQ=SbjHH?6AE@K>EN#Jj4+$0LP9UJ8GcV0p_pZaec`qr4G1LTM4vJ%n%R^!Ma+Z@vs7Ep9jFsq;YqQ zaaXFV>4ZB((yU0PVjUj3DTFJmR*G<$+Zrvgz|)jXgP=?^!UdmV-NcO|pLu%L7&?Qj zCQ%>M%bR&Q`cVmr(;_PQP0nzo?ON0w%Y59CAvyv|azb5H#J<{u6FCS#Y!$JD0aSz3 zd878DCTD%-J!>|-dwIxD&`J_PB`CiJHSjR*l=m{Z%A@4y*F%sW2F`czJV7!!Wb{K> z1*mNS1xBFC3)EwPdPjucvO1l((J7iNA|_e5)Qm?2!b1?|Z!|6CXFfE33umTpHn|_g mm9bhbagdNag)kd9JpTY$dWdjeo!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1qt-3{3K#E{-7;x8B~}*d^>J!~P&f`9|l`x2Eao z3tN3x@d~|L-02Z7U`-pt!xtz_=~T(3W%O7P#wsVS#FyB%#8K0mc|M~nHl#k)T3 z_R3QA5B5ISn$-8jbH}}u@ALM=t-rr6Y<2nRr=Rwkc)!Wsd~?sr*I(~1eQs2GD97w~ zh={9Z`RSyMKLU0eE}u8YM=gFzc|}Xazr$CAy-v?paftXoKa~I6^UwWUr{`apHzB6( z*yE4ktxx^$%#dc}X+QiPDE#9s2QVZU{8$%UfBpB>_uuyKs-495_cIwt@Jw6x`pvp^ zf*@%IhK9w=d*00XzzpHhf;^DR80Xp|+$W#+_3&Dd1qC$?9}d|oAFB1AqmtCtqiDy( z(2&9?(d%|!`jwVQu)2o-Jo*Tgd%$ zV-WbH+Sl&?HF{d=M{$Ke9~0!AV)`D<6EJ`FTKn! zJpXvZwM(MQPoGtP*uZ)E@6r1A)z{u~7QK#Xi#xw6_CMn${@LdfjZ&OIF7$Nub6Mw< G&;$SjWBh^u literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..babc9c531005241fba7a844629e8acc4abff26a1 GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85sBugD~Uq{1quc1-Ct2978H@y}i3I?@)k5+r#EaqwPNDl4i`l zp|dJ2aRuvTC#&>zO@SltXBMJX9yH|D{-dY_x+@rRrNELy_|LMPx!Q_XIKlO|8H2eO0)Ur`j1~+>H&%5o>g(CiXowIv zvHR=(&Ube?mMcE_d)u-)mnSn5^)B5ok^RT{ciAfC&zCc+)h?``z2en^eP69x9Uqo; Su*@+4IndM9&t;ucLK6V=cF+_6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..242e42e206ac917a8f6f2115291f97e9ecffc2d7 GIT binary patch literal 3460 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6d57dc61a8a62c84825a83c8fae7c1ddcc6d694b GIT binary patch literal 1702 zcmV;X23h%uP)Px#32;bRa{vGi!vFvd!vV){sAK>D20KYaK~#9!?VVpp zWK|r;XSb!7AcB3V-g+pamW{2pjh$LC9c8sqM|XBni;5nkfB0WVt#&nEL&twPGp&}X z=z~6p2tG=P`5=anwX01#IS7Iv2$E#XbPsgvdb;=AKXcDL=g#jO_~GE(nS0LXd*^rl z|BlB4ETz-whf}H43zA)vtXQ%)b?kNNGtWwP&Lff~;13yqY}S0z_nsAWod=Iwu@FKf zNnl=d0KU>L3F`mBFLW6GzrO|nKb0yn0&9PNzkGRl`MrgOg%9TD=04K0`T6+|S65fx zIXpZpGb#jR_{0{?z`(%m{QUfMhL)O`m}t-wL8=$dK!dLdBOZ_6v;qA8Ykl z!Nc$G@4rI>zHFgTC<isjI8|ju-gD!^59u zU5}Ymi2C~aF<#(DqtSL{-bzbLw~@Je?1%)vp`qa$Uf_?6jI?6#i`n`mX?+nFYt$khCa&_zR%}7;Yt9vwDZwiGS<$2VC8#`kB>{Z z5x^}y+}_^aPG#Q8%F5z4&mZT38rum5gFnjms;Q}&BVF6m)6=EQTObhFwsOy8G8yEi z7tC^06Ricp@430TS*dnyI2^{|-?tmSWKZ%mors6@00k|1CrKxr#h`wXQ=xJku5ymp-5NiZvadpQn=7C$z3dPqdMH z>MUL72Yz#N^Vc-t>-gV%LY^;ZeGb7T-4n04F}uvuG-AZ*PL>h)a+0ojO|OMiRaLd@ z^ZEX)uCD%G2RyPXV8-(g4h{ll+>TWdOc+1#+uPfR7{brBP!@02!0+hj7-R@PCxbFw zvLe`jas26XsEtl%dS ziJ+71d>-NFvhw*Tum;T@t{dQ=Cv>u64B_W^AS5jS-QC?^GK8NC1%93y02DcjmCt9g zc9OTJpH*we$V^r?!GBr}0$S6~XjBspe66Q{YisKki?y1d+zv?qtBX<%L=)KtU*Q@N zfY#H$wzl>*=%%I${70P>U}IyWS_D2lEx=Q1>tHCxSNmB+pFJ(WB^(5LN}b&D3Az$i z3v|7{zW$ceo1XEQ{Xzf+JI_J7BbEXnL)(Kui@;I<}13!fkefWx1io&A^~!W%*W zx;xPCtA+o<#)lpg0@z^TaQKcIeAy-^C+k5Sj^JcJps%m*HVM9LOG``dYy1k%WupL& z^n~${FIwh%YzIh~cLV`ThRi&3wL~px_Tk0z9MPhW@ewe|mbl)@)EygZqAqK+TF- zsSE6YujPIm--YO8`e)x$M(cvCMwB(W10BM^oa(QjtE;QWY!q>;@CkbYK#Yu@C+q>c zODm$Rk-fiQjt4{|k7j}_sYH}bQdlc=(E}-w_6H~r%)!r0p#=X`55z>;A%jG~PYY5z zIl_iRF=4{jtCVq5o|$4}bipegk@Q7CCk0V}|B4`QPy{R6mUQ4>7Q{`~31&8Ha~0Io zg(7$}30I&~;R^Vfx}%wynNQTf7Zw&Cot&KbxrwU@p>>2pNa{qj67Zd9qUxA%I}Ak- w@NE*oXBNKXb{-exY)t5=ZiDc>g4XHuH{NepCC=3qnE(I)07*qoM6N<$g31Lx@&Et; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6cb63205403a91c1a22f1bc01fd498ae0da7865e GIT binary patch literal 1658 zcmV-=28H>FP)Px#32;bRa{vGi!vFvd!vV){sAK>D1`kO@K~#9!?VW8% zWK|f)$8|TU*r?rFqM(8z0;9g!Zbh}Ncizmo^R#)RcI(>X9h!*tKNFLUm_=Q;OWcvwFybI^ZWfb$H&LtHVC3vto)<&)D?z^hHuV zcyIlxg&rFl8-^l&#+H|tTS@Ckpn~q~?CcxR#Lw8?-d+s>!h>LDxlqN=7zkG+s`%*% zTY^wOFE8R3sTHuZv-1-X0ARx_u7puh0S^Gm)Yf%G5nsa-=srA!(0dmE6aMAi9EjO68xw*O5 zx!6T>W9v`bEyvvudf}Ze29R(YZn~f5Hg8+7R zc4{R62LYrH*h&C$7%Bls01|*p0mNdlFC+l_mZP7@efh$|LWcxkAAl2XcSAhviv6zu zUavPH0XTRjXmWD$P0@r#v2BT00H;NFLs)!Lowzt3q*jQ=#>Ov25I-7?eobpsya0GX z#9okl4wPE}q+Zb6+`I@?{HCU+D|#9fPXPR)^aAAbKi69qu1-p;6=r^Z{xwMAH#9VS zW#mgA-T<6eD^P81?Iz^2|6l-Ud?$7bYRiWP;0&~n^+-M+B!Ki9(MzOUKoCYd-~rHF z5&q~Iiq8iPfChnwz2oc|uCM^KvLZSam@{iTRsle!@YD;a$yi%jT0VmyzCi%|K)~na zwJHYrI7=uL`h~m9i)veydaSRn?|q06@I;df2&64aqc$`&^e*IOYey1#pqD(rI;S%p zvewnrtwDhh4u`*|q&X|KQvBPkPOyz9aWgYB7t71buk#F{qN3tDr5=7O+)e>axRsTa zR~1G1E4z@ry}cjgkzm^~>+kQM&;y~SrshZ6VgmMWYA@3BwM=_^`=_EpKrvz6@}59S zQ)A>q4V=_NR0xqs1z!1uq0x&yzz}a-UO9l2{Jxi=~N2VdL{7jV;3piTSDzP{)D@Of)A?vRsdC$w4 zc7aw7QI))UK%O7z{R1IKGYbeBleM5DF`%uj?J|^mTxb_k=!HOAw$NQ~0svFjknHd8 zSF8Nq;~q{QMlpf5fafy>z|6Yq%-1lm<4c&ib)m*3T1*wfSVp-7jg*)UHC&|c1T z&Bg=tVKF+=IIHwB?d43?XrSMU%_1gLRaIT3X!MxjBZ;E7d@CS?LZP2c>11+y@~lU& zheb@NudiPr{KkuV){5>W?H9P>+E_*qMn*>7Vd5>)i+4pHmpv?os3N;-5HUgRRzIn# zjYCwN07U|@I3^4X42)AQ7mZ2)HuMCwR6pTx_y-vSY>Ww+t=;wY^%(wF^f?okJwb;( zEEQw};b{}%D^fXz51Jp{V?g{1QZeg#L$QYVXR`nQzfY;c1)GgeumAu607*qoM6N<$ Eg3(O{?*IS* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..772c96e4e31b501c5ec76fd5838bcc98d7c4214e GIT binary patch literal 3233 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 CG6nJg literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e87cf19c072126f496cc1918a344fc3d595d8a0a GIT binary patch literal 2917 zcmai0`8U*!7yir`W0x2T$>g;j{i9$loppV zgOzCs;(;(l06=vT%O59t8U_X4G1LJnhpw#C0F%FwZ6E-!cm3y}KEF~|0AQvd^$?aJ z)0_4z{+3^P*~3q?3mEZtK-@5?k;R@ciRK!v9tjf)RGI|&uIQP9So`(df`6Ja*cK`(7(3p+{faO_hKj~%J9uM z8r2DIq%7GNY6{4YayvGp;JjqFn*ed;H{${5w_KVvTJVorW~z*VXQ>sodu51`p`9%a zhNN`FuCb;K21E?Qnxg|%-~CD8SAyoKV;)=D+S=|CGoLEMil(psEkT$2`=y#E5nM?>l%{oS-|5c}S zA`B3HA|fKvF3O4(?fB&f1!WwD+90Q6EI36c*p<>uW{9j$SJCd@c;8s>wx5R)oConF$N~qRj7;92o z4IeKyoiVP!N7DlbH4ed>(;u(Jhn`DX2(AvC9rvgFwVa}P)!qwMUVVEpocE^Z$bu_f za&9gb1m!$k1p5ujQ06~)S)@FCrcL7Y$c_q0r{sW1WgtH(*#_T*wr5&~(Br=jUiL+R z=hK-1gZRq<(+wuEX%BrSE6-jqyCAG9Y^qaj_NtBY7MN*;wFCR&MzNB(ANr1N7bGbV%eet}3nWap)(<%8F z^xO{6DVdrq+|n4Z-20-N)b82@AI~ZKn8>fRb>@Hf)Awo@E#SP^yZTxMQF(r0`M9}b zW_^8~%2>|>C_Y4_%s(uFTxMnt@+Cf-@7 z(C)u)6UEwJyhWSXL=c`*>}3+1zqpv6t{!^exmAQrlWcL=ehq3kloC%B)ciXHPq>=x zTz}9Pme#)&fB17!#vL*JQu{^WHQlHQX__RoI*Q=cw?7QUoa)18hramHnADppVuH1> zv1#Ci>>1KzBnMfPwM(k6YZRK%anv(Uu_`MsuO*1ktIETB2CX0Pnz5n&fj^QM+1L}_ zZfTf7!atA%TxWlQ>|J1Bw4GaGu@P%^W0-ZiJ*yTgKan2uIcYoe4UX zPVwsqbDc4g-P{m5Jl>f)X+D8-(}CX_V+Z^7Z}Om2c6>YZKN@qKQ!7~#&(U8r#&E_`BP-{gnBBhe5mZ=E04^Ak5%R<}G2W1JN+&-}yRp!-WT-M&Pc?~G2hI79d4C93bYPCQYI3X5QdTzpPN81Zj1@pV|TfNW`Q&udl=}A-K)Ha!dSd7$9 z{#q079P~IbMz2+!d#iqr5co+LSnf+&DB%Xm;9Ww*NjLsmfvbb2k>!&YgSGeDin59U z9FNf)pdROU*|$!vf1kiJt9c)A+PjH`M$TYw2pWGK= z^b?M|5ZteFCcq%^%5RS)+ry%bj?Xf?P&GSC-iDy{F-1!@9fnzY7DKp+VZC91Rhwp#Fh@Q4=k8 zIylcb$I2dkv)o6FmhpNY67cuH73ALz!e~i@hd$Yd5o`0&;Ep1tqPf!maiCgRGU^sg zV4mYwr5F%Hb)Zd4P9zK(?fkF=P$S85lxpFnmMBn6EssYKgWGh3Ou;UavK5lmygG9& z=L1H!3PH#4U?P|Pk!fQ`BXd37*RG?x&W6Uf3;1GPw2PWzr6~B-lDf!8L0o#l@oIMmr+YsoiTO_bvhXBgw{o zMparBadH%uptTV_tFQ?Dd5!>YD>FVk0TrdBHW5mlWh2YoN+I~UY zR6YA|o@Fw&MV=Lc`C=`Qx{3Q(W)_x(TVEk>v!dGSJ6}Ka6Q8x;r z4hkAO969Jr*~JSGdW}n_z=y)4pP$}UbHs1XHU>`DJ(^+G=Nt;hRCRGa?T$GYo#omR zAnB`Z77nl_^pGQ_FNPRJ)rv{?%K_m-UTaDBc=(^gdoQ>c`$B+_ou8%!V8FM3Q)%?~ z6-HcAdtnVmR;*wY>?kLmD=0V~A$SM!{?*23FK>bl0KKdPPvRuAcr-Ygx){rM<=gQXj2X IspE+MA2>mI{Qv*} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1af5c7ce4d8f5c83c0f596136ec9b8995874d52d GIT binary patch literal 2005 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d9c47f42180c8f91fa40e5d77abbd3bcf4bdb253 GIT binary patch literal 2137 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 VA@*_T;r3eq93@h$sw_Q|{|C9P$Q%Fw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..910f1e4c940c73334fe62ac0845f2783189dc191 GIT binary patch literal 1908 zcmV-)2aEWLP)Px#32;bRa{vGi!vFvd!vV){sAK>D2MI|;K~#9!?Oh8@ zTU8ila~pf;j4qpw`IvKabMvuG-NPx$1}$wVkF}KnvlMwW9o9YQG!g=Y5s^hP)y0sZ z5Xp>Wb1WlDGI8p%EgP96N|3}br&C1HD3OJUqOIr8Zt>E4PDkmz+}_^*BwtuYQtth} zzxRCSod5rCR1^*zIB?*=5oW{d^-lG8Ja-YSBmaJq{EV9bHWI8Ph(<<(BY!p_EtVij zBxne3L1xEC{*46jB9iZep5RVoIKUtTEg(pgfP6ld6M?57+rr4dgNsrDX-AG6aUMK) zuqapz3=E{vK9BsZ)iB2(>sN`N0#QjLYIt}!+2L>;j*pM`5O{-y*=+9Y>gvj5d=u7_ zzdaqDj>q#LjUb3#tJV7HM2P1jIXU^eQ>RWn!w>-``dMlve>zx98Zq77-5C~(<%>|s z_d&1M|Ju~lw38viW`enDn`~#XZ05<6Cv!>Eek&IFK4>(WA-CII&JaOMFkda?&*h?y zHrYN0(JD6iJ|rY0jFgs^x&zqM+asO)`CPOK2-v@We;GunROIvEaXOvv!30ma4gA%H^z@`NL|99%eOe^g%m-LDGbbnKBRPoYBQ-Vkn=@z5tS^77w}v5tjvyx7oz6UN?_F>M z2M!!4PE1U^9IoW^@bB*3yWatWz_6)zhb#GuxF`{jUs+lCDnyq8$RD+-xw*Nm0c`4h zVYQ`AE@lbMW&$9ZAgUBZ{wTI?-P+#Q*Joyk@G!aW>%zg~ucBQbL{DB`-iJygo{ueC zwtRj5{CO)wgpIPDH-q{R1+)w6?d`Q>WMrIEI{7{%B_;K>wzfJLBE*65nC$0$G^f7c zf;u`no`$H26!Lx0>2!b8*Vn(m5Fvr!=E<~~akLA8D1m5+H1c^ib-1dksycv8T_`pA zH*snUE})^I;dv4z1CdHT5C6DauD2N?7zjs;rF!fvWZBH>>gp~{MxxwewS1tycJ zyR)-1iy^`W!r_ciY~~u;2ZQR{wrxADX5#rU8jU|3KYrZK$U%a<);YnFKLgaGeITf9 zHk-SUc!5p*9g@LVHWgAX$NRjWL+}LcgHD_{kx$g_MZ%ex7k}2&)KoG=NW5l(aG=E4 z#>PgMUa$WRiN1E`MR9R)En_!T4=I>|JU%sJ0aVp$wO5ef@$aT?-@g5Qh6pe(ETKJi z5@+kP3G0qiY_*Qcr&1M!B79Li+%?uS5i{(p5wPX~HMEg#$ z#{3dics85uV1aQ0E6-SRAb;<>?EVW_SH z-361$^p#u?E2~?v0^mXn1yHvDaF79&HF80$5?Y*uaS}!WPyiGF1wa8%fZ*$HAr(?C zh?V`VSOE?lI<)iR#f#~3fvf|5!i5+v#N-noGc)rXH0hQL8ja=(PQo||qW~xX3V;Hj z04M+opgIAd5F9G;<$_r47jPkl3$clzsHmu+qN3t8xgb`bJDdY>4nP4U6Ts{BKIC6Z zj7>bog3|V0C+0U`m47o2qtW<1690e8drHr^I57o?p|qrb1-}JXk)56WiGOn@DE$@l z5j36FO>5V#U5#pQ>;WzAp;#lI-O0>*o4-W z45~~;f58LSM>JN>MUz6H8+VJ!35YP8^@1M6XjjBrrS70Ull2-}l_PG_UUkJ))Gy!` uXgU>>Zs6Xww^;G7J;Z?n2M!#QKK=tU=#gVCyehZ=0000Px#32;bRa{vGi!vFvd!vV){sAK>D2NFp{K~#9!?VW2( z990y@7ifKJjq%lLe5KenDiNX-TiaUPWuePUkN{;DBp~u$5QqlR7@!a=P!a->L@+@? z5K%)21PM~A32Nkn2@**VjX@Mc#1K&wyLeAnWcG5G1-y4=cJ7_zAK=T(aQ=5@e)pVn zXLLFhZL6!Rdu=w`-AG4~ofMq$B7U*XYDX4F1hXdK9Ek#tK3577>?hC?L1k z0~0Ev4vEOyZ#y!Ld|W0lUW|U5?Or@M3kwTRH8nN8R9;?QO+z&`HRa>u<7Wvb92ExG zY>!EUvb3}m5fc;hm0qu3rKymRkY9&~hg0$A0bGH+8(@$I1x7yY;IAtqBjbJiDnJJ8 z?J4?6h+NDm#Y0#Ky*cN#h(ry}iAeV6qbvj-dhTK{NPQ;G z1QP;iUIG4iuEu0C&57Xur^|2)#tb+^(||zf&Rbhs3q{Z!m6Maxf!`&Vv+0f?YGs;H>w4VDJ@N_PwooapH2uSMY36ciNn$LQ$jGnfHJng$%e z-5nYldKNv1f8jm&27}@6%F48mP>c?<8vWP9lU)RP zTPEB^d*plATl+R0tiQiMy`-e1(Q37}@ub4S!e+?0LN=HXmtd+bkoL~CP5JiZ{|@;2_miEO=WAEPN2bUsGaY;zfc1x6#f8ot7S;tE(%Q*M6XF5Ri#_cN|Va zF!K{6v?f>rg_k3#r=&@>0GNUc1N1gXNHQZJ7bNtVAfTW>7Z(>JvDo;sFn~lt?+OBn zoMuWu*xGhw+>c=Okns z7#MhtIROb0BFktr{tlU8<^&|U0`>_KQhFHR5!SEMP z2An^C{+w(%AXg-0ua3>~lmqJP>&uXxfFxJIojj8e5D?x6Bnts;MM7CwSzWvs0B?vP z-2c7hG=Nkcs}Tewp8*~`laQhWp|Y~FT0uba-i88sBO$BR`ZmFU>y$EpR2{p_8392R%u^8q zoaBUl5(K0y34NjEw__1Hq5TvyfJ8!>nVIhi0+P>wP1P|ilaSeLzN8uga+VWSC zQjmluCMM#wniC=r5LChTC~d$Id{mfBrk}M~1%nsXs)m4gBOzD~Pw0g9Q``VvNC*+o z_o^ZwEGJ~rItf`UmP<@O(jZ94B>}amj)0tz(A3maoYq#+S5;M2swM~IiiDPzm&3Kz zC!}Z}5bq=e1VpHU`KiVLCnVIZ6$2t7BGgGhSWd{HI#ya*dO<4&z-#JNNkCgw$FxL3 zswN<3Bm}*aTFD93*Vn&FARsTb8Q_hN60_O-sRq85_Zy)R_qa}N8+@_@H=w7dCkr}> z-TalrjjDbCOJ~IP4;?$4EL^@YirldLxRR5T^A2GhSP0cu(^I|;-Aek#!1(z1S;!AT zK_fRew_VMG2X1k3@#}=*`??;~sdir|{({mNEJld~(3bP00000NkvXXu0mjf Dn66b{ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..159a557de69a1b2f8998b56d3ebc85aec3203a6a GIT binary patch literal 2411 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 literal 0 HcmV?d00001 diff --git a/public/static/Cesium/Assets/Textures/moonSmall.jpg b/public/static/Cesium/Assets/Textures/moonSmall.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47f52522ea7501f58eb0cf14bd89e4f90c32fde5 GIT binary patch literal 18196 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eb1baa2d62829297680a99ef890ef719599965cc GIT binary patch literal 294196 zcmbTdc{p3!|3B)So=#MIT2)2MX$@_SHH5a5 uQswqg2qvk}UhM39cv_(sC%oWoy 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�+MF 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

    wyy2=a9FLQ8h}6#D77{rNRn8IRs)5W|CzsVe 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𝔒gs%v+c8CCNCS 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 z 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μIQx;WX$u4%gJFapyp|Y{1Dl@m|WUV^%GTBy0yP>VxX3}ctWThcyDNsDS ze&li0NR1w#x-d}_g3vFXaMfUAxk8}r)}AlQodusBmAabz2Ib!gC)K>0{;fD~z+YJJ zn)0*!tzpQ9=FUU4g(LA4{SMBmU9<7`oMOtwn5}v)ZQH?3n2{|0E#C$o+p8;JWRc+c zV7-#23J!x+Tb5k8;;P)Wbj=|VA7{J#xZ5{X4kKgnp9k5#vw)U5%>Tf{(d5nT1_w(Z za*OED#r<7PbO1^w!)#KFIv)j!|}EDh{B+-Zky+jHs0LiSy6GwsFuDR;K2Y+$5brYAX{l4b)SPF!O~LE>e*9=c++gscZ~0h=U(p8(zB7lMo7OG@**vWZ!MU_^%Jzwc*& zj*H_hlJ{Nl?5@a?NeMZY_`zR@erL@>3AMiO?KTVL72Ojwrbp>$*qgdB1^c8YoMjgS zY(>w|{U=D=c=M6$<%jRSj^g!nZR&}pn?Gvpv6PUsA&0Y?zbr~$+I7~=vJI+}4IJP9t-Ve&azfS1*-)g$QgCiZ< zAXZD~M0(t{ZD8TI-PnletUF1c>guYua=guL#BC;8!at&RcTEY9gAuQEn^MM-ih8?b zNB^wmj3(uy;S>?1?NL@eNnhRZ5J$cH-S$iN%>w)31v2!mXb@GvsGa62 zLF`4e(!2LtCdxZT%CsX+e_haqcM@-|Y=kGd7!nsw78AaYhbj8nKX3pfNmEroeA%Sq z^A5ElH`%@}0V6ML))%ci^Hefc&5_0eN+WVx(~h zt@-`Q3mwa==0U%i<{GC|=B2flZ48uu-F|Ar_Xx8Z+leNK+a6lEDh1%mn@2`AQO$5# zjH?(u#p)9yx5=m5{EX?9xBFSU6VmgPj$ZZ4zWggxg`O4;(RnB;NQej4Rh?cOHpV#?Oa0p7FFvrK|;ei?Uq%UN6b*(WpY(w4mDWTQ@dR?I9a zbf{mp=bvM|gMW;IuXu9pzNW=0y@G=lYTVSx^@eBVu@|7ZjU4r9>QdDEVphnr6^?a% zX}LWuAK&Nr!K=ZyEw|`BrtWwRl^mK|hg&a!dqS~uhj_5GLG-!Hc0xg0JT4Ux_;S_y zAbi_h<&Sq<4N3m-?MS6+jce|Huhsixc?7q_66Kdo-wym^G$Q(fTe~=MKz`i!mIFmN zU)DJ;Z}zQ8&gHZXg*_in1;t0!EVjp^@sGjpTc-wvE(3?izY;q_7`0;aH<1#L4^ z59{}+U4qy)$9>kr9av|$SMq_iHgVQ?Bn%SyDf&a!tk>aN!dJAW_k9#pn`&#k2L~%JR0oQzwn`GcO@W%NQyp=uvVcpI0n#m6;aP(#q1{OING$&s%i6U7(3*weigY zT~sDlSIAj(zGET1Jd%ZWeZkYsCbAr}lFED^7%Zlx^atHbY91O6W15GJEdyAij=D@o z2Cnv)oTnSd`!kN)`x1vjC)@a)-Z9683Vd=Ddq{S$q3Us&nTZd511Vc;+JpUXORENd zx`KE3eML6{zseo@PG&cTHgspROhui-+Q)FWs6P=IqTc`njjPFbtqk6}Gr8*x`h&}~ z%OI7f7?lYh&BUw^{w%8(M2J+6Tr(;}(2y`kZ6o#X3k%5yf)a&k3)u~^1a<(n@KEe=K7x6kos#(Nn#9gMP0+#1G5Fw3fjHm zP5h)T(o>vmw;W7BRwE~3U4OM-v#cDmF5Fb(jxW~xsrZy|gR}xmb!O`MT3TZaS6L8N zusaKmZATcsYk#Q}$B{Jm#QB@Vn?>~-=f3)+h@cMg9x4ZQ&Q!2KE9`LBr&|OY^8)j6NzFiNY@^k0`>tpG?ov;3cSMq7 zM9j2B?j!c&kuB0eDnh109hZY!Ldh5<=m#Uw_!P%oZ~-d5O&?^|6D!JwNW!OO*Fo3y zo|my2^E}$rFZ4)UBd(KMN>{F!`s_Dn+q0Xq#DH{`_r|!&nXx*G+-D^abOW z$c`VM7h0J;m^{305_G%mTRoe3BuKm0FuG9PWOw*KbmXYMuv^?RAiFMg;88De2btYK6g5rp8Wb~{*6Y6+3D(6V#t-o&)C^&Zz zIF#E^yEg>MbPL0X9k=+SI!PcHvc^SrPS!0Ng0Ahp6)>-o&s0|nC5Jv8YrEP1zZMO~ zH}uPmub;cMTc2=IhHVgYxe8kZCFp78Hvn`K`mr3}?>ybf7Bb)O%|({sK*yTn*;~Cm zx$7BE58D7e7WeG3N(BT!Oq6hrW5eKWp-!OV)wJ6H2m~;dF%D2OVT18=jsc2Dl>_)< zt+TZA6G&0fY5mQFn<-thw_9KB*Y7ZUtCwB>({$RF^C@0QKx2jlGf|SMh4P11{#z%p zNtG-48Zvj%5ah`zIA+XPz%a5LC%b4nV^V!0xOmDGN%O}y8D-&E-JB!dO~v>ZB!v=t zhbV0E2D<4@>uq;I@Aehv1@Z=RjWRIh@Bv4;4O>SvJ4Hs`gTHm7D7Spsuk5TQNZBPp zRr>7@9dp-8k~>Co%}GYt5o;FbFJ~g6xi8q@#Vg3~#qoovo_7RR;d}F}qH_TPE(c(J z&DAm`TICY#4*y$KaK%@>tf#iEp>mIybpLhM3$vx;L5+GHg5!NV6egA=Klp~J7eJ_g zA+qV+6#dXotJIEZOX$7NDFA3`tvm?_F$9I4%5ExU`N-GB zMhA@FpfVrLkP@O|Xo0-1bg#&rDXG{CT=Q!Zi8uu2W6;&Rnd{*th_v$Q<_lhGQ7NqT zmLUd1|9Q_^diNV-PKZ-4AxD<)$pgSRB#;}u*1A`6y~02AuJ#AtH=d**2NCbW$}NLd zeCv0{$a3hD`U*UlT2%9#Z2od|o|3BOG(ojLE%4E99?;KvbnHY>8g^@{R$r)}KfPqs zp=?bt`mR~EeD9tvzA@!HPVj+u$HmQV-KD;OWFh6{n*fcgqy}3%}cTn$S#*JoilV+ag2U z+38M2yDHmut1jU6)FJk3I}YTFZaB41qdEa)Ia4Jj@Gc0gs7{I%?{$5RHz|JDs}np6 z?-DV7oY$D20GSq4RL$PU0t|Ey0XatSvMGZjY0H-Vn`qfamxD(qB<>Yyq8mv@wL|{9 z_-lC!>1-A~_S&?`r!edQcP{dt==s_`o8?nXYRp5cY?H0zGe~Ui)W$J3-%+4hD+>K! zLq@(%2@}EjgedWO_GfXWE8vU8t>taMw6h7GZ^=tvY|2~|e{s6cDKwG3$h9Ad4b{&PCx=kz5*brIKLo^v9m0#N%~RAY zY9aL~%nm_zy}bc}y>wiFx<_z(M|y1eekz$6vVKRKmMU$_F?OQnqssjr)Z^JIl=3P( zAg0UN`_hP6oe*ygXOZbUtTuj#WA0*GMNx0-$7qKDp`=^)qwha3)QQ;ccT2`qU>>5= zL>WbzD(ZcS)KX3*+0ydOx9%o+8U;mqF>WB!t+ViFA#EI35dJdx%~kD6aKLgsz3Uuq z2rqP7KF7VhaY}92M0k%Ja{a$gsaCXKdu_FaR-==Hr)_oj@%0TGNcN4x@h68-2%@>; zhH4M-%D^RHQVqyZJKPpOg;x_COvrP2MZ^}SO(sJdedFkc{1Mg%c z!NBr|GS;Wt7m{KVPq*z|E2f#F{A`O_J)a8j&T`d52VZKz{rHlE_A#tHn&N;YBwHOD zW6j5!i_`OT04Z`5&GH|EJ6Lf2)8f0IYW7LLY}O~ldiO@cDLzxMwbM&*>y_-Kj71sz+SC?w%1lp40u{Utfa#y!YRfR2?Xb~ zxm-1bk11^h=(HDvd5VeyO2mDz>iD*KbL`K#ht9&r3FVFR`!PO4-q(D!Z(2KKlV0ST zVpk>g%-jd}>U((pXNhOc`L%st`3fyyzP??_@Whr$Q53l>YtVi}Kbr}T(o*}}R7n!`aoynWl~lxXdZ|=GWZD<*?=Ue{ zcQ~RjI(IMce&LuF(Bt+Euw$0M+d=8sGG!X5hkdzqVv=`~n+Yp}dV=fu(sbz524UZW zpaOj>o*lvizAxVCI&4*}zMj%cb}ZP3tJrU_SKguVrAGVpqHGs~@w_K_wwM=||FxUr z*fGts^o=*qBOb*(nrosQpRcqaSP)dzgBH&svEeH-`eATFgwIO{OYY4nM6#pR@gHLf zh*UfA5t?4av!K#4A;+T&zy8)k)ULb))+QB%j23R%8c2)@;iqHYQtfbqZ^vC#6MpYc zfHqsfyS;{pXyco>Ae5Za)Vho8n;o3Ug;r@b@I03P6V<+9bz0P}uMRUf?CW)K;gdPb zoW&UL2C0ShPe)2EMrUnF9dJ+%x-+EnM66uD(4@uBx_wsRpS9fDm3(J*b9rv|xNEb&>RiOItt9@K`P7uW2 zP&_A7w;)k`zG^X>#C98zHK2zeKjMH;6rIQ1gA1;`m7*1mx8FKM3n^0jDu*@EZ3w@mQ`K4~Nq_ZmA+Y=l zZ&aCqqqVS2M+E@v=$f|#(d~R_Kt*ZB_O`Z^bzDn`eysXbxqP+2WG*gH0u>0OePoL3 zr9al6gDtIxG9fOXNtwMX6YR(5x@t^Ky`QGba_Tcnt^x13F1i!ah zaELAV9!0FcJ5E}V&7Z!bF?me+nKY3Og#s0|&RwvJx?|kcVq??(V}y$<7GAoV?WSfj zL5od5L<}vqkwJ*DllZ zHHgl;h7IS*A661mW_J8UW4H=zTuGFAlK#(SaLM~v&s&@S{vZMVI*b-6opM}D9nsA- zSZax)<=$)3D5_+Kv~_sjQ`J$Kd`)!#t9PAV#~HmhXWnqwMmIX}FM$c4maAFEuguHR z0kfyDH|4(pb>kPaEv}s&2*?zV>n~Zc#kHDUCxcYyFlTYv3kTCIoDVGUh<0CRe%NqJ zPvio-v#R%Uq?-dQX`wl?a77jtDQ9BK87FI5iYw+9C%qleMS<6OfVagSHWfbZ1*l%4 z8j?PMSAxNJM+pL~^6-8UdAE9-l&s1lf+p%sY0Y2l%1j{SN9RyW0UCi=QPDqI_h#NA3h>=Io*~0bn z0l+_Fk`8SA$jSO$-2kP{S?PTx`0?AfD=`EYgEZ;9jv`V&4NF{SOuGkWE|U%Ha}CPG zm9M~sp9!nwvA1vJBGo!%er*WaN97JQjcFT#($&1bak@4btM_Hbv>r%$BAbMrD9yf} zp3xC|>#QP#Z-M%gfoJ)HBG2vyS+F7d8lh6Ft4?XSa@VKg2O=CIv8^M`2UayS=M!Mz z4%`3fG8=J9&7RU)wT;$4VCW2A%@+cfQYoZwup!W3!XDSDXW& zqo6@_^rHIx^DW8is}AdI?L+{2XOAp zo6Tclwp;s0=M&oKcbXbLC`_9ytSAo@mYpl|L+5eTA36QL%!h~8s#?pb!*+{)i#9Nq zwaEM)xY6D;oHXCE>rujx5^C#K=4?`nFL3V#N3ZeUAj=Qt@xw)#1Cu zp9bLWCem+Gw*MrnVQ0?Nj_FXlTT!^JBj z?bFLuPvm19NQFC2XZ@5#y(~)j1pTIKN6Zeq@QZ#cW(;H9HEhOG5(44IEJ#!@+o8p$ zIY#aFcY6`n-$cT{LTN6)aDU_P{)XzwfMf{ z%lW>^4?d#wFb3HNP=U;>|7Tz{yKVn_*EHUmIkSGE`K5E=>Ya>`so;qyTvI@H?%#** zaTi%dRgV2dlTW~BLOI8xFQ$%Wm@g5pW_@Zwez4xX^;?>UYrx1Tob7y3RMfcdWE|aE z1d+OV&d@OZ*JFjz_*Pz`)aSBgy)lE(LpO_j+}@p{U;Nv#?DuxPyp_O@<%l-yi-OOz4x5|2<2$ zY<3CFo=v;RcEq2l-^z2Czsa}%1rbb@QOSGFfiD>*7F_gieiYDu$>sDfe1|qaju{@J zdZ+dlXMzqBRN-}tl8SNRF+Mt8J=GRam&+|7xRhMBHP+p1p_>xIgp?eh50WfuRm8nc z4YS~BNTJnmUEHvz8i~Pb`Vat+3ztNOXZyw=xdgyfs%bb!MuRF1-jlP~_5l*F(z+xd2MVXtJQ!llA&m2y}c-UY5_$XjZMn;$>1Uv(nZ7OlnGb7VPZ8zC;* zk*7ldRL0qbz8FP-dGko2cUSb%(`(K_wWK)Fi z@W-hF)^;kxR8S#ajz9g+0ZIWY6WmIoo>byqYzVg}XP-}^6CB68zAuW}TR3l5H36!EZe^L#)%Wvb-QlI8Vjgcmt7es@*+jQ!0sUFtLG#U`^2myD5M_8dY^Dz^!mZF=#^ci7}<1RK8; zc&}Ma>9%nhvVEL(UiWr+Qn4WiaKh(6l7t(b(bGg&ImbyO^M9Wg)s# zhxqc^W=ymtR2TM?78i9b(fu>oLuYR|Ki)+$v)oJvYa5u0jI%cnK`I!ASE|Pc>@>cm zU=o3duZ7wMGF{OrTo-Q@7WNxd*(41$bqN0!Z&1P`KR@VW-mlyNH!P)w2n_6O_Tufr zpuh*WFtl#?Z2yPotT&HbRPKx^YzdZ+!fU@{{;2-Jer^SC1#szAEw zDKT|J4@^}E#4?58pW7BR5bSga{pZb&#RRY?d!g+nXZ!X(>%3E2t#a9@fQ&`zYd#%5 zq9C=FRPG9i^ zxv$iEARZS{1(g7e(xB|}yPDcj+CF63_*Hlwa$LGLLyBn%l5+lE?|)9!=Gd#~*-4<>9Ri4)Y| zJ8qet*Hoo{ecLhiB4l}c2_rsTkf!!|J^z|>Y=kzX`QU9>3gJRf*`{|h%Bb2xx*!^v zLVqbV&cjtg5GRbjAT7*m0=iQ^KJZfcigkR;UtIlKp|^o0FT{QP%F$06?QFvwi=ndw zkqgJ}RA2qfEyTNIqlJWcP`>?GzMkVW zlpCo=qcGcM8*D@+Cl8z&A_G#@D`!@xPvUfa)Nud)0G2)}c(X8!a-Z=QI%W1gA0wAl zzrzD3Z`yFo?MX9vxqgX5YW>ROm?S2+Bkx8WMcry2A5Vn5EwVRst+ga}jmN|*#PFK66 z+T%XL_K)?|S}l@l`E0vc7p~69E=8$YsnLU+KV`>ehPmk1M1T|7oZSbD?@hl&OJ{)d zz3>NZf}3_%bY>-wK;H2D2hoWl+4eJMUA|3hJNW6oaRKH>psCyU1dR7V-|^<*S?<}Q z*nqVFus{{$FIS(7^Nb8Xo2A%)(dTAJT+_Ikn%1FQwD)=L8dIX^fW>b;y(JixLke&) zU|v}7L;FtCll7L&e(H~OST_?bc6y6qmNnK_MSVrafFwrd_cLlAD(~D@9?mllQ9%vI z=5W3pqw6{I-B$vjI7K{h==7lpp z!PQkYjwFXRrv8fcU5bCo(culO)Z&-$^K`rC+-Sb-pPzR&vLxT&ppjbu5AK(fqu>Rr z%be1O^xw61ECQHTB2dk@tz*TEyivp8=>Tc`P36(? zuO&16N-j=NckkPVDPqlAvu#l^xWHvCjoX~lYUTpzY5WWZtQ{R97aMlD9433whe=k1 z6e>N)BQHDPIj7Xt2ClpgO?;MH89 zyP?O7)osO&u76EifW}T&30y8dR60-*DLANU0Y!&y+Ll>#JgA-4G*D_g@!qis-#+{u zk@QDgmKz2j&HmoEf1a?Fz8`XI_a3jRp>aiW@g#|Q5eI7ZPni&nKEF^t3SNrwNbMZ! z@|Z^vv)5AIt|1mvrY6ECd55*mvG1By!iWlqfr!)n9vRZozdx`f)hZfqWXuC$oge_M zSMsxq2Cai~G-x?pUOI15nz}eVf8c1`^H0b+`d(DF;eqY5K;n4 zY`@^aXETH4bFL>r-{H|E$SJdGDnda1_4q&GHm!fL+=ur$uDSj0<7FfBIU|3M*-&@% zO}K5FZT~G&U$H@;3`G7{pY4`y;IZTZuAW5-w|M|=HZj+A+h%owVzK&#AMM@C6*%La{Dj@xbu`Bs)pVeI$Iy4fGNvAG)zqjICo{t$>4lXD#CE}L zrzVlydM(4Nj&(xw4}cw2Hc5>x#p#cfccSp*rG|P-N-fb$@C6~PFFfe z!u&K;)VtO9&xB~8t*IlPp0?>%P&W2%2XC9=nu%@>E>yc!?Kl#BxgawrG>Gh3Zn493 zjW2t*Q@$&$Bi4}eO1GyNhgktZ5ubr?Rb=w$b z!t}w&CwzCg5e5~zA!6FlLLNqp+h3yWr>?L!T9T^B-IDhLV!~bj!VlENUNDO-F4x32 z?HP7B=DtDYOEueD-aCWDxvzs+_ikC-gWB}>O}_}XD||44PAh8G4Z@YBa6|CQM9C%u zylwBOGs7t_!`QW;%~kZf>~$FScR;ut4$b)syeoXO1Ke3%TB)xh!^hsBucL{6SVkFG zGx=HH!k1R0u=W7Khj4TxhCts(L>E7#*6>f4VKegE`Va8>chF^+P#f@SAa{LhHk3_` zS*gGzCl@D8i`}0+r0|G+S|8O>efjlx!e+J=YJLPz^vR;-CssdEt=sc|0=t5P z$2_gW`>Eo8(YM8_puet)2XRDp190^f!mgu*juR`{x3CXT>r3zj&F2G-W~k()w1JI} zPZ!^2^7*0Wg^TIO_tWg+a))QP9r$)Q=?ly2*LCGR)Pr2&re3igj*a|LKP_HEnW{oS z>@6M-6<1aRN=dF=x4A|I^a)?KLl*gdQ2g!d3^ue;Gkf#q8&9gorSJ?fK?CVN6aBNF zPsGZwvlwSRLIvpRw4up9uNx&z+c-!6T&9HpZBol{z*5>Bo zprW!fxh-<=1VNNko%ni%$4}$ilM;?Kw4}QmULW8|uZ>(lIbw=|+%Vno(t-<7 zneK+Qsv+t{4#xfy4fJaL$ufOHa{G4Y9zFLs)r$Od&GRuR>-_)Uh%j_M2vWAtGkJyw zL;fD&YC=b9%LC^Pqo3oeX&m}VVQ@2WmvC*k@_pm#OyCabc0Y%Ev=VNQ_aHc$(QeoS ztpg(XXg}^xgdoSxFahD~8zbKA0z~EdBXbfnh$~>BTM}Muz@OXwEM|aem7l<*SPEfH zelGx=6sFP_{<|iJ{hUyt=qHP!fQ+jLeqf# zA&RD(T$;CbVkvYku>^yAzru^mntL}Pvd`rIyfwypL3`M=77tY=5nvJ2e+*&o?@rdV z{0&=N--(XcS72UHbY-mBGR zf?{n2uxf^i^7Ed8HaaoZW74Vey@H}R;OURVYt4#f7~rx~&O7J2>{NH2H1W;SDJE6eGhONc5O(hO(rF5sQlo$82sa)-?#_GdhmT9^jR!lj2p zr@XUSPEqzl9nq|hd@1F+Ly#}YsCS)z-1xduhfB@iYC9sVSb|{lZC!%zRD^f5lMB5o zFtLEgxV1h$wYne33p+gtYwRdce@i%bt3##H%-41F_))o^KSYSa1SCM}afVW<1yzp~ z!;SI)ztq-42zac}`(*HI{|Rd_)vR=^=!1ov^a@*N{N6`ly`4#A1s+E1SEZN{ZM>5c zff|6hzaccc%Y7{$-!m_tEqdsXv|oSFT>{HqQi?a6Qs0NqKY*SY#5@qw;|Fnfvbw(vo2f%)q8?!!H9dp1g3R_=E4 zko`O<9u)T5#K?&DB(-)Q-yX^pSNs@IJ6Mf9_=#ybjeHlltXali@U1`TIhaIVocXim z8^4TLHu&cq2Bxws&Jw#2Wx03Vep3~y49q@j9iy=ER=dAC6*;7|B=c?S4X>*1o=Ngd zcNgA9gdbKEY}8e)@pGJWtY|8oWeI&1-7MjjRnqYlXNV`GR5Mle&2I9by~t{&Pr_qy;Pb2*@%9UbM&YS?hi3vJZ+tW47%CmC)sXF)G33vocM9J z(F`y$ejlaW`gC6&!_B4raiCM;M|$Vmk*Rv?r>84jjAq$rAGF;>R_$q(b~H9V06HJ)(o3cEg28)O zH+)T1_7EQk@94)~wJUO}XkFgZS8aO->-~-GkaglTt)mz1*vf8CI*nUJwd$=mr&jAd zeGllwxbhA@<>>phjj48a@BaM(CA1IE8`l>{m3);HDS#thW^pcziX1B3w^X;!()gMR(qgx?_wilZ-iQ>XiHRieV=XUrAw}B?nwu zpUs(w9rq`lFO>;Zn#;(9dPiQ%&1g4g_4FU*=%&;5-qUV)h6hkr2IF^%%2nk1HFS%# zyY3v9^;@bT4W8M7=o=G^m)tGZKk&k!E=_l9uDo< z$mtUj-Ru>m=VvroJ1s@sBPCDb)zO)%hY;81R7-WKwy2S1x++4)1t%`N^;vt^R5@l~ z*S$=Bspk3XZ!@^cMlRIGvYq?8_PHu9TGcIJp%F?k3qsP)LVz}mupZ+2>WDFWqo#L) z4xW*6JRNKZx?H=y?n;NgN=hlTcya`ukR^9^X6c3V15Vxo@!;|;X|V%s3j!RVu}o2N z5|yB1T69#-0_e7kfUTm5?Ets>no@*W*qdC(<`3-uUp7Gh`24?&S~J;C^Y?$b_0qbs z=$cX!4>f+O^a?%(`3ns_;b+1BX4Z*rD&@}qe1?6(&uzq9luG`Z&KMIr#Az=_VJe;d zd;@!xruw(Y=ztJG?%0aa3;US&|Lya8*~*AhPl8)2R?me;85B-u8zB*QjgdLM4uuD% z9afHO(f_n)0IqNE2;6#sPeZEou;~AzgmWEv$Jt!5ZR)~JzC*S3-Odr3Ih-9bI|(1F ztgtBWP@y8(n-5iNab`?QY?WEZ47!=aB}{_MKj zig!Hh;rbrx?3DS%$S0UJgqd)GB|6D9%>QRnv2)#_Y`SHER7&RG^I!7?zG;sU>Xu^! z?ppS658;&I1%8qXi$r=>EALkk3_E0=v#a*yj?S-YJ@wvvVo1-pDisxQh#w%Go0j7^ z@D3>`p%yQ?az51q5fj*mDdFHq@HNg zE+bOA!K%WVQZ4P?&A;`{y}pAt6R^?N;!F(@k`gn49x zX>0E%2lwy8n>P(!Ul_^$%VUZgDbq*`nf}O%tDICYmt0?!au~BBm|}C0G4mdQ-~3hO zB}rU!{5LXEH*X#hnInPvlZQVFNSFQSlJ1hz(o&!Hb40+=H4mqj2weRf(+U2a{U~U= z$fVzyu^BoWS}+;qWD=4vzqb*k*7YFdQ*Y4CZiTOgZ{*SB#K`Z5pPH@tN&xCzgXXS& zzAR%|mahwFDlE^hn1?#a*;-C(_b2pu+zu{HmqaNgj?}$9KGtwUa;dIBnAVO| ztTmkj$SYBF$o)O*PqQ{XOoOx=`0K8U%BjQ5*vIv>*<^&1i-c#^Nq=DO6!t2%LUp)5 z&7$AsMd9~D`EBc~?g9$3DyJ$y0$m{u@bC+!N#<&y%U%1HMy-QWGOzbSwcxRk^|?nE zUn5i%M?^b0jp4B69Yf&`nQWhwF@*CSQ=+MLb$0)A%djooz6JrqvUN4gN1Mf7nkN8~$NkmIgKal0$Hdp~Q1}L$+$OAT z(>Q3t+VJiJ;D|CWUe+Vb4`ukI8zu|JtgTaYCK)+95iIjxZ`p*&i%Lbcth%SYt)uBk z&22Z&7{0aDX|gZ4K7f$(ZSFYTg&!2P=`zLKy~A0Yem5;75GbaHk9P2qsQ3bQSZ+K# zHK?ncRhZV9Bts@Zsra^93pi5w<^ZlGwP-W7VS_95yrJSot2^|m?bP}b+wKclIaM)OxK9}b8%8;hn4b}yL9tp6=W_~1#| zRJh6HEr!`JK6x3Ec~RJ@)Qxj0xx znV4xr5WYQhJBWQWR(JBW3$VO^wid%z_{WcmTi?B}N~sNBlN{b4cf_Zm^MkcMcW>WO z0jt7ObVjJv({l|S7pC=s77)dCOTk!~ON|o7s0thv>P13~Mzb;?y*#?oGHIEU|l{K_^=RT{wbr4+?n=s`+67pU zBU5se`1jX})4kjNJR$h#H|M zlIunzOL9<^n&`@(9rEbOA)r}=luOL=>24GwJ1MnPC!Yz|?cENjY@)oXVq_h6hOCiC z<2yTLsj=y_3&z(KH$%pYxJH>H=$jWSyc0F<=0u+e{N4eV>=9BaCJ#B-JSjW6*dfh`C6$>hFhSgtj!{^Z#py zaL`}5-}<_bFR;VU@5B2+x*Bfj4%OfVqL!}H`yZ2Zr&<|S{j8L{e0D~n;l=Ga7fEj%?r!iiqyDv|tEOchwbu$Dp zf39vZT~s@3hvjSKx@J~pCX1xyk+dCy2&VoO{DCX74%`-a12{+*r-{`St2z}|*msb2 z2*zYYk>h6u=(&SPZ>%ICcuF>P_7P3P4+YW!n1TRlIEl(Zfs?K6eU`4F$LnRU(Mq)I zDfH8_$l`;G_GCX{z$uRYRvESb#(R`6?=U(6*rbHR=;t=$Iyyd@&40~MpE^s~jcXR5 zbu~X7s%+o2<3Mj;uyB6pU5s@tbGWhz0*_haobgyve!YHH=m*5Er-x5qKDQ0r)b$#1 z{In_&G5581il%G5u@hCA`@VI!=wz*Bs)}P|8oweMhQZz;_1N&pe%IMK6(C6i2Z1+H z@x(O=Jqlw}L219ch|PZ4hh&c+sC2;7iJUHY8`ySUr~q{3G%}6$Vl%9Y8IH)gR&(+l zzmIt|kE8RB zOM36$|9ziXS=mxkQ%{*z&T^LXKAD;tnhO*hnHxfK;`VzgwVbJ`DUQr7A~^sRgp*s5 z%z-8d95FNp?u~l?KKJi${*Z@{&xiN>b-k|ZdRBg?Yrg9#Fi2{MiUkEU3bQ67xGz$% zNle9krEj_EYEsRFhRoN)pXxd+$|L(?nlH@uX6+#!XWXp{c!c_@&&5O5Xg$}nC8DbQ zfH82IjqRa;W-z*BSGScYLncs)wU}DX5sQ*8k=%xkHh2QqOjWo2`16C$x9>2oH_V1L zOnU!tztK(SBThO@5&!!y;_xQexf@lz|IuDM4~W6xPx6$LL#c8-uI)ki`(rCoJ%u*) zBm1ycuE}<6-nC37{9a|GVQeP*O08qrX=4dr|E0yy2$t;P#PY;Oiy^FP5nC51rT4b{ z<&F2W$W;v>I={JDKrYjKPtWeo4t`jF);V(R73 zPN8Nwd5KJ_kLoVAz3Oaeb>#A3=aah5^2ZTr9`o4g00Rv|vXze+X|9V9a!~!Ud?fri z*C(f&i?>MRi&F(8WqUfzyjkxfU#>aM z1ipc_`!)$dxo5D#XH`tT2nQ60s|hbA{$s@8aV3HVH$kNRVrd}m1C4%ln(h0d554YPq(A4#Y`@0O@qUtTx^p-_b zKVT$6u;M?`x_PST`dd1(#MaF#B>J>&w2O67BS)^ObFAFs9LQBClmtCf{Jr44n{Ujo z`*7LJQ!J~qd$~n;4#)j^;iFNjR$(t^nwdC)#H;!Ex=KErB!mr1^^>%|Y);y0rR2=z zZn;Yx-XX|0UR$W$^bW-v#=|SU`TG}L!_s$~BaYPxO3aR9%r(nkam=MS28=KQ8e*vF zeeGPD*5u-q<9k)PR=lD8M?N)=bMFo)Gh1j`m!K8;QW?$q!@F&jt>d)jIV-(h`Zb}0 zOv~8kU8zagLZ$9fRb#gassw?M7Lw$g9s?XO%`QboKION9;`Crf>N48%`5k0Z!|Upg zi#9cGzb1zaVRwOATtW*wrl8>`Q0V4L{Yka4KMPJx`{vKNIR{b@!Pf`g2a{S+h3|e? zSG5o&m2vQ|wy&Py$-?T;(dD4BQNcc{P}&LN4O9hPcAtiQN)dX}|2JFq)*r$QRseRl zu{#=^R4{w%*=imlA!~BaG>Mv^kR201&_&Ptg?;^OowCE!jb24&K4AB z={LIP?#|!!7(m5|9S}cJ#oo_Q`gh}(#W4b0v1wlxA}=Pr;wG>ViZV^5xYouceohS` z?Mk-E{ocn)i_Xth%#xtGks)JdNfOc4AtbG((66N@Y|bcsVV1&5@3Z&X&*;r+b(4+F zf^hT%Ii>Mmy)vVtCtoid^a#83F@hmX^eOh&?WF;!!Tk@O9j%kO=`({UNc*Nq{?-1Q zkE_+3Eeat7ZoaX>eD}zG9+fnxzn%!pmli0s>8=e$jTLxia`<&}x))}s;CNFCzKB~! z5>%BRaA-kX6ZqO<&6Bwn_KJz8Tv}Hf!`!{2!&c13Rj1%(#~82}cn(2+!0+T#zh9(j z4wnrRZ=k?hjJD*P}j^%Hg+!LXz+>T*vepGPmOxs=WS6n{Pwb-G|iR zWzyX`F)be|XbRm2h2ww&u8dyovAl`1{<9TFZvxCu0vte6QO0B%`1%}Q0Zy$e16~aQ zD7ACV?Eotdr8G{;iUPGudgcS5knOwH7y2A`b6&u3ravc@KvH`6GG_}gsO=1ANja^7ysH^`Jz}i)T zxb%EofG9iy68VY~m0hi|vO8>|5KXOiuYqIv%8p_d=`uUzppmEJvIW<Iv6jeT-bD4_taf!{#*-G6<-jI zl9zCm_b&i!p^V?eh^1%|KG+Dmz1fi;i|o-=Up#Fk3>wyd}K8cPHWwE_7m~+*Cv%UC;=7A@o{#ytIe&8y#06{seaz# zl2(qDh(bg$=I~-r(UF)Ul^fHH2f~h)uf^l;@>zBDQ!nb>!e|rkg63RHC@}nVVX2`M~ zdJBK%>F&3uY_TPhX1hcRbc|qyFz3A%>2`fq<+-i?k9d6N<(Zpm zibWWN{vZMeq+1cPY=~906Oz}pi!I#C1^PmSXEYvqC*4hr?e_+FL80cPi7mM(N^O-p z-qXhJXB)Ys7T>|hY0G@wH;GE7{!+Ak1&`i=VEJ+N>&WS&#eT|KjJsNYR{v+JuM%R2 za%25IkT+`ngKDL0_jr5KJ@&a2cqY&44|&37coW4#rm_}Z>d5L3iQcYS{F*)kGLBC8 zd>ino?~HhJuG?&haBiWI?*sLejnlsaycq7@M}d)ldAXS$ko+5fuhV1$(Cvn%t9}ug zM19EE6A0nsth0!dnK66ibnT{7t?HolKy*pYKS$Oq#9b0&LpZyK2wH-Yh+eM(A>)(T zdkSu?txgxU|3%};A|_hmaI4b z>I8$X9VpqM>h$m^;$=z!am7n9sOJ0ExyHY;xu`p^qrxPfMTzY29ZngL0KMqsQM&{X z6zZ}*3Qidt>}M@Bd8l{pPb=z8^jPste;=rcZG1FvG$9dY7LNFL!Yy}`olO|g}!j5c^THd{LGs5%TL`2zIrG}=~2msfk#NtgW6KzYb z3Y%9vV&2c(B;4xIL=%_Sj2#xLa_C`QbvsaZQ!BFb=2P(T&QB1U)tWYF{N&M?Dj;V4 z>OCE+gy{;V@Aw5ujZAb5Uh(~_zN7et|9m6;-MStiO^jD`^z-6z@~(1o<-g4rDt)7G zbn}yByqdQ6(L9_8&Ibqa75<8)shc z>a;ORo-*O6i;nz!lpb}HG`5O61XWVbHsa|7#1{%;M$W8DN;WpHa0CD6IiDdd68v3r!6kl;0fmIHr4o(um)k2QM{_OS zMC`f~ZWM?6hi|$)9HQ^4HZog8SYxlLDW8`pcY;o#J7q#N`*6Z}_0ajpQMATrpw4h> zWu{BCLmI!WflXSR>U48c8&kL^h3YWqg8*MN`$9^m9Y*s|m(&m$zLHC-8V2x_p@oxw zeYZN#vg4?1OK?uL)LG_|6-xXszh+__a~oEK?8XG>9XL4V+^w9wV23@=P7*73v`3eA zcv_#~cKDW98ua;k0oSwu>c9i>xOsZ)1i@-9xtF%?mKPM zo{?~OlbMefkSe7ba6)F{+~g%yLll_Z17A4UgiE~^p4|o_siTQ`+_k&TARPH8s$V#~ zSDvxzz18Y>p$r^ZVA#Th)U|9isd2J-3hi0iTm&TYFJeREY{*|{t61FjKnQ?;2hw4d;gsy*Wa zP_!2l!i#w#A}o&fwociB<5QL#K95m&+K|m}8!@=2e6H^%jvXXyYsmkT5<`FdK5G`h z;3b@Sw#bzux=9eh2_3@>rma3A2A%VbJ921{ zw-ZdmTm^`v4GCU^@2ON}L)uh5M&XUrEAc*xj1UBFm(loZ+r3RpaD`V zUO8O#o@;Yg?`-hpynh7MsD<}3iDbI`K-SZPSOV$+i7l%W`cQAS+<7d{zYa>aR=k?P z+Q-7o))?u`LL+1n%Ayi>xlGmx6mL0D-+82J6DzHo=YDvZsYfL#ImO(l-p`3-TZ$se zcT!!;dpSJvKDLCmrp6+zDo5O>Egvm*Tw#2iMkd`myCSOVmcQOAGE=L)hCkZ&=+Oli zIXziLQH~&D3d;vtVGh>2WWwsvv(R17(|ihMP~LCbgHWv5RiNXl*p`0%EdEepL6WOR zN}6$|TB3FkH6yxW#?cI61<{Sf2?kC;V(9C#_516Kv1fgITvA#K%z3#U2Ztk{Bf&fe zk=eaFuX0unX~5E0qx4E1R)RBBs_*3-bZCm2!SKnuDtI$@spN2VgNMk&9d|YrzQ0V@ z4iB$r*?^X+XY%2Dh1lOgP|+0HxAJS)zB-g8gu@fH11fp^vq#(nDDv|JX-6& z4%VvR2kjVcq}1{_$pw#l$G$=$#Z59`(J3;LgdTl(g!sc_FtukC)EbE2{yN`aBELT& z-0+RqRwcHjBmO3iG(Sj{HEmzPKN{WEn^ZrJ01ER(Y_u~7VV=bQJ;43}78pZYpN$f3 zZ8-VI8JW91=)hTqwTJDOnnu3-`%X)boTLYC{KBd+MpP_ z<|M0EklXtXnh5~Fs_bFARoSMA=d8{*9aG`L)hM6+<6R!xqsX%rNYIz(J`vbfH-!ku zp26+mHfMATZx)w?d%imrpFg|X_;2}{ci147d?{jWYcX#xnJyc%vR`Mq=Ol)D{w2u! zLfsLEjUA|UJUf;)CHn1b$**?@9grPT5Y$&fU92^ci5xCQ{gG`td%PVIUERH^M1ANN zCTbIdrT)`4qfP}#*Bm8;CUo?Xo=C|&*Eo;VY4IYq@mqao#&0^)<+3y|7$tMmaQ+&w zb4nmU!X`4^#yBHJwWOfFU93FfUi}QJnSGcJ*dujHq>zpv%6?9m8po20zaN&b`20sK z)6Q@G+=~`(WcWCRRVjFvC^Pc*09fzbSGA zoyb;iIsjiNw4V#Uh6@;PSlD3QLj3@HDyY}1_$jCmrxPS1;^p>Qkvd1Od2POa15g35 zIX;u@kk&b>O%(DXs>Tjw^>W(0EOJoZhq_%UWrKoi7_qBj74~KX=FqJ~y1Npb*-T>vcdIFrwjW*gGcj@eocHpip@PDW0^JKbR`I zi^qC>tkp+^nKO*bGAuVfuz-E38_WfN)kmwYsX-u-8|SZFD*Yfqw6s@OSye&Y)IR)s z{wcpP%xzM~b#0&F>Qoe{PHUL|vur@A=v(fk>h`0>(RNAnx#kDiFfv3b3TI3Kj0F@V zl@LALYY&nizV%)>ubb$mWC_nYJS+1J{^{c2+@ zKZs%*rMZJer+^k97@Iiz$Mm3z=#)~#;HrLg?YuS9e|cX0;-sf`5|iNLH`V5(u8|p~ zgFdme8~+2ou$`H_L&`S%_%H)7R$phu&85CS29#e19tRIjjMnuEh`&)LJyNLwx8YjKtiE45Q71rR)7- zsW&A}=>03-BTm*q2Z*3ynXUShAIT$N|EX)``tF3uz)-U}g&RTp#p=<*8=HiJ#2bR1Xjejh| z78Q^0xJCrca&jnx5U|&(+ib&b2W*y)w)K# z%0T79ufuZ&`sEM_@l<)MpYEi4`8Fh55?~^2fldbOcpsh8ey6 zYwWiQaHJ@ua;EfR0?sM$7y9(1#x-ZGCTGFB3!m0A+xWK2epFqiy)XH=ORHfZgZD0$ zSzSHVQA}M`*58RZR_Pz7{848=!qfDa8AF@~Yt>Jscm-0Qy(?H{m5ImIs1|Qg; z1=`7X7UhboJ_qAut2tMi2C9>)2kc{3xAlMvuK1hW*=%>f5)|DmT(y16F0?atrn*5S zfJ+#3I%+C_haP-U&tfk^z@k_tD(AyKqAt(Tx(F$)0gk$SC8LxWXqA95wzJ)Pk=38M zdrmVP2Q$5(QP%s7BfF{_S%T3Ore)--ZfdSeVuKH@F(Bqo`%TyIgZ)@H=e?i{=t`_f zU4|n(el(j>u`8V3<~6cir?o25YHx6%e^0cqk($m!pZbC?rEdWLnI_BE86RE*_&#fn z1y1TD5hRcAD=xX~F++vUcm1Q%38hb#jie1$nw{n84cnHE>gZzS424%JFtTz9NuRa> z`!oX;CeL!tyQLa<_-LuB`B9!o>Zq9EmXJbN!p0iEbn)^P0@mXI1tS&_|2kkkMkjf1bu};2n3N6#vKL4cotZg=|WJ0elcId zLx}CTzMleG7r6h9hi(?%aAJnz{^O?n&HCtj1J5dHkuM+1V8?s8g|B6oo2J_KElFG0 zTWWUQwfz`!n7^Mt$5am&Q@(hZfgPXJtc$}uF2I%L+*oOlByJ;hI_cC~^2!Ywd&;SN z&8?`2SdJKYKg8i(IY@{f`oXx_nm@5%#l64{26Bh7ZIIA*ung( zQ~3n;OHW-y1ioQvwIFokup*XlWy~{R2Y*SyAmJR_9N}DFt@$S4(GtGSKt?B*=gXe6 z`oQs|ll|X+BH@q&g> z_WYcM*MzLhh=E$)qwzha7OrCA?#?rf_>=F z#!+E|uGe$^jjSU;MLm%G{L{NHZu3OyQ9av}hl&wDM)%oF>Ji)}@?f~T5OG!O`Z|8l z`e<=P5cbdhLZ9tCYhv&!xT!L^`s2jT;aQe~^a=L!Bz+d`GfYM^RhfxQ3nU{nrsG%} zbkFl{Jy#R;nuLoGWEj+2x&{QFvQZGIXB|)e+X@enIpYT%WtrG@Uc?e0SK2^*putZ zOh`+JCjId>jPq21L)S0td&MEZgTo!r$cmErNoU4PzQDE!21)O5Rmv!>3|tr22pC~T z$|4FTx26bz%3Xbp`E}~i%E|xarWagqadix0Ud0vyO`IhP;{{jUR7gOq)JEZV`(Dgk ze!;%@`MJRs#btI8o3rE>H6DG%z!#&IeJE-d0;ueRt_5Q7JN4&voV9N|W-WKb3jNs|uL0?LTIeA7^5^efK3!!k3A@q&KKzUyWSz%;QH$-q+p z%nL1Z5BqK%-$fXwy88Lsb)*w=z1Q!H%*L--C9STW66)~YfLUYz*0E1#^66sl|4~tS zmpl7?_@eZwZKdTWEg;Rs`9uU%%|mMac0l$&qHDT#I|Is|_Z&cEESqA#wtIXbRjQDY zi`Im1AQ68@e|gz)PFpAhnmQ*0Q9BBF#>2}^c?1XbRo8yH4ybocsjie13*-S zH~aGDd-_hS-~Be4mrwRH>6mk2P*2c8IIMI@W{|Yc1Lx?`$(A+;xn_eQ3Qcfzj=9>5TETf#7D8w|hq6$Wi)(&%g}y9ysLN zVFt1UW{g@#@&x1om-+B>@U0DaM+D#d|sk>r|9`wMCxG>d})&B_4Zo%i2`CR zyc^Ra^w+MnspEq^gXluAG{lbjFG(y45k;X*l@vW+Yx7x9vm&SAqVX{kT z`;aC@O|wJYc|i9`f`^Tf$}-#w?Oz;JNr!X$3fx@*qeD}k^(Fl&)97WIZiI*OsMnbD z;NbuO71}Q=aQ&FTUm&)BYAr?nGWvC%(I^3@fBVxF26oQ#ZJ+)m1V~%OgskUvc_igjl%y-uWw8wPEIwva&A7r06`D&GmxoXvAc zq$~xv?i}*e9Vm@4vLDteg3ZYvYD*%Ylt$$}K$&~yl~Kpb9v*)m1u}DxOJnWd_(Mwr z4pfpssrYKEZ*HZ}!9=>CnAxp#C2Czaly@fl0gRDtF?#KQ5bZ|XLF)-d!FH=kvBw7F zGH3Vr-}CeRvXU-@`{4Bx@+&h{FkOx8X|3+;2OIhzp1S*3ths(7;Y8Nh?jz$i;pCRPR{xd1{ks?_y>(xxb9`m^xr zd;4ljmVIKrSw;)d#mAyGNzz$J#K8-n>7Re2K9deXF%lc9hRun^@7zE%bR5AEy0$;& zZ2}tdm8L#srVN!Cyiu**Y@7uT3Erey3wdAqis2KI5Gl_Nl(Mf!t=sne8x14vx{olB z;tlQ`*;6J`95$hRfn|BN7x+}+wb2>e6u`GjMB_P(I7u0z+!$r?#&^!Jp?2rj&t6K7 z=k4!xAVVq5>y@OGu<+cBDJg(uR+bEQtrq)jN`c#!@Gmwm(C}JY>Ye7GCx|+d`@L{G zPS-W&2XrVXVP-ib#Y>ccK1$g zR7m`oMnAU5#!$>^%FE`BO&mX772F}3t4)dR($@KotAu!;jp z9V24bvXB5Xdo4Y88HPkhPbNNLHbfldJ&Fd*N>nMB(rhl`uWfwv<-w5j%5sC-p%v@4 z&OQ_E-!L}o_ot?5IdfX1wV;O5u49vwzQB$#=bsbgg$%cDmO4J!+tg$Z&`gLrQ%H*0 z)0(WB@Z;Oed48=!5lSh1`k+0$>@{|Ip{EkLb7VV#x)cBv)F8qFIAnb>ZDt?TwTsWx{48FBg%_WQ6bAo@p83U!Y0s-KCJZG%vQy;!B+2e38`)dh@7 z&O*rRIa$a5{!6Z!)wvWVa}T1>E!iOkCTTB=%q*|rpXUBm7Z5R_&yN(i*yqpL&ESLb z?t!2-j++PX_mvmzV#*D;bCT0a&VZ+`3sQMr!|&{ zP#xc=3Yu$znt2C^ZJ&pvR<|Li;@IMyiArN^Z0hOMqu~w**F~GC@b`GV(*F=rQB}jb zBd$-<^$zQ|bu$XX*n->BR<}GUr4dcJGSO4V)i~#wwMK^yL4sp~LpI;WXw^01aN2Uy z;m5%{oQx2FtfQh!`W_S8eO;vn3Ltxh4bVCjQl6J<0tav4V4tb_W+SAx?tLFDZ{ea^ z!ZXKtwLtQUfC?8-yMj^S0_0N+$*(?k{*5U z=0`cyGX-eis#9IPz+ZPY@ec>uYO2{k5_~bcWQ$cG@#{y)d_>*6_NKrU60GhnGkmtv zCmCKKf!0c@$4(R(OK-MP2CI#7qCe_=<@^47&vP{e7IUwq?RE~zb7#rZhIw%S0NCBc za`CczJ}%UUo%;0R+*!J`y}p#}$6MYikbFar#d|Oz9CoiPYo|_=+c`0j$+w9~jV!*w zVn;ho9!n%GO8Kh*nzai$4>1$rS)y-_%9jYvJ$+x0G;-&->*#PQ-Zo7|g@sM?Bh@Meq>yoRqKm>*J}=(o zFnLF0Lz{W+Erw3$m$WkTF>Gav(U?Q~F?}K{`_@PI`f2sRK=c?~k34$og*K9_igx-c zXbt=%1+N|ig_g)AJB>aVQN+Gx!(Vz-AjWbHvF>R9p z#{R{SrWM>7m`!rexz43I^DXFX?C*%PwO7m-8;67?_u|BH)+LoH=SUafz_E<;&Cay^ z#!<`KcV99t{(i#VLv*Nz-u|O`tqAIPj((<7KXikD2xx!Bx_9eTpCDSi@B`8~Ts1Qr zm1l?f3CG&=^?tj8`87r%uWfNWEf;IZ>pyV2bc{b6y*XEV12||G*J!97jg`pcr+x^>zjPvwwc751&7!zs@g1F7}QBPS)Phs@Gl6;XU>9R9_V*0k09 z8^%A|A63c(w`}=0HQ)4t8|3QbBxKD)tGo7A%hYnzw1O68@-4?SVwH#1-S)}x9`V8m zKmn@{Yts`V7dh-zXTMe=p&*+t@z7_LNXqb4X>8j47@KiJ50}zyMckLfpaj!ja=P{P z(@MfA+P``J10A4dI=8k4KTE%aJRTk*v_8X8r`jjnZr~7>aS}yp^Yl2HrpT!rs#8BB zH~eAXs!V8mMX{B!ly6X9!IYavAbPJbP}z`*x`VJMi0O|1?0NkvY-|xc}Y;s9f&a(v)5kM~LQ=VjzOdV;{ z_|!L*E8GDraf|k}A)imjibZ)-P#n_Hwre!$P5H+66MnhWjfpD2Wf-K1*=>qnPv~$4 zs>ZJvj-c;&FxzXbJj%AG;+>OTR3~Rsh)rK-H7L%JqjEs^2Uj9q`i}{9*KWoy+@zXF z`e%~96l_L4fLqYuXFiVHnn;aJS2>t$w!V#(xT#IPc)vuU*fH>C^-+Yee%F$5N5iJh zlfG$)!=zNU*~MBBJ4)hvg7{&SUS1Q7Yk^$!;AcHuxI9lVL`Ji zli^i+Ua0Dq<+$!MGpW2< znL}QeyEFc!hp~yhE_HXip>uY|AYk`=Y~97ZB7IIZH_~Jt)cUJjiR7x=cI%5oe};uk z+veT)>v_KRUIA1nd~%ak@Ey&9o7G>6T$5_U8OtRVmfviuCNW?pI%_F$WmSQ}q&bdT z&v!&s-Mdy+IxjqC3(jAPxm*M>wgE*0Qxq#N;njNqKxAt*$bxmO5%eub4$m~EU zls%pqysHxE+=QAh!(lyK_b^tzg}2V{#(n|1P=z;U*sExwUxBPB*CaVgDMJ)kk>SH0 zslkBBBi|v!;wR~)b6r6=ha$&Um)COrVVA0tM$frNjIHa3(ZoBjnJuh=L|?E{-~n*t z_)HrS8=Ebc>?0GLN)G%2@rOSu_CLYrYDD#}UPw_KB5~8=BXD*4zZhqgaol}}nw9N1 zWYz1BtnCf~`4Hpdyx-{fBjL&9^>1Em?Fe)|q89qlzTDLge?MU!F4^3CA`D(KI zE~%k^W<19}!X%n1^O%67`q#4d0M;eN`Tl@xgn}-DwXm_U`xhPXeO#E7_;6@ZfQ+qe zI7R{#P$v!QZI%9~QTnl>D7;F8*hTwRvckm@O8iq+_2J#^E#ti5o*eeH%263aum~+* z|FsYS&b*xq_3WU92S@8?07B7lsJUo$Mu`e#8kFB3b9}8 z8#|+dlop7)Zp@X;H@RUQehS9BnZ7t6O&>aAj0IF7qK0AmfL&3`5`8a zzDtLcx<_ib>&;vjR~|3`JVq^RnTb$YXH#mzO8!2!zfVQwOsBtvqml8WUY%RR505nu zQ{xp!)iui>J$mRlFV~2)F^aEuZ9vn>vi!j_E_ug)OkObGl#NyE zxPQoWvDOO9c{S$o?7%3<6I`X5rv+~3thkfLtXoP0;;(zWXw(&N3EYTnW~B3!CF=uK zLv&BCWLst>WRQ?8JfYH^hfRJa%&Fn!$|%F~XUZ19p_QGY-<+vIa7w&# zzMUrzV69p&L`vA}5hOLwY(wwl#Ez2q(OKED0}|6UaUC8w*zitBT7Od#V6Wy*y2)g3 z&OJlrx)CBgE~2!4vk#T;ITk_EQ$NSt5!%0A{Q_eH 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 Ql)4Vfg;7(EzyCA+|7<^4(EtDd literal 0 HcmV?d00001 diff --git a/public/static/Cesium/Assets/Textures/waterNormalsSmall.jpg b/public/static/Cesium/Assets/Textures/waterNormalsSmall.jpg new file mode 100644 index 0000000000000000000000000000000000000000..57b19d8f46fdc4a7e6fe249da37f0fe9c3c461e8 GIT binary patch literal 34121 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�MKo&Lj{(*y=W)D+k z1YZEH#0F9xPW8@d!7WkJiW6+*hA(mNPqZ2%c{BK7a+c0woL$drk`<4n2!O_H19ed8 z$rzra;(iBZ;fv`07_F1ZL|2`FtlHTd20aMdw14T*6aFh*PV1$n9gEEb+=&O>pmYca z%6;t}Z#{xOp71OC3A=wn4G2Bp89OGP?O_ zbS?UdNk6>O>3gj%?O1#{zM@$}Cy;uZgnzsWnvDAPKQh!CW2?O@*2?8}8krk@V!N}g zhnF;E%Q3bq_nXsee^i02EOhC8Q};X+GI%5eI)w{Y?na^~N_gJ|YfA}xhP>B35Fbx` z;G9Tz%(ADmgy~+v%^aVnuXuA3l=_UAtW2oi(-h-!+yqeemXg zG!~8jXe>3sVvC5hxylqT%7aNtoi(>GfGr*0V+1N}6eYM6AcD%9+~2GXRorX}iFkeb zq7lngn;bKvMiN|DShPZ`4lukH(rPyS;LV$Ikw{8)b`x7P-f|)~*pB1VtGUWt-})V_ zmdLALa6m!}0FWqD2Bq-#Xu-9TnetHz4<>OTy_-7K=>@`G>-%XHsC{n;W9kh`SC6j~ z8;>0cpDR!w-DQbcc;yJwIs>XtgjPUsG{lh{P(;ENiZ7K=97q=2Ez%>sk(TOFd(WLtp(O%*3};DM$7_N8cG zgK*s2c*o9bMaFYByd$48D5hwh@5cJFFm&90lq|(_<4VfVr=5{9G^^Xf+@$3EDm~IU z$V`-;l={xM{5rt1z(>{~YA{fEy0EWvpbxmt{dh}c|B-Day@A=Ss#yIM3T$*J0RKqoO1w2Kon~cileBf6|pY{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,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",mp4:"data:video/mp4;base64,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"}});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="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",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 0000000000000000000000000000000000000000..71328587dfdfaa13f30072ca2bd8d658938ab415 GIT binary patch literal 500839 zcmd?S3!L89S>O5p|KID(`@S=;<|2(WBhC5$ElaX3S&}V}<dJOYKelAq%Edq^p$)BR zQwTF6MB_oE5UfdJj7hjSCQ!QjVL$FJZL$!zDP?I&xd@t;wB54ix^(HqZCT1*3QBgD zQkus5{XOS@d*69SavZ0GUCZ;H|9Q^sInQ~{bDr~@Tky3{eq$H}LHKm-wkN`C;k75C zYx)hZ1^Nn}s9iI^oZyKDzvivW&Hcd><|S2AU<CyHkH6*p%5XaStU7?(xu5T;{JV53 zc?4zLATNmEu_7{_+O?;yg-<;(Ucf-5S9<ue3cV+&Mj>6N5(jU$;uY?LSpb-<M&KLJ z%n-=Dz-LFnm7sa;JqqG0{PytMJ)PeZ{j+d?__g8J1`U4yd=T;b7lNJqzCD=Y_b&z^ zzh6gleQo&l7Wxj0`3=E1kkz2g?^-a&?_~@9#vtMQok5G=Zwfm6zRPmB5{&V^ZuvZE zp&J(en=PNKmgl$F_q&5##QaMZ^II)dYN0DZ4fsPrli!Ce?fIb2_XUgji2Yu)IFA}u zj|H{br^DY5gD9%k+x3asSS?s+H^Q(Uwi|I2MM1sZXg0#A7VZe6Fr2K_+KnBJuo*^C zzd>Ly-fHwZ&9R355BE+kMp3KYsRto>gx&6ZIMv?M919z@RwHcH$)ORDRR49F&3dyr z)~nUS`b0S0>_)*@tKJA}lf9rhRv)X^)d6Zz5CvVr?7x1e(F}s|@$q)MU2nBo^`Jf* zH0nVk*gX?WH=FI|n2%Wb9V34V4Qrt?Q*IOc>aFly;eW%wMk@?Aqs`3-9Iu7xOTYK4 zQKxl#JG>MH;TwYW@QuMsVfd!tK=|e`2p<oAI}E=p_{(AV<-sq7V?PvyK^k^`IQ+Na z%i%u_KN<dy;kQ2g(8^bQ`QH!C`2{)e{>S0F|55m<@E5~>82*Fs=fmsaxBOiAv*FK# zKOKJa-wVI_r^3G*ej@xk;ZKJDL--Tn-wuB~{9ED2!@n8+jqt_rW8sg5KN|k`;YY)b zkA#0c{A=Nlgiro=;q%dlqJI)@eA~A@7g;GP^82FijlSi3qVJCWYWTtE1JQTkJ{vvx zozXMVcSJ9QPe<>M-WR=>ug&O{@N?mR4nG_Ir|^%${}}#Z_#eVQ2>+k({|^7J@H643 z!y9nI?}h(9{6EA0BmCdP|1JF8@ZW{M6aKH^zX|_!_^-l$5&p~YpNFSE7=AGPKzN$} ze=Gdu@YllsB|QBr;jf4PEIj?I;ctY$8J_;1!|~^Tru+Nhy<vFGK_M5+$3b+icFqO; zqe<8c(@*@)^r478P(SCw9i5;Xb~^oupyR^MuS8*;L<9tBeJu$UtsX}%jB7yJYw`zt zJ#{4s9#L`^tR=NWQ9X$qPJ1b8o9m*bsO|z+UyUR3#Z3Y$5?HuO)_9a2U_BvXmQ=2* zD{1H=OIlM-fs4}jTyZre<TG3ss1{vQQNk(-(pQ2v8q&3^X}Cs(T=4ZV$fbK-xOO$I zKk33W+E`0}FIWZm%HkV)!5%*LS!krtkkDTYKr=l{z}ZLVJ4uw*H}GHoo#|DfBno_r zZ>xza3J!*dkmjqNe(Lw8^>;@tSONbRpLzOZE$DQb5UhWD=QH#<q;Pc3Mdy2fs9;h9 zSr;w`@|qK+wMPl8rBM|g0;p915madTh)|@=0BWUUf(I#oYiaFD0_AH|@0IXM`rh|F z-M*ZJhO>)YeGQ^2oO+Upz;&OR1lEvp>SWo@f}^xsMBHt~E5;m@!I|++-#cBB^^0UP z#n)W%wUB2;<?2_`x%C8wi&Ce2!xvZHyScg9e=2T}9ZVF$y`gKItj&3+@13@HNRT=r zQKnNKi<f%P-36WZ*TdR1pquqKi#v!N_4m>6lLU&vYLP*ogiz<}=j8EUE{G#BQIv)k zmC*ZeK!eV3BnZ@IFpV!X6b;FuNB&L?*y)g0&B&Wx4^$(_ot|4w8er!0fOAE0a-$0v zne}BI$Y9;22pS63UyAzvYerNy*qq32Ukgjog8y<$k@H{sm!kdt>(Ekk$bTJPiVpj) zV@uI7|8-(1I^n-gEk&pN*O{g03^hBq7K@zcAg624TOcP@cymt;VdWb3VXC$vp18=> zRdbPz27R<bHu=|*`lSkJh?3-ZB!G=YKfa>n01nqzZ8?Cs2207YsZqxE?cr*VWK8g5 zQ4~HEUb`(wUx?O{=Kg@T2~FgHQN%yrA;TAw#<#76Uq)j!R>E&j8Y}Ku*LWJYpSkVK zt!HkOxuM*TzzonJghc6PJKd3n=?i~#idODF6MEq)NeFvfjzfy9!*9X?F6v)QYVtMJ zivrh#mDA_juGv4;ts6N*#C92@?_>NNG1C4jk!ld!XC-Os>N^^NdA)o`@`%|@Qo(NY z>kbKDh*tNj7g%8#o^KSIZzoQM8bX--E?8d)FVxSa;bbQg8T(=i+P_V8B6!vq7-l^b zb&Ckp%Zo^f^eh6O-A;e?eCMV2M$vuOT2GPJ%Zwj0YLayGV^j1iiN<C+yB5dv#h;*m zO+%~+fH9&8B6Z^l>zMHb(I#nP*G*fiY3*t}k$!6&XB0l>Cf&4~oR9BF1IuAd`F7ID zOLWmY+<1CDyu6CPdwDe(Pv=(SGj9A)w2*Y%u{RU(n0!wBdWP=~E$fb5Nb70PCoS<} zNP0$X*I`guO_iXt#%KTF9yjjjUke=?7<glz+^F`)Lol03jb<||0mFjpko%15DEB<; z8D+^&9h`i=9XFomOI)M`xhTa|gadSGG7hIrn#LWYDsahRiJ-&yY8$KZeG)=<SavQ_ zwIcc2s@5HRkE>cyR(3}qNg-nNlX2iZ+C;G=yZ|D1l*Jusmqa7e_F*$BK;poS&nI_L zl!%TylZ@-DM!|L0SdDLU6AZWU131w}{Gcb08()ntK%--;X=6P;>%S(}<J<jLcRhA) z%JtmTJdT)QK3R&7)4bzpExxCAPS~oH<7r)g7w6+WZo(b8983P;-0O}|T5`ZmT#oNf z!+44sA4$V2$wT6T_+h*cowrZ;ExwbCW7C;p;kcLFV<L+vCNUmTA33Q%M)3F~9o6j; zcSS_3yW1FT#CYP=I!x_$ZN$?I0I;(~Y_Bq|jl1dfc${SIM`^T1ysL|RfYM#JcNGyB zAEaZC&aE++TYoj)mE}hF6EzRhK(Dl}h>6r9lj*fLfGPo};!ZjqPa`!c{VGUI3#Vz= zutDt{5uaS8X;$wJl`6Q11a*_D#bnyQO1#PRl~-z4IwaiXrq|+0pUpINJxLCmkyN@# zu$iV}jX3cs>u6@xikM6@vP^E!EpoDSL=P1Kb&xsJ>EsncC)37Syo+j0r;V$L5biV1 z277?)N^MAKkZ2brRg2h$@+9{~)K)w6G388#^^NofmG7)m-0N5hd|54}y^(J2`=Xc9 zrIeRzU-V-76tj8ei(br(in-qUqL(wLayI`k7+sJUZHR@p;V(5gEM;ugkVG&JYorSs zp1T_GaEGqJu(2ASEPA_3()v}YJV|`8;|`)p#$BA~YJAX(o9Nn*tNzrTs4<mi@Q-^9 zcevN-_V{#1dbK_H#=G5)8>2VcFcrIdS94*|ur3^*puhI7c3T~UVBq3;jT`65WGoY8 z^;glI5M9H9tY(4?A&0bFlbkrGF|DD(kA^{fqT?PGVDG9saXJiMyM%juI|=u;*GIy+ z6RSxF!e|sj>NH&E()=1kGqGpV_9_EU&_QHWD}*u<NhcZWnLJ9FOQ#T`0WocOVEFj_ zhX+kvG(2o4;%+${Y-~rYP1KUtWjugsG#=!Hu_3bKE=V(ZJ%&Zbmy|KeREg;~^-SCS zczC{7M;k(4>L!d{tBK8+OouXllfHy@XbROM7PadYCkE@$&2URX{!q9bC4c1gqoj?@ z;~L)}X|fApaTb=^10h?lP6}DKEHnaP9B3p3ye73HZEGYSPd7u&dHqoBd8?7Oq#SPL zHB$j>#D+wZ#fXiL&2XwglPp0yZ6QY~%nLh}X9Knh@*{RxfE#~x>?|dzlXQIn-E=~N zdbotHRpoUmVb+F%FGdj!Ux{)w5P>@M8O<<it4XTq&Ea0X+tj2WTJ6B|#_=7|7%HzN zo|)fd@gnJ*;&y0^)Y(`~dU$B(F2qJ)!R#9tAm|nX<M;ic=NfbibpVMrcR~&Bdlp(~ zhw?+sCnwzAwPXP;nuJ?M5wPoTxDztMbsUkH<;45koqX_z-aVzP`^h5lI%w8A<*g@k z?u5-s<`EA0aAvx6HnffWcFl>s<FmnRI2+Yu2ye~$|Jwb@v55(WtJ#hV8TAgWx)w#v zy7?nP9RzkB3EIh|oUx=KDFi%1N-(5C0PtXd1r!3RZD@G9it-0drcee^IiY6y(%%og z@~nsuxrn%$Orz;)S~Q(rdn{%=4e3vfUVxOMp}MZO9&2)j?y51wN9`0*QME0qnTWcI z1OHlf-6Bpmi_`6-KN`l29%QHXOnT{uJ~qYdfa#;W-Sk60VcxW{0X9H7d4#mHvA&*6 zyI%TSmZF<JS4QsSU>~oeL95MQ2a%w9FhT03zYgDMQbJj4fbba~YCP)1T{<w7`}JTQ z9+`%o#-_7wT8hl9>&iejO9V4IE(LWwk`uD$5Ncl`%}33qyeX5$V%jT2Sb$I?=~MGT z$BeIk4;aZ5Fmoh$P@MhT$2}eJKVbe(6odeDrV_>1a7ro3WFY17ttpRHqWF}?KMhY8 z#u?~>tcNTj6KF!3DSbl>H|2-wuA72zA!K8CRjjEPZ46=zk!FY*#F&MBW$D(840^~K znbt1MuO}oG1smy=N?`X&+PyFjw^qW>SHh27Nskd;uZGW7!hbHjG@mv%)_vZT-Kdlu zR?BV-l^v#oW&7~5>@XcH+lQBBhiO^1!YI30DO<+WqTbD+vZJB0eRx@RG*q?^FUyW9 zWh;!bTa~i0w3lVKhRUuDmF>gJvTH+S`|z^tTBYokgx4(629aY5OZwbTPf6sY<Cif+ zP0^<j?Giq#>6y#Y-w`}xX*+GD&9s3vs+MA!HOZz3u47TA(m(h}L%OyPVy&eJnoR%T zJI5?&I*+u<s6k1e$&yT_pDAKwFk*Bb1&^upkBUftR7A>PL_+MrvyFL+O@~cCS496@ z5j}%hsR)c}^!I(#V?CL^@7Wy53^pqFXNu_06wx!-sN6qLME^h$J%f$P{d<e(-&;h_ zV54$>zKH&O5j}&A%KZn6=s#FQ&tR*o8mFNP)~%jeyrJRY2BefQ=%Ab2U~*4uXk^L2 z>-ZT(8tDz_tY{7T`y@j9(>@u(Hv7smAVvD=O5`quPF_kn^Aa;AyfL5RD`fbvphBC_ zpgQZ?^=oOM4vbKAT^ip@eSB+7o&aPScD%f|-ej4j0V4+yI>q?ldqXe9PV&-AQ|U`T zJp~F>%jBTyl}SMPL+>}KB7fxl*3;#$d4H=rGoT(!s<YIQ)I`y&4reUsQ4^HyPT38! zk$>yBFAJBHG?VQbqGTZ3!}za>?j+V-h&L%IA9{z8EDcTvO`$<q8r^Jko$@M=YfMDU z;29zqrK1ZBJh({vc*@2O`nM05&%tOEh7`y)&`^*YQ(pL|H~w8$9s4w6E(oNb@m~5i z#ri?y^3}9;g<d-86`?;2uORk?ZWbrHYI2WgwT<-D6>$V~q%{yl4b0_N)=?*{HH#$m zB1v;2y)M2?&!YRMo1d)_J87J*=HDbTnKS-Q2n{L2u<WM|jarU|A9IK%lN|F1v<D1x zhDzN~$&jcdDDl?h15*+Dm}Vg9<{#!*D7MN=|1FtWby-j<aE~_9g)7+rs(6b<oD5~U zlUOgSwjY`*)ND`<Pfd8hXCI+Yj-Y09D>W-gN{qInrXpKCpqg5zrTip!Y2+xa64*CY z)8c<$UTHtDmBj55i~g!umIcE}fptqmPe+ub?mnN*CN1HqYHhb1v@HLEs4Vgo=}V&e zNI6k!IhsaP>z|p1*XiHml|35@;aYVm50N1B9lGpS#>b+2&f%_iq2SL(`tx~!Rf#aT zdR_7?viOLAN#k$Y?sMT4>7<iXZcKb*l~4*(jI2YOdDwbV^QuBZuTXiudY>;!tgA37 zTa;5%IjHWwoI29_vnoey)J><vr3Gd!@t5*ain4eKf6#f^dWh0lutxxGzmYK|d|>>i zVDTn67#%#bWOT?FQut+bFyR;FbZF*uP*abjgU?Q8aw}(m4xT?UI*7|EbZ9DmEvG{( zr-Qg+BpsBOQfxy9rL*7xI<&gXyACrAymvKOq=u_*=kcJia_AYk^%eKb)B0$x9P=No zl~a72LLQbPK7F^k{-bExr(RrnC49fTNA=Kf0cl`XH5e^>j|HyGJ>%}rl51AE=+hc) z@AonKl(3vd(JZqXW!Xn*KlAj{+90A*vbm|`B6HJ@Km&8r9y1>y1A8%%h5~K%iDHhr zpup-JRogw1*;~w1nX78agWSe!!n(jXqjbGh)_(kylm($|hKuO2X)8;>=iGv112Ihv zx#<LV*3Hq-Rb0W!#!;K&k$ab%;E%55-cas6N1TC4vG8Js*|RuIrKS|4myO1~c(%Jk z^Q>9$XGHF&zyCcwAX_*h%s3**IU>qAqV^@r5t8_DL~jd6$inbiIO1jo2`E3gPFcng zC@HkFTIWh)>ZNbzhB#tto8`R2?x>r!9C?Z(q_&jYOIuE5{5GZBt+iR|wbq^zM@$y& z4cGJ(hlR)xOtBQu@IA$uR-D-^pV=Y~6D*6vTuW9dx5F(`c(M;3KN?0dP$kpq01IRx zJCy^B#)LTy$!h&=(Gg*wziH?Q=_8nquoYchHyX_i^)|zh<xDGmS{N>3EUVPpkz$~q z&8be4Zq8C@s|5xVsL!92ZKeU=)zdJ@@Izmay6?TRT4NQB;yHR{4jkW*d4@C}D$>j; zO_oJnSxl!lzR!ntwV+JmEVR8Lg;uLrNC-D41J6Ep-zo@AroWG7-`7?<MoyN3-E4Z} zgO&;Hl6@gBY2n;6jvWen;ks7XHs8JOtwxq~GQIKrzWfCQEE#=Ik&*xM8g2$g+3^|4 ztgr4}+WnH*mD<T#+s&@Lph7k`pUT8)9n6iHy~+=T=rR%ZK^zGbNzHgN)5eL&mWVa4 zlZ!=VE1dH3xU05Cj$tNL$7A-r;pVE1nM^^OoF9fbVc0_0k%dqUft_fG1uW`-s72V_ z+=@ttGRt2t{qzs?R*wh4O8XgbG3#Is*~w^R217LNEYkjGo?hAf+<W=QU`Nws;8%k8 zuS^mf&Z$850)crl$Xz6T!RWmClm@VL5eEDP2+7LgE3dS$i2m5G|LCtrakr-44q2{J z1J{ApnyG3U!bJAklTz$4QZi#q+iag9imYDK%zR}zr6ZvJXo~`|u8La~XS&A*vng$* zd4=6#x49WNwHzcks9Z75<Z|G=(m2B|D%U`%#K5Edn6JFoFn;R&$s2qGYrdpm9qQ_f z$r~XXm6Qq=;(gPKXofd3?_(>_%csLMk8mi`T{3bN5g%Q->zOi_iz`shNF<XgVny6& z<Mb6bcYz6Z8eOq@^c&nIEB~Su`>2)nM$7pzW%#BdpPJcWyOxj4v7*a#T6@xFX<nry zV`->HO&C==xe9|ja~R5#08(o*L!&7hJ{sz1mNbjjD*$EwV+E|tpSH}ilRA@?I$6Zb zvYRacWp+CXSee~)nO&{SZdVaA%WiK0D6`vLz{>3AHxOgPoH~L-nQT@#6c)T0hi0sq zF>1-7NT)f82;&vZ8PgTB9vw-By~3uqkly$!y=)JT>lWZe55@?hPE&yAJa{s?w#5{< zkp2M~$?~^Ye9h%wX0}>LKU2iWzvglnG0f1nkp58-DgT<wVOz~v3+d;I==s-N4zp4r zQfcU0NZ<Eg<w)jVb2)5O?#~p_^RKxy`x=$|2a4$V*Ib%?jmrIdi|F~+T$+82%KiBw zdj2(+W?!Rn|G^@9{xz3oUll{2)DhFUWT;tBZ~V*-8|6(hpy8lU9S=eYbw(ouk35o1 zJ%_H<k#9hh6B%KbNpT{34`L|3nASA-=2_Y}VOf$%P-baqhO-QdEUiT4Z&||3>>oq< zW<3Z=d(l~5!vh3TiV=o-A*C__Xq{E{d=gnD5l>FFD+WO6Ft7DpA4Q_e1DjVpM6yc| zvh%XbgC)Ft#7Y4YR$H=^v>MD(axTl#%P*g$1lX1=C9t++DTy_hrDR=}rI%qoO9`<p zSxRVa$r7nGlqK@+znmOnOJ}KNd9|rdLqqg2KXGiwv!k>p={AyovsD$zv@J>UY{B&w zTGABbTJ!3QZt9L&d*wavXB2HS@52X2`~Of}re91huH5s?iq}RqKUaJI)9&KRvK_oY zM+6UPdX+*kj0-a+kC~NsXue_!7}~Yz;LJ49EZ8kiKE3qU{DQFc$ZVQ1YQ@$kIblhD z^Yck^%98x^GRaMsnP=RzHtL)8%*d=&e!6o`ujJ8+x<VMbhAf0vUK~lt<RTShuJIzo zMEQF$BO!CEVYOuzwS{2~wS{fBtZceRNjZ?SO&OJuyNHykWaT@*w3bX~@n%Ob(>wx& zWEUeQVOpX0gSmiSl@ZJj=7M=uMliGh0lX?>`DLn%pk9@!MDwc5VE$f}8O-0SGL~JY z$|yUp%2cxRs?1<^UX>Zl4#6PRs0Zt1_<F5HfU=@qYZ0uhXsNaQ>r%g#)?(9*Qm=kp zv=(}M$v%(Kc?%8ZxnDL72GnfdyrxZQlO@U8Wg73(|FJKzMkk}Yj^?gQq`Z+u>zMT` zdDJ+qq5kW;D^Wg^MVa=ageEa*^NQ99YFFTGxI)_U6g?c~y7aVrG*3F^9z)k+k)l9B zGv_DaPYpLrC0JK^5;Fmf0H6laK4&;i)6%Zi#0iMt>?~kX0a&~ZE|$vRT4aD*wN1Hk zRmj15oMG?~&YlTU+eqg;AoKuB%cPJ0NJ(BEJVsvKD;|_3)e7IS43y>H17yoDBn3U6 zbO*rAIg7~NArG4t3{;dM3q&61w=-!a1Sr+^(A|of6-4jzz<C3zD2tk9u-BlFA|H1C z3os(PzbnIz*}hn{(?FwEDpu~g*=m~B(ZXl~)dma27q*U<ZZ5C0FBN|I!)L=oVXzcN ze1G=YP>X9}v)k8V9i7$|>!6%1*0D<m>wgw7Pp}7bMuZa|r^8d#%It+NF>qmgpfdgQ zn6nn$-rNv{S!rCn$;KB#=M>;gQOunO1~K%6%sAC4$FTt$nvG*q**K;Nvzy{{7`b+e zajZLJb{m;wza`1Xu~(JkkR{2-F_PTW<j8Rr9Za+7I`ua@n+;{6k&PJRxe;f<TA!_E z$R9R&QH-aRdX)AG0nY5`nbmZw9bHtnJzo2&nn_~&#;W%7Tj(YjC~^zVu<>$;ilW69 z!=%MwGf!@q+?#SRh+`k7*i4>`>TYlP*>774w8N~;#x8ZeK3ev5hU3~fw^uX%Z$@!( zU8I}rbegetZK5ip3Fefpc3$%N7&ZoPLz(tdOaeN+K)XxGcq+^Ib;@&AdCtDRd1^m^ z%w<M^*9Xt;gxTKG=#ni#m}Bf`+sx=G<}n5_Gfy(R92^5I+fc&pHr6T4FqHI`gA;jl zv+Vlln4*s7(OF-;H;>NZ`F&~=Ci(O{&EH@Q?0?!(FyqMVKE?ETQjF4(T&014awOwp zLcLFdQff#8znQFHFvw&@x0DsOc9PrDjU5?YjU5>z*$_2`sT8M;mJe#2Kc$RrAvu_M z-ZTSCGGj?{$?>X^%vq9La*$+TDZ$VjR?Qc{Z-!%#a6M)@1jll)l!MH|XP}dSs7_&d zTMkYGG3{~g!g7$B$7^EpKVbgccC;LD7){AD%~CNQswPL%mTr<6+LnX!L&+cU$qS>{ za&W1d{L6-tzi}w}n|<=a2(}!2MK$?X4<-M~q2ynsNk0S8azIQuU*#R*$wyvtKtc{> z$pHm9peaW)2^^{+huX=30&*ao939ugfpBslt`3=;4wu9}lWvN=MUvfKM|2Apo?H&Z z^M2Cr{mYr(Q{AFGn1MWH4a9_pRAi;LK$kY)#i6WLwr0h_LMyG3)x&vKYL`5#$A_|d zY-?6;+L{#>WsjBGD9`GxLs@<K)~x>2)~w!w==XyG>g;mRVNeK8vO8dJiZ8<X`DY_` z`K0vBbO-t^n_7>>jn_voDpO^6{PoW8p4U6WdtdJiPrTk4-uHTExb%8wc=C12Fw;ud zEu=FFnvZDPo>oYZ1IyA=rZquCM7OSZC1r2=xvg=vAQ`S_F`HS;X%0fL?bV^*b^O4s z(Qi;SmPx7{50jpz2u%4H#cc0CgUYb}Y?EwlpD&C+x7JamJeNZtdn9h1M9OnF&4<8O zl|;&OH_eAYlH7U-l=6&lkaWk9bjOi&$B}f$k#xtAbjOi&$B}f$k#xtAbjOi&$B}f$ zk#xtAbjOi&$I;N~)%9%1)!g`{e>H6z5W^*Q##<fidJ-C8)SiBp=1_xJoFk_rob7t) z-x`NxWA~BZNC{!+wz(BK`Qcl$D?h~4Qk36pL$=4xL;TirkG6-%GH^XqI@L%pvh%~a z&rbFAQT@JlPY4gmvlE3pq|8pl6O8Qq@b0q{X?@f@JJH-j^6b<Y9#Uqfb`p&2{BZBH zQ!DzYd3I`E56QDryL(8P-B;`I21AqT3cWE^*lzI3j`NrPg&B4jw#IFTIeqllWnyC7 z;h=u{5_TWxPCIMC>f^r{W^GKSEC+joe$g<B>A6GWx;NB&-AaBN*L@VJQv%sw>_O7F zn7`-ax(7<H@+yM&OX(WQN~+aRR?@yKD?hILq|&jfS<yhlSxL<r%1WA;W#z|ppOy5j zYF0GPa8|U%a8_UW$D@V4H<A)Ye_U|;w27pg=P<oSd+-21*MUv6w*+2LXI6J(ZQUk5 z=`Uvhme-G~ZnV>2OlB`OEh=I%SGm{6j0R&er8z-BqloFJMX*@<+`r7Nj1`X#W91<% znn}&iy;x={9_=a0LsnOHYY&JHOsYUqIDwjQrE;nZRXUbNI=F>JeL0ZUh9k`k=Pllm z>V{9sA&wM494UP`(hzZ^gW^cf#F1`^BSjQPnBYjA#gPh&vkXJfE?dq%$-u?L3}-Aq z0fn?Irlv;%m&?X{UWx=gT)@a#wW>;0HDe}e3%Qz5ZP9{wNs%_6&mIZxE?`?*r`jNl z*j1u4(r?=&wiZ;jPtx%%G&t=AQ(*;iLO7fDQl(?GPPu(T>kY8;Je*p4($A<LOS%Ym z@wYZvVC}t9ji4~*7g?B}VN}v9n8wM1{S;v+SPL!6*=8P{q4JfU_O}RVKU<214YIJ2 zMeEWN<qd1w6mqC&cquPh_UXZ@t7zDA+oIvln-vW!->hg@JTJO7vS@nCwnfuvZdNos z>}Ey3#pI>ir!|Od*PI`!h7U(Y#ny<aEjuEn(x3E07EGdbKpXx1F{#PHAUk4}ouFFG zgKP)DRQlst9+Sn_V*W*p>~Pdi6_N6<#WedOk~ZlxX0UR`Q7Rpd`q?6S{<WCHtW;YF zE~EcK5k3D}OtY_1x&Ol=dj7STW?!Rn|Hno2{A)4IzDDK#OGWhjYcb8fM&<r1MfCh@ zG0nb4<^CH*^!#fv&Ax{AOt5{jk^U{BYp6n2+=s|$n35s@QbXem+bOHjG67RY%S6qb zTdYPyDoKi#(GY{j1|%45SW3PDsb`g{%0-rnDp65;D#KJR2EkV7Qwu}di@{88Q?`%+ zCliA;wicP{Wjo;mEOB1dN*Zg!vQUQ#Bnyo~7Mx2$A5!RKK5Z@sePE%Tm4T9i`9TGf z2ZI?)1}a!Ga4<v?(1(mDQu5CSjwn*nFDueZzrl<p`$iWj$+vBhl6%`0DXEtg>80La zk&=0%i<HFMwn)jlZHs)1xASlwf3KN+S}AjCvjkO5Kfhq6AM)9ui~jcV!P#hObZNc+ zF8rFNc~6Z+0-Iu^dySfrYwwV>y&w8n+iOIN<@4=48HZT5rbUbmC998`rei`bm+!Cy zbWXF1*6<g;bfxr27Hja{pog)gmdUzSbcVKN+<JPwWn0Eglk9bOuVN@bDdf^akmwZ? zbGBIBG$reO+AeJ=Kfg^HoQc#%Run$%)mTVtkM&yafLpo%iS}`K8}_z++`AP|(cV3~ z!fZiHf^0kxo#R<!1MS5o7K@!UD_3qvfYjF2@-)BS{42cy@VXhhbp%kB6k2dFrdo6; zrpzmF8qL6h5hfNEhJ?VYDMd%99#rjE&D1I4J!YaIhf3Rbwm)T~-6q=|vPtJQwm)B^ zgxXKO{qY)$q21!T{{?IDp+NU*cE_be+HC^jw%qt|Je|DE{UMV6?W>yewy&NJ9ZiO6 zeBY?B#E0EKDr~<Gdtg-90pIXrzTvG&uRy(!j(fM=xrRkIh^LGTxPF8C_t@!B<%0%1 zSnvT`88olzc>w?$^sHsMy3JOqRc}=B^_xV<njR+MUJ+~hNi}_zF}M8LT#=K#gBj}v zhzHp6#{dY?rm|+|)~HuQ+s)6hQv$*s8zvCvJ#}r_x&rSR4pb`a2kYr1YxCPRO`i3M z;ndZvmxcoevfi#`^Q=z|r><tbJRCTX^>&PrXMJWkbv5e;hXV()&iJbR|4F{$uF?^F zwS_~_DsFI^?<Sn3uq|C(bX+faY72Li*>1;G%65yC$g|D(X$xnR*>1;C%65x@$+OLP zX$x1B*>1;8%65xv%CpV*s5QVxQ^WFUt}35)qFk5b)F}DH(Avud$z(;4xSqDQOkT0g zHjE?^Rj(@UR;gtJRv`|VYGrb(DiB?_EUpk>a}r>4nE>M+ya7gwuDND9r|T?jBsiX) z9ULXtGxaiu-67~b>EcijvW#0AOqLxR4s2g7`R%^#GhG@^SF2=tVmQz;Eu`1Bm@W^e zt7dv?IM6cP?;PrZvCX#GJ~*7xvZZbP6rRL4q23k(RdL!v+E+=vEd;7&x`ni_l6qSR zRLyh?X*25GeoN||*^YX;S`d{}hYvYnHOOL?d)8r_16_2W_fG!FRVcUvZJ<AT<*AX^ zmAxKz5UPVpjIyMDilS%2h+8@0Nx<5osgo6%qO6l=rTUv_=alX$(FIv7I%+2sOIzL_ zc|Vtsdq2uHDy4j6!G;|-B~_P}k^XC&GMPYRa)iyzBk<-XZLj7DZ?(!ccx!i;*S#xv zOVP{K_5yEHyDNChKY+I|WqY>AG}F}Cr&wZIm%7>UbgfyrhImFsP0z|Hg(j{Rs^vC6 z%g{;u48*iOhiX!gK^cy6D0eORslosPTr+1|JJC69WeQ85j4E78k$(DzZC(lz(t~ts zZhFImbP%7NZnj4g=x2Z;+L8KLX0<+OCWKTsjkMUz9zVnB39CsCIil_DfWS`IJQ2_D zkR`Sc$ga`Q-rNNbGn?-~CU<6;3>LO;OV(3lvdKLrgIW9QJzjj8J@<yTH!@^6dyrqc zGEhyov8=!N^ck+(=yAYis6GduA)l2)&z@m(h!2+ar67RL@i+ppiDzj`oU{GDHPGX* zz#vg<`}2fCE^_<*nV>;>#mQ{cmcPF=_Y{#<=7>@+$}eeaw-Ixy;OUh%F?eBy&1H5l zxWjht`|Kq4DifLV&@%UnFfHU@aB;SIU2R_+d|uZYVZZ`qe!5sUVHBRqQRDY<)Y$GP z<VwP|_)f=lw5v(%qDSK?7rFQmyXKH90=OMtGZ|e_Nq3mm-G^Krz7`+nT3k{b@vjId z$epx1U88f6?p<%@=Y;Qz4?0~Y9@%XD5HXMFp@DEM*|VQ3&yzdTkoy|bYpJ8^K=1zg zwKQ;d&nF=e0@soU4D!Hy61c!|BU_^T?ULg<BFly7Tve`q7@wt!9wK@iQiL}A$dE{q zJ?RW~QE*`H>K@=6#bw~D2{T@Wv2?_fCcL0QK7g?gB+YcsRb6t!CHrz$`RLmRGVXG^ z_)eej<-k%#gzn?17aaD3``F|DgZE*sN-pMUDCE^;ueU5-Wv+Tlr0&id-n9(xT8?*Z z7;i_$HIHsBN4J)aMAtz+nwMTJ0SQG9xIK0|x|~CCDCgZ=X^QiX7(yP3PQ*Lp?2qem zj={e;F0RShi2HKhj-dwUUCh&Qp5XN+&OfJtu3pD~F}_{SvtjJyJ{;dC=jkv`<euXm zP@GLxWu-P9G8+c_Dqgs50uDgyDhKXgnY@yNWCMxe3HRVtcYK3g(Ij7p7v#*vi*jbz z#2Lk7u7R1M7W1wSZzcqB3wCY7KOJg0PTh7;qaO9>>!@`cxhYiNbMC;_@^rH0zz|+= z>N*$x&$>IYSLp473s>+S@Hla%-`#o1!}qNtm*C5BSoKK8ih6E<yQ=Xk<aTjSC*93d zE?_rv`obr7sNL!Q(_*;vg<r~Tm7O6!x_BABs(Z1L4iEOw3J8iH$+H2{Hps^+5FwzQ z5g+w1;skCy<#x)HMt8R#2^!efb?XhEEs(+rk=&EM@DB`?tQxRV^D<*CS1?^(O`IFk zaa{~CNwOwX#@8TAT~Xj>i?YMD-Gq-a?vjhTcWoEt@xA6_1K=j{%a2h2mjLs*@z}h5 z^e#Wf;ioh*?0Om;g<Dq>spRAqv~*JKUi!oslQ6p*u!;~EBq`mi&FYi|-W-*!cyOUZ zlXrCt70Uj_0g_BoQE66O#iO0SB_SphAVcJ;>x&zDR{gG3zc*Zcwtjc>>gz+*r`Wl4 zvv0-H5`)EZ0g_sxk&azX9%2}&(IEFxf3zM$VQh`o;fA8iNkWql>0zFrP^4YZVKw0z zf{V$Rh|guHx^AGoh6|ugq{q^6?$LI9sx|cC(K(hnLk14fHBVWa;A@hP8s^k+!(a^O z=oG4{;bdhX<_y#pK`2lJ;d>YZRHSZ>fj&G2*LiS;Q9-P1{4j28djD{-j%{-XB=rus zyEUXFx0_t$83gqo$cvzFui|DBvt1GJAfzT+bUw{kmS!wVGd40!-+F<kyw!3Cnft+K zJQw2QgF>9%rgFxzXk&S_v7u<Zu0sdAMSC?zwiidFI8YTBy=a<2212>KoGjCoHHKC& zuM2(#))D*`#db#*yIDgS^gWlR87#IhmehpeA!Z^lqANLLhk~YE;vQaQ^+kod3Xk&I z)gX^fY*Tob!o5(Vul}QfzIv~C(TfJlE0w=3!Blhw1k+$K-2XhHD{!QYVtjX?Zw?l- zOn(&hCd;~=u?JvOr^!lTlf#8gZBv*80dIs^OH!+UGE^%BP0P4RyP8&$iL%^OLa1qB z+Q%dWCMpO_3?smD#K_tjEAc>uXC`Vqhyt5BE+=EI#nm}^@vSwy92UDwkxjP?cvD5U zyv*U7_o>zh0njAYW9c3h&8L?+&0GX-s?Tp`y&f(eB(<hZS$!=xTUxtCK{MMFBq6_< ziFx>Tu%Knvw>I^(wX)8*9R|8ZaXYsw&bmq7QK;E4Nf{E^Qd}ue@A|njw<IJ_aEv76 z=H`1;!OeFY8&Si-0v9rg*UBVbOA@ciZR5GbYgVP?ILgFBsN;;dW5#a2F*9k_%B5Lr zNSdkVKTI;l;-(ujc2HmCdzc;eZ7?ik?4S=D0Hm~Nwh|w49hA&*6wDoHmwhzL9%^Nm zxyv?cAPU+6Zz14$fu#sNRV$U7sJ|{*LN~>|Zz*~h$1S0`;@-X#UBux~{JU^?G3p5% z9;n;E;bQr><8WN)7!D7PIULriPv9^g*^e{66uldV6AtgdVI}qy4iAML(%fb>Ipprl z&|wC}17%W$bx%_i-)Wa~QA1tg72nMi>*GwFcH0ySt4uz{vI*5rn^5iaQ!E14l4Axr zR!*@_(Cw2Yn_}JLc4kwoleKg1d_Kh*$HUg;4PH9io$jY`?qiBI&O2aN+@0kV3thQR z`fO^&y>^>+MA?q`qN-m<XN~uxkJu1vDr~Hq^H9v$aa*XZs-`93$)=a`B+R1o92Ckj z9HGDIm0(NHg{E1AP8@*b4W?{tman<}nj#1K;YKi=)m77L_1;SyfH7CN*>h02)@&Hs zWUzuE(+1DB1`~#|*OxV#DN2up-on)aH>I2_LOpIQyMkI&L2aypny4u4|BsV?+mNkK zW&XIxwhg(MMi|?j%%;T|&t+3y--P>7RZ9NyJl6uo`R}X|)uMLGX4$CR_FDwgsN8iv zz;jvpj7P;-)`SdbVmM<mM<P+n@zN=u#%9@k-Q&eOsTHn@_p2|A!CBe-%_CJ|EyXW+ z2}Z3Aa$3QYhK@1*m}{5lj7zF8fs#~lyEO?PlXHrhFb;F^y4-g&o5y*WO5>cMcj264 zE{t;wiHgHKy(M=8a}UlYb7;Bm!lZOgW*qHi#s5}hF3t~y@vPjpAbxQ^ti9H_k7Fmo zc`l6ms_FTm$uxkGll)WeygPB#Ep5d2EBWDgS<WHeEX3I#Kj3z_JKcE`O7Vl(GWNSB z^Z6F$i-=jjwvW`A>yO0&BJGHK(CxPYI?|FD6K_bsXN1M8OQW44bPE!i`Kzg}AT<l~ zgJ%A^9oNtNBX`dg^>2^py5PK!!3g2*&u0GjB0(R?B&BBlyP5evA_S6o_5CQH`M1)1 zf*uXc{JE{M5SijWW_wk?pZPZtGi+d2D8Coy@##BwY+moA?q=Z5=KAhtG2sAW=C*^I z#hf7~`dV(TxJl`KV%D{DKC@&<NoxvX>RCPg*grLchjO^F2+B7W2eI!eefm)!%VR$> zUfbgR$Svck3F_$!w~VJD;{n>Ap0wZXw3*`p6FqF2^1~fw{ZepnV_8-7G}XoHz{(*| zyl+YJ;Z8{^qNj;>Q1mE$IUaWCnLI&rl^z+v2k{sP^1h13v{o)ju*h|)l4h6C&{|D7 z&IyfHE)FezMbhZmrOKG5l%-gbu!&ogdH}^!%)5|NVxdZj6?S}8gz&6TI1Ox&5|$*V zgpyP!F^hMQ5=uWvi8|V5yy%+3i3(wFLB{Pe42cVsrrl|y(<&lMhoIv+m@jyGO&9b^ z0F|^sd@WSTcN*M9FFnfWbpXXLDPr*}<P(}D`K-a%VatO?dg3*H2sA<ZVb_=Mf~&*L z@maSb-#K?02e~0sS68uXCIT-QwU>?BM{{Z)9i;Zr5!609L~Tn_Qv2v2wU2J0_R#@q zFS?_m=pJ`(W+U9~?q<C}m&nFoncS8wd7+K<IkX{*(B2$0&ZM(20Zu#T4tf({Yt1Z{ z(HeC&OJWDZjx32|sBgFXIFV~zOzN5wiZU&p-&Je?GI*JpuqkP%NuoY9E6B`*yWMSC z5Au5hJz9G!0L-z{x@*p@CcL7Hy1T22jy6vpV8(Gf6B7%K+%7|e4T~VKYX}iGtYui} z!yBhGf0U7Mw}V1qaz~}`oJfu2t_t*^Cg*<Qj)kyFow;(_-jOnSQ<`8q+(MJmcDUQ| zkgcs`dYaso`^-2vMeB^qJa}A>G13$X6ZI-4vIo+Zx6@$6x|bc<W<(^`EwI9bI07qg zLR3=~OR0HNm4F(v51M!Yj|Njl!ERA1X2TJsUdMzWv!TjGq*TeVw*r`UDRWv_Plma( zjyKG$aj;R9d^_eIb{8~oDGo=?u$}2Msb|J2E)k=XW31wxdF0i6!s9jYEe1NhifeqU zkBnnp&JA>GrIG-~E_YP`80s%4XPr07W$0J|X2m;4H<G>S7C2z78->GWO+v<~b4P_3 z84e}6TH*v<gLa&SG}^z41}h$y*&*5IT6$(bB_^_1ji3gmyM9g$ePq<w%uRRJgQ8?# zrLW{YsL2Ra_VPnwi7Fxo1jy;IP3c(lMwXsi^meneq{<=;Ouqk|)k~$&xmqA6v<GOv zO_><>MwVF`_N>meL{FlUp>`e=qP3OWUV$ExZ1BcoZ_=xxb3lQ5a+)>G0lwS@FYJAz z@e*fd_P*UzyGoDSbDvrF`YeV^Xe7Rq7+0D(u*Y^4nf>aSeRaZk0sHD;&%o?Ak@JE+ za$ZoM^=3b{$57wkoK(?`Spz6!dDbTY)Fr;@e!f)1_h6~m07sTu+5lB*$^6ECrjHc7 z(6V;V1`*4hmBx%0Zdx`5!O>+~Pt5xwtX5RfO254VFiYTB7IOxOj%f;+b&Hx~9o(k$ z(mJRXAFBK96@auCQ(92B7EO0isnZAsTk4wjNNEKMRpzKyzm8T_uG2tmb;M7VSEMeE zv4&rn8y~HzT#8>&xmNI&Dwn0qbTykB8+v1=TrpKgxtKyMX-R<%n$s7PiTOmGf$ufe zrEmdobO<4h$q{b$LRufjiZVGq!i*q(#0AWyxzfxvm^Qb~{CLpSV&|GkU$f9ePk~3t zlxCvIF3m-gS<Ob1Bo3G^X7;|_x}NNDh9XRf&xN>{AwMh^tK?g7W|x>#<6@P3D^Aml zl)D{P$#>yxnXQucksWfktddN|WvV=egOTxJoH^Mcnedn$bGM9?@5VbObLMV0Awwjl zzt!ZtoAegQ-540LKr)V@K=U$k;P;BygPVc8fwqp!aQ7dv+;r!@FuaCUvX4rHKhk6C zc8?2NI_wJ<ov14XR>X@?5Xt?o9Ej$wg-?<27_X^=w#;^Vc83x29|SrB5Yqc!1{JB7 zSY6-2;wf8#KKTRoI3=q5IRI@P?G7EIiru{tX_ATlgBz>^<8rWwcNgE4MUl$D4IN`y zEL>tK!j&vSf4d0lS%kUmB0QPuDUaIuUgXd$mV>KV0!}4SBn43p#@6NFTMXG4Yh{iL zdu4=ZO}CY?Os<C%J%+Bf#vUJT0K*iVLc8~nC-2B!Q3I;R`?tv?RE8Jo*L*fyGTd0_ zQWEWsG8RzM12;)pe{-G`8<b&SsTWE8-JunH*K11+d#mhYo`z~~x(QB5e+aqkN9K2; zq-_^bYz>O7BLdVNn1Ds+T&>#HBB>hKQ+0!H`Xs8$vSZrF!yPT2t)w`kvf_%y3ZOUE zQ;z<y-6?eK<=~rD<Y2S}S*ND*ZCF$1;6%D_#j&DDH6#jH7M6^w5QQdVSD9|o&()OI z9B^2Y^$avonxUzyV0;5&wtQ`g-$S`PKhBhh%4GFqWyEtfR8jd@Rw~U{FH2t(1!^hx zuCvh;3Ya{hBdw)ldfP(#or;{Ast(!Jh*&R~Lb=tbOU<6bF$u&2Uu39VZpNuk+myLZ z2YvZ(SqD~W^bnpg&0fIu@8D*?DW}EK{-tCLyP3W>(hq+}-JWRHjgq}6wd``#TB7s- zYQC<(Md=E5VjeAbHaxM|LEnj`0F3pbyqu@&S9&U)VrqnR)7B#dN^)JMhfZDMxSF=E zq`&ZiaJ5TE%#o1n7(${kMDUD6lXPv5Mm<NP7EfrqT~^56OFeDPppf@{mt8Z`fsezO z>l(Dzu3KyJUyXmwW?fANW@6r2I)16w%#izFxZ1&}>C-9e9L;)xCS2Jtt~AL2T*_iq zGW4kq{emBvJJ990`%VPo=9}2w9AT)?Zr&Zs!3<7K_nblBHs9#!KW@#etw-kl%b6FY zlVS<~Ap>yT<izD<Cnd{tmHzvm{4J6E1s^-%+yWi9uJ>mD&TsvDhGgrnJj0x_MWpf0 zcs#9P&u_>5)Se-1@lnRJ=LOlmBIL)YNLo{Z1_{_SnASR&%*KhstR+Q;vKa;gx!xFW zU1rTYjV{bHY2uz7j;hCVBw>4y!tJc{@BT7tS$k?+KZsqT=5{^8Np>+B)Jxj)dZgI3 z8LxOS<q{6t&nU5M0&F1}r|iB;*PE1m#3pXYatxL%<vm8%A{L`OYn=3}HYPpC<+?l+ zq5%`3L9>tsImA@h57InMO{5<4!1M)ZOPLAJN3w5nmlpLl;+@oCjK8|-!e1ZsbEcRp zFq#rmv_WHvstOH)LdWF9j~H&(6~ZB#Q=@p)ZP{B@9AgC>k=u8znCH01_}6(S%2nqw zJBR$RC7HaYz$TM*lZiF%)>#f_^SbQxbwNt}ps`2XN?-bT7>^?*kQ4f5?xF{xeTSq` z*t4V&AE|yhed)s#Kh8HBkDhyu?n%qje~a)<G=)6;`iJ-)lYFwIH@?3N`uKO#d8iGK zvVjhyYCtOODFuT7b6w;7TEe&v4mthGPBpF;t>x|0cH`{h5*gLK92SqFHBnq>O)h0Q zNUPJ1EUl^Tpo}HLH7S8BPQmTE?DmXv85&uMMSC$YvAX0MVp&N#)a<%zbJZy%ApaL# z<Hcv(!qe=9G{Yjp0QKM;at#`G#8q74437l*5_?-R$hrfXhHl{_uEwx;P@k^;;<Mg+ z$a`U`q$XHElsgQDjtfWTuscV<?iv9*JOXxP1nlk+u%jbj$40=8kAU4X0(S2R*ohG^ zt$;5;_-cKZM!-&vfawzC;k5UUfGv-JogM)@GXnO&2-t%oU}ur*=hn8M6O4$Oj)1L< zfITz<_V5VU`2v<R%msDWX?Xp;&qiKp%eXKJ&^t0dTsi&hN3gu>el*Cqax(K-gRI<} z`K-xSj%Ge<)Rnt3pEdi+!OUljv2t7HGuByI%zR?5Af4BG&T=5`3({TQBlZlmB&QJZ zFN?3<BL?SnV((E80Cn$C7s2k~J%>y)8qvYjnX(Qxz+C_T?O-`~EQvd4a)c0q7cH8T zA?M|?kKf!d89&cEuI+h9n29W;b(<}#%0h`S++NTye?doQ_+`6smE1hCtbIq7=#ipF z7M))o-M2)YthYq3DSFMK^XsE~DL68EUD4|nonIf_3&@et8;ahr==}QVUUrU*-c<Ca zMd#N?_hNNq^p>KxEIPkFx|g^kqqh~kZPEGl(Y-Jp8GTIA$1FO(KDw9FBcqQi`nW~s z*GKmvd}Q>FqIWDhzdpK`?jxgj6}@ZG`SsDg;2#;ir|3K-3(x35S>qW$CX9?eq39D9 zonIf_4;Mvr&yO|F$mt|XX48Hf`h_F8D>y>IKm%cisD^4rf6krBj4&bRbjS-s%!~Nr zj7+3=dt=#AY%&|Bv#YEM_fpPnz4Y5teu{wxg%ZQc2W8Icr3wab6amzd8lS7CPY_72 zuv<qn7<PPVE<i0x=0%CiQxHh06(8!okGjfL-qKkd8Yd;|(i8U9Q|dTYHj0aN;w^$w z6qu+J>r5eg2IY7>UVVIy|Ey9Hvv?F3?QUr^Zj>d~QFv4$$GU)mJtcy;mB@^g5;YSY zhp^oAPy<Qf09mA5Pv~@%DT%q4>_M7CQfO+W`V{CKNhAu}yYrTpsCu4OM4fXptei#Y zbO$lJyV{Z9;F=2Ap<wJ|GEW@>atO^><#G(k6k*U}-q6@;P&4c&Nf>7JkU?!y1seUl zLG6d@QS(~#6!RlYV-ebZ`pBhTKx6QJxc)B9TfnvSQ@=OOQ$mSW@fo02)Aw8<0#+Az zO9nWz0%+h0*Cc|2bgv7(J_*-&n*2%BhiGFh{XHF#N?%!gqiMzIKBv$~p<KF?{vzkD z!c?lp*+=I)N%Z2gN&9i;51`U^?Qc!m&$5HyDG1U2h!)N;&NtFe{f@tlQwFZ<d?!sE zY{lw;vGHw5t=H1Lw@wS;V6tG+iK~s4nvr4?)hx7;eo`rGW@oI!`RuNQWO~_@FN{i> zuCQLX5<V-v8!}|1SOJ+Azw7;aIg`Ne=p^lx;LBmGEI4klx#02h9XR}~YyG8<*!I@Y z(1Z=c9QQbc=q-DXss0xF@V^Nt46HC^QuDGZBmwuBCWNVk)S8dy=R%l6SNmT>KzP2V zx{+KRs!R@$<Ov}*fnav!lbr8ij*;B3b|?Nfq#^CoVa78_K<B^y?J&CUTL0TIxNg#M z*gqPbOE*8JT?t~#MmoC|-$o6v!MNMfF<s5yV#cIFn8^{MisG0wuvCtraxDGU_%;pC z(Pi4t)nPQEJjEk4G+W9hFJC$8AUhaa#}42yD~;7-F30;>%KA+j<8}~chLX-*h!dm% z^CulIQR(x^UGY)s%_ao>U7U}Pu}_vo`ol`^Tz~=n(B;(_!&-bB1@3iqtN}rMr*+HQ zNW~wi_Ngnp`hUEqvad5f)^0Vs-A1F^t#|cbt=H{h6bbnZc$lLG_P-mfrikhOkz@~q zVl&!H%-#=0zZN?7%qi6E?jPsfU3d6GZ<?v`ox;8TNUx{&x(72r1HMHDI|eeq7BiTE zu7$oi29pCB@WxD;LD)ZXzQ+}Psg9emRSZFGd0~Zbs|&JKYPecNtSN|P4Y!+>@HE=d z2)Z+Pe8pY6|G28D@Y^M%(#<_~Y`I-|TBcojT82kja)huR3L!RpiKH14wnmUlu()6) z=y~E9>>TvclL1mh4uS<4$E8o#|E4#Fv?Lj^j<U-o8D9=UHz}J1`k`Jh*1|g$PdCm9 zK83Y%GfLb?C=!!VLuLdbABwuH`qx+^pd=!4>UMmcH0cg?4T9TTVKt87qNi)Dh{Adi z50s3XrpiiFPbO4O=L(%Ep<^}zw8?QM`j`)<V0dh?JweuzmJMfF9vtJRbXDpM@5=jp z5_UO3QOge9Q)>mhC?;!zYAVEZ`%x2vMlW?~-|eCcxW1~sM-`t@rF1>o9=Go@x(1lG zoY_+e?6WID8C$jL8X+kjl1*sI=rE=imLQy)fZVk?@AN^QWzTO$uwJ&k5%D6ekel<g zNg+2*#q(Jw%#40)4$Dn_jd&-=q3bf=cypeG^)NtMK(xxa{BKOSvgBefqK9Ld=!H-k zbe4mz$Exjix`oS0-7RV}>IAlE_?DxHv#SJvlDCuWl$|6+GN$2U^Zi46I>f{lXVE9p z!|Yn(E;;t3ttJa@&V(zP0A`Yl2(j_>KWh)@1<-<vC|=Es^-wvivLA*!0pN5!!!C<C zYL9L3vSu<<;o2o3#`-r%qKxP`m^BxjnVSHt{Z(+wEn2~}BHNf&u>s?Vv{<mG`9`6t z>w6cKAeeFy$k_O>ADUrj?=WFtXCn<6>!3gYvx2|3l3K-ucupsFSHTTVbfVg-y3xr^ z=v9;{IWW4Mb_edLQ=@UW_X;Wa(Zh~Y`k3LP<(Nh9zD)4^)m6aw8eFpd(*I=Vl*pVL zi}b#uIu@%^PIsEwF%!OdF^;n8Mr3QBFStW>1{zgzsZED)6C9_od(zBbmwyI7_B4fa zE{fB{_$68J!)Y8c#?Sf0xK|xfSf}Rc>_!kqwR%IhTeS5Y00$UVyR5x+e+Jvl)Ya*| z)HQz&z&hh_T%u))IWhC=3AyA#3)cILKkB|5I<hu?j4F!tY7@QrJ%?pRzDNpSclegH z@a<5t{GP*s@@rN;g@60y^gpBS`Kp4qb%TTHcl%{qUr|_oJeOIm^goz_Y4TBBu@qXc ze_p-FSMRf`p7c%0DeE_bbWC6H#h`*%Ph(6mf~<qjP%@;e)hkP3(FbZ2<~91Z%jtg_ zQKOH4K{b-7Ii^!R40W83t<iIFB6<;y_SfS`6>3Yya=f*C4vRY3b68ZLh3)ltSK4Pq z<~p}Bh|}1WTA|G@ye59Edb?PnFKom!l6_YtH?&KZdyOO%XEfR{Zfv+#mhtP9C&Ep` zq(}C3%CoOL`>$)BJd;`|9;VEl?@5K0h@AI2$E4{T0b3pV2X$~l3Qp4FW(2m3WW$`T zY2HM|bp45GlMO+m*=h$3{srwuz?*#>2-gHfx896tgA(&(X80THHjRfL{`NybaP6TV zNLEhS^L2e$2O`bR>J|f8O$sgch_hjyNk`26-Z_L*uVm2oVBHE#q&XZ*y(>$d#XQ9@ zpM@~qTE0cd0?R$^wRk?|{W+;V{d`RiX-!!kC9A}iOofw$>>ke4(5zOYC{74lnk|T^ z4i<vk9Yk@?P)z32rl{oUTER=hr$|+lp~_lL4Elp13#Qy@!`Ww<V=f@Qv(Ll2GeyTi z7&lY5$`2X@uS)QP(_ZaA!YGg4#AcgA{)-NMf{}Y%s@eo2!*XykbMJx$OoP;>9s6RJ z3&--a6>@lr`ZU%iCTfxWSBnDN5Tyi-44XpwvR`yv4j8NiIaET%JmiiNGVURFmXIu; zyGjUyobowbLbPcQ$dM8<;URaIkVy|YT0;6Ba;${x@Q~vr1bsp|-%~=SJ>=dJGUFj9 zN(k%6N_Afe*(v{$`L*zE!3WdpTS!wt3epsif;0uBAWZ=&NK-%x(iD(_GzFv}O#vxL zQ$PyR6p(^61*9NN0VzmRKnl_nkc>3)%c$i^Q*z64kdtCL$Vs4gw=CXWrd*4*hnIuA zs<KB~=-tafUbW>QuhKGVt%V+64)Q822RZ86HDIA9v;b^h_bmsYm@e7Mtw9c^zrCg5 z3P_G^87IfOgyh(lkfPy=eDd0qaq?P~ki2#!B(G%&$!l9e@>-XWy!Is|r$PzIsZm0* zh7-ox!MGgk>SA|b?c0wRG|Frt#2k_bz^($YU*6ps4+^0rIah>B<`QFP0g$K#FjoM$ zas5cJr<wy2u#yAAhx8PcfP)S3=F*V+K$e3$Y4XXVVf}Pya?!pH3ud8r`>!CW>l%3W zqb>)hJO~@Wa&W%~-RD7(K+7JqB#`W3Y=q2(sBVCI18_hW70ZOGs&w#6jrWb`m(;wN z>DZ;M<^{$MAMFO(WH%74524c^`@pAZ6yTaRqc!$q^k+wk*H)O&Gtb+@D8o4$mZ;gp zQDdGc!`yn-sL3NJ6Q5i8aB=}RIQwDyeLh+Fpg!LGHH=LwAJqh$VQ%x?9Zi$9qwefu z^ZaT{f>cgDF^x_s4TZ^Yma%)}`;!&7^5OVl>|urnrPD%#rC-cSf8%Q_eL62)7Xl8H ze$kii9)5lR0T^izfk!h0-t^iK*p(w7-DUuRM?C_0<@caZ`!$te3?9occ=Kz+pr2!) zt7Qf-c+6w)yz&j67bVW;*w7S>VLUEncs%~v@Mz_DP|ra;E@h1H&_jpT-uWgqN4&_N zHX`lgZ-KwP>@+U9q&|$=8#2_s?6sj*&ruWi4v^>#8J9ftJS=bMiQ`+Q$c3`O)$`9q z7~D?#Ud8yNm((%(T$Kqe|6Fh@oZi!!N(<Sm2?HuBiXB~0oon;wtR-Gm7lT!9*2^ek zxR+hXi&9VeLW&ydQk9~zE)_qN7bTAULW&ydJe8s{){W1*hunqd%M#T~zmO7#I!mR* zth>7Nd3Sk8-6d;2b%`&e*rC2rDYobv?qO}V_uL{j|3Zoz;`d5%6@LG-#^|gVi;t(^ z?(9?Coqg_uowH9(^0H4>RPxV77Fgz_Suulh^O((LN7cb6tcn`hxj0)}!mtBsGfPYF zi!I^o)XOd{w~!6#*xXmO`H15PJXkJk=X@H;nx!G{OL}nT`2@Bh4i3)O*>al=&S5-n zQ+PksoKt0rSvls?^w4VJ2X77PpY-Wu)tyeCW9uQAK+A+xYwa#2t!w}W<>up8SY~=9 ze5V!<Fi@r^IN>8JB4@n^!Yo}rQATgea>^&-1F^AX)3Vj{p)WU|PM7KP>H0uy7V(GD zM?QT%iN>16s~_oyM%68!f)C`Vx@})A-hD7~lxXoF@KyqCTP?RGJ?y+S{kGLg^7Ou1 z&yT8BJSxYVS8IQsZP8k{jml)(Y8}{;{`OJnM^)=jM0c~P&L~~j)Zpse1S?KH(SZf& zi&evqO=a>PRZMU+XR?sIpB5pS3t33scZv`hu`DF-XGMq%QWlc;mm)+{Eepx}RuRG! zO6zFt&u1njL9)wF1?+%IGJPI1q?a9-qiiC@_J(Yl#Y{r-g3c=2IiXzY&2|`tvY|+8 z5VA#a`(ox!Ae#~B+{cGtCmNF~Nj&?)E`{r>l6T>vDg`lf0Z@b##LRna5wbteE$`h$ zNI}fJmlh!fG4mc>guDh~%2b|9-JEiuYtvFynr%zecni@`0|$u4YV5Z3`cm&^JX|x8 za&cKU<<w?=J0bQqcp$elPgDjrW}TJ6>6M@uffCl*4>2lK$2~?X2lx)}X!0*UE0ZvT z*K8gqo9=5OZ&~CWZ#lRt2jx8u(`lCzFfy0>v339@w3|U3n0ch!{>?HUw+!miS2pCa zH{aWDE69*=r|I(*Si|k?2)DYFnXGa-8hJrErr5-5C`KxX6=KRlI@zhLQ6<d}mlV%; zD8;a&D3!>=mWL{p9I$mG-prqi8Wt-!OXACpRCZa<`NqhqZb6`0Pt}3tVUFJ_8Wokz z-<#7*st=gViDUj;ET}rHzP+(m>#{XztJ=gds*2iF<uAQQFe?ei8eV1r`J|7{avqxn z`XIvEIwDOf(}*ElhNWq4>t*_vZTTA&OZ+x%`-w+|ieb4FfsQ{aR4i+0HN)JZqlwEc z?Z{9uIM}64>PLO9azN4b&p(MOy?u>jAiH&qWGUOeMn`h2M%GA{we4#pv)uMIk_k>V z(oO+3sr(_Qq*zz?2kZN0i=t}UTr!GS$9&>jG#1ySQUrO7ME-b=-pJ4g^0XtH<DNY2 z$j}D~MVx&J8w}Z#2!c;C`k({++9&J@dO_9&8LvWk5`n8zs*raHQqLiriH~>LTGLBe zHsfjj#d)j@#sZ)J(h>T)b`0*)PdS1d3Em|x_?1uD`-&1_MnVJrY7SKA14-RzQN~oC z%Yj8qbv3I_HRhcKD2s=romhGA`<{OGxfiZ)h9|XaLt_ektqRRd_fPsEg<ScvktADz zC5_v4$u<ozMi4Fnt*5_2h2h>xRcf-RroWoQi`sa25x=O=Q2e4!L-8dztgb`xB{GC9 z*r?nh|GTQt3>#5G7Vn3>a}EbWu++Hn9Uu7cM_+p3=ik>b@>IQj9cZ0MNtNjUH#a-) z$`pf3>|QVfw5EBiT*EHfcaCi~-pOMBq#MT+*0%$LbY7ktm!{P+ap|RIrnuR{w#CS8 zrkS9ScK>;;WvdiqP<1bRp&TA2q-GB?F)uJ|#Qa;aVUe9uZD+(bIZ0{t;q{RvNkR4D z&5_|+Zua5cLY&pMz*Oq859isPQfwCCQjL9hV`TUo!nC!HTp;nNjRdE(kUeVF!Im=S zA=|BHPq|%OZt$dak8EaOtJ^dZ;$ExUFdi&Qn9MuF6NiUUu2{3Er!oagrKtZ&F!`Xn zpuLp}D|n+3Rs2$OwrXvCj*M_p0E*CW2SyKeObT{KvFLi|a=`5yg0a*(?!Q=S-Q&NG z6brE|wW8E1-qB)7_SkZ;;9)GaX3LrPEC+i%?A~ITmZjEx9>!8@wxr2&)1rr+ES7Fh zEeFoS?k^T`mzRUs!%i2=xo4Jx#KRsa7Iq(84sP?Xv)K|aTwr2zzXzwqdhg0|aJz>+ zq?KQ*)Wgfc0snQLbuj;RfdgIIfWd+%%91FFN{ndFy@&8Z&)j<l-m%hqCtfI<hu(!3 z^5)*dc%gCbJ%YDV(A{{Ub{={ZFYCv-_ZVL2o_mkuh4{Jm9=x<b?!6Z;>&m(J1YX)A z_uhw>2Fblkcxjc~dlD~$R_;B8m-flM_v2;lIrlE(rKNK3X}qjM=iW1TX|vq>0AALl zbMJ$AX}#Qg7Vk{%_00%`cFZHBcxOxR3SL??4}AzP&6;~3#!K7g-t&01VK!^i3wRIe zBn~}k(l*DrdG=qi@9IXd=5M79lF9Tr_H)Bc>>s|CUjJdXaq~n`vd2zI?a?N2t@9yx zUix8XuOA@zD#AvmQULumo$H3l-0nM~_Q~24{;Pko_74B$PS)P)zvfQX9@p2Q;F#8o zl_EH#JFyLRMpxt*?8M31G5d-hKUs7B>!Nl;D>OQHvZjIYn)ZzLR<7wd39};oar8!O z=HGsW-OH04lStU_d;yVYX9nJib$BxUAz#ncjf6LuxVbV7SmvEfKMpwFWtea>aU<Eu zD;4!?+9Bi?P`}v0i3Q!$;km!zkHCv49I(kF$i$9(eklv(>qWn-puwS#WG`bsQ8oAC zIv=-Jw7$ZU0h@fuU3=hr?BAseKEb*1)#cy`I*WFjSA)LR2YsytVQ{RZ`tv^M&sz|8 z7gU1&f)Dx&7KFj267+T-^mYs4{((x+U-UtL(Sn)-L0{*CzRrT!?^#Lp^*-q9Er=cX zm7sU{pm$ghmqJv6zQG55g9Wi+wGy=IgV>r5H8>$w30m_(YZk=QEtR0lKIpOq^#+2z z(Fc8_1z`!Pq<W_hdZz`UTvdX;$p?LtF2{kTbSR^zF?c8Qu0wPh?Mv^`w{pM|jf#m6 zN8&Y)x=;O!HJl=<?k3fe1Igv=J8D~0Sp?<dG>s1&N8MH%;z`CHI1VGA0kD0Xqh%}Z zyI}r~p#<~w(wB19g5z~RtD9NVlq9^W$HxYE&2}X|?yL2<)wtj_3;Hr2^ko)Q@R|jE zxexks3o3Zcg1*8BeT4-Tyk<df@j*O8PfHfOW<g)+gTB&&3SP6IKjnk|lm!*MW<g)& zgTBgw3SP6IxB8&BT2R4j7WCCV=&LQL;57^S(>~}=TTsDk7W8L)(4VoOg4ZnQZ9eF2 z7F6(>1$~VV`Wg!=c+G<TtPlFL7F6(>1^qc6^yf;xVOp+@%!KAF20$idSPTbLwa7Q_ z&r<kfI)QiC=Bz^ql5k=o9@A#SCcH7py(P#xsAgN|v!f|H@v^PC<u`e=w^-M}vdTy~ zQydiI0K_<l99mkj2gXGvQZOZ9=?)0Px1o1NdR_eW$X85n84uw|Id3&Ib0l@Y2!=hK z9b~j(^CyO%diuTD2sMvBX>z(+-E4<@R^4n*yQ*vFS7c{Xb-6@H)nzlcs!NcntK%a1 zNHa}2Iz3!t)WMj>ri;n+qZ&py0hGR=4_-0`z7L9Uk>W-?!*q?CaW5n`XJgNZNryd$ zISG_Z<sxM!8yp52=nKI(pCgVc4~g}<mq%S;w0&;cmYi9USWWhFl@G*APk6OKGuA2@ z*$G}@nyjuS>@d0_>~`rCiCDAJ=1huobc`EdxK{@yL?=M{b{5DHU7PsJ=$ve#DYM7q z4K3SDBI{=xMFFQy<KfuhEz=O#xnI!<bkit1v%+;9Thl-B)LWCC)@I0D_N|z--DwAT zZG;D;^J98nch3cW_HuB2#w}b}hmS}$!v(ekzg~@O_{2Loz{TO&92Z#MMg$E(!o~b3 zA04Lsx-u5L`i57(#EV7JFA82WO!e)|pJ<lR>Prj1+Lt1J9WJ@0|IDFsNY=LOWSKNv zudebTb=K~jG9JY=w60s@hk2A%haq=b|FBKK#uypf!X4s;Y2$_Ik{71Gm^_-{lJlf^ z)Gn0Ic-Hf1OL(!{g}%e~mb~w<=<`M4Q5GtVcuqX}C5azAs>=kvwD23`(N4EtJ?mqq zo>4MfmrFO;-^yhX$lh0f0@@#a?!SoxTbwoJwDM~IO)4Qf@QftWNiI7wj1@N2P#{ej z;OU@Ad^;AM$I`)ff_c3~4yO$jYofdLm^PQIy%r>u)2l+PJD~xn&lLP+?gpFF4FQ~w znoB=rhuxtWI}Xs-=MF_5x1-rouo%Aoo?f}QNqy5F<uXG~Oxo>oKczb&SmgWA$EMU< zl>YA;sFi-`Ck&(`)<8dD(0U#*?QC$_&p69X&t)lF>2qa*dJgvS>=HPw!Ai-*#!ydx zJ&0#GAA(<|V(wf(J411Qvj(PCTvtb*A<{a*<5Y(yWOPuJ)8Sd`=osis%2Gr7@)9;7 zsef$_g)5Q{G17d>LhQg)sxBJ+1pBJePlT(UfNrjToVZ+<zYg0_zn>08J<-;+`rly} zTmt=>5;_Om-=o<gUeIT5Fh|4Kox9v4F!g!2)t~Hk(D8fUiOP1+SzX@_T-TVjLr%#G zecKs*w`-PRy0<gBtGR~g-W@zMXmZ4!Ln<ySpz+bdhA)DsT#Zm(lc4ir-x+G}e}4S| zOQpL0prI^Yb&g~Kv$FSq*>t@-W_(dfiiDdlOF@_LBwp6PXR`i1Q|aHfrpHCkW&dWf z1-)ToZt|hO4qxTKxr>mN$u4t9INrfskL<&+l`|h%J%?D<k4}dZ>LztZ8T1d!m|t~* znf`Ia4X8@0WFWgqLfuM8<Tp)d1IS<`(ed%T`=KyYqRwPJhKlvNZSG2;Y_4Qx9m*!4 zT&*IBhnlYkf$H3nZ`WHU3(`yH9FFc`)vhRn)-(@1XeD}*qZy(H-Chq<)UP7W^cXRL zwc$WJ-YlbwR3M3h;lvy1=F6OVpBWC={9JHl-R)X8*@7uX`c~hc{wB9rQsx*a12rAY zUrk%oO;@3ey95Df6{MQz)LQ9g|0q@E8ZxTt_wde8$MmePlJ1Z|i(%H1zI+y>R9kk6 zs<uTC2;bmsUj_1b*<c{G)n*{j)wTfYt5ouPL^JgJLcb6C-adc|3HAZ!uR;2?W4Z;I zS_RWB)p)I#cKqeKMrd|GGq7OEFwDoHF{UL=$zT+{p(Pq~ACdG&qd~?4`0dImPGY0k ztxCUSYn~VrzV?2sC}!K0^~4VR6L^5apc!KqjUlxgh8OSB;a#8IHXQI{bhg{8_UN)I zg52JoF3NRWg|iml#??CvPP+TKuZyyENza|ij2r77Wu6)8Li!L{#C1Ds@ln^OZi<t= zPH8)}$t*g@eLXh3*2q$~Y(?>2B+6!OEtxfm5+?hkCG6FY><ipO1iDxliqBbeBW&ce zT8kurt4I<Jd$Zucpnn1TMbN*)&1y5ry>jZ@O9ipfeL@#-2704^aF1fME3reqq5fp- z&=g;PeD~dK`kP!6*0hVz_PGOWx2Dp%lIb?+tfrYwf0s3bfU=Odp~a)Dmw0{&@f|@e zi@@&-;cEZ5wnL4Po@=kd_zwLv^dl>lXpQ<4JN_2of{st)4Cy4)VXPVCG5hn~45&$* z0gPx{Zi)an4zTT<fT&f@8L$q}ad!#8fXkj14XBzea+lAH8}r#cI?vrqcOY+t5jo+% z!*MklZ6tpke*<x$9Xj%d_*>vbt8-t!m<XlJvcmt0U3p^}r8mCI-yRWeAV&N-nH%5f zLE{@R#^z=ea|4w!P4j@phIlPY|Dhs%5iQHIUdb{8waF5!ZhW6l)ZOUBfulpLbBBOq z<`}wr;aWHVY>kd!`}^S<H-^JCVfs1lp;q$m_sJKyOvDJA-uNDac#7se+TK&M0C26s zddd|fLO;tbOaH-v^xh}+)LJ9GkpZ~f$I|=5bL+gizzuJrapd~4kKg7Z$${E1*J<h; zxqXlJ=(@Wc8@hRMN^K%`)@3c%QYUU+OP1{o*Jb~zD}igt8H1cDUv+&zvi(831Li*1 zPprS>mQe{HTdb8Vo_$@5b$Lw_4|ja)<)qp4*LY_P;&O%Bs^gNOeM8T?E{o{uhNGV+ z)$6B~SKh?9uxItjSCN$K1nn_Rd)`&v$}4XU@8BzMO3&`*{QV9X!8#zX2yywFJ?G)* z5p;|I$6nsl&0~6b6Xw|RysL_<JS<`ujsq*7dlQDmQ<|~jR~{A-dX<Mol(KyIO-wp# zt7hQFvwT9!a2v1S22wY9-&MtZ@d>yM-EQ{2>ld4D+mP$kyzh##T&0<MYV3fO?=Y%K z>1+iP(W(RQyJ`p=WV$SU_BfukWZRmve5qGa#AVyQ@2V^OE39U39m5ILH*9JZ?m=!3 zyzeR;2Ux9ON<+tf#`T~_{@iSKbELiRO1HN0^4&;lMz43o2jqMrjJf^uQ1sD|p%Hfj zLg2g|a^bv-kpbrk)LfjO2pNKKe?&bP_v5;h2KNP<x+8`Hy)g;k*$^8v?x(_dzuc$8 zIFb9w5R*0TX2?1N?saqrHN*)UBg)590c?3>71<k~awpsaSKWgf@o6Q08#@4S-pcwt z&Rb$`C1Dt7$4%FOax%l!Xp8YUs+~i=-ajl_J+8%AzC=f5u;;hWP|hv!bjwo=Ra-F8 zbFY2`D=|j0t|NO;Q!Z#@LCxLAgANS3hV8oG+}JAk>Fl}JLrB#7Gs%gHLRph!igdrj zElVCJcbQBb{f2152v-pawilZYJoJ_$`zA`6sw5Se%0<OP?5*@=cj(aY_J%0p40ej! zAjsXOYTxmkTWQ0AH$-(3mi8WgLv%cs(-yxXIQ3{~g`1VKA~;oQgHk7)r$j7$Lc0#) zN;P4pxJn7r!0rJy*wN!k%`8cU632->*wM4}c}I^A(`+ckEMf{Lq@LTa<uzNDXp@>A zUvu|pW{0J^<&Ni=$DUrbf?h(l98_YJToDHMKt3;(@;5{kzodx8uaHk@mgM6(5OhkE z_S^k~pi`P*uf}(}Jwk^UE10se7<gE|qwXFYY9&<J*n7-yk7KCa%cy-Yr}n`?Y9Aay z?Sn(qwr9Y~IvlL>onDL_rnaRosC^ePpy*lV6g)VSGJJAxg?@JGXI4Km4C&I)n!3uM zk2<F3Ko6ntF509$;WPsKeQImeu&yY2>qAjkWzOdH^v(7~9_V1kDmt`zT0yY^)Hrnc z82t~0m`}YJst-Ntm7-mGbdYUFf+_v%&<~gUd2}d0(QVo@+!wy8KD?)b2qh<Xqn7hz zsDDYc=Jps0di;^^Ar!DsWaaB4d*3d5E0i*CQ^Cm8BSEYmm!YsoJ<)5iT)+xdIyeO| zEhK=qL2pre-Sw51p4Yy78<gS>s!WEDBW&#AXMaurz4mz+#aFL=?x#KMtv|i<H_#$P znnvALq&>6@hg>;|N~Bw0#Y-6@u<~z%g2cQqVN~H-6aA2(HHx%W+Hn8_?qe3{7UjWU zBg(rTV(IW~z!-Rh?Rxy|)z3m!;uMB^?OWM!huBl&j#7KkJ((++Vcy-T*FA_bzUpFk zEPoFaJNm_hgVQs{5_1_#0PtMNd!RFUyXYh1ikF#KUk^M^cL|d_^}|@tWlu%R@DylF zd!VXU5vl8m&_gtW;I}B9mq16AzFCu~@TDJBnRn~wh<*-drMGEgcbI}*g0)AlJ{J9x zTVgM3-ZKNg>J^fjON;{8rsx#B`)K{Lpn$yrn)M6xz?=e`U2w=`1;zj_jMC3>{T$11 zIHDGxE(^Zfa{y2Kk-0C8r~L*?vo}9Sl$O8wN%kjI2ATu6P3h-ER$5Fa5J@Wq9)jgP zm2X<6z4<w!%*{EfxG6*_<{|y8=qJ_BxuTAAayxK_N-37B6o0n_fSm_+k%iUttl{=` zw>LgV;UR9z-uR^GM^yd={hZg&!x<)=sZ%H4#Yj2O+&q7LnF~?(V5qufTl2=Jn%HD; zwXM|yH}gJ-9(W{J*3bR=ImIhELZMxVe+B}*S*7v7s=EgYlG|`o^Ry@0nJ-KqS=ZX! zMC5L6);-zJs)z^m^MHQNWR=xBx-LeTmE5H#J?Z|iGcvv)axUWwcIHvfkyYH>RHrJs z)g_hon0_AB&&7hsTgr`IUAa8xxlOs{bDk9RW|j6P{k%~>Z^+8MOUi>(hg|8gwwyK@ z?uFbq*FT_49P|p%!K%`;A81ACNu)FGac6TKNea-xs?wwQ6{RP^TPi)4GPeQ<p+rA> z+<qL8Wx$`Y*JK%AE+)I?xlBQgk6i7q;R4_wvwy;K8soWfnm(-YWuUnqg*?9BMNE|f zrbqSIxiO|f%@~tgJj3Iiea$zL1<g2;J(_dyY$vmhWPi-O17jkV8+V7yHB749o+Tze zxV+(cUGBmX6Czw5?R;A9{v{?%xV-K8tXz)V@V3>gn^|Iph09TEmP2OU;u143T#n_w z3x}&Rp1{GPw1MN6qPOF4GX4{a!~38gl{>E21ZUj=y^x8OXEizD_GWl#>(IR&cQ2~- zz5N5i6g#c1A*Cs5Y_rfBM-(q+=Gz_ng9v+C;?85PUDS`nT4uhL(91q|c=PQJZ@yi0 z&YN#{xX@M1w>xAvnsGQI&9}rh^DW1`5vVe3VgluxKfYUTM`^xgcH3~yox7Zjp$YF} zNR#<?$5!(#WijRB*UYyTfoNvFbvup(|81D0a{qeBGjy{qWiuUbG8_qhG)xY<z#Y{4 z2lD?7-fG8xNACaekk`=Z7P<c?!{i?P_vHSc3Ncd$?%v%0vms3&d+HT;B8UA#nB1Si z?$2TWFie&+*m4g0$6<0NgPqA?zZ519WUvQv*sp}igBk3>9QGR_PlEe$&;Gycy$zII z*H!0vKi+4(SFc`4rLQX4I`3L`O14x|99wo|$JSM1N464@u(G;Y(?EL-84{{AOr$u9 zXWFrp;114;18PSB!<cD7%)|}$j3+kWo)tiV2?m@-0h=TcXhR(0d=T6rfB`d}-+!NT z@4N3+m0S+v)oW&r<$Cvg?DM_PKKtym&pt)iAH}e(K5SPJ_NOu2st;SBuWM@aPsiEi z`u=R3?RA&Cy#?%lh_fqb+ZBcXfjGMo|CNRR|A@1z@LyH<e<8+*FDk!<|3AiA4}Y)l z|8ku1j)nEjR1x-Tadu${yRZoR&6wxIJ>0q??6+giDty?*McAj~Y%YY&6=9!=vyCBa zV-fabob3)_yNj^T$Jw3`wx<aDlNesgmocDkz@}Z%={UPY-+N>Dsd;xvfj9TXaKw?@ zS){!`#&CG#wibR4QF%JUomcoDjx&gjyQuI#62nPHZhPVXWSnK8?5qeo6T?XR`pgz# zkH)OOK5Tsv_E^l?>%%q`VUNcdCp6aA7ZhO}D)&QJzX*FG&blG2TZDZsW^3isc8ahs z#86!yrXveBL#(FoJ?;{Eg?=$O>k;cA>kD&PFPO{PZ!T-Oxym-1uWYUP%66KsY@zwe zwwbSNmHEo{n6GS!`N}rj;IG0L=NA*47e2?F1^e}9u!j5QGORb3;k&sE)6Hc#Zmtr$ z%~#^J`AUp7Ux~}+E3w#oCH|VP#9Z^0IBUKVTgO^cN0OC8<)CvmE=J)jh0!*18C5fv z(KB-yB{Nq^!^~GwFY}dj%X}rpGG9rn%vVw=^Of|;d?jTvUrCdSmXv2uN7?J!NmDqF zNvb}b$6!!P2T{w<W8Qz_7BlhAhD^^OHgz0xJ_3_A{M+~{qLUZa89R<?x&2D9-;QHg zo(}S!%ki8=NQW<%+u_UQ{y2unrR*vTxoUVEBdhFL&yHi}v>-(YF#U?Q(On)+Wp=Z! z?d5M*y5H?8PG@xft#f&;ME-PUie(k^!dD$(oz-m1%w)&39Xw!+8p#GZ60YU8;rTC^ zVv|MjfD`f-_%9ieI-GC&K`}nIAUaZV#F?Lego1b<*MM-C<Z+QnUOQGzLm_L+o_Al? znk!r?Ro`v(4w7@oNvOAE?IZPeWSsiyrbTtbIly>z9UaKnp?j^-qk|VT0uqh$c?V>R z52Eq5zKF)@5sAjv>+?1(h7yf;^|?vp-$dh^^u1Rv+44m+-qH6o;`L-dC}E;;0uYUF zRRp5(^YpzvhPmYXs6?lHPe@eG_Y7>YIIvxYwL?KO0m}r^5{>V1yLbxM_4IrW$-jHR zY9!J4ygqN03=`g|KH!)U#+7GqVCy*YwS&G1n%ky{>uFe*=I9lAi4)Ivd&kiq9+B)y z{%IqKB9ZxY5Sed=>EGiPme)`s^M$dNfc-~#3KrJTMCNTb$E(<G!MEb5!cAn}c7q@? zZzCe#8?acmhT1_u$f`?4Bpc)h*&vnX$PBrkHgb~tZABJ(ffo&SZI9MoLJ()7!A&kP z5ZHcc1ZmUEBd@k+11o^)E@cMIo=u`E6Aen9XqyE&v{}f#XprL9sSeZnK`Lk!p=3B0 zWKD}1kDW1Tw^ynlDcw4-b_NNMMYi2`D?GEpw~rO>vZ7=;!X7mU1t}85kvxze<bf*u z0&V*BuG^xUrTAgNyy9{gal0Zgs`er+MjW`T#Y1r*rGdbb1oFdn-}gQ;zFCTwjPE=~ zfnEPa^gvOE))FI9leBQV_FVvF@Chaym;k7y5oph48UftAV=H(9BuKh3M-Yg5L@@%b z&<}fZCYkCmtDi0UK?bPWKtfF3=i6_2VdKh61<zd)iB~A;Ob`K5!ucwOd2G@@m9-Nz zhpsGe{-d$J*eF-m6C*|fQYuy8f`qmzB$U=758S#4ljKviL#lR2)m|}`iF>lGHni5X z^<-}wY`%d|@@#sQP})m>iy)8(YZqYcF)*~zm<}zs)doW{N!;UuVKT`u7&DAYK+2~I znIv6vvHE9+eh^1`^g!x(1!$p_s#0~6MqUXXDEvjrHEHDXa!;fPP7;p@kaP(m`9Tn= zayNlKnh2a*nE>jdO0OwuyX25aWV<T;B5U=8wfds*RwIX$VvZ33IYO&X6mm$)yi^6h zQa^|wRr-a1hskdPrTamY!+Zy`eL2kcQB+3)xnenm1d`nMstDVbA$(LhS1|9?ffo#0 zcO|pT_vr<d(k>V;4cX(0r440|6m>x5*%leGqi+|q#2+n0hB4S+LfjVGNF0aI&>439 zHmdzf4f^9XK<c=14TMiY>PYd|s}9%c2Z5vNVDd(kkhq%+IkWPcOL*-70{I_;XI=|* z?SmM<f{MV-xb{-kSmH}S!^jHq#ujz8F_ohjQ%(01CnWQyynXt4wSKPTfo%#$(rDS( z6?0ZtHN9cQpa`Z6$BRMI*e;5ZqbTM?DQP70YgEE(^n;L54cx@|xhsmcS&6bu=dOIw zW+7u-u~}6aBjwzv!fwzH;zi%3%SzPo!5T_Ly0}V-L+K*re1{5qqka%9s>BI*aX5Xn zXP&n4Xp~4FT1U--^dZPCdCshDtC~l1Ka_!@H4BQ?9HVGFT*OkVE@K{)n7}+3#f0-$ zYJk|{z0h`4rY2zF+OTiyVcj;twsm3II>;hdVX>TZ3trYXEm_|Qm`lk5&*+QH?@@gb z%-yapSM49u7unz)`Xbds1~@Hw-f4Z2=OF`}mhA6deKETDPCnS3y@?N!!<+eFdF5?< z+9m^>cIZ*wCs>mKnn>*(+DquH(jF2sMm5SJn7haXfYV+8$bvNBy2=)wg4BJ2e&?z6 z@$_-zfTvS>%;bPP2r5nNnoD5))kB4gON=3mg+92tr3*FV5C$(ATo|SaF1<_d^Mgwd zuI;63zI5#@T_`yRxXVh{m8I)y@zGpY`7v)KLPCJzS)MxXGe7RbWeou;bGP{*5;c4r z48tF?H|B*sU7Ux^=?}pMU7vF^NEc|~;DBSbgrzuwN=lM9Zx~4If%*L&6rp%?cPf=q z9kNw8uM}E{i1H{KjxPD4ZE_f0(a2O)5_X=jx;^+p7#H@48%(Jl^0~_^33H|017N_X zYUF2MgyxY3mY32E;b_qe6519_{bW|J?WY3D97fzg$)<1$vF(Z7rL1n^YSfHjzgJDr z_61QtpBI<n3#Xz`c3UkfT{(&;Uabahou4WoA3U*}mQUk1?0MewqpH@sqPIowPEyxN z2#>f2m}$C73l1MPaSG>1rrKBRwSDMF4>BBngy2OPp?ZKBF}1WWYO*Kg(hov^ed_*$ zI<1@1#dZV-GNNi9^jhUBhlQtubrzu2I6uw99oqCyGD@JA=FzZ`dO)sK;)^&9Ms-)z z<kT2N*rpx_PT?4F)7`vP2?K!}l%c_(Ebb|a=EW{O3)(r#W)$-_M+NMrKss`-lRJ+j zV`70tu$4D&hAy&|Wzn28rnRXJ!WnKQEM+~O<>Nj?4=w$a44S;Is_cqTY4h{=l<Yvn z{v&NmhOh4W$F8HnWRDL{z8K6dcMgV)rM}pHLKDLjr0e+?{{cCdOtc8fKV;3|YSh&s zWKCUdm@%*+niEhyltsx$2kJf#-F-1=lwcX=oY!tAZETu)jy9AMrlSt{LRq0DzAW%k z9hu95D7zH;K;%GEsXc6+y;10qs&2zLp=mE9)?;!yC?sJhZxOk7cabq;zAoAmV`{{d zOSEfPC+UhVIQ4|p&>Qw;>yIAR7$w>t+0`2xdzTz7#zwejbq*u}kG&2y&AfGOROGq! z=V#im`!sNNd7zX3>H~;V!%(P8nRc(>dH|Jz;Hp<Lu~PPGvfd7-UKXeh)Z7enOK^3^ zlgs@%AXFs~#KjhZDnEhHqqrKFD9~&XS0Gabn(YWb;$AtOLBQ(I*$3nNo_`C;w#uSv zm+aR+NO-De7sHcSF>FSD@}z(1$UJBMowtW$o(D18-5DTBa}Bcm;&TBF!9qgpg>JR3 zT<I)G?+yDPEqNBSqYTp8XF(U2L0SYY=#nx>tDyz$EQ7QxTF|aCNb92oEtEl8C@pAr z8Kf1{g7%a_S~@N0m1U6DPz$=W4ANq1L9Z%<w5nRrWo3|-R|_hniC8_#?W9oQvBqDM zQ;(UKX(CHQTwKJB_Ze}lnLgck=Mk3{apS#69HtU{y7BHL&JzmiGTyJmHHviO9ZX!a zh#T)|;*3zLedAqDT)Rj&-uJ{|0m9dFd=QB16mjFDL7XRFls7&s#PN)*&vSfyh{Ir` zkE;xn#%HQ5Y$!>)S})9>){$@Lp?cgrE;zkQpBzIVD4ht7w+V^~N|B}z&Q)&che<Z| zG<$ybH~f3bOlpxPc3l#;0|%5O9)z4o^jJ7)w3x^F@f#7AM+5A?fH<s6$}VQULU}Ar zL$X<)rZ$L`hWBfI8qIets|JTQQ3+?{7`O;Q{4BBPuqs>eabi+Z5g4shkqhKTH>fDn zn(#zuf(hz|)wMgnWp!&Ez*98Jbk`w)KZ3>`zj2_G1s0Lmnp9WyFmF?7w67RD$g*Oo zQb6&nVohp9RT_M#A1tY^u+}KaD)zZhF|M)dJi_-$>iZ<E^obFvv5HwSP~Kt1WPf0o zi?3K(shG}C5dHd!!8NNY6TV_?K6G5GsMr^(6&v>0_y7aW5W`!99!ts|<KcU&7&lvd zc^r$;cUHyK2UQ01Sn*_4&$_MKIopjVv@LlmvTccr(I&9VG2j`S60Uy{(ifM(g&7yq zt?cJd+<Ihh!tREst>aO*5Vci99r4;Pkv%N)$ldqYi>t<Z#;2P#h1Eg>7#y};Fo8?} z$58>Qr-QmW5N6DxW^gMHm!c?6(L^+qZ*9P<@j6s$zNvORx8YZAWnMKdI)TD~BP(W~ zSLRdm`S>z=yk70&Qus6-|MU}3HGkoS2&p=ZR34^Y1BDEB-TI^l{YMQzeDOw^jLWT( zHJCy*?@df3B4JCdKGJ`7)W_A2g6`CRiCbi7ox}S0vURIR^*~LH4ybcDBSpxieCCkf zO618QvwAZu$9H2WXQbT;?N%XZUh74I`cZk+4QxKk;!<B64Sn$A#(qG__AjAHhy@+- z8L7sF$tcFt>eLWMpe3f}@A02`|8f4aIf2K_H}l-JW!3+g7!KAoz!Li^Ir1bWmy83p ztPLgNIwGjXbwuD=oPYD_X2~L*3B$dli-^dZc(XUzpBzt(EfHdIBdJ6z(HTlM)Ph1O zeTPWZS=ga=7Z@fM-_<>aY3k5eFbrj(5;MRs4T2(6KyzRhJQGKb0mGD=FwF95($k`f z)Cc-e$tUsoh@jCT_=x-k)U-Xn0};_}fP8|aMD8&*mkf^$xUWX;1nZ6gN96#%%T87n z;)qltf+!ZLRd!iMJmm{q&g-zNp$_zyria?1+%(j}WF$Gddmt{?+nW<pJ7`(2(W?TO zUg{-LOpmZaVJU2gW6Yi*F6-D&Ew8B;Q=40<a7-H;_;Tw|*108L1+eXydQu#2lM~WZ zWm*w>J@%hfM6)cSSr)-$UCcYaT_8{Ey2)gg&Tr=HwL1iv|9OSNv0G7e(2^P~aRonq zDE^rZqJKi(O`kVyA@imuUK&xGe;Pn20-c}LubX7CWrpyFK!rUmhcdR~YP#0-lV-Mo znXGB-2U~c>+_zmCX;^;!0a2UTJqumOSRT{0L(3-E!?EM-UkGOdZU)ho_iZ2XZO$Ui z>&QS^K_uu(J0DBpnpTwkP+S5)A7O57N!xX?L@jfPIzbL}aCQ1;)(K6RMS7W=g^jDr z*4{*<B+6eQ8US`L4x$8-uZ5|9F+)m=M2^68krGN09kI)R5Qyms1u*sJ6Q^yGCj|v; z1#<Iri)_gl$em#l;N0rd&MU2VZXY`L40H7POT2|^&m;>ZlU?_*%|&uu`Bva&@oNbL z);j5#B*s+Jerk<@M}BZ1_NgtYC`2zy;Hu(W(x1n+46b(x-%_h6J}sQ7Kxh`(vQe}B zzPy@*gEXZ+*s6e+5>qKO;0R%HK!%_J<b~-VRwl)gt0Y7T*-;Hn^tmMD)B5#7IHN^? zgxa9`Wx-OZG3gs^X;Pgrlb3K#0a)1L5zE4byoP!tWN8g6fkIxwN7cB@ijqQlHkGO` zm}B(C3aDfmk>#*)Y7VGdX=6b3sPiLn9IL0}{69rvI-}iDl>hbZc4HoQlFKffLTmY_ zBXiEPQTa6XGGgkli>9zl@cxn*@a^j!^U;h(SsVgl&aFe-dW*A|`6$ombJk}1BwC_@ zn-0H;{X^9GAE*wq;{>F-zCEI148|J(gK0ZcV>qDVrfj2dx(h%O!?<SgoaR9cJ7T>l zCb~~*%Srk=zPD`^=<kQkAVRy6KThL@3gozm^0Y=U%kZCOXln#uTW2x9`<`|A$+$m{ zRbS0Q?Ns@&Mb2-d_8`g&{HF^Y_C=Y9chxoXSlp3f?A7w71Z=al97JS)mh4lZy2^W8 z<A|0hlX+f^NF}{^oZ0(WoUlyOMQQ#Rst~E!F*VTs57=TS^6`c|`VOscA|Mcnozab6 zAw(GUui-XX5tG~<8R(iFKzqW}Ss_aiYpO;~QStJniSpo7W9`G*2^~;53f#$O#mWh* z#oo~(@PH{lUGrX_HEkxT2prjZwg;dYOJLNzBZ@{4<k{4x5S(dYr`tqC8#IAS&08~I z<k);Ygn_xIjU3&mVT9daa6cR;@q5+mPl73%j)4W-oXkJUQukgm`=`jr$ZI41J2llw z-m5b2q_d9Sh$5AO58b8T-@VI4AIV}luhnaYv{~W2oM;_}kBV6Iul{S_Y{g!CS4Z^= z`9Ur^ods}Pt=eqXCSt7%__`y$s9Zui4U%(avKXfUL1S754c9Ud3!k9%`e+OyV?D6z zFi1Qy8*+hd)B)-W%SLAOXU;CmLRj`ZwNgistM%89$9`>MGOVer)R)CPp_7H%lm_aS zr9sB7!@iY~a>82@Gt)q*KCC+8yd#sMxH3MH$Fc@Ze@5_&8pletT+(@udX9EbQ+{rM z(i_cEfLdkTtV_kx&=*O6XC51%k5niL`#UvUwk&uMzj7FGnf03{<B$c?(@rRtO4~Y7 zma6~=+p==e&oDqAS(Lj_Ef<hbu7K4amZB_o!OGp_^Jm&hP7NHG@ULb&o!_p<-GB_8 z(CJMfamQ~O5ZXf}Tn$Q<A6A=5sIa`%7rkY&9Gc@d%0GDghB-rCQ5QN;%bipP`>z;G z<!@yS#Y1tomgDOQ2<I&Mpri+L%lPU&H}vzCM00W&vMx~#PNVYLKobwUu=U)z2B-9r zmbYP5k~~JtlghSE0x|&a<?jeM-evpcTaLbik~TApDKi^+x9!fhdq$sC7gIs5dnjvQ ze3qI~2r?i{!f}cVF<`E;DILvfQ$g)b!w|L*Nj#vsOqw2M5q6xe;5?#ZiODxjCPH6I zpf}(Z-pvLag~#ThIdwj5JVIJ_iDn=Y3BpoYJmF2=s#cvMnvKz7*az~a<xBLPzBl7! z*M>$wpXGH{1s|cdx+?<Q!MP=Rrl;*El6V~|sgfkn19|w>1GHC_Coc~CIU8x@5jRIs zAZ_1B_1bxIa5B!hJo5IezQibSER=71*UbZLO<CI_I99CCths?|sx?vlJJvwgAS>{u z19q`9g&mm9->hPUBf_}cAxE<bL@R_Xtb2Krz0JG9%O!2YxcDuC)9g$MJvDhbZvnF7 zSpoU^>vZT*b-vDwZ%>o@@%UC~jq_`=5wgGk%5=Y;rF~=^F71Qq`PY9IbHreKze_nR z3oS%22{9meErVjX=IbK+@7etON_P}}zb<|^f1YMRfigRaB}Z_P6mZ+*V^&^pi;Z$g zu^(5qVp=tST)IeVfoMlgnA(K+;>1^{`_l~f2l&>r29-s^N0sXQSt~wVM$|1rnGIM{ z`whB|JS3Ti5s(<4^;YK|EdO8S7+&qv4Iy$$_UB*tl5UJMtq^+Q?!Sh0DF57-P~*rS zql76s*ut;wC{$&DSA47(Ig~ez&3~fEdmRK*_29&U^EuYi=fc`>TAOG_Fw#QQauJj# ziI~>>b1Vb&f;z@HK*&aax87=^v1$y^(jV{;bhYi3egDD87puR|vOCNS@tQ5G%8ZSj zW&}yKi$|cqQi$NoGSiI0!yZYQ(NCsYfLI!uMFQPQ<D~H}Z-A<QrBP)?FnUEq|4MNg zK%M?+9f|ed*zZN1Pq&ll<DK`~TF3Dwnm-V|{I(onw$aU-GXfZMNYEz+TV89AkLw}O z4c>WPx}R+*JMXp->SBu9a>}(nk!}9SYojPCpXr|cki2iwyWq3;2^l3wyoL88AfODy z#Yq<}5R!KXbMm#gJ%z6|*d||X;N+_f2J%IN3_79hFXTXnur1k%?Lali?BHBxj}5x6 zEa1ZtNh!8@H0#Oor=_Brnd&%J!E9K;tWrUq$QUhS%F3_@%E!y#3>$K!no-7Jg)#=i zG6vN$ko4)UCGFsV`ylt`tqgk;eXI<bF)d1PE0o}dCAeiJO#2e1%Mx^yd1P4$aaqE) z6-wAPEMeQS5>V$*8`hO2*b|M*O27br=%w>lDB=8J3Fj{>VZAS5eOZD%BEPHz^gKcd zb1RfEH!NXpSqU?~gqgAgd$E352~rF2Bh5Q0%dlzlu!POaN<eON6zmno`jPgC3dY*W zj4-x+lv5YY7;KaK&u0ID!7(<1XLvPu4>9?rTZTp#69bUruRZk<Zi{a|br%y!5Ahg~ zR9BY8vyf?m$1b|wvtf1&j`jlz5$t~#A-MyYlf?MFo+qDm=V|t`?2D#gVlq5muHzvr zi<dr$oQqe^bv9k&fhzyzxu(bL;5_WCx~*kaQvPU`0EoUZA6I}&6=b^fu^OPvSHxl3 zcCb}?R@l|y7%3WHuuc+(Kd;9vnQD)$P5s@XgW5JrP-W+>$$r}XdX{vNV4Ue<e(RB( zy+z(aAxVPiK@7P!`HbWa?F`<YXBSxnGcnScmJ*4LiNtHVO%4*KQ>*@>q{iBj0MCc6 z0-CQD2JL4=U9~bm<0+L+CKGW&whcrmWXpxuoqECcZ^%YCmtRsVlKecEyd5#ovAp&! z)~)2`rTiP>FY*_*A&P-~=I8TZ!LdA1EMlbmw{#69zm|w=Z<u2d;lPnIzcYWa-sHGi z`yRs$hv!#FTZ?V^qBp2-{@6Fx>u(27j>Il`-~+eIo*)PZACLhM=?PNWbchwu+H9X; zo0SLPcKl}GuoILKdWn4053%}zF`ys3Up=Wrbks6{&{5)cG$`sQ#3j~I3}n$!F&!1Z zJxhE?u>%Vo1*q?+n2u5`9Yx=Vj>1YOm9dVJN&~%BbQJ5W?<g7>SP8fldO`z>YpkPU z-%)u?_vA4hRC^=aF0o&Ri=*w$<Bs-Z4HkbpE{PqCylaQXNkIx7I^!Pt7dnng5$$w3 z|5S_XVV{)xt&x3T?%}jk+n(tpSqBaXt28z+Phoo#=iMVK1SZE;4#%#M;AuuR6LyF3 z%U(kAvX_v)oFzmO+DyPmrdLI<hB+pM5<Y>v>`(kZkI14=U=zHgKoDI_fQph}K;Jmp z6W)};5(QO&5id+Y{m@6V^8%&9VyRG5hXfF6(Re$Gjwv4on+tg4mnRa(0|h4?W1ri^ zuo6|MB)&cmDOl0~aUDJ<3hQ)!E<vcs@l_)sR>yJ3Geq}r_x*txE_h@Gl;^xmH0HG^ zf=LB1QwgdLC{`ImPKgrFt2{Wdv}0IBC||bLM*k}3yvnW2OJ`BOshq+=Xv=&!&C_wN zPT`DmMyX+V3Wp#}=VC-4oQH{JrX3rw2_<K3=QRLFnD~_wxCFLLf;u~O=1}<<a1dWR zfz!O@us)njDKD|)apzM>(kOR#oQRZL2ro+0q`Lk0wR@_udtzg*-BbP)TfKx%VXNnt z54L*RQ&CsWmuXGwC&FIusr>tBL+j@>qMoD9>PSq&&Md9$%&45-@#JUOGSOt4(X>FB z((W3YB|Ck=WPwA#t0NiuQrn3%{{s6atC03&+BGpu(I86p=TBF*X1M*<>?zxtJyUGW z6wcO+P^F^aq9`&4y|gK_%>AZ}E}*rHb%(N&T)Q*+@$uLnnGn?9OW#SX)YFfN=J^KE zyq!s@r=pzsmh5L>A>VB0H*r;}1=*6co-e~EJErhBM|D7mgEi-RnF?j+kMP0iGys|{ zsXc>00jPfmVLx9l>~}f>p{_;#oFjm5BH*~}*;j-}yEUbDNA1JJFx3!Tv?LwC4NLOh z&>0_yJ5P3#b;o0*?J9!<GkyA*EuM(m+4t>=T*mg;wIqF)cMqYqHZaZb)_mv;6=(GT z2u6cDWr$`l!jG4A8WTH&vQdJ|0f$|O;7J7|x725I8EXAH&xWMu`T(&9<<16n26(E` zyj>(BbD8x=*JrU6ARo$gTC~Q{>z=aLl-A38HM*HRtx6hhfx7kNG3}KWwaoKJgpM=$ zGnbaIy18hInu8n5&%kmm9+&L@Bfaw7V{kM^4YDxF5_I)m@AdLG0yjw|sU{WBQ#kxt z>=Z5;ODOAN1lCOpFCgN2W`Yk7OR&{eYX<hYl8d1DE*n^H?Lm1R-%iAZeC7wBGTjd^ z&Bt;1HG+>t;S|{-j15;Ub5wxo_S8-5d}Z=**7^=wkmjAkS^Ya;>2PwzuMwP0OmhTh z{ctuBoZJj-dgpf_0lYbX@KdHrmUF+0B5D*NSth)yvi7<941Hcco0W3FC@@&~ZKOZx zYoO%)Z$CK=IBHdBeH(e49adrUx1YSMLigLq<Jn;qwua=f1_8>>aIwPJuLdD@8U#3K z`%V2YhU8X-jMW_MbMXV&%z^$LS4TQ@n>o<Jr3G*Ow~@WZ=<*~wu=xXS=5{ub9!p+I z1s^PPxSeg^OHY5clD_EQmr}ku$hY8jdSx?xq0{OaG|^vrU5eh={(;-sE5G#gMPDd= zf$}e<Ek$1_edpUKzvv6n(--sf1uG61;&3%OH)uy`ycqgS?`EynvYmlW@EGwC4ym*= z;1HKz))Hu_4q?S4CP(HVih_naLPer;=R`VvJh_eIMrh)E@(zer>w4XHApsT&+uBYu z>r=mUao0jL96D=jRflzl+k$v)A)O)=DFPI?tu*TiMUa9QrWb>igd*d@Yh+fT6GqyN zvTh@k8$U*^0lt8Bhm#F*HuC!ls4EZ56Kh2I5<+=E7_ZUc-Gugx(i`P|m90uzDr_aY zg7vQNrtuo>zKYOkTOe!+yOz*(VF{CrqFA9g6}Pnrxi>CdcdD*r*dVrsp;m)SZAz&< zf9C4qQcJ3<;3Q$He@adHGuIR@txqZS<Ih}NYqPqh)QUgC>RPTagr1++chn!RJa<Pt zA4hsWBnj__@OlVqnDOPe#~FJOOtPGRgw>5VHc}BB(53#6TmMkD@guod6byuM)3%=f z!K3lwP8gHs(kH-<&jz0!iu}Y!Pq~eE^<SNB97?=4RwZ82Pd#EaqGt{}Bod5%zU|#G z)_hTIFe@>zSafOrhd$@k!PKMm{K*#sQ+L<%CteIpW5#72>I7pH>eL+8Nkdi7f4`E; zieMVYdj6Rg0~4y$^RpE&^|0@VXjrJWBJh81!^asQw(zpW6(KV~9G7MhY8+&;jWawB z`OpetaNvgs2Jscl!Cp<l2uf@&h>xnf?n)3+QDnAw2w2qRc}N+ugn)P~hd_~b2*F-= zIRsm|Ap~6Ya)?G1f{pSL1WNsqA=-+pEr{<4QcXFme1LZ?-h11DUAJoe;;!I^1M#id zh6DZYw4Iro5e395gsqX<(fD;!Ji1>i*ni>@ebm0d)6B%rid_`P?8#ra3UjvSm_waU zwUSA(>y7-Y*e#aXA$Ii~FmrAKX~i-P61zdicKC=9A(?C=krT2*qrZu}Iq$z4rZCY? zgM-f_y0$bKyN=h8w1Xd=EXLYP@Sr!gNjTb-3Z=H`EgrZYKoWJAh^*~a<;~gD;_f(- z{P+cXyN3&UU;(GR+9XrN5*Ng<$)asE7rd~Li^T%f;zpikL(|Vqp^Zz6i~Npa-j5@R zN~RKXE=#HGijpwRS1qZMDN~E{Y4#yGXKNFZ(Yk4lAB(CFEB>NojI~B(=;*}PU6KTL zU*eFs+8eQ^bfkx;{-ftO_>b&vTa)=kpE0>eh+eI(qq=o^{AcEhNF6Ypx7p?E!z;KZ zRMcBUoRYWm7G$cKUn!ZyME)GwP-x{%kY7v2NO(et44934uJj+ClaX)Uf1LmD?wA7g zurD7yN4KBRAwz_jzIWQ}Z$qvEp((;I)=0)NYg-4-9N?+6J5HWHb0WT#NkC)N!<f}s zWCs#CdrgKtm*GtZDHjioM09}N6eMfAzbV=dhS2z35n@diPC5q3f5%7g)-P0~h@%pU zu?|2du*p`CiU<Kl5Og5@b(KQ5B<kpivZHm9rjF&Kfz~_i)_IeZql%~sRE@`=R1hV! z4rxliNOT3M$k^VyK6eVxM4bh(^1XztL4I@=1~J7q)C;Ol)-oBEutd~HvrE_gL>9CW z@4P*~>0QL=^h2)|MmM|Ol8=PKupNVZ!9Iz7*ST=&6(c46X3m3^k}ixW2}txNCd#-j z^?K)l1a&1k5q|5tUGm1s$lSV;B?PSHb;Qad2sP=LM)T1;hZiQlLJP(O6NGI=ro_id z&SRo#J|@*cj-p8dyhByIOeobpxFZ@!C>^8D(Gud7vM}+$@|_dKOmqTM0PNzi45|NC z<;F^-V|_)*HG_+hME0>=V(Ew5)F+l;bcaCpMf16?|Ioryh4gzqIT@?UJAIQFEDab< zN)FSD+S2ATht)sQc0s`==C;BPNyYzFV0Mw*(>+MF)Vg@5gg87v$#zMGr!)yP%*5rJ z4{J~mXD!<CkPpebi`wS<QL<?y!Tp~$5V%thv<{;FD|8I>U0FmaoGCHbVD3#Wk){Ao zj}!N{(Ks}66!$iZd#A+#gjHQ>iNQZp4--IA!ERR5&<52x4xLIL%Fr3WLK_wFPCBhq z6n={@;GM*%pj&;F?u@<ncE0M=(MsJNVo!oQmg=4mfQ<z6-ygpB^36ZV6HWh;@11Bu z)#ySoDTqrjflaOG#4M(wasMK9k<cnqJvbZ^%$Zm~ndGdxNRJ@%BB6k=#K5)+d6Vs< zS%59dV&3BRjK-n8skqB5?&{IFtEs{MB}LOuWP5Nl`k+tx28(;^Xxv+U979ODn?~bq z@^K6yafe6a4*NKIpSW8_<8JYBw^|%5_eeJ}FxHSeZ2D@1Mxr$h)R0p?`kt|9#>=8l z`{?_|qVEgQ_xosUV~%9bC|l}BeDs;I=rbYuQ6G(^%aPP*^jhk(M5mf6>>530=J&QW zsVca3KSmP_Ck(6Z<y?UYb5;B>*L(5@iPJsw&exNmJ6a0`UFZyxy1pDRiN5WR#s&02 zG)^2!_qw5GiMCq^NE5=qHi^bXj`mm-I5QfhTWeh9B%gzod=6R&STYK%eBNqNAjxQy z^0~>P4p;IyY$0IAD6sOm#iE25qjAdUcHj3WizxM?W-GN6E{rBnX7~6=VZvyna=TBF z%HqMe^S?Fd?Sz^5fa^TqCLXx;tsDZij56QGNw_wWdco=k?D_($bK&er2Qt}T{g=ZO zxyd;f)5-1YG1=JLm`3^+MX5fuIF50pQG#Y1XG46FL8K2yR-&_$s2l41xISRQPO<Z! zLXC$dvo{C14+|Vz9-aV2nrX~TijS>@I}z0ijk_H+isB@#)f<gwtKIK+Cwo)<et)6^ z;>db{q{-ZjqCya3cr1wsBnas5u}wh*Abv3bN$Sp-gJgE+1Q7EY0P>U?P3rbZI+q_` zUYmLal#SwY0I?lKUdLC;fgRns0VGN~XAVrya|5t7Dgj=kJ(7_Zg{{~gY_^sFE4BxM zaBhGtF9vYlIKW^X%1oW-b|e>j4Y@sR3ARVVF{oEfnw2m$(t6}mmwb)u@tmvDaWXj4 z${WY>lfPw}H2b36VuZA#FGF?;`9@$av5+c^_6{f@SMqs<g;Zg-6N0(M3d{u-Qiajx z1H(Mh3LaKq!2&t@uLkZSkUOoTffrlg7~~EDWmak=`9&5u26-WY+~paC%q(yWl9zu5 z8?~)Kx~C&*KJlPMf8(fmDIeQh78?a{9u{2alLi+!6kMoT1s7*W!PPBe*#d<y&WVDn zU&f*;7s5Cv3NBuS3@!}H2iL|jc5@lKrHti5O@PDdRdAhG#-gkf!ccDxu0a`_m9g8) z*bB?pi^|yfGImE9dvO`Nvy9zU#x9hxd&*ee&JH!Ww2Zy1jJ>>!-CM?9S;oG)jNMnp zUR}n%ri{JDV)aUPof)JX6^Iy;;sJ876K`65rJVgP7U2p2|MGau#4BDXPpdDKH;P~n zXGVb%7<(2Pmcv1sKgo*YUnsAW2NDq>nM>Zt4Gx$13xY@%d7+#g3Nt!UJXq!rU}WzA zU%hytT!fmVWHaj{9$qfnj7<*MOR>9bXB)E)=YO@Vm-TrDpp|vA>A`He-yyY-NHpUb zlvDr*TK43g;_*<Ku42#3ip#c&31E`)9zZ&LB_Njg&vhlWVU3a)oda49BC%@5ziHeO z3~$tPRSh1MpxioE8_}$t5SKQA*%ulc3fL7zUfZ2llet5|#fHspHn?Wp#^3_M>5vv3 z()KN*1?%VsTA<e;kc694?{lz?K}1f8);_lplL7?sTr^dZ3t642iHpY-)MQ+nc*&P$ z;L@wf)#_yp5dbn10U!gbuC-$@0ez58$CgjL_I)Q#Ty+XF^HZ*~^oi_Mr`${thV@F< zCG3@_?sDskzy*4(N8n|r?!q4bo>Oj@Bh98F`cfz8b%l4g6Wm_6i@*f|?zZ?1Mf|HQ z{*`V4sLPbw<$z+{{8Hdw>2?!(g{8e52!aV9_*De^BvygTl;ny^608vecbSr0u`J1D zAF}5INV2Dr<kAmek8YRS`#p1ft*||nlnWoiH2*HQ`+JFfZ4^cOZ_=#z8wNlBJY$=G zLh3B^<^qu?UgvgwG~0D5TNq077b?<xyJ>MLHCz>-PSuItHB7&&nqHFaIOo(cpUk^C zPw|O?%$qsaZ+MoNZ3Gx1!VbUZCJ%F6L_QfJ2K{w>02&gCE(<|5%wc-)wjuy*6)7f& z#%LCRZO(!YW^kyM?_>aE-|Dm0F+A%8({7S8B-s!4fYSl6UjVKHum^WI=`d$JaWLxy zzzqQqnS{@ABY+$_>ClQJtb-Z+tQEZ_0J7WnfU^KjkRS7(1FC~rKLDN=0Jj!^=L0Bh zW7txjT{)Od2f#r9bOm4rAQM5{D~DPKvvmRR!T`9v0K5pmKKXIL#c|icY<&RS5dh~4 zz>5K#CO_si${Po>nE<#e0PZXR7XZY7Gt+;DH@FUF8v@`f1K^$l@KONRlOM!jF594| zWqkKs9sn;Z0QUkoLw?YTxop$HY)b%qbpX7w0Ne*4FTFrgwu}J2CIDVt0A2$iuTC4_ z!8xO`DO9C+WSt|@W3n2^FTv%T?W4g-0WFe`JW9Xk#%GQv4?^obHm027-I&$pKqMV_ z)e5gLtKt>@RJ_8HidVQ$@oK~?UX5$TtI?}?HAWS$Mxx?Xe^<Qf)rwbrCoe|3wLVq* z4z1~9oFk9--DvPieb+?4tA86t9dnjsEz2A{BRxGbH`tOxp;Gt+NRyyg8?j{J#ZL)w zG7_NMcM{xkFku%-*kTMOS)j1gCkderl$9Hm?PxLWW6@jkai*r0Qs#JD_U6osboa0< z$EoWn1>=*Fr9*RcwMEi-6l|V4JMATg{!Th8Dq3W)O%j4g%^o^yhV{*T=_x!smT4Zy zGivz|)%QGp$)(?uZI!^W2EE<C-z|I;lh?aXk#_Q-j5TDz?Ya~C=~@q2Je2+;tZR2& znMAP5yR^zIK>A4&0&A>FZA)3Nq!5iJjkY3|=29(E@(a96O;5RA0lxbqET9I?>4sJc ztu6*GrTD8CG1nUBS1xiRC(bWh9BkvWXK~>8>|7iS_{=X3GCo{rynqiwwVlt_#leMq zU_vDBn^_#Zf)71A&xcV!{;NZci}`TH{}Ki+VX!4t)PQA}R^RC_EJV@wsJEI}TQ6=f ze6QK4U}$ZSb&Pk3xlDx&T>$ty41o&)v_421u1m-c3o-r)i8l5g-MocJB}@nHSRZw- zun-ml({!64<RS}!>YLh_L<SdHNTHR$y+*g)LZq0WV|po0USJ{8dh_}PiOVcxsA7<~ zfrSjU3=*EXRGkY&1B_$vDyBl#i>#9K213rakQvcWLYOSrZ5E7PBGC&yi2jYVcvZTg z0>V&bp$mjpI~b}M4Al-+QdC%*0s^n%k+Zb?QllHHG4CT2MopO|Zl{}jDBI-`dDEhk zOTs{#Mkd(qxUFKwHwMLA*>Yx4->09w`ngm;3;F?VWILZ95Kp$``QbW?UNhjw6gW%+ z1OmXs*H42-&8q(e_Lh?hS&Qc9)%v+yKd;o!F8zR{vd+&BXfA8@{A|$=cTIvqsOg=U z9!spSdbJGPp%|;%)dILuKbPrekA8OQhbe)wpnjNC*u&S4RgBXUH0kuy)sJb<L~_+u zE@mTFYeqIz5U^PV)QW8tob*Now2EC7Ta{X|je<0`id_`jl5(Tv`NJmH@m~A)&pr2= zQxK-;+PhZc@gR!Z4(bZKBSr1C|MdK=*SuJYT7K<8Hu;t!T2mQqm7#qc_XFoBF}jhK zk&SDi$0;9T0OEL+mNnwWfgYr$Hk;R!H~JN9aJF%iko$x;Vr16R&a9~=b*jK0X%Q&i z$eKmfs3BFQR#Z;=C>-56`duQ&DRy!`|NfflrUt8jt<B2ZHjva4{#B-^P$F<5cBTMh z>t<hS3e2&F+hR)<FDl%Ol~YRZa5;pn8i&}@L{)J8C<~o}S<e(42Nl@-$)9`j=ip-J z_D0(HrtF?6F{ToJcdX+>e7dkebi%TyV^JW?<*zSLDS%vZC}Y4HJ{?{SUq~lzVI-Yi zjowY8_$(k?<FiY`HL2OMQtgT^Ve#g3F}=%Y2b*3#^I$QbSFnWhxoE&?Fmssh=Cd8F zW*KFk<)^$@PM$&GVd3E>DKw=FsQG{k%76x)vl%G?%~!?Wg|$I)?3D2+mv2@lhV1hR zGMFrVXjpMvUc~jRqs2gyjl{X#GK$9w(xc4O0(2b->!oi7U%T{ev~2o58<XjlQM?I2 zHnq|}OTtF!+lntKedphNl-DAyE=}2t-lJR5$1%>~qCuSO=kOp{2ZH>dWY1^{t8~jq zC)w$K7c&i6${AA~0HxCJN=;m{bR<84w!$qsoDZy$R`di_pD88eK8OiiEI)=jRfeES zwA4A7Pyq_JOi_q86L|0ndh{K&Hf--xP`pGd_eD1r1-B%Z6-GPVs>_c{nwaP$O{zas zZl~^=Y!!sgr}-#w57$Z1UEng7d^#I2J9A6A98XPs4P@tKN_*vGXLJZVD#USjMr}vV z<Lz_!*?}Gwy_8Sbj8k$eL&-CaM7e>Zpv6ICrGUPi&D#~fSa*1Y3bJwGYl}Tws>Vt% z(0OX--c&;pGaS+-mqD<c%3+QHVu%ifPKP*a)pa_I63R!#^s!rc`g$z@N|7iCcz=r# zWeg-Z6wQT4YDgw#&rTAr@_L?KZJ=s8h^E2*dR`|{>t(CUZU9jUmOOGIY)Kj|ro&Xd z<G02ud~cWRmwSB6Zaa=#;#+pxar_eB@V29thq2p^j6cIr^vURL$8d>{9)g^K=K{56 zV3;FZRTN$kSo(FqR$F90(&_wsYWf2G-;?E6seS>7rUdt-=#d;%Db{m+pd*7Q+0Uh* zGvCnV7*rQbDYvCuoN00)C#wum7%nY+#qAs(WYsWf0R8Z*Lc%_2!*I3GZ~%m>;sClI zqFb@F?bI}>k+5}9z3d}|^_PF7CPF8E1K!Sh3l_dZIb}*FsxTz<N*LUTDMEQ1Dyq55 z?`OVUD;0zL|JV&pjgk#6vz9YX-O#l&XG3^gE8oymn~%S~bEwpkW(9ipfWsS&gxV;x zFs3K134!@nepzZrh6pNGr1Yeju7rD|bDfXHno=ximnV!lv(J=_e9&bIkhKS)Lr%AE z7gm@agg1f#DU-$;P?(rAmvY)GeH3T%Y+^P;Wxd-cO$Q9!Fhw$!(CV_6asc6s97?ji z)A=5be|=rjk-9L{IzyvoeW=`iN;M2rsX6ES)J)j0nfesj<{?Qn_uDUvCv`dXDYX6U zuuMfo@c&I{aQZoxbA5RT&AyNE)v@%M;D0219}M67!uK>^!QCDFC&TxS@I4W}&!KN5 zxM%sQoM*!Ksqp<=_@3n}xW|J3O!z($z7K})eK8%8TnCX&=c;W`PpA$0KCUkVskVSK zDZR`Kxy}4BC~`ADoh<fWr5kHSz;h_mj09lzYc$}#GJt3C%-CFWK6&0Wq;Nb@IPUij zCL5t&NKEeu*XI)0BM`w>6#S19BZw!kBMqpcs3DcsMNA_!mgp!Vm1buz83Ds#3>O#~ zEL&%oRa!>kYywh7e@K^|1`&*8L{{#^aKdtu@%1@^nLY|x1TpW#NuZ@jN1u+}1afB> z24#K(apzz<Rb~`U-BAzF0%A2WJyjn=-C^}q_e?fxAeVOe(kf_FnPzZz4;JiZ(G=aT zlMx<Iv8^SRBMfhb6<OLtoXUv@rn^X8SSEALYSqeji{%${rxX+b9@WmGSA1TmR$E?T z1PDQu2DRJqd!_k=cvO3gFix>!<XXqz{Z$6xOf0&9fjH;oQVpWm@K6!g;&Q1qNtsz= zctho8<QB{?^uA*hIZ;zJj#Pwa5*DOpFCmD@;?^kZjQtZ%#*4_cvi0;Fo1C_6Y*AN+ zfmNwG3|Qp0n949rEguF@zZeGeOql?F7$o2ktF_WF5O)IvB^~IJyf53h%wE1hmHDqz zjj>YGm$C8cWHla(2rWmKu84!W*R07%y$sh^=twQx|J5@H1n8Xe;2Bu_VjfHt^MFIo zmoyK!tzk3CkRM&;C7SOGzg<^wSDl0>lb5A%J2qq9+<(r(A9+~{_asR(pNY;~h9>u9 z(#&tBxwE9bxD=MN@Dh;ggK_~rizP%t3pZXC0zPqxLFa9@c|k@2y@FRX6x1>x3t|uj z*iS71Xmt|p4V_B3thMEO&h=~wFjZrwcU{Y8!<J8J=-aZ%7n*_oNLV&G=rtU-g;VQ% zSbtB3?;YWLB7AS54lrj2X;j@G-t)AOD(;C9XXR9!39Ns%;Mn4Upw6Y*(n%d9ko#1i zs3r1tML}PS#m_i|cX~$R9sYBZ|9qGKycw+HvQ6s<MbwWS%~;{c$FKWmBU{zMSzeLF z7K5mX^m$nWj&ZTd4lbmbkfd7HQtRk?nZDkCuc+vFhKRW|;TgxR8TOg!c{-8J7h25! zqi6-Pc-d`6)MOWj5?-&QADDQtt`^%a09wNBJK;r3l6LAxB5hZZmUAu=<<E0pOV}d= zf9Ww!@mZX2bFKHV(h%P~LYtrRCgX`<8Ef4PxNi70kbk<#BSO1lKGb+)1mb0pR={7A z$ZDE~3kDfx{*;L?lMN<{<`mq)Xd_m!^vpB(I5}1}+95}<!)RqAdso?A)s3<(bmg*t zZ&<c})QYl^@)TvG2;rMNsV1|WW}Ww}RyKmNO1q1)Ep+9wuPvLM+Pw<8&uZ$M-7T7( zQY8uPD7>LgZ(GB$pHS`e&~SE#)lLr$7n^~ISL#K!InW67ZvY1fW>VfDR>_ockh3&p zb+^9{L~Pko9K4$LaGrjJVxO~y>BCg^>`5+L>F`=FK7Gs@#@K|x)M6CojGTz<ET4mX zOtU*BR-8R|Z1mxdjXv|tE@2VYY8bZ$b8%AKCOlV>{k%;_$OjT2J3#W25&bhJV}pWX z{+Nu8TNmo8C78m>RK9UwCfNnlqAUoV?-Nv0%1PVsla`Xpq?BrN)@CfPd~-(%21ga^ zqW{{2MY5@@YBG!U3^>)-oxil4x=3mdGfl~Xsf*Du(^$~dRRwvdS5p_gw(8Uc%J6u? zP>HF_0kdIIx5OfwK4I#@ybFtZVft8TKw+d7p-3yhPhHitn7Z9!>Z(kp?t~TGhOI27 zE-E);WwXK@afn7WeYowbvisPf)6})lmCN>1*UAo47ZqSXbyaqlx)YQfrf&N^9LB9! zcH5U7+Fg`wp~JFa*VTBsCdzH<TG3(ZP83sDOg&SVn=nu;KXvtlMphTy@SQ$Ub~<WU zN4Owp4G&Wnd?ggk1BG(lT$#EEnAjl|ySsLHl0q9iJCX6z1lHV^m?sie;o0$p&9%)o z4r%RWHKj#Z+R?ONx|BPL6w!Ow9?1g5D6XZ*cwasQt1m~e6ar#pzI>=PR;o}d=%?~t z<;#Xtl*$NKkxJKN{A#PA2ao*psoT8Ot;1|$h)1U5i>hw15Tuo9#JP4@0SPUqQ5BnX zpcfy5^ox+NMt2TtO$aQaEfr$+U@x>Z_xHK<y3PPnTUiexzZ^7km^Y*JA~J?H%zO#m zWeb%&V&iDwI@W-@tP<MY2i&EGeh)6ugyF7O>k95B;4Vq3xSJHXYb;JdC#|1lo(bGV z<FZN|)zg}+SgiGY&4l9NYlcg##C`=|6MA+6W<xzYMjS&qR)C0O5^$G$4xTirG{~Z- z4-Lk*Ad4uTjFoEKRG<!ln`#GcDo_U-I$gOF78yvC3wJqru^Gb+jbW*QAl4}}5JcFC zRZ0!)L}+VKYG5Z;Diwm5jN`87+UmwG7VHbhoYqR7JTmR?0(Z537TnvghlQa9_g2MS zkF#l&i4kuD83f&svxIf}InQz@tk1}2gCOHpy@X*b#G56t_bx+KCHA<QDjTphysuzL zj~wr1!CxJkGOt!dVf8eF%LoV5<)x%i)P)$AsGGjWqc*79Dv5%jZt9nq(6OC>x)$n* zdr`<Tyw#q7g@_Xc2SFU-Epjm4{1GQ!jOegPMyg!Z0^TxP2rXB&YP+n+D$<JIDT^$T zR(lSfFEk!_l_E!xwkWcKv?Hw?!`M{Rw!m2K)Rzo5`=YgCEFD|L*i>sby(ZK&jI{;a zlTb}qam0RaC`9GFlA(Q<M~DBPc0n~tG$@(5|1Z(5PGtus41wCS<uZ!ocVLhpktgBC zJ{*!AXA!Hay|9FrJDgQ7_x!5fXGXnW81<eV^`1;d(%wGmeQp%^k<r-uN4=-<>U6`` zGJndflD9hbNVdiQCp&3kvkBMPf19*mw87D7nvNn;j=6W5Pe%!QZo))3cJD4FMuB#b z+s7n!GaLJVC`~B_q7u@iiUE`u)W{bhd!5ermPPlk;Vjus@RXqnR&B<z=Q7GF*|U-i zv)5}4w4&2_tbq;8bUzzKJr#ii)(M7Z>>n-1RBn_fSZ3)pn$4&dCvaFwl&Shwtv5}| z4o%eGNh9pEm(8E{g@Wq8ZFVeFbjwG5pQ57tA0snkIcS;%cYEfil1rBKuaUKQR4!TS zs83U;(bj*yH|TTo>g?B)8MJsh29@gR#Fsis3n=B*Cb-H5wd+t~Py;MIH!;=qbqeqa zXkAbQ0ba%x^dN$@fsXv|SzWNM$+{ZlKebIacBv|Bbxjd6_#*w42B&8I?^9{)t#Mw{ z(GoxKon_K3@IgIpy%?&;u!COyoK~YeSqFj*^7WI5`qb0fTI=B~!UCFb9jFPaSV~HZ z_-8ofix3UBQPD!SsHth|A)-(oGa+x@u~bSFDU`cpZZ}LuWvz-Z_*&~8D;YDUDFte% z)l6Iso+gu+O$8KH2!m&%f6c5U+!~O^^~^DqVpE806-GWq<ytz))r7iJ1{LU0)6&34 zu*`che#l`b8#-~QPfC>p%mf{3OA?`yka_jrSvm$<(d0n11^VO)rSr0gn$S)xmRisG z-qpOOQiNM)`=RlDqW1GbrmDenWz<dW4~^~c-w2I(yDHDJD6v*aBNohO%jFo2Sg=47 zW{=SbQxgSy$;QW&G-6>z8gZ>?gbLQ8T+oQI>?<^4Ec*(L;C5X>BYvf%5!^O=F&Z&K z9<cMGnp=$u@~{vHK`ipX$+ARL{kIq7p$LUP3{l_j$;0_0)S<SWOi3TWp$^xII;5l2 zVb~9hS~x1egqj|{Pc(y|4uFVDB)1B6KpS79$78hA&0a&|kk9BtEjNvPl6d+6!b>es zcvjK}5*;gu!!yl-I6yp)jZlW~Cmn4NWw^Ga463mh%Yrhf0}IMPSz&C^?F*EF9f45> zr4znseiGK#=m}nwA-D?4AW$o!pbQJ;<TJ*PdF?5KW(Ii#L{^f5G8DsFW<%jtvTh~< z&&*h$OZ7O)YLtP2vw^=hPzKQuQ3lmchaRE~gptn}WvKT*40#9l;Ze0zepr;D9w-AF zccTn7Q3lAUC__C^28O%;4ol}LgK{v+K;V!v(0K)A5M><pd8m{qgX(CQA?%?~j53Nc z=maNFM!hB_O054Lnn|WGI>@?q7Cof~sN0Zo${SoGzd{!a8@iPsgF|t$-!OC13^a3S zuIK6|X#}(_|2oEqUn5nk<AX_|PHfjakO}a%T-H=t{gd7&k3wl-F|XZl<UJN@2i_}P zJ-<*oFg6P`Ct~lXO3X&tzj=f2B$iWj&IfEG=$%e}A;Y6}5L<cpjbn2h>FSZbn1x@p zAe<$UI>@t=jQ1?%rdFYh^6jr@NMj$26|0ylo+wf1wI*7`tfa3yQsR089U;jypgPod z2srX>hh*McCdumg2R~Dj2BvkCDh(c3rIodZk8=n50FQ!rT);b$>rO1Kp-A7Vx*e^d z%6hRTzps0!p|800?O5%Tn^7G^WI)@*R~USXg6d*^BDF_B5rYof=B6hllb_~q!g|eA zH&Jb5(Xr$#E`td_ie(QVN#&(;L{M&GiDa$(#2N1M8k60~ABV60QB+ujBg`-BcXeS~ zea7JD3)ayZST)P{WKxbr(WJB-5JWx8nuNTm+9a7TR*h|ZbXGq-37IesRNT`@Yov*T zLbFE+p_Il{i022(<GpW$z(V~Yxmt|T^Ef_$fn)6RUyGLVS09>0bl^w1r=*Hu6no%W z9jmQen#*6f$1HzowxX)3`4}*Ny;ww;1+E<O_#$rXBa3m<;jQMNj_t9K#j_Asr2Ew> zHUN6kdH)i5C;cA*omIP@qNX$=ZIiSJ4CT2N^Yh<GC@0fr3=ns{XgYVe?)#~A;B#L{ zZ2wAym7(g2j{))GC1H8Y3y|O^7w|AycD<~SaGx>8M$=MnP@4(=^=76Ty<TsoA%9X& zXJ*<n@ytw3%_S+l)ob=<Iy1m%amxPy2B+O!PrvU-_YY=NEskoaVI1n^YsWQc-R<hN zB3Sy`Y`wv|STq~kYIIU}OVz{UDL&?Y-p}Z6DtuTA>vChmN3k+?HxwS_FjIIe5!FEs zsz2WQ<yKSPVotJE)Ft&kDvM0rBaj?bIh%PiR12iQd>a~gZsz0ao|8XqgY7ydX_+}t zyCa)95PheoO&nnBu>hrhGhZ<Fn3^r4dC8zFmQi-!M>5wUl*P&%&8Iyf)3lOlOs%LU z86(2w5@J)Tptf?fF~`*wZukrj9RHUhA_pQj^WJO*jDidpGI*kUqOWr{1^ovG0;2bG zKebMk6S3u3f?E&58OFxV9FUox{#(gyX0QQJ`k<&LkrO8{6FG6)dp}-QSL?*TkN*V~ z-7uJOP3sHHZZ@s=LP}ZuocKY66BCD*Lc(U=KE&;U4(WQ9hNfzH5Lz<<+InD<sixKq zW~f&i`puX?S<y4lXmv5U*e1w&MJKXo&RCyxq|G9HpsPMX6S-5t3*^`mfTX>?m=_2s zwZ<dZHfnCGzB<_!T^1i37=sri(;Y~wCJ#cOvBJ!T*eMH!*)t~E!EjuR!hUO1Vc$~Q z#tK-CA4Yhzn5hP$Iz`#M`^V5yQ(w4XAZ9cSDJQ(b9Q!xD0f>KzhU0H{A>C~aJB<Yu z=$RPSz(K%iTK@{ej-35xSM-pMyaqKBTx^T?Ci_LS%?<mflv@2A=K8QtOA~1!MoF}X zJQ-uaG2*T^jin~2$y0sWNQ;<Cst%oxSs_Z(LeO=cNg8L>Ad+gBJXj?N?^s=}x`Q62 z^@`G}Wl6?|avv*@gG~B50IKr1jppqcR`M6|dl!XF5QlOk7!Y^aW|H(0O2C8!9n8Q_ zJ5>M-^F48ObOp1a?bd^SbgFh`fzJEYob`*Y)@m&_%1zR&i1lt76d_$q&Qh$0nyUq3 zM>OBf{-Tj?U|2@P9K^c55O*6Us8Sd#No^!K?HocPjpw-=dQs#;eaK}pO?sg^iY44w z;!Q{Y1lt4;(9#{&!(4%KU0yPda_++^EI)Cgre0A1>Chy?&G2;$$Q3}=bqtHfMHWnT zOa+73?YvRi+*;4|`h)HNbTcE8%!l=z`V$xH6pW8zd>aNa1%ko`=Q%d6Y%FztF+q$3 z19}2#H%0zjh1{FmN;7-I#lR)KS{$WPc5Og;^GAqPUmRxCHP>{z>X1Fyp3v_+lugfb z0E;x(TvSB{5$QDa7+7Dag7BX0i+?@_V`<VDl`w|E>8X367xL+OF39MF3Z*bVk04BH zR5#zEhci*mLOltNpD^H4+MlvcOPxRqzVKSr<fdx=JmQxrNgqMG1`nzx`5nhKU#4W$ z4grDO>Hz$=G9J2YJK29rsF_O!JuUVp?0w>1=a*Z&!j=D@#|I)fusXGj%e2BckYG}2 zG!-dY*umyZF)f>&EM!Y;Q<$HcG@JplQB=wn_vEDE(bRUfElZ*?ZDBUk!P<!W-Hr`n z7V$*7ZyY6==z;hhQ6y8U=4#3AYCE4M6H;&~Ir4e!0NDzd&4Mv#Cu6PVn!kd3nJwLL zCW=qBB(`$e%B)lp`#P{EpB5|Si(`Jat;lv+B(6{-u23W{E3&O3+eMM0+G51H<W4<m z1EG#RHh!)S0ry3?F^Mt&vm88OBn&2`zJvjFYQ_|I4aPvK0ZnqOvxU}8o(a3zg9OP< z^e><F=$Gd7<Wm3g0b>K`1n1T$dy_%LCI_T)@R};k-aO(MTZ0CB?+1+{!=MdU4XuJn z7_?9;#HRN6?-1NvC^j->m4#hCG#4`kDhA$0nqX0W`bXDkYEk?7i1#}{Fk;U5z$L$% z1KMK*)zkqq?bSy&N5VMz_nKU5DW9VHX?19IK4B=JnPv5+TWlDXquGQ<GrI{N6}h}* zG^_Lth$aoj$UllC+~TsW)y~&cwBO2!1Ik<bVtT-8YuIB$w8ET7RauY;wW0x-Jj^Im zm@EU5;tEKL%aD|rtGOEHML<&N&`5TwUN!2=)E=F&l9gosnhXd!IpC+$d2m{9;%ev5 zg{e*3BidJgAe(hvSuB*fLRMA&9&nQn-0Eik1*)a_8toTu5Y|`!$p8(8Rh-rVSuotv z+gMBWFHLLuumHrkYH6gU#w<uB199pYB?Q;uU9f9dc-@wYK|_Er8HPa=jBK>nnH+Y7 zK|>~!w`RD31m2pV)ObZ@rIx=LLRvcl3x`$|#zI)mW&Q~V#B{ZPZcA@EYQ)W?Rj;SD z_T(h*baf|18N880EEdya8~EdOU6>0oKv;FjSw-AT{}ODjv5HoK6M*AYff=PLaP6Eq z!|PRnu_JPhYM_a`Nt|EHZIWIe$mlj{{ixZw1-i!Iz6II4#hWy4CaJp~`$1?O8?dfQ zl8BiiMu)-xS;A?L7n8&;rbHfuaTGnwXO!Me(`Mf}4c|HBd5LCQ=*G<~tZWwy61q3+ zM$1gV1GaQ3TT3phME^q1)A><Q^7cx}$&gXVHnKx@ef<;#s%jG<MNzfUacgRc?ZX4W zeXyR11!iO$ARGs(ETt&99AREcFJQo|F#{=Jo7P@&iiFd%>3$jr>T&V=s;eSah}^#( zkxl9Oqcpr9k@a~637=qOR)$E~k0Ep;=*9HcHi&Cqbz5wDRB6Rbt67pEvtBfSi`rVG zJZbXXrN(zwZ@h^U=qL!ArX$aaVhCpS-UY`S=j^LVI^$N~R~U9@Kg?DtPj6rs45vj8 zVHKq4wJG|$=riy}Evo6Vj`|M2y2*mE9_WL4mP)~xQxkMn1Uny$IX?wsd(T7f@xgoP zRgA-{SJ{5~UQNA_()X;TT3)m+Em<nK)-V?8VQ$2))Wc!&mY82bFT}z&cdI=t!k~#V zg8ukC6@e5MsH@>9@?HU0YB?G@P}Hs_K$eQRSfpAR;St8f0}R}mUXOl;*e-Nt1hxBO z1P$qJ1RIQCH)RoVU5y}n17p<*F@l@=5j3j@9{X(sEf@qZMi9S7(1Nof*vWqt#z-vq z(js_|4=zU#4J}SYJQJpidg-}~4kMUoGw)M{TN!=?p>Mv=hVul2FnN`Jjf^5(0ti#g zk?sm3$nGGFAbGzS@Nm&cJNZUBl*;5A)UlxyP25dm1a+iB+9M8Y1e$}%tKt-UoB~+O z*yel-%VzI-%up%OD$5x=o2{W{vtu<230Fq=cvu(+OmS8S1yzWB(N|ikbbRGDcK$96 zmul}!v$(b&0sn<$G@qOp^?oZEiG60&s|$FQv}Z@XkB)j#%cugQmQnShmQnSd8ui{W z>U};Q0e*JW`}C;ybEDqUHn?x^nbFwN?zoSYZR$z`WyiYWMP5_&-ahIrOso5x4v&D| zG~z1^yL-sO1ibeZ_Ts&-uq^L=g$;V|+dPtIcf{u<CsKLoJQ3T#=MQsd_XjoN_l{Qk z?oscZquvvvUd~-A{qc?w-*=Dr-aO)a-H7kX5#P=cpBwR&Ce;mBYbFn}R(&*$CrpeI zONS24&BG>Bfl*J7A<<*=g<ywpS!2YPW?lK_yiay|@qH%Zkm2;NOfSOlqveotrZGS` z>eUDbO#(P)!mt{9KN`&eqSO>q6tQLOL_YNKVNfJCFe4igi(>k236Zpg0Hh}Mz@RiH zg92=ZWxWDs4`~xSIokqa#z3%Kzm)(|1__J^r!<L^4_!K=aI<2J5@Y*joK4gg^ZKIM zN~ud}m91;)y{4BAr@<2`s7YchMpur=O0k?c3Q`GIsx_zXm0FuBrihwqjf#-AuPL=Q zJ0WabL#<O^YXGd)ov$TaPPu?B7Adwz31sFvXi=i8b*Z@J&2VFIx8lwCFeZ{ENm3JY z14vdxOtDB?G=Je7blooDSO|WUBQm?0PWZt}_%oI8!<Fzmi+k$8pOjFT8X?QsO2<x$ zPshF4<N-dM*DVw@lQoEBMK(zRdmiy7CiALU58cedors0kds*yRiQ0-=nK|xW(=g21 z=JlWh6YkFXY}97UB(dw;%AilX$CE2-OwXgcZuSoH7p}!Z{)5OetyFpkl3wfl`DK_| zN%y-5J{oE0qdb*PDm@DBUvQ7j<b--S0){pqWALxW?&*KeZ2qIa&t@Wj_N&wRxA^0^ zmVPV0^J~-jzbE_@--d-Z`)oY=+evEzJ~>&6CEXM31HgX$XV>LFhMUcVxqlKj!s|X9 zg{2d!m=hU&k?t4PkPdNik<Oed@5~y~>2ak{o;j87@in9~b0@xi=2W^rTtm8<VR`0M zx~JBVZu2mmIhF3Kq`N!x=LG#JxB8Q<P}!ebhUv_ybbq~ubX$k%%&Bzm|AQAFKQ~Ng zPNn<NHKf}<OlMA|`<XSQn;)h#r_%kx8q)0?rZcC~{rVcx?HQ&sr_w#ShIE$=)0tE0 zo>@b>D~IXKsdV2wXF4GI>+^?!dmcE=&92SO$yMj3U_bQ4aBPuOmva-9j1rf|=cdwq zbPego=cdw~UPHR^xv6wNzlL<<b5rSlaSiFl=cdw~Azd-YkeiotY`W4f8-`<KPNn;u zbEX4=G5Q>EPXc#}?>ZZ!^{bANV82pn!%St2u-~}q7%APi){t&|jFj$$HKZFKBc;3Z z$ssN+uO|?+{f@6s=RW})%VmGkd=KG^`jNSR6?YumkK;~)`?I*y;Qk`+T5x|IcRjfO z7I!1K-~WfKG{Jor?sjm04EIEEKa9H*+`o#u8{EH(dpfv3i+f#ge;N1s;C>GGOmN@v z+39>kaQ_7E$>9DN?p|;|fO{&qe+hR#xPJrpM%;hI7ekfwjn>GG`6gD`Z(7*hA&l)J zVek8#;D%wdg#Fl9*c@T^S=cbYt%QAYEbKhO&XD_O2(K{$ljeIGpGHG5-@>iYko$w5 z_oE^A$8c*j<o+aXjmFcs&&qA%D&L>sQ%-U}gIhU0kNebLPUjEv7v+!gdw%{~=Jvne z1WtU$w*DrAP4dTyRiC(g(BEhac9dtDcgpH{z?1w5K)%4=1x$^okAAZ;6t<cO=>2~r zpr=AU7mfg3ROIv{2J}n-dc_EktuM;y$Ig+{jv}Xz0hH#?lGF42T|AQ0B?Zuf0AaB7 z8_+}kc8&n;Du90F96$>N(5C^a=MR$0qx|h2$;lQfRs3rJt=0vvEOL4tpjLjCT%P6c z(vh5ARRDeHkCoH&0BBIK1y<?t%L||%2Pn;N|0~}G*zKwST~Pqt3lLoZkh<W?0CWcb zFItQtB);EKi9$BqUsp_U|Ku0^6j%5e+?rBy|2b}l`}DIQB!9R6mjcyZJ%Vcg0Gv>5 zAE+kSI6noXQ1Yt$YEZ3Ju(L>=yym5#e*90w@}36r5&o_TwH|@JRxK3l{|YQOV}TPU zoDq91^c(^HHDi(mt?r-6&jNk=o3JDW^h0E_K0iay$-kb?e}hRAF>im1&^W)35LNg$ zqx@3}{nPQ#-%{vVp#Gj1KgZ?!(LePwQ|^0kYi7!QKW=sPukeLme_a&*>rdpLtp=TW z+kS%nsv2~Y1^w`U9!V&upBf3;qo9YD2mSs?(6iS9^^K9BNC}^#j(0p&v_!uD8J}p3 z+`oWZR7vjN6I5`21-EFg!hh(`hVcJO#r+8GBJCgGF4F!bZmlm$d&i&q_2u4gP3J$2 z+xMq@{}G>RA@^r-t3T!btBU&rU-W&e@Snl0(&RpaTcyeUdE6>Z?r-AOY9{vwpPtT} z!TmG1wX!MvmvL)lllu>GYh|;vxV5sKCH%u*@_fc)kzxC9N2_ugf<6s&u~YjUp`bk4 zTKsNw4qihke|}9V$GHuq{KYk;9OpNbvdX)zUfXf5P${e2>*^`T`9h^Uv!>dP@7k2| zQ)@~&zW-9nD$l%nZO3<DN?GNaS5G;<2UE&Vuc@}SH2U4JIhC@?IX^BODz>MeuHulb zmp-LAm9ok^uapuPILNO9`FUz5?)g7?tp2^#v0BhiSK4y6iq)T~)@Xc}qm+NSrj+AY zt(1Serj+AYt(5Qki{Ttxy|&|6t&|^LQ_69yR?55AlyV%amGWb2N;!_zO8LN=QjTM_ zQa-Y#l;c>fl)ty8l;c>flz+0OlsmQdd#pC6QhsesDUDb2Db1;rf4`=bCRXq%&8d_> z{N=Ua(7232DL?umDS=@Qp7<N)AAb+?=lS^Gk4CtwkCBbIt3QZfuLPaskMb*~@rek_ z<Kqn09~vJd!23xF+aG{GTkt_6T+`=D=&%C-T04NxuL%7|CG^9V_ZLFmf4m~}7fR?~ z1v<^223q{vpR5S|rzP~KEbnJS-v4<;=%-5PvzGUBA@4t15&F+d=+Ca9-d`-CpSHa3 z{5xOor&rATOC|Kz4EpW>{TC}jf4PMIN1$u@gFuUGe`ZDKuawX~{EWu(-2MI468hvC zpubi^|Ku8=zg|LrYz@$VSwcUs2Iy~;(7&_>=)WqV{Z8}T`2B1N{cD!@xuO3{3GKJK z=Z5}f3H{q^sP|u&(0{ZB=x>$Kf3*hazbT>L|CJZVlfNyYe`F2Ne^)~P^ctX_E1^HJ z2I#*pp?|}m&)whuP(uGM(DnQbb4OeCe_V0yJYPb8*`S{a(Eqd|^#4^tOAOG+Pdw-M zr7x@qeS$Nm$cV9*2b_CezORJV&U7L_P2P|3_x?ESW1rzh;t$2sQ8bGw?nLK#XgPA8 z=KwHOw>*BgsZ#3XQ>UIXHRrs|15+7C)ij*!acU^toM<{0Bu8YezJg3CA?h?~%{2D_ zx*_X`GCQAGhzFre%yT=Uf}W_kOf{N2&@D<Na#z&b7jd80MZ2T!Rnepmn=o~Cg|)7V z&`TB^PkKmejj-BP5t_IPLqj+9VQ9#pSV6wJ^byTR-2rWtqqR5cdRJ|4#1WUmOl6na z?4`C!(;ZxZPCt%@66+Y58gbw@ka)SdIN*i^2e~{x8FBi`y-*kly*3%;Jl(Z{51PCi z`JhU^i4Ph_oceJenI|Wsyr<VOqnww&=J;SGfeNFM#A_G2Vd()>8UQK{07a6q3MFF| zO2#Ubj8!NVQlV5xg;F6EN`+Kt>I<a>DwGybs7j<Z9ePA3!~^H%^clEWeKNO2pRI1Q zKIgej`ke1J>a)#l(5L5S^l3SnbLPF1b^1)WX?^^0=l~5J`FLGh9}dFxY2?v>vqn>I z(=A#U5;GT#QYhEnq5=9ugN^*5jyc%OpI&5>K}O!B9;E!$lKsU$cR^2@vJr>2YDbF! zI*<Nx^irEHnxucur*j7MOr36-pij2ZAsIu^pewrcLyvygDhml6lEr{d5#1+fnyl85 zd_75K0ORppvX~@`39{&tMTacfWWhCJva9J%#8$HCkwup*8f1}?#Wu2-Ad5O#49Mbq zvX~@`Hd#2bIFBq^WYO`O)eW+!lSP{>I%Lr$iwUxrB#RbV^vGfxS)5N6=aI!$vdG9{ zKo(91$&rlkYVJ(!i*%Ktzt85+^ghG*b$$-5w@V&wW}nTY4f|{kZ1i(!(>~M)Be&VV z4ztC-H8bny)SQ1o2hDd)q?)ckFhRJwmJ5Al5|a@7v{HrXJthdr5;uL*L)oO%MWsZI zy1YG4jp6~-Eo?eUr#9s=S;m6@r9_K51zHI*0hxtJOTn#+qZwB1x|Il;PeGzzToSQ| z5)NS(7qt%*NvsfZYe*+V+5qUXOX)!hd$G5P8Uj1CC{(*zS)XvF1R<AT88YM&T441a zmS(jbdQo)GWgp&N2`p<xGf+ZV!~*Y2t@?^JS*<-qvwf3BYacQS7AHrWG}Z>$)g9?i zOx)SXG%67^$u8uLH;L;sBYkh>VoY_Vz|qQtR_QsO>L`IRKCN1X(#}Xmni`@Lsu)@w zSU?a4jMa1Ht}n8!jvXpPBiXA;F2)2yFvI1VJ5pQJm=3zJ9M%*JE3Y_HzId*w;;}Ez zzo@zL#mFjNL0y{}+|ONo+5}`@K5dlhB~6?0vaL&Qn6m*1ZK#e&m~g6jZH1bL)B)kD z17A{s;T*D}hxiw2Vsi*}sv#yS>B@7cKAip`H8+7OqgV!x)?~HD4HJ*G4`uX~a;+jv z*}ky`RhwbmViO7)VK@3hf6+d4YFD5UE47B#VwP8C6nlr`H$J0=iN~5ap24!&WhggR z=@qHKu!wR}njZB?rPnySIySp_b8U1Tg8b+q)eH+(T-7urNOKG(;GxI-qgk1j3GRyN z?~q=a)xv{*@DlW5QRxUbGpRUOqm*4+IV~>9id6sRy#H=pRAz!opAP;87q8@rDzGlf zaIqCw&^#*}>TeHrWwLG1$x~m}T61Iw)P#ayT8<E3pQB~~I>aw6$IvO*mbcEQQVlYR z*PO}3ix5AlJi?w&!B+C=!B+B_gstS$g{|b%fvw~-0b9wZ4O_{lC0iVD8H27q4cJOP zb=XQidM2Jvil!$YsHi@&IKw9qGayvpMzF^S5j!*}85{IBS^P2D$jD$@m2RBix0CCw zyl&1Ld5m+P-^pB$;I(o+e%H%+^v-R|H}iXbu2=2O%k`Sw)|^-D2D+!!NNFMY7T7`M zg!F|a3H7Gl=jL%L9$3l0aymi3HSZtO1sGVLl_KnB#u2LBKlZM?ahQ*@iviOAEQ8P{ z?RBE0_%DVN)rA;wq<n2h0kK-5tmKWd)*R=}L%cc7Rr!@MR#+vKM<KY_b`ZF10!)@3 zkbYU35Em^-qN3_WQ`i)}<R&n`{@>mNCbVyYbZOTz3abuJ$8Zh|EU^Zp5*k)<%MfXF z6r?{bMB=-ottpr~hDhn^hy;5rYp3VtiBj7XFkh$g-}G+{guOpBVi=;W3^0?!kRTQ4 z4nv?1g6RxHv>hU3Vi*D`QAm3j5+n(&VTcI?AUMMilQBShh9TM_kxzXX5~L5cVF*-6 zFzGNvoGBs6Fhm!b35kax+F2124MV&<LJtQ}55>@{Vd}!Oj4U<=z>aDa0PT*f{M7(t z<r)A+d6gW*%mbjk*2;BYxf1}hbrk^7L;wsoR%}JX17JvIl^pD*IP1cy01$i?0To*% z2VQU$fGz4P)&V9$01)g|a==uo0PKF$iaB&WfL$_N5rCVA$^olFs}#Y-IRRjNYZU<P z@>kwxuwS-WC6gQZS!PuRR*{t`x}RO<?|HxGmihH~7x9`|<~L@^3l7ZR@$n{PP<|8M zuQ_G$#u9m%g85rMUh~QPP4A~!-f#N@FK)1S<Iug_!TiR|cmag@Q=eY5$oz@-YYv&; zXr-4;m_PFIe*V<eBP@98hb8L-@9E*82fSwz56$<UE}m}T>ENN^K4t<Bt@fTa9*Btd zwD8bg?`h(pvEI|b1J&@JIvxmy_tfy1@K1G1@lZ)0li;Cs-V@`YS>6-j@$KSTpF{cr z`;mB=ZVUP9I18MB2yj!0a7pG0V5x9pCq-`VuNv#pkh})g6<+iZe1bw9lz?j>c`7Rt z+;nl+a##$#n#Tj~Y3fxU!g<|&(Qi}4^ZLn6;zSvd2pDz)_B@n0e%a-*oZ(^*WwL(` z!)p07xRD<6*NTsMA6t74W$h9O3m}vTkYyKulKnJDkM${E>^W+!8qIfNS-zo28Jj4I z^of1R*gGM+V296|pu3_&Sn*b>9_C|IcbR9vWFa?<)C7gfvZPHYbx2qQGcHi*IxOHO zE{9wONrAb%q@ZbWoju+P3}X6(A?4PNy)o(~?@=@$$V=XnLh|0Wc_4B7{~p`@Fj&2m zxA{O~T&-h>^t~Jp_6;*uJT1f1*EW0do{zMt%^ekkw0WI(y+_L=_QJi#W^_K`JvN>5 zw)cRb3<NipRFoD;M#X!yJ|?oquNW<j^n~s?316bl0qTn$-}WqmRZj`gbriG=<=f*w z^Zw)f2f?=D5RdCag*r7B#?EK|U7TEZynb84q|kl%t}YJY`feA)`&wwUGdC;!X<mP$ znPGD2B-p|cz&uYs#qj)W0i9T7YH=qL^$QU+5qnv#SI8WlIiGwNeX;p4mz(F=12VDr zn!&%=UC3R$6gW#$!m-b9Ntz2fAlT&-OH8ai3UX-eUpDE}9&FTSVsMc@9mKtA!(a>5 zCfj>bZn$;lqkguadQ7?nCM8h|iac#I6vy2uHhIkA)<VYfRZIrZ%`H5Tz2)B=h~I+A z3JL4qav*+h_Lc+g4)>PZ`S!!N6~49bO~N<U_v4}+UAJ(9taVyJm{2;H^_Z8+QzoG< zbSTK2PWfW#<!-*J^Z<JhbdU@pEMOkftRY<JP>8*UYrL_xc)n{Ho#Q^=!K?HA`Ge22 z`@6Gs4Bsp^??8s<{{jmGjCJxYITZ5fmxJSBITUqI5%S2FLe%}wU~xiGPZTis2S<8G z5%P4A^V636eJ4(wA@@%f(f3;D$uGx?<ddqF3xmtu7B|Zdk*m1c4o=x7vVU}O&~+Cn zc!LF_l}hCF(ZOW7e_F>-eOU}zFHNG@tN{{4=5!?E)XN`vGPct;-Vn+k4(@54czEky zQ;a-TwPM%DDAM#aGX+3%=nNyogaFv~DP0Ke>BoAEqOCVl3e4^O<suk>`Q+4><4(4n z61L0q(QbWegB=}z-XdJevEn$N&|h=eHd*g^_242A+I9IIe*w`w5677=;TX8>`MsFN z8ss=mVWHsw-+T5f4qnTb!>rc<csIe<@jXrO^?b1%@OnP?^DOP)8XWg2{XvB&$9*`S zkz+582PrJOVsL|sPnnR+!Tg;^^0QAo{Od6`G%<xmT`?_LpUv6L&qp<mAKr6FUSfLC zPizu^k?_tvvo^)r1%5Jg1THbhwqa41Jr7-8_C?S4#WbZ06@^`H8#rPPx<vR!uP?qH zw5E^u3FBJ+6S=*@o0k7X<Z$PS6VfcX@6A59yNf|NVTg^Xujk0^n*6aJB4glMxX=91 zx*Z95lH48CeZzI`I>oGW*UJRbI!D2ZW5n)zl6AuJv^sOe&?>31+?zaHx)rIO*qhM7 zq{N{{5PJWUVjkBWU>=<4Uy)j^T<!}!;0t}NFZ6Z8LeEktW9O@YgJKIG4hlZ2F7?Pq zj-pVo8jwVroK^+(5@WnlryNMHNYyFpavGp%sK(~cdN*^xqYJ|sx>g|-WGx1YHmc_g z`FukR|9oSFg4Q0x!D^4^RDQ7>4i*tGV~1wzZu`Mt6!US1u<(~2`}IG&P4;@%$xnYX z4*7qpRtmrS@MkjV*4rKtxQSeL=WWbSxqf~(*zR@+HKzz{E%~7SPsG`5Fo@R6!M9sM zvYy#Y>zU28DL0GxG$_#rkAuy#Zim~g9A=lWq_&|*h~>0wqZ#ED3ArWPlDBn>wV&VN z7Rhg8{?tEmxAFODNLrt1$K2Y8g|%LecG`G(8z_%rRw`jje%T=rFqJUp?eX^WlY3Oc zmi(!ILeKPtX*cJ5))%ZPYh`vT)xF>l!Z)99`_R#Bn>ayHy)F6a_dyNbzb@pf+6^#> zx{VIunUxK0>d;ZDG|R}y#tjA&sQCtrqN$>Nw~@IDjuKt-(Nk`tAC1#=f}$;LYb^5K zVWiu!Byxsr)gA+@`@5S$r;p7ZCNe0VP5U{9k2wh+u+D9AI~aG8*#Lr{ezNx5ZntR( zbPRKo+D^+0_G{8W=#A_;RB>%aizsRKf_6m~LIq2oV-vHWbNj?j^hDV%x7Eg7Bs1RS z<X`8wU}Hu48iKb9@pZb$O+y}iB|0d^u&&xtkWJ6INo<3a76>)*rssGBue-?R0gi{_ z5qGi^J>iX^xjt9{Cz$mWcrutxBgh?L6<oxu5bpZ1BT%P6pUGfxq>$wJfoSlZZXlWw z`H%CT&HmH(A7lioO*W<a^s;H$FzeHI7z7Y!I12;P^UGWKJ<jsZj$0O{yVy;RwPuKL zX_28i_kHzOe&F?(J?*oESo1n+ABKrX+Sij!L)xd4?qU0;)V?X&*Sn5rwXc(Ha?>nK zZs0a?D?C3cHjv(7(ia`qIzqJdjEw)}?*u{`8bEv;Bccs3y?Nw;17NY(?1{w(J^(wH z-f`Ri&EDHUS#nf&p84^<s@{85ud3^-yQ;h6WjClKB&!ikO9<KO?A5n~1)}ZI?6O{F z#yfDT%37*bv^i(n>H-9oJQ$i!i_g*6*wQh`)_5>5pz&&1h7mr-2#{HfWsmR*o7G@% z+jv-P%V>Z98<F|))kmu(n4NR>tXlOlGcqzF?u{Ea?!9s2hI`ow(9@GD)Dv|!jw5K& zoa5fNf?HY~FOQ`PBizo9Q|wqdhhE*S5!j5TX%ek@M4l1JuJb}H@h@}z98QnJg?kyj zf_#B;ByeairTNAfE=jvEq@hBoKP(?8wtTp)(C8Ty1v&>w-v0x{&|tI$I*Hi9$j%h? z{3w#_quUom(UJA!L{Z5Lc@xS$7o|uo)I0~J2;U23L#ef|A!JQ=H#w*U2wHkibl;Z$ zJv#qm3C)@vj3z=&6-3X7Vl><<$xh-n_ehNpm`_Kp(s1*s=nM(wvt<Z!GJljQj4_$* zy6?!(zxy|T^RAEo$@@Qa^0p(N|KcD1)?a<|Q%{`prX#a=9{J)|zw$d@{tqAd!y~sH z`P=XO@n607yYKzT%nACrk68Yu%3G3lTT+?pHj*Udzv-S;V5DM3KN8az3@5~51&uL{ zB)lg2tGFL`u*1q^2HP|a>2`@%^xQ0jBln^ilqPW!pxQ!w6}1)OYfl|$wP&*$e-dAJ z!TNd<U&&}U>ca3QBrxh`d(V~l%8$ui)Wgk5bPU}P2uu<yH#7l6+H6}iiDxfS^G?Fh z7>&<giE2~}ZGP;VW*)F|zik4EFX&r;rVkG#q$$uc^2y&m@$kcc{`r6P_&4A+_XbrV zz1wcep1C-^%M!l&pWg77PyEB3|M@ZUo+|Pp9J`Cfshqo3mpT8`^Ou&tU=nz)d*M?5 z#qN+hgv)@NxbK8`TNlock_0m{<)Xif{_C;^S<s%w7=tOhTq+}$fVE?A0wj*hu|6=! zvtEC%f~{H?Fa$N^qXv~t^!I9}q^RZWx{`gXH2I5V<*4h8rBR#^O!38t6;4vW0<4ZH zzT7Ua`i;50jK%!pMXJl(-rnLa+>|U(tbI38en&{*@;lU(#DAw$m%%991PUUJlMd^4 z^)Iq&`wMy0cSuhUGHiA*%}(YIF>t_=f^YYJvVWPzp#-YEtZ6iv-VrWW`tz2MLe&K{ zB&ZUbkg_?$MiNI*9#n!<3W@wvF|ECM{aPSOL1QMSB=s%Cg@>#$Zh%*=%VSBLfXc3{ zCmaJW4MH{z-J(idDUxOZ@i+#y8b$ecPerQ&jb_wXb0l%*_%Sln2N}j!+kMWIXfwvT z#3gPiII6lo+v7M{0qau!`o^`)L9`iNLnsWRI{)lboW!9hSnCS@Y@wKQLaA?Td!PcE z&h&@s1Hp)6W{?rhSL^mFNOx)}YN?SGwvo53uQTZgF&<LdNmqOi&6oye;`20)C@<%* zjEn!>p=8~LCoK0gLqN9j{ya6QO>XZqZk1K5MwU&YwVc+?L`-kEB`KuP;`Kt!pizVi zUZlE8bFfiZa}@is!+4DF=hFp&MVFSpAj+!$s^0;k|5S91oG_Q$F*Fc~q6YgqCDn0S z6}<_oGZklAK9OitJfMD>)Zxhqgeb10L=l-s{EQ!_HRK*C6&+bs#=vWT#*;AL7};ro zlyr5Bn>nWFk33=G;|UK?!YgksbNp2r+H1==j;f21Ulbf}dPxM1VEn3lcDW6r*e@V= z(Jr%TAAd|YabcV+=X+Q2h7}j@<W8pGDcFVvTnbniJ8B9tOpMA^;HDBu85U+|TB7<C zO*S`Ac`uH8p<vpwVNM!z(-6<H?$BUn)IgQt#%@$&c<W}=$ZXs<lj#TLTv(I^WG52+ z#G2c8T(eo$xiF3tN6+kQ9A+8b8(&<?w#`S6nPHBIP@TLFvmk(~wOHLhp)lWSBj!4v zDhv=twY>>)M7JTxAwxpm6>wth8wOI6-nKwayadd5=7qgkVw=<19+=tffCUJ%AQ}+v zB><sMCg>`r3;%7W{B|}Vsw2N%1TZ8g-5JUz>{~jz=cY_cG$h-%Ca!}>$Wb<1u4ySK z`*K8A9j|G2Oq--z^ajK_;SIN^4zvk%GH7#mHU775{OWmP#`0lL<`<AM(fdH$_5;ih zoXVTKjH(7X-%n0H#Ylvu%sR3<6vugCW~49}rNB@@ulK<iSco$YdJEz6dK@mttpzA2 z<XN_M)ETnYI;fms{gyvRANZ8K4y8IU#&qQs)~4ebrd!w58D5Ml`1&pNe4MC(E7@%R z?e9%U$Xh|``j)>%IfYh4`m_0CK8d@>!`;k^@v_j`e7z?-z@WjHO~puD4-O$+Txc6K z8Wce;TS5xwEk2Ake+Vv#Ywx4454c{ASmiB1p1*kpIF~2VkYq{`f-$Se#yhEwKJ_g# z&_E!a{Eo`~dgWd-hFERn_Ne>j(SwSLZBFY?gVb5rDx!p`##xsT$;^_>@?MzSOFEOy z{Bnj7PqH<_PlSUp!mK)g38{+(HlKTKHld?n0GF$p%w%_sM&^ZZ%k}R=G@?ZBb<d2h z(Cn0?H2^HPOuld~Wk_(8A9r|RA4>L1J!BNn0b|TN$Qno*66NUvL{c?Fx?jEz1zEi? zv0PXw@`vAOqU!CE3k^=;%t#kK(32NyJu?L=WFqA~OG^Z1mdugwB^=iT99}=(Vi0Nw z7M%RCpWj@=mPOxvKt*$2#kdz|@`Kjgt%~-hoBZ^hXDpi7Fc!BTaaH_W3Y-ls-1@;; z9*go=>b{D;hAwRAb^5dF{T)Pu>!0I=LL|#scTOI0m<42^ax`FfvW+23f77Bm6^Z2I zM}8p)Vy$c)rTfmwYd3HKoh@o&cLY5pGqx5vwWpv9LqxTuhdF*iGw96q(q^<!B2nTv z#1ym*8FFXAcxQPnpF-fGsVWxPA%hMckPfr3)IVRHi1Y|a_n)5}cISv`??TQIUoyjR z|9QH>PSZc28<~El0D^%fN}x=$FTx-Wu}Y;!*}${IX74>p0#QhQnhX1YU&&>cn_AA; z3HoZt4wX(P=<IOp^gXBxJ<6&Xt>E|%t%Z`LTa4Na%|pon63mdnZsbL1bFPp&U}SZ@ zlMtYc=kt|GAeybMczvqPAelZ5oe@M}$s)WmS)_MNJ#Se}8o`#K4>X5XE2~*$RO00k zt5SUvP>g^sEtH<KW}i=PHk@HUdaFg)$CSW;Up~H?5qsq_pw*NNv>iKt$L%nVY$6FD zDOw}Zo>ayhU8OmCfDR!;9VMq_)o(>uN5ji4FM>&zrc<4pLqOs4HRO>>dBcUZ1GqbM zER`)aTrV@C5l$<c5LA*TJdSseV=JgA{)#G8rVDL`3bFdEp)ySjY@7+IYI$2j#n`&W z_#l>{rR;`7$u%A_x=N6Fj_6wj&m8WrG4&TawQn%$wEh}Hv=IZS_ScyD%P7$Imy{E0 z46QqW4PirnsR-*YThSr!hW;`N8!B(Ou%f?!469H71;Aslz2s2xQr`uVc3%L!@y7v6 z`&>7h$o6DAv-$pliGXVTf){`TwUu~W*oN8`#3DNVvD{YR)GIzGZJ&ds4AWY*w5@t& z(4aPswa)FcSq_<QU*AcBz203QP6s!^7Sy}rp6sC3{`(iWm$=2^#ZC6&$L+<qy8(ed zeDQLuNB6J{eG}LIQS4xPL=|x_w=WjWjexF(*O+#2nN7v{PBWvsu{Dj;+-X&95hxcK zK<6zV=k7cb*7`S!6x?~Hy=nYb=wWAp(P4VnDVDJXJ?!-3S9`^@Pi(=83UuMWG2HGf zaVzd0IGyMWeP=7W7~r<QKty<Vqc+(sdflTV;1+=f-2f@yEh0yYnlUqPcq1{vGbj%r zP!l9y8j~16mE4hshrr`K1aB-wMN1zLgn~{`ddi<;qVyjcjPoUoC>*eT)*QsUCyIi= zxG^y)HWgZC7@nIP?f(Q>VLzI7e&XWvX4Tpewa%!ui)4@v=Z73l5IpU$<U`5L#fL>F z0t&O3MzT@H%#|K9dkN$V{{v3ZsftALg(qV7_uN}7(d|H9KFR{lv{F^lRT2oSuA7-9 z!|l;QwQYCw9%Kcrj-&pm1Ad&YVNqA|1Dh^8vigm?3znG4$<sj(6==o0VNV*#dy0;+ zc>@EZ=dgRW8OeKmkMP>|GnVw{d#2<3ch)a^2K{2RS1tR@<65+LfdMuyzzzbKlzaoH z&+)uB-P2!mFS~~!ebbRS#^-sAQ(X@VWFYKf4TGx%ikn0BVZEX<3BrI%;uwb>g_#Kt zm^Nqb;co+AD#MooXcN`xach!8`4!BPp@&Hh{rwV%M3S^b8hTh$`?xb6l^sOw2iSv^ zsbm#yCa>isoBGLrp0S|wDp^7iuoXUDg~|E+ntGsx=ea3<r>|w0OfUD(tD*?|oF9~u z6P_MLh0FkYwnbAnlmv)FQp7VvQ+}G&VTW2NT%D&yY(UTgHki}mb;mDO?f`QyzlX6k zhc;Tu7&9AjBgu&|<<TNpgQ5{$orZ(A960v^PAhG@^9lJ3S?$Ol!xv+b>*HK6k#sA| z5Bd8NGMzi;8V>SJG{hLt2UvjSa!EGfB~TklET(EC86iM=5Wkp`j5<h%A~?P{i2OY+ zuF&Dk3?-2rf?2k)2a6bI9znyN&*0Ue0MKfKsVLr;$6j7{&X1!6P^dNOGBQ<Wz&$q6 zjp_AE^>ah<+RuYVQmAyiLB3f`t|(sn*>K<RY&cC7em3l$X*Q&s#SD9uMzE&D8AyPB z^WbPo1gN>S{sN_S8Qut*L8R5`!6f4BQ$Z*C$3}E+Mq<}<p(+x^G-kF#q6#&viyIJx z7^!{1?OS3tozs-Z9I3|7F(OfW7L1_%*~Ws+L)PV`eE~&ofZ^#OI1@qG8Op;1@wBiE z$^)umawD?QrpZl8B`_QXs2L!V+@Q&AfdZ85XBqoYuZ=RXZ=x=OFq_==X`)hILjzNs z^n~jC#(-reThO->jKlmk<7Sjf(i!JB)ok<Ij2*vW)mT?Zma>_^jI~{ni7Y{WitGAy zRqXK+t-@1DMP11qXl9;@7)09-O6E_25=!uWfHtIWFtKtBDg#uSQ8_40aYDK(iZ2Ew z%cUMiY?s6GL*q?!Qj?`LGL6k?8XF7K*q$(riAVQ56utgVp|FIaCn%s)4@K`Rpa><D zQ0N=69b+>?P#{JaYblB^pfH+vwPcumAm2|~>JpYmBF2cHkI-9tz*kj*N|uYt3Sk)! zf=nt}k_y18hj1hYJ?9y;X01!yqDJEN^IE^f5(4wys6Uk`sS1=ZOhXBDdcbu7pyUyu zPYY2FvXOn-vRAP&Bqa++B6(j_TeolsX)nc`!xB}{+=jGugR3&<n09O92E09hR}2%2 zpWrZY*&GL)+4vId^7#lavI9xG+=CpK;aPEk(!juyJKxPOV*|BDoSU??uu5}eH%WVZ z1y#r>w<CW5bKvut_Yb(|^;in^Bs6cPKlwQ-?*#q<vPasTHg1Du&Q6pbV@aGu7qW2@ zolZ*YE&D_32xO|YfqB}~pGXf&EDDD!+MS(SXLn8|*qxnQhhV1fh<z$sVpq!!ZCGk= z+4O6O4*OEqO)a~g<W*U`4=i8bZMx_2kEMv^3}o+gd+e0NE_Am?rzFC;CP-sT<&;D% z9HcPQb6}z^A)}h)J<TDIdw|yNY@7NXe_mi$U&}TIP%@NR20Mk%?hG2cGidCt3XK;3 zpdX=4c6l4PcA6qNFYv1db{A_SgWcI_igstGDRM_ElQpci<!OpNjXWI2!QS9BMHAS` z?Ez^soXnA~Y(M4+c$2IY<K;<;Bm}ti0tEH+o?>Y(sKe|x$YFN@GaP9eff5cU`~gvd z6--t&y1>LY2?DiaUUb7!$wpF{iev-Wx8xR<CFTXeY|KHe^J1Roo03UE*iI49&T)up z%bB~5GEG>U!6xBVaX+?@Vur^Sh8i1N)5X{dmK#5|X0{qz6E?P5j4kdMTN)DLxMvzz zlq!GsdDklk7I#8ubzqSc1{QZ41{TCx4lFD!Fu-D9*`1N1-5Dv`U6m9UM2ZM0#lXUe zLI!-q-C|(LC4u3xX<)&CVTNH~aTf*_#KvgqX*4lN8Jd(QZY@0;Ca~SW>iB_$d`He7 zbYOJ`1B(c=A|x9+wj5`7XB=2!%FlRUadIG)0x9hmWBB0>EITXshdHpk32Bz&_L$FX zz-ahn=mOes({@N7NP%)4HaX-KQlM;<V0V^J%Pf-wQ(VX96?qYOdyBh>m2O$maC3wj zFk~(HB)Dy{6rlkrlS~&MmD3!%JB5!5Hh#ZY0L{Gu^4*ouCWjS?WLqt`$mYPXUf>-% z{d&Q^V!gl?4zyk{GgvRs(t-SuZN1<I)#BF+&bRe~E6iM@r2$O_Q(73<uZt}VEC$x# z{SK5Y4rID0YNR8<%uU?u46@Q*j~ApB$Wnk6sEoE0pp0darCUO=6fky7hcjDNTMCdF zj1Q22Hx~^nn{pGj`T({h5!>p6RSV|zjx<aNI4{Whjzz@Ki*3vso)O0|bS;oNBvN5w zW$wf9ENcs#hv`;S!m7T6fT@AunHqv6PG!gdKrBgbBQex$GCZpY!>~Ar@<KON6(7mV z8yJi7w6nl4;0()n5gIb4{44}a2Ruk&l>qV6q$z!FZnDMNhd{Em4`c*ccuGalmfMCv zGR+$)yl4U#^dKRnIWzhQ3xyrS5w*&LBuJEZ14v#Tu9jyYm4yvJG7~!Km#Fa~=2~W_ zsV<bgv``g%%U%K{TFxnZ$&@W&6&Wp9XF^9Id>Up#H_`W^N*Ou9Y5^7fY$fob=p-a8 ziTYZ~q0{K0K|zRAL#03;TEt-m(AKabCS$B2&&T>9bI)vgn4yf7sA^a^V1|V`>QMKa z#lf2tUSKbvYecd$nbyaF-WwCJ&%`W*<Xf87r#O@f!Nrt7857`IvUA#w7O5RFxbIoB zePcKWAd(eIU`h6r;P{5iqGqls(CZD+!YXSio>GL5LT@1Jeh6aB>w<y!&0{0zg1VQn zMg|&yH0ydO&Cu+NvIQ5I0A~=(&1g@>m@bXb60w^yS=tEI>01USI+4`HodCx$+5pg5 z0|T4`64?lmI0AG6CeIq8vOGRLH@O1y`IKW^Ucm+P`85K;%;)36F_t7bRt3g^afzoX zOV&bK_)xEXLxTAnix5NssbOKD2t$V~4B%K@p;Bc*$I^%`!PMg}W6Mo3L0l2+>Qovm z3|1Zchi(w4`gBmUSs13>f-jQ^KuY=xJl3_ofz8K^=vtvFjOeCHl?=$9DAdsyE`hL& z2{Eum3ZAVPWjG#Xb`Hap{QGHbS0J%6=20L%gvqaDMbc2EqZ@S%iriQptI-7zwiI&! zAXoxG8x|*FPAV)73mYsA2S9YGT6=aXXgU>WOuY^)kilTX#2DaaXaH8wjCnhZMiuY? zff%ceR;a8TD`k-qKs*}?*a<x~2iS<8&RC4iBtWH}E*8aCS%ox{uFN5t22qlOl|l2) zrrf1{K^(V)+Ve~1Me9d=z{-9!$V+ZnfxK8lw=RUgdZ5jWCZLVq8qi3~HnhqvEK8GX zoPbtQZQa5kL@kA30g=4OTY=bM#Nt@7tQ_PsrutWMVMhIFE{w)k2N{J1zCzXw9d&+@ z6dkm2TZ_UvQ0hGndBJQ7jE{5ESId%McdyibfC&fLG9U2sC>HsPSiX3k+c&T&n2R=Z zP0)GlZdm8BB-459ZiCKadbc+U^n0n){zB)mJJWgW&U7BTtLi*h$)wMkmLM@}r*s|@ z*<QgDcHf=0_T`@E?~ty{EnuJ92O?yU*4NXf`KYg^gXY6M#Kg|s7ox$aTM)JkyECQ& zb(f_A?er=ThNS?!-3fSBlPAotO8i?K0G(+X;9zONQet-ooZT64c2@;%TEI<vg%0)r z(eCsr5ETX6g58-4WOrs;usgFYaK|U8K;5lu3!J9p_aT8ZW7`EFIte_eK%xD}13Q`d zxeROzBn;aYcIrKhx3nz`a@bwKjM)}CvMv08C=o&+@CDdJW#M4+FgA8v3?^f(8ySxA zUa{jamOF(IC7RF#?<K>h8_Oj_#7dzFs)Mm&OipWAZyt9qT$da-x-e?k;LJ<!K_;h4 zwfmr^N7j)<bc@Ml*oC<qMiS(5z6hJ8CR;MrdC2+{-!In3gX)8XVEQp$rXf*!#1K0V z+J!C*58mx(XBUfJHkC_F<c`H5sfk=)(Vq@l;zim+*nt&HV3C81*itE`Nbk-z0bvI% zQAt!P1I&J`OB@Rn+a5ty=+s{HDMVxTnJ`Q20?OTPxAuLE*}e~(^>-sAU>!6GZm-#m zBrXw}b}3(EIhma?Y_m`%t#ljfCXG9-_fqI?<&ryIuC^9=QR8>ZgYFt%VT)R$#mX+C z6G!&mS>22z#%E3IDd&MR<|K=NAT;f{(IschNfzaFwB_(JL+6Z{nHc~81|Uu&7UGs} zYy%*jEN^j@(|@^DjFSpaJ@&qFY4u+QpXp#)s+8_tz7aq^B~P!K=jf(9N0p~l&2!VH zJU1y%6%uygZ9pbl(A0X!#~iIe!ppTSXtz5m>-BDTlO~+q+CSG42k*++-MUe-kQ_Sb z#Wooj!Pj8YxX$gBEo!fJAkg);|JAYcXVrT#o}02AAGe>AH`y2%b1%bv@VUz$y-AC^ z&>nlBcp)bVv@31(BaQt}a`;fC%mzk*tTD|dw+W*Wg}MJ$uR(Hl(~;(#hUe_%N8&qA z=yonUdZgoTUG@`4Cb@li1!)_w@un)B9r@s|{Pq)X{MWzu3x5~=9D-T7wd%IB{^;nl z`RFH}#YbY10`|ziFZSu3Xluvi%V1->^8+#<&dScv>&vVI4PxG`(!~adw2N<kXv|e{ z0m+PK6Zn5?!f~^Of4;V7*61R$VtN^Kg8hzFjH=w(ZMF~gUnX<+tiGP{{KS?odTgc~ zK*cuFHyvpYwT#wiBPXOW;jL<t*;uK2CVLUD7VCrJM7kKDY*dRb;fr^kWCIhsl77^^ z5YfNSk9+PC;ZQcjo?vGJzUp{`L%Fcv=eif+DU1;gY@4GolgaU`w7cL(=LyqIuPBa) zsGFD{y2%M9A`2Sd<JKPTJId!bGs?lAItQ^hy5(j@rYiDv&5RE6Hpb$>7{snd+dAS^ z+mOJ-VzD^7TgKw>HQ!GZ5UaUE!9eCZDhgT~d_)$tk<F!9*ZbTRjS<7QZ81!!_Tiue zX1?$y6iH(y)Q&;96i6nkcCxH?Qh9bEkjokeH~NvQ%r~gpX3rThUT|RkFh%>AGhH9- zMIp<h#mKoB>ro!ly~NUicGD&N%wbWyThKdPy67Xl!-Qh*#)6bi#G4PqW5h<GXzo9& z4Q_-~;=}U^fy8Bz)7wLwRu``<t#B^3GQKOmk&KZo_BC9Mm`o%_`l*2l34c8o>oJ7x zfowAs%Ms!($)_kLUW{;v=eMPwUY4+zgPV>^m+EZCqxPl(bbV|@zrQ`=THs)$_cK0( z5IA>ZD=c4TszhyF;k%VAL78yzeeC9R$$dZflROX%%9@v8$e=}`ZF$6fQGUyfxKY>c z-3$q7kKRk$?xpSDug6W>gh=S2T{7Cx_Ngq*cZU03KY{EZ2Z5Z`bm?SGUW$SgfSFNS zm$y*uf`~&K*7}L7`+)JOSPQSF$i`PaN90V-7w0^8t$->XeTrcap~7YcRoger_4>73 z^huq7Wv!8rq9S}Sd+usf!=<ADW8_O*IEB6DTa}cpN<ypXxjyts3)L!up_Hwv5#3g; zB2+4J7qefDt#k2Oe)3i}Oi~L}60>Ti{55DyS(9-!j>uY|0i#_~K}DlPMO~;Mg1@g6 zU2|(xw8YVc3Iq5Vl{vRfnPq{#i3CJZkSz67rEvi^NexwOgg)|(-pNTG9`YpLdEBEZ z!5r|^_-eliz3{$4WkmE9!>@J=ar(hf;#wX<wy7dwKorDMbc?89Q@0QbHuQ-~F8icm zeUk57bIoIYcJ``g8fDKktY@0-f1AV&&exE!Dq(-iu}l%uc&OV0!PC~3^7IzPRwMq| z3P7Z5{3K)?0Yy9z%a;eR<ulgY2$AYmmLMEn5_*o8qt3!46LO9Rg3|e%1aSjjjCg{| zIwC~)RO+CJ;z<ROuXt2$B7G1+&(&#*tEnE>;Fm)=8jO7~sPqv_A6;2m>bD@cI&;4T zl^1ymx}}WK7h4I?yJaRJSz#l_8e_I~18wMDqkwviYnJlU4^J$SO}p(B<}Rz}J)3kt z-hdV45#(Q+=Rl2<xnlD6N4bG|=KIb3wtgM-L|69-*>`1s#Ix4ze$@xdV|$`*H;$8L zcP#C8yZqJa^+vbb>~>otqwNk`GaCIm7eUoQ3?Jdb9IU5Nf?;wQ@lOb@EuNbGNf82h zV!|Kg!Wh##Si3%eo>U6#i6C*WK}l3JJ)Bi@!dC+>KesW7$6z3<F(K~)<8|#=;aX!m z|1PjpCxoGc6Yv7`k$%m*0KdkEq`$3tTFBPm2jIJ7V?a|M8y_7T8yn&OR<k)a))?~# zj38Q!z|pugxqylm7jQ7j1wN$HKSl*^4IJ3JmVbiw^+Cfw0h~%9+=g<31Al6WJ$W45 z63`%4Bz6m_WOW<2bwzxmPqzbCxCDA(2YiA+F%f=1U>j!(2%@$%{6%WOL#NyAv`6dR zu~CR%guZVzAp-ulgI0iC5O5J#AV7Ek0m1`BAb5Tt1dLP=0Pu-LF@@a=c+HQ1ANd=i zSaOqIH_wbuZxh9E-18YjL3kWO18MEA*BCdhnNMq)YBC)2^)K1hOdk`cl_#snebEKc z7esGVnDh?W%>~hzdIO^mJm`W5--NYe$1>y~GF=d{|9KUIL@a3mZ3;P(VXr;=-Fz0l z!67()FBA~zLpv4cn9QWSF;b@U!v3?i#&;gsv_;8NS&b?}K^Ap)wHqt+iKJ5)0&(MQ zJ2dQ0H4%)4en<I3@bZ;k7>&3#KZ;3JCP}lj4=#+TPlBJ%+-I`PN7(T;K94BU%tx-8 z&)_Aid5c!57={{Utx#=4dxI4-e+<?oi6+Iey`s<!F|D@a0JMO`vV*{+v^sgfrw-tt zMGC#E(0JU~nH;#k@D!SnMHfcQgBM1KLyJ*YKNARB<M1=dMR2*3y_@OoB72SZ+Ds#% z<Sc8dsRn+Up$k-vb`NM<tq^P2RJ|&bmnQ$EMI!)lmem&~i^z@ke#YW4wSOgzYlvqw zA@)QA8I6gSjA*z9qG_u0_-CZj2&B@0*Qo<3*+_+}ClziYBNc86Qt?xPYZj!UN|3rQ zh}bK-rYml5kf%#g6~Q<%Q;iGqL6pZ#2nn2pOjFYGxlS`TiUo%zKtV{H1m(PhZz|1# zu6*Rq7m-e5ICsE?!l(l0o2aE!g_G5_<5Q=U7gWoHW_L|FHQC*Wgp@hGZG&TGRXHkH zD;IQOg4KcmS;0PzhPqDlAt1I5vr<mFmN^85u<3`O5KBQI(s3dP2;Q$nb%~!5&i@DD zR_#xx$Q;kUlWJ$tNvJE5Oc|Vrh-cG9bc!T@`$RIP@eZQuT3rg7t6t^m34)tI5K2o` zk0SKfIm#uLEVG0dMYZhZb{s9BKm{(zksua5&MK5JvOOgjoFygbQ&bjf52!9F;auT1 zPy*KqCGcdFz_mgN8rGf?G`2k@a5s|Cmqc?FB?NjEC19ZxB`};s2~0fg&&6@7&Wkxl zSUyR75#`^x-2yIgpX58lrnsx+Ux@4$RgPP<EZJ#k%od|0OFY@|c1-%<rtw+}-%j@v z>gK%-oW$6y2o>3t*k8xRbTtX<g^;fC%^ZbN%8!ed4SzQh5g=+mlE!TXlucgEIThqT z6iMcP>^&B}T9eZ0du^Mmnv<U+sgId2f9#k1dray0$U+7BL-dra#2_CeDF89YjZ~9b zmW1Xv$Tea~Fu_66s3p<UgCq$R^&H|HBr$c6gj_jD>XHOv&aoD$3zY*Qz06?=jEdoe z?#6`iN`hi2sF<;88fSMLD_(TAdojB41v+wrILA#IHtIC<DLeys_GO7snah2i26-5I zK95+O&m&Qx%u_e2M88-&rZ~p1B2Ezg$L;U8;xXT=blBaYvqsiDO-&=-AIl$pe9}<F zC-7k6LoDZsBoV_NI|?dUP-P*F%UANJq9rEMTTpW@hX^j`=$X0{g(TlQc*lbhSXV_U z<U~YKoU*hjkiZm8dE2Jd!YEm#7lox;7nUAFFGi>i<!F*nIfBANwNu&=R9OAIMqBv1 zcHToZTV%O>1rP!-fRH~%XXl@JQm0v=LslBS7n@0$v5kcG8k+j2mt8wgIEL@1$RY(m zA~`}h`4&+8;45EzQWWo7LiD&zjV%!uAXSm-hX52rQMA}MBpq%@JF|sFdJ5qZO%s6! zsYzlF(u{SIQYa*(v?L70=xu-S>woa;483`|HEV41H=miBXHUz>6(m@xF+89J^~PjO z>@G$0K~t0>A3G2SHK_sWbb4BZqvQE>Udk3M1%@h?!n~pP1C~-Zn2kC$2B2<NNz%|k ztF9(7dys_QHTaN_@+8%(Niv!-vZ_g%|5I2><wI%JSbM5TV<eR<MWVGJhMy|qNG0Q~ zmNH&RanY?B;L13*A(;_t>D}RUV=2nt8BW&-xBTF;gp%UR{G-F^o=GUgxtNW*i*~S{ zcdHeI#O}XDo-b0`w_<3s{3aax{G-L&ks^PyNNJS$HRnfe9Pk4lYF{D(NLCoK67W*( zYCCy@L_C4e`|mV*!)-f@AVkxb;#+pLzvJQsoy_W(SoTK=UobP}MyvFJ!mbiR)8xvZ zWoYQ|B;$NAEdt`ieJZ6s`s!z?Ow2G{6ERx%o$^mK^@8YKx>qZVVIn2MJuRCouv7uA zltf<Ha*G6%R{&Dl9jZ4!{afDiH8T65RdU=jqo2+8So73k+IvjjoG6+qz6IZG<Zt^o zeimgaV!*yNJjpI2CxZUGV@Tz{IF#uvl}s&V!hlVte=(Hl7b=<1>U3tRGTk|p>5fXK zQDy2_rk@|m^yW&YrZROc)0>7e-CoIr4yAPrRrkiBOmC=UlGuo8UYTA$lxe+^DOD!6 zMj><JaSW_6OYqWOi5*IN6}E&H#VnUoXWVBT>N4s0E@qoH-zBKQe3zhR@Lj@UJ>Ml9 zHo<oZmPo!!`V1#s&>nR`P?3BpnR#zM?)J>%okJlgjXHzH1dt{F-%9>ulgUs=XMJz{ z79GG*W9^DK>^P;&q8U!&VB-ICa~ty_jo`n%z{)8K9;zODj<(I)%GWOy^}JdNkF+FC z-;yl_zaLW9W4x)O9;P=}!_bXDt7);3|H~n?eyD=h3T1t8DANZjnJSd^{-I3ot7NKB z)_aFC-Brm{p{!pT%JiN}rV3@fdnnVpDw!&j_0FM8@2F&|P}bXrGM%bq`mae@2pZcE z)J8JNIAI!j^DK!fgEt|<o+VjHROoC=SlS0v&{ka1mTdZxS9`}9K}?Xx`)#elDCht@ zv8EG{;F_s1Ql3WjG<r-UN?I8Y?PFrNdSdJ;2ZK%%ox~CzTN$xG?L3)Wrxr%}38aG) z*Xd5Q&I6`3vZs=CWrD`8K58Fhc73|<)Q+aU;N&sMMQ8Da*Z)A2v3%wNY&tp$nq3xs zt)go!qTd7q+@!1mCOV)TKal)&2u!3U$TiJX-NkC&T7JnYr_mCRjzgMpS^~xVq99xT zrW~G0;AM1-mVOT*O>akz*=w|(%4=}ItMpjzwAhBctUp7UVTr&nDb}F9`Ws4Rk&smW zhEm}eLMlHjOVBf%xVXlT9<VX#0ZZiZV^SxZ`RgQ8K1So}_F7=l7($cvbs8XF55Qd? zTLr`xGV|$lRiZz=54OM%MX(ZtvZ}ASLwW;A+}VVz#M*HZoB3%f;?{C9Cm&arunM?h z@NvN;$5Xpsr&Ie;au|9@5c%5k$AvEpp=<fW|C<kKERv<?wUIN;*AvOBY2TK!QwzyP zr(z|bm{i5kL&~g$$dK7DwUMs)ZDeL`^Q7hk%coVkA|Ei&|Cs35r?-o@p>;B;JcT#l z4#sHx(rA(kq&2~X>83}W*4jrxYwPk0jY5%7nGnMQi?6z=RYaDGpbq6gr61u{KcalF z7FqLH{SYjn(pjgoRO{N!TNdiusX-Omd1*95Yep`Ornw-yPZf>&+SZNI(&L~}w$^)A zjgommm|$t7Xw>$|yVTZIXw*)RFzq)sOg&m{)b>4EV2WAPFx3*KL<z_QsbLE8_w7Mb zEZS3+=aH0Fk+g?~v@VTybD`%J#JP6npNLm<GnXG?5sjN&`3~%-#`>m<ms7>d8GA|W z3XBF=fr|IN;{BxFJKoEZL5_vu#cpM_^7kkUVis#FYY0-<NZ0xb7{fS95fdQpNyGr# zVn-ZJ<lQ*`%Vb4@Z<K#q3w_)r`EzL_iomrFCE!}I*s*Ju@-O&RK4Kuo$K4J|*o>Uo zv1eHdE0~lb*C3r-s-jxYwkWI?Dhje64@GsJZBbYzRaA%7kWdtd<vcqyu_mjc;$xW( zWfg!^&$cLz7(9-DCb*KqprYoUZBY<`iUL;=hruc^E#0|l-ARwEI&}v4Ty;Vv*jRN! z1hA|+fk8`F(Izq4>qbRzYC+EO`6z{UEMV^>4cvi31C<xlC9%p=7k6hvT@$K7BS5st zO|SfV^31epR5c-_>)czu>=#A2vWV==MG*1uxMKL@#qEoDeo@4MvWSb$Tm+FfkAs#J zUjd2`I%tq~$307&7%AaKcPwi@Tf|_TRg>zT8lM$n0_lL5A<|J_8R-b)AaB(PZ=hh+ z33?+PHJcWA8mf>^Psfss8U<;21wVAK#Z(QV;6vN9rt7z4Op#zj2t?ImT~5{MVMa_) zhh!(%+NIV{>PSPy-j=<p#+{D8;wPBxj=ea>8K8zA3(nBjM$8j-C_<dy{o%>pK@I_w zrJQZ!5`>vFZe5kl9?u~qvYVxMo-&Yt0}ww-Fl+ivcF>(1jm+gKg1=&2MIcDXkBdOw z;$&_v<`cV1N9K`1zJD|s9}d~h5hM`;Ny2}Aq8YVEsmCFF_RedkSkk_buxgBfgxIVY zNb*<<0fT=aHo}hk+ObBx9@%Lce9A&KjkM+xk)4LID0sfSA4r1TSdQM0?UEBfNHLLH zANGFQ;y6^3BYM++^3Qge2;d9RCt00hc%-`#qte5)CcP?a5(XD(OD(ALBhd@thda|J zf-4qQxlGtl&;hU|+hpWDq!N}D&}};ov2Z!F5^O<9sOtEQ$B}rLMCq1AW=oOA@Z*$# zBH30DUL|)ST;?#Xs@LtX!-QUF|L)VHa|o9#c(9^K8~G`4`6C4`adP0ujpg3uB`!&c zh}Y|rUsd9=NJioh@BVp-%kU0dUM^gwTj5eIkg6MS$(@c6<=pWUTF^pih9p4Rmbhe5 z30wk*l~Cd`9LKr^E(ym~;8GB7i_1?Z5w*wp)b(9%Hvi+*$nw~z(Ph2SlqU~;qF$GQ z4KFh_SCq;f2Eom*4qCv6EnmHG_*IT==5?zS+bW91U7TPMTYh^{yzQ$OZ2#&2F<Q1M z5Vz&(tIdshUK+i~zJ=8D2*28P`{jN)Q3L<{D9R5k+o@HIA*EyqX|PUZmpdM4!k?2& z{n+s;4%uTcJi5}4?W_eCx8E;}qMw@!hpjZriIimo+(47V`DZ_Z^R9}Q3Qqv)ldJjq z|B_zSHOZcA<K{ofo6C6-%%MCHPWnN!m*$BGpAYX(Z-m8hbC`?|rdM02cqJ4cVjAU% zvpXO2hE_dMOz|3HY$$2Hwv0{f@{JV>@|d$L&<IWW-|&4|{GdR2HnsC_e{)C9o;y@0 z<|PZx&X)`e9@>krYR^Yw;v>Xb;_c+8-#3W@DIVX$Xl{IB>x>VPk>!%7&v-W(Sq6Ff zjNg0jB<%kzGCoX3div>0yqAnXHk9!z4IOQ|{;QMuV{e=6?aS}t?wfC;K>p!n>=6=y zkSKrRZIeRDhktd_W<D~kpM-XL=$M9>YTp0L=Y8O8^8UTgd;cJ>RM#zwz4Mec;h`dH zf~Da$2xRNrZ}Yhy8RVwmr_wD;{*cf6Sdq6z$?NN{BR@yBZ2846`!Bvd_yV%pGUspl zoZlPde7dqf=D)c8*8-|*a;My~?9cd|r^=i?O%j^Vs@?IB&-H;KSF6mG|IK$N@-Lp6 z?9Jz&e9vV5M|OAWmmuc+N$#ifZ*!mIcfMWs58b8oyX^kKCnoZHxa(Kz`NZ3;f7XrA z;3OI~zBTzDkoP@t{&!s79q0e*9g{uQTpr}|&N%-Tmv_YZo8CFudwX0h?<4QD^6q-S z2G>w|)m)$VxgI1J65vp+rzw(JPrb`({nuQm^~+qS^>4UP>$~5*vDQz#+iLw5<u!)O ztJeBepX<~ICUbzS*4lpio;VAORwKw{EB$&RyWFU3GYK9b8Iu|AA-J#M3WW0!?jghu zLnn4AE;bUPn&Q&zAPN4b9P^9N!&xW&akTnoIGF`4jMM0sn7WzVvxc@JAkrXS5PoZs z`Jw9?3R<G_8suQ-olU~ZqQil3Ih28bqn`0N;1pPUYDy|5nhsAxWz#GUXlP(uXuOI7 ze6W)?t+Eq#%a&q=GQ)$9@SXzz%NaY0CbrZ>g%w6{^GCb%T&rl}4mA<Wm;RBZY$EA$ zE^;AwyA%YP$TnS~@>R;N3u9nfcFFpyD4=L!)9~ob9a8x@%>b|HG4R+P;E~-PhD2*2 z8PviVL*m?^g`7fS5$>#oXch$$bxw&|ICrei)^MJzh3uN;sVI0u^JJ(|xR^F}Cwv-p z4rS^lmwWHSr8ev|tx0Abg<<1}!2vfNH=>;j3%YbbE0<PZHaR#tLLnyE4ATz97#V3Z z7B7~v-8okDeX<LWqk>HKX^{zU`hKpzUr(0GTgeufFrk_?P8u+EY-c!&WhW5!o#T@B z<vTGdugR@*^?k04#j#OB)zDR2mGvB-OIAE=2-p^iTzf)|dsO2t$0hCWrCsw&*>ip4 z99s<rEu0Ve=arvq%D;yeW(uuj&2;^xY`!c%4f)Z9wdBVo?e}Tx&ZR8#4R+6AYxLIn zu@Ndi8iU&_4?1hQ4jmn|e{U!suhXS|1d&bTqt`&0DZoS;i3zKFNb!Wa34=6`^a=yD zM$=xEpXwrLnhF%vOl0CrSuIx~DuO^^8iEv23?eNT^zr9zDMU$&4>+o*@&U);p%LkW zlBV^6Ed6+8OEtwq-I&yZ+m8-WRJ4HluCErvP3R?kgrE2x?Rtxx1GBWX4XzC(`{eAq z3%wRCYeeDVdR*|SgK~8|1gf(egT2`x1q$eH@T5da(%Gkh12l5mBF#8n?oXwMJth?a zxnZr~k{;(EGTRa|kvF6uifQzxJd=VE(9#CzZ!BBhjC=NZu*%+Gxx-?>h=1nw>x6gp z3c)Q3z8UFwA)IE!ul$%8^l)R)!*muV3nNR4qR*<7SugXUSE04Z51BjV@dr7HIjF(n zSpE(SE5@;__Z#$c6=*{}-){oipjCd9bs6P=R+$QD>lJAAxuBI9WFxfNpI(<|_C^k{ zJrusJ)Y`{z0>Y5d)6E<t30MHdf*n*xW|bD+ri$I75QaPvD|NFjA#+fnwQ|LNq&_ao zv02TZ=EP1I1`zoTyHW0V(rHeOcA%xErzHe$HewoDSu+qV*|^c12`!-!s7yN)43UTJ z9*j&v$jh$)%LCNZ4C9WbGX&A(Sv7P!@DT&!91JE>*}=hJ_Evj8h(s}^k;7Is0mysN zljojzA_u-01q`9n7(IpeW|EiDt;knk(pJA@1@M@Jo|*+csZ})Bw_arB?_A=^3WisZ zRe(P+zQKFoM+qw7S562j0bspTUkO?!Z=i*H0j<2Q1g$3YX}zpMTNgcH;zBE>Z>n>} z255l-;mP{VH<C)l$nfU!^t9dg;VZH55^wc_o?tDar^>h6(vz)FLYKCr*7Wq$+=iaC z(58RzQsYf*4qfg~8a>T;dTI%uY__V<(+qM6cF{mj7~TQ7<>{#v*fQuPJ<!wa5IxNr zJ&AuqPcs;jMNe~ZN&pP><mcJV^u(Yn>1mG6@>t%Uo-~MUjAA#lgXTEomR8YR-+IxL zzZ=j~tDvU<ztIx{ZH1l;eq3%mJ<SyKM6ZdS1g)nhzT)&e(UYL%<p5e{25s~-dfF&e z6!a9JWg=pp*+5Usa}<FL1b^D@`|uUwSb;Y_D(DHoMNgG)x1}e*Fg_>DKnI-nhyiUI zdTNQDWQLJQhpU~4iYAUQ*OAi0bzVYRHYVwfnbc5+m5zxuj}h*LY}G=hDO88L*yC;y z8WV`vl|HE>R2C>lHzEqQn-t1@F?gO#-l&pbn2hPR_SI^(u0v%CN{An|V^(J`uo#!* z9V~?<Ln=^@_+W$<-ftqbVhS07!2ASg)v)fZ&yYTng5G@VMQ8yIa3W432-_BONVq|z zcp8kbvV9c|_6Q&XxbZODFcGCeR1XAjBRs;ICSPI*P^`SI5WwoRXisOiZ9>3!;N0>y zm3tZUmGFl{PYGB!vVc-N`3Xlr1C^9$9H566IC)kJG7KSTVxU8+f>LU3w<vMAm~DyC z3iR}7n~U`fof%Qe-F&M_6XX+6Q;kG?1MgSO^F%+`wH2<Zo3&>qR=aZkmt7Is>?(n5 zUZUcNEvUG9`|<I3PAc((s3T2u;-e;R*78Rg+RXeI9U+7?Kg|v~EgEu2E5wHxh&b?h zM}sKMA0@ixD1!+Vb%`IXI)L~l#*W^HVmqTxX2PamBzlkNhHsE-(W>(gb7dEYRH`Y; zm1$>{b<i}wmlp|IP|U!KwOv;xR8@^QAxkKDXRyUWy_OVUfNC#0d^tqdCobD@#~O&W z`~>nb1+hh+@3V#laS(Mh2y-JVZ3}^u_1w0-nBYZw2`XjXxqQo_$%wtx>^q_`IzDc> z|CXFXg|f|z6qVc{bDz~HL5L_P{k3kAxI#8;Y?36vqDdI~><dcbdjx92xY&mrLrB5E z2u52O!eN9wq@rWn?a9tNEiX_~>_(BiIN#7jwh>WHge!`-OHV=qxU91)x-0kD5i_^) z(I`!2d9-U^YA=KKJGb?v*6jq*BwDz>goyMdn-H~r0b<o$_DmznTRXMFNaHFE;iY6p zzmkxY#c^lJc%_SQWcS52hu%+fY`yo^0hR7$oT|gs-CzQOQn<{Mx0(S)Fpmz9Sr7e- zu(ISB`syR06M2x{FFF|wNu5lamvH<x9uXmbqcGSr^#_<(0bR~U4JIm=(*|~8fnsHw zDM5H7FbSIhMTZK{K<k!OB@>j|3;}8#4C)+(s8Q*Gh2BQ&M&t1;NKQZpS7djxW@-h; zrGmuO*!%8bFdC(LgQ1cRbpp)hbf|DsIkx5|4GU8AJvFKwv!KuF)!ra$h{`jf4)xHV z=%PX-OKSx-q-~Eg^2}zBO{GADgmRV+4;)JFmn4~<n=En+dbo8Lr+0_jIgUUNw>{22 z54Wt!tcP3T^WVXySdc!V2->?K3>2_j=lIHZ*OMYEeQ`!7vFCqWel}Y9Lq%xj>nWXN zRA;9kj6zEEk=PLy5E%%dJu<}C&5JT>MmIb7?(j0ex2!ub%L9dU{@8%H#NPqK0e=Sw zi~bG>oWHYE1?&qzA?BIevCPW%lwV9Yu0^X9AYNP&RbS&vBbhom=3;&QNgNWVb&}|M z>lpmkYne7C=!NB6fhkCYRd(q%K|t%F_1dABk;ohTfCdkE@(dpE#Th){O*44FA7=1? zN6X-0p?FB(@X#^wybET8CLWbd2%msY<sxuGL0~!uY*Ky~YfuniG^_{5=|Rz<Mt?W- z;ErX&KL{tj*A|2rI47dJtd%8h$j&<U8aOf}VS@CCu<3y?SD?YB1!NczCobH^2B-_R z>}KS8Afb^Ma;962+I?o*?zZXy#0bCVO5vVuCJ9|hu~daqh5RPeHG#P!wNNjJ3HcZ$ zmeVfyqUmYQUzqmv)bkffDLhHQ<AOK=#+h8TTagyeYXd9tuE1c5@rjYs9$~kW9pWG( zIYthQotosE%<2jqS8snOmcK(Hl_%0(*oY|?-rDm|EiAEqV~4~fD2T~QFImVJp^2p6 zk8(4RZ?Wt}Qg_r6F$1~+Hw@)dkwjPVMag_@dx(pY^_>Q$%7~J~`lntljJ5XC%(Xb` zC=2qw@|(>z)y#tcL_4;qaV6A9aR`f8Z>`?;r|08-u=bCh$=W|6Yd`v?to<#l{j;UD ze?+$H(uPhp_;qRR$5&c&l1%BE<U_lHwV#=@u=aO0So_)NZ?Kc4fE`iLto@y13RTCG zS^G8d%T!jDU9nYr^U|xB#685am9>Ui%K}7y5~&<-@1mJ4&RP!59FgKMsh5TA5q?@& z{3q$9(&FD5G?Vm-#h<5&#lKQ^rJ1t$%Qe}X)JG~7f921nWbv14cE#e4PusxaPX@Jc zr&;``2NwS+wQxEhvSRTk-C8((jJS)ACu<?b7oLiOH#Dzm@z-dBfg?q4w)l7RC|LZ* z+^8)6bzM4a+2PXa?}3^%9!iTpaYwLk>t{hPma@HAC9=#oH+x}b(1>?pB~h$^1-8%3 zvj=7ukuWTB(>|4{RRB`#4LM*Y#NpB!z!*DBV3{e<Q3!((WJm;4l=6|`*LX8mUW35l z*R$x2gRl3v-NUbSFwWpLb<<s0TIRv9>Knif4L}*A0r;gen1=H>S~18&D==SV97-Pm zv2yw}WsqkN^Yd;NNrv;NJw+bLI)tbx?D&Sq5efUUp)xA4j;BU7=*=)~jgKZP6d2)8 zVuY_@`nN7HbHF5q4R3}=t`h0<q)$dLdGx)ZpOZ!PNfYgdUQ<10q9n#AZgSq{-}FRE z9BG=4QiIo}UvsOQ?cUYtbqg|IXDg7}H><jU)au%;DMsO@nZnHSuS=x$g6k-Y`0v;C z9cJW_>-v2r&HXp_pW{*_ohHgs8_@!O@1EoKxjwbKRsQ3gsU0r67I!$C>1M^xN8N5Q z_))jVbMajRJ3l=%KX@{$|F~N~zw=`(k$E4LKf)C=C3t3XIF;o;%||y{{t4YC?67^) ztinw94c4`=St3`KCVzzh!EWYF{uY>9Of)Y{{>Xb}?@=>SxpZrZ8a4zl`By0iqg0@Z z@R|d*wD7Zao|tLMFk4qPEoQI-KLtlaCVo1raaIuifY8zOT{mVE@M4=cG{85soJFY; zx=3;c)45bnYq|QC63{qgo1x8)Q#TNgH*g9j6loi%Vu4eDY_s@Fj^O*NMI=Q>CrH|0 z1!AAKt~NBlh1Jm-NyuUvUUaN=bX$`SGP#>XOC9m{Q$n>^9?B+tN#-ro#v%LZq}flA z-z^psdbS^THFb5cpNgAcjS1Ztc^J&5RdPGF8=ECQ<Oy&hIt7MQj3s3oDU4Zal8>gJ zsQ1B2-!qQ>$kW1V#;X#z&NG5+{zgRnJaUnFT~Vp4cP*gP(*P<#mTACXRnORnX1JnQ z`mU~WeM6H>g4`IIWUQd7APvuN?CO^9>IHQ*S}9{1CkA!(78Y~!ePEM|n-YgCOyy0o z+DZiJp{u8cx_ZjGn#CG*brV;9b+z`cjK5^i)vRZ1>}nRu0}R9t_uykBAMR?*o}sG) z_hfX)zckp%)ug^1Pf~WZF?`J4PYWw;!=zOJhomebJ}byzoHr7BtkTtp^F>#00#w@! z3qWzx))YYh35d|uDz512>I@#bdhj(3W`1KHVN~-`rK?R+ks(_Q{UrQhl#Z4VgDG2* zMkXUX^TGyGHblpO7dy9XQy`#@{g!RLB*0IC0T=yLF}9#N`kftnX23-Odx=pklVfSX z<vTh*LrrMGW|*JMX6pGm<FM@Anjh@!!73?$*P8~rOp~LYtpT#xc=<$<h@X3De#zbq z_*l?lv6f4PP~cY|HUo|YFaQp0vRHe7YXM-fU?YdxFu*r5A={$mRsaL;-W#)~$YR1c zK(io;D&(RBM%XCjsDDeS*yqLarO0E4hf1tpC3X#_Rv+z%m{%1XT1moBC`mKFVaJz) z8E)@YrlNL*6qZ6{pB)S^VV*fd=v8l^Qgze=YDOXg<8vc0MBWvBi*!*KrBza}HxqW< z?9LFgT{~{luJAFtGK<+&;)2<wM+>|3=jw3_0mG{_=y#@ep(>c_gs-^iG_(kL+v^KV zpeZu9g3f{yg}V@I=r@9rkPg%s(oIQd9McLpPo^YjM&xNwpw|;92OUNmFQvmU>*3z3 z5n&!&AV^k9>BT1e*-iz_6(eAcu9A~b)0~9bmDv?RLxR+(SgvP7lpvOCRvsC9m|d|{ zm>A_}SC*C$I`QE(!Aa~^^FfNeh0%tIV;*sU2KrgzCEk-j!82)A)?~yX7+_kumgdxr z^lIK6YXqT8`+dDW!J0<g?~sujn>y^Z4B6Y}i3?$h!=z<hHI5}wM2&-t4b<Q;aV8)c zVHL<wTAl$|qc>(P4XP3{^k6)rLDm-F$p%q?7o;h636@QlG&LHSt-eMU3&=@@95|fg z#*jll$r`FcV2h(R7V;Iwg3NF3>UmJmyn4RfzHclUJDJ?(9TdA5W6&ctmh94Exuq5; z`f<r9$i+G=kDsuLlH$;9%P76zeMSgrEu&~*28#^qFf>3*D$+fldOfQrSj7u7nM^^D z=V7@(@Lh`#pONY#i*}Q8q47`-MrmFsw6aXm2;x|)p-dVhds<l85UH~^VFoB@OWU8k zC0+9s#%JKhMr1Yew#63eCEAE!D89{GHp-T7JH+m>w?&~+EbXmIp(W;HN6%<zwY&;* zr7^3aCTVH9Xi|`pSR>N+qcDYFvQP8Jp~aRUm!hUKFS)Rq1b`BhMwaMNGZ8mjLs*rO zP+(wCVSpLKgOn&=jV|&s|0%C*;>xQHwTh|(bF{pQsC2e@F?XFsUSWh$AJcD=)oFP1 z$LT@?+XBI{+MuP0vjhoZmN~8Ir-0#)V!5J=x;$(`=@1_1suH%XaHa(uQI6VcvFySU z3ENz?MrVtCXo#W?(Or_$7&?PJ)>%XTE546CeGK?!ayW-BFw*DoYgz7#m&aOZQj2S~ z8nFi%b6`dttbObRe7euJ|HCCA2Huq`V~F_Z9Ds%a1(paJN0*k^2I3}fKl1wZ+t*L6 zKN#JX?a%=<%#%9X*K*PM+ht_+QW>$|O0T4cuwGNCtb5srkuLSK5LP>jdMACoTq5K4 z0*ZBz%|MB@4uBFVn|<p{Ks_BSsycu`h2q|<aTO~)9t3PIGzQddhd8wxRiE6~bQ5DK zrsh<d8d+0E4F8O8ND%xpsIrdYH_(BKMP(N{+mR^r(_Mys@-ac#TO>}sC7OyZOk?`e zn(UG9Ct(2)Rr)|8eNiKQBt^~>f>q08E!h!Hs%q_$m|iV#*mXhYZUs&tBHy^8NQ<h) zKq^2G`v{-{LK$<*L+uGiCSyqs8yjuQ-o>|3+32zcO-INIv=5Ckk8WUyRVW5=u^)kS zx>hm<Gn_!C4Hhll)BcVM?c2C%@<GRUb;ij7I=k8~ilS~bY8TZ*q=Kd!H>L!}I4>;{ zPBoL&y?7{Y3gVC?ZHdH<uVBMxKEgrWXCUai;@H|wzgqi)`;zIC@oh2`o6IEVN0<q_ zs!)iS?aZ^9eV&R@HI;v#J(L^^z(kGJ0Hc+T&3OvRTu}sMN01}{<Z1!vkp}>*8fGR6 zJ<bw}xOt6jr|NBzSmv^%aRQkt0S*RZw*{mI?x3az;Tst{JcF6gPcb>|U`F3T!-7Vm zl`Cz1=Z6VgHDdyv>g6n+b9RsLkHZyxbrd~~Lu5N}v&QuR$URH>^bB?0cLdVE@6EZm zoeCKH=#k{jCr%t`pEz>jjYl3&ev<qRI#9=yqlniK?l?riuU~S=<l_t@B*FY91@LBr zq0pu(YWFdn5-xl$RMEKa%_okuP8`L3;3$;S@ZKDDum;=}J9EZnBRN~fEN$^6+#EjE z-^rpR)?8k#<-OO+25;*Qu5Pw#KxQeP&NpL%*649uSi@xuj~q^KV3Uumf@b7|i{Lmw zV^s@3{`fv71eARfVS2A6Kngn#Cot5xu@}b?Ratq*GDX|VW(S3ey>I$b{Z-U7GhCAj z#jj6=(m?33Tjkd~Yln-f)}BEf8=z4g0^V1nxWl6_j`7`a4b_Uv>v4Xd!aQYl0_yBi zCxj{dOz5avT1CVtn;Ge39euI3^doVEy;nz@W;1R9Zp$}2^AX8%Tu{L&RXsH;JKad$ zqUUP)C6ei8^Y5`?3Q12VkdDgqS+fGDl5#HbmjnK?=r7J+v`k4B+Mo-1qU6a@3S<p< z)_5yxNl_@(m#JkGvcL$6DRAM)>)&wu9jESoa6LZ3RtX87Fa?g97wTJ{6*z^vG(ip7 z*x*(SruwR6GlQAYs%}&&PQKv<CtGUZhIbO?d84vHAZL+HYV-!~$f9#ZvoMzlm)RKD z%ww1$ZRgl~s|Jsjghw4#M=^Y_IIgS|3#mA6@P%h}Fwd*;_7JOs+Q-PlIv}nz*l9F2 zP$j8qgugDO>A*nmgM%iGv_sv9j~WpSt|d_e0}3rOf90*1ef$In-&w;&&=V+?1Bqvs zBMfMN;u&jW()d^v_S42wWHYaPC<(ggTo@;Gd@U>rwh$=Hrx8KYbZ0n_gkSmy+{yWX zNi-<WHJB8t><BOVqh12zUAbCGy6MjZjbeE6WcsuCyEb4{io`O!;)_Cs*5M0Mp*1We zPQyI?iV3zAEj+e?MPrx=-B1ICE)%*+Y#5R5trpwXwoug2p9Prt;xh%A?pzbavs8-3 zPJ^H<TeX#T%kT-Zf@P9;N^@bCZUhzD8d#K379hXX_A2f0oY9&n^LbY1Y|NJGl#)w( zV0p|7{*;0teO_&nPG1%&nWAiy_$JTF<g;yTRrwins5Oy>%Bp3R@#Ua{73zqN-?oGG zy|<32gXIMHL+W6P`u}hTgVGIM97_QUgcpo9n>)EmcwusU#+{5@0!2}h2`>ZVyiq%n zFjNJ@G)qxIP?Enl6F5XA61Syz6QM^i%994o!Nv=tJR^~_<Dlh^CrXi4aX-#VyuA0Y z!$ph+I9Un@fuvvtl9pJ#9lS@C(|g87crRHSM}l%7+c0XGZHbduwM~gVKpWq~72${W z-mG|(U?Z*NMUCo0MF3^nQ5HTa4f-`^0htyID}Dje7s0|~!IgL^Q;--CmL3h#0tYSO z00~+!@?JL<b+^EQb|N8}H3}SY!+Ra=ARHFVEO0w4A22$@f!3Wjy~jG`-;2|r)@T&_ z<&FGPC#?&#M=8UvRx?-8#I~Bi@|v2!nxci!^g=C@(-=Hmk)#ue!m{t>eGKut;2!1j zkC7JL9L(Sab-{Hp7Yi39jls*rMBAQ;nm0vT@)XJKfJ`0lWuCuvxadXzbrLTNa>8zf zf{44ek%Fur#+WHNaMn-&Q5pM9*{!M5x<UbgAZu<H_Eo9TLxjaC?DYI`ytp=js{!Sg zJ4$dThCm&jFN|!8QB=@P8vz5~eyy(J0h*zgAbx<Ztp>34Z3ZyHMRk@s;{e8JjG5PF z?s5QgDiH&CLT27_0E^zk+`vkm-4~Qm9l)ZDEe9~NfY9G7-)jJ)2CRX-&hl|}mo|6# z5v;_X68$J;Y}x9SCdD7hP=%ZPU_%w&Q;dVN9jbyB^{a$d&J%vDC=sTl9xlcsLZ_!l zOmiCtWt46`DCKC(=rrCbF>rWLvcTWnJScG$)@gX%jZ|s_vde%|hHQ911}gOfazLeM zjB>?K3os{;W;Tz)E%^Ae8->s!?H1}92z6&Q^g7RO=;6{?8G1TC_f$<jkS$2oOU^O& zKl6diWzoT|qw_v2Wzk=pzhLuFHf$ccw9LGKK_TL^!jh1|*)d(^ZCT*4^}yV8NNWev zCS8hQSc)`R(Boh0H}tBjWmLFYYK0va#AXWH_mSq#)n3JtjeW+4I9fsX>8tX+w`v6@ z<r4=S@NAV~ix3EbRwXaWDrLN_Y3Iqc%8$y<1xtu;5B3pAjitjj>slTQ&jbVQ--rp@ z9iQ;483|~WrC3$p{^f~YJxhDFJ`L}Ij9f7?609ISgb8{4cL)m*^9KBx_mOo06He`l z$o@N>|FiNwivGE5*|m?r81twt_jEv4sqs}7|KwZ&TvG^dDqn)EsC8NA2yut=CyNed zP-=fM=6D_7+ElIepV0}g6`AN`8poq*lkwlXV#^|B(T<}0HSD@Jbt=kjja)%9^4F{q z^l85!<y#9G!b*!y%Loe`0BC{6X`Vt<r{rYAis+7Z5#=hf<9KNfE!U)MF832m*sRu^ zAE8Rhx+VK~@451%GSe6lk$V3$YQIo^yc8$s69dB@^r;F55MB$ANcQu(i`o-W)c(YH zY;iBv5fp0RL7&?`AM@J<ewhZXV}P8OJsJNk4U`MO6RY@-;dYF(BCi+pT8Fb!sfVA} z3!20*w#yd71u>G&B@31<%>-(nh@Y@jl^&FrGC44|Ez!}+qFy8|bfdjvBZf|)=Dt@n z6I!z9WnB$My_w3_?QDZC*Bql>9`%eyaMQFJnCUc9c(snyy3D;%3s2?+4NOJR3o4oz z5m;$a)$IU8qZAW8vEEQbQk1^XXG<)#&!G*V)&l`vhL|LM;f@VJl*X<mbu_<r&{b|^ z%)vX9WQ;`XV`3w=DG{TevNK-AN?NW3a>CFR_Fx?i&pH;9PsWfi0oOhjOCVTG?w5}j z*N?{7?z!HpD6?EYECU|byXCCO^#hpNbiFH<x1qx3%ZjLY`iN;<-=g5`T<?hSHQ;)C ztgTrL*OcKQ2EyqiB6mDXErN(W$}G?BUd##hC~HxQn_763k9&$(5FTYxV)ttCD1Uf1 zVi%9FK_1)1<9>S_Egl!`QAP%<=zM!rtQC7aV2?WP&mIrjW2<<SnM-?G!rRMu1ilC2 zY?|fjkO<dN;)5|3wleVwpZHmJvkelj@re(`gq|;R-ry5|FV5J+R+RZtpZIW`$tgHg zbkrw45}T87NW9r6el5mnxXk$qpZI8;?H(k)(kDI^XGGN~%KT}c_;{QVYPv{#wNLz3 zoVh{bickD@ob?BZukneeV?u6}pRf7EzlpPbgT&YQ#P7w~{z2jic$INOSOB!0y8Sq$ zX0GoXM~&lL%r1<1!tU?HMO9mgrx`5LAW<KXLRce2faiQ@Z4|+6>rDS~0<dvYm=HC= zlr&A8v;l=jT%twLwhbv+CTS@vE9GD+muzuj^y}VDK9H%>wrp_sBv$S;mC`R`D)CkG zq_`4P+xQ5FHyvZ=3Flfc)Q|!ZX@Fg`wYH<m;|X_-s15HQHS?lo7-JDWf2{nYvW|`- z24IKDM{S2B+z5>m1~GyilvH+gv<c}-TXb+V1qcky3m(5R;V=Vf{TVf$g&4kP(wDgt zkisWVHO+vUiIHS=m|R0Tqqm*0>ro%0AE8r7Pddr!xOz@H2nYEofc!|_CNZ^S$^2Sx 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ⅅ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%0A|_Zcaav1H>G(>H(G9d3Np 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%0Dn%99V!O$F<Zp5@}68;qG|0yo@O|_FS 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 literal 0 HcmV?d00001 diff --git a/public/static/Cesium/ThirdParty/draco_decoder.wasm b/public/static/Cesium/ThirdParty/draco_decoder.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e5a5e06eb51fb061a94a9682cc7e338038fae25c GIT binary patch literal 285747 zcmeFa3!q+CS?9gh+VAze=Ok}2(=YTyy5HA`skB2rh@oGHp=XEECbXp;DNtt0n1l*= zP76694aF}_4$zhY6;WYE9LA|Pia-?wl^GeWBMLe?c1DYJ1|?olRFtZysMvnL|MRT< zUQSMKO}Kn&FK6#}?R9z9b6?N8g*~slIffA8TjROA<B@n|cRHfK@krQR9I;mt!tMs| zN>^Ig9e8Ug#nS8>iD7rsl0yBhPOx%^kHo`P`EC3?T<77XZG}`Vl^@P+#6yDSw)CWS z+!ObN8UF4KE&jeZH2HgDnB(s^0{5Qy68rno&?@d|ysnW#QOv|x%%n!E6=wLALW(5M zv|5cuH?*1!CB;NiNJY_Wq;`yrMk~ZtOfj{nr&WZa+fZU`h0ty^LTYqdR2SOq)U<zM z|D4!Lt!_6`dngir8X**|MrgE(M!Qi^c~r|OG^iE;8j*jR0mx#}04%R3G`p=>JT6jz zw&o&m02B>VX`_g--EPtZ6pGYbd_~V{fnE)Oihvr()9n`gr4dp9M;PFze((>!BER`5 zGKbmOUXT1UMO?S82msegp-n6GKe0{ovC%Q;g8mjwRnQc`e2c{fS_5M-t~Ug>!Abj{ zt#7Mx{sBSlR-3l@hu(r``lG+JC9H=)gNc6xsX*kfvZ{kgU81d`(@7wzlL9ZK@gfkE z?5R}K(f>-&f9j<r@Rxoz+Hqg}*5X@>CUCB#m6g=$z)aOWZ*2D3?`gd)#+OmiH-#UJ zagqE>;oD-oDZHtOH-|SC@#XsYitvUa?hC&i<8rvGi2K9qi}*@?I1uhE;w|AVF&+$e z6!BHz_9EUIo*G{rURT6#4zDd@6<$-s9bu)2&kT>Icv*OSd{%fQ#mmDdV!R?eCGHG= zpW?3Y`4pcWUK+0qf0yD_`gS$no<qtt;crvCHvCqM|4QwAJxR|Ef0N>M;d3cIPwCHB z`U^<EKKylxFART~;=dNG-w-~V;^y!dDec)4{ye3<d%`8@#e2e^rF7$-@U1a@<DT&U zq?ai5rF+7|DZOk@_|2HUNvVrUUD^{qlhRF=db3hruGClT34fZ>zCGdp#I&r`{Yri1 zp719r9kA3}lzLF9ui6v-cTBfhYp+)7H!HQW)E$=kOr>77Cww}kXYC1poYLic!XKq{ z#h&noDec@7K9$n0J>d^hdiI|1`zc+yCwwxctM-K7OX=!8;dfJd&Yti)DP6NC{B}y$ z?g>Xz`d53xCsO+QJ>j=fdM?1Hblslt@syqia49{X##4I1p70wfUB4$hl+p|LgkMkT zU+)PYOX(Z-ga=dFyeIq`Slb&OifQlO@V`=e@!s%1LEGN&KuX`ZH~dOUFR`yL-5dS~ zh}#=}Ii+vf8-6LJ#l7Lbr?j*;{358^8-5|BoA-u~ru6c?;U(!6d&3LUzP;fa)AHVM zcTD@0_(~-nP~t6?cyMp{^_X6@H+&4#DZ{Ik;hUAA(%TNbJ=3yYW?7$QSufukJ_6$Q zhMxm*d&7r8+}`lBAZ~B?Zy;`O_!$tlH{1{6_J*GZajNSY)qm~Y@Kc~|Z}_jEZEyGx zXxkh93uxOLUKi8z_J($P{@(Bdsr&k73{~vCx%lz;#3$VFhQ`kp-%<Qz{GN2^yNWy0 z-xW{%vEoOIbAP}1_2PdNe;@BJ{xaT~-dFr;+V)rJ<MHRyPo^JBPu+B1`nh=Seet`~ z52t(5e@fq({(X8+{Ez7!=|Aw{yVBd!Thh0tf0y2t-kjc=z9W5m`nL4O^ak>LOS(I~ zE50eczHwLM_Qs3OeaiJ0-5WPubncyvI~v=zz37JPU)OkT<28-fr|VZ5j~0&<e_y;a z{=esL`sU9Ue_Q-b@wwuTq+hqEzb^i&_{-u2uS@4{dTn}5`fTyUCp_<|&)@c<bFcr4 zLe>0v@n^-u1=W0}_|xJ~icjZi{<!#~;tz{YjjH*B;*-VijjQ=xtLD0GFS_X5-zfy} zZx^2^juyXJ-0)k)$BX|{yx=Lfp1bK)=icyW{NLW-L&e967bxw~_@I}4;u9`9S6%vz z;@65_E&f+s<el-6_&>eOuN1%RWgdyY<YjV^2a5k*e7N{;#V-~gEq<Z+Nb&Q<&lNva zY&-YdpDx~l<~#SIO`HC6@xkIl#eXgSOYsxMj~5>(ezN$J_(R3_$M1{Z8^0&Mzc}|P z-x)t0?;EB3h^72-eD5gbhb`qV;(LnE#&;J#SiH0Nf#Um%?<?*tzPET+@jb;o#djC~ zv3N)EABz7}yuJ9&;@=nlu6SGVw)h9}tpNM&#kUpPE;{#Z@mq>FTjJfte@-7vKaqYs zz4!y^m*X$R_op9CKawtbUwYybej)xsd~bSZdRKZ+dcwWw2h+RL6TUA!;d|2)zCRs) z%HhK^fAM4e*EQZS8{0?HLK&Vl7s^m|mWGK(V`)nY!&u$AJPeD2Cf{Qfm&p;UV)<Ef zu}o#M9AvLPcxU8&7pZ(-9E9pamQbcE8Y=f_yqYK3JHv*`AEe&mK=r_#aq;r=%7(to z4vWhh3)Q>sjQXF-s>5Y`)$;ZfW{VzKitTB(EXv0A)R|2^mDo6F0hB>8JB(_`8Ys%B ztWhO8v$3Z<)rQ4kL%<fmpQ`@&R}}`4OvOUk7_`d*xF)kkvJQZFOX{m=uWVNVh<arU z1gPRIY16P#r32MNcg4kFK@(-78vqIrpkgjo@1;ll?>%aadeo}=)rPV~&6Jp5%=w=+ zN8e)E+MYJ5a#|Js)Rn&1xzW15VOWR)_F+T*KrhPXmedexm#gB6xlq0D&R7cGvI)`; zgG(?CW#fLm0qLTBT~C!|^BORdi$};C=v}PR^0T1H{Z7lK=)-%NsIvM1-Qs`sI4lmW zm2urE)BlROLO>YOlw>dKdo_1hjU;=G%E<p~*Ek8Sc#=j34x{rHpdW{~_;Lc?0^QTR z<ydsyY6>Hnx2%DpX7uwM>C<f1oZ_A4*<mwvlD3awGvV%JY)0oM*sM9pW^^;N8I`Ze zW~3XN!Nuagn$5&4$FLAG<pO^N3}15{e04&;>rsyrFF;UJ27{Q6Wbq#sRU|`k@W3z_ z7orv5*#h1LA~8Fh(&-HZ9t_zLKTGbDi$6e;2&<is{L;>&kG7?PLiI%c?;L#TFfJWL zox$Vrz*6-Lq+A_CyKE}cj_@?ZZ6wx%c3RNCS&9v?#(^PHf;=GE0N_xyjgP6Ojra<} zP(7Y%;=!dV@I3#D`2zschQS9Bg%hPO8pg|)&(U`El?Mk=`IQR=QZ<$rhi$ls0>fz9 zM-8AaL=P!~y2t9j+M~YCFyo=n#}0%659ksV5psl;UiDE#jsK~*ic7;#9Vx>+c<uGJ z#mKubKQHkD%FusZr1e;R=NpxO7^RTTnF+Ml>jzX}?5#9nafFsu8rKNL;3M^0Wq|&` zvN$M`CB9N-qp_eL{#J%T64Z&*`kf@&goYP|a7m!53Tr}rJg_pg-6?i~4Jr1bI<$=b zy&ua%Q{Zl4aoD_aE_fY)D`ufK@a)P@JY#54+HB?*1i;Zs+6HmDmDuQbBW;s$g-Vp$ zQ|VtfZ%>>3ZOitw#osR6o-Xvat=rR9f7`Y_ZS%K_x2KE!?djXo)9Km5lJ#ss=C*mY zdc^0(HFI$adf31*&;SEvLp?WASB+g0Xaf_CrD5aBiKJDSG@Qmu0>~70(<K4+(OYpz zFlL)<rG}=UjpNg!l#v1I&|_4T2t+`UWIjYmL!kuq*hDzYe?mWz38JcPdmuSgkv|tz z8f9#cG8Wdex`M8yS5&eDGYmnAKz}qYSFd^P?VX#3W_02Fvaw{GA*N|itJt7XS!oK0 z0qlV}#M|-DshS;Se7u^m92@<Sm0z~O$WhfF727a++c<jLR97YFm#dBYhfpU~rRt6M z?Rd?~%1Zz6ph@K-E*Oqw^J&FKfAsy)@dpK}(rHtwj`Lw}!+AGUcX#_MNbTE;)IL%i z{;B{}!^Y;2sPBTJKkVw!d7<MRVJN%zE}C4)Y<Z3y@z8MQX+>W}o*bW8y`~{8sba%k z+1=4RH0(YX-3050a^~K}Edc?gaF-%*VI_4ni|^9^d^CTARtMhd0K1BW4KP9JzTr$s zZMQuSNKzH9ngVFpgg9vd075!~!AR0bEfgP+4m;JQrnTh|p*cyaE?uT!a(Aj03VdlD zg{8Wyv}>*?RexF<qU)qVo3O`4Ay%CO)ygAbx#UOK->X*2ML57Tk2o?~sRG<)uSn&B zmn(TfYs#;DJ}&Rq&#)hT=~bY}9{t3nSI(isKuI}s2&`0bAa@n5y%`qjeIz0n#bI)y ziu$w^q(keL&_DFVu-($5KWy%392z#BD>f0zn`4wWsNAJXdQh0WZ`dqbWh0|C>t6bQ zuz!x#Iq*7V*~nHl52;$U?{zosT|`fJ&jWTf&3Cmh1t{=&e~R9x5~dkoDSWx0;|1YH z%!G1GsFMlh((jtyk5czi{a!}8O0H}e6msXs7NC$bPbxBi>M*+pj;B@s5<G_*kuFis zrT?f^u6%<8*HF)zYYHSWkCYAoCg*ji;HAVQ1&WQ9lu-f+=aLPKn3<>w7cJmOIg`~k zSyxi?;_137TFT|KqDJ5`dAWg!D%CETbLZ3@a*fR!&}6xOGA6ic^j9K$_Kv?c&_eau zzsfIn)hVC*>rk!h$I!cDeVjdl?4uo8lKn*g<kH3J!IbSWZ%f90Haq~{f!rklY^>-d zI>V@fvo>ObOmMX^D<Wx@2Ca&nTB_15z+N4`nNbf4m^5&>G>rXq4E!W{s+xigR2u?C zHB}@F1>-GxUOtb(M*ra~Ah2?>hDE<KWbCzw>S&X42)CzUUIR5dv#9~n2Qz>Q*h|A6 zY%Va`%fnf@4-Ff|RWOoXK{Z83bcG;5>2}olsGN1n)hK5~hF-M^%{*1g%A3<*Z{{@E zn>h{kW=?~>nbTlz<}}!wI}K9ZYP(znyS2G2yK+2WOh=Zr667=@@G_sxep?vqNRt#L zO@mNNpbJ@Z>9a=ZM$jenWV&UDpR3UdT9BR(n@jkP=@yX==@C&|)#uOet0QSa|CWq~ zRZFyDPIZw>USxy1c~FZy3K`U6NFP>{o^Hsjsx*VM<B%TJ>7=JsV<00v1nNNgV5AR& z2Ec*CY0`I<DALc2N#AqNQKJD!PqQZ^J)Sj;Rra#eQg$`8pZVgDzTu4;HD|$6MixRX zl{Za#QAJ9-q3D27->}*lQNO?5mC%Twut%%vEcV}Pv?K!XPa<CY|6aryLE&352tj|g zr95$HP@dhf1hvX;tv+$0I#_x0dEh1jOSn=}uBMV_P4Z29Hp(uni1!qpEtMcv9I129 z>l(Y`>YC6Lnm5aAB0n)9SJ=kERvur?TU2OI%G-vTS&5;IrC&N|!N#B|eKsR~MnPF0 zxEpU5F+|+aKxkm`aW<Y}XIF6&9tpz+LUf9lp)GjKqPZm@_|Zwiuh(p}Xbm;$4cRc* zlq~`!!ISEh8dPtxRa8}`foBDodV^<cI#VxYWVErUu8|$vFCCrwZ3S0K+`RQY3FIf4 zRXjp&fq|CcffALq%$`w0Bjn)t3;h{XBw+WD|MhZate-fB*l?-xw%Jn0I~rW!i$|f9 z46Wh`LsPV6XV*N``@CWs*UVd_uo#ny;naaXxKYe99l)op8;|`NVN0%d+3K&uiBwj) zW<G&iZG9H@lB@?krHj2_-Fz_O2TqJM1bfvp2SJwSqJV!*SS9Vh1d?I3l<;U+=9f%M zsy-uVahU-eLeoOkyT(w{U##{mQw0VZ2cAdo^7&>pgZHr5-)m!u^T^Jaq9gvIX2Z1g zmuR5I8iu9zG6ACOf^__APLR_r{)4Gh=M_L8C!MY_fc>cyTM!6J51S$Y!e=e%5#;7N z9gVzrHspfMg}~CXcdncVk8uh9#KjTgh^5>8b?3?V?%1##hCmjuqt58K15~Y^j64$? z&ZgQt!JF`g`dqf5j@}zo%x`{_4fzNfRM1z&t9Zv<NDIIdb`tt^jsckmVMe+Ctt;n2 z>WEotMiC-K|6v15oDmDBjo1OPJYq;|VtWw*Np0wNjeQGeU$Mrk6#;_S2of+D?iiPA ztg0VKLOtvQ_w`7N?z@u?2091!o9x1*#gYc}L*b=!@FuWq1AKSZ`MS6S#OcbR0#@|B z=fmK;7zQ_pTlH>Eg$E)+r9e=bG^%RpVFO_~g=Ncz!3Y8LV*spS5BzvPln*=UE!Eh- zp#OhqOxqOunv-9(59~*&(rI#-Z`ON_q#-TPWd;=4+1{_=Ml1{qbb<!2&<GmD4I*{( z04g~$j3Gt?4x53{=u-XFqoMF_9v%oFD<ss-MaCcE<Hi!v&CvU1ASi<vV@tZ;T7W68 zFD*<b7M2LZc2aw$v!WCic`vg_9sq7nI~l-x;zC^kWmFE}#}$AtW%Ine^}a3`?-h_i zoS1**F=Xj{xl!N#MSP+jmxRp_>^mYEt0Q%Oc-a`3{1t(rP5x_xKW6>0#UES!aj`!Z z{Be~(uJgwYFo$rgPFb}t^J;JOU;F%Vt3Otthh*ojDBcOZ&qOH!=T|*C5@bjR77SXE z%_UI;R}OQt5g#-*G^z(SV~uU{C+S1}P}XDlYrtotVGyR#lr{X<gIA@mrCsWFZA3Yt zIruFN={%HSlUnidqlA4zpG#Mm@k6828?5q#GH-z_621xHrAM0V%fo50AfsSoKucBK zuyllJjgKWq!=gI!O8TVG+tPBi!t++m94TX>6iiDE)MS8x>m>>610J*blSHE<I|7kF zF@8T_5J?Jp7zJpfd0^PgHk2%~A`RDj4QN*cU_{}8LL~JOnaQiAu&Neb3ZKqjtadNU z#Ffn}F(=ZB?Oy*GMmw|lniUjral?(q($b0~Nc*Zz!yl|*iLyS@I+l(NmLpJ@OjON- zs*cJANH={3*Rd*1C7{j#2x~lpHHg5Y5DMM1M6{_DtBzEq;9Xuis2L7*b5!1QP8Fxn z@rpwf&6?IhC^y~T)rg&ucVd7xMpi8Ws(Qkhn>HCyx6BiR!!mA+0U5f8#qpY)(c}m! zdWoS!rMtaZt`xY1{1at!EgI%{eezxWO#>l+Q()EK6lwK0g<kz_6J2EhjmoQeTqe-` zCYT!_hiw}c%4`E-({0;?6qbC?rVs@#R-ne(6q;Dn<`6j&r8<Ky0ZaTlNn)$U3+8va zZ<2)(UNUg*A|HbnIAOYM?%UbKi^3-}{dEKJmN^N=#$pwjvFziu;mr1w7PyS>B=Q$j z_P@$s8ocm()6h6s(?+G~iZWgp=4B@r^to@$&!67EnW|)SUCCyv1erieHH%_~N+Dy& z*6%ADFKSDA=y-L%X?>%4B;A${*$jiE&W*0r#q__bZ4>Oct`}k|8qHR_)18^c-dz+n z;s+)3EQ|$q&8y4e9ch3vTu@+LE-1DTo<Dr(UYTmrSrP!zaOAF;n}Zu$tXaS_*c!6l zLBTPHDyhI-^cHg6NC7q)PP=B#OtlKaDb_xQdv@k*fF$wBApPH`1=0)!iJVS@1jC;> zmekn{(o<r_5;K4&$5MAKkUD1rBy~1}^wiS=NqXuSEXhqeV_s5cGf3M~#*$gplkrk} zEs$Dg10;1egY<Q$1(HV)R`C*p&NIi7I-5bdpvYM2oC+`5wAyO+X6Se3Afej<WjMDZ zJa<kVckt%i3ppj&r0$PlDjT=01)Z!i=_T_bs}$5Qj+9pen=BoMJ%0`vQCy46{Ftg4 zuw2PPqOGsxd-qL)nX>!L5W+X?X12uMKJg;GmE9Y7%<yUD$iLxDegGs*hb=99!;8?B z-5<gy*`Y{~{d1(}y+-)~ii-rn`?9@jo*8T~!#I(VuN2{|#WGQajOvf=eA1xxgq<%= zwex_zX6K&-&3bPi%$B{&=sf=%edbHR)acjGzF5D?-d-NFIm^RG_V8<rh&uh~GhYlc zdha_uWOT;Ju*Ga3g8=)n$WZv|jMa<KoCW9f>;i7;F(7GyO;N#yFoZl%MoNs~e%Rbe z%x7my+6}K2FUP-{y-8C7MOEBHxa5GQ)doy8h)-t~0$@E+10RlujjJpa&Y*+>HmCxj zWVY|-&oPL(g<z+Q>uP__LSQotbXw)iR0ynv>z{KA!E)dF9UE1__~y$sd^)8e&rLe7 z?ZFs+6Il}|IEnzSp@2S`8Amd#DvOCURRM-w4i*tZctOq-L-IO6<_?K^y+)TAhEI2S zb%)Kz9(94phek9Ig)k28DF1ek-(gXG)Zs4fx|~;>9<^y57R#MlhqLReu?}Iv$qq{; zsmI<y(H31nL;B6+7tCRA(2dCTIBfX&b*ZI|Cs6o{>An$}Kz$Cng}k^<?ZpXP+}QA= zL#ez+cDxM&cjqq#_#ALKz8$V2A-)N}j;hX<U$+`ockc{V#*^<iSdTpOF~RB%-zr$o z#Nk^FtNVQh>pzc<*GC?`d=l1^c!6WQx+k~_)-&-0SHtQKp~3p(=y-kf$Q6$XR(BCs z!Fnbx;%ZpkQ#4r7O3trg>su%I^(21d7_aU-u7dSUe8<(Wx(ivu>ioL$<i`Z7JC&<o zJrk#LHLUJi8mu^UA28Vp<s_^p@#e;Ob#HSOtY_kFu7=ee%^KDpGgw#7e@w8t_qhsI zEysDRK1ZiktipmtOUj6=>8kXUS=0T(RbXjZ&>4fJ4rj1%0)O1$I%U$ji?#}`GjY*I z=yDg0n&om|DwjN1r1W%+kb7*?5RN^z9CB>;zPmwS+k>se<{%HHjM+nBYRZ0NzB_nY z1Y3#OvRY@Tm8LTOgez<o$0MRmB9xk3MH>-PDh^r{EiN-GQ^d0Hz-%!Qm{m{HI568% zU{-Nu56ni|O1mZlvpD<moM={&c56uMB;`y-z)s8~F&`T8%3+0FHP*2}D`2|^q**r& zL73HQX~4*$$>ltap%9maTGP@&V)leeRY<;SX)}kKv{YMCHlqnToKo{_0F2fw-NI|| zR)(=tr(1Z~((#<+D=FY!HZ+ms6EO}z$&L{Pe3{Rc$3#C_**iZBO9z*8_*Q947F?AW zDVR%F<;QtfD~ie4Q%IROH9=*Cl%pk1g_K!#PDnXdDjLCP04-YO*-vKg&gP`q*Pe9J z?10vo`=W0!ssLf*a$hs34JMISB@GotH<}wm6#N?c2Bk9Mm!o*d5TPz#qP~dEHsw(0 z0Uy~)MJ<)(rS~<yupQ67Pl9Ny#lk{74}4f0c};BjM9}YaVq<c0!t(^@?f`egE-bbs zB<=5d1dU`!N}i;LB@wt@owW7XBrO78Rq%muY__9oq&>Vw+6u#_)%Cq)jkJ5#NPFKJ zY4@*@_P`oxN7qPuc#X6b)@U9B-x_K6tdaJ<HPY^1Bkh4T(vGf?_V5~ME5#b{t&w)m z8fouaBkle*(jHhN?dTe550f^{XU2hVfp^7YZ}Vrmho>0yefjsh^78{Z{loe9hw}5I zIsKvh`+@xX_ww(L>-T3Hi?-_5#3K*G=c0zXK6Co1T<BrxAQ~qU1x!V#%p4$F(!pBZ z$rw@<Dn7sj&Gtkq2_06Tz#MF9ux_bFsoSG^=8~3Hmn7r3q;h^*^K?0<RB4^j_P%%v z4A>;=5%b38x1Ov^e}@Onv?!V4`fM|KQ{6DNpmOvg*6Sk_V)IVm@zMv@(`XB$S^z86 zN>fpgQT@UkC9HWf1*Uchp*#}NF;YY;O<%f$SvBK#d($>EqTnK15{8-r8*1SP%ORFL z>cH9$meLFXLjek}V<3M?{kR>Qt?$(QS>i1eEb5v+$I3vDcbt07pKXk4{v5c?HGhhl zsF}_i{_EufAD>7*O0O+<_0h&+|3WbHf&9Ej&)#p;lkH(>3f`OwR!(Ut5e@>q_Gp48 zoWb5&tE8HW4i(2lheoTU<mD6bn2MMbHan~kChL#ExQwWWh#(<9;LeH0#Z6ix1*-MU zR-BM6`zGo=EG>ZP={VT&=4i%72-=da8e{6(8Y2t7wYJ9KWjTFI+B(j>ZIrlioVaO} zI6F>c^-3m-@6Ix+)Y#`suWbgek)NA-MF_oDB_`8s*1wt=t&=IH*U1$3E)pft^18Cf z>tveu4Ty;n7$&NwIY1=c*UEgImJ1X+9u2Rv82OI&owu7uxZ~0II)#d>XiHkps;ja6 zq^`y*AOwEz3Vv2oj<0&6?I$d~xWA!I6xyK3Y9pm<ig<-5e|8Pyyrep^z8E=_tGkl= zyX>2?JsN%Cj>;GPUF>t@`{L%%yFb}9yLlHl)SynT%z#y4Bx%vTzTnIvC-N@Qi(+>i zS8*2ejHV_$M5)lTmVY|uTXu!`tJ#}9DjKSfz5Bs;N6m6Ss2956UlZFgG$F~qT62;r zzCIXOAednN<fX*=Y<RjUv%VIR61^Ro<^@Uz#8ydC4PdAvwjfg2kXC}n^cah&`YGu7 zK)<{@qeahh(Wzgl=1Xf>X5uZqCT%vBo#BM&9EY7ZlBJqO9gjRQvpk{qtJ-Xn4kuvT zk``D5SIY9pAhC1C&6E8?W|hd&B(lNJ{N7F>U(O*4Nu-el^~W@xSq5cB-Sf~4^DtF2 zT4|Ed3)NfxC};@Ltd5{}8MNN?-XZdL-{Jo6vBy(VVlBxC@@7lYp2ngn)}(C&vFe2; zpG$W5Y~jI1FuADcmTU3Sdv8iwR~i(sZl#4pWnv%mgoS<R!V;U_u(%(A9H#lqasq#z zuC+A%Lm@iJ@>u}~AC$>5H|(`6t{k@KhaG{*oIEY{7t6*xoZaa&XU^s(c89XFwJdhc zON1k^HF8_L0~ZNtUTD)oAHKI(xKEQn$1++qNT)M&yb9e^WhTwU1NEgQ6Kh#%u&Lct z<Y0-Y_Sv9jo}(1{LDk1wWLq4w$hKhDaDV0mi)@RjMYa+{i?ze$r7f~e(~E3Br-egP zi)@pd4`xO3BHLoL$d<;}T4c+Nni~+!Qn{=k_aG0{PaBYrbYoX~i!D8EsV%SxZ92Fw zWz;@>Tk-_q;X{UnvVw9^0EDf_Vw{bvAwwoMh;Dg>Geap)ob@cW-$I<E!LfkR%2g(E zMk9J4a|jX}+1lE*tcgY*vurJ~P0Y+l@RL=etd7QRQa=>e);$yf3(%1j<}H?ZiA%3! z>*GAiR9UpM+Tm7)!8P-;tO6J2vCqt1ji9i-AT5pGS!wG_BH2HP!lW+zKDZ9<#H-U_ znxF*}w9Jw4|IYbgi@`J-V>HB9_@L})WiXs2Nn%O`25&7+wWM-v$%W6V@@C1Af)tl( z377PhtqbzVLK8x0Ly|$_ZiChX*YE%eo6GrbO|$aa#MD}sNo0wU?<dAt)5dI+rFI;% zCrCTHi73qS0EL=6!};Tzmf?U%p5$PfMP@)4M>q(EC}|ez^61#MEy~Go<#cOOWMY=r z&;@uZ0okA@Q3?Z>9hyvY32Wd_tC>3r8kEHWi$~Omjv!i-VPJNd5}2r^1N_D~EgjU~ zUGs)wbVbRGr$P@JWUD`2NIj;iZxf>-EoZll2smmra19SvP%mI^q9R)m=Qx>Vks2t3 zbW0EjMFuvYr#Nn-^b}j?JJuiKF?8%XU_l&U6F|bx(Az1ywqhK6N{Jd|>Tv@FBuo>M zqim^Z6v9+HRD9``a1iwi2(}>-V^HOmX1iPK-q?&Che(vIXB$6Kt1*T1Er2$SN5??G zfs$qLMvsIyc>$~OrrsO((L2y#Zq^umI@dsq$3ndtaiW3vj;A`Kg^v7WNga}nUXf}* z#NjT<hba)u07yWcSUTI=q#sZvSP*qIr!(ItH9|T&mlf<XKeTNXyG8%NSy*;xUOs*H z$yg~mP4YuIX%U+r{gN#^>}X$r1`Il<!NwG|9nru8?q>e_AUvmmNSj56-O-{$n>h9& zvLjmZi~43+7;-3mIBddAwivT(E-2<4LQUweJVmL^Jg}c(rKxovQ&{<eE;`HvK~#K9 zsSN_)!l%+Ru=;2KvU}V*nJu8lO{ECY%M#KlAMlegvfgjOcuirz>tHSTjxDXmWF+Vb zLUw{A9+w$6u)O>_3ZdGKDxi-H`g0iuOLVf+5n}aWb}m|`yC2uTH1o5|5F<i(7;(*m zy`4yjx2{H@qngyNL;+*XR>)2v`(PmgM*gS;seAQHbIBM*l`$Y?C)tnb=%9k$eFcuJ zx{2J(sz>H}jowQJR(1N;iT8!2aXK-=@ehK7;~zu?$3IpyNUQ65%jA!HCV#wd^2hy? zKOUI;adh&>!;?Q41WmLv`Qx6+A4KrR+3uhGLCkLa<>=%OqIBagE5*c*w@m)HXYvP; zxN({LCw~xo8-F=E`GaWN_{$2;EqEK?h^F2hwnZrTI6_W)3g(%4Y|I8@TKOcx&)!sr zi!6#IZV+P;H5%J>R)>f!!muT`rodbB5tSbM80IZ902N!Bw#S{@$?~Z-8*m1iL?XM{ zDuY7Gg@F#*9q)!_IwoYTK_a8^UuH*5B%t;&mwC5<a!a+dbmy4W)p<xZ-I4--4;G`? zxI9C^mZh3Pi!t)B$iVRkKFZM&VgbI@LwyW(lx3SIUgp1^?vI_Gc)kC+)_>jTzi!~y zXTymDlP~iU`{=J>D$$aH5W=W1ox_rlgWA9YNI@Chi1y;wC@8tl8>BL+s@=*7qA8@5 zy3oFfLdtfNOsr=^NsY1*8m;R#4^TQIha)x0+~Lfi(V|)C9F9zr;9EFSlV_9RNPdg4 zXm}zV=`GOJN}@keznC>U0%ojJ9gh6$C>-fS)&e8XP;E=PJ)VBha3xA)KoQ|cST0AW zhy>I6sN!2szup6*YHuCY`m%8#>?VZOBcC^n6L;st>Z8HKklXxGDhT=Or^3u)QXC>t z0tVJEA_sbG_Cy$1zX);aaj_@D!1}e|kE=WpUQ^<A{tG73FW9R3+)3E^CNFW|<m_xr zn%VhfW0o`M4|s!ACO$=)YCcs;&CYmNHJ@5GM5xa8Wx&q2pCUW|UCqw0?-bYF6;Ge- zZXdJrU1N5>b-Ln1r(f@_BX&MCVrMJ|LSkBV--w-ej}vdK+4+|;J74VVyxAXparG?4 zp<3wwP&%*o_3RI<9{M{ZnQ$6x)Lztyjx5It2~_~8$$a&^ypK!qKMvSd)xIXIdn)B& zI_6}nqn{5I$67Jo?rkLbq7bT5=XvF(ZjY=DJ)85$&pv5z_vcS_&o13o^g>SGu#Kt& zH@3^}mZ3(v^@>Qjie@Qot)$d5MuDJ)JFs~dFRr?KyEu9|dk!dQRzOwP{w}&tTXutn z@_PC5-Mh=l&3P`s{Od3}2TIJrzFGa@guopg4iHM`iLvN;$>hKVzU#zt_4!QT68l<V zW{vxPm+IgOc#eIYSyz@I#EN^J_u`9a^eD|@O%=D@i}yl+wbxr9C;D;K?$Rw(N2p|z z*D6J<A>jI_73f{%Mp5grl^M3P$&JrBDL3BT;}EWNo0)M%`hDJ1e5Z9FX`yU>llJy2 zoTT#sn)XsQ_gPF;2(?|CybN{zkfLT++b&}B5lLb^sk$4(77Qq_P|;_i9Q$~MyRMic zHp_QHI^w{}PE8d@GoB=N)X_0{j4N~f@+(QU?M-z9IF5A#5)a}ZSFn$Hx=yIuw=kok zHT<XXm+Yd2D&&D!I17J6iF6tcvKTMNNG-m9$TEwsWfVu-?|<vRMdeh<!g~ZrfMvM~ zSMXBo+OMAn_77X^Yo0B8Z~K;E@0lU2T=Sw*&k%NV;#1lCLE|*y-WV>XIfg}L=Th-g zbxAK313%5Ce?L=C5^kM80Uf}-wv&nkbWbg^XPwXyF|qd>fG2K|F?PdfOW+5ZR+<VD zwW`u0oi8OK2AOxw%hPPpwu7kEJ>DXu84$ShV18N<K*OnMfa0_k4X_bx5bPGRF%4o< zzvMutP=`hYw(Z;o291JF%Qxf%HfZB9ReL4y(AYoyyR+)|Z2dc{v%G;LPvNxL7_5jr zEf`PP0NH3Pd@G&`&7}Tvelo%2I?sz)YYVp;`pdS-z%KZ^$)-A}z+;~lTUo6Z`N(}0 zqcR~w3{HYj&@e$1V}B73{@gcciJEY~jh~#@w&rWbyFXO8Q;g7+3Pxdp$=0ALy5L;% zEsvLY;}j_V<|G5f5^|)>HrGIH+sLA?beG_-6{q^V0hr$njyBU#Ah|aX2Ua9Xi`-53 z3J~;dz`Atnf<+v=#JG>w6@qhtrcMWL^^>LQ6FsNjRAc8DD`X^Oy66q<U`_<7v+QVO z?nizArx2+YV#Lx?#;b-L(<J#kWeYSLl}8&V&>2z%0ISALy+BF4Nbx{n9hSfk8!o10 zgLC544osvqhdlP_bOme57|lOh1;V;=(t_};OwuiAAWX(3p;6MHK5<M*L$Q@8YlBVj zfVZMR$vhlJynIVb{d3eZZwmdWZ4IuduJ7HY9I9McOA6l9voCr1fK~3hrt^ple%D+n zU8in43x@zLN>S%;Np=(>Lz*YIndqa(gyfXdnmG(SY&<_YYsTZL?_HN>k2La0kKN57 zE%?8Jv2jt@jI1z`b!31D$Y!t8X@cwZ-gzDbaJ^8jvqJ@SXb%dx#B`d~rcf0%53G=f zoqU1(%nsUyh}=qBQ7X<Ik#x%z8F7UeHUM48zA-`Z<hXg5IL`wc&^frD04;}6zgA{1 zfdOlQb6>25jwU2JgS09UgeV%JZ%mKRY05Y)4Ky1<^;?Kt@VHPmkc`Njo16f`m}7== zTT~LbMOVuUI65zmd2@@IHbyhxdET7V1DGbQBAR8syfvCH_cI!DU<ctD&zEybkj<B~ zG+Pkh8;a9gWv@DLvp&#pkA2u8CKW41C&S82ID`Z}?f6)s(?-WxdusQ*>;vS(iwga# z&eIMfF%Gnq=p;kJnmG28J0)mT&?F<Gp*_z$N(jP{>r5@c-<nM7NcE;Hb$Ifc>;ipg zaQaiipM{py;>>ay0Mm=h($I8sQTzF9T9#&jP{nA(n@}M|meha@YocCi8do5`m!y_> zgj*Op&ln0Z*cXLP^$2S)K*BP|26gxXB*cqdE@(*ZV>Fg7<JYBfNBhu@;x2PHeczQZ zq$5k2N*=NOIohHLFetpt@n%WSk&D<b*Ws=X*ZVHcbNrA^Ex?d4l<Uj>3vGMndOs%y zq>;aC=fu#3<$>&u@nSLJ#iB&}h*cr1q~G+e`oEebt%$MYtXNVg!9rvvD>6%xdSEyQ z0h;9;ELn_LvWd?(%H8F4w1k8G=^3AE0K#EtW6qp~Go>e~f6SRRpr(B`mm{?!^Q*m! z#+e+6AhVZ6(YUaXr1K|BI{ncB9LG~ZPLP@$!fVz(RIwr#R;sI#7OHgwn^UDDFbA-l z;ciXle=Uk4RXA1r-_B~rVz($Vt3qce=^SqnY@6$li(QAH1_RhoT$H1lM_Oa6v<9Y| zF`_UqI;({a@{jpD2k~U3HF}V!Ihxs-I@v`*ztI9SEUApkkU2ANQwpkSCvcfX)%nn9 z1_y*U%)!=UDPh(^js~$<{ZEf)od2iwy%Rx)tx5=LoJ-J!^R+NRd&k8DE-4cz#tZeV zm7k^}7t{_Uvx#Fc(H>!9YBwf++87g#7O<*5s!a_XI4x_)@osK^g$a$rb$T`?XBrb( zKV-W}_xhSS>v|}221|(#Ce++)=h}EzPsNM}v;H~>3vgt0Sh}jUe?BqHS1gmnn>T?y z5)!w~70IYo{(|rRbN!{k3tJ7phWI_-__9e6%Hy1&@kpCZk{wz1qk*=4cDAoMW{se4 z03_PI-XGWT0D0HaI~E$qZ-lcqxO=O}gmuM+d%&x886<*k>BE*Rw)s1V7FMes7z*=z zr#%XAJdEbqs28X4GWfgxh$L!&y%V4omh^^})8k?!0ng{cz_~3IL8-3>0_ipZvPAh} z-#p@Zq*DBvcR5PPqnv`W#V}B7jA(WfCXsb_$CT7Sf?=$RdWN*v15gyksO!-V7Pgr= z@s7g_i&^i%yqUtl!UpTTxdvMQQ0J^WXa!iGmwQja%SL%LR=3V>^~V-}lyC;Md)J98 ze>L5mge#fFW5y7fuHiByZy1i@vRO-;KoV8JWzKn8aDjW#g5z}bkVPB8#qpqDU9x6F z0UiEaJe;|Wfg*2o;(}sf*t=~wd-yiJ_e<XC=mkYtl4<?nLpUUJc#ove@e7Kb!@1jr z{lka!zOm%JTdqHR+hDF-hi&guNw=J(&^j1_3CjMf<@sN)^)NE%WLmf5($^2WcW@&3 zpljh9snkcqphqin`Zjw<ISV)w-|iT!htp?Rcxp@nThiw9=aL;ruulzgQaRn5QSsg# z)`LSk$~*beo2=&f9H6=5HS*v2r_|Br-5vk(F0?+iTa95=U2A~ye7rVmuxB-;>vU&J zZ^u{O)f;x@dV{JXh72C-q~m9v0Yy_e_Y8P2mFu1X9~6i<%P-Iz{|sG~|36n!Yd7Wa zLW~PVQKenIxAju<NVirCjan_>WVl*@#8M0PxQ+)t9BP3Mfp!)Q*Bocob5al3tT+o6 zgi`JEwy_pWT63J6+hH?H0=na}Q65=jTk5|PC~7@m2^XuTvMFI`)Oz5EOsxquDopAC zXAyOPluW4uQ~}E#)=&jgrS#(%RnSr=kT4w;l_fvA<ZIMv!~J35l5gEY21b}!)!!+} zuWK9icdK`Mi$5g!ROFpC$*;jMJ0@*=JTOepJZ3OJt_!+7B<LeBOwfsWNYMFn@vwW_ z(B6Pqf{sY{kWt?I67LzkmB`|79Wo1FOD9Uu`LlDl-UXfajV14$avg#`3yaT~pm)k1 zh2~@<boL;RYi)#&?YKcBKK~a?AF;!n&3|wXV3FTG9W84gppjUAywJ&hYvh5b@o|9> z-H2SSNEqFr{Na0fY_R^ZRof|u(m4qC5!QwQ+;zFZ^AHZ166Z?R{85Qkk5x&luK<a# zHNQ^;)_MN@7|7_S*{{{M3gl=UbAyZN^;+9%___}GCVOI_I$FN?P=Yd$Iiaja8o6^v z*|}}dnNX!Dy4iAeLfuY$yJN6U`gB5D!#HDY4c8okl~|Cd;xl&`8=AIe>^E5r+PX8X ztve%aZ8gesoUAKr{;4`(A<Hx~p{-|3TX&8)zaKG<<`;)`VGvwf&$_loY0H~fLtArX zWUKe2yo864ga-3S|JMB6mY)|B*B-#5`HabLPpoZHzJ`xN>N6%UNK6IeQ_4qV45`q8 z$1|pOzTmpmgT@@k(1J5x|BsW%Nr~_mzQfd@aVn0%($evuQ957i{?Q$|ecp2W8WAGW z%tWBP(aikDClyeveIMo4jDw(6HW_z176$M(o{lwyzpSocpwM?YAc)jWFL!=xL#M|^ z<-2^y#Wb^t9Ja+%z-R^7tlzd~lMxnYwDVEPChe|3Gc-~zipr7$HgL!@OeWiar*M_L ztuR!eR*f-~2FC_Gt$+#+cBLa~(Fn=MD`Xl3JdjyjQS?zRgG=f`eMR>GGYCSyb!dk* zr9dTZEYJq_nDZ+bQDj`{SvOI56N*_XhX)S?)Oz(}vSa3=c*ktuT6YXk*bd+zK9)Yo zB^mX};;yT@V<;9~eZ#EAI9MC&6MdWP6CoP15zjQVIR>2O*jx%o>FK^0u~lwF=(${I zGbHju_R``$+KHQbUv1k#s*gV2(5X<?XnK5eo(X3_^%u5Bf|9~)cHk{wtGNPbXZtjG z0@tzI0@4DQw&6e?8fnaeO!zog@+I#SZ%fN=ak<zx4v`u6B4j5!eH*%Kg*9A6$qWEn z1E|5`#F&456F#(SA|YnPA$-r@K(b~y^c9tk$dQ~m&7?;tZLtFDHw?)yi#}25<u-BR zQD-r$AaJr6UPM$XIEQ$7Np7LN4lHOEgWM2pRJlbh;A4tPe0#sx(8d%SCbK+^h3Lkz zlO$ljV%wHrvrZiE+}|~v9kj#>+8#x5?qTpbO@@IW0KGxvP#3@`C~9LosDTS-Tv0<q zAnMt3EK2~r>cwz|rgTzNP<yeQVQz(hfC#7KdS(>LK|3l`%m1vz&A|(HbXZ8O-U4VR zr_mIZuxE*o1W=PE4}&9u2%It5NcAWHh*Y1n$&ydU6FAKA0mOqzC2E-gQyv}=BLIL- zB4q}Gj?$&vQN>jV$)UiditWraVIL|=QPD4OA&?XgBrp(`NDX$jxY$OBhgCR=m%|R4 z$sk|SF|IcG6>ScOAQ76~@Qb`pH;X9hpx)fN3m^Dt!};rVl<!0V6-C$Ku;|UM5VJSC zLd@P8nuD>o<|RSKh<vR}g3!)e`;q`TG$Y7Q9+*I1Mf_^SoUjMiR}uA~3rU-+B)Y6K zIqre-d<Nqj<X%YguIFcBp6#Nr9_Eo(7%H|9RB(n>!YSV1kvyo45AoH{Kj<BtKF*%c z;$Y_-j-$`RBcYF?uAaTohBpf0SYS8Ns1UhCHH<b`t0eiFYSs^(?=jR%Or%3cuhnEN z^nN?a5_0d)AG??`<Qglyomt^+Nf(b3xkyeCCEB@goVazAxQ4z|FleMi3Et=8?2Qn{ zHBkoe^<t*6I-=LEJIny|A8!_|w)uYXf>acmJXdInNkw2{YL5Ny5KVMYY+&eud<1>; zWg7%KEpdxKN`GwhhcD@nCi0P{imHa4{<sz#Qqj|?8<Syf){))@(wu?DI<EIC=Wvc} zJQQ!!IkIWNk0Rsc*nfqGW6qIf(iBd5Z0E>o(Jp%9nmIWLHa66#(TJ>}%Ycm^l75D< z-hxC2FV0qrS8*UE#&QLYvOOCx!2C4~r~-2xP928s8693b!UK`08U{`ba~MwfjIhq^ z8693$(_-RuElvVEO&Hp<XLKl84TB;8nIGU(hrt$Vp9(*;W+nP(%#-qG9y1Kh*)uvs zti}UoRY$9Ou#U*y_|&VOMqsv#<kW<uF?&WQh1CGz1Wo}YU&WDhx&Rd%fNJ_?ic$<o z%Ep!R8oHot*ovk<#K5Nyq8_3fFrKm^ES1rLKvYr^mdB!N$7bU>bExG(1nL$CZ~5V1 z*X(AhOh+4r@FKmHGdJk*CQ@|1tDIN4!mOb8GhbO+<+*KX)l6PmRqF+L<e9}BWNlc= z%Y(FFLx*3Eq0zMPG0+eK&Cu{BXn54n__viy|1F6VaQ)<EAsoeh`%Lw{yy>5#m)`S^ zVK@JHxO#C}zlZP=EeY$sM^T)h>pAEi$}}DWw-|_3noMmQ++>$(g$`T`NaHpYP{~D5 zFy0SWYRjv|R@5l46U5Ix?Q}$~`r}=G2{an_?#235cK7P>_PYNZPdiD+I`?D4i|A=b z)SiHzt0Ba1&#;8>V#Uz~A&*H2$9W#U^u{Urj{AC+$ve@FQzY*+X|v&VSIDJuwM@!d zOCoJ2ju~}vZdRbDZ&0T=&km!Q;=W0~ocfBZ^GP{0=}`J7hvp3M|4$B$JD2}(92!|i z#>5uwYiQ@(*unA02u9!(J?^vX-OSl^W#^E^r>C483p0PooSZoWsQr99`rQ@T=>qh{ zbaHxc8qAhGc@*a9*xRqj(_tD`p3dwVj*im8H9E+?_b&Mfn*Y7^M83kQ`ZzTltZP#f zz@Zgxz`^5984&;GK91$WFPrpsdh&Me$J_bDDsQJYrbnw6%fos1DM9{a?&Z9lnIoBh z@9(6mbM$8>T%DQYcsh0ZX`$qF9Gn`ivGXFhPR+rYc8SLB?6|+v?#^ST?>{Ox=g}{H z+@>}u#B3DF-<jh$k?Em^yt020eb8}=X638~as))g?>tQy&W_(xBZeT3BgO+eh8PFv zOB2;Gq!86PO&HFa6O^3~CXTMOCG1*d4zD;kr|f>5wE)i~IPMKS7I4n4H>6lkQAc_N zPVZlu6rJ+<+-E=112`V%c`V?3F<l_yDO_4`Dsdiqa^g5otv1$(mz=5(R6}z*ah?p9 zJRgNUKC>`w8Efl*{5a1E;6AAbMB{awCw@udJl^F==SNYL6UBKPU$ujAf;i6!@NznC zPz~YO4LZFz&m_EG0P>#D0a}y1XD!Y{?T^LYdYmVNR!4Hi+-Gr~wZ0PP`P(m>IFI!m zC#Yt!e{}xN+}OW~r|({zor$Ysd@i5J5^b`Bamqf|+4gr<R?;Gq=U-+{4|}w~T$~<- zfRX}0Q=ZS<m(=r7_$N+!KBo)L7t`~pgFoCaCHKd|DIYm*@CTW|`&m2qQ|quZaC~Up z;K;!r;5eP&j{|4HAB96cvC0KHesJIfkbjxGK6UWN`#b6X9KC<S|EYsKx`olFxg1w@ z`mw>E6QJbuydKfvB?|Xs4^(hH*5Ho=?KPc6`u?NxeSTpb>zBV!i*}fEUt@N!SSX`S z$}`EwPHCS^n2!8lX|+W0EUw)-E+|?Z03apDVA#SPcRo+E^^*mAPNnskQXUUc9vy#g zZqNt|r|fT>%mF$TI5@^&42QWsrw_-;{GL;R!<K>9_^@?6BRI}lfag@;U>ykAGF{Bi zIej=z7TGx!IPwx6c5vWK*!rEta^~qKC1)+9b1HD;l{*fHg>z0H4)<uLhm3jE2NN+a zlE+aU6Y|PhQ!UErG7WU(nY(31G(}{SKP;Ef6j66PMZ^@gpJ}NTKAP>(<Ppna*uU;U zl5q4D(;h-+B1lrdYcY(@s_MK)ORTL9miKtOyZI8zZeHKx8e|Pl&HWs&JsdBPsiP*G zkjd#X%&|@_i<w?KaVn%@hU7`Ce96GmKY0Y>uE--`kFHj}bZT#?b_s+mH7``vCA7+f zvuhkJtFSfDTKwZ6OjYF7LynbG=2trn;|!5tt4AJ_R=1FX(Im$cMs#5@)2ejB2*2s3 z^b50G<W$IQi(em8Pfs>sa@^KWV92vIJzYb7R!!+jwBhpdmyb;iSI&Jo*i=Ide#V!D zT?Hp!db`@&u@VU!jBRW0OJ`e|x(PX8z_iV2!f|$O>zlNk08{zMj*)@=Sq;Opfz`rO zEqZk&>o;B<V_&mX9$VV`zhRZ7t*s9OPqVJ?mUXp7t=GKBjOxUqk}p5QN_Qp=>uwur zKW4*<2lL{wnO%h{GqV%el4+e-w(<|zyzavxv_<1O6UE*xwqr?^w$-nA;%$rH^2A&D zw4(HU8|^YG<?HM44lCOkoqT$|?Q>yJs$DM}yrM_An(Zzh(-nHYI#~<EeFGqu9k78X z-s^jpe0!c8R&MuYS+nn|YB2fL?sLMHwyTMg3oU6#dA}UXqiv(3ZV^-PMYo7C=;NP) z{c@a+Lpo7jtAg7bOFJoygK}^a^F}y?EpLRgjjbGj%0Zj`d?Z_;#n$p%v~5mTCTaw} z(e9Vq=v(EUN|N>lDH~f5eTxt$60i-<k%!4HRfU}cTe1&rWAC-Lb1L@FAExSIK-Km& zLrtoBcG_9Be!mulb27UY(bHpF0ml6<>?^8|>#_}A>V_YU#!B!@Y#$`U+oIG-oE-VX zCMNC5WA`5}FnAM3v)T}<^?syh_m8oWZL1&OQ&jK#RJb69r^P3d^&Z{}C|L6To%vmd z<-8@ob0||<5EC%4)G=nw9nC|}MSiqXjea$}U#z~jd=2kcBlnBzDYc1@h{U*G5MM~d z7t|&!>sP)l1_a9cG3URaoSpYf4mHI!TwS`xLVoL7b=U}@C6iQjA=~k6k0tNwjL|4> z0v02YELTi>hWn4JvqOEQ)(oK0YT3M(O`TiVeFXYw|Dpg$!mD~tzlU}UTB<(Xt(yIf z#9(xln}Ku=kUi96xyvO%H-|mYyMR-O11PIL>aSuR4u;S}M}Sr500?{1v?I_)hMgDw z1IDT0g>E_?W5(k@l74GzuJO-5vVLnL(DC~1+GBYT5r;`hX7}MplIz1C(6+vv-zC}P zls}T>oE=G4>S{?gu0sS33iKBEZ^@7W6uX{x6t2d;@SwErU3{|UrioNKLXsWYD1#|A zuZQ$rwRO>sUP5KRA=&{0b~FrX!R*cTqb;mE#~Wp@8YONUCtf^C+%itQaFoccZFQaH zC~?*j>rJv@7?g!Av%MdR+E4E{x0&_h(0!B`$69dB6{k+x5l5V1ZN^;o2twEv6t<5a zu!FQYoA7*{My-3{%*L|mot^Je{zOF<p%Q)X9N4c@9_;mC*}6%m8L0kYcM*%gNso(M z*;jV$Qb?WhfVFGy$Mg~E=ImOwdr4iRUVHCsaY-RRbliowqR%G$Vf#KEx<wM(-*F=D zyB&-tjG8{{JmPkBJ{M-a5)XrVxgak8SiEL93m)2beqA<iGBZ`=%(%!ws+=&Ooo;c^ z<%md*kt2z#DdAII$4NSeKo=Jrsn|BpJ15SSU3sKT0hPU*hMXEeqwxSiC4O<x0$^}3 zVcEHf>W8iQ#VXzG_@a;G<!HkLWtV;k+Wgu24v6M>2~@gg*O<zM!p$*2wFR+h@OIb_ z$FT%<<ad{?lGYnCJ)5ruP3U!=!wQ<(=12FNB6@R4WpLLhmUOJ0QIw9^C&Fxe){)7c z2MqP7fwLs<D_g?9kWP~w9U)?vhs0)cF}XU1(8xvQcDl3mbLlzo3t6EFd-GLJ7F?In zaR|b*DS}5y!qOngj3(M`kBi_PB^A*{UMU|-GKh|vsv-Op6zDF&XB>kL8?7rsOhtx1 zQbs-~Svckw6R&PNWcG_h14#T4t$jzixglUvOo4r?`J;d#I1EAOM%4T<P9oQcKlDB? zmq~})(#xB4dW3TaJ1vbn3P2WGjXMhC4(bjP1rB*f8gvjtfpaXr(b<5M=P2>}D8t`O zh~5v_9eAf9C&(b2SBu7KIq89iwd4d@Uo9t`ueMrFJn2|DVd(2}f;ddbiA00*B3%H` zA%=<0q?~|`T1wIq9q(|0vWb!Jv_bB5e1>ro_tW9JIxDgZ6ZR5k9m9;RF=y4xi1@C_ zgcDh7CKP%S=ZomL92#rXYy!>T38?34L_EPMTdUc`lgKq<6TQz5AhVrPFXR+sHj(z^ z(orc)B;Sw|olV3`a3*KtG8z+JA}6D+W|P(=n|w8f2!Ii@izSQfxUF>LNy$5>p8`GJ zb?QCSbD{fJpEISCGi4LX{M?+MTk`WNjzSwCys`JGWQR;(>gktRk%ES0XpVDa8_-wk z#Hu6PW|iz$N`N<=vxbj>=iQNx0BjAnri;p)<g9ki8I5xcmYo529w4Xzkq;FykfPy; zwWK52EXU|bHtw3Jo6SY71b_T&P!;K^XBxoFI{r9L2@0t>9k=FCYWCtWowhdJ@8cZ! zMpt{iugx?S3Dzd;(`&*$bwt>wXM&ylK(R}75j(d?>&zn_+|lwpp--xw+gUL8U;zb} zuWknf8*el0dv5Qa)12_Zor)B(Ph8fVPwwEPr#cbolyAa~LZScTk<mWCe!>p^F>i`d zuUwVdxAI?hAh^O2bXi9#arVxJn@#i)d5)_w*@Rrb{Py?%ey{^p2oBH(yIxejg(4t2 zAZCNkO}E-Of8PucHzW|r<7AOy0eaTQknu)ORL;^ma`s}i!Om6UL0LOx29t;nC3v|# zM#!MYTv#D5LoZ7}IpmEKI5`!F3oiz!NtqywgdC}=P#mFYSMZV81Oz})LpnhX0HoQt z`A;UJ;9epB826v}dpgPY;&|VIii4fh$9(fpzG<`FSeSy0V>|mg_ZP^}e`WJZ89m7+ zCG!~*`JnZr(|!#<NDb1FEGPu3IH|^rW8&m0FpTOpl6zReFo{=497w0XC=|lc%ldzW zYoVMkz4d`4oe29n#_eIT_lFI6kQ~4x<<qO$2h~0@YWhPdoY~VGCXP$;vw>QhX$&vH z*)tb0Hm(osflSS6re}wUp0G}xzolUl#9E^Mlv`-h0?v}cU!PGBiB}?Ks{!=Wg?iXl zobj@#{y?FzT{@bbAMt=Xt7&IN!-7NJpkAH546SAt?P8K$gsuH7AR^UVy=)h#TTF+O zDv82W`?zq0H=J%gdY8|uW00-skoEd|twua^DsFHs6UgJbRUL?=A<m2rjMBBLKxn2I z-0NT?iw<$tK4tPDM>zyG{%Q$LJ53u(D6j=D90v#7dp$^_lbdK4ox5JbN$ZG#pNk}R z!?lB<z`7K>0PHgc1GaYmr^JUU1{&InWy{NOd5&e__=Q#MQDeXGX7eSKswR0gP?Z}P za?{Cb>Fq$(pNPwJqQ(Q={#}e~R%guZ_3pbM_VOWBz0D!PGt>XV+n=@TH{NxpE51tF zv8U_S^yC5{l*++j(9Pfl2UaAo#Hn2za#{x2INcgwJ#Z&R6E3eF;zjC{s!)w+&5CNl z2@3yJ+}CbE5yv#a5`h`y*!E$Q5Y<J6c6l{u(NP%G12ZW_=l3+L_c@SlE}0Us(n6KW zpi+qY(*82?gY&ZZ6_%E{Vo^0ByMm5<Bk065)6m6NagEIgKH`tM8p`1l_d86y=@@*g z75yb~Gtl4%-S0<n-Fty!dF!&Zi5C8l!HX5)(yL0NyW$}CN$Lg}LkuHV`bKf-4&e+P zKqqKl6NniMRKB3ms8-5}N&cXE?e-2K#99VD)q5Q|Gm2Z!fP)!ufX`7qbe9uFLtc@U zaT=A&8i|-F+I;4kj@SwoDwaC)oX|iJ6}yIUUZZya;RR&chzSYfCJh_K@iIG<SyB=Q zMOGg)Xm%;o4r+8$iA=7JK*B^qTd|3q^+tX{z-kF`J<eVMRA?!!4H{*{6_I{H967^+ z>>ANCNEOLC8cn0ps-HfhFoKwu=5OWtj~XK#d=v1YerM)CqMy|Y_b-I=s`Gi3+NAV( zygpG#KKN1&tkY4x{D=pZs%I?rhTJAFMy4Vj*i&(|9+Z2$h7<>vsF`8V74zKsStGc{ zB@+{NS2NnLr3;NH2y&^zA{$_219KE|%2V}~2dl<1qJ*b&`8+6W&C>>&h+0d9GfYA5 zcNjPTrfiGR#rFGkX_{fve^0T%K;}&pE*8vWWg5d=yTB|D5m!{kL6`?h_&}}}*3RNL z8+wL#rV`}r6<Hd=t9k`pHe#Gm`*s+cIDxlSoRC@CH~}R;L14O)Nh?lpT01A;{R}5q zhNhfP%zbiBKog4-7_yC2L<0+0i(g38ErE?yU*3=jvbhtcYk-}IyW~)0G+CECk~|W8 z27Ylu89}(j|Bzntr=lj2^o}}ALUqhmv-*HbWWrt4I~W!a%6|WyQU99|NUd1WNsvZL zr>>6n1m2VJ+VKBZ-l(!vdzZb43-5ko+;K!Pl-qe(xko0mp`T<exkzXc+gv^L?g!u9 ze5C+*>l^VA_40df$S*5pk8_*MWx{;JMd-Mz=i1fLHyD^ii>inG6&D0|phOER&er9& zBZjT2=%Nr{TS%G3Y@zO>3V-SiaS&iUV=E4g5+&NkhA7V~=OhEhFXHYh^mjsZ&a{?* zwA3X-l{*$m2Pc8eB@k*0hS2tQ-X&pxYvzg?VxcEPY(XJ_y_&1pg3hWW?9rkLc!{Bv z;$BP+E=hEhih83p2aQv;(Us;F>V$3bH3`HT7vU5%dYJ%}L76Yv>LqSZOZ}a8AU6PV zyd@k=UOGsRuHe{x!#U`p5pKAH2q^#lPO%h!#on|eh31bkU9DfhhjwUITNe4rEvJyp zJEwS;QS#$fW2wPO#k=$^e!++a9F#bsf%gy!(^1AeiyEJdu&-XZ_8x{xLXobXm!=`j zrshoHRiCB>nM~Db$<;^UX-#2Ozr>3(sD6DmGZ>@~?k>nnz>Jz*HnSP4k1NUE(YMmy zr4DH{p=niHI6buD?qr=03P1^w;Ei+GF~Mp9K@vM4qx|A+Y?qnv-GcK_eHe(|Vmw3+ z`e$*2s<TYDF>Y7#fPPmC39x5NGrU%5L90b>l^C?QirZr%j6i1r7X>H^l-@pFFvUWh zYqqZ-BEdohO^q)ywo8o}##naViB7Y$F#Z=rMo}wB$7ZT2s66VGH2jFvg=HN^v8)xd zAQpYj0*CntHtaDXf&j6E;{Z$_i}gi9@3nG@d}oMhRFNMis@OqgxWq)M2N($(I~y`} zX^s$9BMm$nzQpP7;(-@;n7ojj94my9t!>RQg#fs@Xsj*)Yl)o;998bsq`%N_dC*OI zdDL#G;5!qt{KTb2yB{zfyqu%&Rgxn_v&SmuOu~7%Y`EJ>6w8=gju^zZSP>;Q4s@#& zHhX09asy-6O<9#kt_&k>Tw@HF1_`5I#sp@P3rucwTQ|yTwhq_GEU~<vhN<mdDW^si zbL1y>Eqf+*9-m<kK6abJm1j7H*%hKkxVn-7deo`<)rPV|&6JpD@FDK?wE}h_>PA)W zp%&}41u6(_7@9eaRZf6?P(*^l`e4T*Lj?08y11%JE2_h^sp*_rGDbur#VI3?Eql$F zw>%h0Rg})aXAUEunKoDZ%#wK+rBhO^TulP&{(!$autjygz%d`sR+3b;ix=I+W1wd) zo@SUB0xQze)T|q^ks7gsm=<bxQcy9lFhi#_kYHNeq40qh-e8fv!NR>k3>oB?Q&=W> zzvdJM8Mp#(54Vo|2jmYTb+~?_WPg~9;_6jjpwX?3JaQ-1WlcfIvpAuW<gEK+m1Ji$ zcv(|PBDsy~YZPBH>E>N;go&Swngh`q3Ntv2)x0PhtB2p<^RZgpfJL|<Y4TF3{O%~E zu!g~?EdyCL!YW{fi@sHz`A}$7U%ml)wW=G;6y^`OBjzk6d?{F+J7atZhh(Nge`Tgp z%rr9<)Fy+NDvg+m6k{qU9!kPOu{P#X1L7t)$R8&En8@={Z?^cTEv8B^Ra$G@AQ7;# zT=L>f71m-ZY?el{EdxnRg${N;SMvr}f~gQ78)5`!DmY(E)c|#NPk=EM2dE2$FqIxK zmE?ot*kLLY=!TGqR2ox(Krt0u=)L11kx{+)?#^mix|q&${+p04W=A0}HUt+c7qN;A zX$)e$h&7T?$Z!pYl_sQi7F8Mh^7<GZW2Ad@$9n*dByFo3KY1WRn}#E7+mN$VPy%#J z>P8eH7c>z8keo;{woNf|du^ZWs}&;*$~86;PW($mADk%i>-vv$8$<J3A2!q<0H&zc zi%&Q(UH(2=&0GZh4Stx-%|?)s2bwZ}=1r~zs=;#0p)htJ#nq-PoU6@M94-?#8ESwa zYjHSW6VVX#GHu4;BMWC7PD2ch1$hC7;{+W$G8Tth*-d3ygTv`Nx@MZWnW4+fEkbCt zRUDVO6|!!QG$ty5w#3|c)irZ-K5EU}O=oVZMPpi5HuA{*<6)*dbE>6U=LtYMr&@`O z3WjiY>bu~h6J2L2Eb%c+CBFeIn*YiKt{H_HXR6FnT=R#m<yOdknZ#0_)q*XIpu|!h z1~CrFEJYqnD(RV}kmk{3!$v`rSqiS0W+^=3)hwmS0OvT~G>ciY6ly-R)O761Mzqo` z1iGP~N3IxOjZ`M@s~HN4n0JJ7F%<#P#aCD-@NT}H_1gx`XbG{6DGv^w!<s0t+WVPk zw;xi*@KF$ZD3}1~e>7?w2Kq8Wnu>pm>pbV?a|%NEpoA>fG68@e9eg!p%*wIQ2u5kh zcTn#cJ7}_rkh3^OHJO*CnuH#%j8zh<jTQ=v149T+r)n$~S!^h_B8joE&&iONfkmVD zqccQYmB%irVNx7T3L0!$uy{FLK63f|fXg7U^-2Dt{w?^wEQURRL|AN~$?%W3PKW8i zc~-&nA7pH$Q6Zuvjli9pOH`%XsPb?z>4Rcud_efeALP&DpX!TGd!DQS)xLZ%BWzOi zVnT`I8?M}GWnQVAk*%^2mW&S!=<Glt`a26CQlA>2aD+3YW~9$L3NSTm!fr?zvc`gy zBDV~67dCMRi&$JUSKrV{D+jqwRuM5>Cp*5Ybn1pqzk4&^gfYjBv2>CtBWqJrOaqyn zE`Ugj=#~=AcJPpcEx7a%2GA-W`BOY*#k1{_mQ|OuyCk1`G%R4nTmS<K{?#HP#lg<w z#*V0fgwP6)v5-Rp%wx!*e(T1e-aN6*iM-fa(a|bkzQGt2QZX4^s4k!tJ6LeU$S9Z8 zF1(};-9?9yhnqF(;>!|1i}VD<bfpON<G<ZXd^zJC-SNzNovOG=2Sr;Ywn)Vo!uicu zN<(RC*h#OaYOtGksR30ot^tX_N`YYOIhvC70LHq;gh<e^aA5fTa)6~VLN1mW+pW2B z{pMma@Fv;JAUm{jLdR|OtoUj+x9SnNTu{xxR_ZHUIZ+y10qPh~){dZ2#o=Q3;fT!x zro@I{BQ}?s)=jN(`B`OezhmWM<MaC38~QjQBo+hJ=&`V|7R)3|<Kz9J>=AHk5aQA* z7m$u*pGU`S`Z3>MBjPB$e_<_6#CL7r%B(%2hmDfQi{NPNpm|@E!gB5mlLJATrLx<y z@obg{TFjMTf74{tJ?z;WO?MJxQ&R%D>mVy{kKmN$>`mrmhYFY`XU}uOby{aGmX%&| zVX^>m-JaFKtjR&UV>g0c=PT;)!Dz4drv-ZgjD+y<R8~{6>UBKe=7xLqxGzRm<4Ge9 zab|U?9ZtQppRM?S7Knh!jRN{WE7351?;%i-T>1&3j{(Zv2e;OWiFZTFm{==B0HV>Y zdz$C92I;RZa@DPS-bj5XE0e#Ib!Tp<>lULc|LXM^@@kk*WYDeV#-L?fjSyfx1+@}( zyhwTq6G_opN9FCBU?WPa`Z%h{`&ePvS9NWz3kAJe1sGH<695MW*h95E0U}>atvi8b zGZCQA<2Xj<z@*l1HN?YHHq7ev-cNSfNNBOmFOcSKi(NMledX+N1t{?qkH~Oi5)|QI zn7B1i$c3e986p&wU0U18tEW^Y7tQGLbYUghJQ+=C*#S)nPW!q|D=Fa%)^dt>Qf+?B z;pO5iBujT@DKe-#vx?CL(dLuXxn)g8S7j?O2A(7aGA)ebbrTeRA%FlnzmZ!3!dM5C zDUUvy`Ed(LX}c3fwulWR(i_|IeQKB=p}^R8$|j4yXEaqMD`jgV7&?kOP@Qmx@u<^Y zDI=<>SR-Fn39=T%ku?X`g&34-;)CQRF(tK`7h<(7xG4FO61*(<Is%>*k=mxnq#)uT zOzKFr4lH(6CSDXqx~8YgEx)a4l5^98D8lJlKR`k3w33tnDl0y?fy?a1CWqgU?})n4 z8DXn4g8AGvBV0IQge_X^Lp!S(q4q=0h!L#K5hLVF3D;%>zf%gL%T+Q)*vbzW;X)oT z!j`gS6qX+%FHi#@DMQf*d<42Iii00$u!J=QVUR(r?H&X?H{k`2@GLjeD23l-70I4c zpDc#RWa2>xU_=R+V497h2&qXQ6_^%2%@6?ovBKBMIA_juLina|uEoLZh&;aVIij-f z$9z;4K5Nr(uC+3{s`9wPm(3O4U5#@tWYU#!BjHn+)mNlQwCtK#Iyuc)&}iJrNyeg+ zW~Xr-2%FbBqisuAq@B?)w!FM#odrLoG23ibYcuK@=eB<3PRa{$4P$LuCplQ;6g#QN z#)z>PbdDHnqLVl!Ty&S^$<$d^pvG#D7?(;s23KSrBU9!vY|a`yhPfE~gPF(RS$sxQ ze2jz^hirWqt9+c(TNLoC(EGJpr044!I0?RdhBZ~D47Fe<DCWR!Lv}+*C21Ug-RQnQ z|9X|aGQs9wcaFbG4U^165o>&2zmW~v2nZ6^FZKrpo9EhC=UPWqvxLkU8hXZc${4Cm zOl(n^{seug?*8M@e?tUsq_|D1m5pG6+pvIGBC^_TE_v}9Vnl=N`omE%B49@VO5xZ; z_)l#)T(w#8;Y_wJG;5}3Y*t{D37%%yJ!MeV1`EZ5IbH=8MjysMi(pB;A!_16z}hml zbKsHt`ZkhI7-0bgZ_$DA61@-D+Vm)RgdiRa*$suY64JdxmVyP3{M%+_qcOS2tYv{* zG}tx003tKakZ(3Hz^qtp2CdGPd2raNbiW~LWSqTzQ$WwFur)hYnZ}%+#uP$++c0`l zwAH`r-tSVaaghzPyCx3;R`MmN>67l+q+Mbl8O*$HGD><JL)^8?i-Pbb-1@1l9V981 z-srcT?HO%IQV<a4IT8$6>m!>PsXZR5;a_$<09vh&icwA~m2J{~RGWI$ZvsdfI14_Q zLkNySZ>vVH_%S2ZObL+!mwdrXVFoVvwCon*A13a!F2E73c^ELI;FvuOgBp+9FT=4K zwqHgCZ>iKkVB}Q^2hKU)kyy#%TBG`y)<Nu|qby_%&siR_*Ei4?4BJguw+H@6GV2l^ zt6#HU352ptU4J$XUFegRy^Q=u8(3@_P^A#0#ixvQ?HVkap@8JJAuVDTb<)GNy@1h$ zp;$3m6AiWQ*Rdcd3tJs2N?t2quA)WLc~_NEhQ1hDUoRth!5z(kdS-fo#XrGTLzhiQ z%4ec2WK~VN+8I@hC~A-{nni_};?gUta+ekWD3d2w&4ZR<aLv4U&gwRnvg(y<as)*4 zsXCuU5yq6NM8p0A7===c8f4@n|0b<IUOKqU>O##>Dn(&8p9I3P(5TQ?mA3eT_JwFW zI)>8K?qysSAxZ!Zd9!9{A<{I{d|qj<XZQ0yiP{Yqsp<Z=(1>Ymy=euuer)VN*O1wJ zc`A<R=0yN$YJHh4S!cBf3)o+%pXx0;_$~?oMrOH3Ubl`6-H$&-D3Wmwx<uXSznM8x zc~YzpRvXNA9oUbe(uE#X)a+x?>l^46m@os<Yg@v#y&g}&4EcK>iN?wTyZ?0gxacf( zKVpA|MkU@a3|~X@>;fqk$~Y7Z19Iv>xKx#wgQ)IO)!aomBM+|XZ%<;UQ%r%0#VE&` zddx&xl%Fl))eP%PsIsVLZn7dvtcOA9sX3|vwIfI@r)jjJf@>I#*htl=q|3z>N$uSg zZBvKy7INh;o8XD!WOsSW{DQ-Ne{%`dVBh{%Irmf6b))9z@quYvGUSq>QXojBz^9io zls=80;^Qr@B_Tj{^bcHSBu%rP%!H19A(0guHmRex;yoB;R<zz3-9%P*4yzsR1NXjJ z=%MZ#Y7uV$MgVbO$+(_u)*k_Pj>X8w{bB2i`a{h`53FYX+^h)w7W55%zG_Is)Q1IN zvX#{;MMdftc+f*;)pV86a83hKZAsS;c&J+3C<l{O5_-vT{JN<s_P$H3rygN)$su)b z%*ynmJK8L?Av{H=ZjaVyrhic*2AHaWMVC}q=wRA+`qP$)Pn)Md-5r<uuPosTSM3IY z?+7(3C#{%8rPKRS(If%BD>WV{<EnW;vos0*l#><B-pG*>#vYOFxtfkOsutFbl-<i% zX46f@E*7!NIJJBIXIPyB99@-C<X`i)N%QtX32Ebzk#LGuFf`gnn}9Q0?LV_laz*^% z4e1>84DM}7jCymhhU9Nyz0J)Lm%!R|iN@-wSfesM1!DO>7Uor~@J9XFEju-P^H9r* zAd;;gBl%?*CS^g{@|BrA%G<~?QE`jFX*J98ziRg7!c@U}{%nt%7o<M!18os$+Gv&+ zX`;+JG7i_(CRa7c@M(@>bL}*(Q8w2iqwZg2(7onzlqSpXUpJ4wUI<rjm5pcVo(JyX zt{VxV(hm!i*8T2iT~^m@ebkz`2Qm7vkBl)`fpDU<PL1kvwRWT8>w|&OmtBDErF3WH z4E^Dh3If0yb`w?}b~B!EBhL&|ESAA$fTr5z`GTM+yF$(oAkE0x73d7G^{6)_@e@un zUoNX0l@YVI>AUa%zrTzhNE{5NY0KTCp%iNd>aiMBu&XKCpw`0pWEXMZ<A<XDe%uyk z@zT(yk_(44d!y(nmTdzcBE|fXQ7K2b2`|C@h1Jm+%+WZILy8%TVIp<f2WxS_If<do z+(=TGOB*n|WU)aDxKDl#%nez*Ora23Wuuj1CYGg;8zGUS234mCksRxtsshv9;c`&0 zrn}aeI&!^$;>c*HgZQ`GnU#zdlA#q?TDqQ<Jg%fozI$q{QSy+JXc=?}f%G;-ELNM4 zRQ)Ubf+al^U+@jww%v(#f{h%K+)aVTFrosaK6i>sS;52_hVqBd>QdF%IVZ$+3$L}G zJMDc9PO@9e{)AE!cKhR~;m6VOPS@e%WZ5-_a&#el1PX?Y`N27mGnJ29!Y-hTq&Baf zAI#A#Dg#FV{y%cX{z2PdcpS>)EfK={sx;t1S@C`u?b<ZLq=FSJNwCQ4BvVNkp<zTL z0BSP?S_h)p0s1>zo>TYE;$h4T0EryjiT#&^o99BYAdHFHz4Oo(U@jLloWmnvk?KVU z%8CxuGtjyMxwT>ypTRv(zpdrYskH3MEbG#_JVFvKnG2fLc64gFWjF(cX?eC>k4EER zv92c5o-8AQ`!<MyZRpyl$87lwq;kFL0Mvs>nnp|9;tRC(5N|5v#8z&a%^@cZh2>I% zQ|B(}%#IzLWYMJIdShj1nL*H4)n-irkV#WBUs9iGz}^p&BK1JrK?WOiTd2~6tPWKg z+G@PZu@Q6esKh_Sp>x0qhSOv!%NIp9T4<Pjn2H%O<~e*c7Ch%z7EF{nhbqN$Vjy%I zogL1Ii%>E(;p8~XkqtX%>&3O!mML%%hQ(*#=awOXj4&n(8d8EdB1>5ex|-dzXlJ)3 zjqm>}APuz;(me>w3VO;Obw;F_!!4N`72$P6nmXjk!gg;@#%#t&qg;zMX*#P(qs0(l z%jTN#oHB_l1^&TCsx;5K|I|)Q!4x2*J3*A0F0Mg3<o_7b(TJ1IIlV93_EmVSozgAL zK=%+gGc4Mk$^59^fx(Q&%*c4a9A-S6)R4|iJfLcN6!NnS7>$F*tdb8O^So#a1`v4c zGi7OUgJp|@uP7<6Atcl7W(`C674mzOjeW7FkW)&4w%lygQ=+zrVBD09?zpMi@Oo2- zu&jod3)V8*(WAc6_`Z<BBOs`CCl(H9;;Z5^rry^Ft!%#v>ITI!uc9lQ-gR*qzAo+D z(LS`JxQnA@F2;L(a(rU-8tswsjJHS6xlcJ);wbCBUhi+3aW+R?JG8-SF}ML+T0jL& z#83tL4%;Htqup^3vfz>O{EsXnaTN)>!aR9ZjxfY{m!XNQ6yIMym`e-#x3Ir_v85cy zAugQFZ^}$ck6Q#>>6mR+4rmd*dEXC3bd-rcbF!*MYR;_*l)Oupis#*N*p%u-$|N%i zbtryymu<nb92&ROLaojmyD&wrG@&d7@3lHb!TVELox(;@lS=cP)HI6H#FY>&1i&lL zpx7tV{M&)IWJxx()!?ac<XR`yRdv~vn!@G6f1aKzz$c4l(0ds-ACI2h^dy*}?86Ku zs>XrE{svWVm7QI5wemCvy*yQPfz7dY`$C{=gsdLy1#M^Tv<f-)T7R~B!r`}?aVE2V z8`dY3?5v;0tlu87K3`R%B2=)xS*g{mZ+4E)C<pn}SV`uxM;wonE%p#+n*(7)F^;d* zu$e(fYQ!9q)R=ulRHoXdiK+oP9u+DE889y!8E8lb2!%@qj1fjMU^$QhOcIiI3+zv? z*el6Djcf9-**pl_|9TLgiv{WB3^LFdnXD!zYg7a$bWBv6n#MA*0Mwh7E7HYeVZo3A zDNPqgUJ(!>#ALu!p6NQn@)QO#Q6obTGY>U}kPdTB8E(iu07D|qSwu$dT4_kB@#HBW zLyM<I_WKKg47v3<+ENHwRtfD`y(1foc3I8izu(iU8^fi7zvuuRe4*mQf|!B0Ts=d( zYQ2IE&?E~vEsF;Zj4o+FRA3zQ4}Es5Qj6k%V8vWVxALZrJvdNc3rs--LjE2m7?rc~ z_oPL8zOV4-{SALU(DdigmOmeE`*Wo$o1J3<aFSaj$(IveopZ?X@>rD?sz3kWJJu;K z@Mk<x<N0G!TtF*XaV~9E_Ji+uvnFL*2u#b$C@Rnr9}yNHirLnyt<$d2(6%A=s5@gc z<RdFaXaJB&G<X<bRPGGWkQ-vEMZhUYqX;SXkq0zp4RwJu@J-?OhCLe=ICh~FnWemp zC(H-3H(MErO;PwUFf^@m*dZpCV}o20dm}(Zq|wK@mbWj@WE1n4Nr_v^qzXzhH!le+ z92aYqn)0x>&D+yvf7@aqSubMskVC(=c?B1Gt_wAdXeGCD?2x~)uxOh@z(b9ZLo*^a zwhmsLwSQ{(Vomtl+tW2$+N78=f-B)87qB{Vw#&As%T#b@-5+M0)x=fQf;DG`SzoW( zZV9|yixcN**J*az@WLY(QGa%O1=oA7>lKQ%I&RpWZt%C=%48*Zs3gJKi^7dH1pB;# zmysEa-sojsrhtvrbJO;8lfUiTo^bQjCJ)s^4*fdh6&&zf2evagXC-glo^JKGL&{_& zd8p(8^>QU2QRTjhl1-6=hLz~$ZpUs~8oBS{{jQvTH}Cj2R->M|ENamd7Rtw*Lzoc} zVmj39DMTSoLJcAf3Wk+H@UrxcO?F|q6k28n(PaFXiTNc{0QPAr>Kv+Z)HzgBQRh&3 z)Hx1mM<7iGxoYS#SOyP+BpP7GwbvugOAc9Ct>-hNgFF#J09Y41L{Vmz97({^SG1_S zyp)0UPXIgl$$|Ax06Y1q1{R5Sbqmy>tk=7<j@c8W7sYU$9T1Pz;}vJDoz+;q8XL`K z0%xQ5XUQiU*&W8tbewgmBU2f?U65v(W=RVP;+2|9@XyQz`Fw+xUI2SZ9KY0t`cgQs z!K;|JbndZZmo~}0N{Wl&%SgX6TPe@X46kYtttg;!%;X4%<8r1cH+s2IEFYhQgOdgA zCX@j&KNaKGmKwOt4%~%n19zbVx7mt}fP)>52OI?i9CJ|uZd}fQLouq{8o+IF;I_bg z^^p0K>r?MYp=pJqffWXuLjtcd1r{%}Q@Gaql;*k@Xp|x5XqM}IJ`?nn>vSyYoaU0| z%JrJ?Y?gEWRgsEyJCc8;+TwnEpnBPP?VWPc9L#^SZ?2ZPGf5z>Ob3~SQA`AIel1dP z4&JPO4X*(aa90~<unBuH1?%lQPmY_1Y&ScA$?Y86kN3cGf!Er2-e6O-GsD(2*a|yG zm64h*WB@nvz1XwJ(2r?Y;(yPYOFE~aJC`7;1qbqU?FTuqNN^FZ&JY(GPT$C{PjLbi z`UetRF;{@rhe2yGF<sNCJ{N2*?(R=OK`<&pDnAb?R3s8jE$<g~EQL4gj}89FTd1J1 zzFp|$w)wA%`E~Rt^>lbySW*V+*JGzYFfnQd%b^EqUEg-ABRDE$!LMSgKeo^lrnkCE zg2(h=s>Lg<6Lxy~wWM36_IQ~mGP9^M7xOJcWWRTp#J1%f$aFGu#iPNAQHH!%5ZdDG z_B>5R+W*Jiy8zpDUiW?babEYHbMHMDxBxBzwA$wwjv*Vg5C^7MnzpbRnh%kxl$v&^ z36p5*%v1$vjX*&d&O{PmSx%JLar|H!EAdP@j$L_FvQ-?p_1K=8Nj0vf(WHtkrEIFn zXc{+B9lKUsb*wtB)!+ZWzP-;r_r(i}6sa15c+WZe@jch$|E;yY_5CgemzC+v`N!r^ z#A%-7LrFx^3uS$dGmzpP7708m&Q(wd!zb4egK7Vf%#DTIo(eMMqc?pzFA&7UF(M=w zbYjEMqgo*s^_}d#A`zkfT$nz@g^y>xayLNeqO^oBlIcrNJfJ@h>x#ap5MKCP+<R1) z9-AK3y1W?$S)rr@+_t}DRiF;OWpVM5_Ts&Zi&W$Fy}~Ek*J)5J`ak)<dD1E8obNWz zR-IoEqD?@uPKymAs|DXM@ten<mzsv_&*4k?RFLQg{&&h<Ceer0QGpwJ`B~RmFwuu3 zQuwcB7x+XuX`xI8RRoks^-lC56%gjGa_^0gyW`_Re4LAqN8;mQL37PI#sM<!>wEzg zQJVOO)zZq54eToI3~<-2uHs>iB>=>W(6wM4Ouv}Z8j%Nj<7rqsxlu$Bj4iBTieNgY z|Cje<z}^?p8%x~np<})^C2)><MsfOhI3^vo5qaLr#Si=@mq%t5Mo=6ga@9xL3w$Pi zor?l4@X?G_Nu$i3RFe2t6H%TuQ<oJT*(MH9mttTM(B^uCgf5Qa<2)DL3Les+!4cw2 z*6iX;YstH^Hy~~?IX0YG)Ni0<xD92{n`4PQ&4YYw^BPs?`Jz5^sd<H5Xgn%Cg$Ps6 zX^3VRxuzQFK0}WAiUCJsXqfpEjMub`i>741M|fg@AX7c<K3kkw&^f=hJHHq&W~Us_ zowlHU4!WkQkK_n*MopgbVwM%Cj|x~A%1O<cVRs3+0~KgxODGJc4#e~ur366>Le-Uy zQLLm@dY7kvLBfOKQ<NsD?_`)j+O#nbDWqS>G>F|mPy#~ja2yALKWP<g8Hv$}n^dNf zXoSo<U=vXldmXJ9m12QfbK!=z7)<H!s$X+$Hjy(0NksoA<4-jRZ(;K=!lRpX!%CMT zGz8kz6@#Nnp-OeXukMpf8OsR*Jlf>vHTu-Ny_s>3?A)cwV^Do{Yco$s4X;f59P<s> zD&OcnB*~MSAmypx#IOlaZi^DSMhjAh<(I~v`I_hvR)k1E#6s-U3w8~Zp(rky5gCK= zuRKs32b+<ROD^vX$1f-!D#)Z8Ty`?x7R*|mjNmd8^mx6<a>1wBMwP>%r21w0JcS{* zdQb-PUrXDbL;@NwB#1w%_{COsU1X!Xr3Un(Ezj`K|Ks!?>BpD+V*_r0ps^Q2l#o)L zO&>m4>FO9F#+kv*GqWvyoSz-j$M)>FKJFx}mX8aw)l#e|!!T!4Wf0S<s7j`9e3sbU z9h{8DKc;Xxo+InK((<7*us`Nu)9O`Q)p3<UL}4c85uswog^R={+?iZ^yh20s3$FC* z_z1|vtl?3HMRE+6n13r$;6Te`04I%_$R#HIMTs?T7y=8$@e^&JJ0WB7l^Lr7)*rAb zAE%Y{P90pAyLd*{3lF`v+G!JN$OVdBsT3(*Ub{5k#9+qVO_jPy_h$GVxdpF44i#QV zq5-eSo6QXh<DqIw%J(PmpA&`9Dd>p8d5)+AWL>8O;(MDC@TjN+oN7<Zj_`rSd5R!A za<$rgg12xEUSenMi4aGr)73WXtZqGP56SVUdT@Pq>RD^+(Q<=E62drA2qS|h&aaa3 ziP$Q|%-nWqejDCu+an9953sFQ998kHMb&zmXsenGnVfOx8G=*`AV;~0k`@<JC?6Li zNX<{CcsL<AscV>t6n}(GKyL*y>(Fc!FYpSc)645ehUtHBTG<=%zrMCcnA<jj%M_}` zIEY9ct#Lj+&c;U-A8n|IACb{t_Hp!3sm9@pQ^vlG?}TC#hUNw{xo-76z4v?<2FDP( z6~f?bmdV>J{i-LpKR*cvLsvB##JduvcPP$OcV{Q9=e(w>2iKm}#Zh(gz2EKX5dMG{ zF%Sz%6d*p1@C)D)zC7JbuZm*1<NXO0W*D&u5=_+*V4;OnTaloJYM7nU=!-R~lhvuW zt`$6_YF5+%krb-d(#%aq<`mb=KZADsaWY?-udnxtJkRKvye|k&%(i4dJBf(EjbcW{ z>5yO1`h1m4lO&}q#^puT`De(1($<ErrBj=>jFb9l@C4?oCuWiulsl-_gB?=Q*2HqC zi9tOObD61y^+`hst<#;^I#b3MKpnA^xZ;Q%XU}7JRc|~;d+8VBr~%B8V2UnbA{CmU zXq+uceBP`mlek?7+VfE2bBTGtBS=oU>9>n3)HjOZj@TbV0P}#%Lv*lOwnRpsGW?8t zkN-+WLGd*Vl9Ij<<HH+_DL>b$at^)rSkT)As@qHqc)hG?^h0ZKO+`D2Zl@qJI?1xX zX2aDg1WJj5cbO%^V)RnP3Ok)H*8@m}`qR_&#?SjhFrHu9<;sUJJRiV!eGtu}58-=0 zFb}~YkYutUCDdTy!hq4z`(|W=n2zPX95W_BTB|1Y9^RaCtj8I6iq43`I*c`EkuBCb zb<YUa5p#()t5YAo^x7<&5fxJ{_z6pcwBfgQ_{sErx*D3y$JMFoH2m~EhE>p=O%A6% zjA{~I5|~oiP`$)F!U4|DHFOx>nQ~YG2iqG&F+6GY$EErWSD5Qy1*mg?R=C_~dn_2J zEvyrG88wX;m@2Ww?HR_qtM!dPBD9<z*%L;PHF+$6;XI8WXV=quu&AfJbps}PBE1Kd z=>@2{eF2eUUrkA3>nu?(K?QvKqw+zC`S2}O_68}5MV&h!N^^2y2JjUIU@(LaXpZm! zeUSPbmYN`yj*&)01AG=DP~4gfy6Pa`aoEr&o)aRVSy8#tx8mhu<Rl&HFTa6cRneyi zS}g7`GQG71A|TBPfIE71Cm}ZuFK|qg8Y`WRJGdGrohUVwc~+<mJDipzYVhJBCct!& zJW0)ylXNlE&`8#$TiW85wm3jrIJJ^_3W{IS7Ndo>Py)4AqqewFe645;bnh)~@d{}R zQEv$BFKxV3+Cs^?Z&F)m2WMAX==89?)y2jur7lo1x75Wgb#Z{Ya1KGK3mF=h)Wvk6 zE~c+mbwQf%TyXDIzqq*3yQMB#^#4^}T!?x@U3}p+FO|C3xOsIk-Kj3L6>iVf#q^a@ z7q@Itw`@@d+oEh)kh)M><|TE3`J^>QUA+7%U0zJTX7t7MmcDqU^o6K5^u=>u&R!~o z@rIjM7|&%pHO9t%8so?-r7;LszO}%(wZJ%Ff$`-mxi4;1J5|OF?W0KkiyO{*{3>){ z+`z5-HL}L2Zt09yN@tjSLuuUja{f{&jV7w$W_%boQdmRl#86zr-s_B`uawqM03kk> za{BxEOs-5^OX2*^aemWT>EAp;O#Fe{UcV3^`XIJiA0SYD;QZ#5PKb$oCxmK5R7tuM z@g@-$GuyEHRE{L7mLrK>Tyi84BP>S}h7dWD26iOrJdPAvg3nlvq}-nTIq?Y>_)dZa zJCX`Jl5n^wrnU_&!KaGvkusQqjb^Dw26h}t6M6C2Cd?FUu<hH9B)^Uy%Pvs@-|*@Y zi<5GkW#LFtOYI)Y<xozJBsF+(F*%aB7>*=AnH))ZIFdXB%@mAh1R8CONn};(&-L-o z4T=@wh-_Gq6POrJ;<eaBXb&XidWf7&YTmbRl&D6XN;{aoY3?nvIL7W|4<r`Rnpg(D zJ^foM=<#Q!@2o$kn7ZCn`NK)dNA#+^(f2B{lhA?bw<$#e&r*W7&hT}LZ;!|$xpgB% z|29RcMO=p5<oKK4BA>1N&isEKTgdRHl0(LR*@+_2i79!Uxg{eFldLpqjvpXyC*lXh zE|VrS-N_jG(2-A)rCUF%2s+%7Yt=fj2Nco?3!f0OE^1Uu&lVRI1s5?8Y)xkJqUQ=5 zF6};Nx3IPmC~6`aSM{HruMv_#%fh!yi#Q27&I7=$T&<~i(JTdUyt*8)o!8&%_p9Es z@5Aw2Ly?N0NDg~HHlcv;Qm7EK?40iS+wDW%UC(@?j+7B~6MH_QM3P(3y)A7nVLFL& z@=#Y$g|bys8?)@#lU~pWQ>zUZJq0_hU{;S^igTT7%T{<z67g9|`NqeU%Q`<$H%JfO zeMF~U@(3U45g0>pl!R0%Dkx=Aq^d|%Y`&S7%F;e?74##r%BA;d=a@|2m<!z%kqi@& z`f`@oL;2+UT=jjmh`0eFm>_sx<MO%9k)9$_#rb>2$Jr*tSy(^$gZP!R`V&8x*WbvO z@xwfiY=RE5`Z>~Bq@VDhu5QH#Y^q;pc;+XM_!&hg-5poY#Rty#@j2dhgr6FsASJ{` z_@rlWww(Nws|QH<F#b%*4r9kC&{`#}<ip3h!KWf2ex_}g<PD3>L=2Z=b(r+J_&!SJ z7z+n&Iy16}l9O}@4N#0gp-n3)LfaG>JqJ~YD6z0PUx^}4iT%vqt<U>(lti=5*Nt|X zM*?^`@_=z=OY<dXF)ST0$KFE0LDx6nI*~sm4BJOMvxoQcoR~muyGh$Zp*LLp)Gboh z=xN(Mk1A^jZ#gdp!Z(B_Ni1~E^|(IGifZXCzwh7>e?#aZn^dN^Ci<H<Bl??n7Wtbu zBl_EEMUoeUgu8Ac!>KzeC9F55hS(}X>6+1!T(6uSvLA^u2r5<(Q17w{EeJuA#}&qx zoi`+@__w*!+SQ+;F^~hY(fhmzCy!ldRoP@qV;Gn&#suOhq)8zSI5D3hG@*4h&F@R^ zx=p$#HxW|NA#o-pR9m`uCMxpQq;4(S)Z($HD#QTcSc}5Xw1ua5yOs+iuGJh@vej0? z&aUPn?B<%s|4osPloN-*n-t1qxh`fz2J~h*^C)stq*T>^V9tTI{ABjIHt;dxrTU6M z6jc%O!E=gL=99dDVt!?2R9H48(t6@J$MgI-0-BX$$f6iEN0LF+6rnRIfQA|g(7HV% z6?)b43qyU)_4GsY6%xbJ86>S5rr@rM+oXP(ZqHW{Fg(P5UmY!*zQIZaS$S85(1M=h z$RF(@Qq)Q@{c$3BA!`R(x4+d<(+!Q+$-np^=>*Tdr0FI9>laQh`Gd!cBi9RIg<L9) zKhybfhZts>WsU7|hZvd?7x(8UlFrN&H_MZH`#1qq-^Gvg;)#e&gkwCq6ivZ;ZRCg` zhJ~FGa5OXmp~GVu?0i~la<lqrNFkrD#gC75e|)0-LGYAVjbPTor&@qLeU5v@_IrhW zI;4FD_)rC%m}X(jY$4ku=MkKJ_Gw8DBSDxtHhSnCibR_eOo+HZ9?<5q#TSvxnz$8; z=}SxyT8J<}xKAWTBw(Rs{eps-b3FhBYX~8I=!!~cDFk$=c4>1CVasY4^3{Q3M99&u zEZRlE(XJc)Il~dT6d@;7OPY{q5V}weve@7S7iD48G-%KGZ(7J%LyR2n>W@!4Q%=$P zGsQcIZVW}H3FiW5z$gb>qdF@IyE@m1=+)DLB}~KVg0a`EI&gBcL<vwhF_kKw*g#$( z@>|<8RfWN{sE{zRMHTS;C<3l~5lAYLqBDL-`Ooko+H&he+C*uL6vFg=ADev%?RKgD zNMAcSBx@;JBjndCv8RGV3XzkoIVO8XTe(1ryvNCI!MxspIM%2CIH$FmWwKx}0;s4p zNf=$q=1i1GYFMrF%W%dy?ob@L!p^2t!N(TIVT2;2f%hS`a!0)qGpkVLYG7^0bB-=Y z%xp2d4$mClo;?B+DL>M^Z2}zS(-Kv!=<-`=73>ko>7<UBDgZTabF692ajzso%jg-U zYw)=~Wl~O-7a1#ssPj0)vyxtLs#s5;pOj(KZ;mN}%0zWh?b$i$1sDw<h@~FR)gosg zBmC1{SJs8Cl#pViE20cdot1%3G7zmR+Y1C^WxNP}gdAj!Vu(Ml3>C^i28A&{?nO<^ zpm9DwfhqL*p*0SR(l=O^ZJsJ|UDL>s@RR!qX9rxX>HO(UkH&NGD`D!IGG%=VC0T2N z$))qIOR^Pa44mc-ZvIc|*Su?9XeN~ZXQtBvOJxwtBIye6a7+yYKr11Bh)@IPR6&%d z>?zP1x`cNWQLiyq@No_G=+(>jlV-w98m~t$HTcblApanB<`3~ge5RHu4h!bVPpij# zei8)=b<rPTZ(Vu5H(yhMV5H{}OqPRBR%_R;7+tdw!mAyLCT;_<(N%X)9N5}}3k_?V zi8D~qV<ZYZZn=p3VXoN+MP+ab!`Ganqfvvf#@fEgT@AKmu*8D-UQe2HEgvDso$TAc z|CCy_5JyQ80SkH0a!nD?OCm$Zue4GLwh&oC=@Nd-h+5PNCddzbCFblj$v>umaMdvP zdRgU#L}BvxYm(oy?5EGmO=6-JP0FfuHHpa%d5pmBG|93OdV)m2)bJ)mA_8C(`1qL~ z@=vmb{T%%KY!89L=jVH~qoPa`6k}|zU*$1<(Trw=Unj7<I-*T{y1}AN6E+smB63zx zo2gRpdZjWy+MDxZLrKKQCwI1ZrZ=B37baaK4hN+1b~V1r)105HKA6fr$|ze`>5Go< z7QCYc{M2q6(bO}}5!M#UwfR<4GLf<>mwiKJ1#o{xZ{^hn4RH~!wMUg3m#<aF+S+v_ zlz?*6Gg`3fAHnCjIvU4DEjUX2q)}dFXplyn<Ef7=MuSn5cw(fr(v|SlM)mo=!nZ4U zJt^A19Fmt4<U~Y!NM5clB=00i0ZHC?p(A<q<RK+*61eI|>eFFlZrb>ewk3)a1Yk18 zr#6fCG=E9O2A+T`Ad?leDPtuq&?r-9I^=1i25da+AK}3fYKO7@NG@Z8m8HDUFw}aH zXOQ}5$U&%GmCC>%UjnQV(~ycrtV)bVIuP2YxiWLw6Cq5KQ&C!%g5JD;D6D7>&W2!O zQ*=6Cjog88M&lnHyLlLVLOX4a?*W5PEW_Zy&)WPfxg&&~U~qo{gE1;)Og#hkmB3)J zevT!!g};be<j^5urp|C^;V%i1kV*l6%Yd2u24+$ux)j0!Tq6-sv+9@fZfGJ9ReT8k zM%BvbXX%FIm1F?JGHdiwEj?tr1b@8-*ZiVWC}@hPXS}-bm-<jYa2?o7B2ogL7aI7x zP!os|w^(^vB&t$_ZVLW}RL>+-sZd1Mk?P5ER2`*!_(oPg>evN;``R~j47TCs1S!SG z_FS`%A_wG`RvazDrqzooSe7a2F(1+bTBOb3GYxcNPPFh&1-fedJL=+J9X!Un4a-gw z{sj~rWls?^q<o<IFmPhPHK%hm5aXTJ#F>z9A_z7Sf~(fqSZKcHDtj)NCe(|G<_1|r z5XM~Akj;&TCsMc|lWDBi0}XF5BxvdTs5UnmW>sx8%rco<Jbs#6Dp~?r1<qFz8YZ{$ zy(pQO6-g2i8Le;8Fa};Ec_Wia)T|D%Go(eslrA*P^@U8<oEVuQljDVsOxBZ@$$E24 zbyQ|F>}t=>Gte;PVRLYUhLdp%Wy{M-u-2eqgUtpFlSPkdMomd3kl$AdYeV?4!G7#f z4K&Pipkek|2EnCy0zW1+ta4PC(eQ|j$`gd>rOJcBAAvFMei3fDr11e8!&`i-nFh#i z7wVlD^*U!PyJT9_dyH{%szKgaLcL+N(xVidP;VKi7dG|SYDge3fCtni+7fTl05yfS zF((>iVND@dscQbU;FrywUGU2bfL}J{H{e%u!j>M7DB#y>4zUHg9VPHP0Q?RL#72N$ z%;ABJq5K4X2LXObj340F)EVFxLZd3A4~Q(b7(w}rBEsIIXz&Z|Xmu<LQ4IMG{2P*y z7cCC*o$Nc<4{Z9qgnvht8BP?ciB!t%4*p#eApw#@57EI6*fjpds<s#YZ8g2D%pLr@ zZ<BW8-?m9m)S^kSqV-)g30b_<qz?XNb5`JAkpjY<5Ag4nxKSG!`3e3#qEGOzREq?~ z5&Cc9GH4T(X;L#Lndc;%jIi_sP6u5{(F{je$BXVS&o}Ez&w_u~5y`^8Tlx+DEd!;N z6Y#H>mq2;p-_5|kCNyyF<_`R8vf{dYAPfB46w2|cJl~WI{?)=7QD@5$__xoxl9LJ1 zUKFvWyTZRfZbV#Dd*I(A!j7qDi3)?;-O(=or8^UGmc+bvy;~w#FeUuU1&Ld^aU^cl zr2WNhSJYDSXCr;Rh91Snt9!~?uJ0{t<Asi_)su&mwMoR%dXkVx%7O}CSjvWsttR0B zkkanpUjb85P*Sl0C=QE%(Ur^i7h$7+$h#f*7sIkOdBVTLz3^}Bd8K_=<3nCJc+<;T z2;v3tuk?D85KL$L4aPrq%M8p&T3*~T13N}zDGf-+?()?!17j-`4weCKS*OXF*y=Pm zyD<X?g0yQ%>LfAgzINc%E)Kp4JMfYXm;)=4wT@*65JkWkrHE<~$U$b_G6_rS-!ch< zMsAse0S>oJ!YoNq`Ab&nTPERKCgB~<xLYP+ROu^i68`5e!X&K7iJORwaOA*}NqA*p z5?*1c0}5ir(VB#{3g%MP35>YV`ThwdIdjBB6Bj`$-`NUFJNp^ChG7Ag*<lUCgRWs1 z(<FYXFbofN#6^%NU+cpmD`o6+vNH@DyYQ~C2qJX!09Z+@e%lycgk9JPC1n@JBX7Gf zOYCL4Fg?AI?;jQs&b_6u2+E`kt*g|ao3aZZDl9?)g>{ZSYHz!+!y=|YhA;%_V_SiM z!o%c0dO<u)@Bo&91`o4LRSwP<!o&ST;9;zD8(|k7g<V+oC7bP*;V&9a@Ry5MS)R)3 zHSaq%LYD|mp)1^(=+_ODADQsDYzxc)<A;-1$%?wg%X|>bp{qPRf?%=P=;CQiYKj+- zKY%%+IgD3c75Cxd&TTY?ylgb?+i0v;6e>o8TchzL8IAEW-iuc@8I8RmidM<_*bSk; z)D(_9r#@YF<Wc%AqcMtJMLL9ncX^>>$lyX4GW4cGDCFtn|55D{Ugn7ip-8?thQMR8 zFlVfIK$wUa5)G7pj2J3?n~#=^#swqX22s3Svk~NoP0HN}t1%J&DoB59H5N$0YK;GW zN4&(<6e_{Z#@y*)Zj8oZGwD@$Y-Ba&C#l(#up48rZ5Ko-JV=m+9G0^Ya*J8SQbOAy zch7ti&+rKADw^{!XH_T$Md_sNXMQw-83^cqlwuXH8nFyAXN^0t43F}7947NfHN==p z7s-=`Ri_xkEciEriWFz0iG$x{krrIDMOwqeEylAMDO;p526LKZL_g%T8*;|-g$%41 zku{GN@916Pery0HDuF@8=3YS7Ft=Hg+`S%+X~aQHA_J>dy3|fHh=$o|0G=r3sg1~z z1cUYsExid^<P;GRDJ%<ClsL=7F~%^fQLPAqc(4QQZ2-3H-qj=q>hMh}5`R&>1X$Z7 z2kf>@!hyBiB<$;GFMQ`a!ynEtWfB_^{qR@>KfHa9*auC9>TYbmP!N`0jKk>$B2`yb zBlba=fNA2YY;~2W?fjhY>oWbC_|6d|Vb7Q|dD*7PDt~9>!}%2Wz-K4!fppT)qs+eN z<Thx^lhHQ?J&Yy<^0HuVgC5TD3ei}!K&j$folLtZ#*Z9*QJ4w*vr;}9VaSRq56 zSga(IF9Jrw5~XZmX;<%R5|&7=WnsxlPpzP2ydJZ6Lj#W2k2m)elw4m}e7k}&Ug!u) zJ!y+?BPgjX2}-^#3CbiNB`;H#4kIFQN-4`*3i%c{&QrJp_V-@L+}j2L9V*;`(OWk6 z7R5#VgCKU8dyyXwEKTO#{$A!@$76`sUu3w0^y9L*_wz45wzbzEm9PkR7%Z^u;3dGe zq|2R^3EK|3*cSM6cx*fDVq46OG&`{Eup9J1kwi&JP>c`-=v6`2QG;#Un1`rYAyMu< zI!pr1o`RPJ+fv_+Jh1J6cEPcR)J@F8D}Ze`>2SS2wk;I%aHL$uwp!kx>~WaNwEK>E ztG?vpZ*>KuKSJp9(L*?CF7W)}U}~|g5W|v(679D;=7CL0mw9(*%mZ|!RL7f&`PF34 z<fwGGug6#}LFs;LV$Cvf$$<*0zOXJT<I+q4OWc!s$&i5H1YxC1x-t}m)gdF)V}GH* zE#eaIzwYpsz%A}GT?}vwFylDz4!9*E0^MYA+eAc+3~u!bL()V<AT!Zt`^oE!o^@rm z)XhR>uZPU;Mnq7$!0nREZsLOnL_}C-5B8GTdQ;$bf0@k_0dCuf2(BzeL>S>U5fKiL zXu$1?BLU`4GmAbA`N|A%Mxi2v8Pc}{7+Y}bNdw9$Bm(585!WAsTmQVO;Am?D&HI{S zEr<`^us+rwBQ_|5Fcy5inpI)F(ATvnfRi6ncyNPxk5nsN%)8RTyrd51$Y{MKuuBXN zYdcXwoI1+EBH%!pXRw=S-MxQwPADER%mTY{Z19uSnAn9CdcGcDw~*H2$QK$Uu<?jC zqNvM|A7FPhR&*!HSiNM5eSHUm-59wA*af4olCtCx*{7Wli=m)SA<wl-bPE`wag)&8 zjdWpObJ8-`5@&ySSjl8J5m+k=Q33BRAzh^PGORT6H{RX>zEh}!k3Ud(4fx&_>aaif z-aFJG*HQ2t@a_1PF8B_lyRKQvkdGSlpknQ7mK<RxF&7_;b^QYA4yq=~SA5?^x;!mW zv>^`F4Hn_LVx)_-(AKFI>GG_R?o>$Ely|O)@io%*a(Ef(njCi_T@xQCdZYkfBi*LF zok%x@_ZAB8J;y6~MT%zhBuSCAAQsY{?tye2K;sU<2;M(H$PzsRbn~|x+@L`e-D(Y? z)u4q7Viu_rFpF=2bR)Py1GT^8>`G0|gvPar?d9uoYy&0llA05%1tNgHLaCXArMi*2 zv_QK1%gc0-e6#EJWkb4$4QzP%kuHL2IR5?<#pcfaZO5?EcDAV<+qu6@_xB9!J+^0H zufZT1V1aZG-rttCw4G^;wU7k|4z*j|KDo<^`&HiE_GGePAPN9l2U~H!iksU$kdUs- zCfTcIbDQj|Qf<=8=-p;>8zS7w%}S=-)z*eHH0DO6US~fDQe~v`5|AqhXFdYr9wMA! za2WIL3R~K2ycnYVB@!D*8^Q`*CyUM;L7L3BPoh3-zC~HYL5w`v8gPwcKY*?Uj&Rw^ z#mB29oNGBPoQrT=HsT6tb8%tBUBbD=eMTr5Eo2aE#2s2E>J@Hj$XX*V$B}p+92)Xo z08gNSnf612bFDa&5m(AaNOWH#u0=TgrLm~s*az3OO>ko$Bd*>Q&Xtx{Ev|OSHo+5t zbCdnhh?_B4$nE|2!Lb8RwB;=id*EDV<ne_OH})ec5+&hWZZ}3;V4v1BHsX3Tq+<bR zJOYN)^nux!u83LnFgJh}-DxD-Sj8$O6qpDr@bc*}h@w&nRiqTmb+THK<AJqVMdWgk z>|+?|u*bIhfGQsA8={_;JuFHRM(}rvW1>~uI?s8Pr&1@>t5O9l!3PuY0ZBqq1y9Vd zrWj>II1jFg%mt<BHFTjx=5B*-vKmo2>bk+WD#95tD9(0izytp{q9tt8hU-hV=|^J> z-lCm$ZZr!y_2@AUB4YAr{$nj%pCq{6wM{?Pjs>tj0*&D!s>e1hk4796udEFe`hlET zg6r&SV;Lj^mL`;%0(uW^XZF_3{q4*NeMjzy7U~ieyBmEQ6*v3sY`P3P^M2@ibqVV3 zVQ2O(*xd_)WM|&dB<An%P1?`Sj129dZ+rNb<#vcfPC(gdX+FyYc%Pk5zj<3&njfDX zK|E!qt|I~KJRM#9%}fb@6SJ$ik^M+K)>xX;F1v-L`GPFX-ehP0!uiJ1JXDM^xi5Hk zx22gp5B7WV+2JhC4NR8i^Wv<gJn`017MT+LI*39=5=32Uql%2v&F;DjQJwfpo9hU( zZukrGf+X7xNi6w?$!|CQ7FRX+yN?V(4DPYHZdkFBwnR5UFIg_S5`DOAX?~k(ZlpP1 zmo3dnnsa?`X&x_htQLAwZB-+etQM|zNt!1iE}@>fbQn4A9k<Zep0UL!tX{|1oR*=s zA-{;dbwwCMUeMV5vh1ys)NPH;2(142f)9DFfA~u>#y|!r$zF{hx2nOMgP%{_S?G{b zz(=GH`JtB|w;S5hhy`vRE-chK+X=>|$udtmFU3vc_9Gn&_3%YosCPzR(Cn~Kr|1iQ zvn>y__+)4V8C$?!OBQOIptUQH$FPmd`{drg?9mt0hq@9ha#RT5sI#8XA;dz-U)AV~ zBM@P|uZ0?k-o@>jd*~A@S8OeBjXPLi7xpG(#|U7`hj2R|f!k4oDeQt_UN&-}zjvFa zl_iOH_c2W$Nv7#11#D%a^qhYHulYLS^B~hS2O6$QB6vjs*I5~bQnN;~2|9sxz?QIT zGEUoU%@n?{aeBBgPD5G-?MudKjh8?>LNi<5Kiw>aoRW&Z^`(~*Xa{q5jMEd#W@cis zT~8W@#!~7+%r|D1VPj@N)vD8ItH9kB^LkUDT}n{3xY{K#?}5-VB4I=uj_}Vfg#G@; z7B+&ZKA#}B2WV$VAIHEec?c<jD&371v}?q54dXQ0N8g^5k5VP3O_q&u+5^O&WSo8y z!`YZUXzoz6^SwsI(T6>;JVjS*KnyI;kJE(c@?k8mvcdAQ%K<hCS`wBYG*}+65Qqb@ zty^rlUtswtNqECXOJjK#hb5z;Br<MMYJ=s~{yMNcX>A&;A)#O_5A(EGUQ5<}v3%0Y zRK63-lPibftQD^#`rzojZ0?VOW_Z~kJ~6S4oR7`Do1S&Y0>rN-5TBA|cn~-VoN<=T zeFuog=1!$?0GfkEJmZG(IK8x9n6E5mD}ng+SJHltl<vUgJ?!WEM2c9??1~h5NrG3> z?nQ`A+ng})cTD=7t%8#V!HW#ggnXQ3^o`(6jBk?(0sfm!A&LxnKO{CuA~A%MzKEi; zqLr6BE$GgZL7&2cp7LZ+<OQY4*wm`nbaZ~c7GQfM1Ru`8Hcy3`Z{pg8;7v*wxVdIh zGJ<c)6GtTkZ?nAp0y<^e2wpt3NekkLJno6B*pUc=Z<2FFtO)*VXpWxFktoT6F817w z;5CR1f*&v<$V4G{iN+lk^uvhvu4t#^x2YL{;MWc(+I7;b*#9dP?Tc0a%~;S=tjOL7 z{-q5U34_DM-3VR_1!1VKZn((b$ulX?yRvVE1_a+LB{GUj7vd7uEWooa-Jz72&fvj^ zV{%KfiDJ#+#q%|rY<-qFP*na-u5Hg*wEKI!RLY7I&+4tBeT521o{JWw23h84&mH6O zpU-nAft!*Pu-gFE6x*o*8;E{*Lz{M8VNL6E?&%Sd&_zjnq*pq%jDM*haU;;31i6J0 z%1Kr$*CU@wMq7{kt*i=?K9p5_oQ)5>U|h^zAHO&&T4Duetv~rizDN`DVg2egMpa(2 zZ@;9iN|=*PzlrA3d*vi%z?CAI2GraUM5QHLn-g82A82t#=~Sc$ZJzBsxxG0?o>4GQ zo=XRZ^7VAQdsgqpS4Ow_s;NpPM)^tz%eV6k9UnZYLF5~+^UY{<d!}&8NbOsW|EHo@ zd9PFP^3>^Ce4{Ll+qLomXefJg#{6=9n(Pa8E~tU>ooki#r?V`(STjXex&QNji?|1F zY3%h$@?Ruf`pqZ583bi{)N5>*j*pf2San4|UyYvP_l;lu@p(_5Z}3cZuJ(WEC#v2L z{lt9u!+z~=%dqjoKx{poWq<w@?^V60&=td{5asOdulnsBc6&ed<3Bzh{PMkj<9B}H z>EHjgkABDZiV{;rgCF}_^YSUo`j}y!B4mZA)u%K}8526AL)Ge?8U3qP?#!6Es=PDf zB4%23Qiu;vdYB9*<9}Y{JrQG^WXr?K%~1dDm%sew;U!`oFi>W<XXAQ!E$G~-xkzxM zKwvnr{?|N6&e-exq~xn2KG}qI@^BWVio_LdpasUIIiYmfgYrkP{N;w4zUsuBMLm8q z#prtd&MR1-p;D(4t;hGB>es6ZQRqjz#?${eVs!{dV8TyUeNhnu*q`2yF|+DjMmh6g z;v%2|N{7w|x|!Fjx=NH4gB8)Lrka$p;ff3NDYU~Y=rxvVn$&bRU67w!-~gGalg1}1 z2=#G$Hn}TPFV!(Jw35v1p)gYX)bH~&1tn_*)`-_2p4KiAC02$p0A5#l{@_7mzy#-= zhTziF`#G}l1+Fh9!s%utX5!+F{7RKSaTjawbm7a{6@HE1pNFJjayddg=A&fTb0st? z-YxoeCfG8>hSwhCy--Yvb*QEjZ<BC7gQ(?A;+O0}B}Da#PDz=lmY<>x#y@6OnP?>3 z#?MajK_ajo7uZ)psl`Qx<2Q7Ob^X!b&FU|FfgALB`m5r>uuNz5d&mGa&FGZ&Vr2EN z=kFkx>(_H!6PKA9y;Ohn_w*v!B!4y6Z+EIsr-bNr;gZ`6-PiqDR$g?quM>j$ja<K> znv9H-6^E(-pDPCDak&WiR<k^(J`9*~i>|h}AmjaRk(PG9TSxZ4b$tI@q{ZB?z<+=L zTW9vab$0(--?;y+Z{Gjbh5c{cwg0WV_rLXzI3#?(KL6SQ_t>el?|c8`fP24wz`f@W zxc9jO?)~Ng_x{xZ_kQbud%u0aJt%$OzJKX}dw+Dmz4uE|?85>dJmB76Kj7Yv9B}Wc z1MdB22i*Iq1MdCw0r&ok1MdCY0r#Fc;NH(4aPMOW-20^i?)`TM+<WeTdmlgG-me{S z?^8?nBzFT-NCXNs$o(S;iG)RVOTxBff*wI-%}|J_4LyxQsO5>FNQv<C_sz3Y*rqbO z8YRn-^%)8C5aL!B#rQ+glt3LFO<<gtfeP}P6N5-Sdr_J7sgVB*4dwNX>sRU<zgprZ zR;zd{jxOcf8@M5rh;Zi@r`tcLU$k0bi@bP|`_Gm4>+46$H(yb4da!xT%7BwN>d*PL zrjX`#UYDty8@<cmg*XDQ^FAZNuOrv$FYNh#Tl}KH9tDo;&;4Om-v(N!uQO;KYRXZ& z8OdLg0b#Fy)U<MW{YW-iSskt9McG?jS>;=Q0LrmJfEn__pP@C%r2@di?pxoIv*OtM z)}Pw{*7<DTxBlevt$KK=e)0;9(P_<Y%r}+Uf8ZLGE&gOS-m_U3ihV2i*5zBfD|l_G zcgIgSS3Y!ej<Gy{xn2cZh{V7EqNZ6{U!MtZeey&9;9u!*s``3W#-qT4qFx1b1R?|P zetGz=Hv)bHwpfLRX$@q}^SO(*Ew~u}Q0#{Qb$tq_+YsynGQOjD7>M|KlJxO$=cU<Z zGoLghSK28|G^q+!Li|bzpbMfU=Kb3<a!e^LrryFXsMDo$k#2wHAm6<HdM%*(I;f@^ z+)jJGUT}B7UDm&1L-`VJ&k7JYZU^K$NO`sXdh9Mfw0Z@c*fwB({Ee83GcyJan?6Vh zY^qD0&^m&6hU>EpT9P+ie>01)obu~4ND9c3^(UbQad$>0q}dVqopF^v%<4)j=strC zs;jiK<uybS(e_obG9Ptb<ye#IzxGdiI?RI}MR3u4RfCvU<0oc3N7>E$l|qbGX;kM$ zb<9Kcji5fulhtlpaSW%n`f_o#>Rm!oKp&#dRka_x4jaOJyS&PRy1r3reXd3xY4#Wr z6RugnArU>3BYVU}5pt4GX#W0K3q!xa|8|4<?Pgr#zEj8Mwxmr5VjMD0!g`+UwL z53I4^B6OQwffS-)*S1DxGONEi&2a4|dD7dy4$jd%Q#-T4tup4tmv{74MrJs`xAy9% z$VFSeon~DpJ81RH$jdZM+5Ct_p(%W%HRNlqxfc+cctm6${n6S{U4eqev!hIFf3{wq zh9dL%MAXo){~bX7z6aM<2>6A_#0Km2U5{U?|K`8RE{O%0;mfs8T4xkhq1mBdpVCke z2g1okj4I!Ie35O>u^HOhxuJ8GED|n?BS;xfW3VkyMKS$H<`TWS#&T1UV%$fBj^W6^ ze1+A!zA`^oPR(?CqyFs?p$?lVaiFP74dI_pTS?!=si|Lo@e1|y>y0aQdEY7Z>J(jh zKD)d=>usg~t#54%*4Nj!2Krs}%dM@It$b^%mzi1Wf5^kb^{w$1&!9E?^>2`*Yh`j2 zYI$vWadv_xP5N&8qIP{_0Ff2zqfFZ2WPfmy7dV%w!T_F4I0a<!W4rnB3}SO~qWSf0 zc{VxT{6HT~jx|42!dCOcFC87%7=YQCI(pM7CYxVSbp0g;bj)b6<fp0g6Zd5Qk!Gu| zuFNJ70dASg<T^a@VGYmI;0h+Xnn-0=C+^w!9^@3MaX&aaq5Sp8DwXjTg2N~r;ozXJ zYjpn7Y^yG28)Cgp=C4ze=uB1gRmJd1eLfXE{2p3#;+|4PuY?%nLKI6neL`&{6rn@r zYxDs95#2Q9a)eSfyoVOPR|y&}A}K@^B6|pBdIdG2E5GAoaQ@E`x44eT-Z(Wj;S898 z6ZdF$@$?Z&Ix*YkRT>J%kQ=Z%!Ohhh^X+?9-}l}Rw+)td_|Nn2p?BLfx$h=#e^|#x zEZ$`McD<@|4p!L|8$DgAS02I~)~9n5zcWx~f0Fw$PuT;f*4Am7$Q&X+3VqWucXFF) zLU!PH)zm@tqY2)?QMLURkBl}hH{*h!y&k&DlW#5d=2P=k!qu|-RiX(|lt#n;2~9aQ zUm<aR>64mLF2;3coftJSJ`O~`2kC+y<GDPweax;WS{P45CUp;;OZVlGq44YPVy?gc z{T~=z2ITSi<Q0lsmw;Q>vnpBcUdTwvVm0FHsjT9ptMhYefgY+k1BMMGmz8B6hGhd4 zvWh{IfEh>yF(wq1zE-G|Y;A3_$|#9C=q?l!(xhhd0RujszTQM6+mFm;8tCu9*2Fh} zk#af%KVY0bE<U|jT%?7PuyZ-o>9;oFa5%_6%yA-eG!0}++j#ymoq~AiC$SpLi#F0I zX0xDqD{E`x`rBza$t)f~LS||V&(Ih|rohmw5B2duLM0j<5TdEHQzbb^<yTa}Rn}a8 zu&I_xV`SU%B{APcC8~@AFkqp+0>u`TH*&MUf5UGoFP^NXC#%uPYK&D6IG9G~?(Fq& z(x^HH^)k+a-e4ht7jY&9dJT~QSB^kEJSrOy$t@-P)rE|ikc>e1(`HF}o{8OeViGVD z?lf4_*H+)WHe7n0j;fk?lJ(D!GowH$G=gNm5)T9sRFgL<N83gV-U{~$-!n(~$seYk zLp)$AmIjPHT;s9N@T6@_ALN?0s7OHExY5&i>B0bV&Ga2Z>BJAE7t^3JVVbcu<ejSX z@<BWDvoQq3BoBd}vcj#6Im0g>e{o^!4O1Mtb0T~Ssmn~us_l;AlX+FtPt#qLeSKCN zR;}wl$*oU7e9$is)}KHi7AhTU=Er&R0nF`B{X0Qv7z2Rvi9ax`&g&md7ja?gBAD<m zUQq)>N7i5RbD}@KQ69JI-{hOWJpTte_NC0~FGgvlzSwFjO64xq!N2u&l|21K?sMl< z$#M(b9a^c-jI!s4=~`C*whP!SIkZHTyGm7{l(CCOeAZ8$RCUpq3|ufisVY-1=~E?Z zapn^h0DTOoMm^TF<3B~G0c+qTK<@)kBEO-*4;ZmG-^V^@!xr8A9Vf?cwF62^lLwfG z{4&;E9fqh5^LvD5Q7Lt$TI=h2jkaMyrt5fPl(mMF<TRU{D@ScyJP!s#_>9XeAOG%; z<;4j$urT#cbCBC@XR;)m30uQOPwd+K<nnfwlRLMwoYHodlWm^**GTgC?NiI!S(+E+ zUw6Ta7Y}-TviouRutl5>B1hdJ9^n2{2iB={&&0I3RvN3O4(p+g=($bK&aD3XYt?Pj zU-K;7CZhUD1g&R~4<;-8L-P^m4}G6D<TAVUKl{jMK9WC35!_dnbn=%x?$n;FOtjJ= zk4)tk6f8X-lH-<b34l_>2_}7=mq)HgU=GtLa&c-~A2jE0ghWVCBwsL*>iUh3L#_dq zmwID_0+9Ct`iJLZ)|$T>mg)M?5U)Q##NLKBsmtki(u~{cpQM3X^vt8~nP{dM8#nE# znwb*4?3gJG|A?$zQ@r$|hP#>MX1H0k(QmrSb^+`=hzf^0vI^;ZUu;t<wLoYe(g>fB zR^q=Al*$rO$BD`bfr=WaSfs01azwXQnUqy0YT+a`g(9vZ`{y|>7LO{SGWdX`S~(~T z8p<Wt&>qM?hrd4=8}V~W@rr_;5Hi=)rC>Gk5~*e&tk<tNe-sWWYUFy_h_Bp52Q-V- z)uLHPG%9KqegO)aR;(GDX7M|kMK}+-7?xjd7d4JpNxDJIb4ne6@>^<949<3ZG($xT zefE~#RRP?_kJ^MHwkHEH2#Zie9jWWNJ)!a)o$akjC>m`|T8(MO96sBI&{Z-?YE<?d z{b<bn0_Cea80CVeM2zf9_2isZG0I20wlmamjZjBQ?`~0AoIKzrHYX22KIE9HP6)3s zp-;l5W3jEH5*6x5bPw8{(bsf`wAD!jtFdK?RT{>chR2ee<jKsPgT|%~R5#4<PNj|S zTpKV9$2@Q9+41PvQL~wj^QyLV53Jgw5<W)k5)t`U$3+vX3cTUmF|W-4rfil%bo)>n zKb_5|5=nFIS)Z?jNP6?yiTX2=P0&-^1+YN=h$H@ch_z<T-Opse@fFOe?OV4=9z8xC z!DGU>&LuQI674t=?Kl$cI6^CCSXZiPh%<g)=1CeyBrDw!W%%qLi!*;S<LLz>Z30SN z8GYfj0I8-PAEsD^SyofIWbJ@d$Mnz!@|rHjVO?ZHVkwVdPP6nlJ%jjwG?A)jqQQ8G z0~BK~OS3r%yyzJxDpKC#`B6=~d~Mo<pL>S%r`fNB_#RisHIbFvc%H60hsv~|h%>sF zyA7XHuvS+px|(ZoxNFZ6$dghaJ0)Mx{wD=9q8k*3xOVxPj6j{86_i93vZE~aERFb0 z6R5&rlM1bJaaQb{Gz`{{QXTD75q)^AQ^6B5vtez!#+)8`aBYODK=EIcu(3Hrp@-1B zRxwUEp|Ru^L*#Rx7*3fmwMJ1PmcU0s*=W1c5k)#~DB#hdyjGwzl$2R&uOl5DL)LCr zGNmGF7m<!5A{`~QS^X=1rj*pwcBKeUdz9s-4+TTpX|WyKm8A13ko}mI1oa>qIe0k& z3Y5aGnJ<PByvsaFlg8u@sX|iDGD%=O2^Bsj^CLSY%aPa^)RB`RYLld#A#gbb0O{B{ zsu0lB5trIorbtJIRT@!XV<9z}Wfm_|<6qS#AyYa{Vlp~Sl0o&fXB$R@Oc-57Ir4E9 zu`HK=<QI8caNFay1FZ5OxhSmAVzZ`5OB0zfvAin*$qeyDnmF<V_%sA4hyz`i9w<ns zA@J;l`Ehbph>xs|&(GP&&5FrvR2>)Fq(cxaATFdc5O!}+3N~_hV=CyV8R<S&hDX&8 z;$<Xyv@>ZFq$VD^Kt0^+QHi*SC0eRa*jjVF=t3g0kR0xjo{^5zide%Yz8SNk+n(M@ z6<leAS=wLkvsQp7P$SE=YSoV$G$d6QT3y?=M$HLW60d*}D>a{h#dKMBPbGl$;Nk?V zJSnJAy(1+QyaU)sF@CGnk%+WRMJvjh4jhrB4(8a>2g;Dgcy9|T-dZ{VfV*fd=F2;4 zu-~)Z5hh)w_vQ3Hon+gh&;Ehv6ZZi9I|zMBme#w`=hBP&p-&W>2w%Y{G}Y*{-$9@K z&L;VO7kyG^Z^qhtRxXey*Ip2L0!+;jMxF$v2gJhy0D7MyO|u5#@f(Ook$WT0rY_+J zu#jrTq=`b2NCD1>?7GO4XVlXM<-vhVfOrXcS~>}N5+_bUayqol;&(J_f8;rd27%br zAYM>|D6`X`mmYZ%C%;o*sgD8<{aVOVegu=Occ`|=lM}~clg&QJR^tm8(QE^GB_WP6 zgN$;EJXdz=2e9EGk!Lljjy;H=7w<E~n$v)nq>yUir6|D1Cp|tVjaBOoOnl5c8LLJw zW{#_b4*>AkvB6~l6>DIq^muhFP^Z!t&gsW!wjI4%i(aiTTKl0+&Mg<}#1$aaNw`^d z0O~9y>qZUgJiY^U(o>;MX_^tJbJ(KJ5s0gOYui9Gp-yPpi{)|Uc8~^1?Z95Cb^z3u zP$$31>BVq#P$xf`zIcgmJ5eW#BbBc{wy4w8x<H-SC3%mI>7irQadq*yWTC{^u|S<X z(LtT&+{qktlu)M%P$}%Lv8|7G69?~XlKLZv$=xR-7#?ua!WFc{BF7VxbgYG!Ja2ee zN-gr^^xQRo2MK3nnju&a^<MB26&LW*(y!t%!N~+KqojbBeDA_bB&rA>4{%i;3@?#I z#{@4C_Dk?`ybLcHADz2}zS2}Os?E4H@KS}~8bZvn!-xlF+ot>Lf&oIA$Al3aVr`U3 zdxbLj=%P$d-(wIZ6@ayNqs(ETOpnH6>Yhhq2g)oXhgHOpDA_||H|m4oWU<);Wp0bK z7C=*H7b1ijplQLa)vE>5c&8v4?*y6+!b}1m`6>Xu1T=x&U7+csUR$7v*y;#LrV;_Y z18BbdO)?j^O<Kmj4bWu5Hzct#gf^2Yu*rwOW?DG#>uqvw!E`=)OJMVaq^{`8nL)Z> zlgA_^<LFv}&Da!g@G`7U2yDU<ELUrIA%RVEmC5luLeyYWmX-j2M>;2NU66ssFtN*2 z7a*fZg_gi3<({8!o2>*kw;KlKP1*HXSG8c1dkxqew)F+rJkf$p9Z6}?9Wul{>Vi$` zYr*DGz~+(+gYUFU?pUn6MUi`hO@lp-i6lqBA;2brRuAq5n=H(ik6YaVHnq2j30wx7 z<F6cS;<6zu<vy+Y6WILIuOd^Y^Xiu%;|6$^^@Yy&MP7X^6F6xOrob{e>+I>)f&v#; zFOZ$jPST>803gtwyvCS1m9A17h!>_#Ejd{a!+9N3Cm5}<DY6z5zX-fr;CD=&P7xqe zr#Da|10ixLRuqUti#Jxcrp^PKMbP-7S!^CtUV1i?B~#}nXvh{=r;!g+=Z(EhowQ^$ z+l&TvO`XaK3hv~#8gx_n^bZ7tjj8j9%3oyjAg)KIPIf3};FZq;IFH+;ZHuQy3pK%q zaHpO3WN|#O8ubbvhbA5qorDEvwaOfwHh1r1@x-mWx5d*f?N~f<!&cth4GmodDNJPg z@{;%lT9!x$Bm|S-)Sv-M(bKF66hQ@=zoe+H#XnIf&gYoX_38w_j6R)R5)eLsyEjZ! z>K9HI^=qfSlTFc_lBvDX$=*4rJar@+6panS&WK1_*gO3+meM`!om(yPjJpYWHula1 z@?5fa9`D*a6Ed7{Mmsj69h=dP%|M=P@(g<?zp+-RakwGqs>s7xSd2XV&B#+Pcu}v# zk&LSbl^Cu9pqgygMMdko?45GWBe$KHS;!M*m+YNy7lxq5I)@b`6$Ey6+dF0E)_h~{ z^tM9VJ7vlYd#7ed)0FI;Bprprr<zFF(Hi?1G@<CNuy=;+=~dg+YB%X929Il00>Sr` z;An_<lhu;|8%A>sqO$2VX2D0`3>rn!QOtYP1-;ua@@Na#7D-1NvtR;jr39Zc><3_b z#AZQ+J!U}#00dy`FN~X;0tMnfkv6On=+nD;H#M@&*fr=g7tFI80O7;gm;1szj0deT zu}|OVc$4GPva&rfadRie+uWUH$il2ie1u5D4z-N&SUq(yUdr)FHzY!BxohRp0^@yE zo0N=+sY%9o-6qLUtED+oLBz^{@o@%uC&3Y>#K(e=-)>W)#0Ozk7B8$3c&Ll+csERm z>Bcg;+f+=CO^L^9n-b6C9tl(8MAe=Xx*IafMt4)0_KpR*GZmh%jv3vNbF^cTmw7PI zopX(*f*MmI0!#gnbsw%i$H%c`N<2?J9aAEkz*BvJ?lzqmA^>WG?#z@6bSL6PNNU&` zQ{wTRro@mE6;Ug)HEQDL5fj%Fza#|`DpP3~T05e|R+9(Bc0}gS2QN+~*bZ+;gbb4% zk>e5q+NGiudPM6t4ee;ybiSqbB|Bno4?7}vJ9b21ak3+h=vg_vS1~qU`_Rr_?64y$ z>_(IOLa<JFsfBf{p94QBo=dQ975SF%6TbsLA@#*5f^|DR*a_D8H27r?wpZpYiUNJ| z%t2^#3D#LKNhV?IpdkF9i)Qirg<zd*sha*753&hV;tjp^GQ&E1uv=NB#QZy8-FCn_ znG;R9&S-a2ur4{WlR0r?2dvxEoOn1`*Eq40IZ<S^FefJL#>J~(Q0!zlxOe!iMR-I< z23^^Qc7t<3b{iA1Q}5%#-f2wS1Jc=rZ7e597e+j4Y+cw(kj|2<H47fy8`8aiF%j8I zXIo>UB65_w(CwInF%bv9$O;TBV`2;G_^r^rB}iw#iXol9?S^!%F|mboCfR);-3IZV z2z0x^1?d(p><*-}dSMm5H>9&|7#($Kr@#7YGA4F?)iO%##BN8!WesEdkR*9@yV%W! zx!LgrgtKS&m4a}SWeCTZ$bbl&YWf(-W~`PVT%u(l+yVYz(Z#+f&XTA_ag&`WZn6`_ zHSjHoR3z90p}b_N0||FgTyhB~$aDx4_wqN%EaHWQg!o=4&I$oxup7xWNM6a~9W(HD z8!v?9aE@EV?1SWFv)&WQ;S^Sk2<wOB6gHA`aD``m4<y%h3ZG9-;lm)g<H=4psE+SI za+@izLP(B#3p<^W9Q6f~JJRVwgX9$OL;fEA+D^9zlH27JPLAW`6h`0dh2#v;NCZ!u zO=F}x0LdY?^x$qI9jnP*M!GJNo9u<;d}zHC;fqId!-V9p@Fyhq&3NGtibq^>?27YQ znkpo95jiRYR{fHAgljFu`}Nbr)3@&7k9B{1qVofKu$fNVAUb9`nPRa!?gUP929%AN z4vfW*WTrzK1)d{87i>4hPSD~xej`mN@{7I5YbQX53iRp^^xjk^;1t<*wTNZ!fF59x zs_}|7DV5Mpp4kEDmf9si*R~7c6zw9v1qI<uUbKtf(XJc)J%Of?oPp*<`%18V1fa9% zZV~3oZl{yywqV?2T0hH92;4Y0{}*<;qax>Rj9DeRMJ}Dg+UXMbK`zT0+S=)k?o<{> z@ekvSIE0<9vC(<97e+dM-XK`_1ZEFgGBo7@^ay%9z(~h)S}1$j&@s}<eFh;ANcf#= z+7|JGhB~G2#+|}PGSrn}AahP%$R!M9$m9j8^V1or%611P9%)fs+&!G3j^oz4s4fB% z_cRy^TY~D?2^NOBfOBdbo<l}N4B-W}QJudT)#(K<ptS?1HPm5~72P65^&Z=d_#;Ez zl6!?POkt5o#E3mA8R{7S&tng3EOi9+Y2vW7%2FqT6$7e2&cL{#Z}9jFo9g`BKDIi= zRX2D~%+7xV3)qG1ZNW0sk-(``@Sj#Ty{ng|8ruBo6SBjp7Z@?TT-T#=qP>~M4x4a6 ziH43vjTc)umR_cH^wDrEZ$bnqrL_evId4DR1EcZACwt0i-uU`-<$0u?T7wvSzDEP) z-FULvVGpzem)ng8_tS7<H&Aew3zvcsR~^e<*U))MGc4z>#3r+%to6uRX<>^91qxd8 zAtT+%os7OmQuA0Xx(p6|B#7arY<u?Kwu@6_O!D7$n&b*vpjz&1Qn?>cO{xMV%;YQs zRZQkxpn8yPPf<(?6okwOa|&E20$|wq_!%Om8WSHsKik8`$LHs9afmJ<K^gf>QoD?N zJa=d#AJ2ZY*Rk^P`xzKXPTW1reCFJb_L7~CFI_h-Kec31aKtl?ux3}HOKWU>DQr-o z76^uC^mt?J<K3^++SlQsuC;GT*d!d;vGyrgq72(#$KV&bcaEExou2G+VYns!mJEJO zUo!Y12le1?n7DEvOyscJfQhMSB#I=6&yfgbd9en+fql8JQxxhSW0=S!nnCQ%1wp+k zVPe<rXPDTr`yC1<#)@VMCcfNuza8$}7lw(+oqH27aoO&tne4*EJvXo%5+)Ap%0-5< zGj}H>R45^!MSfc(mlh4J@o(9M%UuP@$iOmpVD$~{Y?;fIVPCFe`SEWb3L@I@2ZA~n zA|j@`5K*iCJ$<>GEkwK-U+z((w$|_$5OESvbrQZ@+y7d_U)lI_li_a(BHF}|41Wl> z1Q8GP<?b;2ElX`cA#lc0Tk$D?a`|$Z1Vco<TIXOjF6;{t7nZ-S=hm~lhv}~yM+m6| z6dWv|AbRAmP*9KV0|jM-s~J&YNI^l5K}U_XP%zAjM;${zDxE-t7^!!J^Sx4tur(Aa zxUX@2CqyW>`Tn4A*)F%2IbYsy=Omm;CGId4vNqP9i9?tQ8Cu!pUQM7dH3^WOA>IT_ zMdS$-IyeT@A(CzZ;fe5-8ucFt2(`;Ziwz-~j1@ek1RzW|c6ohe^njY=_2pRrAt#!9 z2Z_T58$bwxrl4xQ<M+KeK-iQ<Yz>4WSMrnsS*-5~2#Kd)B|(#7KUPz1<NjUrr7;@r zaQ}8VX<tB?jE2Ts;r`tl5GK3fAps%s@5KSaWH(#}gfD^Ju%7@Su>^mN0U;rGuYN%I z$HH!S^MEko`%W&x`(7$Mm_qxE1TcLm)-T2PaS7Am{KWJhlN8O8Simsf9nhD=>#NLG zIBkL8&DaXrg?P(W7zQkp#4TH);D><3EnA_JC)j*>%T{=iWeW__K*L+M!b3vCSDmep zJh|-qcpXWPSZX*GkN%J|a`Jum%}7OfTm5uj`IolH!jC6ox{;0lWtk62%82n-nR;0t z=aEE+HHUU+vKYr>QI}UZe?vvhN**bAp8M>3COZeK^-Qlh2|@jyD^7}_EMgf;o~&k{ zDLFvv0uP1?lkXry?`kI=iyAFKO5OI?hfab1m+r7zd!IYaS(Urrk?K~#4=D|Q#_D87 zIKLJtWF<<Gq3r!q<MwZd-()|4(q++Rj!M;=bg`~9JRirK#d^K&DbpRlpX>1mpTF3% zOHrwMJyxnhHDf;cxcr0p)%x@`%4Q*?Y_yD<Z>Sbo+Mi=ttBh4qpkLghRFZ5}6v)FW z{q$uQL4CdYZms(=?bOe&a<e2TW5y~WAOEv)K8i_JIx>~X`JMXUoCSGGs{Bn{P9tyU z;2hC-ckFk$6PE@_mfW21Byvv+y`Gn(Hl{m$fLFhY0`E^roT(S={8#_0!mcz`Jj0Mp zaZwWeCc&DD<B=$?M*%$*poeVCr)8Mu3y*YfPKF2^`L#QO(BeEB$*$9EhFr^-)aLM# zZ5bOhtk`ROe-t%pIY!&dsH~|v1^K9I40ATvPtU|kzBm0k+JmQ4g(;bFlsR&TRI(PC zZHKrU-c_GhV;`$Kw125hFZ;^0<zy3Xb<=ygP4Ms=*E02=uL|O0{I^7t>V4|AI#RI; z&!f-jZSf>u85usBVmVcLx_;8jryj%;XB)*pGCx}`v8EiYdpYak-PBan`J0rHH77ZV z_+M5W<qPZA?+bqKG4f*F0^XYwB;knL6{U2O3puA6@+as4`tk%4f!5B4x=q&P<~HwY ze5q0dlUS7<4I)gH3mfV+sPtj?r%W$uV2Gj*g08+sn}0r<f9`9v`FBV2@BEr;zDVbR zX#Bk-8eGdv`D7)>8@r(Vo+uySZ1y+h_eA*!ky%i_B)H;>_aSXWJt9k#ul?!sfha%r z!<jLbDL+X)%Q?Lmv`;&;d7&eFbtO1z{Ii36C7mEMLaihF@QejNkOnXWJSS+<6SxK$ zViAu%>nW=i3JC_+LsO|}=>#hSnd8wg<RzegV#llVa!L}HOQeV)SaX6W(#GqHl*U^l zozY1Rn17WB)VnVQ3zX#+ey@gX3zOO0p(54z!Bfb9Kjhw!lv@KyfF=@5$2k^Pr$lds zC0HEKm`4kG(^X190F#Ho&s~y$t?+FZB@Jn%E|4rFI|*;tZxzuhJQwOmdXwXaq=lqC zSLO9p7tm8#Bo!oDjr~{@Nl-AO!=R(udZ|cS8>%hAfwDzW8ZZ}~%5<V5bRch(=nlzY zN|ut9+EmZbN}-UVp{fW)mb4PD71p6429?!dG(&GPfi$@pe#9XRXXT(fRt>1PZMx0J zX^Ib9EcYl`07F@nxyIeCIeD@y-R(vnHj}_X5uP_F{u+RZ#JklBQ`T#zYzSSnPs_EU zDWl!vv<p&jkAMKx3Eo0;t_%I>+;i=Lp$QrYzs3(zDoDQftzPxo-7y{F7IdefqDRXc zK~Zo{aav{cEYtXSTow<vmwjZ$0^@#<Pn+t39>&IuZi1h~Q&MoV0)Ebzdnu|+^)f5K zAR!4I{lG&ytiw=-)T-mVNkvLF*`nZ$`nr@XU{748FVfSz%%ON1Y#?|ht;G-K8Kpcv zsY-w9-xwhXq}Iyus@#j&_{}tzGAU(x_Z$hpT^BBt!$oDkfJkWw1DRc(em|o!eSfYS z&3#>7Ia%XJgYL%f^9c`WK(&oGgMZ2M24qC?X=oAK^sz{A0YoNvMa@DDB#P|Se1ieO z@)9t*E*A`Qtcg|u(5{Lb&)@@I;sG@vX5g8k6;kCHs@5QgM)^2BPqArbw60XrO6Y+S zD<)z3Pjd<^Z-=;s&yn%DoFUxw&#CsAtjK2vjSgrq8T`_cM=xYm_S`(vWmw;ET<y~D zncAQi<~_3ORwbf9=c|_R{OuX9@#lW0A~ybq5hQAaQs%>01Nh8S!(P$ysfy*rbX)n@ z)NY;5pa3T-;Pe89pKFjeRgTtsSy^UGiI|ZAh%h_4LB6YWHrVR;W2cL)>pdl)C9UW9 zOjb{r0OANV?oAAyeueXPzB$WdNN7Gp$68II!aIz6438)G2)#U7e}4Ez@}m%;Bpw`V zpxJ>jD`}XBa$YFGEq|u-<A1gpu;U-T#9+|-qB?$0?nJR;<%{Zx<^*f?CR4AAP#}`B zQ%co)c7EbL-vt?Qndd4><INRkO{SjegbEzj+sZ^5o6AR(GcQb`=(0%7lC+wVF*6{X z6+(lRa#7>w$KjDRuJGonh?wJMC5YL1YeHd42-(y;d(eAvf|}a{ZHrKP&xsTUrwIGw zGS0h-?}O5GmZ+^1^5iVZ+p|;1?b0u7=quW$8az1Xv;vKW3*e+l+EQ_w4NlYT`P4L4 z4HW9g)ca5iGa7HcNkmg<d^H2*T2Bt~4a(7rrKo3}C_VxtOA(Wn8SV{KNG0gP9?MZi zPqZ^zVO&7nsPc0eldOd)it@FE*j?Ws3rI*D?jI~AC~HbKM8LIZORUF})FiQtZnX@T zPNHpUo^*B6r&fzW@3ejT=eW*O3R9${+LnM~MoHtlveQfmMQy8X^a+-yNRt1ml0qq1 zboiqBHD$fUjHppxN14uPXz)+?0zT(>0HTNod`#icn<BCCuiY;}H$InfuBM<B@f49X zQ@f!lgm?^f3wk%rm~5wS<T|`Z45UVFLvdkb>Bqpa$ZG}<tLaXqJ2g4o466)82Rm6s z7hf!^NT#6v>4idj+g^AoS<g$87SGO)2S4}3&-|Ib_q)07H$j|CGV--xm>7DN^`ah4 zv{(4>lqsR+iRmhfWM`V~L0Bqme!|7gx2xmtncwzShS|aES+xyc7vgJpM|^!;e9a)9 z$8CB>?CU<?4a16~(YzFBw)7FU{aI07)V$LYNr~cq_@RVIdLe9eGb|DX7ld9QflQnZ z&C+yvy9EObiGx07J?l@x@#96ABp^SOU5NRm@~9M>0=QrKlp~jtWVV<E0-mkY*hp9C zWUg}`ol8Cfa|c+_CNr31)>DAqDusoF@gw3~4!?AkouS|ucu5^y)iC=o0rdrNDy)$> zPETZd0(h!R^fDUHC9;rFNL&`<4t=sF4r&cOSojnYf%ZCoS5M@y?r2Bk7MokSVg8D7 zHaL`MDs-?fMZ|%f?keMv+OS-qfujb-0|elwyGV>^y+?#6Vqi>2!Y4_#6>6Kg8}t)W zRqatV#>ljgxk&;}^Ti<sT#<Nm!+6-Qk75EEG0sD4Y#xk0=<Ec^4_SyPN+pOR;+Wnt zx*4T05T15`DR_n2D4T9s7RJ;ELDGEnuvnTOLmvvzI21~{n#e<=tdUFu3NiUtG)bf_ z988HfUmY!Qbq<x^YtEwA>WqiZ4>J}G9mjN8Mz_;NFH*5uMp*-Bx}YS_l-iqSDrPBg zdUr@;{!p%TNK_v47i461)__Qquvj|9DI;l;7_fGJc~jG)Sr+3U!}pk`uYBANJ5A7{ z$mc7i3aNPyfC+;ExGyawkPMkl^b68(0M6-o!5|p3RML7}Y_%AIz*=mm%S5e-;8sF_ zOLqg^ZAL3E&w3JG)=$j2IGYO+@B$K}SVM!}nFwzqpp@7Y1zs_?GSR|lJiKy}Sp`6# zM-zZRYfA+hN=%XK1`twg)Xg?1V39DyN_|?#uKYSxa&HcMRx1gBNnr;7lk}e>?!C$| zUj+c`KPLb-JjK#pWI$8+J}h4dfC0LYfKcr4!TA*9B;9ra34n2%O_SiLEpZG_B>=W1 zD3t)%FafXts0{#PKagKE0Gl2Nz&KFqtW>Dv1cK3PTSG1a+yYNA6Bd{nAfMyQ7%d~N zMrJZ*(gqe3v>4@Wh7LwF?twu5T&wMNL#=bn5>n}`_G|=Qd4dyNt+aH-ZPS%A_lf-c z7$Pv}?0h7ekbfu<m^mA$EAb_31_|eGd#kuLD8**nROTQcnQ{fH0D@+{R||xmwsIPX z3Bs@ue*s|tXf{7R8`z~?MSxvkBJ0?->L@5byPv}(L>d)2vt-0#b)oUiHOvYMWEL`h zdFPYL4CzlM1}$pI4X-d^{8>J(;>~Nl6jrgxecffThxwXf07tfZG`Znr4eK>;5y89& ztB?U(YyG_&g4DbEeY(%ujUy<S<9L~TrcEmq5;)PQ7RvXaoo$R3$s+}JXtxYktkaGm zB^#Gr)xHA$mpkv+_<t=ps~lT|4r}C4YHSkW?y*$@nu0!AJT`JjPv9d`Rjk`_<k8IX zou{<yPYx|!d7Cckq%5^wrm2z>v%)5V)?)@J1uH~-y+(5Ab%_^BNDih&2{ueg8+A)4 zF`&Q*So!mlZZ8KrQ4pR+3i1>!HHGV(x9g_BKT8EgJH*kH11Hwk88XQjt=yRwj9iza zT;_eLbuN?zHvP*n4Rrd)Mjqx{ZNC51c+3ewJ^d-iKh)1BS|en@TaxLlGWM*n-!caY z+@5XEdyhA(@es!1!(rXO9}*ede??&A_UsYEbaEnUwH*8oRjh`XSPk)>i?G#J&rW2p z<7G}#!6d}4Bu=qHRZ3Fm$uf54Io~vkN{btPNSnhI8PwAkbTIN@2IoUWR)%ICVs6qz zO6x^&4%)?0>r)pf7vt@8Q)9_Do%14_o~ek^wX%{Gjl$6%GNmvud3lj`s+%xO?jGJ7 zZ_rvu{9J}XZ2F&SNoMkcVc#rLtn5y6LG>SEYhP#D@HuM|dk=C@T-e#$l6$FSn^Jd_ zY}k`IMfI9m#D9JAb{Gk>dr>4TSF~F-Uy+GVB12bj5<d~Ym2gGBN9ngtAk*(j`Ym2! z{jG%<A1srs+S&wX-MUguO+D(h-_s;E+@AJZnqb)+p%LLjoS(Q}_AX{Yh9pSE=K=S} z|6{M{U+=v~mb`B)vR|IBd`Mq<zdRp*=xKc${qlVBp{M7o_x_FF`Gu!{|JOeH9e;^I zxHt3vzVL?GO8S~*$}`I(x3{X*zX!M<|1`sowf(0tj1Wfm)9vHmOL{RXU6HKD-0<Jd zSDJgDd&AQ|HDCQudh&Di_d=bk9}#DI*CMu-`ZezsOTG(7wfresVNw(TVyTFg<sw$P zMQ|AEyID%+9AtO-5*B_6;XjTT8(l^>3OVrmHSg9%o?xE1cSS6tih3d7klC69+CQ4{ z6h|(L#sSD~o*G9Zb$1S#T!wpPHH1c)OKPFy2RNp%S6r;<$`cG~1({I-7g)4v!kN0o zwcOVfK(M%`=b#>$gt5Pqu;j7{RntHznf(iTK>nWgf##-*$4q5s&`d-~3BAiROFc=1 zp1+Ftp`*dW?Uluou%cx{2oEAbXd9ehrVy#73)p!1ak<XlJ$`yntX?l=m(-cPy)#*3 z4>^5%b_VM?l{go{nvTDMKd=~lx8#>fUHkB*vyd5brJ4kWtR<J@Orsykp=|-Ehi6bX zX?bDBXZ^kleD6K|_hG@%s4yY=!vZh4w1z?e2<J<}fk{$<^yFsIv<}7Vh(lTKv5@hB z>D&k4sdZ>sH+cQe#u{G2$L3OY!-U-vSW&HG_nfQIDDX9m9t<j>2wL<_;vuq`@KAB^ zLyQ9tl?Oj0dAptthyp8f<Zn}%vU=;3()$0FU~aC;eA0aPu8KDSUC=~uYY9-&J{!3) zSKnk$9%qvO=x=#L6Nk1i{f|F0eP=s`uglNy<cLFj>(R9*Z~>K9>i2tJPMTBoZ`Yi@ zjyYA&x^wEJ5bcz*5I}@$nQ?FZxonClX!;Ixw3ng|Ipat$qEEO2nJ~SZ1LjRog+IQf zE=Xhpv2{tLsnYBw(r#$kO|&5$@~{h&L)|2l3KPgkPy{?6`EGA3z9~@*z*T(Qo6ZG0 zHKA}nm!#pOX00ReS&2zX)-|C+S<)c8<rCAPh#VZLv6q61g9MAQ-j*iiPj)#m&_uu7 zlkuhs&wZC3Zsyte|L7OP>-qb1>7wS+wp<|q()OffL*N0~W=j?qjJBS|lHyT-(diAG zgY{ltG%^Xs6R;AG(n3G$o?)HiOfVVgw-M@@N<AMRXL)LcijhA2yRMc3Xzr4>7E_#- zxz^XJyRu5(UR$1heW|zjcHYJ4xjXMD?u=_ARph%`HR>CVG)<gY%$C1Qeavb}&e}uA z`Wx;)2{{NDG38zkmY1KM{w5$Xcg_I{0$kjcJrYH}<&NSl`ldy1R)1WFq@685960r- z4@s2r?NJ%$wN4W{)O-s;QZ=Kj5s-n+4ohKVDJLduUZ}tvFV?&e4il7;t(50vZR5jl zRR!V&!*F^>AGqD^nj`rDa81gHLO4}-J~Akv$lJ3_NB1TmP(V{mtDUfrpmaV$upWZ{ zOShnTTrXl#($a))#a)>=k8kB&nFI&ldUs`70r9PWS0+rwx4~VRmNR@C-jyMLIpU1& z7dlK8I2pCMKP){Mo!6Gt>&q&>ZHwd}w?}ya<fnY293v^&*Id*fa?#L)aYkEu(6|cO z3#tf`h7WL<>8))1e4Y<<!W2KWY~}+yhV)AW9k7U@aUPtjbG)HdM$kb)&_QoQlWFpY z*d0;uZsAmH4OZ!KxF`+h9{o@cIAx)%|0o3-1okze)*265kR6JF&b6^hlOdG73WZ2< zFdw+B<@e{d=9(vv1mZ4kOPq+`v|e8Ln4c{2_j%Ek)jH=jTxqliP4ia$r1w?%;Y;T- z!BON&@~8EmrOv!~pHT&c!Vg-F6w`mnxazSlXFnhw%kCNel@CZxaV7tOv5x-CvG!KI z@voN*X)?AbwFTWN?#aGut;ChA;k6)un^4+S@!>d74Jub~gl9n!8Zr9d91I^AKh#rM zvAhN;)7U!LRRh*pAP*y2fJhFlDOlQSFe!qn5vWXpy#Ii$W(*YopfR**17@d#czPfy z8l?Rg?Kp=_a6by!q}&rrc+7z`{n@JUsD7B)?xQKGi+Bci6>lP$o}x#%J+#Vk3v8e- z#m!BRFtM1Dlot>)Lp5@2isK&?n?jGsN}?WVp+wtwp3aFd2B}BXntEiaz~)Xz!gs~3 z&?k(7o<W(=SfLyG;(ii@C*hnSjZF;O7KK{mkN?41zN)w$Jf4c{f%tSz8e}2!4pqb` z(qeGU^obasOhuo|Ht3<~h^ZF~j&9FRFa?MWYK7@Gac)B+&!LR99KI|27H0XUS5f8P zmMKBl-&uWamc2fsmiouzEA`fYJ-%{sO8x%$I_2vhtoT`3Uw$vX(t=R824#8uEmID3 zi}A?Slw)%Q*BM&F_v3R!*Vn`DWni2CR~XVd(Cy-E!1`~FT>+<))PF6$s;=*kud3@W zix*Q}$J@FXkD^wTMor;z(3i}_a>-wcUZ~{Xi?1sAx8m#mC2JHb3Kvp(VqSb({wG|Q z@zM_vFAa@+GpY&;V-^+yaB_Wyp@x!mP^3S$DF7p>ln<?!VO#{lH_1~<*JQIr(b~}! z&dMkZZ<;)m@|&V15psIVhGFdNb*}X(UL-j-xs7#?)az0@#YNv6VSt1Nrf+1FPtzpV zPa$dxC$-!8%dcn)C^}Rf#n`aPgVRqV|9L`{$lP~EOd~S;I$H%<Lzd%cC|-IYa=4!1 z5zT9qWDG&_F@VBg$QlWSWc-wQNfqmuKVTI>3Hs-E^k<tKZwfK<Nh!NR%v7XuyP-p` zv2F!iR;!1IGDE(}8RygiZcB+xQpN#Z*T7;*(a*HHXZ7G7Ako#H)tzx?B+HHoqazZn zoIj!>yv<$u#52nfIF=fPhWDFtko|N$49DaTDNA6i-j`t?HG%k2F@44hGu$OXU=6$B zvxePqQ?yfhoWYmqP)L7UpQ6yH$TgrjC`RVn)NiIZ=D<Q}-)ZG3+Z$4n$+f@?f|;Mr z$FyGtf9R5;DIWGf;qZqWc4|O2uJtF-Tv-sAKNN^yj%3vC66CA@%ZX)>axwkAiP>H# z`0vJ7<a7NK@m0)eL~ph)>yxlOy$XH-+fG$goG)!jE3IOw=+$zPin&^fIGi93r83Vq z(r|_p`26baf@qR^p9_H?x%Yg0mE8N(LSlSkAu$$>%IjGxi>juot*8o-{a;O{S7x+o z(T!PF<!#gk-(Opp9r<SN8yR%D$sS=99*@&Gb)=E7(W&jWrk`DXd1_jkNpy^@(BmH{ z*hxZvrDi~v(m<dN_%?L0upP6___3U8u$=-*1KWYT=t)}ICuFxHmJ~u39*4`NiLsEu z<wYBq7!c2|kf{q2a4ac?QkenJ*u0r42k6Nlge(IB8<r!2DVgT+fk-pg>88=Rpo|TT z3B`o+MHMH`T!Mjrr2vgty<&$~=vE8_Mq<5P)KC9w7fxGLjM(TS;5bXWJTy0JX5qX{ zP<;qriA<vuTzM9QAbLd^dIbS^tOg3jN8Ta?r+-23@=e$S;VKCxsoU)){gd1Y*<$vz z@t5h^1ffe@H2p?0u`W<Rf@jSEjau?20H<&YJ&z>QWczIbA>UQM=Gypw7!&lzTh|pK zkv6r6jcmp*uX)z8D_+m@E58C4QY^&~2+zrr(eFFmaBA@S48><9aY3>}j!j^VCV|#) zU9l@#d-8EXmvp+26eS}J3{v}~fOtiVcuHJ&J^C6Xx&VQ=wHcwFSPg0|u*w>*fE^MZ zN<EeOq^BtL3`K%6qC@$WCjPt5E2x~)=&?B>$C;gxbDwHfHNw+x@XLbOop&{m@<FkE zXWsXaK*v>o@g@zLeuL}10PxjlwZkiNSt&1?l3F@;V;KXUOoQLHmBDv-GZs|0wUB>; zzBJW|do^Slshz`9Uaay^((c9b0HCA@7K=iM6zUdH(per$CAHDAOoeb)f$7!`sB}X( zWocymTV$d(VgZ3A7VY9CEHYZoG0q+<9GV&^HLgcs&H?u*Wd}JVr`9Zo1o5V6F<-_r zP{3t%)s8aXa68)(W%kuhC6n#8v+4B=s?F7_cg#6>#%mb@;wZ3B*6B1dGwH=Nh2dPo zlc#pjND(6qpa2^1Vg?FpRqcf$1(olVTE@C&|EOGX+I8dp<|pm^QdfAcC2aqWu7N$% z9PpNDV@!j}chI)$_sv&NX@Sd}h@*v-)JHl!=yr5YyjC?}DS5>~KC6jFdA7gnv3~nl zrUEZmNW<mwX(=A6m^o}quP!&YujVcu(7SL~k1@2^z+8o$o%>L|E=Y<n9HlG`w&HQv zuJ%3xJnc0uBSu~p*ocvbcCNAL)zVSk;=ENw1K57owg%h=W2oIz&1AYtdy!b8G<t~N zay_V#W==P2A&+ImWWYnv0k0+K=nKcF$<YoP^!U(+{sIdM=J5`^5fX^0TjpsA``Xe> zi2Z`4%lWh^t<J}vUS;c`XLgq$Z^t_ca*y|m5#%Vb5ae2ZDE>x*oDcPnHgyEKUA)28 zv}p(HGEJsBvt`Rto=?2<lH`sO;l0bDW0_mQ0y&I50-}F<sliCBodi}#Gf=r?ewQ_3 zI~&&Fs_e>q;%pX@n`vleepg~dgra1=9J7}BqKA-Up)IV6`cguz>^G>`TlNQ(fm<6H zL4)^Dyb<E3dTDbhc?DX)o5egJ-8I5)8H2oQ2rQp84C3onJ}e4!N0QtJOli5B${2(^ zwXxH*+{pcOgQt^+R_$jtl3Z`bLvlTzenSZK9Tz3dq}UfyIx3TP0q%%cW=!LZfu^Ih zJj8gCQcU-xZRfJ2wkX&wsRu$K1X_5kka(s>)q{+dd?h+5s1bdr@X8p1g$$M)NA{Q) z6)uAeHaRvjIQ$^ZdtCuLLckV?y(nJO+lbiSlI)ZY?p>Yt5V2@LIqTI{J-jSq^&B!* z&)HkRLzc0^VUn>}uB+l^WUSyvN5(oLjUg9{i^1VN^JJ;!?2xg&ePpbl^0JJLh@2g8 z-!c{ypwV8Ev6}OQ^^=TkF_N3Lkg+Y+mkiPn@Ue%CE%uVJw9y=IMAAxC6_TWC+B%ev z|LRc;d}5^dr;&I}e;x&IFt?h5!2EZLK=%N^T=VG3tSb#=o=T>XH?Q@RhJwF!q=if( zLp0Q47grw*)jlnPXm@dGFO5bofom&8M~Bl8Btxhsh))Y9xKyLZ;5I7;Ip29ZBsfNo z7K(?F!BAWak4MBh7_&mN$X-Qnz-r<L?Ty>bMi$5oJHSSaQkRAL9TvjD$wp|5tA3|} z_hSaC6<4Ybm#5^w4hbf1umsa`RRh<6$^_jtx7>0&yUPf9RT~M990~zu25gW#!@ST3 zgs68qFDc;eXe1;CC@Q3jt205kGu$)aVgTHQ<qqf(#Ev@<wW6rHwOV}o%}02yU==B0 z4_7*Z4Q`Y<0m?%Qa#1r;Gqra5c*a!$BF`4+q?{j-AY!<g55|-jC^hLF!h<oe2^-`A z9gB;ip?GB2c?4#a@q(rguWFE_=gk`O2Q^UABhV-l;tzv&^f$(0Nhhl~ucgp$F&4DC z84K)aXN$KXCmh>`ByNUvCCcJJa0kJ&1hU^bP@){c5QJEQ#k;hS@3PuSFwqI<Mj^tm zL3CjvVw8W{{knjOarAc*VLFnuWkN;yga~t;hKU68V(Bvz?hO-D-aGb1xhUEw`zi&{ z$`Hpsq;mihMlbPIs-N91T1X$%Mf<?pE`}$?+Eu1kby23*!*r3zqSQs#d6QkFF1>v~ z7ex}db6e#r`XZDWVeW4bH)dC?7b0GK;gUY^8WN}o2?U+(P~?lU#0BiMP>3Z&{CKib zz{AaIikBCwDb=??0OPr;v;n4k2g^XkD<;j%cQ|JUs)i-{SJ`}CmBh@U-|lxXUrpGZ zEbHZDC7?d0U#$Xi&QglW-A25yHW3V2h&UQv@k{H|TJboNf@VB=9fD=SxM?|S#!cAa zQOPE2R=OmBsX@$YMvNQT!^B?Msj6ZhdHBj299(6=WP->SU~)dJ(GXFZ3oKb?CYf}Y z819}Yj*BL1Ke^^1^4;SboFryKDrqbE3jf4RWxM8z(@YaHDGTc^W?F(E)Yc>fkt!1j zYw1O|f<}@jo)Ogg0|h8u#t~gXwbE~~IV~BN9;t@j-Yd7sBMbr>SkY!l4~e=o^liA} ztYG-_82+vb(nGc%v;*#WNz!qT0r#+JxZj8=xR<oTwrw7!1G**A4xbB8@R9HYiz|t; zg+UD^&fW78WgdOj=eUI$QI`C?(h1#N;fv8<+7%uEtlbrEPGy8$rvV^L)`+rzVQNSh zPqd=UqmMk&=<9qWBRh?LE6Pl4n!kr->6e^)q{_{Qz7v~DN+N*>*uf4d|A_r0@|E!4 z-|yvp!d>dm{x6>Rtp2>T9vOb}xgzN(_m1KdkhkWU%fFaA)P`@rl1tU;1lfy*MX~i3 z12%6FjdeNV1ni;llR`*Q0?P}nK<=Q3w%niURQL4a@&|LYZ7IO?K{$qzTP^I?34d^K z#Vn@<xdM`TD3F+azghh}YsSBAI!pcW05$!AZs?D?>B~)Xxcp4#@<&s1xcqeI^3N<T z|EMpk4bZRP0fq=hCXDB2X}U-~bwagyFe&ay*WLVjeCgNQmVQ03XywE0>+Fs16n1{` z$c6TiGmDF7+l$+ai&#Pu1EVUMalplsE{>XpW2AIde-i98{*_X$jI4epk<8iR1LflF z4?;5O^)D2Nd3XE^%pwJt*bUNDoMjHPS1@vgX0OH3U+vk0veX969u&mvLFNB{oxPt; zv-hRvgW=B>x26f%20Om0nCy4^@}sd$W#>9+*?AL&mmO=T*`OeXk^lTpUHiFweUxSW zqM!Fm_H4-t#MP(r*eg?`FZ3HBto5tcch=X<(ot(W1E2791?<76gV{=JK|kwNGaS@B zi;aVNyh=~?h~JI%{CvBTBMu?zwt*jX<*14*RU*UXqLKp}r0Qyk9Dr2kom~x+8{n(e zFa=0zF;{quU!Y+NgW8K5F;_<K4>MwmhQ08JVSEdatPnuVIwqf(w5Bdo6SL3nz|jpE zaE-UQ{V`-JZ7UuiUkF**bEkxn;(hoO$LHkZzdHzmU$%<uGBZfM?lKn0PrOX<==E|3 z$=i;}z(N~vO<Gke(1h>NW?~{eO+k(TLespXO&W46Kwu_Ezu4H=o6ZK!JFc*u!6-~X ze?i6#?Kkf&lRRL%^K8?&_Sr5EnzA&3f}D%;ceTqT|J7;Ng0Li2UZ7p3_!r-<Ao#<L z*P>l7JYK9(jRqX^nu%V2k<QrOQkCn2Ea!h2DAse^70@<m0ib0LFMz<dgERA3HErR0 zN(fQ+!fTj5>%O+AWHqk)Uva2_uwwc~RL!sC;}7P};3P2qqwu1+k*F^MUHEHbo7&4B z53!i)SllcLz^(W*eeZ`Q<#*nHUH&JC;^Vs4qZuJe<&<CLvnhT(m3D@z?m%IT|3%Jv z0WOgRo?3nwu4d)Sa$1HetnC2uC-^1@AqhwoW)~%E-NSbWdzS&&BOEH{Bhz>hhKG3Y zGJ%2t%`mK1pCJDTZAmL6Z@8BOY6tRnhEfa~fX`Yu&aHFXz;-T?N_eNrrWk${scPYp z9`pjK>W_b+Eb`dqBS1<VAODCxj#z)b5g+~lQ+4sO<5rbS#19bUFMBx;5cq%ImXWMJ zd#R>J1SU*9zq-q&f%L`$3N-f{7aeG>yLZmZ7=FH=pZC&U1;So1eU<Nh6gLJzhN3&L zb6;6Tii=go4A$S@ix?x`qp5F;a%t)fdY2mdWPGEc?~HFW^z8-j*PqLFxASdnJ8$G| zL!WFL`p!;6-@ac%rP!N>((0O)Xs?LIpV7z5&V}i}CCpnkU$v5^i$3{A)2sOAD12Y@ zJ_>)M<t)#YYl~$A!FQ}l9?WwsNj~@42Gs7c9I8M2FPgitE^5{(u^@_H;~x>LeVw<r zmY#li4zv8(;-al1GSS;s1_2Tzw?U=b3Rv$cGD$H2Wxa7}IupT>BNux^yl`PAbi)hl zyl{p{RCc`a0@v34G;#99==E&Lpiho|Q^cS8HhzCml-G;*X{Kb*vlfG^90XxpuK ztJ*w|?q?gAo^(n-UWo7yt~bHh7C!PZPs}Ei+wL}306Y80<|M8flDJBfr!`SE*pawu z_@4Pdbm|ue?AX$?G(0_fR-%GzQMx~!549hz^LU$Fi&AgTGGr1u^&V3*U1n7NJ?$Pa z=i|MRtso!Y#)auqKn4lMbBy3K|8vab_+yh|J=pakE*s{nr$>luK&r5}#~)|oqlyns z-O;^BP*9Ep9AvN1{>Y0}4l_AOo$uIoOK}yO4_N-HE1T{rxWGcO+VrlzIpM(s<M;`6 zb(6A1?Sf&1tme}@ENXZ^4n3SGIohZmTuXcWHkF@<>ST)6pKKnRkW0e*sGW2_-rA>I zyejVJj&}IT9F&Z}<iW~ikIP}CwxVpt(9!ldn7F(MyKPoS-nv%Axf7VH>40VcY*KA% zo1dC4?-!>*Awh+y{EtiJmHFCwugG(>9_7#^j<KDWZ(8f0Y)pb&Ca)!X^f*hN-2&xo zg{aN)qU!uJ>>p}tV=OzhDITP}S`VI3KsmJFK$9T}t-SnB)<$Uoj7K)TlT%S_Fe26* zGb1d*OB%J=T8!bAez7Z8N7kT&yf3rFjQ5-(#fxiclcde6g<_i&WQ@^N=wM40L*A|^ z_jC$mV=hW<wDDXJLZS`f-|n;!^pCmVj&@(fT$D1%Gai}=+q#$n26DiEeMVwUW6SzR z@q{UjCvPZAhjLKq%*a()C3Tz0A=jWBl+R@k*|$V5|3CKLKIqc(EbMze&ii@JyYJZ# z?XGrL(sPa%SlcVSP+@Pe67La0mMs|zaKJF0R-O6}vaj%HWudxL*(-vYIN@X5hIUAy ziKZo$ORSa<n7S#MaWih~=|Dru$C!?iXc%A|Lx|H-3dM!~e%EzB=i`0fl~%Gv9AdBa zo^zh({=Dw%>%Ok*zHWo~HCk_boGLRL(Th#S5kS5oUFRSy7nET|-kXtVtzrPBG}H0O zp!+w&qvM18Wd1slAEb}-m-pZD!KD3A<Z^6^f#l+Z$F&^U0%8vJJ~KFs@|+q_VV`$G zP&ohOs7COEQ$c4-<TWK<p9FU7o=vduTl-_P$DX}PAT+nggE4ce;!wI&^>s^B6<E%t zZ-MMXu9-jH9sS_9vAERhjz!wOW1Kw+T|mwYfW>`Jv%w;ue|a+pEzMpFL16YZ6+9&& zZH(SLn!V*3t6j)}WCpkp_Kq}FjTe#ycpIJxq2t*rYtS5x-&t|m?D5%Ce^hb&nl>IY ziWz6b+YHY2%ORyLh)ko_Q;^bQr5?y+1<mw*^YGYo2wY=x)+6v`G#YUEkJ`6+x+??I zGr?#CdDoL&QI=Iv8u4)%Y~kZPXCe78Ap;+$C!6gRmMC0XTu?0H)PjyGYD^ee9R%Mw z`@^&-xcT^Fj_fjDB_&DI5yPIMmA72OJD(aapcUo4?TS|?o_K_~WUrIXsS)l<en9cr zOzJbn%TKgvq++6+gPm5fG;sL~2n8%Rj(PErW18jR=HlU~JVb3nMC=a#sA<;cO5WfG zI7y7OIJqfKZq0FWGjUQb=6O*73hPyVtl%VBB1Fb*PZVwj!-oNG6`Uk4DsXc1*`hml zV5$(=N}Oa~fs>8E=FXmFoP=R10bc?q*)xihh-7gR&Hf_8#Upn(PBw{?mIfyel)fQO zT0xz>Z+<^c>KwzN4o>`W{Wkp&<y1mD{M350l{!rbT*H)`E3~#>;0}wxE$|tpz*To) zKCX@em$QIn8AxTaDsW?mh6-fYbAdZ70#^-9O{tH$hbk4gs1O{YOeLylPrT`m)R#DT zTf{{bf!&T{5<P_|b-_7~6dWIB7)R!br*nbf>P!Kefr;1MP?7845qgN+hC1o;zXB|v z6OPRGBG(~7ZBtLAM|7SUH=vW5-o=H?B^z7HT>4F!Te_227u^N(NtxR`#*Pu*CtII; z{G#dDwJBj^H=C+w$lORJPzT^9+l-V~C;T%uSk#SQ6-v|Wsg4Dm3)}`QAUl5rcoh|* zMu=M~cIb16TeU~y`w_QrC08QYq~g|BOih`}vDR24UG%-U_0(Ykc*2RE%p(EQf_{Zj zgz=%{ptJ?=+3W~(SDF!krxe7MMF0Z_ZP6~D>QdN(*(|sVg2<kqUB;;s%nANS0RVFl zc2I0DY)fhPywQyx=a>K=rpe;NoX~u5%*PKr<bJ4H@xg*CY%!lE=PO&)*y94Pr@H$h zOZf0tG!r9ROHK+ArR-4$?os){1}ab*EOn0>1=v6#_<V~d47&lC7fjD}`Xvri4(_b( znCbDGc~l>%@b%RR!1~dlDu3nCpl24x6n|uKOmX>W5c$$zm66_*=DNvxY6fe`g+n`7 zPtoeBr19@@UD@p8zZvR&q!i=m3;H`NKr{%z1L0?P_2npquX^?a>DoB7IQ-hNqm!AN zb$#|jqZm6$PG^6yKX$b~`=fpu>$BhMr-1>^h2(tOV^f1S&oPlTPF5*BLk0D1go~j$ zBYh)(6Z&Cn=hU{$(&+*ZW{fiu$zg3TTK{I>SUJcgQ}7gJ6i}cUwL;(JtQj&dJ*^=R zpenTP3BBh*ujFEm^9CoWs7^p3!x<kd8o^lMALD{hkmVO8RJaD*Vf-6O?ctI?aK5(6 z#fT3!Hfb!S`8W(i7h{K&4J)`ADnp;YpC3$fL?O2`o5b*=T7&;Y@p>7ljo|qgiPWd~ z`q@MQ@%z_$#HeTgM~@iTzFd0OfD&hy@cSb8T{PeICH!71_<a#XTyrxjR)s<nzq&3y zPUi<VGFyaDCU?MVvycDNLumoEAZXzgwfX#KZro-e7zQZ8tSty;Z9y<=3xZi&5DbQP z;lhDV35GotkRfAU5{&lqS3)q<gYW}&v$6dIV}YQRpqdqeSq}sZuKz_K7(<tsf+ibx z&@Y!#)?*hrr-WBbDeuEPMCJuZYqo~Ao<<i;;^-msybHzD0>>u<a^^8dY5fG)#94Xm zW;K|L<@EEBiiqG@w=68sj9^6g0%sJ}#?j!~;UBim(d+dGlWA|GO(UGo&9)4fl&q1M zjV37-{^=TNCfNBa$RY#Q=V2_+$?KXElM~pB+4o<6|FoS|oXBQxia7kK|Ku_oedglB z=`L!a%|A4aq)4uwgW~^wUb;FlR{oDjmZs5ykE00ex{YyghekIfDH#1A#QD#?cOR-k z>kJN!{X~ZzsYst5qtT!GVN`;xtJM0B83jC@97G_l#dtl~_nJ1`Y*U@^6Y`j$UGH?` z6xK%>Y3v6%S+LYg_MzpZ??b6RL3d%2SDe-n4TEc@lJ*96lE59O0Gs2uy~C|WMPHam z44B*S0+xy=EmQ6rU>!>X?#{HQXUi*(X~WT@nH1%M7KwciSjRBtt)S&fMJ40f?(o;@ zX28CQ1#)`>QLFnF3!gT?P;xn!km;`UMTFrG1A?2V^(c~$P@l5PxQ3ixd$V(5FN0vp zO37;WA>)v_Vd?$qYmylf`28wMQRsWrqpEMHs*350IA|gZQ#f{s@7Qt2T2SAyY}}Lk zE_y)Cvz0eC_oKLL07oSuRi+63&uX&D9hl>mJB^K{IkHznaR`6QhB|y~WY&ry9z1fw zl&|fV_Xb+t<c!ysW(*5`(HZw0qFm&30sWo*unMKW_;i{6=J+X~G5&is8t~8lesJY# z_WbWd^5eQ1{();gn6G*4Y!9qC;q?o6#F`VTCI~hK88)_j>pleC6U%W|?g?Qp7dCH~ zb?~vS`Pc`i>-R*`8tpflo}~cz278RIHTsT4W8G)0-d-rwf)#QIoZtx|tqU}eIwWdg zgCTVpHV0AR-J-(hmQmpXPK73z&SjAszBV(^pJJ%iDCsgqY&y;GzAWf-$XHT>OWj*O zFP6_s<@2ucdAWSP2gj{UpdS8E+icFw5}^<$fo;b&H)zgW_EK55y?}S@AsZ9BI5d;W zHRIQY)<8Lxhf34-n&hhI1xUGb^@@iX6!JKm(arG*^I?&K4w<%ymSsO`4DHtYVdn{D zH%pw&imh0D1wXHm4pHv<el}THA5*BaXh@r2hb#i?F28`=$}e&{b6O%v#J;(Vx@~c1 z+aj%7W+@F`+ifTAw0Xx2STV<)HgRWrjyp_{-91f<KdhDb1G_zdKRomB*8+WdEgP{% z%F{Lftow&8|0=0`t|yg`{6Qg=ccv5SBgaF`u`ixLSLz6`CQuY!0L&02p&M7Tj~^}N z#(g>1h~>Q5M=RDlzL@O||DQ8?4b7#<snc8mCtwYM&x}cE>0y9zrYgFr*4cIOaXLQ; z(GOJ=tk^`Tdo-6u>e+|f*sH;#mVpTfROUHBc=(W3O}aCyRS^az+5?P_3(JydZ^Bk- zQlU`f^(F@!V$;9WQ2J>U7@_W9pl}L(3H{WX-9X#y`yz?v*xPK2_mRVW@#+Gv(nffp zxybxCI+jYCH%v*JH!8LEaNRg!+J;jeI98{<{7=N%Gc2HO25Weq??$f&bKS*PvrpX` ztBgX{ux&-I`EB9q8^0;pS(r0{Zqq5VOQsmkswwK(k(u2E0>|CRPLQp)=~O^yp#9`E zMt1=n0I3eN?F=`!N=b3Khq>OuZ*0zkSC}Ln$i@7|K<;9YPoJP3q4Tfe&~bdeDnozj zj6)}K=X0iXdUe3Q^XiP<<tCHk?6--4s=C-h-<ux~=EuA8gOhO<eJ@2>-$yu;ID7up zo9yV-o$RmQcF1I%7nAj{&btkw`pm00JxSozAfcRr>r@ucmHpHmG1)?M@1|?051M-z zvlVeePt{)#$~JItc}49<;T4d*Cm7%rHNCaTE6($E&NAA<GD@YwZZeGjMR|yjD@<he zk;2suV<uPjgaQaX`{-9js?ym{PnN-OKkXzK9s;rP7=8ZzZ)(1auh#(#AK%NPN8dzd z#cKA<YoY<$do+lk`ku}Rn9(-TAAH7@#B%zJ6D@4p$-h~OFH!#eYB9l20_aznf4@pR zaQ54;b?C1y|9+KO+Rwc{&|57165!vj5`%Mgvb2xidB|k{1o`(i+~ZG-e}Ci+G1)(T z{QIY+y5z&G>%}=oRvBFI?~i|7^6$@GS}y%E`1j9!?G5<%R?ojpPZoE0aB$mD5$)IP z`7+!jb!SY9MR$&Gp*zR7(4CQW>dvkBS#)PqY~^9(Fy=cE3(7+bv}~=&nx*dSo}ymp z&g@l-?i>yrexgE8i}%gKp*y#;UjiV+9ht8J3C^AYpH4T89Y2~qg<{{v?POrs=r z^N8JFHi9oKN*ZOSk$;*9r9KdjjWXsD^Wrk8u+L7l7&TW=;A3aCY}~O}nsJ+mAut_5 zWJdqP`fVxknHXCx{(s?UYgxXXpk+qmb|%vh#7<$p5v4%H)S@nws^{1lg;N!Q&zQ2k z^R&k<igEEf?vewxcbfY?4R>sAfhk=_U}M&~R2rHQFwDk!_-|?`!QdPXXobiYh*mIN z0lnRzjp6X#s5t{?=l<p<I`T4fGLACLFy+#JE_Vi8pPxS+Ul|VnVVyU@{>ZVwXEJh6 z(2_(T@^ZWLUfrR49@NK-E8=dnh0=XFR0o8?)H=|tb+HU$q5JR((<DQpZU&Mwt;`OW znIfVUO-Io(iNT`f*(Y|(u*QpSF&&g{2`BBxq9w<%@aG@=DVx&p2QjNv6VR;x*VWt` zTQ@Dco)fCe_ZVBg`zGzc(mWX6TT*uOGSwF;;ZmQVLNU=$!OWL8Ut#u9@|tRX{OGU5 z3daaKe&gvnm*ct6kv?grkGWoq)F5}Mql^@O6h@&kjvAB5ha<~uHT&H+1`b4ntnl!Y zi_3%S^H@<b@LmMs|7N<>Fc3$t;W-iiu+|3Xz^yEFjzZw71`wlH;6MC4p9%l4&B%4e zSEgIO-&ZB9+n_XA?RAtmCyW~4>^(n%ivHBo{D;b}r{kwG{jnKKf1*!{+|K@sJ}Gjm z^N>79G!hXy{|$E2lETwm%`y$~Inot6xGpX_(3-S0ej$>Z#nb-yIE<O-iUI*S6_iA* zuqMa#Z_<&S8DTN0hWih`^8rq*vfrxbGYrTL0&+4Bo2NbKxdMzH-zY5dL^8cI5V%5t zK2oYU$fj7jsI^)FImTqV!8Z+GdB@|I+p!gvIwsNln#OBpc6UTH%iNh;2-Y&W$o`rf z-E#atz`|;QP-4*>T!}+rBxGV)_C#9NqJyxu>Elh?UvX`22KQI26v*}WMnE94NieCj zb-t8bJkdC}jFK0@;xx8@wuxIKVs!QRdCw0pv-2b>UK(&rBn}qIq!}YQ%OYgHF@DHs zAY!~CS15s126y2$bMT;$CO4M*ruaFULD;yN3gYzwv4Bhquc`-Pkmmuzuz6=dpblA) z-AKPXoeu!mDsGx;4p@aIg1ePiu}Ly^vP4pg;slQzE?9J@ljWVi(@grwh;o@+I)3z` z-Bl~JvzaKCW2QThyCl1b<<YV6RcV2KNlW!t+)TOQKdK|_GC%;^QP`Vv#DQ+Uw!JXj zdKU0Ql=pLP2tFsh7IVe`-v)F#MPCRH0#FMn@O{%E!I?hfvK>lLJd#1_k1!p_d=Xf0 zA%v#^m*y51gL9jS&IG$o7b!=R1h3B51O@lWx?E(hpUk_R_x9~UYJ`V<lgCgZ^WgA% zBlT@vE=F>lQB{C`At%NX+8EXfB!Mg=N}Ogv#{Yohijgd%x#Ez}u0pYjNIFMO9b;(= zb!A1BGzbc78F7cygKYHxS=tbD4B1o)6{%G|@SItzJoW9A=HR9fXpE&3^T-&yE)t2H z{1-1$A#B8N$G(^w$PU`9;gB)pS3gNT{IeXO$$6k`<1~{%sTI?vHHS2QbJDgwFkk-P zfsE;ZJyt=^$W!FIdY31Cws<stPMzmhkF>WCIobyxj54amHr$(r`>l91F8S~-emG|I z^%y$sL~pW(WiEHTJP)2$H&^^e_gT0wKjAl5F_DVrH2QB<jsKdaZX#|Wj^h{^T21hy zWXG<%6}eyo?SICs;($aJ6~+2@pnkk7f#xxYzN59Kt=lRVTYpJ&Pc=Eor=e!;Ql}v- zqd|f%rVS0oZ4~}M>4+aOPNFI@=Rt^qxZ2r6g5<rF5Kna{KlCJ|a_U)bf!HDrA-dp- za3OMO!X54r-pa`ZhdvCp!`+nL6GNcs)sC2@?&#HmU)?c;4qXSL^w(f+vkcwIXS?-B zj69)}Gu=t!VNZ7L*EJ8lOLStv&<WBZrgA{<p(k&|Me+=R2~BWsPN*XUqJY<Pcu@^J zn9`g>iCb&R4>oT7ym6^8g6XcqICS1enD-pGk!&TVzD=KO(lP|2M4#|ztG&WB8hdB@ z8^GWVHQWa5PB8H6>YI5IWgeR{x5uZ)EO@LG9PTTKZee&SM^?OXsl=7gZ3In}p0;dY z>+qh2T}%xK9|;IEor4fw0Cx@GnyN)QVS=lG%_T^f2I`8(qLx1n!j#NnFCV6QvLdV{ zVd^LfOvR54rKJJA1xoz7>K#I`r&;~jbXP#^mNL8h%0LV<@B+zl)8G;$U!?tE7jr2< zY`VjNI7iGLh^%E`BzK(7YQuEn_^Jx7nIt#;vb7`f4$LkITHS5@P)Td&@AC?Z73OmR zt(E}cqKc1ldm&Yg_Nn6aLKUwUsyH{C^r|@hs*2N`s`zM(D$e)FrmrgQ$qWbRHLR1m z0V{ZjcqnT4fETC9r*s5n&LD&Cf(KxcBgSe(X!lbY<#og;FLQ7WBFbwpizu&A$ML(2 z@>0-0xYN)DvgaYi!P*kvgr1n~6;X+(N}{*KU-WuBuvk|RIU&m)G9n$EE#eD=h`6v_ zn2m8^#OFdW5d$XAR2vx3FoXAK#)v2^MwpBmjurUF>m51>uEtn*W6N}PdJ6*~0F3zk zdF<9sM-p~O`6|VDZG71BYudPqn!%REA#<w5V=Tu~Sv&zuOD}|%&3nl{$RIcG!%dB+ z7kW@^%t67qdN0@75)|k^Krm0;?6`RKWapr`E3stc$-;8Q0*?b6oD|4C(qQ=aZ*51I zsY0~=0<rv@epLdk{>$K+?;DtLzjYV;Q8+1^+x8ih?Sitsa9szOsJi88h*oue5S;%n z3Dx;NifLphAxOcLe>|A<Gi&AY6ZT)h<~<tF&Ys~eShiT@JRjdY-)g>rXzh(umWL3S ziE5Z(Cr9Fyhg)|!u*v~D@;Rjv=6#2$`PEUh+kJ9+MC~x5R>pBD;dIwJDn96_lz&}S zd4+MeYdOv-eFtv`-EQjjioql0Oe<G@K45REH0oYj5ZEWDxiUUD4&YGSxS~=_N3+}1 z`@-mW0!W~`${nWM?6QaCATu0<r`ZvWFwC4PRMrS^aovdr*}z2!g~B@za5X4ZiN_!W z%5VY?unyz$CCJ(B5Xl7h5H_@SPV(Z?79RSA8=GbD0vZ{94#bHc!}uZDQI5CTKFpdF z2+`%-g0NIISO(P6Jgg?^5`jb8{Kx%doAc~-jhy4DvWU)ix~Y(f2roPE$OPLTI_?;K z3^1p$)ele@ImWzro8m_=6YszPMzh-kH^6go4?WRb{QNn;H#_~^R%21e|Ec>(O8e5| zAh;BT!g{P1n1$jTf*+J8+|<=0)Wwm-VsPDfE=J^2XL4qxW!?lvfmksSf>kXZwOHr~ z+W-$-!O}#37e_aMGZ})~7{@_l+M?N?Ci93^IA%$()$5w`hCSjB;p7I}&y?QVJ;g4~ z<vdvhnXLIhv0%*p)-V6WFIUjfEUx#C$$|nFfD59+0BX*$l3s9aM#<N48Q2h546~k> zi(qJb1dhM$1-Tp>K_WEEfYMYFfNBy@%wZ0w5M!sOP8N{{N^?muSCY};4uGN@Xa|Dq z6bQjXn0f(7G0vCUhU02*3$s^nAP!1q%Tg4`G{6P2BBm+t7UH*Olq5l*E7;<yp%@%L zkqg;9-$rgg;@LP>Jm*sup67@+Vc(yBMNGw^39yF|Aj|Ygh-0uIy3#X%^tx|H`2)Z} zj}o6$u@ec&=IWvkL~g#4qmP=|YH2RoVdce3_`E#cd$4<!63l>i3yP%dH}0T-^h{UI zTx5njHUfTDUNQ0@;ZGHw{s}k|?G0u>|JVM`Z&t25OlfxF5d*uYglh0!)7KWbXBApz z;<FQ8|HQ|md$SX44aa$(-X}3j(plIufJ<*Y5=Q)gNgDJvq$xLVoihn0&E*}gzFEG* zHI#f5eeXWzx>#-ifSMT721C?_x23qiljLrMg$3CR5P%mZ*-{|UU?`DoNEw8FC6QIk zBu5qlWz+`;+9%nWQq}u7H{5XFOGt5wjol)3z8%~Su|Y_8N(XE~NC!4MX0(u4yDbld z;2>fApDeR5J<^G{GAD*HHtcjjIpmC9Bdc>EZ6w6l<@-9~D&uU&i%7~4V3<kAZ`PoJ zxWvdDR_Cx;v$>WunU=s%F2Nn!*(cVnj<3go^+5*YnE|D-9@bkbgj=de#jtDb8k!oN z#~e|^a|9Yh9l@Lzv3Q)AW|~9Jxg#x!6crx&vpfvBTcjlz;t~PUI8nfxhLMf`*P2YP zH~{|Ak=d!)&;6E5GyY$~_VGI?q)SiIr_xsnA69r^AY%Cn8itW>Iky3Gv!zMxnS=r2 zJhHE=zpA*_p}1}fHV-Ha(CRBySCi&aE7h*e=|+eNMP~(udw8Gr_!ub9W#y-*N5d4; zZSVcm4_^iwZ3$G2Uqn6gi^$gag=wD3a378x+r=7Jy`mI*2<%?W8!4(LfDi*FDqmMW z!08RXISU%$+l6VxelN}=(?S@`F`b}0J7i*fY5N>F1?vDGl&++J7Vozb?+4+Fg|DD= zQe!-==pCgkye6uaO*(7W#~+mWaNT#RS#D$kIpqf+AsaM0TgKC^*+%G$d7JS6g%lY7 z&vjPo5xCSf*w?LIATay~HE!eO@(#c&-XqPVOxRJO%vCB6vgmrOuX<eVKOxHvf;#a$ zts&@wLYnb6BI#=lRO6qiS*vDzpBKPx$x2I!Z<v?(=`3-tB{m6hIauQFES1<08l{b| zp11K+S>g@0v5v9tV2QuIRKoMW2TT0qyadYsqLal`{<|y?Q=yA0SC`&G8sWnB5e>^; zC;lSwGW;I2fL*a))Ceg$fQJMSum>X_dPJAUbn5Yc%isZ;{!}?Fcx+o^)sZLQw0vCK z<D3J;pIkWF3HNT<;DG}IST#Al?a}#<N9RuX7uNK*uMZ!@4xLAnU|cXv8X7>r=HC*H z&DSH_x~Gab`m{+lB<x9s@o$UYnNWzB{NY+P`yaOa`;X%9U)>s>s+hVM>D^be=l}0& z{CC+;zjb()=Qf6H8NVKi0WSd0VEl0$L6>j%E-%o+{n(cWQ5i7*KXG(a4WF&&H3zoJ zbm#*022%AK_Qy0(!>`V95wFwrIq)36K9$)p-;QNaJSQVhTqn{RF<ompL7DbsdP)FH z=PK8{fQzsUC@|UMdCN!3r)Sx>RP{!^YicLM;fLum-fKR8xdV-P-FTc~;pxZe0CP+i zXM>pgta@`D7}rCwnR)1E0Yy)3e4X>3QTd|3IDVnv=tsYp{$k#OAZ8uFh*<}`nDxOm z%f3z@g-V8B+XG@&E%0Fc-<Rv(`Z0pLvC8L;ZdH-m$o{YkuT&WhpQ$qu6^V`9il_Gy zbQ`}u10JBM2z(&f{O^j0(|7<eaNG_>`LS8W!Dut_xX|Y2$PK7e%f2H_>r5VeVlY6B zF)%F0B%O6oO^D#!*Fc+Me0`tZjutz+q7%{>SJm)$^)x2Yt(`BTl>z4yWi0EV_N7{! zN4p@6P_W(9>Df>Y^|>KXVpT(xryJQsO%o_)dx{%Q!i7LWmyWHe<M%FN+|!U;-bx(m z7V3LUGFm5wBFP%a2jl6gy{P1_gRY<qf2$eti>l>YD2;7OJS517x#tON=KkRw5>M41 zVu+t$55vS~^<=xblK*-u3ET_Lg)q};mF9%G3$RE@Zs6_4a~EKb7!_ZD%tPo#06JDi z-F*_yMYk4lCb&zZ_(DC`RDgP}%{z#h-=w06@~oPg9LhN~)GOy$$Vm%gY!hU)+)=1J zt<PBY=>BHRH(c?A&}~xahO!mvFbH;T+RnBf(Awv}8N7!3c4n`OlUsw?FID8qXMiXn z>~7K8C#VAWs>knOn?!Aqcb(z4vmgJgqj}_G<3}m*0zu+%9IlfKJ^nzqIUFinVa|Nq z>kZp#OVK<ysZ0P)Oq@X*@Aby!3IdcR!=%PA@PV}q*SdG57x^-Yr$9hpnblgV5gMck zGN}5}l<4bGm|c`)<u;#p?rit=kB;|Y1i`Y%zg_m&3nR$Nl|B#*g0du$-%Ja!d*$rd zG!Y}N;tmUAf8Webj)v)gxtF@dl{3AWkU51wjX9RZaCR}pyNicB3b$#G(MF)7H70j& znl-TC*t_}3mT%O_o#Ipc4=avF3kN?z9SMj-Q91PRX<*HwdM-fdsIl|J*s&F($>q9x z%C4OSaBaX^*Nq){wgTKSP<D{2YZ#eJm^I=EHJRzq9Q#~W(_eQ(HQ<ghUJNS@0fx;@ zAuv&4P?~gIJ$XeTmEm6d@jl_c>C$F2MnPGTN^x|_OdY6gLZvHMRu;mxB?SO%i2n9F zP~Ka>w7jQf<kao3Ww?ihKe>kmQZh3J>VI$Nv<T|6V{sig&JMp+hNA#sAyW-=MEpOt z`=RO&(?N?O3^!wkSM{7~@!1_YvXRQ}x_KNRKX`0W5uv115n-paUzA>rTlmP=M}Xi! z`P7bA%5&n~@@wkKrF_wqX+L%4zI>?6arF=;6E)`p<x_KBDUT?yeK(4I`JzYDe(KSE z`B0~|7E|8axDJ+2t$L+A0><)j8&Da~qW#pdSIV=K^W=88p4mXKAcw~F5!Img1L5dO zMqr;Pka{i};XJBz&FwkDa67|FdrQ%vx~Cd`8;Wltdz(_Tq9Bs+S%S5?4?hcP{&9T` z2~IB37EkH**$bbCa=@9{bqI4PiC`$7)D%$xzQ>$s&Dr7ad8IK8ax@Q-PJ>K>OJv1I zzMWu;TZ~PiPbkmX^hSm-WG<p*!nPkbYRN?&0|e#G^g4s}vh^G{Q@CD?hE~gHpeuHu zFja^@Me-EW8Q{lKSl+S3f)}M_Fx`9rk}|EB2%vv`>nuz*>}xP*;5r-4$VPV7^YCgp zm^yt7dhIa*=5cpNY$ZCz)*d_IGAgdHj8T~_B4NZL;Wyz7dT7x>V;4P$N8F!FryaJo zHDjze;jB!kWGxvNXsn5Efo0t9<X*=Fgvd)rI@n9iDnp?o;DK?C*M^(a8vna+nQ>H) z;Jt`s8osln1Rnof-2kvKv)jYFlYMf*m5u@L1qn=W*ChZHbSw?|N70}dlT3?KSHt0t z4!pkFNi^f1w@KUbPicu}<J#p=$!P=GV88ksT8q60_-FUUA;H_=e9gqL9MUKuB3RMb zc+d?4;RRcCZFR-&COZ^uM2?!kW<}4n*#<((ig7Y1g1+ZpQL6f<xOw`ow%)}w)2tDw z{%%%;A%!aNt|_C&CCt5Xk*jaNv_tLCf{&=vI0bIpgs3yECnzeI*ZUc7+<3;3(;>|G zR*{mHXN;}nmCd+#2{d+XjgK%65S``a0~~#qA0e8-(f7;+7&=eSOmaWCk}Ecl<Ie<t znZ5AY)ITmX4=<vT-<wP;FvVDb=!&b7LNo^MzWJ5cHl*l3D98_Y6jl(CPoMP92mSLQ z|BU=I^v||`w*0f{pAG-45AS9SO$<&f<^L}y=8zWFhW|#@X%4F{R$rBjh(^xEBz2|p zV?6#r;mx<f_*=D$42OTWCh{~na$%q>Kr{Y-EyrF1Xr6XZ_$eTQ);+Ds&?XYhAab+a zS?x~OKcPYs-F_1T7-VWG+IejgHe9|Tcu)tl{!o?v{j)iKSSC~+sFGFpPb=<>;uV~- zIy?S%P+R92ovh|;<j?T>wHuB75C2sd`!BZ%_g-+tadp<gJZXwXaP+lpH_zqGkI0i2 zk0Vc7e2YA3@eR{A{v2B2&jtT1Ql$}D#iGC!6)JF3SC7Ry)vuDZj1;)RYJn}IM4n@P zHMS`}%_M2rlyWbhAyvr2rT~RU%p%U*kPfd+{GWzzsH!(t-gf)<7AdQKW|6Y$xs{Yv z$dWQN3F{2mnd}Qr6f82;bEgxVP7x0jDi{|sON^7s#k#1nZyw8IwivkBq|+gQg^ctU zY%|h=t6sSI=Och;Z5{vxQF2Kx(&hiy4*&V<h$UVB5Qj-HJhEd$)K2Q=%IZHVMvNZF z(5!82tZyg)Fo8b=+YimUoo+l5vd5qAvVl<1v3N~4p~X<lfJg8P7FXfUj&qAZ(@EaB z%^)|}ZPPoSL_^uW7Q*sAE}iA(BL>&<-=Jkq9gz#s7VF8UL3jMQFlBSY7}ygGqDOXH zJ+pf*g7HSrj!CMbEg#<rxrgk7GHx?7-aV*4`;H;QG;DpclkFdQmZhCXS&=-*0FZ|N zT1Lgr!qE^T@!W^H9b^AULo|Ozkk!&-xA;XyM;4)wWK=ZyZw6L@4Ow^89a%JYh5^Q) zg=arFX3frAq!R`^&*rFB#)(R|JjNX~HwN(dbnEKZHPwf@k)s7J*`sf_Ah*?b`-j}; zx{QE2`B}`qZ+Tx`5SJ0aMl(K1aADlYwQ9>+wf$Ok%|!^X8h^I|w5_YdHshVvE{hb6 z^~f-9=fIjTwPW4DnWe>_FT72c^@osRBO%4qY|0`EH_#l51K=u{zl`v0!(5PJI2flJ z>WMZGQ%dAqLU<OB!Xh-lh|52>^w-Z&w^tEAZYbEGT&^q@CYQTTTm->f=Uvu0qTvcm z8`=b}U`KS%aG|qQ)_3vj2XtexkMxVZ6;3Vpy9+RvZF{%=+yq0(q&d97QMdb{?$CBd zI%P-Q&bPSzhpENj7?N$RU?f|nz{sT`21afs=FA(9-G&n|mDuXL{TSItcLYYlUKf+M z<$ZM>-1>9VoqOu<BN$hp6}sMu{5QMbH#vF_InP>jg=}Ya&Sh9k_vr;B&Jau3Jc)^A zN8j>JcT^}40r?Qp=&)AK$j=Kp+zd$!#(S$I0k*A>1f!jk!wtwP+KABkf+2wgwO9a= z%!zH@GNG3ubf`5E?$FRjSX6?4ycj{Oy(B?|1fanil7zgD_YpjNfF7!wp@+ihq=lfz zFNhZQH@1os%k*?89o(1(=0iJ_2Ig;H0S(OSz7!3-2>wSKt8*>Qz8w5N*oycM8vyxk zUMvj8e}0t)_KSs^q5;~F1|l8+%!rl4sBslGu%Ll?%gZ!SV@eYvZ$blVzN`U#SpzD< zc8=;VO9Oi3#ZevFQ5~MM{2OXOwDZa|pux-1fCewg@V~49l@l859lopqp?|(?4e07B zNzC<>6eTyOMbXA9*MM5t|4nK@>n}+VU)F%iE?`AZA^LuGt1^H4Weo^b{JU0ZV6LaU z92%gFSF8cWHWtgs!EFHB$Jh+Vxj*i3a%YQa2Ny90g*`%%y_x>1jtrvVi}-58bMU05 zzgAnBUfQt8l!Ip5vvW8vI@B|FacKZD<=Im|z<*cF{n#%5#Lc_>6aVh=Py4{FK_B7P zh`mMHd*nnLnT0#dDP_~Wk(&$*Kw7sjzq$9u4us1*XTU7vI{0549>X+#6)VtC*EB(t zbXW}Tz5S=b&=MLa=R=rJ*mHWVGxpzXO^0g4b)3&+ix=mr_$X3Cp+D~@JLoAU>`r!2 zMzOqa?%x^Dgz-r@V|-eiiYWW$eJv*?&g+(aGx0X;kYng&bmM;CJYI}$VY^xyQtlb% z4fcEHUH8lcz~-L$sC(uzl9g6ouEeOur0rPPHx8JQu)f6l&6TJd?3<$<DW+fMr4<C8 z2aHrJmZS*y91g#KtsY&czbd^M+vh7y3lHIF4N@9B;%2x17j#5m{MuVV%k{UKVOJEC zroc~cn$jqwU8o_uI9?DA9bpV^X%o9qtuIqIBSyZ=kcbJIbDCfV=ixFCv<j<xxSg?1 zgpt@#h^2@KJyopnn&AK$oI-Q^jkP*GG&A?N?&0o>0G|$@UpZUGw>(=$?@|L^`eOL7 zanL<(0;(o8s54)Py4VHh4y)dt2kT<cf}EY>I{^eAJ>3kv%ZJm}<Y2xAwGyQAw#hCa zzd1dbmO&L^>h(h!z<?ti>_UwU&1CtE9)~7C7P4D9(qvpd36p93jy$;h-h3?In@Q34 zqw?EKFyZ6iUI&9s%3+*x-5i{8(O2oI@5fnB;-IhfJYkBNsqo3dH3K4WmI4vIk{UJP zZgDELB%)s%{=h3i##Uq;ykca;g!;uqMw)w3WURe*a2XkYEzkBZV<TqLFAN(|CSN6N zOjY+qv60aiY}7jKId+f8C$=?@<!>|n6zq)mJ$9~__k@7l6gFy57Vr5i{d^f4ms#VN z1U6zIewDB>P0#;&VB<&DGtWEsSCbwkg*2+4`tI5zld2cd4bsYBF6iK`3WS4v5tj`R z6KD;GXhTSkQb<<_=_-XZF}OHWDGGfdpDT1i94AzoT8O|PgW7_5qq3!Z=EI1^h^#_O zjBq{5dZ=)HhW{tsNsLe7jD8WV5i$uUP&UINP{w`AAw*)i^02gVU)zK;Z_5#t$~nFW zAtJJia3|w#^@3IW+lsi`2ruGrt4EDdI<ICE`d2->v_W_+PAb|{si0R|=3CrwfM>W4 z-?yTvXUPCN`EjoRM`U4|hn2-uyQCphMMLP1b+JTx4%f%nyMUO|k?3nxK0ZPoMwp@+ zg2A+C2>NeP>eLcUZ{PvTx&E<MTJKL&F1OxVkN<!WvFTf>9tdPpE#OM>^p@E*QZXV7 z)X_YaPxS>^G@rtyqpbd_#nZMt1!(eS8uG)7fCxQ9r*|@JS3*-bq+6#RmH0rl6A&y$ zRw~hA0TvFi7qCR|lBxo(7S<!KN-Jp%sD5quWs3M$n<DU~zlsz=>;KwO#N`agd)Wy` zho2kNLqcwrHh%RZk$o&eWpZBuH(i5(Yb_<)LFLuLN-}2&kTonJ$r>tM3HD^Cx&`sK zF#Bcu2XPh4KZ&Sa{z*8~@=w^j#uB(s^wFd^Nnw(y0AY2x*Mq^8y&jKD28gK2-4Yys zm;y81e59n()KVu;uNdH*<KBRuujLlL@N@Pz>a)4Ov7y-U?eGad=bVtd{0MA$z<>2} z>o?d>M(dc+6w-Pl6$!F+tPaW6-9@_VW1j{*V%Jx4Dfnc|u!Q(+=(NAt^~G-k1pUpf zFMf~q@p2-nxyHFG_q69Km%d6*S<h8iX6NOA=VIN<KG-nZIaIi(1=yI6s@oX;M>RQn z)8<gA&LAY&)N-}LXNg$HWMCBAC(3tTvmm@3lfxq{T*yaNi%5~o>?0c(3!p^@D^jnj zG?a-zcI<*_N?27@4DC~+h``8o6a8%%O9~mh7X;(u;c4h6aXgX-#Bt6T$!tW%4Hlq& z$5|6=Ah=x~SHz>x+-!C&1h;sutQ?V8K>^8_SumC~tcnWw#}K#ZLjK<NTSVSjrGCs> z>jsaqv0l_7&@0MgADfqF`BScj-K-q=4l`%zoD~&-d@!TvJmwbaT70ux6bTMN4F86? z4if|qp<}fVKsBr2h{?~^nN!!?7l%^fxGKv7J<bf;Q<q5KGy*4Zw+Buma0FLVfMY|Z zI;sOu@D7IPcF~h!s38V$4g4KpV4H8Q)zpL!fG5Ws%b=z-;+scvEEorEsG{z|v#3%) zM6>~i!RCsJRx2B`9jsDi04m0|6OoV6PJFW+RFL6czpJ@}^MPFxDW)0__ys~wRmjy$ zFeZCbm&Y?lp38jCs)C*9ew4!7hDhGas*8e6p@ZY+D?vX!LA<0;KVh<nOajcH2u6(a z&b*a2(tbN>f{%4g;aqYt3cPnx`SCFJ)Z?k)A1@ld2h{-BcTZ}%V*YvD_E$(4Q+vGY zc&O`vk;efbM=TyuQ4aj(!3;HiHp)aGBNBm(Sb_02sNiwAFuuP_6EVPq^+O$j05%hp z5sR;e+AlshzCp?_f=?$?Fq-cu=7kJ4x~X|A7S!-kC07^Ov(0Fu-XR@r&{YKiWLL~0 zXrgpgMOQj1<|Bulvq`!)n69IBAkh6I(?Uf(_*n^8Dwr{AG@(b^My>I2I0ty_R%4LK z?=gZ&?f^!lOZAsCz^M6&9JimZW}lAD*Z93>^3fUaB@)y;B+Wm_(yqIv4|cI#ldr|w zdwG0?Gdd1~-Yrtii!@id;|!C5@lnCmBxCM{2P(l*{8LRgJmE2IAApM?J3*E4Z`KFv zP4Wy(*J?iHC{!Y2id0tK6Wjn20U9XK1`mk#85SfM=^~cdK;YCPT&X#Yp!VbeG58MO zOW^_j2DtMTgYO29WIeDg$lT-{mO{uE9vR<)r@~7-ig5@7D4oL?fElvm#d+kJNMI^8 z@L$V+C7sGp$_2(}q=+$$h3|4|mN)>rDbWF1j@EIUz(1quRsfq+9~AYV0itqm_Di3w z#&0>SYEe+S4fPoA?!)96HfwI6L_si*%TNmU3dYU*IC&O=D9r6j+&DLU0swMca_mQ6 z{d7@-V)TgA)>$mr3j-c{jyjGUaWsg&qc>p{B7aRyYY69qeCs{Zk4<C3Y-OE31_r8+ zC*G?-jY!CB=dpX`Xw`fm(^_%?ZD1oHt;7MYU<4>&i_@(Umqj;_w1xmD8oEFj>(^%g zAKQK``n&-*IHO9{KX#Pu;~E}v+?xp{W+8WlGwi`toA2pwyz5VD0Jj<_NrrKwz_2?e z?r4>zg^rY{yxXRJCEHs<cFwC^3)8-~O_sA2*|$h}HMym|0tDm}m_)Un2txI=>B*}= zB#ibnH=V!Pd~ABkHzzf-ue=#OW)p39YURzMjmdmxenf5VNOw!}Lhs!@I0`NF?8jHC z7aRU=*5j7mK;sLOTLN<<LG2bTk;dKm+=2QryG}SdQ@%=$Ssw0nr)KS=XE8!ue=88+ zIDyb(B4jX(kVnLiY6kFnRLON6?+DeHeqVuQ$qGlnP(Za4f~q^>$4-Y=f^}Z+Zn4K( zJP1!qSJOO{XLYSc#kM=*5G(tho-M+Z?5qx@l75+nTBpYh&8#{-*QaaV>CQ2I)2$As zyN-&>5xd<oDozW6(2OPMrJA_1jAYQAjl12Ie$K^KJG<h7ZJzma((xcvuSs`KETBUV z9)h)5LJmW>4x{N#c6VIu;`WG>*>|Mb(flNhOkC*fHdm^R<K$(wc#1qCSlwW@L2uX1 z#zab<f{q|_!f?6mvKKft)Rq>6*z|{}NeCS0laJBLF$EDEB=vjAK2N$b)OnVnAv-sO z8F_}^Iz2hKf_UQ`&z9mX)+2cak&nsHwvwSS$@}v31X5Lc4X!5H@*Nsm(|hl^nK+lO ziBE1AZJgj2103@U4poi6A7$E}*cGt|o{o)T;<0q+VuBN<K}P(CAdB@SV;LuWWhGBU zV#E4cP~HX|>jA}aF6Pitw99?N-NvL~224mykmK!%X3#`Y<63?uiuX@kQZ)yQ;wrSL z=aN~%RQzfiSQ$a(2;5Ww`N?J;#|5DsFM$b*vNWVxJFC0R$33OW%NP~<Nf{M6RTDC^ z>oXWDy-!b(!T`Ts6YW(~818-3vy5f{|0}dv_yOKNP_fXun_gb)zox3)2LH(oI`>>k zPeH|8JPzGAWaK*H{5H-++B!}yF<LiVCV*u!w?rFq`s;Ak>i{>KkZd?W?op?{g38yN z(UgJX#+C!2-#^zKd+wg@FFvhS30hdsB~vsZrbMik6r2L44YNkmr*{zU%@goZlOr6# z!d%UMKV;2WuGjIXzi}UwHq`~fX48Y$lx7K`ci^(zvBRCz-C39(bK@8NIu;Tkpqe@~ z#^U4yr_k;hDjnODvL}!m0!abVI5EktreLtUQ#@g9_a<>zgXLua!O&oqaUSge%DLQu zm!{rb6Wca>hLi|lz65h6z;yd%#~sZaj=1Q-8O?edoH2M8;FMkZFl1(VSnwj*8<)=6 zSp1mP6O@=@K#(p`n!=DHuj$5t-9cb;bvNj7@hh3i8RiE@k>exT%BE~Zedj#t73m^- zc|Z^61jcEVV0nlNn2HE{t<=8Q?Z`nkgZ+pe=#;4vqcAvZ^D+UZrBWWSp&;GIeN?PK zVM|VvbQutyOGcyCI-x+6Ep5t{TG&!7PX#=kzojj<nM0@~BZLj8hP4P}EIcq6$l*LN zny0$0M84Oc`6UJzd~h%nJJ|^U=tgu@Az?=l>zr9MkaIA}BND|%E~;#>P`@|_x(3p) z14K2SM)s!UoU8=7kma@;G`%7Iz}=RZlAK`>46JM!`%Toe!k}Z-F&j$`=spq5JtR1m zM`R7%x{9e>cR}8XR-FDr<6(IUQPYJ6oKU@Ya}v@jiA=Ui`V-jm6I1R0=HD2~UYjSb z-2mJhLD`h%b*y7hHfe!{0Ii0kHcnzf`mx|M%#`2mk3D`L$xTwU218S0@xI|ep^hI& zc5u;y-0b%?M;P#uv%4#2cR86C>nJwo>>@2qXk=Vt^{UM-Sxn51alPExU1qcl`mUVa zrN!)A*AuzCr{PU&kE?++tc|3D+fRyUX5JLvnnwle4B8t{9=-;dPwS4cJa87xUIsiI z|Ji6xHVL1nk)W+a95%OeSxE~a|1jJ9d)ENv3_^Y!#P)Fh5_%!^TgHU)qf0JD2?)Ls zB2$);T#MD_$B6wTAC=S^Sl+SSkqHMW!2-!B0#>aIV;qU+>AguYyt`1JcqU#1)RAMD z1g^)7Ku%ulp);uvM6+ZEBRgc47sJcLgT;r_KszK6vJ&v*#$D9{m?P=-`Ui-K9I(@l zaV*-E#<K=3lo}LS)L4N<kowA;u?5oDV$SM{E0cZk4p`d#L$bDF%VClHgCC*&W^#K{ zDUnna!BN(RkHLhWu{Y6499)0azOQU4m2I#p$Vp~-G1$%oAsG8ZhdR6CnmPwx7Wl-P zW3Zu`tWCpXX9#Izy}}+6jK&OlGZD8IpYOPDIyf5$7fcTR5V`jdq%rispa^_}0hA#i zcIZAl?3*FshFBNEP<;~Rp}RdL#QOMa7zUwpx97WcIG=7)rjUjnxyo^+4XTl<!tpGp zeh}qIQ5q0RQzY7Fbow><w3ZnKV_LQ;a`}ZP(?>XdFN3h8)WDd;GqS!+!uSZeX?&cT z2L%Ap!R7AOCGZKbTYG?EG4&;esPTUogV_X5R8fs4OE4r?UoCIUOT!xz$q}?GG5Tf( zjKK%S!S<cZRpg!yxsFI@WJvhtfoXfzis${)`OHyw?b!#;PAX=|(|dEXbky$;nuqDA zNvJlN6{!JYYL|GloeY2+;$R&)Yar4X5zOUb(eZuLR)eW+Gb1|6q!#L#hqg#q!-eL4 zDw(Y9ek$cXAV*~jFH!-BP+YVvM#C0eC)&C<UTIg>?Er14^zldia%Q?)>2QWJTdZ?% zyv3ZtEX#l{%X;90Oh+JJ7k8&C+X<{GNz-LJk@Lu5^+|z%s~11;QDw#imXk^eDS@Qc zSs;{&uL9tvIRp^k(j|pBTZF@3lA^X5hIXPJgnqKJaT?g=^?8S|y!SB!dqo{uS{nE9 zhqoUbCKTfis|@X_*!2^L_B03E9_v0|Y8WaEOOPJKj(u|;nr`Vqkd%)RANyyo73-S2 z9vVZIta-4weWa^Y2$=BR#LJcWrt=3Ky)QQ)_mAKR^4PP^qaZn>N?6?poDLeKb3B22 z2gft-!5cjR1YCV&_le^2HoL`$pB$}Z8wn>wQ(O{52%R#wc2J)@Ll(@XD#4M!lbV^G z21TawAY`pPEBN2(xV}UcD87aDB))}hm#a<QHMvb>@sg7?Ixw<%ZJypAO-5V%x)i^n z2suV&iab2Ocz9v{5DkT)L`kwem69hWReE*E4CPvkzsAcpUZ}Ke+&279Bn3E5AkGNu zAwO6GRz5rrnU|Z_F>al^hXgw_aBbMoFMBsx5Z{^0tR7x9(~XRd76x(mpI02(9DU?E zkXs668C;DFqV&KF+<Bub!;8;^YN96Og{G*Sswg_{DHNK*EVhm9aJZ4348Kb=UFmY< zY*g~KdwC@rKMSV?<KA(0(!!9cvXQ9DfZRrqpD#ON?HP^uksS>fKFIynvqKXBtxRP2 znFjZ8IL0s$4bIapTirWQx<9Apht;{^A2>Hmm+S6hVipElJd$z()%*{jw{b0v0cj@Z zM$0~dF2PkZF-snNJxO!SPpTK4r|>H`aj4nYu)KewQp_>pMZaX4Jgi^b&s3Kc^!@7Z ziIt3g`ECyiX9x22=p%d>Esbtcx^>aBTQm{64Gl0>+UyUieDuIzIcoEZbznKEVN`2R zkN>w?c|W))TurZ{!X>iu1e0fZGL9#qNp$i9qAcRS;nT~Iu0Uep+^)j8O*pr+gfmxP zAc`GNKVQgI0GkYrEjJDWrx&&r9tdZh>~M!RY|Q~@)H*;boWTR(9N>2Ge&_H1%-=GK zkgo$^wSa_IAPNbXTQn#n;u(-Y$|WQK${Z5ny7T5qfdo$i5>-ON*lQtSW;WX3!oJ}@ zsWUL)3Tz)}m~(x6W*UiEy>UQ?tt#nrhA0fYRg?~S&}Q-{V9%x6CV%2_q<_+;Qj$Me z9FsrHa&Tw$mg)K@)GX)upV~gNP;Ux~Ny#e|Dwvqf!p)z{eg3C-psrED;6P>dEVf;d z|B1DK%Y5zc%C(R5zH6_1f{`JLUcS^PcsE>Yc0u-w2}dE~hnqK0FmCK+LHMPmz;CQ5 zEZ#C5nDAI!B`sq=h%<6djcy<j3>YQJgR|`w^_9H|drHJI7at_pA>BYdZh%bY8e7l_ z8~_TNtK$|K{`^|K2~x-Tv|2?*_B;}A_%wwfA9S33Ay|<8Y)6**nxi>oi>0CM^@`|= zMWX@G6<)tZ!|j!ZQQLU*;q^g0AW#)5F(VX1d~HKUzRGV9mN=Lr*R;%&6XRoHGeb%- z7v919*BTmGX_q^d!qH4j2#}velmV>U%V&NfW(5UB0c@6!M}!PJfC%A@3v3ACRVOGF zaqaPS<oz@#K7KP`R^KVN!_+Io2MT5Qd|M1Ze)Pi+pt6$?3T_a&OGFnj?aG&-`%F?R zxPdC-7_-}J8;}IpyObfr18V?MZpNq-TThr@2<~VZRtPW4I9j_)1`_RKB9DeAw!gHT z3)CqsYJ+7{7k1db@zQEE2MYyGrb8JDhd`P@Oaz51U+>8AE6wS=gf4gpqS!CIh_|R= z?2Xf0;8IpJvjH9#6ifs}+Oy9K2XxI_wVG&%`6t6g(FD7T@~}Dl#X4?h&L9T2C<>Or zs$dzUU>Ov_;&pSdQWmurEb2c%6Eqc}F(%9fDGwB+e7ImO^$hk1a{-`GuB0ICz%<~i z_!<Ahn)x#5u~P@zAtbVr6|pIm$ta8Jiocp_Tv|J0<Y#+1@mqD%Uay~Qo=huq#k53% zmU~oQf!I`D2CguU+y<<OO|CCR`n<T<WTlvkLh5cP+*30$4wkv|59a{(W(MHVQT^J= zfwDxeZ%>Qk7b}8;R1bhiTwhqFPz)o2Lh%P%m9Q&|sov}gVyv96;F4;<3Z7V6L9lyC zHHc-r!4mcaCZww}W3G?cH)AFn6HhZV1`j9~hkQh1U?zA%)+%kVu0a){y{>E8XC!2e z9di>5FDAfK(p{6~@jSC;B7fCsrz{tNU?7JZvFNYwmi{t%!1xyNGP<BlP<*kzfQUR! zbheLR3_eS4a!}&Lg7moe8)_zfu$TnZ%6Hh{za(7|0V1lSFE7(o8Ayx*2*CcF@iJXO zi`2_S0jUaIVfj))b^0x90A>}eV<MfiIcMOSyim%!P&vo|$jCw5h~B~^CDwgD!Z4Sz zYrgdS<QsOjz`C+;^5J5Bp@1*XPrh+*euZzecjCvZJ~7!sn_!NCIVzwbGC-LvhzGq( zt1*k}RL>eu&@BDaILM~s&Prcy^@*%7_2?yLz6YkwS;JYS2*s**5YPrlygp{%#@>uV zNIm_c<y-9dVatJmpk|iC<Ho(Cap0z+3&XDr5eVBoH8fC8*J9V@KEYv&mONeJc5~=| zCA-Yoxn6l<)Z!R4tbPQ$@&jL1$=vGF=h3^>2VY%RLwSyHsXa@w^a~AXsW2q<I)ZR- zqcDSlCGF<$sG8}$6l%9bQ&2B>)|WXODU|8p8`Y?yGNRiq$K&%pv4Pjbu6=lnpDJA) zA832rurmB=b;Q&CG;R9Dl*2OM_uA^iioxMU!Svf~ILE(Gr=Cd?-gzEfq4b^v7IlW( z6?Y*-(c!Ju^I#GiU#Y*EeHhwje2UGA+viGGC1gg}e3ez^Lk0MK&AjifUzuot-FErB zR6Z}n=bcp-pF~-g=a<XpyN9o}{TCeHJ7Om76}n*2-<^`}{`jcg!4S6y$&PZvDRmO) z>Jw^d0a*?ai<1er>OXW1V$|wW2I!C1_;(%p~}EeqfFmo(2RyQY^+ki&b-<#Zs%! zkIxM6YZ~q{bs0KLDlHyI6Tado^uDt8I~a$`Q@6IbFRhK{Kn4-up<r*{KK!o@bDn*Q zxl9|^%B_1InuwpURG)Hxh#y>n>Bo7>`~vrlF(!Xr%#XYB0~?1^y0>dm4Q94dnfz4Q z97ib_^hmp$5G#?EU1Z)iS_st;ZmKau14g?y{<jJ*Hr|hGQbP7H%-jUby^Cxhqhr_) zRf#}g_RRIDaqX~c)lta<7HAUBAjfElLaKhDeK4U=oUjQm)n?V+KfB|J;X^>YAs;I& zkV*;lgn28>2V78xA;Om11<(fooeB(1Q<N1MI^c)!hWEt=E6~OlqiJh!N4=|dYC8#{ zt_)_()%CIGQpUg<F&`Q3(hUFiw%H~SyScI$8fh>vg^3PBuG7O{>ZpeO)vW|p<b5m+ z92Y(=ngeqo0neZt0LUW5R)tPbn9&RSdx4@Ht5^154ikQ#6HAzHa?yRBbB%H4Hmr1o zMqS$-lcs|-)vZo*ME^^tWOE<kC_$eS+z3nyO?$<50ID&B(b&}-M-ISSA&fuA%HLk0 z<LE8o3K=SZi+Ot83-X6|uylP~Z74x&m}1=lIr%s|;~fxdDnzF2$oNgRTH+$>jF@E( zNCl~hAQRk{EH1zd*!72h8h`aTII|)h@_+Ay3^Ce2=y<?ASF>vPw`;B(VnwgS;EN@b zRKV0CDkPA|8Rsz{CS~v`I<MqHpfaUmms<M-r40m#1&y(?vO}zgeKh@Ya{+=lno|W% zxbtITRZI+`W}Hq103|sU%HXyJ^gKip)Alwxy2X!#V+JJubla?XN&uig6i%8;y%95} zLem~wJ?H6)T$lK~6c$14hS)1L_~H773PWk0!SvXHrbUzb->ozod_z@L0L$wO;Zni| zk27!rO~I9l|5~Pmg5q3UNj6Ed^M=_=Y5ZSG#yfBR7-EYu_w5?HU}l2;kd=m+r+AAz z#oTDBk|IAs)`n^9S5a32R-EI|1ce{NPz98ajNDG?7H$fL0UY62^OX!XSUj=XL1V;@ zoKeR>S=}2Cv?>FQm7>_efr0?50~HWc&NMFu3M*Y2DDUz9?^|%qc4*t1v)kS_{DbXg zbba9cP}rp#o&v>gQYX^Bp*|0eZ9dNIH=lUS^E20G-#hRibI7W^q>l8idADZHjkVZW zy<3wT7kBR2Bv<RVf`@UNCMq;qCPA>URm8$fCUDNgDc=O+j$fxk^XcM&@IA*$^Kp8D zG>*%De_~B!TYHYcG)J7mvmek0?`f}p8?QH>>yF&he#oyxbj`1{VtlA@A)!c3`y_*i z>6#x!=GzCs*FXcYCyHuii#tU*&`e~%qA7MB#L}>H!gMfQNir;A#IV?4{LOmO+B{4^ zgfOy7tk?>kwmGXHX`_z8BUT)KNBqu^z;k`Y*N6t7gjS0>k6Bora)TEyr%y1-5hibY z+k1G!__n{j;F}k9^#J<sWEd?s8_gIm{vQyVi)fV_xK9{wguLg*DfHMnx7I$^loRDJ zqWp0!cIbGB`89$M3zguD-eRG~Q-bGIc8>H*g4$CSMb_@3Oyk0G_?CJV2t?E%|NXhM z)A2V0j`<DdS)8OsaSLY@=S*Q&3YCj&RYi90X<cYpXqff!dB?;XEe+p^1Yp8Y`C`Ix zi6s*<Zs#Ru#8jLS6N>~(UUDm)=d?(64@k=u>}5vGMyeTGGA7d(ipz56^VspuT<FF^ zT*PLfn9R$b3E1ac{<xBAD(QM%y5>($*MDIUGE)L10OR251zEaXf!ZX?3Q)@USf3le z0*@f=Lu;WE-`pA$Hp-A_>M(R#0zM$!mCG!EFRM8W`0yiuuRtv~0b6K4@JEGd1@LX@ z=7Ar2s&aue45*3WD-*D&dPzC!!{=4ngE0V!kq31yJMg=VZ6M4etU8=<QppN?cgS^B z7Qo<v4jvj?=~+>|)$kCRB-5ZE*S1gBwS}T!hUGLhZ1|bi9)X&n-}K=+Y}h5Ua4l+* z4DBa!thcfKQR5$gLX7jlG+~R}K#UO-WtX`@^3>&Nk+b8^)KfHZ1|f0PSzGQEIznn{ zy{r@h7n&<mKG{RkI=TTsAkJaZ0zEYQ2<x2pf*tIU(th2yUt*7%ymsopYU`cQv_^Sb z+r2W_hXje%9@LxJCrJV_Vph!Je*fG%T~Fn)YgEM8G#PsHOY9`y;*k0V+{f@nE1IeT zYo+dZe;9<`%QWfc;VBh4lL%LtY}-Qyl@jO6t!jdf;8Wp-Iu3zw-&pvYk92EHwu+n= z+rW~B)NP5x4%po<lI%dnsl`kgg>L|xT2iX51b@IPD8T_7F^9Ay8Mr6d`x=C?_HC5b zIThuTlrbV4X6=agqZ%?KJKBkcLq!Ke?7HY-a#UcEi_9GYo(v`;o=NjiX9j0+_=ez& zU0<1h>Ym%fcg4<o_QLa^BqCz=^lt=i0`SX=efZsFA3l5jA7?Q`mco}3_!$ZSOE%xE zf6EuW(cuHx<kP?25079~x@6*pg=WvQpZm4`?fI4A5uCj|ydSOEGoo_glGW@<8-epo zitP+cX7S*H50K@UGD11L%p&9sX;j0<0+q!5d=SgZ{e0cP%O}GMf*1aMQ<#Q#UQ$Ke zr*5kD_JoPWI|tkTw$xuez?RNg==7f&w)9V59$R{OJSiK$0Z;lb7d#1$CQE_X9#TFn z^Q2*O<q)3K%9GrnuJWX8AZ;sip5(3|c@nSXNqj8xq%C_0o-|vqAC5ObnvvE4_Liv~ z;6^B_C{)4aBL2JQC^RYGVPhJ|8{BEM;4CPdzA>&29u`ci+m=tLGX($REp4F6X35cl zvz1oKwHRC}5*bkqF_&D4Y8uL-1Guz>>;|pLE{$T4nJsVO;YzR|58b&k?IVbRo;e}X z!+%>g!&^N=3PP75y)dWg!x&Ofe5kfJ!;rp+jSk=T#bQXqJF}&mWL~eo`O?E5th4Y7 zFZ6uz-3zYyp29VaXPdLq2j>ro{F1-ImeO{bEY@(hdEuAKcYm?XYa&TGwsyW+QN31p z90mX}Q#`u~)hnz=_#c;4uMPE#n^e8<rmK2^<%g+WMKe5SgYJLbZURg77M_H@67+{z z-u;YYMl*}&jh;X?)@IK=>eca7Ho?zy02W2<jm>+DO}A)xq>ofqMLT|^h8K~bu!9<Q zu%hIB_5e41TutjnO5V%krrG#@Zdxw4E{fiMriz;Jg)!B>fq(f-^-)*<PX$x`tILc) zuKEN2q~{0^FX;KbbK-w!@eozLD0%lT9-^?9hhG3wCS{LapILCHFNr}7zkhj1p{D)I zW0=FgT;uXWO@&<+HB}xZXK*77jl+#vH5ZP-5*i3=2}?GcHXiSKdLq~;CC_CA*;iD+ zXouNW<|L=$*^wx1nA2vsW&MUz3a>Zz+4EH|qC))-u)L^#T}0H)l<xKV*ndRJhsl?l zX$gGXqJi;miJ9^3x98vfnctp&Thpbf6}|r!^?o_|)3s3g;gD$;nvcLubH6T>*?Dn( zrkysry=E0MAgX+%hWk_L2MDgy5JMQ8j<$h$8Cv+W8WF}UN_^OJXlh;YoqZ;@;nfEu z(pr5$Carv+-A1W1_fu)o;H1E{2-T*WY%|oaz6O53raSFUkc9EYS?9YS_T)`3Z}C;! zS)HGr)&Rw~uXt?Q7OOH!UKg&#c9v$hb!}=>EoGCA@0)*)L&@Rwo2H3b?RA1N3|2j> zIa<9wKBd8dk!2^7)7>osQn#gA#MAEGOD8d$)9$9&eTRR6td<A*TeDS~=(5Kt_Q<<S zr!>j0A7lMyKgPs&97IJLB?dCPn@m`aC5#zmEG-on4ZE#H9q_w;z$h<A#hK~e;g@s% zR;GJPsO5e4%;7SEe`(I1S+a7@oc1p}+oIFbbhqQ^ReJpqkU>0mQ^7fXP0o1o?Ywf9 z=+KkiI1XgB!%oxiP4LM1fK&Gxp0BYWWpMq-cJg%O^2qKgKxmxyU8c%lG;dP{C$9rc zV(037Nd2OS5T&1kYauZ9t;MBP1jyUq0|)5xlII@DArZYeb>cqHMK+@Gd!;4Ry9kYB zr$BxeD2UT%@e~{qVJPqn0RM4U_!-W<)#Go;ryt|#Px|y@{Zq8mLPiD$7%Fl7O>vDe zZJalsN3=$uF())^_x{LtH2XA^a@+WC)ZJ}(3jR7Rs&U2#DAHaX{}q$N`1HqW226I4 zj4S_rEcWbnu6DPKC(RY#52ouHb(^56xlxzj>8=54Nm$&k9`@{mz|GU2Wi==J2y1q6 zj?cjLVqjRfcb|*SS8(@(66r1DGbHzOV7@yd3LcTRz^=%R@2|~n^1)}30L%=V{Tu49 zd~^Mke2Yl=NZ>ox1{ZPZRW}-cb8i3Oi65Jsht}@7J~<CCo!a=D-59!Nv(Et0HMsES z0Go!X-({V_fdC;};-_M0)7vAdO`WoBqih9;E0X;Nz0oLM+(STG0J_$#MOMEH>?8Ts zc|-4-TNQr94ZZO=Zs?6~aYOIg?84O<W;0z554y1N>Vnq^#JBt3)OPvpiUFAM?DF(A z8vEn>C5e&Ew3IvPrrm2k_-)b1q<f9N4ebVNfN|dtAI{1Q@u|`y1N=ZfWPp$6HwO4! z%z!P#(g@upGogp)BYdi!5Ag%@AwIe^#P2#}h_+IOs7k%Y<;GsyItnUV8~=;I@!bMY zQZN*NcKMCLp3ZM!osYK+cGJn;{DK`?dd_Ngm)Jhv5i?vzuweSg;oT*c>-u%O$=wMj z*i0_NV15MbF>OXPH}PZhJN#)&g{?+Q>2vH_-mTs97l>f|T=k~*CnIhC@^9z&BhWp< zAr1aSO~9#U&7{uhJi~g*8j9T-tE@JnHKh^kVX&8&Hnq@C){`jw(|GrkQyc0Q9q!AD z#hDwipNZx9xY0ZGzy@(Ijk+}Ovr-11A1D4lLfnlrMcjn}omf+h%Wjt`#0N$l%jh^G zO`Hc8X9TWb3pVN;0-Kdwd(C*86lEMa#cplTebEuNbJKk!`{{;<#M+a@A>JZBO|GCw zX$Z7$XD=RTPtcI}OBm{{i}a8owdBE)wIUe2K_bo9+uE}mR36S;66nBm_}FGyRjv5R zjMa?eTSUGxUuDWReosnJU0uk1bL{mg4)}X-3(a6Mr?!o8sPw)abvTb;q`ghS#3|Cf zWQ>tCy1^zNsY!9pj<z$7zHdC^=+lRT7n#c2=$??BYuINlTUTFf@)ye-00AL-R}o!@ zHlR|9NLe<(tP7pg><FfPBW+62p9E!&1j;0efH>si!-0IE`BdQDCqbVuN<?__5m&)z zoG6``*$)o5>*LasHPVjvMp{sD$f&A`aZI2ci!n=1nv}?Qu`j0i!=NZ24*!XLqH3rC z4D(C~b451>Nimk-I~k+{B`qctO3x1+Iy_5pz|IvaDc^>U&Eu`Z92<eFYM#4T=>KMY zrVBwA8nM|CD_$|VMj{I0`PqQQ#{)XW^Tk}4-bU<l0HBA{BL<;$lKeN|zjgi_A*)`% zD`s{nB3?aSy`@+EN`73*5A%k>Pd?AWT+U)$z92ekN)CW0CwC-`(N)Q(wW-J?T^Vmb zUHkX>`mK|Wf!|8o>r<u>(SB55av!UW-~mni@yQx_%L+{^#j8#&{Si!iw#BSrRu7_z zQ|{xqgRCl+3DBryg=#i<Ky95yW}o}Vk<*Oz4ek_GkjB~cLK;^pIQ;3o*56ADs1|ot z$kPfiQ4c9><0tL({waATo^XWxxOaLqEMIq4MxPKQ;JO4PNtQwqXixA@x7|=}6QgyM zWM!O}eqy={`;n8;_{^x{u3j`i+6YuZj1d$hjm8EwvK@{AgA^xe{{gdpSc5T8E{?i) z72l%Z<Fn=(2E8H2Js*EeOrXpgn~x?d?3ll~5#XtM3$Fv5b<aH$q$aZ8ib6Zx1zXIl z;l*E0`<R+g94b5((=)l%o)ej8>N?X=aj^=+>2Vj)x&(r`v<?!8;l?c$Q@|ZtjDbci z>4<D>G|!;L;~iYwKAUhy*rJp_vX@e1oOPfc{DLRTN>rqi5gW*&+C`$mQms2l7}NBq z406o*Y6=WFR4=AopPUK+lxc&d$CxUUVD@{7OxNv65u!(vQ#3JqCRYx66Z_*p<8)e1 zoRO|VY!zUWQ?3EQ0^M<rv6GDAlpnSV&=@GLhvSZv@T05Usr<%pBhq#p5CJpBQO+5W z>g7W7f$lgM)F)%39SMpMx#N-E1p#u>c3fqiPfkfA3?WFF0~9?;=O+-X_l|7TyA}Vi zkp}wg1c7f(Pr5R2dhx|jNb$urZ*w{9l_jK-9FCP?oHNOM?Y`+zqLIuLL^{4)oKmOc z^TPl%d*)ZG@okBmaNu)t;M1xCn0W4ZJ44`iHRTY{)sAs^%!H5A(>9oN;T>{%2eciC zkjVncnkB$UT*0Ai01ggZ6@E~u>rUz8iCz(yJ-fcpB$kokgtQx|a3WBF+#y+u&l5K1 z;ACI)EUL_hAfj1!xf8Po+?c>T=Tz{^_FykIp(1BSPV<NXewTQ1JaeDj3lb6-a1r*y zY~cL%$Ab$@aXXU(UG0X~y6r!YxnN2HOM*cW?%fdX7vCNo#@ZwqFSVhuF0-d*qx2J3 zd=p)^HzCM?-!L@9;B-T%lRo2Gx9j9B?y*D|O*cd(iLW%J9^<=)@aBV+-wCs$jYmnF zFkH0b>5kG4FvubG?J&=(J7eE)9FS9ZMUumN1p#MMz*F#ty&p^|&u62x-V!ir5i*3g zvCpIO;DNLJ{Jf{>IcK?&?uw{imZK!HlZ;rKX;?6$ySVm)m5E^>^!QD5Yj?&Evakh8 z_);UB%N4C%ot_C9tef#(o}vIkMNGqpnL=~KuG&WA;oO#65T*ef;EdZ~7-lqzk7b|X z=cFfTkIdyho1BCt1Znyuk*T~sndOr}Ps!UN?BgU4l68ikwNxW<X-YYGQ()zk%|Y-d zw;$WdECU-(xZaH9>J<8TE0!yUf!+f-@jL{MM&4x_mx1IcAS>7&7=3OUab2gUC-<f> z>hD3gK-iJ-b7N6EDhBx!53kIEho=iC5DE78D7hs0rZd^j?D1fo{)LCOlJl@hVRgpc z$;7kBcNRP>G=`(IC&75}FaVuyYR28m4Bv#jh%0qm+rZZ*xuB^RiI5i!3WXPp9b^k0 zPy=I+uVO3&X5z0UjOA=8y_C`fvI5aL#)d;1lnj|z1~V~s84E4=+&dZz;s(;eIs$R$ z+WJ;k5SGUW5LS|Af1;q**B@eL{5!RaZ~->W$9b_A6)wbv$E@Li@5h2S-F`qLr`r+V z5B5}bLK|1(!B`Q-FZZu(Nu&lN0#Lu8qin!va59e0PJ}M@?)ZKIT;kEEtE=O8M&d}= zAX-VLk1=)%K@R9bO#vJBXbb%Yh5=WO*Dyu3QU0`#${{Iq6(YfvwlX1zeR)bu1=EpJ z!3g(aQ{hUVFO^xyl|~z?11ExD*%`tT`c#zHMM>$H$GwajQnD24PC#kE4Ek5&gBS}a zry&9X9F{X%qlF>MsZBD{fUq8LCnYaDxTL+j&Q+yLq8EimJxux!Jxt<SP?XiE+pA$K za+mS4T?vjNV^a>ydvT(4W3!H!Hg7!Q$<Z!G&6+>mPPYR9=I5_N1R*_(CduU3WrEQ{ z>NNb3?YJzE(SyiWBTEwRVFTg)4n<ONkvu^Vb|t%sgF?VLD6}Uu?kF4D_{qgwnS&}i zMJUde)8cF(9zDw`v=B0(UfzoHAUU$9&6+D+$HwF=Nt_whxh{0!Es`z6dPut*2_nyS zP$#XC@jhDanaQZI9{N*Q)}XkoXE+y@T4;uSX~g|9>uFsFMj0LI3nKUPs5{Fjf_NZk zvcF2#X91(2@a0@m+SJwQS<iMbShGV$##fRZF^dtBva2W9WOhSOmiL^J>jWR-=FR&j zw_=-$e9hesp|b%OR+ErKdA!=?Ug7X^K~ITbq4^YHo!-cMH^+?l_&5h3Jc>2vil9X* z7)4#)d_(<1O|hA7-dX*2gsjrb3z4()GuT>C%|$kz{d&YbmhGI*Nw;&K2@`YK_+i$S z=7!@Fh!j?hN>>08ANN93nI6&&mK>2_P8NPOH>7Blxgo)-u6^6S+>lo$P=nmbj-z!# zBM;p=)VXz_V?uWA|Di<aSjgaSwD6$kYSDD%5IbD^A@W3a)V4>5svr-M+#*lwpg^9{ z9C=0{&!{iG88(|Dw=!2b>O>;XiIi6OeiC{3y~jHl?NUT?$<FO@=VJbOi1~t95Ap%6 z-QVr#;oBK+0Ok>z7BkzN;^X23fwR~ZBWCUUy7dRkmU$rFv;d3ur>93^y9f&@yX2#i zN+m1U&q#D?7uF|Wa(`f4EbZ2lQ#9(1qW_98j)oA`s}0TAuh9}Oft@cwCpbgyjWryV zrYGDUfVve(PTK>Bq375vNpPcB8O#XtF5+UK?kMUxDsX)8#b3<N)n>+|-76i0Qa9{Q zsddJSzUO>FpQqyaWG6rr5x{V%Mc8kYgZJKOre~PV9AqZI$I{9cGPuG{zDZ2j$uWf_ zp?xEw19%QJw)H%W!L5`)dPM6PZd`_yC3d5Y@;Vr@BLU<)HVOJiLiiXR_Xor??0#}9 zu;&BQk?g+PaZwK2gttjaI|);_FPH$}b6g2<$d>(7W@ObuP?k+A;smnQo_tu1LaAGN z_udUlNX6%`xdGi`JMGaFtkFQ}it8<(bMqwL7j%J1!V6ano)q!ff=MzQS~!jAlaF&| zEU#gTT6yu)$w?ssxJm^10y4)Os2*It(MRW7TAA;kvP7_YOtl)6w{r1fzMg7gJ|iBo zH8Rt8n8?AZr2b&8%z=$ttcU77Z@|J@sfQeKdA7#?zT=H}^yOLiBaW>cw8G^?;ybkh zha3Ub4OdWj&WMtKd=eo009y2Dc@;(=drkgYrmup!v_5LkXq;gm?uL)4h8Sy)c)b4p zYq8@>S0R|j14o+>GEWOqc|DE(v5hA?2~TM&toKYPQuYB_XANjMUv7rV6q{(M6SZGv zfZNzvDJQ9PW$G^!XBGH-sJ{+_aAf@=@hgXV<ZIpSj`Q~7Z>4>{Zt85MT|f?WI+#&g zJg!)S9DJ)a8GBn-g~!!$Q;LvBaBgyC6TWl=5Txm*RmbgS<L-R#f23M(MRp+kBr|}M zq+ME^RPf<>E8+|t<6419hRGv-VP@6755I55|9QF~S`FxZV{A8QQ9e&BfydL31f}?o zy<~AtLA#P`;~x#7_-Wl*G>p+3<Ris54Iy1-AE~_>iFJ%##~;Q+PoF@Im8JKmt;Xkv z>nT`!ol3sur8PvH@m~a~L<5Qi;`$zk2`Fiq@n6EwZ$I*=?BBnRW{<v0CP|bRHtYSg z7rWgtA~6b+e|<4@K}Oadhc2i53|2Nqc(;Ep3oHhIu&F5v*tPecrOC#@6kzo2FAoOf z{m<&jX~74eI4gY%mUfWube^{%-9ydYy~Ah!3>S*E9w;TsX_xnvnEW)1<3>?VKnnb4 z>f*m^pH)6mgDX@b%1N&X)D=-qwNXwZmkCl=rXGlLYWGJu;XUhvnxZtqWq*{DxkZQ@ z7`awz@I*P;Dcxj^U^Gso3OF&w*nyCVIBUctOO%sUN{rL-MU2y0Q8B@eZsOEP`W>Md zac;277$;9f8a|<r>AJ-++C@|imVx~-PRGN;Y!WftW=k<nbmBiox)kHYh~*0_{o(9h z?$MM$XqDmd&L-#aN@ekxJ4xe-af-17J(d_Jmf6uP$2bYjLt~tB42BVrH+(T+yI+lQ z+FgxtqW#Oxc76_+J(Sfwn>!CE0)iP&HJxM%h0Yi!y8&l_tY!*Ncy&uLPT+5eJ(}>G z7^f}=*Y+_^aDDP)bRCQ`R6l?~j8l^f!m#d|fIJunjB(;aHFUU$adJqLh6P#l6UiOQ zS{VH0+OGlwZ_p*WTtWb2oEBYPQnLU6hsHPsb!<vdN@n;e47Yjl7^k&EW1QmY7ZBrg z#uz8=5S+(2VP`RNfmon@F-}}-u!wPD!Hl$+0JEei<<Y(a>HN+ZrywlB+Y{D7;NnzX z;8`4&T!t$#P61brgc{={h8g3ucB2@lU1FR7Z7)!5xeeNSmhcu;Hhyh(9WhR8d(l}h zaY@b|j3gy4p5YSX)U3ofb)XnAP92Nq)b_<VVa&}KC-kI<af0%MD4V*cz#%exlAj%B z+GdQ?+W88|oMeLkXE4)%%|xa%l{`Sa=%q4F<w7A1BmYpA;{5qYR}Jwkb=(IfBQ)@X zXU~KahZvMmkuj0P;$+02U@qEYH5MliIG<B72o+)U@;6d>*qxkx)NqwCZYfFHXkS|P z@F|)Z<L5u;fs=IZ11De$iymXRzuQP3czj&SUl(|X88v<2QLM`s`oK|mpPZbNE#^On zG*W1+&py&#o!pM<rZ*g=JM<X->J7hRR!@!~3b^A=T|BJGr8*^kylmxek1c<<erNU5 z=AU5_y!>c`!pY}PHrRsFjKHstHB%B{Rp}Szrc^m3GMk`6a&q&d_@deARvJLCws}G% zywTg-$G75*9?QwNf=`&T)rmIj3LA*d)ZQI!1Jqr1M`yQDq3Szb@kg7{`<Ye~!Mf1q zE9=E+Rp*@V$Xd=LFxXA8s(Tn|V#Z;lIXxY-ip4)o?(7Q1q~Cd?mb*2p+|4rJg|$rO z-T~#7o2!S)w-x_1?i(u-k4!#rwnZpki!sos`vFH}V<S6>{X38KPy38yo4FZ@QvO&e zg3ZAP=;3T(!#)aVQD|da(_7LE>as+saGMYTYXSG1Q=;Jk9>a)iYaTL)X@eA+s?~dY zyC~41Cm>-7{nM+npGXb47w01&7AA&eh^<zcY^9+LLxGNI?pyN1R)Kc<Tgv@t%wo$i z*PZD${FZPF#BuV@h!xjAeFT&`=$}54TjLYuXdk8=x`{l=LN#dQfPdPjPDLN}(Tab~ z(L|x0xJYu-IF%9D8wR@`XWZRw3#j=rQi=VstJBV!8Ad~W)I0d7U6J_$l{#rN*j#v^ znA4^K6X&#jfu%C9?%dlMLfFCx;SR<79A;yNb9%aI0k_9o&gUX;JD@QtuwZhfwNWz= zU<Nt@QNoU|`V!i8?J4aLd2ql-y^Ii<l~#1fbK8pc#4vU%)^-&mP^_Hm_Rgh#2vX;A zC!hg+gEF#?o>qDSq+}1x*vsM*U>2G#F>T+sgA$@$4v|tpD8#j}=VaON(Ou-sf%uyn zHXi7s=1{VZSMcdtHwYiKaWrS#^><t0qvjhv>afQICN8z1vb)bm9d2-OBoh$Q4uyy+ z6zcG?Yk88>F(9RRg?-`1KI(myy@rQ)JABmJT(JVp#awzHHSGX{91?qhexA4<?HgJF zIYj|B?0WnF`7xv%P-TM^HwHAlEi_?*3Z~^0+XDXvgeX>X%W1_xs=oAzSdL;jB_D&U z%7&!xE^;60bZ{7mB7S=-(=k7e0Y8W2%h<k<&L~>D>TRFM$n;TfxH&+wGL7Cx%~e<7 zz67mZ0}$H>(#AxC9X{%~cr~nrJ+{a~1)M}G_J!f4pdpQv*BQrC*e4i_71$w;(+RU( z*v%Y!#ZvK)0uWKK&%p9p-{KO(+``r6)X4fAtlVL!BV6}+(DZ&9*A$d&A|@a;&xsm~ zH(@2;1Fb>WF}}fqLqx?OpF-p^3mz`}o1@2rbr|01q{<uC>0e~-FFDVV;EUT~9cTT* z_8UwY#iu6xC4JPU_L1I`4TU@ixq)3FC1%GN2hbMhwD^j8DpVs7VV{p0@ma11%p|J# zsC$e>8+l@CE^0EUfwA=*V^@6C$D+f6u|*IXdT)m*Ca-b}V<0ZNW$&Xdh&%VjSlX8b zaSOuAZW#3n!b*y0h^mRV1$Sa)$NxOetz4L*Cxwq1>zF=j$i};&L6Y|yJ`4*o3n6#O z`#yct3{l)cS25!50xS$g*GOn6N*OQ_YzST(&`0f^X(vL#(nh;MC_gN8qxh%|Xi!V* zebmy9KI*`q;Iw-{3snV%5nMU60blR&Cw<hSHLRG(*z{4C2|?`PqmB(wa8t>fsi-LC zRG<+D?3oP!cY)_jg)p3c7N{04XBP0?rHfj=2(xf;M_Z96N`)whR#Tdo+>67^2;RSn zj93hRNa<2ARFz($ErWC}(PXu>7}ey4MX8B(DZc9MzQ4)#vaj0vL7^7;06Hu@9U|*B zG6g&Qs<?Y;JRKUj!j8B1Rm(uEYw?(sY8c(vEQ+^n=3@6(rY?Ke(RV66>?}IIYHan) zWD2@*=^<T$X)12hO(zF7R?#oT$jgK1OCDTzCqieD0F_&HU=E0;*a&SpwY?=@b=+aO zhsL_3eKX*37I&`2fz1Qvuv~n_SB+zeYg@xzjX<D(<jfuHT~2kk%7t!C^>Bmha<H=9 zTHMvAx}!yIw#mmz>`UaS`r{%u&DsDoZY(z?=y{|J$RY*+m~DX+?&@2K#66WlGhL1N zZ6NVe%+4~tEW9V1;>Ks))eKg5HFin!za3>3N7G%6-g!&W_&l@)0}7UebKvdxy!f!W zZiri36*z?w!N=!}Ku&ix%wC=s3Afk7U44WN7Vc^ep@qAexV+>;S}P_dOIFwDcbrS^ z>h<1T4cfdAHz?w+hM(ZBj-Jz9jk&2X2jCp;>KdTs#;~}nw~M=)b)zXA)_fdvSc7l? zb=6@lm~V8Mp>0hdiGHUUt-plBnmRhH`6v$SP)}{a`z;<Esi+A{=#XQ{3bAnEM%=rB zR&{Y$gH)<rseyVjqz?_;LhYKDb_+2_AAG2RK5Yc=Q-x>;C<z;H=v@4!M+dTSSo<>2 zC*+H@N%zHk8T5mEpwrynMIzJ+hjqF2fOL6@7HAWBo8a_lY%eeuj#j+ZURMeQ;=M-2 zb{mqeSum@3uOoy+m(&5)LhOs90Zv1eoZLCcwAdEcWcf2vC%;e-+CFCaJrqh=K`=MM zR>=N>%_P)X&8y3ucz^h!5APit5=%_tsU7>Y1t~w8ZnNpuro+e+0i`e{<4XBJ3*~!O zV3s4N6XR9IW4X87E5wV?ifKMy02o$RJv3PwYM@|Y!Ga6)<zQ&wf)v5yB8KOD?I_Dx zz=SHWp>OaJjVP7N?wdq~05Lzx8^wL{EK8uJSUd)|QX*uCB|^0=!^#qwh!!yUI>Pz{ zrla%;YLt7*1TdO$JR>~GXAs5*rba>%5_cBdU)q)@G7&a@G`HoTj*Gw{8x~STX1l!D z#KTyf#)rDCg~z&>vLd>z4%A<+!7Q^z@mLdLr^lN8VW>fPtdDdXc&yDHiE$k$UD1jv ztCJ@(^3BPSWQ!d56#1p&g8CHk=Ymg8B8u?zG#WZL1zD76x?m?!^0eC{HTUq%7!s7| zO(B4|hiTTgw1U+)09Z-{xx#?8qHzpFnEGZC(ZqVJH_})hA2`(mh%_4fHKcK_hhPP~ zlBm1TqWNy%v1a0C-UNFWvvzKTy5~@^1{VSe+7O3mjFD&oEgtLYaZ1HvTV`q9MD|*b zwW`sf9&1;rTMLhMe$_!8Y_xc+)r(g=)*}TogqOUG@t-y<YaXP<gBS5w^Y#Ku5~kKA zk2R04gvUCq2kEiin0u_bu?t4%6)=SuJ0r-tvkR{^U(;(HaDdP|@SZcdaZZ>8bmgkF zp)=jEp#!hMbl<UE_}7xx8h}JIdab+OYfUx0*8F|myWj#*<Ln)?LIe-OX)|vnz1Ca- z*T5f(*V+r=`~{k@g;?=g(`vZDQ%M)uSG?91U-nubUc7j%PwKUf!Q!Zm;fjD&#<#&X z^;&a)7az3E=(RR}-Ax%xq<F3Q#B0qN3%%C9=A|{%HI}^Au_KH3Yy;s0OJ3^`Izi6Q z&quT5C`O0Dpx@79#cQ2IKfXM4L3SK8zM<E;EC&Q~PAUl%${BTQZ(s6S2QX|G7y9w# z!Qi6AYkj<TToP-TUhCt-uc&M7FXhq!SIOW3*uHzP%r1k*_w#RVZhO_;*=qnn9t8=4 zpC4XL+5v5@dap<O-Pxl9?rbB&QGQBJGj^U|ba(b(+3Qv}T6CA(*|+Oix<gm<!kvA4 zdX_Yf-m!3?-q4+$HvOA)XRq`(cV}mhdMb2h+bPS-uem#WTP27?IJ1}G&UV{<s5?8y zu;k8Obgw&mY0ihZvzhH6)6nV2-IgqIZ5-y#z9Ze)x6j?#YaJb_;_J@7U3a$rX;uWi z|9qzGxP#}ovv1GAt(C}vDVrqS*|#rNW4}8aLm%c=-PwHT&fb1$cXnBeeeUc642Vm2 z_A)RIb7vEY&mKi$SWeji)kCJ?&PM0DDR=hZP<M7b{Q}(Cx9ZNmb;+F_%>9+Qv$;m( zaZsv1(TXtK=gwwB6LBKpvRwggac3uJQD0Z#y3d_0hUv~8+?+dG-7rH%Xr7=Ylo6@9 zyB&A-0JA)u)kPGe-zkcl-km)-)SZ1hw1zwTc9s=Uv)`S~g|6DJK2la)DSfo^Z-fS` zsgAEs4!#^XB>s$vZF5M0GK<Rd0fydwV1VH|hfvOizx+(P#?h{-NWt6iIpDuhIeGmB zc%6}3PfpI}2HwBWQh1$tj^4pvz09}G>d6>EFw!2q@G>9jKcfjQVbafx91JfrnqzpG z*=0qrI=}ET@65f-<Tgi@WrG2f@iMbD?Y+#$XoP8UD->b3NO~HWu4AuHFLOH!qt*!- zjMvSg`-Z8WHtdQh2R#?X%RIp_<>r^@M{^IZTdD7OwOjqn>8QkJ*=;?>@#pT?V^dTM z+=9)~ntyG$1&ddAeRR}~1Diz!b)3^U_6j`99))ptP&UTBnNbbYol;o2!dSNF>~g!x z_8>jWj)A#alA)}7T4coUY)oyR*FFPJbJGx|V%s_2&Qb&{whs0{wwhrZjA#&4DIU)q zm!+CkLkw@ySDl{aQ@Nd_?Yu~q0lDi1BQzwd!Sq&4c8K)kmXZ>BmRDy#si?z1)p!Fl z4%r~DRw246ro@8Xho^MQ4Lm1vfhn772Fj$0KN;_7>^JI;;f9^9?03S<K)LiRvzQ-P z-IOK)&o`wYSNMSj?6F86<w1B{lYs+J`TQhvc!|pz7F#ESa!JP8V*}Ex^^7<vy~IPj z#Nnl9n86uJofs7`o1b!wj!>A(N#<i}@7>wAGX!^x?B-~Iah%I!YlKk8UbgoVqq&My z$BLIYr|eNTyu`z^#s>+)-b?H%QMz14)0@TXVR8*nGZr_tv_X+zF~l58>l`BqDW8E` z4z7nfOV1GEafBVEi8_k+R_et2AdEdqE?Iz<8jSVisGg|kau7yQckFxeykL5Y*V#MM z@4X-vyT6Omu-ueQlDkA$%vSFy-n`arg{OEJo?;B$n0Ynd@VV?Mj#ILwjfDEbbxc1) ze-W0m*Wak&(va$0$OGL~Pcg6PCp^X3lpA#0E~l9}b+TMpPch~vJjI0dEqjXlcJN27 zwi7m!qxKC=fuI6w;VH)0R4m@OSa8SnzFz~P*`fk^OqMug`S&6g?>t;y{BHk$d*=dJ z*KyYQb02zMS-!SqTejr*+*_x0QYY2RmfVKc*KrcNbsjWsNNI|r*h(T>v200BQ?MNa z0aBXMkfc!9!WQUmTQ+68A+Xsk3n>%`-7d6CfU<NUJQliap@D6e00s8<|7PZ#bEPZG zQf$Z2C>fu7&Y3fhZ)U#tH-iF9>keK&RA)h<+7U<1fSmZC&=t~Ju3%y~RI<WL`oPGh zhBjBoSc+ki!G?50a*$tl-csz=THGv4vDQb0dB7}mJ5``K^3Gj;{lP%$8RleM(*+m( zNHL}i$$XxmLkrKhDMnZbkE;d0Lj7l`y#Sn{1h<R5@TH;82s1}^jkL-lY->a&Y7Bd( z(_+2oxvlHAx$9g;8j!MEEEXr>-1ik5MbnOBbq<!|Li)9)fX0qZ9jzzar*Rj2Ac#9m zGUpqXutjTX^yc{{yr>oe_E}~u1dtOveO#v@S*Un35OS7ckc+j(EXA}Nnmh|xXm1LQ zt<Bd4mSR)g(O+iRaXzMm!t5E#JifQOf<_Q>gpH<{DA@}vog_CIXo{b)E8GNN#@bYL z?+y`^XA>7B6#H$6{KT!Z6ziqw?^+Z|qzNl@!^KTl+mbF(v_q>1W;9#~RG4D{sWzGF zNef??%%+1Z$czzD&IlQ@ATuEBsmFZ4bc)|x>ziPmxxLQbJF_eLHwt$Qj?At&$?YbW zHQ3EI8V1l+K*oZMGB~jyOXujKoI#JWATv-6Y_EpaJxd~yRfOH^x|v_x%(5WUlg&^k z-yx7dL0y7US(g;BZCw!)=(=K?g-QiV@6{E!J_T$iy?{+vOfQ%$=e8FbbSYW=Xd15p zz)B3TZ3-ZEirEZcjD=gPm48?PS{biGqi>G!tK|616MulNh2c<km?GXlqJ;(`B#cdr z6}>{8Ecyuw3v3niBL+#Og*)qk<GIvc4v(^RD6FP$l|2w%Rik2MoS@9ZWNqAH3>~== z!=v)ZYb%?H=e=(N^M(3LYYL)N$ua2G2FXMo!SX7`k`#bs=<zTdQKm}Xd3;P!UN6gO zh-zUrd&c++8*Ikkf(&y2l1lPK!@yIniMxfMx*f~V!nUyJq$JJ@3hd6*(D>V&C50Fp z`A;q=^Egd8C(XnKMOa3lbWAAKvHfeOZTeu)kl8L?BRYuRvLPS6^ytJDb*RclJ2A^v z?c@S?ND=g+(;0s|OK_xSt}(>XE~76lgWl-d?u@=jJQ7mG7@7tn;B5q77o*%{MqeF} zi_w=&&>F-jw^Mn>=*zZ_NsKarpNmnZmgkVYH|H}(U+(IRzQShn8GS>HGULT(GWv39 zWb~Dh?Cg!cD$B5{%^NWiJXyf#OAZ-*xp<>5swogMC1i}gCTIksuf@W)26|Ly^krQL zzY(RJ8hu-#M@epcI#YT?oSsb^+%{~1Xxg-E(Kz<$j7DE=ooKj7Mqm61W%NZvp3mq@ z_c*HxENpf!?^Bu@eVbWA&@8YRJHE+%_I_tHaz<Y~NhIg7Ld_dl`Zy4V`9DLU9X0S? zSi+3#spZ%#duc{rkhq8kn*dUXaiGRM9tNEV1^7Z>B2W^+1F`0z(RG!`=$qEzjK0D} z-snpSTJcu2Iih-mrrE&m5;F6m+tdZ{>O!CN0U)X00|!)MY`?uQZj3I8jdQWw_5oW| zI#lMm?%m%)zJTPk<r-kZdzl^*k1G(;h2T<N0*QK~uNeXv8G+4B1p_fR{*5TKfFe&E z5WXgh!6(gbIZP^34wEc{SDt0ZP)ZqqR<8|73F`>^>j}^{PS!AyuLl1g+xd%`Bcrd# z1xDXGUu^Toml@alVuST<5U5GUc2GWQ8sp1yoCyX(RW~@vGd249QIKiVjTBTU{Q}n3 zeNk`p)t*Y?Trm2U=NNq%KcPBFSDN#c$mtExmT2;;JQI`)N64bv6i;eAMB^xv$JGvJ z^wr9Dp*G!ul9+G@GBIFAyg~3Hpb&PW((=Zr%VAg^?oq}&V;X^r3SG$PYd9%m^i|sd zua>9_Q#LE)9HX!AwfZKbuQf#qN;fv*5j6!cX*zn%!eKhqXx|LEY_OFlGYTA9%xm^K zZHLva8y}4)%$C{j;-VRSWy)g}2BR<E=>fy+jJ^&+sDnh1iSY3xkfv5pmy{{1ENaI9 zoMWSJGjjH9qpw*Y*URX;@xzB0V}7>A8%>=H92PM8I!&|k%`y7Qm$eX1D`gmBmXC!h zUlNSId=`|iQh{;H?zI4_VhU<!^i4`x!03x6zRu`tg;8rd+3SqH%APg)HqP#izP&Q~ zT4T|Xa}A-&<|W3crbb^CBcreFMM%}Q!RZ4ERmN)qqi=^Z`q~DF4UN9ecTMkcKmm7T zjJ`&6+FkvjH5ofAJPbzP(2sOI6Ibk-zRG>7wZl?oxh`PzwW1jQ)aRO&&#cZGeaV9b z+Lxbg3~GycjJ|7_1vamtMEu}?os?aAMJ~6HEx0uIQyp?$>Pkv<<!!=lQTk}k4h640 z^m#-4s<J|bilX9lVpf=2lS~jh*_^Fi|14zeO3l!S4qAwO?QPT0Nnw+!myjKAqA4q7 zycJ*(o`wrT*=ThQ5v!C63M)vj4BUiV^P7J@{LiGRa{#S#x92?6q2Z;kwSX>jrv$jz z4hD9HtioGhUknv;vilX0payXKX50%5k>tRz(Po_QEJV3HyvXSSXK&_eFSt<_vs#PT z-Mrk6%p_~r?VxHf`)%CWaRB!4Zujn}yWHn4r<oA?g4JtR3}L!jh^&}gMKiwNKl_ls zKJKqi`s>g6>!<wnGrCH%xO_POtbfLO$tlFKyk276!+HOMO_Hj4)d%k5!t&46o(V6R zST6u7HSc+@Ao1EqT*n{(U7K|OLOZSwKge>^^|Zfc0ilr5*-&Gg3m+t}811JVkiPJB z4I}|i0NEM#xqrWIfYQSrq95_sk8>>vNeWk**1}u`bWDQtS_=qG8MF_nPETb4gU<|) zw}OndlX3$*-6cGI%3<Uzq7|}a!b`??=+IaIJ#>hcm|f@<v?@ikvXQwtKL?5XC>BH4 zj*q6~;7L^KiS%L%)(UI4-Ki(SSMSXkzH*V;oWY*A7O?$_$t#Auc1DWOX7PHS0wIAm zmiIS!S?fYNLDTGCitSY9qK;`Q)|Hdzkfu0K$aQ%?47-J1)4ltzD}8x&uG=5{)Jd$h z?MaQtW-S)Fli<_2^ZoMHe}DvH6R-V5+hq}mL!kpd>3+&p{Kwr-TCQWFy6IsbyNszw zT3=}rR*fStXxaSJqN*9R3zZ0%GcclKXi0Wgi#-)?L9Y@k<R)l)g^-0vMX3qsUik(^ zBJ0=?ScVQ<P`ed`Rh-h`cBuSFGcn?oxsD);XmD_)LgiD*JJ7GCVeAJ)n~1o<0uIoe zSwmZwRok8J&sfB~8YtI<a+QX?QF8&MfhHom_}B(;JifsmGbe46H7iUKk+5Z@y(D1b zR3TLqooiBiTh)5&kB%sBVj$Tp*^C|JqA4h^Xs$vk3Oihj%e0scuwmti1X<0n<0VlN zRMY=r9hJFC9cU4-V5z#|;uTR3Tw(rc)V$RKUc^!?qVBx{y@4KAm+M8o2e0rI@yb2b zww~%TIwS3C%uMM)F-|#UWQ;P_X!gxwKelcLk38gOPj~e=UyE+w7o)<n>lIbWH>k^P z(3#xvDsE{K;BMBJaNIx@@LJ?J@Vi#QKcIp(pr&G)T?VI`&r71?(?$(vCojwj>S!U` zQF^hOwyfSm->HubiZ-MNZES|<y0)wbOh8XGm&l11l10R-Cu)G2Nv}0?iXGahSGpdy z&jPwKE17g}P(XauixxfgMGK@o*uh#{NNX6NnEeISQqDa}hXe>Or+(6&YI9GujcVBu zEom>W*(EGMoLqAt&NG8}fz{7<S}#Q+un>K*tA!3W(>vN{<D{T?%}dM9UM>Q;v@j^R zY-rW}Hrs8<kE>wMcw$g!ICj^~KXz{M+AO7fO-hO~7!<NF(450?P4eTFg<}R73|=y1 zWIof7X_)9#7&T4O21CZvY*mXHvXu-O%jGPFZ0;iA%eg~_$z#rtB};4WkR^T7VJcy! zx@e_%b;)h`j%BVEHPtqQ$~E~bd7vL{iF%mhOfyKuW%;u4fx@b&!7U`+C`egPy2>k6 zZ*TJ9t1=(<CLeCferV!gY#*9~jC}VB4%fA~*a$6ip#x3TBF$Lk;vY0Rl392K6)V4u z=lqn<3`Nv(C3)+wb>8}A`jS#k*0*qpbnrIaSjCa{2#eGOQ_b71T#|;?IrRq|ubS25 znuVY%GS>uVmc3i0NNQuZN<Ef)W(7<x0)Y(mHlFh{+pH~)&TPg6rDjR~mWw>bhbjFo zmv6={!jIna%_T<^+sV}~EMDY3_UF?=16D&Bxx}FFD&7{-sDba{HKYP-Q?$@GKv6#a z*J>lqp1a)^619G9qEi4+m3%G2bpx^|Mu!g4&`QoxkETtL`_XEUgSX+_m)e(+7+P@t z%1fnY=b;c+as?{9)45}D^VDl;f`9N&(J{MoUhu87o;Q4>UErJPc<tyhkrS!wbSYiS zW~LB6q>nok*4V)g*1Dp05mYUD#p&qpJ7({ltH?2EI7(+>8~@fnKwDbWpi08EsSEyq z%YbrNzg_pWXNlrDd4WYGW`oxjWofl>;T@A2kh)QlhaYG4$O6O(AV#Mm5n<X`bdm6_ zqNB_TEiYIYu|}PMrs^nZ)Kej##O7+u@8$w94FAPBO-6j>gyV8??rBk2bh$DikoJfS zYv!Yz6rL9)m#P<j2Xt*w_~i0<9%jl@R-PHsV1FEa$1HVGn0d;v4~4f2;BC;JeFgF$ zAHC5`iiGi-N`?!>gBdPha>v!e7RK8ngu-QcCm0Ip!i{)@AhMz-MXl?c*eMu3w|b~) zTYi(f!)f0wnjG_Aid3~y<QMl{TVmX6EeXc9mMr2mSxW*mT50C+Yojd;4(o5T)*trz zEfJ_^HziSIuW2*lc9e(W|7?j8Ewzay)o1I^T{^8>`bLANZ#r${OUG0FkHUFB^4rGa zQ*fMWW9X38QhV4P@4;wR=(qX`UZ6}y)%q87I#1!EU<jui^1&S|UwIv!qO2V<@#Ja- z2R=ns&|+W_=4;<3-y^(&#h(`seXKlb@31XFuMgP}ZbNXGzVOX1t)fdXt8`$8+R<A6 zhaBc$Q=hq~%x*nr_F6lEVfm}M(h5EULcHPs5ea02@^|0{+_I@A#e7X!T!taUA|yY2 z7F}IJnLofneogipcWP&&Z>T6=<`A9I)z&c08e|lzQoHify=&GL_!QV93OEunI|I|I z)^=^_uTb@%O-j%*HW>L_@sD&XY=&HIE`wj#9<d$kMUK^iD8RzhvLWICv!D*`6N67@ z;NSI|#mzQmhswu6Nnm8iEKSib_Q-|>L(OU6&~dsm3UaJO1<kLBTXrxHRj|q-3vrts z%&w}w7PeCGwb(DK1&ph(^ulgX0laOQH;|c45p?xOTk@^<=hbDzwPvs)qat=8f4J6b zZovZBUYc_XU=(K9#6r7w>;sUpI>;DGxwZT~b`s{*Q55Zn3s1anB!4U8Datye0ym5C zjXcN6U^Htbu>}w~q|ln@3;fKfGm>;AzyXJdb0`U^mk^%67rF?6yS}HQN%9<<err?6 zP_Act?L6YR6&wlf@Ox)aDRlw-eN=+WgjA}9+D10RnAVwjJdwmy)RU%Zwr)H0F+D4T zshjkyWjby-{IL_&&YNhL`OVzsaiY7awmc5=UVI#b-2ER`?1_xgIE?xSPGE2qF5>_N zOt`MD!ZhUf5O6?X6elLbWC7nX?KH>@oU(2Zam!r-7Oj;0Y}>g2IcuUa2#mVH-^b(> z-8R8agf{Yq?XvjLR|CLq6A_|^svPSRB!Mbfn?;9St@9p41`xx^n;CBR#sEe8nx+pQ zDnW+|?z3#S-05jlwa@oegG+WZQ1a9tH`p{~vP8AuT0k2SSjj0XVe+iNjf-rG3A|TJ zT|VmwAkzkQEpjI>9InumP?Y~9<l39f<qGi?Sq^e52bSy^+q_R*recZ%X$WFuP(?`w zkwAP0Sqio~3Fy}n*~A6N$6PvfjAgTS4bisPF<y%x1Y7^CLL1M`LIU<{iybBi69caB zA(_oaz-l@6T3sELma`&jAOCenq#z`}vaFClxtz15ofQxnT5j{A&No%s9E&GC4lOSV zMX^mQ{5Eg<;8(N=9X9L~cCxM9rEP|3#ncTWH^Y*CB91Q4cd>%ST*;MBo8S?c4G5gd z224a*?U%EljT2#OY9ZW+L(vEu=|eZcWpj1ShjEvo{(Tx~-tS`Z=4=0$JBAxf9zUYW zN<b_y%ed9yPR`_98^|~~duu*A6|X))I7+$PRsrQ&n1;4&@oGAFC*`ZIV)C+ejY#WE zb=e^r1zhd==wrf0Z+PVUs>OHf*Ntzd9mS6@yyi)AADnU&htHS6tuOj>=nT$bm7JP# zsKQd@g1W@}+peTK-^y$obJj-CnyzQn#z-tKY?C+3u^o)lkvL$A$N@}b{f}`TH4x20 zb8QBQZSw<B7(lzn84%k&5bb(a4Gf>R3y6#Td>$a;eJN5URa6#;zKu%<;#vjGt&O|i zY{hddg=Y)3+-9vFT*9<^SlwDZ&I5G5)q{6l+%jwRFdf3`(JF;{bBU@r#V}R0oN(KP z($$E4kL}<zCqO~vmdCAgR~L(^es$r!$Laz=&3;v3>`zx!-sXXYfpCZvlca7{Ez7Jb zIj;IuC9*qbRh9gNu<Kb(h_I?knh=ZqeD;LUc|O1{v#NY6&&{f0^<deFmxonlm`aYz z!c;2-nqvfwvaU#VFkKO#%AhU^xLw(XFBUo|Dg5W>61aXdxm8T2^9Ee8GwEt8G5=G# zR{HT=zHrK^<B{tilFaoo1~)>Bi#L;1^d-)xn`9To1LHTdv-LzZZyDmevBeCRmR8eU zwT;tgO>%It>`7S5v5YB&u@;jirzreunrf%WBSwl3jG2{uK&IoeBt(vx&54=iypHCt z6HfV-JP74wPWfd{`JX4J{Hb3_IAy~y;lA|cT)ycnMf+-tq;6D&U?EA{-TW#!!5(2g z5$sXeNYXFg>%@86vBv~^c88l+u+JNXg-e1_G-2M=L)b`zswCK_wV1ED+ZRY8zSV+Q zk`e4%vV#2&zbx3lEZDy+*r#&)SqSzB%o)*sxImznWcywx+e@fNnwL<If=>dzt^FX> z$B9snMNA5)`GxvUF+UH#K_5st{KvUmlT^TFagrt&O&J`IR}$x?8Z#v^SjB6IWnRb1 zgQfz6gm8g|SXXgQTyXx};n`JqBr&H_1tbNcb#4j;YR^`woLzyaoSSSvpGXCI)>sAl z!sW_M;4Xq$S{lvEh0^5jkd{XCa1`b9E-A1(GJP)n)Kd68Z9?I9%t%?k97877PnMnY z$NPPKAk&w5KLjA=>&seFQ?<TGE$IbCre7Qm$kgzRzb*Y#d#**^ZNbW(-+_1oMm*e^ zk8<EA2D=Ed6^a8z+J<~^d*(^|-qWX_euK%Ba$%H)@s##g08yH0N!lGVEn&7b><RY8 zl2yw|8(ZY?8Z6$kvtr%JWUWNB1*Ctt)`W-(LD2T1Ne=mz6Y`3Y-G8zLLmGP5R*APd z6&^J}`f@WbtIgD$t2JMT1%#@%pfY_vlIw@!kHnBRU6#jWs^d2Kh2w`LXlE<x=9it` z%th{S@X(uhgw;Lf0$CzpT^V*kfOZ^q0a5n)D))LME?~;R-@Q<CkT2}SUGQtu!-PK< z03TMO!p?8!(b3`jZZdu4b=&e=xMIo?RklVOXwN~TF<YOh(Y&79Xh(_{X!QGk5wQ4H zm(0gd<ePp+xb75idaLysw6QZfXv;wDpk0^^?b-)^S#pXxzt}0r6q!A*UY>$FMl6|v zUgle1IA8d5I-D29B=km}1)BZr=h9|3n1xt37BLH-e^#?ltdp$4cpS{J_<thT*m!Ry zZrlR$<r9sJ_kE3w_x25FGV_s`H?!Wq@l4kHTnsbntoPueR?sGkrnQQHO?OQZFS?ce zUN*);={-%k65a-KD{D0*$=gk!SNy7Q!-}dc;$o{!+O-PbPHcW<_T!~IO#<+9+{8v& z+F2O48sT`M!Xn1bxxN4`<_pk*FTgUIgppNtL`sS)Ed|jTw~<M;No1mGUfktsn@rqI zI%+&@5}+GrNaM_@xYfN+UxKd~Ak@&(7^s=mCRy=)b#VF3DEisti>6W&)et463at{Z z_%Kldtr0BvUQX851b%lNR-es?*MZloUbF9)P9|tnrL3>81nQ*gYYiBi*Fq;=3$Du^ z2zV=~J!m<W$DN0;0}AkF#-p_qBh$6DSCB#DESr1D^&EYN>URx85^}Ap;*#p#r!NJg z29Oa*!e9`BjD-aNEe{nEREed_1IX>M9{_|O*oy=ZlgGR?yq^UJSL0yu?$&&pbFhF3 zF$W9TiFc{0kw$J2NSShr(5{X^JL49?1_C(LK{Ye}5C~=v`9pS=X($llBd})tAvCYU zJ{kamAOP<V(FJo*?+;O~vIJ)NLumKqI)8}ei9f_d;<P~R6Y__^XBzj1<<1|1ab~RL z51|K0(zt263frdRwgvqmx-|=eKLn?cE(`t;<=Ora-G`;J_x=!F<`2<jx6U8JIaV;c zXZu4;IDd%l`TZdj(`z8g`a>L)ikvr#@rO9*;7Vy(e~5$U$R7gOpM^h!<vOE31V`bX z*&o6(%<_jYB?*U_XkrKK?64tTnDUgs&e^F64`yU}HW?1k9_qkW?m31ajSDYV+qKML zHeF!8CV+07F9u!;vD~G2#QqD0BLJqM0o%CVxg%7ILXgzMJJ*Vw8CpRDomxF|+)zOt z4QS08o>W0Bx&#drg(t054o}+86i*gCo-7D8o7$z-xmS6`kB_yM%1Dk@&YR;3=RNm) zA9b;GpW)yMM>6L69-<d|_1WhxeL0^4%^(15&fi+qk&1=|oJ?WATR9Lhg51*$(=d^j z5dndSrg)lY7Vm0)k98bfwn(EH!OexFl|XpLgXgx@Bm^=KG$D{3A`J?LsIgUwWnmZM z3iMN0zo2)Lataiy42+D0isWlw!?w!ym=*jUD>;V8DXSQsnAm;@*X2<pHx!K{`y$8O z7sEZL{OZ0n+;hmU?mL{@3cjvHFUrl8p+_eLjcIod1(KYSnp{1;7TV~(;^SP<-nF=| zB5ROk?5gD|2#)#Eqs#IuPnDeOFpPq+A@c8(c@Y`OQ(d6Di3ji=v5+#Vw_;5m*Ku5f zYX_ABVnM7}W3M`<0u!`VEC-lg`=@#u;ZVBK0^>2XnaujyELu>Zo=-sws+#)r(LR=} zVB_HFK>`0bV~Vs8H18`L5RX60Rx9h6rT1&+(s+Yyv!D&ZH?3FO_z^>g*|by}S8PCf zrn!C_5qV=HL&6D!@_MuZM0f3e`nN&3;thP|Hbbb-2trpC)wGFC#+eo4p6dZcG49r- zDeeg+Un1!}{KpGBcuP>-;80&7zC_TmdbP&}U9S)^5?=xeVm9e^Bi+-i6qeIPyJp8d z@kU+N8~Wn1kr}O6AX*3DL+#!1I??6boNTk>uznFwpv#EzMb%#K>C}s-Q_?aWo!yK3 zfA5xv&)EyQe5ot-l3Atpxw1C9OMLc4#z~QkiyKhiP=6`AB3oUN8+<D{qP)J98))SQ z*Gk+aFOAn}(|rEfTwQq*=Bso{H?8_7uC6*+C7kZm3Efc(UMbbClSJ?=J9VPkdXu@% zb(;!BPP6}nEBNWS>G3M=^E==0J=Ny#iknYDtTxJZa(ViMy-nhleLefwbd3^s5WcnY zq_1|Qx+Y$AGSs*m_noejR#|(tmg3`a=SkR)a$06f-1B(6{3H=#E7FI)qSJ4orn&;? zQ<|$Krqk)I|A=<e%{h-%)=o}Z;k2NYc!dD0*85MKgkNty#qL+Dc+`=3bb>e*PSK<X zX|@w_>#1t<&fKl&ZkokQ$89@v-%W`vJ6mo+LDjM||DX^mgiWDL>zUQe_BY}<ehGey z=7>prNW7j2i6Fz=g(|V{?%|Rqg;oNHpDAFf1L141OScMYuC{#`+)U^IRbr7m9k-p> znR^g?*>);!zQt7iOz$oZg47C;_<$dz><8(FB@|8zZS@E_cJs46UP0&L<)=>UjIfuK z>Dx()XVKk@lAah(`g{NDAwJ4lR@P3YQyX6a1iYh868h<~5P7!_^d#w2+@L%ntCxt< z5E0B;2FKwX=vI9}oCd*48)BhabA~G#r%^TJRP8Y~W23&o!&huXciaQjfCLN6=>~Mc z+YXq*je6gcyaYv%O=#M1psKC*cs4^A%9@aisl5k4Zh&2e&FB@n?BOBJp?JF<s^X9x z2@3^jqgQN(g-tm&!+xf0Mz3cxG7OGmGZ<m<9Ti8RE^++D>m0}M@M}C@vDf$tAIz`- zx3PVx-<F>1EVSL<aWZ#8$XUQPVkqD-LZXSgYpwW^8UwXUtelv(UCHs3E{|s%J+)L= zp81+PYRNnnCJxjRBI&3lWHV4pla5WIs;8E-$t0&-FNQp}$PFl}tbj`5AYU{h*-XD$ z9Fb%u3>lH+M<4py7L5uby@(`>gq^5R9EeCN9>%7H5nVewnKyK+#fYTj#!N<u&z2F@ zqN-3lA6P&@ajY7i=8ihr;nH&9^B>SQwJxa&jez+{!)d!^LUFrkVe5pU29^5+0y<1x z-0U8SP(D#vsZyx#3F4APDxavXyA2djj#t{{6T715X|Ver)DAikeHY<mD0olb=l*4O zms7Xfa>ng8Zt9840_tzPy+_>Ws`{d4m$E7?W!0=wRwboG;2rHaBv`>l23WAOO%24i zS+VfLg;;N|s<wC%NauDXP}12&z$|VN2`s{{l{cdTQeg>TePO&-Vfc)xux4Kv;$VGY z$U<?mD-3Zv6c&VVG!)h{^!q9-a)q(mpE*kd?p<lUgzHjN++>BRq~hhEa{lSAc0DQ@ z`j~ED^6=WOu6`6+xyGKb$Sw!bt$!4Hxz>E4qemWjq|%)~soHL>eTRb9ZF0xmcKH^k z$m6TcF(oS|nb_jTpkO@O6jL-+t<??u$)nY-q|CVcebp6@JqpQQ{TQFD;UnL$F7k&P ztAiGh`}<3{xYCH5s!gm6ez29Es0y2JCYzBl<sf*_0)?0`>mG%))0mZyKu^~_%A{QW z7$NH`A7a>=ji@yDJfcZ!(|?t+u6u;Wlpm{>AL4u7YM$xuxi@_91J#~z^T`9u>Yljg z4qeho4J>RnCDYnd2^z~IW_QmIg%WB9=tR#?LPOltcj~j1bE*r=MT<4FQj+y@h7#iz zT1Xp7q1I0x(CT4s)S~N5E~8DXagi<Bs1@EkA+lD0HbE}U0g~sURC(pt6-4oXE3{IC zp$vbi2$31Trc@mC=I}&`uT+%R^I19a&PSw&h`VFagi2a$t8>P%L7AeW7O5v`(g?cZ z%I72Ks1BC7_HyE)O$w@WbRD%LE4^O7YU%^kpJ)hl6SRoz1}Om9_KiWsNDJ%fx{2}X z6GEV;>olU39xk&UN`254qfs-uK3jdDvlRdfeA3ye4^n`8^#O1eT@UI5N7p}BK#5rJ zfoVmUp`wPX*Cu<$EyBEJOY)k<cLaX@EsQk^fhaCH*I8_NaR<mtb5*-G_96k7FK4cc zG3+(<xoHm6gFfw$MkqF)ODuCH%Fje>0#Uw<Pl+GNi`zur;u1B1D)Z2qT)Bf1m?O*( z`Abs`VQp-kiR!LR#qLEJkgoDd3*bT_I}Mq{dxNnN%^~zyQ`h~}R(9IEkqpy}39CnQ zDlaI(6Nvk<uIj{6`3$?>2cKcG%<4LWSd!OpNm<w}%>f25$;D4}P|92I4qS`;g3(!a z#QDe3VIl_Y)Xu0aaK-emotGteXZBf?S~HR*mpC=^9Io*l3dvqQJ7%RZsM1j4I3wc1 z__deb?AWcRu26Rbm<+3?<(Y#mVvKkBI8p*w7t|NsbdHNG{luEwMw!odV0@s_#<yWd z$nRkK(`3)9X<w77lidrlsz5O4KdK{BWRJK@pS$2uC5jijOVD+L5rruXU&Te00VV=e z@HEnexXg<vhyg%gQB0|{-884UT$ReU7m~sy*8a+_O6v+5M$<gl**j>Pu4h3gCeJq@ zR=X_7y<^I{rsDKOZMFg^bBhYz9KawAPf}3QlP#_w0>cELMy1e4aeE$^jY}DEr3__C zp%Dy+M^}_k)@Iq#+9>D;X_EJ1O{H)Z(gK_Fwp{HHGE@{wtkVk|^g(r|%<KS#n2-c2 zN?uA<VqI$1Lz^W8nW@8w46DL1*2byNF-DoqWy!`U)=#~XmCA>lf~>Eyu2#nIzSdzQ zyTBc5aJXo)*%;B&qLEsi8!K7Vpuu;x#j}hIE17Gp>>khJWmh*7ksVw!LPd3>lyJh- zP9Qlhrl*$Q+f#{aImG|f7NuID^i#(wuxhM-WXfXg#IcH`P_&|KatJO!NL2$Wui#SL zQ`rRQx<M+0wF;%{zqkX@j-45_*fz3xkz?;AO-S-#-^LE6AUIKC1_3g7av(=kTTNM3 zDN|mX$k%lY&HdL+RV0{0y`+q_*&x2amq_RmC8D!yk1x^O=yZEZuHbW*Ll@SKskMnr zl4P^oB%9?<V1ZHeIoayS)(JY-jtLWAmKzeUtU~i{aeY)!vHcb($2MB0)Wek)rXJ>1 ziZ&?-Hyc*2cAa$%(AMuA@hXWgXi{W*=u}=4kRUmF0+38Y0aczLH{1D6&>w`0iApE1 zkkw&TyrD?v;R&r=Fg<+=Y>M4+mbWWZdruLn5^llVk$sk%;t*D{@VYf#5ngkLz9Zb} zWoLS8-%_C<xJvz76|Wb~D#bmbv`cFYp+9tz$T1j^8pq`1r3%qrA<LL=uu}dMTqHjY zmLSc(O&aE$_LR<yy?;nPippkZKqwN8%28p6%otH(I!0Dl7$sLj#7XCxl=@U=bmcEq zZSO9&HKGmLzqU&phi&og8o=o2rG1u%!BB&Z8DWCKhhzJ#8g2s(Yu^kl(N}1RB3)?y zP&0!fk%CW|cmx&esEHkiHQN-sg&|%)3;YzLid>_KF8FC=+u~I>E^DK^9GP+zP))fL za>Z>DE*L5CX|NwQ%Z#Wj3v*mJR#ps6vd(xDObm5EQfL&xZ-^~A`A0>m$5vw@w%{#x zD&vryxNI-A_e}D#b*ei5%MQiVH7d3RO9#`eQwERDxay`^FVn29J)KE=v@wQNDTL04 zKESlseaKwWG4K|M$x7;&faz@#Q56it-KoC?w*R-|0F*&gRYXBtvv#7>uyBq&;D^uB z=oU@Ez{0eh&{EpO4*1GiN1MzYz-Ut`AwMZ?0`)oCmA;%yo6J$d8foGRKGiIE&&XTb z@RyL#?-+US7LbrAai*e@@mcyy6a+5^0F#`GCffk|m9BR%%;=6a51QC4fuk&#yI8eY zc1|^94?U*Ps-dhbrf{X`sjU0143khj)o1Ut1l+U0>l;u9UT<cF^tU$vZ+if5`f@?= z!U11E@DfcZcz49BZ$RVR5yx)QYMoajaD?snvX*!l<EQil{h++W>;(@uTQ+;RC3)DJ zK8%xx?E4o!htJ0>3ys@xcoQmJWHa`f`uUc8OCp;!x$TuwPjwSY2wO%Pdn;Jaq_H-) zC#@zVYJP1}jb>jM7apQ15y}{3IM%9h+H-|5@D;d_*^M-hIgl-YF5_D!S;6r^x<p9r z%y5&*azPdYGa-u^e|S}$EM{trR&`YqtY9LT`)MMW=4@Ut$8KrBu4^m}pTDt)mq}Bf zL4sULTX#2TtK`MBg~k@UrVA^ai^e{?#K!J>DH{9S5*vH_i)^f>pr&`#1aVy4q<?6? z*{dEvSWNfLk!(b`V`;8K&n1DkDGQz)scNE4ZwqKnq@t4OEeRY`K?mYDZbc_4+DqU} zL`{5(){M+b;AGdfPJ9RJ<t1?C6xYow6k2i($%}V3K|Eg?%jLlIwa>g-lLm}`dz~P@ zukMb0yqI%gtM02ZcMJJ)960~AlzwD+ZXI0_$Yy&!t`uU-$mlCg1g-OY1n`&?<oTEg ztefQd2#;pMN>%cVEV|kUsmXjFo8<c#r@zf<%_+?QWGq^nPy8So(I341QW67k_M+#! z^e5{FIZN~uXNT(1F%sBbwZ(>E14rLMjEpa>k@D8)dO-?0tI!$VT-}KuWMQu1%}KjP zbw|vfz&R20$R66HjeIC~2nml%AB?B9=3aQbu3Da59VGH06|zU8q(YP=k_s>3f>elF zo%v}pV7p-EWx)2hOSYq)RCq$R0lw8vp}u9z^7Y0CONQfti9M~_0FJE_JCKW`3cIa& zf2(x{8-WBpy9trFDqv2s%@`r1!O#H!l?irQifUGu;@uD<V2lwXIF>{w!*m$8p?nCW zW@OeU=spEtGSV2nJ#30;rVj<6L2?oZlw0>!iS&By@p4Iac<4y7Q=RS|L#QVd*vWHL zI1{j_IBiW-<h8qeqOzRsA?CyDcN@#?oJu8sp}Ps<nB8@RJNI&VxCJ4=m8+#wbc|}r ztv$AU3%F~G>%MJ^>%UdM=mJ9FA?ziq9S^dG&M&Pk>``Z06qzX1GxnCMNu$Qh_P)fJ z3GoT=A_J!uI{uxVX0_8sn;H@137!9F%)MSBPt5-kd7^Q#&5|eB&`R>e^7s<hyR}Z9 zNZX@%;zSrpRaT{@4Ig?AZLRwdg$fR=>=na^N>>4tq`nAK#IzV;iZEr?r4zyFJa8}| zyL~DwrTit?F|Xt2{nsI)AskBVXCEb<4cNIX@1cmJ5MoOm4Dm&wt#QeCZU;Sy0;X_w z5B<nmtD4-%!e7W*5wDTp?)ooNuZ*LvBxh`a$&=Tk34hF3A>NGVvxi$9F6?xo47gCo z4~dQ89NPpJb_QNNed%~{TbyR~_G&o#>pVfkXCiZ&Yq+xnBU?e9QF=B+iQ2&DMWIA% zv%~w@zM~k?ka@AMb2cp4IZI%wgN0W~0*h4Zn8IRSmE;*<A-Uv2!XnwIX@i^h9I%7q zG9q^Ahf2BfJmgu^F-x8?Z8;S>!{P%I<|WUL>R1dzpCLuo1Bjz;+d|wgAQr8VYi;IL zm_wogY&sOC+AUYjmZ+I%7MI!65*+KMt;{j*B>`eA4=GBVf_aX1xSm8Kn9M_>6Vdye zk?56yL<gdbpO_J4b{`f|?&1PbMt$pe7J$?mmqmL`qgXO&-P0vQM>*+`9Mp`Y`iH{0 zAQICr$z<g|@fW#sIq<;Wh@`fI279#gnn)_-&gY}7grquUX%=5<$36zwVWvP*)4H@R zAG*Q4;DFY+T^EM|Tr1;N_!~M`bTa^lEJszrn{v;BxJoM{?anem1OR|HeK$dC8N;sK zH3w2D$|(hk?|~6keFkB*Uhx|JQh3cBy$yHz7U~~v?OXMZj&O3fv?g6{C9M|XU0P#2 zYG!L<RBzxMG)e6KE7UA47V{FAxRO0OGQ8@8QsjW11f}REu&HPQW^19e8XByD6gA7z zNbSwQ)n<Y4A2dBh%`F<Kgj-F_$xB@d2s}o${F=}9U#L1o&u*9F3_R401U-9rEOY$@ z9?Q~YpTGm+=H90-7len<^M!;546zVYYrM)$DmJA8HNX2}4ASx8_+8TZDbgg_wDjd5 z9h7C+O-l*IaUgm*NXMkumxFY2;)<Z^FCs|i$qFbA#n1w7v#)lFowLbZ`kRiIHfE%^ zw$zvr@uQx&SJwN8k#2K_#qJ0@f?*LW@_McySG>W+-dK<bRGepr`NtUqdBfJh8-j`h zx{Dej8wAp0t{Cg}ICd&!ks-&v$mJC+lwwfa6KSkakAxhROH?io%yUD$*cn1Y<V3$v zXb8a|kO|zg5xH8qgwPNgmjTGSxLbY(yNUY<p&|BQM4gDLJ>IXA(~NfE&F-3BVPp6n zq}(3)b#}YZ5Gyqa4e_P+xxzQQOMLc4T4;zB8NgNXMN*;KTXq-vWsvf%w9t@jD>u+e z3k~VUyg+D3w?aesCk+kZrd3Zep&{H+OQX<`b=jbe#f646tHd-kgquug2zQGL4OxGt z&=A<uY%^a}Xb52)aQ^2YGz1=TfzS{%f4$7=Mxi0SG7HTg8e(T}O4TmEmvyKRjcGia z@DL`C4-etjyx}3Xg5-s=juxJEc!;tt6duy;!$a1cF)oDI4j&gHt!U90ejgXI-f+uC z(}1|Rkah9;LrLg|ZgAy+oFs7}7VBa{uLX-q^W@N;r1k20nSYJpU+<)>oFYrs!|?mK zkRHR3JY?Ak1L%6FiaT!v?n>f9dZeDVcoe6ecA+VWdb($>dRp~L&;bJ%8pnk^qbL@2 zW$z*^7d|dz@!yty?P7=vF>OZ1g)2l+&L)M6j0<VHI^r+Hh2R~D2bDXf+*ARkp)^tm zZ3?6iaeIym(<0d!kwzgNJnj<-Y)k2x5j^DkgydD*L;}69A`{7<w1*ly(8weJ#P+$z z7AE&_sWp_r0!v%~h?D{LNP&~}0U!z>J3|17nW%SR1j)Fy!=KL=08%_d0Ej?TU&?#| zAe2%c0Max!00gUn`~VZDQ@TDY03<L9Yz!bE#ufn5oDBd;cndu0RaoM)YK0X&)dWJj zk}**<2_1=xqV2Zd!khpQUs&)^)Sz5dJ&VE=0Me`g5dKL6K)9i+*#Ho3B0X6`00>{r z4gld%8UVu0`3eAmW1JHJ0#RBh0Ho-n3eOY(Qe1KXh;tjg&+9uFs9jYd=`)0DkQI&L z83I6jk+Wv{8A@Cz0K^~TffuM0FtkxCys16_#GHP2izFEiZ~-7t!hk%?ojF6v>H|Q; z?j`{sG7wv6grH&84V5F?Bq#+2L_rZA{fOYC)X~b61C0fMsMQt#(t<g&Hcvz+%AxuI z5LV&B0U*t(VVR|Negi<vr~*x=s}S%+V|Q)>Kw4Y?NHMDAOV7RpQ6R*?y&MP<n>Wh& z4Fvg<4O%KJs4Q=$<&~2=%aQ^?&RLPA2iE2)J`hAF=dq;C#YFt7n(PBX*1{%atyp+9 zI4f3*#Lbb|E`9E@*<E6H>2?>+QZ+2(>`4s*K^9w3jh4!1RY40D2+~3z2xi`1%pF`} zxvaV>tt&`arhUi;g5Z(h@EZFHs$D9m76L&iPEQyfEq#m7-J*gU1%hCQ2?bdoNK0+A z58-G~3czX{2$Ctq0zq18ArM5R&<KXZyM$6gT_6ZH2j0UvfST*Au1j>bonv){Mu;qc zpbOB03myov$^t>8+h8TxMNuyd4j0Wp8zbmrCJ@9i&Q%@XZb$gFAUv<Yi2?t9=1vF% zS?A!Iks{7xAjmqT<dTNU{TG+Afgr&!=mSB>il256D=?NNaUj(-Ggvis&?>$?YchOQ z<x+;HE;!_saT*wct6e59U&nA{<^WGoJ7n?<YQU-s9C7B9PPBWtt5^U@vuf>Shoums z;W+`qbxU&bLAT-pIEW(&d%J`z#CZBF78`G&3s|82>yWG2a%sWIB4{f+i8xX42d+X2 z{^%t5gUia)RjBM^K-?M-r;@Ql+FcU#;a=9e`{*+)nk&@~a<>yQ<eS7D?hWBiFFE5k z+?qwxJCtB`mhXPnvwLZcX&3|I;y*M*_|<U1<AzZJ$598vA#1aZ8d0FS&GOoDtBrF` zgJ<I$MlXC}W;05XILjPSga+u4LC_70irSnr55MFUW%W9T9_<K37#Yy3uhIgy8NpDc z5R)lmlBs1S%S!2vm7{WujaF&gq&TQFrsS2N`S?;z*sf#z3Pr97MdHOs{0mcmF_9+1 z0WQ*{n~o=uChTQKCtak;N`ARWlQmX2NH?m01})OW`5EC`79vg7xJVP6g3d0|#O8Jq zX(APc?DOJ)m#2{?hR@k+vCNF@Fr`u^(!>tsvS5;qxsfKELhK_=8otCctZ}jRo?){i zO+tH?C+(T-8RkNl;>M9Cr8$u%>Tf2}q;$qe6BL-}TU?|GM@DNn3}#0Boa<pd@mpdj zM3(rSO{57f8elR_(AkkDiAU;-jWp4*Rgm`CktPb|n-gh5PWk9*twJ=i_{f!_rwd1# z%mS}(KqHT?#Ri$40lZP%AkyT#ftP)tq){y?(qtXP*hiXZom*gtMTB(Y<Yf$71SUk| zm_(ZJ&_$Zq!!0g;goiHD#2&`ULl<dc4}GLbi;FZ_=ORr$eIX)E8VP(NwMhiWMHXz* zpuHD$yvYLXz34(t7HIFwQ778>0daU~Q72!L*+(+ld5t<bpS6^poImOWF04)=fVbsY zyR~{J)_I~%aMnvAP?j4L8uXE|HhkvEc_Q^^9d+V2Jh;G7C&(r;L!9HNlQu+VqE1#Q z>I5d#N1YH0l0==fDC)#~-DO|pG}=tmNj=kVTL8kkliB2qU|$JQDMt8Bp2V1~`C~rx zy;UzJ@g%VH@VgQg3FAljf}c4Ym*&coA&beA3Qg%j9qda81tA1d5OZb)#U+s@h>sE` z%Wew+@u0Xpm_w}FP25R{iK5%Y$3#?hFB56fL_mFp_-G<Lx!GbeG=w|C7Q&sr#Tzr+ zHV_{(ktR!P3)?H0nns%=sAp1x_(&7KZeSvDl_cH;fZN7P7TF=O(av;5*eLmziLjxU z$P*Tv-tZ;zMB`$;JfQ$~hPyt}#J7hK6|^|MN<~a(BTYKRp>@VS(nOK#m1RU3E+*Eb zev*30RNEzlc`DZ0gwu?DcTPCUbu7MYFbb~!3PxEmHyFiti?AFY0KUwEQ50AuUY!j% z1$g(+^XjY=dDh$Dd&`LnMsZ~&!6^2T_jt}}qS10fd{~vj#|ub9wn3J~-RtB5r-;P_ z;{)^9<I8#YrZ3Mb7=_xK3p)_kwc6$JEInHYMybb?FWULv+U(3z*}m5Yqu~Er4-1E0 z>LtS!uCItL(hbgr#fkun^yPxEkmzzDVKF-xWjS(+^LT!Rb6Y%<b7Sc}7em0xvRTwU z#FYA(#3(YEV4z+OSXnq=1>M6e6`Z5S7R^#mjSb70W*KAz*+iq72DkJQoEhkLK#O31 zIVZ_nV%{l)x6G!-Xq|l)qsEGA!FMyzxlj;llEy(QM5ic7r6UbeArdqMsW{Xk(z&Q0 z6@B(1gH$?%mOJW#RF>A5vk6j3FsSDJ%RwqIAsIa2;o)Nl2~tU82-Bb)h^0g8>C1~g zNX5ku{)`UIEGT}~wp(C7h2)U*LbBmubM~0@f^97l=aXa7QTVy-78D=vPD}?JaJ`si z{6Xm2ZlU>cc5FXc&4=w4BJ4~cS&9~;mECRuisuC1CfL->hKF)=;}yoyQoG5wtsK@= z`e0XX8SStCFJ>akZxS4ifBNCh=3G?BHx;$vA>UMs>>LfRAOug2n~0R-qW^X6J4CFS z_6N(cCy{LqRdlCHh@U-%naj3UTgKieQ6(Y~QicozCxQb15bSMUNJl<!(Q6|fVQJ5C zkOcR|aG!Vgt>M1l?mKiJDL@*i=pwNT?v<@YEw0GwYMWD)uZU{ghg|d_Kt(C+0+Iv^ z6OD*<V=pW=OKFqKd&eQ--n}ML2L+Zo*h895X^%<8DRMmFF|#>jzSm}*?t8=<ofDnD zt9xU80Ey8Q*9OWwCV-~-<D{$(ZArbTfnjfA8u;}yFiq!sU=UH$Ns<l>61WWvvx_rs z(q+RIu39$Q$yLjSt6w&3OC;$eVss)~HaJ>o*|amU@DbC_gq@kCqfI9YJKQRfKmnb1 z>qp|)>vCE@h#IU9?u+4G2e)wF8t$9jeTVKFuAgP;`f1P9m(=F#YPf{_Auk!|l#+>F zR1|o!ZIoL=#Rem#zSGN083}~J8cSG4hP=X(PRi2h3riR+hUM#av<equv~US%w6^le zXd%Cz_1elUWwcCKuUlJE5o>MvwIoMFyVoH|T3g{>hahn;#%2*~OU?{_C9}5Nw++bC zV%HYup+=Qi<msHREp~EkG+MZ6`L(r}(E@0TUt9k|MvFZK&i`m-8IY8rK<rTrwmZD@ zO4Jg0xEY;d261BkFehvNKoNeoZniVb$j*vnFR$-E)*ICxXf6HGEw>k=C?7>pfyB?K ziPTJLA+?g)NbRH&se`nPbi>wzQ=<na2S#c$GgISt9G@Ax@xaXJ-D3x*CXei!8a*<7 z=j7Bq*F;hG>o|#wLO)JnSG+oo<Gx$_?u+*CKQeaT%>JWO<M)ikllP8I-8nJ&j_BU8 z12dCT(e%v0*S>b_z5`=NXT~RwMAL`IkM180wd|h>g-3Uc9^5}VH8uK93VX-?iLoPh z&D_ny>G1>mr)krXyIe_@ZDL~bK(y=4wX1K8-ZIUrc>KtL$$O5D&WztNF%};jJ1}{0 zY$~SB@yy+0ygYh*CcbNI@}9Aosdru(T{}8HF?KMXne;j1qm$!DX5yq#)7dQJN5*Hy zM<>R=b<E20WnUS+<;dY9lkYeZ-!p!MYUuMcy~{ivJ(PXC$C@xc9UqybqWGS%>ARJ8 z`uNeKlT$M^CbTY|dFRowE2A4M+b)esd?&5FGMZI_Yx04K$>Rs>3mO9w2L%#3d-o(S z=k%5rqX$Q4MjO0JTH)SrK5~3w;<D(b<5Oetz2j3e$44jPJC7eZpn;4Jj7|W>O7y0K z`=-Xml6f<|%R&FOu|{NSY+7)MC&um_n}{zRxBe%+zOp^Kc4BgL<|e^^TE#5x<69im zXB8T^N7q~5=RRkqN6`b!-Q`@%B+eF(R+3hcx=5=@Ye;KJS|8n{btJz&2K$nJe&g}c zBQxXQ%9N{LA#RP_N*!7w{=5EkU1e8O6g`jh^f3AKcNL3sJ=Y#mFKGkm64FLeOsbHo zq*stOkuD{L@`sal1^8bR-VJP<^KQ?P8P@3NfiYIJYeNThYi&PITZV)r`1=soS8{z7 z=}hg}%=^nomy-e>8JuTUs6y3qnzGej{S`q-ujaaibOq^3(rZY4q<+!>X^<4k-gfiY zvEyR^e{>@0nV&aFf4)H3+M$onq7#%q#C0o4{n$ntCS~C|!u@s<!x7QE=qi%0Z*X}2 z`lhd*JTfyi$wHXA#`?9Fx<bF6=l3^I&g)5UAZ7ctgM0O>M%qcbnzW0g4upCK(|R>v zca2TW?XF<?De4gn^>+e<el6GQNV`dUNN*&)iL{q=J?RG0jij4M->7?s`-l3j2P@q) zHFj{^7WmBv?jE~m?55Evt@DY=yQW6(@lf6~e#6cC2Zv{8{idnWqm~2glg#ox<Kx#{ zL-v88My2lp4ed$ZCf&Pwa_Y#~)V@)W`8E0rO&l0*ScpS7FI}q!XG3DCa7ueR7rOhP z3kO5NVf`9(19S!l=4(gDo&s{~?5r7-Ae<C4k2JTw3KHDqe}9tSd;RZw_<gJY{W~xd z2mS9Mejnwx{&dw`d^1TnOLI}z`R1bD=}%?pyPHXi`R?;DGWu>G=`AGHcMEC0`o4*G zVeW5jG_kHfJ~1<XaV!9hMIZeOu>EW&@TdK6C4DnVeSI6LQD1N4`P)gpuUoe@>MMv0 zE^BoB$k@S)sM|INd+BTF_mdFrZ=o;yNw<^K?@`hnqywabq=4VX_<g7D9ex{Z*zbK~ z_gy_XIdw3Q%?po3tdCvvEA;V$FeZ1=?z>6jB=zwS=`d-6bPp-?@d&>sb?<R_LoA#0 z@g{gpA=Q9JE;t^yzP^y@>q9VLM``~t(iBO3ohHqYj+5>sg}%On-}mX>_jRDrJig9x z`Qry}Kwuf2c<FlT@aLZ}mSJ4GU^3rH`@fa+ZKM;Vlcdm}k+bNJN86KAwW+bu3qMzv z)YP4$(_<IDsgAGRztWAvlgzUY;IBVjH4djpqAwZ;UG?`tgaFZy`$?xsnvdU3YJ^wC zKYa%&0Ocj*pZfbR5|*h!Lu}2r1J}SK%mDw#xYwVqg7<flGzNmVuJge=jMGyHYWnU0 z(sz;c-FK7b`|f*q7slzOruFl|sFywkxO@m9^g-JEF4Fgs)W3I=8ujlXp1+6W`*$(X z_eNc{`S7(&Ur!)xe;@6CFX>^D`uhE(M@Wy79wP-B@IHS3fbL&fnm%v8zR0+RF}w}s z!4J~b_mh5zq<;M{>0gmPK>86<=+}?(`(Nw+;-KU6_U~!ND)et;9r%(q{}}1VN$THE zkUm8EH>7_{3jO;qzdxe;i-C4G=$-iM4>De%Zy#D8MIWWTKS}y`q{m4gBZc-~1hl$A zFP7B0^Fy8+v`%v6KQd<o>)W}002u2}SHb$HNW$-eb-?qt_c%QN?|JrdlIGZdAT`2+ zqQ_5=JQM~-X3My{#wKP)m&y?$oAal(7ip7dnf{*T_fK<ulJqmAD@m^*{VZt*X@Ddh z&wnI6Mfy*q|4j0292`h>JdR;abRfQ+)T%l^LOs$a>F>D>QS=F}KS%m6q@O4K0_kbe zCrQ6Z`X$n*NWV<_6;hZPi{+Vzw$BElYi4R4uy)pKd@iKI=cR7o8FfEPY#dWfV?NF} z2OY~Zy;1ZG_j=yV?`Qd~zY`my=vTQuL;5w+r%C^n6vlgLcxs95P84~w=gcD2d_#+B zb%MWMs#XiH{rn|vY+AX_FedsdR-))LT>l&C*GXEZzd`ye>2sw2P73SvH~IZ6DU932 zvQ8VIao@y+b+PAbJQ}pg*2RH1T_aC31}|{0zXz*P^jlnioAf)R&y#+a6kxrm*_O!N z7qE9rYUp`i7LA6%>{-9XyceF@!u2$;*Iyq5{eN)%J<=CQS_}V^^!ubgAU#J4YvB+1 z{YRuQ(H5rTOB@T2XFo$5g<JJ^@X{#yW3GQf`d_3!CH)!ci=_We`g79%A$^JT7o@)= zh2dH3n%y=>Uq73+UOjqb^2j)bR;<rX_y5un+KZ~SXQaC4qNU>YG>89SQ%ZyT`MsC< zq31Kq=Ue%$zus3x(U-YCPx>p;Uz7eXDa?zd;g@sKi<g)nUld(%dcYfB>Bj9L#;l9+ z(%;jYqv$JKze@UlB(3$oA-zEQThiZ=!dm}(et(S=#`L0G>kTk+z@ZBoPA|w<HE19( z)p{y37GZ7O&iFjZz5Z^yJc|B->pznINe^=TPYUC35wEQVon2C^6GHw{4UzcUAHB?t z(-#?+eT<3zx?b&QdY<tpkhFe^T$@PEq!v<GKdt<3BZc|6Fik%fy%iRB?fxKb*8I}n z`)PMOZ7GpDNI_;_#_t`x4>Efv_g8bji?p2IWzq_g@5A6oD!XT$ff`8gt_=sNH^}fW z@Ovd?ts-@iR+Atp(HgF6N!_G%r1hj8QZGsGeck>2vK6H&0$W4RQRdzuGVynC3;siV za|uc1ZzRQ}Z21-LtE5+uHjyqRh4C@`cFn=N#_qt*ba-qkQ<c@VgYwk}{XKXEenNcv zD$-`sWu(hVuO@9FT|v5%^cqs|$@voB^l{%$8XyglhDcjU+epKt5z=;&{`N9RujMz+ z^3heKZy>#%^aj!nQjN5ebTujT!R)<r`>^MpqZ9Hu88jGX-s7_(H@?JZm~lKAG@C&t zuZM?~m3mh=T5}V96Ha3j<LET$EZZ|QZ+n6`eQz+_s%5T@#}-$|pyA6*KaxJ*GK$CL zfw~IRhZlVL8iU;^wsryEYe?6oaPHr}3)jxOuN|M7p7F(vO)cQmBk<esB#ULw5!{Z( zrmykdi#OgeJvPN??76vrKfO&HSNaE&Dhw|s98OYD))2P%YJ}^4m$|0CPjKBKWgdUJ zUPqsIyS~@H^7~QgXNBO*%eIMYi?Z>zyALfTFWyLc6KO9g%m7<e3CJD#IN*Uba{cIi zVW20E>>9fZZ^)#t0%tuvSwz<c41yULZgu{aN&SW;)$>=-cJ=%N^mYfo!)hJr$8${m zAl;bh&-rWff}_4<X!w$yr0V-S!L^S*>QC33=;Jr~zUtZYJbN?uH<R{}-a<NyF`aj1 zEV=Q?P`YtCO1m^p`a25Qx`lRq6Dc!B=e`XdfSM;|>I`s;2a$-V`>mvJCcTaHVqoMP z24C#5P64L&K1O?iSMA9^jY_|sdx#c`2H!>sH2CfO&eF))H27OGy)t~A@&E~mG~7Yi zfj)kQ-~0LQcG4*6j<k&at$Xpf8l9?Jiu(TJd=o}iG+pgHKsrbYyuuj2GrU6W;V(v| zkLFW%@1vtr(_^voA-{WU6pwiP%ANhKf7npK)p8$C+U=;<m7at6kgxU5Os#kE`|kQ$ zLx}@}X^GDFH&d>9bei%4cT(KydNiIX`w+hm&r^1$wGH6y*1{Kj`4kZ;<$Wr0RciGq z{LV$SU;1-RgQt0sBw;-L@hmz`D<>%G9?}ugB+0|i+^hl(K1#k%k-~TSR`*BAe~dIm znohs%?@J+-VBW{c|I}6THE)mBty`xeL{#`Qqfg2G*83Ihyf3u3(8;zE7R$C~UY4R} zeWNdHKlUZ!fIHI<+L!6^GC`zGkJ}>t?Tl)_N4{J~RQofot5+$%{nOTApYkv7-uD;e zDN`ob)ysKN)IU*M+4Ar&?|wshR#G0<OIGNG{nNJ6^6)SJujlvr_3NYBBYzo{I>Vi1 zXk#3BnCqe>uB$OHJNNsjt;;g-FYo?AdDcX=cYT>j-o9FI?4LFa?)>pD|M&F|3=VDG zHaxPuw)5&;*IcVNng<1vz$qFnPy!5Vq&lqnr2Io+Y##LpI_8ZI2{ey!rmlH$OA@$_ zw1;#f>1NVfNu#7O(p{v(q<cumNcWSzlk_gqyGidO{UGT_NIyaPFzI8YpC<hb=@&?! zB>gh!S4qD~V$xi&_P&$4X1DphJZseMkMca*_D^s>yZxWznf}^I2T5OK5X!H@%KqKC zXvfaw(di#}e-!=USDT_w|FA%8e|>#@{e1&{gMCANTl=>44fl=oZSU{v@9!VzAM79M z-`c;ef4G07fBQh+K>xtNz~I2pz}A6n1H%I&1KS7t2KxsG1_uX+2Dc7w8yp@S8Qeb9 zH`G5gFf=$cG_-YS+tBdP$k6t!eOvpt4s0FVI<$4`)@@sdw~lPxzO8Rt|F(f`gWHC- zZQZtQ+wiuLZQF<YhWm#Hh6jg-hPMuH8y+4W8Qwn9H_|^cFfuqYG_rMM+sN?9$jJ8X zG;urCZ>Q+(e72oOH}v=I-+$n~`$q2=zqh}C+y4F2caPt*Uy(ig$B*1Od5t<NoVXdD z>v2|neg0v-ofw^-uKz&!Zzca;(wzK9@4&}yZvF=w=HI@5|4{|pj7?>~Q29@(JtX~| z;QCG`;J1>#jdX%^l5~o6Kj}0{f4B3U@_jogo9{cg|4z~aq`LMF0GsLYMqM<Rj8LBH z*57COEtK_Ll)<#IzZd+o@8SMI|LiIM>|NY{FX`r)?P<UnUx~N<2zhv(hL7=FeSVsx z?{A(N=xZ2)=JS1lJZg{rHZx|b`rZ8Vkk!}UPlN=KYGYGVguJQTZt|#H{oUsCzbDN< z-~!zI2jtN=yUC}r_4ly<=KC_=Odg-vKY8bVLgwxg%CT=w_;2W2GQspteg42zQSGU} z1#vb-wNG))&p`FQz>oIhlzJ~|;`LGOE6PD^;RAmcm0FGZi2&A~;Z`3$%QgQFKKv3t jI`!dwO0TC5&f<9B@5#l>$GA4><Mycbd43n-YjXb|l+P}t literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bd5976d24d5687ad29a2760511656d4158c63016 GIT binary patch literal 8624 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 A0RR91 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..46ffe9c6f21dcf1ce2ac0de44b62bbb59ed89c35 GIT binary patch literal 12290 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�mL;W<>miSO$#?GD`$6G7mrvZ)W$yo z1XnqIcK`sF=C27MuR(nc06?zWY3X_BDJuzDxHz$zS-O~8vHCc<{^bWC>?8Pxb+Ym> zBlmG~baof?5uyCsLhuj&mza%`{BIKv2N6m=Wi@h17dI<%URHKic1lr1a&mHEH%n_l z4Jny_;D4S(C~ZAFTm{+KyuH0yy}4Lj+-%r51Ox=w*g4raIa&T#u(<m=dzksKIJ;B* z%gO)sBW2}o;b!ORVdvsZ{+C}fa~Dq!5lYIx0{wgZD^DvQyZ=OTcK@fWKLxV=rD5Y> zWoP@}U><hX{~y?2nt#FmuIpdng#U6TsAlJ5<)|lR=k#Z(|D-0$#lz1n{CAxHNA;gf z{{_`{w{nwoar%Sw5dF_){R94Q<^Kf!9aH~5F*!N-`2RcRf2sZp`d1Nx8dmNuj-G!l zqPDZ0hbX5o+y5s1pD6wRz(hH?|J3(4=)a}^6QTFNBK}+YKM|^Kc7GPa?61^BIsS?8 z-?D$~h1vev{Qqi(e|6g5(m$;xiYUzX@3s|1{Fr>f1OQM%$V-W9`9SpL>Q`B<`|b?1 zMsdv@&GL9_d$w=ccU!f~SYpzlL;51@4<UpDom`_oLgJ#*qAzk#n%<g*Qo()Qr+}~_ zPnpnM9M6ogM9H+A$Xq@ZU*=iu^E~28^5=hkUG4Aeso7jU&D=ltf807c?|U#f%YEBv zTA9gNPrVZ%>o%IroO-;U^uK(0_m*5pwU{4pvlpIYz7|1(+zDtXs5BE%BoLjrQR9-+ zG~_Jij$ui#P)rS<`>^?KJ1IGI0I@+b3Z~fQdA>D|OoCm?%~-<2Ip?#u$LymrnP)VK zs1x@Mw=#1GK}cKtoE>+kB}XU!;fp5sm3-(<QskQ+&mfvG6E-9gja^yZzJ%h|#F5qP z_fbg56px;8J$UcnmfGyHtDZ=9x`;LC6`!UVRqIR;QXFpcD2CGBE7|Ieg&7bpQis)= zk@b?xO7ROMh|0I$YFLR}7^~ZXiqOa~B~@Ox6Y>}1!QCNOtA4nEt7iO7Rx@&>=sfx~ zRjh`h&s!<!2TZ84v1f%*g%J38P;x_-H%O>2QcPa>pr0!9O68an0Trczh*EA9_<|q# zBAn3ubuWfV(5Jy0il6Fd@+-CJs5$OJ@CvWP)7#tIJTklj4U!_x1US@k5;{=E#2}r? zIu-9GPvtiyW~fvg96X{w%`!1Go5;@O^B~3oV^-ZH14*pi4q0NI5UC+DKB82)_^@=2 ze6k|TzLHuBf2^Zu{)Y^=gnMoypB?1+GNcU5aML5DZ=Guk$6RvpeX@CIF<7tWNWs)p z7>THWM2KwslFN|xxZ?V64!oiB%NaOKBWp0wqjUwPyt(Ur7fu^Q@x&tm96AOt75hWP z0@z2|-*c2@mdK*fR5^bHa*#*0g=*-NqaNh|PVtLMPo>iIplPBGDOD1zTO&xX7i>xd zkeV;ts%@tLMN%bJgDs$!e1mms`B|OM%7zzhs_;f&?C(@SchSQ2y}gtRGH<6~eqJ<P zgc5L`z<j+$7d}N3HddL))xD1()VEeCZ?}D6VQW1gegZwn!~ninAeuo;DVqBxKnI~o z{--&1hm&xex^^41)6FCf6Xh1_7YH^drQA?_Id6yd&z_~_7x!=-1`MSX#l`}yX3E@D zGT@~NkR51yyWn-`vBB``M*~rUjT`FrXUZ1hL3&`iozDp|5Sr;$n#e1O#J!;6jq>8; z(_ks+g&T>y06{ULEc97oD3p>Pus14f0!S5RYnSNXb?h;QcM6W-wxa(sP@w8KS_mEt zt0MjkphA)x&`11~3xgkZCEN5-;IzBw_|4W_cZ0|O@;i)>|3jW~C04CYZ3h?rhEqGo z*lh9b_Vg&yjf5^Y>K-<tKqU|5wH>JNb7=CJ6;Hs=`4M!;h=u|x(ZcF(V05H3Jlo2d zPRO_n{|IsgJDvEb)kZX)49=Zm?V$+MaIbl@sY$c-z1za9w#cJNDw`oz3Dtn91J2Iy zdUJlY?s@mUr^CYAHgkJm+xNHG#QbWUi}UU~RI-O&5&wFjePb;KOOr*`S-=<)I*%lT zRWy61BDulgE$i1_c7S&z%YhorC-vhCt|H%JZ9^xd8WaZ{jc9$n-gf5%nKZqkqCJW> zDWT%K`CH!h8Oq04t5%7bTT(0q8(z5__60Lm38vqSyds@c&|Mk`b!n<j`EQKb!)<CE zTU&5m9mbtVc&vI*?$5XP8#>8lzL#N48aiZ=$41{1GKDpNqXSYI_=~T9O-M?t+$16= zvmgWrQ(sW(?z53IQQiAhT4+1AYDqZd*!F9*>iB2uMpU^FaQIAvARQKX=lWo<@RjGI zH_^$J>fut5D)mhPm#v6gZo`<gTueL{*#LV1l0P4ga8y$(s=|tsC@*(JosLLN0dL?| zFH*Lj5r!Kpp--A9$@Yv{$+*$KqSvSj*y^;V!^rq`T)*ch4uAmFnx$JEa%|mpLp0Q6 z*sg&9vwpocg;Hm$vOEjOPrfsx@tVDUhw&nh)7l$B*NnWE`e8>_Z8o?p*#LLUU6x9n zNfze9xVl3wfoVw%WZW=h{ySwbj^lFfnz?H-j9^5h@`4@0P2B3$`WJso3o#A}A-w4Y z8a+-J>PCJ|XE2B4)nK$jG7teq7<0S|PL;UpYIBMXyh|#-g$LSHEEc^8bW}9Wl8rck z)I3)(q5UoxCp<{o{KM|t@%N<8*F-dLyENZu-#oz&#>~%6oUO`Mz{SjGVJ|88zNo2G z9$mgV1u21$c@ts-<UO%ymS`qg(a+IL%n*4W!2&I-iIJvg_=EhjJa_t`VFBJaSZ?s* zmA8?cufG5n#GRiR-ZqS$6bZ?NZu7RnCgu1+uy>=e5$qJeG>V34q(Ml*O5G#aTH8_h z#MKe_4Q?XTr2TYLjr~;0>I(PL&+&seV=5EZnV`qxuzLgDdNM8FC{siuJ!O9#mB^KQ zBHl<06j!R*EM|#v-KI0bA2L2A06b<&t2@*S0@(%uU}QXk0Ju1?O0^rftAS=@a6P-> zC^qdv=C>;u5Z?Fn^c%hUEFCtQfN~Qn4Bk}OCYS(<o4$YgFfC=7yb1Yd)K4yh_!J?| zRbX{0K`6~{FNN(QfAhgA-*rs<yz2nxR7+DTYh#j4Sj!|k|Dn$l06xQ}{D;pov|M*K z;oEB&+%p_vVl-ysuusICveG%uv+-O6^Qd3!R%$zh%v9`y-Gs*gFlecnQP|X;l@FAp z2tqUHUpY`<KG>&G-3rV+27dGVf^SBonOnS#H2<*(zmk*2h?>^`Zn}iJ<;Ft>8=+uu z9NtlnUL#za6bnl|&3wu&tR@3P$|4~D8r&+3>7rDjQ`cYs)*I?$saN&DXFyN2E7cKw zWkyJ`^7iGEW#ESkOq5krqHm!kty>il#sEq@r}2yBA=4nxYS3%5sFq-v-%;#VW)DhI z1<+npTZqXrG<|^y=JphZ)M=*PA#>Uwc8!HsJYdMK)D*%X!n%~v@Rw+3PwFX|J@EL> zDc8NKH<Za8Hiv9E^aN2*cHU+Id-=35c)R2zmL^u!VRm3Wg)yk8;*MS9J5Ryl)(vaH z$|EZr+9Y96wN}0(tA@&Xa+eMP6CEW%w?Nsz@-Y%&_LA%5CAA-aFsIZas)Lmob_<8X zoH3sh!^|xnVFm#h+lIkWM3|P%f=M*jda6<Yw3}!Zz$}!;LX!2aCq!ex<`<I+?a=zw zDfSlAKdgr?9U75|Pr2w3o#vuvV6P9MTP<9+Jr*Wr8!AK3>sl>nki%wK7_sTz(-@1E zERvg;|18W65wZ!H!IVj{T^)=;#Av;^GA^M{duUyJg{o?`yiV6P{e2yz13ro#by*~y z845#AlVs9G+>~t3F$(>d)q`0npsA0EMV}=n^P=<l98+A!sqNv@u+0Q4EPJM`8qe25 zGm)!O=~}iFwp|IAR~JLapwL0bghc{y<)AVlP^L@2Sej<DxmIOn90Pv|4qoUY?>_PI z7==$kF<DbX#tBdind-e;=}%X~I#DaR2i0e#d&%!%BNo+#zC1dk^&<spK0*ng?F?(> zuyiDx1&FouMyJH<QfelEVIubc?N@Su_RLN}h@(Twxqeb<rgEvLMm-(^owwpp6Von^ z-^u(BSLafG?}l=e!xP0+p$lN8zE~Bg_=jtwE-B~$#jh82qV-&o)8x`XhgnRXVzT2g zTUj+yt`cvMguwh>EuBSltfo?8lBvTyKX>g4ykTJ+UPRNew)enVO}zM$oP<NF-mVVo zeEYZ~MlVkNu0(XsL5aSo9|VXHH%ilhYV7LKI8lmQ06ER?$fFv37B`;A{2_L={_atc zrm{~lc~z)mW44CdxIl-{YI&&52_wlIAh+)8lIn2ly+QN?Mlf<B7Ye<YtJ04WDp5^i z`H!h{V)ERIP~3s2ftfhRrPJaaiILFTdGN_qu0QHTj;}Tn`uwSB_J0G9DXYQXk^r)d za?^A=Ettc|@JbM4>7qwi!+QtNY4k<kQ^^lLK{miZ`wivwkbCtWe-3W6Q9p@)E|0t? zJr`W9x;7d{m;_WSLF8hqaf#FQn%7Uht|bnANFug&D76rJ+%adZk_9wJ8eq%w-Dw0m zu67GxFo!JVFu5=ktekhV(eFW#MwY>C%&tZs{tgjYGAL%kkwb{bzL^>G0{+Un^K2PO zonptT;X}gVHiJ|X7eK-x^H~uw!i@ZiEp5uBlp`KZ8G{>>rAp34Oq>!fqFSZ=(D|z_ z!4K+;bP)Z}UHG$EzYik<bV4cuy<m8wbAc<IX``OF_5piydqyVd?)RxRY~*Y89Y`_! z;lM(mY`@81MZ9TD>5N&F;=E4`l48X9X`Uv4>QU!rOeb%<Wp)JzF=LHm#nbbGIbM=5 zT3~p~Hx{mpL5Y?IVG&R~Hs+L>`$clNOG*>9*KO?S6}Kp!$izHwiD5JWteVsLAZ|i6 zG@L==_`#K*a+OU}=@9gS-ryrvpx_LKQTSO=5+ke!LrCXST~EjcLxgzCxF)(+|6A0H z43Qfe#e*ESE4D#UEt@7X8Y7QEERAX*8lsVyT=&MWBNjv?r?_{i{tom?*&0LE5j<nf z`fz+Hl!2BLUB*iXlUc7b*`<p}{G<3bvAms0y0%1J^geVunLV3q4xl^y-Kg1q!N<1O z`%=iIWcS33p815!|5eas6s}tikC-EIx(k^$9#1RP$Lr>IY^pE-%}^ZYI)^<p<^ZID zx?V1ritX7|B%!;jZ4>Jdx2w@C)sI$!`{$^>Q&&!s?i;*Lv-=$DaC)50LhSRmp0JU+ zQz6=?;zAf8?<lLbbShI`8X_J?ew>YimoP{>!M}@RGneoMkA-3P?4)uaIC{N$bIeF8 zn_4=_c_<<mwdh1>DfoCV2VcbsFr*Pua-Ub%wqm<`Y6esiqbJ0?jeRN)vmE*?sAEhv z`~AbQ!AF8KOEGZl5!I%Fe?2M`5Hqw&UAW^8FKF?XCawP$Cz#D|TQ5RVp41Z1l34iE z0}V|*I#L_Q(u&qIJzo$343QRIzGNuk?`P~*-+~rox+77poWt<acT_4Us;xnBrr{9+ z0#%s<76rdBPE?v8Jq>D2nxQviO(CBl?dNjnzRgI6Fw!eN+kMI+GiMT=7x23DP{i}L zB-5(cu8jEz*heh#RciR?z&QbxTUv9(JG<`S5;SEp@Z8h)bEt5rE1U#G)Sp@^eJFu( z1IoCoh(F!{n%h9@N&nO?w#GkDu*CJH4mQ=S8CI0X`&E>Mb<3{Hm#euaCu$zwAp8l3 zrC&&`tiDb8n6)zr3J5WKbd-V)gUZ>Aomkr_l{ycA#977J+RJp);5wlhq(qP-DJ?_x zYh=gY)ppvLoi%LOT__8`zj#Z@-}z#FA%m2t>X-(sisdCP{_fu96w-@ytVt@TZPML$ z*)$jJgE008amqhRf;oebw*Q!)qo8o9+lnQtVv`f-NeBcAtB7E#)%>D1QiD9eW9-t6 z*2$1<Q1c9O!zQenr>DV+>n=`<u`C=-jz3d~Z~M|0Gv()Wyg|*dHl`4z65<3~AIc;R zxQ!_MjqgRQAIwgUl_yv-`Q&Sr9jhL>*6zbH;TNP(ZUezzosHO~AzQ~Ri<{sFXwZp6 zuqB}%pJNgzMWrW~vf!?;2=6T#01;oha$Cw{1{L0Lv=dKcF8V7|vi&?_<eMX*g{@SB z7@v*y1f)J|FGJ?p$JDY*aQKIey_9ypZW{{pwn_@mfhb*n_;)&QTwFMD549>n%PKA& zK-RG_ehDi~4M@862I{ouqBMz@JC%2`o9DoxtE=CJ$p5HJ7z7_erIO1A&|=%XQyOqI zYU$_(u3F4&8N<ZRQ=LdgK?U?59Ry)uH>932I;-tDCa#Gv`B-8U%`fLy8Wb@Z_a3WC z9(Rwy7$H{O6P1pm%5s?EuVpA^IeEUu|2Y!D4VfJ#yszNVmn%P>iZO=LN$t@I{I-)f zXshrftVNHcl2wg<;7*mRWzuAKPdPk+NrJ$a8wo&5NKW_E4Biaj`tJFaBjTl?)-W1D zKYrKZ9VWct6I8V(#3Nn2J4EbVu6|J|KqTta`sb3E(IGlrJ7*ajB)%`w^0o}K+9fI5 zMVt!>_&|^mIWyq9B-zMTTi$8qUCq6p>`MMQh6{9uh7))Qy}D;G`WwD^<^(Uti0>&< zu{u#l)qNffwLaJoUE`ykTSo4WRgCj8);t?l6?Ove76FMO#XTCM!!xDa?kOpppETK; z=zE#r5C-#zO-NQIEoXI2fUF2`Vk@JK_2x44J^%;F@(~~bs2-NOQgPs2r$a3wO>XKD zDh}PSZ`34CDXfI#uAppNtLQ^4;>t~Q0UHED!7}L6(AoxsB78=v5W<Zp>z13!s^`*x zhR20p*VJvpVdg-a5ZCSIhd;z)f*r9OQ@MCPKUP<lA{0}#4F?7b66&*`-sd4%j$&vW zgsY2FQ=n_XpQ(IW&EE_&|K*OEoSQz7&aH92^0kv}R`X@UruN}5tiTvx2@8Vop5m)( z4VsO#9mntzj+nrnx`8jKH+hZ%A;c@;p7@3z)UvgR0{I~Ebss;dQXGuSlzR?hXDkm2 zN;QdcdC|HyY`Pa;Rrkc%X477HG@5$(vF;+fK2o@!wXEQuZ+1yb)}i*&@J$eYbyZd> z@_xkB7{6g(`sJwh)u~_#I-Q<j)5t95jLoa(;g`wM<s+@vU>{x$dr0|JM;pvS&8vN_ z8DFAEFPTxR-CB#NX|k4{tY!Yy^^mBU>*#467xcp2O2KxAoiB_s9VLjmJw)No?ey}n zR>0asQOOk?dTq3)1HGhU=nefKT5(t`9>K`8S%%^g^mukS^F6RLR6~l!k_eTcTq3Wg zRzMk@FQP29A2tho67`}ogD;2HJ|dZYJDE^mY^UoOwPxC4nUVR;hy57iE~|dFB-Y;h zEFZ}$J-yERD)GL<dmOrV9}>$ZYYS@fG+U+d(@c-}QVo;M`68T2TfNO(7)d<LUOzXg z-OIP9Y{Utw_>>j<L}zEZ;WPrdPBWEg>w|e<%PH<TANi=nPvTPNEDc_YW~~Jdh(rO_ z5}Yn1jxoDo1X(V3bf`@=XHyZ~=3+_tFRE33t*VE3su!w}4l7aF#*n4r-dQC#(fk80 zQCb~G0Mn$1S&DG97mLoL%I4u7s%H5tpWwu}ya+8|3`B(@_1ap~eVpM+Pn#9PLIq~C zEhKC5u2wZR1HT4zo#T8&KPQe7I6u3U+gORQdF9h|NiFK`*!isCPA3!DFLY7N@N)G* z!hweuTZ>eH`m$;97fMF`bjcvkMCxVK(r|gY!$C0v;^*7^g7%?|6x!8p$L=3|cG4M1 zM_7aBqPs%nsN~Do*Svx(h9bd<px7eh#{Hzny43jTkv`U|{uo0`U)K7Klx8`wm?jgF z5OHa{$%s`8%_+M3bzSf@Vc9p5G@bep?dbb0gax`TNJUq-)qxih>yhcW<<EU@7ay8n zkWg`cw{bz41Snxy8q!%8qk0M=C+ENmfsoIqitD(eUU))DGzheE5|Cr2Qt_3iaky!8 z%72%SW}y3@)-|qm*W%TuoEZjP2cEmfk0GCrd6}=uD)$QXj$fj)e2L$hoKpx2_ey{t z9><sueKVC29;(4!TL2rhCVPNczO$>^r6s)}o7P<yD_9Dipj|Ax^hx-0nvr=+v)lW7 zU#+>5y|OFnJQ+%Wq3wiN#9H9NFs2FtmOy8#h}>T(r*Z5Du)j-410oPujb((~fG2N3 zbACk3&U$E&lN}-NNwR2;3DEX!pCW6V!xWTvPT}6aCT7{x1&4!?n#L6~)1b<fw;ESy z>FrI=ssk@j88bh?l}4+>7saB_lB_A<=%r*H4!#(~B}Yb}HyYEKD`fPWyvoqNa$0%* zE_ifPI1dcqZ!Ub>pS#XbiYMhXP;;nqD^BbhWWVeetx4#I_uSNee5%Xol3`C~tAS)$ z6ZCFXrAWm$m2Y06>Z(EaoW+A<ZqKUE5Na9TM~zTjL36XYsFz%MpUg4lTjguM!UdO< z`zcsrs~ayKe!+gryJ>UNh7lt4Ax3*qxi&~xPFxPB6K0YO7$#oX@Byy1?mVv!B*?DY z)MI2yw_-508m4ExZIW*GTO0*_=d3;nDX&VLgd88#{-lL#*usx69NlLd1uqK+g0X|j zs{2J5IYe>E1k~^=HZsk8dbn3d@@xRFQ`))N*?MwQ%j@&$ZFYznSDLKj{=6Heal?w7 z@a|CR-8uXb!c<v{eCQRW?(TCb>?vWNfE|C$>T77|oXfX$FvXSWoJUmvu~u2f>}k^0 zztdLlv)ZtH^ib|147}E@@9Vev>Myhi@E3@i!t-hpYReM6U&WU?sh3+tYm=+daG#CR zILgHTM3^@Yr}+C8Sp^9?u?>&(n(`6}fJx;B<BzWE<ZsYks=xJX6lv|KV(LkUzOwT? z@xY>Fa8LJUbu}7RUz6NCw}qAdd_r^7*G$BQ>^#2CjM|`1%IUD9US8h0An}I&5jerR z{KH>I@4+eUX9seJu;FIMr+|sK<$+hS%(I=cZ9t&H2+u}1bA7khn3wZw%vR73l-^(8 z;lxf~((4(L#hTT2FjNQ(k&9Q#2UKnmlR?preDwLTL2p$maJ`!^Zi*C6>9dSWRN12k zA@F5Q6MZBbRHAyd#;q*i3`P(1Ei*cTja@x0g8MNaB&Qcf!<fZ~C@@^+$IX@zQbqHL zVcr{jcUo^TAEW!Y25N7qdi56w$Z0bLmQOPyAV#td-ToFQuSc|$Hv%E>53VSXj6RBC zIbmMYXDY<EgR9?c_SWvOC%qBV0yP7s_hU|`&>n3u>L6-#s-kILR<}`BvQw0~a5D3v zP<n+rRJ|>KdpbZ^ZjI=fWW0ag2=@iF(2{t0sSB8Vz0E?%AtBY?52JxSBD<43@ss#F zDp8|WQTK-vFtVMAZG-wx=5+|BZ#amo6kW}+aBGe{7c0B^FF)CWK1=615rMvaZ|}_* z$pMPWk(}l$Yphb-h%Jd;FUmH3&|%C@M?`YgpN{!hFJSpIwL{Zaw96(N$OXeQKQirT z1nG7gd%Z-X%ZWB9pHgPj_<)rmP)?G@QQnSO5t87IXuNojD2-_!dE#vf{gQgzGr0H} zvN14}IfHphss&8WBg0OU@if>(JG7-kK#^Y9`Tn%iZ~nOR8<MsyWNMYS_uOY35SWiu z-p*k3<)Jdza!&XWLn!!}023b)Y4n<X2!o;Ln;tY5#9nB$mu_GbIh{U7q@LIZ^8!W= zeV#}P2n}5ibx_4aER$&_yCe)!XFV!qg<S-rX2c@D5=EVf1w^kx0=WwOw5y#6x4IH~ zvu`Y&!Sn)S`U4~V&JJj#Q&9H;Y3F$TDCm)^qrcniD;%Kw(97+3NwV8oN{u4ap>=Qg z?b+so&8Rjn-Q{H}o0Kzx!hH|?{qk5ierFlIiapyw7DLyS#-|Yaxd=km*l@kIV<ib8 zwY*2y!C~w&24PKgnG{oq_WYzZ>V$5b@l9OE7ILj7rahvvB>-h3x>=Vrj#HX?+35>A z#5Cevzqao{1W`BiV(`^lY~ZiL-(Tu^XHa2XrI0w2h?6*We+H$L96EY9-Y?!g%)O1c z7=XOGUX4>}fik&S5ikY^%aaYbOjuvx@duMep!I5gK4C*W0irprvJXzZE1^E2l)<36 zqr;0MX;tZ=Gb*mOflTVv%@_x)sd!CC#S=Ex---gpFLAb|f3l;Iq1~V?9>QYm2+(hn zd~Eyp1Xmbw^N}aX(Vasy$a4SuhXrl&mPUrReL@BcXIE~A_t~ImyaVz&Bqx=ERy1?g zE@rW;Hd(t{4cg5t_0y$<r46ONTY0<^G2L$uXLXRmLHRJu=;hCgTV(J!H)7odTv-E~ zhgThEzfG?@FkxKQKXsF^0+R=<t@cQ$(O4p4kPkL8yZRKc9(2I<zEt5~*eTc+KOr|d zPnYCv3IyAgXI@m*U2OH<IQhF)I<R5TWS)Yy<!I+qx$?Y~iZqX;$;YhXHEa%`%%h{d zb<M;&=*ABYlmrzu#;JT*OPCz%XC%XE85)a`RdZ~i>bDTR&wa$o!UOTh)kcx;(~g*j zzqB)6CMmC2jfu2wcZ`g3JxmR}y{x>%%{804N5W`X1zlC0yZDFD2~g2aM-PIDjxH`A z2h4<4y)Q<S0w+H+DR(q$f+NXwJ@_ej6+fuv05EF4h*dp6oCG5fUztS%)Hy=iKrHPy z#=D(GmyPdmlP!wda9CP)Z~HpSth!?>xx^TUE9$<t!DB0K1_@vKe_--oSn7ih5A`=r zT)-b*@86wAuHO3V0mrwGn8Q?RkNDN9!ITAdEpoD-=QjqDSd5!LzC6B<8Q^s|KH4Vv z?R<OoV)1l%&(ECL8tA=AZ1prsZE)T=jk)qh_Hjg9n?^t`Y+_g<9n+!IHa9y+(<SsW zd$RIx<!edd)rWHBXbz027e?VOsX|$su{r;hkoS7Z_R8BAykwC2J4oh>tq=I70oj!; z#@~Znh>+M?Iz0F{+grZK<4qDc8AV0*e8PJOg;cCSJc9raUA*h9(gqa+6<_~Q;TaB5 zS(>Pf+SA+C?J_;}c7)1?_ZT>W9OBe!5quW9elS{?!sG*N^{T^N_*^`*E`$%4b^ac7 z((t-s6O_@pCN^gDGJUTFTo+4v7oj*~h`jMJoEcYcQM0y-%isC&Bjojd;O_2$FX-~h zFe4v#%WMu-3n+b!>6HAkq>_A|ZZmj+p<LltQ7B8`%9$C<M91uUiZ(B#44>S@F01&2 z7tpcPly`qKyVh|V)j`y-afTM~(m3!a{c_4QFjWCpx<4y=G=cUeiy)h7Ay6hFe<c(g zg}}Z1UEaoh3bpg9%liFTH)zD<=^GtOQP(_K^H1p<MMDGahn2<d7dAC{GWT(FD5Dbm z!D7=z6xH4+(r}^F5`Z?3{KbuW{X&?yrdM)c8_v3FbIy0a)$@$Tt(N!SxdY;7DfKQ+ z;BBbQO-}d1tB5+KrENvUNPZEO<(d`RviKzZ27~0ekL?4G4g-!^9|IO*>w640h?<?e zzMI3sXX%RpH*||OLp1Fh3*&K4MKptT_YQJv_%5N@?}KG{noPOA77Sl@yxw?UuG<8k z-8s_#vcMxB-G+T9ZGCBA3>JK+Ys}Fr{PGgkUzi;(`*T^(xbyO|FOBc^!8>?w=>dza z&yvZ8SKaUdP6K@*^I0Ib6i1w~#~q&{QVuFRq&2Wj!irDYt7h94qO9n3Qp{!gvhlKS z!|N{hW9$2E;ahT+2^XZ0S64D~vn;(f=A$I(2Vy7{SfORuq<oV41WzGwUoHMJ$q`%7 zrpd3|4-R+@#y{3!IizNm4^%qWW4!csf2!hA&>pKzD83)FThVk+p*Hop^g9Rtdj8NN z<UMd%fCXn@<-X+gs4uFTUT5XfPqf&JS9p6QYc95Ov|$_$(5lwawY2XO;bj+b%M*FQ z=zaR#3c|_NacCaZeo4JPqBP!EKeF^JHCat06>bu0>^FP#>c1b~pyoLva$dHVsuup7 lq*~A?@?ep$^EK-oE-u`LO4F>Y?63ct<fT=l8YE0Z{}0x}yx9N% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..286f3a0574bae93ff2d8a0d6c578dce0c3a904f7 GIT binary patch literal 9905 zcmY*<1yCJb67I#_U4y&3I~NG<8r)qj7Mu{=or^oc-Q8V-B)Ge~1YZ8#eY@|Ssh<8$ z&(~j{K2uXQH8l|`N-`*jgopqD07Xt#O6{)~`^Vs6|DMZjTsHnX2sbqu2|)EU@$uhD zh=q=vrJ^E$;V*^<z(8OEp#Gu!Jpd4d0GNMa0N^tO(SNZT1l@l)kN`lK4FLK-9KFB( zpCS9#{$~HjL*+sIPcaYjzihEQsQ=-A(wgj88~!>3XIWi0000T=AA<mZv+)0_>Dp-M zfOHfU1k9WqSWL{FOf6Wv9Gw5j0tk5t{Dlq{AQLh#2YW|10WV>Se=!99;(x-d6lDLR zfb4`RbQD#{B%NF>$aq-TSlB2;5Xs2Mgj~%n1=OT~|4IKl6Q-~Rft&?cSv@^HSv)ye zoLsF~+4=eTS=l&PIXIaAGML@G9YH2u%#Lo9{}%bbI#L#HX0A5QAR8w~vVU|<Or6|8 z!W0z$6#DP@_c}o~mjA2d==Pts{x-<^&lOg77B<%ZYX40Y`X?%&>}q52xAH&wBJ4u{ zV*Y=z|I`s;{ipc<vzUK(`mgBURz(nnSpU0iB8UWr+i(B?m5H2`xP}*md*)aJ)v|l8 zvZm#dP*)us7a;}w0_qs512(z$VT{&$E`i~K3BP>=jchpr*X%&1T@G!)=9D&cS#5)A z*;m~R-kB%Cg{tuu(f0$da0<d0!!xbS(T7)S6vJUt?wDN@l0`FW!X~XVv`jwI$GTO= z0#`m@A)V=r=i+Bl-Bf7}iW{alKMOq7ss^oZKC!CI2MO9Os>0apx~!({88Y0fGIQ2L zQ?216Cd>@d%u5p%LhDlnOAhsx-2VP+8!`Oa$}<zT-ak(k%Ou=Xf0}U+jDQ4U2DZ`R ztocMXb$*EHHz7`C`G`C(v{4?8CwaSn_>Nqlb358{6RL_+)na>Bk*-d$JiJO0GwKp= z)m!smK%(t#XWk1Cy1yU%W_V;V;Y0OF|1z9^;-`OMM422;BX!6Gb|Wdej{Z#S$@cZi zjeF@-Q=>d(v|LxVOhen)xMQ8%c%yj0ryP9-QFlMRd$q6@(&EfRFhqqzox|TWu_-66 zktJ7o(np|1np6<JY`_@mfM~XHKL-)X$=ib9chELUNTWa({>*aLjH#etuQByB#-JC6 zIGsNH^scQ+oMm_PzT;7$aT!4-3S^Zdx<t$jBYt1-jn>b43IvH;xo8UVh`amB#zEid z=ONP}3uy%z9l0*C5CS^~6*0;iiZnc?W=uirB|>vG@nji#Xz35PgFh@aI3$y85gsS$ z40y!NLR@i>b4=vTk=_$;UhT2RwwQ&_JWDc6yWt22DfrdH)=o*JdSkIVL+pk|T&CRw ze{aTvyaDvK7W!wX^X5|>)KhX8op_XJF-MEFL&>L^h&zJ@%`}bl0X647tp<|UbrIX9 zexiI{Ndi3y=H?FRm#jlXYUat;+k9d^O~etaI@`iW#M^1Jy1|w<`iVI9uza(nXjn86 zQ;%~GYE<1QH*4dTL8CaGYLRXzw1>Li;V{xa?P9#LE(*kMrZ%`GbcT;0Zk;S$)}`o> z!bcDd+@O~E4<-ZPl}pg%2IO8vvHCF_aHVl|J1|6jTP2lzf#S9cc8krE3?VR%8XTm@ zPU{5*tYf@#eWw$J$-sA;aF4?U^NVatX2YDvU6cB)VLy;ylh}{edk8kWLDLFnKx1XX z71@C8gU+Nczg()?k458J0%iF?Y>Go91x!0#X0$n-9aD#NIE6>_{3h&QxWR3(@+$Ds z^S?R$W}I>k?E;nL^<^5?6_;O{kZlk2*H|Ig4}CXx2=xYM(3&pzYqaS~eQrfJrp#ja zzusU_brXG?*F^X-!Wek)b+*s4nceV4;u~ZmS;X?rw^w{&VH1yzqej6xL#D!w375Dp zOb0$ogTc1(LC2`2BYY!?aVx&C)>9GiF_yH?w~&GAZZB8IblkLGvbMR6m<nQFHTp83 zmc8GhJ!}_G|M;|EMM-@m(mHHh8tj4mjv<T5Tp?yzeZx!I#K5gzBn~^aVUMQ^>(@u1 zd-b<Gr?hA<LKpBwrc8PCOW?j38A+p%-E6y6$}RucYVaK!z<}1tyI+guRqYrJ=kofn zjreFFmFTmZB?d$Y2I0;ON@9kvYKQDZFX~V-geZtaJpi%oDZf-KaeA#>MBuL(ae?KG z^`@1B6_f^qsfWEpbfI12vYv7p%HGrS|4^ZrK7;fJALBZn{25mE(RBueCj*{9XmpNd z?crtIaC2u_FhLZ$BdCL$5G(P6V2q(y&;IS$A<?PpKVL8i4&kaG@^oU9kn;AQ7m1yt zn>ggdN^;-y#bD3M<p8sh6Xq}bxA`}|$6D3;H!9Sg32|zGnKZ~|QR%S4>LK!&2%}A* z<oG3(@w7Oh6;V7StaMwUSYU{dBnneOD4``i@XVz!`x#24K)JjwIPIVWt8``Nw;)9? zuKYNJ!m{0UHZD8)*Rn#8^Tb#P_p8}=_qK;X=a2Jz8XOG{yWB7w!bF@%5cYRSO7Ve@ zu970SZnj$rR+abT{A#AUF{AMj*;q8TG1afiag^vrpCqHCVu_`cX(E3tire00bCDNZ znsWq!b$VeU$)2^I)3FDL+$FBq^|%doWcPwF;)<X*<fmLkTRKvmGr9w47NX}ao9Uzk zk^tT_txNX{{4BC!FP$55wIUOHQC8``$@FG8a?hTNtyBE!x-KSdRB-82>aCT_f=r_Y zwh_{P!a}ItF=SFj``^iU={Y&SF*SihdWX6U(K_h{PBA9vlc#V+t*C1fj<FIV$S<x9 z3J!InI1ci0VT3-G5Haf;fGjjuYA$MYmdSR`!iV#mPs5$$X|qWshf+b3h&Z~5v6c;e z(OlHNK}2@PFhe2Y?&TILe;)@Kz|pn|ag`QEmp><hvU*L>)3D>hG478h0+NKp%7!uF zqWRXjyrdB{<tXz&TCDpoB}L?tpWQ2&87ioVlQ^p;FYT!8i7IIkzL%xo%g}8cK9+27 zoVj40*__|~`7;1TfO9nd9Z4bv$?MhzVkR@vmISW<m#c+Rj&zqe?r;+v7mGN-yGA@- z<?;f^DW>svH0v`PSt+cdr&WWyLHtjuWl1lb#2+4AB+?f2-x2UQmXv40#s={Ra}&W> zoM6NGBFBmC`+6I$c=j*7PX4aaH4G^wQEk=Bnq5YpGG^q+z0*|wDBi}ii%+M$^N=db zig&@H)TaAuNb}*Wg~k~eNmZ;LZ0ji;`}~OCF|Cq@;L@4c8M2~LAhW6k*xmHYvTYLQ zCu~yAg788v>R4dN0zbDB3fbtDyj}G2S80nanI?JU8_DzAh#+9OJvyPmr1KJzkVdmE zeQx*_pL{0vBt>>yYr!-|3eF5#W3C>+W<Q5wrIZpkz}<~Y{{$SfO2YWmpL8{M?hmCy zL6xH#l!t(`1vX`X`^6X(|AXFE%%uX=4SgmNUWn3fICxax@K$qjl*x+G0HZ%CxR#D! z>BB-J6ubO_p_ckxB`}hMFq>)U^sTaqu9s>MhemNvEHiywiJ9b^8h~6!0ey$eS*Unr z+YJXR%(l_YG!e_LDLMq&ph5#9uv)^E8;VPg0ONwkZ@?nC9>eoiaSO&*+6iKc)Dys} zH46tf_}rC2oME-KT!l+kEQNlMb2d|6L$TZWFtbwZKALRs$>eL81wwzY6T%L4>ge0C zyK4n?x)ql~vO`2&CU+fX2%dAa4i5gxc|7dklAo7pjwdBdNL##``8g<yirKRAS{z}S zyOD-fRmZ21YcNG^8hBfzmXGj_doN^(5_8@Hlxx}Wo#TQ1=yA6`icEIOu5AtuYvjeZ z8hl4>_M_YQ4;69_wS(yQ^~C1|Ps~%{F-V>wXQZ1q?nx{DDfD?oM`ff8u}WEK3l-SU zmTjsLZbx>(F$Z1(=D2k#;%bt;vi*Q=DUZ%p)PA5&AEITPX1a8%WiX!;X0UcuYWg1# zZd{!5SS9o9S1twxS91lJqS{emIpfMIMk*$i9b($e$A;+A*Vg4zp}iq(kv<K1MYT*x z3vt&1o1AtgL#D)6UOXCcIt;uU5$a=Igc}vyoR)890^r6tl|(lrSp!bpb2C{J_r>pk zj6*}GP1kG;n>O&!n@vBVR`fj|R4MAbR6ElEWPROwP9U!FeW?ZUm3OORKg%sq2n=(n zq@J+3(0Ul8o8qrYIjP*K<4uzj3rGx|Awp4mnu26gNK#zc%NeB7{V&?N-Xe*zm^10z zCQ9$Z*cvzLU*VLI#vR6YVO7i|8VqL4Qu=A0A<|U}A4}y?bAfXd+1cveVDEBKcEI#J z_}!_{;)=D<(#v1t<znzH;(FnA%wdn-sW~?@zEXR2S&fA(-ezOnk@tIV(y)3tnAD&> zJjX$moc?&o)1R4L>R>O;wm?X!=$d3~Vj$#qH=mT#EKK7lnwB{@kde{MMKQ!O;!E5! z2uE}cwQ!>=9OJPuVMQ*UBTw)*Zc-bx|NIT-wvgx>>xR;%kMezBXln|dE{@tK<ga6U zin>#9Qu<SWG~`m$n7H%kOQ_(JK1YdgvJ$li(w*KjoE6oXlcb+Kq^oPym_j^V=vo2W z6$4O3hpDNe-FB3LA{^9eUkrQt1t7EqmPO?IIx1O@h5WSWK6-WsTbG}Hy_O&BQ#gNT zbEB$|XN8wl5QPdwl0akTBsJ?oC>-{)gN>pPr~gheb2}3%7u(|~2R@siTZ8`0q}C4i zNATq1Pd*OX;F?eWj=iMCu-<ESl^1%h*2}^bIZe@Y!0o+${YbdeMoxm)oCU0qw*Z#} z=VTrQ^mvjpH9=Be03&=#-m%YH2JcZy0f_1cVe{U#m6}k{7d>oP%#~|&@j6sv`pZVP zs0fq@-Cuip1L=7w1QHA1sMg?8`QLG29Ydp@c3;Er=Rj3-2Dl1wv;khXHxw+jqqqLN z2T8PF;qH&vd37qSrOK%AF-y;IsqGIvj+v{lgZ(|kIJi<a<(=w7Z(OLMj-@ExSe=;g zc7Y9o?Gg_z;?qB0C+O8`{nNjZH~cVXuPi6?qHmO882Xhg>oy;|PNKkC3SIpZ&?1fd zh_(tHNRV!9w+=Z0eUw>aDAmy(i?Ai6U%C4y?o%(d0k-x^l8KhuyNV*215A1)8jE}j zBaG^ed!kfE3qFhxHg2F1IGUDPN9FoUu%9T-=lY8ZgDlsyAeq9Pq*@*56oRZJ=XPx* zx>DdY<Piyn;EE}Vr4?iUQsgUMr?NIE^9T>O=$9fQ(-$cR@ZcSw(?jXdra5oen!M5* zF$~WNieiwWY1^FGX%NRR2a!JGRespwuiBTv8QKY+O-0^puJcWfZBaC*8$l~rmhNI! zCx$gKAA;^O(WP2w3civy*tS&!<z_0K*lKVU?4tu<5CJ1p7vgsdT|a+f2MI4Ir!TJ} zN+du2bE2wdj2*7j_smS0P+A@6B=E)-6YPSVkjUD|>9W(Y4zF4WrhY18rQ&e@&>&L~ zk<bwZZMV{7?z@r@jfjbwP5S5e9#p5R{q$2Yy|p}*V-JOBp%#Ta>Yq&}*aSnE0c&Jb zv|OQLs(uQk{1XmE*iTH$Og2&CcR~HKJw5*3qz*twIHn={>Hbs^7a^C;{Y7q@Ch57v zvqV#5p^O=tPIWdDa%QI4<W=h?t4`XgfF+Uf+xTBe-(R1p^6s*G_oFmHmYNsdBJZGv zC`%s7Igr!r0ZD4y<PBL$J%XIRKO_@V-D7sc^b=Ed+#Nb`^)xLfSAfDKW4PYjP}=I; zId5LPA>e3pOfGm3vk+0$9Oi)7y5AnKFyr|MpN9lbA&c)Yr@|f*H(~~6Tw(!!=MYSh z<5X$8YLHR8X^{4sPV?Qj)GSp%x067Ai}Q(o<uH-ZC_SlwQu*9znhI1kjYNc{E<qz} zmYn52^7ZzH30yQ)>SV!htW4*ac=C-|WMgAy(|ko*dR1gE5@+Th8uFFF1vjaW+371X zU(BBUaRv^rKvRO+%<g<9F{kxiKBV@@g896xZG?S42Ct}S)9QlC?YzpADH9-P5tVfF zCRc}Nu)N5aU`h@;uX?|sTh~X^e3K0$^`2!hV>&RG+yvSWn%B$pn~aaKzY<D;#x{Uh z>Ewd?>V3@kVat(*jk1*|BLp_*xWN?&QZv`PWCz;E=%QkKn2;xpyS#g_=Rg8JhZZA{ z3oCZ*z<!o4E}OT<FJrxs?JdvP7344)SAsc<t^!uHZx*<=M=aO!CBl1iGyb_^Z0vtH zZ|Pa<1uDp{d3aUoDbPoDPzZ4>iibEc4R@Ig4o{Ku1hkq%D#^9nVMy(FPu@6K=#W=Y zXvM2q`Rw4Zcwh1umzs))XU(Tp>^se0_V(Jg1QSVsF5HG*cv7i^3VPy-n}3cw%JgNp z@*JG3(xR?<aJ?gTZ-t}JHOzxu#ox?PM5Q6>Xdp@^8S*vGh2_I~AqR?iNF+3VtUf38 zm)+YNzWBG5J+2b-|6T(2Ho!P=8WaS77_lk!l!(8y-{Pl{Os3$o#5Rh*Anx8!@lE>5 zqudNhbBb)l?1bgdb&d~*VSpWXAED+An?hmPwqbUk>Am|RA&}hlI-kpxK?J*&*wTT; z$F6C|i<oO{6&q}MFc@B1$G7tpAE&6@i7?@jq<X=@TfUH~G*C!B*X@$yQ0U1WQpt37 zMZN}tbc&N}>j~&hFpl$<2lv4yThGSPWIRRnR@anOd1#(3bCw1?Wi`7m!TqI6R!$Nm zQ4vo=Q9RM?+Ej#h0^eG_)8};wM+kxiA+v-cn!(_d6`@6#Y3diNsn!nNp-gSo-S_K! z`^`Eii_aTmtg#D9VI={dBQ)v0nAN@|6S}6%Cmf^Fc;q=K%75#*Cg_&;>%K#v(4iw2 z-r7DYkM*gPRay#ZIp?9&GwzR}{+uflR6e}w-}!Ne5pNbc6WP_k8F<O=!DS5o`RbyR zFiE_7s%<6Ih4;8iALxzyNmO*WbX6L1Nvm{b;nwT^h1-NHj$ZvtK+Dy~O%h@mHc25g z93B26ut0CJi@5VdinMsMf}cIsQ(HYVHFwydfuVT5NZfm{Wt_e?2igz)P*jARiW(6T z{bmi%c*WIo?9T#vk7#_gUgMQ<PUil%r}K`PLC4>ldp86zG0aELF42A*iiS*1qt~U^ zm)-4w#%q<Kp<Y_3^N-e{)j%9*&rjLY{AOMu3XR^k2RLFjU$cj%N)ZNh9yrhuKb}fO zF=$q=hwxa@r`ZT~%tTLzrm*J3)#G2R03gG>i9}Z@cCy-DsOSP=c!wPoj?!e1XGcbQ z0;fQBAAvC@{_oxTJyaaM9pJaDdocR#ZrEj^Wa7=S5obSEL;Hcl+j79uBfL9FKx^*c z+2~TnfW?~nu4s3Mh1n3_`?gb0<OPNUrBOdtG`owxJLx4*A(!-E4=Y|0|NZJ&rp$O( zdKW3MO&V07mEIr|WIa!U3_lk2G?Y1!9`|WyJ$p`0fTV9Vug-y`MEDSbpo>R;`)<Sq zhNBfK1*hpNYW$CNX6o|m4oG6F@Jc}M$<sC?L(}An;8$}|bV|qgw?K<o6Y+`(FJJIT zvhP;?2LqUjbz#xLmo)fh4<`2_w9b@r@v99|_9Qar`+Mp-NsmvYks&8bvFghS_}ImQ z#3-2Z<0;p0uqNP^1z0pVwM5Wf8*$Q{#SEFBSD<ChnecLRZsGd^!qRuP2VQIubEdq6 zPXNy?qckbkA&2-<p;Re&wY0OQ++0!&+GE8~Wk(|95IxsgMJEf@&mgMYJp5<JO+#m4 z$j}yX7QUoI4*C-(t~TU}aTms<XgU{bWjeUrJzA=x(7msU`sL-(cXUkY*_glxhXPB# z&6Zz#OFZJ4oHr}0g3zv;m38!EcNKYeK7HJ-KAn$fuEl7;&RNFvTy3Tz*DH^`4I%M- zAx}qZUW!#I)-04A@Wcx}4Vj!vcY{9<@6cZ;G7Nu(XujJ(wh;L4@{8I2xEJQ^n7`-s zMKMYzcEMNzLPTLrJ=`cCiHAkgRKQRQi_HMbzY+!(OmSIK#D6ij)q!m>8=V0rqOfmH zCCZMq`PppjHgvU(Zgm*r1+Ik8R)~(o)myDqF9xE_M_#|6U;4L31iV|*SQ#q+Mpmpb zdNA{v@t1g{!<4&lax&{}_<b%cr%p@iDATyS%1*$%a#SZb)9hh<8LYbe!0n$8fL27^ zo*t;>JyKn?pkirmovo!Widmq<^r-30iRUtX)jK1sqqqajmP!56nz6B_puPoaF}^+n zbNmD1bB^6$*uv<)HAHz)wJ5(LuNZoA>S2oXC4b@7HOzh57AYv+cV^mojZ>~W$dLDX zx~~aHI?7)T>0N1;8BJ-)igpzWpi)~@FKDFxrB~XB*PaJO%uQsb0C97HuU=y<ew`r6 zxCMDuMYd4hdxvp_4mUNOg`a|z&J<I9qBy+q6Hd$G04D&KELfHZ<4S%{e*A<9ViP(Z zxyP^~uaaVl@+D*hreoR>q6_UY>M3`#JMPl>XAGE+@<6#1EPLHj!*Km*q)u!>2Sc@? zK^P8a2ip>B|H?Q@nS)=kK5O6RSEK-xW3H@^aR2ptRXmI@zG5o)>6ayP6XaSYN@7M- z;y3_FY^F6LiM08L8l3eD4rwDfZ*JY}<z~W5^M*4~l&iXJNuJAYbqt1QqP?6>*5gz! zl==$2zJbG-9rNR(r*U9r-j(LjEapK--7}4qxd*{{1ykx!B-NNO|7`qaA(ZgqEh)~p z_gjtUqiSEaz~BeYA#>?^vbWAJYDf*$$;h9tyX#hZM^UY<t-XsSMOzc2_Y1fK@dj-5 zOHPm1x?HHU_z>=}SDZs%GqcLlpZ%HTW({wMMSabetuwLjwj*F+rQ>nTGf2}A!Yu5d z$jZfk#x}M9`*!HMSI^a_>-S-)4YHtWry(Im_>=N2qp<O!T7^#Q#6h2W{%ogm`2d5L z!bxi^mf}1w!>$MZpgQXhMrofvowDjTZqj8(h#huObQh#_11dt11I|QP<qFg2&fcgM z!Q)&s(MLBdQB6OTQuh`VF$?-Hlo({>QNYxzHw9bNL48wlQY!|*MDf%Ga;pZ?g+!il zSj6iN_92>LB|t%aB<G@aHW76V-PGSBnQHIND;nE|ySQSD$DsVaOYLjt4}yYY^aggf zj;x`*ZJKvD_rBZ}*)G$WZRr-ALlmaOdM_^8(?a8y{md4&tP!Ix@xw+rLwM=W3Gwe> zErAGk->+T;xwSAtzd}?A1_utwp*At}{Yf#zkd#Mi5GQ|*&AUcL%oqH|`W<{L9GMTx zIk0#EQ7c*a^bsi)ZYX^x$1TVvWbu=m8s&llo}?>?-gd*{l_?4pDiz_J=@1&yIO*mk zxVtYgo-Q(OMfc|Ufz#qH*`bw7rD*?3N&*xP_qN*A*VS<Q1Q~<*gT!)B^8;M%l5Ly9 zl&bQ2@#=Z~REPPof9a3Y)1K-fFg#*{c<xk9)T$=<z5kJyAGgkujnka>v>0C_6lG2` ztNPXvaWa4kBkahm-RA|+JP2Kfyy;2WJBrPiM--xqeZlSFWDt?_RdK$WzF~nn!-Fwa zw(>hZ#pT5Xo8QByc_tFnb(r>odubF`50o%(P&%R@kW-ic^byn2psUq*-NLo_Jug?! z>`^0rU>l3v6&-2G5W)j)<dj}xm8Y~mPi79PWy7%UIoSRt%tv5O8N+F_n+loqN)U{! z>8Q4&*-t1ZFj;7_!<J1u>z(T1MTn!867yiEgJ3rjKegZypzPz7()m4nw1#R8qaNm7 z{|*v_Fm;iNUnNMVGQ(Ym@Aj?5$gs#3bZ`e(OT8FPuBA${8>$f_|G;Vvifxf9o_oQF z>WjW4%`OM_EXJg<j`AHA>Le=c6J++TVp}44G|y?;f;c?N=L63Z3qdtodys&Z42gD| z3qNQQxhq-AQA9SM0Q@;}@3GovVb;0M$=gcE2&A8f>RcXqzr3k>l!<UpbYPHwDcL1~ z@KF@}TL~OK&AvE5%8uwYx2+@YK2koA=H%uUd;CtW^QzE=z$-hd?M&0QpUPJ{3gmUb zFAHYAQ2+h+ZIQQ|++t(ZgVM}Em1JY`;rgB$7eQUdqwV302P#+{%$1hBs2%v0e<Tw% z^KlojA+s@FYVIZ7Xp#j2heiEVusmM&9DTC~ogu%6@`56XWgXMERc}sS(F$=gK4lOO zI*7YP<-<0$Qa+#v&bq@n5u?hae}dmQP0DV{co8YSU;AmTJTqvG(t7}KA=;^d^Y(RH zjD;PV6AtbspU|)K6Mg97>ow2h>Hx0zc`xN(26ouXgskM%pXG~5Y(Y%qCvgv0$Uxs% zo@)BO8s=G67zRkRE03eH>~D73vh9=0+a|^bW)Qtx3#u*quYckKIJz}P4`=;pGm}c< zo?v{+?n_pA*!Ca4M6~w8?0@r)k<@G`rp4!~W2gH1^D02*vgAkiny~}p2FndU`K%&_ z``bD4rq=DmFZISUXrnpq3yklEUlx>~TBDsl?jgdj4uz$t%X<U7U&!k}o(R83_tvsp zdcSS2Ubc4Q7<JnZU2bj;UW!ib)>QWt8IbM*C%oJcaM>!nhzo035opVg0r|k7MkH(? zV)_)>^xet<c>>0;$wq+hWh$5e*V+8ElL$`_<TV7D;4g5$OhL-UC>JO+`H*vjS8H&x z*NPNVN>S?;Zn?mv<suiUe>F)EGRZjgwE1Zi!#Wnf#437hkuV;IKv5HpQFDAv`P1X| z-KJ<UGk@kjZ3sNRsaFp^hUv`a@TVT5;qx*Kteh{jEqsZWYid^E?)vSs&n~A2vgzF1 z#W=-XdQq#v&2*m$e||g*4vCO<Zj*v74MsK~+dChS-u&jgLPBy|es%=SO(|R9S#3dC z&%_rZ@!7mvhJ=1*9tW+26vge^uZSzfCR2>KC<ZqXjMRKQ`@P+qaCE<3hswA*c?ROj zFN0NKmpjsQ=w^Zs{H+jp=6?2pO9Njn{Xq*ufpoL6>`4doJ&yc4ONxLjFad;G#afMs zj0+V3Vn5<R56tYzu!}@wVR5z+n(3z_C>@{W>%***vp|HyJw)bltAL><Dyr#qNGHC1 zU-77NMYYAe%S+r29y&kqM2g>;&x=w9(0eTL;<=G%l`bdxFyGn(S=vY;O=;!?qc%6$ z^j4b+B=tIq2|<GE(SAUDr0TMpS(@g=c}E;6#_nm<hs~}`3iO^Z7E3}JCw-63jGsU5 zU}JK9<(gA4ZkM<u)-alB;c^mdN`rwu-%SJ=LWLQJAbpJ$t7)6fHZ*bP`53I*5Y2pE zkc9D1+{1HcR@d9N2A=or<~PWtIJ5(wVWCOdWFB2!&u{}dr9J9Mxc%{}+=H20=uAE@ zEfp|eN1+z&hAt-CBo<$cDvukLnk-co2c9E*?tw}bNGaL+U6AZ}=J2xBT)ErPx&Ivo z^<9_pb-b+0sxiSKVLOk$My`srw*s(^qAxEok=$<)^-FLQuQL|j3W((vOK)V9Eh*$J z`iGB~rQ{D#=;-=g-L(+u02;Hc>1J?8ud&uGvKGds&QDrL0s>hBcb{|@!CNdwYNE^( z=9pWVO2l>*LN;5#vX5mM@u{%jpmB0a=p)Mry>1+~j8Ef%Wr#9}uW86Z=2?*VPZ!`U zH3Zd-oO(}QyEY)yf|?Ec&6#v9f4C$Rfhgt29lSaY+g7I0pD;dJrZySpex_N4YNdf2 zvDB5z107iSID#K0ob7i?d=9E{m4F#$X2#dpcP7hmHjs496jwnkwOkYy{i5YJ3%Pm? z$DIP&BTu$Vw^#ER#r|>=?ZGO@ukQ}m`-Fc#iG5t9;AN*-XY=5oRqsxau<%5;wN5h1 zW#ST`sCb&Tiop`beLAc&?;{=UDuU+TwKMsh$-ESV-eI)`keq|jUnfq>ZkoeaSS9HL z$hI1kW{B~)sbdHKFzJUOC>%ihzU9UYR)YZSBDIgo8<Nhu124q{7He;T0kRaMk^HtR z*lRWko2%y!q%&=gqnE-@i}=ix4E6V4lNGq26n)ZX)1zW`Q9sX@*sOl}0bc+fVES}P zS^Z-~Ul<S{TITnM20LAr8KPN0p~krs^3l3}n3R0L6Vnz)blJhaU1=oFcnoXRn58$B zQWix;JTnGM#zruH+A#Q_T!ID}n)_ZLVbF~hc>YsxKttAIQBGSoE!ZR@6)p7;fbBA) z1^`8Gh`#hXbPh|&gdheyED6w(4%7;Als~-$8Dw@5>>*t2Kn4P8(`pP$k?X;8W9*oO z6A{>c%}v!jtuS={=AttpQntZyT7TB_>Ba?o(M`#s-yq2vYqo~11A@Mec!0%ot@DeI z6Q4j>=QMyp^98TzPUurNqe8tDRrwP_d~&n-GHN~~XMJWl6pXw#oAogi4M#A_MMm9v zj00yvY;$$ORh)S+4+lWlcN#{07qj=a0osTI+P%lHaLcK@8ih>DfecVM7WsuNz4}L_ zXu8ly@jF{#2NcEYf_6evIkh;Rt=#iBl1zeC_fG`zsIX}W#Z|=AD!?;fMqHV+%q92^ z(Nm)V2*oTO#DHG$nK>^KupZe!#>GgsJa<?nMsn2Z(a(DZE@#=rBMNCc(dDv6Pd{lM zJyfUbM?MuQlK8cnxBI*JaaoG5X+T(nSK=1E9_mUq_CTI1m>G8|%lbvOT#qvC;|9jv zC#(o@xJ4(TJC9vws_hv<!}tS$Rm@q=RoNedPT~JT&lDX8p<gQc&I3^i3xH8+xxFC{ z$+KAv`pu~G?o8Bk_$Q-ELXE66tsfIgXt3cV7#K>ktMDF6l9Bz8;ut(QVN;XHjiZF1 zq_=XpW*{dq&~H0*mF^K=NPzc!IQg(f%$Bl`n&m!N*92<QQxf(=`P3$KtmYW)W%drr z9$rfjT)z2>n<2oxAM06v_O=^(*f!_>ZDZhyc_#{k!?A(dy{v5*dwsyY>ku^c0VAe( W7%D<lzVpw2TXND$Qq>a1!T$%Pri0@E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a78a154b11be8f5fba30dc547d5d3d5a6f14cfa0 GIT binary patch literal 9943 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 t0k--R*rwS!{)Fk9B8x8qUaoX!)KOVwj0Cv$cs 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 VS2|d4-sS)R002ovPDHLkV1k<_RD=Kk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4cafd40f94f048f4a55f98ccf29a6c1e0dea261a GIT binary patch literal 10374 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..282d6ada85a58ca9c63ebfb646c32281bc151e89 GIT binary patch literal 8076 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 aCjVbng3ne9rkY#;0000<MNUMnLSTYXJ&n}> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b8b5b7b1a19f3ceb9120d8e2f4012a80ec7a3cc3 GIT binary patch literal 7403 zcmV<H92Db;P)<h;3K|Lk000e1NJLTq002M$002M;0ssI2B@5<>00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V032IML_t(&L%n+ElN@)FU3*vFcU5;+yXxwy z?ymOUyYb#&{0uMyHyC&jmIP=-g5)ii<SqAhb*J4Aico~~L5k2feYn3)Su-F&0w6$A zdy06`QPER1lkb=LUS<|xu{qh-V0Tk&jC}m*gKS0CbN+}%Nh&HTsHmc$Bp%TS)nH_e zV55YjQelOPtF&PVwQ{&#mMf*OrirCuxK@qzI;lz_R4RmG3EASIYzU(js-cA58cx`K zw1?o5Mpld}seIl`2?)(cl~}1(=K~R&n|Upyci=4qyd)(k+z<cx+iWGAE{L_R)|<%r z6R4Cl351hGG)1QKtd?W7ER#$zNu5ongiKn<XT?@Ssg&e=E|AX$b6F8Ccv-S|NQ?Un zI7)MVIVMJwVxzgfGV#Cu=YRY6fB!#!{O+G})dt3icHrrvyd-b)(!Y|%n*<mK?v*s| z(Z~0u7F(58ywp@K9j}WT8ql$zj)hWqG(#$BO3l!!K`T0~XiP$7;|iTnnQS)Ds78Q8 zE-U2>QIdI!mxkjvqleGa3#*5)dN7Lztu+ddA6)(RkDq`3*@J)j>gjNDNQtu5OKt9* zQ;odUN7+2@=kPiKtCR9^9xh6rzqXsM$c0)Yo~A1u#jhfwhWIrkY!FJGmQ#e5r`0SS ziqp{qEysy)jMQ{iO|nUi1p<{~FrSs27z7OjOjx~)1ppTw(&{B_UffF%wNhwivOGUi zSy^l?Ep%`}uwm?Qvi6t1eiPS|HUtv#9uBV)a3Yx9=LshHbS)A|F%gXkD43*Tp$rZs z1W5oI!IYVbNQOw|xU|6=hF?$f35|)yDTqFm;W8N^mlHD?(S{NhF9o4ny{y&8nV)d& zA#FYrte+|6q*6Xm%1a=jb|YRc%W6ufR6-wpc>UyLTQgJ}<l&vQ^g01A<8zZfqY;PW z7vm@|`}l~@uORUPrBxZFNC_$ekTf)$Hr1TT@=2Xjbq<msh4F+&>jtN4rZ9?mDU}xO z1Y<=YdH~R1;KJsk&9Hog3nya<p^%s0&Sp(+RKxkAKbdCI2G{NCJDa2NWDe)eo2?$& zOofXz@$-P+$N=hd;lAp?NEKu;iuhxQ5J$o~9X4>KM8$!C;**jH9DhJZ!znV9z~f0; zRtQ-ogb*6jDAizNDH;eEIiXRDvdN$?C^=ZkPWWwz07<a<IN)GMC_73yajI5J7#Y5h z_m|6oVo6dnOhO0#{Ggwnovk%m$v}i*MBYPyilFu=tBd|=z;9^4g*Y)U5J;x|fe0!o zsGy+vddzgvQyquWcqoH~GXzwTl*A+j6JuyFj)zoSPM8K2Nt5vutpJBCt7TX{W2z#i zi+C*JV1mHGB!DnZoZ*9_gP`Romr&_QoHVlj{?HhXv)z71&j`sBTP{a>gG?+*X9|Ik zLZJ+5N5B9`tDAZm@S6m1FM}*@O;#I<nqt5=jcRo1+^|@W2Q(~_C-o+qYI2Z@fT;vr zh@<{E;*TPbfv`?QQYNur5`#uzl1Y+^PN_Pb$*?Jdmo&&m(B&6hg5QC&9)fb?gr0_y zqhkqDj^gENd}gk>wl?VX(sGRO2QWx4oJBBBXof$QB54Wii?Fy&Se<4nUMJx2kwnNh zzcJoBT!CtiXrz+$PcOB%_vS)65iL^1p41qJiak-SGLb9^-7SzbH62KzQUVL<I7l3< z7E%Z07ffLA8)6!n&?rr(RTapvpqX$cXvZm(BEfv2lYnxPIs-|NqlA|7Ybha@4`^vF z9LM3=uu4cVGz=|BhckkzgXnRK3$wTg2>5jZHV?%m&`^qh{OnG?EJIC)lH}A<>&ESa zR7py=_)0%mAIg<Mu-Ffzn|!(<Br9y9!i2Mg40V+uB}f94Q<4y(NKl1Tz%{f#JPv1} zk`S(zW<o0Mpcywo#x-zZG8n-k2@o_DjuTOZsy8(w9|B#4VmSQtj6g&u#W;qtDCx&6 zZipT~?Tpl$B}CC-j0z&PK_*iSY6d5#$nkuAa=u#W#L9!va3V1^sn5)&hSQ10Fj5)> z^Fv8%vLOQ(b(GgIBIbo+3#ey>ga^TV6Bwid5K{>SRGy-v8X3*_5uORgXwZoQb&@oh zL=*xPtfts-f`Iai!p&(Gic^dsV2P9;b)pCpf={1^Ku(i@zmWka?IOKQ7>yZhFhRt@ ze{{0kQR`i`+>K4ls0;I%&DGN0Ms;(&I60$rCZn}U+35L`EjC;rq%<ZM=}4M@Qx7I_ zpaDY^<ROqig@`Ydz~VX)Pm^Jd$P`#6NC^@e(;*L36v9=>aDs#j$R01FQXGSz;c<`| z9YAp&wR?R|1c9amfTH!0rySlOz@U<k3*(Utn=1wj6)B|Q5wMgTS7=JJ3;Ob6dULg~ zeXhK`Y)sGTle5X%SS}6&z(H?vF%U+Pj2WaEI*2=t2&ab!pHdu^H7t=PVrkGfR5Kn` zp|0?FngTvxVqyf^4gw_MesBeN77D?EA#M`EMes({;zAs!1mNaan)F98FK~FBfScqL zG@7EKI=wNU8+2oFm>1xWrKxHsw6dH&zgb$C*XI|~3rp$g#ni-XvOW%1hoM|wOtm?q z7tkAAvPjE14&s&)rbqE%AGCAG33!^Uqo)8n2CZX|t1xIr!yrp=*mBDB0H{Fti+loc zQ(jc`!GT&mUaQ+@aeD0@Zx9-eOhQ6@6r|;i3^*}N(y(xfo*5-CoU2^lZd98R*k!6H z6l&6y-TKW7or8@sBw^9ykeORZ^{3<2QK&Qw0P=mQFpxmg5CpW27jw92wI~-sL=_37 zP$`WD(r7S)L01W9aA=W|ZqDld1QJMN08vK*8I+I_Rz>`2go^sCZnwqdv3fifm(S|* z0u!4D>IXIL=;s7zA%YtfzETZbSg#yyR1Q~+T$P0?%9X`hLq315cxkJ$wOZIcXL49w zH0I~@iJ3%e9BEEO@;$Kt9C}isL__F;g24Fn0x3)Y!v(j6?vcR*1_l5ou{;^d;U*s) z0|HV81u}sQ<~L9Qm>39vR}s6<ZE?D+E;lCmY#uMvl4(RHeonxNqJ^5E81(*P;rvQz zW~4M4A)~}8StehW8qILK8(Emqw^xgY+l`Am&5JvY-SzVFLS{G_YmdXtp<L)l)uEhi z338SIUxE<L!6}9ED(0pTC+hV>T2d(Z6#&S<c|$7B=3KZLAf{1&3W*fRKmnDDcrb?n zD_%jtR}jw2Du@$DEMD+XupkT+`-*_w#rR<&NaNjhd}%T>Y{y6aM57@a1%Iw6RcrF} zq&_{RUD|D(T<G1oG`xFxbn~cxxLMy^F3iv9y@_aR9BvHd>OjtSMUZkZhewKpUqewp zV)H`MJr<|W?)5TJ1dbWtPnz7IU|7Y=Cw!8D22KIbM#`k$K%|_>A(Y3%c`}+O!#M)w zp>ocSABX56>{kSQ6cslpJ<D&*7fyD%>$Camd!4xn4TjsfiPXw`uG@<>T9J*_^6`HA z(oXYazjJcX1p-@3`HiK*+^p7yLK=mk%^590DKn802?XdU>ZUz(93f>hdJpL%0zNSX zM-Ch?;J};k@tO|~JDA6`2AinSfh^PyDrQkBi_&q7h?2oHj<Sfw;e*n*{uuqw2#_L? zEegGM?A(0e{?Yj6ZujOvcXzEaHP-i5t6Qt3YD2D8<&(qV)${%H8`bOk-Q$Dq1t73o zT3gJ|%&MKqNNpgO`oU~RG&+8z%0w$<uz&{(W@O<K5zOLj6a|+<MT86?z{H<4Ylhbl zIfuuqwASL_S$HatMFTk$9^{jlog}yf22N_RgM1N-)2y7AVZR{Y^fCbzFO;OYp?+b# z_QB!k;iZWiyPXG@#+SDm7uM=qYlV6@((kJ`js_2}O<&pX-aQ&E%@|uNMc}qHpP2?J zPlOvIxjqW#`k`z$kZ((=HlJ*=YLkgn2uO&R@;DK<Y*1VbgK`2%xN#4t88`q#C>yy# z1b}T3Govr!WE8O?U^SSFh6&U>eyj7<*`MJB0WVG$%l=*~JU>d^-0MAmxb@_C>el)G z@lN~VcH_cUb39h7t<d&H`-9`@53Wo;Jf3=Zb!vaDw!Kn5Ip5!2Da^xgF%_?k<nl0- zAA~aPfYA}tZ9!{t$p#BURK6`byzY=rCdx24kv5l?36g4!O*e&Tfff=t9J2&u3?x{_ zA$orbWa_a%+)(izQ?;*!euftWaE2cDqwSWwIF)&JYw6S53!mOzyn8sfb2NPZc>lri z+`^o3e9-^s*5ZdZ<{w>~zJ8&9`*3iw*FD+m9c{JFE$5czQlm+wIt&;3L1<^`j+E|7 zMqh;EPt=%f+n=fVZ7#P`VzM27t|w_lQPwzUAjyJ2%Q!8gp}d)aPzi@51oF_1VB`ej z_nI6$sMSTj4Em>dL4e|z#YuH?6rZ0+fAL`R^ZV=1ZbG25UwwG+zyHTy4lZ=&rc#e@ zE`IrF{SQxf9$lZgb8&EGw|!-|d$`ry->RQmD=sc%1``U@PoWn~wI!|P*E{|+Ox-OO zV01+#$5|Y1waAr*K^Q&q{Xl&b(JLYs!Q~<W3X!Wspp5zRh*W@qiU{XO#1F^sv!W;v zc<b>4UJyVidUrLmF{`i5<v#!5+~aF=Pp-{<baU}PJ=p%+_YbcgbVfsUce#4!aD3<D zM7tARTgYA6?Es)5>~2=K&Q%r`(!*&5N+{cf(ifBlr?xoYpmzkV#iu*|OkJ|MJ!*wB zy8hxo%Jg9LL9hUr4-RhQ&mzGR9x{su3mP~G-GO<mh}YuvnH-#NKYqXq0&bMvUNR2X zb1U=tXAt+@)z9y(KZXoE+5MNVZh{Q1?DwDETDozeKN==l?MSy52OVEM=pAg<SC(=! zv-)5n)*MCh-9WA@X&pY@74$Z*cX-v*0I#)#%1G90esHIJUxfLuG76`fex*)_p=_XG z74cY=id4u%l?kh~-RrS90I1agrT?=f_%*yB;PSGEtA!g!?XBhVvl|Ov+*$eL#=?{1 znWrc7$9vry=ZAm){OIY)!qIl4(~Gv-vGFK*^JoC_-Px$ZWV*3h7*DC~akM@R=R1-a zdYjYRtkz=VH6~W2;|(U!;j}iFXfVL7Gzzq)qp2>ZG^oTW2e3|aS#5EJmWZ=Hi``>& zm<!i?@q&QO#qKWTZeQ;2ua=%(pZoOM?8hf_k1mex91Or!KRKEI{?_vS{o&3^X*5X8 zPNo5u54tywhKGC2^V@a6?nZfa*%(g73!Ol!$wMfa4i5viS_ckvtjR>1OtQtK;mbCc z?LtC=YK>OvRIEzMB_dg446v*U8#8Foy2XyX4DsFgk${sKG!oBlPT$^de|2x=b1<SC zi{E^(_J^AbUtXX8*9YtWe0|~Z#fe5E+-^qq&(+RvHJ;p>zjrcq^?duncI|MdvAt1( z!LB!sg2@!RVz%qofkTVWG<mJTr8<173*caP)4^36yi%rPWh!2!<T4R0k!pq3D{LrD z1~dYW-{ySv-r?PNNr06kZeuS0?UT*Fe!BnNhg)CVn*a1<_SvP$k1tRC+lO2K<?+T3 zPj^lZdN3ee-f68Z<saRcd30m?(tdMwB?rUl>WVQxt2YKP&xwVenC+OmvRYx16(-mA z!=Re&`7>=E8iJXbHXE-{3J@q$p#mN&l5njQX+gy>0Xi;t&Z`jLjaLL5Zb}q|D|_uP zKUn$eXGh;W+<ba<>fZj~)=uy5pPc{V`r>!bcE5VCzP(&pn#ydf7LRsXHxBy;+f``N z+iQi5C1YzjTOWns_-mt3uIo?Nd9`T1xq#_ftFmg91sV{2x&yLiVkI(OB*R5KS~Tki zn83Ie%~4J;9|yGCS0TO|uLwXDIowP+r`*3h{nzJLzyIjq^IHoyb~<|tr62BXe0_86 z?uF6w2P^lEMk}*fnDaikG`_G^JKC=AZ&rZAh4tdWTCqBSK}djMPOo!N&{~;|7-Xu( zXBvW9W*~Z_$E$TS+(-c`hk!{*shTe>fnfr)UZg0$&+7PH893_{87=nN-E-f5wD;xh zm2V$yeS9*rH(%UeEQ6ZwTo`_RZ{^9=>BkqxPmV?)@w-REYx~`u_0ryQVSlBtJfA9d zq*6bStTGS^EGzLmm1=-qLxsKw-$009HDEg+U!VbFbD~UVo4j6SGYuX@9LbTe2mkI2 zm<Wi0C)bw#?TbtQ^_x3?{%HSCAMHK4IKH@En;B}yJKfJt=07``dwzTA(`z%g4my{& z>sNN02kYg_+qI45EGQTV7)=3$3mo9cwJI2nSQ-RiT~;a-xT*%;+F;?-VG#ozXBu3g z?Kf&X=mf}6AuxXLYazV_F7D;^>jZF|zr8=ab-et;Cx_oX-24MH1aQ@p*@uUtD_gB^ zK3IQzJO@g6eskf@d6>6bmv-vs*Q=MeYU@izV-PBKML144$Z!^i48RBkrUYK3)+jh~ zC?T*{IR1Ev(qW7Pk(B66ozHhft;W(J*w8&z`+M!5dlvzxo4vN#%^FHH68!$r=Euj= zk1vfsxi<UHk2e10!`(lBxc$e68{a?O`Q!byr&lJPUK$?nv@UPe57vuQ(}~VRq&pF* z4TI?x2j&ADloADgsx=w4PA3~QBq3R+q56%606Y^#It`OWLr_XI24j!iW3m2P`+td7 z1e|V@mfgi}&6JI#?De5v++KNhZRYw;3y%N!?bUz%^x}X2{?6Z@U;NW2`+xap`@4td zzPK@W|8RI|qXyMK7{z85wZTjr7GkwbN3*1C;3~AI4i5zr2C>$tGrNROxFK0)QWe&y z3re11!}w|RKAYoRQ^Q;FdIkUlNnc!Pk_7(v(#$h+=r3MaD}x<<b#wV|&#!^Ke)o9m z&(HRLc)I=dgSDH7{iCfq?33f^_;4y#8w8;wlp+<)k+9T5D&hsRoa8J9>t(D&Xmuu0 zq0@B^+!hEx^YX``bGfZH%;tFey!mdtNq}*Bkj<I09uFL@_rAWjcC=kxnN816q#hql zes*pCPahwBcs%pq>g3bgGj}czt{t@Z*2~k=>f}sfYEA(~!s&)mxcSm52L?|E)2M7< z;T#4W!Z{rF-E3RP_dpv$qDUzP%1e1IRuJy*i5~El4CIXD_n#b1Hc~VrJUpCOTQnvn zl!eLk$yV#*lZ8)jEj_)l@Y$WkdzT0It`5#`*I=I<PsT@6N^=w{!Q7vx<P09k5+G9@ zCOPwM0v;_8(9WRN)dHhc7_G*bZTQq@J-F9m`whnb8s0*{;bsrcjgHSXJw7I-Mz@yo zt)V>bCoXO@?q3`~yFL$d9?&p1`W;vXD&xsSe<IeI2p78k+AuJfQIcg=*2qki&$swk zg^XqhGT^m)oi-<wiW^~kRLF<&9*_YffexboU;?MW=DL}DGUD<u=VnUX$>?wxKUk{* zfd^M6KEA&2<)iJR-S+%^X6syWZcb~PyL_<N@fSOysE}5#+v0NCd@eSGvJoF4c<2CP zwL^y@Ayz0Di_Ht$84>hl8+@w5JG{Tyd|u-11mG_zVR5>tL1`+{;OwGa=?11p+O32B zCpVYAxWDz)<DKglCob)^k9O<Z>!r!*L~k-0%W`&)&tmg|8(OSzt_b+LX)oq%{Nr@# zpe;7syus$hMXWLi=9+$1B7cYfoZ*);z#4k&=1#}$Whh42U#pe|(&-D++M{bTfBVDj z&+c#Cy)t!jID{&?wAWmm*PH#Y(+iylH_gOBTkW(JJ|V2Pd5gtra<F^7<z67)60|%I zUwUd4Z$@{M;!p2<FMg4L%}EX$nP|xTbqvQ&&8nFizc`&aIp{vUv-;<+Z#{pq_vrfK z?ndokt8%noU0yQW2w`>nsyQC$S*#csKNTQyO`+J394^L%2~H-6@WIz^emCAhfOWa) zmC1s~$HR$gS|Hu#8cq3dvvKSE0QTei$1~Rs2jj82zga!lt?X_!UEW_^2@b|$CCox{ z`M4BWs7Q97;8<K`%VnpMc7?Pz|3Ukg@Gb%Xo)0)Z=7rrwC5yaK5f*2R!{yTL!{G;) z$M-Ie54RhmDRpX2Gb%BQ?N@EFXRz2vC?qQ?_|g%d$isN!+P+!eTXcj%b~@xhMf>Sw z@Ls%!z)yiu6pWe8c6fd&b-dZUePM9-()e(v)fvV5({V1uy{DC$+W6TGRtIBsLG?3M zuV^J?OJh#B`@kJZxO)>=zTxoj4!5a|cjGq@03XyVLZKzL2I18O<K~6l#r@9qMh%9| z{6IvRcNLFW^cM5TfBL1v!xAjd1UNp%V=QaOd0R4T$+j$d*@lQNOhWmH)5~+2f(!Bg z^ueFvw-9g;f`V&x7R<go5k0?EgYAA|TFdr??rg+IzWw;myy&#z35x}_+Fz)gmSIE< zvej@L_O+H!9!vRdpfpU7!H^9O-ea1F)5Bwg-!7^)w_rZy_}Onh!*3v9cQJu90b5mh z6ex`(SbvumGlP+$HJI#(<CWJ5oW>1S1Dy-8+B^=g2YmBvU9@{?oMSy4?Mo?0sbX`p zUYaK(<}1DGDA?-8W2%IZ49LLY=Im}3r_B^Oy+8g57hIe1*j?OjAOK*Zq*9|{_sjN$ z+(3Xuu{ROxjTQ4nLlq9`XH^7;ZGjon>kaB8Y%_@#Ay+Uj^@}>OdsrvUvkI50`s0QW z2!oE<Xgu7Q2-k-p82;i_N>WWN2{DEazy@zV_1g&8TnrVYVl@g@M00CtFzFgMo=)~A z;;_yO(Vr7=00G<==aNl2UL!(fgpK14@2eZ$3OL%A*KUNRd7<8o)(2rh=3G8=U3vM_ zGyFyZr@;MG3|7GwpX#wNS3*L@vntTgTbvs`dkf2$(c3YLm*z@BqDjdWG*m)(<t<$n zVtN@C&_fy4L%hfm<>!3_2U>^Evv1zS?;!xNyJ%XbU`K)4Fxq^39GRF>AyA_)2noVR zBdm<Y3Vf^~COTBKg@<csq``QZQ!V~7pvu9NF#1<@fHV9~0%ri{38rcArBsb=cH~5X zi8n|EB5n{`moARP#zaW#&~hD<%cu<P*85Ihcd!<xXm!1Z<ZJkUB5(#TNr!TbQlaae zkW!_SO)gd=^){n5*hqzl)^N288X(CiWqZ+Ff7CHFGUyLBkP2sYyuW9?75@MNXK<qo zA<{mIw7Y#i+9wwX^KEmD4VQ7HNrp-|%A*)hVjM{YNg{wFEN=C37LR0}y5qN<`cLr2 z{}=j)z-q@G9$%zDX6phhkjW~Os8ed4PE;sZ!4f4Zm_;L5Tu9IsBw(@gR(R?suX^4J zSW%pA#^vFh9uE2dc&^<^`%vOPgup4lr%@?ML~;}?@@j*DW#53NTjAmrLM~#E8CDT3 zUdd{Qo8J|^%ge0HRS}9Bc9UX^g9hhDXhOsY5mxGdTnW7$4$^8zon8+qA$}E$73qA( zpKQ=-n~K*-OcE@%cTG^x$b2-@=*3FSNTnBDUoeagpK7w14p$xt<q7|IKKdU_;733K z027zbo2iJ|HlJvai3WuToYnq|jhPU+ut67^VyeL<^L(n#wff=0zz?=o8VbY7$lRPd zoQV8?BJctZ+74S%1QB#3QX!q_FRyPdQfsp?;T1ZfT4SU%u9dh{hc)`F-lCFC(x|Yh d3LDCy{}&;X+;R&P-KYQn002ovPDHLkV1oC{`yc=S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..45e0fc7b833f80d2fc68f1d3c9f5b82a5d52e74d GIT binary patch literal 5836 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 WE1@9ze`f*!0000<MNUMnLSTYEa2QSi literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f2eba41069b5387b697843e0fc2338915644b573 GIT binary patch literal 11342 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 Q2><{907*qoM6N<$g1%1>RR910 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..30ee6dbd555eb7f1c0d57b82002b1504b9783f22 GIT binary patch literal 9242 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6eef1fc3adff2d3ceb4aa625ffe60eb924cb2aa4 GIT binary patch literal 7270 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 AxBvhE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e6bc3551388c875a0886fedca8923e29d6e5e586 GIT binary patch literal 8300 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..50271c79a07e623796179e9feacab21f69ff8859 GIT binary patch literal 7491 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 N002ovPDHLkV1oIR%-;Y2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..84acdb8095f8efa82d7d9ff5a8c4411741f7b488 GIT binary patch literal 2663 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..775fb38ce12a0ea7e90c762a5d70cb45fc4e1759 GIT binary patch literal 10086 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 IM6N<$f=G;?=l}o! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..af894096c891f908ea13939d7b41574a5d9228a9 GIT binary patch literal 4119 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 Tbyfe%DgZgKvUIJaaq#~EEV0_J literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..552130eb52c29237b125b2febfbecab41bd41c07 GIT binary patch literal 10806 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 A{Qv*} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..16343ec24135b6250935b07399c51a4eeb214620 GIT binary patch literal 10080 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 CK-V|` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a36259bbecd3db15252723fbeb9d202907306d6a GIT binary patch literal 6173 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 literal 0 HcmV?d00001 diff --git a/public/static/Cesium/Widgets/Images/TimelineIcons.png b/public/static/Cesium/Widgets/Images/TimelineIcons.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a04556a8555469578401d47e8dd07ad3bbf228 GIT binary patch literal 781 zcmV+o1M>WdP)<h;3K|Lk000e1NJLTq001BW000mO1^@s6cL04^00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iph? z5)&web1Xvu00NCkL_t(Y$HmpnOB7)o2k`Ga>#7^5Seeq2xT&Q@QV^>LBhXV(hd?9` z(V>G85nZ~h2WRTgA5a8h*QijcLxDjU6cK?|5G~HZ%*>6}UH4^Xb!X;z>0nMXyQ{bx z(Ol-4ndkGH?>zI&Gr)h|q}&r@&!*(rC>>r}<q!ZU7hnLG!BJZYG}U>P!Tv6Jqk_eH zR{&-7tzbScqzVrh0jS_$TtG+?I0XztARf;Gx`_wFJ$d0v@njvJzwuJcTO4XyN5|d< z%tX_ei)!d<_Ty_z$3kiaJ%{`dJ_@6TqP}lTIB)Lsk0!#lpLnj?{?%(W&)WeO4d!|p zb?UpTP59dN@bn@KQ=n#B%GE#D4+QtQ+Uvf*bHB^m0pbZ0TF#KNO(u_#F<i%`dON`J zW}jkdCK&PBoj9X*+v0!9@#PqTjn#^?V5#0Ukq%#aDjM6WP+lgWPA?+RUJVF=xfu;D z9Xr7p#h1@XFg=d&!z+1{(CLrVRpH%y1P}t9O@2&8V&IG-xTgX4#^2bUI13yL_>^?Q z0HX}M{1y17Mxnlspsb8TPpp6%SyYy1(A!?G6dG2ipZqju`|%fH+dr9{c6nETTi1H! z*g_J<iV42T@Nx8lq~5<MeHb|>(NzmZCX39Hh6e9!!S`B<C%HvhJrN}lH^DpvO(*UM z00^ACD>xxYEa~Vuuv-}#3T?O$73=c?JRZ3!)1(235VW^$2LQCS)PPe9B4y(C^#OUa zrL|a33KcnXbceG1GYe+%wa>}25dV=vUw1&+%KBc6FBl*+*emn23G?^jVrET1GZDIc zO5RF<Vm#TX$l2~%C6&wq0JMaT)4@8Wn7`cLdH{gu;7#G&{|o;MAwTPJv`aW700000 LNkvXXu0mjf4a8Z% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8df10dd5103204269c65a5127154ae9d3ed8e95f GIT binary patch literal 723 zcmZ?wbhEHb6ky<H_`(1Jk1kJFkQLQXlNJ=<zH@Fekh^nDbzZt>Pjjq|g~s7+O$(-G zrzf~{)<;{IsvX$eaPRz-Ig>I(h4~ca#W*-vH!LZYlM&(KWOuOE3idPC)0X4o<pdiH zA{75~`?-b$J39ur8tEA@GlGQvNjVp#CYGe8D3oWGWGEzNC069*C#L9S=B4E`DE?&O z<OZtJ0qF)gl7UrML7^`tbKa5#T#rsMt#c4)wm4&2aJl;4?H%*^*q;ctZ+YZ!f=91- z-8C-PwbPuinV^!8D8ZUAZ$+j|`^0?*ZXH_r=F;-s=Wq7D-W{Q@F^9F$TCh`s37bYU zpw-=pI*&V4IF+P$l9wbc(l{x7eoOCbBdG(^nGZDWjsAGTTd?u$#mhT{{bn8t<<=6J z=66T{n^C4fqn2>E3WhNCJ~l~G@x1uTreFAcY2|b4S-i`cPqf%2ZE*i3+J9zZu_cRC z<?3tQyR_y8DPl9p2ofIGHbp#h37ovc<5E&ksO!lsv5&0c-cGyCn07cm@P#sC?}=w8 zSd-^@t-ShG3aj7DA;zc_#<r~3l(a1KW^3Z~jK_<%<<5%bQ+V^YX?vpJ17^MHzAF7Q zOqk+z8O+R1FWC1Why$CG^dV+F0lH_!rgy7~WK@H;@IEkI|9iVk!F29#T}NgWw#xj9 X(`7JWbB<iU1Zx11Y=$)`iGTqBF97aE literal 0 HcmV?d00001 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="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FHRAOCUFHOXBKKAVC+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="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",t="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",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,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",mp4:"data:video/mp4;base64,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"}}])})});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,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",mp4:"data:video/mp4;base64,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"}});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="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FHRAOCUFHOXBKKAVC+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="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",t="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",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="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iDZGK+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 0000000000000000000000000000000000000000..d877294f27f67dfa2c9cff689e3cf357ed78790a GIT binary patch literal 13320 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fddc903f85f44066cfc4d99ea8082154e7a9165d GIT binary patch literal 9672 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..db421f7a7f585257e212037b2360aeb60cc2820a GIT binary patch literal 10024 zcmeHNX?RrS6@EplBHDtxRE3UIu-=S!U!pLX8-gq$(Ikorh?8WJ3?`X4nXniEK?FoZ zML<PGl&UDWfCvhe%v@H*1yOJV1*BzDw2w;_sPx>Mg;OOYwM~EcF!S7V-udQy@ArP^ zobTRw@+4m=EIS53m(IWd^6smmRjse~*}=T@o`W(ovM$f-=}VPF!IzVlJ}5mSD=#C* zm)c*FB~6rMziFAKs9K_>2`Q?f=!&HHMO9Wr%`#O@P(@SHMb)n;x~a>GA{hfmRQn=@ z#2^ZiAPb713Ywq`hF}WTK*5(8EiaD5s|v#uks|pO$<j@s9w@SIDwb+V#9TL~D~7Ji zqABXyp)rkQ7_uaqs$L&wShB90mT0;{Yk4ijkPLdMQo{<mXsEhu7^bAi4PmM%Nkk}# zRs)-<=qfQ;re!pQX_lyqilIrmw~tV~ejB1+rz9DwPz!WPQ)Ee%DQkM&5ao?>DVd_A z)DM}uBI>e9`>?FKC{tGz)1a(srddBEsfKClq}G%h=t-2U$+{$Jbwi{~)I{AhL|v+n zqKYY+EXkUx)N^U7rP7vkSyrhKJ;RaWk~mdC_e->*C|NS4S++z;pc1Q+DC>$&;$(>u zCQy(_^C&Bn07Y_3ulo&ERxQhNTg7n8qx(%a6Q-uqPG~QRAc=m1Hce$Eg~VWbOuAy~ z6h_ptE}8;$8Bv?Erjb74lxUvp*Qii5K`|+l6fPKkU6DmY6BSt|t(G)!M911!acN!; zx2@AU0jHk;^v=!Bs`iBn3c{6@(O4yIvD%kkRa6v?T^$Jz^`%m)=MRsEvx|x<!;}E} zSP(6%h?a-T<9Wj?s4+Ft<qlSr)7P>}0da5KcXdX(;uCyjk#e_tEs;(KWk6G9O)@pf z5>iacldfu1NlJ{N$TVb_e%h*NNwgEnoT^jq%R<A5fclp@hq^^EC_B^-l3=KQw*!dK zlnknzuKQJs&ImOfHH9e314jt|z8UF%v>DM)2T@l@hDs;SG%Q6(q2j638=9tTlygOO zPbG~}sdb}vL)19#VW{2DVJHs6a2SH0?n(Z|d&*4@W(IQ_N+dRDvwoI1r5TG*OkEey z*=^{8Mi-H!CYPZb!QtAiSqn+>q5a4TEk(NvReC*K?JEwKhhw35H0De7DTOKVNNKn- zr7~1j;rc^g3cexXSY;$i4eXQsqHhFc!8;mt$Ar#BX1KgKUgAqNR8@4BICOOQQEE6w z_2Dx0=g(3a55<bzGp5kJu&%1P@mR#Y`%ChnvNwaQmj0LWS#H|-p{E;`ThPYksYg&} z$UkAzy%El)xS1;p#lx{ksI)e375TBg;drRDG*XZgttu`lr`wY+l}>Z0GMpYQjmCO} z3cULDr#rCwCWcsjVEuP=+{@}n>W4(CVW_mCB-A(R=GB*dMexe2GUyBxMyv8m!?~1g zdK?##jIiJfmqjWoBSXUVlj$i<Z|`vYr}{*{_6rr-^sA%$PX)$fRY%b0W;0w_60S>S zEK(MU(>7{9hT_yy`BicEW3}&!?A%^?y|S~srpn6B=^M<XZWDZiyk9)My3;M4G8QQ> zjL-vuTJunyycuO)7QOQSSG+3cb<0-A>mA#2`cSK#dL$O{o(66q>fR~z7^iowtsQi` z!OeiDu{>1fRyr1q#<N^nx7jKS=nmk0>!Diq`gN$n14pzy53qY>Vd|_C6Ej~E5-VTL z>2_gF&orTWUX6>FF7>6IwPI+Xqn@62aJD~j+6OC^xp?K2+(glmy@74LD-ydO+#k4f zSKl-jpMKx-fjw>Jr`_BtQX@_up4hSSb`Lie!}<BToS*Y>4O}yi;TkwUpUe5VHm-s5 zUzyTB@pknv=e;rc&O;sd1-5(_^YD!+r2&0wzLT5Ca(oX?PFz@2;^F;fP2z=xS2#<@ zjBy6Nb9PPQl0F`u7F$<yR{Kkx@9dkLs!O*dPIxrU!;Qsoe!ec}=R8~k*UV$M2F}mt za(=FjYvBBXHr2krTS0Ktv6m&b-8|dw+-J0hOS2!d1081vTa9R&wy5<KyD)yAhu3er z*Iu`NT5$8@A15YsdCZ<W@(B;0`p=p6^4!(In<j3k8L;?nd*@S&J=|Cf=jZEke$K-+ zaLqi1YvBBRF6ZakxCYMu*_<r<<nznzT{Q)^xnijO@YBOQ-07pJy*7EL9e8)F{r0jR z_OZ8&^YD=Iz3d-<JKFvsoMW$jJZ7)T8|UH0FAuhtC#TtyGl$vvj|A=g)%SR~u^7(J z*X8`2hil-Pc?{RU`T1PV&$V$4oPYO4eUbxwqWyyzu{%D~JJD{p<>8asJe+W*<k@2n zjJ0=+ElQrUwzr2rJ@tm<iMMsP&%3jqz3;-i6R-Bp^6<BtRwl~6F0q9^!|Y9E)yY>b z9^~Q1VmLovm-BNTu7PXjF<b-Z=W{tf*Tyw){(T=$cRCL(OFJj8o!#ZDG0vN#)_8d3 zbK{&*$6p&Pk~I7N88e)MPNIi<?499sxH>hcOx+WVw;JzUW)^t3U2>u`_~6`N(NpKx zpUs=;448bshZ~FG{Cr)`&w028u9?Sh4V<6P<@{V5*TDHlZCGu0zhh5wTZc-gUH*r5 z?)VQq+_C#cyZ;w+lEX5tawaccVP}51#KWCNth6usepNDi<Y;G6>-TN*yM-QJwdY+s zIACm2^@SaEkYmf&Pxo+RF`S>T%lSDE*T6ON7_Ncy^SPX#YvUR?|2M0yb29SgIiZs$ zI|m*Y93}Fkhm|#ov#a_6=kqPYor^yYIs1!ddN}v=Lg#gPhGVRL#JTP(&3XCqsUDtk zMpq|#-8d(6?j&cTb)z#nW0Hp(i{boyUCz&WxCXA7$8ZgtpU>s|TpQQG`R9LKnp_lU z?IcSUCSO_fSYqq&ACoRle!MxcdDHUb$hWRZw!iK6WbwB5J-qhbJCfz?)+F!T|4nkt znR^r4+bs0(%Ja@hF54VSp0saX@|1@jNJip!dAP9{&d=B7{G5kt;F@_1*TDJtT+Yw6 zaSfb5>)QEFY5DWP2|Gjf_Bl^Fc|}V+e2Fy23G`VXd}msPJ!9(vryo7LUHnYiLZ|Ob zn}U<NXW4;!o_4fncX)W>*>jzaQw|0<{C$A^?V6VyW5zcgZY+lL^L05t=iwT-W*);e zaDG0Q^K)%n1LqICVRxIpv1`qN1)T!T#LFl?K=Cyc-y|OW{m{TaVk5h`f2nOIuA%s4 zb@5H&NiSZo?A{3-0_uVEKr?YSim##g8j5ccH!~+ZhfU^$=dC^`O21bxXeRb@Lh-XH zzDeB7obVhrnG>G3|5tvF_RrzZT7Az%uUg^uL%=<2O<=EQD8}u#Ch@POf4Uz0q#-{| zU@s>W(~zGd;a^LBj-Ib0pRc3&Ihvok-$=jc`F^y2j@&=Hzy7r0{@eui?#~p{aDP4$ zZt458Ti2F--5LN|@<JNvZ^0{#xLfkNmH1oonnnCAc_oOyC9f^S-;x)CKucb2iN7VU zW6+8=&<e-mc>D&(;RN!>;Y75?Nn}q#8~hfh;AH%c{K+^K?a&sdk#CFBaR$yLdnV4p z**FL7$+pMuaX!w&x#&RtTy(@A;3Mn91-KA@L??76-wA)hMd*Ty$#;Q(6!^*daS237 zkjctWphJTSgS-k87E;Nk;!<=&S6qew`O9Ea>eG-;J`LTGfgWUg;BxdtFZ3qc8-0+4 zzQ{y2`Al4aE0IGs2f4T!S0NAm$miiYT#IYapZqoS|5XEVJ=yCq2sa>ve6sl{KoP<y zL^1h7lpun^WC!C$l%ou#h>|Zw3^$<ymE<cBM-_&U9fF}4hT*uG?9HggNQ}TO7)AaT z+=|f{Lv{>q!#LcIu^3N&EGFU(Ou(JwCtwop!ep|OaX0S4y_iCF3hu*nOv6;%Pkt&M zz=N1Ub_O28Ogw^z@hJI+@i-pCEX*c93xCEFc#`ascnWjyG@c>*4CdlFJd1gFp8Pz# zfcaQJb^%_*BD{o!SWJE)mf#h<jHTpX#$WI%mXTeC8YGZ}L)O7^tinpHz-sa<um-Q; zb+WHxE#AVLcmr>fe*^3B4%Xpa^6T&(Hee&!jd&j);6r>w_9J|ZPp}!A@G1FC*n+Lt jMs^!M!{6{%Y{w4r+p!zFuoHX8@5JZ$0(;5s#h3UOlbJR6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b867b67f266fae303ad7824193230f880d006eef GIT binary patch literal 10304 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 PD0~TD!AZ0y;cNIWK!1`F literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e5e46b05762d5fee1de05260cc80663eb7a3cf30 GIT binary patch literal 4176 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3a318f52f972b03ea964bef2aa662ddf5c1f0c14 GIT binary patch literal 856 zcmYdK&Cg|IU|@(~W?)DF(o>ii7(9S92vjRM`A4`0$NRYYxrcZtSsCj<1eC0*m69q; zQvK7?ic?FJtPE;(l$;}dJpEi;gHTk%1<`dF8ClfUDljlSaDd<jAl+aOv=R;A7V~;g z;kZ71?SA=nf{qZqFtcVjkZM*K(5wSMvsB7s(99Bm^3j}y$E_Javu*;-T5)zMOfS$q z4kWv2f!I99=h6@Dix&sM%{hB!4aw##Wt`%u|NZ2F>!vnfy~f7DK$-z&CXk5?aEJH# z_}Py8GZ_vPF*`Yc!j}=K?Lm1!WE_yO4~WfK7#Lpgd=CThVd54Q5P6VV5Eg*)&jLB+ zK=m3>^)T@aH1!Tp{w1J#kog^#Am+iuXP~Jsfbwra)o*~Rhl!s+Q@;Spe*{(k;&MP_ zwNhq^l2x=)Nq%{1kyCz2Nq(-Ok`9C$l3xH~7v<-t!Du6xoH2}Hq7+-Jpr8N%{$`@- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4564fa268abfa05df9a0fa909ea81040678b362f GIT binary patch literal 13472 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cf1197b5ee26bd9b14e55ead524b2c34920294c9 GIT binary patch literal 78264 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 QuBuGe;5A(r|Kg_7{}S@|!~g&Q literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b06894dee449bda665393772cc9e593f319de751 GIT binary patch literal 4432 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 bs>4hmW}eeyGV|a&-DO<3kjY>nJ#zj7F_VpP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..82f7fc972b123deba0ac362dbc7842554e33509f GIT binary patch literal 3784 zcmb_eO>Y}T7@m~26jKTmXm512Cx>p$+Uq2)BS3CQ8b_&}#%_hwM%Kn2+l$t_*6!M^ z8(Hds10O=FP!LFP;lzP6=c+<N1tczT<u4#{K`N?Rp82xZacOeE$?m>0@B2LO*UaoX zR--dR2)TcPkX1ZQ4Bo?&{n-4DUMy9rh0@Y;rMA9Yx>#M+^O-qAUoKRtwNiPrx>~!k zq35HZM-6?WTq#zI<&vJ?(YFT?EjODXjr6=Z9L|<^i$^}W^Ygja2Wz#B-QrFZQ zyTw1G{LAKU@h2(IRCkNtOZo58Zt*wB-vVm@dsoWaz<wv?FM<6+%D+~2iyuh&2VlQ} zte+XIJwObfO8HG-Z%LT~+m!NGz-~(U4zNDtuYvs$*y~b$h!|F-oCY>4<rc7-l&=H( zHssUVVC^$t-;nZsU{6W;5n?zb<t(s&ekAN!?RWH5>a^M@-nEQr{7?T|L#^djR}O*y z_v7gGVM5j_<<gFB*XuM4{UC%pw651|(%`B?Z|Hf;nCzsX*Zoe{_ox?D2VJV?=h7M2 z)cu}^Sgm<OkNC7+St_g-Hg!YqI38HdElBoFmX5VGG$x&74&VgL(n%((NYACsl*xWp zE}fk}zmS=qH!#Ppz4IgYN|jxh&shuUxm?BoLe0)CWHM%UE_Xf$fXw9T@{*<R6LKb( zds1a4gO2l!Q$V!%AIE2;jr7(KV>{%VXGd>Qj|O(+2YOyFUs%grT(7R6uzebYj*sH% znUskDW#42EvHjMm*NWQMujyQt5sv#B?=!ZiD8Dk#ntS>&pUsWapE6IUEi@#)-P7ir z`4qt10?HD%hyTb9TI{5-vghZe_evBv4J@#9<|$kYdqU;haWab~-mxPZIJPU&?rsN{ zXk@#tQ{VJ^t+t1y&rYn4oLsT%yw(USP<l0&M&x!#mweX`)Z8^ROf=2VX~zjer%y*Z z)4(5VrrT}Xmwc9xUfw8NzOsxCHvHbUODjmTq34^3kMd|~*rqbn!09*<_{7kTP?POm z#D+Vu(-u+TD85u!N3XFC9IxSEKl4th)Wv}N$68=+JPZVF2M(cUlVKfejoWfb=#`}j z+)&fB504RYp;*Exq7`u6d;Iv!Jtec}4CdJUqsM0o4~6dDVT_Lm`@%n%i({CM;b2>M zfQ!jTr7h!OwsGu}Y#2sfoGWe<=a0u0m*Y0^*#0Yi<%`+IZQ@vVjuUeGu6Q0;euses z=Jq}^*9%i}5SjCWd&Iks%wvZQ!yQD1CI1~X=NZD@MTf{U<S;oxj^cilJWGy|=STwg z1bLnuCohl_xSt>|l9$NK<RtDV$t&bl@)|jX`zdmobOTy<*iopp@yhIKP1m=h#YE3@ zntssHum!SOuhzkOciBtrl8s$-b4uS0{P$@+0?iW)ED(4gvt6Ye?M1Cm>y~EMx_*eQ z>U)ccz8wr4uO$@ykz#piF)@V_q*IvDwC^;Kfa4|mkY=@=gvMyI8oX(5O=qRO!PUue zI7T{U&Mq=oED%6Jkh(dz#WXFqwjqP(oO>$)QdkQP5g0d%*8?WDEYM<NnAoQyJcC}% z?rb~wju>}B&NrN9vlr5-d2zV13ai#iK-i`Ao@)nV1z!RvPuO-mhaK?Kswl9%uxkg@ zs}H8?k9>JES<m*gbD!2&+NeZAaBk6LU)Dx6g7r`4$O}2jm-p6Ex^?#b2LmK&CGkOH zXzHeDEKOz3dDI{kw6=M-*uqqk2VqkM=4@&(!6sYA4WvAw?_+<x>jcoBi)TMB=Qwl; z-zTmKtFxnGWLPo8ZOrJx?Ve((#V<=NoGBV84Ncu<v4rt~nr!${QiN`}v&_qwzYYFz zR<3qdlj(93vE)>_i(W)Mtf2ugjMhvU*hDvydt7L3;lqfp)mhG`nD&WTnT;HdI$viW zDbppvBI5i)jatasus)&&@k%kOk(qJ?8zu74CXCdgnV3|I24{rW@gp2go|V9E@y{s{ dX*MYwjsi*9hKea=!*{P1-?+$Rm|(A*e*q5VbT9w_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cad09d4544be9448611a283bdee9fb6c8cee4af6 GIT binary patch literal 25632 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 LtbxLk6xRO&oiILy literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8ae19e39755d2ecf0b8e03b823997dac97cb02a8 GIT binary patch literal 12184 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 IkZGs?4}r@cp#T5? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d12ab7de59e0e46e5b2acc7405713e940be86670 GIT binary patch literal 15968 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⧁fHe!T_%gQX;t2p<*I&@~utP!Uv z<j?O#kd(!HJZnwcRMWZ~F|}Hz&0AvL(P`{#r9dHmvK_eI(^CI)jxwgTikxQZ%s5j+ zWFbT;@+)kN!uMe*I;=@42}Ui|8=>?5Xi;*!2xW9DW4A#jXtBZvf0cB3A1AKBl0IX$ z9XG?+pbAgd6(dgQR{%#DYkK{{7hEI$`GNY#gem8%p&vEw7cyl=TL(*`Gk^96*}tQL z|I2s-e?me+!oQNFGDE|_z`=09pu!-bfpEbzGz<%{76Z<h0G9*?h5-C#fC0#VSU4CE z91MU&0+!%^Bp@092Z$&D7@z`3!A1ZU2pY^r0uEH*0KYI{-~coL01<$|5-<>afGJ$? z8H5V>26G4i4NP!2{|+<?z&bbrB)}%aKL9|0E&r!a0s^pr7#t!hVEvyyhykE5L15cp z95@FW5a^#lRA2=Sf&sh%Hh_R(z$Abn0i-N|1p*)%uyr(GjS9H_mpCp^A0$8^1~366 zCJZ<eFarR9Ks;yw>i^6H^e;TH$^Tq~vjE=EKz8720QP`00gM)~1|lZ_7DxaKjFJN* zp#iI4+W-@60Z0i3_}~D%0#1<t6|e~!K;xf;0EPm{5{Lu5f&+n3fKjl03ZNbT)Pec{ zwg><@00U<UV1e?0PtX7g6U_e47wErq0skOWAc_A0Fo58|(*e#9to5&4;KKf=j0pn# zU;>o`3sC`Em_S6(|HLc+4F{M+0#^ipgDVd1E4bcZb-*fM7w%t7{{{vGu0I@z<DV8d z3li}9fBZrNUjFMiAOPnA7W`{3U>$J$pATpdE?^#9LvRJb6j+D~<nzxBFknD7U=~;# zC>%ilTY&%#U@iawSPN+PKW~7ef7Jyy5_kjIgDVR(3S1Ceuwj4;-Yowz{f`Ckz%V$F z8Za$jIN%Z!*eL)_0nQfO@P7m@(1m}K2W}|{+?fAqIUofW5(xyD2FLSXxL{2{5uCXk zxc?LYp9ENd3xNtuH!i>dy9N}%V+*bkSXt^{IlvPJ-rC@-|M>(cFan7FpB$V6CX60P z0N}v@DFf+(^8{BM*z;f}5EQtg1b`4A!CMNDf-43F162pt>>nF!6hr_c3~cg$XmAi< zj4%)Z&|n}EAV9#;zmbB0kpeHl`7i(nxNkH-R$#CH752Y+{rf&(00ADs(S!FWZ~_O% z0$zc!;O+B2vw{g8EU+bj1uhS;S<(I%$OzB?7Y#`0zwbC8(f<Yui0i*{fOiwnegFZ+ z01l9Vkbsm(fXu=340r~<!T<p<M?mes69i@hV-H3GSp%a62K<i~AQm`47hHDm9D=7E zzyY~}cLEIbf8QK{c`yK+22gfj1Ayxb-ag=ZfqMsz7`##cg$PinFgzd%U<HgAFj+MJ z_zZyN|7yX%ZTGLz|Md!-4HAqJP;IaS;6MdPpff-MfO#4q92ht>a8zIi|27pkBA|re z=H!8R&wDc!eJ(nz<k(6sae!xj(30$vnsk_TIjrJ!d8L=rFNzUhZlMUYZVjwi^t`0k zzS@a3o##Pe?8~Ff;;$-iBR`X2ij-UZeZP=%k~y#C6YsqtUU(Y&yDkWh>fW+Ey`TE- zx`(jTbnpGAF|6>Ti&Z85T;~A`PDQLaPItbk(1>+(sdZwWS!5)f+&#ZX?ywcFsg0g7 z)4vutQr?<eqv8@7rMgo4A361#p1L}yTzm!tF#mesl+RMU_b7hP4L=iDx5;SI8`|sN z;!fk^y~ejYw;mQ^r^PXj4QuV2(|EL0ltT7y<1pVcxY`uq7R{^!p7i|+7OCLQJAvUy zZXT|yq^9}Vo2w7DOt!vjB8TFCB1N+>FHw<U!<S01Z-Wl7J%=$u771@;N=Uj~e^2(* z*5oM5v(m$^9n6YTBC;wrqvnb!ThAy!I1j6#aH1?gJUcDD$1}hbWuG57k!-SyIA$7_ zCce!V_d19F=tF$zS#F5qCbk%ckK_`DMfzb-8hiQPlKQcf2ijFrlvm*T@$Bm9CUyfN z-TBVFzvDLv<LagjLfpK@)Yw;dok#C{<32rvo<*GA9LvtxYU}YX_oZ3>bA|yyM5<ut z7G4S3H1z23+4o5vu|Kh&U5(NnjTls_Bdp5jN3X60JxDD2oiA*j);#o#zKp1wnV+M> z!>Jte%$!0h6hf(q@dgU@eyPc)h$-LvcrmzVLK9w+Bo=amHWflfzt27Q8B!}uJS<k( zN)vja7Y41Gr;G`?($qPE%_C<N9txq#%hELWe&{a=9?cXt3Ukz-dTGZYyEPaGzC7&; z|97FCAXRebdoEr6Yuf@FWF#8<Al{n9Y2scfc)0=0%!RxsbWPgh*CtBHhfrOym#k<R z&u}d(^A!-O^I?jc2?8Qo@zb3=$MSh1_avfgyoQ@5G+hV;Jg?umW%Jo|Ngs>EqJ<ca zT>tUk;yYv)FWpuB-baq`dTbALe%9LDMHyFPI=Cv;h?fIz4)y2BLN7+NjkCRZ7+l?+ zCDa6Yq!kAZ-t{2s&%cY%)yamu$2mjz)@M*$_0vza!$&To`-NyAKU{I!a*GIjog}$? zH-=k?SIaY8U>t(rWq)CIn8jrh$8$#yPx=|3uzP3xmpLca3W#5hr~g18Cm2`q9e2#3 zPF{WTH&;iF9r{tHu~7u4we?gpCTwFXt<{6s<?=BQFJcvzHPR$6R?Wi(*M67HnzZj6 z>lXr~ulk6;J*CkI^l!a;NW)z2Q4Ksc(0fD3Oii#*Gx-ViwwuRt8E`qs^b$(K5xwbd z(c>x}@^4DMj<>nu2^rx1yuC{QByOh_0zLk0`Yi#6Q}G57gcG*<<Vq=y7RFYgZ7DW? zu-7tG>nb;N*19X6r*C=fcjykQ9T{ibg`iZ2b2qrJh<WeHaw(A-Z(10t`_;U9;Y!t# zx>7AyC@KFetUxViSUXjI6^mnJdU2GM6zV70C@Y!q1X@t+u!3bfMcHWhBWuB($WKk~ z#Qv!9FSfim0<L_aSqW%`{0MI9-@e$bHN2zH?KOr&g3s1y7p7IaJbSFeY1A*&rFIT} z7!gEU3q-j8p*-T3golO(k>JIt`!_e|0TDE!77%SiI!jp+hdkxt<;!8^lx9~?{4-U> z_)d656N1;oecTjpg2Pv@G0t2hmT)dDltjv{WRoLVbS`mqut$tt2(#9QJj9u2f<M!f zcaV=Zrn&47XP&~|y~N|<Q-T{=K5Ym(UucBaf**-UqsRx8)t9O<Ck*YQMIFQ@WN%H^ ztnsq4h>lRTXxS9jc_-x}yLhoMwx|zmNTJ_q9}wBT{pR%jg7?V|X7D)HiDS1%@Y+)t zWZ^E~iSxT(ccEULMZ|PF6a-Ik#!VNK<TWhf`nXZKV0Y|LseSz24p9-m66MKGC0!%` zO45D5p6AgCvg=U2#og|6BeFED09DT?l00?^cs`eJGJov|nvxm{yCtKm=L~Pt%%k86 zw@qu!craZ95s4lyTfg%|x|VoDB=vpkYs4(1R$2EUjXks-I5HZY<X8jo^`b~#9gnx= z4o$K5r9|^^4nQziukc)p?2m~$M*M&OZ2<|527M_ElL#Ff3}){GKU^!3%kDw<%I*oT z%<lO$P9lN=50<zUNeP20lpXoO3-GJ7J5U$|CjMVP`|M_64?GEN;^yvRLC(*?NbYK3 z=ICH<;^HmlXy@oc&d<q6Zevc)&*cw(#`%8(|6iV3W+VqcW9{f*;ozq3?F1Mjmy}l$ zQ6~qq{#&YviO7qnk^^S`uRi{tTGEsd;{e+M2loG0S3^-vMoLja+(=DYN%j9nIR8Bn G{eJ*#^8&sA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..375794aa3410b3fe60c5c60c3eaf3e62d9471ed3 GIT binary patch literal 27216 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̕H!ThX|+`vI=8L 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e63f5d991f687c5ab99d3744615194f457c7314 GIT binary patch literal 15184 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..46dc632a2e16e2c816d7b65e5154a2ec56279e5b GIT binary patch literal 33404 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5a1c21cbbe581acc4b47e4e4056538cbdf7414d8 GIT binary patch literal 33404 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6bef4d11e0def3d93789c2866fe02d30b12c12f8 GIT binary patch literal 33404 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 Z<!R4&)^ncsf)~ByWv_VEYhL$;{{lM#g1-O& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..16a2bbdc5376fa7fe06b00ddac83c2025df2b1bb GIT binary patch literal 33404 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%0DtEi}`(xpp#czAevdWM9Abm`J%=FFL^R;@}( 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f8589fa7b6e751455129d6cc275dfa13d78b90a6 GIT binary patch literal 33404 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 A!vFvP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2b10545b864d4f16645f2c8855aa3a4c7103cfa1 GIT binary patch literal 33336 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 IiO<FV53v>0i2wiq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..804719378b62080a62a46b30be0ae497f60bb949 GIT binary patch literal 9704 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 UpOD{=PjL{Rk^KyxQzrxe25rW#-T(jq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e273cb03a764ef7af934058e48d3feb44a809cd8 GIT binary patch literal 9704 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 Bm16(^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8cb958955234e1ecaac3837ecbf0162b8fd47bf8 GIT binary patch literal 9680 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 a{z>^DzQ7@TjxQ;Hj<4`F4pTggZ}1<X-s&O% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..81d62606a7fb54708e2662d04ade01c767a44cad GIT binary patch literal 9688 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ae74c7b0534d9e965355d8307a483d7127d5b63 GIT binary patch literal 9688 zcmeHNX>=4-7QSFaVO$U#2apWVY=T8o`x2FORoEvam_%d|v6D1OW6~YFI}iv#1PM#P zQ4B^=c3glA$R_AWk}4cUbOcdA7#9>!7R3=A2A3J<RwbQW#gH7&WPZ#ced^w?Uf=h< z@7;UrRZdRQh0NS$0PtRSfV<G!KLyRJeWA<H(-H=cOB|3iC~dGSj$;{DN?O9WgaJuu z15#XZV>q6ZSXpxmlB{W>BFGBU$96ogxOtING*Q-gMr2h^R%N#&39_oliXx0H>RjmZ zXCed3a174~jL1lg%qWb?Xk!^yVla^9kK||iFrp9V7C23oG>K<Lj^&V(sTq@bMddl3 z*Km<&7$+zaD{3f9ijK(|t8g643aW_uYUp^D7ZgtBI4wG)@S-Tmvdju~Yzi)+D4f75 zwKH)8g35A|z}D$dc~-M$Yn)KaCMp`I3ZlfZqP-(;B)TEiEo-W(YKp3HOwEmmnbc$f zvlSiE1WA%anMbSEL}`Mi;!aeVm4uoh+`p(P8ZQW9ZIrC=sw4`mB=J#tO~!dF1`1O3 zkj9EKhmvJhtL0J^iPHpumo(gLRHV$Ripp`KCgUas`}|qi5v+;q=2=B#H5C`;1XL<A znp;&AEQBI!3T9B&7{x7PhE<JKRYAos6v+-!IgwQa+ypiYj&Q8o;Xu*6%3)p=dq~zq zETbxLvVggk8IE`3jfy4Xkx^0=Bo{gK*mf+Zikzx4*k3%h0@hXII9|d%V2mVS>+zZ@ z;5Ic0+pcp~PTD}by-&CRUcMY)Xlim&q05_*;R}a@p)hW)(3PG)e!MR<!ta~pio=#q zpB(Wej~^fQ;nwjsBbb{P4EO?(w8?qcpc2Q+_F#Shzve{@h&bb}5d#tg7vswH2kb6Z z6gMY|qJo`-nO8+@6p?ppGOr4fhz5HWTTE7P7px!(92N}w&dz$Sw*U!nzJfUuSu8G= zk(U@zcFUZMy@dTQ3D_!(!n*~0`0z24Bn~@39b3fwbT{08X*Vn?#}cxVDDj%earT4H zx)rPm)`Hg*Yyd2YJ%m#5aKN_0de-gc7v^6${esy)-wpq(caxf+C+aD+)nRMXtX+^Y zp%IH<Oicp_a$N(|y9h7fGPtBS?DSNjE6W$~g}jkq$Q9=jGW$gQIlge8us1i)_H|z} zu8F=-*dN4(a`A4~RfN)<R;_N^fHxQWv1SPOX7_EPFOU_<cEu^8$l6QRwKi?_+BT1d z^QwAb<43%qEc+P{@HD7NeQG4+w@+z~ud7WX$g1goEgzm{Kdp(RI9ab>o_G;;3jZ@U zJc{fZ5;nokT&_3b3;De{)p^TH4-NB0yg51kjFe!0R(1f74_6#MY~HXhA(#^k4fJL> z^&G?D8xB9n5Q+vyzr&|7w}vD-#9~doIeFRMVL>~uuH@nR?RN~oVrB;O({p^Om~DJ* zjz<|j#^uZPhr|AfzUX9po8rf5tz2I?+gBqs<j?g-Fs%C48^M~T=SS?@Lf7!*)FEj@ zl9QaGB_*c}(-X0pjBA|p<{#1@k2F-|4`llBfW*?*<-wVe>!=iqoHYY@Q@sY}D&)6M zEqt5Re)?43&>=f3wo-?yrhP-fU?j<=wUZvsz$e4`)<M<m(RJ*d7PXEAFoq<-nFq`D zoU2<@Z5(P=$t9oar@X-m8y|l3L;b#x-*eBQm6Zz@tkws;a4g=&nQd0-F(sWnBT71( z>)L&w_j<d;!O30r>)V^h=&3WFtGe>WC-vQv-}KnHz8K0+*QNZFhiagjX$;js`RQEB zPqk4El>gwr`sy*?#8@+PW2}OTjryXG&zd$qVyx0z23|71cwncwrbSzQYUFJP7k+-7 zUXrxO)DFd3ySJ{?+YR3CU?HwlZ@1=tbJVDF=HgQ)JwG0P%)#}=P=2~D<)=JU1Jz7p zs0PYU=Td&EjcTC$on~bi{hB|ow`WJ{@99OxIeCYJR~(ycypVTLUz|K&|E%Xd#*eq` zcJT16V~z6RALvO7Tk5SslZ?z+ryRWR`iQY`TyrD4*-*Xx$k9g5ynpI8t}ll2({(97 z<)Ip=W*S2^P<}d>@>6Y81LfaavDfS_%#S}dvqWcxuQi|j?s|`nx3Ab>uJSMOWPiU} zzpM2DlRtZ}gZJ(F$lS5Bh5l7Cr@KeLXf~hP!ND)Bt1x??P0-Kx%hbnpIBp)-SO?b^ zL;2~tl%MiY4OBCYp&BSZolE(tHmZU0AL%jAID6=3t4C$n`l0wqqwGtUgUdXR8&z2? zt)A&=)|4Z~Mu(I(4(@0a8^!luZB1x3+tOB+8O)*>2fs6>)L7HufO%kBz}oix4CC%E zKXY(>F_fRKOZh1e)j&1V7^;Et)47zNYNHw`|FxqPYiqNuo?RJd^vL*j*6nk?aj;kt zYkiwPR6n}!TH~#0w_58q^>%PxQM@%dW0byr<Tic(+|Jf(JtjMN(faOIV)<&leDMjr z@5=tx)4NL@Twe_3r|VLF%0o3!%`}E;p!{?$<)_-H2FhQx|D68a(t}k$ew|;{%IIqR z<IpSzznmCre6({<{P|fap6;hl>AA}Tl{OZWj_Q~1;5_d<s+;|%wKwLhTI=9*bJ`kl z3a^)+T3Yo)#zB2sT1yAl7eo2!x|E;tPz_WwjiDMSKb=eYsWz&C@_)Cv)OvBt6~>O> zOha2;Z0$OIje|eTnrn?H=w|dPf7n<ysmvOr$2vH*xXe1bIo5dh^{}yU;#}*iQ{5b_ z#Lc&+Pl_|{>@wRpKV-3WpGR<TeKC}uu1onT57j_5(-^9O^3%DLpK7BTD1XOK=9$)p zjppe+bIs*l+M7o=t#I&N%WpQzk_yed*0-32T}sW~s~0$U#GX=f`oHIyZ+X|5ZGT`) z<Fbhk-a94UZ1Z^^QxT_`TdrAZ?m0fp!S%&Ze!4E@r#w^x)l6fk2Fg$8Qhut9YM}g^ zzV2`Rd+>AS+B3_l*u$LFbLvtDxA<1DCVaEN)cvtlv)c@^JZ71LcP$%gwR07i$2WE~ z2No;Vy>l`heB;xa_4k4V)9Q7iYDq<+wWQ6R4z4eT^3!!GKjonssAd{NHBf#!m-16> zR0HLIWRKBr!~WYUU)|g-zLB^B<Kr>D65|`h%=t<2y$h!Gv;VT#NL-2W6*ch<;`Q6Q zR&<)%DSqDf3Gt1@{V=`~<0~<~LEOlk&>S|H6PmY1=7i?3!JHsxZA>F`LUY()PH5i# zXZbn#M%UV0T^v{M{p1^~YV&Xr{C|_5OV8IYK6kY}b16TU@>Bhe`^7xaGnwLO|Mb0T zu6>?3=WqkqIe#$5KCc?Ym(HJyzw0mM=Td&6&s}4GCyYLKc6?L!kG)3I{!EVtXvzyb zsJ{s>4{|r<H68hz@>-7kO?g!ze^XvZkiRJ}&;gqAYK{C&c{PLPxPj(y8MJ`QAqK8M z9|KoHOK63*75oOSfve#vxEB3Y&<3u9*3cGxYq%bM3pb#>0e%PVpgnXz+W~Hb-$N{P zgih!?LTBg#F0?M_3O%4Zbc3GgyFqX01vkOX=x+iB`hXj)8~OqZ9Pns)5I_bAL{QL+ zpn?W*Xyf1(=m)pKtq_m?RxmL29!Nm%f&MT62BIAZgJ3WWfuU%J!XF?BhCw1Eqfdn4 za66=+O@UMx0e3(e+=)I7M#Cr=31iTY#Qz5x3wNWv8^*ys;DvOw>5u{A!3UX;g+3Fq z!4DJAPJnwM0J)F@LG(Egg8Lv3!szoL0{Jiz?L?Ra1uz+=pq&DRFb#@eD%_8LDolq5 zU<TS5FcXSl7CZ>E(LV_DU@pvo67+LmJ}iKT&^`ozgooh~ScrBZJPMD&A}ED2^ri4P zJOPW*E`}#zDJ+4fU>W+SU?r@8<**9<a##&d!!u}~foI`4SOaU(u7!259{vR7umOEJ zJP#XT6WUF%8D4;`um!fE-vTeei?AL3jD9=33_G9#Z3R?96_{Y5wO}W_3V(rD;5GEG zz%F<lcB9=5Z@^pdS9lZlpnntg!P~GG-a)??-i7^e0PO)d2=BomIE?l%{0%;Y58!?H s2>ttT1U`mO(0&3(;Zryc$KW&c$KVv4gcEQY{R#LSzJN1m&%l@PA2Yc|XaE2J literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5e29867c967e3184bafc5df5dab64f42e54d0a65 GIT binary patch literal 9688 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 NFUWp@FR7D(e*=u8s-*w` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ebb24758d31f22e191700241a078cc47d500dd9e GIT binary patch literal 9688 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 z�#MOys#_)n6?B3^Kon_D>_&?jNj)_Rodz#p2KZ`{(z6>m$!(=D_x7|1^T_{=u4P z|6B-PEd4Wh+P<hijbPg!tcm(_A$+m;GpV97>Q5us_6KXC{#*z*w?Ec%p?O~wF8r7I zX1u_S`kV1`BX@IN70BP5R~7O%=M_T!=Ddy}e{)`-12pFqgZ#~TT>>p|11;cEXaz0d zGH8wYGPoSBfGaUx30J|@&=%UjHJIDLb#N`jz@IS3!1eHFXos;K+yL$2Mz{&%O>i@G zgbr{Ebi#ZKbcQbA!03Rk&;z<dH@FpZH|PboK~K0Hb5CF(7MvKJ&>L9bfXB##05V7* zf`VBD6*P#$7zcfzAH+jnaAEEX23qfi1k7&e4~Z}U;{dn=l3*a*iSbTIhEx~?DUgOa z1qQ<qNXM8C888fnLMGgWITP-IyJ0wtz&srPKhP)`jd3)LfqTINSs1e*8^(ecav&FT z4&;Fk#$g->_dy{PKtA{}=R*MQhaxD(Tm(TVfl`d6FdinrM3{te5|qIdD2K`L0OrY1 z0T04M7$1U%;SrbyQ(-#hsW1~Bg&FV|<{2;x9*5Z&XTu!$3p@dp7%O2eEP(ki51zz4 z4;I2x@HED!VG%qF&%k0>f_X7K2TP#}p2u7T%V0UYfbj)b0V`n@tj4$+*1&pL2W#Q4 znAgIK@DfyGtcDG+5nh3p;Z@8p!xq>Ko8UFfo8WbL18OkVKrMtI3?@bs-h{32HoOJz zV15g>!FJezaR=;#J+K>g!Mm7u!TazY?1g=p_reFT9}ZwV03X6ZI0PSI{0KgVPv8g~ uhNGAd!!bAxpJMzJK7%jd1bhx(V*VVyhOgixe1rKUd<);fDU7G!H2epVb&x6m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..acdbdaf527d0638cf514768c5f89107257e76b35 GIT binary patch literal 15136 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5ef968378ef9fad63d16e15e1bd9fb60c6722122 GIT binary patch literal 9672 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7dd42a0fdf4bef6e9779f53b49c8550efffc1186 GIT binary patch literal 9672 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6eac4f3e1f1fcfd58880ad428efeb0df90514357 GIT binary patch literal 32 QcmZQzKnD%>3=9Yi02c%T{Qv*} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6eac4f3e1f1fcfd58880ad428efeb0df90514357 GIT binary patch literal 32 QcmZQzKnD%>3=9Yi02c%T{Qv*} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6eac4f3e1f1fcfd58880ad428efeb0df90514357 GIT binary patch literal 32 QcmZQzKnD%>3=9Yi02c%T{Qv*} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..973f49ca254a60674165bc5fa668e5e62b242381 GIT binary patch literal 18714 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 BB}o7P literal 0 HcmV?d00001 diff --git a/public/static/SampleData/circular_particle.png b/public/static/SampleData/circular_particle.png new file mode 100644 index 0000000000000000000000000000000000000000..ca1cc10d6b2d40cfd2125b8d37050cbd55f3a645 GIT binary patch literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+SzC{oH>NS%G}c0*}aI z1_r)EAj~ML;ne^Xlq_+LC<)F_D=AMbN@XZW%*-p%%S$a$Fwry6Gqk*NZBq&Z1GA5( zi(^QH``hcb{k@J7$3EWOnr+U)DYSm>bS}pq3?(97QmU+WO)Y%_y7w74@0xK%Nv&mK z6`gvav%_ND{gbw{C)d82_gG|i*W4%beV*-mmpyOh&h&Hdjzs-_AHDv1wolti1KG4g zIWx4s^mbmn@a^-lyt50=Tx<QB=zK$HTdQnh_`-ajp0==a74nxRHC>I6yu3EC{DwGR z>*I$h5ShLhxyAJ^!r_ai=5SdbZY)rm!}t79Yr)0~=4x)v+U|P&7ws3d<Q7HmQkUUd ze&}a`X$=4NLwlX>&ye6<E3?x^%r5Dso4}meYd?SG>1#877_>w1UAudtoeji6rzW0m z7C&F-t8<g3`B7orwhLMkv7F_H4u7!O!<T>PHr$wsk56JZ|6Qv3f;)G*Qc>TwOIZ?j zocf1%f6%Pqyw6peoMf`4=*g!CM<;(z@x7kQX{8>&YLe*W&s&y;9sS|_Luz09{D)AV z0{ye6;?ulUFL&uW@^>yOoEx%bQPH|>*IxO2P@eJSyHXD@n82>`zjxU*cDw3|02_^W zTe6pK5}p2e>(MYvi^}X~c}I}X`QvOV&tECIJ8gmb)z!}u3%AGWi>^B{XY*R1cy{ib zwlJtwYe81M-?jYe>t~IH$77ABuDfyT)$}ZclVgBRZc>ff${+DnIiThC;RHcDKCV~A z5?eVkpPrD_ak_U}EOB?+@8;FTx;7m8hkhHpGF>uNc{;oPJm>X^)g628%kf8-8}IO2 zf9QAu)9Ni()mrx%8cIc37FB+DWcfu=s-}ydExyk34zE9R^6Je;&qZ!@ghfw9?-!B7 z{Kt+xV1MFaA-yM!XYHwLR`IUOF2N&zPX*s!!>rv4B+T3QK8#36G2M1$r<R`RyIBY` zc>h~o<7kR1P!;86UcF)Jx!}N+Z*CuyZHK!;>K}WjTgaCF4_~)ku+&m}wr*;tjR7<P zy*u<oVx?)J>Mg71%R53gy?)|X9kC}5Cb{4DUX(Z2Ip2>f60V<^Ru!-(YhKt3Y2n2S wr(U)%?zub5ac1P%Q-6{-T?<?0>+^^4-|N8YQYJYeVCG}+boFyt=akR{006MTC;$Ke literal 0 HcmV?d00001 diff --git a/public/static/SampleData/fire.png b/public/static/SampleData/fire.png new file mode 100644 index 0000000000000000000000000000000000000000..077e7b858c979c832b4921939661e65f091f4c0e GIT binary patch literal 104016 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 Ef<YXH$p8QV literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3d570f9b071353ef0d7b549ad7067a196958fc03 GIT binary patch literal 7043 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 literal 0 HcmV?d00001 diff --git a/public/static/SampleData/kml/facilities/LaserStation.png b/public/static/SampleData/kml/facilities/LaserStation.png new file mode 100644 index 0000000000000000000000000000000000000000..6a6bff3f6a0626309111422af882c575e5e96973 GIT binary patch literal 6684 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 literal 0 HcmV?d00001 diff --git a/public/static/SampleData/kml/facilities/LaunchPad.png b/public/static/SampleData/kml/facilities/LaunchPad.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d3ea4db82acfce31779aaddf1a729db40ef87d GIT binary patch literal 6735 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 literal 0 HcmV?d00001 diff --git a/public/static/SampleData/kml/facilities/LaunchSite.png b/public/static/SampleData/kml/facilities/LaunchSite.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1b761c3fd2847e9955cb51bb46039f2be76c1c GIT binary patch literal 5655 zcmV+y7U=1TP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00009a7bBm000XU z000XU0RWnu7ytkYO=&|zP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)cUY767Czti zWe-+D*zmEJY=HnGBdiF>5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1<Rh~l6qxMx9% zh+2zPTsZC@+^4mDdhhM+``7!t=bY#K&Uw!dfDsZVk>;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008g<d3b(wus{3(uWtYX0C3eVBofEr|AV?vCRYF;kpSQ#66Xs6 zkWv81E>y@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} z<RYAxn<EoQ=L1a63;+Nc`O(4tI6si*=H%h#X6J10^u?n7Yw&L(J|Xen{=AF=1OO0D z&+pn_<>l4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-<BLB3GvROGi+=X}Kpy_vdhh^onn0PYz@vlxaba$Du2PQY%LGC(ZujRS{>O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#<bWIsp%|7y8C1YJ*aWq(0~(+a zn&A+%!7(@u=im}tf$MM=24EPT!Wg`U2?RmN2oqr;I*1Wsj@Tm32p5@-1R`NbG?IX% zAnAw{Q6k02a-;&OLTZs+NF(wsauhj@TtNDe+sGg?iu{VaM=_LvvQY!n0(C&Ss2>`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)I<b&gMyw|8As!)~C0-{E6JL`^Bo4`v<W349C6F>n3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&G<BLK&6^fO%cL!%)zF%0XKD9nFX?o; z3EhJpMVHW*(rf4k>F4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^#<Ae=IoX^_&LPeX&U-BbEk7-> z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ib<gTP(_`y- z=?V49^$zLX(MR=d^rQ6`>hIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyE<W%V@fh z#Au_@NuwvYChmu4<285}K4z?M9Ad0A-euftJYiyKGTWrYq{ZaEDb18?nr6Duw9|CV z%*ZU<tk|r{?2b9roNJz8zS+Fn{EdaBMV!S-i#ChLmfDtl%LSHAmiMffRz6mFR`pib ztVz~f>n!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>><a9f>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86<b<B2baJ=iJ;WWdk#HqvSS7#e%p>v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<<q3^N{B+UUpttUi-ZsPqUmRp4KpJ$lJtQ;JwRxU^+fMW%|zP13tz+0-t)H zhrXu1BHul}BYxI?nSKZSp8Grc%l(h|zu|fE7V%C6U;)7a<pI5c8iBI|YXctynFOT= zH3f|Yy9O@|J{3X?2@P2va+7bs7xEkVV>8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^H<bj`5GFjJZ48 zYPNEAXRK;$Qfy=Fo4A0us<?r8hxkSDmlAXnBnj<_<iyy-J&EIU0_SX+Go0j_RF-sO zuI1dKxfkZ?&dZ*6JXtkakbF3Wm=c$=KjniULQpRlPvxg>O&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9<ahEGOy#xn^|QY(3p8Irjp^G#Mn*50ho*>Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8<U61_v9n_bMxC3Y=unGqqI`4P!1MMFQ_YcTNqn- zxJbQ7TGTV&X8!8=BMX8Se7%scP`I$O*tmFE@!%rAMY|Rwi&GbOE-_tFx@351@X~$D zXv?ye{ZQgqQdRP5dED}jQiIZ^r9&%%S2UHWl*!9(uJl^DV-;bQWL58Km(^QVe<~N1 zU#xJfsIK_1M!4qUS59BmeD!&4+S=Yqx61A7Nb98QZmjoNzpqNYYC+Y|hVTuo8}W_h z8((co-gKdQYW0rIw9U%R12tha?OV*YtlRRTHly}>oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t<Nq8e$u|zvh13xJP$S#h#CQrF#eVMeplsbZ>0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j<Jb;mW2SDv7qC_VA{<bspqr(~y| zolZYJ)S29Q_e}hmYh6)Yy=Ozuo<A3K?o78|_sR3#=Z{_Rym0g)_hQ>6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>R<o>I+y?e7jKeZ#YO-C3p7bYK~#9!+?#uBme+m9Kj%ER_vSkWf}t#skkE#(F0cfu zMNaBu6wTA(q_G+&4JcJARZEvjOO~iwG?WT57bSzzvC)ZjYNfUtT6ZDZC~Qe9NNAdD zl*Zfw2{z!wH|+3UpW8Y6<8_EJw((=X?*jfwKfSMCKj%EZ-}n5k=RA+lT5}l<9A``t z0{lE=`@qYBVMAB|X@OP{dd1&_1RX-)fngcI0+fF<fx8k|gbL~qMjcwk5z<G8{RpEU zAv&?*|BF_?L0X+SDIYfjhEu#x;DMcl&;?->?;}kx9WY~%s0Z}eve(@-=FcXjCLsYV zLhpA7a({>y{sB6?5v}6I3p60cl@l)uLbyodG(lkxLjDxPJ_xdaD7mzy0N^7{1b~B= zd5|FgCxqT@BT)J1{~v!&tc-&SZlW-B6GD6)FWZ6Xd>3K-03kA082|!=Fz~Yv;AZ{; z<=>1Dmue^_#O=vXS@0lGMVA9m-e+*VzeXBQBiMv6zmE{!Cl7!Spu(jT`o2Tpe!jTS z^3rPz$>3myy?c(J^~XAmN1;-De&teT*H=NPMt}_H@VCeh{w;>}7*6FMW5j;-$pIh) zc$qc|gWFK5dR)ycllQv&X?^y4lb-s&wts`W8)iY?9n0E41;0yv@aH&{&)`&UWg5Xj zPSNBgg`swG13yGhp!_I`#p0w=DGbA)rltldB~?{bn5IcGnIxG^PF@CxQ}}QT`ToBL z;!_178UR9qRyNtbo%q?OF7x#((6i4z%l7Ttx$(vuIe73OvuDp{@7}$vSh0c)8#b_c z^X4g7VQwAi?p^4x@-p|EG5}g#&H#R1FmQY)`N2mKM&z3%5(z3QDlS@p5Mq=Cq^6d3 z-Sk>MJo8WZxuPX#eK|)0K<QBogdy}FZztE^hBUaUNE%QWx|hBqJ5a&!B2Er~v4fx* z6?~)#7tTFKw(n1o7FQ)n6AFV5GjRMURSP$w!f9lIz`fMO^5>WHVdrL~oR*9~``I4e zdh1PkdwY4|g%?Pt(`?zYg|4nHUViyyENhzJ3Ij4d8?Y<iATetnI-DW^hCL$MDna`F zze4NksRWskw0G~`i{H0y-AWJy?AWn`FbwJH>MC7vccJS=ti)=hl^MV0o(O=@|Jb)O zJ?rq&jZ+DF<I%EZ%UH8!4JS^VV9Amt95`@**Is+AbiGJWSVp$z36irnUC9c@Uedx~ zk#qeivOP~tcjZUZf&~lMzkffs+;R(t4<Ba!{P`tr$PCE#ex2OFJlqVp>4*T>72s4u zP<WKkT}p}Du#+cG($v(%fddCvv0?=$Po6A&P}FKJq5CyrRp3-abOF;Tg5##wQ-&V& z#EBEMx3}ZEF0a4-I-cj19smTm7rsPdRy)GD5X}OD0%ZH{#LwMUYV-eyT-Uw$skJVH z{sKaG5kX-sb~2(17&iFXFBU7HYncS(&$klfA_Cy0ZM^i|Q|gtjD*Xlc`8!ZyZA2IF zt|#;tO}5Lssx3eVb8$0EqX7_lx1yEJOdzcxEUbzKfS+B?Od>xY(E_ykR5{Y$C+7y? z{D>POy8cQv^tGfvO3jXF0lI!>S%9jFxFHf)Ge&;^9U2h}AuEH{GevulrXMv3_A{eQ zfPsh>;PlRzAgDDMc5lQiAWqGwIzXDIBkl(z-<nY_U^<7Q0U+ctq)eAfo>VHunl)>v ztE=PQd+(*TwziB}P%5nC8&TWgGf3-5xiZ13Rja6}sbT&4^~|3?pT@?<^7+5C-ovm@ zMgt&G3yIp@7f*z)<rHYe_aTgY#6n1cUHMa_ER;j6{rmUR+1bg?ojW;t^eFrG?JHju z=v4k>!uU8&I}B#51H0nCOKAnGR;_03+O;^2!@`9N$>;OTn>UYGEJkBvBTY?BC0u+3 zR{RYTb+2OD5djDaMYfXLOSv8`EiF9$_~SG*G_YmM7OJbO*|>2dOO`C5wY8NmfBDhU z8bG}6@6c$JiU@$8AASnV+Kn0e&ugwME*3xkgH!PXRLDeDJWdd-8|HebXlUo!LjWqS z`!<GMK<Eieny~>eV?{PBNX>nPWc~Lp9y?$Cogc)i{*}rFKgLdhQ(5HkYNT;`fsus- z)ZFk4Zu$;_!mZOeCwS?l7m3AUba!{t)YL?Oe?KiPEp&Ev($&?4nC9to@hL3xEY*vj zych_tR3wgTLL(8i;)B%Q@HP56_JB@KwM_2r?!Nf_@ZrM%baZq8kjZ39<NUQZJVC7T zG%92=2fAYeFnT*&hme|c06+f~22cGc(ssEYuwYIN+n)XsT5H4=#s;Bc$-+6{M|3%@ zpmM>JR4@FOVg)$42jIk*$5MSq#x5#^fPv#rknY|Z>9|}<NH~+fKJN}cC>h1?tDk4~ zvgeS-*fG2Q(@|Vt9JkPbUGW{_bv}i`ZA=ygr67}!T*OV<@13gWu#(STlrc)DJf#%l zRQ?UIx<3Lj_{nXYXh66mYS$C1dVZ>M$SK`dE3jg_N!G8%a9;a=KSb3Er1dt*S$E=8 zet$aUx}25}hJB1={awUrp8+vcb|8wrox`bYCtiC8M(mC0)@aj6yy7D>^oUjeC5gJ_ zSQR@#xFv6+i%JIAiCrY>ZX;InX9$rkh5N~p_@Y)IWEZK~kCB}98Jx;*BaL@KgKdCg zfgzbx`jirE3mmgJw=m9NC%;Rg?z1H7zldQSD<!~Y$yZ96r-;=&jY>U-4)1vV&0oJ* zVX4pF@Ts}PQgN_MkmAx*C5Hd@1H4Ru)9-cDbHP9Lxs|s(DGmD-3@2MG#fP8zEa7&g zSr$JP8l)%;`Ked;ylXzW@%as}&a1B!iyG>=dEs2<9ma4-!?7;3TwmvenX96$X5 z@15)C-E)0B@r|dRUh>-&yXRQma7kO9Y-5%wS`mbB=$y~zR<HiW@2~m7j@`Te{i~ht zpXZe~k6&^0?YH0lZ;f~U-ar4Uv%uYp1&J6CmPgX^JOg9EyB`{)J&6>WhaYbHR!vP! z?_`F?VzJ!1b?g2-9<y<k!HM%_TBEW7U_kE$IMx%Ql}|30qrSfWY-?-lrpXL%Zf@Ro z{q@%$&gF7Q6z}u}oEcPLTnhjQD0qUmdo*f9HJi`pX>M-bwsh&zUrsc<p`qcOmX?-H z`FtLw6iOA}RXEfgkS<V`vl>}SzXwgnfKA$$*rtJD6j=yCJRT1odE}7|6V348gAZ=3 zuC5+ZN+E<m2!SC5IZyM}S&c4(!Io}DDLB>>(lzKKbx0Uq%Gqp|l`B{NM`L5-KaMqg z`SRsIzw55M{=s!!q?DJiV;S^iHHXf6!}Y|~27rW<1CovpJW#=9%7<Y{5CnLhM_XIl zbE#Bn=#o@qn!!U4J@ic}r4E9z#~0&)&#%vT#X91u0ATo?sdxGXzv%_bG%$^iO@B0p zVaVdei;v%b|NUD=PIJ#a_v~D@Y}tW)K9AOVTozh!v|n@RY=A<PWckLQLWm;Lm$5F6 zGQbTD-aH3yf8b*p5;^R*6LFzX;J*9r+q`Jeq7Hyrvu1U-wY6=~T4USxgzPvramVJ= zc{q4hlFkih2RRIeAus1ESc^G+G!MwR!Kf`PfyhfdPjF@+;DfBf4F#qgez|N?dn1Zu zGMQ;@ZT;4!O`Cr7zylAoUw7Sg-ILuD6o6&G`xin6^O6O%f;ub2&>q?!8s4KRN}{x; zDitS{h(+8IJAaI>o(uf)$XP%kxD*79Kq-wO^_1e#FsSyfUAw;7+}!+9JRToXDtd#X xG=yq|45OMP*AG~}cn-JT+yK>Mzdrwe0|2<cua0`l>M;NS002ovPDHLkV1kO<*$Dsu literal 0 HcmV?d00001 diff --git a/public/static/SampleData/kml/facilities/OpticalTrackingStation.png b/public/static/SampleData/kml/facilities/OpticalTrackingStation.png new file mode 100644 index 0000000000000000000000000000000000000000..a03b407241960602233d90f0c1db937c0d32e359 GIT binary patch literal 2538 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 A4gdfE literal 0 HcmV?d00001 diff --git a/public/static/SampleData/kml/facilities/RadarStation.png b/public/static/SampleData/kml/facilities/RadarStation.png new file mode 100644 index 0000000000000000000000000000000000000000..af8899c378c11fb3b5db1d47aaef9aa7ddb7d6fc GIT binary patch literal 7452 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 a{|5jP8D>ZM#kraQ0000<MNUMnLSTY0!9ctK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..95dd00ee6d047aeae791a8cb26cbb8abfcd0504b GIT binary patch literal 382584 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 z

    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

    s6&Mx7U??akq^jws-i0iw44a=1L~i3ge2uixq6 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

    OH_FQL!^U{|3(J{Rtbm3igkoR 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 U_joD?R1UbEKu_}nX+L=W4|Nxx*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..999f962cf186e3dd7d49fdd4d6f3afc19de1cb85 GIT binary patch literal 648 zcmcJIYYu`i5QIMg6%iF*cpR_h&A6I7(Mg((A^fq)cAo756Q6koYNXALr6=xDUh=G! zWzSkz&Xl^+*>gW<^4-lmYxO+Nq|J@?BGP%u|DHu$@7 likb~;8n%HAEjzlnJN6to&~pmxxo~FS8aQy{&KUQ|gEyr^JvjgX literal 0 HcmV?d00001 diff --git a/public/static/SampleData/models/BoxInstanced/instances.bin b/public/static/SampleData/models/BoxInstanced/instances.bin new file mode 100644 index 0000000000000000000000000000000000000000..0f4b2a8dc8f62c66aec9ea7884fa7e90505430ac GIT binary patch literal 176 zcmZQzU^u|Qz~BJHAaDSRL2L&!Hi*w4^8TO1Vbst literal 0 HcmV?d00001 diff --git a/public/static/SampleData/models/BoxInstanced/metadata.bin b/public/static/SampleData/models/BoxInstanced/metadata.bin new file mode 100644 index 0000000000000000000000000000000000000000..1dffc7779929e4cfcd4b849927021595eb2c6f55 GIT binary patch literal 104 zcmXTPFHp!yO)E*tFDc2-MP?Rdre^@f3KYN$1_llWVFq~y4F(9X<+^SMWZBP}In!2J Y|E?X#45&h=3Kj-VAj?#v`x;090FYN2;s5{u literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f4b70f77e7303863bcf4c5efe8de614168d9e7d0 GIT binary patch literal 586652 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

    ^82Iox%I7D`F&Q- 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 z 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
  2. (DPqo&{B^OAyljjWA$X!*Id|dl;n@^m% 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%0D?&YME0K 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%0D7#T2IIBe_5RTA$z_mX*0zLY2)vD_V9oA^Y~rx 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

    rS-OCS}!dLy$p7f&k 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

    $g70G1118>8XM)He(cSi7NjZ1&; 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 literal 0 HcmV?d00001 diff --git a/public/static/SampleData/models/CesiumBalloonKTX2/CesiumBalloonKTX2.glb b/public/static/SampleData/models/CesiumBalloonKTX2/CesiumBalloonKTX2.glb new file mode 100644 index 0000000000000000000000000000000000000000..4b7580f05979d4ba1f998f59fb262bcf5635402f GIT binary patch literal 453512 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

    *=qi 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≤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≧1$ zEQ0qxBGg&Sk-qi>^M1g5rg+74^_b;UVZY$u^8J9n$`TXwnYlP|`$5{Bg1WvHEE@00 z>m+KoMw5=#w#!}COC~H9S>1pfcqP6w;NfN1Nm~gYN{IL{)^G{GoYMT=iRvd=_NFHH zr9)T#Qx`XO__}h*TDv<<1MC-VtD-MXEWKqrPq3@cXj%PG5BOf3*LG1?*!y_etE^3c zF2pN@SzHw6)4$cU?|q!khZ7VHMi0aC(`~QVJ}7Yb4O~3~`XU~S^o>`HcZzT5iKF6Y zTw*0pAI=E7OA^l+XYb7s)ulQsLEif&=WyD6O8|%`uEUn=bp%VRo0y7nfLBn*c5zQ) z7cWb8P*&GWs>*IR`ADJY_<{eBr>KiEX`x$e{{(lmp0|AnLH=cDKQkh0X(|Zz(YV)o zcttx6-jSJ93C4ANdzDNufgF&{GeHi8*LEZI3eK<%JjQfDe)W3~AKQir&gg67-wU|H z$`i)BoI9=M|Hf-2cJ_FoE1At-VY6wWqB2kj$SBs-WKr@-z~I$5J&V-_FZU z=eFT|aeIfXKYdFiO$TPkmcP}JS7V@fP_zuvag-zCG9 zhMoqgIv2W_1O~lC&bu^X!I@}xcS?UWbSJ#tt0Gz}#T&42p=^^TERR}|nfG-L9_giu zun`5*r$$$U$0V10Sz9Qhl2BGi_~?rpKi|=l>XjVN*n0*a_WJ&lEt^3}mt20c3m}Q( zTv>NV+%8JX$jUEeY?6_(nx9$@0bXd#DqXL+`e@p4!0@)=T^j6Se4t6tYLEttRJWkA z98Tmt6sh#Ap1N__Ehr%9e9*jkNa^L+!~`{C-yQ@he$mMN+Z7@_t)Y;2Ie8!cU;_)m z^$PN3Mi7raf)`%E&GmfBuDIN69*V05;?#nL`Naqrt)sWQYqh7R@ZQsJjPYDkZvNd< zx^&Nbov}lOa~9@htEKL+ehcG>XjnfRS&f9RQdtk}CAThst*=R4mlR%;`YNg8kPJ5f zm(sY^VzuVR!#0(cg@^&BAuR$bdOx)BMjSAvNG8X3#NS={RYGn|%X=EMY4crLRnKsX zRq#1QbM9Y_F)*j-1g`}_C{4Sls*V_r z_uVQkj?@L&*ecZ!&TrMjxr=bvbDo!-GLONB_#fM!Sify3}ka!6U?ur`i zi^Ub%W?*C@5Uh-oj%VWVWUq-vk!ahs>M3j=tD!x%XZ+kv$?kV)z=_DnqANS|<=TcAmC>GI zhi|@$%oRgAv&-uWvmY*<^gbXjpgtyMMR{jCiiX^m7qeTYy@7?hJUf)P71MWnRuy+Bnsj;7}27+ zDBQ&aV&a=#;0v(6)|7ZiLuv_9)nWJF#XfEV+vXUbG+1H8?O5a?ShSfH@wf95h1H-^ z+Km*>WImTh!UwUfepUPD(^A*D&el@1@g*sN{~qn%+xPEbZ#NkX`{p(|Z~gae|J>F8 z-jCd{p=m|s#lQdT$46dmla>0Cdg|XxUwbF;5f1PaE(Sf4{{G?rj#93tA$3m2Xv6w3 z|NW&_NnUE8?D|hXj`{Ct)L)bOGrw2n$1(r;`&S=psjKA8zx;Cn|8taSU^PbhDgNIH z|KA<{zKZ@oEeX@@h>cQGn;M*KZT|Sb_59x>*Ytl6;98LRzYw<;#{X|geBXEeZ%O?B eYe~$SXEK_+T5}0;QoxUsor`Vh@jq_>zy3cR56Z~^ literal 0 HcmV?d00001 diff --git a/public/static/SampleData/models/CesiumBalloon/CesiumBalloon.glb b/public/static/SampleData/models/CesiumBalloon/CesiumBalloon.glb new file mode 100644 index 0000000000000000000000000000000000000000..b494975d143632c1493e9f77c3d0259f8a423f37 GIT binary patch literal 712168 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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 z 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

)u>S+Ol1VA9+UH*3fcfCXJ+5tp##P_%$iX`_9 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 J*6C*Me*liy%M1Vj literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..732c32f954742a50ed13b6e2411fcd5ee6826c53 GIT binary patch literal 14940 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 F{a+$VI>G<| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..576ec70e73593bd2838014bb941e5a0af455f10f GIT binary patch literal 9531 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 z z!BCaivmcyp%9Pf?l^)qupDeNvdT&-baT`O#{xfISRWLD5IiE2Zr80XAybOaYKjbR^ zciy7Id#a$*uT%RL&bXvX*cobDSGYa9SrU6QP;?{&)4OE1$H%tkRJrxxi@m?7se(!? z4U)BwO;QxT!W&KXd0=~A+AWZ)n@`X_%hw#dNnVxU3CMPB!~c*b*nZi1lkS@C6g`(#85{m7sn{WwP?|y3 zTi1cUu~V!^$R8BtT^(^~5P!)Jub2ANWU+JN`*xvFy*n+7P39PgaevgbIJNsttjUhG zQDXO~s(!>T<54i@1b?nL&oxLg4mztSoH0sZP-s6=3=deo89|x|AN`jSuqDzqQ6kEu z($W$o{MWvkSQ_Ye?>Qj{ zE(!oVrV7GFFO7YZ^>cS^@)K;}KUn;uYR18xiSo#13Be{Fg?vBbpg2uABd&!@-b=LI zka?7n3-|vC%|6O6(kY1xbdR0RyZ+*0r{9?(eKf4_RJWY}#RV}P<>&y!MTPj9UGCU`DCVvQRK2l}eG!T=$w`Lx;{dA4p8vO>r*1~F zXK(+jf8YqlmZSy`203bYt6*N{w5_N&8i7PoiddEcYP!Vq8;lauR?rhe@4akU?3bxa z7UD&CDd|Y!C)9T=m9kQdOI&avbUOFYOF71kpOn`~c5GjpO)*{Wu9y9A%d;jh;DY#% zk2a$F{~o-6H*!6-oD;8o$if300|wQ8Gw_5qt}^q#z!t4PXUsxlpwi4)p=|;E?a48~ zX;F~-T8sN$#Kn2jxrC7Yc-r-A-95&%`(L-^h7U4!M6W*3nq&L93cdZKbMXs*?Wado z3*9yANfxG1Y3Rb#mtmzDwtH40hv$#5^qnjb+()aQ@4lF&TaurvTSw1bz-`1phl)Q8 z1#o}Wge3W4e#3h$S5`iWV;^{)A2?|-%Hr-6a3OM`=>x0TDdnbrxJI^1$vN>kFKkin zxrB=-y3Lr^*Og}pQ+HA04VX)Wf}%q47J0=G-1HXohR+|!&Vsc&tk-hfo@3JHvW*f9 zVHugW`F>nMs=GyyP0ymaO+Cd6?15_x=m_}WY?C7A0W6a+^J4G$+8wglG$vvOY z9UWm6D&K?XQOGx&a1x@3xUEu=dG2G1-C1PHL1FJ(k%HpL4etxdxFpnL2Gp_?;_rrK zN4odYNJrH-@jpa-?p+v{EqtK<)wop-YbmX#8W{CKRlf(#g z=E3DEz0(!-w}ZD|U)ig@7c4QU)LLzY@ho&6C&o#Q_F;%f%|ErLL|9sipi>u`O6AsI z*Q+zr6JPJ#jFZSA{4FK_s<#?P5v*KRuz!&tmDlRlO|IH}A`stzEJFWV|44`SxhzZ~ z-h3tGhlhTmi_hp>E_VyS9h&4x*fHA5fn+!)t|#ek^q5?df7U;nfuWX2iRgvyWTRiL z8|+MbE*zYX)Pc=LGmZgbHPoPfrw9Z&U3KWmqT|D$`FVC%QFQBJbm1ycq7`ZS^JlsP14%i5%H{^HD-4=T3<| zYh;AF)FB(pOvkZf>6`4&GtFU+ZkWj7 z{_G0Gh0N%m!^gm|LvZ+YMWjJgRt})0ikF9VxJ$3SYsLh!q|PRenpjd!rzD~58iPE* z@Cb0xp`uzF>R@uMDv~ju?e35lU-`k1#>G41sRjPhy>Ho(#H_9>Y|0NR&h>wrqcE4- zZ-dW8+;P>P%IgR-N=w(zmZoE$9FhbS_|51rSO=ZOf0YXDY?OM79P3SKxL8^NukV~% z%b$|0Ns*4WaH;O9H!^X)8vpTv}qQ8YLn0?%jTu$G(q+uyBk)$iMWNo3%Kaq`4_!DLu`lC1w z5v1BAzUI7L|Nf?DP54v#sRPNd8BYh?l7(Yb1G?yHqIMX^lQ%b%I3ylCw`mf85!Bl_ zFgTnvajQ%H+r`yXM_euQ&o_}MAH2qJj5az6LsIsQ8wnT6*rgT0i#Kt_7a4E<37rW& z1`?--N|x{WN$(hMw3+UX{ZxmPTJJQ27$_Wk@$_EUgJE}h<1cmg9TZc~_YI~-y>&ST zS@u~UCi>-ZA)5tCWxvAH=z?{(a_QhaO|x%RA&k@JuBG~Hy?sv#{!Eyn(Bc@zp+Zi~ zTrkx#Bywvt%isJYzm^eL@8*{YkOT1Lu3jLoHTvMF`W8xn$JPrY#k(GbWm8`^5xQ;Gi2WqiUJh4 z#seRU>xB$h2le>!g!adZP}8X6F}<^=RF<#6dBf?TjXb|tJr%#4xr1O09M42O6-wXh z7oX_7Uf$sUrlsgWZ_wdxW=xL`ofw{SM&2{5iHryDgu90M6Ba$iuNk{1ONB4aRah{1 z*WRW@A8w3Dq=-@F66uzsqSDDfnVV)5;hlcnGI}meRfjV5$?*;@aSk_^DOZ4AJqj+I zn-Ke!YVGE$n|$?QxOu-tMKiQu!{fG!kK_hFxDOS?DsWp=qF+syG4_Ww44t@iSikH`cOFJvOK+&D zTCbm(QQG)|l9HiIq(Hk88>HdLI|^2=IezA21z=by+2fo<$$oa58t2z243587V)S4! zxA_Y4f`xQ+eXRNw-W{_?j=cz)U4{H!7jG-=V6*Vvxk^^fqt6S94$-^0M#lha;a7FF z>6f{ntU=+6y2ro`>w^O(9aO}g%;Lj>jx`=iqMT}5!DC6466DBc(O{Y>ze*}2~mQjVGB_h#^6#^2%*_b$UGH(O+YAE zZY1Q#vnz52S9I5zODZd{&`6To?MUb7T2ZQs?F`v}vL|$Z=tZn~I+fAZn>~A!UQ`c+ z(RR@UDsk%7;LpUUpkn|LqigJRRiSoHpZGHt-e_52KJLGMsGgwai%2o6H~bm{>Vy7P ze3_)tOzp!nM`qarhl)UoEsd z#%rD2BVV>+4D`UjeWjXmqh0(jM)7{8>Lg23Z=bQ2KFlC#W63tyecjr=+YWMi!xzij znaed`N_p6i_62zzwPp4ecmqpvvJ#GHoS&Qny?30 zIcPc*rS|vUE_tB0bsM{w`ealKMDwVtTHGf9XLj)QV zZV+0&0xNLb&;kI+6XgdI%LmH?`ggB_#oCvM7CX~U>A6Yf{*NH>yiD@7Kny-8)|zoq zR+jZ$#T|Sm(}Z7S_HFd?U7Ylpt88IY+H5)o&Qc`HKSVnd|5?8JNa@=X5m2r7)=ZfI z>?;Ar1=}he^3`UPFcniuxcOg?H8tVeo^@@=C5kWDB|PQy;}74t;YQ+Smlmu~R;woY zs;JwxX=c2Ao2ar!@Iq@3|EgK+FlCV=;G@!P zb~o|R#^^HfAen0C`O6&Q0jfbDOJsvPE1{TP?2W`gx73BDp|lv~E}{##7R_*^1>8ZN zUrP$09Rnp6)fNjsODxmuRHBJl$G{dj;rY9SpIvgK0Zm1ATI2$;aVYIA-k2sgR$#xr zF(6J+y8HtDDhyfv=x>{4Jos;^oH#p@W__z(rwhHGqbaGJ`}C85pa7=h@PQ47Y@%O1 z+|Msyns+1qxnI$F&m@=!#VKGL!f*^o;B=SS?6^x95d0tvp%%fY^$U!_o3(DNR@#uq z*|W2FVjXqKe)S5Xb*gT!vG*9bos2erRlr?z#kn|a1#Inz z#-9I|tlUk;G%CX@`?kJWT(%w6!*n1XV@V742)&vjY7zW%grE;P)k7K60dY@rx?ZzP z7w1YnR1`ITKrZB3J}XbZPYF+fPQfPY)@@;kL$5T}9Ij{nNrHt(jWm0$8MV=+iTT`| z-`8$-;Y=eeWbWG{{R~$3whO1sQO{l75+ldzWJnKSjI8h{ndgVv zlXTKgb`9WdnQMHDadlSd7U4<5x!?k|FS5U|^-B}(6{|8Yt!(LDk_P|-wR1*HkkVSi z($j>^bA6!A#du5>6IH_V>c=m(*lquKYjc?YdaCEfj|;**ezUo?Nw)PccSYn|&E$X; zpY-riY4uV`ZKH){hSP>j5M`R$_vC%yu(xF!SL)v0qW_Z12S19c9pO^z%PsGxKRt|J zB#U~4-z?%XsJ`_Y;+FA>6ke6~?Oglypu$e4l6Pr`^7pyARTO1c9cpjj@DE_ZF9taUP{s1q z4(fVQP0Je`nVP9&TV>ju!0iU9h==~WZW1y$>zRiO#b;kf4(oI&S zSWwK?pk8sK&*gAg8x|w?eVjr+gtgD-JS?c8MGw-U^r_@fAD#1rvgvRXe#Aj|(l?9bA4n;+yI8XU*sMX@ zmX#0Rn?;J!iV%;(5r-jTZsZ@tA+>ljE=VnZnU>WHq|TdA4wZMellXC%Uvt{S&HW@_X59;D;n_yj&2BjqP?PEX(YIIY(wp>Gv{H=>yo+=ZvkJZ1bC#~3% z?RV|Y{?#$JYho_^_BY=#^V7G1(e&A~Q(YhKa;>dviYDq zxoRYAqS>q-(O<0guKtR5;;;{=&{h(R&jNGuT7RBoXW*XM zl2iM`#z3ZbaGHgbuD*-%x~}6UvwZIkk6OXGbeV+Na~+?K0b#)i*iL>dO_b?Q1T0$2 z$FizlJeu}sbVm7U+>CFPp(50eM2@P(Y7GW6>)!7uUs|%Ei7YKzIS5Z+kRr5|BiV$u z@hH@UQcO+>=ZE8L`*h)f?xcVP;MTQ;*WdOk@aqM5pc`}ye84IiN1*3q_L<~KH%T*D#Mn^o&A*Y%FUf;Z z_EL77i?)7EymZ_VYi?qk&3>KF$vbFVB9(5Zn6GX52kgJT#duOAaoJbDZX~Atf;NP~ zeFU2!&y+*gFsX>PT0-~WEsn1rLTSl+8KFKG>S!Z0Let~IOc*72bD7~FGNg|ym+M1a zEa{LQpJz^Ax{kmI)B2{=Ny+-;pW2LF<^PWF+;7*Qg(a7&>qE|m-b>Gli~D| zP{bIdUi@lu-O;-FN9N?e7~gPrhqG6iwPe*PRiCfBEpsUUKGn9-GXBytgOu?H*B@Wz z#+nrJVnh73LQuh*xt+#?K3=wzVsoY@c}e)jbbn}h@W?jf(f8^1JvCwomX3I4jg-5z zw0qjYE{ix}pCG2(0$pXX9YY>eo-dDFKL$vaA*^Zvfzwaxn+`m=eSWX)_?hXPVrD6C zBAp__-`sWj(931&&cz{W{cT0V++%=u&^PqZbL8qdmkZbzVcMwde1pFTOP5R#3}i5> zzmFoXAoa@NLFCKjbt1IVGFf82%|sDnns?F5Hgs!e;wOD0m#by?Xs_*79JD$O=vO?A zKlEHIpJm#d2jz@48|3GR7WmO!5+$D?Rt~*AXGdB%^ol!MSe#;?dgX-AGL<>C5_e)L z>w14#*Bn%nx%(e0MK*%qy(fn^3bilVx}Bi!nz_);*;V1TSOY~q3qN0=XnX;$OFRbN z7`JYUAHuTHH$8QzaCV^Z8ryCA_GO2N*1xt0DaN3iZ1^@-o#}ZM-aF+S!D1a|V;1wX zK1wg^j{GDply{@eswxT)K^W$zUG){qL|j4SGi$F$M&Q%&kF&mK_67nqvX<|_W3eQ` zV<6!%OPKl6!Qp~Gsg6hRiJZtm5%+HzSG-_A!JBTK1*c~%eS^fi@~p#t9!i(egUABv z>WWdm*CJ!&YW%NQt|EdmqJCW#kf#ODhGMgZ{1o^?rujRThBE8TFy>R}yWG#%CGTLU z!$JZtfBGjbvU&I$yQm_CB(xEbjPOCoL%AW+=ce(qG2%Kjji$JqM=K<1{QF-dC({raAW-fRse zbfrlA{!1g*<>{EX9^H(9p^jVc&F*O7!bKSa1}+UXDu|_Yoow%wLW9J9R%B)c4Y~|E z^qeMsPwp**4!xTwNgY!q?a@g~wk+5e+~_1Ul!mg<^3BSD{Pi>2?Q2x%s@Pfv7z_YGPyekR&Dfq}q?(XJ7dH_5xAh)dKs`8_2`O8gv z7SuB8-T}Ea9+jAgW2b}!&^L4S_p<_+`_)!qnR7`c2*;zxh5RSr>WQeZphHDJ73R^x zu6s-6;QlF)q!d+I6j<3<3F>XQui_CL6&KA6uQ$rc(%QfucN$V6K$Jn6=r+nE*E(j^DQZ0WfZ`#+?34bzT+>&a6w z_b#H?(F7~)mhpd3^Uv_qm2XOpZnu7g4 zhG54gi4>mu9nYq9)9-6snUEg0#Fw+VkBzk=9{wAbY6S<@0=W|4v` z2-P48syX8+EtYmqpK)*Le7owI**%#^e1rH}{JxvYJtE#)Z3;=yhG0;m3c?v{HPAE# z9g#(w%PT7_-Lyw{V6rd1CY@vrntrVD`yf*4`aL|)v^H?0@!8aXpYWMl>x{YzUDD|Q zFjqgl$?>;n{tas;S9X0we&jV_FxA|!%^w-Zb-Wp9@jhzLf_|`5P&FdL)j;qI0v!F< zaYDVdC8ja|MyS^!Zg0*JhLY!*nqq*ofV?%L&ywZD@#wV!8vAK)E`N5a&-aIr?cO;bRkepv2%-u>e6;D2)}o_5?)Q7|SwVZIRVR%k9nQ*Sxe3 zA5cC&Gm8y;A{NuR#CLB}DIsSS)WmpvRQ0Dr`QfRo&~wlw2-CyM2zGkyuWYRqx$b9+ zgrNFwRliIl^bmT`t=GDEvT6$?2CEF+d>-A<_V}!>k)G!l$CA7HO1%9C@ z*gWyi~8$ueUtcMFsix&Gjl&NxeeuvOI6yeuYGs z&S1I7*(|@oUa!gkVgcd?pPK7i7U3NeyN&7yNi4~doH$`2y_b3O!!_X>#tr!ED15Z< zH|6{F``PF^+MWZ;_w06dc!5lk8s-S&D3Fg#;k56uoJL(URDnJ^;K(>5L-&=2PWIAl zI9^?xQOow9N(o32`5pc)P379t0?=448@r0?)=b(nh}ItpT)kH#I^j(46VaxV)Ln-a zSg+2u7mI616#PFe9wB%U5!1VX9PgbF*M%@mvP3&AwQ{z40Ix@zvmYG^76&%^yVCuE4(02Blue+M0h8;n@q<+Rw1&K3xClR0Qn# z4@~gbfFDgEZijFwpONM-N633Ke6f~(QcZiN{o(ZojlF{JrTK+Z4dZ&wz%GU{Pcn7# zm4xidFB&+Ud<=cPDf>;Mi{uJ!pv`3- zCHj7DAb!S-y{$+RH4#K{%fG|*v2N$xewVZ8Nvn2ha-Plz^18cZ*yA~Id9hWc=#_w< ze?R%HcPwOG(M7!o42D|fwz+o4H`qJ9khvG9@v}1NBtNzEuJx4#Qh~S)EUjXi1|pi1 z`7+Olf)LM{>3D-zQQd?dk$wCl%q870wv)p$L=|A#f4Evw@M+G$hV9-u_7L?$+04#> z6eA)E$11u?u=C6}>!V8)mwP$t=;azsu>D+8C-Jim1WPJWIq!`Bgl#JGa_znq@Upln z$!NlyRt`E)6mrb^Wj5#`q)Vx1YjRcbWyKx6+L9sgOr$ch=vxc+6|}5~F!SOImEUA) z)<@y(BG9f|D-?_#p$KrnzqGz=PU*3c+Ag%19_JB>G$|A zm9Isu_?h)RhB^;uwXzGnHu#o`7|Kr(_n^u-a;G0V$-YgEZSU-V8sEXE<1o_u z$X0LAd-Mbi_zM#7Y)0;=gjoO^=1q88*uev}SOOMqLG}aoAF-Sr&I8^lipPIFTej+%wph?@lac$uv%KN0pt~ZrBwwxi3ugF<^7OTBTYRRRl zr}bPDq+j$rJzry85I!b~(7s{PYCE2uehhppj?AJVZoh$_x-14%LQeO}X?*BzjnIy$ zLlbp&HgoNQ6#a7PdPqd6?JFRLEUQ-sr8z#G+{g5&FANBNWekNyu9Ah4ML literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..300aa5803058740c23a2f7feacdffc885fbc0d59 GIT binary patch literal 11678 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