Skip to content

Instantly share code, notes, and snippets.

@knaaptime
Created July 25, 2024 16:15
Show Gist options
  • Save knaaptime/8752b3eb8d162bb36ce7de266fb5132c to your computer and use it in GitHub Desktop.
Save knaaptime/8752b3eb8d162bb36ce7de266fb5132c to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Lonboard export</title>
</head>
<style>
html { height: 100%; }
body { height: 100%; }
.widget-subarea { height: 100%; }
.jupyter-widgets-disconnected { height: 100%; }
</style>
<body>
<!-- Load require.js. Delete this if your page already loads require.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@jupyter-widgets/html-manager@^1.0.1/dist/embed-amd.js" crossorigin="anonymous"></script>
<script type="application/vnd.jupyter.widget-state+json">
{
"version_major": 2,
"version_minor": 0,
"state": {
"af8527bd0f93415aabe49c86d06b5ea8": {
"model_name": "WidgetModel",
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"state": {
"_extension_type": "brushing",
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "WidgetModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null
}
},
"db44bd4904fa4f518fbc1c0e11fd8312": {
"model_name": "WidgetModel",
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"state": {
"_layer_type": "arc",
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "WidgetModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"auto_highlight": false,
"extensions": [
"IPY_MODEL_af8527bd0f93415aabe49c86d06b5ea8"
],
"get_height": null,
"get_source_color": null,
"get_source_position": [
null
],
"get_target_color": null,
"get_target_position": [
null
],
"get_tilt": null,
"get_width": 4.0,
"great_circle": null,
"num_segments": null,
"opacity": 0.4,
"pickable": false,
"selected_index": null,
"table": [
null
],
"visible": true,
"width_max_pixels": null,
"width_min_pixels": null,
"width_scale": null,
"width_units": null,
"brushing_enabled": true,
"brushing_target": null,
"brushing_radius": 30.0,
"get_brushing_target": null
},
"buffers": [
{
"encoding": "base64",
"path": [
"get_source_position",
0
],
"data": "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KaSUppRip6ByCiqSiiqpqLIKK6uw0oorrbjyCiyvwBKLLLHIMgsts9BSiy212LfQcguCSy645LrsosvCSy+89OLLL778AkwwwAQDwgwjzMQUQ0wxY8wxxhx/yCSDTDLKLKPMMsosw8wuzOzC0owzzTjT8ww0z0DzDDTRSBON01AzDTVTjTXVWHMNNtdgk4022WizDTfbcLMNN914043fgPMNOOGIE47jkDMOOeWYU45zDjrnoJOOOumosw4767DtuPMOPO/AE4888cgTjzzz0DMPPfPQU4899dj34HMPPvnok48++eizDz/78P34048//wD0D0D/ABSQQAEJNBBBAxEFGVSQByF0EEIJKZSQCzG0EEMNOdSQQw059BBED0EUkUQRSTQRRRNRVFEDFTVQYNFFFl1khNFFGJSRCRmZkKDRRhptpMRRRxx1Hn3k0SCFBFJIIo0k0iSVRFJJJp1k0iilhFJKKq2k0iy1xFJLLr3k0jDFBFNMMs0k00RTTTTVZNNNNt045YRTTn845aTTTjrtPPXEU08+/eTTQAUFVFBCDSXURBVFVFFGHWXUSCWFVFKl1FJKLcVUU0495dQFVVRQRSVVUVIVNRVVU1FVlVVVWXUVVldhlZVWWWm1FVdbcdWVV115X4H1FVhhiRWWWGORNRZZZZlVlnUWWmehdRZaaZmVlllqraXWWmy1xVZbbr3l1gVXXHDFJddccs101UVXXWXXXXbdeOWFV1545aXXXnrtxVdffPV+/eXXBVhggAUGJthggg2EFUZYYYYdZtiIJYZYYqbYYootxlhjjDXGWGOOPebYkEUm2WSSTUZZZZRVZtllll2GWWaYZZptptnGWWecdZ595tlnnn0GWmighSbaaKKNRlpppJVGWmmmnWbaqKWGWmqopabaaqqtptpqf6qtxlprrLXGWmuuvebaa669BltssMUm22yyzbTVZttttt2GW2645YZbbrrtptu89cZbb7z15ttvvv3ABQdccMAFJ9xwwg1HXHHEFUdcccYdZ9xxxh2HXHLIJafccsotp9xyzDXHXHPn3HPOPdBFB1100kUn01E3HXVXHXXVUWfdddZd2GWHXXbabafdx1133HXHXXfefefd4IUHXnjijSfe5JVHXnnmnWfeh1566KXqrafeeuqtx1577LXuvefe8MUHX3wn33zyzUdffPTFV5999dl3H3734Zeffvnp+/G3H3/Xn3/9+f8B+B+AAQoYoDgggQMSWKCBBRoHInggggkqmKC4IIMLMrgggw062KAPQvgghBihhBFKOCGFfxNSOCGFFVpYoXghhhdiGWqYoRtyuCGHG3LYoYYdah5+6OGHIIYIYogghijiiCKOSGKJJJZo4okmnohiiiimqOKKKq7IYossti6+6OIwxghjjDLOKOM01khjjTbeaOOIY4445jruqOPIY4889ujjjz7+CGSQQAYJQg4p5JBCDklkkUQWSWSRRh5p5JFGHolkkkgmqeSSSi7JZJNMNk7u4uQu8iSUT0L5UUoZpVNSOSWVWaWVVVpXYnkllllqmaW5JZdbctmll116+SWYX4IZpphhijkmmWOSZZpZpnkmmmeimaaaaaq5Jptrsm2a0aYZ4SYabqLxJpxvwvkZp5xxyjknnXPSWaedddp5J5534pmnnnnquSeff3vyuSefffrZp59/AvonoIEKGqg6KKGDEoUaWqihhyJ6KKKaqKKJKrooo4syuiijjTraqPoopI9CGqmkkUo6KaWTUlqppJVKll5q6aWWXoqpoZgamqmmmWq6Kaebctqpp516+imon4L6Kaihihqqo5I6KqlaqqmlmnqqqaeKaqqopqrqqqquymqrrLbq6quuvgprrLDGKuusss5Ka6201mrrrbbeimuuuOaqa6y6xrrrrLvOymuvvPbq66++/gpssMAGCyvssMIOxBZLbLHGHmvsyCaLbLKr7LLKLstss8w262yvzvbq+iy0z0L7G6200UrTUjsttdNSW6211VpbrbXXYnstttlqm63bcrstt9162637LbjfguGKG664f+GKOy6545Jbrrnlmluuueeiey666aqbruuyuy6726677br7LrzvwhuvvPHKG6+889I7L7312luvey++9+Kbr7756ruvvvvLb7/89uvvv/7+6++/AAcMcMAAByzwwAIPBBdMcMFs8MEGH2zwwQgnjHDCCi/McMMMN+zwww4/DHHEEEcMccQSTyzxxBJPTHHFFFdMccUWX2zxGGeMccYab6zxxhpvzHHHHHfs8ccefyAHDHLAHLLIIYsjkzwyySWbXLIno3wyypyyyimrnLLKK7O8Msstu9yy/HLDLzcwxwxzzDLPLPPMMs9Mc8001zbfbPM454xzzjrvrPM898xzzz7/7PNABw100EIPLfTQQg9NdNFEFz1EG0200X30z0f/fEgnjXTSSi+t9M1000w3Tj/t9A111FBHUk8t9U111VRXbfXVVl+NddZYZ6311lpvzXXXXHft9ddefw122GCHYo8t9k122WSXZp9t9minjXbaaKet9tpqr81222y3br/t9g133HDHLffccs9Nd91010133YF4qCEIAQLTkohIKClIhjXxK2sSYIBaFG40MiYkMkEKSgoK2Y/Nu9vugzflIH6iKO/d1YF/gqYYRgg5anWoTHDnwA+TdOeWkiENvIHXsFQTVHdUFCgCDrkGbBZnFrBSSBCTIxvrZisvbmM2X9N04YvCpM5TPoji5AGkmpDy7Z2KfgjZt9Gi38zwkzASvt8Wh6GRxkqczzQ4WJ3a6wE3BohHHXfy+yb9H7WtU/YqldRii0YnpKJpIbAW7OLNdqBIpl+xyDTsF9D8JWWscM/r8E56sB0AmBKHtWyRSonjyvpLAYnmrfjxqSEjX7Xpe6e7/dyTu62IcNiw2gWi6DHIIDvrvNEN2YaOABWas6RzfwIMFi0JaUCXFqAQmoX7dlqGK8mysPsube0dWjAtVgYmvoUBHBUKGTUABhAZOAV2YWx1ZQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWtoUBJrJaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABUEGUw1ABgGc2NoZW1hFQIANQIYBXZhbHVlFQIVBkw8AAAANQQYBGxpc3QVAgAVCiUCGAdlbGVtZW50ABawIRkcGRwmvoUBHBUKGTUABhAZOAV2YWx1ZQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWtoUBJrJaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABaizAEWsCEmCBa2hQEUAAAZHBgMQVJST1c6c2NoZW1hGOwBLy8vLy82Z0FBQUFRQUFBQUFBQUtBQXdBQmdBRkFBZ0FDZ0FBQUFBQkJBQU1BQUFBQ0FBSUFBQUFCQUFJQUFBQUJBQUFBQUVBQUFBRUFBQUF6UC8vL3dBQUFSQVVBQUFBSUFBQUFBUUFBQUFCQUFBQUxBQUFBQVVBQUFCMllXeDFaUUFHQUFnQUJBQUdBQUFBQWdBQUFCQUFGQUFJQUFZQUJ3QU1BQUFBRUFBUUFBQUFBQUFCQXhBQUFBQWNBQUFBQkFBQUFBQUFBQUFFQUFBQWFYUmxiUUFBQmdBSUFBWUFCZ0FBQUFBQUFnQT0AGCBwYXJxdWV0LWNwcC1hcnJvdyB2ZXJzaW9uIDE0LjAuMRkcHAAAAOwBAABQQVIx"
},
{
"encoding": "base64",
"path": [
"get_target_position",
0
],
"data": "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cskptxxzzTnXnHPHIdecc8UZ9xx00Uk3HXXVWXcddtNRl51223HXnXffgVeddeGJNx5512EXnXTZaVeeed15F5103Xl3Hnrpqbcee+25F55445H3HnzxyUdBBfPRV555FFQwHXXxydeddyikELcdd+WZ58EHIITQm2/z0ReffCikUODBB915h0IK56EnwwzbceewHnvbcVeffe25V4MNHnxwHnr34bcdd+ehdx9+9dknwwzrsUdDDPnZV4MNMMRwH35ABJGeeuuxl599+u0HRBD67ZeDDjTEkJ99/PXXnHPLMfcefM9Btx136amn335deOTffxJMYMIJLLQQhhgSTKDCCiaccBNOPv2k1FISTMBBB1NQodVWV2ABYIBSBOHEEwIOSGCBUgQxBRUCDghggFVYcQUWJ6GUkkpKLcVggFNQcQUWWm11EkpcdTUTTS/BpNQABvgSTAYeiGCCf/z1J8QQCCao4IL67cdff0IMYeCBCi6IRBJIJMFggyOR9AYcRBRhxBEOPghhhEYc4cQTDj5IYIEQRijhg0gk4eCDDDY4IYUKLghhhCORNCGFJZkUk0whiaTgggw2+AYcZ6ARkkgKLlihhRdimKGGG3J4Bx4delgh4YMpqeTggwQWOCGFK7EEYYQMNijhgy25NEhggSuxNBNNEj6YkkoTUrgSSx15xGCDLbm0A0884XDzIYjyzBOiiCOSGBORROqs8w048swzIonqrOPOOyWaCE8RSeTOO/LMEyPPPCeimKKKK7LYoosvwhijjC26OCONNdq4EEMTUXQiiimqeCOOOeqYoooLMbQiizvy2KOPPwIZk6KKNdo4EUUNOURQQSmquBBDOerYkENBClmRRTHKmKOOM9J4GmpDElmkkZNRNiONl2EWo4wTUXQjjkMSmZFGkUmWo45FGnkkkjPSGJlkQxI5GWVJKunOOwsxNBFFQQr5EEQTUdSQQwQV7rxDUEENORSkkBVZdBpqj0EWmWRFGpmkkq25VnYkkkMSmaSSGWnUmmsEFURQQTnqeCSSG3H0GGQbcURQQY9BlpFGrbnmk402yizDSy/EFINDTTXGHOPPP0sy6cADzDSDQAIOPMCjzz4ABbQkk006GdSkk09CKdBASzL5JJRLMtmkk1FK6cADUUo5JZUOPPAklFVaOSWVfw48UKWVUUp5JZZTUunAA1lqyUwzDjzATDO/AReccAosGaWUV2LJQANbcpmllg48cCWWDjzQpZddeunHH4IMQkgh34E3HnmABNJiyCFfghmmmGMuQmaZXXpJSCGKLBKddIAEUp1145F3HXbRSfcdeIQUMh5578FHSCFklmlmme/BF51023E3HnnRSbcdd4AE8h14X4IZnnjvwdell4osMuYiZJa5HHNdemky5iKEFIJIIoosQmaZhBQSpphm78EXpphkltmcc8kph0giZJb5HnzbcZeccu259yWYYYo5HnlwxbUXX3Y9EphgZ6K5F192PXImmmniRUkle/HVl19/AabmmmeiyWabe/H2F2Bqrunmm26+CWecVFVl1VVyzklnnSuyiFRSUk2VmGJjkWXnnYkp5uabdNY5GGFqrinnnHTWCWeceOa5I4+JKSbnnG6+uSKLM9F0VZNNYMEvwQQWTHrueSGGfPbp1VcvwVSTTWGJpeeefv4p1VRgwTQWWX7+WcRnn4AGKuigM9L4Bhw12ZShhoQWauihb8BxIYYbcohoooYe+gYcGWqIaKKKLspooxdiyGefjj5q6KE12aTnnoQW6uijM9Jo6KGVWcZoo5BGKtVUfv5p55167unnn5JOKuigYMEUBWigdt4JaKB+/inooHru6aRWXTW5IostuvgijDXamJhidNZp55078vgijH8noig5I42EFspnn4YeOnYhhhlqSGihiCbq6KOUVmrppZhmqummlFbKaaeabupppZ+CymmnoYo6KqmfgkpppaWaeiqqqaq6Kquturobb5x2eiqqu/HWm28WXHAqqq/CGqusW3ABQggQRNCbbxRUMBttW3DBaaelmjobba/Cuiqru/E2G22nojorrbHKymmntdp6K66jkpqqqrfimquuu/I6Kqm34jorramqWqutq7Laq69fgJGrrr36Gquss9H2Kqyz0roFwgixyvoFGFlo0auvscq6BRdlmFGrrb36WoYZ/v3XhRf+/TcGGbnqWoYZu/K6E0+/AhussMMSOxpppZlWrLGvwXYssqWZ1pdfizEWmGBstpmssssyGyyzcMZ5JpqOPLIss806S0kloozCSCPJKtuss6SUciaacMbZrLNstrkss89Ci2eeySrryCPLMhuttM9Cy0gjllyiyiqOPBKttM06S0op01KLSy7TUluttR+CGHstth+C6OabcMbZo4/VWlujjT36WKONPwL5LLR45vkjkB+CmK22NdrYG6KIEUmkyirRSnsttrz0Mi21uOSCTTQfgmhizDHZaANNNNdiy0sv4XCzDTffgIP4DTjPQjsttdVaey224XCTrbYjklhYook/ApmtthFJVKKJ8MTzIYjZauto0EHyzINQQjXa+COQIYq4LbfdevstuH/hihussL8COy6534L7K7C78jouubXa6t9/wQo7LrnlmnsuusMSG664wQq7K6/pqrsuu1EV1a6645LbexZa7arr7rvwxrsrr+eiuyuv5Zq7/v23K++8RBW1E09EFZWTTkAFtSuvO/Ek77xRFdWWWW69tUVvvfbei2++aq01LrlEFXW7Lbf67jsuufz26+6723Kr776QRLIuu+2qC2+8/v4L8L8BCzwwwfz22666+u7brbcFG8xvvwcjrFKwweuy6+679Nbr779noQVvvAkrbO+9CzPsC/C/CSvs7rv+/tuwwwELTG+9CzP8MMQRSwwcscQBC3wWWvTWuzDD+OZLb70T53sWWvbeq9ZaE+fr1ltnoYVvvmytlbDCFFc8cb534ZWwwg07THHFFl+cl14YZ7z7MMRsreXWW2qtNdYjD0PM1lp56ZXWIxRXfBdejTnm7rsA/9uww5BEYvHFGm8syiiMNNKuugcjHLDAGm9csMGmnCLJJBFLHLDAGGes8cYUV2zxxY05pvHGdj2SzHHHaeIVsMCSTNKYYxpvnCZekkyyxnHHlFQyMMHbcstJJx5/DHLI3XrryScFGwxKKN16C9Kttx5/7MknqKTCSivdettyezDCkETCSSeghGLKKaikwkknBRtsyimMNGLJJZBEovHGHHdMshhjf8kqmyLyyCSXPCqpJp+McsoqrzwqqSKPzHLLKq9McskuvwxzzKOSKvPMNNds880456xzzSinrPLKLLesc80mn8xyy5ZeujPPMMeMaaaabmrzzT1n6mmlLr/s88+hiuryyz7/DDSpoYoatNA+/zwqqUELzXLLLr8MNKmjkk1ppSinLPLIKq/McsuhigpzzECTGrTQwxKrCvotuJ5W6vLL6vLLmGbaqqtDE1200Zx2qummRRt9NNK78cZyyzbfzHLLSSttzJy00kszTXPNPWfKcssyz0xzzU07XZttt+H2NNS56dZzplFLnZtuPWc6NdVVW52bblNTvfY01Lfh1ptvT0Ndm2256dabb007XbXVUUt9G249Z7obby6/bPPNuel2NdZTUz000bvx1nOmWWu9G29VWx211Jpu2nOmV2NdtNGabtqqq1djPTTRRyN9NdZHI70bb626Wr35FptsnHZaqqmnotqqq3qdtdZHI80yz2zyySinTHLJo5Kqc83HIVefffnZ1557Bh7IX39ABCHEEAYeqN9+p6GGehlmkEaamWYnongjjpFJNiSReu7JZ5+CDtqii44+ehlmp6EWmWSVWTYjjWegcUceW8uhxx5noNGGG3XYwXXXXn/NRx9cd30GGm/AcUceHXoIdtg9Z6ARhxx34LG1HGCHHYccd+Qh9th67EF22W/AcQceYIfNaKN34Cj22Iw2uk122Yw2avbZW8vBdddklz2hxx5by8FHH2inPa322nz04fXXfPTRhhtz0O3112qvjXbabLe9IYeMNrohh4gm2qGHYIct9tiKLur222afzWijZp8NaaRwxy3q9ttopy333GSXzUcfZp9Nd91st41oopVZ5vbbcMedmWZ89IF22sUa6/bbkEYq99ydeWb22XTXDXfcnXn2GGSVWQZppJ15Bnfccs+dmWalmcciOxppdNctdiyydNfNdtuAuiggQoMYI5nzEoBFH7L/1/5sBj+At10guRPa8JqJwSakZwCW1fUumFBrVxcsEX/HdVgx3EpJsl0XRM2Ls2HToLihuE7wuNZUJTC7EVRfI/NQeSteVCEvLxDEdIxRP6Sj5ToL7WjTdI5BgldQqIvJ84YwHFvycOplUK+lA62++dmchsSTlwaiMcTSWZpEQTmkEWtDiOqtPMdQXH/1HrEjsFrUn5q7uqPUJIvbVmBkmJxlACnLGAzSnGAU2DJLbTzAxq7H6qhj7QE+UrG+JZKj7+0HVyVEk+oBKxTt/ieeH8jG6DrY87QaFXJcj635v6FAO641Un54RAqIMORzbDHqnCUmhJsDWBPGgAbpuhciDub4gPe8xH//OaTByxo+IQ42EXfhuZk9ITZZV7BG9mTBGQCqKYr0vfI9wvh1uXOr9ZK6KB8b97vH+cqyuvGoBJpVEVYstJvPembTfcL88IGBXSwGBt9gLHz0btWhJXSFslH4YRBelU56xXmsDycwhF07u0SggN3UydJ1HCwLeWiUG1wjq/tLJGn1DJ6uH7uJokZ4qBBS3x104oQ4SO+QW2BaUAQmxqgBHBUKGTUABhAZOAV2YWx1ZQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWvqgBJrxaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABUEGUw1ABgGc2NoZW1hFQIANQIYBXZhbHVlFQIVBkw8AAAANQQYBGxpc3QVAgAVCiUCGAdlbGVtZW50ABawIRkcGRwmxqgBHBUKGTUABhAZOAV2YWx1ZQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWvqgBJrxaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABaizAEWsCEmCBa+qAEUAAAZHBgMQVJST1c6c2NoZW1hGOwBLy8vLy82Z0FBQUFRQUFBQUFBQUtBQXdBQmdBRkFBZ0FDZ0FBQUFBQkJBQU1BQUFBQ0FBSUFBQUFCQUFJQUFBQUJBQUFBQUVBQUFBRUFBQUF6UC8vL3dBQUFSQVVBQUFBSUFBQUFBUUFBQUFCQUFBQUxBQUFBQVVBQUFCMllXeDFaUUFHQUFnQUJBQUdBQUFBQWdBQUFCQUFGQUFJQUFZQUJ3QU1BQUFBRUFBUUFBQUFBQUFCQXhBQUFBQWNBQUFBQkFBQUFBQUFBQUFFQUFBQWFYUmxiUUFBQmdBSUFBWUFCZ0FBQUFBQUFnQT0AGCBwYXJxdWV0LWNwcC1hcnJvdyB2ZXJzaW9uIDE0LjAuMRkcHAAAAOwBAABQQVIx"
},
{
"encoding": "base64",
"path": [
"table",
0
],
"data": "UEFSMRUEFRAVIkwVAhUAEgAAKLUv/SAIQQAAAQAAAAAAAAAVABUWFSgsFbAhFRAVBhUGHBgIAQAAAAAAAAAYCAEAAAAAAAAAFgAoCAEAAAAAAAAAGAgBAAAAAAAAAAAAACi1L/0gC1kAAAMAAACwIQEBsCEAJuoBHBUEGTUABhAZGAV2YWx1ZRUMFrAhFr4BFuIBJkYmCBwYCAEAAAAAAAAAGAgBAAAAAAAAABYAKAgBAAAAAAAAABgIAQAAAAAAAAAAGSwVBBUAFQIAFQAVEBUCAAAAFQQZLDUAGAZzY2hlbWEVAgAVBCUCGAV2YWx1ZQAWsCEZHBkcJuoBHBUEGTUABhAZGAV2YWx1ZRUMFrAhFr4BFuIBJkYmCBwYCAEAAAAAAAAAGAgBAAAAAAAAABYAKAgBAAAAAAAAABgIAQAAAAAAAAAAGSwVBBUAFQIAFQAVEBUCAAAAFr4BFrAhJggW4gEUAAAZHBgMQVJST1c6c2NoZW1hGLgBLy8vLy80QUFBQUFRQUFBQUFBQUtBQXdBQmdBRkFBZ0FDZ0FBQUFBQkJBQU1BQUFBQ0FBSUFBQUFCQUFJQUFBQUJBQUFBQUVBQUFBVUFBQUFFQUFVQUFnQUJnQUhBQXdBQUFBUUFCQUFBQUFBQUFFQ0VBQUFBQ0FBQUFBRUFBQUFBQUFBQUFVQUFBQjJZV3gxWlFBQUFBZ0FEQUFJQUFjQUNBQUFBQUFBQUFGQUFBQUFBQUFBQUE9PQAYIHBhcnF1ZXQtY3BwLWFycm93IHZlcnNpb24gMTQuMC4xGRwcAAAAhgEAAFBBUjE="
}
]
},
"9346043ee5594cbfb03e692ba0edbd34": {
"model_name": "WidgetModel",
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"state": {
"_layer_type": "polygon",
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "WidgetModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"auto_highlight": false,
"elevation_scale": null,
"extensions": [],
"extruded": null,
"filled": null,
"get_elevation": null,
"get_fill_color": [
255,
255,
255,
200
],
"get_line_color": null,
"get_line_width": null,
"line_joint_rounded": null,
"line_miter_limit": null,
"line_width_max_pixels": null,
"line_width_min_pixels": 0.5,
"line_width_scale": null,
"line_width_units": null,
"opacity": 1.0,
"pickable": false,
"selected_index": null,
"stroked": true,
"table": [
null
],
"visible": true,
"wireframe": null
},
"buffers": [
{
"encoding": "base64",
"path": [
"table",
0
],
"data": "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X3R5cGUiOiAidW5pY29kZSIsICJudW1weV90eXBlIjogInN0cmluZ1tweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiVFJBQ1QiLCAiZmllbGRfbmFtZSI6ICJUUkFDVCIsICJwYW5kYXNfdHlwZSI6ICJ1bmljb2RlIiwgIm51bXB5X3R5cGUiOiAic3RyaW5nW3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJDT1VOVFkiLCAiZmllbGRfbmFtZSI6ICJDT1VOVFkiLCAicGFuZGFzX3R5cGUiOiAidW5pY29kZSIsICJudW1weV90eXBlIjogInN0cmluZ1tweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiTVNBIiwgImZpZWxkX25hbWUiOiAiTVNBIiwgInBhbmRhc190eXBlIjogInVuaWNvZGUiLCAibnVtcHlfdHlwZSI6ICJzdHJpbmdbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIlBPUFVMQVRJT04iLCAiZmllbGRfbmFtZSI6ICJQT1BVTEFUSU9OIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiTUFMRSIsICJmaWVsZF9uYW1lIjogIk1BTEUiLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJGRU1BTEUiLCAiZmllbGRfbmFtZSI6ICJGRU1BTEUiLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBR0VfMF81IiwgImZpZWxkX25hbWUiOiAiQUdFXzBfNSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBR0VfNV85IiwgImZpZWxkX25hbWUiOiAiQUdFXzVfOSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBR0VfMTBfMTQiLCAiZmllbGRfbmFtZSI6ICJBR0VfMTBfMTQiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzE1XzE5IiwgImZpZWxkX25hbWUiOiAiQUdFXzE1XzE5IiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzIwXzI0IiwgImZpZWxkX25hbWUiOiAiQUdFXzIwXzI0IiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzI1XzM0IiwgImZpZWxkX25hbWUiOiAiQUdFXzI1XzM0IiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFHRV8zNV80NCIsICJmaWVsZF9uYW1lIjogIkFHRV8zNV80NCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBR0VfNDVfNTQiLCAiZmllbGRfbmFtZSI6ICJBR0VfNDVfNTQiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzU1XzU5IiwgImZpZWxkX25hbWUiOiAiQUdFXzU1XzU5IiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFHRV82MF82NCIsICJmaWVsZF9uYW1lIjogIkFHRV82MF82NCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBR0VfNjVfNzQiLCAiZmllbGRfbmFtZSI6ICJBR0VfNjVfNzQiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzc1Xzg0IiwgImZpZWxkX25hbWUiOiAiQUdFXzc1Xzg0IiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFHRV84NSIsICJmaWVsZF9uYW1lIjogIkFHRV84NSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJNRURJQU5fQUdFIiwgImZpZWxkX25hbWUiOiAiTUVESUFOX0FHRSIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXRbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFHRV8xOCIsICJmaWVsZF9uYW1lIjogIkFHRV8xOCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50MTYiLCAibnVtcHlfdHlwZSI6ICJ1aW50MTZbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIk1BTEVfMTgiLCAiZmllbGRfbmFtZSI6ICJNQUxFXzE4IiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiRkVNQUxFXzE4IiwgImZpZWxkX25hbWUiOiAiRkVNQUxFXzE4IiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzIxIiwgImZpZWxkX25hbWUiOiAiQUdFXzIxIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzYyIiwgImZpZWxkX25hbWUiOiAiQUdFXzYyIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQUdFXzY1IiwgImZpZWxkX25hbWUiOiAiQUdFXzY1IiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIk1BTEVfNjUiLCAiZmllbGRfbmFtZSI6ICJNQUxFXzY1IiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkZFTUFMRV82NSIsICJmaWVsZF9uYW1lIjogIkZFTUFMRV82NSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJGMV9SQUNFIiwgImZpZWxkX25hbWUiOiAiRjFfUkFDRSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50MTYiLCAibnVtcHlfdHlwZSI6ICJ1aW50MTZbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIldISVRFIiwgImZpZWxkX25hbWUiOiAiV0hJVEUiLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJCTEFDSyIsICJmaWVsZF9uYW1lIjogIkJMQUNLIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQU1JTkRJQU4iLCAiZmllbGRfbmFtZSI6ICJBTUlORElBTiIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBU0lBTiIsICJmaWVsZF9uYW1lIjogIkFTSUFOIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiSEFXQUlJQU4iLCAiZmllbGRfbmFtZSI6ICJIQVdBSUlBTiIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJPVEhFUl9SQUNFIiwgImZpZWxkX25hbWUiOiAiT1RIRVJfUkFDRSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJGMl9SQUNFUyIsICJmaWVsZF9uYW1lIjogIkYyX1JBQ0VTIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFQX1dISVRFIiwgImZpZWxkX25hbWUiOiAiQVBfV0hJVEUiLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJBUF9CTEFDSyIsICJmaWVsZF9uYW1lIjogIkFQX0JMQUNLIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQVBfQU1JTkRJQSIsICJmaWVsZF9uYW1lIjogIkFQX0FNSU5ESUEiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQVBfQVNJQU4iLCAiZmllbGRfbmFtZSI6ICJBUF9BU0lBTiIsICJwYW5kYXNfdHlwZSI6ICJ1aW50MTYiLCAibnVtcHlfdHlwZSI6ICJ1aW50MTZbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFQX0hBV0FJSUEiLCAiZmllbGRfbmFtZSI6ICJBUF9IQVdBSUlBIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFQX09USEVSIiwgImZpZWxkX25hbWUiOiAiQVBfT1RIRVIiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQVBfSElTUEFOSSIsICJmaWVsZF9uYW1lIjogIkFQX0hJU1BBTkkiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiTk9UX0hJU1BBTiIsICJmaWVsZF9uYW1lIjogIk5PVF9ISVNQQU4iLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJOSF9XSElURSIsICJmaWVsZF9uYW1lIjogIk5IX1dISVRFIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiSU5fSE9VU0VITyIsICJmaWVsZF9uYW1lIjogIklOX0hPVVNFSE8iLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJHUk9VUF9RVUFSIiwgImZpZWxkX25hbWUiOiAiR1JPVVBfUVVBUiIsICJwYW5kYXNfdHlwZSI6ICJ1aW50MTYiLCAibnVtcHlfdHlwZSI6ICJ1aW50MTZbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkdRX0lOU1RJVFUiLCAiZmllbGRfbmFtZSI6ICJHUV9JTlNUSVRVIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkdRX05PTklOU1QiLCAiZmllbGRfbmFtZSI6ICJHUV9OT05JTlNUIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiSE9VU0VIT0xEUyIsICJmaWVsZF9uYW1lIjogIkhPVVNFSE9MRFMiLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJISF9GQU1JTFkiLCAiZmllbGRfbmFtZSI6ICJISF9GQU1JTFkiLCAicGFuZGFzX3R5cGUiOiAidWludDE2IiwgIm51bXB5X3R5cGUiOiAidWludDE2W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJISF9OT05GQU1JIiwgImZpZWxkX25hbWUiOiAiSEhfTk9ORkFNSSIsICJwYW5kYXNfdHlwZSI6ICJ1aW50MTYiLCAibnVtcHlfdHlwZSI6ICJ1aW50MTZbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkFWR19ISFNJWkUiLCAiZmllbGRfbmFtZSI6ICJBVkdfSEhTSVpFIiwgInBhbmRhc190eXBlIjogImZsb2F0MzIiLCAibnVtcHlfdHlwZSI6ICJmbG9hdFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQVZHX0ZBTVNJWiIsICJmaWVsZF9uYW1lIjogIkFWR19GQU1TSVoiLCAicGFuZGFzX3R5cGUiOiAiZmxvYXQzMiIsICJudW1weV90eXBlIjogImZsb2F0W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJIU05HX1VOSVRTIiwgImZpZWxkX25hbWUiOiAiSFNOR19VTklUUyIsICJwYW5kYXNfdHlwZSI6ICJ1aW50MTYiLCAibnVtcHlfdHlwZSI6ICJ1aW50MTZbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkhVX09DQ1VQSUUiLCAiZmllbGRfbmFtZSI6ICJIVV9PQ0NVUElFIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiSFVfVkFDQU5UIiwgImZpZWxkX25hbWUiOiAiSFVfVkFDQU5UIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIk9DQ0hVX09XTkUiLCAiZmllbGRfbmFtZSI6ICJPQ0NIVV9PV05FIiwgInBhbmRhc190eXBlIjogInVpbnQ4IiwgIm51bXB5X3R5cGUiOiAidWludDhbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIk9DQ0hVX1JFTlQiLCAiZmllbGRfbmFtZSI6ICJPQ0NIVV9SRU5UIiwgInBhbmRhc190eXBlIjogInVpbnQxNiIsICJudW1weV90eXBlIjogInVpbnQxNltweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiT1dORVJfU0laRSIsICJmaWVsZF9uYW1lIjogIk9XTkVSX1NJWkUiLCAicGFuZGFzX3R5cGUiOiAiZmxvYXQzMiIsICJudW1weV90eXBlIjogImZsb2F0W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJSRU5URVJfU0laIiwgImZpZWxkX25hbWUiOiAiUkVOVEVSX1NJWiIsICJwYW5kYXNfdHlwZSI6ICJmbG9hdDMyIiwgIm51bXB5X3R5cGUiOiAiZmxvYXRbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkRFTlNJVFkiLCAiZmllbGRfbmFtZSI6ICJERU5TSVRZIiwgInBhbmRhc190eXBlIjogImZsb2F0NjQiLCAibnVtcHlfdHlwZSI6ICJkb3VibGVbcHlhcnJvd10iLCAibWV0YWRhdGEiOiBudWxsfSwgeyJuYW1lIjogIkJVUkdMQVJZIiwgImZpZWxkX25hbWUiOiAiQlVSR0xBUlkiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQVNTQVVMVCIsICJmaWVsZF9uYW1lIjogIkFTU0FVTFQiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiVEhFRlQiLCAiZmllbGRfbmFtZSI6ICJUSEVGVCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJCVVJHX0QiLCAiZmllbGRfbmFtZSI6ICJCVVJHX0QiLCAicGFuZGFzX3R5cGUiOiAidWludDgiLCAibnVtcHlfdHlwZSI6ICJ1aW50OFtweWFycm93XSIsICJtZXRhZGF0YSI6IG51bGx9LCB7Im5hbWUiOiAiQVNTQUxUX0QiLCAiZmllbGRfbmFtZSI6ICJBU1NBTFRfRCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH0sIHsibmFtZSI6ICJUSEVGVF9EIiwgImZpZWxkX25hbWUiOiAiVEhFRlRfRCIsICJwYW5kYXNfdHlwZSI6ICJ1aW50OCIsICJudW1weV90eXBlIjogInVpbnQ4W3B5YXJyb3ddIiwgIm1ldGFkYXRhIjogbnVsbH1dLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJweWFycm93IiwgInZlcnNpb24iOiAiMTQuMC4xIn0sICJwYW5kYXNfdmVyc2lvbiI6ICIyLjEuNCJ9ABgMQVJST1c6c2NoZW1hGIyaAS8vLy8vOEE1QUFBUUFBQUFBQUFLQUE0QUJnQUZBQWdBQ2dBQUFBQUJCQUFRQUFBQUFBQUtBQXdBQUFBRUFBZ0FDZ0FBQUFRa0FBQUVBQUFBQVFBQUFBUUFBQUJVMnYvLzVDTUFBQVFBQUFEWEl3QUFleUpwYm1SbGVGOWpiMngxYlc1eklqb2dXM3NpYTJsdVpDSTZJQ0p5WVc1blpTSXNJQ0p1WVcxbElqb2diblZzYkN3Z0luTjBZWEowSWpvZ01Dd2dJbk4wYjNBaU9pQTBOVGNzSUNKemRHVndJam9nTVgxZExDQWlZMjlzZFcxdVgybHVaR1Y0WlhNaU9pQmJleUp1WVcxbElqb2diblZzYkN3Z0ltWnBaV3hrWDI1aGJXVWlPaUJ1ZFd4c0xDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXNXBZMjlrWlNJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW05aWFtVmpkQ0lzSUNKdFpYUmhaR0YwWVNJNklIc2laVzVqYjJScGJtY2lPaUFpVlZSR0xUZ2lmWDFkTENBaVkyOXNkVzF1Y3lJNklGdDdJbTVoYldVaU9pQWlTVVFpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pKUkNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNeklpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME16SmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGU1JVRWlMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkJVa1ZCSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW1ac2IyRjBNeklpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0ptYkc5aGRGdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUWt4UFEwc2lMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkNURTlEU3lJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWJtbGpiMlJsSWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpYzNSeWFXNW5XM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKQ1J5SXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrSkhJaXdnSW5CaGJtUmhjMTkwZVhCbElqb2dJblZ1YVdOdlpHVWlMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSnpkSEpwYm1kYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJbFJTUVVOVUlpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVZGSkJRMVFpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFc1cFkyOWtaU0lzSUNKdWRXMXdlVjkwZVhCbElqb2dJbk4wY21sdVoxdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUTA5VlRsUlpJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlRMDlWVGxSWklpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnVhV052WkdVaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKemRISnBibWRiY0hsaGNuSnZkMTBpTENBaWJXVjBZV1JoZEdFaU9pQnVkV3hzZlN3Z2V5SnVZVzFsSWpvZ0lrMVRRU0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJazFUUVNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWJtbGpiMlJsSWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpYzNSeWFXNW5XM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKUVQxQlZURUZVU1U5T0lpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVVFOVFWVXhCVkVsUFRpSXNJQ0p3WVc1a1lYTmZkSGx3WlNJNklDSjFhVzUwTVRZaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKMWFXNTBNVFpiY0hsaGNuSnZkMTBpTENBaWJXVjBZV1JoZEdFaU9pQnVkV3hzZlN3Z2V5SnVZVzFsSWpvZ0lrMUJURVVpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pOUVV4Rklpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblF4TmlJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW5WcGJuUXhObHR3ZVdGeWNtOTNYU0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaVJrVk5RVXhGSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpUmtWTlFVeEZJaXdnSW5CaGJtUmhjMTkwZVhCbElqb2dJblZwYm5ReE5pSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0luVnBiblF4Tmx0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlRVWRGWHpCZk5TSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrRkhSVjh3WHpVaUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkRGdpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME9GdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUVVkRlh6VmZPU0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJa0ZIUlY4MVh6a2lMQ0FpY0dGdVpHRnpYM1I1Y0dVaU9pQWlkV2x1ZERnaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKMWFXNTBPRnR3ZVdGeWNtOTNYU0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaVFVZEZYekV3WHpFMElpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVFVZEZYekV3WHpFMElpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblE0SWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWREaGJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGSFJWOHhOVjh4T1NJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtGSFJWOHhOVjh4T1NJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGSFJWOHlNRjh5TkNJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtGSFJWOHlNRjh5TkNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGSFJWOHlOVjh6TkNJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtGSFJWOHlOVjh6TkNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBPQ0lzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5RNFczQjVZWEp5YjNkZElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMHNJSHNpYm1GdFpTSTZJQ0pCUjBWZk16VmZORFFpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pCUjBWZk16VmZORFFpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWREZ2lMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwT0Z0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlRVWRGWHpRMVh6VTBJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlRVWRGWHpRMVh6VTBJaXdnSW5CaGJtUmhjMTkwZVhCbElqb2dJblZwYm5RNElpd2dJbTUxYlhCNVgzUjVjR1VpT2lBaWRXbHVkRGhiY0hsaGNuSnZkMTBpTENBaWJXVjBZV1JoZEdFaU9pQnVkV3hzZlN3Z2V5SnVZVzFsSWpvZ0lrRkhSVjgxTlY4MU9TSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrRkhSVjgxTlY4MU9TSXNJQ0p3WVc1a1lYTmZkSGx3WlNJNklDSjFhVzUwT0NJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW5WcGJuUTRXM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKQlIwVmZOakJmTmpRaUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKQlIwVmZOakJmTmpRaUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkRGdpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME9GdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUVVkRlh6WTFYemMwSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpUVVkRlh6WTFYemMwSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW5WcGJuUTRJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWlkV2x1ZERoYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa0ZIUlY4M05WODROQ0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJa0ZIUlY4M05WODROQ0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME9DSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0luVnBiblE0VzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSkJSMFZmT0RVaUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKQlIwVmZPRFVpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWREZ2lMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwT0Z0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlUVVZFU1VGT1gwRkhSU0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJazFGUkVsQlRsOUJSMFVpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpWm14dllYUXpNaUlzSUNKdWRXMXdlVjkwZVhCbElqb2dJbVpzYjJGMFczQjVZWEp5YjNkZElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMHNJSHNpYm1GdFpTSTZJQ0pCUjBWZk1UZ2lMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkJSMFZmTVRnaUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkREUySWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWRERTJXM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKTlFVeEZYekU0SWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpVFVGTVJWOHhPQ0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME1UWWlMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwTVRaYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa1pGVFVGTVJWOHhPQ0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJa1pGVFVGTVJWOHhPQ0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME1UWWlMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwTVRaYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa0ZIUlY4eU1TSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrRkhSVjh5TVNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGSFJWODJNaUlzSUNKbWFXVnNaRjl1WVcxbElqb2dJa0ZIUlY4Mk1pSXNJQ0p3WVc1a1lYTmZkSGx3WlNJNklDSjFhVzUwTVRZaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKMWFXNTBNVFpiY0hsaGNuSnZkMTBpTENBaWJXVjBZV1JoZEdFaU9pQnVkV3hzZlN3Z2V5SnVZVzFsSWpvZ0lrRkhSVjgyTlNJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtGSFJWODJOU0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME9DSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0luVnBiblE0VzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSk5RVXhGWHpZMUlpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVRVRk1SVjgyTlNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBPQ0lzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5RNFczQjVZWEp5YjNkZElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMHNJSHNpYm1GdFpTSTZJQ0pHUlUxQlRFVmZOalVpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pHUlUxQlRFVmZOalVpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWREZ2lMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwT0Z0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlSakZmVWtGRFJTSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrWXhYMUpCUTBVaUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkREUySWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWRERTJXM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKWFNFbFVSU0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJbGRJU1ZSRklpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblF4TmlJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW5WcGJuUXhObHR3ZVdGeWNtOTNYU0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaVFreEJRMHNpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pDVEVGRFN5SXNJQ0p3WVc1a1lYTmZkSGx3WlNJNklDSjFhVzUwTVRZaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKMWFXNTBNVFpiY0hsaGNuSnZkMTBpTENBaWJXVjBZV1JoZEdFaU9pQnVkV3hzZlN3Z2V5SnVZVzFsSWpvZ0lrRk5TVTVFU1VGT0lpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVFVMUpUa1JKUVU0aUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkRGdpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME9GdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUVZOSlFVNGlMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkJVMGxCVGlJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtoQlYwRkpTVUZPSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpU0VGWFFVbEpRVTRpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWREZ2lMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwT0Z0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlUMVJJUlZKZlVrRkRSU0lzSUNKbWFXVnNaRjl1WVcxbElqb2dJazlVU0VWU1gxSkJRMFVpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWREZ2lMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwT0Z0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlSakpmVWtGRFJWTWlMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkdNbDlTUVVORlV5SXNJQ0p3WVc1a1lYTmZkSGx3WlNJNklDSjFhVzUwT0NJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW5WcGJuUTRXM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKQlVGOVhTRWxVUlNJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtGUVgxZElTVlJGSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW5WcGJuUXhOaUlzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5ReE5sdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUVZCZlFreEJRMHNpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pCVUY5Q1RFRkRTeUlzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME1UWWlMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwTVRaYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa0ZRWDBGTlNVNUVTVUVpTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pCVUY5QlRVbE9SRWxCSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW5WcGJuUTRJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWlkV2x1ZERoYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa0ZRWDBGVFNVRk9JaXdnSW1acFpXeGtYMjVoYldVaU9pQWlRVkJmUVZOSlFVNGlMQ0FpY0dGdVpHRnpYM1I1Y0dVaU9pQWlkV2x1ZERFMklpd2dJbTUxYlhCNVgzUjVjR1VpT2lBaWRXbHVkREUyVzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSkJVRjlJUVZkQlNVbEJJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlRVkJmU0VGWFFVbEpRU0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME9DSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0luVnBiblE0VzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSkJVRjlQVkVoRlVpSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrRlFYMDlVU0VWU0lpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblE0SWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWREaGJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGUVgwaEpVMUJCVGtraUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKQlVGOUlTVk5RUVU1Sklpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblE0SWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWREaGJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWs1UFZGOUlTVk5RUVU0aUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKT1QxUmZTRWxUVUVGT0lpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblF4TmlJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW5WcGJuUXhObHR3ZVdGeWNtOTNYU0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaVRraGZWMGhKVkVVaUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKT1NGOVhTRWxVUlNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtsT1gwaFBWVk5GU0U4aUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKSlRsOUlUMVZUUlVoUElpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblF4TmlJc0lDSnVkVzF3ZVY5MGVYQmxJam9nSW5WcGJuUXhObHR3ZVdGeWNtOTNYU0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaVIxSlBWVkJmVVZWQlVpSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lrZFNUMVZRWDFGVlFWSWlMQ0FpY0dGdVpHRnpYM1I1Y0dVaU9pQWlkV2x1ZERFMklpd2dJbTUxYlhCNVgzUjVjR1VpT2lBaWRXbHVkREUyVzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSkhVVjlKVGxOVVNWUlZJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlSMUZmU1U1VFZFbFVWU0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME9DSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0luVnBiblE0VzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSkhVVjlPVDA1SlRsTlVJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlSMUZmVGs5T1NVNVRWQ0lzSUNKd1lXNWtZWE5mZEhsd1pTSTZJQ0oxYVc1ME1UWWlMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwTVRaYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa2hQVlZORlNFOU1SRk1pTENBaVptbGxiR1JmYm1GdFpTSTZJQ0pJVDFWVFJVaFBURVJUSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW5WcGJuUXhOaUlzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5ReE5sdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpU0VoZlJrRk5TVXhaSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpU0VoZlJrRk5TVXhaSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW5WcGJuUXhOaUlzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5ReE5sdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpU0VoZlRrOU9Sa0ZOU1NJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtoSVgwNVBUa1pCVFVraUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkREUySWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWRERTJXM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKQlZrZGZTRWhUU1ZwRklpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVFWWkhYMGhJVTBsYVJTSXNJQ0p3WVc1a1lYTmZkSGx3WlNJNklDSm1iRzloZERNeUlpd2dJbTUxYlhCNVgzUjVjR1VpT2lBaVpteHZZWFJiY0hsaGNuSnZkMTBpTENBaWJXVjBZV1JoZEdFaU9pQnVkV3hzZlN3Z2V5SnVZVzFsSWpvZ0lrRldSMTlHUVUxVFNWb2lMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkJWa2RmUmtGTlUwbGFJaXdnSW5CaGJtUmhjMTkwZVhCbElqb2dJbVpzYjJGME16SWlMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSm1iRzloZEZ0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlTRk5PUjE5VlRrbFVVeUlzSUNKbWFXVnNaRjl1WVcxbElqb2dJa2hUVGtkZlZVNUpWRk1pTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWRERTJJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWlkV2x1ZERFMlczQjVZWEp5YjNkZElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMHNJSHNpYm1GdFpTSTZJQ0pJVlY5UFEwTlZVRWxGSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpU0ZWZlQwTkRWVkJKUlNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtoVlgxWkJRMEZPVkNJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtoVlgxWkJRMEZPVkNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBPQ0lzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5RNFczQjVZWEp5YjNkZElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMHNJSHNpYm1GdFpTSTZJQ0pQUTBOSVZWOVBWMDVGSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpVDBORFNGVmZUMWRPUlNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBPQ0lzSUNKdWRXMXdlVjkwZVhCbElqb2dJblZwYm5RNFczQjVZWEp5YjNkZElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMHNJSHNpYm1GdFpTSTZJQ0pQUTBOSVZWOVNSVTVVSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpVDBORFNGVmZVa1ZPVkNJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKMWFXNTBNVFlpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME1UWmJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWs5WFRrVlNYMU5KV2tVaUxDQWlabWxsYkdSZmJtRnRaU0k2SUNKUFYwNUZVbDlUU1ZwRklpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0ltWnNiMkYwTXpJaUxDQWliblZ0Y0hsZmRIbHdaU0k2SUNKbWJHOWhkRnR3ZVdGeWNtOTNYU0lzSUNKdFpYUmhaR0YwWVNJNklHNTFiR3g5TENCN0ltNWhiV1VpT2lBaVVrVk9WRVZTWDFOSldpSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lsSkZUbFJGVWw5VFNWb2lMQ0FpY0dGdVpHRnpYM1I1Y0dVaU9pQWlabXh2WVhRek1pSXNJQ0p1ZFcxd2VWOTBlWEJsSWpvZ0ltWnNiMkYwVzNCNVlYSnliM2RkSWl3Z0ltMWxkR0ZrWVhSaElqb2diblZzYkgwc0lIc2libUZ0WlNJNklDSkVSVTVUU1ZSWklpd2dJbVpwWld4a1gyNWhiV1VpT2lBaVJFVk9VMGxVV1NJc0lDSndZVzVrWVhOZmRIbHdaU0k2SUNKbWJHOWhkRFkwSWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpWkc5MVlteGxXM0I1WVhKeWIzZGRJaXdnSW0xbGRHRmtZWFJoSWpvZ2JuVnNiSDBzSUhzaWJtRnRaU0k2SUNKQ1ZWSkhURUZTV1NJc0lDSm1hV1ZzWkY5dVlXMWxJam9nSWtKVlVrZE1RVkpaSWl3Z0luQmhibVJoYzE5MGVYQmxJam9nSW5WcGJuUTRJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWlkV2x1ZERoYmNIbGhjbkp2ZDEwaUxDQWliV1YwWVdSaGRHRWlPaUJ1ZFd4c2ZTd2dleUp1WVcxbElqb2dJa0ZUVTBGVlRGUWlMQ0FpWm1sbGJHUmZibUZ0WlNJNklDSkJVMU5CVlV4VUlpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblE0SWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWREaGJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWxSSVJVWlVJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlWRWhGUmxRaUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkRGdpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME9GdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlMQ0I3SW01aGJXVWlPaUFpUWxWU1IxOUVJaXdnSW1acFpXeGtYMjVoYldVaU9pQWlRbFZTUjE5RUlpd2dJbkJoYm1SaGMxOTBlWEJsSWpvZ0luVnBiblE0SWl3Z0ltNTFiWEI1WDNSNWNHVWlPaUFpZFdsdWREaGJjSGxoY25KdmQxMGlMQ0FpYldWMFlXUmhkR0VpT2lCdWRXeHNmU3dnZXlKdVlXMWxJam9nSWtGVFUwRk1WRjlFSWl3Z0ltWnBaV3hrWDI1aGJXVWlPaUFpUVZOVFFVeFVYMFFpTENBaWNHRnVaR0Z6WDNSNWNHVWlPaUFpZFdsdWREZ2lMQ0FpYm5WdGNIbGZkSGx3WlNJNklDSjFhVzUwT0Z0d2VXRnljbTkzWFNJc0lDSnRaWFJoWkdGMFlTSTZJRzUxYkd4OUxDQjdJbTVoYldVaU9pQWlWRWhGUmxSZlJDSXNJQ0ptYVdWc1pGOXVZVzFsSWpvZ0lsUklSVVpVWDBRaUxDQWljR0Z1WkdGelgzUjVjR1VpT2lBaWRXbHVkRGdpTENBaWJuVnRjSGxmZEhsd1pTSTZJQ0oxYVc1ME9GdHdlV0Z5Y205M1hTSXNJQ0p0WlhSaFpHRjBZU0k2SUc1MWJHeDlYU3dnSW1OeVpXRjBiM0lpT2lCN0lteHBZbkpoY25raU9pQWljSGxoY25KdmR5SXNJQ0oyWlhKemFXOXVJam9nSWpFMExqQXVNU0o5TENBaWNHRnVaR0Z6WDNabGNuTnBiMjRpT2lBaU1pNHhMalFpZlFBR0FBQUFjR0Z1WkdGekFBQkpBQUFBWEJVQUFCZ1ZBQURvRkFBQXdCUUFBSlFVQUFCb0ZBQUFRQlFBQUF3VUFBRGNFd0FBckJNQUFId1RBQUJNRXdBQUdCTUFBT1FTQUFDd0VnQUFmQklBQUVnU0FBQVVFZ0FBNEJFQUFLd1JBQUI0RVFBQVJCRUFBQlFSQUFEZ0VBQUFzQkFBQUlBUUFBQk1FQUFBSEJBQUFPd1BBQUM4RHdBQWpBOEFBRmdQQUFBb0R3QUErQTRBQU1nT0FBQ1VEZ0FBWkE0QUFEQU9BQUQ4RFFBQXlBMEFBSlFOQUFCZ0RRQUFMQTBBQVBnTUFBREVEQUFBa0F3QUFGd01BQUFvREFBQTlBc0FBTUFMQUFDTUN3QUFXQXNBQUNRTEFBRHdDZ0FBdkFvQUFJZ0tBQUJVQ2dBQUlBb0FBT3dKQUFDNENRQUFoQWtBQUZBSkFBQWNDUUFBNkFnQUFMUUlBQUNFQ0FBQVVBZ0FBQ0FJQUFEd0J3QUF3QWNBQUl3SEFBQmNCd0FBR0FBQUFBQUFFZ0FZQUFnQUJnQUhBQXdBQUFBUUFCUUFFZ0FBQUFBQUFRd1lBQUFBcUFZQUFBZ0FBQUFjQUFBQUFRQUFBSndHQUFBSUFBQUFaMlZ2YldWMGNua0FBQUFBQWdBQUFGQUFBQUFFQUFBQXdQLy8veUFBQUFBRUFBQUFFQUFBQUdkbGIyRnljbTkzTG5CdmJIbG5iMjRBQUFBQUZBQUFBRUZTVWs5WE9tVjRkR1Z1YzJsdmJqcHVZVzFsQUFBQUFBZ0FEQUFFQUFnQUNBQUFBQXdHQUFBRUFBQUEvd1VBQUhzaVkzSnpJam9nSW50Y0lpUnpZMmhsYldGY0lqcGNJbWgwZEhCek9pOHZjSEp2YWk1dmNtY3ZjMk5vWlcxaGN5OTJNQzQzTDNCeWIycHFjMjl1TG5OamFHVnRZUzVxYzI5dVhDSXNYQ0owZVhCbFhDSTZYQ0pIWlc5bmNtRndhR2xqUTFKVFhDSXNYQ0p1WVcxbFhDSTZYQ0pYUjFNZ09EUmNJaXhjSW1SaGRIVnRYMlZ1YzJWdFlteGxYQ0k2ZTF3aWJtRnRaVndpT2x3aVYyOXliR1FnUjJWdlpHVjBhV01nVTNsemRHVnRJREU1T0RRZ1pXNXpaVzFpYkdWY0lpeGNJbTFsYldKbGNuTmNJanBiZTF3aWJtRnRaVndpT2x3aVYyOXliR1FnUjJWdlpHVjBhV01nVTNsemRHVnRJREU1T0RRZ0tGUnlZVzV6YVhRcFhDSXNYQ0pwWkZ3aU9udGNJbUYxZEdodmNtbDBlVndpT2x3aVJWQlRSMXdpTEZ3aVkyOWtaVndpT2pFeE5qWjlmU3g3WENKdVlXMWxYQ0k2WENKWGIzSnNaQ0JIWlc5a1pYUnBZeUJUZVhOMFpXMGdNVGs0TkNBb1J6Y3pNQ2xjSWl4Y0ltbGtYQ0k2ZTF3aVlYVjBhRzl5YVhSNVhDSTZYQ0pGVUZOSFhDSXNYQ0pqYjJSbFhDSTZNVEUxTW4xOUxIdGNJbTVoYldWY0lqcGNJbGR2Y214a0lFZGxiMlJsZEdsaklGTjVjM1JsYlNBeE9UZzBJQ2hIT0RjektWd2lMRndpYVdSY0lqcDdYQ0poZFhSb2IzSnBkSGxjSWpwY0lrVlFVMGRjSWl4Y0ltTnZaR1ZjSWpveE1UVXpmWDBzZTF3aWJtRnRaVndpT2x3aVYyOXliR1FnUjJWdlpHVjBhV01nVTNsemRHVnRJREU1T0RRZ0tFY3hNVFV3S1Z3aUxGd2lhV1JjSWpwN1hDSmhkWFJvYjNKcGRIbGNJanBjSWtWUVUwZGNJaXhjSW1OdlpHVmNJam94TVRVMGZYMHNlMXdpYm1GdFpWd2lPbHdpVjI5eWJHUWdSMlZ2WkdWMGFXTWdVM2x6ZEdWdElERTVPRFFnS0VjeE5qYzBLVndpTEZ3aWFXUmNJanA3WENKaGRYUm9iM0pwZEhsY0lqcGNJa1ZRVTBkY0lpeGNJbU52WkdWY0lqb3hNVFUxZlgwc2Uxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRWN4TnpZeUtWd2lMRndpYVdSY0lqcDdYQ0poZFhSb2IzSnBkSGxjSWpwY0lrVlFVMGRjSWl4Y0ltTnZaR1ZjSWpveE1UVTJmWDBzZTF3aWJtRnRaVndpT2x3aVYyOXliR1FnUjJWdlpHVjBhV01nVTNsemRHVnRJREU1T0RRZ0tFY3lNVE01S1Z3aUxGd2lhV1JjSWpwN1hDSmhkWFJvYjNKcGRIbGNJanBjSWtWUVUwZGNJaXhjSW1OdlpHVmNJam94TXpBNWZYMWRMRndpWld4c2FYQnpiMmxrWENJNmUxd2libUZ0WlZ3aU9sd2lWMGRUSURnMFhDSXNYQ0p6WlcxcFgyMWhhbTl5WDJGNGFYTmNJam8yTXpjNE1UTTNMRndpYVc1MlpYSnpaVjltYkdGMGRHVnVhVzVuWENJNk1qazRMakkxTnpJeU16VTJNMzBzWENKaFkyTjFjbUZqZVZ3aU9sd2lNaTR3WENJc1hDSnBaRndpT250Y0ltRjFkR2h2Y21sMGVWd2lPbHdpUlZCVFIxd2lMRndpWTI5a1pWd2lPall6TWpaOWZTeGNJbU52YjNKa2FXNWhkR1ZmYzNsemRHVnRYQ0k2ZTF3aWMzVmlkSGx3WlZ3aU9sd2laV3hzYVhCemIybGtZV3hjSWl4Y0ltRjRhWE5jSWpwYmUxd2libUZ0WlZ3aU9sd2lSMlZ2WkdWMGFXTWdiR0YwYVhSMVpHVmNJaXhjSW1GaVluSmxkbWxoZEdsdmJsd2lPbHdpVEdGMFhDSXNYQ0prYVhKbFkzUnBiMjVjSWpwY0ltNXZjblJvWENJc1hDSjFibWwwWENJNlhDSmtaV2R5WldWY0luMHNlMXdpYm1GdFpWd2lPbHdpUjJWdlpHVjBhV01nYkc5dVoybDBkV1JsWENJc1hDSmhZbUp5WlhacFlYUnBiMjVjSWpwY0lreHZibHdpTEZ3aVpHbHlaV04wYVc5dVhDSTZYQ0psWVhOMFhDSXNYQ0oxYm1sMFhDSTZYQ0prWldkeVpXVmNJbjFkZlN4Y0luTmpiM0JsWENJNlhDSkliM0pwZW05dWRHRnNJR052YlhCdmJtVnVkQ0J2WmlBelJDQnplWE4wWlcwdVhDSXNYQ0poY21WaFhDSTZYQ0pYYjNKc1pDNWNJaXhjSW1KaWIzaGNJanA3WENKemIzVjBhRjlzWVhScGRIVmtaVndpT2kwNU1DeGNJbmRsYzNSZmJHOXVaMmwwZFdSbFhDSTZMVEU0TUN4Y0ltNXZjblJvWDJ4aGRHbDBkV1JsWENJNk9UQXNYQ0psWVhOMFgyeHZibWRwZEhWa1pWd2lPakU0TUgwc1hDSnBaRndpT250Y0ltRjFkR2h2Y21sMGVWd2lPbHdpUlZCVFIxd2lMRndpWTI5a1pWd2lPalF6TWpaOWZTSjlBQmdBQUFCQlVsSlBWenBsZUhSbGJuTnBiMjQ2YldWMFlXUmhkR0VBQUFBQTJQTC8vNlR5Ly84QUFBRU1GQUFBQUJ3QUFBQUVBQUFBQVFBQUFCUUFBQUFFQUFBQWFYUmxiUUFBQUFBRTgvLy8wUEwvL3dBQUFSQVVBQUFBSEFBQUFBUUFBQUFCQUFBQUdBQUFBQVFBQUFCcGRHVnRBQUFBQU1ieS8vOENBQUFBQVBQLy93QUFBUU1RQUFBQUdBQUFBQVFBQUFBQUFBQUFCQUFBQUdsMFpXMEFBQUFBTXZQLy93QUFBZ0FzOC8vL0FBQUJBaEFBQUFBWUFBQUFCQUFBQUFBQUFBQUhBQUFBVkVoRlJsUmZSQUFlOC8vL0NBQUFBRmp6Ly84QUFBRUNFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBZ0FBQUJCVTFOQlRGUmZSQUFBQUFCTzgvLy9DQUFBQUlqei8vOEFBQUVDRUFBQUFCZ0FBQUFFQUFBQUFBQUFBQVlBQUFCQ1ZWSkhYMFFBQUhyei8vOElBQUFBdFBQLy93QUFBUUlRQUFBQUdBQUFBQVFBQUFBQUFBQUFCUUFBQUZSSVJVWlVBQUFBcHZQLy93Z0FBQURnOC8vL0FBQUJBaEFBQUFBWUFBQUFCQUFBQUFBQUFBQUhBQUFBUVZOVFFWVk1WQURTOC8vL0NBQUFBQXowLy84QUFBRUNFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBZ0FBQUJDVlZKSFRFRlNXUUFBQUFBQzlQLy9DQUFBQUR6MC8vOEFBQUVERUFBQUFCZ0FBQUFFQUFBQUFBQUFBQWNBQUFCRVJVNVRTVlJaQUc3MC8vOEFBQUlBYVBULy93QUFBUU1RQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUZKRlRsUkZVbDlUU1ZvQUFKNzAvLzhBQUFFQW1QVC8vd0FBQVFNUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ2dBQUFFOVhUa1ZTWDFOSldrVUFBTTcwLy84QUFBRUF5UFQvL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRTlEUTBoVlgxSkZUbFFBQUw3MC8vOFFBQUFBK1BULy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUU5RFEwaFZYMDlYVGtVQUFPNzAvLzhJQUFBQUtQWC8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ1FBQUFFaFZYMVpCUTBGT1ZBQUFBQjcxLy84SUFBQUFXUFgvL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRWhWWDA5RFExVlFTVVVBQUU3MS8vOFFBQUFBaVBYLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUVoVFRrZGZWVTVKVkZNQUFINzEvLzhRQUFBQXVQWC8vd0FBQVFNUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ2dBQUFFRldSMTlHUVUxVFNWb0FBTzcxLy84QUFBRUE2UFgvL3dBQUFRTVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRUZXUjE5SVNGTkpXa1VBQUI3Mi8vOEFBQUVBR1BiLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUVoSVgwNVBUa1pCVFVrQUFBNzIvLzhRQUFBQVNQYi8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ1FBQUFFaElYMFpCVFVsTVdRQUFBRDcyLy84UUFBQUFlUGIvL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRWhQVlZORlNFOU1SRk1BQUc3Mi8vOFFBQUFBcVBiLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUVkUlgwNVBUa2xPVTFRQUFKNzIvLzhRQUFBQTJQYi8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ2dBQUFFZFJYMGxPVTFSSlZGVUFBTTcyLy84SUFBQUFDUGYvL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRWRTVDFWUVgxRlZRVklBQVA3Mi8vOFFBQUFBT1BmLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUVsT1gwaFBWVk5GU0U4QUFDNzMvLzhRQUFBQWFQZi8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ0FBQUFFNUlYMWRJU1ZSRkFBQUFBRjczLy84UUFBQUFtUGYvL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRTVQVkY5SVNWTlFRVTRBQUk3My8vOFFBQUFBeVBmLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDZ0FBQUVGUVgwaEpVMUJCVGtrQUFMNzMvLzhJQUFBQStQZi8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ0FBQUFFRlFYMDlVU0VWU0FBQUFBTzczLy84SUFBQUFLUGovL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRUZRWDBoQlYwRkpTVUVBQUI3NC8vOElBQUFBV1BqLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDQUFBQUVGUVgwRlRTVUZPQUFBQUFFNzQvLzhRQUFBQWlQai8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ2dBQUFFRlFYMEZOU1U1RVNVRUFBSDc0Ly84SUFBQUF1UGovL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNBQUFBRUZRWDBKTVFVTkxBQUFBQUs3NC8vOFFBQUFBNlBqLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDQUFBQUVGUVgxZElTVlJGQUFBQUFONzQvLzhRQUFBQUdQbi8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ0FBQUFFWXlYMUpCUTBWVEFBQUFBQTc1Ly84SUFBQUFTUG4vL3dBQUFRSVFBQUFBSEFBQUFBUUFBQUFBQUFBQUNnQUFBRTlVU0VWU1gxSkJRMFVBQUQ3NS8vOElBQUFBZVBuLy93QUFBUUlRQUFBQUhBQUFBQVFBQUFBQUFBQUFDQUFBQUVoQlYwRkpTVUZPQUFBQUFHNzUvLzhJQUFBQXFQbi8vd0FBQVFJUUFBQUFHQUFBQUFRQUFBQUFBQUFBQlFBQUFFRlRTVUZPQUFBQW12bi8veEFBQUFEVStmLy9BQUFCQWhBQUFBQWNBQUFBQkFBQUFBQUFBQUFJQUFBQVFVMUpUa1JKUVU0QUFBQUF5dm4vL3dnQUFBQUUrdi8vQUFBQkFoQUFBQUFZQUFBQUJBQUFBQUFBQUFBRkFBQUFRa3hCUTBzQUFBRDIrZi8vRUFBQUFERDYvLzhBQUFFQ0VBQUFBQmdBQUFBRUFBQUFBQUFBQUFVQUFBQlhTRWxVUlFBQUFDTDYvLzhRQUFBQVhQci8vd0FBQVFJUUFBQUFHQUFBQUFRQUFBQUFBQUFBQndBQUFFWXhYMUpCUTBVQVR2ci8veEFBQUFDSSt2Ly9BQUFCQWhBQUFBQWNBQUFBQkFBQUFBQUFBQUFKQUFBQVJrVk5RVXhGWHpZMUFBQUFmdnIvL3dnQUFBQzQrdi8vQUFBQkFoQUFBQUFZQUFBQUJBQUFBQUFBQUFBSEFBQUFUVUZNUlY4Mk5RQ3Erdi8vQ0FBQUFPVDYvLzhBQUFFQ0VBQUFBQmdBQUFBRUFBQUFBQUFBQUFZQUFBQkJSMFZmTmpVQUFOYjYvLzhJQUFBQUVQdi8vd0FBQVFJUUFBQUFHQUFBQUFRQUFBQUFBQUFBQmdBQUFFRkhSVjgyTWdBQUF2di8veEFBQUFBOCsvLy9BQUFCQWhBQUFBQVlBQUFBQkFBQUFBQUFBQUFHQUFBQVFVZEZYekl4QUFBdSsvLy9FQUFBQUdqNy8vOEFBQUVDRUFBQUFCd0FBQUFFQUFBQUFBQUFBQWtBQUFCR1JVMUJURVZmTVRnQUFBQmUrLy8vRUFBQUFKajcvLzhBQUFFQ0VBQUFBQmdBQUFBRUFBQUFBQUFBQUFjQUFBQk5RVXhGWHpFNEFJcjcvLzhRQUFBQXhQdi8vd0FBQVFJUUFBQUFHQUFBQUFRQUFBQUFBQUFBQmdBQUFFRkhSVjh4T0FBQXR2di8veEFBQUFEdysvLy9BQUFCQXhBQUFBQWNBQUFBQkFBQUFBQUFBQUFLQUFBQVRVVkVTVUZPWDBGSFJRQUFKdnovL3dBQUFRQWcvUC8vQUFBQkFoQUFBQUFZQUFBQUJBQUFBQUFBQUFBR0FBQUFRVWRGWHpnMUFBQVMvUC8vQ0FBQUFFejgvLzhBQUFFQ0VBQUFBQndBQUFBRUFBQUFBQUFBQUFrQUFBQkJSMFZmTnpWZk9EUUFBQUJDL1AvL0NBQUFBSHo4Ly84QUFBRUNFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBa0FBQUJCUjBWZk5qVmZOelFBQUFCeS9QLy9DQUFBQUt6OC8vOEFBQUVDRUFBQUFCd0FBQUFFQUFBQUFBQUFBQWtBQUFCQlIwVmZOakJmTmpRQUFBQ2kvUC8vQ0FBQUFOejgvLzhBQUFFQ0VBQUFBQndBQUFBRUFBQUFBQUFBQUFrQUFBQkJSMFZmTlRWZk5Ua0FBQURTL1AvL0NBQUFBQXo5Ly84QUFBRUNFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBa0FBQUJCUjBWZk5EVmZOVFFBQUFBQy9mLy9DQUFBQUR6OS8vOEFBQUVDRUFBQUFCd0FBQUFFQUFBQUFBQUFBQWtBQUFCQlIwVmZNelZmTkRRQUFBQXkvZi8vQ0FBQUFHejkvLzhBQUFFQ0VBQUFBQndBQUFBRUFBQUFBQUFBQUFrQUFBQkJSMFZmTWpWZk16UUFBQUJpL2YvL0NBQUFBSno5Ly84QUFBRUNFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBa0FBQUJCUjBWZk1qQmZNalFBQUFDUy9mLy9FQUFBQU16OS8vOEFBQUVDRUFBQUFCd0FBQUFFQUFBQUFBQUFBQWtBQUFCQlIwVmZNVFZmTVRrQUFBREMvZi8vRUFBQUFQejkvLzhBQUFFQ0VBQUFBQndBQUFBRUFBQUFBQUFBQUFrQUFBQkJSMFZmTVRCZk1UUUFBQUR5L2YvL0NBQUFBQ3orLy84QUFBRUNFQUFBQUJnQUFBQUVBQUFBQUFBQUFBY0FBQUJCUjBWZk5WODVBQjcrLy84SUFBQUFXUDcvL3dBQUFRSVFBQUFBR0FBQUFBUUFBQUFBQUFBQUJ3QUFBRUZIUlY4d1h6VUFTdjcvL3dnQUFBQ0Uvdi8vQUFBQkFoQUFBQUFZQUFBQUJBQUFBQUFBQUFBR0FBQUFSa1ZOUVV4RkFBQjIvdi8vRUFBQUFMRCsvLzhBQUFFQ0VBQUFBQmdBQUFBRUFBQUFBQUFBQUFRQUFBQk5RVXhGQUFBQUFLTCsvLzhRQUFBQTNQNy8vd0FBQVFJUUFBQUFIQUFBQUFRQUFBQUFBQUFBQ2dBQUFGQlBVRlZNUVZSSlQwNEFBTkwrLy84UUFBQUFEUC8vL3dBQUFRVVFBQUFBRkFBQUFBUUFBQUFBQUFBQUF3QUFBRTFUUVFCay8vLy9NUC8vL3dBQUFRVVFBQUFBR0FBQUFBUUFBQUFBQUFBQUJnQUFBRU5QVlU1VVdRQUFqUC8vLzFqLy8vOEFBQUVGRUFBQUFCZ0FBQUFFQUFBQUFBQUFBQVVBQUFCVVVrRkRWQUFBQUxULy8vK0EvLy8vQUFBQkJSQUFBQUFVQUFBQUJBQUFBQUFBQUFBQ0FBQUFRa2NBQU5qLy8vK2svLy8vQUFBQkJSQUFBQUFjQUFBQUJBQUFBQUFBQUFBRkFBQUFRa3hQUTBzQUFBQUVBQVFBQkFBQUFORC8vLzhBQUFFREVBQUFBQndBQUFBRUFBQUFBQUFBQUFRQUFBQkJVa1ZCQUFBR0FBZ0FCZ0FHQUFBQUFBQUJBQkFBRkFBSUFBWUFCd0FNQUFBQUVBQVFBQUFBQUFBQkFoQUFBQUFjQUFBQUJBQUFBQUFBQUFBQ0FBQUFTVVFBQUFBQUJnQUlBQVFBQmdBQUFDQUFBQUE9ABggcGFycXVldC1jcHAtYXJyb3cgdmVyc2lvbiAxNC4wLjEZ/EkcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAcAAAAZY8AAFBBUjE="
}
]
},
"a1eb810c503d4ada9be480153c85e8ec": {
"model_name": "WidgetModel",
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"state": {
"_layer_type": "scatterplot",
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "WidgetModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"antialiasing": null,
"auto_highlight": false,
"billboard": null,
"extensions": [
"IPY_MODEL_af8527bd0f93415aabe49c86d06b5ea8"
],
"filled": true,
"get_fill_color": null,
"get_line_color": null,
"get_line_width": null,
"get_radius": null,
"line_width_max_pixels": null,
"line_width_min_pixels": 2.0,
"line_width_scale": null,
"line_width_units": null,
"opacity": 1.0,
"pickable": true,
"radius_max_pixels": null,
"radius_min_pixels": null,
"radius_scale": 30.0,
"radius_units": null,
"selected_index": null,
"stroked": false,
"table": [
null
],
"visible": true,
"brushing_enabled": true,
"brushing_target": null,
"brushing_radius": 30.0,
"get_brushing_target": null
},
"buffers": [
{
"encoding": "base64",
"path": [
"table",
0
],
"data": "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cskptxxzzTnXnHPHIdecc8UZ9xx00Uk3HXXVWXcddtNRl51223HXnXffgVeddeGJNx5512EXnXTZaVeeed15F5103Xl3Hnrpqbcee+25F55445H3HnzxyUdBBfPRV555FFQwHXXxydeddyikELcdd+WZ58EHIITQm2/z0ReffCikUODBB915h0IK56EnwwzbceewHnvbcVeffe25V4MNHnxwHnr34bcdd+ehdx9+9dknwwzrsUdDDPnZV4MNMMRwH35ABJGeeuuxl599+u0HRBD67ZeDDjTEkJ99/PXXnHPLMfcefM9Btx136amn335deOTffxJMYMIJLLQQhhgSTKDCCiaccBNOPv2k1FISTMBBB1NQodVWV2ABYIBSBOHEEwIOSGCBUgQxBRUCDghggFVYcQUWJ6GUkkpKLcVggFNQcQUWWm11EkpcdTUTTS/BpNQABvgSTAYeiGCCf/z1J8QQCCao4IL67cdff0IMYeCBCi6IRBJIJMFggyOR9AYcRBRhxBEOPghhhEYc4cQTDj5IYIEQRijhg0gk4eCDDDY4IYUKLghhhCORNCGFJZkUk0whiaTgggw2+AYcZ6ARkkgKLlihhRdimKGGG3J4Bx4delgh4YMpqeTggwQWOCGFK7EEYYQMNijhgy25NEhggSuxNBNNEj6YkkoTUrgSSx15xGCDLbm0A0884XDzIYjyzBOiiCOSGBORROqs8w048swzIonqrOPOOyWaCE8RSeTOO/LMEyPPPCeimKKKK7LYoosvwhijjC26OCONNdq4EEMTUXQiiimqeCOOOeqYoooLMbQiizvy2KOPPwIZk6KKNdo4EUUNOURQQSmquBBDOerYkENBClmRRTHKmKOOM9J4GmpDElmkkZNRNiONl2EWo4wTUXQjjkMSmZFGkUmWo45FGnkkkjPSGJlkQxI5GWVJKunOOwsxNBFFQQr5EEQTUdSQQwQV7rxDUEENORSkkBVZdBpqj0EWmWRFGpmkkq25VnYkkkMSmaSSGWnUmmsEFURQQTnqeCSSG3H0GGQbcURQQY9BlpFGrbnmk402yizDSy/EFINDTTXGHOPPP0sy6cADzDSDQAIOPMCjzz4ABbQkk006GdSkk09CKdBASzL5JJRLMtmkk1FK6cADUUo5JZUOPPAklFVaOSWVfw48UKWVUUp5JZZTUunAA1lqyUwzDjzATDO/AReccAosGaWUV2LJQANbcpmllg48cCWWDjzQpZddeunHH4IMQkgh34E3HnmABNJiyCFfghmmmGMuQmaZXXpJSCGKLBKddIAEUp1145F3HXbRSfcdeIQUMh5578FHSCFklmlmme/BF51023E3HnnRSbcdd4AE8h14X4IZnnjvwdell4osMuYiZJa5HHNdemky5iKEFIJIIoosQmaZhBQSpphm78EXpphkltmcc8kph0giZJb5HnzbcZeccu259yWYYYo5HnlwxbUXX3Y9EphgZ6K5F192PXImmmniRUkle/HVl19/AabmmmeiyWabe/H2F2Bqrunmm26+CWecVFVl1VVyzklnnSuyiFRSUk2VmGJjkWXnnYkp5uabdNY5GGFqrinnnHTWCWeceOa5I4+JKSbnnG6+uSKLM9F0VZNNYMEvwQQWTHrueSGGfPbp1VcvwVSTTWGJpeeefv4p1VRgwTQWWX7+WcRnn4AGKuigM9L4Bhw12ZShhoQWauihb8BxIYYbcohoooYe+gYcGWqIaKKKLspooxdiyGefjj5q6KE12aTnnoQW6uijM9Jo6KGVWcZoo5BGKtVUfv5p55167unnn5JOKuigYMEUBWigdt4JaKB+/inooHru6aRWXTW5IostuvgijDXamJhidNZp55078vgijH8noig5I42EFspnn4YeOnYhhhlqSGihiCbq6KOUVmrppZhmqummlFbKaaeabupppZ+CymmnoYo6KqmfgkpppaWaeiqqqaq6Kquturobb5x2eiqqu/HWm28WXHAqqq/CGqusW3ABQggQRNCbbxRUMBttW3DBaaelmjobba/Cuiqru/E2G22nojorrbHKymmntdp6K66jkpqqqrfimquuu/I6Kqm34jorramqWqutq7Laq69fgJGrrr36Gquss9H2Kqyz0roFwgixyvoFGFlo0auvscq6BRdlmFGrrb36WoYZ/v3XhRf+/TcGGbnqWoYZu/K6E0+/AhussMMSOxpppZlWrLGvwXYssqWZ1pdfizEWmGBstpmssssyGyyzcMZ5JpqOPLIss806S0kloozCSCPJKtuss6SUciaacMbZrLNstrkss89Ci2eeySrryCPLMhuttM9Cy0gjllyiyiqOPBKttM06S0op01KLSy7TUluttR+CGHstth+C6OabcMbZo4/VWlujjT36WKONPwL5LLR45vkjkB+CmK22NdrYG6KIEUmkyirRSnsttrz0Mi21uOSCTTQfgmhizDHZaANNNNdiy0sv4XCzDTffgIP4DTjPQjsttdVaey224XCTrbYjklhYook/ApmtthFJVKKJ8MTzIYjZauto0EHyzINQQjXa+COQIYq4LbfdevstuH/hihussL8COy6534L7K7C78jouubXa6t9/wQo7LrnlmnsuusMSG664wQq7K6/pqrsuu1EV1a6645LbexZa7arr7rvwxrsrr+eiuyuv5Zq7/v23K++8RBW1E09EFZWTTkAFtSuvO/Ek77xRFdWWWW69tUVvvfbei2++aq01LrlEFXW7Lbf67jsuufz26+6723Kr776QRLIuu+2qC2+8/v4L8L8BCzwwwfz22666+u7brbcFG8xvvwcjrFKwweuy6+679Nbr779noQVvvAkrbO+9CzPsC/C/CSvs7rv+/tuwwwELTG+9CzP8MMQRSwwcscQBC3wWWvTWuzDD+OZLb70T53sWWvbeq9ZaE+fr1ltnoYVvvmytlbDCFFc8cb534ZWwwg07THHFFl+cl14YZ7z7MMRsreXWW2qtNdYjD0PM1lp56ZXWIxRXfBdejTnm7rsA/9uww5BEYvHFGm8syiiMNNKuugcjHLDAGm9csMGmnCLJJBFLHLDAGGes8cYUV2zxxY05pvHGdj2SzHHHaeIVsMCSTNKYYxpvnCZekkyyxnHHlFQyMMHbcstJJx5/DHLI3XrryScFGwxKKN16C9Kttx5/7MknqKTCSivdettyezDCkETCSSeghGLKKaikwkknBRtsyimMNGLJJZBEovHGHHdMshhjf8kqmyLyyCSXPCqpJp+McsoqrzwqqSKPzHLLKq9McskuvwxzzKOSKvPMNNds880456xzzSinrPLKLLesc80mn8xyy5ZeujPPMMeMaaaabmrzzT1n6mmlLr/s88+hiuryyz7/DDSpoYoatNA+/zwqqUELzXLLLr8MNKmjkk1ppSinLPLIKq/McsuhigpzzECTGrTQwxKrCvotuJ5W6vLL6vLLmGbaqqtDE1200Zx2qummRRt9NNK78cZyyzbfzHLLSSttzJy00kszTXPNPWfKcssyz0xzzU07XZttt+H2NNS56dZzplFLnZtuPWc6NdVVW52bblNTvfY01Lfh1ptvT0Ndm2256dabb007XbXVUUt9G249Z7obby6/bPPNuel2NdZTUz000bvx1nOmWWu9G29VWx211Jpu2nOmV2NdtNGabtqqq1djPTTRRyN9NdZHI70bb626Wr35FptsnHZaqqmnotqqq3qdtdZHI80yz2zyySinTHLJo5Kqc83HIVefffnZ1557Bh7IX39ABCHEEAYeqN9+p6GGehlmkEaamWYnongjjpFJNiSReu7JZ5+CDtqii44+ehlmp6EWmWSVWTYjjWegcUceW8uhxx5noNGGG3XYwXXXXn/NRx9cd30GGm/AcUceHXoIdtg9Z6ARhxx34LG1HGCHHYccd+Qh9th67EF22W/AcQceYIfNaKN34Cj22Iw2uk122Yw2avbZW8vBdddklz2hxx5by8FHH2inPa322nz04fXXfPTRhhtz0O3112qvjXbabLe9IYeMNrohh4gm2qGHYIct9tiKLur222afzWijZp8NaaRwxy3q9ttopy333GSXzUcfZp9Nd91st41oopVZ5vbbcMedmWZ89IF22sUa6/bbkEYq99ydeWb22XTXDXfcnXn2GGSVWQZppJ15Bnfccs+dmWalmcciOxppdNctdiyydNfNdtuAuiggQoMYI5nzEoBFH7L/1/5sBj+At10guRPa8JqJwSakZwCW1fUumFBrVxcsEX/HdVgx3EpJsl0XRM2Ls2HToLihuE7wuNZUJTC7EVRfI/NQeSteVCEvLxDEdIxRP6Sj5ToL7WjTdI5BgldQqIvJ84YwHFvycOplUK+lA62++dmchsSTlwaiMcTSWZpEQTmkEWtDiOqtPMdQXH/1HrEjsFrUn5q7uqPUJIvbVmBkmJxlACnLGAzSnGAU2DJLbTzAxq7H6qhj7QE+UrG+JZKj7+0HVyVEk+oBKxTt/ieeH8jG6DrY87QaFXJcj635v6FAO641Un54RAqIMORzbDHqnCUmhJsDWBPGgAbpuhciDub4gPe8xH//OaTByxo+IQ42EXfhuZk9ITZZV7BG9mTBGQCqKYr0vfI9wvh1uXOr9ZK6KB8b97vH+cqyuvGoBJpVEVYstJvPembTfcL88IGBXSwGBt9gLHz0btWhJXSFslH4YRBelU56xXmsDycwhF07u0SggN3UydJ1HCwLeWiUG1wjq/tLJGn1DJ6uH7uJokZ4qBBS3x104oQ4SO+QW2BaUAQmxqgBHBUKGTUABhAZOAhnZW9tZXRyeQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWvqgBJrxaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABUEGUw1ABgGc2NoZW1hFQIANQIYCGdlb21ldHJ5FQIVBkw8AAAANQQYBGxpc3QVAgAVCiUCGAdlbGVtZW50ABawIRkcGRwmxqgBHBUKGTUABhAZOAhnZW9tZXRyeQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWvqgBJrxaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABaizAEWsCEmCBa+qAEUAAAZLBgGcGFuZGFzGLUCeyJpbmRleF9jb2x1bW5zIjogW3sia2luZCI6ICJyYW5nZSIsICJuYW1lIjogbnVsbCwgInN0YXJ0IjogMCwgInN0b3AiOiAyMTM2LCAic3RlcCI6IDF9XSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogImVtcHR5IiwgIm51bXB5X3R5cGUiOiAib2JqZWN0IiwgIm1ldGFkYXRhIjogbnVsbH1dLCAiY29sdW1ucyI6IFtdLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJweWFycm93IiwgInZlcnNpb24iOiAiMTQuMC4xIn0sICJwYW5kYXNfdmVyc2lvbiI6ICIyLjEuNCJ9ABgMQVJST1c6c2NoZW1hGJgXLy8vLy82Z0lBQUFRQUFBQUFBQUtBQTRBQmdBRkFBZ0FDZ0FBQUFBQkJBQVFBQUFBQUFBS0FBd0FBQUFFQUFnQUNnQUFBR1FCQUFBRUFBQUFBUUFBQUFRQUFBQVkvdi8vUkFFQUFBUUFBQUExQVFBQWV5SnBibVJsZUY5amIyeDFiVzV6SWpvZ1czc2lhMmx1WkNJNklDSnlZVzVuWlNJc0lDSnVZVzFsSWpvZ2JuVnNiQ3dnSW5OMFlYSjBJam9nTUN3Z0luTjBiM0FpT2lBeU1UTTJMQ0FpYzNSbGNDSTZJREY5WFN3Z0ltTnZiSFZ0Ymw5cGJtUmxlR1Z6SWpvZ1czc2libUZ0WlNJNklHNTFiR3dzSUNKbWFXVnNaRjl1WVcxbElqb2diblZzYkN3Z0luQmhibVJoYzE5MGVYQmxJam9nSW1WdGNIUjVJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWliMkpxWldOMElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMWRMQ0FpWTI5c2RXMXVjeUk2SUZ0ZExDQWlZM0psWVhSdmNpSTZJSHNpYkdsaWNtRnllU0k2SUNKd2VXRnljbTkzSWl3Z0luWmxjbk5wYjI0aU9pQWlNVFF1TUM0eEluMHNJQ0p3WVc1a1lYTmZkbVZ5YzJsdmJpSTZJQ0l5TGpFdU5DSjlBQUFBQmdBQUFIQmhibVJoY3dBQUFRQUFBQmdBQUFBQUFCSUFHQUFJQUFZQUJ3QU1BQUFBRUFBVUFCSUFBQUFBQUFFUUdBQUFBS2dHQUFBSUFBQUFIQUFBQUFFQUFBQ3dCZ0FBQ0FBQUFHZGxiMjFsZEhKNUFBQUFBQUlBQUFCTUFBQUFCQUFBQU1ULy8vOGNBQUFBQkFBQUFBNEFBQUJuWlc5aGNuSnZkeTV3YjJsdWRBQUFGQUFBQUVGU1VrOVhPbVY0ZEdWdWMybHZianB1WVcxbEFBQUFBQWdBREFBRUFBZ0FDQUFBQUF3R0FBQUVBQUFBL3dVQUFIc2lZM0p6SWpvZ0ludGNJaVJ6WTJobGJXRmNJanBjSW1oMGRIQnpPaTh2Y0hKdmFpNXZjbWN2YzJOb1pXMWhjeTkyTUM0M0wzQnliMnBxYzI5dUxuTmphR1Z0WVM1cWMyOXVYQ0lzWENKMGVYQmxYQ0k2WENKSFpXOW5jbUZ3YUdsalExSlRYQ0lzWENKdVlXMWxYQ0k2WENKWFIxTWdPRFJjSWl4Y0ltUmhkSFZ0WDJWdWMyVnRZbXhsWENJNmUxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdaVzV6WlcxaWJHVmNJaXhjSW0xbGJXSmxjbk5jSWpwYmUxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRlJ5WVc1emFYUXBYQ0lzWENKcFpGd2lPbnRjSW1GMWRHaHZjbWwwZVZ3aU9sd2lSVkJUUjF3aUxGd2lZMjlrWlZ3aU9qRXhOalo5ZlN4N1hDSnVZVzFsWENJNlhDSlhiM0pzWkNCSFpXOWtaWFJwWXlCVGVYTjBaVzBnTVRrNE5DQW9SemN6TUNsY0lpeGNJbWxrWENJNmUxd2lZWFYwYUc5eWFYUjVYQ0k2WENKRlVGTkhYQ0lzWENKamIyUmxYQ0k2TVRFMU1uMTlMSHRjSW01aGJXVmNJanBjSWxkdmNteGtJRWRsYjJSbGRHbGpJRk41YzNSbGJTQXhPVGcwSUNoSE9EY3pLVndpTEZ3aWFXUmNJanA3WENKaGRYUm9iM0pwZEhsY0lqcGNJa1ZRVTBkY0lpeGNJbU52WkdWY0lqb3hNVFV6Zlgwc2Uxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRWN4TVRVd0tWd2lMRndpYVdSY0lqcDdYQ0poZFhSb2IzSnBkSGxjSWpwY0lrVlFVMGRjSWl4Y0ltTnZaR1ZjSWpveE1UVTBmWDBzZTF3aWJtRnRaVndpT2x3aVYyOXliR1FnUjJWdlpHVjBhV01nVTNsemRHVnRJREU1T0RRZ0tFY3hOamMwS1Z3aUxGd2lhV1JjSWpwN1hDSmhkWFJvYjNKcGRIbGNJanBjSWtWUVUwZGNJaXhjSW1OdlpHVmNJam94TVRVMWZYMHNlMXdpYm1GdFpWd2lPbHdpVjI5eWJHUWdSMlZ2WkdWMGFXTWdVM2x6ZEdWdElERTVPRFFnS0VjeE56WXlLVndpTEZ3aWFXUmNJanA3WENKaGRYUm9iM0pwZEhsY0lqcGNJa1ZRVTBkY0lpeGNJbU52WkdWY0lqb3hNVFUyZlgwc2Uxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRWN5TVRNNUtWd2lMRndpYVdSY0lqcDdYQ0poZFhSb2IzSnBkSGxjSWpwY0lrVlFVMGRjSWl4Y0ltTnZaR1ZjSWpveE16QTVmWDFkTEZ3aVpXeHNhWEJ6YjJsa1hDSTZlMXdpYm1GdFpWd2lPbHdpVjBkVElEZzBYQ0lzWENKelpXMXBYMjFoYW05eVgyRjRhWE5jSWpvMk16YzRNVE0zTEZ3aWFXNTJaWEp6WlY5bWJHRjBkR1Z1YVc1blhDSTZNams0TGpJMU56SXlNelUyTTMwc1hDSmhZMk4xY21GamVWd2lPbHdpTWk0d1hDSXNYQ0pwWkZ3aU9udGNJbUYxZEdodmNtbDBlVndpT2x3aVJWQlRSMXdpTEZ3aVkyOWtaVndpT2pZek1qWjlmU3hjSW1OdmIzSmthVzVoZEdWZmMzbHpkR1Z0WENJNmUxd2ljM1ZpZEhsd1pWd2lPbHdpWld4c2FYQnpiMmxrWVd4Y0lpeGNJbUY0YVhOY0lqcGJlMXdpYm1GdFpWd2lPbHdpUjJWdlpHVjBhV01nYkdGMGFYUjFaR1ZjSWl4Y0ltRmlZbkpsZG1saGRHbHZibHdpT2x3aVRHRjBYQ0lzWENKa2FYSmxZM1JwYjI1Y0lqcGNJbTV2Y25Sb1hDSXNYQ0oxYm1sMFhDSTZYQ0prWldkeVpXVmNJbjBzZTF3aWJtRnRaVndpT2x3aVIyVnZaR1YwYVdNZ2JHOXVaMmwwZFdSbFhDSXNYQ0poWW1KeVpYWnBZWFJwYjI1Y0lqcGNJa3h2Ymx3aUxGd2laR2x5WldOMGFXOXVYQ0k2WENKbFlYTjBYQ0lzWENKMWJtbDBYQ0k2WENKa1pXZHlaV1ZjSW4xZGZTeGNJbk5qYjNCbFhDSTZYQ0pJYjNKcGVtOXVkR0ZzSUdOdmJYQnZibVZ1ZENCdlppQXpSQ0J6ZVhOMFpXMHVYQ0lzWENKaGNtVmhYQ0k2WENKWGIzSnNaQzVjSWl4Y0ltSmliM2hjSWpwN1hDSnpiM1YwYUY5c1lYUnBkSFZrWlZ3aU9pMDVNQ3hjSW5kbGMzUmZiRzl1WjJsMGRXUmxYQ0k2TFRFNE1DeGNJbTV2Y25Sb1gyeGhkR2wwZFdSbFhDSTZPVEFzWENKbFlYTjBYMnh2Ym1kcGRIVmtaVndpT2pFNE1IMHNYQ0pwWkZ3aU9udGNJbUYxZEdodmNtbDBlVndpT2x3aVJWQlRSMXdpTEZ3aVkyOWtaVndpT2pRek1qWjlmU0o5QUJnQUFBQkJVbEpQVnpwbGVIUmxibk5wYjI0NmJXVjBZV1JoZEdFQUFBWUFDQUFFQUFZQUFBQUNBQUFBRUFBVUFBZ0FCZ0FIQUF3QUFBQVFBQkFBQUFBQUFBRURFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBUUFBQUJwZEdWdEFBQUdBQWdBQmdBR0FBQUFBQUFDQUE9PQAYIHBhcnF1ZXQtY3BwLWFycm93IHZlcnNpb24gMTQuMC4xGRwcAAAA3w0AAFBBUjE="
}
]
},
"c57c15bb2db14041a1344223cc379029": {
"model_name": "WidgetModel",
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"state": {
"_layer_type": "scatterplot",
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "WidgetModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"antialiasing": null,
"auto_highlight": false,
"billboard": null,
"extensions": [
"IPY_MODEL_af8527bd0f93415aabe49c86d06b5ea8"
],
"filled": true,
"get_fill_color": null,
"get_line_color": null,
"get_line_width": null,
"get_radius": null,
"line_width_max_pixels": null,
"line_width_min_pixels": 2.0,
"line_width_scale": null,
"line_width_units": null,
"opacity": 1.0,
"pickable": false,
"radius_max_pixels": null,
"radius_min_pixels": null,
"radius_scale": 15.0,
"radius_units": null,
"selected_index": null,
"stroked": false,
"table": [
null
],
"visible": true,
"brushing_enabled": true,
"brushing_target": null,
"brushing_radius": 30.0,
"get_brushing_target": null
},
"buffers": [
{
"encoding": "base64",
"path": [
"table",
0
],
"data": "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KaSUppRip6ByCiqSiiqpqLIKK6uw0oorrbjyCiyvwBKLLLHIMgsts9BSiy212LfQcguCSy645LrsosvCSy+89OLLL778AkwwwAQDwgwjzMQUQ0wxY8wxxhx/yCSDTDLKLKPMMsosw8wuzOzC0owzzTjT8ww0z0DzDDTRSBON01AzDTVTjTXVWHMNNtdgk4022WizDTfbcLMNN914043fgPMNOOGIE47jkDMOOeWYU45zDjrnoJOOOumosw4767DtuPMOPO/AE4888cgTjzzz0DMPPfPQU4899dj34HMPPvnok48++eizDz/78P34048//wD0D0D/ABSQQAEJNBBBAxEFGVSQByF0EEIJKZSQCzG0EEMNOdSQQw059BBED0EUkUQRSTQRRRNRVFEDFTVQYNFFFl1khNFFGJSRCRmZkKDRRhptpMRRRxx1Hn3k0SCFBFJIIo0k0iSVRFJJJp1k0iilhFJKKq2k0iy1xFJLLr3k0jDFBFNMMs0k00RTTTTVZNNNNt045YRTTn845aTTTjrtPPXEU08+/eTTQAUFVFBCDSXURBVFVFFGHWXUSCWFVFKl1FJKLcVUU0495dQFVVRQRSVVUVIVNRVVU1FVlVVVWXUVVldhlZVWWWm1FVdbcdWVV115X4H1FVhhiRWWWGORNRZZZZlVlnUWWmehdRZaaZmVlllqraXWWmy1xVZbbr3l1gVXXHDFJddccs101UVXXWXXXXbdeOWFV1545aXXXnrtxVdffPV+/eXXBVhggAUGJthggg2EFUZYYYYdZtiIJYZYYqbYYootxlhjjDXGWGOOPebYkEUm2WSSTUZZZZRVZtllll2GWWaYZZptptnGWWecdZ595tlnnn0GWmighSbaaKKNRlpppJVGWmmmnWbaqKWGWmqopabaaqqtptpqf6qtxlprrLXGWmuuvebaa669BltssMUm22yyzbTVZttttt2GW2645YZbbrrtptu89cZbb7z15ttvvv3ABQdccMAFJ9xwwg1HXHHEFUdcccYdZ9xxxh2HXHLIJafccsotp9xyzDXHXHPn3HPOPdBFB1100kUn01E3HXVXHXXVUWfdddZd2GWHXXbabafdx1133HXHXXfefefd4IUHXnjijSfe5JVHXnnmnWfeh1566KXqrafeeuqtx1577LXuvefe8MUHX3wn33zyzUdffPTFV5999dl3H3734Zeffvnp+/G3H3/Xn3/9+f8B+B+AAQoYoDgggQMSWKCBBRoHInggggkqmKC4IIMLMrgggw062KAPQvgghBihhBFKOCGFfxNSOCGFFVpYoXghhhdiGWqYoRtyuCGHG3LYoYYdah5+6OGHIIYIYogghijiiCKOSGKJJJZo4okmnohiiiimqOKKKq7IYossti6+6OIwxghjjDLOKOM01khjjTbeaOOIY4445jruqOPIY4889ujjjz7+CGSQQAYJQg4p5JBCDklkkUQWSWSRRh5p5JFGHolkkkgmqeSSSi7JZJNMNk7u4uQu8iSUT0L5UUoZpVNSOSWVWaWVVVpXYnkllllqmaW5JZdbctmll116+SWYX4IZpphhijkmmWOSZZpZpnkmmmeimaaaaaq5Jptrsm2a0aYZ4SYabqLxJpxvwvkZp5xxyjknnXPSWaedddp5J5534pmnnnnquSeff3vyuSefffrZp59/AvonoIEKGqg6KKGDEoUaWqihhyJ6KKKaqKKJKrooo4syuiijjTraqPoopI9CGqmkkUo6KaWTUlqppJVKll5q6aWWXoqpoZgamqmmmWq6Kaebctqpp516+imon4L6Kaihihqqo5I6KqlaqqmlmnqqqaeKaqqopqrqqqquymqrrLbq6quuvgprrLDGKuusss5Ka6201mrrrbbeimuuuOaqa6y6xrrrrLvOymuvvPbq66++/gpssMAGCyvssMIOxBZLbLHGHmvsyCaLbLKr7LLKLstss8w262yvzvbq+iy0z0L7G6200UrTUjsttdNSW6211VpbrbXXYnstttlqm63bcrstt9162637LbjfguGKG664f+GKOy6545Jbrrnlmluuueeiey666aqbruuyuy6726677br7LrzvwhuvvPHKG6+889I7L7312luvey++9+Kbr7756ruvvvvLb7/89uvvv/7+6++/AAcMcMAAByzwwAIPBBdMcMFs8MEGH2zwwQgnjHDCCi/McMMMN+zwww4/DHHEEEcMccQSTyzxxBJPTHHFFFdMccUWX2zxGGeMccYab6zxxhpvzHHHHHfs8ccefyAHDHLAHLLIIYsjkzwyySWbXLIno3wyypyyyimrnLLKK7O8Msstu9yy/HLDLzcwxwxzzDLPLPPMMs9Mc8001zbfbPM454xzzjrvrPM898xzzz7/7PNABw100EIPLfTQQg9NdNFEFz1EG0200X30z0f/fEgnjXTSSi+t9M1000w3Tj/t9A111FBHUk8t9U111VRXbfXVVl+NddZYZ6311lpvzXXXXHft9ddefw122GCHYo8t9k122WSXZp9t9minjXbaaKet9tpqr81222y3br/t9g133HDHLffccs9Nd91010133YF4qCEIAQLTkohIKClIhjXxK2sSYIBaFG40MiYkMkEKSgoK2Y/Nu9vugzflIH6iKO/d1YF/gqYYRgg5anWoTHDnwA+TdOeWkiENvIHXsFQTVHdUFCgCDrkGbBZnFrBSSBCTIxvrZisvbmM2X9N04YvCpM5TPoji5AGkmpDy7Z2KfgjZt9Gi38zwkzASvt8Wh6GRxkqczzQ4WJ3a6wE3BohHHXfy+yb9H7WtU/YqldRii0YnpKJpIbAW7OLNdqBIpl+xyDTsF9D8JWWscM/r8E56sB0AmBKHtWyRSonjyvpLAYnmrfjxqSEjX7Xpe6e7/dyTu62IcNiw2gWi6DHIIDvrvNEN2YaOABWas6RzfwIMFi0JaUCXFqAQmoX7dlqGK8mysPsube0dWjAtVgYmvoUBHBUKGTUABhAZOAhnZW9tZXRyeQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWtoUBJrJaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABUEGUw1ABgGc2NoZW1hFQIANQIYCGdlb21ldHJ5FQIVBkw8AAAANQQYBGxpc3QVAgAVCiUCGAdlbGVtZW50ABawIRkcGRwmvoUBHBUKGTUABhAZOAhnZW9tZXRyeQRsaXN0B2VsZW1lbnQVDBbgQhaizAEWtoUBJrJaJggcGAhyUBx3SpNDQBgIfKUM858hVcAWACgIclAcd0qTQ0AYCHylDPOfIVXAABksFQQVABUCABUAFRAVAgAAABaizAEWsCEmCBa2hQEUAAAZLBgGcGFuZGFzGLUCeyJpbmRleF9jb2x1bW5zIjogW3sia2luZCI6ICJyYW5nZSIsICJuYW1lIjogbnVsbCwgInN0YXJ0IjogMCwgInN0b3AiOiAyMTM2LCAic3RlcCI6IDF9XSwgImNvbHVtbl9pbmRleGVzIjogW3sibmFtZSI6IG51bGwsICJmaWVsZF9uYW1lIjogbnVsbCwgInBhbmRhc190eXBlIjogImVtcHR5IiwgIm51bXB5X3R5cGUiOiAib2JqZWN0IiwgIm1ldGFkYXRhIjogbnVsbH1dLCAiY29sdW1ucyI6IFtdLCAiY3JlYXRvciI6IHsibGlicmFyeSI6ICJweWFycm93IiwgInZlcnNpb24iOiAiMTQuMC4xIn0sICJwYW5kYXNfdmVyc2lvbiI6ICIyLjEuNCJ9ABgMQVJST1c6c2NoZW1hGJgXLy8vLy82Z0lBQUFRQUFBQUFBQUtBQTRBQmdBRkFBZ0FDZ0FBQUFBQkJBQVFBQUFBQUFBS0FBd0FBQUFFQUFnQUNnQUFBR1FCQUFBRUFBQUFBUUFBQUFRQUFBQVkvdi8vUkFFQUFBUUFBQUExQVFBQWV5SnBibVJsZUY5amIyeDFiVzV6SWpvZ1czc2lhMmx1WkNJNklDSnlZVzVuWlNJc0lDSnVZVzFsSWpvZ2JuVnNiQ3dnSW5OMFlYSjBJam9nTUN3Z0luTjBiM0FpT2lBeU1UTTJMQ0FpYzNSbGNDSTZJREY5WFN3Z0ltTnZiSFZ0Ymw5cGJtUmxlR1Z6SWpvZ1czc2libUZ0WlNJNklHNTFiR3dzSUNKbWFXVnNaRjl1WVcxbElqb2diblZzYkN3Z0luQmhibVJoYzE5MGVYQmxJam9nSW1WdGNIUjVJaXdnSW01MWJYQjVYM1I1Y0dVaU9pQWliMkpxWldOMElpd2dJbTFsZEdGa1lYUmhJam9nYm5Wc2JIMWRMQ0FpWTI5c2RXMXVjeUk2SUZ0ZExDQWlZM0psWVhSdmNpSTZJSHNpYkdsaWNtRnllU0k2SUNKd2VXRnljbTkzSWl3Z0luWmxjbk5wYjI0aU9pQWlNVFF1TUM0eEluMHNJQ0p3WVc1a1lYTmZkbVZ5YzJsdmJpSTZJQ0l5TGpFdU5DSjlBQUFBQmdBQUFIQmhibVJoY3dBQUFRQUFBQmdBQUFBQUFCSUFHQUFJQUFZQUJ3QU1BQUFBRUFBVUFCSUFBQUFBQUFFUUdBQUFBS2dHQUFBSUFBQUFIQUFBQUFFQUFBQ3dCZ0FBQ0FBQUFHZGxiMjFsZEhKNUFBQUFBQUlBQUFCTUFBQUFCQUFBQU1ULy8vOGNBQUFBQkFBQUFBNEFBQUJuWlc5aGNuSnZkeTV3YjJsdWRBQUFGQUFBQUVGU1VrOVhPbVY0ZEdWdWMybHZianB1WVcxbEFBQUFBQWdBREFBRUFBZ0FDQUFBQUF3R0FBQUVBQUFBL3dVQUFIc2lZM0p6SWpvZ0ludGNJaVJ6WTJobGJXRmNJanBjSW1oMGRIQnpPaTh2Y0hKdmFpNXZjbWN2YzJOb1pXMWhjeTkyTUM0M0wzQnliMnBxYzI5dUxuTmphR1Z0WVM1cWMyOXVYQ0lzWENKMGVYQmxYQ0k2WENKSFpXOW5jbUZ3YUdsalExSlRYQ0lzWENKdVlXMWxYQ0k2WENKWFIxTWdPRFJjSWl4Y0ltUmhkSFZ0WDJWdWMyVnRZbXhsWENJNmUxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdaVzV6WlcxaWJHVmNJaXhjSW0xbGJXSmxjbk5jSWpwYmUxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRlJ5WVc1emFYUXBYQ0lzWENKcFpGd2lPbnRjSW1GMWRHaHZjbWwwZVZ3aU9sd2lSVkJUUjF3aUxGd2lZMjlrWlZ3aU9qRXhOalo5ZlN4N1hDSnVZVzFsWENJNlhDSlhiM0pzWkNCSFpXOWtaWFJwWXlCVGVYTjBaVzBnTVRrNE5DQW9SemN6TUNsY0lpeGNJbWxrWENJNmUxd2lZWFYwYUc5eWFYUjVYQ0k2WENKRlVGTkhYQ0lzWENKamIyUmxYQ0k2TVRFMU1uMTlMSHRjSW01aGJXVmNJanBjSWxkdmNteGtJRWRsYjJSbGRHbGpJRk41YzNSbGJTQXhPVGcwSUNoSE9EY3pLVndpTEZ3aWFXUmNJanA3WENKaGRYUm9iM0pwZEhsY0lqcGNJa1ZRVTBkY0lpeGNJbU52WkdWY0lqb3hNVFV6Zlgwc2Uxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRWN4TVRVd0tWd2lMRndpYVdSY0lqcDdYQ0poZFhSb2IzSnBkSGxjSWpwY0lrVlFVMGRjSWl4Y0ltTnZaR1ZjSWpveE1UVTBmWDBzZTF3aWJtRnRaVndpT2x3aVYyOXliR1FnUjJWdlpHVjBhV01nVTNsemRHVnRJREU1T0RRZ0tFY3hOamMwS1Z3aUxGd2lhV1JjSWpwN1hDSmhkWFJvYjNKcGRIbGNJanBjSWtWUVUwZGNJaXhjSW1OdlpHVmNJam94TVRVMWZYMHNlMXdpYm1GdFpWd2lPbHdpVjI5eWJHUWdSMlZ2WkdWMGFXTWdVM2x6ZEdWdElERTVPRFFnS0VjeE56WXlLVndpTEZ3aWFXUmNJanA3WENKaGRYUm9iM0pwZEhsY0lqcGNJa1ZRVTBkY0lpeGNJbU52WkdWY0lqb3hNVFUyZlgwc2Uxd2libUZ0WlZ3aU9sd2lWMjl5YkdRZ1IyVnZaR1YwYVdNZ1UzbHpkR1Z0SURFNU9EUWdLRWN5TVRNNUtWd2lMRndpYVdSY0lqcDdYQ0poZFhSb2IzSnBkSGxjSWpwY0lrVlFVMGRjSWl4Y0ltTnZaR1ZjSWpveE16QTVmWDFkTEZ3aVpXeHNhWEJ6YjJsa1hDSTZlMXdpYm1GdFpWd2lPbHdpVjBkVElEZzBYQ0lzWENKelpXMXBYMjFoYW05eVgyRjRhWE5jSWpvMk16YzRNVE0zTEZ3aWFXNTJaWEp6WlY5bWJHRjBkR1Z1YVc1blhDSTZNams0TGpJMU56SXlNelUyTTMwc1hDSmhZMk4xY21GamVWd2lPbHdpTWk0d1hDSXNYQ0pwWkZ3aU9udGNJbUYxZEdodmNtbDBlVndpT2x3aVJWQlRSMXdpTEZ3aVkyOWtaVndpT2pZek1qWjlmU3hjSW1OdmIzSmthVzVoZEdWZmMzbHpkR1Z0WENJNmUxd2ljM1ZpZEhsd1pWd2lPbHdpWld4c2FYQnpiMmxrWVd4Y0lpeGNJbUY0YVhOY0lqcGJlMXdpYm1GdFpWd2lPbHdpUjJWdlpHVjBhV01nYkdGMGFYUjFaR1ZjSWl4Y0ltRmlZbkpsZG1saGRHbHZibHdpT2x3aVRHRjBYQ0lzWENKa2FYSmxZM1JwYjI1Y0lqcGNJbTV2Y25Sb1hDSXNYQ0oxYm1sMFhDSTZYQ0prWldkeVpXVmNJbjBzZTF3aWJtRnRaVndpT2x3aVIyVnZaR1YwYVdNZ2JHOXVaMmwwZFdSbFhDSXNYQ0poWW1KeVpYWnBZWFJwYjI1Y0lqcGNJa3h2Ymx3aUxGd2laR2x5WldOMGFXOXVYQ0k2WENKbFlYTjBYQ0lzWENKMWJtbDBYQ0k2WENKa1pXZHlaV1ZjSW4xZGZTeGNJbk5qYjNCbFhDSTZYQ0pJYjNKcGVtOXVkR0ZzSUdOdmJYQnZibVZ1ZENCdlppQXpSQ0J6ZVhOMFpXMHVYQ0lzWENKaGNtVmhYQ0k2WENKWGIzSnNaQzVjSWl4Y0ltSmliM2hjSWpwN1hDSnpiM1YwYUY5c1lYUnBkSFZrWlZ3aU9pMDVNQ3hjSW5kbGMzUmZiRzl1WjJsMGRXUmxYQ0k2TFRFNE1DeGNJbTV2Y25Sb1gyeGhkR2wwZFdSbFhDSTZPVEFzWENKbFlYTjBYMnh2Ym1kcGRIVmtaVndpT2pFNE1IMHNYQ0pwWkZ3aU9udGNJbUYxZEdodmNtbDBlVndpT2x3aVJWQlRSMXdpTEZ3aVkyOWtaVndpT2pRek1qWjlmU0o5QUJnQUFBQkJVbEpQVnpwbGVIUmxibk5wYjI0NmJXVjBZV1JoZEdFQUFBWUFDQUFFQUFZQUFBQUNBQUFBRUFBVUFBZ0FCZ0FIQUF3QUFBQVFBQkFBQUFBQUFBRURFQUFBQUJ3QUFBQUVBQUFBQUFBQUFBUUFBQUJwZEdWdEFBQUdBQWdBQmdBR0FBQUFBQUFDQUE9PQAYIHBhcnF1ZXQtY3BwLWFycm93IHZlcnNpb24gMTQuMC4xGRwcAAAA3w0AAFBBUjE="
}
]
},
"968fa50dd8614775bc8aa947be15305c": {
"model_name": "LayoutModel",
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "2.0.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border_bottom": null,
"border_left": null,
"border_right": null,
"border_top": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"7c586d5344f04d0babec802d4b019f76": {
"model_name": "AnyModel",
"model_module": "anywidget",
"model_module_version": "~0.9.*",
"state": {
"_anywidget_id": "lonboard._map.Map",
"_css": ".lonboard-tooltip{font-family:var(--jp-ui-font-family);font-size:var(--jp-ui-font-size1)}.lonboard-tooltip table{border-collapse:collapse}.lonboard-tooltip table tr:nth-child(odd){background-color:#fff}.lonboard-tooltip table tr:nth-child(2n){background-color:#f1f1f1}.lonboard-tooltip td{border:1px solid rgb(204,204,204);padding:5px}.lonboard-tooltip td:first-child{font-weight:450}\n",
"_dom_classes": [],
"_esm": "var EJ=Object.create;var $C=Object.defineProperty;var PJ=Object.getOwnPropertyDescriptor;var IJ=Object.getOwnPropertyNames;var CJ=Object.getPrototypeOf,LJ=Object.prototype.hasOwnProperty;var Br=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),mA=(e,t)=>{for(var r in t)$C(e,r,{get:t[r],enumerable:!0})},kJ=(e,t,r,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let s of IJ(t))!LJ.call(e,s)&&s!==r&&$C(e,s,{get:()=>t[s],enumerable:!(i=PJ(t,s))||i.enumerable});return e};var Ri=(e,t,r)=>(r=e!=null?EJ(CJ(e)):{},kJ(t||!e||!e.__esModule?$C(r,\"default\",{value:e,enumerable:!0}):r,e));var _z=Br(Di=>{\"use strict\";var r1=Symbol.for(\"react.element\"),RJ=Symbol.for(\"react.portal\"),DJ=Symbol.for(\"react.fragment\"),OJ=Symbol.for(\"react.strict_mode\"),BJ=Symbol.for(\"react.profiler\"),FJ=Symbol.for(\"react.provider\"),zJ=Symbol.for(\"react.context\"),NJ=Symbol.for(\"react.forward_ref\"),UJ=Symbol.for(\"react.suspense\"),VJ=Symbol.for(\"react.memo\"),jJ=Symbol.for(\"react.lazy\"),az=Symbol.iterator;function GJ(e){return e===null||typeof e!=\"object\"?null:(e=az&&e[az]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var uz={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},hz=Object.assign,fz={};function R_(e,t,r){this.props=e,this.context=t,this.refs=fz,this.updater=r||uz}R_.prototype.isReactComponent={};R_.prototype.setState=function(e,t){if(typeof e!=\"object\"&&typeof e!=\"function\"&&e!=null)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};R_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function dz(){}dz.prototype=R_.prototype;function KC(e,t,r){this.props=e,this.context=t,this.refs=fz,this.updater=r||uz}var JC=KC.prototype=new dz;JC.constructor=KC;hz(JC,R_.prototype);JC.isPureReactComponent=!0;var lz=Array.isArray,pz=Object.prototype.hasOwnProperty,tL={current:null},Az={key:!0,ref:!0,__self:!0,__source:!0};function mz(e,t,r){var i,s={},n=null,o=null;if(t!=null)for(i in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(n=\"\"+t.key),t)pz.call(t,i)&&!Az.hasOwnProperty(i)&&(s[i]=t[i]);var c=arguments.length-2;if(c===1)s.children=r;else if(1<c){for(var f=Array(c),_=0;_<c;_++)f[_]=arguments[_+2];s.children=f}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)s[i]===void 0&&(s[i]=c[i]);return{$$typeof:r1,type:e,key:n,ref:o,props:s,_owner:tL.current}}function WJ(e,t){return{$$typeof:r1,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function eL(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===r1}function HJ(e){var t={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+e.replace(/[=:]/g,function(r){return t[r]})}var cz=/\\/+/g;function XC(e,t){return typeof e==\"object\"&&e!==null&&e.key!=null?HJ(\"\"+e.key):t.toString(36)}function mT(e,t,r,i,s){var n=typeof e;(n===\"undefined\"||n===\"boolean\")&&(e=null);var o=!1;if(e===null)o=!0;else switch(n){case\"string\":case\"number\":o=!0;break;case\"object\":switch(e.$$typeof){case r1:case RJ:o=!0}}if(o)return o=e,s=s(o),e=i===\"\"?\".\"+XC(o,0):i,lz(s)?(r=\"\",e!=null&&(r=e.replace(cz,\"$&/\")+\"/\"),mT(s,t,r,\"\",function(_){return _})):s!=null&&(eL(s)&&(s=WJ(s,r+(!s.key||o&&o.key===s.key?\"\":(\"\"+s.key).replace(cz,\"$&/\")+\"/\")+e)),t.push(s)),1;if(o=0,i=i===\"\"?\".\":i+\":\",lz(e))for(var c=0;c<e.length;c++){n=e[c];var f=i+XC(n,c);o+=mT(n,t,r,f,s)}else if(f=GJ(e),typeof f==\"function\")for(e=f.call(e),c=0;!(n=e.next()).done;)n=n.value,f=i+XC(n,c++),o+=mT(n,t,r,f,s);else if(n===\"object\")throw t=String(e),Error(\"Objects are not valid as a React child (found: \"+(t===\"[object Object]\"?\"object with keys {\"+Object.keys(e).join(\", \")+\"}\":t)+\"). If you meant to render a collection of children, use an array instead.\");return o}function AT(e,t,r){if(e==null)return e;var i=[],s=0;return mT(e,i,\"\",\"\",function(n){return t.call(r,n,s++)}),i}function qJ(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var xl={current:null},gT={transition:null},ZJ={ReactCurrentDispatcher:xl,ReactCurrentBatchConfig:gT,ReactCurrentOwner:tL};function gz(){throw Error(\"act(...) is not supported in production builds of React.\")}Di.Children={map:AT,forEach:function(e,t,r){AT(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return AT(e,function(){t++}),t},toArray:function(e){return AT(e,function(t){return t})||[]},only:function(e){if(!eL(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}};Di.Component=R_;Di.Fragment=DJ;Di.Profiler=BJ;Di.PureComponent=KC;Di.StrictMode=OJ;Di.Suspense=UJ;Di.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ZJ;Di.act=gz;Di.cloneElement=function(e,t,r){if(e==null)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+e+\".\");var i=hz({},e.props),s=e.key,n=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(n=t.ref,o=tL.current),t.key!==void 0&&(s=\"\"+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(f in t)pz.call(t,f)&&!Az.hasOwnProperty(f)&&(i[f]=t[f]===void 0&&c!==void 0?c[f]:t[f])}var f=arguments.length-2;if(f===1)i.children=r;else if(1<f){c=Array(f);for(var _=0;_<f;_++)c[_]=arguments[_+2];i.children=c}return{$$typeof:r1,type:e.type,key:s,ref:n,props:i,_owner:o}};Di.createContext=function(e){return e={$$typeof:zJ,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:FJ,_context:e},e.Consumer=e};Di.createElement=mz;Di.createFactory=function(e){var t=mz.bind(null,e);return t.type=e,t};Di.createRef=function(){return{current:null}};Di.forwardRef=function(e){return{$$typeof:NJ,render:e}};Di.isValidElement=eL;Di.lazy=function(e){return{$$typeof:jJ,_payload:{_status:-1,_result:e},_init:qJ}};Di.memo=function(e,t){return{$$typeof:VJ,type:e,compare:t===void 0?null:t}};Di.startTransition=function(e){var t=gT.transition;gT.transition={};try{e()}finally{gT.transition=t}};Di.unstable_act=gz;Di.useCallback=function(e,t){return xl.current.useCallback(e,t)};Di.useContext=function(e){return xl.current.useContext(e)};Di.useDebugValue=function(){};Di.useDeferredValue=function(e){return xl.current.useDeferredValue(e)};Di.useEffect=function(e,t){return xl.current.useEffect(e,t)};Di.useId=function(){return xl.current.useId()};Di.useImperativeHandle=function(e,t,r){return xl.current.useImperativeHandle(e,t,r)};Di.useInsertionEffect=function(e,t){return xl.current.useInsertionEffect(e,t)};Di.useLayoutEffect=function(e,t){return xl.current.useLayoutEffect(e,t)};Di.useMemo=function(e,t){return xl.current.useMemo(e,t)};Di.useReducer=function(e,t,r){return xl.current.useReducer(e,t,r)};Di.useRef=function(e){return xl.current.useRef(e)};Di.useState=function(e){return xl.current.useState(e)};Di.useSyncExternalStore=function(e,t,r){return xl.current.useSyncExternalStore(e,t,r)};Di.useTransition=function(){return xl.current.useTransition()};Di.version=\"18.3.1\"});var Yi=Br((K1t,yz)=>{\"use strict\";yz.exports=_z()});var Iz=Br(zn=>{\"use strict\";function sL(e,t){var r=e.length;e.push(t);t:for(;0<r;){var i=r-1>>>1,s=e[i];if(0<_T(s,t))e[i]=t,e[r]=s,r=i;else break t}}function Sh(e){return e.length===0?null:e[0]}function vT(e){if(e.length===0)return null;var t=e[0],r=e.pop();if(r!==t){e[0]=r;t:for(var i=0,s=e.length,n=s>>>1;i<n;){var o=2*(i+1)-1,c=e[o],f=o+1,_=e[f];if(0>_T(c,r))f<s&&0>_T(_,c)?(e[i]=_,e[f]=r,i=f):(e[i]=c,e[o]=r,i=o);else if(f<s&&0>_T(_,r))e[i]=_,e[f]=r,i=f;else break t}}return t}function _T(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}typeof performance==\"object\"&&typeof performance.now==\"function\"?(vz=performance,zn.unstable_now=function(){return vz.now()}):(rL=Date,xz=rL.now(),zn.unstable_now=function(){return rL.now()-xz});var vz,rL,xz,If=[],gA=[],YJ=1,wu=null,qa=3,xT=!1,_0=!1,n1=!1,Sz=typeof setTimeout==\"function\"?setTimeout:null,Tz=typeof clearTimeout==\"function\"?clearTimeout:null,bz=typeof setImmediate<\"u\"?setImmediate:null;typeof navigator<\"u\"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function oL(e){for(var t=Sh(gA);t!==null;){if(t.callback===null)vT(gA);else if(t.startTime<=e)vT(gA),t.sortIndex=t.expirationTime,sL(If,t);else break;t=Sh(gA)}}function aL(e){if(n1=!1,oL(e),!_0)if(Sh(If)!==null)_0=!0,cL(lL);else{var t=Sh(gA);t!==null&&uL(aL,t.startTime-e)}}function lL(e,t){_0=!1,n1&&(n1=!1,Tz(s1),s1=-1),xT=!0;var r=qa;try{for(oL(t),wu=Sh(If);wu!==null&&(!(wu.expirationTime>t)||e&&!Pz());){var i=wu.callback;if(typeof i==\"function\"){wu.callback=null,qa=wu.priorityLevel;var s=i(wu.expirationTime<=t);t=zn.unstable_now(),typeof s==\"function\"?wu.callback=s:wu===Sh(If)&&vT(If),oL(t)}else vT(If);wu=Sh(If)}if(wu!==null)var n=!0;else{var o=Sh(gA);o!==null&&uL(aL,o.startTime-t),n=!1}return n}finally{wu=null,qa=r,xT=!1}}var bT=!1,yT=null,s1=-1,Mz=5,Ez=-1;function Pz(){return!(zn.unstable_now()-Ez<Mz)}function iL(){if(yT!==null){var e=zn.unstable_now();Ez=e;var t=!0;try{t=yT(!0,e)}finally{t?i1():(bT=!1,yT=null)}}else bT=!1}var i1;typeof bz==\"function\"?i1=function(){bz(iL)}:typeof MessageChannel<\"u\"?(nL=new MessageChannel,wz=nL.port2,nL.port1.onmessage=iL,i1=function(){wz.postMessage(null)}):i1=function(){Sz(iL,0)};var nL,wz;function cL(e){yT=e,bT||(bT=!0,i1())}function uL(e,t){s1=Sz(function(){e(zn.unstable_now())},t)}zn.unstable_IdlePriority=5;zn.unstable_ImmediatePriority=1;zn.unstable_LowPriority=4;zn.unstable_NormalPriority=3;zn.unstable_Profiling=null;zn.unstable_UserBlockingPriority=2;zn.unstable_cancelCallback=function(e){e.callback=null};zn.unstable_continueExecution=function(){_0||xT||(_0=!0,cL(lL))};zn.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):Mz=0<e?Math.floor(1e3/e):5};zn.unstable_getCurrentPriorityLevel=function(){return qa};zn.unstable_getFirstCallbackNode=function(){return Sh(If)};zn.unstable_next=function(e){switch(qa){case 1:case 2:case 3:var t=3;break;default:t=qa}var r=qa;qa=t;try{return e()}finally{qa=r}};zn.unstable_pauseExecution=function(){};zn.unstable_requestPaint=function(){};zn.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=qa;qa=e;try{return t()}finally{qa=r}};zn.unstable_scheduleCallback=function(e,t,r){var i=zn.unstable_now();switch(typeof r==\"object\"&&r!==null?(r=r.delay,r=typeof r==\"number\"&&0<r?i+r:i):r=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=r+s,e={id:YJ++,callback:t,priorityLevel:e,startTime:r,expirationTime:s,sortIndex:-1},r>i?(e.sortIndex=r,sL(gA,e),Sh(If)===null&&e===Sh(gA)&&(n1?(Tz(s1),s1=-1):n1=!0,uL(aL,r-i))):(e.sortIndex=s,sL(If,e),_0||xT||(_0=!0,cL(lL))),e};zn.unstable_shouldYield=Pz;zn.unstable_wrapCallback=function(e){var t=qa;return function(){var r=qa;qa=t;try{return e.apply(this,arguments)}finally{qa=r}}}});var Lz=Br((tbt,Cz)=>{\"use strict\";Cz.exports=Iz()});var O8=Br(Zc=>{\"use strict\";var QJ=Yi(),Hc=Lz();function Pe(e){for(var t=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=1;r<arguments.length;r++)t+=\"&args[]=\"+encodeURIComponent(arguments[r]);return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var z5=new Set,E1={};function L0(e,t){ty(e,t),ty(e+\"Capture\",t)}function ty(e,t){for(E1[e]=t,e=0;e<t.length;e++)z5.add(t[e])}var Yd=!(typeof window>\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),RL=Object.prototype.hasOwnProperty,$J=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,kz={},Rz={};function XJ(e){return RL.call(Rz,e)?!0:RL.call(kz,e)?!1:$J.test(e)?Rz[e]=!0:(kz[e]=!0,!1)}function KJ(e,t,r,i){if(r!==null&&r.type===0)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return i?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!==\"data-\"&&e!==\"aria-\");default:return!1}}function JJ(e,t,r,i){if(t===null||typeof t>\"u\"||KJ(e,t,r,i))return!0;if(i)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Sl(e,t,r,i,s,n,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=s,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=n,this.removeEmptyString=o}var ga={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(e){ga[e]=new Sl(e,0,!1,e,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0];ga[t]=new Sl(t,1,!1,e[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){ga[e]=new Sl(e,2,!1,e.toLowerCase(),null,!1,!1)});[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){ga[e]=new Sl(e,2,!1,e,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(e){ga[e]=new Sl(e,3,!1,e.toLowerCase(),null,!1,!1)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){ga[e]=new Sl(e,3,!0,e,null,!1,!1)});[\"capture\",\"download\"].forEach(function(e){ga[e]=new Sl(e,4,!1,e,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){ga[e]=new Sl(e,6,!1,e,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(e){ga[e]=new Sl(e,5,!1,e.toLowerCase(),null,!1,!1)});var Tk=/[\\-:]([a-z])/g;function Mk(e){return e[1].toUpperCase()}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(e){var t=e.replace(Tk,Mk);ga[t]=new Sl(t,1,!1,e,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(e){var t=e.replace(Tk,Mk);ga[t]=new Sl(t,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(e){var t=e.replace(Tk,Mk);ga[t]=new Sl(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(e){ga[e]=new Sl(e,1,!1,e.toLowerCase(),null,!1,!1)});ga.xlinkHref=new Sl(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(e){ga[e]=new Sl(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ek(e,t,r,i){var s=ga.hasOwnProperty(t)?ga[t]:null;(s!==null?s.type!==0:i||!(2<t.length)||t[0]!==\"o\"&&t[0]!==\"O\"||t[1]!==\"n\"&&t[1]!==\"N\")&&(JJ(t,r,s,i)&&(r=null),i||s===null?XJ(t)&&(r===null?e.removeAttribute(t):e.setAttribute(t,\"\"+r)):s.mustUseProperty?e[s.propertyName]=r===null?s.type===3?!1:\"\":r:(t=s.attributeName,i=s.attributeNamespace,r===null?e.removeAttribute(t):(s=s.type,r=s===3||s===4&&r===!0?\"\":\"\"+r,i?e.setAttributeNS(i,t,r):e.setAttribute(t,r))))}var Kd=QJ.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,wT=Symbol.for(\"react.element\"),B_=Symbol.for(\"react.portal\"),F_=Symbol.for(\"react.fragment\"),Pk=Symbol.for(\"react.strict_mode\"),DL=Symbol.for(\"react.profiler\"),N5=Symbol.for(\"react.provider\"),U5=Symbol.for(\"react.context\"),Ik=Symbol.for(\"react.forward_ref\"),OL=Symbol.for(\"react.suspense\"),BL=Symbol.for(\"react.suspense_list\"),Ck=Symbol.for(\"react.memo\"),yA=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");var V5=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Dz=Symbol.iterator;function o1(e){return e===null||typeof e!=\"object\"?null:(e=Dz&&e[Dz]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var ms=Object.assign,hL;function p1(e){if(hL===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\\n( *(at )?)/);hL=t&&t[1]||\"\"}return`\n`+hL+e}var fL=!1;function dL(e,t){if(!e||fL)return\"\";fL=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(t,[])}catch(_){var i=_}Reflect.construct(e,[],t)}else{try{t.call()}catch(_){i=_}e.call(t.prototype)}else{try{throw Error()}catch(_){i=_}e()}}catch(_){if(_&&i&&typeof _.stack==\"string\"){for(var s=_.stack.split(`\n`),n=i.stack.split(`\n`),o=s.length-1,c=n.length-1;1<=o&&0<=c&&s[o]!==n[c];)c--;for(;1<=o&&0<=c;o--,c--)if(s[o]!==n[c]){if(o!==1||c!==1)do if(o--,c--,0>c||s[o]!==n[c]){var f=`\n`+s[o].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"<anonymous>\")&&(f=f.replace(\"<anonymous>\",e.displayName)),f}while(1<=o&&0<=c);break}}}finally{fL=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:\"\")?p1(e):\"\"}function ttt(e){switch(e.tag){case 5:return p1(e.type);case 16:return p1(\"Lazy\");case 13:return p1(\"Suspense\");case 19:return p1(\"SuspenseList\");case 0:case 2:case 15:return e=dL(e.type,!1),e;case 11:return e=dL(e.type.render,!1),e;case 1:return e=dL(e.type,!0),e;default:return\"\"}}function FL(e){if(e==null)return null;if(typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case F_:return\"Fragment\";case B_:return\"Portal\";case DL:return\"Profiler\";case Pk:return\"StrictMode\";case OL:return\"Suspense\";case BL:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case U5:return(e.displayName||\"Context\")+\".Consumer\";case N5:return(e._context.displayName||\"Context\")+\".Provider\";case Ik:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||\"\",e=e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\"),e;case Ck:return t=e.displayName||null,t!==null?t:FL(e.type)||\"Memo\";case yA:t=e._payload,e=e._init;try{return FL(e(t))}catch{}}return null}function ett(e){var t=e.type;switch(e.tag){case 24:return\"Cache\";case 9:return(t.displayName||\"Context\")+\".Consumer\";case 10:return(t._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return e=t.render,e=e.displayName||e.name||\"\",t.displayName||(e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return t;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return FL(t);case 8:return t===Pk?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==\"function\")return t.displayName||t.name||null;if(typeof t==\"string\")return t}return null}function RA(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return e;default:return\"\"}}function j5(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function rtt(e){var t=j5(e)?\"checked\":\"value\",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=\"\"+e[t];if(!e.hasOwnProperty(t)&&typeof r<\"u\"&&typeof r.get==\"function\"&&typeof r.set==\"function\"){var s=r.get,n=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){i=\"\"+o,n.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return i},setValue:function(o){i=\"\"+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ST(e){e._valueTracker||(e._valueTracker=rtt(e))}function G5(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),i=\"\";return e&&(i=j5(e)?e.checked?\"true\":\"false\":e.value),e=i,e!==r?(t.setValue(e),!0):!1}function KT(e){if(e=e||(typeof document<\"u\"?document:void 0),typeof e>\"u\")return null;try{return e.activeElement||e.body}catch{return e.body}}function zL(e,t){var r=t.checked;return ms({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Oz(e,t){var r=t.defaultValue==null?\"\":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;r=RA(t.value!=null?t.value:r),e._wrapperState={initialChecked:i,initialValue:r,controlled:t.type===\"checkbox\"||t.type===\"radio\"?t.checked!=null:t.value!=null}}function W5(e,t){t=t.checked,t!=null&&Ek(e,\"checked\",t,!1)}function NL(e,t){W5(e,t);var r=RA(t.value),i=t.type;if(r!=null)i===\"number\"?(r===0&&e.value===\"\"||e.value!=r)&&(e.value=\"\"+r):e.value!==\"\"+r&&(e.value=\"\"+r);else if(i===\"submit\"||i===\"reset\"){e.removeAttribute(\"value\");return}t.hasOwnProperty(\"value\")?UL(e,t.type,r):t.hasOwnProperty(\"defaultValue\")&&UL(e,t.type,RA(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Bz(e,t,r){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var i=t.type;if(!(i!==\"submit\"&&i!==\"reset\"||t.value!==void 0&&t.value!==null))return;t=\"\"+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==\"\"&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,r!==\"\"&&(e.name=r)}function UL(e,t,r){(t!==\"number\"||KT(e.ownerDocument)!==e)&&(r==null?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+r&&(e.defaultValue=\"\"+r))}var A1=Array.isArray;function Y_(e,t,r,i){if(e=e.options,t){t={};for(var s=0;s<r.length;s++)t[\"$\"+r[s]]=!0;for(r=0;r<e.length;r++)s=t.hasOwnProperty(\"$\"+e[r].value),e[r].selected!==s&&(e[r].selected=s),s&&i&&(e[r].defaultSelected=!0)}else{for(r=\"\"+RA(r),t=null,s=0;s<e.length;s++){if(e[s].value===r){e[s].selected=!0,i&&(e[s].defaultSelected=!0);return}t!==null||e[s].disabled||(t=e[s])}t!==null&&(t.selected=!0)}}function VL(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(Pe(91));return ms({},t,{value:void 0,defaultValue:void 0,children:\"\"+e._wrapperState.initialValue})}function Fz(e,t){var r=t.value;if(r==null){if(r=t.children,t=t.defaultValue,r!=null){if(t!=null)throw Error(Pe(92));if(A1(r)){if(1<r.length)throw Error(Pe(93));r=r[0]}t=r}t==null&&(t=\"\"),r=t}e._wrapperState={initialValue:RA(r)}}function H5(e,t){var r=RA(t.value),i=RA(t.defaultValue);r!=null&&(r=\"\"+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),i!=null&&(e.defaultValue=\"\"+i)}function zz(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==\"\"&&t!==null&&(e.value=t)}function q5(e){switch(e){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function jL(e,t){return e==null||e===\"http://www.w3.org/1999/xhtml\"?q5(t):e===\"http://www.w3.org/2000/svg\"&&t===\"foreignObject\"?\"http://www.w3.org/1999/xhtml\":e}var TT,Z5=function(e){return typeof MSApp<\"u\"&&MSApp.execUnsafeLocalFunction?function(t,r,i,s){MSApp.execUnsafeLocalFunction(function(){return e(t,r,i,s)})}:e}(function(e,t){if(e.namespaceURI!==\"http://www.w3.org/2000/svg\"||\"innerHTML\"in e)e.innerHTML=t;else{for(TT=TT||document.createElement(\"div\"),TT.innerHTML=\"<svg>\"+t.valueOf().toString()+\"</svg>\",t=TT.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function P1(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var _1={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},itt=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(_1).forEach(function(e){itt.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),_1[t]=_1[e]})});function Y5(e,t,r){return t==null||typeof t==\"boolean\"||t===\"\"?\"\":r||typeof t!=\"number\"||t===0||_1.hasOwnProperty(e)&&_1[e]?(\"\"+t).trim():t+\"px\"}function Q5(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var i=r.indexOf(\"--\")===0,s=Y5(r,t[r],i);r===\"float\"&&(r=\"cssFloat\"),i?e.setProperty(r,s):e[r]=s}}var ntt=ms({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function GL(e,t){if(t){if(ntt[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Pe(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Pe(60));if(typeof t.dangerouslySetInnerHTML!=\"object\"||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(Pe(61))}if(t.style!=null&&typeof t.style!=\"object\")throw Error(Pe(62))}}function WL(e,t){if(e.indexOf(\"-\")===-1)return typeof t.is==\"string\";switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var HL=null;function Lk(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var qL=null,Q_=null,$_=null;function Nz(e){if(e=q1(e)){if(typeof qL!=\"function\")throw Error(Pe(280));var t=e.stateNode;t&&(t=MM(t),qL(e.stateNode,e.type,t))}}function $5(e){Q_?$_?$_.push(e):$_=[e]:Q_=e}function X5(){if(Q_){var e=Q_,t=$_;if($_=Q_=null,Nz(e),t)for(e=0;e<t.length;e++)Nz(t[e])}}function K5(e,t){return e(t)}function J5(){}var pL=!1;function tN(e,t,r){if(pL)return e(t,r);pL=!0;try{return K5(e,t,r)}finally{pL=!1,(Q_!==null||$_!==null)&&(J5(),X5())}}function I1(e,t){var r=e.stateNode;if(r===null)return null;var i=MM(r);if(i===null)return null;r=i[t];t:switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(i=!i.disabled)||(e=e.type,i=!(e===\"button\"||e===\"input\"||e===\"select\"||e===\"textarea\")),e=!i;break t;default:e=!1}if(e)return null;if(r&&typeof r!=\"function\")throw Error(Pe(231,t,typeof r));return r}var ZL=!1;if(Yd)try{D_={},Object.defineProperty(D_,\"passive\",{get:function(){ZL=!0}}),window.addEventListener(\"test\",D_,D_),window.removeEventListener(\"test\",D_,D_)}catch{ZL=!1}var D_;function stt(e,t,r,i,s,n,o,c,f){var _=Array.prototype.slice.call(arguments,3);try{t.apply(r,_)}catch(w){this.onError(w)}}var y1=!1,JT=null,tM=!1,YL=null,ott={onError:function(e){y1=!0,JT=e}};function att(e,t,r,i,s,n,o,c,f){y1=!1,JT=null,stt.apply(ott,arguments)}function ltt(e,t,r,i,s,n,o,c,f){if(att.apply(this,arguments),y1){if(y1){var _=JT;y1=!1,JT=null}else throw Error(Pe(198));tM||(tM=!0,YL=_)}}function k0(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(r=t.return),e=t.return;while(e)}return t.tag===3?r:null}function eN(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Uz(e){if(k0(e)!==e)throw Error(Pe(188))}function ctt(e){var t=e.alternate;if(!t){if(t=k0(e),t===null)throw Error(Pe(188));return t!==e?null:e}for(var r=e,i=t;;){var s=r.return;if(s===null)break;var n=s.alternate;if(n===null){if(i=s.return,i!==null){r=i;continue}break}if(s.child===n.child){for(n=s.child;n;){if(n===r)return Uz(s),e;if(n===i)return Uz(s),t;n=n.sibling}throw Error(Pe(188))}if(r.return!==i.return)r=s,i=n;else{for(var o=!1,c=s.child;c;){if(c===r){o=!0,r=s,i=n;break}if(c===i){o=!0,i=s,r=n;break}c=c.sibling}if(!o){for(c=n.child;c;){if(c===r){o=!0,r=n,i=s;break}if(c===i){o=!0,i=n,r=s;break}c=c.sibling}if(!o)throw Error(Pe(189))}}if(r.alternate!==i)throw Error(Pe(190))}if(r.tag!==3)throw Error(Pe(188));return r.stateNode.current===r?e:t}function rN(e){return e=ctt(e),e!==null?iN(e):null}function iN(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=iN(e);if(t!==null)return t;e=e.sibling}return null}var nN=Hc.unstable_scheduleCallback,Vz=Hc.unstable_cancelCallback,utt=Hc.unstable_shouldYield,htt=Hc.unstable_requestPaint,Xs=Hc.unstable_now,ftt=Hc.unstable_getCurrentPriorityLevel,kk=Hc.unstable_ImmediatePriority,sN=Hc.unstable_UserBlockingPriority,eM=Hc.unstable_NormalPriority,dtt=Hc.unstable_LowPriority,oN=Hc.unstable_IdlePriority,bM=null,Rf=null;function ptt(e){if(Rf&&typeof Rf.onCommitFiberRoot==\"function\")try{Rf.onCommitFiberRoot(bM,e,void 0,(e.current.flags&128)===128)}catch{}}var Ih=Math.clz32?Math.clz32:gtt,Att=Math.log,mtt=Math.LN2;function gtt(e){return e>>>=0,e===0?32:31-(Att(e)/mtt|0)|0}var MT=64,ET=4194304;function m1(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function rM(e,t){var r=e.pendingLanes;if(r===0)return 0;var i=0,s=e.suspendedLanes,n=e.pingedLanes,o=r&268435455;if(o!==0){var c=o&~s;c!==0?i=m1(c):(n&=o,n!==0&&(i=m1(n)))}else o=r&~s,o!==0?i=m1(o):n!==0&&(i=m1(n));if(i===0)return 0;if(t!==0&&t!==i&&!(t&s)&&(s=i&-i,n=t&-t,s>=n||s===16&&(n&4194240)!==0))return t;if(i&4&&(i|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=i;0<t;)r=31-Ih(t),s=1<<r,i|=e[r],t&=~s;return i}function _tt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ytt(e,t){for(var r=e.suspendedLanes,i=e.pingedLanes,s=e.expirationTimes,n=e.pendingLanes;0<n;){var o=31-Ih(n),c=1<<o,f=s[o];f===-1?(!(c&r)||c&i)&&(s[o]=_tt(c,t)):f<=t&&(e.expiredLanes|=c),n&=~c}}function QL(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function aN(){var e=MT;return MT<<=1,!(MT&4194240)&&(MT=64),e}function AL(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function W1(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ih(t),e[t]=r}function vtt(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0<r;){var s=31-Ih(r),n=1<<s;t[s]=0,i[s]=-1,e[s]=-1,r&=~n}}function Rk(e,t){var r=e.entangledLanes|=t;for(e=e.entanglements;r;){var i=31-Ih(r),s=1<<i;s&t|e[i]&t&&(e[i]|=t),r&=~s}}var vn=0;function lN(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var cN,Dk,uN,hN,fN,$L=!1,PT=[],TA=null,MA=null,EA=null,C1=new Map,L1=new Map,xA=[],xtt=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");function jz(e,t){switch(e){case\"focusin\":case\"focusout\":TA=null;break;case\"dragenter\":case\"dragleave\":MA=null;break;case\"mouseover\":case\"mouseout\":EA=null;break;case\"pointerover\":case\"pointerout\":C1.delete(t.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":L1.delete(t.pointerId)}}function a1(e,t,r,i,s,n){return e===null||e.nativeEvent!==n?(e={blockedOn:t,domEventName:r,eventSystemFlags:i,nativeEvent:n,targetContainers:[s]},t!==null&&(t=q1(t),t!==null&&Dk(t)),e):(e.eventSystemFlags|=i,t=e.targetContainers,s!==null&&t.indexOf(s)===-1&&t.push(s),e)}function btt(e,t,r,i,s){switch(t){case\"focusin\":return TA=a1(TA,e,t,r,i,s),!0;case\"dragenter\":return MA=a1(MA,e,t,r,i,s),!0;case\"mouseover\":return EA=a1(EA,e,t,r,i,s),!0;case\"pointerover\":var n=s.pointerId;return C1.set(n,a1(C1.get(n)||null,e,t,r,i,s)),!0;case\"gotpointercapture\":return n=s.pointerId,L1.set(n,a1(L1.get(n)||null,e,t,r,i,s)),!0}return!1}function dN(e){var t=x0(e.target);if(t!==null){var r=k0(t);if(r!==null){if(t=r.tag,t===13){if(t=eN(r),t!==null){e.blockedOn=t,fN(e.priority,function(){uN(r)});return}}else if(t===3&&r.stateNode.current.memoizedState.isDehydrated){e.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}e.blockedOn=null}function jT(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var r=XL(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(r===null){r=e.nativeEvent;var i=new r.constructor(r.type,r);HL=i,r.target.dispatchEvent(i),HL=null}else return t=q1(r),t!==null&&Dk(t),e.blockedOn=r,!1;t.shift()}return!0}function Gz(e,t,r){jT(e)&&r.delete(t)}function wtt(){$L=!1,TA!==null&&jT(TA)&&(TA=null),MA!==null&&jT(MA)&&(MA=null),EA!==null&&jT(EA)&&(EA=null),C1.forEach(Gz),L1.forEach(Gz)}function l1(e,t){e.blockedOn===t&&(e.blockedOn=null,$L||($L=!0,Hc.unstable_scheduleCallback(Hc.unstable_NormalPriority,wtt)))}function k1(e){function t(s){return l1(s,e)}if(0<PT.length){l1(PT[0],e);for(var r=1;r<PT.length;r++){var i=PT[r];i.blockedOn===e&&(i.blockedOn=null)}}for(TA!==null&&l1(TA,e),MA!==null&&l1(MA,e),EA!==null&&l1(EA,e),C1.forEach(t),L1.forEach(t),r=0;r<xA.length;r++)i=xA[r],i.blockedOn===e&&(i.blockedOn=null);for(;0<xA.length&&(r=xA[0],r.blockedOn===null);)dN(r),r.blockedOn===null&&xA.shift()}var X_=Kd.ReactCurrentBatchConfig,iM=!0;function Stt(e,t,r,i){var s=vn,n=X_.transition;X_.transition=null;try{vn=1,Ok(e,t,r,i)}finally{vn=s,X_.transition=n}}function Ttt(e,t,r,i){var s=vn,n=X_.transition;X_.transition=null;try{vn=4,Ok(e,t,r,i)}finally{vn=s,X_.transition=n}}function Ok(e,t,r,i){if(iM){var s=XL(e,t,r,i);if(s===null)bL(e,t,i,nM,r),jz(e,i);else if(btt(s,e,t,r,i))i.stopPropagation();else if(jz(e,i),t&4&&-1<xtt.indexOf(e)){for(;s!==null;){var n=q1(s);if(n!==null&&cN(n),n=XL(e,t,r,i),n===null&&bL(e,t,i,nM,r),n===s)break;s=n}s!==null&&i.stopPropagation()}else bL(e,t,i,null,r)}}var nM=null;function XL(e,t,r,i){if(nM=null,e=Lk(i),e=x0(e),e!==null)if(t=k0(e),t===null)e=null;else if(r=t.tag,r===13){if(e=eN(t),e!==null)return e;e=null}else if(r===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return nM=e,null}function pN(e){switch(e){case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 1;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"toggle\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 4;case\"message\":switch(ftt()){case kk:return 1;case sN:return 4;case eM:case dtt:return 16;case oN:return 536870912;default:return 16}default:return 16}}var wA=null,Bk=null,GT=null;function AN(){if(GT)return GT;var e,t=Bk,r=t.length,i,s=\"value\"in wA?wA.value:wA.textContent,n=s.length;for(e=0;e<r&&t[e]===s[e];e++);var o=r-e;for(i=1;i<=o&&t[r-i]===s[n-i];i++);return GT=s.slice(e,1<i?1-i:void 0)}function WT(e){var t=e.keyCode;return\"charCode\"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function IT(){return!0}function Wz(){return!1}function qc(e){function t(r,i,s,n,o){this._reactName=r,this._targetInst=s,this.type=i,this.nativeEvent=n,this.target=o,this.currentTarget=null;for(var c in e)e.hasOwnProperty(c)&&(r=e[c],this[c]=r?r(n):n[c]);return this.isDefaultPrevented=(n.defaultPrevented!=null?n.defaultPrevented:n.returnValue===!1)?IT:Wz,this.isPropagationStopped=Wz,this}return ms(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!=\"unknown\"&&(r.returnValue=!1),this.isDefaultPrevented=IT)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!=\"unknown\"&&(r.cancelBubble=!0),this.isPropagationStopped=IT)},persist:function(){},isPersistent:IT}),t}var ay={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Fk=qc(ay),H1=ms({},ay,{view:0,detail:0}),Mtt=qc(H1),mL,gL,c1,wM=ms({},H1,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zk,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==c1&&(c1&&e.type===\"mousemove\"?(mL=e.screenX-c1.screenX,gL=e.screenY-c1.screenY):gL=mL=0,c1=e),mL)},movementY:function(e){return\"movementY\"in e?e.movementY:gL}}),Hz=qc(wM),Ett=ms({},wM,{dataTransfer:0}),Ptt=qc(Ett),Itt=ms({},H1,{relatedTarget:0}),_L=qc(Itt),Ctt=ms({},ay,{animationName:0,elapsedTime:0,pseudoElement:0}),Ltt=qc(Ctt),ktt=ms({},ay,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}}),Rtt=qc(ktt),Dtt=ms({},ay,{data:0}),qz=qc(Dtt),Ott={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Btt={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Ftt={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function ztt(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Ftt[e])?!!t[e]:!1}function zk(){return ztt}var Ntt=ms({},H1,{key:function(e){if(e.key){var t=Ott[e.key]||e.key;if(t!==\"Unidentified\")return t}return e.type===\"keypress\"?(e=WT(e),e===13?\"Enter\":String.fromCharCode(e)):e.type===\"keydown\"||e.type===\"keyup\"?Btt[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zk,charCode:function(e){return e.type===\"keypress\"?WT(e):0},keyCode:function(e){return e.type===\"keydown\"||e.type===\"keyup\"?e.keyCode:0},which:function(e){return e.type===\"keypress\"?WT(e):e.type===\"keydown\"||e.type===\"keyup\"?e.keyCode:0}}),Utt=qc(Ntt),Vtt=ms({},wM,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Zz=qc(Vtt),jtt=ms({},H1,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zk}),Gtt=qc(jtt),Wtt=ms({},ay,{propertyName:0,elapsedTime:0,pseudoElement:0}),Htt=qc(Wtt),qtt=ms({},wM,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ztt=qc(qtt),Ytt=[9,13,27,32],Nk=Yd&&\"CompositionEvent\"in window,v1=null;Yd&&\"documentMode\"in document&&(v1=document.documentMode);var Qtt=Yd&&\"TextEvent\"in window&&!v1,mN=Yd&&(!Nk||v1&&8<v1&&11>=v1),Yz=\" \",Qz=!1;function gN(e,t){switch(e){case\"keyup\":return Ytt.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function _N(e){return e=e.detail,typeof e==\"object\"&&\"data\"in e?e.data:null}var z_=!1;function $tt(e,t){switch(e){case\"compositionend\":return _N(t);case\"keypress\":return t.which!==32?null:(Qz=!0,Yz);case\"textInput\":return e=t.data,e===Yz&&Qz?null:e;default:return null}}function Xtt(e,t){if(z_)return e===\"compositionend\"||!Nk&&gN(e,t)?(e=AN(),GT=Bk=wA=null,z_=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return mN&&t.locale!==\"ko\"?null:t.data;default:return null}}var Ktt={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function $z(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===\"input\"?!!Ktt[e.type]:t===\"textarea\"}function yN(e,t,r,i){$5(i),t=sM(t,\"onChange\"),0<t.length&&(r=new Fk(\"onChange\",\"change\",null,r,i),e.push({event:r,listeners:t}))}var x1=null,R1=null;function Jtt(e){CN(e,0)}function SM(e){var t=V_(e);if(G5(t))return e}function tet(e,t){if(e===\"change\")return t}var vN=!1;Yd&&(Yd?(LT=\"oninput\"in document,LT||(yL=document.createElement(\"div\"),yL.setAttribute(\"oninput\",\"return;\"),LT=typeof yL.oninput==\"function\"),CT=LT):CT=!1,vN=CT&&(!document.documentMode||9<document.documentMode));var CT,LT,yL;function Xz(){x1&&(x1.detachEvent(\"onpropertychange\",xN),R1=x1=null)}function xN(e){if(e.propertyName===\"value\"&&SM(R1)){var t=[];yN(t,R1,e,Lk(e)),tN(Jtt,t)}}function eet(e,t,r){e===\"focusin\"?(Xz(),x1=t,R1=r,x1.attachEvent(\"onpropertychange\",xN)):e===\"focusout\"&&Xz()}function ret(e){if(e===\"selectionchange\"||e===\"keyup\"||e===\"keydown\")return SM(R1)}function iet(e,t){if(e===\"click\")return SM(t)}function net(e,t){if(e===\"input\"||e===\"change\")return SM(t)}function set(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Lh=typeof Object.is==\"function\"?Object.is:set;function D1(e,t){if(Lh(e,t))return!0;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return!1;var r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(i=0;i<r.length;i++){var s=r[i];if(!RL.call(t,s)||!Lh(e[s],t[s]))return!1}return!0}function Kz(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Jz(e,t){var r=Kz(e);e=0;for(var i;r;){if(r.nodeType===3){if(i=e+r.textContent.length,e<=t&&i>=t)return{node:r,offset:t-e};e=i}t:{for(;r;){if(r.nextSibling){r=r.nextSibling;break t}r=r.parentNode}r=void 0}r=Kz(r)}}function bN(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bN(e,t.parentNode):\"contains\"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wN(){for(var e=window,t=KT();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href==\"string\"}catch{r=!1}if(r)e=t.contentWindow;else break;t=KT(e.document)}return t}function Uk(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===\"input\"&&(e.type===\"text\"||e.type===\"search\"||e.type===\"tel\"||e.type===\"url\"||e.type===\"password\")||t===\"textarea\"||e.contentEditable===\"true\")}function oet(e){var t=wN(),r=e.focusedElem,i=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&bN(r.ownerDocument.documentElement,r)){if(i!==null&&Uk(r)){if(t=i.start,e=i.end,e===void 0&&(e=t),\"selectionStart\"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=r.textContent.length,n=Math.min(i.start,s);i=i.end===void 0?n:Math.min(i.end,s),!e.extend&&n>i&&(s=i,i=n,n=s),s=Jz(r,n);var o=Jz(r,i);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),n>i?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus==\"function\"&&r.focus(),r=0;r<t.length;r++)e=t[r],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var aet=Yd&&\"documentMode\"in document&&11>=document.documentMode,N_=null,KL=null,b1=null,JL=!1;function t5(e,t,r){var i=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;JL||N_==null||N_!==KT(i)||(i=N_,\"selectionStart\"in i&&Uk(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),b1&&D1(b1,i)||(b1=i,i=sM(KL,\"onSelect\"),0<i.length&&(t=new Fk(\"onSelect\",\"select\",null,t,r),e.push({event:t,listeners:i}),t.target=N_)))}function kT(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r[\"Webkit\"+e]=\"webkit\"+t,r[\"Moz\"+e]=\"moz\"+t,r}var U_={animationend:kT(\"Animation\",\"AnimationEnd\"),animationiteration:kT(\"Animation\",\"AnimationIteration\"),animationstart:kT(\"Animation\",\"AnimationStart\"),transitionend:kT(\"Transition\",\"TransitionEnd\")},vL={},SN={};Yd&&(SN=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete U_.animationend.animation,delete U_.animationiteration.animation,delete U_.animationstart.animation),\"TransitionEvent\"in window||delete U_.transitionend.transition);function TM(e){if(vL[e])return vL[e];if(!U_[e])return e;var t=U_[e],r;for(r in t)if(t.hasOwnProperty(r)&&r in SN)return vL[e]=t[r];return e}var TN=TM(\"animationend\"),MN=TM(\"animationiteration\"),EN=TM(\"animationstart\"),PN=TM(\"transitionend\"),IN=new Map,e5=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function OA(e,t){IN.set(e,t),L0(t,[e])}for(RT=0;RT<e5.length;RT++)DT=e5[RT],r5=DT.toLowerCase(),i5=DT[0].toUpperCase()+DT.slice(1),OA(r5,\"on\"+i5);var DT,r5,i5,RT;OA(TN,\"onAnimationEnd\");OA(MN,\"onAnimationIteration\");OA(EN,\"onAnimationStart\");OA(\"dblclick\",\"onDoubleClick\");OA(\"focusin\",\"onFocus\");OA(\"focusout\",\"onBlur\");OA(PN,\"onTransitionEnd\");ty(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ty(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ty(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ty(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);L0(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));L0(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));L0(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);L0(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));L0(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));L0(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var g1=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),cet=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(g1));function n5(e,t,r){var i=e.type||\"unknown-event\";e.currentTarget=r,ltt(i,t,void 0,e),e.currentTarget=null}function CN(e,t){t=(t&4)!==0;for(var r=0;r<e.length;r++){var i=e[r],s=i.event;i=i.listeners;t:{var n=void 0;if(t)for(var o=i.length-1;0<=o;o--){var c=i[o],f=c.instance,_=c.currentTarget;if(c=c.listener,f!==n&&s.isPropagationStopped())break t;n5(s,c,_),n=f}else for(o=0;o<i.length;o++){if(c=i[o],f=c.instance,_=c.currentTarget,c=c.listener,f!==n&&s.isPropagationStopped())break t;n5(s,c,_),n=f}}}if(tM)throw e=YL,tM=!1,YL=null,e}function qn(e,t){var r=t[nk];r===void 0&&(r=t[nk]=new Set);var i=e+\"__bubble\";r.has(i)||(LN(t,e,2,!1),r.add(i))}function xL(e,t,r){var i=0;t&&(i|=4),LN(r,e,i,t)}var OT=\"_reactListening\"+Math.random().toString(36).slice(2);function O1(e){if(!e[OT]){e[OT]=!0,z5.forEach(function(r){r!==\"selectionchange\"&&(cet.has(r)||xL(r,!1,e),xL(r,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[OT]||(t[OT]=!0,xL(\"selectionchange\",!1,t))}}function LN(e,t,r,i){switch(pN(t)){case 1:var s=Stt;break;case 4:s=Ttt;break;default:s=Ok}r=s.bind(null,t,r,e),s=void 0,!ZL||t!==\"touchstart\"&&t!==\"touchmove\"&&t!==\"wheel\"||(s=!0),i?s!==void 0?e.addEventListener(t,r,{capture:!0,passive:s}):e.addEventListener(t,r,!0):s!==void 0?e.addEventListener(t,r,{passive:s}):e.addEventListener(t,r,!1)}function bL(e,t,r,i,s){var n=i;if(!(t&1)&&!(t&2)&&i!==null)t:for(;;){if(i===null)return;var o=i.tag;if(o===3||o===4){var c=i.stateNode.containerInfo;if(c===s||c.nodeType===8&&c.parentNode===s)break;if(o===4)for(o=i.return;o!==null;){var f=o.tag;if((f===3||f===4)&&(f=o.stateNode.containerInfo,f===s||f.nodeType===8&&f.parentNode===s))return;o=o.return}for(;c!==null;){if(o=x0(c),o===null)return;if(f=o.tag,f===5||f===6){i=n=o;continue t}c=c.parentNode}}i=i.return}tN(function(){var _=n,w=Lk(r),I=[];t:{var R=IN.get(e);if(R!==void 0){var N=Fk,j=e;switch(e){case\"keypress\":if(WT(r)===0)break t;case\"keydown\":case\"keyup\":N=Utt;break;case\"focusin\":j=\"focus\",N=_L;break;case\"focusout\":j=\"blur\",N=_L;break;case\"beforeblur\":case\"afterblur\":N=_L;break;case\"click\":if(r.button===2)break t;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":N=Hz;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":N=Ptt;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":N=Gtt;break;case TN:case MN:case EN:N=Ltt;break;case PN:N=Htt;break;case\"scroll\":N=Mtt;break;case\"wheel\":N=Ztt;break;case\"copy\":case\"cut\":case\"paste\":N=Rtt;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":N=Zz}var Q=(t&4)!==0,et=!Q&&e===\"scroll\",Y=Q?R!==null?R+\"Capture\":null:R;Q=[];for(var K=_,J;K!==null;){J=K;var ut=J.stateNode;if(J.tag===5&&ut!==null&&(J=ut,Y!==null&&(ut=I1(K,Y),ut!=null&&Q.push(B1(K,ut,J)))),et)break;K=K.return}0<Q.length&&(R=new N(R,j,null,r,w),I.push({event:R,listeners:Q}))}}if(!(t&7)){t:{if(R=e===\"mouseover\"||e===\"pointerover\",N=e===\"mouseout\"||e===\"pointerout\",R&&r!==HL&&(j=r.relatedTarget||r.fromElement)&&(x0(j)||j[Qd]))break t;if((N||R)&&(R=w.window===w?w:(R=w.ownerDocument)?R.defaultView||R.parentWindow:window,N?(j=r.relatedTarget||r.toElement,N=_,j=j?x0(j):null,j!==null&&(et=k0(j),j!==et||j.tag!==5&&j.tag!==6)&&(j=null)):(N=null,j=_),N!==j)){if(Q=Hz,ut=\"onMouseLeave\",Y=\"onMouseEnter\",K=\"mouse\",(e===\"pointerout\"||e===\"pointerover\")&&(Q=Zz,ut=\"onPointerLeave\",Y=\"onPointerEnter\",K=\"pointer\"),et=N==null?R:V_(N),J=j==null?R:V_(j),R=new Q(ut,K+\"leave\",N,r,w),R.target=et,R.relatedTarget=J,ut=null,x0(w)===_&&(Q=new Q(Y,K+\"enter\",j,r,w),Q.target=J,Q.relatedTarget=et,ut=Q),et=ut,N&&j)e:{for(Q=N,Y=j,K=0,J=Q;J;J=O_(J))K++;for(J=0,ut=Y;ut;ut=O_(ut))J++;for(;0<K-J;)Q=O_(Q),K--;for(;0<J-K;)Y=O_(Y),J--;for(;K--;){if(Q===Y||Y!==null&&Q===Y.alternate)break e;Q=O_(Q),Y=O_(Y)}Q=null}else Q=null;N!==null&&s5(I,R,N,Q,!1),j!==null&&et!==null&&s5(I,et,j,Q,!0)}}t:{if(R=_?V_(_):window,N=R.nodeName&&R.nodeName.toLowerCase(),N===\"select\"||N===\"input\"&&R.type===\"file\")var Et=tet;else if($z(R))if(vN)Et=net;else{Et=ret;var kt=eet}else(N=R.nodeName)&&N.toLowerCase()===\"input\"&&(R.type===\"checkbox\"||R.type===\"radio\")&&(Et=iet);if(Et&&(Et=Et(e,_))){yN(I,Et,r,w);break t}kt&&kt(e,R,_),e===\"focusout\"&&(kt=R._wrapperState)&&kt.controlled&&R.type===\"number\"&&UL(R,\"number\",R.value)}switch(kt=_?V_(_):window,e){case\"focusin\":($z(kt)||kt.contentEditable===\"true\")&&(N_=kt,KL=_,b1=null);break;case\"focusout\":b1=KL=N_=null;break;case\"mousedown\":JL=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":JL=!1,t5(I,r,w);break;case\"selectionchange\":if(aet)break;case\"keydown\":case\"keyup\":t5(I,r,w)}var Xt;if(Nk)t:{switch(e){case\"compositionstart\":var qt=\"onCompositionStart\";break t;case\"compositionend\":qt=\"onCompositionEnd\";break t;case\"compositionupdate\":qt=\"onCompositionUpdate\";break t}qt=void 0}else z_?gN(e,r)&&(qt=\"onCompositionEnd\"):e===\"keydown\"&&r.keyCode===229&&(qt=\"onCompositionStart\");qt&&(mN&&r.locale!==\"ko\"&&(z_||qt!==\"onCompositionStart\"?qt===\"onCompositionEnd\"&&z_&&(Xt=AN()):(wA=w,Bk=\"value\"in wA?wA.value:wA.textContent,z_=!0)),kt=sM(_,qt),0<kt.length&&(qt=new qz(qt,e,null,r,w),I.push({event:qt,listeners:kt}),Xt?qt.data=Xt:(Xt=_N(r),Xt!==null&&(qt.data=Xt)))),(Xt=Qtt?$tt(e,r):Xtt(e,r))&&(_=sM(_,\"onBeforeInput\"),0<_.length&&(w=new qz(\"onBeforeInput\",\"beforeinput\",null,r,w),I.push({event:w,listeners:_}),w.data=Xt))}CN(I,t)})}function B1(e,t,r){return{instance:e,listener:t,currentTarget:r}}function sM(e,t){for(var r=t+\"Capture\",i=[];e!==null;){var s=e,n=s.stateNode;s.tag===5&&n!==null&&(s=n,n=I1(e,r),n!=null&&i.unshift(B1(e,n,s)),n=I1(e,t),n!=null&&i.push(B1(e,n,s))),e=e.return}return i}function O_(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function s5(e,t,r,i,s){for(var n=t._reactName,o=[];r!==null&&r!==i;){var c=r,f=c.alternate,_=c.stateNode;if(f!==null&&f===i)break;c.tag===5&&_!==null&&(c=_,s?(f=I1(r,n),f!=null&&o.unshift(B1(r,f,c))):s||(f=I1(r,n),f!=null&&o.push(B1(r,f,c)))),r=r.return}o.length!==0&&e.push({event:t,listeners:o})}var uet=/\\r\\n?/g,het=/\\u0000|\\uFFFD/g;function o5(e){return(typeof e==\"string\"?e:\"\"+e).replace(uet,`\n`).replace(het,\"\")}function BT(e,t,r){if(t=o5(t),o5(e)!==t&&r)throw Error(Pe(425))}function oM(){}var tk=null,ek=null;function rk(e,t){return e===\"textarea\"||e===\"noscript\"||typeof t.children==\"string\"||typeof t.children==\"number\"||typeof t.dangerouslySetInnerHTML==\"object\"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var ik=typeof setTimeout==\"function\"?setTimeout:void 0,fet=typeof clearTimeout==\"function\"?clearTimeout:void 0,a5=typeof Promise==\"function\"?Promise:void 0,det=typeof queueMicrotask==\"function\"?queueMicrotask:typeof a5<\"u\"?function(e){return a5.resolve(null).then(e).catch(pet)}:ik;function pet(e){setTimeout(function(){throw e})}function wL(e,t){var r=t,i=0;do{var s=r.nextSibling;if(e.removeChild(r),s&&s.nodeType===8)if(r=s.data,r===\"/$\"){if(i===0){e.removeChild(s),k1(t);return}i--}else r!==\"$\"&&r!==\"$?\"&&r!==\"$!\"||i++;r=s}while(r);k1(t)}function PA(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===\"$\"||t===\"$!\"||t===\"$?\")break;if(t===\"/$\")return null}}return e}function l5(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r===\"$\"||r===\"$!\"||r===\"$?\"){if(t===0)return e;t--}else r===\"/$\"&&t++}e=e.previousSibling}return null}var ly=Math.random().toString(36).slice(2),kf=\"__reactFiber$\"+ly,F1=\"__reactProps$\"+ly,Qd=\"__reactContainer$\"+ly,nk=\"__reactEvents$\"+ly,Aet=\"__reactListeners$\"+ly,met=\"__reactHandles$\"+ly;function x0(e){var t=e[kf];if(t)return t;for(var r=e.parentNode;r;){if(t=r[Qd]||r[kf]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=l5(e);e!==null;){if(r=e[kf])return r;e=l5(e)}return t}e=r,r=e.parentNode}return null}function q1(e){return e=e[kf]||e[Qd],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function V_(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(Pe(33))}function MM(e){return e[F1]||null}var sk=[],j_=-1;function BA(e){return{current:e}}function Zn(e){0>j_||(e.current=sk[j_],sk[j_]=null,j_--)}function Nn(e,t){j_++,sk[j_]=e.current,e.current=t}var DA={},$a=BA(DA),Kl=BA(!1),M0=DA;function ey(e,t){var r=e.type.contextTypes;if(!r)return DA;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var s={},n;for(n in r)s[n]=t[n];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Jl(e){return e=e.childContextTypes,e!=null}function aM(){Zn(Kl),Zn($a)}function c5(e,t,r){if($a.current!==DA)throw Error(Pe(168));Nn($a,t),Nn(Kl,r)}function kN(e,t,r){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=\"function\")return r;i=i.getChildContext();for(var s in i)if(!(s in t))throw Error(Pe(108,ett(e)||\"Unknown\",s));return ms({},r,i)}function lM(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||DA,M0=$a.current,Nn($a,e),Nn(Kl,Kl.current),!0}function u5(e,t,r){var i=e.stateNode;if(!i)throw Error(Pe(169));r?(e=kN(e,t,M0),i.__reactInternalMemoizedMergedChildContext=e,Zn(Kl),Zn($a),Nn($a,e)):Zn(Kl),Nn(Kl,r)}var Wd=null,EM=!1,SL=!1;function RN(e){Wd===null?Wd=[e]:Wd.push(e)}function get(e){EM=!0,RN(e)}function FA(){if(!SL&&Wd!==null){SL=!0;var e=0,t=vn;try{var r=Wd;for(vn=1;e<r.length;e++){var i=r[e];do i=i(!0);while(i!==null)}Wd=null,EM=!1}catch(s){throw Wd!==null&&(Wd=Wd.slice(e+1)),nN(kk,FA),s}finally{vn=t,SL=!1}}return null}var G_=[],W_=0,cM=null,uM=0,Su=[],Tu=0,E0=null,Hd=1,qd=\"\";function y0(e,t){G_[W_++]=uM,G_[W_++]=cM,cM=e,uM=t}function DN(e,t,r){Su[Tu++]=Hd,Su[Tu++]=qd,Su[Tu++]=E0,E0=e;var i=Hd;e=qd;var s=32-Ih(i)-1;i&=~(1<<s),r+=1;var n=32-Ih(t)+s;if(30<n){var o=s-s%5;n=(i&(1<<o)-1).toString(32),i>>=o,s-=o,Hd=1<<32-Ih(t)+s|r<<s|i,qd=n+e}else Hd=1<<n|r<<s|i,qd=e}function Vk(e){e.return!==null&&(y0(e,1),DN(e,1,0))}function jk(e){for(;e===cM;)cM=G_[--W_],G_[W_]=null,uM=G_[--W_],G_[W_]=null;for(;e===E0;)E0=Su[--Tu],Su[Tu]=null,qd=Su[--Tu],Su[Tu]=null,Hd=Su[--Tu],Su[Tu]=null}var Wc=null,Gc=null,ns=!1,Ph=null;function ON(e,t){var r=Mu(5,null,null,0);r.elementType=\"DELETED\",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function h5(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Wc=e,Gc=PA(t.firstChild),!0):!1;case 6:return t=e.pendingProps===\"\"||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Wc=e,Gc=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=E0!==null?{id:Hd,overflow:qd}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=Mu(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,Wc=e,Gc=null,!0):!1;default:return!1}}function ok(e){return(e.mode&1)!==0&&(e.flags&128)===0}function ak(e){if(ns){var t=Gc;if(t){var r=t;if(!h5(e,t)){if(ok(e))throw Error(Pe(418));t=PA(r.nextSibling);var i=Wc;t&&h5(e,t)?ON(i,r):(e.flags=e.flags&-4097|2,ns=!1,Wc=e)}}else{if(ok(e))throw Error(Pe(418));e.flags=e.flags&-4097|2,ns=!1,Wc=e}}}function f5(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Wc=e}function FT(e){if(e!==Wc)return!1;if(!ns)return f5(e),ns=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!==\"head\"&&t!==\"body\"&&!rk(e.type,e.memoizedProps)),t&&(t=Gc)){if(ok(e))throw BN(),Error(Pe(418));for(;t;)ON(e,t),t=PA(t.nextSibling)}if(f5(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Pe(317));t:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r===\"/$\"){if(t===0){Gc=PA(e.nextSibling);break t}t--}else r!==\"$\"&&r!==\"$!\"&&r!==\"$?\"||t++}e=e.nextSibling}Gc=null}}else Gc=Wc?PA(e.stateNode.nextSibling):null;return!0}function BN(){for(var e=Gc;e;)e=PA(e.nextSibling)}function ry(){Gc=Wc=null,ns=!1}function Gk(e){Ph===null?Ph=[e]:Ph.push(e)}var _et=Kd.ReactCurrentBatchConfig;function u1(e,t,r){if(e=r.ref,e!==null&&typeof e!=\"function\"&&typeof e!=\"object\"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(Pe(309));var i=r.stateNode}if(!i)throw Error(Pe(147,e));var s=i,n=\"\"+e;return t!==null&&t.ref!==null&&typeof t.ref==\"function\"&&t.ref._stringRef===n?t.ref:(t=function(o){var c=s.refs;o===null?delete c[n]:c[n]=o},t._stringRef=n,t)}if(typeof e!=\"string\")throw Error(Pe(284));if(!r._owner)throw Error(Pe(290,e))}return e}function zT(e,t){throw e=Object.prototype.toString.call(t),Error(Pe(31,e===\"[object Object]\"?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e))}function d5(e){var t=e._init;return t(e._payload)}function FN(e){function t(Y,K){if(e){var J=Y.deletions;J===null?(Y.deletions=[K],Y.flags|=16):J.push(K)}}function r(Y,K){if(!e)return null;for(;K!==null;)t(Y,K),K=K.sibling;return null}function i(Y,K){for(Y=new Map;K!==null;)K.key!==null?Y.set(K.key,K):Y.set(K.index,K),K=K.sibling;return Y}function s(Y,K){return Y=kA(Y,K),Y.index=0,Y.sibling=null,Y}function n(Y,K,J){return Y.index=J,e?(J=Y.alternate,J!==null?(J=J.index,J<K?(Y.flags|=2,K):J):(Y.flags|=2,K)):(Y.flags|=1048576,K)}function o(Y){return e&&Y.alternate===null&&(Y.flags|=2),Y}function c(Y,K,J,ut){return K===null||K.tag!==6?(K=LL(J,Y.mode,ut),K.return=Y,K):(K=s(K,J),K.return=Y,K)}function f(Y,K,J,ut){var Et=J.type;return Et===F_?w(Y,K,J.props.children,ut,J.key):K!==null&&(K.elementType===Et||typeof Et==\"object\"&&Et!==null&&Et.$$typeof===yA&&d5(Et)===K.type)?(ut=s(K,J.props),ut.ref=u1(Y,K,J),ut.return=Y,ut):(ut=XT(J.type,J.key,J.props,null,Y.mode,ut),ut.ref=u1(Y,K,J),ut.return=Y,ut)}function _(Y,K,J,ut){return K===null||K.tag!==4||K.stateNode.containerInfo!==J.containerInfo||K.stateNode.implementation!==J.implementation?(K=kL(J,Y.mode,ut),K.return=Y,K):(K=s(K,J.children||[]),K.return=Y,K)}function w(Y,K,J,ut,Et){return K===null||K.tag!==7?(K=T0(J,Y.mode,ut,Et),K.return=Y,K):(K=s(K,J),K.return=Y,K)}function I(Y,K,J){if(typeof K==\"string\"&&K!==\"\"||typeof K==\"number\")return K=LL(\"\"+K,Y.mode,J),K.return=Y,K;if(typeof K==\"object\"&&K!==null){switch(K.$$typeof){case wT:return J=XT(K.type,K.key,K.props,null,Y.mode,J),J.ref=u1(Y,null,K),J.return=Y,J;case B_:return K=kL(K,Y.mode,J),K.return=Y,K;case yA:var ut=K._init;return I(Y,ut(K._payload),J)}if(A1(K)||o1(K))return K=T0(K,Y.mode,J,null),K.return=Y,K;zT(Y,K)}return null}function R(Y,K,J,ut){var Et=K!==null?K.key:null;if(typeof J==\"string\"&&J!==\"\"||typeof J==\"number\")return Et!==null?null:c(Y,K,\"\"+J,ut);if(typeof J==\"object\"&&J!==null){switch(J.$$typeof){case wT:return J.key===Et?f(Y,K,J,ut):null;case B_:return J.key===Et?_(Y,K,J,ut):null;case yA:return Et=J._init,R(Y,K,Et(J._payload),ut)}if(A1(J)||o1(J))return Et!==null?null:w(Y,K,J,ut,null);zT(Y,J)}return null}function N(Y,K,J,ut,Et){if(typeof ut==\"string\"&&ut!==\"\"||typeof ut==\"number\")return Y=Y.get(J)||null,c(K,Y,\"\"+ut,Et);if(typeof ut==\"object\"&&ut!==null){switch(ut.$$typeof){case wT:return Y=Y.get(ut.key===null?J:ut.key)||null,f(K,Y,ut,Et);case B_:return Y=Y.get(ut.key===null?J:ut.key)||null,_(K,Y,ut,Et);case yA:var kt=ut._init;return N(Y,K,J,kt(ut._payload),Et)}if(A1(ut)||o1(ut))return Y=Y.get(J)||null,w(K,Y,ut,Et,null);zT(K,ut)}return null}function j(Y,K,J,ut){for(var Et=null,kt=null,Xt=K,qt=K=0,le=null;Xt!==null&&qt<J.length;qt++){Xt.index>qt?(le=Xt,Xt=null):le=Xt.sibling;var ue=R(Y,Xt,J[qt],ut);if(ue===null){Xt===null&&(Xt=le);break}e&&Xt&&ue.alternate===null&&t(Y,Xt),K=n(ue,K,qt),kt===null?Et=ue:kt.sibling=ue,kt=ue,Xt=le}if(qt===J.length)return r(Y,Xt),ns&&y0(Y,qt),Et;if(Xt===null){for(;qt<J.length;qt++)Xt=I(Y,J[qt],ut),Xt!==null&&(K=n(Xt,K,qt),kt===null?Et=Xt:kt.sibling=Xt,kt=Xt);return ns&&y0(Y,qt),Et}for(Xt=i(Y,Xt);qt<J.length;qt++)le=N(Xt,Y,qt,J[qt],ut),le!==null&&(e&&le.alternate!==null&&Xt.delete(le.key===null?qt:le.key),K=n(le,K,qt),kt===null?Et=le:kt.sibling=le,kt=le);return e&&Xt.forEach(function(De){return t(Y,De)}),ns&&y0(Y,qt),Et}function Q(Y,K,J,ut){var Et=o1(J);if(typeof Et!=\"function\")throw Error(Pe(150));if(J=Et.call(J),J==null)throw Error(Pe(151));for(var kt=Et=null,Xt=K,qt=K=0,le=null,ue=J.next();Xt!==null&&!ue.done;qt++,ue=J.next()){Xt.index>qt?(le=Xt,Xt=null):le=Xt.sibling;var De=R(Y,Xt,ue.value,ut);if(De===null){Xt===null&&(Xt=le);break}e&&Xt&&De.alternate===null&&t(Y,Xt),K=n(De,K,qt),kt===null?Et=De:kt.sibling=De,kt=De,Xt=le}if(ue.done)return r(Y,Xt),ns&&y0(Y,qt),Et;if(Xt===null){for(;!ue.done;qt++,ue=J.next())ue=I(Y,ue.value,ut),ue!==null&&(K=n(ue,K,qt),kt===null?Et=ue:kt.sibling=ue,kt=ue);return ns&&y0(Y,qt),Et}for(Xt=i(Y,Xt);!ue.done;qt++,ue=J.next())ue=N(Xt,Y,qt,ue.value,ut),ue!==null&&(e&&ue.alternate!==null&&Xt.delete(ue.key===null?qt:ue.key),K=n(ue,K,qt),kt===null?Et=ue:kt.sibling=ue,kt=ue);return e&&Xt.forEach(function(Ke){return t(Y,Ke)}),ns&&y0(Y,qt),Et}function et(Y,K,J,ut){if(typeof J==\"object\"&&J!==null&&J.type===F_&&J.key===null&&(J=J.props.children),typeof J==\"object\"&&J!==null){switch(J.$$typeof){case wT:t:{for(var Et=J.key,kt=K;kt!==null;){if(kt.key===Et){if(Et=J.type,Et===F_){if(kt.tag===7){r(Y,kt.sibling),K=s(kt,J.props.children),K.return=Y,Y=K;break t}}else if(kt.elementType===Et||typeof Et==\"object\"&&Et!==null&&Et.$$typeof===yA&&d5(Et)===kt.type){r(Y,kt.sibling),K=s(kt,J.props),K.ref=u1(Y,kt,J),K.return=Y,Y=K;break t}r(Y,kt);break}else t(Y,kt);kt=kt.sibling}J.type===F_?(K=T0(J.props.children,Y.mode,ut,J.key),K.return=Y,Y=K):(ut=XT(J.type,J.key,J.props,null,Y.mode,ut),ut.ref=u1(Y,K,J),ut.return=Y,Y=ut)}return o(Y);case B_:t:{for(kt=J.key;K!==null;){if(K.key===kt)if(K.tag===4&&K.stateNode.containerInfo===J.containerInfo&&K.stateNode.implementation===J.implementation){r(Y,K.sibling),K=s(K,J.children||[]),K.return=Y,Y=K;break t}else{r(Y,K);break}else t(Y,K);K=K.sibling}K=kL(J,Y.mode,ut),K.return=Y,Y=K}return o(Y);case yA:return kt=J._init,et(Y,K,kt(J._payload),ut)}if(A1(J))return j(Y,K,J,ut);if(o1(J))return Q(Y,K,J,ut);zT(Y,J)}return typeof J==\"string\"&&J!==\"\"||typeof J==\"number\"?(J=\"\"+J,K!==null&&K.tag===6?(r(Y,K.sibling),K=s(K,J),K.return=Y,Y=K):(r(Y,K),K=LL(J,Y.mode,ut),K.return=Y,Y=K),o(Y)):r(Y,K)}return et}var iy=FN(!0),zN=FN(!1),hM=BA(null),fM=null,H_=null,Wk=null;function Hk(){Wk=H_=fM=null}function qk(e){var t=hM.current;Zn(hM),e._currentValue=t}function lk(e,t,r){for(;e!==null;){var i=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,i!==null&&(i.childLanes|=t)):i!==null&&(i.childLanes&t)!==t&&(i.childLanes|=t),e===r)break;e=e.return}}function K_(e,t){fM=e,Wk=H_=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Xl=!0),e.firstContext=null)}function Pu(e){var t=e._currentValue;if(Wk!==e)if(e={context:e,memoizedValue:t,next:null},H_===null){if(fM===null)throw Error(Pe(308));H_=e,fM.dependencies={lanes:0,firstContext:e}}else H_=H_.next=e;return t}var b0=null;function Zk(e){b0===null?b0=[e]:b0.push(e)}function NN(e,t,r,i){var s=t.interleaved;return s===null?(r.next=r,Zk(t)):(r.next=s.next,s.next=r),t.interleaved=r,$d(e,i)}function $d(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var vA=!1;function Yk(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function UN(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Zd(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function IA(e,t,r){var i=e.updateQueue;if(i===null)return null;if(i=i.shared,Zi&2){var s=i.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),i.pending=t,$d(e,r)}return s=i.interleaved,s===null?(t.next=t,Zk(i)):(t.next=s.next,s.next=t),i.interleaved=t,$d(e,r)}function HT(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var i=t.lanes;i&=e.pendingLanes,r|=i,t.lanes=r,Rk(e,r)}}function p5(e,t){var r=e.updateQueue,i=e.alternate;if(i!==null&&(i=i.updateQueue,r===i)){var s=null,n=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};n===null?s=n=o:n=n.next=o,r=r.next}while(r!==null);n===null?s=n=t:n=n.next=t}else s=n=t;r={baseState:i.baseState,firstBaseUpdate:s,lastBaseUpdate:n,shared:i.shared,effects:i.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function dM(e,t,r,i){var s=e.updateQueue;vA=!1;var n=s.firstBaseUpdate,o=s.lastBaseUpdate,c=s.shared.pending;if(c!==null){s.shared.pending=null;var f=c,_=f.next;f.next=null,o===null?n=_:o.next=_,o=f;var w=e.alternate;w!==null&&(w=w.updateQueue,c=w.lastBaseUpdate,c!==o&&(c===null?w.firstBaseUpdate=_:c.next=_,w.lastBaseUpdate=f))}if(n!==null){var I=s.baseState;o=0,w=_=f=null,c=n;do{var R=c.lane,N=c.eventTime;if((i&R)===R){w!==null&&(w=w.next={eventTime:N,lane:0,tag:c.tag,payload:c.payload,callback:c.callback,next:null});t:{var j=e,Q=c;switch(R=t,N=r,Q.tag){case 1:if(j=Q.payload,typeof j==\"function\"){I=j.call(N,I,R);break t}I=j;break t;case 3:j.flags=j.flags&-65537|128;case 0:if(j=Q.payload,R=typeof j==\"function\"?j.call(N,I,R):j,R==null)break t;I=ms({},I,R);break t;case 2:vA=!0}}c.callback!==null&&c.lane!==0&&(e.flags|=64,R=s.effects,R===null?s.effects=[c]:R.push(c))}else N={eventTime:N,lane:R,tag:c.tag,payload:c.payload,callback:c.callback,next:null},w===null?(_=w=N,f=I):w=w.next=N,o|=R;if(c=c.next,c===null){if(c=s.shared.pending,c===null)break;R=c,c=R.next,R.next=null,s.lastBaseUpdate=R,s.shared.pending=null}}while(!0);if(w===null&&(f=I),s.baseState=f,s.firstBaseUpdate=_,s.lastBaseUpdate=w,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else n===null&&(s.shared.lanes=0);I0|=o,e.lanes=o,e.memoizedState=I}}function A5(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var i=e[t],s=i.callback;if(s!==null){if(i.callback=null,i=r,typeof s!=\"function\")throw Error(Pe(191,s));s.call(i)}}}var Z1={},Df=BA(Z1),z1=BA(Z1),N1=BA(Z1);function w0(e){if(e===Z1)throw Error(Pe(174));return e}function Qk(e,t){switch(Nn(N1,t),Nn(z1,e),Nn(Df,Z1),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:jL(null,\"\");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=jL(t,e)}Zn(Df),Nn(Df,t)}function ny(){Zn(Df),Zn(z1),Zn(N1)}function VN(e){w0(N1.current);var t=w0(Df.current),r=jL(t,e.type);t!==r&&(Nn(z1,e),Nn(Df,r))}function $k(e){z1.current===e&&(Zn(Df),Zn(z1))}var ps=BA(0);function pM(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data===\"$?\"||r.data===\"$!\"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var TL=[];function Xk(){for(var e=0;e<TL.length;e++)TL[e]._workInProgressVersionPrimary=null;TL.length=0}var qT=Kd.ReactCurrentDispatcher,ML=Kd.ReactCurrentBatchConfig,P0=0,As=null,Io=null,Ko=null,AM=!1,w1=!1,U1=0,yet=0;function Za(){throw Error(Pe(321))}function Kk(e,t){if(t===null)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!Lh(e[r],t[r]))return!1;return!0}function Jk(e,t,r,i,s,n){if(P0=n,As=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,qT.current=e===null||e.memoizedState===null?wet:Tet,e=r(i,s),w1){n=0;do{if(w1=!1,U1=0,25<=n)throw Error(Pe(301));n+=1,Ko=Io=null,t.updateQueue=null,qT.current=Met,e=r(i,s)}while(w1)}if(qT.current=mM,t=Io!==null&&Io.next!==null,P0=0,Ko=Io=As=null,AM=!1,t)throw Error(Pe(300));return e}function t4(){var e=U1!==0;return U1=0,e}function Lf(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ko===null?As.memoizedState=Ko=e:Ko=Ko.next=e,Ko}function Iu(){if(Io===null){var e=As.alternate;e=e!==null?e.memoizedState:null}else e=Io.next;var t=Ko===null?As.memoizedState:Ko.next;if(t!==null)Ko=t,Io=e;else{if(e===null)throw Error(Pe(310));Io=e,e={memoizedState:Io.memoizedState,baseState:Io.baseState,baseQueue:Io.baseQueue,queue:Io.queue,next:null},Ko===null?As.memoizedState=Ko=e:Ko=Ko.next=e}return Ko}function V1(e,t){return typeof t==\"function\"?t(e):t}function EL(e){var t=Iu(),r=t.queue;if(r===null)throw Error(Pe(311));r.lastRenderedReducer=e;var i=Io,s=i.baseQueue,n=r.pending;if(n!==null){if(s!==null){var o=s.next;s.next=n.next,n.next=o}i.baseQueue=s=n,r.pending=null}if(s!==null){n=s.next,i=i.baseState;var c=o=null,f=null,_=n;do{var w=_.lane;if((P0&w)===w)f!==null&&(f=f.next={lane:0,action:_.action,hasEagerState:_.hasEagerState,eagerState:_.eagerState,next:null}),i=_.hasEagerState?_.eagerState:e(i,_.action);else{var I={lane:w,action:_.action,hasEagerState:_.hasEagerState,eagerState:_.eagerState,next:null};f===null?(c=f=I,o=i):f=f.next=I,As.lanes|=w,I0|=w}_=_.next}while(_!==null&&_!==n);f===null?o=i:f.next=c,Lh(i,t.memoizedState)||(Xl=!0),t.memoizedState=i,t.baseState=o,t.baseQueue=f,r.lastRenderedState=i}if(e=r.interleaved,e!==null){s=e;do n=s.lane,As.lanes|=n,I0|=n,s=s.next;while(s!==e)}else s===null&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function PL(e){var t=Iu(),r=t.queue;if(r===null)throw Error(Pe(311));r.lastRenderedReducer=e;var i=r.dispatch,s=r.pending,n=t.memoizedState;if(s!==null){r.pending=null;var o=s=s.next;do n=e(n,o.action),o=o.next;while(o!==s);Lh(n,t.memoizedState)||(Xl=!0),t.memoizedState=n,t.baseQueue===null&&(t.baseState=n),r.lastRenderedState=n}return[n,i]}function jN(){}function GN(e,t){var r=As,i=Iu(),s=t(),n=!Lh(i.memoizedState,s);if(n&&(i.memoizedState=s,Xl=!0),i=i.queue,e4(qN.bind(null,r,i,e),[e]),i.getSnapshot!==t||n||Ko!==null&&Ko.memoizedState.tag&1){if(r.flags|=2048,j1(9,HN.bind(null,r,i,s,t),void 0,null),Jo===null)throw Error(Pe(349));P0&30||WN(r,t,s)}return s}function WN(e,t,r){e.flags|=16384,e={getSnapshot:t,value:r},t=As.updateQueue,t===null?(t={lastEffect:null,stores:null},As.updateQueue=t,t.stores=[e]):(r=t.stores,r===null?t.stores=[e]:r.push(e))}function HN(e,t,r,i){t.value=r,t.getSnapshot=i,ZN(t)&&YN(e)}function qN(e,t,r){return r(function(){ZN(t)&&YN(e)})}function ZN(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!Lh(e,r)}catch{return!0}}function YN(e){var t=$d(e,1);t!==null&&Ch(t,e,1,-1)}function m5(e){var t=Lf();return typeof e==\"function\"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:V1,lastRenderedState:e},t.queue=e,e=e.dispatch=bet.bind(null,As,e),[t.memoizedState,e]}function j1(e,t,r,i){return e={tag:e,create:t,destroy:r,deps:i,next:null},t=As.updateQueue,t===null?(t={lastEffect:null,stores:null},As.updateQueue=t,t.lastEffect=e.next=e):(r=t.lastEffect,r===null?t.lastEffect=e.next=e:(i=r.next,r.next=e,e.next=i,t.lastEffect=e)),e}function QN(){return Iu().memoizedState}function ZT(e,t,r,i){var s=Lf();As.flags|=e,s.memoizedState=j1(1|t,r,void 0,i===void 0?null:i)}function PM(e,t,r,i){var s=Iu();i=i===void 0?null:i;var n=void 0;if(Io!==null){var o=Io.memoizedState;if(n=o.destroy,i!==null&&Kk(i,o.deps)){s.memoizedState=j1(t,r,n,i);return}}As.flags|=e,s.memoizedState=j1(1|t,r,n,i)}function g5(e,t){return ZT(8390656,8,e,t)}function e4(e,t){return PM(2048,8,e,t)}function $N(e,t){return PM(4,2,e,t)}function XN(e,t){return PM(4,4,e,t)}function KN(e,t){if(typeof t==\"function\")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function JN(e,t,r){return r=r!=null?r.concat([e]):null,PM(4,4,KN.bind(null,t,e),r)}function r4(){}function t8(e,t){var r=Iu();t=t===void 0?null:t;var i=r.memoizedState;return i!==null&&t!==null&&Kk(t,i[1])?i[0]:(r.memoizedState=[e,t],e)}function e8(e,t){var r=Iu();t=t===void 0?null:t;var i=r.memoizedState;return i!==null&&t!==null&&Kk(t,i[1])?i[0]:(e=e(),r.memoizedState=[e,t],e)}function r8(e,t,r){return P0&21?(Lh(r,t)||(r=aN(),As.lanes|=r,I0|=r,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Xl=!0),e.memoizedState=r)}function vet(e,t){var r=vn;vn=r!==0&&4>r?r:4,e(!0);var i=ML.transition;ML.transition={};try{e(!1),t()}finally{vn=r,ML.transition=i}}function i8(){return Iu().memoizedState}function xet(e,t,r){var i=LA(e);if(r={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null},n8(e))s8(t,r);else if(r=NN(e,t,r,i),r!==null){var s=wl();Ch(r,e,i,s),o8(r,t,i)}}function bet(e,t,r){var i=LA(e),s={lane:i,action:r,hasEagerState:!1,eagerState:null,next:null};if(n8(e))s8(t,s);else{var n=e.alternate;if(e.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var o=t.lastRenderedState,c=n(o,r);if(s.hasEagerState=!0,s.eagerState=c,Lh(c,o)){var f=t.interleaved;f===null?(s.next=s,Zk(t)):(s.next=f.next,f.next=s),t.interleaved=s;return}}catch{}finally{}r=NN(e,t,s,i),r!==null&&(s=wl(),Ch(r,e,i,s),o8(r,t,i))}}function n8(e){var t=e.alternate;return e===As||t!==null&&t===As}function s8(e,t){w1=AM=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function o8(e,t,r){if(r&4194240){var i=t.lanes;i&=e.pendingLanes,r|=i,t.lanes=r,Rk(e,r)}}var mM={readContext:Pu,useCallback:Za,useContext:Za,useEffect:Za,useImperativeHandle:Za,useInsertionEffect:Za,useLayoutEffect:Za,useMemo:Za,useReducer:Za,useRef:Za,useState:Za,useDebugValue:Za,useDeferredValue:Za,useTransition:Za,useMutableSource:Za,useSyncExternalStore:Za,useId:Za,unstable_isNewReconciler:!1},wet={readContext:Pu,useCallback:function(e,t){return Lf().memoizedState=[e,t===void 0?null:t],e},useContext:Pu,useEffect:g5,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,ZT(4194308,4,KN.bind(null,t,e),r)},useLayoutEffect:function(e,t){return ZT(4194308,4,e,t)},useInsertionEffect:function(e,t){return ZT(4,2,e,t)},useMemo:function(e,t){var r=Lf();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var i=Lf();return t=r!==void 0?r(t):t,i.memoizedState=i.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},i.queue=e,e=e.dispatch=xet.bind(null,As,e),[i.memoizedState,e]},useRef:function(e){var t=Lf();return e={current:e},t.memoizedState=e},useState:m5,useDebugValue:r4,useDeferredValue:function(e){return Lf().memoizedState=e},useTransition:function(){var e=m5(!1),t=e[0];return e=vet.bind(null,e[1]),Lf().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var i=As,s=Lf();if(ns){if(r===void 0)throw Error(Pe(407));r=r()}else{if(r=t(),Jo===null)throw Error(Pe(349));P0&30||WN(i,t,r)}s.memoizedState=r;var n={value:r,getSnapshot:t};return s.queue=n,g5(qN.bind(null,i,n,e),[e]),i.flags|=2048,j1(9,HN.bind(null,i,n,r,t),void 0,null),r},useId:function(){var e=Lf(),t=Jo.identifierPrefix;if(ns){var r=qd,i=Hd;r=(i&~(1<<32-Ih(i)-1)).toString(32)+r,t=\":\"+t+\"R\"+r,r=U1++,0<r&&(t+=\"H\"+r.toString(32)),t+=\":\"}else r=yet++,t=\":\"+t+\"r\"+r.toString(32)+\":\";return e.memoizedState=t},unstable_isNewReconciler:!1},Tet={readContext:Pu,useCallback:t8,useContext:Pu,useEffect:e4,useImperativeHandle:JN,useInsertionEffect:$N,useLayoutEffect:XN,useMemo:e8,useReducer:EL,useRef:QN,useState:function(){return EL(V1)},useDebugValue:r4,useDeferredValue:function(e){var t=Iu();return r8(t,Io.memoizedState,e)},useTransition:function(){var e=EL(V1)[0],t=Iu().memoizedState;return[e,t]},useMutableSource:jN,useSyncExternalStore:GN,useId:i8,unstable_isNewReconciler:!1},Met={readContext:Pu,useCallback:t8,useContext:Pu,useEffect:e4,useImperativeHandle:JN,useInsertionEffect:$N,useLayoutEffect:XN,useMemo:e8,useReducer:PL,useRef:QN,useState:function(){return PL(V1)},useDebugValue:r4,useDeferredValue:function(e){var t=Iu();return Io===null?t.memoizedState=e:r8(t,Io.memoizedState,e)},useTransition:function(){var e=PL(V1)[0],t=Iu().memoizedState;return[e,t]},useMutableSource:jN,useSyncExternalStore:GN,useId:i8,unstable_isNewReconciler:!1};function Mh(e,t){if(e&&e.defaultProps){t=ms({},t),e=e.defaultProps;for(var r in e)t[r]===void 0&&(t[r]=e[r]);return t}return t}function ck(e,t,r,i){t=e.memoizedState,r=r(i,t),r=r==null?t:ms({},t,r),e.memoizedState=r,e.lanes===0&&(e.updateQueue.baseState=r)}var IM={isMounted:function(e){return(e=e._reactInternals)?k0(e)===e:!1},enqueueSetState:function(e,t,r){e=e._reactInternals;var i=wl(),s=LA(e),n=Zd(i,s);n.payload=t,r!=null&&(n.callback=r),t=IA(e,n,s),t!==null&&(Ch(t,e,s,i),HT(t,e,s))},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var i=wl(),s=LA(e),n=Zd(i,s);n.tag=1,n.payload=t,r!=null&&(n.callback=r),t=IA(e,n,s),t!==null&&(Ch(t,e,s,i),HT(t,e,s))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=wl(),i=LA(e),s=Zd(r,i);s.tag=2,t!=null&&(s.callback=t),t=IA(e,s,i),t!==null&&(Ch(t,e,i,r),HT(t,e,i))}};function _5(e,t,r,i,s,n,o){return e=e.stateNode,typeof e.shouldComponentUpdate==\"function\"?e.shouldComponentUpdate(i,n,o):t.prototype&&t.prototype.isPureReactComponent?!D1(r,i)||!D1(s,n):!0}function a8(e,t,r){var i=!1,s=DA,n=t.contextType;return typeof n==\"object\"&&n!==null?n=Pu(n):(s=Jl(t)?M0:$a.current,i=t.contextTypes,n=(i=i!=null)?ey(e,s):DA),t=new t(r,n),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=IM,e.stateNode=t,t._reactInternals=e,i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=s,e.__reactInternalMemoizedMaskedChildContext=n),t}function y5(e,t,r,i){e=t.state,typeof t.componentWillReceiveProps==\"function\"&&t.componentWillReceiveProps(r,i),typeof t.UNSAFE_componentWillReceiveProps==\"function\"&&t.UNSAFE_componentWillReceiveProps(r,i),t.state!==e&&IM.enqueueReplaceState(t,t.state,null)}function uk(e,t,r,i){var s=e.stateNode;s.props=r,s.state=e.memoizedState,s.refs={},Yk(e);var n=t.contextType;typeof n==\"object\"&&n!==null?s.context=Pu(n):(n=Jl(t)?M0:$a.current,s.context=ey(e,n)),s.state=e.memoizedState,n=t.getDerivedStateFromProps,typeof n==\"function\"&&(ck(e,t,n,r),s.state=e.memoizedState),typeof t.getDerivedStateFromProps==\"function\"||typeof s.getSnapshotBeforeUpdate==\"function\"||typeof s.UNSAFE_componentWillMount!=\"function\"&&typeof s.componentWillMount!=\"function\"||(t=s.state,typeof s.componentWillMount==\"function\"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount==\"function\"&&s.UNSAFE_componentWillMount(),t!==s.state&&IM.enqueueReplaceState(s,s.state,null),dM(e,r,s,i),s.state=e.memoizedState),typeof s.componentDidMount==\"function\"&&(e.flags|=4194308)}function sy(e,t){try{var r=\"\",i=t;do r+=ttt(i),i=i.return;while(i);var s=r}catch(n){s=`\nError generating stack: `+n.message+`\n`+n.stack}return{value:e,source:t,stack:s,digest:null}}function IL(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function hk(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Eet=typeof WeakMap==\"function\"?WeakMap:Map;function l8(e,t,r){r=Zd(-1,r),r.tag=3,r.payload={element:null};var i=t.value;return r.callback=function(){_M||(_M=!0,xk=i),hk(e,t)},r}function c8(e,t,r){r=Zd(-1,r),r.tag=3;var i=e.type.getDerivedStateFromError;if(typeof i==\"function\"){var s=t.value;r.payload=function(){return i(s)},r.callback=function(){hk(e,t)}}var n=e.stateNode;return n!==null&&typeof n.componentDidCatch==\"function\"&&(r.callback=function(){hk(e,t),typeof i!=\"function\"&&(CA===null?CA=new Set([this]):CA.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:\"\"})}),r}function v5(e,t,r){var i=e.pingCache;if(i===null){i=e.pingCache=new Eet;var s=new Set;i.set(t,s)}else s=i.get(t),s===void 0&&(s=new Set,i.set(t,s));s.has(r)||(s.add(r),e=Vet.bind(null,e,t,r),t.then(e,e))}function x5(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function b5(e,t,r,i,s){return e.mode&1?(e.flags|=65536,e.lanes=s,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Zd(-1,1),t.tag=2,IA(r,t,1))),r.lanes|=1),e)}var Pet=Kd.ReactCurrentOwner,Xl=!1;function bl(e,t,r,i){t.child=e===null?zN(t,null,r,i):iy(t,e.child,r,i)}function w5(e,t,r,i,s){r=r.render;var n=t.ref;return K_(t,s),i=Jk(e,t,r,i,n,s),r=t4(),e!==null&&!Xl?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,Xd(e,t,s)):(ns&&r&&Vk(t),t.flags|=1,bl(e,t,i,s),t.child)}function S5(e,t,r,i,s){if(e===null){var n=r.type;return typeof n==\"function\"&&!u4(n)&&n.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=n,u8(e,t,n,i,s)):(e=XT(r.type,null,i,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(n=e.child,!(e.lanes&s)){var o=n.memoizedProps;if(r=r.compare,r=r!==null?r:D1,r(o,i)&&e.ref===t.ref)return Xd(e,t,s)}return t.flags|=1,e=kA(n,i),e.ref=t.ref,e.return=t,t.child=e}function u8(e,t,r,i,s){if(e!==null){var n=e.memoizedProps;if(D1(n,i)&&e.ref===t.ref)if(Xl=!1,t.pendingProps=i=n,(e.lanes&s)!==0)e.flags&131072&&(Xl=!0);else return t.lanes=e.lanes,Xd(e,t,s)}return fk(e,t,r,i,s)}function h8(e,t,r){var i=t.pendingProps,s=i.children,n=e!==null?e.memoizedState:null;if(i.mode===\"hidden\")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Nn(Z_,jc),jc|=r;else{if(!(r&1073741824))return e=n!==null?n.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Nn(Z_,jc),jc|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},i=n!==null?n.baseLanes:r,Nn(Z_,jc),jc|=i}else n!==null?(i=n.baseLanes|r,t.memoizedState=null):i=r,Nn(Z_,jc),jc|=i;return bl(e,t,s,r),t.child}function f8(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function fk(e,t,r,i,s){var n=Jl(r)?M0:$a.current;return n=ey(t,n),K_(t,s),r=Jk(e,t,r,i,n,s),i=t4(),e!==null&&!Xl?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,Xd(e,t,s)):(ns&&i&&Vk(t),t.flags|=1,bl(e,t,r,s),t.child)}function T5(e,t,r,i,s){if(Jl(r)){var n=!0;lM(t)}else n=!1;if(K_(t,s),t.stateNode===null)YT(e,t),a8(t,r,i),uk(t,r,i,s),i=!0;else if(e===null){var o=t.stateNode,c=t.memoizedProps;o.props=c;var f=o.context,_=r.contextType;typeof _==\"object\"&&_!==null?_=Pu(_):(_=Jl(r)?M0:$a.current,_=ey(t,_));var w=r.getDerivedStateFromProps,I=typeof w==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\";I||typeof o.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof o.componentWillReceiveProps!=\"function\"||(c!==i||f!==_)&&y5(t,o,i,_),vA=!1;var R=t.memoizedState;o.state=R,dM(t,i,o,s),f=t.memoizedState,c!==i||R!==f||Kl.current||vA?(typeof w==\"function\"&&(ck(t,r,w,i),f=t.memoizedState),(c=vA||_5(t,r,c,i,R,f,_))?(I||typeof o.UNSAFE_componentWillMount!=\"function\"&&typeof o.componentWillMount!=\"function\"||(typeof o.componentWillMount==\"function\"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==\"function\"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount==\"function\"&&(t.flags|=4194308)):(typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=f),o.props=i,o.state=f,o.context=_,i=c):(typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),i=!1)}else{o=t.stateNode,UN(e,t),c=t.memoizedProps,_=t.type===t.elementType?c:Mh(t.type,c),o.props=_,I=t.pendingProps,R=o.context,f=r.contextType,typeof f==\"object\"&&f!==null?f=Pu(f):(f=Jl(r)?M0:$a.current,f=ey(t,f));var N=r.getDerivedStateFromProps;(w=typeof N==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\")||typeof o.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof o.componentWillReceiveProps!=\"function\"||(c!==I||R!==f)&&y5(t,o,i,f),vA=!1,R=t.memoizedState,o.state=R,dM(t,i,o,s);var j=t.memoizedState;c!==I||R!==j||Kl.current||vA?(typeof N==\"function\"&&(ck(t,r,N,i),j=t.memoizedState),(_=vA||_5(t,r,_,i,R,j,f)||!1)?(w||typeof o.UNSAFE_componentWillUpdate!=\"function\"&&typeof o.componentWillUpdate!=\"function\"||(typeof o.componentWillUpdate==\"function\"&&o.componentWillUpdate(i,j,f),typeof o.UNSAFE_componentWillUpdate==\"function\"&&o.UNSAFE_componentWillUpdate(i,j,f)),typeof o.componentDidUpdate==\"function\"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate==\"function\"&&(t.flags|=1024)):(typeof o.componentDidUpdate!=\"function\"||c===e.memoizedProps&&R===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=\"function\"||c===e.memoizedProps&&R===e.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=j),o.props=i,o.state=j,o.context=f,i=_):(typeof o.componentDidUpdate!=\"function\"||c===e.memoizedProps&&R===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=\"function\"||c===e.memoizedProps&&R===e.memoizedState||(t.flags|=1024),i=!1)}return dk(e,t,r,i,n,s)}function dk(e,t,r,i,s,n){f8(e,t);var o=(t.flags&128)!==0;if(!i&&!o)return s&&u5(t,r,!1),Xd(e,t,n);i=t.stateNode,Pet.current=t;var c=o&&typeof r.getDerivedStateFromError!=\"function\"?null:i.render();return t.flags|=1,e!==null&&o?(t.child=iy(t,e.child,null,n),t.child=iy(t,null,c,n)):bl(e,t,c,n),t.memoizedState=i.state,s&&u5(t,r,!0),t.child}function d8(e){var t=e.stateNode;t.pendingContext?c5(e,t.pendingContext,t.pendingContext!==t.context):t.context&&c5(e,t.context,!1),Qk(e,t.containerInfo)}function M5(e,t,r,i,s){return ry(),Gk(s),t.flags|=256,bl(e,t,r,i),t.child}var pk={dehydrated:null,treeContext:null,retryLane:0};function Ak(e){return{baseLanes:e,cachePool:null,transitions:null}}function p8(e,t,r){var i=t.pendingProps,s=ps.current,n=!1,o=(t.flags&128)!==0,c;if((c=o)||(c=e!==null&&e.memoizedState===null?!1:(s&2)!==0),c?(n=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(s|=1),Nn(ps,s&1),e===null)return ak(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data===\"$!\"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=i.children,e=i.fallback,n?(i=t.mode,n=t.child,o={mode:\"hidden\",children:o},!(i&1)&&n!==null?(n.childLanes=0,n.pendingProps=o):n=kM(o,i,0,null),e=T0(e,i,r,null),n.return=t,e.return=t,n.sibling=e,t.child=n,t.child.memoizedState=Ak(r),t.memoizedState=pk,e):i4(t,o));if(s=e.memoizedState,s!==null&&(c=s.dehydrated,c!==null))return Iet(e,t,o,i,c,s,r);if(n){n=i.fallback,o=t.mode,s=e.child,c=s.sibling;var f={mode:\"hidden\",children:i.children};return!(o&1)&&t.child!==s?(i=t.child,i.childLanes=0,i.pendingProps=f,t.deletions=null):(i=kA(s,f),i.subtreeFlags=s.subtreeFlags&14680064),c!==null?n=kA(c,n):(n=T0(n,o,r,null),n.flags|=2),n.return=t,i.return=t,i.sibling=n,t.child=i,i=n,n=t.child,o=e.child.memoizedState,o=o===null?Ak(r):{baseLanes:o.baseLanes|r,cachePool:null,transitions:o.transitions},n.memoizedState=o,n.childLanes=e.childLanes&~r,t.memoizedState=pk,i}return n=e.child,e=n.sibling,i=kA(n,{mode:\"visible\",children:i.children}),!(t.mode&1)&&(i.lanes=r),i.return=t,i.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=i,t.memoizedState=null,i}function i4(e,t){return t=kM({mode:\"visible\",children:t},e.mode,0,null),t.return=e,e.child=t}function NT(e,t,r,i){return i!==null&&Gk(i),iy(t,e.child,null,r),e=i4(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Iet(e,t,r,i,s,n,o){if(r)return t.flags&256?(t.flags&=-257,i=IL(Error(Pe(422))),NT(e,t,o,i)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(n=i.fallback,s=t.mode,i=kM({mode:\"visible\",children:i.children},s,0,null),n=T0(n,s,o,null),n.flags|=2,i.return=t,n.return=t,i.sibling=n,t.child=i,t.mode&1&&iy(t,e.child,null,o),t.child.memoizedState=Ak(o),t.memoizedState=pk,n);if(!(t.mode&1))return NT(e,t,o,null);if(s.data===\"$!\"){if(i=s.nextSibling&&s.nextSibling.dataset,i)var c=i.dgst;return i=c,n=Error(Pe(419)),i=IL(n,i,void 0),NT(e,t,o,i)}if(c=(o&e.childLanes)!==0,Xl||c){if(i=Jo,i!==null){switch(o&-o){case 4:s=2;break;case 16:s=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=s&(i.suspendedLanes|o)?0:s,s!==0&&s!==n.retryLane&&(n.retryLane=s,$d(e,s),Ch(i,e,s,-1))}return c4(),i=IL(Error(Pe(421))),NT(e,t,o,i)}return s.data===\"$?\"?(t.flags|=128,t.child=e.child,t=jet.bind(null,e),s._reactRetry=t,null):(e=n.treeContext,Gc=PA(s.nextSibling),Wc=t,ns=!0,Ph=null,e!==null&&(Su[Tu++]=Hd,Su[Tu++]=qd,Su[Tu++]=E0,Hd=e.id,qd=e.overflow,E0=t),t=i4(t,i.children),t.flags|=4096,t)}function E5(e,t,r){e.lanes|=t;var i=e.alternate;i!==null&&(i.lanes|=t),lk(e.return,t,r)}function CL(e,t,r,i,s){var n=e.memoizedState;n===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:r,tailMode:s}:(n.isBackwards=t,n.rendering=null,n.renderingStartTime=0,n.last=i,n.tail=r,n.tailMode=s)}function A8(e,t,r){var i=t.pendingProps,s=i.revealOrder,n=i.tail;if(bl(e,t,i.children,r),i=ps.current,i&2)i=i&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)t:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&E5(e,r,t);else if(e.tag===19)E5(e,r,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break t;for(;e.sibling===null;){if(e.return===null||e.return===t)break t;e=e.return}e.sibling.return=e.return,e=e.sibling}i&=1}if(Nn(ps,i),!(t.mode&1))t.memoizedState=null;else switch(s){case\"forwards\":for(r=t.child,s=null;r!==null;)e=r.alternate,e!==null&&pM(e)===null&&(s=r),r=r.sibling;r=s,r===null?(s=t.child,t.child=null):(s=r.sibling,r.sibling=null),CL(t,!1,s,r,n);break;case\"backwards\":for(r=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&pM(e)===null){t.child=s;break}e=s.sibling,s.sibling=r,r=s,s=e}CL(t,!0,r,null,n);break;case\"together\":CL(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function YT(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Xd(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),I0|=t.lanes,!(r&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(Pe(153));if(t.child!==null){for(e=t.child,r=kA(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=kA(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function Cet(e,t,r){switch(t.tag){case 3:d8(t),ry();break;case 5:VN(t);break;case 1:Jl(t.type)&&lM(t);break;case 4:Qk(t,t.stateNode.containerInfo);break;case 10:var i=t.type._context,s=t.memoizedProps.value;Nn(hM,i._currentValue),i._currentValue=s;break;case 13:if(i=t.memoizedState,i!==null)return i.dehydrated!==null?(Nn(ps,ps.current&1),t.flags|=128,null):r&t.child.childLanes?p8(e,t,r):(Nn(ps,ps.current&1),e=Xd(e,t,r),e!==null?e.sibling:null);Nn(ps,ps.current&1);break;case 19:if(i=(r&t.childLanes)!==0,e.flags&128){if(i)return A8(e,t,r);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),Nn(ps,ps.current),i)break;return null;case 22:case 23:return t.lanes=0,h8(e,t,r)}return Xd(e,t,r)}var m8,mk,g8,_8;m8=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};mk=function(){};g8=function(e,t,r,i){var s=e.memoizedProps;if(s!==i){e=t.stateNode,w0(Df.current);var n=null;switch(r){case\"input\":s=zL(e,s),i=zL(e,i),n=[];break;case\"select\":s=ms({},s,{value:void 0}),i=ms({},i,{value:void 0}),n=[];break;case\"textarea\":s=VL(e,s),i=VL(e,i),n=[];break;default:typeof s.onClick!=\"function\"&&typeof i.onClick==\"function\"&&(e.onclick=oM)}GL(r,i);var o;r=null;for(_ in s)if(!i.hasOwnProperty(_)&&s.hasOwnProperty(_)&&s[_]!=null)if(_===\"style\"){var c=s[_];for(o in c)c.hasOwnProperty(o)&&(r||(r={}),r[o]=\"\")}else _!==\"dangerouslySetInnerHTML\"&&_!==\"children\"&&_!==\"suppressContentEditableWarning\"&&_!==\"suppressHydrationWarning\"&&_!==\"autoFocus\"&&(E1.hasOwnProperty(_)?n||(n=[]):(n=n||[]).push(_,null));for(_ in i){var f=i[_];if(c=s?.[_],i.hasOwnProperty(_)&&f!==c&&(f!=null||c!=null))if(_===\"style\")if(c){for(o in c)!c.hasOwnProperty(o)||f&&f.hasOwnProperty(o)||(r||(r={}),r[o]=\"\");for(o in f)f.hasOwnProperty(o)&&c[o]!==f[o]&&(r||(r={}),r[o]=f[o])}else r||(n||(n=[]),n.push(_,r)),r=f;else _===\"dangerouslySetInnerHTML\"?(f=f?f.__html:void 0,c=c?c.__html:void 0,f!=null&&c!==f&&(n=n||[]).push(_,f)):_===\"children\"?typeof f!=\"string\"&&typeof f!=\"number\"||(n=n||[]).push(_,\"\"+f):_!==\"suppressContentEditableWarning\"&&_!==\"suppressHydrationWarning\"&&(E1.hasOwnProperty(_)?(f!=null&&_===\"onScroll\"&&qn(\"scroll\",e),n||c===f||(n=[])):(n=n||[]).push(_,f))}r&&(n=n||[]).push(\"style\",r);var _=n;(t.updateQueue=_)&&(t.flags|=4)}};_8=function(e,t,r,i){r!==i&&(t.flags|=4)};function h1(e,t){if(!ns)switch(e.tailMode){case\"hidden\":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case\"collapsed\":r=e.tail;for(var i=null;r!==null;)r.alternate!==null&&(i=r),r=r.sibling;i===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:i.sibling=null}}function Ya(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,i=0;if(t)for(var s=e.child;s!==null;)r|=s.lanes|s.childLanes,i|=s.subtreeFlags&14680064,i|=s.flags&14680064,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)r|=s.lanes|s.childLanes,i|=s.subtreeFlags,i|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=i,e.childLanes=r,t}function Let(e,t,r){var i=t.pendingProps;switch(jk(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ya(t),null;case 1:return Jl(t.type)&&aM(),Ya(t),null;case 3:return i=t.stateNode,ny(),Zn(Kl),Zn($a),Xk(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(e===null||e.child===null)&&(FT(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ph!==null&&(Sk(Ph),Ph=null))),mk(e,t),Ya(t),null;case 5:$k(t);var s=w0(N1.current);if(r=t.type,e!==null&&t.stateNode!=null)g8(e,t,r,i,s),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!i){if(t.stateNode===null)throw Error(Pe(166));return Ya(t),null}if(e=w0(Df.current),FT(t)){i=t.stateNode,r=t.type;var n=t.memoizedProps;switch(i[kf]=t,i[F1]=n,e=(t.mode&1)!==0,r){case\"dialog\":qn(\"cancel\",i),qn(\"close\",i);break;case\"iframe\":case\"object\":case\"embed\":qn(\"load\",i);break;case\"video\":case\"audio\":for(s=0;s<g1.length;s++)qn(g1[s],i);break;case\"source\":qn(\"error\",i);break;case\"img\":case\"image\":case\"link\":qn(\"error\",i),qn(\"load\",i);break;case\"details\":qn(\"toggle\",i);break;case\"input\":Oz(i,n),qn(\"invalid\",i);break;case\"select\":i._wrapperState={wasMultiple:!!n.multiple},qn(\"invalid\",i);break;case\"textarea\":Fz(i,n),qn(\"invalid\",i)}GL(r,n),s=null;for(var o in n)if(n.hasOwnProperty(o)){var c=n[o];o===\"children\"?typeof c==\"string\"?i.textContent!==c&&(n.suppressHydrationWarning!==!0&&BT(i.textContent,c,e),s=[\"children\",c]):typeof c==\"number\"&&i.textContent!==\"\"+c&&(n.suppressHydrationWarning!==!0&&BT(i.textContent,c,e),s=[\"children\",\"\"+c]):E1.hasOwnProperty(o)&&c!=null&&o===\"onScroll\"&&qn(\"scroll\",i)}switch(r){case\"input\":ST(i),Bz(i,n,!0);break;case\"textarea\":ST(i),zz(i);break;case\"select\":case\"option\":break;default:typeof n.onClick==\"function\"&&(i.onclick=oM)}i=s,t.updateQueue=i,i!==null&&(t.flags|=4)}else{o=s.nodeType===9?s:s.ownerDocument,e===\"http://www.w3.org/1999/xhtml\"&&(e=q5(r)),e===\"http://www.w3.org/1999/xhtml\"?r===\"script\"?(e=o.createElement(\"div\"),e.innerHTML=\"\u003cscript><\\/script>\",e=e.removeChild(e.firstChild)):typeof i.is==\"string\"?e=o.createElement(r,{is:i.is}):(e=o.createElement(r),r===\"select\"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,r),e[kf]=t,e[F1]=i,m8(e,t,!1,!1),t.stateNode=e;t:{switch(o=WL(r,i),r){case\"dialog\":qn(\"cancel\",e),qn(\"close\",e),s=i;break;case\"iframe\":case\"object\":case\"embed\":qn(\"load\",e),s=i;break;case\"video\":case\"audio\":for(s=0;s<g1.length;s++)qn(g1[s],e);s=i;break;case\"source\":qn(\"error\",e),s=i;break;case\"img\":case\"image\":case\"link\":qn(\"error\",e),qn(\"load\",e),s=i;break;case\"details\":qn(\"toggle\",e),s=i;break;case\"input\":Oz(e,i),s=zL(e,i),qn(\"invalid\",e);break;case\"option\":s=i;break;case\"select\":e._wrapperState={wasMultiple:!!i.multiple},s=ms({},i,{value:void 0}),qn(\"invalid\",e);break;case\"textarea\":Fz(e,i),s=VL(e,i),qn(\"invalid\",e);break;default:s=i}GL(r,s),c=s;for(n in c)if(c.hasOwnProperty(n)){var f=c[n];n===\"style\"?Q5(e,f):n===\"dangerouslySetInnerHTML\"?(f=f?f.__html:void 0,f!=null&&Z5(e,f)):n===\"children\"?typeof f==\"string\"?(r!==\"textarea\"||f!==\"\")&&P1(e,f):typeof f==\"number\"&&P1(e,\"\"+f):n!==\"suppressContentEditableWarning\"&&n!==\"suppressHydrationWarning\"&&n!==\"autoFocus\"&&(E1.hasOwnProperty(n)?f!=null&&n===\"onScroll\"&&qn(\"scroll\",e):f!=null&&Ek(e,n,f,o))}switch(r){case\"input\":ST(e),Bz(e,i,!1);break;case\"textarea\":ST(e),zz(e);break;case\"option\":i.value!=null&&e.setAttribute(\"value\",\"\"+RA(i.value));break;case\"select\":e.multiple=!!i.multiple,n=i.value,n!=null?Y_(e,!!i.multiple,n,!1):i.defaultValue!=null&&Y_(e,!!i.multiple,i.defaultValue,!0);break;default:typeof s.onClick==\"function\"&&(e.onclick=oM)}switch(r){case\"button\":case\"input\":case\"select\":case\"textarea\":i=!!i.autoFocus;break t;case\"img\":i=!0;break t;default:i=!1}}i&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ya(t),null;case 6:if(e&&t.stateNode!=null)_8(e,t,e.memoizedProps,i);else{if(typeof i!=\"string\"&&t.stateNode===null)throw Error(Pe(166));if(r=w0(N1.current),w0(Df.current),FT(t)){if(i=t.stateNode,r=t.memoizedProps,i[kf]=t,(n=i.nodeValue!==r)&&(e=Wc,e!==null))switch(e.tag){case 3:BT(i.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&BT(i.nodeValue,r,(e.mode&1)!==0)}n&&(t.flags|=4)}else i=(r.nodeType===9?r:r.ownerDocument).createTextNode(i),i[kf]=t,t.stateNode=i}return Ya(t),null;case 13:if(Zn(ps),i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ns&&Gc!==null&&t.mode&1&&!(t.flags&128))BN(),ry(),t.flags|=98560,n=!1;else if(n=FT(t),i!==null&&i.dehydrated!==null){if(e===null){if(!n)throw Error(Pe(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(Pe(317));n[kf]=t}else ry(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ya(t),n=!1}else Ph!==null&&(Sk(Ph),Ph=null),n=!0;if(!n)return t.flags&65536?t:null}return t.flags&128?(t.lanes=r,t):(i=i!==null,i!==(e!==null&&e.memoizedState!==null)&&i&&(t.child.flags|=8192,t.mode&1&&(e===null||ps.current&1?Co===0&&(Co=3):c4())),t.updateQueue!==null&&(t.flags|=4),Ya(t),null);case 4:return ny(),mk(e,t),e===null&&O1(t.stateNode.containerInfo),Ya(t),null;case 10:return qk(t.type._context),Ya(t),null;case 17:return Jl(t.type)&&aM(),Ya(t),null;case 19:if(Zn(ps),n=t.memoizedState,n===null)return Ya(t),null;if(i=(t.flags&128)!==0,o=n.rendering,o===null)if(i)h1(n,!1);else{if(Co!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=pM(e),o!==null){for(t.flags|=128,h1(n,!1),i=o.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),t.subtreeFlags=0,i=r,r=t.child;r!==null;)n=r,e=i,n.flags&=14680066,o=n.alternate,o===null?(n.childLanes=0,n.lanes=e,n.child=null,n.subtreeFlags=0,n.memoizedProps=null,n.memoizedState=null,n.updateQueue=null,n.dependencies=null,n.stateNode=null):(n.childLanes=o.childLanes,n.lanes=o.lanes,n.child=o.child,n.subtreeFlags=0,n.deletions=null,n.memoizedProps=o.memoizedProps,n.memoizedState=o.memoizedState,n.updateQueue=o.updateQueue,n.type=o.type,e=o.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return Nn(ps,ps.current&1|2),t.child}e=e.sibling}n.tail!==null&&Xs()>oy&&(t.flags|=128,i=!0,h1(n,!1),t.lanes=4194304)}else{if(!i)if(e=pM(o),e!==null){if(t.flags|=128,i=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),h1(n,!0),n.tail===null&&n.tailMode===\"hidden\"&&!o.alternate&&!ns)return Ya(t),null}else 2*Xs()-n.renderingStartTime>oy&&r!==1073741824&&(t.flags|=128,i=!0,h1(n,!1),t.lanes=4194304);n.isBackwards?(o.sibling=t.child,t.child=o):(r=n.last,r!==null?r.sibling=o:t.child=o,n.last=o)}return n.tail!==null?(t=n.tail,n.rendering=t,n.tail=t.sibling,n.renderingStartTime=Xs(),t.sibling=null,r=ps.current,Nn(ps,i?r&1|2:r&1),t):(Ya(t),null);case 22:case 23:return l4(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?jc&1073741824&&(Ya(t),t.subtreeFlags&6&&(t.flags|=8192)):Ya(t),null;case 24:return null;case 25:return null}throw Error(Pe(156,t.tag))}function ket(e,t){switch(jk(t),t.tag){case 1:return Jl(t.type)&&aM(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ny(),Zn(Kl),Zn($a),Xk(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return $k(t),null;case 13:if(Zn(ps),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Pe(340));ry()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Zn(ps),null;case 4:return ny(),null;case 10:return qk(t.type._context),null;case 22:case 23:return l4(),null;case 24:return null;default:return null}}var UT=!1,Qa=!1,Ret=typeof WeakSet==\"function\"?WeakSet:Set,ur=null;function q_(e,t){var r=e.ref;if(r!==null)if(typeof r==\"function\")try{r(null)}catch(i){Cs(e,t,i)}else r.current=null}function gk(e,t,r){try{r()}catch(i){Cs(e,t,i)}}var P5=!1;function Det(e,t){if(tk=iM,e=wN(),Uk(e)){if(\"selectionStart\"in e)var r={start:e.selectionStart,end:e.selectionEnd};else t:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var s=i.anchorOffset,n=i.focusNode;i=i.focusOffset;try{r.nodeType,n.nodeType}catch{r=null;break t}var o=0,c=-1,f=-1,_=0,w=0,I=e,R=null;e:for(;;){for(var N;I!==r||s!==0&&I.nodeType!==3||(c=o+s),I!==n||i!==0&&I.nodeType!==3||(f=o+i),I.nodeType===3&&(o+=I.nodeValue.length),(N=I.firstChild)!==null;)R=I,I=N;for(;;){if(I===e)break e;if(R===r&&++_===s&&(c=o),R===n&&++w===i&&(f=o),(N=I.nextSibling)!==null)break;I=R,R=I.parentNode}I=N}r=c===-1||f===-1?null:{start:c,end:f}}else r=null}r=r||{start:0,end:0}}else r=null;for(ek={focusedElem:e,selectionRange:r},iM=!1,ur=t;ur!==null;)if(t=ur,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ur=e;else for(;ur!==null;){t=ur;try{var j=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var Q=j.memoizedProps,et=j.memoizedState,Y=t.stateNode,K=Y.getSnapshotBeforeUpdate(t.elementType===t.type?Q:Mh(t.type,Q),et);Y.__reactInternalSnapshotBeforeUpdate=K}break;case 3:var J=t.stateNode.containerInfo;J.nodeType===1?J.textContent=\"\":J.nodeType===9&&J.documentElement&&J.removeChild(J.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Pe(163))}}catch(ut){Cs(t,t.return,ut)}if(e=t.sibling,e!==null){e.return=t.return,ur=e;break}ur=t.return}return j=P5,P5=!1,j}function S1(e,t,r){var i=t.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var s=i=i.next;do{if((s.tag&e)===e){var n=s.destroy;s.destroy=void 0,n!==void 0&&gk(t,r,n)}s=s.next}while(s!==i)}}function CM(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var i=r.create;r.destroy=i()}r=r.next}while(r!==t)}}function _k(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t==\"function\"?t(e):t.current=e}}function y8(e){var t=e.alternate;t!==null&&(e.alternate=null,y8(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[kf],delete t[F1],delete t[nk],delete t[Aet],delete t[met])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function v8(e){return e.tag===5||e.tag===3||e.tag===4}function I5(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||v8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function yk(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=oM));else if(i!==4&&(e=e.child,e!==null))for(yk(e,t,r),e=e.sibling;e!==null;)yk(e,t,r),e=e.sibling}function vk(e,t,r){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(vk(e,t,r),e=e.sibling;e!==null;)vk(e,t,r),e=e.sibling}var Aa=null,Eh=!1;function _A(e,t,r){for(r=r.child;r!==null;)x8(e,t,r),r=r.sibling}function x8(e,t,r){if(Rf&&typeof Rf.onCommitFiberUnmount==\"function\")try{Rf.onCommitFiberUnmount(bM,r)}catch{}switch(r.tag){case 5:Qa||q_(r,t);case 6:var i=Aa,s=Eh;Aa=null,_A(e,t,r),Aa=i,Eh=s,Aa!==null&&(Eh?(e=Aa,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Aa.removeChild(r.stateNode));break;case 18:Aa!==null&&(Eh?(e=Aa,r=r.stateNode,e.nodeType===8?wL(e.parentNode,r):e.nodeType===1&&wL(e,r),k1(e)):wL(Aa,r.stateNode));break;case 4:i=Aa,s=Eh,Aa=r.stateNode.containerInfo,Eh=!0,_A(e,t,r),Aa=i,Eh=s;break;case 0:case 11:case 14:case 15:if(!Qa&&(i=r.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){s=i=i.next;do{var n=s,o=n.destroy;n=n.tag,o!==void 0&&(n&2||n&4)&&gk(r,t,o),s=s.next}while(s!==i)}_A(e,t,r);break;case 1:if(!Qa&&(q_(r,t),i=r.stateNode,typeof i.componentWillUnmount==\"function\"))try{i.props=r.memoizedProps,i.state=r.memoizedState,i.componentWillUnmount()}catch(c){Cs(r,t,c)}_A(e,t,r);break;case 21:_A(e,t,r);break;case 22:r.mode&1?(Qa=(i=Qa)||r.memoizedState!==null,_A(e,t,r),Qa=i):_A(e,t,r);break;default:_A(e,t,r)}}function C5(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Ret),t.forEach(function(i){var s=Get.bind(null,e,i);r.has(i)||(r.add(i),i.then(s,s))})}}function Th(e,t){var r=t.deletions;if(r!==null)for(var i=0;i<r.length;i++){var s=r[i];try{var n=e,o=t,c=o;t:for(;c!==null;){switch(c.tag){case 5:Aa=c.stateNode,Eh=!1;break t;case 3:Aa=c.stateNode.containerInfo,Eh=!0;break t;case 4:Aa=c.stateNode.containerInfo,Eh=!0;break t}c=c.return}if(Aa===null)throw Error(Pe(160));x8(n,o,s),Aa=null,Eh=!1;var f=s.alternate;f!==null&&(f.return=null),s.return=null}catch(_){Cs(s,t,_)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)b8(t,e),t=t.sibling}function b8(e,t){var r=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Th(t,e),Cf(e),i&4){try{S1(3,e,e.return),CM(3,e)}catch(Q){Cs(e,e.return,Q)}try{S1(5,e,e.return)}catch(Q){Cs(e,e.return,Q)}}break;case 1:Th(t,e),Cf(e),i&512&&r!==null&&q_(r,r.return);break;case 5:if(Th(t,e),Cf(e),i&512&&r!==null&&q_(r,r.return),e.flags&32){var s=e.stateNode;try{P1(s,\"\")}catch(Q){Cs(e,e.return,Q)}}if(i&4&&(s=e.stateNode,s!=null)){var n=e.memoizedProps,o=r!==null?r.memoizedProps:n,c=e.type,f=e.updateQueue;if(e.updateQueue=null,f!==null)try{c===\"input\"&&n.type===\"radio\"&&n.name!=null&&W5(s,n),WL(c,o);var _=WL(c,n);for(o=0;o<f.length;o+=2){var w=f[o],I=f[o+1];w===\"style\"?Q5(s,I):w===\"dangerouslySetInnerHTML\"?Z5(s,I):w===\"children\"?P1(s,I):Ek(s,w,I,_)}switch(c){case\"input\":NL(s,n);break;case\"textarea\":H5(s,n);break;case\"select\":var R=s._wrapperState.wasMultiple;s._wrapperState.wasMultiple=!!n.multiple;var N=n.value;N!=null?Y_(s,!!n.multiple,N,!1):R!==!!n.multiple&&(n.defaultValue!=null?Y_(s,!!n.multiple,n.defaultValue,!0):Y_(s,!!n.multiple,n.multiple?[]:\"\",!1))}s[F1]=n}catch(Q){Cs(e,e.return,Q)}}break;case 6:if(Th(t,e),Cf(e),i&4){if(e.stateNode===null)throw Error(Pe(162));s=e.stateNode,n=e.memoizedProps;try{s.nodeValue=n}catch(Q){Cs(e,e.return,Q)}}break;case 3:if(Th(t,e),Cf(e),i&4&&r!==null&&r.memoizedState.isDehydrated)try{k1(t.containerInfo)}catch(Q){Cs(e,e.return,Q)}break;case 4:Th(t,e),Cf(e);break;case 13:Th(t,e),Cf(e),s=e.child,s.flags&8192&&(n=s.memoizedState!==null,s.stateNode.isHidden=n,!n||s.alternate!==null&&s.alternate.memoizedState!==null||(o4=Xs())),i&4&&C5(e);break;case 22:if(w=r!==null&&r.memoizedState!==null,e.mode&1?(Qa=(_=Qa)||w,Th(t,e),Qa=_):Th(t,e),Cf(e),i&8192){if(_=e.memoizedState!==null,(e.stateNode.isHidden=_)&&!w&&e.mode&1)for(ur=e,w=e.child;w!==null;){for(I=ur=w;ur!==null;){switch(R=ur,N=R.child,R.tag){case 0:case 11:case 14:case 15:S1(4,R,R.return);break;case 1:q_(R,R.return);var j=R.stateNode;if(typeof j.componentWillUnmount==\"function\"){i=R,r=R.return;try{t=i,j.props=t.memoizedProps,j.state=t.memoizedState,j.componentWillUnmount()}catch(Q){Cs(i,r,Q)}}break;case 5:q_(R,R.return);break;case 22:if(R.memoizedState!==null){k5(I);continue}}N!==null?(N.return=R,ur=N):k5(I)}w=w.sibling}t:for(w=null,I=e;;){if(I.tag===5){if(w===null){w=I;try{s=I.stateNode,_?(n=s.style,typeof n.setProperty==\"function\"?n.setProperty(\"display\",\"none\",\"important\"):n.display=\"none\"):(c=I.stateNode,f=I.memoizedProps.style,o=f!=null&&f.hasOwnProperty(\"display\")?f.display:null,c.style.display=Y5(\"display\",o))}catch(Q){Cs(e,e.return,Q)}}}else if(I.tag===6){if(w===null)try{I.stateNode.nodeValue=_?\"\":I.memoizedProps}catch(Q){Cs(e,e.return,Q)}}else if((I.tag!==22&&I.tag!==23||I.memoizedState===null||I===e)&&I.child!==null){I.child.return=I,I=I.child;continue}if(I===e)break t;for(;I.sibling===null;){if(I.return===null||I.return===e)break t;w===I&&(w=null),I=I.return}w===I&&(w=null),I.sibling.return=I.return,I=I.sibling}}break;case 19:Th(t,e),Cf(e),i&4&&C5(e);break;case 21:break;default:Th(t,e),Cf(e)}}function Cf(e){var t=e.flags;if(t&2){try{t:{for(var r=e.return;r!==null;){if(v8(r)){var i=r;break t}r=r.return}throw Error(Pe(160))}switch(i.tag){case 5:var s=i.stateNode;i.flags&32&&(P1(s,\"\"),i.flags&=-33);var n=I5(e);vk(e,n,s);break;case 3:case 4:var o=i.stateNode.containerInfo,c=I5(e);yk(e,c,o);break;default:throw Error(Pe(161))}}catch(f){Cs(e,e.return,f)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Oet(e,t,r){ur=e,w8(e,t,r)}function w8(e,t,r){for(var i=(e.mode&1)!==0;ur!==null;){var s=ur,n=s.child;if(s.tag===22&&i){var o=s.memoizedState!==null||UT;if(!o){var c=s.alternate,f=c!==null&&c.memoizedState!==null||Qa;c=UT;var _=Qa;if(UT=o,(Qa=f)&&!_)for(ur=s;ur!==null;)o=ur,f=o.child,o.tag===22&&o.memoizedState!==null?R5(s):f!==null?(f.return=o,ur=f):R5(s);for(;n!==null;)ur=n,w8(n,t,r),n=n.sibling;ur=s,UT=c,Qa=_}L5(e,t,r)}else s.subtreeFlags&8772&&n!==null?(n.return=s,ur=n):L5(e,t,r)}}function L5(e){for(;ur!==null;){var t=ur;if(t.flags&8772){var r=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Qa||CM(5,t);break;case 1:var i=t.stateNode;if(t.flags&4&&!Qa)if(r===null)i.componentDidMount();else{var s=t.elementType===t.type?r.memoizedProps:Mh(t.type,r.memoizedProps);i.componentDidUpdate(s,r.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var n=t.updateQueue;n!==null&&A5(t,n,i);break;case 3:var o=t.updateQueue;if(o!==null){if(r=null,t.child!==null)switch(t.child.tag){case 5:r=t.child.stateNode;break;case 1:r=t.child.stateNode}A5(t,o,r)}break;case 5:var c=t.stateNode;if(r===null&&t.flags&4){r=c;var f=t.memoizedProps;switch(t.type){case\"button\":case\"input\":case\"select\":case\"textarea\":f.autoFocus&&r.focus();break;case\"img\":f.src&&(r.src=f.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var _=t.alternate;if(_!==null){var w=_.memoizedState;if(w!==null){var I=w.dehydrated;I!==null&&k1(I)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(Pe(163))}Qa||t.flags&512&&_k(t)}catch(R){Cs(t,t.return,R)}}if(t===e){ur=null;break}if(r=t.sibling,r!==null){r.return=t.return,ur=r;break}ur=t.return}}function k5(e){for(;ur!==null;){var t=ur;if(t===e){ur=null;break}var r=t.sibling;if(r!==null){r.return=t.return,ur=r;break}ur=t.return}}function R5(e){for(;ur!==null;){var t=ur;try{switch(t.tag){case 0:case 11:case 15:var r=t.return;try{CM(4,t)}catch(f){Cs(t,r,f)}break;case 1:var i=t.stateNode;if(typeof i.componentDidMount==\"function\"){var s=t.return;try{i.componentDidMount()}catch(f){Cs(t,s,f)}}var n=t.return;try{_k(t)}catch(f){Cs(t,n,f)}break;case 5:var o=t.return;try{_k(t)}catch(f){Cs(t,o,f)}}}catch(f){Cs(t,t.return,f)}if(t===e){ur=null;break}var c=t.sibling;if(c!==null){c.return=t.return,ur=c;break}ur=t.return}}var Bet=Math.ceil,gM=Kd.ReactCurrentDispatcher,n4=Kd.ReactCurrentOwner,Eu=Kd.ReactCurrentBatchConfig,Zi=0,Jo=null,fo=null,ma=0,jc=0,Z_=BA(0),Co=0,G1=null,I0=0,LM=0,s4=0,T1=null,$l=null,o4=0,oy=1/0,Gd=null,_M=!1,xk=null,CA=null,VT=!1,SA=null,yM=0,M1=0,bk=null,QT=-1,$T=0;function wl(){return Zi&6?Xs():QT!==-1?QT:QT=Xs()}function LA(e){return e.mode&1?Zi&2&&ma!==0?ma&-ma:_et.transition!==null?($T===0&&($T=aN()),$T):(e=vn,e!==0||(e=window.event,e=e===void 0?16:pN(e.type)),e):1}function Ch(e,t,r,i){if(50<M1)throw M1=0,bk=null,Error(Pe(185));W1(e,r,i),(!(Zi&2)||e!==Jo)&&(e===Jo&&(!(Zi&2)&&(LM|=r),Co===4&&bA(e,ma)),tc(e,i),r===1&&Zi===0&&!(t.mode&1)&&(oy=Xs()+500,EM&&FA()))}function tc(e,t){var r=e.callbackNode;ytt(e,t);var i=rM(e,e===Jo?ma:0);if(i===0)r!==null&&Vz(r),e.callbackNode=null,e.callbackPriority=0;else if(t=i&-i,e.callbackPriority!==t){if(r!=null&&Vz(r),t===1)e.tag===0?get(D5.bind(null,e)):RN(D5.bind(null,e)),det(function(){!(Zi&6)&&FA()}),r=null;else{switch(lN(i)){case 1:r=kk;break;case 4:r=sN;break;case 16:r=eM;break;case 536870912:r=oN;break;default:r=eM}r=L8(r,S8.bind(null,e))}e.callbackPriority=t,e.callbackNode=r}}function S8(e,t){if(QT=-1,$T=0,Zi&6)throw Error(Pe(327));var r=e.callbackNode;if(J_()&&e.callbackNode!==r)return null;var i=rM(e,e===Jo?ma:0);if(i===0)return null;if(i&30||i&e.expiredLanes||t)t=vM(e,i);else{t=i;var s=Zi;Zi|=2;var n=M8();(Jo!==e||ma!==t)&&(Gd=null,oy=Xs()+500,S0(e,t));do try{Net();break}catch(c){T8(e,c)}while(!0);Hk(),gM.current=n,Zi=s,fo!==null?t=0:(Jo=null,ma=0,t=Co)}if(t!==0){if(t===2&&(s=QL(e),s!==0&&(i=s,t=wk(e,s))),t===1)throw r=G1,S0(e,0),bA(e,i),tc(e,Xs()),r;if(t===6)bA(e,i);else{if(s=e.current.alternate,!(i&30)&&!Fet(s)&&(t=vM(e,i),t===2&&(n=QL(e),n!==0&&(i=n,t=wk(e,n))),t===1))throw r=G1,S0(e,0),bA(e,i),tc(e,Xs()),r;switch(e.finishedWork=s,e.finishedLanes=i,t){case 0:case 1:throw Error(Pe(345));case 2:v0(e,$l,Gd);break;case 3:if(bA(e,i),(i&130023424)===i&&(t=o4+500-Xs(),10<t)){if(rM(e,0)!==0)break;if(s=e.suspendedLanes,(s&i)!==i){wl(),e.pingedLanes|=e.suspendedLanes&s;break}e.timeoutHandle=ik(v0.bind(null,e,$l,Gd),t);break}v0(e,$l,Gd);break;case 4:if(bA(e,i),(i&4194240)===i)break;for(t=e.eventTimes,s=-1;0<i;){var o=31-Ih(i);n=1<<o,o=t[o],o>s&&(s=o),i&=~n}if(i=s,i=Xs()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Bet(i/1960))-i,10<i){e.timeoutHandle=ik(v0.bind(null,e,$l,Gd),i);break}v0(e,$l,Gd);break;case 5:v0(e,$l,Gd);break;default:throw Error(Pe(329))}}}return tc(e,Xs()),e.callbackNode===r?S8.bind(null,e):null}function wk(e,t){var r=T1;return e.current.memoizedState.isDehydrated&&(S0(e,t).flags|=256),e=vM(e,t),e!==2&&(t=$l,$l=r,t!==null&&Sk(t)),e}function Sk(e){$l===null?$l=e:$l.push.apply($l,e)}function Fet(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var i=0;i<r.length;i++){var s=r[i],n=s.getSnapshot;s=s.value;try{if(!Lh(n(),s))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function bA(e,t){for(t&=~s4,t&=~LM,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-Ih(t),i=1<<r;e[r]=-1,t&=~i}}function D5(e){if(Zi&6)throw Error(Pe(327));J_();var t=rM(e,0);if(!(t&1))return tc(e,Xs()),null;var r=vM(e,t);if(e.tag!==0&&r===2){var i=QL(e);i!==0&&(t=i,r=wk(e,i))}if(r===1)throw r=G1,S0(e,0),bA(e,t),tc(e,Xs()),r;if(r===6)throw Error(Pe(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,v0(e,$l,Gd),tc(e,Xs()),null}function a4(e,t){var r=Zi;Zi|=1;try{return e(t)}finally{Zi=r,Zi===0&&(oy=Xs()+500,EM&&FA())}}function C0(e){SA!==null&&SA.tag===0&&!(Zi&6)&&J_();var t=Zi;Zi|=1;var r=Eu.transition,i=vn;try{if(Eu.transition=null,vn=1,e)return e()}finally{vn=i,Eu.transition=r,Zi=t,!(Zi&6)&&FA()}}function l4(){jc=Z_.current,Zn(Z_)}function S0(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(r!==-1&&(e.timeoutHandle=-1,fet(r)),fo!==null)for(r=fo.return;r!==null;){var i=r;switch(jk(i),i.tag){case 1:i=i.type.childContextTypes,i!=null&&aM();break;case 3:ny(),Zn(Kl),Zn($a),Xk();break;case 5:$k(i);break;case 4:ny();break;case 13:Zn(ps);break;case 19:Zn(ps);break;case 10:qk(i.type._context);break;case 22:case 23:l4()}r=r.return}if(Jo=e,fo=e=kA(e.current,null),ma=jc=t,Co=0,G1=null,s4=LM=I0=0,$l=T1=null,b0!==null){for(t=0;t<b0.length;t++)if(r=b0[t],i=r.interleaved,i!==null){r.interleaved=null;var s=i.next,n=r.pending;if(n!==null){var o=n.next;n.next=s,i.next=o}r.pending=i}b0=null}return e}function T8(e,t){do{var r=fo;try{if(Hk(),qT.current=mM,AM){for(var i=As.memoizedState;i!==null;){var s=i.queue;s!==null&&(s.pending=null),i=i.next}AM=!1}if(P0=0,Ko=Io=As=null,w1=!1,U1=0,n4.current=null,r===null||r.return===null){Co=1,G1=t,fo=null;break}t:{var n=e,o=r.return,c=r,f=t;if(t=ma,c.flags|=32768,f!==null&&typeof f==\"object\"&&typeof f.then==\"function\"){var _=f,w=c,I=w.tag;if(!(w.mode&1)&&(I===0||I===11||I===15)){var R=w.alternate;R?(w.updateQueue=R.updateQueue,w.memoizedState=R.memoizedState,w.lanes=R.lanes):(w.updateQueue=null,w.memoizedState=null)}var N=x5(o);if(N!==null){N.flags&=-257,b5(N,o,c,n,t),N.mode&1&&v5(n,_,t),t=N,f=_;var j=t.updateQueue;if(j===null){var Q=new Set;Q.add(f),t.updateQueue=Q}else j.add(f);break t}else{if(!(t&1)){v5(n,_,t),c4();break t}f=Error(Pe(426))}}else if(ns&&c.mode&1){var et=x5(o);if(et!==null){!(et.flags&65536)&&(et.flags|=256),b5(et,o,c,n,t),Gk(sy(f,c));break t}}n=f=sy(f,c),Co!==4&&(Co=2),T1===null?T1=[n]:T1.push(n),n=o;do{switch(n.tag){case 3:n.flags|=65536,t&=-t,n.lanes|=t;var Y=l8(n,f,t);p5(n,Y);break t;case 1:c=f;var K=n.type,J=n.stateNode;if(!(n.flags&128)&&(typeof K.getDerivedStateFromError==\"function\"||J!==null&&typeof J.componentDidCatch==\"function\"&&(CA===null||!CA.has(J)))){n.flags|=65536,t&=-t,n.lanes|=t;var ut=c8(n,c,t);p5(n,ut);break t}}n=n.return}while(n!==null)}P8(r)}catch(Et){t=Et,fo===r&&r!==null&&(fo=r=r.return);continue}break}while(!0)}function M8(){var e=gM.current;return gM.current=mM,e===null?mM:e}function c4(){(Co===0||Co===3||Co===2)&&(Co=4),Jo===null||!(I0&268435455)&&!(LM&268435455)||bA(Jo,ma)}function vM(e,t){var r=Zi;Zi|=2;var i=M8();(Jo!==e||ma!==t)&&(Gd=null,S0(e,t));do try{zet();break}catch(s){T8(e,s)}while(!0);if(Hk(),Zi=r,gM.current=i,fo!==null)throw Error(Pe(261));return Jo=null,ma=0,Co}function zet(){for(;fo!==null;)E8(fo)}function Net(){for(;fo!==null&&!utt();)E8(fo)}function E8(e){var t=C8(e.alternate,e,jc);e.memoizedProps=e.pendingProps,t===null?P8(e):fo=t,n4.current=null}function P8(e){var t=e;do{var r=t.alternate;if(e=t.return,t.flags&32768){if(r=ket(r,t),r!==null){r.flags&=32767,fo=r;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Co=6,fo=null;return}}else if(r=Let(r,t,jc),r!==null){fo=r;return}if(t=t.sibling,t!==null){fo=t;return}fo=t=e}while(t!==null);Co===0&&(Co=5)}function v0(e,t,r){var i=vn,s=Eu.transition;try{Eu.transition=null,vn=1,Uet(e,t,r,i)}finally{Eu.transition=s,vn=i}return null}function Uet(e,t,r,i){do J_();while(SA!==null);if(Zi&6)throw Error(Pe(327));r=e.finishedWork;var s=e.finishedLanes;if(r===null)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(Pe(177));e.callbackNode=null,e.callbackPriority=0;var n=r.lanes|r.childLanes;if(vtt(e,n),e===Jo&&(fo=Jo=null,ma=0),!(r.subtreeFlags&2064)&&!(r.flags&2064)||VT||(VT=!0,L8(eM,function(){return J_(),null})),n=(r.flags&15990)!==0,r.subtreeFlags&15990||n){n=Eu.transition,Eu.transition=null;var o=vn;vn=1;var c=Zi;Zi|=4,n4.current=null,Det(e,r),b8(r,e),oet(ek),iM=!!tk,ek=tk=null,e.current=r,Oet(r,e,s),htt(),Zi=c,vn=o,Eu.transition=n}else e.current=r;if(VT&&(VT=!1,SA=e,yM=s),n=e.pendingLanes,n===0&&(CA=null),ptt(r.stateNode,i),tc(e,Xs()),t!==null)for(i=e.onRecoverableError,r=0;r<t.length;r++)s=t[r],i(s.value,{componentStack:s.stack,digest:s.digest});if(_M)throw _M=!1,e=xk,xk=null,e;return yM&1&&e.tag!==0&&J_(),n=e.pendingLanes,n&1?e===bk?M1++:(M1=0,bk=e):M1=0,FA(),null}function J_(){if(SA!==null){var e=lN(yM),t=Eu.transition,r=vn;try{if(Eu.transition=null,vn=16>e?16:e,SA===null)var i=!1;else{if(e=SA,SA=null,yM=0,Zi&6)throw Error(Pe(331));var s=Zi;for(Zi|=4,ur=e.current;ur!==null;){var n=ur,o=n.child;if(ur.flags&16){var c=n.deletions;if(c!==null){for(var f=0;f<c.length;f++){var _=c[f];for(ur=_;ur!==null;){var w=ur;switch(w.tag){case 0:case 11:case 15:S1(8,w,n)}var I=w.child;if(I!==null)I.return=w,ur=I;else for(;ur!==null;){w=ur;var R=w.sibling,N=w.return;if(y8(w),w===_){ur=null;break}if(R!==null){R.return=N,ur=R;break}ur=N}}}var j=n.alternate;if(j!==null){var Q=j.child;if(Q!==null){j.child=null;do{var et=Q.sibling;Q.sibling=null,Q=et}while(Q!==null)}}ur=n}}if(n.subtreeFlags&2064&&o!==null)o.return=n,ur=o;else t:for(;ur!==null;){if(n=ur,n.flags&2048)switch(n.tag){case 0:case 11:case 15:S1(9,n,n.return)}var Y=n.sibling;if(Y!==null){Y.return=n.return,ur=Y;break t}ur=n.return}}var K=e.current;for(ur=K;ur!==null;){o=ur;var J=o.child;if(o.subtreeFlags&2064&&J!==null)J.return=o,ur=J;else t:for(o=K;ur!==null;){if(c=ur,c.flags&2048)try{switch(c.tag){case 0:case 11:case 15:CM(9,c)}}catch(Et){Cs(c,c.return,Et)}if(c===o){ur=null;break t}var ut=c.sibling;if(ut!==null){ut.return=c.return,ur=ut;break t}ur=c.return}}if(Zi=s,FA(),Rf&&typeof Rf.onPostCommitFiberRoot==\"function\")try{Rf.onPostCommitFiberRoot(bM,e)}catch{}i=!0}return i}finally{vn=r,Eu.transition=t}}return!1}function O5(e,t,r){t=sy(r,t),t=l8(e,t,1),e=IA(e,t,1),t=wl(),e!==null&&(W1(e,1,t),tc(e,t))}function Cs(e,t,r){if(e.tag===3)O5(e,e,r);else for(;t!==null;){if(t.tag===3){O5(t,e,r);break}else if(t.tag===1){var i=t.stateNode;if(typeof t.type.getDerivedStateFromError==\"function\"||typeof i.componentDidCatch==\"function\"&&(CA===null||!CA.has(i))){e=sy(r,e),e=c8(t,e,1),t=IA(t,e,1),e=wl(),t!==null&&(W1(t,1,e),tc(t,e));break}}t=t.return}}function Vet(e,t,r){var i=e.pingCache;i!==null&&i.delete(t),t=wl(),e.pingedLanes|=e.suspendedLanes&r,Jo===e&&(ma&r)===r&&(Co===4||Co===3&&(ma&130023424)===ma&&500>Xs()-o4?S0(e,0):s4|=r),tc(e,t)}function I8(e,t){t===0&&(e.mode&1?(t=ET,ET<<=1,!(ET&130023424)&&(ET=4194304)):t=1);var r=wl();e=$d(e,t),e!==null&&(W1(e,t,r),tc(e,r))}function jet(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),I8(e,r)}function Get(e,t){var r=0;switch(e.tag){case 13:var i=e.stateNode,s=e.memoizedState;s!==null&&(r=s.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(Pe(314))}i!==null&&i.delete(t),I8(e,r)}var C8;C8=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Kl.current)Xl=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Xl=!1,Cet(e,t,r);Xl=!!(e.flags&131072)}else Xl=!1,ns&&t.flags&1048576&&DN(t,uM,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;YT(e,t),e=t.pendingProps;var s=ey(t,$a.current);K_(t,r),s=Jk(null,t,i,e,s,r);var n=t4();return t.flags|=1,typeof s==\"object\"&&s!==null&&typeof s.render==\"function\"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Jl(i)?(n=!0,lM(t)):n=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Yk(t),s.updater=IM,t.stateNode=s,s._reactInternals=t,uk(t,i,e,r),t=dk(null,t,i,!0,n,r)):(t.tag=0,ns&&n&&Vk(t),bl(null,t,s,r),t=t.child),t;case 16:i=t.elementType;t:{switch(YT(e,t),e=t.pendingProps,s=i._init,i=s(i._payload),t.type=i,s=t.tag=Het(i),e=Mh(i,e),s){case 0:t=fk(null,t,i,e,r);break t;case 1:t=T5(null,t,i,e,r);break t;case 11:t=w5(null,t,i,e,r);break t;case 14:t=S5(null,t,i,Mh(i.type,e),r);break t}throw Error(Pe(306,i,\"\"))}return t;case 0:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Mh(i,s),fk(e,t,i,s,r);case 1:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Mh(i,s),T5(e,t,i,s,r);case 3:t:{if(d8(t),e===null)throw Error(Pe(387));i=t.pendingProps,n=t.memoizedState,s=n.element,UN(e,t),dM(t,i,null,r);var o=t.memoizedState;if(i=o.element,n.isDehydrated)if(n={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){s=sy(Error(Pe(423)),t),t=M5(e,t,i,r,s);break t}else if(i!==s){s=sy(Error(Pe(424)),t),t=M5(e,t,i,r,s);break t}else for(Gc=PA(t.stateNode.containerInfo.firstChild),Wc=t,ns=!0,Ph=null,r=zN(t,null,i,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(ry(),i===s){t=Xd(e,t,r);break t}bl(e,t,i,r)}t=t.child}return t;case 5:return VN(t),e===null&&ak(t),i=t.type,s=t.pendingProps,n=e!==null?e.memoizedProps:null,o=s.children,rk(i,s)?o=null:n!==null&&rk(i,n)&&(t.flags|=32),f8(e,t),bl(e,t,o,r),t.child;case 6:return e===null&&ak(t),null;case 13:return p8(e,t,r);case 4:return Qk(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=iy(t,null,i,r):bl(e,t,i,r),t.child;case 11:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Mh(i,s),w5(e,t,i,s,r);case 7:return bl(e,t,t.pendingProps,r),t.child;case 8:return bl(e,t,t.pendingProps.children,r),t.child;case 12:return bl(e,t,t.pendingProps.children,r),t.child;case 10:t:{if(i=t.type._context,s=t.pendingProps,n=t.memoizedProps,o=s.value,Nn(hM,i._currentValue),i._currentValue=o,n!==null)if(Lh(n.value,o)){if(n.children===s.children&&!Kl.current){t=Xd(e,t,r);break t}}else for(n=t.child,n!==null&&(n.return=t);n!==null;){var c=n.dependencies;if(c!==null){o=n.child;for(var f=c.firstContext;f!==null;){if(f.context===i){if(n.tag===1){f=Zd(-1,r&-r),f.tag=2;var _=n.updateQueue;if(_!==null){_=_.shared;var w=_.pending;w===null?f.next=f:(f.next=w.next,w.next=f),_.pending=f}}n.lanes|=r,f=n.alternate,f!==null&&(f.lanes|=r),lk(n.return,r,t),c.lanes|=r;break}f=f.next}}else if(n.tag===10)o=n.type===t.type?null:n.child;else if(n.tag===18){if(o=n.return,o===null)throw Error(Pe(341));o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),lk(o,r,t),o=n.sibling}else o=n.child;if(o!==null)o.return=n;else for(o=n;o!==null;){if(o===t){o=null;break}if(n=o.sibling,n!==null){n.return=o.return,o=n;break}o=o.return}n=o}bl(e,t,s.children,r),t=t.child}return t;case 9:return s=t.type,i=t.pendingProps.children,K_(t,r),s=Pu(s),i=i(s),t.flags|=1,bl(e,t,i,r),t.child;case 14:return i=t.type,s=Mh(i,t.pendingProps),s=Mh(i.type,s),S5(e,t,i,s,r);case 15:return u8(e,t,t.type,t.pendingProps,r);case 17:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Mh(i,s),YT(e,t),t.tag=1,Jl(i)?(e=!0,lM(t)):e=!1,K_(t,r),a8(t,i,s),uk(t,i,s,r),dk(null,t,i,!0,e,r);case 19:return A8(e,t,r);case 22:return h8(e,t,r)}throw Error(Pe(156,t.tag))};function L8(e,t){return nN(e,t)}function Wet(e,t,r,i){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Mu(e,t,r,i){return new Wet(e,t,r,i)}function u4(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Het(e){if(typeof e==\"function\")return u4(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ik)return 11;if(e===Ck)return 14}return 2}function kA(e,t){var r=e.alternate;return r===null?(r=Mu(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function XT(e,t,r,i,s,n){var o=2;if(i=e,typeof e==\"function\")u4(e)&&(o=1);else if(typeof e==\"string\")o=5;else t:switch(e){case F_:return T0(r.children,s,n,t);case Pk:o=8,s|=8;break;case DL:return e=Mu(12,r,t,s|2),e.elementType=DL,e.lanes=n,e;case OL:return e=Mu(13,r,t,s),e.elementType=OL,e.lanes=n,e;case BL:return e=Mu(19,r,t,s),e.elementType=BL,e.lanes=n,e;case V5:return kM(r,s,n,t);default:if(typeof e==\"object\"&&e!==null)switch(e.$$typeof){case N5:o=10;break t;case U5:o=9;break t;case Ik:o=11;break t;case Ck:o=14;break t;case yA:o=16,i=null;break t}throw Error(Pe(130,e==null?e:typeof e,\"\"))}return t=Mu(o,r,t,s),t.elementType=e,t.type=i,t.lanes=n,t}function T0(e,t,r,i){return e=Mu(7,e,i,t),e.lanes=r,e}function kM(e,t,r,i){return e=Mu(22,e,i,t),e.elementType=V5,e.lanes=r,e.stateNode={isHidden:!1},e}function LL(e,t,r){return e=Mu(6,e,null,t),e.lanes=r,e}function kL(e,t,r){return t=Mu(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function qet(e,t,r,i,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=AL(0),this.expirationTimes=AL(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=AL(0),this.identifierPrefix=i,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function h4(e,t,r,i,s,n,o,c,f){return e=new qet(e,t,r,c,f),t===1?(t=1,n===!0&&(t|=8)):t=0,n=Mu(3,null,null,t),e.current=n,n.stateNode=e,n.memoizedState={element:i,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Yk(n),e}function Zet(e,t,r){var i=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:B_,key:i==null?null:\"\"+i,children:e,containerInfo:t,implementation:r}}function k8(e){if(!e)return DA;e=e._reactInternals;t:{if(k0(e)!==e||e.tag!==1)throw Error(Pe(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break t;case 1:if(Jl(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break t}}t=t.return}while(t!==null);throw Error(Pe(171))}if(e.tag===1){var r=e.type;if(Jl(r))return kN(e,r,t)}return t}function R8(e,t,r,i,s,n,o,c,f){return e=h4(r,i,!0,e,s,n,o,c,f),e.context=k8(null),r=e.current,i=wl(),s=LA(r),n=Zd(i,s),n.callback=t??null,IA(r,n,s),e.current.lanes=s,W1(e,s,i),tc(e,i),e}function RM(e,t,r,i){var s=t.current,n=wl(),o=LA(s);return r=k8(r),t.context===null?t.context=r:t.pendingContext=r,t=Zd(n,o),t.payload={element:e},i=i===void 0?null:i,i!==null&&(t.callback=i),e=IA(s,t,o),e!==null&&(Ch(e,s,o,n),HT(e,s,o)),o}function xM(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function B5(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var r=e.retryLane;e.retryLane=r!==0&&r<t?r:t}}function f4(e,t){B5(e,t),(e=e.alternate)&&B5(e,t)}function Yet(){return null}var D8=typeof reportError==\"function\"?reportError:function(e){console.error(e)};function d4(e){this._internalRoot=e}DM.prototype.render=d4.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(Pe(409));RM(e,t,null,null)};DM.prototype.unmount=d4.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;C0(function(){RM(null,e,null,null)}),t[Qd]=null}};function DM(e){this._internalRoot=e}DM.prototype.unstable_scheduleHydration=function(e){if(e){var t=hN();e={blockedOn:null,target:e,priority:t};for(var r=0;r<xA.length&&t!==0&&t<xA[r].priority;r++);xA.splice(r,0,e),r===0&&dN(e)}};function p4(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function OM(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==\" react-mount-point-unstable \"))}function F5(){}function Qet(e,t,r,i,s){if(s){if(typeof i==\"function\"){var n=i;i=function(){var _=xM(o);n.call(_)}}var o=R8(t,i,e,0,null,!1,!1,\"\",F5);return e._reactRootContainer=o,e[Qd]=o.current,O1(e.nodeType===8?e.parentNode:e),C0(),o}for(;s=e.lastChild;)e.removeChild(s);if(typeof i==\"function\"){var c=i;i=function(){var _=xM(f);c.call(_)}}var f=h4(e,0,!1,null,null,!1,!1,\"\",F5);return e._reactRootContainer=f,e[Qd]=f.current,O1(e.nodeType===8?e.parentNode:e),C0(function(){RM(t,f,r,i)}),f}function BM(e,t,r,i,s){var n=r._reactRootContainer;if(n){var o=n;if(typeof s==\"function\"){var c=s;s=function(){var f=xM(o);c.call(f)}}RM(t,o,e,s)}else o=Qet(r,t,e,s,i);return xM(o)}cN=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var r=m1(t.pendingLanes);r!==0&&(Rk(t,r|1),tc(t,Xs()),!(Zi&6)&&(oy=Xs()+500,FA()))}break;case 13:C0(function(){var i=$d(e,1);if(i!==null){var s=wl();Ch(i,e,1,s)}}),f4(e,1)}};Dk=function(e){if(e.tag===13){var t=$d(e,134217728);if(t!==null){var r=wl();Ch(t,e,134217728,r)}f4(e,134217728)}};uN=function(e){if(e.tag===13){var t=LA(e),r=$d(e,t);if(r!==null){var i=wl();Ch(r,e,t,i)}f4(e,t)}};hN=function(){return vn};fN=function(e,t){var r=vn;try{return vn=e,t()}finally{vn=r}};qL=function(e,t,r){switch(t){case\"input\":if(NL(e,r),t=r.name,r.type===\"radio\"&&t!=null){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+t)+'][type=\"radio\"]'),t=0;t<r.length;t++){var i=r[t];if(i!==e&&i.form===e.form){var s=MM(i);if(!s)throw Error(Pe(90));G5(i),NL(i,s)}}}break;case\"textarea\":H5(e,r);break;case\"select\":t=r.value,t!=null&&Y_(e,!!r.multiple,t,!1)}};K5=a4;J5=C0;var $et={usingClientEntryPoint:!1,Events:[q1,V_,MM,$5,X5,a4]},f1={findFiberByHostInstance:x0,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"},Xet={bundleType:f1.bundleType,version:f1.version,rendererPackageName:f1.rendererPackageName,rendererConfig:f1.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Kd.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=rN(e),e===null?null:e.stateNode},findFiberByHostInstance:f1.findFiberByHostInstance||Yet,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&(d1=__REACT_DEVTOOLS_GLOBAL_HOOK__,!d1.isDisabled&&d1.supportsFiber))try{bM=d1.inject(Xet),Rf=d1}catch{}var d1;Zc.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=$et;Zc.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!p4(t))throw Error(Pe(200));return Zet(e,t,null,r)};Zc.createRoot=function(e,t){if(!p4(e))throw Error(Pe(299));var r=!1,i=\"\",s=D8;return t!=null&&(t.unstable_strictMode===!0&&(r=!0),t.identifierPrefix!==void 0&&(i=t.identifierPrefix),t.onRecoverableError!==void 0&&(s=t.onRecoverableError)),t=h4(e,1,!1,null,null,r,!1,i,s),e[Qd]=t.current,O1(e.nodeType===8?e.parentNode:e),new d4(t)};Zc.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render==\"function\"?Error(Pe(188)):(e=Object.keys(e).join(\",\"),Error(Pe(268,e)));return e=rN(t),e=e===null?null:e.stateNode,e};Zc.flushSync=function(e){return C0(e)};Zc.hydrate=function(e,t,r){if(!OM(t))throw Error(Pe(200));return BM(null,e,t,!0,r)};Zc.hydrateRoot=function(e,t,r){if(!p4(e))throw Error(Pe(405));var i=r!=null&&r.hydratedSources||null,s=!1,n=\"\",o=D8;if(r!=null&&(r.unstable_strictMode===!0&&(s=!0),r.identifierPrefix!==void 0&&(n=r.identifierPrefix),r.onRecoverableError!==void 0&&(o=r.onRecoverableError)),t=R8(t,null,e,1,r??null,s,!1,n,o),e[Qd]=t.current,O1(e),i)for(e=0;e<i.length;e++)r=i[e],s=r._getVersion,s=s(r._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[r,s]:t.mutableSourceEagerHydrationData.push(r,s);return new DM(t)};Zc.render=function(e,t,r){if(!OM(t))throw Error(Pe(200));return BM(null,e,t,!1,r)};Zc.unmountComponentAtNode=function(e){if(!OM(e))throw Error(Pe(40));return e._reactRootContainer?(C0(function(){BM(null,null,e,!1,function(){e._reactRootContainer=null,e[Qd]=null})}),!0):!1};Zc.unstable_batchedUpdates=a4;Zc.unstable_renderSubtreeIntoContainer=function(e,t,r,i){if(!OM(r))throw Error(Pe(200));if(e==null||e._reactInternals===void 0)throw Error(Pe(38));return BM(e,t,r,!1,i)};Zc.version=\"18.3.1-next-f1338f8080-20240426\"});var FM=Br((rbt,F8)=>{\"use strict\";function B8(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(B8)}catch(e){console.error(e)}}B8(),F8.exports=O8()});var N8=Br(A4=>{\"use strict\";var z8=FM();A4.createRoot=z8.createRoot,A4.hydrateRoot=z8.hydrateRoot;var ibt});var eU=Br((T4,M4)=>{(function(e,t){typeof T4==\"object\"&&typeof M4<\"u\"?M4.exports=t():(e=typeof globalThis<\"u\"?globalThis:e||self,e.maplibregl=t())})(T4,function(){\"use strict\";var e,t,r;function i(n,o){if(!e)e=o;else if(!t)t=o;else{var c=\"var sharedChunk = {}; (\"+e+\")(sharedChunk); (\"+t+\")(sharedChunk);\",f={};e(f),r=o(f),typeof window<\"u\"&&(r.workerUrl=window.URL.createObjectURL(new Blob([c],{type:\"text/javascript\"})))}}i([\"exports\"],function(n){\"use strict\";function o(u,a,h,A){return new(h||(h=Promise))(function(x,E){function P(V){try{F(A.next(V))}catch(q){E(q)}}function D(V){try{F(A.throw(V))}catch(q){E(q)}}function F(V){var q;V.done?x(V.value):(q=V.value,q instanceof h?q:new h(function(X){X(q)})).then(P,D)}F((A=A.apply(u,a||[])).next())})}function c(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,\"default\")?u.default:u}typeof SuppressedError==\"function\"&&SuppressedError;var f=_;function _(u,a){this.x=u,this.y=a}_.prototype={clone:function(){return new _(this.x,this.y)},add:function(u){return this.clone()._add(u)},sub:function(u){return this.clone()._sub(u)},multByPoint:function(u){return this.clone()._multByPoint(u)},divByPoint:function(u){return this.clone()._divByPoint(u)},mult:function(u){return this.clone()._mult(u)},div:function(u){return this.clone()._div(u)},rotate:function(u){return this.clone()._rotate(u)},rotateAround:function(u,a){return this.clone()._rotateAround(u,a)},matMult:function(u){return this.clone()._matMult(u)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(u){return this.x===u.x&&this.y===u.y},dist:function(u){return Math.sqrt(this.distSqr(u))},distSqr:function(u){var a=u.x-this.x,h=u.y-this.y;return a*a+h*h},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(u){return Math.atan2(this.y-u.y,this.x-u.x)},angleWith:function(u){return this.angleWithSep(u.x,u.y)},angleWithSep:function(u,a){return Math.atan2(this.x*a-this.y*u,this.x*u+this.y*a)},_matMult:function(u){var a=u[2]*this.x+u[3]*this.y;return this.x=u[0]*this.x+u[1]*this.y,this.y=a,this},_add:function(u){return this.x+=u.x,this.y+=u.y,this},_sub:function(u){return this.x-=u.x,this.y-=u.y,this},_mult:function(u){return this.x*=u,this.y*=u,this},_div:function(u){return this.x/=u,this.y/=u,this},_multByPoint:function(u){return this.x*=u.x,this.y*=u.y,this},_divByPoint:function(u){return this.x/=u.x,this.y/=u.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var u=this.y;return this.y=this.x,this.x=-u,this},_rotate:function(u){var a=Math.cos(u),h=Math.sin(u),A=h*this.x+a*this.y;return this.x=a*this.x-h*this.y,this.y=A,this},_rotateAround:function(u,a){var h=Math.cos(u),A=Math.sin(u),x=a.y+A*(this.x-a.x)+h*(this.y-a.y);return this.x=a.x+h*(this.x-a.x)-A*(this.y-a.y),this.y=x,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},_.convert=function(u){return u instanceof _?u:Array.isArray(u)?new _(u[0],u[1]):u};var w=c(f),I=R;function R(u,a,h,A){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*a,this.by=3*(A-a)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=a,this.p2x=h,this.p2y=A}R.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,a){if(a===void 0&&(a=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,A=0;A<8;A++){var x=this.sampleCurveX(h)-u;if(Math.abs(x)<a)return h;var E=this.sampleCurveDerivativeX(h);if(Math.abs(E)<1e-6)break;h-=x/E}var P=0,D=1;for(h=u,A=0;A<20&&(x=this.sampleCurveX(h),!(Math.abs(x-u)<a));A++)u>x?P=h:D=h,h=.5*(D-P)+P;return h},solve:function(u,a){return this.sampleCurveY(this.solveCurveX(u,a))}};var N=c(I);let j,Q;function et(){return j==null&&(j=typeof OffscreenCanvas<\"u\"&&new OffscreenCanvas(1,1).getContext(\"2d\")&&typeof createImageBitmap==\"function\"),j}function Y(){if(Q==null&&(Q=!1,et())){let a=new OffscreenCanvas(5,5).getContext(\"2d\",{willReadFrequently:!0});if(a){for(let A=0;A<5*5;A++){let x=4*A;a.fillStyle=`rgb(${x},${x+1},${x+2})`,a.fillRect(A%5,Math.floor(A/5),1,1)}let h=a.getImageData(0,0,5,5).data;for(let A=0;A<5*5*4;A++)if(A%4!=3&&h[A]!==A){Q=!0;break}}}return Q||!1}function K(u,a,h,A){let x=new N(u,a,h,A);return function(E){return x.solve(E)}}let J=K(.25,.1,.25,1);function ut(u,a,h){return Math.min(h,Math.max(a,u))}function Et(u,a,h){let A=h-a,x=((u-a)%A+A)%A+a;return x===a?h:x}function kt(u,...a){for(let h of a)for(let A in h)u[A]=h[A];return u}let Xt=1;function qt(u,a,h){let A={};for(let x in u)A[x]=a.call(h||this,u[x],x,u);return A}function le(u,a,h){let A={};for(let x in u)a.call(h||this,u[x],x,u)&&(A[x]=u[x]);return A}function ue(u){return Array.isArray(u)?u.map(ue):typeof u==\"object\"&&u?qt(u,ue):u}let De={};function Ke(u){De[u]||(typeof console<\"u\"&&console.warn(u),De[u]=!0)}function rr(u,a,h){return(h.y-u.y)*(a.x-u.x)>(a.y-u.y)*(h.x-u.x)}function Sr(u){let a=0;for(let h,A,x=0,E=u.length,P=E-1;x<E;P=x++)h=u[x],A=u[P],a+=(A.x-h.x)*(h.y+A.y);return a}function Li(){return typeof WorkerGlobalScope<\"u\"&&typeof self<\"u\"&&self instanceof WorkerGlobalScope}let oo=null;function zl(u){return typeof ImageBitmap<\"u\"&&u instanceof ImageBitmap}let No=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";function ih(u,a,h,A,x){return o(this,void 0,void 0,function*(){if(typeof VideoFrame>\"u\")throw new Error(\"VideoFrame not supported\");let E=new VideoFrame(u,{timestamp:0});try{let P=E?.format;if(!P||!P.startsWith(\"BGR\")&&!P.startsWith(\"RGB\"))throw new Error(`Unrecognized format ${P}`);let D=P.startsWith(\"BGR\"),F=new Uint8ClampedArray(A*x*4);if(yield E.copyTo(F,function(V,q,X,rt,at){let ct=4*Math.max(-q,0),mt=(Math.max(0,X)-X)*rt*4+ct,bt=4*rt,Pt=Math.max(0,q),jt=Math.max(0,X);return{rect:{x:Pt,y:jt,width:Math.min(V.width,q+rt)-Pt,height:Math.min(V.height,X+at)-jt},layout:[{offset:mt,stride:bt}]}}(u,a,h,A,x)),D)for(let V=0;V<F.length;V+=4){let q=F[V];F[V]=F[V+2],F[V+2]=q}return F}finally{E.close()}})}let Uo,Si,Ns,ll,kc={now:typeof performance<\"u\"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frame(u){let a=requestAnimationFrame(u);return{cancel:()=>cancelAnimationFrame(a)}},getImageData(u,a=0){return this.getImageCanvasContext(u).getImageData(-a,-a,u.width+2*a,u.height+2*a)},getImageCanvasContext(u){let a=window.document.createElement(\"canvas\"),h=a.getContext(\"2d\",{willReadFrequently:!0});if(!h)throw new Error(\"failed to create canvas 2d context\");return a.width=u.width,a.height=u.height,h.drawImage(u,0,0,u.width,u.height),h},resolveURL:u=>(Ns||(Ns=document.createElement(\"a\")),Ns.href=u,Ns.href),hardwareConcurrency:typeof navigator<\"u\"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(ll==null&&(ll=matchMedia(\"(prefers-reduced-motion: reduce)\")),ll.matches)}},Rc={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:\"\"};class Xi extends Error{constructor(a,h,A,x){super(`AJAXError: ${h} (${a}): ${A}`),this.status=a,this.statusText=h,this.url=A,this.body=x}}let Jn=Li()?()=>self.worker&&self.worker.referrer:()=>(window.location.protocol===\"blob:\"?window.parent:window).location.href,ki=u=>Rc.REGISTERED_PROTOCOLS[u.substring(0,u.indexOf(\"://\"))];function ts(u,a){let h=new AbortController,A=new Request(u.url,{method:u.method||\"GET\",body:u.body,credentials:u.credentials,headers:u.headers,cache:u.cache,referrer:Jn(),signal:h.signal}),x=!1,E=!1;return u.type===\"json\"&&A.headers.set(\"Accept\",\"application/json\"),E||fetch(A).then(P=>P.ok?(D=>{(u.type===\"arrayBuffer\"||u.type===\"image\"?D.arrayBuffer():u.type===\"json\"?D.json():D.text()).then(F=>{E||(x=!0,a(null,F,D.headers.get(\"Cache-Control\"),D.headers.get(\"Expires\")))}).catch(F=>{E||a(new Error(F.message))})})(P):P.blob().then(D=>a(new Xi(P.status,P.statusText,u.url,D)))).catch(P=>{P.code!==20&&a(new Error(P.message))}),{cancel:()=>{E=!0,x||h.abort()}}}let Vo=function(u,a){if(/:\\/\\//.test(u.url)&&!/^https?:|^file:/.test(u.url)){if(Li()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",u,a);if(!Li())return(ki(u.url)||ts)(u,a)}if(!(/^file:/.test(h=u.url)||/^file:/.test(Jn())&&!/^\\w+:/.test(h))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,\"signal\"))return ts(u,a);if(Li()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",u,a,void 0,!0)}var h;return function(A,x){let E=new XMLHttpRequest;E.open(A.method||\"GET\",A.url,!0),A.type!==\"arrayBuffer\"&&A.type!==\"image\"||(E.responseType=\"arraybuffer\");for(let P in A.headers)E.setRequestHeader(P,A.headers[P]);return A.type===\"json\"&&(E.responseType=\"text\",E.setRequestHeader(\"Accept\",\"application/json\")),E.withCredentials=A.credentials===\"include\",E.onerror=()=>{x(new Error(E.statusText))},E.onload=()=>{if((E.status>=200&&E.status<300||E.status===0)&&E.response!==null){let P=E.response;if(A.type===\"json\")try{P=JSON.parse(E.response)}catch(D){return x(D)}x(null,P,E.getResponseHeader(\"Cache-Control\"),E.getResponseHeader(\"Expires\"))}else{let P=new Blob([E.response],{type:E.getResponseHeader(\"Content-Type\")});x(new Xi(E.status,E.statusText,A.url,P))}},E.send(A.body),{cancel:()=>E.abort()}}(u,a)},cl=function(u,a){return Vo(kt(u,{type:\"arrayBuffer\"}),a)};function xo(u){if(!u||u.indexOf(\"://\")<=0||u.indexOf(\"data:image/\")===0||u.indexOf(\"blob:\")===0)return!0;let a=new URL(u),h=window.location;return a.protocol===h.protocol&&a.host===h.host}function Pa(u,a,h){h[u]&&h[u].indexOf(a)!==-1||(h[u]=h[u]||[],h[u].push(a))}function na(u,a,h){if(h&&h[u]){let A=h[u].indexOf(a);A!==-1&&h[u].splice(A,1)}}class as{constructor(a,h={}){kt(this,h),this.type=a}}class ao extends as{constructor(a,h={}){super(\"error\",kt({error:a},h))}}class Nl{on(a,h){return this._listeners=this._listeners||{},Pa(a,h,this._listeners),this}off(a,h){return na(a,h,this._listeners),na(a,h,this._oneTimeListeners),this}once(a,h){return h?(this._oneTimeListeners=this._oneTimeListeners||{},Pa(a,h,this._oneTimeListeners),this):new Promise(A=>this.once(a,A))}fire(a,h){typeof a==\"string\"&&(a=new as(a,h||{}));let A=a.type;if(this.listens(A)){a.target=this;let x=this._listeners&&this._listeners[A]?this._listeners[A].slice():[];for(let D of x)D.call(this,a);let E=this._oneTimeListeners&&this._oneTimeListeners[A]?this._oneTimeListeners[A].slice():[];for(let D of E)na(A,D,this._oneTimeListeners),D.call(this,a);let P=this._eventedParent;P&&(kt(a,typeof this._eventedParentData==\"function\"?this._eventedParentData():this._eventedParentData),P.fire(a))}else a instanceof ao&&console.error(a.error);return this}listens(a){return this._listeners&&this._listeners[a]&&this._listeners[a].length>0||this._oneTimeListeners&&this._oneTimeListeners[a]&&this._oneTimeListeners[a].length>0||this._eventedParent&&this._eventedParent.listens(a)}setEventedParent(a,h){return this._eventedParent=a,this._eventedParentData=h,this}}var ee={$version:8,$root:{version:{required:!0,type:\"enum\",values:[8]},name:{type:\"string\"},metadata:{type:\"*\"},center:{type:\"array\",value:\"number\"},zoom:{type:\"number\"},bearing:{type:\"number\",default:0,period:360,units:\"degrees\"},pitch:{type:\"number\",default:0,units:\"degrees\"},light:{type:\"light\"},terrain:{type:\"terrain\"},sources:{required:!0,type:\"sources\"},sprite:{type:\"sprite\"},glyphs:{type:\"string\"},transition:{type:\"transition\"},layers:{required:!0,type:\"array\",value:\"layer\"}},sources:{\"*\":{type:\"source\"}},source:[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_geojson\",\"source_video\",\"source_image\"],source_vector:{type:{required:!0,type:\"enum\",values:{vector:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},attribution:{type:\"string\"},promoteId:{type:\"promoteId\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster:{type:{required:!0,type:\"enum\",values:{raster:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},attribution:{type:\"string\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster_dem:{type:{required:!0,type:\"enum\",values:{\"raster-dem\":{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},attribution:{type:\"string\"},encoding:{type:\"enum\",values:{terrarium:{},mapbox:{},custom:{}},default:\"mapbox\"},redFactor:{type:\"number\",default:1},blueFactor:{type:\"number\",default:1},greenFactor:{type:\"number\",default:1},baseShift:{type:\"number\",default:0},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{required:!0,type:\"*\"},maxzoom:{type:\"number\",default:18},attribution:{type:\"string\"},buffer:{type:\"number\",default:128,maximum:512,minimum:0},filter:{type:\"*\"},tolerance:{type:\"number\",default:.375},cluster:{type:\"boolean\",default:!1},clusterRadius:{type:\"number\",default:50,minimum:0},clusterMaxZoom:{type:\"number\"},clusterMinPoints:{type:\"number\"},clusterProperties:{type:\"*\"},lineMetrics:{type:\"boolean\",default:!1},generateId:{type:\"boolean\",default:!1},promoteId:{type:\"promoteId\"}},source_video:{type:{required:!0,type:\"enum\",values:{video:{}}},urls:{required:!0,type:\"array\",value:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},source_image:{type:{required:!0,type:\"enum\",values:{image:{}}},url:{required:!0,type:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},layer:{id:{type:\"string\",required:!0},type:{type:\"enum\",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},\"fill-extrusion\":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:\"*\"},source:{type:\"string\"},\"source-layer\":{type:\"string\"},minzoom:{type:\"number\",minimum:0,maximum:24},maxzoom:{type:\"number\",minimum:0,maximum:24},filter:{type:\"filter\"},layout:{type:\"layout\"},paint:{type:\"paint\"}},layout:[\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_hillshade\",\"layout_background\"],layout_background:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_fill:{\"fill-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_circle:{\"circle-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_heatmap:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_line:{\"line-cap\":{type:\"enum\",values:{butt:{},round:{},square:{}},default:\"butt\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-join\":{type:\"enum\",values:{bevel:{},round:{},miter:{}},default:\"miter\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{type:\"number\",default:2,requires:[{\"line-join\":\"miter\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{type:\"number\",default:1.05,requires:[{\"line-join\":\"round\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_symbol:{\"symbol-placement\":{type:\"enum\",values:{point:{},line:{},\"line-center\":{}},default:\"point\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{type:\"number\",default:250,minimum:1,units:\"pixels\",requires:[{\"symbol-placement\":\"line\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{type:\"boolean\",default:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{type:\"enum\",values:{auto:{},\"viewport-y\":{},source:{}},default:\"auto\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"!\":\"icon-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{type:\"boolean\",default:!1,requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{type:\"number\",default:1,minimum:0,units:\"factor of the original icon size\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit\":{type:\"enum\",values:{none:{},width:{},height:{},both:{}},default:\"none\",requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-text-fit-padding\":{type:\"array\",value:\"number\",length:4,default:[0,0,0,0],units:\"pixels\",requires:[\"icon-image\",\"text-field\",{\"icon-text-fit\":[\"both\",\"width\",\"height\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image\":{type:\"resolvedImage\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{type:\"padding\",default:[2],units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-keep-upright\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"icon-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{type:\"array\",value:\"number\",length:2,default:[0,0],requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},\"viewport-glyph\":{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{type:\"formatted\",default:\"\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{type:\"array\",value:\"string\",default:[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{type:\"number\",default:16,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-width\":{type:\"number\",default:10,minimum:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{type:\"number\",default:1.2,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-letter-spacing\":{type:\"number\",default:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{type:\"enum\",values:{auto:{},left:{},center:{},right:{}},default:\"center\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{type:\"number\",units:\"ems\",default:0,requires:[\"text-field\"],\"property-type\":\"data-driven\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{type:\"array\",value:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-variable-anchor-offset\":{type:\"variableAnchorOffsetCollection\",requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"text-field\",{\"!\":\"text-variable-anchor\"}],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{type:\"number\",default:45,units:\"degrees\",requires:[\"text-field\",{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{type:\"array\",value:\"enum\",values:{horizontal:{},vertical:{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{type:\"boolean\",default:!0,requires:[\"text-field\",{\"text-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{type:\"enum\",values:{none:{},uppercase:{},lowercase:{}},default:\"none\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{type:\"array\",value:\"number\",units:\"ems\",length:2,default:[0,0],requires:[\"text-field\",{\"!\":\"text-radial-offset\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"text-field\",{\"!\":\"text-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{type:\"boolean\",default:!1,requires:[\"text-field\",\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_raster:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_hillshade:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},filter:{type:\"array\",value:\"*\"},filter_operator:{type:\"enum\",values:{\"==\":{},\"!=\":{},\">\":{},\">=\":{},\"<\":{},\"<=\":{},in:{},\"!in\":{},all:{},any:{},none:{},has:{},\"!has\":{},within:{}}},geometry_type:{type:\"enum\",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:\"expression\"},stops:{type:\"array\",value:\"function_stop\"},base:{type:\"number\",default:1,minimum:0},property:{type:\"string\",default:\"$zoom\"},type:{type:\"enum\",values:{identity:{},exponential:{},interval:{},categorical:{}},default:\"exponential\"},colorSpace:{type:\"enum\",values:{rgb:{},lab:{},hcl:{}},default:\"rgb\"},default:{type:\"*\",required:!1}},function_stop:{type:\"array\",minimum:0,maximum:24,value:[\"number\",\"color\"],length:2},expression:{type:\"array\",value:\"*\",minimum:1},light:{anchor:{type:\"enum\",default:\"viewport\",values:{map:{},viewport:{}},\"property-type\":\"data-constant\",transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]}},position:{type:\"array\",default:[1.15,210,30],length:3,value:\"number\",\"property-type\":\"data-constant\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]}},color:{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},intensity:{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},terrain:{source:{type:\"string\",required:!0},exaggeration:{type:\"number\",minimum:0,default:1}},paint:[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_hillshade\",\"paint_background\"],paint_fill:{\"fill-antialias\":{type:\"boolean\",default:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{type:\"color\",transition:!0,requires:[{\"!\":\"fill-pattern\"},{\"fill-antialias\":!0}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-extrusion-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-extrusion-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"fill-extrusion-height\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,requires:[\"fill-extrusion-height\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-vertical-gradient\":{type:\"boolean\",default:!0,transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_line:{\"line-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"line-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{type:\"number\",default:1,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-offset\":{type:\"number\",default:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{type:\"array\",value:\"number\",minimum:0,transition:!0,units:\"line widths\",requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"line-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"line-gradient\":{type:\"color\",transition:!1,requires:[{\"!\":\"line-dasharray\"},{\"!\":\"line-pattern\"},{source:\"geojson\",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:[\"line-progress\"]},\"property-type\":\"color-ramp\"}},paint_circle:{\"circle-radius\":{type:\"number\",default:5,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{type:\"number\",default:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"circle-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"}},paint_heatmap:{\"heatmap-radius\":{type:\"number\",default:30,minimum:1,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{type:\"number\",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{type:\"number\",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{type:\"color\",default:[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],transition:!1,expression:{interpolated:!0,parameters:[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_symbol:{\"icon-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"icon-image\",\"icon-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-color\":{type:\"color\",default:\"#000000\",transition:!0,overridable:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"text-field\",\"text-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_raster:{\"raster-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-hue-rotate\":{type:\"number\",default:0,period:360,transition:!0,units:\"degrees\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{type:\"number\",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{type:\"enum\",values:{linear:{},nearest:{}},default:\"linear\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{type:\"number\",default:300,minimum:0,transition:!1,units:\"milliseconds\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_hillshade:{\"hillshade-illumination-direction\":{type:\"number\",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{type:\"number\",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{type:\"color\",default:\"#FFFFFF\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_background:{\"background-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"background-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"background-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},transition:{duration:{type:\"number\",default:300,minimum:0,units:\"milliseconds\"},delay:{type:\"number\",default:0,minimum:0,units:\"milliseconds\"}},\"property-type\":{\"data-driven\":{type:\"property-type\"},\"cross-faded\":{type:\"property-type\"},\"cross-faded-data-driven\":{type:\"property-type\"},\"color-ramp\":{type:\"property-type\"},\"data-constant\":{type:\"property-type\"},constant:{type:\"property-type\"}},promoteId:{\"*\":{type:\"string\"}}};let ls=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"];function mn(u,a){let h={};for(let A in u)A!==\"ref\"&&(h[A]=u[A]);return ls.forEach(A=>{A in a&&(h[A]=a[A])}),h}function gi(u,a){if(Array.isArray(u)){if(!Array.isArray(a)||u.length!==a.length)return!1;for(let h=0;h<u.length;h++)if(!gi(u[h],a[h]))return!1;return!0}if(typeof u==\"object\"&&u!==null&&a!==null){if(typeof a!=\"object\"||Object.keys(u).length!==Object.keys(a).length)return!1;for(let h in u)if(!gi(u[h],a[h]))return!1;return!0}return u===a}let oi={setStyle:\"setStyle\",addLayer:\"addLayer\",removeLayer:\"removeLayer\",setPaintProperty:\"setPaintProperty\",setLayoutProperty:\"setLayoutProperty\",setFilter:\"setFilter\",addSource:\"addSource\",removeSource:\"removeSource\",setGeoJSONSourceData:\"setGeoJSONSourceData\",setLayerZoomRange:\"setLayerZoomRange\",setLayerProperty:\"setLayerProperty\",setCenter:\"setCenter\",setZoom:\"setZoom\",setBearing:\"setBearing\",setPitch:\"setPitch\",setSprite:\"setSprite\",setGlyphs:\"setGlyphs\",setTransition:\"setTransition\",setLight:\"setLight\"};function lo(u,a,h){h.push({command:oi.addSource,args:[u,a[u]]})}function du(u,a,h){a.push({command:oi.removeSource,args:[u]}),h[u]=!0}function ul(u,a,h,A){du(u,h,A),lo(u,a,h)}function bo(u,a,h){let A;for(A in u[h])if(Object.prototype.hasOwnProperty.call(u[h],A)&&A!==\"data\"&&!gi(u[h][A],a[h][A]))return!1;for(A in a[h])if(Object.prototype.hasOwnProperty.call(a[h],A)&&A!==\"data\"&&!gi(u[h][A],a[h][A]))return!1;return!0}function hl(u,a,h,A,x,E){let P;for(P in a=a||{},u=u||{})Object.prototype.hasOwnProperty.call(u,P)&&(gi(u[P],a[P])||h.push({command:E,args:[A,P,a[P],x]}));for(P in a)Object.prototype.hasOwnProperty.call(a,P)&&!Object.prototype.hasOwnProperty.call(u,P)&&(gi(u[P],a[P])||h.push({command:E,args:[A,P,a[P],x]}))}function Ia(u){return u.id}function wo(u,a){return u[a.id]=a,u}class ve{constructor(a,h,A,x){this.message=(a?`${a}: `:\"\")+A,x&&(this.identifier=x),h!=null&&h.__line__&&(this.line=h.__line__)}}function jo(u,...a){for(let h of a)for(let A in h)u[A]=h[A];return u}class gn extends Error{constructor(a,h){super(h),this.message=h,this.key=a}}class Ul{constructor(a,h=[]){this.parent=a,this.bindings={};for(let[A,x]of h)this.bindings[A]=x}concat(a){return new Ul(this,a)}get(a){if(this.bindings[a])return this.bindings[a];if(this.parent)return this.parent.get(a);throw new Error(`${a} not found in scope.`)}has(a){return!!this.bindings[a]||!!this.parent&&this.parent.has(a)}}let Ca={kind:\"null\"},Te={kind:\"number\"},Dr={kind:\"string\"},gr={kind:\"boolean\"},Us={kind:\"color\"},La={kind:\"object\"},Mr={kind:\"value\"},sa={kind:\"collator\"},gt={kind:\"formatted\"},tt={kind:\"padding\"},nt={kind:\"resolvedImage\"},ht={kind:\"variableAnchorOffsetCollection\"};function vt(u,a){return{kind:\"array\",itemType:u,N:a}}function xt(u){if(u.kind===\"array\"){let a=xt(u.itemType);return typeof u.N==\"number\"?`array<${a}, ${u.N}>`:u.itemType.kind===\"value\"?\"array\":`array<${a}>`}return u.kind}let _t=[Ca,Te,Dr,gr,Us,gt,La,vt(Mr),tt,nt,ht];function Dt(u,a){if(a.kind===\"error\")return null;if(u.kind===\"array\"){if(a.kind===\"array\"&&(a.N===0&&a.itemType.kind===\"value\"||!Dt(u.itemType,a.itemType))&&(typeof u.N!=\"number\"||u.N===a.N))return null}else{if(u.kind===a.kind)return null;if(u.kind===\"value\"){for(let h of _t)if(!Dt(h,a))return null}}return`Expected ${xt(u)} but found ${xt(a)} instead.`}function Mt(u,a){return a.some(h=>h.kind===u.kind)}function Vt(u,a){return a.some(h=>h===\"null\"?u===null:h===\"array\"?Array.isArray(u):h===\"object\"?u&&!Array.isArray(u)&&typeof u==\"object\":h===typeof u)}function ie(u,a){return u.kind===\"array\"&&a.kind===\"array\"?u.itemType.kind===a.itemType.kind&&typeof u.N==\"number\":u.kind===a.kind}let se=.96422,ae=.82521,lr=4/29,vr=6/29,Xe=3*vr*vr,cr=vr*vr*vr,wr=Math.PI/180,xi=180/Math.PI;function zi(u){return(u%=360)<0&&(u+=360),u}function ni([u,a,h,A]){let x,E,P=jn((.2225045*(u=Hr(u))+.7168786*(a=Hr(a))+.0606169*(h=Hr(h)))/1);u===a&&a===h?x=E=P:(x=jn((.4360747*u+.3850649*a+.1430804*h)/se),E=jn((.0139322*u+.0971045*a+.7141733*h)/ae));let D=116*P-16;return[D<0?0:D,500*(x-P),200*(P-E),A]}function Hr(u){return u<=.04045?u/12.92:Math.pow((u+.055)/1.055,2.4)}function jn(u){return u>cr?Math.pow(u,1/3):u/Xe+lr}function Bi([u,a,h,A]){let x=(u+16)/116,E=isNaN(a)?x:x+a/500,P=isNaN(h)?x:x-h/200;return x=1*es(x),E=se*es(E),P=ae*es(P),[xn(3.1338561*E-1.6168667*x-.4906146*P),xn(-.9787684*E+1.9161415*x+.033454*P),xn(.0719453*E-.2289914*x+1.4052427*P),A]}function xn(u){return(u=u<=.00304?12.92*u:1.055*Math.pow(u,1/2.4)-.055)<0?0:u>1?1:u}function es(u){return u>vr?u*u*u:Xe*(u-lr)}function oa(u){return parseInt(u.padEnd(2,u),16)/255}function Um(u,a){return Vl(a?u/100:u,0,1)}function Vl(u,a,h){return Math.min(Math.max(a,u),h)}function Ss(u){return!u.some(Number.isNaN)}let nh={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class ai{constructor(a,h,A,x=1,E=!0){this.r=a,this.g=h,this.b=A,this.a=x,E||(this.r*=x,this.g*=x,this.b*=x,x||this.overwriteGetter(\"rgb\",[a,h,A,x]))}static parse(a){if(a instanceof ai)return a;if(typeof a!=\"string\")return;let h=function(A){if((A=A.toLowerCase().trim())===\"transparent\")return[0,0,0,0];let x=nh[A];if(x){let[P,D,F]=x;return[P/255,D/255,F/255,1]}if(A.startsWith(\"#\")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(A)){let P=A.length<6?1:2,D=1;return[oa(A.slice(D,D+=P)),oa(A.slice(D,D+=P)),oa(A.slice(D,D+=P)),oa(A.slice(D,D+P)||\"ff\")]}if(A.startsWith(\"rgb\")){let P=A.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(P){let[D,F,V,q,X,rt,at,ct,mt,bt,Pt,jt]=P,Rt=[q||\" \",at||\" \",bt].join(\"\");if(Rt===\" \"||Rt===\" /\"||Rt===\",,\"||Rt===\",,,\"){let Gt=[V,rt,mt].join(\"\"),Yt=Gt===\"%%%\"?100:Gt===\"\"?255:0;if(Yt){let ce=[Vl(+F/Yt,0,1),Vl(+X/Yt,0,1),Vl(+ct/Yt,0,1),Pt?Um(+Pt,jt):1];if(Ss(ce))return ce}}return}}let E=A.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(E){let[P,D,F,V,q,X,rt,at,ct]=E,mt=[F||\" \",q||\" \",rt].join(\"\");if(mt===\" \"||mt===\" /\"||mt===\",,\"||mt===\",,,\"){let bt=[+D,Vl(+V,0,100),Vl(+X,0,100),at?Um(+at,ct):1];if(Ss(bt))return function([Pt,jt,Rt,Gt]){function Yt(ce){let Ne=(ce+Pt/30)%12,ir=jt*Math.min(Rt,1-Rt);return Rt-ir*Math.max(-1,Math.min(Ne-3,9-Ne,1))}return Pt=zi(Pt),jt/=100,Rt/=100,[Yt(0),Yt(8),Yt(4),Gt]}(bt)}}}(a);return h?new ai(...h,!1):void 0}get rgb(){let{r:a,g:h,b:A,a:x}=this,E=x||1/0;return this.overwriteGetter(\"rgb\",[a/E,h/E,A/E,x])}get hcl(){return this.overwriteGetter(\"hcl\",function(a){let[h,A,x,E]=ni(a),P=Math.sqrt(A*A+x*x);return[Math.round(1e4*P)?zi(Math.atan2(x,A)*xi):NaN,P,h,E]}(this.rgb))}get lab(){return this.overwriteGetter(\"lab\",ni(this.rgb))}overwriteGetter(a,h){return Object.defineProperty(this,a,{value:h}),h}toString(){let[a,h,A,x]=this.rgb;return`rgba(${[a,h,A].map(E=>Math.round(255*E)).join(\",\")},${x})`}}ai.black=new ai(0,0,0,1),ai.white=new ai(1,1,1,1),ai.transparent=new ai(0,0,0,0),ai.red=new ai(1,0,0,1);class ka{constructor(a,h,A){this.sensitivity=a?h?\"variant\":\"case\":h?\"accent\":\"base\",this.locale=A,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"})}compare(a,h){return this.collator.compare(a,h)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Dc{constructor(a,h,A,x,E){this.text=a,this.image=h,this.scale=A,this.fontStack=x,this.textColor=E}}class ln{constructor(a){this.sections=a}static fromString(a){return new ln([new Dc(a,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(a=>a.text.length!==0||a.image&&a.image.name.length!==0)}static factory(a){return a instanceof ln?a:ln.fromString(a)}toString(){return this.sections.length===0?\"\":this.sections.map(a=>a.text).join(\"\")}}class Dn{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof Dn)return a;if(typeof a==\"number\")return new Dn([a,a,a,a]);if(Array.isArray(a)&&!(a.length<1||a.length>4)){for(let h of a)if(typeof h!=\"number\")return;switch(a.length){case 1:a=[a[0],a[0],a[0],a[0]];break;case 2:a=[a[0],a[1],a[0],a[1]];break;case 3:a=[a[0],a[1],a[2],a[1]]}return new Dn(a)}}toString(){return JSON.stringify(this.values)}}let Vm=new Set([\"center\",\"left\",\"right\",\"top\",\"bottom\",\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]);class Go{constructor(a){this.values=a.slice()}static parse(a){if(a instanceof Go)return a;if(Array.isArray(a)&&!(a.length<1)&&a.length%2==0){for(let h=0;h<a.length;h+=2){let A=a[h],x=a[h+1];if(typeof A!=\"string\"||!Vm.has(A)||!Array.isArray(x)||x.length!==2||typeof x[0]!=\"number\"||typeof x[1]!=\"number\")return}return new Go(a)}}toString(){return JSON.stringify(this.values)}}class Gn{constructor(a){this.name=a.name,this.available=a.available}toString(){return this.name}static fromString(a){return a?new Gn({name:a,available:!1}):null}}function So(u,a,h,A){return typeof u==\"number\"&&u>=0&&u<=255&&typeof a==\"number\"&&a>=0&&a<=255&&typeof h==\"number\"&&h>=0&&h<=255?A===void 0||typeof A==\"number\"&&A>=0&&A<=1?null:`Invalid rgba value [${[u,a,h,A].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof A==\"number\"?[u,a,h,A]:[u,a,h]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function jl(u){if(u===null||typeof u==\"string\"||typeof u==\"boolean\"||typeof u==\"number\"||u instanceof ai||u instanceof ka||u instanceof ln||u instanceof Dn||u instanceof Go||u instanceof Gn)return!0;if(Array.isArray(u)){for(let a of u)if(!jl(a))return!1;return!0}if(typeof u==\"object\"){for(let a in u)if(!jl(u[a]))return!1;return!0}return!1}function Ki(u){if(u===null)return Ca;if(typeof u==\"string\")return Dr;if(typeof u==\"boolean\")return gr;if(typeof u==\"number\")return Te;if(u instanceof ai)return Us;if(u instanceof ka)return sa;if(u instanceof ln)return gt;if(u instanceof Dn)return tt;if(u instanceof Go)return ht;if(u instanceof Gn)return nt;if(Array.isArray(u)){let a=u.length,h;for(let A of u){let x=Ki(A);if(h){if(h===x)continue;h=Mr;break}h=x}return vt(h||Mr,a)}return La}function _i(u){let a=typeof u;return u===null?\"\":a===\"string\"||a===\"number\"||a===\"boolean\"?String(u):u instanceof ai||u instanceof ln||u instanceof Dn||u instanceof Go||u instanceof Gn?u.toString():JSON.stringify(u)}class Gl{constructor(a,h){this.type=a,this.value=h}static parse(a,h){if(a.length!==2)return h.error(`'literal' expression requires exactly one argument, but found ${a.length-1} instead.`);if(!jl(a[1]))return h.error(\"invalid value\");let A=a[1],x=Ki(A),E=h.expectedType;return x.kind!==\"array\"||x.N!==0||!E||E.kind!==\"array\"||typeof E.N==\"number\"&&E.N!==0||(x=E),new Gl(x,A)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class cn{constructor(a){this.name=\"ExpressionEvaluationError\",this.message=a}toJSON(){return this.message}}let pu={string:Dr,number:Te,boolean:gr,object:La};class rs{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A,x=1,E=a[0];if(E===\"array\"){let D,F;if(a.length>2){let V=a[1];if(typeof V!=\"string\"||!(V in pu)||V===\"object\")return h.error('The item type argument of \"array\" must be one of string, number, boolean',1);D=pu[V],x++}else D=Mr;if(a.length>3){if(a[2]!==null&&(typeof a[2]!=\"number\"||a[2]<0||a[2]!==Math.floor(a[2])))return h.error('The length argument to \"array\" must be a positive integer literal',2);F=a[2],x++}A=vt(D,F)}else{if(!pu[E])throw new Error(`Types doesn't contain name = ${E}`);A=pu[E]}let P=[];for(;x<a.length;x++){let D=h.parse(a[x],x,Mr);if(!D)return null;P.push(D)}return new rs(A,P)}evaluate(a){for(let h=0;h<this.args.length;h++){let A=this.args[h].evaluate(a);if(!Dt(this.type,Ki(A)))return A;if(h===this.args.length-1)throw new cn(`Expected value to be of type ${xt(this.type)}, but found ${xt(Ki(A))} instead.`)}throw new Error}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}let Gp={\"to-boolean\":gr,\"to-color\":Us,\"to-number\":Te,\"to-string\":Dr};class Wl{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[0];if(!Gp[A])throw new Error(`Can't parse ${A} as it is not part of the known types`);if((A===\"to-boolean\"||A===\"to-string\")&&a.length!==2)return h.error(\"Expected one argument.\");let x=Gp[A],E=[];for(let P=1;P<a.length;P++){let D=h.parse(a[P],P,Mr);if(!D)return null;E.push(D)}return new Wl(x,E)}evaluate(a){switch(this.type.kind){case\"boolean\":return!!this.args[0].evaluate(a);case\"color\":{let h,A;for(let x of this.args){if(h=x.evaluate(a),A=null,h instanceof ai)return h;if(typeof h==\"string\"){let E=a.parseColor(h);if(E)return E}else if(Array.isArray(h)&&(A=h.length<3||h.length>4?`Invalid rbga value ${JSON.stringify(h)}: expected an array containing either three or four numeric values.`:So(h[0],h[1],h[2],h[3]),!A))return new ai(h[0]/255,h[1]/255,h[2]/255,h[3])}throw new cn(A||`Could not parse color from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"padding\":{let h;for(let A of this.args){h=A.evaluate(a);let x=Dn.parse(h);if(x)return x}throw new cn(`Could not parse padding from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"variableAnchorOffsetCollection\":{let h;for(let A of this.args){h=A.evaluate(a);let x=Go.parse(h);if(x)return x}throw new cn(`Could not parse variableAnchorOffsetCollection from value '${typeof h==\"string\"?h:JSON.stringify(h)}'`)}case\"number\":{let h=null;for(let A of this.args){if(h=A.evaluate(a),h===null)return 0;let x=Number(h);if(!isNaN(x))return x}throw new cn(`Could not convert ${JSON.stringify(h)} to number.`)}case\"formatted\":return ln.fromString(_i(this.args[0].evaluate(a)));case\"resolvedImage\":return Gn.fromString(_i(this.args[0].evaluate(a)));default:return _i(this.args[0].evaluate(a))}}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}let _d=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class yd{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&\"id\"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==\"number\"?_d[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&\"geometry\"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(a){let h=this._parseColorCache[a];return h||(h=this._parseColorCache[a]=ai.parse(a)),h}}class vd{constructor(a,h,A=[],x,E=new Ul,P=[]){this.registry=a,this.path=A,this.key=A.map(D=>`[${D}]`).join(\"\"),this.scope=E,this.errors=P,this.expectedType=x,this._isConstant=h}parse(a,h,A,x,E={}){return h?this.concat(h,A,x)._parse(a,E):this._parse(a,E)}_parse(a,h){function A(x,E,P){return P===\"assert\"?new rs(E,[x]):P===\"coerce\"?new Wl(E,[x]):x}if(a!==null&&typeof a!=\"string\"&&typeof a!=\"boolean\"&&typeof a!=\"number\"||(a=[\"literal\",a]),Array.isArray(a)){if(a.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');let x=a[0];if(typeof x!=\"string\")return this.error(`Expression name must be a string, but found ${typeof x} instead. If you wanted a literal array, use [\"literal\", [...]].`,0),null;let E=this.registry[x];if(E){let P=E.parse(a,this);if(!P)return null;if(this.expectedType){let D=this.expectedType,F=P.type;if(D.kind!==\"string\"&&D.kind!==\"number\"&&D.kind!==\"boolean\"&&D.kind!==\"object\"&&D.kind!==\"array\"||F.kind!==\"value\")if(D.kind!==\"color\"&&D.kind!==\"formatted\"&&D.kind!==\"resolvedImage\"||F.kind!==\"value\"&&F.kind!==\"string\")if(D.kind!==\"padding\"||F.kind!==\"value\"&&F.kind!==\"number\"&&F.kind!==\"array\")if(D.kind!==\"variableAnchorOffsetCollection\"||F.kind!==\"value\"&&F.kind!==\"array\"){if(this.checkSubtype(D,F))return null}else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"coerce\");else P=A(P,D,h.typeAnnotation||\"assert\")}if(!(P instanceof Gl)&&P.type.kind!==\"resolvedImage\"&&this._isConstant(P)){let D=new yd;try{P=new Gl(P.type,P.evaluate(D))}catch(F){return this.error(F.message),null}}return P}return this.error(`Unknown expression \"${x}\". If you wanted a literal array, use [\"literal\", [...]].`,0)}return this.error(a===void 0?\"'undefined' value invalid. Use null instead.\":typeof a==\"object\"?'Bare objects invalid. Use [\"literal\", {...}] instead.':`Expected an array, but found ${typeof a} instead.`)}concat(a,h,A){let x=typeof a==\"number\"?this.path.concat(a):this.path,E=A?this.scope.concat(A):this.scope;return new vd(this.registry,this._isConstant,x,h||null,E,this.errors)}error(a,...h){let A=`${this.key}${h.map(x=>`[${x}]`).join(\"\")}`;this.errors.push(new gn(A,a))}checkSubtype(a,h){let A=Dt(a,h);return A&&this.error(A),A}}class xd{constructor(a,h,A){this.type=sa,this.locale=A,this.caseSensitive=a,this.diacriticSensitive=h}static parse(a,h){if(a.length!==2)return h.error(\"Expected one argument.\");let A=a[1];if(typeof A!=\"object\"||Array.isArray(A))return h.error(\"Collator options argument must be an object.\");let x=h.parse(A[\"case-sensitive\"]!==void 0&&A[\"case-sensitive\"],1,gr);if(!x)return null;let E=h.parse(A[\"diacritic-sensitive\"]!==void 0&&A[\"diacritic-sensitive\"],1,gr);if(!E)return null;let P=null;return A.locale&&(P=h.parse(A.locale,1,Dr),!P)?null:new xd(x,E,P)}evaluate(a){return new ka(this.caseSensitive.evaluate(a),this.diacriticSensitive.evaluate(a),this.locale?this.locale.evaluate(a):null)}eachChild(a){a(this.caseSensitive),a(this.diacriticSensitive),this.locale&&a(this.locale)}outputDefined(){return!1}}let lt=8192;function ft(u,a){u[0]=Math.min(u[0],a[0]),u[1]=Math.min(u[1],a[1]),u[2]=Math.max(u[2],a[0]),u[3]=Math.max(u[3],a[1])}function Lt(u,a){return!(u[0]<=a[0]||u[2]>=a[2]||u[1]<=a[1]||u[3]>=a[3])}function Kt(u,a){let h=(180+u[0])/360,A=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u[1]*Math.PI/360)))/360,x=Math.pow(2,a.z);return[Math.round(h*x*lt),Math.round(A*x*lt)]}function ge(u,a,h){let A=u[0]-a[0],x=u[1]-a[1],E=u[0]-h[0],P=u[1]-h[1];return A*P-E*x==0&&A*E<=0&&x*P<=0}function Qe(u,a){let h=!1;for(let P=0,D=a.length;P<D;P++){let F=a[P];for(let V=0,q=F.length;V<q-1;V++){if(ge(u,F[V],F[V+1]))return!1;(x=F[V])[1]>(A=u)[1]!=(E=F[V+1])[1]>A[1]&&A[0]<(E[0]-x[0])*(A[1]-x[1])/(E[1]-x[1])+x[0]&&(h=!h)}}var A,x,E;return h}function ti(u,a){for(let h=0;h<a.length;h++)if(Qe(u,a[h]))return!0;return!1}function is(u,a,h,A){let x=A[0]-h[0],E=A[1]-h[1],P=(u[0]-h[0])*E-x*(u[1]-h[1]),D=(a[0]-h[0])*E-x*(a[1]-h[1]);return P>0&&D<0||P<0&&D>0}function Ts(u,a,h){for(let V of h)for(let q=0;q<V.length-1;++q)if((D=[(P=V[q+1])[0]-(E=V[q])[0],P[1]-E[1]])[0]*(F=[(x=a)[0]-(A=u)[0],x[1]-A[1]])[1]-D[1]*F[0]!=0&&is(A,x,E,P)&&is(E,P,A,x))return!0;var A,x,E,P,D,F;return!1}function Vs(u,a){for(let h=0;h<u.length;++h)if(!Qe(u[h],a))return!1;for(let h=0;h<u.length-1;++h)if(Ts(u[h],u[h+1],a))return!1;return!0}function Ra(u,a){for(let h=0;h<a.length;h++)if(Vs(u,a[h]))return!0;return!1}function jm(u,a,h){let A=[];for(let x=0;x<u.length;x++){let E=[];for(let P=0;P<u[x].length;P++){let D=Kt(u[x][P],h);ft(a,D),E.push(D)}A.push(E)}return A}function Ox(u,a,h){let A=[];for(let x=0;x<u.length;x++){let E=jm(u[x],a,h);A.push(E)}return A}function Bx(u,a,h,A){if(u[0]<h[0]||u[0]>h[2]){let x=.5*A,E=u[0]-h[0]>x?-A:h[0]-u[0]>x?A:0;E===0&&(E=u[0]-h[2]>x?-A:h[2]-u[0]>x?A:0),u[0]+=E}ft(a,u)}function l_(u,a,h,A){let x=Math.pow(2,A.z)*lt,E=[A.x*lt,A.y*lt],P=[];for(let D of u)for(let F of D){let V=[F.x+E[0],F.y+E[1]];Bx(V,a,h,x),P.push(V)}return P}function c_(u,a,h,A){let x=Math.pow(2,A.z)*lt,E=[A.x*lt,A.y*lt],P=[];for(let F of u){let V=[];for(let q of F){let X=[q.x+E[0],q.y+E[1]];ft(a,X),V.push(X)}P.push(V)}if(a[2]-a[0]<=x/2){(D=a)[0]=D[1]=1/0,D[2]=D[3]=-1/0;for(let F of P)for(let V of F)Bx(V,a,h,x)}var D;return P}class gf{constructor(a,h){this.type=gr,this.geojson=a,this.geometries=h}static parse(a,h){if(a.length!==2)return h.error(`'within' expression requires exactly one argument, but found ${a.length-1} instead.`);if(jl(a[1])){let A=a[1];if(A.type===\"FeatureCollection\")for(let x=0;x<A.features.length;++x){let E=A.features[x].geometry.type;if(E===\"Polygon\"||E===\"MultiPolygon\")return new gf(A,A.features[x].geometry)}else if(A.type===\"Feature\"){let x=A.geometry.type;if(x===\"Polygon\"||x===\"MultiPolygon\")return new gf(A,A.geometry)}else if(A.type===\"Polygon\"||A.type===\"MultiPolygon\")return new gf(A,A)}return h.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\")}evaluate(a){if(a.geometry()!=null&&a.canonicalID()!=null){if(a.geometryType()===\"Point\")return function(h,A){let x=[1/0,1/0,-1/0,-1/0],E=[1/0,1/0,-1/0,-1/0],P=h.canonicalID();if(A.type===\"Polygon\"){let D=jm(A.coordinates,E,P),F=l_(h.geometry(),x,E,P);if(!Lt(x,E))return!1;for(let V of F)if(!Qe(V,D))return!1}if(A.type===\"MultiPolygon\"){let D=Ox(A.coordinates,E,P),F=l_(h.geometry(),x,E,P);if(!Lt(x,E))return!1;for(let V of F)if(!ti(V,D))return!1}return!0}(a,this.geometries);if(a.geometryType()===\"LineString\")return function(h,A){let x=[1/0,1/0,-1/0,-1/0],E=[1/0,1/0,-1/0,-1/0],P=h.canonicalID();if(A.type===\"Polygon\"){let D=jm(A.coordinates,E,P),F=c_(h.geometry(),x,E,P);if(!Lt(x,E))return!1;for(let V of F)if(!Vs(V,D))return!1}if(A.type===\"MultiPolygon\"){let D=Ox(A.coordinates,E,P),F=c_(h.geometry(),x,E,P);if(!Lt(x,E))return!1;for(let V of F)if(!Ra(V,D))return!1}return!0}(a,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}class Gm{constructor(a,h){this.type=h.type,this.name=a,this.boundExpression=h}static parse(a,h){if(a.length!==2||typeof a[1]!=\"string\")return h.error(\"'var' expression requires exactly one string literal argument.\");let A=a[1];return h.scope.has(A)?new Gm(A,h.scope.get(A)):h.error(`Unknown variable \"${A}\". Make sure \"${A}\" has been bound in an enclosing \"let\" expression before using it.`,1)}evaluate(a){return this.boundExpression.evaluate(a)}eachChild(){}outputDefined(){return!1}}class fl{constructor(a,h,A,x){this.name=a,this.type=h,this._evaluate=A,this.args=x}evaluate(a){return this._evaluate(a,this.args)}eachChild(a){this.args.forEach(a)}outputDefined(){return!1}static parse(a,h){let A=a[0],x=fl.definitions[A];if(!x)return h.error(`Unknown expression \"${A}\". If you wanted a literal array, use [\"literal\", [...]].`,0);let E=Array.isArray(x)?x[0]:x.type,P=Array.isArray(x)?[[x[1],x[2]]]:x.overloads,D=P.filter(([V])=>!Array.isArray(V)||V.length===a.length-1),F=null;for(let[V,q]of D){F=new vd(h.registry,Wm,h.path,null,h.scope);let X=[],rt=!1;for(let at=1;at<a.length;at++){let ct=a[at],mt=Array.isArray(V)?V[at-1]:V.type,bt=F.parse(ct,1+X.length,mt);if(!bt){rt=!0;break}X.push(bt)}if(!rt)if(Array.isArray(V)&&V.length!==X.length)F.error(`Expected ${V.length} arguments, but found ${X.length} instead.`);else{for(let at=0;at<X.length;at++){let ct=Array.isArray(V)?V[at]:V.type,mt=X[at];F.concat(at+1).checkSubtype(ct,mt.type)}if(F.errors.length===0)return new fl(A,E,q,X)}}if(D.length===1)h.errors.push(...F.errors);else{let V=(D.length?D:P).map(([X])=>{return rt=X,Array.isArray(rt)?`(${rt.map(xt).join(\", \")})`:`(${xt(rt.type)}...)`;var rt}).join(\" | \"),q=[];for(let X=1;X<a.length;X++){let rt=h.parse(a[X],1+q.length);if(!rt)return null;q.push(xt(rt.type))}h.error(`Expected arguments of type ${V}, but found (${q.join(\", \")}) instead.`)}return null}static register(a,h){fl.definitions=h;for(let A in h)a[A]=fl}}function Wm(u){if(u instanceof Gm)return Wm(u.boundExpression);if(u instanceof fl&&u.name===\"error\"||u instanceof xd||u instanceof gf)return!1;let a=u instanceof Wl||u instanceof rs,h=!0;return u.eachChild(A=>{h=a?h&&Wm(A):h&&A instanceof Gl}),!!h&&Hm(u)&&qm(u,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}function Hm(u){if(u instanceof fl&&(u.name===\"get\"&&u.args.length===1||u.name===\"feature-state\"||u.name===\"has\"&&u.args.length===1||u.name===\"properties\"||u.name===\"geometry-type\"||u.name===\"id\"||/^filter-/.test(u.name))||u instanceof gf)return!1;let a=!0;return u.eachChild(h=>{a&&!Hm(h)&&(a=!1)}),a}function Wp(u){if(u instanceof fl&&u.name===\"feature-state\")return!1;let a=!0;return u.eachChild(h=>{a&&!Wp(h)&&(a=!1)}),a}function qm(u,a){if(u instanceof fl&&a.indexOf(u.name)>=0)return!1;let h=!0;return u.eachChild(A=>{h&&!qm(A,a)&&(h=!1)}),h}function bd(u,a){let h=u.length-1,A,x,E=0,P=h,D=0;for(;E<=P;)if(D=Math.floor((E+P)/2),A=u[D],x=u[D+1],A<=a){if(D===h||a<x)return D;E=D+1}else{if(!(A>a))throw new cn(\"Input is not a number.\");P=D-1}return 0}class sh{constructor(a,h,A){this.type=a,this.input=h,this.labels=[],this.outputs=[];for(let[x,E]of A)this.labels.push(x),this.outputs.push(E)}static parse(a,h){if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");let A=h.parse(a[1],1,Te);if(!A)return null;let x=[],E=null;h.expectedType&&h.expectedType.kind!==\"value\"&&(E=h.expectedType);for(let P=1;P<a.length;P+=2){let D=P===1?-1/0:a[P],F=a[P+1],V=P,q=P+1;if(typeof D!=\"number\")return h.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',V);if(x.length&&x[x.length-1][0]>=D)return h.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',V);let X=h.parse(F,q,E);if(!X)return null;E=E||X.type,x.push([D,X])}return new sh(E,A,x)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;return x>=h[E-1]?A[E-1].evaluate(a):A[bd(h,x)].evaluate(a)}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function ui(u,a,h){return u+h*(a-u)}function Zm(u,a,h){return u.map((A,x)=>ui(A,a[x],h))}let Da={number:ui,color:function(u,a,h,A=\"rgb\"){switch(A){case\"rgb\":{let[x,E,P,D]=Zm(u.rgb,a.rgb,h);return new ai(x,E,P,D,!1)}case\"hcl\":{let[x,E,P,D]=u.hcl,[F,V,q,X]=a.hcl,rt,at;if(isNaN(x)||isNaN(F))isNaN(x)?isNaN(F)?rt=NaN:(rt=F,P!==1&&P!==0||(at=V)):(rt=x,q!==1&&q!==0||(at=E));else{let jt=F-x;F>x&&jt>180?jt-=360:F<x&&x-F>180&&(jt+=360),rt=x+h*jt}let[ct,mt,bt,Pt]=function([jt,Rt,Gt,Yt]){return jt=isNaN(jt)?0:jt*wr,Bi([Gt,Math.cos(jt)*Rt,Math.sin(jt)*Rt,Yt])}([rt,at??ui(E,V,h),ui(P,q,h),ui(D,X,h)]);return new ai(ct,mt,bt,Pt,!1)}case\"lab\":{let[x,E,P,D]=Bi(Zm(u.lab,a.lab,h));return new ai(x,E,P,D,!1)}}},array:Zm,padding:function(u,a,h){return new Dn(Zm(u.values,a.values,h))},variableAnchorOffsetCollection:function(u,a,h){let A=u.values,x=a.values;if(A.length!==x.length)throw new cn(`Cannot interpolate values of different length. from: ${u.toString()}, to: ${a.toString()}`);let E=[];for(let P=0;P<A.length;P+=2){if(A[P]!==x[P])throw new cn(`Cannot interpolate values containing mismatched anchors. from[${P}]: ${A[P]}, to[${P}]: ${x[P]}`);E.push(A[P]);let[D,F]=A[P+1],[V,q]=x[P+1];E.push([ui(D,V,h),ui(F,q,h)])}return new Go(E)}};class Oa{constructor(a,h,A,x,E){this.type=a,this.operator=h,this.interpolation=A,this.input=x,this.labels=[],this.outputs=[];for(let[P,D]of E)this.labels.push(P),this.outputs.push(D)}static interpolationFactor(a,h,A,x){let E=0;if(a.name===\"exponential\")E=u_(h,a.base,A,x);else if(a.name===\"linear\")E=u_(h,1,A,x);else if(a.name===\"cubic-bezier\"){let P=a.controlPoints;E=new N(P[0],P[1],P[2],P[3]).solve(u_(h,1,A,x))}return E}static parse(a,h){let[A,x,E,...P]=a;if(!Array.isArray(x)||x.length===0)return h.error(\"Expected an interpolation type expression.\",1);if(x[0]===\"linear\")x={name:\"linear\"};else if(x[0]===\"exponential\"){let V=x[1];if(typeof V!=\"number\")return h.error(\"Exponential interpolation requires a numeric base.\",1,1);x={name:\"exponential\",base:V}}else{if(x[0]!==\"cubic-bezier\")return h.error(`Unknown interpolation type ${String(x[0])}`,1,0);{let V=x.slice(1);if(V.length!==4||V.some(q=>typeof q!=\"number\"||q<0||q>1))return h.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);x={name:\"cubic-bezier\",controlPoints:V}}}if(a.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if((a.length-1)%2!=0)return h.error(\"Expected an even number of arguments.\");if(E=h.parse(E,2,Te),!E)return null;let D=[],F=null;A===\"interpolate-hcl\"||A===\"interpolate-lab\"?F=Us:h.expectedType&&h.expectedType.kind!==\"value\"&&(F=h.expectedType);for(let V=0;V<P.length;V+=2){let q=P[V],X=P[V+1],rt=V+3,at=V+4;if(typeof q!=\"number\")return h.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',rt);if(D.length&&D[D.length-1][0]>=q)return h.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',rt);let ct=h.parse(X,at,F);if(!ct)return null;F=F||ct.type,D.push([q,ct])}return ie(F,Te)||ie(F,Us)||ie(F,tt)||ie(F,ht)||ie(F,vt(Te))?new Oa(F,A,x,E,D):h.error(`Type ${xt(F)} is not interpolatable.`)}evaluate(a){let h=this.labels,A=this.outputs;if(h.length===1)return A[0].evaluate(a);let x=this.input.evaluate(a);if(x<=h[0])return A[0].evaluate(a);let E=h.length;if(x>=h[E-1])return A[E-1].evaluate(a);let P=bd(h,x),D=Oa.interpolationFactor(this.interpolation,x,h[P],h[P+1]),F=A[P].evaluate(a),V=A[P+1].evaluate(a);switch(this.operator){case\"interpolate\":return Da[this.type.kind](F,V,D);case\"interpolate-hcl\":return Da.color(F,V,D,\"hcl\");case\"interpolate-lab\":return Da.color(F,V,D,\"lab\")}}eachChild(a){a(this.input);for(let h of this.outputs)a(h)}outputDefined(){return this.outputs.every(a=>a.outputDefined())}}function u_(u,a,h,A){let x=A-h,E=u-h;return x===0?0:a===1?E/x:(Math.pow(a,E)-1)/(Math.pow(a,x)-1)}class Ym{constructor(a,h){this.type=a,this.args=h}static parse(a,h){if(a.length<2)return h.error(\"Expectected at least one argument.\");let A=null,x=h.expectedType;x&&x.kind!==\"value\"&&(A=x);let E=[];for(let D of a.slice(1)){let F=h.parse(D,1+E.length,A,void 0,{typeAnnotation:\"omit\"});if(!F)return null;A=A||F.type,E.push(F)}if(!A)throw new Error(\"No output type\");let P=x&&E.some(D=>Dt(x,D.type));return new Ym(P?Mr:A,E)}evaluate(a){let h,A=null,x=0;for(let E of this.args)if(x++,A=E.evaluate(a),A&&A instanceof Gn&&!A.available&&(h||(h=A.name),A=null,x===this.args.length&&(A=h)),A!==null)break;return A}eachChild(a){this.args.forEach(a)}outputDefined(){return this.args.every(a=>a.outputDefined())}}class Qm{constructor(a,h){this.type=h.type,this.bindings=[].concat(a),this.result=h}evaluate(a){return this.result.evaluate(a)}eachChild(a){for(let h of this.bindings)a(h[1]);a(this.result)}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found ${a.length-1} instead.`);let A=[];for(let E=1;E<a.length-1;E+=2){let P=a[E];if(typeof P!=\"string\")return h.error(`Expected string, but found ${typeof P} instead.`,E);if(/[^a-zA-Z0-9_]/.test(P))return h.error(\"Variable names must contain only alphanumeric characters or '_'.\",E);let D=h.parse(a[E+1],E+1);if(!D)return null;A.push([P,D])}let x=h.parse(a[a.length-1],a.length-1,h.expectedType,A);return x?new Qm(A,x):null}outputDefined(){return this.result.outputDefined()}}class Hp{constructor(a,h,A){this.type=a,this.index=h,this.input=A}static parse(a,h){if(a.length!==3)return h.error(`Expected 2 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Te),x=h.parse(a[2],2,vt(h.expectedType||Mr));return A&&x?new Hp(x.type.itemType,A,x):null}evaluate(a){let h=this.index.evaluate(a),A=this.input.evaluate(a);if(h<0)throw new cn(`Array index out of bounds: ${h} < 0.`);if(h>=A.length)throw new cn(`Array index out of bounds: ${h} > ${A.length-1}.`);if(h!==Math.floor(h))throw new cn(`Array index must be an integer, but found ${h} instead.`);return A[h]}eachChild(a){a(this.index),a(this.input)}outputDefined(){return!1}}class $m{constructor(a,h){this.type=gr,this.needle=a,this.haystack=h}static parse(a,h){if(a.length!==3)return h.error(`Expected 2 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Mr),x=h.parse(a[2],2,Mr);return A&&x?Mt(A.type,[gr,Dr,Te,Ca,Mr])?new $m(A,x):h.error(`Expected first argument to be of type boolean, string, number or null, but found ${xt(A.type)} instead`):null}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!A)return!1;if(!Vt(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new cn(`Expected first argument to be of type boolean, string, number or null, but found ${xt(Ki(h))} instead.`);if(!Vt(A,[\"string\",\"array\"]))throw new cn(`Expected second argument to be of type array or string, but found ${xt(Ki(A))} instead.`);return A.indexOf(h)>=0}eachChild(a){a(this.needle),a(this.haystack)}outputDefined(){return!0}}class qp{constructor(a,h,A){this.type=Te,this.needle=a,this.haystack=h,this.fromIndex=A}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Mr),x=h.parse(a[2],2,Mr);if(!A||!x)return null;if(!Mt(A.type,[gr,Dr,Te,Ca,Mr]))return h.error(`Expected first argument to be of type boolean, string, number or null, but found ${xt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,Te);return E?new qp(A,x,E):null}return new qp(A,x)}evaluate(a){let h=this.needle.evaluate(a),A=this.haystack.evaluate(a);if(!Vt(h,[\"boolean\",\"string\",\"number\",\"null\"]))throw new cn(`Expected first argument to be of type boolean, string, number or null, but found ${xt(Ki(h))} instead.`);if(!Vt(A,[\"string\",\"array\"]))throw new cn(`Expected second argument to be of type array or string, but found ${xt(Ki(A))} instead.`);if(this.fromIndex){let x=this.fromIndex.evaluate(a);return A.indexOf(h,x)}return A.indexOf(h)}eachChild(a){a(this.needle),a(this.haystack),this.fromIndex&&a(this.fromIndex)}outputDefined(){return!1}}class wd{constructor(a,h,A,x,E,P){this.inputType=a,this.type=h,this.input=A,this.cases=x,this.outputs=E,this.otherwise=P}static parse(a,h){if(a.length<5)return h.error(`Expected at least 4 arguments, but found only ${a.length-1}.`);if(a.length%2!=1)return h.error(\"Expected an even number of arguments.\");let A,x;h.expectedType&&h.expectedType.kind!==\"value\"&&(x=h.expectedType);let E={},P=[];for(let V=2;V<a.length-1;V+=2){let q=a[V],X=a[V+1];Array.isArray(q)||(q=[q]);let rt=h.concat(V);if(q.length===0)return rt.error(\"Expected at least one branch label.\");for(let ct of q){if(typeof ct!=\"number\"&&typeof ct!=\"string\")return rt.error(\"Branch labels must be numbers or strings.\");if(typeof ct==\"number\"&&Math.abs(ct)>Number.MAX_SAFE_INTEGER)return rt.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof ct==\"number\"&&Math.floor(ct)!==ct)return rt.error(\"Numeric branch labels must be integer values.\");if(A){if(rt.checkSubtype(A,Ki(ct)))return null}else A=Ki(ct);if(E[String(ct)]!==void 0)return rt.error(\"Branch labels must be unique.\");E[String(ct)]=P.length}let at=h.parse(X,V,x);if(!at)return null;x=x||at.type,P.push(at)}let D=h.parse(a[1],1,Mr);if(!D)return null;let F=h.parse(a[a.length-1],a.length-1,x);return F?D.type.kind!==\"value\"&&h.concat(1).checkSubtype(A,D.type)?null:new wd(A,x,D,E,P,F):null}evaluate(a){let h=this.input.evaluate(a);return(Ki(h)===this.inputType&&this.outputs[this.cases[h]]||this.otherwise).evaluate(a)}eachChild(a){a(this.input),this.outputs.forEach(a),a(this.otherwise)}outputDefined(){return this.outputs.every(a=>a.outputDefined())&&this.otherwise.outputDefined()}}class Zp{constructor(a,h,A){this.type=a,this.branches=h,this.otherwise=A}static parse(a,h){if(a.length<4)return h.error(`Expected at least 3 arguments, but found only ${a.length-1}.`);if(a.length%2!=0)return h.error(\"Expected an odd number of arguments.\");let A;h.expectedType&&h.expectedType.kind!==\"value\"&&(A=h.expectedType);let x=[];for(let P=1;P<a.length-1;P+=2){let D=h.parse(a[P],P,gr);if(!D)return null;let F=h.parse(a[P+1],P+1,A);if(!F)return null;x.push([D,F]),A=A||F.type}let E=h.parse(a[a.length-1],a.length-1,A);if(!E)return null;if(!A)throw new Error(\"Can't infer output type\");return new Zp(A,x,E)}evaluate(a){for(let[h,A]of this.branches)if(h.evaluate(a))return A.evaluate(a);return this.otherwise.evaluate(a)}eachChild(a){for(let[h,A]of this.branches)a(h),a(A);a(this.otherwise)}outputDefined(){return this.branches.every(([a,h])=>h.outputDefined())&&this.otherwise.outputDefined()}}class Sd{constructor(a,h,A,x){this.type=a,this.input=h,this.beginIndex=A,this.endIndex=x}static parse(a,h){if(a.length<=2||a.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${a.length-1} instead.`);let A=h.parse(a[1],1,Mr),x=h.parse(a[2],2,Te);if(!A||!x)return null;if(!Mt(A.type,[vt(Mr),Dr,Mr]))return h.error(`Expected first argument to be of type array or string, but found ${xt(A.type)} instead`);if(a.length===4){let E=h.parse(a[3],3,Te);return E?new Sd(A.type,A,x,E):null}return new Sd(A.type,A,x)}evaluate(a){let h=this.input.evaluate(a),A=this.beginIndex.evaluate(a);if(!Vt(h,[\"string\",\"array\"]))throw new cn(`Expected first argument to be of type array or string, but found ${xt(Ki(h))} instead.`);if(this.endIndex){let x=this.endIndex.evaluate(a);return h.slice(A,x)}return h.slice(A)}eachChild(a){a(this.input),a(this.beginIndex),this.endIndex&&a(this.endIndex)}outputDefined(){return!1}}function Xm(u,a){return u===\"==\"||u===\"!=\"?a.kind===\"boolean\"||a.kind===\"string\"||a.kind===\"number\"||a.kind===\"null\"||a.kind===\"value\":a.kind===\"string\"||a.kind===\"number\"||a.kind===\"value\"}function Td(u,a,h,A){return A.compare(a,h)===0}function Au(u,a,h){let A=u!==\"==\"&&u!==\"!=\";return class tU{constructor(E,P,D){this.type=gr,this.lhs=E,this.rhs=P,this.collator=D,this.hasUntypedArgument=E.type.kind===\"value\"||P.type.kind===\"value\"}static parse(E,P){if(E.length!==3&&E.length!==4)return P.error(\"Expected two or three arguments.\");let D=E[0],F=P.parse(E[1],1,Mr);if(!F)return null;if(!Xm(D,F.type))return P.concat(1).error(`\"${D}\" comparisons are not supported for type '${xt(F.type)}'.`);let V=P.parse(E[2],2,Mr);if(!V)return null;if(!Xm(D,V.type))return P.concat(2).error(`\"${D}\" comparisons are not supported for type '${xt(V.type)}'.`);if(F.type.kind!==V.type.kind&&F.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(`Cannot compare types '${xt(F.type)}' and '${xt(V.type)}'.`);A&&(F.type.kind===\"value\"&&V.type.kind!==\"value\"?F=new rs(V.type,[F]):F.type.kind!==\"value\"&&V.type.kind===\"value\"&&(V=new rs(F.type,[V])));let q=null;if(E.length===4){if(F.type.kind!==\"string\"&&V.type.kind!==\"string\"&&F.type.kind!==\"value\"&&V.type.kind!==\"value\")return P.error(\"Cannot use collator to compare non-string types.\");if(q=P.parse(E[3],3,sa),!q)return null}return new tU(F,V,q)}evaluate(E){let P=this.lhs.evaluate(E),D=this.rhs.evaluate(E);if(A&&this.hasUntypedArgument){let F=Ki(P),V=Ki(D);if(F.kind!==V.kind||F.kind!==\"string\"&&F.kind!==\"number\")throw new cn(`Expected arguments for \"${u}\" to be (string, string) or (number, number), but found (${F.kind}, ${V.kind}) instead.`)}if(this.collator&&!A&&this.hasUntypedArgument){let F=Ki(P),V=Ki(D);if(F.kind!==\"string\"||V.kind!==\"string\")return a(E,P,D)}return this.collator?h(E,P,D,this.collator.evaluate(E)):a(E,P,D)}eachChild(E){E(this.lhs),E(this.rhs),this.collator&&E(this.collator)}outputDefined(){return!0}}}let oh=Au(\"==\",function(u,a,h){return a===h},Td),Zt=Au(\"!=\",function(u,a,h){return a!==h},function(u,a,h,A){return!Td(0,a,h,A)}),fe=Au(\"<\",function(u,a,h){return a<h},function(u,a,h,A){return A.compare(a,h)<0}),Be=Au(\">\",function(u,a,h){return a>h},function(u,a,h,A){return A.compare(a,h)>0}),br=Au(\"<=\",function(u,a,h){return a<=h},function(u,a,h,A){return A.compare(a,h)<=0}),g=Au(\">=\",function(u,a,h){return a>=h},function(u,a,h,A){return A.compare(a,h)>=0});class Vi{constructor(a,h,A,x,E){this.type=Dr,this.number=a,this.locale=h,this.currency=A,this.minFractionDigits=x,this.maxFractionDigits=E}static parse(a,h){if(a.length!==3)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Te);if(!A)return null;let x=a[2];if(typeof x!=\"object\"||Array.isArray(x))return h.error(\"NumberFormat options argument must be an object.\");let E=null;if(x.locale&&(E=h.parse(x.locale,1,Dr),!E))return null;let P=null;if(x.currency&&(P=h.parse(x.currency,1,Dr),!P))return null;let D=null;if(x[\"min-fraction-digits\"]&&(D=h.parse(x[\"min-fraction-digits\"],1,Te),!D))return null;let F=null;return x[\"max-fraction-digits\"]&&(F=h.parse(x[\"max-fraction-digits\"],1,Te),!F)?null:new Vi(A,E,P,D,F)}evaluate(a){return new Intl.NumberFormat(this.locale?this.locale.evaluate(a):[],{style:this.currency?\"currency\":\"decimal\",currency:this.currency?this.currency.evaluate(a):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(a):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(a):void 0}).format(this.number.evaluate(a))}eachChild(a){a(this.number),this.locale&&a(this.locale),this.currency&&a(this.currency),this.minFractionDigits&&a(this.minFractionDigits),this.maxFractionDigits&&a(this.maxFractionDigits)}outputDefined(){return!1}}class Ti{constructor(a){this.type=gt,this.sections=a}static parse(a,h){if(a.length<2)return h.error(\"Expected at least one argument.\");let A=a[1];if(!Array.isArray(A)&&typeof A==\"object\")return h.error(\"First argument must be an image or text section.\");let x=[],E=!1;for(let P=1;P<=a.length-1;++P){let D=a[P];if(E&&typeof D==\"object\"&&!Array.isArray(D)){E=!1;let F=null;if(D[\"font-scale\"]&&(F=h.parse(D[\"font-scale\"],1,Te),!F))return null;let V=null;if(D[\"text-font\"]&&(V=h.parse(D[\"text-font\"],1,vt(Dr)),!V))return null;let q=null;if(D[\"text-color\"]&&(q=h.parse(D[\"text-color\"],1,Us),!q))return null;let X=x[x.length-1];X.scale=F,X.font=V,X.textColor=q}else{let F=h.parse(a[P],1,Mr);if(!F)return null;let V=F.type.kind;if(V!==\"string\"&&V!==\"value\"&&V!==\"null\"&&V!==\"resolvedImage\")return h.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");E=!0,x.push({content:F,scale:null,font:null,textColor:null})}}return new Ti(x)}evaluate(a){return new ln(this.sections.map(h=>{let A=h.content.evaluate(a);return Ki(A)===nt?new Dc(\"\",A,null,null,null):new Dc(_i(A),null,h.scale?h.scale.evaluate(a):null,h.font?h.font.evaluate(a).join(\",\"):null,h.textColor?h.textColor.evaluate(a):null)}))}eachChild(a){for(let h of this.sections)a(h.content),h.scale&&a(h.scale),h.font&&a(h.font),h.textColor&&a(h.textColor)}outputDefined(){return!1}}class Tt{constructor(a){this.type=nt,this.input=a}static parse(a,h){if(a.length!==2)return h.error(\"Expected two arguments.\");let A=h.parse(a[1],1,Dr);return A?new Tt(A):h.error(\"No image name provided.\")}evaluate(a){let h=this.input.evaluate(a),A=Gn.fromString(h);return A&&a.availableImages&&(A.available=a.availableImages.indexOf(h)>-1),A}eachChild(a){a(this.input)}outputDefined(){return!1}}class Ms{constructor(a){this.type=Te,this.input=a}static parse(a,h){if(a.length!==2)return h.error(`Expected 1 argument, but found ${a.length-1} instead.`);let A=h.parse(a[1],1);return A?A.type.kind!==\"array\"&&A.type.kind!==\"string\"&&A.type.kind!==\"value\"?h.error(`Expected argument of type string or array, but found ${xt(A.type)} instead.`):new Ms(A):null}evaluate(a){let h=this.input.evaluate(a);if(typeof h==\"string\"||Array.isArray(h))return h.length;throw new cn(`Expected value to be of type string or array, but found ${xt(Ki(h))} instead.`)}eachChild(a){a(this.input)}outputDefined(){return!1}}let cs={\"==\":oh,\"!=\":Zt,\">\":Be,\"<\":fe,\">=\":g,\"<=\":br,array:rs,at:Hp,boolean:rs,case:Zp,coalesce:Ym,collator:xd,format:Ti,image:Tt,in:$m,\"index-of\":qp,interpolate:Oa,\"interpolate-hcl\":Oa,\"interpolate-lab\":Oa,length:Ms,let:Qm,literal:Gl,match:wd,number:rs,\"number-format\":Vi,object:rs,slice:Sd,step:sh,string:rs,\"to-boolean\":Wl,\"to-color\":Wl,\"to-number\":Wl,\"to-string\":Wl,var:Gm,within:gf};function li(u,[a,h,A,x]){a=a.evaluate(u),h=h.evaluate(u),A=A.evaluate(u);let E=x?x.evaluate(u):1,P=So(a,h,A,E);if(P)throw new cn(P);return new ai(a/255,h/255,A/255,E,!1)}function bn(u,a){return u in a}function dl(u,a){let h=a[u];return h===void 0?null:h}function Ur(u){return{type:u}}function hi(u){return{result:\"success\",value:u}}function To(u){return{result:\"error\",value:u}}function _f(u){return u[\"property-type\"]===\"data-driven\"||u[\"property-type\"]===\"cross-faded-data-driven\"}function h_(u){return!!u.expression&&u.expression.parameters.indexOf(\"zoom\")>-1}function Md(u){return!!u.expression&&u.expression.interpolated}function qr(u){return u instanceof Number?\"number\":u instanceof String?\"string\":u instanceof Boolean?\"boolean\":Array.isArray(u)?\"array\":u===null?\"null\":typeof u}function Ji(u){return typeof u==\"object\"&&u!==null&&!Array.isArray(u)}function Oc(u){return u}function ci(u,a){let h=a.type===\"color\",A=u.stops&&typeof u.stops[0][0]==\"object\",x=A||!(A||u.property!==void 0),E=u.type||(Md(a)?\"exponential\":\"interval\");if(h||a.type===\"padding\"){let q=h?ai.parse:Dn.parse;(u=jo({},u)).stops&&(u.stops=u.stops.map(X=>[X[0],q(X[1])])),u.default=q(u.default?u.default:a.default)}if(u.colorSpace&&(P=u.colorSpace)!==\"rgb\"&&P!==\"hcl\"&&P!==\"lab\")throw new Error(`Unknown color space: \"${u.colorSpace}\"`);var P;let D,F,V;if(E===\"exponential\")D=Mi;else if(E===\"interval\")D=It;else if(E===\"categorical\"){D=Je,F=Object.create(null);for(let q of u.stops)F[q[0]]=q[1];V=typeof u.stops[0][0]}else{if(E!==\"identity\")throw new Error(`Unknown function type \"${E}\"`);D=Km}if(A){let q={},X=[];for(let ct=0;ct<u.stops.length;ct++){let mt=u.stops[ct],bt=mt[0].zoom;q[bt]===void 0&&(q[bt]={zoom:bt,type:u.type,property:u.property,default:u.default,stops:[]},X.push(bt)),q[bt].stops.push([mt[0].value,mt[1]])}let rt=[];for(let ct of X)rt.push([q[ct].zoom,ci(q[ct],a)]);let at={name:\"linear\"};return{kind:\"composite\",interpolationType:at,interpolationFactor:Oa.interpolationFactor.bind(void 0,at),zoomStops:rt.map(ct=>ct[0]),evaluate:({zoom:ct},mt)=>Mi({stops:rt,base:u.base},a,ct).evaluate(ct,mt)}}if(x){let q=E===\"exponential\"?{name:\"exponential\",base:u.base!==void 0?u.base:1}:null;return{kind:\"camera\",interpolationType:q,interpolationFactor:Oa.interpolationFactor.bind(void 0,q),zoomStops:u.stops.map(X=>X[0]),evaluate:({zoom:X})=>D(u,a,X,F,V)}}return{kind:\"source\",evaluate(q,X){let rt=X&&X.properties?X.properties[u.property]:void 0;return rt===void 0?aa(u.default,a.default):D(u,a,rt,F,V)}}}function aa(u,a,h){return u!==void 0?u:a!==void 0?a:h!==void 0?h:void 0}function Je(u,a,h,A,x){return aa(typeof h===x?A[h]:void 0,u.default,a.default)}function It(u,a,h){if(qr(h)!==\"number\")return aa(u.default,a.default);let A=u.stops.length;if(A===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[A-1][0])return u.stops[A-1][1];let x=bd(u.stops.map(E=>E[0]),h);return u.stops[x][1]}function Mi(u,a,h){let A=u.base!==void 0?u.base:1;if(qr(h)!==\"number\")return aa(u.default,a.default);let x=u.stops.length;if(x===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[x-1][0])return u.stops[x-1][1];let E=bd(u.stops.map(q=>q[0]),h),P=function(q,X,rt,at){let ct=at-rt,mt=q-rt;return ct===0?0:X===1?mt/ct:(Math.pow(X,mt)-1)/(Math.pow(X,ct)-1)}(h,A,u.stops[E][0],u.stops[E+1][0]),D=u.stops[E][1],F=u.stops[E+1][1],V=Da[a.type]||Oc;return typeof D.evaluate==\"function\"?{evaluate(...q){let X=D.evaluate.apply(void 0,q),rt=F.evaluate.apply(void 0,q);if(X!==void 0&&rt!==void 0)return V(X,rt,P,u.colorSpace)}}:V(D,F,P,u.colorSpace)}function Km(u,a,h){switch(a.type){case\"color\":h=ai.parse(h);break;case\"formatted\":h=ln.fromString(h.toString());break;case\"resolvedImage\":h=Gn.fromString(h.toString());break;case\"padding\":h=Dn.parse(h);break;default:qr(h)===a.type||a.type===\"enum\"&&a.values[h]||(h=void 0)}return aa(h,u.default,a.default)}fl.register(cs,{error:[{kind:\"error\"},[Dr],(u,[a])=>{throw new cn(a.evaluate(u))}],typeof:[Dr,[Mr],(u,[a])=>xt(Ki(a.evaluate(u)))],\"to-rgba\":[vt(Te,4),[Us],(u,[a])=>{let[h,A,x,E]=a.evaluate(u).rgb;return[255*h,255*A,255*x,E]}],rgb:[Us,[Te,Te,Te],li],rgba:[Us,[Te,Te,Te,Te],li],has:{type:gr,overloads:[[[Dr],(u,[a])=>bn(a.evaluate(u),u.properties())],[[Dr,La],(u,[a,h])=>bn(a.evaluate(u),h.evaluate(u))]]},get:{type:Mr,overloads:[[[Dr],(u,[a])=>dl(a.evaluate(u),u.properties())],[[Dr,La],(u,[a,h])=>dl(a.evaluate(u),h.evaluate(u))]]},\"feature-state\":[Mr,[Dr],(u,[a])=>dl(a.evaluate(u),u.featureState||{})],properties:[La,[],u=>u.properties()],\"geometry-type\":[Dr,[],u=>u.geometryType()],id:[Mr,[],u=>u.id()],zoom:[Te,[],u=>u.globals.zoom],\"heatmap-density\":[Te,[],u=>u.globals.heatmapDensity||0],\"line-progress\":[Te,[],u=>u.globals.lineProgress||0],accumulated:[Mr,[],u=>u.globals.accumulated===void 0?null:u.globals.accumulated],\"+\":[Te,Ur(Te),(u,a)=>{let h=0;for(let A of a)h+=A.evaluate(u);return h}],\"*\":[Te,Ur(Te),(u,a)=>{let h=1;for(let A of a)h*=A.evaluate(u);return h}],\"-\":{type:Te,overloads:[[[Te,Te],(u,[a,h])=>a.evaluate(u)-h.evaluate(u)],[[Te],(u,[a])=>-a.evaluate(u)]]},\"/\":[Te,[Te,Te],(u,[a,h])=>a.evaluate(u)/h.evaluate(u)],\"%\":[Te,[Te,Te],(u,[a,h])=>a.evaluate(u)%h.evaluate(u)],ln2:[Te,[],()=>Math.LN2],pi:[Te,[],()=>Math.PI],e:[Te,[],()=>Math.E],\"^\":[Te,[Te,Te],(u,[a,h])=>Math.pow(a.evaluate(u),h.evaluate(u))],sqrt:[Te,[Te],(u,[a])=>Math.sqrt(a.evaluate(u))],log10:[Te,[Te],(u,[a])=>Math.log(a.evaluate(u))/Math.LN10],ln:[Te,[Te],(u,[a])=>Math.log(a.evaluate(u))],log2:[Te,[Te],(u,[a])=>Math.log(a.evaluate(u))/Math.LN2],sin:[Te,[Te],(u,[a])=>Math.sin(a.evaluate(u))],cos:[Te,[Te],(u,[a])=>Math.cos(a.evaluate(u))],tan:[Te,[Te],(u,[a])=>Math.tan(a.evaluate(u))],asin:[Te,[Te],(u,[a])=>Math.asin(a.evaluate(u))],acos:[Te,[Te],(u,[a])=>Math.acos(a.evaluate(u))],atan:[Te,[Te],(u,[a])=>Math.atan(a.evaluate(u))],min:[Te,Ur(Te),(u,a)=>Math.min(...a.map(h=>h.evaluate(u)))],max:[Te,Ur(Te),(u,a)=>Math.max(...a.map(h=>h.evaluate(u)))],abs:[Te,[Te],(u,[a])=>Math.abs(a.evaluate(u))],round:[Te,[Te],(u,[a])=>{let h=a.evaluate(u);return h<0?-Math.round(-h):Math.round(h)}],floor:[Te,[Te],(u,[a])=>Math.floor(a.evaluate(u))],ceil:[Te,[Te],(u,[a])=>Math.ceil(a.evaluate(u))],\"filter-==\":[gr,[Dr,Mr],(u,[a,h])=>u.properties()[a.value]===h.value],\"filter-id-==\":[gr,[Mr],(u,[a])=>u.id()===a.value],\"filter-type-==\":[gr,[Dr],(u,[a])=>u.geometryType()===a.value],\"filter-<\":[gr,[Dr,Mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A<x}],\"filter-id-<\":[gr,[Mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h<A}],\"filter->\":[gr,[Dr,Mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>x}],\"filter-id->\":[gr,[Mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>A}],\"filter-<=\":[gr,[Dr,Mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A<=x}],\"filter-id-<=\":[gr,[Mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h<=A}],\"filter->=\":[gr,[Dr,Mr],(u,[a,h])=>{let A=u.properties()[a.value],x=h.value;return typeof A==typeof x&&A>=x}],\"filter-id->=\":[gr,[Mr],(u,[a])=>{let h=u.id(),A=a.value;return typeof h==typeof A&&h>=A}],\"filter-has\":[gr,[Mr],(u,[a])=>a.value in u.properties()],\"filter-has-id\":[gr,[],u=>u.id()!==null&&u.id()!==void 0],\"filter-type-in\":[gr,[vt(Dr)],(u,[a])=>a.value.indexOf(u.geometryType())>=0],\"filter-id-in\":[gr,[vt(Mr)],(u,[a])=>a.value.indexOf(u.id())>=0],\"filter-in-small\":[gr,[Dr,vt(Mr)],(u,[a,h])=>h.value.indexOf(u.properties()[a.value])>=0],\"filter-in-large\":[gr,[Dr,vt(Mr)],(u,[a,h])=>function(A,x,E,P){for(;E<=P;){let D=E+P>>1;if(x[D]===A)return!0;x[D]>A?P=D-1:E=D+1}return!1}(u.properties()[a.value],h.value,0,h.value.length-1)],all:{type:gr,overloads:[[[gr,gr],(u,[a,h])=>a.evaluate(u)&&h.evaluate(u)],[Ur(gr),(u,a)=>{for(let h of a)if(!h.evaluate(u))return!1;return!0}]]},any:{type:gr,overloads:[[[gr,gr],(u,[a,h])=>a.evaluate(u)||h.evaluate(u)],[Ur(gr),(u,a)=>{for(let h of a)if(h.evaluate(u))return!0;return!1}]]},\"!\":[gr,[gr],(u,[a])=>!a.evaluate(u)],\"is-supported-script\":[gr,[Dr],(u,[a])=>{let h=u.globals&&u.globals.isSupportedScript;return!h||h(a.evaluate(u))}],upcase:[Dr,[Dr],(u,[a])=>a.evaluate(u).toUpperCase()],downcase:[Dr,[Dr],(u,[a])=>a.evaluate(u).toLowerCase()],concat:[Dr,Ur(Mr),(u,a)=>a.map(h=>_i(h.evaluate(u))).join(\"\")],\"resolved-locale\":[Dr,[sa],(u,[a])=>a.evaluate(u).resolvedLocale()]});class Jm{constructor(a,h){var A;this.expression=a,this._warningHistory={},this._evaluator=new yd,this._defaultValue=h?(A=h).type===\"color\"&&Ji(A.default)?new ai(0,0,0,0):A.type===\"color\"?ai.parse(A.default)||null:A.type===\"padding\"?Dn.parse(A.default)||null:A.type===\"variableAnchorOffsetCollection\"?Go.parse(A.default)||null:A.default===void 0?null:A.default:null,this._enumValues=h&&h.type===\"enum\"?h.values:null}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._evaluator.globals=a,this._evaluator.feature=h,this._evaluator.featureState=A,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P,this.expression.evaluate(this._evaluator)}evaluate(a,h,A,x,E,P){this._evaluator.globals=a,this._evaluator.feature=h||null,this._evaluator.featureState=A||null,this._evaluator.canonical=x,this._evaluator.availableImages=E||null,this._evaluator.formattedSection=P||null;try{let D=this.expression.evaluate(this._evaluator);if(D==null||typeof D==\"number\"&&D!=D)return this._defaultValue;if(this._enumValues&&!(D in this._enumValues))throw new cn(`Expected value to be one of ${Object.keys(this._enumValues).map(F=>JSON.stringify(F)).join(\", \")}, but found ${JSON.stringify(D)} instead.`);return D}catch(D){return this._warningHistory[D.message]||(this._warningHistory[D.message]=!0,typeof console<\"u\"&&console.warn(D.message)),this._defaultValue}}}function Yp(u){return Array.isArray(u)&&u.length>0&&typeof u[0]==\"string\"&&u[0]in cs}function Qp(u,a){let h=new vd(cs,Wm,[],a?function(x){let E={color:Us,string:Dr,number:Te,enum:Dr,boolean:gr,formatted:gt,padding:tt,resolvedImage:nt,variableAnchorOffsetCollection:ht};return x.type===\"array\"?vt(E[x.value]||Mr,x.length):E[x.type]}(a):void 0),A=h.parse(u,void 0,void 0,void 0,a&&a.type===\"string\"?{typeAnnotation:\"coerce\"}:void 0);return A?hi(new Jm(A,a)):To(h.errors)}class t0{constructor(a,h){this.kind=a,this._styleExpression=h,this.isStateDependent=a!==\"constant\"&&!Wp(h.expression)}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}}class wt{constructor(a,h,A,x){this.kind=a,this.zoomStops=A,this._styleExpression=h,this.isStateDependent=a!==\"camera\"&&!Wp(h.expression),this.interpolationType=x}evaluateWithoutErrorHandling(a,h,A,x,E,P){return this._styleExpression.evaluateWithoutErrorHandling(a,h,A,x,E,P)}evaluate(a,h,A,x,E,P){return this._styleExpression.evaluate(a,h,A,x,E,P)}interpolationFactor(a,h,A){return this.interpolationType?Oa.interpolationFactor(this.interpolationType,a,h,A):0}}function e0(u,a){let h=Qp(u,a);if(h.result===\"error\")return h;let A=h.value.expression,x=Hm(A);if(!x&&!_f(a))return To([new gn(\"\",\"data expressions not supported\")]);let E=qm(A,[\"zoom\"]);if(!E&&!h_(a))return To([new gn(\"\",\"zoom expressions not supported\")]);let P=Pd(A);return P||E?P instanceof gn?To([P]):P instanceof Oa&&!Md(a)?To([new gn(\"\",'\"interpolate\" expressions cannot be used with this property')]):hi(P?new wt(x?\"camera\":\"composite\",h.value,P.labels,P instanceof Oa?P.interpolation:void 0):new t0(x?\"constant\":\"source\",h.value)):To([new gn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')])}class Ed{constructor(a,h){this._parameters=a,this._specification=h,jo(this,ci(this._parameters,this._specification))}static deserialize(a){return new Ed(a._parameters,a._specification)}static serialize(a){return{_parameters:a._parameters,_specification:a._specification}}}function Pd(u){let a=null;if(u instanceof Qm)a=Pd(u.result);else if(u instanceof Ym){for(let h of u.args)if(a=Pd(h),a)break}else(u instanceof sh||u instanceof Oa)&&u.input instanceof fl&&u.input.name===\"zoom\"&&(a=u);return a instanceof gn||u.eachChild(h=>{let A=Pd(h);A instanceof gn?a=A:!a&&A?a=new gn(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):a&&A&&a!==A&&(a=new gn(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'))}),a}function Id(u){if(u===!0||u===!1)return!0;if(!Array.isArray(u)||u.length===0)return!1;switch(u[0]){case\"has\":return u.length>=2&&u[1]!==\"$id\"&&u[1]!==\"$type\";case\"in\":return u.length>=3&&(typeof u[1]!=\"string\"||Array.isArray(u[2]));case\"!in\":case\"!has\":case\"none\":return!1;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return u.length!==3||Array.isArray(u[1])||Array.isArray(u[2]);case\"any\":case\"all\":for(let a of u.slice(1))if(!Id(a)&&typeof a!=\"boolean\")return!1;return!0;default:return!0}}let Fx={type:\"boolean\",default:!1,transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function r0(u){if(u==null)return{filter:()=>!0,needGeometry:!1};Id(u)||(u=yf(u));let a=Qp(u,Fx);if(a.result===\"error\")throw new Error(a.value.map(h=>`${h.key}: ${h.message}`).join(\", \"));return{filter:(h,A,x)=>a.value.evaluate(h,A,{},x),needGeometry:d_(u)}}function f_(u,a){return u<a?-1:u>a?1:0}function d_(u){if(!Array.isArray(u))return!1;if(u[0]===\"within\")return!0;for(let a=1;a<u.length;a++)if(d_(u[a]))return!0;return!1}function yf(u){if(!u)return!0;let a=u[0];return u.length<=1?a!==\"any\":a===\"==\"?Ba(u[1],u[2],\"==\"):a===\"!=\"?Cd(Ba(u[1],u[2],\"==\")):a===\"<\"||a===\">\"||a===\"<=\"||a===\">=\"?Ba(u[1],u[2],a):a===\"any\"?(h=u.slice(1),[\"any\"].concat(h.map(yf))):a===\"all\"?[\"all\"].concat(u.slice(1).map(yf)):a===\"none\"?[\"all\"].concat(u.slice(1).map(yf).map(Cd)):a===\"in\"?Wn(u[1],u.slice(2)):a===\"!in\"?Cd(Wn(u[1],u.slice(2))):a===\"has\"?p_(u[1]):a===\"!has\"?Cd(p_(u[1])):a!==\"within\"||u;var h}function Ba(u,a,h){switch(u){case\"$type\":return[`filter-type-${h}`,a];case\"$id\":return[`filter-id-${h}`,a];default:return[`filter-${h}`,u,a]}}function Wn(u,a){if(a.length===0)return!1;switch(u){case\"$type\":return[\"filter-type-in\",[\"literal\",a]];case\"$id\":return[\"filter-id-in\",[\"literal\",a]];default:return a.length>200&&!a.some(h=>typeof h!=typeof a[0])?[\"filter-in-large\",u,[\"literal\",a.sort(f_)]]:[\"filter-in-small\",u,[\"literal\",a]]}}function p_(u){switch(u){case\"$type\":return!0;case\"$id\":return[\"filter-has-id\"];default:return[\"filter-has\",u]}}function Cd(u){return[\"!\",u]}function $p(u){let a=typeof u;if(a===\"number\"||a===\"boolean\"||a===\"string\"||u==null)return JSON.stringify(u);if(Array.isArray(u)){let x=\"[\";for(let E of u)x+=`${$p(E)},`;return`${x}]`}let h=Object.keys(u).sort(),A=\"{\";for(let x=0;x<h.length;x++)A+=`${JSON.stringify(h[x])}:${$p(u[h[x]])},`;return`${A}}`}function Xp(u){let a=\"\";for(let h of ls)a+=`/${$p(u[h])}`;return a}function i0(u){let a=u.value;return a?[new ve(u.key,a,\"constants have been deprecated as of v8\")]:[]}function Cn(u){return u instanceof Number||u instanceof String||u instanceof Boolean?u.valueOf():u}function ah(u){if(Array.isArray(u))return u.map(ah);if(u instanceof Object&&!(u instanceof Number||u instanceof String||u instanceof Boolean)){let a={};for(let h in u)a[h]=ah(u[h]);return a}return Cn(u)}function fi(u){let a=u.key,h=u.value,A=u.valueSpec||{},x=u.objectElementValidators||{},E=u.style,P=u.styleSpec,D=u.validateSpec,F=[],V=qr(h);if(V!==\"object\")return[new ve(a,h,`object expected, ${V} found`)];for(let q in h){let X=q.split(\".\")[0],rt=A[X]||A[\"*\"],at;if(x[X])at=x[X];else if(A[X])at=D;else if(x[\"*\"])at=x[\"*\"];else{if(!A[\"*\"]){F.push(new ve(a,h[q],`unknown property \"${q}\"`));continue}at=D}F=F.concat(at({key:(a&&`${a}.`)+q,value:h[q],valueSpec:rt,style:E,styleSpec:P,object:h,objectKey:q,validateSpec:D},h))}for(let q in A)x[q]||A[q].required&&A[q].default===void 0&&h[q]===void 0&&F.push(new ve(a,h,`missing required property \"${q}\"`));return F}function mu(u){let a=u.value,h=u.valueSpec,A=u.style,x=u.styleSpec,E=u.key,P=u.arrayElementValidator||u.validateSpec;if(qr(a)!==\"array\")return[new ve(E,a,`array expected, ${qr(a)} found`)];if(h.length&&a.length!==h.length)return[new ve(E,a,`array length ${h.length} expected, length ${a.length} found`)];if(h[\"min-length\"]&&a.length<h[\"min-length\"])return[new ve(E,a,`array length at least ${h[\"min-length\"]} expected, length ${a.length} found`)];let D={type:h.value,values:h.values};x.$version<7&&(D.function=h.function),qr(h.value)===\"object\"&&(D=h.value);let F=[];for(let V=0;V<a.length;V++)F=F.concat(P({array:a,arrayIndex:V,value:a[V],valueSpec:D,validateSpec:u.validateSpec,style:A,styleSpec:x,key:`${E}[${V}]`}));return F}function vf(u){let a=u.key,h=u.value,A=u.valueSpec,x=qr(h);return x===\"number\"&&h!=h&&(x=\"NaN\"),x!==\"number\"?[new ve(a,h,`number expected, ${x} found`)]:\"minimum\"in A&&h<A.minimum?[new ve(a,h,`${h} is less than the minimum value ${A.minimum}`)]:\"maximum\"in A&&h>A.maximum?[new ve(a,h,`${h} is greater than the maximum value ${A.maximum}`)]:[]}function Kp(u){let a=u.valueSpec,h=Cn(u.value.type),A,x,E,P={},D=h!==\"categorical\"&&u.value.property===void 0,F=!D,V=qr(u.value.stops)===\"array\"&&qr(u.value.stops[0])===\"array\"&&qr(u.value.stops[0][0])===\"object\",q=fi({key:u.key,value:u.value,valueSpec:u.styleSpec.function,validateSpec:u.validateSpec,style:u.style,styleSpec:u.styleSpec,objectElementValidators:{stops:function(at){if(h===\"identity\")return[new ve(at.key,at.value,'identity function may not have a \"stops\" property')];let ct=[],mt=at.value;return ct=ct.concat(mu({key:at.key,value:mt,valueSpec:at.valueSpec,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec,arrayElementValidator:X})),qr(mt)===\"array\"&&mt.length===0&&ct.push(new ve(at.key,mt,\"array must have at least one stop\")),ct},default:function(at){return at.validateSpec({key:at.key,value:at.value,valueSpec:a,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec})}}});return h===\"identity\"&&D&&q.push(new ve(u.key,u.value,'missing required property \"property\"')),h===\"identity\"||u.value.stops||q.push(new ve(u.key,u.value,'missing required property \"stops\"')),h===\"exponential\"&&u.valueSpec.expression&&!Md(u.valueSpec)&&q.push(new ve(u.key,u.value,\"exponential functions not supported\")),u.styleSpec.$version>=8&&(F&&!_f(u.valueSpec)?q.push(new ve(u.key,u.value,\"property functions not supported\")):D&&!h_(u.valueSpec)&&q.push(new ve(u.key,u.value,\"zoom functions not supported\"))),h!==\"categorical\"&&!V||u.value.property!==void 0||q.push(new ve(u.key,u.value,'\"property\" property is required')),q;function X(at){let ct=[],mt=at.value,bt=at.key;if(qr(mt)!==\"array\")return[new ve(bt,mt,`array expected, ${qr(mt)} found`)];if(mt.length!==2)return[new ve(bt,mt,`array length 2 expected, length ${mt.length} found`)];if(V){if(qr(mt[0])!==\"object\")return[new ve(bt,mt,`object expected, ${qr(mt[0])} found`)];if(mt[0].zoom===void 0)return[new ve(bt,mt,\"object stop key must have zoom\")];if(mt[0].value===void 0)return[new ve(bt,mt,\"object stop key must have value\")];if(E&&E>Cn(mt[0].zoom))return[new ve(bt,mt[0].zoom,\"stop zoom values must appear in ascending order\")];Cn(mt[0].zoom)!==E&&(E=Cn(mt[0].zoom),x=void 0,P={}),ct=ct.concat(fi({key:`${bt}[0]`,value:mt[0],valueSpec:{zoom:{}},validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec,objectElementValidators:{zoom:vf,value:rt}}))}else ct=ct.concat(rt({key:`${bt}[0]`,value:mt[0],valueSpec:{},validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec},mt));return Yp(ah(mt[1]))?ct.concat([new ve(`${bt}[1]`,mt[1],\"expressions are not allowed in function stops.\")]):ct.concat(at.validateSpec({key:`${bt}[1]`,value:mt[1],valueSpec:a,validateSpec:at.validateSpec,style:at.style,styleSpec:at.styleSpec}))}function rt(at,ct){let mt=qr(at.value),bt=Cn(at.value),Pt=at.value!==null?at.value:ct;if(A){if(mt!==A)return[new ve(at.key,Pt,`${mt} stop domain type must match previous stop domain type ${A}`)]}else A=mt;if(mt!==\"number\"&&mt!==\"string\"&&mt!==\"boolean\")return[new ve(at.key,Pt,\"stop domain value must be a number, string, or boolean\")];if(mt!==\"number\"&&h!==\"categorical\"){let jt=`number expected, ${mt} found`;return _f(a)&&h===void 0&&(jt+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new ve(at.key,Pt,jt)]}return h!==\"categorical\"||mt!==\"number\"||isFinite(bt)&&Math.floor(bt)===bt?h!==\"categorical\"&&mt===\"number\"&&x!==void 0&&bt<x?[new ve(at.key,Pt,\"stop domain values must appear in ascending order\")]:(x=bt,h===\"categorical\"&&bt in P?[new ve(at.key,Pt,\"stop domain values must be unique\")]:(P[bt]=!0,[])):[new ve(at.key,Pt,`integer expected, found ${bt}`)]}}function lh(u){let a=(u.expressionContext===\"property\"?e0:Qp)(ah(u.value),u.valueSpec);if(a.result===\"error\")return a.value.map(A=>new ve(`${u.key}${A.key}`,u.value,A.message));let h=a.value.expression||a.value._styleExpression.expression;if(u.expressionContext===\"property\"&&u.propertyKey===\"text-font\"&&!h.outputDefined())return[new ve(u.key,u.value,`Invalid data expression for \"${u.propertyKey}\". Output values must be contained as literals within the expression.`)];if(u.expressionContext===\"property\"&&u.propertyType===\"layout\"&&!Wp(h))return[new ve(u.key,u.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(u.expressionContext===\"filter\"&&!Wp(h))return[new ve(u.key,u.value,'\"feature-state\" data expressions are not supported with filters.')];if(u.expressionContext&&u.expressionContext.indexOf(\"cluster\")===0){if(!qm(h,[\"zoom\",\"feature-state\"]))return[new ve(u.key,u.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(u.expressionContext===\"cluster-initial\"&&!Hm(h))return[new ve(u.key,u.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return[]}function Ld(u){let a=u.key,h=u.value,A=u.valueSpec,x=[];return Array.isArray(A.values)?A.values.indexOf(Cn(h))===-1&&x.push(new ve(a,h,`expected one of [${A.values.join(\", \")}], ${JSON.stringify(h)} found`)):Object.keys(A.values).indexOf(Cn(h))===-1&&x.push(new ve(a,h,`expected one of [${Object.keys(A.values).join(\", \")}], ${JSON.stringify(h)} found`)),x}function ch(u){return Id(ah(u.value))?lh(jo({},u,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):Jp(u)}function Jp(u){let a=u.value,h=u.key;if(qr(a)!==\"array\")return[new ve(h,a,`array expected, ${qr(a)} found`)];let A=u.styleSpec,x,E=[];if(a.length<1)return[new ve(h,a,\"filter array must have at least 1 element\")];switch(E=E.concat(Ld({key:`${h}[0]`,value:a[0],valueSpec:A.filter_operator,style:u.style,styleSpec:u.styleSpec})),Cn(a[0])){case\"<\":case\"<=\":case\">\":case\">=\":a.length>=2&&Cn(a[1])===\"$type\"&&E.push(new ve(h,a,`\"$type\" cannot be use with operator \"${a[0]}\"`));case\"==\":case\"!=\":a.length!==3&&E.push(new ve(h,a,`filter array for operator \"${a[0]}\" must have 3 elements`));case\"in\":case\"!in\":a.length>=2&&(x=qr(a[1]),x!==\"string\"&&E.push(new ve(`${h}[1]`,a[1],`string expected, ${x} found`)));for(let P=2;P<a.length;P++)x=qr(a[P]),Cn(a[1])===\"$type\"?E=E.concat(Ld({key:`${h}[${P}]`,value:a[P],valueSpec:A.geometry_type,style:u.style,styleSpec:u.styleSpec})):x!==\"string\"&&x!==\"number\"&&x!==\"boolean\"&&E.push(new ve(`${h}[${P}]`,a[P],`string, number, or boolean expected, ${x} found`));break;case\"any\":case\"all\":case\"none\":for(let P=1;P<a.length;P++)E=E.concat(Jp({key:`${h}[${P}]`,value:a[P],style:u.style,styleSpec:u.styleSpec}));break;case\"has\":case\"!has\":x=qr(a[1]),a.length!==2?E.push(new ve(h,a,`filter array for \"${a[0]}\" operator must have 2 elements`)):x!==\"string\"&&E.push(new ve(`${h}[1]`,a[1],`string expected, ${x} found`));break;case\"within\":x=qr(a[1]),a.length!==2?E.push(new ve(h,a,`filter array for \"${a[0]}\" operator must have 2 elements`)):x!==\"object\"&&E.push(new ve(`${h}[1]`,a[1],`object expected, ${x} found`))}return E}function tA(u,a){let h=u.key,A=u.validateSpec,x=u.style,E=u.styleSpec,P=u.value,D=u.objectKey,F=E[`${a}_${u.layerType}`];if(!F)return[];let V=D.match(/^(.*)-transition$/);if(a===\"paint\"&&V&&F[V[1]]&&F[V[1]].transition)return A({key:h,value:P,valueSpec:E.transition,style:x,styleSpec:E});let q=u.valueSpec||F[D];if(!q)return[new ve(h,P,`unknown property \"${D}\"`)];let X;if(qr(P)===\"string\"&&_f(q)&&!q.tokens&&(X=/^{([^}]+)}$/.exec(P)))return[new ve(h,P,`\"${D}\" does not support interpolation syntax\nUse an identity property function instead: \\`{ \"type\": \"identity\", \"property\": ${JSON.stringify(X[1])} }\\`.`)];let rt=[];return u.layerType===\"symbol\"&&(D===\"text-field\"&&x&&!x.glyphs&&rt.push(new ve(h,P,'use of \"text-field\" requires a style \"glyphs\" property')),D===\"text-font\"&&Ji(ah(P))&&Cn(P.type)===\"identity\"&&rt.push(new ve(h,P,'\"text-font\" does not support identity functions'))),rt.concat(A({key:u.key,value:P,valueSpec:q,style:x,styleSpec:E,expressionContext:\"property\",propertyType:a,propertyKey:D}))}function A_(u){return tA(u,\"paint\")}function m_(u){return tA(u,\"layout\")}function n0(u){let a=[],h=u.value,A=u.key,x=u.style,E=u.styleSpec;h.type||h.ref||a.push(new ve(A,h,'either \"type\" or \"ref\" is required'));let P=Cn(h.type),D=Cn(h.ref);if(h.id){let F=Cn(h.id);for(let V=0;V<u.arrayIndex;V++){let q=x.layers[V];Cn(q.id)===F&&a.push(new ve(A,h.id,`duplicate layer id \"${h.id}\", previously used at line ${q.id.__line__}`))}}if(\"ref\"in h){let F;[\"type\",\"source\",\"source-layer\",\"filter\",\"layout\"].forEach(V=>{V in h&&a.push(new ve(A,h[V],`\"${V}\" is prohibited for ref layers`))}),x.layers.forEach(V=>{Cn(V.id)===D&&(F=V)}),F?F.ref?a.push(new ve(A,h.ref,\"ref cannot reference another ref layer\")):P=Cn(F.type):a.push(new ve(A,h.ref,`ref layer \"${D}\" not found`))}else if(P!==\"background\")if(h.source){let F=x.sources&&x.sources[h.source],V=F&&Cn(F.type);F?V===\"vector\"&&P===\"raster\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a raster source`)):V!==\"raster-dem\"&&P===\"hillshade\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a raster-dem source`)):V===\"raster\"&&P!==\"raster\"?a.push(new ve(A,h.source,`layer \"${h.id}\" requires a vector source`)):V!==\"vector\"||h[\"source-layer\"]?V===\"raster-dem\"&&P!==\"hillshade\"?a.push(new ve(A,h.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):P!==\"line\"||!h.paint||!h.paint[\"line-gradient\"]||V===\"geojson\"&&F.lineMetrics||a.push(new ve(A,h,`layer \"${h.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):a.push(new ve(A,h,`layer \"${h.id}\" must specify a \"source-layer\"`)):a.push(new ve(A,h.source,`source \"${h.source}\" not found`))}else a.push(new ve(A,h,'missing required property \"source\"'));return a=a.concat(fi({key:A,value:h,valueSpec:E.layer,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,objectElementValidators:{\"*\":()=>[],type:()=>u.validateSpec({key:`${A}.type`,value:h.type,valueSpec:E.layer.type,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,object:h,objectKey:\"type\"}),filter:ch,layout:F=>fi({layer:h,key:F.key,value:F.value,style:F.style,styleSpec:F.styleSpec,validateSpec:F.validateSpec,objectElementValidators:{\"*\":V=>m_(jo({layerType:P},V))}}),paint:F=>fi({layer:h,key:F.key,value:F.value,style:F.style,styleSpec:F.styleSpec,validateSpec:F.validateSpec,objectElementValidators:{\"*\":V=>A_(jo({layerType:P},V))}})}})),a}function pl(u){let a=u.value,h=u.key,A=qr(a);return A!==\"string\"?[new ve(h,a,`string expected, ${A} found`)]:[]}let uh={promoteId:function({key:u,value:a}){if(qr(a)===\"string\")return pl({key:u,value:a});{let h=[];for(let A in a)h.push(...pl({key:`${u}.${A}`,value:a[A]}));return h}}};function la(u){let a=u.value,h=u.key,A=u.styleSpec,x=u.style,E=u.validateSpec;if(!a.type)return[new ve(h,a,'\"type\" is required')];let P=Cn(a.type),D;switch(P){case\"vector\":case\"raster\":return D=fi({key:h,value:a,valueSpec:A[`source_${P.replace(\"-\",\"_\")}`],style:u.style,styleSpec:A,objectElementValidators:uh,validateSpec:E}),D;case\"raster-dem\":return D=function(F){var V;let q=(V=F.sourceName)!==null&&V!==void 0?V:\"\",X=F.value,rt=F.styleSpec,at=rt.source_raster_dem,ct=F.style,mt=[],bt=qr(X);if(X===void 0)return mt;if(bt!==\"object\")return mt.push(new ve(\"source_raster_dem\",X,`object expected, ${bt} found`)),mt;let Pt=Cn(X.encoding)===\"custom\",jt=[\"redFactor\",\"greenFactor\",\"blueFactor\",\"baseShift\"],Rt=F.value.encoding?`\"${F.value.encoding}\"`:\"Default\";for(let Gt in X)!Pt&&jt.includes(Gt)?mt.push(new ve(Gt,X[Gt],`In \"${q}\": \"${Gt}\" is only valid when \"encoding\" is set to \"custom\". ${Rt} encoding found`)):at[Gt]?mt=mt.concat(F.validateSpec({key:Gt,value:X[Gt],valueSpec:at[Gt],validateSpec:F.validateSpec,style:ct,styleSpec:rt})):mt.push(new ve(Gt,X[Gt],`unknown property \"${Gt}\"`));return mt}({sourceName:h,value:a,style:u.style,styleSpec:A,validateSpec:E}),D;case\"geojson\":if(D=fi({key:h,value:a,valueSpec:A.source_geojson,style:x,styleSpec:A,validateSpec:E,objectElementValidators:uh}),a.cluster)for(let F in a.clusterProperties){let[V,q]=a.clusterProperties[F],X=typeof V==\"string\"?[V,[\"accumulated\"],[\"get\",F]]:V;D.push(...lh({key:`${h}.${F}.map`,value:q,validateSpec:E,expressionContext:\"cluster-map\"})),D.push(...lh({key:`${h}.${F}.reduce`,value:X,validateSpec:E,expressionContext:\"cluster-reduce\"}))}return D;case\"video\":return fi({key:h,value:a,valueSpec:A.source_video,style:x,validateSpec:E,styleSpec:A});case\"image\":return fi({key:h,value:a,valueSpec:A.source_image,style:x,validateSpec:E,styleSpec:A});case\"canvas\":return[new ve(h,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Ld({key:`${h}.type`,value:a.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:x,validateSpec:E,styleSpec:A})}}function kd(u){let a=u.value,h=u.styleSpec,A=h.light,x=u.style,E=[],P=qr(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new ve(\"light\",a,`object expected, ${P} found`)]),E;for(let D in a){let F=D.match(/^(.*)-transition$/);E=E.concat(F&&A[F[1]]&&A[F[1]].transition?u.validateSpec({key:D,value:a[D],valueSpec:h.transition,validateSpec:u.validateSpec,style:x,styleSpec:h}):A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new ve(D,a[D],`unknown property \"${D}\"`)])}return E}function g_(u){let a=u.value,h=u.styleSpec,A=h.terrain,x=u.style,E=[],P=qr(a);if(a===void 0)return E;if(P!==\"object\")return E=E.concat([new ve(\"terrain\",a,`object expected, ${P} found`)]),E;for(let D in a)E=E.concat(A[D]?u.validateSpec({key:D,value:a[D],valueSpec:A[D],validateSpec:u.validateSpec,style:x,styleSpec:h}):[new ve(D,a[D],`unknown property \"${D}\"`)]);return E}function js(u){let a=[],h=u.value,A=u.key;if(Array.isArray(h)){let x=[],E=[];for(let P in h)h[P].id&&x.includes(h[P].id)&&a.push(new ve(A,h,`all the sprites' ids must be unique, but ${h[P].id} is duplicated`)),x.push(h[P].id),h[P].url&&E.includes(h[P].url)&&a.push(new ve(A,h,`all the sprites' URLs must be unique, but ${h[P].url} is duplicated`)),E.push(h[P].url),a=a.concat(fi({key:`${A}[${P}]`,value:h[P],valueSpec:{id:{type:\"string\",required:!0},url:{type:\"string\",required:!0}},validateSpec:u.validateSpec}));return a}return pl({key:A,value:h})}let gu={\"*\":()=>[],array:mu,boolean:function(u){let a=u.value,h=u.key,A=qr(a);return A!==\"boolean\"?[new ve(h,a,`boolean expected, ${A} found`)]:[]},number:vf,color:function(u){let a=u.key,h=u.value,A=qr(h);return A!==\"string\"?[new ve(a,h,`color expected, ${A} found`)]:ai.parse(String(h))?[]:[new ve(a,h,`color expected, \"${h}\" found`)]},constants:i0,enum:Ld,filter:ch,function:Kp,layer:n0,object:fi,source:la,light:kd,terrain:g_,string:pl,formatted:function(u){return pl(u).length===0?[]:lh(u)},resolvedImage:function(u){return pl(u).length===0?[]:lh(u)},padding:function(u){let a=u.key,h=u.value;if(qr(h)===\"array\"){if(h.length<1||h.length>4)return[new ve(a,h,`padding requires 1 to 4 values; ${h.length} values found`)];let A={type:\"number\"},x=[];for(let E=0;E<h.length;E++)x=x.concat(u.validateSpec({key:`${a}[${E}]`,value:h[E],validateSpec:u.validateSpec,valueSpec:A}));return x}return vf({key:a,value:h,valueSpec:{}})},variableAnchorOffsetCollection:function(u){let a=u.key,h=u.value,A=qr(h),x=u.styleSpec;if(A!==\"array\"||h.length<1||h.length%2!=0)return[new ve(a,h,\"variableAnchorOffsetCollection requires a non-empty array of even length\")];let E=[];for(let P=0;P<h.length;P+=2)E=E.concat(Ld({key:`${a}[${P}]`,value:h[P],valueSpec:x.layout_symbol[\"text-anchor\"]})),E=E.concat(mu({key:`${a}[${P+1}]`,value:h[P+1],valueSpec:{length:2,value:\"number\"},validateSpec:u.validateSpec,style:u.style,styleSpec:x}));return E},sprite:js};function Ln(u){let a=u.value,h=u.valueSpec,A=u.styleSpec;return u.validateSpec=Ln,h.expression&&Ji(Cn(a))?Kp(u):h.expression&&Yp(ah(a))?lh(u):h.type&&gu[h.type]?gu[h.type](u):fi(jo({},u,{valueSpec:h.type?A[h.type]:h}))}function eA(u){let a=u.value,h=u.key,A=pl(u);return A.length||(a.indexOf(\"{fontstack}\")===-1&&A.push(new ve(h,a,'\"glyphs\" url must include a \"{fontstack}\" token')),a.indexOf(\"{range}\")===-1&&A.push(new ve(h,a,'\"glyphs\" url must include a \"{range}\" token'))),A}function ca(u,a=ee){let h=[];return h=h.concat(Ln({key:\"\",value:u,valueSpec:a.$root,styleSpec:a,style:u,validateSpec:Ln,objectElementValidators:{glyphs:eA,\"*\":()=>[]}})),u.constants&&(h=h.concat(i0({key:\"constants\",value:u.constants,style:u,styleSpec:a,validateSpec:Ln}))),Rd(h)}function Fa(u){return function(a){return u({...a,validateSpec:Ln})}}function Rd(u){return[].concat(u).sort((a,h)=>a.line-h.line)}function Al(u){return function(...a){return Rd(u.apply(this,a))}}ca.source=Al(Fa(la)),ca.sprite=Al(Fa(js)),ca.glyphs=Al(Fa(eA)),ca.light=Al(Fa(kd)),ca.terrain=Al(Fa(g_)),ca.layer=Al(Fa(n0)),ca.filter=Al(Fa(ch)),ca.paintProperty=Al(Fa(A_)),ca.layoutProperty=Al(Fa(m_));let za=ca,hh=za.light,rA=za.paintProperty,s0=za.layoutProperty;function fh(u,a){let h=!1;if(a&&a.length)for(let A of a)u.fire(new ao(new Error(A.message))),h=!0;return h}class Na{constructor(a,h,A){let x=this.cells=[];if(a instanceof ArrayBuffer){this.arrayBuffer=a;let P=new Int32Array(this.arrayBuffer);a=P[0],this.d=(h=P[1])+2*(A=P[2]);for(let F=0;F<this.d*this.d;F++){let V=P[3+F],q=P[3+F+1];x.push(V===q?null:P.subarray(V,q))}let D=P[3+x.length+1];this.keys=P.subarray(P[3+x.length],D),this.bboxes=P.subarray(D),this.insert=this._insertReadonly}else{this.d=h+2*A;for(let P=0;P<this.d*this.d;P++)x.push([]);this.keys=[],this.bboxes=[]}this.n=h,this.extent=a,this.padding=A,this.scale=h/a,this.uid=0;let E=A/h*a;this.min=-E,this.max=a+E}insert(a,h,A,x,E){this._forEachCell(h,A,x,E,this._insertCell,this.uid++,void 0,void 0),this.keys.push(a),this.bboxes.push(h),this.bboxes.push(A),this.bboxes.push(x),this.bboxes.push(E)}_insertReadonly(){throw new Error(\"Cannot insert into a GridIndex created from an ArrayBuffer.\")}_insertCell(a,h,A,x,E,P){this.cells[E].push(P)}query(a,h,A,x,E){let P=this.min,D=this.max;if(a<=P&&h<=P&&D<=A&&D<=x&&!E)return Array.prototype.slice.call(this.keys);{let F=[];return this._forEachCell(a,h,A,x,this._queryCell,F,{},E),F}}_queryCell(a,h,A,x,E,P,D,F){let V=this.cells[E];if(V!==null){let q=this.keys,X=this.bboxes;for(let rt=0;rt<V.length;rt++){let at=V[rt];if(D[at]===void 0){let ct=4*at;(F?F(X[ct+0],X[ct+1],X[ct+2],X[ct+3]):a<=X[ct+2]&&h<=X[ct+3]&&A>=X[ct+0]&&x>=X[ct+1])?(D[at]=!0,P.push(q[at])):D[at]=!1}}}}_forEachCell(a,h,A,x,E,P,D,F){let V=this._convertToCellCoord(a),q=this._convertToCellCoord(h),X=this._convertToCellCoord(A),rt=this._convertToCellCoord(x);for(let at=V;at<=X;at++)for(let ct=q;ct<=rt;ct++){let mt=this.d*ct+at;if((!F||F(this._convertFromCellCoord(at),this._convertFromCellCoord(ct),this._convertFromCellCoord(at+1),this._convertFromCellCoord(ct+1)))&&E.call(this,a,h,A,x,mt,P,D,F))return}}_convertFromCellCoord(a){return(a-this.padding)/this.scale}_convertToCellCoord(a){return Math.max(0,Math.min(this.d-1,Math.floor(a*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let a=this.cells,h=3+this.cells.length+1+1,A=0;for(let P=0;P<this.cells.length;P++)A+=this.cells[P].length;let x=new Int32Array(h+A+this.keys.length+this.bboxes.length);x[0]=this.extent,x[1]=this.n,x[2]=this.padding;let E=h;for(let P=0;P<a.length;P++){let D=a[P];x[3+P]=E,x.set(D,E),E+=D.length}return x[3+a.length]=E,x.set(this.keys,E),E+=this.keys.length,x[3+a.length+1]=E,x.set(this.bboxes,E),E+=this.bboxes.length,x.buffer}static serialize(a,h){let A=a.toArrayBuffer();return h&&h.push(A),{buffer:A}}static deserialize(a){return new Na(a.buffer)}}let co={};function Ge(u,a,h={}){if(co[u])throw new Error(`${u} is already registered.`);Object.defineProperty(a,\"_classRegistryKey\",{value:u,writeable:!1}),co[u]={klass:a,omit:h.omit||[],shallow:h.shallow||[]}}Ge(\"Object\",Object),Ge(\"TransferableGridIndex\",Na),Ge(\"Color\",ai),Ge(\"Error\",Error),Ge(\"AJAXError\",Xi),Ge(\"ResolvedImage\",Gn),Ge(\"StylePropertyFunction\",Ed),Ge(\"StyleExpression\",Jm,{omit:[\"_evaluator\"]}),Ge(\"ZoomDependentExpression\",wt),Ge(\"ZoomConstantExpression\",t0),Ge(\"CompoundExpression\",fl,{omit:[\"_evaluate\"]});for(let u in cs)cs[u]._classRegistryKey||Ge(`Expression_${u}`,cs[u]);function Dd(u){return u&&typeof ArrayBuffer<\"u\"&&(u instanceof ArrayBuffer||u.constructor&&u.constructor.name===\"ArrayBuffer\")}function Hl(u,a){if(u==null||typeof u==\"boolean\"||typeof u==\"number\"||typeof u==\"string\"||u instanceof Boolean||u instanceof Number||u instanceof String||u instanceof Date||u instanceof RegExp||u instanceof Blob)return u;if(Dd(u)||zl(u))return a&&a.push(u),u;if(ArrayBuffer.isView(u)){let h=u;return a&&a.push(h.buffer),h}if(u instanceof ImageData)return a&&a.push(u.data.buffer),u;if(Array.isArray(u)){let h=[];for(let A of u)h.push(Hl(A,a));return h}if(typeof u==\"object\"){let h=u.constructor,A=h._classRegistryKey;if(!A)throw new Error(\"can't serialize object of unregistered class\");if(!co[A])throw new Error(`${A} is not registered.`);let x=h.serialize?h.serialize(u,a):{};if(h.serialize){if(a&&x===a[a.length-1])throw new Error(\"statically serialized object won't survive transfer of $name property\")}else{for(let E in u){if(!u.hasOwnProperty(E)||co[A].omit.indexOf(E)>=0)continue;let P=u[E];x[E]=co[A].shallow.indexOf(E)>=0?P:Hl(P,a)}u instanceof Error&&(x.message=u.message)}if(x.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return A!==\"Object\"&&(x.$name=A),x}throw new Error(\"can't serialize object of type \"+typeof u)}function xf(u){if(u==null||typeof u==\"boolean\"||typeof u==\"number\"||typeof u==\"string\"||u instanceof Boolean||u instanceof Number||u instanceof String||u instanceof Date||u instanceof RegExp||u instanceof Blob||Dd(u)||zl(u)||ArrayBuffer.isView(u)||u instanceof ImageData)return u;if(Array.isArray(u))return u.map(xf);if(typeof u==\"object\"){let a=u.$name||\"Object\";if(!co[a])throw new Error(`can't deserialize unregistered class ${a}`);let{klass:h}=co[a];if(!h)throw new Error(`can't deserialize unregistered class ${a}`);if(h.deserialize)return h.deserialize(u);let A=Object.create(h.prototype);for(let x of Object.keys(u)){if(x===\"$name\")continue;let E=u[x];A[x]=co[a].shallow.indexOf(x)>=0?E:xf(E)}return A}throw new Error(\"can't deserialize object of type \"+typeof u)}class __{constructor(){this.first=!0}update(a,h){let A=Math.floor(a);return this.first?(this.first=!1,this.lastIntegerZoom=A,this.lastIntegerZoomTime=0,this.lastZoom=a,this.lastFloorZoom=A,!0):(this.lastFloorZoom>A?(this.lastIntegerZoom=A+1,this.lastIntegerZoomTime=h):this.lastFloorZoom<A&&(this.lastIntegerZoom=A,this.lastIntegerZoomTime=h),a!==this.lastZoom&&(this.lastZoom=a,this.lastFloorZoom=A,!0))}}let Oe={\"Latin-1 Supplement\":u=>u>=128&&u<=255,Arabic:u=>u>=1536&&u<=1791,\"Arabic Supplement\":u=>u>=1872&&u<=1919,\"Arabic Extended-A\":u=>u>=2208&&u<=2303,\"Hangul Jamo\":u=>u>=4352&&u<=4607,\"Unified Canadian Aboriginal Syllabics\":u=>u>=5120&&u<=5759,Khmer:u=>u>=6016&&u<=6143,\"Unified Canadian Aboriginal Syllabics Extended\":u=>u>=6320&&u<=6399,\"General Punctuation\":u=>u>=8192&&u<=8303,\"Letterlike Symbols\":u=>u>=8448&&u<=8527,\"Number Forms\":u=>u>=8528&&u<=8591,\"Miscellaneous Technical\":u=>u>=8960&&u<=9215,\"Control Pictures\":u=>u>=9216&&u<=9279,\"Optical Character Recognition\":u=>u>=9280&&u<=9311,\"Enclosed Alphanumerics\":u=>u>=9312&&u<=9471,\"Geometric Shapes\":u=>u>=9632&&u<=9727,\"Miscellaneous Symbols\":u=>u>=9728&&u<=9983,\"Miscellaneous Symbols and Arrows\":u=>u>=11008&&u<=11263,\"CJK Radicals Supplement\":u=>u>=11904&&u<=12031,\"Kangxi Radicals\":u=>u>=12032&&u<=12255,\"Ideographic Description Characters\":u=>u>=12272&&u<=12287,\"CJK Symbols and Punctuation\":u=>u>=12288&&u<=12351,Hiragana:u=>u>=12352&&u<=12447,Katakana:u=>u>=12448&&u<=12543,Bopomofo:u=>u>=12544&&u<=12591,\"Hangul Compatibility Jamo\":u=>u>=12592&&u<=12687,Kanbun:u=>u>=12688&&u<=12703,\"Bopomofo Extended\":u=>u>=12704&&u<=12735,\"CJK Strokes\":u=>u>=12736&&u<=12783,\"Katakana Phonetic Extensions\":u=>u>=12784&&u<=12799,\"Enclosed CJK Letters and Months\":u=>u>=12800&&u<=13055,\"CJK Compatibility\":u=>u>=13056&&u<=13311,\"CJK Unified Ideographs Extension A\":u=>u>=13312&&u<=19903,\"Yijing Hexagram Symbols\":u=>u>=19904&&u<=19967,\"CJK Unified Ideographs\":u=>u>=19968&&u<=40959,\"Yi Syllables\":u=>u>=40960&&u<=42127,\"Yi Radicals\":u=>u>=42128&&u<=42191,\"Hangul Jamo Extended-A\":u=>u>=43360&&u<=43391,\"Hangul Syllables\":u=>u>=44032&&u<=55215,\"Hangul Jamo Extended-B\":u=>u>=55216&&u<=55295,\"Private Use Area\":u=>u>=57344&&u<=63743,\"CJK Compatibility Ideographs\":u=>u>=63744&&u<=64255,\"Arabic Presentation Forms-A\":u=>u>=64336&&u<=65023,\"Vertical Forms\":u=>u>=65040&&u<=65055,\"CJK Compatibility Forms\":u=>u>=65072&&u<=65103,\"Small Form Variants\":u=>u>=65104&&u<=65135,\"Arabic Presentation Forms-B\":u=>u>=65136&&u<=65279,\"Halfwidth and Fullwidth Forms\":u=>u>=65280&&u<=65519};function o0(u){for(let a of u)if(dh(a.charCodeAt(0)))return!0;return!1}function a0(u){for(let a of u)if(!zx(a.charCodeAt(0)))return!1;return!0}function zx(u){return!(Oe.Arabic(u)||Oe[\"Arabic Supplement\"](u)||Oe[\"Arabic Extended-A\"](u)||Oe[\"Arabic Presentation Forms-A\"](u)||Oe[\"Arabic Presentation Forms-B\"](u))}function dh(u){return!(u!==746&&u!==747&&(u<4352||!(Oe[\"Bopomofo Extended\"](u)||Oe.Bopomofo(u)||Oe[\"CJK Compatibility Forms\"](u)&&!(u>=65097&&u<=65103)||Oe[\"CJK Compatibility Ideographs\"](u)||Oe[\"CJK Compatibility\"](u)||Oe[\"CJK Radicals Supplement\"](u)||Oe[\"CJK Strokes\"](u)||!(!Oe[\"CJK Symbols and Punctuation\"](u)||u>=12296&&u<=12305||u>=12308&&u<=12319||u===12336)||Oe[\"CJK Unified Ideographs Extension A\"](u)||Oe[\"CJK Unified Ideographs\"](u)||Oe[\"Enclosed CJK Letters and Months\"](u)||Oe[\"Hangul Compatibility Jamo\"](u)||Oe[\"Hangul Jamo Extended-A\"](u)||Oe[\"Hangul Jamo Extended-B\"](u)||Oe[\"Hangul Jamo\"](u)||Oe[\"Hangul Syllables\"](u)||Oe.Hiragana(u)||Oe[\"Ideographic Description Characters\"](u)||Oe.Kanbun(u)||Oe[\"Kangxi Radicals\"](u)||Oe[\"Katakana Phonetic Extensions\"](u)||Oe.Katakana(u)&&u!==12540||!(!Oe[\"Halfwidth and Fullwidth Forms\"](u)||u===65288||u===65289||u===65293||u>=65306&&u<=65310||u===65339||u===65341||u===65343||u>=65371&&u<=65503||u===65507||u>=65512&&u<=65519)||!(!Oe[\"Small Form Variants\"](u)||u>=65112&&u<=65118||u>=65123&&u<=65126)||Oe[\"Unified Canadian Aboriginal Syllabics\"](u)||Oe[\"Unified Canadian Aboriginal Syllabics Extended\"](u)||Oe[\"Vertical Forms\"](u)||Oe[\"Yijing Hexagram Symbols\"](u)||Oe[\"Yi Syllables\"](u)||Oe[\"Yi Radicals\"](u))))}function y_(u){return!(dh(u)||function(a){return!!(Oe[\"Latin-1 Supplement\"](a)&&(a===167||a===169||a===174||a===177||a===188||a===189||a===190||a===215||a===247)||Oe[\"General Punctuation\"](a)&&(a===8214||a===8224||a===8225||a===8240||a===8241||a===8251||a===8252||a===8258||a===8263||a===8264||a===8265||a===8273)||Oe[\"Letterlike Symbols\"](a)||Oe[\"Number Forms\"](a)||Oe[\"Miscellaneous Technical\"](a)&&(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||a===9003||a>=9085&&a<=9114||a>=9150&&a<=9165||a===9167||a>=9169&&a<=9179||a>=9186&&a<=9215)||Oe[\"Control Pictures\"](a)&&a!==9251||Oe[\"Optical Character Recognition\"](a)||Oe[\"Enclosed Alphanumerics\"](a)||Oe[\"Geometric Shapes\"](a)||Oe[\"Miscellaneous Symbols\"](a)&&!(a>=9754&&a<=9759)||Oe[\"Miscellaneous Symbols and Arrows\"](a)&&(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243)||Oe[\"CJK Symbols and Punctuation\"](a)||Oe.Katakana(a)||Oe[\"Private Use Area\"](a)||Oe[\"CJK Compatibility Forms\"](a)||Oe[\"Small Form Variants\"](a)||Oe[\"Halfwidth and Fullwidth Forms\"](a)||a===8734||a===8756||a===8757||a>=9984&&a<=10087||a>=10102&&a<=10131||a===65532||a===65533)}(u))}function l0(u){return u>=1424&&u<=2303||Oe[\"Arabic Presentation Forms-A\"](u)||Oe[\"Arabic Presentation Forms-B\"](u)}function c0(u,a){return!(!a&&l0(u)||u>=2304&&u<=3583||u>=3840&&u<=4255||Oe.Khmer(u))}function bf(u){for(let a of u)if(l0(a.charCodeAt(0)))return!0;return!1}let u0=\"deferred\",iA=\"loading\",nA=\"loaded\",ph=null,us=\"unavailable\",_u=null,Bc=function(u){u&&typeof u==\"string\"&&u.indexOf(\"NetworkError\")>-1&&(us=\"error\"),ph&&ph(u)};function h0(){Od.fire(new as(\"pluginStateChange\",{pluginStatus:us,pluginURL:_u}))}let Od=new Nl,f0=function(){return us},v_=function(){if(us!==u0||!_u)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");us=iA,h0(),_u&&cl({url:_u},u=>{u?Bc(u):(us=nA,h0())})},ua={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>us===nA||ua.applyArabicShaping!=null,isLoading:()=>us===iA,setState(u){if(!Li())throw new Error(\"Cannot set the state of the rtl-text-plugin when not in the web-worker context\");us=u.pluginStatus,_u=u.pluginURL},isParsed(){if(!Li())throw new Error(\"rtl-text-plugin is only parsed on the worker-threads\");return ua.applyArabicShaping!=null&&ua.processBidirectionalText!=null&&ua.processStyledBidirectionalText!=null},getPluginURL(){if(!Li())throw new Error(\"rtl-text-plugin url can only be queried from the worker threads\");return _u}};class un{constructor(a,h){this.zoom=a,h?(this.now=h.now,this.fadeDuration=h.fadeDuration,this.zoomHistory=h.zoomHistory,this.transition=h.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new __,this.transition={})}isSupportedScript(a){return function(h,A){for(let x of h)if(!c0(x.charCodeAt(0),A))return!1;return!0}(a,ua.isLoaded())}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let a=this.zoom,h=a-Math.floor(a),A=this.crossFadingFactor();return a>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:h+(1-h)*A}:{fromScale:.5,toScale:1,t:1-(1-A)*h}}}class sA{constructor(a,h){this.property=a,this.value=h,this.expression=function(A,x){if(Ji(A))return new Ed(A,x);if(Yp(A)){let E=e0(A,x);if(E.result===\"error\")throw new Error(E.value.map(P=>`${P.key}: ${P.message}`).join(\", \"));return E.value}{let E=A;return x.type===\"color\"&&typeof A==\"string\"?E=ai.parse(A):x.type!==\"padding\"||typeof A!=\"number\"&&!Array.isArray(A)?x.type===\"variableAnchorOffsetCollection\"&&Array.isArray(A)&&(E=Go.parse(A)):E=Dn.parse(A),{kind:\"constant\",evaluate:()=>E}}}(h===void 0?a.specification.default:h,a.specification)}isDataDriven(){return this.expression.kind===\"source\"||this.expression.kind===\"composite\"}possiblyEvaluate(a,h,A){return this.property.possiblyEvaluate(this,a,h,A)}}class d0{constructor(a){this.property=a,this.value=new sA(a,void 0)}transitioned(a,h){return new x_(this.property,this.value,h,kt({},a.transition,this.transition),a.now)}untransitioned(){return new x_(this.property,this.value,null,{},0)}}class Ah{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitionablePropertyValues)}getValue(a){return ue(this._values[a].value.value)}setValue(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new d0(this._values[a].property)),this._values[a].value=new sA(this._values[a].property,h===null?void 0:ue(h))}getTransition(a){return ue(this._values[a].transition)}setTransition(a,h){Object.prototype.hasOwnProperty.call(this._values,a)||(this._values[a]=new d0(this._values[a].property)),this._values[a].transition=ue(h)||void 0}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A);let x=this.getTransition(h);x!==void 0&&(a[`${h}-transition`]=x)}return a}transitioned(a,h){let A=new b_(this._properties);for(let x of Object.keys(this._values))A._values[x]=this._values[x].transitioned(a,h._values[x]);return A}untransitioned(){let a=new b_(this._properties);for(let h of Object.keys(this._values))a._values[h]=this._values[h].untransitioned();return a}}class x_{constructor(a,h,A,x,E){this.property=a,this.value=h,this.begin=E+x.delay||0,this.end=this.begin+x.duration||0,a.specification.transition&&(x.delay||x.duration)&&(this.prior=A)}possiblyEvaluate(a,h,A){let x=a.now||0,E=this.value.possiblyEvaluate(a,h,A),P=this.prior;if(P){if(x>this.end)return this.prior=null,E;if(this.value.isDataDriven())return this.prior=null,E;if(x<this.begin)return P.possiblyEvaluate(a,h,A);{let D=(x-this.begin)/(this.end-this.begin);return this.property.interpolate(P.possiblyEvaluate(a,h,A),E,function(F){if(F<=0)return 0;if(F>=1)return 1;let V=F*F,q=V*F;return 4*(F<.5?q:3*(F-V)+q-.75)}(D))}}return E}}class b_{constructor(a){this._properties=a,this._values=Object.create(a.defaultTransitioningPropertyValues)}possiblyEvaluate(a,h,A){let x=new oA(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}hasTransition(){for(let a of Object.keys(this._values))if(this._values[a].prior)return!0;return!1}}class Nx{constructor(a){this._properties=a,this._values=Object.create(a.defaultPropertyValues)}hasValue(a){return this._values[a].value!==void 0}getValue(a){return ue(this._values[a].value)}setValue(a,h){this._values[a]=new sA(this._values[a].property,h===null?void 0:ue(h))}serialize(){let a={};for(let h of Object.keys(this._values)){let A=this.getValue(h);A!==void 0&&(a[h]=A)}return a}possiblyEvaluate(a,h,A){let x=new oA(this._properties);for(let E of Object.keys(this._values))x._values[E]=this._values[E].possiblyEvaluate(a,h,A);return x}}class Mo{constructor(a,h,A){this.property=a,this.value=h,this.parameters=A}isConstant(){return this.value.kind===\"constant\"}constantOr(a){return this.value.kind===\"constant\"?this.value.value:a}evaluate(a,h,A,x){return this.property.evaluate(this.value,this.parameters,a,h,A,x)}}class oA{constructor(a){this._properties=a,this._values=Object.create(a.defaultPossiblyEvaluatedValues)}get(a){return this._values[a]}}class nr{constructor(a){this.specification=a}possiblyEvaluate(a,h){if(a.isDataDriven())throw new Error(\"Value should not be data driven\");return a.expression.evaluate(h)}interpolate(a,h,A){let x=Da[this.specification.type];return x?x(a,h,A):a}}class dr{constructor(a,h){this.specification=a,this.overrides=h}possiblyEvaluate(a,h,A,x){return new Mo(this,a.expression.kind===\"constant\"||a.expression.kind===\"camera\"?{kind:\"constant\",value:a.expression.evaluate(h,null,{},A,x)}:a.expression,h)}interpolate(a,h,A){if(a.value.kind!==\"constant\"||h.value.kind!==\"constant\")return a;if(a.value.value===void 0||h.value.value===void 0)return new Mo(this,{kind:\"constant\",value:void 0},a.parameters);let x=Da[this.specification.type];if(x){let E=x(a.value.value,h.value.value,A);return new Mo(this,{kind:\"constant\",value:E},a.parameters)}return a}evaluate(a,h,A,x,E,P){return a.kind===\"constant\"?a.value:a.evaluate(h,A,x,E,P)}}class wf extends dr{possiblyEvaluate(a,h,A,x){if(a.value===void 0)return new Mo(this,{kind:\"constant\",value:void 0},h);if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x),P=a.property.specification.type===\"resolvedImage\"&&typeof E!=\"string\"?E.name:E,D=this._calculate(P,P,P,h);return new Mo(this,{kind:\"constant\",value:D},h)}if(a.expression.kind===\"camera\"){let E=this._calculate(a.expression.evaluate({zoom:h.zoom-1}),a.expression.evaluate({zoom:h.zoom}),a.expression.evaluate({zoom:h.zoom+1}),h);return new Mo(this,{kind:\"constant\",value:E},h)}return new Mo(this,a.expression,h)}evaluate(a,h,A,x,E,P){if(a.kind===\"source\"){let D=a.evaluate(h,A,x,E,P);return this._calculate(D,D,D,h)}return a.kind===\"composite\"?this._calculate(a.evaluate({zoom:Math.floor(h.zoom)-1},A,x),a.evaluate({zoom:Math.floor(h.zoom)},A,x),a.evaluate({zoom:Math.floor(h.zoom)+1},A,x),h):a.value}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class aA{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){if(a.value!==void 0){if(a.expression.kind===\"constant\"){let E=a.expression.evaluate(h,null,{},A,x);return this._calculate(E,E,E,h)}return this._calculate(a.expression.evaluate(new un(Math.floor(h.zoom-1),h)),a.expression.evaluate(new un(Math.floor(h.zoom),h)),a.expression.evaluate(new un(Math.floor(h.zoom+1),h)),h)}}_calculate(a,h,A,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:h}:{from:A,to:h}}interpolate(a){return a}}class Bd{constructor(a){this.specification=a}possiblyEvaluate(a,h,A,x){return!!a.expression.evaluate(h,null,{},A,x)}interpolate(){return!1}}class Hn{constructor(a){this.properties=a,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let h in a){let A=a[h];A.specification.overridable&&this.overridableProperties.push(h);let x=this.defaultPropertyValues[h]=new sA(A,void 0),E=this.defaultTransitionablePropertyValues[h]=new d0(A);this.defaultTransitioningPropertyValues[h]=E.untransitioned(),this.defaultPossiblyEvaluatedValues[h]=x.possiblyEvaluate({})}}}Ge(\"DataDrivenProperty\",dr),Ge(\"DataConstantProperty\",nr),Ge(\"CrossFadedDataDrivenProperty\",wf),Ge(\"CrossFadedProperty\",aA),Ge(\"ColorRampProperty\",Bd);let uo=\"-transition\";class ji extends Nl{constructor(a,h){if(super(),this.id=a.id,this.type=a.type,this._featureFilter={filter:()=>!0,needGeometry:!1},a.type!==\"custom\"&&(this.metadata=a.metadata,this.minzoom=a.minzoom,this.maxzoom=a.maxzoom,a.type!==\"background\"&&(this.source=a.source,this.sourceLayer=a[\"source-layer\"],this.filter=a.filter),h.layout&&(this._unevaluatedLayout=new Nx(h.layout)),h.paint)){this._transitionablePaint=new Ah(h.paint);for(let A in a.paint)this.setPaintProperty(A,a.paint[A],{validate:!1});for(let A in a.layout)this.setLayoutProperty(A,a.layout[A],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new oA(h.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(a){return a===\"visibility\"?this.visibility:this._unevaluatedLayout.getValue(a)}setLayoutProperty(a,h,A={}){h!=null&&this._validate(s0,`layers.${this.id}.layout.${a}`,a,h,A)||(a!==\"visibility\"?this._unevaluatedLayout.setValue(a,h):this.visibility=h)}getPaintProperty(a){return a.endsWith(uo)?this._transitionablePaint.getTransition(a.slice(0,-11)):this._transitionablePaint.getValue(a)}setPaintProperty(a,h,A={}){if(h!=null&&this._validate(rA,`layers.${this.id}.paint.${a}`,a,h,A))return!1;if(a.endsWith(uo))return this._transitionablePaint.setTransition(a.slice(0,-11),h||void 0),!1;{let x=this._transitionablePaint._values[a],E=x.property.specification[\"property-type\"]===\"cross-faded-data-driven\",P=x.value.isDataDriven(),D=x.value;this._transitionablePaint.setValue(a,h),this._handleSpecialPaintPropertyUpdate(a);let F=this._transitionablePaint._values[a].value;return F.isDataDriven()||P||E||this._handleOverridablePaintPropertyUpdate(a,D,F)}}_handleSpecialPaintPropertyUpdate(a){}_handleOverridablePaintPropertyUpdate(a,h,A){return!1}isHidden(a){return!!(this.minzoom&&a<this.minzoom)||!!(this.maxzoom&&a>=this.maxzoom)||this.visibility===\"none\"}updateTransitions(a){this._transitioningPaint=this._transitionablePaint.transitioned(a,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(a,h){a.getCrossfadeParameters&&(this._crossfadeParameters=a.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(a,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(a,void 0,h)}serialize(){let a={id:this.id,type:this.type,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(a.layout=a.layout||{},a.layout.visibility=this.visibility),le(a,(h,A)=>!(h===void 0||A===\"layout\"&&!Object.keys(h).length||A===\"paint\"&&!Object.keys(h).length))}_validate(a,h,A,x,E={}){return(!E||E.validate!==!1)&&fh(this,a.call(za,{key:h,layerType:this.type,objectKey:A,value:x,styleSpec:ee,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let a in this.paint._values){let h=this.paint.get(a);if(h instanceof Mo&&_f(h.property.specification)&&(h.value.kind===\"source\"||h.value.kind===\"composite\")&&h.value.isStateDependent)return!0}return!1}}let w_={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class mh{constructor(a,h){this._structArray=a,this._pos1=h*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class kn{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(a,h){return a._trim(),h&&(a.isTransferred=!0,h.push(a.arrayBuffer)),{length:a.length,arrayBuffer:a.arrayBuffer}}static deserialize(a){let h=Object.create(this.prototype);return h.arrayBuffer=a.arrayBuffer,h.length=a.length,h.capacity=a.arrayBuffer.byteLength/h.bytesPerElement,h._refreshViews(),h}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(a){this.reserve(a),this.length=a}reserve(a){if(a>this.capacity){this.capacity=Math.max(a,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let h=this.uint8;this._refreshViews(),h&&this.uint8.set(h)}}_refreshViews(){throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\")}}function wn(u,a=1){let h=0,A=0;return{members:u.map(x=>{let E=w_[x.type].BYTES_PER_ELEMENT,P=h=Sf(h,Math.max(a,E)),D=x.components||1;return A=Math.max(A,E),h+=E*D,{name:x.name,type:x.type,components:D,offset:P}}),size:Sf(h,Math.max(A,a)),alignment:a}}function Sf(u,a){return Math.ceil(u/a)*a}class Es extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.int16[x+0]=h,this.int16[x+1]=A,a}}Es.prototype.bytesPerElement=4,Ge(\"StructArrayLayout2i4\",Es);class gh extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.int16[E+0]=h,this.int16[E+1]=A,this.int16[E+2]=x,a}}gh.prototype.bytesPerElement=6,Ge(\"StructArrayLayout3i6\",gh);class Wo extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.int16[P+0]=h,this.int16[P+1]=A,this.int16[P+2]=x,this.int16[P+3]=E,a}}Wo.prototype.bytesPerElement=8,Ge(\"StructArrayLayout4i8\",Wo);class p0 extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=6*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.int16[F+2]=x,this.int16[F+3]=E,this.int16[F+4]=P,this.int16[F+5]=D,a}}p0.prototype.bytesPerElement=12,Ge(\"StructArrayLayout2i4i12\",p0);class Fd extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=4*a,V=8*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.uint8[V+4]=x,this.uint8[V+5]=E,this.uint8[V+6]=P,this.uint8[V+7]=D,a}}Fd.prototype.bytesPerElement=8,Ge(\"StructArrayLayout2i4ub8\",Fd);class Tf extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.float32[x+0]=h,this.float32[x+1]=A,a}}Tf.prototype.bytesPerElement=8,Ge(\"StructArrayLayout2f8\",Tf);class Ho extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q){let X=this.length;return this.resize(X+1),this.emplace(X,a,h,A,x,E,P,D,F,V,q)}emplace(a,h,A,x,E,P,D,F,V,q,X){let rt=10*a;return this.uint16[rt+0]=h,this.uint16[rt+1]=A,this.uint16[rt+2]=x,this.uint16[rt+3]=E,this.uint16[rt+4]=P,this.uint16[rt+5]=D,this.uint16[rt+6]=F,this.uint16[rt+7]=V,this.uint16[rt+8]=q,this.uint16[rt+9]=X,a}}Ho.prototype.bytesPerElement=20,Ge(\"StructArrayLayout10ui20\",Ho);class lA extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,rt){let at=this.length;return this.resize(at+1),this.emplace(at,a,h,A,x,E,P,D,F,V,q,X,rt)}emplace(a,h,A,x,E,P,D,F,V,q,X,rt,at){let ct=12*a;return this.int16[ct+0]=h,this.int16[ct+1]=A,this.int16[ct+2]=x,this.int16[ct+3]=E,this.uint16[ct+4]=P,this.uint16[ct+5]=D,this.uint16[ct+6]=F,this.uint16[ct+7]=V,this.int16[ct+8]=q,this.int16[ct+9]=X,this.int16[ct+10]=rt,this.int16[ct+11]=at,a}}lA.prototype.bytesPerElement=24,Ge(\"StructArrayLayout4i4ui4i24\",lA);class bi extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.float32[E+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}bi.prototype.bytesPerElement=12,Ge(\"StructArrayLayout3f12\",bi);class T extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint32[1*a+0]=h,a}}T.prototype.bytesPerElement=4,Ge(\"StructArrayLayout1ul4\",T);class l extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V){let q=this.length;return this.resize(q+1),this.emplace(q,a,h,A,x,E,P,D,F,V)}emplace(a,h,A,x,E,P,D,F,V,q){let X=10*a,rt=5*a;return this.int16[X+0]=h,this.int16[X+1]=A,this.int16[X+2]=x,this.int16[X+3]=E,this.int16[X+4]=P,this.int16[X+5]=D,this.uint32[rt+3]=F,this.uint16[X+8]=V,this.uint16[X+9]=q,a}}l.prototype.bytesPerElement=20,Ge(\"StructArrayLayout6i1ul2ui20\",l);class d extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P){let D=this.length;return this.resize(D+1),this.emplace(D,a,h,A,x,E,P)}emplace(a,h,A,x,E,P,D){let F=6*a;return this.int16[F+0]=h,this.int16[F+1]=A,this.int16[F+2]=x,this.int16[F+3]=E,this.int16[F+4]=P,this.int16[F+5]=D,a}}d.prototype.bytesPerElement=12,Ge(\"StructArrayLayout2i2i2i12\",d);class v extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E){let P=this.length;return this.resize(P+1),this.emplace(P,a,h,A,x,E)}emplace(a,h,A,x,E,P){let D=4*a,F=8*a;return this.float32[D+0]=h,this.float32[D+1]=A,this.float32[D+2]=x,this.int16[F+6]=E,this.int16[F+7]=P,a}}v.prototype.bytesPerElement=16,Ge(\"StructArrayLayout2f1f2i16\",v);class b extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=12*a,D=3*a;return this.uint8[P+0]=h,this.uint8[P+1]=A,this.float32[D+1]=x,this.float32[D+2]=E,a}}b.prototype.bytesPerElement=12,Ge(\"StructArrayLayout2ub2f12\",b);class M extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[E+0]=h,this.uint16[E+1]=A,this.uint16[E+2]=x,a}}M.prototype.bytesPerElement=6,Ge(\"StructArrayLayout3ui6\",M);class O extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt,bt,Pt){let jt=this.length;return this.resize(jt+1),this.emplace(jt,a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt,bt,Pt)}emplace(a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt,bt,Pt,jt){let Rt=24*a,Gt=12*a,Yt=48*a;return this.int16[Rt+0]=h,this.int16[Rt+1]=A,this.uint16[Rt+2]=x,this.uint16[Rt+3]=E,this.uint32[Gt+2]=P,this.uint32[Gt+3]=D,this.uint32[Gt+4]=F,this.uint16[Rt+10]=V,this.uint16[Rt+11]=q,this.uint16[Rt+12]=X,this.float32[Gt+7]=rt,this.float32[Gt+8]=at,this.uint8[Yt+36]=ct,this.uint8[Yt+37]=mt,this.uint8[Yt+38]=bt,this.uint32[Gt+10]=Pt,this.int16[Rt+22]=jt,a}}O.prototype.bytesPerElement=48,Ge(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",O);class B extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt,bt,Pt,jt,Rt,Gt,Yt,ce,Ne,ir,Fe,Re,Me,Ye){let Ie=this.length;return this.resize(Ie+1),this.emplace(Ie,a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt,bt,Pt,jt,Rt,Gt,Yt,ce,Ne,ir,Fe,Re,Me,Ye)}emplace(a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt,bt,Pt,jt,Rt,Gt,Yt,ce,Ne,ir,Fe,Re,Me,Ye,Ie){let Ae=32*a,hr=16*a;return this.int16[Ae+0]=h,this.int16[Ae+1]=A,this.int16[Ae+2]=x,this.int16[Ae+3]=E,this.int16[Ae+4]=P,this.int16[Ae+5]=D,this.int16[Ae+6]=F,this.int16[Ae+7]=V,this.uint16[Ae+8]=q,this.uint16[Ae+9]=X,this.uint16[Ae+10]=rt,this.uint16[Ae+11]=at,this.uint16[Ae+12]=ct,this.uint16[Ae+13]=mt,this.uint16[Ae+14]=bt,this.uint16[Ae+15]=Pt,this.uint16[Ae+16]=jt,this.uint16[Ae+17]=Rt,this.uint16[Ae+18]=Gt,this.uint16[Ae+19]=Yt,this.uint16[Ae+20]=ce,this.uint16[Ae+21]=Ne,this.uint16[Ae+22]=ir,this.uint32[hr+12]=Fe,this.float32[hr+13]=Re,this.float32[hr+14]=Me,this.uint16[Ae+30]=Ye,this.uint16[Ae+31]=Ie,a}}B.prototype.bytesPerElement=64,Ge(\"StructArrayLayout8i15ui1ul2f2ui64\",B);class U extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.float32[1*a+0]=h,a}}U.prototype.bytesPerElement=4,Ge(\"StructArrayLayout1f4\",U);class W extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=3*a;return this.uint16[6*a+0]=h,this.float32[E+1]=A,this.float32[E+2]=x,a}}W.prototype.bytesPerElement=12,Ge(\"StructArrayLayout1ui2f12\",W);class Z extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h,A){let x=this.length;return this.resize(x+1),this.emplace(x,a,h,A)}emplace(a,h,A,x){let E=4*a;return this.uint32[2*a+0]=h,this.uint16[E+2]=A,this.uint16[E+3]=x,a}}Z.prototype.bytesPerElement=8,Ge(\"StructArrayLayout1ul2ui8\",Z);class $ extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a,h){let A=this.length;return this.resize(A+1),this.emplace(A,a,h)}emplace(a,h,A){let x=2*a;return this.uint16[x+0]=h,this.uint16[x+1]=A,a}}$.prototype.bytesPerElement=4,Ge(\"StructArrayLayout2ui4\",$);class st extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(a){let h=this.length;return this.resize(h+1),this.emplace(h,a)}emplace(a,h){return this.uint16[1*a+0]=h,a}}st.prototype.bytesPerElement=2,Ge(\"StructArrayLayout1ui2\",st);class At extends kn{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(a,h,A,x){let E=this.length;return this.resize(E+1),this.emplace(E,a,h,A,x)}emplace(a,h,A,x,E){let P=4*a;return this.float32[P+0]=h,this.float32[P+1]=A,this.float32[P+2]=x,this.float32[P+3]=E,a}}At.prototype.bytesPerElement=16,Ge(\"StructArrayLayout4f16\",At);class pt extends mh{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new w(this.anchorPointX,this.anchorPointY)}}pt.prototype.size=20;class yt extends l{get(a){return new pt(this,a)}}Ge(\"CollisionBoxArray\",yt);class dt extends mh{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(a){this._structArray.uint8[this._pos1+37]=a}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(a){this._structArray.uint8[this._pos1+38]=a}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(a){this._structArray.uint32[this._pos4+10]=a}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}dt.prototype.size=48;class Ft extends O{get(a){return new dt(this,a)}}Ge(\"PlacedSymbolArray\",Ft);class Ht extends mh{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(a){this._structArray.uint32[this._pos4+12]=a}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}Ht.prototype.size=64;class St extends B{get(a){return new Ht(this,a)}}Ge(\"SymbolInstanceArray\",St);class Bt extends U{getoffsetX(a){return this.float32[1*a+0]}}Ge(\"GlyphOffsetArray\",Bt);class Qt extends gh{getx(a){return this.int16[3*a+0]}gety(a){return this.int16[3*a+1]}gettileUnitDistanceFromAnchor(a){return this.int16[3*a+2]}}Ge(\"SymbolLineVertexArray\",Qt);class $t extends mh{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}$t.prototype.size=12;class oe extends W{get(a){return new $t(this,a)}}Ge(\"TextAnchorOffsetArray\",oe);class pe extends mh{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}pe.prototype.size=8;class he extends Z{get(a){return new pe(this,a)}}Ge(\"FeatureIndexArray\",he);class be extends Es{}class Ze extends Es{}class Kr extends Es{}class Ee extends p0{}class pr extends Fd{}class tr extends Tf{}class Gi extends Ho{}class Jr extends lA{}class Vr extends bi{}class ei extends T{}class On extends d{}class tn extends b{}class Gs extends M{}class hs extends ${}let Bn=wn([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:qo}=Bn;class jr{constructor(a=[]){this.segments=a}prepareSegment(a,h,A,x){let E=this.segments[this.segments.length-1];return a>jr.MAX_VERTEX_ARRAY_LENGTH&&Ke(`Max vertices per segment is ${jr.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${a}`),(!E||E.vertexLength+a>jr.MAX_VERTEX_ARRAY_LENGTH||E.sortKey!==x)&&(E={vertexOffset:h.length,primitiveOffset:A.length,vertexLength:0,primitiveLength:0},x!==void 0&&(E.sortKey=x),this.segments.push(E)),E}get(){return this.segments}destroy(){for(let a of this.segments)for(let h in a.vaos)a.vaos[h].destroy()}static simpleSegment(a,h,A,x){return new jr([{vertexOffset:a,primitiveOffset:h,vertexLength:A,primitiveLength:x,vaos:{},sortKey:0}])}}function ql(u,a){return 256*(u=ut(Math.floor(u),0,255))+ut(Math.floor(a),0,255)}jr.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ge(\"SegmentVector\",jr);let Zl=wn([{name:\"a_pattern_from\",components:4,type:\"Uint16\"},{name:\"a_pattern_to\",components:4,type:\"Uint16\"},{name:\"a_pixel_ratio_from\",components:1,type:\"Uint16\"},{name:\"a_pixel_ratio_to\",components:1,type:\"Uint16\"}]);var yu={exports:{}},vu={exports:{}};vu.exports=function(u,a){var h,A,x,E,P,D,F,V;for(A=u.length-(h=3&u.length),x=a,P=3432918353,D=461845907,V=0;V<A;)F=255&u.charCodeAt(V)|(255&u.charCodeAt(++V))<<8|(255&u.charCodeAt(++V))<<16|(255&u.charCodeAt(++V))<<24,++V,x=27492+(65535&(E=5*(65535&(x=(x^=F=(65535&(F=(F=(65535&F)*P+(((F>>>16)*P&65535)<<16)&4294967295)<<15|F>>>17))*D+(((F>>>16)*D&65535)<<16)&4294967295)<<13|x>>>19))+((5*(x>>>16)&65535)<<16)&4294967295))+((58964+(E>>>16)&65535)<<16);switch(F=0,h){case 3:F^=(255&u.charCodeAt(V+2))<<16;case 2:F^=(255&u.charCodeAt(V+1))<<8;case 1:x^=F=(65535&(F=(F=(65535&(F^=255&u.charCodeAt(V)))*P+(((F>>>16)*P&65535)<<16)&4294967295)<<15|F>>>17))*D+(((F>>>16)*D&65535)<<16)&4294967295}return x^=u.length,x=2246822507*(65535&(x^=x>>>16))+((2246822507*(x>>>16)&65535)<<16)&4294967295,x=3266489909*(65535&(x^=x>>>13))+((3266489909*(x>>>16)&65535)<<16)&4294967295,(x^=x>>>16)>>>0};var _h=vu.exports,Ws={exports:{}};Ws.exports=function(u,a){for(var h,A=u.length,x=a^A,E=0;A>=4;)h=1540483477*(65535&(h=255&u.charCodeAt(E)|(255&u.charCodeAt(++E))<<8|(255&u.charCodeAt(++E))<<16|(255&u.charCodeAt(++E))<<24))+((1540483477*(h>>>16)&65535)<<16),x=1540483477*(65535&x)+((1540483477*(x>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),A-=4,++E;switch(A){case 3:x^=(255&u.charCodeAt(E+2))<<16;case 2:x^=(255&u.charCodeAt(E+1))<<8;case 1:x=1540483477*(65535&(x^=255&u.charCodeAt(E)))+((1540483477*(x>>>16)&65535)<<16)}return x=1540483477*(65535&(x^=x>>>13))+((1540483477*(x>>>16)&65535)<<16),(x^=x>>>15)>>>0};var Ps=_h,Eo=Ws.exports;yu.exports=Ps,yu.exports.murmur3=Ps,yu.exports.murmur2=Eo;var yh=c(yu.exports);class Fn{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(a,h,A,x){this.ids.push(fs(a)),this.positions.push(h,A,x)}getPositions(a){if(!this.indexed)throw new Error(\"Trying to get index, but feature positions are not indexed\");let h=fs(a),A=0,x=this.ids.length-1;for(;A<x;){let P=A+x>>1;this.ids[P]>=h?x=P:A=P+1}let E=[];for(;this.ids[A]===h;)E.push({index:this.positions[3*A],start:this.positions[3*A+1],end:this.positions[3*A+2]}),A++;return E}static serialize(a,h){let A=new Float64Array(a.ids),x=new Uint32Array(a.positions);return Zo(A,x,0,A.length-1),h&&h.push(A.buffer,x.buffer),{ids:A,positions:x}}static deserialize(a){let h=new Fn;return h.ids=a.ids,h.positions=a.positions,h.indexed=!0,h}}function fs(u){let a=+u;return!isNaN(a)&&a<=Number.MAX_SAFE_INTEGER?a:yh(String(u))}function Zo(u,a,h,A){for(;h<A;){let x=u[h+A>>1],E=h-1,P=A+1;for(;;){do E++;while(u[E]<x);do P--;while(u[P]>x);if(E>=P)break;_n(u,E,P),_n(a,3*E,3*P),_n(a,3*E+1,3*P+1),_n(a,3*E+2,3*P+2)}P-h<A-P?(Zo(u,a,h,P),h=P+1):(Zo(u,a,P+1,A),A=P)}}function _n(u,a,h){let A=u[a];u[a]=u[h],u[h]=A}Ge(\"FeaturePositionMap\",Fn);class ho{constructor(a,h){this.gl=a.gl,this.location=h}}class Gr extends ho{constructor(a,h){super(a,h),this.current=0}set(a){this.current!==a&&(this.current=a,this.gl.uniform1f(this.location,a))}}class Ua extends ho{constructor(a,h){super(a,h),this.current=[0,0,0,0]}set(a){a[0]===this.current[0]&&a[1]===this.current[1]&&a[2]===this.current[2]&&a[3]===this.current[3]||(this.current=a,this.gl.uniform4f(this.location,a[0],a[1],a[2],a[3]))}}class S_ extends ho{constructor(a,h){super(a,h),this.current=ai.transparent}set(a){a.r===this.current.r&&a.g===this.current.g&&a.b===this.current.b&&a.a===this.current.a||(this.current=a,this.gl.uniform4f(this.location,a.r,a.g,a.b,a.a))}}let zd=new Float32Array(16);function cA(u){return[ql(255*u.r,255*u.g),ql(255*u.b,255*u.a)]}class Yl{constructor(a,h,A){this.value=a,this.uniformNames=h.map(x=>`u_${x}`),this.type=A}setUniform(a,h,A){a.set(A.constantOr(this.value))}getBinding(a,h,A){return this.type===\"color\"?new S_(a,h):new Gr(a,h)}}class Yo{constructor(a,h){this.uniformNames=h.map(A=>`u_${A}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(a,h){this.pixelRatioFrom=h.pixelRatio,this.pixelRatioTo=a.pixelRatio,this.patternFrom=h.tlbr,this.patternTo=a.tlbr}setUniform(a,h,A,x){let E=x===\"u_pattern_to\"?this.patternTo:x===\"u_pattern_from\"?this.patternFrom:x===\"u_pixel_ratio_to\"?this.pixelRatioTo:x===\"u_pixel_ratio_from\"?this.pixelRatioFrom:null;E&&a.set(E)}getBinding(a,h,A){return A.substr(0,9)===\"u_pattern\"?new Ua(a,h):new Gr(a,h)}}class me{constructor(a,h,A,x){this.expression=a,this.type=A,this.maxValue=0,this.paintVertexAttributes=h.map(E=>({name:`a_${E}`,type:\"Float32\",components:A===\"color\"?2:1,offset:0})),this.paintVertexArray=new x}populatePaintArray(a,h,A,x,E){let P=this.paintVertexArray.length,D=this.expression.evaluate(new un(0),h,{},x,[],E);this.paintVertexArray.resize(a),this._setPaintValue(P,a,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:0},A,x);this._setPaintValue(a,h,E)}_setPaintValue(a,h,A){if(this.type===\"color\"){let x=cA(A);for(let E=a;E<h;E++)this.paintVertexArray.emplace(E,x[0],x[1])}else{for(let x=a;x<h;x++)this.paintVertexArray.emplace(x,A);this.maxValue=Math.max(this.maxValue,Math.abs(A))}}upload(a){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=a.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}}class ke{constructor(a,h,A,x,E,P){this.expression=a,this.uniformNames=h.map(D=>`u_${D}_t`),this.type=A,this.useIntegerZoom=x,this.zoom=E,this.maxValue=0,this.paintVertexAttributes=h.map(D=>({name:`a_${D}`,type:\"Float32\",components:A===\"color\"?4:2,offset:0})),this.paintVertexArray=new P}populatePaintArray(a,h,A,x,E){let P=this.expression.evaluate(new un(this.zoom),h,{},x,[],E),D=this.expression.evaluate(new un(this.zoom+1),h,{},x,[],E),F=this.paintVertexArray.length;this.paintVertexArray.resize(a),this._setPaintValue(F,a,P,D)}updatePaintArray(a,h,A,x){let E=this.expression.evaluate({zoom:this.zoom},A,x),P=this.expression.evaluate({zoom:this.zoom+1},A,x);this._setPaintValue(a,h,E,P)}_setPaintValue(a,h,A,x){if(this.type===\"color\"){let E=cA(A),P=cA(x);for(let D=a;D<h;D++)this.paintVertexArray.emplace(D,E[0],E[1],P[0],P[1])}else{for(let E=a;E<h;E++)this.paintVertexArray.emplace(E,A,x);this.maxValue=Math.max(this.maxValue,Math.abs(A),Math.abs(x))}}upload(a){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=a.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(a,h){let A=this.useIntegerZoom?Math.floor(h.zoom):h.zoom,x=ut(this.expression.interpolationFactor(A,this.zoom,this.zoom+1),0,1);a.set(x)}getBinding(a,h,A){return new Gr(a,h)}}class ml{constructor(a,h,A,x,E,P){this.expression=a,this.type=h,this.useIntegerZoom=A,this.zoom=x,this.layerId=P,this.zoomInPaintVertexArray=new E,this.zoomOutPaintVertexArray=new E}populatePaintArray(a,h,A){let x=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(a),this.zoomOutPaintVertexArray.resize(a),this._setPaintValues(x,a,h.patterns&&h.patterns[this.layerId],A)}updatePaintArray(a,h,A,x,E){this._setPaintValues(a,h,A.patterns&&A.patterns[this.layerId],E)}_setPaintValues(a,h,A,x){if(!x||!A)return;let{min:E,mid:P,max:D}=A,F=x[E],V=x[P],q=x[D];if(F&&V&&q)for(let X=a;X<h;X++)this.zoomInPaintVertexArray.emplace(X,V.tl[0],V.tl[1],V.br[0],V.br[1],F.tl[0],F.tl[1],F.br[0],F.br[1],V.pixelRatio,F.pixelRatio),this.zoomOutPaintVertexArray.emplace(X,V.tl[0],V.tl[1],V.br[0],V.br[1],q.tl[0],q.tl[1],q.br[0],q.br[1],V.pixelRatio,q.pixelRatio)}upload(a){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=a.createVertexBuffer(this.zoomInPaintVertexArray,Zl.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=a.createVertexBuffer(this.zoomOutPaintVertexArray,Zl.members,this.expression.isStateDependent))}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()}}class Mf{constructor(a,h,A){this.binders={},this._buffers=[];let x=[];for(let E in a.paint._values){if(!A(E))continue;let P=a.paint.get(E);if(!(P instanceof Mo&&_f(P.property.specification)))continue;let D=Fc(E,a.type),F=P.value,V=P.property.specification.type,q=P.property.useIntegerZoom,X=P.property.specification[\"property-type\"],rt=X===\"cross-faded\"||X===\"cross-faded-data-driven\";if(F.kind===\"constant\")this.binders[E]=rt?new Yo(F.value,D):new Yl(F.value,D,V),x.push(`/u_${E}`);else if(F.kind===\"source\"||rt){let at=Ux(E,V,\"source\");this.binders[E]=rt?new ml(F,V,q,h,at,a.id):new me(F,D,V,at),x.push(`/a_${E}`)}else{let at=Ux(E,V,\"composite\");this.binders[E]=new ke(F,D,V,q,h,at),x.push(`/z_${E}`)}}this.cacheKey=x.sort().join(\"\")}getMaxValue(a){let h=this.binders[a];return h instanceof me||h instanceof ke?h.maxValue:0}populatePaintArrays(a,h,A,x,E){for(let P in this.binders){let D=this.binders[P];(D instanceof me||D instanceof ke||D instanceof ml)&&D.populatePaintArray(a,h,A,x,E)}}setConstantPatternPositions(a,h){for(let A in this.binders){let x=this.binders[A];x instanceof Yo&&x.setConstantPatternPositions(a,h)}}updatePaintArrays(a,h,A,x,E){let P=!1;for(let D in a){let F=h.getPositions(D);for(let V of F){let q=A.feature(V.index);for(let X in this.binders){let rt=this.binders[X];if((rt instanceof me||rt instanceof ke||rt instanceof ml)&&rt.expression.isStateDependent===!0){let at=x.paint.get(X);rt.expression=at.value,rt.updatePaintArray(V.start,V.end,q,a[D],E),P=!0}}}}return P}defines(){let a=[];for(let h in this.binders){let A=this.binders[h];(A instanceof Yl||A instanceof Yo)&&a.push(...A.uniformNames.map(x=>`#define HAS_UNIFORM_${x}`))}return a}getBinderAttributes(){let a=[];for(let h in this.binders){let A=this.binders[h];if(A instanceof me||A instanceof ke)for(let x=0;x<A.paintVertexAttributes.length;x++)a.push(A.paintVertexAttributes[x].name);else if(A instanceof ml)for(let x=0;x<Zl.members.length;x++)a.push(Zl.members[x].name)}return a}getBinderUniforms(){let a=[];for(let h in this.binders){let A=this.binders[h];if(A instanceof Yl||A instanceof Yo||A instanceof ke)for(let x of A.uniformNames)a.push(x)}return a}getPaintVertexBuffers(){return this._buffers}getUniforms(a,h){let A=[];for(let x in this.binders){let E=this.binders[x];if(E instanceof Yl||E instanceof Yo||E instanceof ke){for(let P of E.uniformNames)if(h[P]){let D=E.getBinding(a,h[P],P);A.push({name:P,property:x,binding:D})}}}return A}setUniforms(a,h,A,x){for(let{name:E,property:P,binding:D}of h)this.binders[P].setUniform(D,x,A.get(P),E)}updatePaintBuffers(a){this._buffers=[];for(let h in this.binders){let A=this.binders[h];if(a&&A instanceof ml){let x=a.fromScale===2?A.zoomInPaintVertexBuffer:A.zoomOutPaintVertexBuffer;x&&this._buffers.push(x)}else(A instanceof me||A instanceof ke)&&A.paintVertexBuffer&&this._buffers.push(A.paintVertexBuffer)}}upload(a){for(let h in this.binders){let A=this.binders[h];(A instanceof me||A instanceof ke||A instanceof ml)&&A.upload(a)}this.updatePaintBuffers()}destroy(){for(let a in this.binders){let h=this.binders[a];(h instanceof me||h instanceof ke||h instanceof ml)&&h.destroy()}}}class Va{constructor(a,h,A=()=>!0){this.programConfigurations={};for(let x of a)this.programConfigurations[x.id]=new Mf(x,h,A);this.needsUpload=!1,this._featureMap=new Fn,this._bufferOffset=0}populatePaintArrays(a,h,A,x,E,P){for(let D in this.programConfigurations)this.programConfigurations[D].populatePaintArrays(a,h,x,E,P);h.id!==void 0&&this._featureMap.add(h.id,A,this._bufferOffset,a),this._bufferOffset=a,this.needsUpload=!0}updatePaintArrays(a,h,A,x){for(let E of A)this.needsUpload=this.programConfigurations[E.id].updatePaintArrays(a,this._featureMap,h,E,x)||this.needsUpload}get(a){return this.programConfigurations[a]}upload(a){if(this.needsUpload){for(let h in this.programConfigurations)this.programConfigurations[h].upload(a);this.needsUpload=!1}}destroy(){for(let a in this.programConfigurations)this.programConfigurations[a].destroy()}}function Fc(u,a){return{\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-extrusion-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"]}[u]||[u.replace(`${a}-`,\"\").replace(/-/g,\"_\")]}function Ux(u,a,h){let A={color:{source:Tf,composite:At},number:{source:U,composite:Tf}},x=function(E){return{\"line-pattern\":{source:Gi,composite:Gi},\"fill-pattern\":{source:Gi,composite:Gi},\"fill-extrusion-pattern\":{source:Gi,composite:Gi}}[E]}(u);return x&&x[h]||A[a][h]}Ge(\"ConstantBinder\",Yl),Ge(\"CrossFadedConstantBinder\",Yo),Ge(\"SourceExpressionBinder\",me),Ge(\"CrossFadedCompositeBinder\",ml),Ge(\"CompositeExpressionBinder\",ke),Ge(\"ProgramConfiguration\",Mf,{omit:[\"_buffers\"]}),Ge(\"ProgramConfigurationSet\",Va);let en=8192,p=Math.pow(2,14)-1,m=-p-1;function y(u){let a=en/u.extent,h=u.loadGeometry();for(let A=0;A<h.length;A++){let x=h[A];for(let E=0;E<x.length;E++){let P=x[E],D=Math.round(P.x*a),F=Math.round(P.y*a);P.x=ut(D,m,p),P.y=ut(F,m,p),(D<P.x||D>P.x+1||F<P.y||F>P.y+1)&&Ke(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\")}}return h}function S(u,a){return{type:u.type,id:u.id,properties:u.properties,geometry:a?y(u):[]}}function C(u,a,h,A,x){u.emplaceBack(2*a+(A+1)/2,2*h+(x+1)/2)}class k{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new Ze,this.indexArray=new Gs,this.segments=new jr,this.programConfigurations=new Va(a.layers,a.zoom),this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){let x=this.layers[0],E=[],P=null,D=!1;x.type===\"circle\"&&(P=x.layout.get(\"circle-sort-key\"),D=!P.isConstant());for(let{feature:F,id:V,index:q,sourceLayerIndex:X}of a){let rt=this.layers[0]._featureFilter.needGeometry,at=S(F,rt);if(!this.layers[0]._featureFilter.filter(new un(this.zoom),at,A))continue;let ct=D?P.evaluate(at,{},A):void 0,mt={id:V,properties:F.properties,type:F.type,sourceLayerIndex:X,index:q,geometry:rt?at.geometry:y(F),patterns:{},sortKey:ct};E.push(mt)}D&&E.sort((F,V)=>F.sortKey-V.sortKey);for(let F of E){let{geometry:V,index:q,sourceLayerIndex:X}=F,rt=a[q].feature;this.addFeature(F,V,q,A),h.featureIndex.insert(rt,V,q,X,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,qo),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(a,h,A,x){for(let E of h)for(let P of E){let D=P.x,F=P.y;if(D<0||D>=en||F<0||F>=en)continue;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,a.sortKey),q=V.vertexLength;C(this.layoutVertexArray,D,F,-1,-1),C(this.layoutVertexArray,D,F,1,-1),C(this.layoutVertexArray,D,F,1,1),C(this.layoutVertexArray,D,F,-1,1),this.indexArray.emplaceBack(q,q+1,q+2),this.indexArray.emplaceBack(q,q+3,q+2),V.vertexLength+=4,V.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,{},x)}}function L(u,a){for(let h=0;h<u.length;h++)if(ne(a,u[h]))return!0;for(let h=0;h<a.length;h++)if(ne(u,a[h]))return!0;return!!ot(u,a)}function z(u,a,h){return!!ne(u,a)||!!Nt(a,u,h)}function H(u,a){if(u.length===1)return re(a,u[0]);for(let h=0;h<a.length;h++){let A=a[h];for(let x=0;x<A.length;x++)if(ne(u,A[x]))return!0}for(let h=0;h<u.length;h++)if(re(a,u[h]))return!0;for(let h=0;h<a.length;h++)if(ot(u,a[h]))return!0;return!1}function it(u,a,h){if(u.length>1){if(ot(u,a))return!0;for(let A=0;A<a.length;A++)if(Nt(a[A],u,h))return!0}for(let A=0;A<u.length;A++)if(Nt(u[A],a,h))return!0;return!1}function ot(u,a){if(u.length===0||a.length===0)return!1;for(let h=0;h<u.length-1;h++){let A=u[h],x=u[h+1];for(let E=0;E<a.length-1;E++)if(Ct(A,x,a[E],a[E+1]))return!0}return!1}function Ct(u,a,h,A){return rr(u,h,A)!==rr(a,h,A)&&rr(u,a,h)!==rr(u,a,A)}function Nt(u,a,h){let A=h*h;if(a.length===1)return u.distSqr(a[0])<A;for(let x=1;x<a.length;x++)if(Wt(u,a[x-1],a[x])<A)return!0;return!1}function Wt(u,a,h){let A=a.distSqr(h);if(A===0)return u.distSqr(a);let x=((u.x-a.x)*(h.x-a.x)+(u.y-a.y)*(h.y-a.y))/A;return u.distSqr(x<0?a:x>1?h:h.sub(a)._mult(x)._add(a))}function re(u,a){let h,A,x,E=!1;for(let P=0;P<u.length;P++){h=u[P];for(let D=0,F=h.length-1;D<h.length;F=D++)A=h[D],x=h[F],A.y>a.y!=x.y>a.y&&a.x<(x.x-A.x)*(a.y-A.y)/(x.y-A.y)+A.x&&(E=!E)}return E}function ne(u,a){let h=!1;for(let A=0,x=u.length-1;A<u.length;x=A++){let E=u[A],P=u[x];E.y>a.y!=P.y>a.y&&a.x<(P.x-E.x)*(a.y-E.y)/(P.y-E.y)+E.x&&(h=!h)}return h}function Le(u,a,h){let A=h[0],x=h[2];if(u.x<A.x&&a.x<A.x||u.x>x.x&&a.x>x.x||u.y<A.y&&a.y<A.y||u.y>x.y&&a.y>x.y)return!1;let E=rr(u,a,h[0]);return E!==rr(u,a,h[1])||E!==rr(u,a,h[2])||E!==rr(u,a,h[3])}function We(u,a,h){let A=a.paint.get(u).value;return A.kind===\"constant\"?A.value:h.programConfigurations.get(a.id).getMaxValue(u)}function te(u){return Math.sqrt(u[0]*u[0]+u[1]*u[1])}function _e(u,a,h,A,x){if(!a[0]&&!a[1])return u;let E=w.convert(a)._mult(x);h===\"viewport\"&&E._rotate(-A);let P=[];for(let D=0;D<u.length;D++)P.push(u[D].sub(E));return P}let Ut,$e;Ge(\"CircleBucket\",k,{omit:[\"layers\"]});var er={get paint(){return $e=$e||new Hn({\"circle-radius\":new dr(ee.paint_circle[\"circle-radius\"]),\"circle-color\":new dr(ee.paint_circle[\"circle-color\"]),\"circle-blur\":new dr(ee.paint_circle[\"circle-blur\"]),\"circle-opacity\":new dr(ee.paint_circle[\"circle-opacity\"]),\"circle-translate\":new nr(ee.paint_circle[\"circle-translate\"]),\"circle-translate-anchor\":new nr(ee.paint_circle[\"circle-translate-anchor\"]),\"circle-pitch-scale\":new nr(ee.paint_circle[\"circle-pitch-scale\"]),\"circle-pitch-alignment\":new nr(ee.paint_circle[\"circle-pitch-alignment\"]),\"circle-stroke-width\":new dr(ee.paint_circle[\"circle-stroke-width\"]),\"circle-stroke-color\":new dr(ee.paint_circle[\"circle-stroke-color\"]),\"circle-stroke-opacity\":new dr(ee.paint_circle[\"circle-stroke-opacity\"])})},get layout(){return Ut=Ut||new Hn({\"circle-sort-key\":new dr(ee.layout_circle[\"circle-sort-key\"])})}},we=1e-6,je=typeof Float32Array<\"u\"?Float32Array:Array;function Zr(u){return u[0]=1,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=1,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=1,u[11]=0,u[12]=0,u[13]=0,u[14]=0,u[15]=1,u}function qi(u,a,h){var A=a[0],x=a[1],E=a[2],P=a[3],D=a[4],F=a[5],V=a[6],q=a[7],X=a[8],rt=a[9],at=a[10],ct=a[11],mt=a[12],bt=a[13],Pt=a[14],jt=a[15],Rt=h[0],Gt=h[1],Yt=h[2],ce=h[3];return u[0]=Rt*A+Gt*D+Yt*X+ce*mt,u[1]=Rt*x+Gt*F+Yt*rt+ce*bt,u[2]=Rt*E+Gt*V+Yt*at+ce*Pt,u[3]=Rt*P+Gt*q+Yt*ct+ce*jt,u[4]=(Rt=h[4])*A+(Gt=h[5])*D+(Yt=h[6])*X+(ce=h[7])*mt,u[5]=Rt*x+Gt*F+Yt*rt+ce*bt,u[6]=Rt*E+Gt*V+Yt*at+ce*Pt,u[7]=Rt*P+Gt*q+Yt*ct+ce*jt,u[8]=(Rt=h[8])*A+(Gt=h[9])*D+(Yt=h[10])*X+(ce=h[11])*mt,u[9]=Rt*x+Gt*F+Yt*rt+ce*bt,u[10]=Rt*E+Gt*V+Yt*at+ce*Pt,u[11]=Rt*P+Gt*q+Yt*ct+ce*jt,u[12]=(Rt=h[12])*A+(Gt=h[13])*D+(Yt=h[14])*X+(ce=h[15])*mt,u[13]=Rt*x+Gt*F+Yt*rt+ce*bt,u[14]=Rt*E+Gt*V+Yt*at+ce*Pt,u[15]=Rt*P+Gt*q+Yt*ct+ce*jt,u}Math.hypot||(Math.hypot=function(){for(var u=0,a=arguments.length;a--;)u+=arguments[a]*arguments[a];return Math.sqrt(u)});var Ei,hn=qi;function Pi(u,a,h){var A=a[0],x=a[1],E=a[2],P=a[3];return u[0]=h[0]*A+h[4]*x+h[8]*E+h[12]*P,u[1]=h[1]*A+h[5]*x+h[9]*E+h[13]*P,u[2]=h[2]*A+h[6]*x+h[10]*E+h[14]*P,u[3]=h[3]*A+h[7]*x+h[11]*E+h[15]*P,u}Ei=new je(4),je!=Float32Array&&(Ei[0]=0,Ei[1]=0,Ei[2]=0,Ei[3]=0);class Sn extends ji{constructor(a){super(a,er)}createBucket(a){return new k(a)}queryRadius(a){let h=a;return We(\"circle-radius\",this,h)+We(\"circle-stroke-width\",this,h)+te(this.paint.get(\"circle-translate\"))}queryIntersectsFeature(a,h,A,x,E,P,D,F){let V=_e(a,this.paint.get(\"circle-translate\"),this.paint.get(\"circle-translate-anchor\"),P.angle,D),q=this.paint.get(\"circle-radius\").evaluate(h,A)+this.paint.get(\"circle-stroke-width\").evaluate(h,A),X=this.paint.get(\"circle-pitch-alignment\")===\"map\",rt=X?V:function(ct,mt){return ct.map(bt=>yn(bt,mt))}(V,F),at=X?q*D:q;for(let ct of x)for(let mt of ct){let bt=X?mt:yn(mt,F),Pt=at,jt=Pi([],[mt.x,mt.y,0,1],F);if(this.paint.get(\"circle-pitch-scale\")===\"viewport\"&&this.paint.get(\"circle-pitch-alignment\")===\"map\"?Pt*=jt[3]/P.cameraToCenterDistance:this.paint.get(\"circle-pitch-scale\")===\"map\"&&this.paint.get(\"circle-pitch-alignment\")===\"viewport\"&&(Pt*=P.cameraToCenterDistance/jt[3]),z(rt,bt,Pt))return!0}return!1}}function yn(u,a){let h=Pi([],[u.x,u.y,0,1],a);return new w(h[0]/h[3],h[1]/h[3])}class Or extends k{}let zF;Ge(\"HeatmapBucket\",Or,{omit:[\"layers\"]});var VX={get paint(){return zF=zF||new Hn({\"heatmap-radius\":new dr(ee.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new dr(ee.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new nr(ee.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new Bd(ee.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new nr(ee.paint_heatmap[\"heatmap-opacity\"])})}};function fC(u,{width:a,height:h},A,x){if(x){if(x instanceof Uint8ClampedArray)x=new Uint8Array(x.buffer);else if(x.length!==a*h*A)throw new RangeError(`mismatched image size. expected: ${x.length} but got: ${a*h*A}`)}else x=new Uint8Array(a*h*A);return u.width=a,u.height=h,u.data=x,u}function NF(u,{width:a,height:h},A){if(a===u.width&&h===u.height)return;let x=fC({},{width:a,height:h},A);dC(u,x,{x:0,y:0},{x:0,y:0},{width:Math.min(u.width,a),height:Math.min(u.height,h)},A),u.width=a,u.height=h,u.data=x.data}function dC(u,a,h,A,x,E){if(x.width===0||x.height===0)return a;if(x.width>u.width||x.height>u.height||h.x>u.width-x.width||h.y>u.height-x.height)throw new RangeError(\"out of range source coordinates for image copy\");if(x.width>a.width||x.height>a.height||A.x>a.width-x.width||A.y>a.height-x.height)throw new RangeError(\"out of range destination coordinates for image copy\");let P=u.data,D=a.data;if(P===D)throw new Error(\"srcData equals dstData, so image is already copied\");for(let F=0;F<x.height;F++){let V=((h.y+F)*u.width+h.x)*E,q=((A.y+F)*a.width+A.x)*E;for(let X=0;X<x.width*E;X++)D[q+X]=P[V+X]}return a}class Vx{constructor(a,h){fC(this,a,1,h)}resize(a){NF(this,a,1)}clone(){return new Vx({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(a,h,A,x,E){dC(a,h,A,x,E,1)}}class zc{constructor(a,h){fC(this,a,4,h)}resize(a){NF(this,a,4)}replace(a,h){h?this.data.set(a):this.data=a instanceof Uint8ClampedArray?new Uint8Array(a.buffer):a}clone(){return new zc({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(a,h,A,x,E){dC(a,h,A,x,E,4)}}function UF(u){let a={},h=u.resolution||256,A=u.clips?u.clips.length:1,x=u.image||new zc({width:h,height:A});if(Math.log(h)/Math.LN2%1!=0)throw new Error(`width is not a power of 2 - ${h}`);let E=(P,D,F)=>{a[u.evaluationKey]=F;let V=u.expression.evaluate(a);x.data[P+D+0]=Math.floor(255*V.r/V.a),x.data[P+D+1]=Math.floor(255*V.g/V.a),x.data[P+D+2]=Math.floor(255*V.b/V.a),x.data[P+D+3]=Math.floor(255*V.a)};if(u.clips)for(let P=0,D=0;P<A;++P,D+=4*h)for(let F=0,V=0;F<h;F++,V+=4){let q=F/(h-1),{start:X,end:rt}=u.clips[P];E(D,V,X*(1-q)+rt*q)}else for(let P=0,D=0;P<h;P++,D+=4)E(0,D,P/(h-1));return x}Ge(\"AlphaImage\",Vx),Ge(\"RGBAImage\",zc);class jX extends ji{createBucket(a){return new Or(a)}constructor(a){super(a,VX),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(a){a===\"heatmap-color\"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=UF({expression:this._transitionablePaint._values[\"heatmap-color\"].value.expression,evaluationKey:\"heatmapDensity\",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)}queryRadius(){return 0}queryIntersectsFeature(){return!1}hasOffscreenPass(){return this.paint.get(\"heatmap-opacity\")!==0&&this.visibility!==\"none\"}}let VF;var GX={get paint(){return VF=VF||new Hn({\"hillshade-illumination-direction\":new nr(ee.paint_hillshade[\"hillshade-illumination-direction\"]),\"hillshade-illumination-anchor\":new nr(ee.paint_hillshade[\"hillshade-illumination-anchor\"]),\"hillshade-exaggeration\":new nr(ee.paint_hillshade[\"hillshade-exaggeration\"]),\"hillshade-shadow-color\":new nr(ee.paint_hillshade[\"hillshade-shadow-color\"]),\"hillshade-highlight-color\":new nr(ee.paint_hillshade[\"hillshade-highlight-color\"]),\"hillshade-accent-color\":new nr(ee.paint_hillshade[\"hillshade-accent-color\"])})}};class WX extends ji{constructor(a){super(a,GX)}hasOffscreenPass(){return this.paint.get(\"hillshade-exaggeration\")!==0&&this.visibility!==\"none\"}}let HX=wn([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:qX}=HX;var pC={exports:{}};function KS(u,a,h){h=h||2;var A,x,E,P,D,F,V,q=a&&a.length,X=q?a[0]*h:u.length,rt=jF(u,0,X,h,!0),at=[];if(!rt||rt.next===rt.prev)return at;if(q&&(rt=function(mt,bt,Pt,jt){var Rt,Gt,Yt,ce=[];for(Rt=0,Gt=bt.length;Rt<Gt;Rt++)(Yt=jF(mt,bt[Rt]*jt,Rt<Gt-1?bt[Rt+1]*jt:mt.length,jt,!1))===Yt.next&&(Yt.steiner=!0),ce.push(tK(Yt));for(ce.sort(XX),Rt=0;Rt<ce.length;Rt++)Pt=KX(ce[Rt],Pt);return Pt}(u,a,rt,h)),u.length>80*h){A=E=u[0],x=P=u[1];for(var ct=h;ct<X;ct+=h)(D=u[ct])<A&&(A=D),(F=u[ct+1])<x&&(x=F),D>E&&(E=D),F>P&&(P=F);V=(V=Math.max(E-A,P-x))!==0?32767/V:0}return jx(rt,at,h,A,x,V,0),at}function jF(u,a,h,A,x){var E,P;if(x===gC(u,a,h,A)>0)for(E=a;E<h;E+=A)P=HF(E,u[E],u[E+1],P);else for(E=h-A;E>=a;E-=A)P=HF(E,u[E],u[E+1],P);return P&&JS(P,P.next)&&(Wx(P),P=P.next),P}function A0(u,a){if(!u)return u;a||(a=u);var h,A=u;do if(h=!1,A.steiner||!JS(A,A.next)&&ds(A.prev,A,A.next)!==0)A=A.next;else{if(Wx(A),(A=a=A.prev)===A.next)break;h=!0}while(h||A!==a);return a}function jx(u,a,h,A,x,E,P){if(u){!P&&E&&function(q,X,rt,at){var ct=q;do ct.z===0&&(ct.z=AC(ct.x,ct.y,X,rt,at)),ct.prevZ=ct.prev,ct.nextZ=ct.next,ct=ct.next;while(ct!==q);ct.prevZ.nextZ=null,ct.prevZ=null,function(mt){var bt,Pt,jt,Rt,Gt,Yt,ce,Ne,ir=1;do{for(Pt=mt,mt=null,Gt=null,Yt=0;Pt;){for(Yt++,jt=Pt,ce=0,bt=0;bt<ir&&(ce++,jt=jt.nextZ);bt++);for(Ne=ir;ce>0||Ne>0&&jt;)ce!==0&&(Ne===0||!jt||Pt.z<=jt.z)?(Rt=Pt,Pt=Pt.nextZ,ce--):(Rt=jt,jt=jt.nextZ,Ne--),Gt?Gt.nextZ=Rt:mt=Rt,Rt.prevZ=Gt,Gt=Rt;Pt=jt}Gt.nextZ=null,ir*=2}while(Yt>1)}(ct)}(u,A,x,E);for(var D,F,V=u;u.prev!==u.next;)if(D=u.prev,F=u.next,E?YX(u,A,x,E):ZX(u))a.push(D.i/h|0),a.push(u.i/h|0),a.push(F.i/h|0),Wx(u),u=F.next,V=F.next;else if((u=F)===V){P?P===1?jx(u=QX(A0(u),a,h),a,h,A,x,E,2):P===2&&$X(u,a,h,A,x,E):jx(A0(u),a,h,A,x,E,1);break}}}function ZX(u){var a=u.prev,h=u,A=u.next;if(ds(a,h,A)>=0)return!1;for(var x=a.x,E=h.x,P=A.x,D=a.y,F=h.y,V=A.y,q=x<E?x<P?x:P:E<P?E:P,X=D<F?D<V?D:V:F<V?F:V,rt=x>E?x>P?x:P:E>P?E:P,at=D>F?D>V?D:V:F>V?F:V,ct=A.next;ct!==a;){if(ct.x>=q&&ct.x<=rt&&ct.y>=X&&ct.y<=at&&T_(x,D,E,F,P,V,ct.x,ct.y)&&ds(ct.prev,ct,ct.next)>=0)return!1;ct=ct.next}return!0}function YX(u,a,h,A){var x=u.prev,E=u,P=u.next;if(ds(x,E,P)>=0)return!1;for(var D=x.x,F=E.x,V=P.x,q=x.y,X=E.y,rt=P.y,at=D<F?D<V?D:V:F<V?F:V,ct=q<X?q<rt?q:rt:X<rt?X:rt,mt=D>F?D>V?D:V:F>V?F:V,bt=q>X?q>rt?q:rt:X>rt?X:rt,Pt=AC(at,ct,a,h,A),jt=AC(mt,bt,a,h,A),Rt=u.prevZ,Gt=u.nextZ;Rt&&Rt.z>=Pt&&Gt&&Gt.z<=jt;){if(Rt.x>=at&&Rt.x<=mt&&Rt.y>=ct&&Rt.y<=bt&&Rt!==x&&Rt!==P&&T_(D,q,F,X,V,rt,Rt.x,Rt.y)&&ds(Rt.prev,Rt,Rt.next)>=0||(Rt=Rt.prevZ,Gt.x>=at&&Gt.x<=mt&&Gt.y>=ct&&Gt.y<=bt&&Gt!==x&&Gt!==P&&T_(D,q,F,X,V,rt,Gt.x,Gt.y)&&ds(Gt.prev,Gt,Gt.next)>=0))return!1;Gt=Gt.nextZ}for(;Rt&&Rt.z>=Pt;){if(Rt.x>=at&&Rt.x<=mt&&Rt.y>=ct&&Rt.y<=bt&&Rt!==x&&Rt!==P&&T_(D,q,F,X,V,rt,Rt.x,Rt.y)&&ds(Rt.prev,Rt,Rt.next)>=0)return!1;Rt=Rt.prevZ}for(;Gt&&Gt.z<=jt;){if(Gt.x>=at&&Gt.x<=mt&&Gt.y>=ct&&Gt.y<=bt&&Gt!==x&&Gt!==P&&T_(D,q,F,X,V,rt,Gt.x,Gt.y)&&ds(Gt.prev,Gt,Gt.next)>=0)return!1;Gt=Gt.nextZ}return!0}function QX(u,a,h){var A=u;do{var x=A.prev,E=A.next.next;!JS(x,E)&&GF(x,A,A.next,E)&&Gx(x,E)&&Gx(E,x)&&(a.push(x.i/h|0),a.push(A.i/h|0),a.push(E.i/h|0),Wx(A),Wx(A.next),A=u=E),A=A.next}while(A!==u);return A0(A)}function $X(u,a,h,A,x,E){var P=u;do{for(var D=P.next.next;D!==P.prev;){if(P.i!==D.i&&eK(P,D)){var F=WF(P,D);return P=A0(P,P.next),F=A0(F,F.next),jx(P,a,h,A,x,E,0),void jx(F,a,h,A,x,E,0)}D=D.next}P=P.next}while(P!==u)}function XX(u,a){return u.x-a.x}function KX(u,a){var h=function(x,E){var P,D=E,F=x.x,V=x.y,q=-1/0;do{if(V<=D.y&&V>=D.next.y&&D.next.y!==D.y){var X=D.x+(V-D.y)*(D.next.x-D.x)/(D.next.y-D.y);if(X<=F&&X>q&&(q=X,P=D.x<D.next.x?D:D.next,X===F))return P}D=D.next}while(D!==E);if(!P)return null;var rt,at=P,ct=P.x,mt=P.y,bt=1/0;D=P;do F>=D.x&&D.x>=ct&&F!==D.x&&T_(V<mt?F:q,V,ct,mt,V<mt?q:F,V,D.x,D.y)&&(rt=Math.abs(V-D.y)/(F-D.x),Gx(D,x)&&(rt<bt||rt===bt&&(D.x>P.x||D.x===P.x&&JX(P,D)))&&(P=D,bt=rt)),D=D.next;while(D!==at);return P}(u,a);if(!h)return a;var A=WF(h,u);return A0(A,A.next),A0(h,h.next)}function JX(u,a){return ds(u.prev,u,a.prev)<0&&ds(a.next,u,u.next)<0}function AC(u,a,h,A,x){return(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u=(u-h)*x|0)|u<<8))|u<<4))|u<<2))|u<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=(a-A)*x|0)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function tK(u){var a=u,h=u;do(a.x<h.x||a.x===h.x&&a.y<h.y)&&(h=a),a=a.next;while(a!==u);return h}function T_(u,a,h,A,x,E,P,D){return(x-P)*(a-D)>=(u-P)*(E-D)&&(u-P)*(A-D)>=(h-P)*(a-D)&&(h-P)*(E-D)>=(x-P)*(A-D)}function eK(u,a){return u.next.i!==a.i&&u.prev.i!==a.i&&!function(h,A){var x=h;do{if(x.i!==h.i&&x.next.i!==h.i&&x.i!==A.i&&x.next.i!==A.i&&GF(x,x.next,h,A))return!0;x=x.next}while(x!==h);return!1}(u,a)&&(Gx(u,a)&&Gx(a,u)&&function(h,A){var x=h,E=!1,P=(h.x+A.x)/2,D=(h.y+A.y)/2;do x.y>D!=x.next.y>D&&x.next.y!==x.y&&P<(x.next.x-x.x)*(D-x.y)/(x.next.y-x.y)+x.x&&(E=!E),x=x.next;while(x!==h);return E}(u,a)&&(ds(u.prev,u,a.prev)||ds(u,a.prev,a))||JS(u,a)&&ds(u.prev,u,u.next)>0&&ds(a.prev,a,a.next)>0)}function ds(u,a,h){return(a.y-u.y)*(h.x-a.x)-(a.x-u.x)*(h.y-a.y)}function JS(u,a){return u.x===a.x&&u.y===a.y}function GF(u,a,h,A){var x=eT(ds(u,a,h)),E=eT(ds(u,a,A)),P=eT(ds(h,A,u)),D=eT(ds(h,A,a));return x!==E&&P!==D||!(x!==0||!tT(u,h,a))||!(E!==0||!tT(u,A,a))||!(P!==0||!tT(h,u,A))||!(D!==0||!tT(h,a,A))}function tT(u,a,h){return a.x<=Math.max(u.x,h.x)&&a.x>=Math.min(u.x,h.x)&&a.y<=Math.max(u.y,h.y)&&a.y>=Math.min(u.y,h.y)}function eT(u){return u>0?1:u<0?-1:0}function Gx(u,a){return ds(u.prev,u,u.next)<0?ds(u,a,u.next)>=0&&ds(u,u.prev,a)>=0:ds(u,a,u.prev)<0||ds(u,u.next,a)<0}function WF(u,a){var h=new mC(u.i,u.x,u.y),A=new mC(a.i,a.x,a.y),x=u.next,E=a.prev;return u.next=a,a.prev=u,h.next=x,x.prev=h,A.next=h,h.prev=A,E.next=A,A.prev=E,A}function HF(u,a,h,A){var x=new mC(u,a,h);return A?(x.next=A.next,x.prev=A,A.next.prev=x,A.next=x):(x.prev=x,x.next=x),x}function Wx(u){u.next.prev=u.prev,u.prev.next=u.next,u.prevZ&&(u.prevZ.nextZ=u.nextZ),u.nextZ&&(u.nextZ.prevZ=u.prevZ)}function mC(u,a,h){this.i=u,this.x=a,this.y=h,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function gC(u,a,h,A){for(var x=0,E=a,P=h-A;E<h;E+=A)x+=(u[P]-u[E])*(u[E+1]+u[P+1]),P=E;return x}pC.exports=KS,pC.exports.default=KS,KS.deviation=function(u,a,h,A){var x=a&&a.length,E=Math.abs(gC(u,0,x?a[0]*h:u.length,h));if(x)for(var P=0,D=a.length;P<D;P++)E-=Math.abs(gC(u,a[P]*h,P<D-1?a[P+1]*h:u.length,h));var F=0;for(P=0;P<A.length;P+=3){var V=A[P]*h,q=A[P+1]*h,X=A[P+2]*h;F+=Math.abs((u[V]-u[X])*(u[q+1]-u[V+1])-(u[V]-u[q])*(u[X+1]-u[V+1]))}return E===0&&F===0?0:Math.abs((F-E)/E)},KS.flatten=function(u){for(var a=u[0][0].length,h={vertices:[],holes:[],dimensions:a},A=0,x=0;x<u.length;x++){for(var E=0;E<u[x].length;E++)for(var P=0;P<a;P++)h.vertices.push(u[x][E][P]);x>0&&h.holes.push(A+=u[x-1].length)}return h};var qF=c(pC.exports);function rK(u,a,h,A,x){ZF(u,a,h||0,A||u.length-1,x||iK)}function ZF(u,a,h,A,x){for(;A>h;){if(A-h>600){var E=A-h+1,P=a-h+1,D=Math.log(E),F=.5*Math.exp(2*D/3),V=.5*Math.sqrt(D*F*(E-F)/E)*(P-E/2<0?-1:1);ZF(u,a,Math.max(h,Math.floor(a-P*F/E+V)),Math.min(A,Math.floor(a+(E-P)*F/E+V)),x)}var q=u[a],X=h,rt=A;for(Hx(u,h,a),x(u[A],q)>0&&Hx(u,h,A);X<rt;){for(Hx(u,X,rt),X++,rt--;x(u[X],q)<0;)X++;for(;x(u[rt],q)>0;)rt--}x(u[h],q)===0?Hx(u,h,rt):Hx(u,++rt,A),rt<=a&&(h=rt+1),a<=rt&&(A=rt-1)}}function Hx(u,a,h){var A=u[a];u[a]=u[h],u[h]=A}function iK(u,a){return u<a?-1:u>a?1:0}function _C(u,a){let h=u.length;if(h<=1)return[u];let A=[],x,E;for(let P=0;P<h;P++){let D=Sr(u[P]);D!==0&&(u[P].area=Math.abs(D),E===void 0&&(E=D<0),E===D<0?(x&&A.push(x),x=[u[P]]):x.push(u[P]))}if(x&&A.push(x),a>1)for(let P=0;P<A.length;P++)A[P].length<=a||(rK(A[P],a,1,A[P].length-1,nK),A[P]=A[P].slice(0,a));return A}function nK(u,a){return a.area-u.area}function yC(u,a,h){let A=h.patternDependencies,x=!1;for(let E of a){let P=E.paint.get(`${u}-pattern`);P.isConstant()||(x=!0);let D=P.constantOr(null);D&&(x=!0,A[D.to]=!0,A[D.from]=!0)}return x}function vC(u,a,h,A,x){let E=x.patternDependencies;for(let P of a){let D=P.paint.get(`${u}-pattern`).value;if(D.kind!==\"constant\"){let F=D.evaluate({zoom:A-1},h,{},x.availableImages),V=D.evaluate({zoom:A},h,{},x.availableImages),q=D.evaluate({zoom:A+1},h,{},x.availableImages);F=F&&F.name?F.name:F,V=V&&V.name?V.name:V,q=q&&q.name?q.name:q,E[F]=!0,E[V]=!0,E[q]=!0,h.patterns[P.id]={min:F,mid:V,max:q}}}return h}class xC{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Kr,this.indexArray=new Gs,this.indexArray2=new hs,this.programConfigurations=new Va(a.layers,a.zoom),this.segments=new jr,this.segments2=new jr,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=yC(\"fill\",this.layers,h);let x=this.layers[0].layout.get(\"fill-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:F,index:V,sourceLayerIndex:q}of a){let X=this.layers[0]._featureFilter.needGeometry,rt=S(D,X);if(!this.layers[0]._featureFilter.filter(new un(this.zoom),rt,A))continue;let at=E?x.evaluate(rt,{},A,h.availableImages):void 0,ct={id:F,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:X?rt.geometry:y(D),patterns:{},sortKey:at};P.push(ct)}E&&P.sort((D,F)=>D.sortKey-F.sortKey);for(let D of P){let{geometry:F,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let X=vC(\"fill\",this.layers,D,this.zoom,h);this.patternFeatures.push(X)}else this.addFeature(D,F,V,A,{});h.featureIndex.insert(a[V].feature,F,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,qX),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.indexBuffer2=a.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(a,h,A,x,E){for(let P of _C(h,500)){let D=0;for(let at of P)D+=at.length;let F=this.segments.prepareSegment(D,this.layoutVertexArray,this.indexArray),V=F.vertexLength,q=[],X=[];for(let at of P){if(at.length===0)continue;at!==P[0]&&X.push(q.length/2);let ct=this.segments2.prepareSegment(at.length,this.layoutVertexArray,this.indexArray2),mt=ct.vertexLength;this.layoutVertexArray.emplaceBack(at[0].x,at[0].y),this.indexArray2.emplaceBack(mt+at.length-1,mt),q.push(at[0].x),q.push(at[0].y);for(let bt=1;bt<at.length;bt++)this.layoutVertexArray.emplaceBack(at[bt].x,at[bt].y),this.indexArray2.emplaceBack(mt+bt-1,mt+bt),q.push(at[bt].x),q.push(at[bt].y);ct.vertexLength+=at.length,ct.primitiveLength+=at.length}let rt=qF(q,X);for(let at=0;at<rt.length;at+=3)this.indexArray.emplaceBack(V+rt[at],V+rt[at+1],V+rt[at+2]);F.vertexLength+=D,F.primitiveLength+=rt.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,E,x)}}let YF,QF;Ge(\"FillBucket\",xC,{omit:[\"layers\",\"patternFeatures\"]});var sK={get paint(){return QF=QF||new Hn({\"fill-antialias\":new nr(ee.paint_fill[\"fill-antialias\"]),\"fill-opacity\":new dr(ee.paint_fill[\"fill-opacity\"]),\"fill-color\":new dr(ee.paint_fill[\"fill-color\"]),\"fill-outline-color\":new dr(ee.paint_fill[\"fill-outline-color\"]),\"fill-translate\":new nr(ee.paint_fill[\"fill-translate\"]),\"fill-translate-anchor\":new nr(ee.paint_fill[\"fill-translate-anchor\"]),\"fill-pattern\":new wf(ee.paint_fill[\"fill-pattern\"])})},get layout(){return YF=YF||new Hn({\"fill-sort-key\":new dr(ee.layout_fill[\"fill-sort-key\"])})}};class oK extends ji{constructor(a){super(a,sK)}recalculate(a,h){super.recalculate(a,h);let A=this.paint._values[\"fill-outline-color\"];A.value.kind===\"constant\"&&A.value.value===void 0&&(this.paint._values[\"fill-outline-color\"]=this.paint._values[\"fill-color\"])}createBucket(a){return new xC(a)}queryRadius(){return te(this.paint.get(\"fill-translate\"))}queryIntersectsFeature(a,h,A,x,E,P,D){return H(_e(a,this.paint.get(\"fill-translate\"),this.paint.get(\"fill-translate-anchor\"),P.angle,D),x)}isTileClipped(){return!0}}let aK=wn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_normal_ed\",components:4,type:\"Int16\"}],4),lK=wn([{name:\"a_centroid\",components:2,type:\"Int16\"}],4),{members:cK}=aK;var uA={},uK=f,$F=M_;function M_(u,a,h,A,x){this.properties={},this.extent=h,this.type=0,this._pbf=u,this._geometry=-1,this._keys=A,this._values=x,u.readFields(hK,this,a)}function hK(u,a,h){u==1?a.id=h.readVarint():u==2?function(A,x){for(var E=A.readVarint()+A.pos;A.pos<E;){var P=x._keys[A.readVarint()],D=x._values[A.readVarint()];x.properties[P]=D}}(h,a):u==3?a.type=h.readVarint():u==4&&(a._geometry=h.pos)}function fK(u){for(var a,h,A=0,x=0,E=u.length,P=E-1;x<E;P=x++)A+=((h=u[P]).x-(a=u[x]).x)*(a.y+h.y);return A}M_.types=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"],M_.prototype.loadGeometry=function(){var u=this._pbf;u.pos=this._geometry;for(var a,h=u.readVarint()+u.pos,A=1,x=0,E=0,P=0,D=[];u.pos<h;){if(x<=0){var F=u.readVarint();A=7&F,x=F>>3}if(x--,A===1||A===2)E+=u.readSVarint(),P+=u.readSVarint(),A===1&&(a&&D.push(a),a=[]),a.push(new uK(E,P));else{if(A!==7)throw new Error(\"unknown command \"+A);a&&a.push(a[0].clone())}}return a&&D.push(a),D},M_.prototype.bbox=function(){var u=this._pbf;u.pos=this._geometry;for(var a=u.readVarint()+u.pos,h=1,A=0,x=0,E=0,P=1/0,D=-1/0,F=1/0,V=-1/0;u.pos<a;){if(A<=0){var q=u.readVarint();h=7&q,A=q>>3}if(A--,h===1||h===2)(x+=u.readSVarint())<P&&(P=x),x>D&&(D=x),(E+=u.readSVarint())<F&&(F=E),E>V&&(V=E);else if(h!==7)throw new Error(\"unknown command \"+h)}return[P,F,D,V]},M_.prototype.toGeoJSON=function(u,a,h){var A,x,E=this.extent*Math.pow(2,h),P=this.extent*u,D=this.extent*a,F=this.loadGeometry(),V=M_.types[this.type];function q(at){for(var ct=0;ct<at.length;ct++){var mt=at[ct];at[ct]=[360*(mt.x+P)/E-180,360/Math.PI*Math.atan(Math.exp((180-360*(mt.y+D)/E)*Math.PI/180))-90]}}switch(this.type){case 1:var X=[];for(A=0;A<F.length;A++)X[A]=F[A][0];q(F=X);break;case 2:for(A=0;A<F.length;A++)q(F[A]);break;case 3:for(F=function(at){var ct=at.length;if(ct<=1)return[at];for(var mt,bt,Pt=[],jt=0;jt<ct;jt++){var Rt=fK(at[jt]);Rt!==0&&(bt===void 0&&(bt=Rt<0),bt===Rt<0?(mt&&Pt.push(mt),mt=[at[jt]]):mt.push(at[jt]))}return mt&&Pt.push(mt),Pt}(F),A=0;A<F.length;A++)for(x=0;x<F[A].length;x++)q(F[A][x])}F.length===1?F=F[0]:V=\"Multi\"+V;var rt={type:\"Feature\",geometry:{type:V,coordinates:F},properties:this.properties};return\"id\"in this&&(rt.id=this.id),rt};var dK=$F,XF=KF;function KF(u,a){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=u,this._keys=[],this._values=[],this._features=[],u.readFields(pK,this,a),this.length=this._features.length}function pK(u,a,h){u===15?a.version=h.readVarint():u===1?a.name=h.readString():u===5?a.extent=h.readVarint():u===2?a._features.push(h.pos):u===3?a._keys.push(h.readString()):u===4&&a._values.push(function(A){for(var x=null,E=A.readVarint()+A.pos;A.pos<E;){var P=A.readVarint()>>3;x=P===1?A.readString():P===2?A.readFloat():P===3?A.readDouble():P===4?A.readVarint64():P===5?A.readVarint():P===6?A.readSVarint():P===7?A.readBoolean():null}return x}(h))}KF.prototype.feature=function(u){if(u<0||u>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[u];var a=this._pbf.readVarint()+this._pbf.pos;return new dK(this._pbf,a,this.extent,this._keys,this._values)};var AK=XF;function mK(u,a,h){if(u===3){var A=new AK(h,h.readVarint()+h.pos);A.length&&(a[A.name]=A)}}uA.VectorTile=function(u,a){this.layers=u.readFields(mK,{},a)},uA.VectorTileFeature=$F,uA.VectorTileLayer=XF;let gK=uA.VectorTileFeature.types,bC=Math.pow(2,13);function qx(u,a,h,A,x,E,P,D){u.emplaceBack(a,h,2*Math.floor(A*bC)+P,x*bC*2,E*bC*2,Math.round(D))}class wC{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new Ee,this.centroidVertexArray=new be,this.indexArray=new Gs,this.programConfigurations=new Va(a.layers,a.zoom),this.segments=new jr,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.features=[],this.hasPattern=yC(\"fill-extrusion\",this.layers,h);for(let{feature:x,id:E,index:P,sourceLayerIndex:D}of a){let F=this.layers[0]._featureFilter.needGeometry,V=S(x,F);if(!this.layers[0]._featureFilter.filter(new un(this.zoom),V,A))continue;let q={id:E,sourceLayerIndex:D,index:P,geometry:F?V.geometry:y(x),properties:x.properties,type:x.type,patterns:{}};this.hasPattern?this.features.push(vC(\"fill-extrusion\",this.layers,q,this.zoom,h)):this.addFeature(q,q.geometry,P,A,{}),h.featureIndex.insert(x,q.geometry,P,D,this.index,!0)}}addFeatures(a,h,A){for(let x of this.features){let{geometry:E}=x;this.addFeature(x,E,x.index,h,A)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,cK),this.centroidVertexBuffer=a.createVertexBuffer(this.centroidVertexArray,lK.members,!0),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(a,h,A,x,E){let P={x:0,y:0,vertexCount:0};for(let D of _C(h,500)){let F=0;for(let ct of D)F+=ct.length;let V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(let ct of D){if(ct.length===0||yK(ct))continue;let mt=0;for(let bt=0;bt<ct.length;bt++){let Pt=ct[bt];if(bt>=1){let jt=ct[bt-1];if(!_K(Pt,jt)){V.vertexLength+4>jr.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let Rt=Pt.sub(jt)._perp()._unit(),Gt=jt.dist(Pt);mt+Gt>32768&&(mt=0),qx(this.layoutVertexArray,Pt.x,Pt.y,Rt.x,Rt.y,0,0,mt),qx(this.layoutVertexArray,Pt.x,Pt.y,Rt.x,Rt.y,0,1,mt),P.x+=2*Pt.x,P.y+=2*Pt.y,P.vertexCount+=2,mt+=Gt,qx(this.layoutVertexArray,jt.x,jt.y,Rt.x,Rt.y,0,0,mt),qx(this.layoutVertexArray,jt.x,jt.y,Rt.x,Rt.y,0,1,mt),P.x+=2*jt.x,P.y+=2*jt.y,P.vertexCount+=2;let Yt=V.vertexLength;this.indexArray.emplaceBack(Yt,Yt+2,Yt+1),this.indexArray.emplaceBack(Yt+1,Yt+2,Yt+3),V.vertexLength+=4,V.primitiveLength+=2}}}}if(V.vertexLength+F>jr.MAX_VERTEX_ARRAY_LENGTH&&(V=this.segments.prepareSegment(F,this.layoutVertexArray,this.indexArray)),gK[a.type]!==\"Polygon\")continue;let q=[],X=[],rt=V.vertexLength;for(let ct of D)if(ct.length!==0){ct!==D[0]&&X.push(q.length/2);for(let mt=0;mt<ct.length;mt++){let bt=ct[mt];qx(this.layoutVertexArray,bt.x,bt.y,0,0,1,1,0),P.x+=bt.x,P.y+=bt.y,P.vertexCount+=1,q.push(bt.x),q.push(bt.y)}}let at=qF(q,X);for(let ct=0;ct<at.length;ct+=3)this.indexArray.emplaceBack(rt+at[ct],rt+at[ct+2],rt+at[ct+1]);V.primitiveLength+=at.length/3,V.vertexLength+=F}for(let D=0;D<P.vertexCount;D++)this.centroidVertexArray.emplaceBack(Math.floor(P.x/P.vertexCount),Math.floor(P.y/P.vertexCount));this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,E,x)}}function _K(u,a){return u.x===a.x&&(u.x<0||u.x>en)||u.y===a.y&&(u.y<0||u.y>en)}function yK(u){return u.every(a=>a.x<0)||u.every(a=>a.x>en)||u.every(a=>a.y<0)||u.every(a=>a.y>en)}let JF;Ge(\"FillExtrusionBucket\",wC,{omit:[\"layers\",\"features\"]});var vK={get paint(){return JF=JF||new Hn({\"fill-extrusion-opacity\":new nr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new dr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new nr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new nr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new wf(ee[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new dr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new dr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new nr(ee[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})}};class xK extends ji{constructor(a){super(a,vK)}createBucket(a){return new wC(a)}queryRadius(){return te(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return!0}queryIntersectsFeature(a,h,A,x,E,P,D,F){let V=_e(a,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),P.angle,D),q=this.paint.get(\"fill-extrusion-height\").evaluate(h,A),X=this.paint.get(\"fill-extrusion-base\").evaluate(h,A),rt=function(ct,mt,bt,Pt){let jt=[];for(let Rt of ct){let Gt=[Rt.x,Rt.y,0,1];Pi(Gt,Gt,mt),jt.push(new w(Gt[0]/Gt[3],Gt[1]/Gt[3]))}return jt}(V,F),at=function(ct,mt,bt,Pt){let jt=[],Rt=[],Gt=Pt[8]*mt,Yt=Pt[9]*mt,ce=Pt[10]*mt,Ne=Pt[11]*mt,ir=Pt[8]*bt,Fe=Pt[9]*bt,Re=Pt[10]*bt,Me=Pt[11]*bt;for(let Ye of ct){let Ie=[],Ae=[];for(let hr of Ye){let sr=hr.x,ri=hr.y,Tn=Pt[0]*sr+Pt[4]*ri+Pt[12],Rn=Pt[1]*sr+Pt[5]*ri+Pt[13],qs=Pt[2]*sr+Pt[6]*ri+Pt[14],Ql=Pt[3]*sr+Pt[7]*ri+Pt[15],ja=qs+ce,Is=Ql+Ne,Po=Tn+ir,$o=Rn+Fe,Ga=qs+Re,Wa=Ql+Me,Zs=new w((Tn+Gt)/Is,(Rn+Yt)/Is);Zs.z=ja/Is,Ie.push(Zs);let Ys=new w(Po/Wa,$o/Wa);Ys.z=Ga/Wa,Ae.push(Ys)}jt.push(Ie),Rt.push(Ae)}return[jt,Rt]}(x,X,q,F);return function(ct,mt,bt){let Pt=1/0;H(bt,mt)&&(Pt=t6(bt,mt[0]));for(let jt=0;jt<mt.length;jt++){let Rt=mt[jt],Gt=ct[jt];for(let Yt=0;Yt<Rt.length-1;Yt++){let ce=Rt[Yt],Ne=[ce,Rt[Yt+1],Gt[Yt+1],Gt[Yt],ce];L(bt,Ne)&&(Pt=Math.min(Pt,t6(bt,Ne)))}}return Pt!==1/0&&Pt}(at[0],at[1],rt)}}function Zx(u,a){return u.x*a.x+u.y*a.y}function t6(u,a){if(u.length===1){let h=0,A=a[h++],x;for(;!x||A.equals(x);)if(x=a[h++],!x)return 1/0;for(;h<a.length;h++){let E=a[h],P=u[0],D=x.sub(A),F=E.sub(A),V=P.sub(A),q=Zx(D,D),X=Zx(D,F),rt=Zx(F,F),at=Zx(V,D),ct=Zx(V,F),mt=q*rt-X*X,bt=(rt*at-X*ct)/mt,Pt=(q*ct-X*at)/mt,jt=A.z*(1-bt-Pt)+x.z*bt+E.z*Pt;if(isFinite(jt))return jt}return 1/0}{let h=1/0;for(let A of a)h=Math.min(h,A.z);return h}}let bK=wn([{name:\"a_pos_normal\",components:2,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint8\"}],4),{members:wK}=bK,SK=wn([{name:\"a_uv_x\",components:1,type:\"Float32\"},{name:\"a_split_index\",components:1,type:\"Float32\"}]),{members:TK}=SK,MK=uA.VectorTileFeature.types,EK=Math.cos(Math.PI/180*37.5),e6=Math.pow(2,14)/.5;class SC{constructor(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(h=>h.id),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(h=>{this.gradients[h.id]={}}),this.layoutVertexArray=new pr,this.layoutVertexArray2=new tr,this.indexArray=new Gs,this.programConfigurations=new Va(a.layers,a.zoom),this.segments=new jr,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(a,h,A){this.hasPattern=yC(\"line\",this.layers,h);let x=this.layers[0].layout.get(\"line-sort-key\"),E=!x.isConstant(),P=[];for(let{feature:D,id:F,index:V,sourceLayerIndex:q}of a){let X=this.layers[0]._featureFilter.needGeometry,rt=S(D,X);if(!this.layers[0]._featureFilter.filter(new un(this.zoom),rt,A))continue;let at=E?x.evaluate(rt,{},A):void 0,ct={id:F,properties:D.properties,type:D.type,sourceLayerIndex:q,index:V,geometry:X?rt.geometry:y(D),patterns:{},sortKey:at};P.push(ct)}E&&P.sort((D,F)=>D.sortKey-F.sortKey);for(let D of P){let{geometry:F,index:V,sourceLayerIndex:q}=D;if(this.hasPattern){let X=vC(\"line\",this.layers,D,this.zoom,h);this.patternFeatures.push(X)}else this.addFeature(D,F,V,A,{});h.featureIndex.insert(a[V].feature,F,V,q,this.index)}}update(a,h,A){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,h,this.stateDependentLayers,A)}addFeatures(a,h,A){for(let x of this.patternFeatures)this.addFeature(x,x.geometry,x.index,h,A)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(a){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=a.createVertexBuffer(this.layoutVertexArray2,TK)),this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,wK),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(a){if(a.properties&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_start\")&&Object.prototype.hasOwnProperty.call(a.properties,\"mapbox_clip_end\"))return{start:+a.properties.mapbox_clip_start,end:+a.properties.mapbox_clip_end}}addFeature(a,h,A,x,E){let P=this.layers[0].layout,D=P.get(\"line-join\").evaluate(a,{}),F=P.get(\"line-cap\"),V=P.get(\"line-miter-limit\"),q=P.get(\"line-round-limit\");this.lineClips=this.lineFeatureClips(a);for(let X of h)this.addLine(X,a,D,F,V,q);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,A,E,x)}addLine(a,h,A,x,E,P){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let Pt=0;Pt<a.length-1;Pt++)this.totalDistance+=a[Pt].dist(a[Pt+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}let D=MK[h.type]===\"Polygon\",F=a.length;for(;F>=2&&a[F-1].equals(a[F-2]);)F--;let V=0;for(;V<F-1&&a[V].equals(a[V+1]);)V++;if(F<(D?3:2))return;A===\"bevel\"&&(E=1.05);let q=this.overscaling<=16?15*en/(512*this.overscaling):0,X=this.segments.prepareSegment(10*F,this.layoutVertexArray,this.indexArray),rt,at,ct,mt,bt;this.e1=this.e2=-1,D&&(rt=a[F-2],bt=a[V].sub(rt)._unit()._perp());for(let Pt=V;Pt<F;Pt++){if(ct=Pt===F-1?D?a[V+1]:void 0:a[Pt+1],ct&&a[Pt].equals(ct))continue;bt&&(mt=bt),rt&&(at=rt),rt=a[Pt],bt=ct?ct.sub(rt)._unit()._perp():mt,mt=mt||bt;let jt=mt.add(bt);jt.x===0&&jt.y===0||jt._unit();let Rt=mt.x*bt.x+mt.y*bt.y,Gt=jt.x*bt.x+jt.y*bt.y,Yt=Gt!==0?1/Gt:1/0,ce=2*Math.sqrt(2-2*Gt),Ne=Gt<EK&&at&&ct,ir=mt.x*bt.y-mt.y*bt.x>0;if(Ne&&Pt>V){let Me=rt.dist(at);if(Me>2*q){let Ye=rt.sub(rt.sub(at)._mult(q/Me)._round());this.updateDistance(at,Ye),this.addCurrentVertex(Ye,mt,0,0,X),at=Ye}}let Fe=at&&ct,Re=Fe?A:D?\"butt\":x;if(Fe&&Re===\"round\"&&(Yt<P?Re=\"miter\":Yt<=2&&(Re=\"fakeround\")),Re===\"miter\"&&Yt>E&&(Re=\"bevel\"),Re===\"bevel\"&&(Yt>2&&(Re=\"flipbevel\"),Yt<E&&(Re=\"miter\")),at&&this.updateDistance(at,rt),Re===\"miter\")jt._mult(Yt),this.addCurrentVertex(rt,jt,0,0,X);else if(Re===\"flipbevel\"){if(Yt>100)jt=bt.mult(-1);else{let Me=Yt*mt.add(bt).mag()/mt.sub(bt).mag();jt._perp()._mult(Me*(ir?-1:1))}this.addCurrentVertex(rt,jt,0,0,X),this.addCurrentVertex(rt,jt.mult(-1),0,0,X)}else if(Re===\"bevel\"||Re===\"fakeround\"){let Me=-Math.sqrt(Yt*Yt-1),Ye=ir?Me:0,Ie=ir?0:Me;if(at&&this.addCurrentVertex(rt,mt,Ye,Ie,X),Re===\"fakeround\"){let Ae=Math.round(180*ce/Math.PI/20);for(let hr=1;hr<Ae;hr++){let sr=hr/Ae;if(sr!==.5){let Tn=sr-.5;sr+=sr*Tn*(sr-1)*((1.0904+Rt*(Rt*(3.55645-1.43519*Rt)-3.2452))*Tn*Tn+(.848013+Rt*(.215638*Rt-1.06021)))}let ri=bt.sub(mt)._mult(sr)._add(mt)._unit()._mult(ir?-1:1);this.addHalfVertex(rt,ri.x,ri.y,!1,ir,0,X)}}ct&&this.addCurrentVertex(rt,bt,-Ye,-Ie,X)}else if(Re===\"butt\")this.addCurrentVertex(rt,jt,0,0,X);else if(Re===\"square\"){let Me=at?1:-1;this.addCurrentVertex(rt,jt,Me,Me,X)}else Re===\"round\"&&(at&&(this.addCurrentVertex(rt,mt,0,0,X),this.addCurrentVertex(rt,mt,1,1,X,!0)),ct&&(this.addCurrentVertex(rt,bt,-1,-1,X,!0),this.addCurrentVertex(rt,bt,0,0,X)));if(Ne&&Pt<F-1){let Me=rt.dist(ct);if(Me>2*q){let Ye=rt.add(ct.sub(rt)._mult(q/Me)._round());this.updateDistance(rt,Ye),this.addCurrentVertex(Ye,bt,0,0,X),rt=Ye}}}}addCurrentVertex(a,h,A,x,E,P=!1){let D=h.y*x-h.x,F=-h.y-h.x*x;this.addHalfVertex(a,h.x+h.y*A,h.y-h.x*A,P,!1,A,E),this.addHalfVertex(a,D,F,P,!0,-x,E),this.distance>e6/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(a,h,A,x,E,P))}addHalfVertex({x:a,y:h},A,x,E,P,D,F){let V=.5*(this.lineClips?this.scaledDistance*(e6-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((a<<1)+(E?1:0),(h<<1)+(P?1:0),Math.round(63*A)+128,Math.round(63*x)+128,1+(D===0?0:D<0?-1:1)|(63&V)<<2,V>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);let q=F.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,q),F.primitiveLength++),P?this.e2=q:this.e1=q}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(a,h){this.distance+=a.dist(h),this.updateScaledDistance()}}let r6,i6;Ge(\"LineBucket\",SC,{omit:[\"layers\",\"patternFeatures\"]});var n6={get paint(){return i6=i6||new Hn({\"line-opacity\":new dr(ee.paint_line[\"line-opacity\"]),\"line-color\":new dr(ee.paint_line[\"line-color\"]),\"line-translate\":new nr(ee.paint_line[\"line-translate\"]),\"line-translate-anchor\":new nr(ee.paint_line[\"line-translate-anchor\"]),\"line-width\":new dr(ee.paint_line[\"line-width\"]),\"line-gap-width\":new dr(ee.paint_line[\"line-gap-width\"]),\"line-offset\":new dr(ee.paint_line[\"line-offset\"]),\"line-blur\":new dr(ee.paint_line[\"line-blur\"]),\"line-dasharray\":new aA(ee.paint_line[\"line-dasharray\"]),\"line-pattern\":new wf(ee.paint_line[\"line-pattern\"]),\"line-gradient\":new Bd(ee.paint_line[\"line-gradient\"])})},get layout(){return r6=r6||new Hn({\"line-cap\":new nr(ee.layout_line[\"line-cap\"]),\"line-join\":new dr(ee.layout_line[\"line-join\"]),\"line-miter-limit\":new nr(ee.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new nr(ee.layout_line[\"line-round-limit\"]),\"line-sort-key\":new dr(ee.layout_line[\"line-sort-key\"])})}};class PK extends dr{possiblyEvaluate(a,h){return h=new un(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),super.possiblyEvaluate(a,h)}evaluate(a,h,A,x){return h=kt({},h,{zoom:Math.floor(h.zoom)}),super.evaluate(a,h,A,x)}}let rT;class IK extends ji{constructor(a){super(a,n6),this.gradientVersion=0,rT||(rT=new PK(n6.paint.properties[\"line-width\"].specification),rT.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(a){if(a===\"line-gradient\"){let h=this.gradientExpression();this.stepInterpolant=!!function(A){return A._styleExpression!==void 0}(h)&&h._styleExpression.expression instanceof sh,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values[\"line-gradient\"].value.expression}recalculate(a,h){super.recalculate(a,h),this.paint._values[\"line-floorwidth\"]=rT.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,a)}createBucket(a){return new SC(a)}queryRadius(a){let h=a,A=s6(We(\"line-width\",this,h),We(\"line-gap-width\",this,h)),x=We(\"line-offset\",this,h);return A/2+Math.abs(x)+te(this.paint.get(\"line-translate\"))}queryIntersectsFeature(a,h,A,x,E,P,D){let F=_e(a,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),P.angle,D),V=D/2*s6(this.paint.get(\"line-width\").evaluate(h,A),this.paint.get(\"line-gap-width\").evaluate(h,A)),q=this.paint.get(\"line-offset\").evaluate(h,A);return q&&(x=function(X,rt){let at=[];for(let ct=0;ct<X.length;ct++){let mt=X[ct],bt=[];for(let Pt=0;Pt<mt.length;Pt++){let jt=mt[Pt-1],Rt=mt[Pt],Gt=mt[Pt+1],Yt=Pt===0?new w(0,0):Rt.sub(jt)._unit()._perp(),ce=Pt===mt.length-1?new w(0,0):Gt.sub(Rt)._unit()._perp(),Ne=Yt._add(ce)._unit(),ir=Ne.x*ce.x+Ne.y*ce.y;ir!==0&&Ne._mult(1/ir),bt.push(Ne._mult(rt)._add(Rt))}at.push(bt)}return at}(x,q*D)),function(X,rt,at){for(let ct=0;ct<rt.length;ct++){let mt=rt[ct];if(X.length>=3){for(let bt=0;bt<mt.length;bt++)if(ne(X,mt[bt]))return!0}if(it(X,mt,at))return!0}return!1}(F,x,V)}isTileClipped(){return!0}}function s6(u,a){return a>0?a+2*u:u}let CK=wn([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),LK=wn([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4);wn([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);let kK=wn([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}]);wn([{type:\"Int16\",name:\"anchorPointX\"},{type:\"Int16\",name:\"anchorPointY\"},{type:\"Int16\",name:\"x1\"},{type:\"Int16\",name:\"y1\"},{type:\"Int16\",name:\"x2\"},{type:\"Int16\",name:\"y2\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"}]);let o6=wn([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),RK=wn([{name:\"a_pos\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);function DK(u,a,h){return u.sections.forEach(A=>{A.text=function(x,E,P){let D=E.layout.get(\"text-transform\").evaluate(P,{});return D===\"uppercase\"?x=x.toLocaleUpperCase():D===\"lowercase\"&&(x=x.toLocaleLowerCase()),ua.applyArabicShaping&&(x=ua.applyArabicShaping(x)),x}(A.text,a,h)}),u}wn([{name:\"triangle\",components:3,type:\"Uint16\"}]),wn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"}]),wn([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint16\",name:\"useRuntimeCollisionCircles\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",name:\"textBoxScale\"},{type:\"Float32\",name:\"collisionCircleDiameter\"},{type:\"Uint16\",name:\"textAnchorOffsetStartIndex\"},{type:\"Uint16\",name:\"textAnchorOffsetEndIndex\"}]),wn([{type:\"Float32\",name:\"offsetX\"}]),wn([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]),wn([{type:\"Uint16\",name:\"textAnchor\"},{type:\"Float32\",components:2,name:\"textOffset\"}]);let Yx={\"!\":\"\\uFE15\",\"#\":\"\\uFF03\",$:\"\\uFF04\",\"%\":\"\\uFF05\",\"&\":\"\\uFF06\",\"(\":\"\\uFE35\",\")\":\"\\uFE36\",\"*\":\"\\uFF0A\",\"+\":\"\\uFF0B\",\",\":\"\\uFE10\",\"-\":\"\\uFE32\",\".\":\"\\u30FB\",\"/\":\"\\uFF0F\",\":\":\"\\uFE13\",\";\":\"\\uFE14\",\"<\":\"\\uFE3F\",\"=\":\"\\uFF1D\",\">\":\"\\uFE40\",\"?\":\"\\uFE16\",\"@\":\"\\uFF20\",\"[\":\"\\uFE47\",\"\\\\\":\"\\uFF3C\",\"]\":\"\\uFE48\",\"^\":\"\\uFF3E\",_:\"\\uFE33\",\"`\":\"\\uFF40\",\"{\":\"\\uFE37\",\"|\":\"\\u2015\",\"}\":\"\\uFE38\",\"~\":\"\\uFF5E\",\"\\xA2\":\"\\uFFE0\",\"\\xA3\":\"\\uFFE1\",\"\\xA5\":\"\\uFFE5\",\"\\xA6\":\"\\uFFE4\",\"\\xAC\":\"\\uFFE2\",\"\\xAF\":\"\\uFFE3\",\"\\u2013\":\"\\uFE32\",\"\\u2014\":\"\\uFE31\",\"\\u2018\":\"\\uFE43\",\"\\u2019\":\"\\uFE44\",\"\\u201C\":\"\\uFE41\",\"\\u201D\":\"\\uFE42\",\"\\u2026\":\"\\uFE19\",\"\\u2027\":\"\\u30FB\",\"\\u20A9\":\"\\uFFE6\",\"\\u3001\":\"\\uFE11\",\"\\u3002\":\"\\uFE12\",\"\\u3008\":\"\\uFE3F\",\"\\u3009\":\"\\uFE40\",\"\\u300A\":\"\\uFE3D\",\"\\u300B\":\"\\uFE3E\",\"\\u300C\":\"\\uFE41\",\"\\u300D\":\"\\uFE42\",\"\\u300E\":\"\\uFE43\",\"\\u300F\":\"\\uFE44\",\"\\u3010\":\"\\uFE3B\",\"\\u3011\":\"\\uFE3C\",\"\\u3014\":\"\\uFE39\",\"\\u3015\":\"\\uFE3A\",\"\\u3016\":\"\\uFE17\",\"\\u3017\":\"\\uFE18\",\"\\uFF01\":\"\\uFE15\",\"\\uFF08\":\"\\uFE35\",\"\\uFF09\":\"\\uFE36\",\"\\uFF0C\":\"\\uFE10\",\"\\uFF0D\":\"\\uFE32\",\"\\uFF0E\":\"\\u30FB\",\"\\uFF1A\":\"\\uFE13\",\"\\uFF1B\":\"\\uFE14\",\"\\uFF1C\":\"\\uFE3F\",\"\\uFF1E\":\"\\uFE40\",\"\\uFF1F\":\"\\uFE16\",\"\\uFF3B\":\"\\uFE47\",\"\\uFF3D\":\"\\uFE48\",\"\\uFF3F\":\"\\uFE33\",\"\\uFF5B\":\"\\uFE37\",\"\\uFF5C\":\"\\u2015\",\"\\uFF5D\":\"\\uFE38\",\"\\uFF5F\":\"\\uFE35\",\"\\uFF60\":\"\\uFE36\",\"\\uFF61\":\"\\uFE12\",\"\\uFF62\":\"\\uFE41\",\"\\uFF63\":\"\\uFE42\"};var Hs=24,a6=rn,l6=function(u,a,h,A,x){var E,P,D=8*x-A-1,F=(1<<D)-1,V=F>>1,q=-7,X=h?x-1:0,rt=h?-1:1,at=u[a+X];for(X+=rt,E=at&(1<<-q)-1,at>>=-q,q+=D;q>0;E=256*E+u[a+X],X+=rt,q-=8);for(P=E&(1<<-q)-1,E>>=-q,q+=A;q>0;P=256*P+u[a+X],X+=rt,q-=8);if(E===0)E=1-V;else{if(E===F)return P?NaN:1/0*(at?-1:1);P+=Math.pow(2,A),E-=V}return(at?-1:1)*P*Math.pow(2,E-A)},c6=function(u,a,h,A,x,E){var P,D,F,V=8*E-x-1,q=(1<<V)-1,X=q>>1,rt=x===23?Math.pow(2,-24)-Math.pow(2,-77):0,at=A?0:E-1,ct=A?1:-1,mt=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(D=isNaN(a)?1:0,P=q):(P=Math.floor(Math.log(a)/Math.LN2),a*(F=Math.pow(2,-P))<1&&(P--,F*=2),(a+=P+X>=1?rt/F:rt*Math.pow(2,1-X))*F>=2&&(P++,F/=2),P+X>=q?(D=0,P=q):P+X>=1?(D=(a*F-1)*Math.pow(2,x),P+=X):(D=a*Math.pow(2,X-1)*Math.pow(2,x),P=0));x>=8;u[h+at]=255&D,at+=ct,D/=256,x-=8);for(P=P<<x|D,V+=x;V>0;u[h+at]=255&P,at+=ct,P/=256,V-=8);u[h+at-ct]|=128*mt};function rn(u){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(u)?u:new Uint8Array(u||0),this.pos=0,this.type=0,this.length=this.buf.length}rn.Varint=0,rn.Fixed64=1,rn.Bytes=2,rn.Fixed32=5;var TC=4294967296,u6=1/TC,h6=typeof TextDecoder>\"u\"?null:new TextDecoder(\"utf8\");function Nd(u){return u.type===rn.Bytes?u.readVarint()+u.pos:u.pos+1}function E_(u,a,h){return h?4294967296*a+(u>>>0):4294967296*(a>>>0)+(u>>>0)}function f6(u,a,h){var A=a<=16383?1:a<=2097151?2:a<=268435455?3:Math.floor(Math.log(a)/(7*Math.LN2));h.realloc(A);for(var x=h.pos-1;x>=u;x--)h.buf[x+A]=h.buf[x]}function OK(u,a){for(var h=0;h<u.length;h++)a.writeVarint(u[h])}function BK(u,a){for(var h=0;h<u.length;h++)a.writeSVarint(u[h])}function FK(u,a){for(var h=0;h<u.length;h++)a.writeFloat(u[h])}function zK(u,a){for(var h=0;h<u.length;h++)a.writeDouble(u[h])}function NK(u,a){for(var h=0;h<u.length;h++)a.writeBoolean(u[h])}function UK(u,a){for(var h=0;h<u.length;h++)a.writeFixed32(u[h])}function VK(u,a){for(var h=0;h<u.length;h++)a.writeSFixed32(u[h])}function jK(u,a){for(var h=0;h<u.length;h++)a.writeFixed64(u[h])}function GK(u,a){for(var h=0;h<u.length;h++)a.writeSFixed64(u[h])}function iT(u,a){return(u[a]|u[a+1]<<8|u[a+2]<<16)+16777216*u[a+3]}function P_(u,a,h){u[h]=a,u[h+1]=a>>>8,u[h+2]=a>>>16,u[h+3]=a>>>24}function d6(u,a){return(u[a]|u[a+1]<<8|u[a+2]<<16)+(u[a+3]<<24)}rn.prototype={destroy:function(){this.buf=null},readFields:function(u,a,h){for(h=h||this.length;this.pos<h;){var A=this.readVarint(),x=A>>3,E=this.pos;this.type=7&A,u(x,a,this),this.pos===E&&this.skip(A)}return a},readMessage:function(u,a){return this.readFields(u,a,this.readVarint()+this.pos)},readFixed32:function(){var u=iT(this.buf,this.pos);return this.pos+=4,u},readSFixed32:function(){var u=d6(this.buf,this.pos);return this.pos+=4,u},readFixed64:function(){var u=iT(this.buf,this.pos)+iT(this.buf,this.pos+4)*TC;return this.pos+=8,u},readSFixed64:function(){var u=iT(this.buf,this.pos)+d6(this.buf,this.pos+4)*TC;return this.pos+=8,u},readFloat:function(){var u=l6(this.buf,this.pos,!0,23,4);return this.pos+=4,u},readDouble:function(){var u=l6(this.buf,this.pos,!0,52,8);return this.pos+=8,u},readVarint:function(u){var a,h,A=this.buf;return a=127&(h=A[this.pos++]),h<128?a:(a|=(127&(h=A[this.pos++]))<<7,h<128?a:(a|=(127&(h=A[this.pos++]))<<14,h<128?a:(a|=(127&(h=A[this.pos++]))<<21,h<128?a:function(x,E,P){var D,F,V=P.buf;if(D=(112&(F=V[P.pos++]))>>4,F<128||(D|=(127&(F=V[P.pos++]))<<3,F<128)||(D|=(127&(F=V[P.pos++]))<<10,F<128)||(D|=(127&(F=V[P.pos++]))<<17,F<128)||(D|=(127&(F=V[P.pos++]))<<24,F<128)||(D|=(1&(F=V[P.pos++]))<<31,F<128))return E_(x,D,E);throw new Error(\"Expected varint not more than 10 bytes\")}(a|=(15&(h=A[this.pos]))<<28,u,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var u=this.readVarint();return u%2==1?(u+1)/-2:u/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var u=this.readVarint()+this.pos,a=this.pos;return this.pos=u,u-a>=12&&h6?function(h,A,x){return h6.decode(h.subarray(A,x))}(this.buf,a,u):function(h,A,x){for(var E=\"\",P=A;P<x;){var D,F,V,q=h[P],X=null,rt=q>239?4:q>223?3:q>191?2:1;if(P+rt>x)break;rt===1?q<128&&(X=q):rt===2?(192&(D=h[P+1]))==128&&(X=(31&q)<<6|63&D)<=127&&(X=null):rt===3?(F=h[P+2],(192&(D=h[P+1]))==128&&(192&F)==128&&((X=(15&q)<<12|(63&D)<<6|63&F)<=2047||X>=55296&&X<=57343)&&(X=null)):rt===4&&(F=h[P+2],V=h[P+3],(192&(D=h[P+1]))==128&&(192&F)==128&&(192&V)==128&&((X=(15&q)<<18|(63&D)<<12|(63&F)<<6|63&V)<=65535||X>=1114112)&&(X=null)),X===null?(X=65533,rt=1):X>65535&&(X-=65536,E+=String.fromCharCode(X>>>10&1023|55296),X=56320|1023&X),E+=String.fromCharCode(X),P+=rt}return E}(this.buf,a,u)},readBytes:function(){var u=this.readVarint()+this.pos,a=this.buf.subarray(this.pos,u);return this.pos=u,a},readPackedVarint:function(u,a){if(this.type!==rn.Bytes)return u.push(this.readVarint(a));var h=Nd(this);for(u=u||[];this.pos<h;)u.push(this.readVarint(a));return u},readPackedSVarint:function(u){if(this.type!==rn.Bytes)return u.push(this.readSVarint());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readSVarint());return u},readPackedBoolean:function(u){if(this.type!==rn.Bytes)return u.push(this.readBoolean());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readBoolean());return u},readPackedFloat:function(u){if(this.type!==rn.Bytes)return u.push(this.readFloat());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readFloat());return u},readPackedDouble:function(u){if(this.type!==rn.Bytes)return u.push(this.readDouble());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readDouble());return u},readPackedFixed32:function(u){if(this.type!==rn.Bytes)return u.push(this.readFixed32());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readFixed32());return u},readPackedSFixed32:function(u){if(this.type!==rn.Bytes)return u.push(this.readSFixed32());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readSFixed32());return u},readPackedFixed64:function(u){if(this.type!==rn.Bytes)return u.push(this.readFixed64());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readFixed64());return u},readPackedSFixed64:function(u){if(this.type!==rn.Bytes)return u.push(this.readSFixed64());var a=Nd(this);for(u=u||[];this.pos<a;)u.push(this.readSFixed64());return u},skip:function(u){var a=7&u;if(a===rn.Varint)for(;this.buf[this.pos++]>127;);else if(a===rn.Bytes)this.pos=this.readVarint()+this.pos;else if(a===rn.Fixed32)this.pos+=4;else{if(a!==rn.Fixed64)throw new Error(\"Unimplemented type: \"+a);this.pos+=8}},writeTag:function(u,a){this.writeVarint(u<<3|a)},realloc:function(u){for(var a=this.length||16;a<this.pos+u;)a*=2;if(a!==this.length){var h=new Uint8Array(a);h.set(this.buf),this.buf=h,this.length=a}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(u){this.realloc(4),P_(this.buf,u,this.pos),this.pos+=4},writeSFixed32:function(u){this.realloc(4),P_(this.buf,u,this.pos),this.pos+=4},writeFixed64:function(u){this.realloc(8),P_(this.buf,-1&u,this.pos),P_(this.buf,Math.floor(u*u6),this.pos+4),this.pos+=8},writeSFixed64:function(u){this.realloc(8),P_(this.buf,-1&u,this.pos),P_(this.buf,Math.floor(u*u6),this.pos+4),this.pos+=8},writeVarint:function(u){(u=+u||0)>268435455||u<0?function(a,h){var A,x;if(a>=0?(A=a%4294967296|0,x=a/4294967296|0):(x=~(-a/4294967296),4294967295^(A=~(-a%4294967296))?A=A+1|0:(A=0,x=x+1|0)),a>=18446744073709552e3||a<-18446744073709552e3)throw new Error(\"Given varint doesn't fit into 10 bytes\");h.realloc(10),function(E,P,D){D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,E>>>=7,D.buf[D.pos++]=127&E|128,D.buf[D.pos]=127&(E>>>=7)}(A,0,h),function(E,P){var D=(7&E)<<4;P.buf[P.pos++]|=D|((E>>>=3)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E|((E>>>=7)?128:0),E&&(P.buf[P.pos++]=127&E)))))}(x,h)}(u,this):(this.realloc(4),this.buf[this.pos++]=127&u|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=u>>>7&127))))},writeSVarint:function(u){this.writeVarint(u<0?2*-u-1:2*u)},writeBoolean:function(u){this.writeVarint(!!u)},writeString:function(u){u=String(u),this.realloc(4*u.length),this.pos++;var a=this.pos;this.pos=function(A,x,E){for(var P,D,F=0;F<x.length;F++){if((P=x.charCodeAt(F))>55295&&P<57344){if(!D){P>56319||F+1===x.length?(A[E++]=239,A[E++]=191,A[E++]=189):D=P;continue}if(P<56320){A[E++]=239,A[E++]=191,A[E++]=189,D=P;continue}P=D-55296<<10|P-56320|65536,D=null}else D&&(A[E++]=239,A[E++]=191,A[E++]=189,D=null);P<128?A[E++]=P:(P<2048?A[E++]=P>>6|192:(P<65536?A[E++]=P>>12|224:(A[E++]=P>>18|240,A[E++]=P>>12&63|128),A[E++]=P>>6&63|128),A[E++]=63&P|128)}return E}(this.buf,u,this.pos);var h=this.pos-a;h>=128&&f6(a,h,this),this.pos=a-1,this.writeVarint(h),this.pos+=h},writeFloat:function(u){this.realloc(4),c6(this.buf,u,this.pos,!0,23,4),this.pos+=4},writeDouble:function(u){this.realloc(8),c6(this.buf,u,this.pos,!0,52,8),this.pos+=8},writeBytes:function(u){var a=u.length;this.writeVarint(a),this.realloc(a);for(var h=0;h<a;h++)this.buf[this.pos++]=u[h]},writeRawMessage:function(u,a){this.pos++;var h=this.pos;u(a,this);var A=this.pos-h;A>=128&&f6(h,A,this),this.pos=h-1,this.writeVarint(A),this.pos+=A},writeMessage:function(u,a,h){this.writeTag(u,rn.Bytes),this.writeRawMessage(a,h)},writePackedVarint:function(u,a){a.length&&this.writeMessage(u,OK,a)},writePackedSVarint:function(u,a){a.length&&this.writeMessage(u,BK,a)},writePackedBoolean:function(u,a){a.length&&this.writeMessage(u,NK,a)},writePackedFloat:function(u,a){a.length&&this.writeMessage(u,FK,a)},writePackedDouble:function(u,a){a.length&&this.writeMessage(u,zK,a)},writePackedFixed32:function(u,a){a.length&&this.writeMessage(u,UK,a)},writePackedSFixed32:function(u,a){a.length&&this.writeMessage(u,VK,a)},writePackedFixed64:function(u,a){a.length&&this.writeMessage(u,jK,a)},writePackedSFixed64:function(u,a){a.length&&this.writeMessage(u,GK,a)},writeBytesField:function(u,a){this.writeTag(u,rn.Bytes),this.writeBytes(a)},writeFixed32Field:function(u,a){this.writeTag(u,rn.Fixed32),this.writeFixed32(a)},writeSFixed32Field:function(u,a){this.writeTag(u,rn.Fixed32),this.writeSFixed32(a)},writeFixed64Field:function(u,a){this.writeTag(u,rn.Fixed64),this.writeFixed64(a)},writeSFixed64Field:function(u,a){this.writeTag(u,rn.Fixed64),this.writeSFixed64(a)},writeVarintField:function(u,a){this.writeTag(u,rn.Varint),this.writeVarint(a)},writeSVarintField:function(u,a){this.writeTag(u,rn.Varint),this.writeSVarint(a)},writeStringField:function(u,a){this.writeTag(u,rn.Bytes),this.writeString(a)},writeFloatField:function(u,a){this.writeTag(u,rn.Fixed32),this.writeFloat(a)},writeDoubleField:function(u,a){this.writeTag(u,rn.Fixed64),this.writeDouble(a)},writeBooleanField:function(u,a){this.writeVarintField(u,!!a)}};var MC=c(a6);let EC=3;function WK(u,a,h){u===1&&h.readMessage(HK,a)}function HK(u,a,h){if(u===3){let{id:A,bitmap:x,width:E,height:P,left:D,top:F,advance:V}=h.readMessage(qK,{});a.push({id:A,bitmap:new Vx({width:E+2*EC,height:P+2*EC},x),metrics:{width:E,height:P,left:D,top:F,advance:V}})}}function qK(u,a,h){u===1?a.id=h.readVarint():u===2?a.bitmap=h.readBytes():u===3?a.width=h.readVarint():u===4?a.height=h.readVarint():u===5?a.left=h.readSVarint():u===6?a.top=h.readSVarint():u===7&&(a.advance=h.readVarint())}let p6=EC;function A6(u){let a=0,h=0;for(let P of u)a+=P.w*P.h,h=Math.max(h,P.w);u.sort((P,D)=>D.h-P.h);let A=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(a/.95)),h),h:1/0}],x=0,E=0;for(let P of u)for(let D=A.length-1;D>=0;D--){let F=A[D];if(!(P.w>F.w||P.h>F.h)){if(P.x=F.x,P.y=F.y,E=Math.max(E,P.y+P.h),x=Math.max(x,P.x+P.w),P.w===F.w&&P.h===F.h){let V=A.pop();D<A.length&&(A[D]=V)}else P.h===F.h?(F.x+=P.w,F.w-=P.w):P.w===F.w?(F.y+=P.h,F.h-=P.h):(A.push({x:F.x+P.w,y:F.y,w:F.w-P.w,h:P.h}),F.y+=P.h,F.h-=P.h);break}}return{w:x,h:E,fill:a/(x*E)||0}}let gl=1;class PC{constructor(a,{pixelRatio:h,version:A,stretchX:x,stretchY:E,content:P}){this.paddedRect=a,this.pixelRatio=h,this.stretchX=x,this.stretchY=E,this.content=P,this.version=A}get tl(){return[this.paddedRect.x+gl,this.paddedRect.y+gl]}get br(){return[this.paddedRect.x+this.paddedRect.w-gl,this.paddedRect.y+this.paddedRect.h-gl]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return[(this.paddedRect.w-2*gl)/this.pixelRatio,(this.paddedRect.h-2*gl)/this.pixelRatio]}}class m6{constructor(a,h){let A={},x={};this.haveRenderCallbacks=[];let E=[];this.addImages(a,A,E),this.addImages(h,x,E);let{w:P,h:D}=A6(E),F=new zc({width:P||1,height:D||1});for(let V in a){let q=a[V],X=A[V].paddedRect;zc.copy(q.data,F,{x:0,y:0},{x:X.x+gl,y:X.y+gl},q.data)}for(let V in h){let q=h[V],X=x[V].paddedRect,rt=X.x+gl,at=X.y+gl,ct=q.data.width,mt=q.data.height;zc.copy(q.data,F,{x:0,y:0},{x:rt,y:at},q.data),zc.copy(q.data,F,{x:0,y:mt-1},{x:rt,y:at-1},{width:ct,height:1}),zc.copy(q.data,F,{x:0,y:0},{x:rt,y:at+mt},{width:ct,height:1}),zc.copy(q.data,F,{x:ct-1,y:0},{x:rt-1,y:at},{width:1,height:mt}),zc.copy(q.data,F,{x:0,y:0},{x:rt+ct,y:at},{width:1,height:mt})}this.image=F,this.iconPositions=A,this.patternPositions=x}addImages(a,h,A){for(let x in a){let E=a[x],P={x:0,y:0,w:E.data.width+2*gl,h:E.data.height+2*gl};A.push(P),h[x]=new PC(P,E),E.hasRenderCallback&&this.haveRenderCallbacks.push(x)}}patchUpdatedImages(a,h){a.dispatchRenderCallbacks(this.haveRenderCallbacks);for(let A in a.updatedImages)this.patchUpdatedImage(this.iconPositions[A],a.getImage(A),h),this.patchUpdatedImage(this.patternPositions[A],a.getImage(A),h)}patchUpdatedImage(a,h,A){if(!a||!h||a.version===h.version)return;a.version=h.version;let[x,E]=a.tl;A.update(h.data,void 0,{x,y:E})}}var hA;Ge(\"ImagePosition\",PC),Ge(\"ImageAtlas\",m6),n.ai=void 0,(hA=n.ai||(n.ai={}))[hA.none=0]=\"none\",hA[hA.horizontal=1]=\"horizontal\",hA[hA.vertical=2]=\"vertical\",hA[hA.horizontalOnly=3]=\"horizontalOnly\";let Qx=-17;class $x{constructor(){this.scale=1,this.fontStack=\"\",this.imageName=null}static forText(a,h){let A=new $x;return A.scale=a||1,A.fontStack=h,A}static forImage(a){let h=new $x;return h.imageName=a,h}}class I_{constructor(){this.text=\"\",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(a,h){let A=new I_;for(let x=0;x<a.sections.length;x++){let E=a.sections[x];E.image?A.addImageSection(E):A.addTextSection(E,h)}return A}length(){return this.text.length}getSection(a){return this.sections[this.sectionIndex[a]]}getSectionIndex(a){return this.sectionIndex[a]}getCharCode(a){return this.text.charCodeAt(a)}verticalizePunctuation(){this.text=function(a){let h=\"\";for(let A=0;A<a.length;A++){let x=a.charCodeAt(A+1)||null,E=a.charCodeAt(A-1)||null;h+=x&&y_(x)&&!Yx[a[A+1]]||E&&y_(E)&&!Yx[a[A-1]]||!Yx[a[A]]?a[A]:Yx[a[A]]}return h}(this.text)}trim(){let a=0;for(let A=0;A<this.text.length&&sT[this.text.charCodeAt(A)];A++)a++;let h=this.text.length;for(let A=this.text.length-1;A>=0&&A>=a&&sT[this.text.charCodeAt(A)];A--)h--;this.text=this.text.substring(a,h),this.sectionIndex=this.sectionIndex.slice(a,h)}substring(a,h){let A=new I_;return A.text=this.text.substring(a,h),A.sectionIndex=this.sectionIndex.slice(a,h),A.sections=this.sections,A}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((a,h)=>Math.max(a,this.sections[h].scale),0)}addTextSection(a,h){this.text+=a.text,this.sections.push($x.forText(a.scale,a.fontStack||h));let A=this.sections.length-1;for(let x=0;x<a.text.length;++x)this.sectionIndex.push(A)}addImageSection(a){let h=a.image?a.image.name:\"\";if(h.length===0)return void Ke(\"Can't add FormattedSection with an empty image.\");let A=this.getNextImageSectionCharCode();A?(this.text+=String.fromCharCode(A),this.sections.push($x.forImage(h)),this.sectionIndex.push(this.sections.length-1)):Ke(\"Reached maximum number of images 6401\")}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function nT(u,a,h,A,x,E,P,D,F,V,q,X,rt,at,ct,mt){let bt=I_.fromFeature(u,x),Pt;X===n.ai.vertical&&bt.verticalizePunctuation();let{processBidirectionalText:jt,processStyledBidirectionalText:Rt}=ua;if(jt&&bt.sections.length===1){Pt=[];let ce=jt(bt.toString(),IC(bt,V,E,a,A,at,ct));for(let Ne of ce){let ir=new I_;ir.text=Ne,ir.sections=bt.sections;for(let Fe=0;Fe<Ne.length;Fe++)ir.sectionIndex.push(0);Pt.push(ir)}}else if(Rt){Pt=[];let ce=Rt(bt.text,bt.sectionIndex,IC(bt,V,E,a,A,at,ct));for(let Ne of ce){let ir=new I_;ir.text=Ne[0],ir.sectionIndex=Ne[1],ir.sections=bt.sections,Pt.push(ir)}}else Pt=function(ce,Ne){let ir=[],Fe=ce.text,Re=0;for(let Me of Ne)ir.push(ce.substring(Re,Me)),Re=Me;return Re<Fe.length&&ir.push(ce.substring(Re,Fe.length)),ir}(bt,IC(bt,V,E,a,A,at,ct));let Gt=[],Yt={positionedLines:Gt,text:bt.toString(),top:q[1],bottom:q[1],left:q[0],right:q[0],writingMode:X,iconsInText:!1,verticalizable:!1};return function(ce,Ne,ir,Fe,Re,Me,Ye,Ie,Ae,hr,sr,ri){let Tn=0,Rn=Qx,qs=0,Ql=0,ja=Ie===\"right\"?1:Ie===\"left\"?0:.5,Is=0;for(let Zs of Re){Zs.trim();let Ys=Zs.getMaxScale(),ha=(Ys-1)*Hs,Ha={positionedGlyphs:[],lineOffset:0};ce.positionedLines[Is]=Ha;let fa=Ha.positionedGlyphs,_l=0;if(!Zs.length()){Rn+=Me,++Is;continue}for(let Qs=0;Qs<Zs.length();Qs++){let di=Zs.getSection(Qs),da=Zs.getSectionIndex(Qs),Xo=Zs.getCharCode(Qs),$s=0,xu=null,vh=null,xh=null,Ud=Hs,bu=!(Ae===n.ai.horizontal||!sr&&!dh(Xo)||sr&&(sT[Xo]||(Po=Xo,Oe.Arabic(Po)||Oe[\"Arabic Supplement\"](Po)||Oe[\"Arabic Extended-A\"](Po)||Oe[\"Arabic Presentation Forms-A\"](Po)||Oe[\"Arabic Presentation Forms-B\"](Po))));if(di.imageName){let Uc=Fe[di.imageName];if(!Uc)continue;xh=di.imageName,ce.iconsInText=ce.iconsInText||!0,vh=Uc.paddedRect;let vl=Uc.displaySize;di.scale=di.scale*Hs/ri,xu={width:vl[0],height:vl[1],left:gl,top:-p6,advance:bu?vl[1]:vl[0]},$s=ha+(Hs-vl[1]*di.scale),Ud=xu.advance;let Vd=bu?vl[0]*di.scale-Hs*Ys:vl[1]*di.scale-Hs*Ys;Vd>0&&Vd>_l&&(_l=Vd)}else{let Uc=ir[di.fontStack],vl=Uc&&Uc[Xo];if(vl&&vl.rect)vh=vl.rect,xu=vl.metrics;else{let Vd=Ne[di.fontStack],e1=Vd&&Vd[Xo];if(!e1)continue;xu=e1.metrics}$s=(Ys-di.scale)*Hs}bu?(ce.verticalizable=!0,fa.push({glyph:Xo,imageName:xh,x:Tn,y:Rn+$s,vertical:bu,scale:di.scale,fontStack:di.fontStack,sectionIndex:da,metrics:xu,rect:vh}),Tn+=Ud*di.scale+hr):(fa.push({glyph:Xo,imageName:xh,x:Tn,y:Rn+$s,vertical:bu,scale:di.scale,fontStack:di.fontStack,sectionIndex:da,metrics:xu,rect:vh}),Tn+=xu.advance*di.scale+hr)}fa.length!==0&&(qs=Math.max(Tn-hr,qs),QK(fa,0,fa.length-1,ja,_l)),Tn=0;let yl=Me*Ys+_l;Ha.lineOffset=Math.max(_l,ha),Rn+=yl,Ql=Math.max(yl,Ql),++Is}var Po;let $o=Rn-Qx,{horizontalAlign:Ga,verticalAlign:Wa}=CC(Ye);(function(Zs,Ys,ha,Ha,fa,_l,yl,Qs,di){let da=(Ys-ha)*fa,Xo=0;Xo=_l!==yl?-Qs*Ha-Qx:(-Ha*di+.5)*yl;for(let $s of Zs)for(let xu of $s.positionedGlyphs)xu.x+=da,xu.y+=Xo})(ce.positionedLines,ja,Ga,Wa,qs,Ql,Me,$o,Re.length),ce.top+=-Wa*$o,ce.bottom=ce.top+$o,ce.left+=-Ga*qs,ce.right=ce.left+qs}(Yt,a,h,A,Pt,P,D,F,X,V,rt,mt),!function(ce){for(let Ne of ce)if(Ne.positionedGlyphs.length!==0)return!1;return!0}(Gt)&&Yt}let sT={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},ZK={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function g6(u,a,h,A,x,E){if(a.imageName){let P=A[a.imageName];return P?P.displaySize[0]*a.scale*Hs/E+x:0}{let P=h[a.fontStack],D=P&&P[u];return D?D.metrics.advance*a.scale+x:0}}function _6(u,a,h,A){let x=Math.pow(u-a,2);return A?u<a?x/2:2*x:x+Math.abs(h)*h}function YK(u,a,h){let A=0;return u===10&&(A-=1e4),h&&(A+=150),u!==40&&u!==65288||(A+=50),a!==41&&a!==65289||(A+=50),A}function y6(u,a,h,A,x,E){let P=null,D=_6(a,h,x,E);for(let F of A){let V=_6(a-F.x,h,x,E)+F.badness;V<=D&&(P=F,D=V)}return{index:u,x:a,priorBreak:P,badness:D}}function v6(u){return u?v6(u.priorBreak).concat(u.index):[]}function IC(u,a,h,A,x,E,P){if(E!==\"point\")return[];if(!u)return[];let D=[],F=function(rt,at,ct,mt,bt,Pt){let jt=0;for(let Rt=0;Rt<rt.length();Rt++){let Gt=rt.getSection(Rt);jt+=g6(rt.getCharCode(Rt),Gt,mt,bt,at,Pt)}return jt/Math.max(1,Math.ceil(jt/ct))}(u,a,h,A,x,P),V=u.text.indexOf(\"\\u200B\")>=0,q=0;for(let rt=0;rt<u.length();rt++){let at=u.getSection(rt),ct=u.getCharCode(rt);if(sT[ct]||(q+=g6(ct,at,A,x,a,P)),rt<u.length()-1){let mt=!((X=ct)<11904||!(Oe[\"Bopomofo Extended\"](X)||Oe.Bopomofo(X)||Oe[\"CJK Compatibility Forms\"](X)||Oe[\"CJK Compatibility Ideographs\"](X)||Oe[\"CJK Compatibility\"](X)||Oe[\"CJK Radicals Supplement\"](X)||Oe[\"CJK Strokes\"](X)||Oe[\"CJK Symbols and Punctuation\"](X)||Oe[\"CJK Unified Ideographs Extension A\"](X)||Oe[\"CJK Unified Ideographs\"](X)||Oe[\"Enclosed CJK Letters and Months\"](X)||Oe[\"Halfwidth and Fullwidth Forms\"](X)||Oe.Hiragana(X)||Oe[\"Ideographic Description Characters\"](X)||Oe[\"Kangxi Radicals\"](X)||Oe[\"Katakana Phonetic Extensions\"](X)||Oe.Katakana(X)||Oe[\"Vertical Forms\"](X)||Oe[\"Yi Radicals\"](X)||Oe[\"Yi Syllables\"](X)));(ZK[ct]||mt||at.imageName)&&D.push(y6(rt+1,q,F,D,YK(ct,u.getCharCode(rt+1),mt&&V),!1))}}var X;return v6(y6(u.length(),q,F,D,0,!0))}function CC(u){let a=.5,h=.5;switch(u){case\"right\":case\"top-right\":case\"bottom-right\":a=1;break;case\"left\":case\"top-left\":case\"bottom-left\":a=0}switch(u){case\"bottom\":case\"bottom-right\":case\"bottom-left\":h=1;break;case\"top\":case\"top-right\":case\"top-left\":h=0}return{horizontalAlign:a,verticalAlign:h}}function QK(u,a,h,A,x){if(!A&&!x)return;let E=u[h],P=(u[h].x+E.metrics.advance*E.scale)*A;for(let D=a;D<=h;D++)u[D].x-=P,u[D].y+=x}function $K(u,a,h){let{horizontalAlign:A,verticalAlign:x}=CC(h),E=a[0]-u.displaySize[0]*A,P=a[1]-u.displaySize[1]*x;return{image:u,top:P,bottom:P+u.displaySize[1],left:E,right:E+u.displaySize[0]}}function x6(u,a,h,A,x,E){let P=u.image,D;if(P.content){let bt=P.content,Pt=P.pixelRatio||1;D=[bt[0]/Pt,bt[1]/Pt,P.displaySize[0]-bt[2]/Pt,P.displaySize[1]-bt[3]/Pt]}let F=a.left*E,V=a.right*E,q,X,rt,at;h===\"width\"||h===\"both\"?(at=x[0]+F-A[3],X=x[0]+V+A[1]):(at=x[0]+(F+V-P.displaySize[0])/2,X=at+P.displaySize[0]);let ct=a.top*E,mt=a.bottom*E;return h===\"height\"||h===\"both\"?(q=x[1]+ct-A[0],rt=x[1]+mt+A[2]):(q=x[1]+(ct+mt-P.displaySize[1])/2,rt=q+P.displaySize[1]),{image:P,top:q,right:X,bottom:rt,left:at,collisionPadding:D}}let Xx=255,Ef=128,fA=Xx*Ef;function b6(u,a){let{expression:h}=a;if(h.kind===\"constant\")return{kind:\"constant\",layoutSize:h.evaluate(new un(u+1))};if(h.kind===\"source\")return{kind:\"source\"};{let{zoomStops:A,interpolationType:x}=h,E=0;for(;E<A.length&&A[E]<=u;)E++;E=Math.max(0,E-1);let P=E;for(;P<A.length&&A[P]<u+1;)P++;P=Math.min(A.length-1,P);let D=A[E],F=A[P];return h.kind===\"composite\"?{kind:\"composite\",minZoom:D,maxZoom:F,interpolationType:x}:{kind:\"camera\",minZoom:D,maxZoom:F,minSize:h.evaluate(new un(D)),maxSize:h.evaluate(new un(F)),interpolationType:x}}}function LC(u,a,h){let A=\"never\",x=u.get(a);return x?A=x:u.get(h)&&(A=\"always\"),A}let XK=uA.VectorTileFeature.types,KK=[{name:\"a_fade_opacity\",components:1,type:\"Uint8\",offset:0}];function oT(u,a,h,A,x,E,P,D,F,V,q,X,rt){let at=D?Math.min(fA,Math.round(D[0])):0,ct=D?Math.min(fA,Math.round(D[1])):0;u.emplaceBack(a,h,Math.round(32*A),Math.round(32*x),E,P,(at<<1)+(F?1:0),ct,16*V,16*q,256*X,256*rt)}function kC(u,a,h){u.emplaceBack(a.x,a.y,h),u.emplaceBack(a.x,a.y,h),u.emplaceBack(a.x,a.y,h),u.emplaceBack(a.x,a.y,h)}function JK(u){for(let a of u.sections)if(bf(a.text))return!0;return!1}class RC{constructor(a){this.layoutVertexArray=new Jr,this.indexArray=new Gs,this.programConfigurations=a,this.segments=new jr,this.dynamicLayoutVertexArray=new Vr,this.opacityVertexArray=new ei,this.hasVisibleVertices=!1,this.placedSymbolArray=new Ft}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(a,h,A,x){this.isEmpty()||(A&&(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,CK.members),this.indexBuffer=a.createIndexBuffer(this.indexArray,h),this.dynamicLayoutVertexBuffer=a.createVertexBuffer(this.dynamicLayoutVertexArray,LK.members,!0),this.opacityVertexBuffer=a.createVertexBuffer(this.opacityVertexArray,KK,!0),this.opacityVertexBuffer.itemSize=1),(A||x)&&this.programConfigurations.upload(a))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}Ge(\"SymbolBuffers\",RC);class DC{constructor(a,h,A){this.layoutVertexArray=new a,this.layoutAttributes=h,this.indexArray=new A,this.segments=new jr,this.collisionVertexArray=new tn}upload(a){this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=a.createVertexBuffer(this.collisionVertexArray,kK.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())}}Ge(\"CollisionBuffers\",DC);class C_{constructor(a){this.collisionBoxArray=a.collisionBoxArray,this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map(P=>P.id),this.index=a.index,this.pixelRatio=a.pixelRatio,this.sourceLayerIndex=a.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Zr([]),this.placementViewportMatrix=Zr([]);let h=this.layers[0]._unevaluatedLayout._values;this.textSizeData=b6(this.zoom,h[\"text-size\"]),this.iconSizeData=b6(this.zoom,h[\"icon-size\"]);let A=this.layers[0].layout,x=A.get(\"symbol-sort-key\"),E=A.get(\"symbol-z-order\");this.canOverlap=LC(A,\"text-overlap\",\"text-allow-overlap\")!==\"never\"||LC(A,\"icon-overlap\",\"icon-allow-overlap\")!==\"never\"||A.get(\"text-ignore-placement\")||A.get(\"icon-ignore-placement\"),this.sortFeaturesByKey=E!==\"viewport-y\"&&!x.isConstant(),this.sortFeaturesByY=(E===\"viewport-y\"||E===\"auto\"&&!this.sortFeaturesByKey)&&this.canOverlap,A.get(\"symbol-placement\")===\"point\"&&(this.writingModes=A.get(\"text-writing-mode\").map(P=>n.ai[P])),this.stateDependentLayerIds=this.layers.filter(P=>P.isStateDependent()).map(P=>P.id),this.sourceID=a.sourceID}createArrays(){this.text=new RC(new Va(this.layers,this.zoom,a=>/^text/.test(a))),this.icon=new RC(new Va(this.layers,this.zoom,a=>/^icon/.test(a))),this.glyphOffsetArray=new Bt,this.lineVertexArray=new Qt,this.symbolInstances=new St,this.textAnchorOffsets=new oe}calculateGlyphDependencies(a,h,A,x,E){for(let P=0;P<a.length;P++)if(h[a.charCodeAt(P)]=!0,(A||x)&&E){let D=Yx[a.charAt(P)];D&&(h[D.charCodeAt(0)]=!0)}}populate(a,h,A){let x=this.layers[0],E=x.layout,P=E.get(\"text-font\"),D=E.get(\"text-field\"),F=E.get(\"icon-image\"),V=(D.value.kind!==\"constant\"||D.value.value instanceof ln&&!D.value.value.isEmpty()||D.value.value.toString().length>0)&&(P.value.kind!==\"constant\"||P.value.value.length>0),q=F.value.kind!==\"constant\"||!!F.value.value||Object.keys(F.parameters).length>0,X=E.get(\"symbol-sort-key\");if(this.features=[],!V&&!q)return;let rt=h.iconDependencies,at=h.glyphDependencies,ct=h.availableImages,mt=new un(this.zoom);for(let{feature:bt,id:Pt,index:jt,sourceLayerIndex:Rt}of a){let Gt=x._featureFilter.needGeometry,Yt=S(bt,Gt);if(!x._featureFilter.filter(mt,Yt,A))continue;let ce,Ne;if(Gt||(Yt.geometry=y(bt)),V){let Fe=x.getValueAndResolveTokens(\"text-field\",Yt,A,ct),Re=ln.factory(Fe);JK(Re)&&(this.hasRTLText=!0),(!this.hasRTLText||f0()===\"unavailable\"||this.hasRTLText&&ua.isParsed())&&(ce=DK(Re,x,Yt))}if(q){let Fe=x.getValueAndResolveTokens(\"icon-image\",Yt,A,ct);Ne=Fe instanceof Gn?Fe:Gn.fromString(Fe)}if(!ce&&!Ne)continue;let ir=this.sortFeaturesByKey?X.evaluate(Yt,{},A):void 0;if(this.features.push({id:Pt,text:ce,icon:Ne,index:jt,sourceLayerIndex:Rt,geometry:Yt.geometry,properties:bt.properties,type:XK[bt.type],sortKey:ir}),Ne&&(rt[Ne.name]=!0),ce){let Fe=P.evaluate(Yt,{},A).join(\",\"),Re=E.get(\"text-rotation-alignment\")!==\"viewport\"&&E.get(\"symbol-placement\")!==\"point\";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(n.ai.vertical)>=0;for(let Me of ce.sections)if(Me.image)rt[Me.image.name]=!0;else{let Ye=o0(ce.toString()),Ie=Me.fontStack||Fe,Ae=at[Ie]=at[Ie]||{};this.calculateGlyphDependencies(Me.text,Ae,Re,this.allowVerticalPlacement,Ye)}}}E.get(\"symbol-placement\")===\"line\"&&(this.features=function(bt){let Pt={},jt={},Rt=[],Gt=0;function Yt(Fe){Rt.push(bt[Fe]),Gt++}function ce(Fe,Re,Me){let Ye=jt[Fe];return delete jt[Fe],jt[Re]=Ye,Rt[Ye].geometry[0].pop(),Rt[Ye].geometry[0]=Rt[Ye].geometry[0].concat(Me[0]),Ye}function Ne(Fe,Re,Me){let Ye=Pt[Re];return delete Pt[Re],Pt[Fe]=Ye,Rt[Ye].geometry[0].shift(),Rt[Ye].geometry[0]=Me[0].concat(Rt[Ye].geometry[0]),Ye}function ir(Fe,Re,Me){let Ye=Me?Re[0][Re[0].length-1]:Re[0][0];return`${Fe}:${Ye.x}:${Ye.y}`}for(let Fe=0;Fe<bt.length;Fe++){let Re=bt[Fe],Me=Re.geometry,Ye=Re.text?Re.text.toString():null;if(!Ye){Yt(Fe);continue}let Ie=ir(Ye,Me),Ae=ir(Ye,Me,!0);if(Ie in jt&&Ae in Pt&&jt[Ie]!==Pt[Ae]){let hr=Ne(Ie,Ae,Me),sr=ce(Ie,Ae,Rt[hr].geometry);delete Pt[Ie],delete jt[Ae],jt[ir(Ye,Rt[sr].geometry,!0)]=sr,Rt[hr].geometry=null}else Ie in jt?ce(Ie,Ae,Me):Ae in Pt?Ne(Ie,Ae,Me):(Yt(Fe),Pt[Ie]=Gt-1,jt[Ae]=Gt-1)}return Rt.filter(Fe=>Fe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((bt,Pt)=>bt.sortKey-Pt.sortKey)}update(a,h,A){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(a,h,this.layers,A),this.icon.programConfigurations.updatePaintArrays(a,h,this.layers,A))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(a){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(a),this.iconCollisionBox.upload(a)),this.text.upload(a,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(a,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(a,h){let A=this.lineVertexArray.length;if(a.segment!==void 0){let x=a.dist(h[a.segment+1]),E=a.dist(h[a.segment]),P={};for(let D=a.segment+1;D<h.length;D++)P[D]={x:h[D].x,y:h[D].y,tileUnitDistanceFromAnchor:x},D<h.length-1&&(x+=h[D+1].dist(h[D]));for(let D=a.segment||0;D>=0;D--)P[D]={x:h[D].x,y:h[D].y,tileUnitDistanceFromAnchor:E},D>0&&(E+=h[D-1].dist(h[D]));for(let D=0;D<h.length;D++){let F=P[D];this.lineVertexArray.emplaceBack(F.x,F.y,F.tileUnitDistanceFromAnchor)}}return{lineStartIndex:A,lineLength:this.lineVertexArray.length-A}}addSymbols(a,h,A,x,E,P,D,F,V,q,X,rt){let at=a.indexArray,ct=a.layoutVertexArray,mt=a.segments.prepareSegment(4*h.length,ct,at,this.canOverlap?P.sortKey:void 0),bt=this.glyphOffsetArray.length,Pt=mt.vertexLength,jt=this.allowVerticalPlacement&&D===n.ai.vertical?Math.PI/2:0,Rt=P.text&&P.text.sections;for(let Gt=0;Gt<h.length;Gt++){let{tl:Yt,tr:ce,bl:Ne,br:ir,tex:Fe,pixelOffsetTL:Re,pixelOffsetBR:Me,minFontScaleX:Ye,minFontScaleY:Ie,glyphOffset:Ae,isSDF:hr,sectionIndex:sr}=h[Gt],ri=mt.vertexLength,Tn=Ae[1];oT(ct,F.x,F.y,Yt.x,Tn+Yt.y,Fe.x,Fe.y,A,hr,Re.x,Re.y,Ye,Ie),oT(ct,F.x,F.y,ce.x,Tn+ce.y,Fe.x+Fe.w,Fe.y,A,hr,Me.x,Re.y,Ye,Ie),oT(ct,F.x,F.y,Ne.x,Tn+Ne.y,Fe.x,Fe.y+Fe.h,A,hr,Re.x,Me.y,Ye,Ie),oT(ct,F.x,F.y,ir.x,Tn+ir.y,Fe.x+Fe.w,Fe.y+Fe.h,A,hr,Me.x,Me.y,Ye,Ie),kC(a.dynamicLayoutVertexArray,F,jt),at.emplaceBack(ri,ri+1,ri+2),at.emplaceBack(ri+1,ri+2,ri+3),mt.vertexLength+=4,mt.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(Ae[0]),Gt!==h.length-1&&sr===h[Gt+1].sectionIndex||a.programConfigurations.populatePaintArrays(ct.length,P,P.index,{},rt,Rt&&Rt[sr])}a.placedSymbolArray.emplaceBack(F.x,F.y,bt,this.glyphOffsetArray.length-bt,Pt,V,q,F.segment,A?A[0]:0,A?A[1]:0,x[0],x[1],D,0,!1,0,X)}_addCollisionDebugVertex(a,h,A,x,E,P){return h.emplaceBack(0,0),a.emplaceBack(A.x,A.y,x,E,Math.round(P.x),Math.round(P.y))}addCollisionDebugVertices(a,h,A,x,E,P,D){let F=E.segments.prepareSegment(4,E.layoutVertexArray,E.indexArray),V=F.vertexLength,q=E.layoutVertexArray,X=E.collisionVertexArray,rt=D.anchorX,at=D.anchorY;this._addCollisionDebugVertex(q,X,P,rt,at,new w(a,h)),this._addCollisionDebugVertex(q,X,P,rt,at,new w(A,h)),this._addCollisionDebugVertex(q,X,P,rt,at,new w(A,x)),this._addCollisionDebugVertex(q,X,P,rt,at,new w(a,x)),F.vertexLength+=4;let ct=E.indexArray;ct.emplaceBack(V,V+1),ct.emplaceBack(V+1,V+2),ct.emplaceBack(V+2,V+3),ct.emplaceBack(V+3,V),F.primitiveLength+=4}addDebugCollisionBoxes(a,h,A,x){for(let E=a;E<h;E++){let P=this.collisionBoxArray.get(E);this.addCollisionDebugVertices(P.x1,P.y1,P.x2,P.y2,x?this.textCollisionBox:this.iconCollisionBox,P.anchorPoint,A)}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new DC(On,o6.members,hs),this.iconCollisionBox=new DC(On,o6.members,hs);for(let a=0;a<this.symbolInstances.length;a++){let h=this.symbolInstances.get(a);this.addDebugCollisionBoxes(h.textBoxStartIndex,h.textBoxEndIndex,h,!0),this.addDebugCollisionBoxes(h.verticalTextBoxStartIndex,h.verticalTextBoxEndIndex,h,!0),this.addDebugCollisionBoxes(h.iconBoxStartIndex,h.iconBoxEndIndex,h,!1),this.addDebugCollisionBoxes(h.verticalIconBoxStartIndex,h.verticalIconBoxEndIndex,h,!1)}}_deserializeCollisionBoxesForSymbol(a,h,A,x,E,P,D,F,V){let q={};for(let X=h;X<A;X++){let rt=a.get(X);q.textBox={x1:rt.x1,y1:rt.y1,x2:rt.x2,y2:rt.y2,anchorPointX:rt.anchorPointX,anchorPointY:rt.anchorPointY},q.textFeatureIndex=rt.featureIndex;break}for(let X=x;X<E;X++){let rt=a.get(X);q.verticalTextBox={x1:rt.x1,y1:rt.y1,x2:rt.x2,y2:rt.y2,anchorPointX:rt.anchorPointX,anchorPointY:rt.anchorPointY},q.verticalTextFeatureIndex=rt.featureIndex;break}for(let X=P;X<D;X++){let rt=a.get(X);q.iconBox={x1:rt.x1,y1:rt.y1,x2:rt.x2,y2:rt.y2,anchorPointX:rt.anchorPointX,anchorPointY:rt.anchorPointY},q.iconFeatureIndex=rt.featureIndex;break}for(let X=F;X<V;X++){let rt=a.get(X);q.verticalIconBox={x1:rt.x1,y1:rt.y1,x2:rt.x2,y2:rt.y2,anchorPointX:rt.anchorPointX,anchorPointY:rt.anchorPointY},q.verticalIconFeatureIndex=rt.featureIndex;break}return q}deserializeCollisionBoxes(a){this.collisionArrays=[];for(let h=0;h<this.symbolInstances.length;h++){let A=this.symbolInstances.get(h);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(a,A.textBoxStartIndex,A.textBoxEndIndex,A.verticalTextBoxStartIndex,A.verticalTextBoxEndIndex,A.iconBoxStartIndex,A.iconBoxEndIndex,A.verticalIconBoxStartIndex,A.verticalIconBoxEndIndex))}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(a,h){let A=a.placedSymbolArray.get(h),x=A.vertexStartIndex+4*A.numGlyphs;for(let E=A.vertexStartIndex;E<x;E+=4)a.indexArray.emplaceBack(E,E+1,E+2),a.indexArray.emplaceBack(E+1,E+2,E+3)}getSortedSymbolIndexes(a){if(this.sortedAngle===a&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;let h=Math.sin(a),A=Math.cos(a),x=[],E=[],P=[];for(let D=0;D<this.symbolInstances.length;++D){P.push(D);let F=this.symbolInstances.get(D);x.push(0|Math.round(h*F.anchorX+A*F.anchorY)),E.push(F.featureIndex)}return P.sort((D,F)=>x[D]-x[F]||E[F]-E[D]),P}addToSortKeyRanges(a,h){let A=this.sortKeyRanges[this.sortKeyRanges.length-1];A&&A.sortKey===h?A.symbolInstanceEnd=a+1:this.sortKeyRanges.push({sortKey:h,symbolInstanceStart:a,symbolInstanceEnd:a+1})}sortFeatures(a){if(this.sortFeaturesByY&&this.sortedAngle!==a&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(a),this.sortedAngle=a,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let h of this.symbolInstanceIndexes){let A=this.symbolInstances.get(h);this.featureSortOrder.push(A.featureIndex),[A.rightJustifiedTextSymbolIndex,A.centerJustifiedTextSymbolIndex,A.leftJustifiedTextSymbolIndex].forEach((x,E,P)=>{x>=0&&P.indexOf(x)===E&&this.addIndicesForPlacedSymbol(this.text,x)}),A.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,A.verticalPlacedTextSymbolIndex),A.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.placedIconSymbolIndex),A.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,A.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let w6,S6;Ge(\"SymbolBucket\",C_,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),C_.MAX_GLYPHS=65535,C_.addDynamicAttributes=kC;var OC={get paint(){return S6=S6||new Hn({\"icon-opacity\":new dr(ee.paint_symbol[\"icon-opacity\"]),\"icon-color\":new dr(ee.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new dr(ee.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new dr(ee.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new dr(ee.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new nr(ee.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new nr(ee.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new dr(ee.paint_symbol[\"text-opacity\"]),\"text-color\":new dr(ee.paint_symbol[\"text-color\"],{runtimeType:Us,getOverride:u=>u.textColor,hasOverride:u=>!!u.textColor}),\"text-halo-color\":new dr(ee.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new dr(ee.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new dr(ee.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new nr(ee.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new nr(ee.paint_symbol[\"text-translate-anchor\"])})},get layout(){return w6=w6||new Hn({\"symbol-placement\":new nr(ee.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new nr(ee.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new nr(ee.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new dr(ee.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new nr(ee.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new nr(ee.layout_symbol[\"icon-allow-overlap\"]),\"icon-overlap\":new nr(ee.layout_symbol[\"icon-overlap\"]),\"icon-ignore-placement\":new nr(ee.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new nr(ee.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new nr(ee.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new dr(ee.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new nr(ee.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new nr(ee.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new dr(ee.layout_symbol[\"icon-image\"]),\"icon-rotate\":new dr(ee.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new dr(ee.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new nr(ee.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new dr(ee.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new dr(ee.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new nr(ee.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new nr(ee.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new nr(ee.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new dr(ee.layout_symbol[\"text-field\"]),\"text-font\":new dr(ee.layout_symbol[\"text-font\"]),\"text-size\":new dr(ee.layout_symbol[\"text-size\"]),\"text-max-width\":new dr(ee.layout_symbol[\"text-max-width\"]),\"text-line-height\":new nr(ee.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new dr(ee.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new dr(ee.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new dr(ee.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new nr(ee.layout_symbol[\"text-variable-anchor\"]),\"text-variable-anchor-offset\":new dr(ee.layout_symbol[\"text-variable-anchor-offset\"]),\"text-anchor\":new dr(ee.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new nr(ee.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new nr(ee.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new dr(ee.layout_symbol[\"text-rotate\"]),\"text-padding\":new nr(ee.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new nr(ee.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new dr(ee.layout_symbol[\"text-transform\"]),\"text-offset\":new dr(ee.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new nr(ee.layout_symbol[\"text-allow-overlap\"]),\"text-overlap\":new nr(ee.layout_symbol[\"text-overlap\"]),\"text-ignore-placement\":new nr(ee.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new nr(ee.layout_symbol[\"text-optional\"])})}};class T6{constructor(a){if(a.property.overrides===void 0)throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");this.type=a.property.overrides?a.property.overrides.runtimeType:Ca,this.defaultValue=a}evaluate(a){if(a.formattedSection){let h=this.defaultValue.property.overrides;if(h&&h.hasOverride(a.formattedSection))return h.getOverride(a.formattedSection)}return a.feature&&a.featureState?this.defaultValue.evaluate(a.feature,a.featureState):this.defaultValue.property.specification.default}eachChild(a){this.defaultValue.isConstant()||a(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Ge(\"FormatSectionOverride\",T6,{omit:[\"defaultValue\"]});class aT extends ji{constructor(a){super(a,OC)}recalculate(a,h){if(super.recalculate(a,h),this.layout.get(\"icon-rotation-alignment\")===\"auto\"&&(this.layout._values[\"icon-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-rotation-alignment\")===\"auto\"&&(this.layout._values[\"text-rotation-alignment\"]=this.layout.get(\"symbol-placement\")!==\"point\"?\"map\":\"viewport\"),this.layout.get(\"text-pitch-alignment\")===\"auto\"&&(this.layout._values[\"text-pitch-alignment\"]=this.layout.get(\"text-rotation-alignment\")===\"map\"?\"map\":\"viewport\"),this.layout.get(\"icon-pitch-alignment\")===\"auto\"&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\")),this.layout.get(\"symbol-placement\")===\"point\"){let A=this.layout.get(\"text-writing-mode\");if(A){let x=[];for(let E of A)x.indexOf(E)<0&&x.push(E);this.layout._values[\"text-writing-mode\"]=x}else this.layout._values[\"text-writing-mode\"]=[\"horizontal\"]}this._setPaintOverrides()}getValueAndResolveTokens(a,h,A,x){let E=this.layout.get(a).evaluate(h,{},A,x),P=this._unevaluatedLayout._values[a];return P.isDataDriven()||Yp(P.value)||!E?E:function(D,F){return F.replace(/{([^{}]+)}/g,(V,q)=>D&&q in D?String(D[q]):\"\")}(h.properties,E)}createBucket(a){return new C_(a)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error(\"Should take a different path in FeatureIndex\")}_setPaintOverrides(){for(let a of OC.paint.overridableProperties){if(!aT.hasPaintOverride(this.layout,a))continue;let h=this.paint.get(a),A=new T6(h),x=new Jm(A,h.property.specification),E=null;E=h.value.kind===\"constant\"||h.value.kind===\"source\"?new t0(\"source\",x):new wt(\"composite\",x,h.value.zoomStops),this.paint._values[a]=new Mo(h.property,E,h.parameters)}}_handleOverridablePaintPropertyUpdate(a,h,A){return!(!this.layout||h.isDataDriven()||A.isDataDriven())&&aT.hasPaintOverride(this.layout,a)}static hasPaintOverride(a,h){let A=a.get(\"text-field\"),x=OC.paint.properties[h],E=!1,P=D=>{for(let F of D)if(x.overrides&&x.overrides.hasOverride(F))return void(E=!0)};if(A.value.kind===\"constant\"&&A.value.value instanceof ln)P(A.value.value.sections);else if(A.value.kind===\"source\"){let D=V=>{E||(V instanceof Gl&&Ki(V.value)===gt?P(V.value.sections):V instanceof Ti?P(V.sections):V.eachChild(D))},F=A.value;F._styleExpression&&D(F._styleExpression.expression)}return E}}let M6;var tJ={get paint(){return M6=M6||new Hn({\"background-color\":new nr(ee.paint_background[\"background-color\"]),\"background-pattern\":new aA(ee.paint_background[\"background-pattern\"]),\"background-opacity\":new nr(ee.paint_background[\"background-opacity\"])})}};class eJ extends ji{constructor(a){super(a,tJ)}}let E6;var rJ={get paint(){return E6=E6||new Hn({\"raster-opacity\":new nr(ee.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new nr(ee.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new nr(ee.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new nr(ee.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new nr(ee.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new nr(ee.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new nr(ee.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new nr(ee.paint_raster[\"raster-fade-duration\"])})}};class iJ extends ji{constructor(a){super(a,rJ)}}class nJ extends ji{constructor(a){super(a,{}),this.onAdd=h=>{this.implementation.onAdd&&this.implementation.onAdd(h,h.painter.context.gl)},this.onRemove=h=>{this.implementation.onRemove&&this.implementation.onRemove(h,h.painter.context.gl)},this.implementation=a}is3D(){return this.implementation.renderingMode===\"3d\"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error(\"Custom layers cannot be serialized\")}}class sJ{constructor(a){this._callback=a,this._triggered=!1,typeof MessageChannel<\"u\"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._callback()},0))}remove(){delete this._channel,this._callback=()=>{}}}let BC=63710088e-1;class dA{constructor(a,h){if(isNaN(a)||isNaN(h))throw new Error(`Invalid LngLat object: (${a}, ${h})`);if(this.lng=+a,this.lat=+h,this.lat>90||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")}wrap(){return new dA(Et(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(a){let h=Math.PI/180,A=this.lat*h,x=a.lat*h,E=Math.sin(A)*Math.sin(x)+Math.cos(A)*Math.cos(x)*Math.cos((a.lng-this.lng)*h);return BC*Math.acos(Math.min(E,1))}static convert(a){if(a instanceof dA)return a;if(Array.isArray(a)&&(a.length===2||a.length===3))return new dA(Number(a[0]),Number(a[1]));if(!Array.isArray(a)&&typeof a==\"object\"&&a!==null)return new dA(Number(\"lng\"in a?a.lng:a.lon),Number(a.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]\")}}let P6=2*Math.PI*BC;function I6(u){return P6*Math.cos(u*Math.PI/180)}function C6(u){return(180+u)/360}function L6(u){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u*Math.PI/360)))/360}function k6(u,a){return u/I6(a)}function R6(u){return 360*u-180}function FC(u){return 360/Math.PI*Math.atan(Math.exp((180-360*u)*Math.PI/180))-90}class lT{constructor(a,h,A=0){this.x=+a,this.y=+h,this.z=+A}static fromLngLat(a,h=0){let A=dA.convert(a);return new lT(C6(A.lng),L6(A.lat),k6(h,A.lat))}toLngLat(){return new dA(R6(this.x),FC(this.y))}toAltitude(){return this.z*I6(FC(this.y))}meterInMercatorCoordinateUnits(){return 1/P6*(a=FC(this.y),1/Math.cos(a*Math.PI/180));var a}}function D6(u,a,h){var A=2*Math.PI*6378137/256/Math.pow(2,h);return[u*A-2*Math.PI*6378137/2,a*A-2*Math.PI*6378137/2]}class zC{constructor(a,h,A){if(a<0||a>25||A<0||A>=Math.pow(2,a)||h<0||h>=Math.pow(2,a))throw new Error(`x=${h}, y=${A}, z=${a} outside of bounds. 0<=x<${Math.pow(2,a)}, 0<=y<${Math.pow(2,a)} 0<=z<=25 `);this.z=a,this.x=h,this.y=A,this.key=Kx(0,a,a,h,A)}equals(a){return this.z===a.z&&this.x===a.x&&this.y===a.y}url(a,h,A){let x=(P=this.y,D=this.z,F=D6(256*(E=this.x),256*(P=Math.pow(2,D)-P-1),D),V=D6(256*(E+1),256*(P+1),D),F[0]+\",\"+F[1]+\",\"+V[0]+\",\"+V[1]);var E,P,D,F,V;let q=function(X,rt,at){let ct,mt=\"\";for(let bt=X;bt>0;bt--)ct=1<<bt-1,mt+=(rt&ct?1:0)+(at&ct?2:0);return mt}(this.z,this.x,this.y);return a[(this.x+this.y)%a.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(A===\"tms\"?Math.pow(2,this.z)-this.y-1:this.y)).replace(/{ratio}/g,h>1?\"@2x\":\"\").replace(/{quadkey}/g,q).replace(/{bbox-epsg-3857}/g,x)}isChildOf(a){let h=this.z-a.z;return h>0&&a.x===this.x>>h&&a.y===this.y>>h}getTilePoint(a){let h=Math.pow(2,this.z);return new w((a.x*h-this.x)*en,(a.y*h-this.y)*en)}toString(){return`${this.z}/${this.x}/${this.y}`}}class O6{constructor(a,h){this.wrap=a,this.canonical=h,this.key=Kx(a,h.z,h.z,h.x,h.y)}}class Nc{constructor(a,h,A,x,E){if(a<A)throw new Error(`overscaledZ should be >= z; overscaledZ = ${a}; z = ${A}`);this.overscaledZ=a,this.wrap=h,this.canonical=new zC(A,+x,+E),this.key=Kx(h,a,A,x,E)}clone(){return new Nc(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(a){return this.overscaledZ===a.overscaledZ&&this.wrap===a.wrap&&this.canonical.equals(a.canonical)}scaledTo(a){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let h=this.canonical.z-a;return a>this.canonical.z?new Nc(a,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Nc(a,this.wrap,a,this.canonical.x>>h,this.canonical.y>>h)}calculateScaledKey(a,h){if(a>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${a}; overscaledZ = ${this.overscaledZ}`);let A=this.canonical.z-a;return a>this.canonical.z?Kx(this.wrap*+h,a,this.canonical.z,this.canonical.x,this.canonical.y):Kx(this.wrap*+h,a,a,this.canonical.x>>A,this.canonical.y>>A)}isChildOf(a){if(a.wrap!==this.wrap)return!1;let h=this.canonical.z-a.canonical.z;return a.overscaledZ===0||a.overscaledZ<this.overscaledZ&&a.canonical.x===this.canonical.x>>h&&a.canonical.y===this.canonical.y>>h}children(a){if(this.overscaledZ>=a)return[new Nc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let h=this.canonical.z+1,A=2*this.canonical.x,x=2*this.canonical.y;return[new Nc(h,this.wrap,h,A,x),new Nc(h,this.wrap,h,A+1,x),new Nc(h,this.wrap,h,A,x+1),new Nc(h,this.wrap,h,A+1,x+1)]}isLessThan(a){return this.wrap<a.wrap||!(this.wrap>a.wrap)&&(this.overscaledZ<a.overscaledZ||!(this.overscaledZ>a.overscaledZ)&&(this.canonical.x<a.canonical.x||!(this.canonical.x>a.canonical.x)&&this.canonical.y<a.canonical.y))}wrapped(){return new Nc(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(a){return new Nc(this.overscaledZ,a,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return Math.pow(2,this.overscaledZ-this.canonical.z)}toUnwrapped(){return new O6(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(a){return this.canonical.getTilePoint(new lT(a.x-this.wrap,a.y))}}function Kx(u,a,h,A,x){(u*=2)<0&&(u=-1*u-1);let E=1<<h;return(E*E*u+E*x+A).toString(36)+h.toString(36)+a.toString(36)}Ge(\"CanonicalTileID\",zC),Ge(\"OverscaledTileID\",Nc,{omit:[\"posMatrix\"]});class B6{constructor(a,h,A,x=1,E=1,P=1,D=0){if(this.uid=a,h.height!==h.width)throw new RangeError(\"DEM tiles must be square\");if(A&&![\"mapbox\",\"terrarium\",\"custom\"].includes(A))return void Ke(`\"${A}\" is not a valid encoding type. Valid types include \"mapbox\", \"terrarium\" and \"custom\".`);this.stride=h.height;let F=this.dim=h.height-2;switch(this.data=new Uint32Array(h.data.buffer),A){case\"terrarium\":this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case\"custom\":this.redFactor=x,this.greenFactor=E,this.blueFactor=P,this.baseShift=D;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4}for(let V=0;V<F;V++)this.data[this._idx(-1,V)]=this.data[this._idx(0,V)],this.data[this._idx(F,V)]=this.data[this._idx(F-1,V)],this.data[this._idx(V,-1)]=this.data[this._idx(V,0)],this.data[this._idx(V,F)]=this.data[this._idx(V,F-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(F,-1)]=this.data[this._idx(F-1,0)],this.data[this._idx(-1,F)]=this.data[this._idx(0,F-1)],this.data[this._idx(F,F)]=this.data[this._idx(F-1,F-1)],this.min=Number.MAX_SAFE_INTEGER,this.max=Number.MIN_SAFE_INTEGER;for(let V=0;V<F;V++)for(let q=0;q<F;q++){let X=this.get(V,q);X>this.max&&(this.max=X),X<this.min&&(this.min=X)}}get(a,h){let A=new Uint8Array(this.data.buffer),x=4*this._idx(a,h);return this.unpack(A[x],A[x+1],A[x+2])}getUnpackVector(){return[this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(a,h){if(a<-1||a>=this.dim+1||h<-1||h>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return(h+1)*this.stride+(a+1)}unpack(a,h,A){return a*this.redFactor+h*this.greenFactor+A*this.blueFactor-this.baseShift}getPixels(){return new zc({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(a,h,A){if(this.dim!==a.dim)throw new Error(\"dem dimension mismatch\");let x=h*this.dim,E=h*this.dim+this.dim,P=A*this.dim,D=A*this.dim+this.dim;switch(h){case-1:x=E-1;break;case 1:E=x+1}switch(A){case-1:P=D-1;break;case 1:D=P+1}let F=-h*this.dim,V=-A*this.dim;for(let q=P;q<D;q++)for(let X=x;X<E;X++)this.data[this._idx(X,q)]=a.data[this._idx(X+F,q+V)]}}Ge(\"DEMData\",B6);class F6{constructor(a){this._stringToNumber={},this._numberToString=[];for(let h=0;h<a.length;h++){let A=a[h];this._stringToNumber[A]=h,this._numberToString[h]=A}}encode(a){return this._stringToNumber[a]}decode(a){if(a>=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${a} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[a]}}class z6{constructor(a,h,A,x,E){this.type=\"Feature\",this._vectorTileFeature=a,a._z=h,a._x=A,a._y=x,this.properties=a.properties,this.id=E}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(a){this._geometry=a}toJSON(){let a={geometry:this.geometry};for(let h in this)h!==\"_geometry\"&&h!==\"_vectorTileFeature\"&&(a[h]=this[h]);return a}}class N6{constructor(a,h){this.tileID=a,this.x=a.canonical.x,this.y=a.canonical.y,this.z=a.canonical.z,this.grid=new Na(en,16,0),this.grid3D=new Na(en,16,0),this.featureIndexArray=new he,this.promoteId=h}insert(a,h,A,x,E,P){let D=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(A,x,E);let F=P?this.grid3D:this.grid;for(let V=0;V<h.length;V++){let q=h[V],X=[1/0,1/0,-1/0,-1/0];for(let rt=0;rt<q.length;rt++){let at=q[rt];X[0]=Math.min(X[0],at.x),X[1]=Math.min(X[1],at.y),X[2]=Math.max(X[2],at.x),X[3]=Math.max(X[3],at.y)}X[0]<en&&X[1]<en&&X[2]>=0&&X[3]>=0&&F.insert(D,X[0],X[1],X[2],X[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new uA.VectorTile(new MC(this.rawTileData)).layers,this.sourceLayerCoder=new F6(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers}query(a,h,A,x){this.loadVTLayers();let E=a.params||{},P=en/a.tileSize/a.scale,D=r0(E.filter),F=a.queryGeometry,V=a.queryPadding*P,q=V6(F),X=this.grid.query(q.minX-V,q.minY-V,q.maxX+V,q.maxY+V),rt=V6(a.cameraQueryGeometry),at=this.grid3D.query(rt.minX-V,rt.minY-V,rt.maxX+V,rt.maxY+V,(bt,Pt,jt,Rt)=>function(Gt,Yt,ce,Ne,ir){for(let Re of Gt)if(Yt<=Re.x&&ce<=Re.y&&Ne>=Re.x&&ir>=Re.y)return!0;let Fe=[new w(Yt,ce),new w(Yt,ir),new w(Ne,ir),new w(Ne,ce)];if(Gt.length>2){for(let Re of Fe)if(ne(Gt,Re))return!0}for(let Re=0;Re<Gt.length-1;Re++)if(Le(Gt[Re],Gt[Re+1],Fe))return!0;return!1}(a.cameraQueryGeometry,bt-V,Pt-V,jt+V,Rt+V));for(let bt of at)X.push(bt);X.sort(oJ);let ct={},mt;for(let bt=0;bt<X.length;bt++){let Pt=X[bt];if(Pt===mt)continue;mt=Pt;let jt=this.featureIndexArray.get(Pt),Rt=null;this.loadMatchingFeature(ct,jt.bucketIndex,jt.sourceLayerIndex,jt.featureIndex,D,E.layers,E.availableImages,h,A,x,(Gt,Yt,ce)=>(Rt||(Rt=y(Gt)),Yt.queryIntersectsFeature(F,Gt,ce,Rt,this.z,a.transform,P,a.pixelPosMatrix)))}return ct}loadMatchingFeature(a,h,A,x,E,P,D,F,V,q,X){let rt=this.bucketLayerIDs[h];if(P&&!function(bt,Pt){for(let jt=0;jt<bt.length;jt++)if(Pt.indexOf(bt[jt])>=0)return!0;return!1}(P,rt))return;let at=this.sourceLayerCoder.decode(A),ct=this.vtLayers[at].feature(x);if(E.needGeometry){let bt=S(ct,!0);if(!E.filter(new un(this.tileID.overscaledZ),bt,this.tileID.canonical))return}else if(!E.filter(new un(this.tileID.overscaledZ),ct))return;let mt=this.getId(ct,at);for(let bt=0;bt<rt.length;bt++){let Pt=rt[bt];if(P&&P.indexOf(Pt)<0)continue;let jt=F[Pt];if(!jt)continue;let Rt={};mt&&q&&(Rt=q.getState(jt.sourceLayer||\"_geojsonTileLayer\",mt));let Gt=kt({},V[Pt]);Gt.paint=U6(Gt.paint,jt.paint,ct,Rt,D),Gt.layout=U6(Gt.layout,jt.layout,ct,Rt,D);let Yt=!X||X(ct,jt,Rt);if(!Yt)continue;let ce=new z6(ct,this.z,this.x,this.y,mt);ce.layer=Gt;let Ne=a[Pt];Ne===void 0&&(Ne=a[Pt]=[]),Ne.push({featureIndex:x,feature:ce,intersectionZ:Yt})}}lookupSymbolFeatures(a,h,A,x,E,P,D,F){let V={};this.loadVTLayers();let q=r0(E);for(let X of a)this.loadMatchingFeature(V,A,x,X,q,P,D,F,h);return V}hasLayer(a){for(let h of this.bucketLayerIDs)for(let A of h)if(a===A)return!0;return!1}getId(a,h){let A=a.id;return this.promoteId&&(A=a.properties[typeof this.promoteId==\"string\"?this.promoteId:this.promoteId[h]],typeof A==\"boolean\"&&(A=Number(A))),A}}function U6(u,a,h,A,x){return qt(u,(E,P)=>{let D=a instanceof oA?a.get(P):null;return D&&D.evaluate?D.evaluate(h,A,x):D})}function V6(u){let a=1/0,h=1/0,A=-1/0,x=-1/0;for(let E of u)a=Math.min(a,E.x),h=Math.min(h,E.y),A=Math.max(A,E.x),x=Math.max(x,E.y);return{minX:a,minY:h,maxX:A,maxY:x}}function oJ(u,a){return a-u}function j6(u,a,h,A,x){let E=[];for(let P=0;P<u.length;P++){let D=u[P],F;for(let V=0;V<D.length-1;V++){let q=D[V],X=D[V+1];q.x<a&&X.x<a||(q.x<a?q=new w(a,q.y+(a-q.x)/(X.x-q.x)*(X.y-q.y))._round():X.x<a&&(X=new w(a,q.y+(a-q.x)/(X.x-q.x)*(X.y-q.y))._round()),q.y<h&&X.y<h||(q.y<h?q=new w(q.x+(h-q.y)/(X.y-q.y)*(X.x-q.x),h)._round():X.y<h&&(X=new w(q.x+(h-q.y)/(X.y-q.y)*(X.x-q.x),h)._round()),q.x>=A&&X.x>=A||(q.x>=A?q=new w(A,q.y+(A-q.x)/(X.x-q.x)*(X.y-q.y))._round():X.x>=A&&(X=new w(A,q.y+(A-q.x)/(X.x-q.x)*(X.y-q.y))._round()),q.y>=x&&X.y>=x||(q.y>=x?q=new w(q.x+(x-q.y)/(X.y-q.y)*(X.x-q.x),x)._round():X.y>=x&&(X=new w(q.x+(x-q.y)/(X.y-q.y)*(X.x-q.x),x)._round()),F&&q.equals(F[F.length-1])||(F=[q],E.push(F)),F.push(X)))))}}return E}Ge(\"FeatureIndex\",N6,{omit:[\"rawTileData\",\"sourceLayerCoder\"]});class pA extends w{constructor(a,h,A,x){super(a,h),this.angle=A,x!==void 0&&(this.segment=x)}clone(){return new pA(this.x,this.y,this.angle,this.segment)}}function G6(u,a,h,A,x){if(a.segment===void 0||h===0)return!0;let E=a,P=a.segment+1,D=0;for(;D>-h/2;){if(P--,P<0)return!1;D-=u[P].dist(E),E=u[P]}D+=u[P].dist(u[P+1]),P++;let F=[],V=0;for(;D<h/2;){let q=u[P],X=u[P+1];if(!X)return!1;let rt=u[P-1].angleTo(q)-q.angleTo(X);for(rt=Math.abs((rt+3*Math.PI)%(2*Math.PI)-Math.PI),F.push({distance:D,angleDelta:rt}),V+=rt;D-F[0].distance>A;)V-=F.shift().angleDelta;if(V>x)return!1;P++,D+=q.dist(X)}return!0}function W6(u){let a=0;for(let h=0;h<u.length-1;h++)a+=u[h].dist(u[h+1]);return a}function H6(u,a,h){return u?.6*a*h:0}function q6(u,a){return Math.max(u?u.right-u.left:0,a?a.right-a.left:0)}function aJ(u,a,h,A,x,E){let P=H6(h,x,E),D=q6(h,A)*E,F=0,V=W6(u)/2;for(let q=0;q<u.length-1;q++){let X=u[q],rt=u[q+1],at=X.dist(rt);if(F+at>V){let ct=(V-F)/at,mt=Da.number(X.x,rt.x,ct),bt=Da.number(X.y,rt.y,ct),Pt=new pA(mt,bt,rt.angleTo(X),q);return Pt._round(),!P||G6(u,Pt,D,P,a)?Pt:void 0}F+=at}}function lJ(u,a,h,A,x,E,P,D,F){let V=H6(A,E,P),q=q6(A,x),X=q*P,rt=u[0].x===0||u[0].x===F||u[0].y===0||u[0].y===F;return a-X<a/4&&(a=X+a/4),Z6(u,rt?a/2*D%a:(q/2+2*E)*P*D%a,a,V,h,X,rt,!1,F)}function Z6(u,a,h,A,x,E,P,D,F){let V=E/2,q=W6(u),X=0,rt=a-h,at=[];for(let ct=0;ct<u.length-1;ct++){let mt=u[ct],bt=u[ct+1],Pt=mt.dist(bt),jt=bt.angleTo(mt);for(;rt+h<X+Pt;){rt+=h;let Rt=(rt-X)/Pt,Gt=Da.number(mt.x,bt.x,Rt),Yt=Da.number(mt.y,bt.y,Rt);if(Gt>=0&&Gt<F&&Yt>=0&&Yt<F&&rt-V>=0&&rt+V<=q){let ce=new pA(Gt,Yt,jt,ct);ce._round(),A&&!G6(u,ce,E,A,x)||at.push(ce)}}X+=Pt}return D||at.length||P||(at=Z6(u,X/2,h,A,x,E,P,!0,F)),at}Ge(\"Anchor\",pA);let L_=gl;function Y6(u,a,h,A){let x=[],E=u.image,P=E.pixelRatio,D=E.paddedRect.w-2*L_,F=E.paddedRect.h-2*L_,V=u.right-u.left,q=u.bottom-u.top,X=E.stretchX||[[0,D]],rt=E.stretchY||[[0,F]],at=(Me,Ye)=>Me+Ye[1]-Ye[0],ct=X.reduce(at,0),mt=rt.reduce(at,0),bt=D-ct,Pt=F-mt,jt=0,Rt=ct,Gt=0,Yt=mt,ce=0,Ne=bt,ir=0,Fe=Pt;if(E.content&&A){let Me=E.content;jt=cT(X,0,Me[0]),Gt=cT(rt,0,Me[1]),Rt=cT(X,Me[0],Me[2]),Yt=cT(rt,Me[1],Me[3]),ce=Me[0]-jt,ir=Me[1]-Gt,Ne=Me[2]-Me[0]-Rt,Fe=Me[3]-Me[1]-Yt}let Re=(Me,Ye,Ie,Ae)=>{let hr=uT(Me.stretch-jt,Rt,V,u.left),sr=hT(Me.fixed-ce,Ne,Me.stretch,ct),ri=uT(Ye.stretch-Gt,Yt,q,u.top),Tn=hT(Ye.fixed-ir,Fe,Ye.stretch,mt),Rn=uT(Ie.stretch-jt,Rt,V,u.left),qs=hT(Ie.fixed-ce,Ne,Ie.stretch,ct),Ql=uT(Ae.stretch-Gt,Yt,q,u.top),ja=hT(Ae.fixed-ir,Fe,Ae.stretch,mt),Is=new w(hr,ri),Po=new w(Rn,ri),$o=new w(Rn,Ql),Ga=new w(hr,Ql),Wa=new w(sr/P,Tn/P),Zs=new w(qs/P,ja/P),Ys=a*Math.PI/180;if(Ys){let fa=Math.sin(Ys),_l=Math.cos(Ys),yl=[_l,-fa,fa,_l];Is._matMult(yl),Po._matMult(yl),Ga._matMult(yl),$o._matMult(yl)}let ha=Me.stretch+Me.fixed,Ha=Ye.stretch+Ye.fixed;return{tl:Is,tr:Po,bl:Ga,br:$o,tex:{x:E.paddedRect.x+L_+ha,y:E.paddedRect.y+L_+Ha,w:Ie.stretch+Ie.fixed-ha,h:Ae.stretch+Ae.fixed-Ha},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Wa,pixelOffsetBR:Zs,minFontScaleX:Ne/P/V,minFontScaleY:Fe/P/q,isSDF:h}};if(A&&(E.stretchX||E.stretchY)){let Me=Q6(X,bt,ct),Ye=Q6(rt,Pt,mt);for(let Ie=0;Ie<Me.length-1;Ie++){let Ae=Me[Ie],hr=Me[Ie+1];for(let sr=0;sr<Ye.length-1;sr++)x.push(Re(Ae,Ye[sr],hr,Ye[sr+1]))}}else x.push(Re({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:D+1},{fixed:0,stretch:F+1}));return x}function cT(u,a,h){let A=0;for(let x of u)A+=Math.max(a,Math.min(h,x[1]))-Math.max(a,Math.min(h,x[0]));return A}function Q6(u,a,h){let A=[{fixed:-L_,stretch:0}];for(let[x,E]of u){let P=A[A.length-1];A.push({fixed:x-P.stretch,stretch:P.stretch}),A.push({fixed:x-P.stretch,stretch:P.stretch+(E-x)})}return A.push({fixed:a+L_,stretch:h}),A}function uT(u,a,h,A){return u/a*h+A}function hT(u,a,h,A){return u-a*h/A}class fT{constructor(a,h,A,x,E,P,D,F,V,q){if(this.boxStartIndex=a.length,V){let X=P.top,rt=P.bottom,at=P.collisionPadding;at&&(X-=at[1],rt+=at[3]);let ct=rt-X;ct>0&&(ct=Math.max(10,ct),this.circleDiameter=ct)}else{let X=P.top*D-F[0],rt=P.bottom*D+F[2],at=P.left*D-F[3],ct=P.right*D+F[1],mt=P.collisionPadding;if(mt&&(at-=mt[0]*D,X-=mt[1]*D,ct+=mt[2]*D,rt+=mt[3]*D),q){let bt=new w(at,X),Pt=new w(ct,X),jt=new w(at,rt),Rt=new w(ct,rt),Gt=q*Math.PI/180;bt._rotate(Gt),Pt._rotate(Gt),jt._rotate(Gt),Rt._rotate(Gt),at=Math.min(bt.x,Pt.x,jt.x,Rt.x),ct=Math.max(bt.x,Pt.x,jt.x,Rt.x),X=Math.min(bt.y,Pt.y,jt.y,Rt.y),rt=Math.max(bt.y,Pt.y,jt.y,Rt.y)}a.emplaceBack(h.x,h.y,at,X,ct,rt,A,x,E)}this.boxEndIndex=a.length}}class cJ{constructor(a=[],h=uJ){if(this.data=a,this.length=this.data.length,this.compare=h,this.length>0)for(let A=(this.length>>1)-1;A>=0;A--)this._down(A)}push(a){this.data.push(a),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;let a=this.data[0],h=this.data.pop();return this.length--,this.length>0&&(this.data[0]=h,this._down(0)),a}peek(){return this.data[0]}_up(a){let{data:h,compare:A}=this,x=h[a];for(;a>0;){let E=a-1>>1,P=h[E];if(A(x,P)>=0)break;h[a]=P,a=E}h[a]=x}_down(a){let{data:h,compare:A}=this,x=this.length>>1,E=h[a];for(;a<x;){let P=1+(a<<1),D=h[P],F=P+1;if(F<this.length&&A(h[F],D)<0&&(P=F,D=h[F]),A(D,E)>=0)break;h[a]=D,a=P}h[a]=E}}function uJ(u,a){return u<a?-1:u>a?1:0}function hJ(u,a=1,h=!1){let A=1/0,x=1/0,E=-1/0,P=-1/0,D=u[0];for(let at=0;at<D.length;at++){let ct=D[at];(!at||ct.x<A)&&(A=ct.x),(!at||ct.y<x)&&(x=ct.y),(!at||ct.x>E)&&(E=ct.x),(!at||ct.y>P)&&(P=ct.y)}let F=Math.min(E-A,P-x),V=F/2,q=new cJ([],fJ);if(F===0)return new w(A,x);for(let at=A;at<E;at+=F)for(let ct=x;ct<P;ct+=F)q.push(new k_(at+V,ct+V,V,u));let X=function(at){let ct=0,mt=0,bt=0,Pt=at[0];for(let jt=0,Rt=Pt.length,Gt=Rt-1;jt<Rt;Gt=jt++){let Yt=Pt[jt],ce=Pt[Gt],Ne=Yt.x*ce.y-ce.x*Yt.y;mt+=(Yt.x+ce.x)*Ne,bt+=(Yt.y+ce.y)*Ne,ct+=3*Ne}return new k_(mt/ct,bt/ct,0,at)}(u),rt=q.length;for(;q.length;){let at=q.pop();(at.d>X.d||!X.d)&&(X=at,h&&console.log(\"found best %d after %d probes\",Math.round(1e4*at.d)/1e4,rt)),at.max-X.d<=a||(V=at.h/2,q.push(new k_(at.p.x-V,at.p.y-V,V,u)),q.push(new k_(at.p.x+V,at.p.y-V,V,u)),q.push(new k_(at.p.x-V,at.p.y+V,V,u)),q.push(new k_(at.p.x+V,at.p.y+V,V,u)),rt+=4)}return h&&(console.log(`num probes: ${rt}`),console.log(`best distance: ${X.d}`)),X.p}function fJ(u,a){return a.max-u.max}function k_(u,a,h,A){this.p=new w(u,a),this.h=h,this.d=function(x,E){let P=!1,D=1/0;for(let F=0;F<E.length;F++){let V=E[F];for(let q=0,X=V.length,rt=X-1;q<X;rt=q++){let at=V[q],ct=V[rt];at.y>x.y!=ct.y>x.y&&x.x<(ct.x-at.x)*(x.y-at.y)/(ct.y-at.y)+at.x&&(P=!P),D=Math.min(D,Wt(x,at,ct))}}return(P?1:-1)*Math.sqrt(D)}(this.p,A),this.max=this.d+this.h*Math.SQRT2}var Qo;n.aq=void 0,(Qo=n.aq||(n.aq={}))[Qo.center=1]=\"center\",Qo[Qo.left=2]=\"left\",Qo[Qo.right=3]=\"right\",Qo[Qo.top=4]=\"top\",Qo[Qo.bottom=5]=\"bottom\",Qo[Qo[\"top-left\"]=6]=\"top-left\",Qo[Qo[\"top-right\"]=7]=\"top-right\",Qo[Qo[\"bottom-left\"]=8]=\"bottom-left\",Qo[Qo[\"bottom-right\"]=9]=\"bottom-right\";let AA=7,NC=Number.POSITIVE_INFINITY;function $6(u,a){return a[1]!==NC?function(h,A,x){let E=0,P=0;switch(A=Math.abs(A),x=Math.abs(x),h){case\"top-right\":case\"top-left\":case\"top\":P=x-AA;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":P=-x+AA}switch(h){case\"top-right\":case\"bottom-right\":case\"right\":E=-A;break;case\"top-left\":case\"bottom-left\":case\"left\":E=A}return[E,P]}(u,a[0],a[1]):function(h,A){let x=0,E=0;A<0&&(A=0);let P=A/Math.SQRT2;switch(h){case\"top-right\":case\"top-left\":E=P-AA;break;case\"bottom-right\":case\"bottom-left\":E=-P+AA;break;case\"bottom\":E=-A+AA;break;case\"top\":E=A-AA}switch(h){case\"top-right\":case\"bottom-right\":x=-P;break;case\"top-left\":case\"bottom-left\":x=P;break;case\"left\":x=A;break;case\"right\":x=-A}return[x,E]}(u,a[0])}function X6(u,a,h){var A;let x=u.layout,E=(A=x.get(\"text-variable-anchor-offset\"))===null||A===void 0?void 0:A.evaluate(a,{},h);if(E){let D=E.values,F=[];for(let V=0;V<D.length;V+=2){let q=F[V]=D[V],X=D[V+1].map(rt=>rt*Hs);q.startsWith(\"top\")?X[1]-=AA:q.startsWith(\"bottom\")&&(X[1]+=AA),F[V+1]=X}return new Go(F)}let P=x.get(\"text-variable-anchor\");if(P){let D;D=u._unevaluatedLayout.getValue(\"text-radial-offset\")!==void 0?[x.get(\"text-radial-offset\").evaluate(a,{},h)*Hs,NC]:x.get(\"text-offset\").evaluate(a,{},h).map(V=>V*Hs);let F=[];for(let V of P)F.push(V,$6(V,D));return new Go(F)}return null}function UC(u){switch(u){case\"right\":case\"top-right\":case\"bottom-right\":return\"right\";case\"left\":case\"top-left\":case\"bottom-left\":return\"left\"}return\"center\"}function dJ(u,a,h,A,x,E,P,D,F,V,q){let X=E.textMaxSize.evaluate(a,{});X===void 0&&(X=P);let rt=u.layers[0].layout,at=rt.get(\"icon-offset\").evaluate(a,{},q),ct=J6(h.horizontal),mt=P/24,bt=u.tilePixelRatio*mt,Pt=u.tilePixelRatio*X/24,jt=u.tilePixelRatio*D,Rt=u.tilePixelRatio*rt.get(\"symbol-spacing\"),Gt=rt.get(\"text-padding\")*u.tilePixelRatio,Yt=function(Ae,hr,sr,ri=1){let Tn=Ae.get(\"icon-padding\").evaluate(hr,{},sr),Rn=Tn&&Tn.values;return[Rn[0]*ri,Rn[1]*ri,Rn[2]*ri,Rn[3]*ri]}(rt,a,q,u.tilePixelRatio),ce=rt.get(\"text-max-angle\")/180*Math.PI,Ne=rt.get(\"text-rotation-alignment\")!==\"viewport\"&&rt.get(\"symbol-placement\")!==\"point\",ir=rt.get(\"icon-rotation-alignment\")===\"map\"&&rt.get(\"symbol-placement\")!==\"point\",Fe=rt.get(\"symbol-placement\"),Re=Rt/2,Me=rt.get(\"icon-text-fit\"),Ye;A&&Me!==\"none\"&&(u.allowVerticalPlacement&&h.vertical&&(Ye=x6(A,h.vertical,Me,rt.get(\"icon-text-fit-padding\"),at,mt)),ct&&(A=x6(A,ct,Me,rt.get(\"icon-text-fit-padding\"),at,mt)));let Ie=(Ae,hr)=>{hr.x<0||hr.x>=en||hr.y<0||hr.y>=en||function(sr,ri,Tn,Rn,qs,Ql,ja,Is,Po,$o,Ga,Wa,Zs,Ys,ha,Ha,fa,_l,yl,Qs,di,da,Xo,$s,xu){let vh=sr.addToLineVertexArray(ri,Tn),xh,Ud,bu,Uc,vl=0,Vd=0,e1=0,iz=0,YC=-1,QC=-1,jd={},nz=yh(\"\");if(sr.allowVerticalPlacement&&Rn.vertical){let pa=Is.layout.get(\"text-rotate\").evaluate(di,{},$s)+90;bu=new fT(Po,ri,$o,Ga,Wa,Rn.vertical,Zs,Ys,ha,pa),ja&&(Uc=new fT(Po,ri,$o,Ga,Wa,ja,fa,_l,ha,pa))}if(qs){let pa=Is.layout.get(\"icon-rotate\").evaluate(di,{}),Vc=Is.layout.get(\"icon-text-fit\")!==\"none\",m0=Y6(qs,pa,Xo,Vc),wh=ja?Y6(ja,pa,Xo,Vc):void 0;Ud=new fT(Po,ri,$o,Ga,Wa,qs,fa,_l,!1,pa),vl=4*m0.length;let g0=sr.iconSizeData,Pf=null;g0.kind===\"source\"?(Pf=[Ef*Is.layout.get(\"icon-size\").evaluate(di,{})],Pf[0]>fA&&Ke(`${sr.layerIds[0]}: Value for \"icon-size\" is >= ${Xx}. Reduce your \"icon-size\".`)):g0.kind===\"composite\"&&(Pf=[Ef*da.compositeIconSizes[0].evaluate(di,{},$s),Ef*da.compositeIconSizes[1].evaluate(di,{},$s)],(Pf[0]>fA||Pf[1]>fA)&&Ke(`${sr.layerIds[0]}: Value for \"icon-size\" is >= ${Xx}. Reduce your \"icon-size\".`)),sr.addSymbols(sr.icon,m0,Pf,Qs,yl,di,n.ai.none,ri,vh.lineStartIndex,vh.lineLength,-1,$s),YC=sr.icon.placedSymbolArray.length-1,wh&&(Vd=4*wh.length,sr.addSymbols(sr.icon,wh,Pf,Qs,yl,di,n.ai.vertical,ri,vh.lineStartIndex,vh.lineLength,-1,$s),QC=sr.icon.placedSymbolArray.length-1)}let sz=Object.keys(Rn.horizontal);for(let pa of sz){let Vc=Rn.horizontal[pa];if(!xh){nz=yh(Vc.text);let wh=Is.layout.get(\"text-rotate\").evaluate(di,{},$s);xh=new fT(Po,ri,$o,Ga,Wa,Vc,Zs,Ys,ha,wh)}let m0=Vc.positionedLines.length===1;if(e1+=K6(sr,ri,Vc,Ql,Is,ha,di,Ha,vh,Rn.vertical?n.ai.horizontal:n.ai.horizontalOnly,m0?sz:[pa],jd,YC,da,$s),m0)break}Rn.vertical&&(iz+=K6(sr,ri,Rn.vertical,Ql,Is,ha,di,Ha,vh,n.ai.vertical,[\"vertical\"],jd,QC,da,$s));let mJ=xh?xh.boxStartIndex:sr.collisionBoxArray.length,gJ=xh?xh.boxEndIndex:sr.collisionBoxArray.length,_J=bu?bu.boxStartIndex:sr.collisionBoxArray.length,yJ=bu?bu.boxEndIndex:sr.collisionBoxArray.length,vJ=Ud?Ud.boxStartIndex:sr.collisionBoxArray.length,xJ=Ud?Ud.boxEndIndex:sr.collisionBoxArray.length,bJ=Uc?Uc.boxStartIndex:sr.collisionBoxArray.length,wJ=Uc?Uc.boxEndIndex:sr.collisionBoxArray.length,bh=-1,pT=(pa,Vc)=>pa&&pa.circleDiameter?Math.max(pa.circleDiameter,Vc):Vc;bh=pT(xh,bh),bh=pT(bu,bh),bh=pT(Ud,bh),bh=pT(Uc,bh);let oz=bh>-1?1:0;oz&&(bh*=xu/Hs),sr.glyphOffsetArray.length>=C_.MAX_GLYPHS&&Ke(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),di.sortKey!==void 0&&sr.addToSortKeyRanges(sr.symbolInstances.length,di.sortKey);let SJ=X6(Is,di,$s),[TJ,MJ]=function(pa,Vc){let m0=pa.length,wh=Vc?.values;if(wh?.length>0)for(let g0=0;g0<wh.length;g0+=2){let Pf=wh[g0+1];pa.emplaceBack(n.aq[wh[g0]],Pf[0],Pf[1])}return[m0,pa.length]}(sr.textAnchorOffsets,SJ);sr.symbolInstances.emplaceBack(ri.x,ri.y,jd.right>=0?jd.right:-1,jd.center>=0?jd.center:-1,jd.left>=0?jd.left:-1,jd.vertical||-1,YC,QC,nz,mJ,gJ,_J,yJ,vJ,xJ,bJ,wJ,$o,e1,iz,vl,Vd,oz,0,Zs,bh,TJ,MJ)}(u,hr,Ae,h,A,x,Ye,u.layers[0],u.collisionBoxArray,a.index,a.sourceLayerIndex,u.index,bt,[Gt,Gt,Gt,Gt],Ne,F,jt,Yt,ir,at,a,E,V,q,P)};if(Fe===\"line\")for(let Ae of j6(a.geometry,0,0,en,en)){let hr=lJ(Ae,Rt,ce,h.vertical||ct,A,24,Pt,u.overscaling,en);for(let sr of hr)ct&&pJ(u,ct.text,Re,sr)||Ie(Ae,sr)}else if(Fe===\"line-center\"){for(let Ae of a.geometry)if(Ae.length>1){let hr=aJ(Ae,ce,h.vertical||ct,A,24,Pt);hr&&Ie(Ae,hr)}}else if(a.type===\"Polygon\")for(let Ae of _C(a.geometry,0)){let hr=hJ(Ae,16);Ie(Ae[0],new pA(hr.x,hr.y,0))}else if(a.type===\"LineString\")for(let Ae of a.geometry)Ie(Ae,new pA(Ae[0].x,Ae[0].y,0));else if(a.type===\"Point\")for(let Ae of a.geometry)for(let hr of Ae)Ie([hr],new pA(hr.x,hr.y,0))}function K6(u,a,h,A,x,E,P,D,F,V,q,X,rt,at,ct){let mt=function(jt,Rt,Gt,Yt,ce,Ne,ir,Fe){let Re=Yt.layout.get(\"text-rotate\").evaluate(Ne,{})*Math.PI/180,Me=[];for(let Ye of Rt.positionedLines)for(let Ie of Ye.positionedGlyphs){if(!Ie.rect)continue;let Ae=Ie.rect||{},hr=p6+1,sr=!0,ri=1,Tn=0,Rn=(ce||Fe)&&Ie.vertical,qs=Ie.metrics.advance*Ie.scale/2;if(Fe&&Rt.verticalizable&&(Tn=Ye.lineOffset/2-(Ie.imageName?-(Hs-Ie.metrics.width*Ie.scale)/2:(Ie.scale-1)*Hs)),Ie.imageName){let Qs=ir[Ie.imageName];sr=Qs.sdf,ri=Qs.pixelRatio,hr=gl/ri}let Ql=ce?[Ie.x+qs,Ie.y]:[0,0],ja=ce?[0,0]:[Ie.x+qs+Gt[0],Ie.y+Gt[1]-Tn],Is=[0,0];Rn&&(Is=ja,ja=[0,0]);let Po=Ie.metrics.isDoubleResolution?2:1,$o=(Ie.metrics.left-hr)*Ie.scale-qs+ja[0],Ga=(-Ie.metrics.top-hr)*Ie.scale+ja[1],Wa=$o+Ae.w/Po*Ie.scale/ri,Zs=Ga+Ae.h/Po*Ie.scale/ri,Ys=new w($o,Ga),ha=new w(Wa,Ga),Ha=new w($o,Zs),fa=new w(Wa,Zs);if(Rn){let Qs=new w(-qs,qs-Qx),di=-Math.PI/2,da=Hs/2-qs,Xo=new w(5-Qx-da,-(Ie.imageName?da:0)),$s=new w(...Is);Ys._rotateAround(di,Qs)._add(Xo)._add($s),ha._rotateAround(di,Qs)._add(Xo)._add($s),Ha._rotateAround(di,Qs)._add(Xo)._add($s),fa._rotateAround(di,Qs)._add(Xo)._add($s)}if(Re){let Qs=Math.sin(Re),di=Math.cos(Re),da=[di,-Qs,Qs,di];Ys._matMult(da),ha._matMult(da),Ha._matMult(da),fa._matMult(da)}let _l=new w(0,0),yl=new w(0,0);Me.push({tl:Ys,tr:ha,bl:Ha,br:fa,tex:Ae,writingMode:Rt.writingMode,glyphOffset:Ql,sectionIndex:Ie.sectionIndex,isSDF:sr,pixelOffsetTL:_l,pixelOffsetBR:yl,minFontScaleX:0,minFontScaleY:0})}return Me}(0,h,D,x,E,P,A,u.allowVerticalPlacement),bt=u.textSizeData,Pt=null;bt.kind===\"source\"?(Pt=[Ef*x.layout.get(\"text-size\").evaluate(P,{})],Pt[0]>fA&&Ke(`${u.layerIds[0]}: Value for \"text-size\" is >= ${Xx}. Reduce your \"text-size\".`)):bt.kind===\"composite\"&&(Pt=[Ef*at.compositeTextSizes[0].evaluate(P,{},ct),Ef*at.compositeTextSizes[1].evaluate(P,{},ct)],(Pt[0]>fA||Pt[1]>fA)&&Ke(`${u.layerIds[0]}: Value for \"text-size\" is >= ${Xx}. Reduce your \"text-size\".`)),u.addSymbols(u.text,mt,Pt,D,E,P,V,a,F.lineStartIndex,F.lineLength,rt,ct);for(let jt of q)X[jt]=u.text.placedSymbolArray.length-1;return 4*mt.length}function J6(u){for(let a in u)return u[a];return null}function pJ(u,a,h,A){let x=u.compareText;if(a in x){let E=x[a];for(let P=E.length-1;P>=0;P--)if(A.dist(E[P])<h)return!0}else x[a]=[];return x[a].push(A),!1}let tz=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class VC{static from(a){if(!(a instanceof ArrayBuffer))throw new Error(\"Data must be an instance of ArrayBuffer.\");let[h,A]=new Uint8Array(a,0,2);if(h!==219)throw new Error(\"Data does not appear to be in a KDBush format.\");let x=A>>4;if(x!==1)throw new Error(`Got v${x} data when expected v1.`);let E=tz[15&A];if(!E)throw new Error(\"Unrecognized array type.\");let[P]=new Uint16Array(a,2,1),[D]=new Uint32Array(a,4,1);return new VC(D,P,E,a)}constructor(a,h=64,A=Float64Array,x){if(isNaN(a)||a<0)throw new Error(`Unpexpected numItems value: ${a}.`);this.numItems=+a,this.nodeSize=Math.min(Math.max(+h,2),65535),this.ArrayType=A,this.IndexArrayType=a<65536?Uint16Array:Uint32Array;let E=tz.indexOf(this.ArrayType),P=2*a*this.ArrayType.BYTES_PER_ELEMENT,D=a*this.IndexArrayType.BYTES_PER_ELEMENT,F=(8-D%8)%8;if(E<0)throw new Error(`Unexpected typed array class: ${A}.`);x&&x instanceof ArrayBuffer?(this.data=x,this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+F,2*a),this._pos=2*a,this._finished=!0):(this.data=new ArrayBuffer(8+P+D+F),this.ids=new this.IndexArrayType(this.data,8,a),this.coords=new this.ArrayType(this.data,8+D+F,2*a),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+E]),new Uint16Array(this.data,2,1)[0]=h,new Uint32Array(this.data,4,1)[0]=a)}add(a,h){let A=this._pos>>1;return this.ids[A]=A,this.coords[this._pos++]=a,this.coords[this._pos++]=h,A}finish(){let a=this._pos>>1;if(a!==this.numItems)throw new Error(`Added ${a} items when expected ${this.numItems}.`);return jC(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(a,h,A,x){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:E,coords:P,nodeSize:D}=this,F=[0,E.length-1,0],V=[];for(;F.length;){let q=F.pop()||0,X=F.pop()||0,rt=F.pop()||0;if(X-rt<=D){for(let bt=rt;bt<=X;bt++){let Pt=P[2*bt],jt=P[2*bt+1];Pt>=a&&Pt<=A&&jt>=h&&jt<=x&&V.push(E[bt])}continue}let at=rt+X>>1,ct=P[2*at],mt=P[2*at+1];ct>=a&&ct<=A&&mt>=h&&mt<=x&&V.push(E[at]),(q===0?a<=ct:h<=mt)&&(F.push(rt),F.push(at-1),F.push(1-q)),(q===0?A>=ct:x>=mt)&&(F.push(at+1),F.push(X),F.push(1-q))}return V}within(a,h,A){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");let{ids:x,coords:E,nodeSize:P}=this,D=[0,x.length-1,0],F=[],V=A*A;for(;D.length;){let q=D.pop()||0,X=D.pop()||0,rt=D.pop()||0;if(X-rt<=P){for(let bt=rt;bt<=X;bt++)rz(E[2*bt],E[2*bt+1],a,h)<=V&&F.push(x[bt]);continue}let at=rt+X>>1,ct=E[2*at],mt=E[2*at+1];rz(ct,mt,a,h)<=V&&F.push(x[at]),(q===0?a-A<=ct:h-A<=mt)&&(D.push(rt),D.push(at-1),D.push(1-q)),(q===0?a+A>=ct:h+A>=mt)&&(D.push(at+1),D.push(X),D.push(1-q))}return F}}function jC(u,a,h,A,x,E){if(x-A<=h)return;let P=A+x>>1;ez(u,a,P,A,x,E),jC(u,a,h,A,P-1,1-E),jC(u,a,h,P+1,x,1-E)}function ez(u,a,h,A,x,E){for(;x>A;){if(x-A>600){let V=x-A+1,q=h-A+1,X=Math.log(V),rt=.5*Math.exp(2*X/3),at=.5*Math.sqrt(X*rt*(V-rt)/V)*(q-V/2<0?-1:1);ez(u,a,h,Math.max(A,Math.floor(h-q*rt/V+at)),Math.min(x,Math.floor(h+(V-q)*rt/V+at)),E)}let P=a[2*h+E],D=A,F=x;for(Jx(u,a,A,h),a[2*x+E]>P&&Jx(u,a,A,x);D<F;){for(Jx(u,a,D,F),D++,F--;a[2*D+E]<P;)D++;for(;a[2*F+E]>P;)F--}a[2*A+E]===P?Jx(u,a,A,F):(F++,Jx(u,a,F,x)),F<=h&&(A=F+1),h<=F&&(x=F-1)}}function Jx(u,a,h,A){GC(u,h,A),GC(a,2*h,2*A),GC(a,2*h+1,2*A+1)}function GC(u,a,h){let A=u[a];u[a]=u[h],u[h]=A}function rz(u,a,h,A){let x=u-h,E=a-A;return x*x+E*E}var WC;n.bh=void 0,(WC=n.bh||(n.bh={})).create=\"create\",WC.load=\"load\",WC.fullLoad=\"fullLoad\";let dT=null,t1=[],HC=1e3/60,qC=\"loadTime\",ZC=\"fullLoadTime\",AJ={mark(u){performance.mark(u)},frame(u){let a=u;dT!=null&&t1.push(a-dT),dT=a},clearMetrics(){dT=null,t1=[],performance.clearMeasures(qC),performance.clearMeasures(ZC);for(let u in n.bh)performance.clearMarks(n.bh[u])},getPerformanceMetrics(){performance.measure(qC,n.bh.create,n.bh.load),performance.measure(ZC,n.bh.create,n.bh.fullLoad);let u=performance.getEntriesByName(qC)[0].duration,a=performance.getEntriesByName(ZC)[0].duration,h=t1.length,A=1/(t1.reduce((E,P)=>E+P,0)/h/1e3),x=t1.filter(E=>E>HC).reduce((E,P)=>E+(P-HC)/HC,0);return{loadTime:u,fullLoadTime:a,fps:A,percentDroppedFrames:x/(h+x)*100,totalFrames:h}}};n.$=function(u,a,h){var A,x,E,P,D,F,V,q,X,rt,at,ct,mt=h[0],bt=h[1],Pt=h[2];return a===u?(u[12]=a[0]*mt+a[4]*bt+a[8]*Pt+a[12],u[13]=a[1]*mt+a[5]*bt+a[9]*Pt+a[13],u[14]=a[2]*mt+a[6]*bt+a[10]*Pt+a[14],u[15]=a[3]*mt+a[7]*bt+a[11]*Pt+a[15]):(x=a[1],E=a[2],P=a[3],D=a[4],F=a[5],V=a[6],q=a[7],X=a[8],rt=a[9],at=a[10],ct=a[11],u[0]=A=a[0],u[1]=x,u[2]=E,u[3]=P,u[4]=D,u[5]=F,u[6]=V,u[7]=q,u[8]=X,u[9]=rt,u[10]=at,u[11]=ct,u[12]=A*mt+D*bt+X*Pt+a[12],u[13]=x*mt+F*bt+rt*Pt+a[13],u[14]=E*mt+V*bt+at*Pt+a[14],u[15]=P*mt+q*bt+ct*Pt+a[15]),u},n.A=je,n.B=Da,n.C=class{constructor(u,a,h){this.receive=A=>{let x=A.data,E=x.id;if(E&&(!x.targetMapId||this.mapId===x.targetMapId))if(x.type===\"<cancel>\"){delete this.tasks[E];let P=this.cancelCallbacks[E];delete this.cancelCallbacks[E],P&&P()}else Li()||x.mustQueue?(this.tasks[E]=x,this.taskQueue.push(E),this.invoker.trigger()):this.processTask(E,x)},this.process=()=>{if(!this.taskQueue.length)return;let A=this.taskQueue.shift(),x=this.tasks[A];delete this.tasks[A],this.taskQueue.length&&this.invoker.trigger(),x&&this.processTask(A,x)},this.target=u,this.parent=a,this.mapId=h,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},this.invoker=new sJ(this.process),this.target.addEventListener(\"message\",this.receive,!1),this.globalScope=Li()?u:window}send(u,a,h,A,x=!1){let E=Math.round(1e18*Math.random()).toString(36).substring(0,10);h&&(this.callbacks[E]=h);let P=[],D={id:E,type:u,hasCallback:!!h,targetMapId:A,mustQueue:x,sourceMapId:this.mapId,data:Hl(a,P)};return this.target.postMessage(D,{transfer:P}),{cancel:()=>{h&&delete this.callbacks[E],this.target.postMessage({id:E,type:\"<cancel>\",targetMapId:A,sourceMapId:this.mapId})}}}processTask(u,a){if(a.type===\"<response>\"){let h=this.callbacks[u];delete this.callbacks[u],h&&(a.error?h(xf(a.error)):h(null,xf(a.data)))}else{let h=!1,A=[],x=a.hasCallback?(D,F)=>{h=!0,delete this.cancelCallbacks[u];let V={id:u,type:\"<response>\",sourceMapId:this.mapId,error:D?Hl(D):null,data:Hl(F,A)};this.target.postMessage(V,{transfer:A})}:D=>{h=!0},E=null,P=xf(a.data);if(this.parent[a.type])E=this.parent[a.type](a.sourceMapId,P,x);else if(\"getWorkerSource\"in this.parent){let D=a.type.split(\".\");E=this.parent.getWorkerSource(a.sourceMapId,D[0],P.source)[D[1]](P,x)}else x(new Error(`Could not find function ${a.type}`));!h&&E&&E.cancel&&(this.cancelCallbacks[u]=E.cancel)}}remove(){this.invoker.remove(),this.target.removeEventListener(\"message\",this.receive,!1)}},n.D=nr,n.E=Nl,n.F=function(u,a){let h={};for(let A=0;A<a.length;A++){let x=a[A];x in u&&(h[x]=u[x])}return h},n.G=C6,n.H=L6,n.I=PC,n.J=et,n.K=Y,n.L=dA,n.M=ih,n.N=en,n.O=Nc,n.P=w,n.Q=wn,n.R=zc,n.S=jr,n.T=Ah,n.U=lT,n.V=class extends Wo{},n.W=zC,n.X=function(u,a){let h=window.document.createElement(\"video\");h.muted=!0,h.onloadstart=function(){a(null,h)};for(let A=0;A<u.length;A++){let x=window.document.createElement(\"source\");xo(u[A])||(h.crossOrigin=\"Anonymous\"),x.src=u[A],h.appendChild(x)}return{cancel:()=>{}}},n.Y=ve,n.Z=function(){var u=new je(16);return je!=Float32Array&&(u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=0,u[12]=0,u[13]=0,u[14]=0),u[0]=1,u[5]=1,u[10]=1,u[15]=1,u},n._=o,n.a=zl,n.a$=class extends st{},n.a0=function(u,a,h){var A=h[0],x=h[1],E=h[2];return u[0]=a[0]*A,u[1]=a[1]*A,u[2]=a[2]*A,u[3]=a[3]*A,u[4]=a[4]*x,u[5]=a[5]*x,u[6]=a[6]*x,u[7]=a[7]*x,u[8]=a[8]*E,u[9]=a[9]*E,u[10]=a[10]*E,u[11]=a[11]*E,u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.a1=qi,n.a2=function(){return Xt++},n.a3=yt,n.a4=C_,n.a5=function(){ua.isLoading()||ua.isLoaded()||f0()!==\"deferred\"||v_()},n.a6=r0,n.a7=S,n.a8=un,n.a9=z6,n.aA=Bc,n.aB=function(u){u=u.slice();let a=Object.create(null);for(let h=0;h<u.length;h++)a[u[h].id]=u[h];for(let h=0;h<u.length;h++)\"ref\"in u[h]&&(u[h]=mn(u[h],a[u[h].ref]));return u},n.aC=function(u){if(u.type===\"custom\")return new nJ(u);switch(u.type){case\"background\":return new eJ(u);case\"circle\":return new Sn(u);case\"fill\":return new oK(u);case\"fill-extrusion\":return new xK(u);case\"heatmap\":return new jX(u);case\"hillshade\":return new WX(u);case\"line\":return new IK(u);case\"raster\":return new iJ(u);case\"symbol\":return new aT(u)}},n.aD=ue,n.aE=function(u,a){if(!u)return[{command:oi.setStyle,args:[a]}];let h=[];try{if(!gi(u.version,a.version))return[{command:oi.setStyle,args:[a]}];gi(u.center,a.center)||h.push({command:oi.setCenter,args:[a.center]}),gi(u.zoom,a.zoom)||h.push({command:oi.setZoom,args:[a.zoom]}),gi(u.bearing,a.bearing)||h.push({command:oi.setBearing,args:[a.bearing]}),gi(u.pitch,a.pitch)||h.push({command:oi.setPitch,args:[a.pitch]}),gi(u.sprite,a.sprite)||h.push({command:oi.setSprite,args:[a.sprite]}),gi(u.glyphs,a.glyphs)||h.push({command:oi.setGlyphs,args:[a.glyphs]}),gi(u.transition,a.transition)||h.push({command:oi.setTransition,args:[a.transition]}),gi(u.light,a.light)||h.push({command:oi.setLight,args:[a.light]});let A={},x=[];(function(P,D,F,V){let q;for(q in D=D||{},P=P||{})Object.prototype.hasOwnProperty.call(P,q)&&(Object.prototype.hasOwnProperty.call(D,q)||du(q,F,V));for(q in D)Object.prototype.hasOwnProperty.call(D,q)&&(Object.prototype.hasOwnProperty.call(P,q)?gi(P[q],D[q])||(P[q].type===\"geojson\"&&D[q].type===\"geojson\"&&bo(P,D,q)?F.push({command:oi.setGeoJSONSourceData,args:[q,D[q].data]}):ul(q,D,F,V)):lo(q,D,F))})(u.sources,a.sources,x,A);let E=[];u.layers&&u.layers.forEach(P=>{A[P.source]?h.push({command:oi.removeLayer,args:[P.id]}):E.push(P)}),h=h.concat(x),function(P,D,F){D=D||[];let V=(P=P||[]).map(Ia),q=D.map(Ia),X=P.reduce(wo,{}),rt=D.reduce(wo,{}),at=V.slice(),ct=Object.create(null),mt,bt,Pt,jt,Rt,Gt,Yt;for(mt=0,bt=0;mt<V.length;mt++)Pt=V[mt],Object.prototype.hasOwnProperty.call(rt,Pt)?bt++:(F.push({command:oi.removeLayer,args:[Pt]}),at.splice(at.indexOf(Pt,bt),1));for(mt=0,bt=0;mt<q.length;mt++)Pt=q[q.length-1-mt],at[at.length-1-mt]!==Pt&&(Object.prototype.hasOwnProperty.call(X,Pt)?(F.push({command:oi.removeLayer,args:[Pt]}),at.splice(at.lastIndexOf(Pt,at.length-bt),1)):bt++,Gt=at[at.length-mt],F.push({command:oi.addLayer,args:[rt[Pt],Gt]}),at.splice(at.length-mt,0,Pt),ct[Pt]=!0);for(mt=0;mt<q.length;mt++)if(Pt=q[mt],jt=X[Pt],Rt=rt[Pt],!ct[Pt]&&!gi(jt,Rt))if(gi(jt.source,Rt.source)&&gi(jt[\"source-layer\"],Rt[\"source-layer\"])&&gi(jt.type,Rt.type)){for(Yt in hl(jt.layout,Rt.layout,F,Pt,null,oi.setLayoutProperty),hl(jt.paint,Rt.paint,F,Pt,null,oi.setPaintProperty),gi(jt.filter,Rt.filter)||F.push({command:oi.setFilter,args:[Pt,Rt.filter]}),gi(jt.minzoom,Rt.minzoom)&&gi(jt.maxzoom,Rt.maxzoom)||F.push({command:oi.setLayerZoomRange,args:[Pt,Rt.minzoom,Rt.maxzoom]}),jt)Object.prototype.hasOwnProperty.call(jt,Yt)&&Yt!==\"layout\"&&Yt!==\"paint\"&&Yt!==\"filter\"&&Yt!==\"metadata\"&&Yt!==\"minzoom\"&&Yt!==\"maxzoom\"&&(Yt.indexOf(\"paint.\")===0?hl(jt[Yt],Rt[Yt],F,Pt,Yt.slice(6),oi.setPaintProperty):gi(jt[Yt],Rt[Yt])||F.push({command:oi.setLayerProperty,args:[Pt,Yt,Rt[Yt]]}));for(Yt in Rt)Object.prototype.hasOwnProperty.call(Rt,Yt)&&!Object.prototype.hasOwnProperty.call(jt,Yt)&&Yt!==\"layout\"&&Yt!==\"paint\"&&Yt!==\"filter\"&&Yt!==\"metadata\"&&Yt!==\"minzoom\"&&Yt!==\"maxzoom\"&&(Yt.indexOf(\"paint.\")===0?hl(jt[Yt],Rt[Yt],F,Pt,Yt.slice(6),oi.setPaintProperty):gi(jt[Yt],Rt[Yt])||F.push({command:oi.setLayerProperty,args:[Pt,Yt,Rt[Yt]]}))}else F.push({command:oi.removeLayer,args:[Pt]}),Gt=at[at.lastIndexOf(Pt)+1],F.push({command:oi.addLayer,args:[Rt,Gt]})}(E,a.layers,h)}catch(A){console.warn(\"Unable to compute style diff:\",A),h=[{command:oi.setStyle,args:[a]}]}return h},n.aF=function(u){let a=[],h=u.id;return h===void 0&&a.push({message:`layers.${h}: missing required property \"id\"`}),u.render===void 0&&a.push({message:`layers.${h}: missing required method \"render\"`}),u.renderingMode&&u.renderingMode!==\"2d\"&&u.renderingMode!==\"3d\"&&a.push({message:`layers.${h}: property \"renderingMode\" must be either \"2d\" or \"3d\"`}),a},n.aG=function u(a,h){if(Array.isArray(a)){if(!Array.isArray(h)||a.length!==h.length)return!1;for(let A=0;A<a.length;A++)if(!u(a[A],h[A]))return!1;return!0}if(typeof a==\"object\"&&a!==null&&h!==null){if(typeof h!=\"object\"||Object.keys(a).length!==Object.keys(h).length)return!1;for(let A in a)if(!u(a[A],h[A]))return!1;return!0}return a===h},n.aH=qt,n.aI=le,n.aJ=Od,n.aK=function(u){return u({pluginStatus:us,pluginURL:_u}),Od.on(\"pluginStateChange\",u),u},n.aL=class extends ho{constructor(u,a){super(u,a),this.current=0}set(u){this.current!==u&&(this.current=u,this.gl.uniform1i(this.location,u))}},n.aM=Gr,n.aN=class extends ho{constructor(u,a){super(u,a),this.current=zd}set(u){if(u[12]!==this.current[12]||u[0]!==this.current[0])return this.current=u,void this.gl.uniformMatrix4fv(this.location,!1,u);for(let a=1;a<16;a++)if(u[a]!==this.current[a]){this.current=u,this.gl.uniformMatrix4fv(this.location,!1,u);break}}},n.aO=Ua,n.aP=class extends ho{constructor(u,a){super(u,a),this.current=[0,0,0]}set(u){u[0]===this.current[0]&&u[1]===this.current[1]&&u[2]===this.current[2]||(this.current=u,this.gl.uniform3f(this.location,u[0],u[1],u[2]))}},n.aQ=class extends ho{constructor(u,a){super(u,a),this.current=[0,0]}set(u){u[0]===this.current[0]&&u[1]===this.current[1]||(this.current=u,this.gl.uniform2f(this.location,u[0],u[1]))}},n.aR=S_,n.aS=function(u,a,h,A,x,E,P){var D=1/(a-h),F=1/(A-x),V=1/(E-P);return u[0]=-2*D,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=-2*F,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=2*V,u[11]=0,u[12]=(a+h)*D,u[13]=(x+A)*F,u[14]=(P+E)*V,u[15]=1,u},n.aT=ai,n.aU=hn,n.aV=class extends v{},n.aW=RK,n.aX=class extends M{},n.aY=function(u){return u<=1?1:Math.pow(2,Math.ceil(Math.log(u)/Math.LN2))},n.aZ=UF,n.a_=be,n.aa=function(u){let a={};if(u.replace(/(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,(h,A,x,E)=>{let P=x||E;return a[A]=!P||P.toLowerCase(),\"\"}),a[\"max-age\"]){let h=parseInt(a[\"max-age\"],10);isNaN(h)?delete a[\"max-age\"]:a[\"max-age\"]=h}return a},n.ab=function(u,a){let h=[];for(let A in u)A in a||h.push(A);return h},n.ac=function(u){if(oo==null){let a=u.navigator?u.navigator.userAgent:null;oo=!!u.safari||!(!a||!(/\\b(iPad|iPhone|iPod)\\b/.test(a)||a.match(\"Safari\")&&!a.match(\"Chrome\")))}return oo},n.ad=ut,n.ae=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[0],P=a[1],D=a[2],F=a[3],V=a[4],q=a[5],X=a[6],rt=a[7];return a!==u&&(u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[0]=E*x+V*A,u[1]=P*x+q*A,u[2]=D*x+X*A,u[3]=F*x+rt*A,u[4]=V*x-E*A,u[5]=q*x-P*A,u[6]=X*x-D*A,u[7]=rt*x-F*A,u},n.af=function(u){var a=new je(16);return a[0]=u[0],a[1]=u[1],a[2]=u[2],a[3]=u[3],a[4]=u[4],a[5]=u[5],a[6]=u[6],a[7]=u[7],a[8]=u[8],a[9]=u[9],a[10]=u[10],a[11]=u[11],a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15],a},n.ag=Pi,n.ah=function(u,a){let h=0,A=0;if(u.kind===\"constant\")A=u.layoutSize;else if(u.kind!==\"source\"){let{interpolationType:x,minZoom:E,maxZoom:P}=u,D=x?ut(Oa.interpolationFactor(x,a,E,P),0,1):0;u.kind===\"camera\"?A=Da.number(u.minSize,u.maxSize,D):h=D}return{uSizeT:h,uSize:A}},n.aj=function(u,{uSize:a,uSizeT:h},{lowerSize:A,upperSize:x}){return u.kind===\"source\"?A/Ef:u.kind===\"composite\"?Da.number(A/Ef,x/Ef,h):a},n.ak=kC,n.al=function(u,a,h,A){let x=a.y-u.y,E=a.x-u.x,P=A.y-h.y,D=A.x-h.x,F=P*E-D*x;if(F===0)return null;let V=(D*(u.y-h.y)-P*(u.x-h.x))/F;return new w(u.x+V*E,u.y+V*x)},n.am=j6,n.an=L,n.ao=Zr,n.ap=Hs,n.ar=LC,n.as=function(u,a){var h=a[0],A=a[1],x=a[2],E=a[3],P=a[4],D=a[5],F=a[6],V=a[7],q=a[8],X=a[9],rt=a[10],at=a[11],ct=a[12],mt=a[13],bt=a[14],Pt=a[15],jt=h*D-A*P,Rt=h*F-x*P,Gt=h*V-E*P,Yt=A*F-x*D,ce=A*V-E*D,Ne=x*V-E*F,ir=q*mt-X*ct,Fe=q*bt-rt*ct,Re=q*Pt-at*ct,Me=X*bt-rt*mt,Ye=X*Pt-at*mt,Ie=rt*Pt-at*bt,Ae=jt*Ie-Rt*Ye+Gt*Me+Yt*Re-ce*Fe+Ne*ir;return Ae?(u[0]=(D*Ie-F*Ye+V*Me)*(Ae=1/Ae),u[1]=(x*Ye-A*Ie-E*Me)*Ae,u[2]=(mt*Ne-bt*ce+Pt*Yt)*Ae,u[3]=(rt*ce-X*Ne-at*Yt)*Ae,u[4]=(F*Re-P*Ie-V*Fe)*Ae,u[5]=(h*Ie-x*Re+E*Fe)*Ae,u[6]=(bt*Gt-ct*Ne-Pt*Rt)*Ae,u[7]=(q*Ne-rt*Gt+at*Rt)*Ae,u[8]=(P*Ye-D*Re+V*ir)*Ae,u[9]=(A*Re-h*Ye-E*ir)*Ae,u[10]=(ct*ce-mt*Gt+Pt*jt)*Ae,u[11]=(X*Gt-q*ce-at*jt)*Ae,u[12]=(D*Fe-P*Me-F*ir)*Ae,u[13]=(h*Me-A*Fe+x*ir)*Ae,u[14]=(mt*Rt-ct*Yt-bt*jt)*Ae,u[15]=(q*Yt-X*Rt+rt*jt)*Ae,u):null},n.at=UC,n.au=CC,n.av=VC,n.aw=function(){let u={},a=ee.$version;for(let h in ee.$root){let A=ee.$root[h];if(A.required){let x=null;x=h===\"version\"?a:A.type===\"array\"?[]:{},x!=null&&(u[h]=x)}}return u},n.ax=oi,n.ay=__,n.az=Jn,n.b=function(u,a){let h=new Blob([new Uint8Array(u)],{type:\"image/png\"});createImageBitmap(h).then(A=>{a(null,A)}).catch(A=>{a(new Error(`Could not load image because of ${A.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))})},n.b0=Gs,n.b1=function(u,a){var h=u[0],A=u[1],x=u[2],E=u[3],P=u[4],D=u[5],F=u[6],V=u[7],q=u[8],X=u[9],rt=u[10],at=u[11],ct=u[12],mt=u[13],bt=u[14],Pt=u[15],jt=a[0],Rt=a[1],Gt=a[2],Yt=a[3],ce=a[4],Ne=a[5],ir=a[6],Fe=a[7],Re=a[8],Me=a[9],Ye=a[10],Ie=a[11],Ae=a[12],hr=a[13],sr=a[14],ri=a[15];return Math.abs(h-jt)<=we*Math.max(1,Math.abs(h),Math.abs(jt))&&Math.abs(A-Rt)<=we*Math.max(1,Math.abs(A),Math.abs(Rt))&&Math.abs(x-Gt)<=we*Math.max(1,Math.abs(x),Math.abs(Gt))&&Math.abs(E-Yt)<=we*Math.max(1,Math.abs(E),Math.abs(Yt))&&Math.abs(P-ce)<=we*Math.max(1,Math.abs(P),Math.abs(ce))&&Math.abs(D-Ne)<=we*Math.max(1,Math.abs(D),Math.abs(Ne))&&Math.abs(F-ir)<=we*Math.max(1,Math.abs(F),Math.abs(ir))&&Math.abs(V-Fe)<=we*Math.max(1,Math.abs(V),Math.abs(Fe))&&Math.abs(q-Re)<=we*Math.max(1,Math.abs(q),Math.abs(Re))&&Math.abs(X-Me)<=we*Math.max(1,Math.abs(X),Math.abs(Me))&&Math.abs(rt-Ye)<=we*Math.max(1,Math.abs(rt),Math.abs(Ye))&&Math.abs(at-Ie)<=we*Math.max(1,Math.abs(at),Math.abs(Ie))&&Math.abs(ct-Ae)<=we*Math.max(1,Math.abs(ct),Math.abs(Ae))&&Math.abs(mt-hr)<=we*Math.max(1,Math.abs(mt),Math.abs(hr))&&Math.abs(bt-sr)<=we*Math.max(1,Math.abs(bt),Math.abs(sr))&&Math.abs(Pt-ri)<=we*Math.max(1,Math.abs(Pt),Math.abs(ri))},n.b2=function(u,a){return u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[4]=a[4],u[5]=a[5],u[6]=a[6],u[7]=a[7],u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},n.b3=function(u,a,h){return u[0]=a[0]*h[0],u[1]=a[1]*h[1],u[2]=a[2]*h[2],u[3]=a[3]*h[3],u},n.b4=function(u,a){return u[0]*a[0]+u[1]*a[1]+u[2]*a[2]+u[3]*a[3]},n.b5=Et,n.b6=O6,n.b7=k6,n.b8=function(u,a,h,A,x){var E,P=1/Math.tan(a/2);return u[0]=P/h,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=P,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=-1,u[12]=0,u[13]=0,u[15]=0,x!=null&&x!==1/0?(u[10]=(x+A)*(E=1/(A-x)),u[14]=2*x*A*E):(u[10]=-1,u[14]=-2*A),u},n.b9=function(u,a,h){var A=Math.sin(h),x=Math.cos(h),E=a[4],P=a[5],D=a[6],F=a[7],V=a[8],q=a[9],X=a[10],rt=a[11];return a!==u&&(u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15]),u[4]=E*x+V*A,u[5]=P*x+q*A,u[6]=D*x+X*A,u[7]=F*x+rt*A,u[8]=V*x-E*A,u[9]=q*x-P*A,u[10]=X*x-D*A,u[11]=rt*x-F*A,u},n.bA=f,n.bB=a6,n.bC=Qp,n.bD=ua,n.ba=K,n.bb=J,n.bc=function(u,a){return u[0]=a[0],u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=a[1],u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=a[2],u[11]=0,u[12]=0,u[13]=0,u[14]=0,u[15]=1,u},n.bd=class extends gh{},n.be=BC,n.bf=R6,n.bg=AJ,n.bi=Xi,n.bj=function(u,a,h=!1){if(us===u0||us===iA||us===nA)throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");_u=kc.resolveURL(u),us=u0,ph=a,h0(),h||v_()},n.bk=f0,n.bl=function(u,a){let h={};for(let x=0;x<u.length;x++){let E=a&&a[u[x].id]||Xp(u[x]);a&&(a[u[x].id]=E);let P=h[E];P||(P=h[E]=[]),P.push(u[x])}let A=[];for(let x in h)A.push(h[x]);return A},n.bm=Ge,n.bn=F6,n.bo=N6,n.bp=m6,n.bq=function(u){u.bucket.createArrays(),u.bucket.tilePixelRatio=en/(512*u.bucket.overscaling),u.bucket.compareText={},u.bucket.iconsNeedLinear=!1;let a=u.bucket.layers[0],h=a.layout,A=a._unevaluatedLayout._values,x={layoutIconSize:A[\"icon-size\"].possiblyEvaluate(new un(u.bucket.zoom+1),u.canonical),layoutTextSize:A[\"text-size\"].possiblyEvaluate(new un(u.bucket.zoom+1),u.canonical),textMaxSize:A[\"text-size\"].possiblyEvaluate(new un(18))};if(u.bucket.textSizeData.kind===\"composite\"){let{minZoom:V,maxZoom:q}=u.bucket.textSizeData;x.compositeTextSizes=[A[\"text-size\"].possiblyEvaluate(new un(V),u.canonical),A[\"text-size\"].possiblyEvaluate(new un(q),u.canonical)]}if(u.bucket.iconSizeData.kind===\"composite\"){let{minZoom:V,maxZoom:q}=u.bucket.iconSizeData;x.compositeIconSizes=[A[\"icon-size\"].possiblyEvaluate(new un(V),u.canonical),A[\"icon-size\"].possiblyEvaluate(new un(q),u.canonical)]}let E=h.get(\"text-line-height\")*Hs,P=h.get(\"text-rotation-alignment\")!==\"viewport\"&&h.get(\"symbol-placement\")!==\"point\",D=h.get(\"text-keep-upright\"),F=h.get(\"text-size\");for(let V of u.bucket.features){let q=h.get(\"text-font\").evaluate(V,{},u.canonical).join(\",\"),X=F.evaluate(V,{},u.canonical),rt=x.layoutTextSize.evaluate(V,{},u.canonical),at=x.layoutIconSize.evaluate(V,{},u.canonical),ct={horizontal:{},vertical:void 0},mt=V.text,bt,Pt=[0,0];if(mt){let Gt=mt.toString(),Yt=h.get(\"text-letter-spacing\").evaluate(V,{},u.canonical)*Hs,ce=a0(Gt)?Yt:0,Ne=h.get(\"text-anchor\").evaluate(V,{},u.canonical),ir=X6(a,V,u.canonical);if(!ir){let Ie=h.get(\"text-radial-offset\").evaluate(V,{},u.canonical);Pt=Ie?$6(Ne,[Ie*Hs,NC]):h.get(\"text-offset\").evaluate(V,{},u.canonical).map(Ae=>Ae*Hs)}let Fe=P?\"center\":h.get(\"text-justify\").evaluate(V,{},u.canonical),Re=h.get(\"symbol-placement\"),Me=Re===\"point\"?h.get(\"text-max-width\").evaluate(V,{},u.canonical)*Hs:0,Ye=()=>{u.bucket.allowVerticalPlacement&&o0(Gt)&&(ct.vertical=nT(mt,u.glyphMap,u.glyphPositions,u.imagePositions,q,Me,E,Ne,\"left\",ce,Pt,n.ai.vertical,!0,Re,rt,X))};if(!P&&ir){let Ie=new Set;if(Fe===\"auto\")for(let hr=0;hr<ir.values.length;hr+=2)Ie.add(UC(ir.values[hr]));else Ie.add(Fe);let Ae=!1;for(let hr of Ie)if(!ct.horizontal[hr])if(Ae)ct.horizontal[hr]=ct.horizontal[0];else{let sr=nT(mt,u.glyphMap,u.glyphPositions,u.imagePositions,q,Me,E,\"center\",hr,ce,Pt,n.ai.horizontal,!1,Re,rt,X);sr&&(ct.horizontal[hr]=sr,Ae=sr.positionedLines.length===1)}Ye()}else{Fe===\"auto\"&&(Fe=UC(Ne));let Ie=nT(mt,u.glyphMap,u.glyphPositions,u.imagePositions,q,Me,E,Ne,Fe,ce,Pt,n.ai.horizontal,!1,Re,rt,X);Ie&&(ct.horizontal[Fe]=Ie),Ye(),o0(Gt)&&P&&D&&(ct.vertical=nT(mt,u.glyphMap,u.glyphPositions,u.imagePositions,q,Me,E,Ne,Fe,ce,Pt,n.ai.vertical,!1,Re,rt,X))}}let jt=!1;if(V.icon&&V.icon.name){let Gt=u.imageMap[V.icon.name];Gt&&(bt=$K(u.imagePositions[V.icon.name],h.get(\"icon-offset\").evaluate(V,{},u.canonical),h.get(\"icon-anchor\").evaluate(V,{},u.canonical)),jt=!!Gt.sdf,u.bucket.sdfIcons===void 0?u.bucket.sdfIcons=jt:u.bucket.sdfIcons!==jt&&Ke(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\"),(Gt.pixelRatio!==u.bucket.pixelRatio||h.get(\"icon-rotate\").constantOr(1)!==0)&&(u.bucket.iconsNeedLinear=!0))}let Rt=J6(ct.horizontal)||ct.vertical;u.bucket.iconsInText=!!Rt&&Rt.iconsInText,(Rt||bt)&&dJ(u.bucket,V,ct,bt,u.imageMap,x,rt,at,Pt,jt,u.canonical)}u.showCollisionBoxes&&u.bucket.generateCollisionDebugBuffers()},n.br=SC,n.bs=xC,n.bt=wC,n.bu=class{constructor(u){this._marks={start:[u.url,\"start\"].join(\"#\"),end:[u.url,\"end\"].join(\"#\"),measure:u.url.toString()},performance.mark(this._marks.start)}finish(){performance.mark(this._marks.end);let u=performance.getEntriesByName(this._marks.measure);return u.length===0&&(performance.measure(this._marks.measure,this._marks.start,this._marks.end),u=performance.getEntriesByName(this._marks.measure),performance.clearMarks(this._marks.start),performance.clearMarks(this._marks.end),performance.clearMeasures(this._marks.measure)),u}},n.bv=MC,n.bw=uA,n.bx=function(u,a,h,A,x){return o(this,void 0,void 0,function*(){if(Y())try{return yield ih(u,a,h,A,x)}catch{}return function(E,P,D,F,V){let q=E.width,X=E.height;Uo&&Si||(Uo=new OffscreenCanvas(q,X),Si=Uo.getContext(\"2d\",{willReadFrequently:!0})),Uo.width=q,Uo.height=X,Si.drawImage(E,0,0,q,X);let rt=Si.getImageData(P,D,F,V);return Si.clearRect(0,0,q,X),rt.data}(u,a,h,A,x)})},n.by=B6,n.bz=c,n.c=Rc,n.d=function(u,a){let h=new Image;h.onload=()=>{a(null,h),URL.revokeObjectURL(h.src),h.onload=null,window.requestAnimationFrame(()=>{h.src=No})},h.onerror=()=>a(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));let A=new Blob([new Uint8Array(u)],{type:\"image/png\"});h.src=u.byteLength?URL.createObjectURL(A):No},n.e=kt,n.f=function(u,a){return Vo(kt(u,{type:\"json\"}),a)},n.g=ki,n.h=kc,n.i=Li,n.j=ao,n.k=as,n.l=cl,n.m=Vo,n.n=function(u){return new MC(u).readFields(WK,[])},n.o=function(u,a,h){if(!u.length)return h(null,[]);let A=u.length,x=new Array(u.length),E=null;u.forEach((P,D)=>{a(P,(F,V)=>{F&&(E=F),x[D]=V,--A==0&&h(E,x)})})},n.p=A6,n.q=Vx,n.r=Hn,n.s=xo,n.t=hh,n.u=Oe,n.v=ee,n.w=Ke,n.x=fh,n.y=za,n.z=function([u,a,h]){return a+=90,a*=Math.PI/180,h*=Math.PI/180,{x:u*Math.cos(a)*Math.sin(h),y:u*Math.sin(a)*Math.sin(h),z:u*Math.cos(h)}}}),i([\"./shared\"],function(n){\"use strict\";class o{constructor(tt){this.keyCache={},tt&&this.replace(tt)}replace(tt){this._layerConfigs={},this._layers={},this.update(tt,[])}update(tt,nt){for(let vt of tt){this._layerConfigs[vt.id]=vt;let xt=this._layers[vt.id]=n.aC(vt);xt._featureFilter=n.a6(xt.filter),this.keyCache[vt.id]&&delete this.keyCache[vt.id]}for(let vt of nt)delete this.keyCache[vt],delete this._layerConfigs[vt],delete this._layers[vt];this.familiesBySource={};let ht=n.bl(Object.values(this._layerConfigs),this.keyCache);for(let vt of ht){let xt=vt.map(se=>this._layers[se.id]),_t=xt[0];if(_t.visibility===\"none\")continue;let Dt=_t.source||\"\",Mt=this.familiesBySource[Dt];Mt||(Mt=this.familiesBySource[Dt]={});let Vt=_t.sourceLayer||\"_geojsonTileLayer\",ie=Mt[Vt];ie||(ie=Mt[Vt]=[]),ie.push(xt)}}}class c{constructor(tt){let nt={},ht=[];for(let Dt in tt){let Mt=tt[Dt],Vt=nt[Dt]={};for(let ie in Mt){let se=Mt[+ie];if(!se||se.bitmap.width===0||se.bitmap.height===0)continue;let ae={x:0,y:0,w:se.bitmap.width+2,h:se.bitmap.height+2};ht.push(ae),Vt[ie]={rect:ae,metrics:se.metrics}}}let{w:vt,h:xt}=n.p(ht),_t=new n.q({width:vt||1,height:xt||1});for(let Dt in tt){let Mt=tt[Dt];for(let Vt in Mt){let ie=Mt[+Vt];if(!ie||ie.bitmap.width===0||ie.bitmap.height===0)continue;let se=nt[Dt][Vt].rect;n.q.copy(ie.bitmap,_t,{x:0,y:0},{x:se.x+1,y:se.y+1},ie.bitmap)}}this.image=_t,this.positions=nt}}n.bm(\"GlyphAtlas\",c);class f{constructor(tt){this.tileID=new n.O(tt.tileID.overscaledZ,tt.tileID.wrap,tt.tileID.canonical.z,tt.tileID.canonical.x,tt.tileID.canonical.y),this.uid=tt.uid,this.zoom=tt.zoom,this.pixelRatio=tt.pixelRatio,this.tileSize=tt.tileSize,this.source=tt.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=tt.showCollisionBoxes,this.collectResourceTiming=!!tt.collectResourceTiming,this.returnDependencies=!!tt.returnDependencies,this.promoteId=tt.promoteId,this.inFlightDependencies=[],this.dependencySentinel=-1}parse(tt,nt,ht,vt,xt){this.status=\"parsing\",this.data=tt,this.collisionBoxArray=new n.a3;let _t=new n.bn(Object.keys(tt.layers).sort()),Dt=new n.bo(this.tileID,this.promoteId);Dt.bucketLayerIDs=[];let Mt={},Vt={featureIndex:Dt,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:ht},ie=nt.familiesBySource[this.source];for(let ni in ie){let Hr=tt.layers[ni];if(!Hr)continue;Hr.version===1&&n.w(`Vector tile source \"${this.source}\" layer \"${ni}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);let jn=_t.encode(ni),Bi=[];for(let xn=0;xn<Hr.length;xn++){let es=Hr.feature(xn),oa=Dt.getId(es,ni);Bi.push({feature:es,id:oa,index:xn,sourceLayerIndex:jn})}for(let xn of ie[ni]){let es=xn[0];es.source!==this.source&&n.w(`layer.source = ${es.source} does not equal this.source = ${this.source}`),es.minzoom&&this.zoom<Math.floor(es.minzoom)||es.maxzoom&&this.zoom>=es.maxzoom||es.visibility!==\"none\"&&(_(xn,this.zoom,ht),(Mt[es.id]=es.createBucket({index:Dt.bucketLayerIDs.length,layers:xn,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:jn,sourceID:this.source})).populate(Bi,Vt,this.tileID.canonical),Dt.bucketLayerIDs.push(xn.map(oa=>oa.id)))}}let se,ae,lr,vr,Xe=n.aH(Vt.glyphDependencies,ni=>Object.keys(ni).map(Number));this.inFlightDependencies.forEach(ni=>ni?.cancel()),this.inFlightDependencies=[];let cr=++this.dependencySentinel;Object.keys(Xe).length?this.inFlightDependencies.push(vt.send(\"getGlyphs\",{uid:this.uid,stacks:Xe,source:this.source,tileID:this.tileID,type:\"glyphs\"},(ni,Hr)=>{cr===this.dependencySentinel&&(se||(se=ni,ae=Hr,zi.call(this)))})):ae={};let wr=Object.keys(Vt.iconDependencies);wr.length?this.inFlightDependencies.push(vt.send(\"getImages\",{icons:wr,source:this.source,tileID:this.tileID,type:\"icons\"},(ni,Hr)=>{cr===this.dependencySentinel&&(se||(se=ni,lr=Hr,zi.call(this)))})):lr={};let xi=Object.keys(Vt.patternDependencies);function zi(){if(se)return xt(se);if(ae&&lr&&vr){let ni=new c(ae),Hr=new n.bp(lr,vr);for(let jn in Mt){let Bi=Mt[jn];Bi instanceof n.a4?(_(Bi.layers,this.zoom,ht),n.bq({bucket:Bi,glyphMap:ae,glyphPositions:ni.positions,imageMap:lr,imagePositions:Hr.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Bi.hasPattern&&(Bi instanceof n.br||Bi instanceof n.bs||Bi instanceof n.bt)&&(_(Bi.layers,this.zoom,ht),Bi.addFeatures(Vt,this.tileID.canonical,Hr.patternPositions))}this.status=\"done\",xt(null,{buckets:Object.values(Mt).filter(jn=>!jn.isEmpty()),featureIndex:Dt,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:ni.image,imageAtlas:Hr,glyphMap:this.returnDependencies?ae:null,iconMap:this.returnDependencies?lr:null,glyphPositions:this.returnDependencies?ni.positions:null})}}xi.length?this.inFlightDependencies.push(vt.send(\"getImages\",{icons:xi,source:this.source,tileID:this.tileID,type:\"patterns\"},(ni,Hr)=>{cr===this.dependencySentinel&&(se||(se=ni,vr=Hr,zi.call(this)))})):vr={},zi.call(this)}}function _(gt,tt,nt){let ht=new n.a8(tt);for(let vt of gt)vt.recalculate(ht,nt)}function w(gt,tt){let nt=n.l(gt.request,(ht,vt,xt,_t)=>{if(ht)tt(ht);else if(vt)try{let Dt=new n.bw.VectorTile(new n.bv(vt));tt(null,{vectorTile:Dt,rawData:vt,cacheControl:xt,expires:_t})}catch(Dt){let Mt=new Uint8Array(vt),Vt=`Unable to parse the tile at ${gt.request.url}, `;Vt+=Mt[0]===31&&Mt[1]===139?\"please make sure the data is not gzipped and that you have configured the relevant header in the server\":`got error: ${Dt.messge}`,tt(new Error(Vt))}});return()=>{nt.cancel(),tt()}}class I{constructor(tt,nt,ht,vt){this.actor=tt,this.layerIndex=nt,this.availableImages=ht,this.loadVectorData=vt||w,this.fetching={},this.loading={},this.loaded={}}loadTile(tt,nt){let ht=tt.uid;this.loading||(this.loading={});let vt=!!(tt&&tt.request&&tt.request.collectResourceTiming)&&new n.bu(tt.request),xt=this.loading[ht]=new f(tt);xt.abort=this.loadVectorData(tt,(_t,Dt)=>{if(delete this.loading[ht],_t||!Dt)return xt.status=\"done\",this.loaded[ht]=xt,nt(_t);let Mt=Dt.rawData,Vt={};Dt.expires&&(Vt.expires=Dt.expires),Dt.cacheControl&&(Vt.cacheControl=Dt.cacheControl);let ie={};if(vt){let se=vt.finish();se&&(ie.resourceTiming=JSON.parse(JSON.stringify(se)))}xt.vectorTile=Dt.vectorTile,xt.parse(Dt.vectorTile,this.layerIndex,this.availableImages,this.actor,(se,ae)=>{if(delete this.fetching[ht],se||!ae)return nt(se);nt(null,n.e({rawTileData:Mt.slice(0)},ae,Vt,ie))}),this.loaded=this.loaded||{},this.loaded[ht]=xt,this.fetching[ht]={rawTileData:Mt,cacheControl:Vt,resourceTiming:ie}})}reloadTile(tt,nt){let ht=this.loaded,vt=tt.uid;if(ht&&ht[vt]){let xt=ht[vt];xt.showCollisionBoxes=tt.showCollisionBoxes,xt.status===\"parsing\"?xt.parse(xt.vectorTile,this.layerIndex,this.availableImages,this.actor,(_t,Dt)=>{if(_t||!Dt)return nt(_t,Dt);let Mt;if(this.fetching[vt]){let{rawTileData:Vt,cacheControl:ie,resourceTiming:se}=this.fetching[vt];delete this.fetching[vt],Mt=n.e({rawTileData:Vt.slice(0)},Dt,ie,se)}else Mt=Dt;nt(null,Mt)}):xt.status===\"done\"&&(xt.vectorTile?xt.parse(xt.vectorTile,this.layerIndex,this.availableImages,this.actor,nt):nt())}}abortTile(tt,nt){let ht=this.loading,vt=tt.uid;ht&&ht[vt]&&ht[vt].abort&&(ht[vt].abort(),delete ht[vt]),nt()}removeTile(tt,nt){let ht=this.loaded,vt=tt.uid;ht&&ht[vt]&&delete ht[vt],nt()}}class R{constructor(){this.loaded={}}loadTile(tt,nt){return n._(this,void 0,void 0,function*(){let{uid:ht,encoding:vt,rawImageData:xt,redFactor:_t,greenFactor:Dt,blueFactor:Mt,baseShift:Vt}=tt,ie=xt.width+2,se=xt.height+2,ae=n.a(xt)?new n.R({width:ie,height:se},yield n.bx(xt,-1,-1,ie,se)):xt,lr=new n.by(ht,ae,vt,_t,Dt,Mt,Vt);this.loaded=this.loaded||{},this.loaded[ht]=lr,nt(null,lr)})}removeTile(tt){let nt=this.loaded,ht=tt.uid;nt&&nt[ht]&&delete nt[ht]}}function N(gt,tt){if(gt.length!==0){j(gt[0],tt);for(var nt=1;nt<gt.length;nt++)j(gt[nt],!tt)}}function j(gt,tt){for(var nt=0,ht=0,vt=0,xt=gt.length,_t=xt-1;vt<xt;_t=vt++){var Dt=(gt[vt][0]-gt[_t][0])*(gt[_t][1]+gt[vt][1]),Mt=nt+Dt;ht+=Math.abs(nt)>=Math.abs(Dt)?nt-Mt+Dt:Dt-Mt+nt,nt=Mt}nt+ht>=0!=!!tt&&gt.reverse()}var Q=n.bz(function gt(tt,nt){var ht,vt=tt&&tt.type;if(vt===\"FeatureCollection\")for(ht=0;ht<tt.features.length;ht++)gt(tt.features[ht],nt);else if(vt===\"GeometryCollection\")for(ht=0;ht<tt.geometries.length;ht++)gt(tt.geometries[ht],nt);else if(vt===\"Feature\")gt(tt.geometry,nt);else if(vt===\"Polygon\")N(tt.coordinates,nt);else if(vt===\"MultiPolygon\")for(ht=0;ht<tt.coordinates.length;ht++)N(tt.coordinates[ht],nt);return tt});let et=n.bw.VectorTileFeature.prototype.toGeoJSON;var Y={exports:{}},K=n.bA,J=n.bw.VectorTileFeature,ut=Et;function Et(gt,tt){this.options=tt||{},this.features=gt,this.length=gt.length}function kt(gt,tt){this.id=typeof gt.id==\"number\"?gt.id:void 0,this.type=gt.type,this.rawGeometry=gt.type===1?[gt.geometry]:gt.geometry,this.properties=gt.tags,this.extent=tt||4096}Et.prototype.feature=function(gt){return new kt(this.features[gt],this.options.extent)},kt.prototype.loadGeometry=function(){var gt=this.rawGeometry;this.geometry=[];for(var tt=0;tt<gt.length;tt++){for(var nt=gt[tt],ht=[],vt=0;vt<nt.length;vt++)ht.push(new K(nt[vt][0],nt[vt][1]));this.geometry.push(ht)}return this.geometry},kt.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var gt=this.geometry,tt=1/0,nt=-1/0,ht=1/0,vt=-1/0,xt=0;xt<gt.length;xt++)for(var _t=gt[xt],Dt=0;Dt<_t.length;Dt++){var Mt=_t[Dt];tt=Math.min(tt,Mt.x),nt=Math.max(nt,Mt.x),ht=Math.min(ht,Mt.y),vt=Math.max(vt,Mt.y)}return[tt,ht,nt,vt]},kt.prototype.toGeoJSON=J.prototype.toGeoJSON;var Xt=n.bB,qt=ut;function le(gt){var tt=new Xt;return function(nt,ht){for(var vt in nt.layers)ht.writeMessage(3,ue,nt.layers[vt])}(gt,tt),tt.finish()}function ue(gt,tt){var nt;tt.writeVarintField(15,gt.version||1),tt.writeStringField(1,gt.name||\"\"),tt.writeVarintField(5,gt.extent||4096);var ht={keys:[],values:[],keycache:{},valuecache:{}};for(nt=0;nt<gt.length;nt++)ht.feature=gt.feature(nt),tt.writeMessage(2,De,ht);var vt=ht.keys;for(nt=0;nt<vt.length;nt++)tt.writeStringField(3,vt[nt]);var xt=ht.values;for(nt=0;nt<xt.length;nt++)tt.writeMessage(4,oo,xt[nt])}function De(gt,tt){var nt=gt.feature;nt.id!==void 0&&tt.writeVarintField(1,nt.id),tt.writeMessage(2,Ke,gt),tt.writeVarintField(3,nt.type),tt.writeMessage(4,Li,nt)}function Ke(gt,tt){var nt=gt.feature,ht=gt.keys,vt=gt.values,xt=gt.keycache,_t=gt.valuecache;for(var Dt in nt.properties){var Mt=nt.properties[Dt],Vt=xt[Dt];if(Mt!==null){Vt===void 0&&(ht.push(Dt),xt[Dt]=Vt=ht.length-1),tt.writeVarint(Vt);var ie=typeof Mt;ie!==\"string\"&&ie!==\"boolean\"&&ie!==\"number\"&&(Mt=JSON.stringify(Mt));var se=ie+\":\"+Mt,ae=_t[se];ae===void 0&&(vt.push(Mt),_t[se]=ae=vt.length-1),tt.writeVarint(ae)}}}function rr(gt,tt){return(tt<<3)+(7&gt)}function Sr(gt){return gt<<1^gt>>31}function Li(gt,tt){for(var nt=gt.loadGeometry(),ht=gt.type,vt=0,xt=0,_t=nt.length,Dt=0;Dt<_t;Dt++){var Mt=nt[Dt],Vt=1;ht===1&&(Vt=Mt.length),tt.writeVarint(rr(1,Vt));for(var ie=ht===3?Mt.length-1:Mt.length,se=0;se<ie;se++){se===1&&ht!==1&&tt.writeVarint(rr(2,ie-1));var ae=Mt[se].x-vt,lr=Mt[se].y-xt;tt.writeVarint(Sr(ae)),tt.writeVarint(Sr(lr)),vt+=ae,xt+=lr}ht===3&&tt.writeVarint(rr(7,1))}}function oo(gt,tt){var nt=typeof gt;nt===\"string\"?tt.writeStringField(1,gt):nt===\"boolean\"?tt.writeBooleanField(7,gt):nt===\"number\"&&(gt%1!=0?tt.writeDoubleField(3,gt):gt<0?tt.writeSVarintField(6,gt):tt.writeVarintField(5,gt))}Y.exports=le,Y.exports.fromVectorTileJs=le,Y.exports.fromGeojsonVt=function(gt,tt){tt=tt||{};var nt={};for(var ht in gt)nt[ht]=new qt(gt[ht].features,tt),nt[ht].name=ht,nt[ht].version=tt.version,nt[ht].extent=tt.extent;return le({layers:nt})},Y.exports.GeoJSONWrapper=qt;var zl=n.bz(Y.exports);let No={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:gt=>gt},ih=Math.fround||(Uo=new Float32Array(1),gt=>(Uo[0]=+gt,Uo[0]));var Uo;let Si=3,Ns=5,ll=6;class kc{constructor(tt){this.options=Object.assign(Object.create(No),tt),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(tt){let{log:nt,minZoom:ht,maxZoom:vt}=this.options;nt&&console.time(\"total time\");let xt=`prepare ${tt.length} points`;nt&&console.time(xt),this.points=tt;let _t=[];for(let Mt=0;Mt<tt.length;Mt++){let Vt=tt[Mt];if(!Vt.geometry)continue;let[ie,se]=Vt.geometry.coordinates,ae=ih(Jn(ie)),lr=ih(ki(se));_t.push(ae,lr,1/0,Mt,-1,1),this.options.reduce&&_t.push(0)}let Dt=this.trees[vt+1]=this._createTree(_t);nt&&console.timeEnd(xt);for(let Mt=vt;Mt>=ht;Mt--){let Vt=+Date.now();Dt=this.trees[Mt]=this._createTree(this._cluster(Dt,Mt)),nt&&console.log(\"z%d: %d clusters in %dms\",Mt,Dt.numItems,+Date.now()-Vt)}return nt&&console.timeEnd(\"total time\"),this}getClusters(tt,nt){let ht=((tt[0]+180)%360+360)%360-180,vt=Math.max(-90,Math.min(90,tt[1])),xt=tt[2]===180?180:((tt[2]+180)%360+360)%360-180,_t=Math.max(-90,Math.min(90,tt[3]));if(tt[2]-tt[0]>=360)ht=-180,xt=180;else if(ht>xt){let se=this.getClusters([ht,vt,180,_t],nt),ae=this.getClusters([-180,vt,xt,_t],nt);return se.concat(ae)}let Dt=this.trees[this._limitZoom(nt)],Mt=Dt.range(Jn(ht),ki(_t),Jn(xt),ki(vt)),Vt=Dt.data,ie=[];for(let se of Mt){let ae=this.stride*se;ie.push(Vt[ae+Ns]>1?Rc(Vt,ae,this.clusterProps):this.points[Vt[ae+Si]])}return ie}getChildren(tt){let nt=this._getOriginId(tt),ht=this._getOriginZoom(tt),vt=\"No cluster with the specified id.\",xt=this.trees[ht];if(!xt)throw new Error(vt);let _t=xt.data;if(nt*this.stride>=_t.length)throw new Error(vt);let Dt=this.options.radius/(this.options.extent*Math.pow(2,ht-1)),Mt=xt.within(_t[nt*this.stride],_t[nt*this.stride+1],Dt),Vt=[];for(let ie of Mt){let se=ie*this.stride;_t[se+4]===tt&&Vt.push(_t[se+Ns]>1?Rc(_t,se,this.clusterProps):this.points[_t[se+Si]])}if(Vt.length===0)throw new Error(vt);return Vt}getLeaves(tt,nt,ht){let vt=[];return this._appendLeaves(vt,tt,nt=nt||10,ht=ht||0,0),vt}getTile(tt,nt,ht){let vt=this.trees[this._limitZoom(tt)],xt=Math.pow(2,tt),{extent:_t,radius:Dt}=this.options,Mt=Dt/_t,Vt=(ht-Mt)/xt,ie=(ht+1+Mt)/xt,se={features:[]};return this._addTileFeatures(vt.range((nt-Mt)/xt,Vt,(nt+1+Mt)/xt,ie),vt.data,nt,ht,xt,se),nt===0&&this._addTileFeatures(vt.range(1-Mt/xt,Vt,1,ie),vt.data,xt,ht,xt,se),nt===xt-1&&this._addTileFeatures(vt.range(0,Vt,Mt/xt,ie),vt.data,-1,ht,xt,se),se.features.length?se:null}getClusterExpansionZoom(tt){let nt=this._getOriginZoom(tt)-1;for(;nt<=this.options.maxZoom;){let ht=this.getChildren(tt);if(nt++,ht.length!==1)break;tt=ht[0].properties.cluster_id}return nt}_appendLeaves(tt,nt,ht,vt,xt){let _t=this.getChildren(nt);for(let Dt of _t){let Mt=Dt.properties;if(Mt&&Mt.cluster?xt+Mt.point_count<=vt?xt+=Mt.point_count:xt=this._appendLeaves(tt,Mt.cluster_id,ht,vt,xt):xt<vt?xt++:tt.push(Dt),tt.length===ht)break}return xt}_createTree(tt){let nt=new n.av(tt.length/this.stride|0,this.options.nodeSize,Float32Array);for(let ht=0;ht<tt.length;ht+=this.stride)nt.add(tt[ht],tt[ht+1]);return nt.finish(),nt.data=tt,nt}_addTileFeatures(tt,nt,ht,vt,xt,_t){for(let Dt of tt){let Mt=Dt*this.stride,Vt=nt[Mt+Ns]>1,ie,se,ae;if(Vt)ie=Xi(nt,Mt,this.clusterProps),se=nt[Mt],ae=nt[Mt+1];else{let Xe=this.points[nt[Mt+Si]];ie=Xe.properties;let[cr,wr]=Xe.geometry.coordinates;se=Jn(cr),ae=ki(wr)}let lr={type:1,geometry:[[Math.round(this.options.extent*(se*xt-ht)),Math.round(this.options.extent*(ae*xt-vt))]],tags:ie},vr;vr=Vt||this.options.generateId?nt[Mt+Si]:this.points[nt[Mt+Si]].id,vr!==void 0&&(lr.id=vr),_t.features.push(lr)}}_limitZoom(tt){return Math.max(this.options.minZoom,Math.min(Math.floor(+tt),this.options.maxZoom+1))}_cluster(tt,nt){let{radius:ht,extent:vt,reduce:xt,minPoints:_t}=this.options,Dt=ht/(vt*Math.pow(2,nt)),Mt=tt.data,Vt=[],ie=this.stride;for(let se=0;se<Mt.length;se+=ie){if(Mt[se+2]<=nt)continue;Mt[se+2]=nt;let ae=Mt[se],lr=Mt[se+1],vr=tt.within(Mt[se],Mt[se+1],Dt),Xe=Mt[se+Ns],cr=Xe;for(let wr of vr){let xi=wr*ie;Mt[xi+2]>nt&&(cr+=Mt[xi+Ns])}if(cr>Xe&&cr>=_t){let wr,xi=ae*Xe,zi=lr*Xe,ni=-1,Hr=((se/ie|0)<<5)+(nt+1)+this.points.length;for(let jn of vr){let Bi=jn*ie;if(Mt[Bi+2]<=nt)continue;Mt[Bi+2]=nt;let xn=Mt[Bi+Ns];xi+=Mt[Bi]*xn,zi+=Mt[Bi+1]*xn,Mt[Bi+4]=Hr,xt&&(wr||(wr=this._map(Mt,se,!0),ni=this.clusterProps.length,this.clusterProps.push(wr)),xt(wr,this._map(Mt,Bi)))}Mt[se+4]=Hr,Vt.push(xi/cr,zi/cr,1/0,Hr,-1,cr),xt&&Vt.push(ni)}else{for(let wr=0;wr<ie;wr++)Vt.push(Mt[se+wr]);if(cr>1)for(let wr of vr){let xi=wr*ie;if(!(Mt[xi+2]<=nt)){Mt[xi+2]=nt;for(let zi=0;zi<ie;zi++)Vt.push(Mt[xi+zi])}}}}return Vt}_getOriginId(tt){return tt-this.points.length>>5}_getOriginZoom(tt){return(tt-this.points.length)%32}_map(tt,nt,ht){if(tt[nt+Ns]>1){let _t=this.clusterProps[tt[nt+ll]];return ht?Object.assign({},_t):_t}let vt=this.points[tt[nt+Si]].properties,xt=this.options.map(vt);return ht&&xt===vt?Object.assign({},xt):xt}}function Rc(gt,tt,nt){return{type:\"Feature\",id:gt[tt+Si],properties:Xi(gt,tt,nt),geometry:{type:\"Point\",coordinates:[(ht=gt[tt],360*(ht-.5)),ts(gt[tt+1])]}};var ht}function Xi(gt,tt,nt){let ht=gt[tt+Ns],vt=ht>=1e4?`${Math.round(ht/1e3)}k`:ht>=1e3?Math.round(ht/100)/10+\"k\":ht,xt=gt[tt+ll],_t=xt===-1?{}:Object.assign({},nt[xt]);return Object.assign(_t,{cluster:!0,cluster_id:gt[tt+Si],point_count:ht,point_count_abbreviated:vt})}function Jn(gt){return gt/360+.5}function ki(gt){let tt=Math.sin(gt*Math.PI/180),nt=.5-.25*Math.log((1+tt)/(1-tt))/Math.PI;return nt<0?0:nt>1?1:nt}function ts(gt){let tt=(180-360*gt)*Math.PI/180;return 360*Math.atan(Math.exp(tt))/Math.PI-90}function Vo(gt,tt,nt,ht){for(var vt,xt=ht,_t=nt-tt>>1,Dt=nt-tt,Mt=gt[tt],Vt=gt[tt+1],ie=gt[nt],se=gt[nt+1],ae=tt+3;ae<nt;ae+=3){var lr=cl(gt[ae],gt[ae+1],Mt,Vt,ie,se);if(lr>xt)vt=ae,xt=lr;else if(lr===xt){var vr=Math.abs(ae-_t);vr<Dt&&(vt=ae,Dt=vr)}}xt>ht&&(vt-tt>3&&Vo(gt,tt,vt,ht),gt[vt+2]=xt,nt-vt>3&&Vo(gt,vt,nt,ht))}function cl(gt,tt,nt,ht,vt,xt){var _t=vt-nt,Dt=xt-ht;if(_t!==0||Dt!==0){var Mt=((gt-nt)*_t+(tt-ht)*Dt)/(_t*_t+Dt*Dt);Mt>1?(nt=vt,ht=xt):Mt>0&&(nt+=_t*Mt,ht+=Dt*Mt)}return(_t=gt-nt)*_t+(Dt=tt-ht)*Dt}function xo(gt,tt,nt,ht){var vt={id:gt===void 0?null:gt,type:tt,geometry:nt,tags:ht,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(xt){var _t=xt.geometry,Dt=xt.type;if(Dt===\"Point\"||Dt===\"MultiPoint\"||Dt===\"LineString\")Pa(xt,_t);else if(Dt===\"Polygon\"||Dt===\"MultiLineString\")for(var Mt=0;Mt<_t.length;Mt++)Pa(xt,_t[Mt]);else if(Dt===\"MultiPolygon\")for(Mt=0;Mt<_t.length;Mt++)for(var Vt=0;Vt<_t[Mt].length;Vt++)Pa(xt,_t[Mt][Vt])}(vt),vt}function Pa(gt,tt){for(var nt=0;nt<tt.length;nt+=3)gt.minX=Math.min(gt.minX,tt[nt]),gt.minY=Math.min(gt.minY,tt[nt+1]),gt.maxX=Math.max(gt.maxX,tt[nt]),gt.maxY=Math.max(gt.maxY,tt[nt+1])}function na(gt,tt,nt,ht){if(tt.geometry){var vt=tt.geometry.coordinates,xt=tt.geometry.type,_t=Math.pow(nt.tolerance/((1<<nt.maxZoom)*nt.extent),2),Dt=[],Mt=tt.id;if(nt.promoteId?Mt=tt.properties[nt.promoteId]:nt.generateId&&(Mt=ht||0),xt===\"Point\")as(vt,Dt);else if(xt===\"MultiPoint\")for(var Vt=0;Vt<vt.length;Vt++)as(vt[Vt],Dt);else if(xt===\"LineString\")ao(vt,Dt,_t,!1);else if(xt===\"MultiLineString\"){if(nt.lineMetrics){for(Vt=0;Vt<vt.length;Vt++)ao(vt[Vt],Dt=[],_t,!1),gt.push(xo(Mt,\"LineString\",Dt,tt.properties));return}Nl(vt,Dt,_t,!1)}else if(xt===\"Polygon\")Nl(vt,Dt,_t,!0);else{if(xt!==\"MultiPolygon\"){if(xt===\"GeometryCollection\"){for(Vt=0;Vt<tt.geometry.geometries.length;Vt++)na(gt,{id:Mt,geometry:tt.geometry.geometries[Vt],properties:tt.properties},nt,ht);return}throw new Error(\"Input data is not a valid GeoJSON object.\")}for(Vt=0;Vt<vt.length;Vt++){var ie=[];Nl(vt[Vt],ie,_t,!0),Dt.push(ie)}}gt.push(xo(Mt,xt,Dt,tt.properties))}}function as(gt,tt){tt.push(ee(gt[0])),tt.push(ls(gt[1])),tt.push(0)}function ao(gt,tt,nt,ht){for(var vt,xt,_t=0,Dt=0;Dt<gt.length;Dt++){var Mt=ee(gt[Dt][0]),Vt=ls(gt[Dt][1]);tt.push(Mt),tt.push(Vt),tt.push(0),Dt>0&&(_t+=ht?(vt*Vt-Mt*xt)/2:Math.sqrt(Math.pow(Mt-vt,2)+Math.pow(Vt-xt,2))),vt=Mt,xt=Vt}var ie=tt.length-3;tt[2]=1,Vo(tt,0,ie,nt),tt[ie+2]=1,tt.size=Math.abs(_t),tt.start=0,tt.end=tt.size}function Nl(gt,tt,nt,ht){for(var vt=0;vt<gt.length;vt++){var xt=[];ao(gt[vt],xt,nt,ht),tt.push(xt)}}function ee(gt){return gt/360+.5}function ls(gt){var tt=Math.sin(gt*Math.PI/180),nt=.5-.25*Math.log((1+tt)/(1-tt))/Math.PI;return nt<0?0:nt>1?1:nt}function mn(gt,tt,nt,ht,vt,xt,_t,Dt){if(ht/=tt,xt>=(nt/=tt)&&_t<ht)return gt;if(_t<nt||xt>=ht)return null;for(var Mt=[],Vt=0;Vt<gt.length;Vt++){var ie=gt[Vt],se=ie.geometry,ae=ie.type,lr=vt===0?ie.minX:ie.minY,vr=vt===0?ie.maxX:ie.maxY;if(lr>=nt&&vr<ht)Mt.push(ie);else if(!(vr<nt||lr>=ht)){var Xe=[];if(ae===\"Point\"||ae===\"MultiPoint\")gi(se,Xe,nt,ht,vt);else if(ae===\"LineString\")oi(se,Xe,nt,ht,vt,!1,Dt.lineMetrics);else if(ae===\"MultiLineString\")du(se,Xe,nt,ht,vt,!1);else if(ae===\"Polygon\")du(se,Xe,nt,ht,vt,!0);else if(ae===\"MultiPolygon\")for(var cr=0;cr<se.length;cr++){var wr=[];du(se[cr],wr,nt,ht,vt,!0),wr.length&&Xe.push(wr)}if(Xe.length){if(Dt.lineMetrics&&ae===\"LineString\"){for(cr=0;cr<Xe.length;cr++)Mt.push(xo(ie.id,ae,Xe[cr],ie.tags));continue}ae!==\"LineString\"&&ae!==\"MultiLineString\"||(Xe.length===1?(ae=\"LineString\",Xe=Xe[0]):ae=\"MultiLineString\"),ae!==\"Point\"&&ae!==\"MultiPoint\"||(ae=Xe.length===3?\"Point\":\"MultiPoint\"),Mt.push(xo(ie.id,ae,Xe,ie.tags))}}}return Mt.length?Mt:null}function gi(gt,tt,nt,ht,vt){for(var xt=0;xt<gt.length;xt+=3){var _t=gt[xt+vt];_t>=nt&&_t<=ht&&(tt.push(gt[xt]),tt.push(gt[xt+1]),tt.push(gt[xt+2]))}}function oi(gt,tt,nt,ht,vt,xt,_t){for(var Dt,Mt,Vt=lo(gt),ie=vt===0?bo:hl,se=gt.start,ae=0;ae<gt.length-3;ae+=3){var lr=gt[ae],vr=gt[ae+1],Xe=gt[ae+2],cr=gt[ae+3],wr=gt[ae+4],xi=vt===0?lr:vr,zi=vt===0?cr:wr,ni=!1;_t&&(Dt=Math.sqrt(Math.pow(lr-cr,2)+Math.pow(vr-wr,2))),xi<nt?zi>nt&&(Mt=ie(Vt,lr,vr,cr,wr,nt),_t&&(Vt.start=se+Dt*Mt)):xi>ht?zi<ht&&(Mt=ie(Vt,lr,vr,cr,wr,ht),_t&&(Vt.start=se+Dt*Mt)):ul(Vt,lr,vr,Xe),zi<nt&&xi>=nt&&(Mt=ie(Vt,lr,vr,cr,wr,nt),ni=!0),zi>ht&&xi<=ht&&(Mt=ie(Vt,lr,vr,cr,wr,ht),ni=!0),!xt&&ni&&(_t&&(Vt.end=se+Dt*Mt),tt.push(Vt),Vt=lo(gt)),_t&&(se+=Dt)}var Hr=gt.length-3;lr=gt[Hr],vr=gt[Hr+1],Xe=gt[Hr+2],(xi=vt===0?lr:vr)>=nt&&xi<=ht&&ul(Vt,lr,vr,Xe),Hr=Vt.length-3,xt&&Hr>=3&&(Vt[Hr]!==Vt[0]||Vt[Hr+1]!==Vt[1])&&ul(Vt,Vt[0],Vt[1],Vt[2]),Vt.length&&tt.push(Vt)}function lo(gt){var tt=[];return tt.size=gt.size,tt.start=gt.start,tt.end=gt.end,tt}function du(gt,tt,nt,ht,vt,xt){for(var _t=0;_t<gt.length;_t++)oi(gt[_t],tt,nt,ht,vt,xt,!1)}function ul(gt,tt,nt,ht){gt.push(tt),gt.push(nt),gt.push(ht)}function bo(gt,tt,nt,ht,vt,xt){var _t=(xt-tt)/(ht-tt);return gt.push(xt),gt.push(nt+(vt-nt)*_t),gt.push(1),_t}function hl(gt,tt,nt,ht,vt,xt){var _t=(xt-nt)/(vt-nt);return gt.push(tt+(ht-tt)*_t),gt.push(xt),gt.push(1),_t}function Ia(gt,tt){for(var nt=[],ht=0;ht<gt.length;ht++){var vt,xt=gt[ht],_t=xt.type;if(_t===\"Point\"||_t===\"MultiPoint\"||_t===\"LineString\")vt=wo(xt.geometry,tt);else if(_t===\"MultiLineString\"||_t===\"Polygon\"){vt=[];for(var Dt=0;Dt<xt.geometry.length;Dt++)vt.push(wo(xt.geometry[Dt],tt))}else if(_t===\"MultiPolygon\")for(vt=[],Dt=0;Dt<xt.geometry.length;Dt++){for(var Mt=[],Vt=0;Vt<xt.geometry[Dt].length;Vt++)Mt.push(wo(xt.geometry[Dt][Vt],tt));vt.push(Mt)}nt.push(xo(xt.id,_t,vt,xt.tags))}return nt}function wo(gt,tt){var nt=[];nt.size=gt.size,gt.start!==void 0&&(nt.start=gt.start,nt.end=gt.end);for(var ht=0;ht<gt.length;ht+=3)nt.push(gt[ht]+tt,gt[ht+1],gt[ht+2]);return nt}function ve(gt,tt){if(gt.transformed)return gt;var nt,ht,vt,xt=1<<gt.z,_t=gt.x,Dt=gt.y;for(nt=0;nt<gt.features.length;nt++){var Mt=gt.features[nt],Vt=Mt.geometry,ie=Mt.type;if(Mt.geometry=[],ie===1)for(ht=0;ht<Vt.length;ht+=2)Mt.geometry.push(jo(Vt[ht],Vt[ht+1],tt,xt,_t,Dt));else for(ht=0;ht<Vt.length;ht++){var se=[];for(vt=0;vt<Vt[ht].length;vt+=2)se.push(jo(Vt[ht][vt],Vt[ht][vt+1],tt,xt,_t,Dt));Mt.geometry.push(se)}}return gt.transformed=!0,gt}function jo(gt,tt,nt,ht,vt,xt){return[Math.round(nt*(gt*ht-vt)),Math.round(nt*(tt*ht-xt))]}function gn(gt,tt,nt,ht,vt){for(var xt=tt===vt.maxZoom?0:vt.tolerance/((1<<tt)*vt.extent),_t={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:nt,y:ht,z:tt,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},Dt=0;Dt<gt.length;Dt++){_t.numFeatures++,Ul(_t,gt[Dt],xt,vt);var Mt=gt[Dt].minX,Vt=gt[Dt].minY,ie=gt[Dt].maxX,se=gt[Dt].maxY;Mt<_t.minX&&(_t.minX=Mt),Vt<_t.minY&&(_t.minY=Vt),ie>_t.maxX&&(_t.maxX=ie),se>_t.maxY&&(_t.maxY=se)}return _t}function Ul(gt,tt,nt,ht){var vt=tt.geometry,xt=tt.type,_t=[];if(xt===\"Point\"||xt===\"MultiPoint\")for(var Dt=0;Dt<vt.length;Dt+=3)_t.push(vt[Dt]),_t.push(vt[Dt+1]),gt.numPoints++,gt.numSimplified++;else if(xt===\"LineString\")Ca(_t,vt,gt,nt,!1,!1);else if(xt===\"MultiLineString\"||xt===\"Polygon\")for(Dt=0;Dt<vt.length;Dt++)Ca(_t,vt[Dt],gt,nt,xt===\"Polygon\",Dt===0);else if(xt===\"MultiPolygon\")for(var Mt=0;Mt<vt.length;Mt++){var Vt=vt[Mt];for(Dt=0;Dt<Vt.length;Dt++)Ca(_t,Vt[Dt],gt,nt,!0,Dt===0)}if(_t.length){var ie=tt.tags||null;if(xt===\"LineString\"&&ht.lineMetrics){for(var se in ie={},tt.tags)ie[se]=tt.tags[se];ie.mapbox_clip_start=vt.start/vt.size,ie.mapbox_clip_end=vt.end/vt.size}var ae={geometry:_t,type:xt===\"Polygon\"||xt===\"MultiPolygon\"?3:xt===\"LineString\"||xt===\"MultiLineString\"?2:1,tags:ie};tt.id!==null&&(ae.id=tt.id),gt.features.push(ae)}}function Ca(gt,tt,nt,ht,vt,xt){var _t=ht*ht;if(ht>0&&tt.size<(vt?_t:ht))nt.numPoints+=tt.length/3;else{for(var Dt=[],Mt=0;Mt<tt.length;Mt+=3)(ht===0||tt[Mt+2]>_t)&&(nt.numSimplified++,Dt.push(tt[Mt]),Dt.push(tt[Mt+1])),nt.numPoints++;vt&&function(Vt,ie){for(var se=0,ae=0,lr=Vt.length,vr=lr-2;ae<lr;vr=ae,ae+=2)se+=(Vt[ae]-Vt[vr])*(Vt[ae+1]+Vt[vr+1]);if(se>0===ie)for(ae=0,lr=Vt.length;ae<lr/2;ae+=2){var Xe=Vt[ae],cr=Vt[ae+1];Vt[ae]=Vt[lr-2-ae],Vt[ae+1]=Vt[lr-1-ae],Vt[lr-2-ae]=Xe,Vt[lr-1-ae]=cr}}(Dt,xt),gt.push(Dt)}}function Te(gt,tt){var nt=(tt=this.options=function(vt,xt){for(var _t in xt)vt[_t]=xt[_t];return vt}(Object.create(this.options),tt)).debug;if(nt&&console.time(\"preprocess data\"),tt.maxZoom<0||tt.maxZoom>24)throw new Error(\"maxZoom should be in the 0-24 range\");if(tt.promoteId&&tt.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");var ht=function(vt,xt){var _t=[];if(vt.type===\"FeatureCollection\")for(var Dt=0;Dt<vt.features.length;Dt++)na(_t,vt.features[Dt],xt,Dt);else na(_t,vt.type===\"Feature\"?vt:{geometry:vt},xt);return _t}(gt,tt);this.tiles={},this.tileCoords=[],nt&&(console.timeEnd(\"preprocess data\"),console.log(\"index: maxZoom: %d, maxPoints: %d\",tt.indexMaxZoom,tt.indexMaxPoints),console.time(\"generate tiles\"),this.stats={},this.total=0),ht=function(vt,xt){var _t=xt.buffer/xt.extent,Dt=vt,Mt=mn(vt,1,-1-_t,_t,0,-1,2,xt),Vt=mn(vt,1,1-_t,2+_t,0,-1,2,xt);return(Mt||Vt)&&(Dt=mn(vt,1,-_t,1+_t,0,-1,2,xt)||[],Mt&&(Dt=Ia(Mt,1).concat(Dt)),Vt&&(Dt=Dt.concat(Ia(Vt,-1)))),Dt}(ht,tt),ht.length&&this.splitTile(ht,0,0,0),nt&&(ht.length&&console.log(\"features: %d, points: %d\",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd(\"generate tiles\"),console.log(\"tiles generated:\",this.total,JSON.stringify(this.stats)))}function Dr(gt,tt,nt){return 32*((1<<gt)*nt+tt)+gt}function gr(gt,tt){return tt?gt.properties[tt]:gt.id}function Us(gt,tt){if(gt==null)return!0;if(gt.type===\"Feature\")return gr(gt,tt)!=null;if(gt.type===\"FeatureCollection\"){let nt=new Set;for(let ht of gt.features){let vt=gr(ht,tt);if(vt==null||nt.has(vt))return!1;nt.add(vt)}return!0}return!1}function La(gt,tt){let nt=new Map;if(gt!=null)if(gt.type===\"Feature\")nt.set(gr(gt,tt),gt);else for(let ht of gt.features)nt.set(gr(ht,tt),ht);return nt}Te.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Te.prototype.splitTile=function(gt,tt,nt,ht,vt,xt,_t){for(var Dt=[gt,tt,nt,ht],Mt=this.options,Vt=Mt.debug;Dt.length;){ht=Dt.pop(),nt=Dt.pop(),tt=Dt.pop(),gt=Dt.pop();var ie=1<<tt,se=Dr(tt,nt,ht),ae=this.tiles[se];if(!ae&&(Vt>1&&console.time(\"creation\"),ae=this.tiles[se]=gn(gt,tt,nt,ht,Mt),this.tileCoords.push({z:tt,x:nt,y:ht}),Vt)){Vt>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",tt,nt,ht,ae.numFeatures,ae.numPoints,ae.numSimplified),console.timeEnd(\"creation\"));var lr=\"z\"+tt;this.stats[lr]=(this.stats[lr]||0)+1,this.total++}if(ae.source=gt,vt){if(tt===Mt.maxZoom||tt===vt)continue;var vr=1<<vt-tt;if(nt!==Math.floor(xt/vr)||ht!==Math.floor(_t/vr))continue}else if(tt===Mt.indexMaxZoom||ae.numPoints<=Mt.indexMaxPoints)continue;if(ae.source=null,gt.length!==0){Vt>1&&console.time(\"clipping\");var Xe,cr,wr,xi,zi,ni,Hr=.5*Mt.buffer/Mt.extent,jn=.5-Hr,Bi=.5+Hr,xn=1+Hr;Xe=cr=wr=xi=null,zi=mn(gt,ie,nt-Hr,nt+Bi,0,ae.minX,ae.maxX,Mt),ni=mn(gt,ie,nt+jn,nt+xn,0,ae.minX,ae.maxX,Mt),gt=null,zi&&(Xe=mn(zi,ie,ht-Hr,ht+Bi,1,ae.minY,ae.maxY,Mt),cr=mn(zi,ie,ht+jn,ht+xn,1,ae.minY,ae.maxY,Mt),zi=null),ni&&(wr=mn(ni,ie,ht-Hr,ht+Bi,1,ae.minY,ae.maxY,Mt),xi=mn(ni,ie,ht+jn,ht+xn,1,ae.minY,ae.maxY,Mt),ni=null),Vt>1&&console.timeEnd(\"clipping\"),Dt.push(Xe||[],tt+1,2*nt,2*ht),Dt.push(cr||[],tt+1,2*nt,2*ht+1),Dt.push(wr||[],tt+1,2*nt+1,2*ht),Dt.push(xi||[],tt+1,2*nt+1,2*ht+1)}}},Te.prototype.getTile=function(gt,tt,nt){var ht=this.options,vt=ht.extent,xt=ht.debug;if(gt<0||gt>24)return null;var _t=1<<gt,Dt=Dr(gt,tt=(tt%_t+_t)%_t,nt);if(this.tiles[Dt])return ve(this.tiles[Dt],vt);xt>1&&console.log(\"drilling down to z%d-%d-%d\",gt,tt,nt);for(var Mt,Vt=gt,ie=tt,se=nt;!Mt&&Vt>0;)Vt--,ie=Math.floor(ie/2),se=Math.floor(se/2),Mt=this.tiles[Dr(Vt,ie,se)];return Mt&&Mt.source?(xt>1&&console.log(\"found parent tile z%d-%d-%d\",Vt,ie,se),xt>1&&console.time(\"drilling down\"),this.splitTile(Mt.source,Vt,ie,se,gt,tt,nt),xt>1&&console.timeEnd(\"drilling down\"),this.tiles[Dt]?ve(this.tiles[Dt],vt):null):null};class Mr extends I{constructor(tt,nt,ht,vt){super(tt,nt,ht),this._dataUpdateable=new Map,this.loadGeoJSON=(xt,_t)=>{let{promoteId:Dt}=xt;if(xt.request)return n.f(xt.request,(Mt,Vt,ie,se)=>{this._dataUpdateable=Us(Vt,Dt)?La(Vt,Dt):void 0,_t(Mt,Vt,ie,se)});if(typeof xt.data==\"string\")try{let Mt=JSON.parse(xt.data);this._dataUpdateable=Us(Mt,Dt)?La(Mt,Dt):void 0,_t(null,Mt)}catch{_t(new Error(`Input data given to '${xt.source}' is not a valid GeoJSON object.`))}else xt.dataDiff?this._dataUpdateable?(function(Mt,Vt,ie){var se,ae,lr,vr;if(Vt.removeAll&&Mt.clear(),Vt.remove)for(let Xe of Vt.remove)Mt.delete(Xe);if(Vt.add)for(let Xe of Vt.add){let cr=gr(Xe,ie);cr!=null&&Mt.set(cr,Xe)}if(Vt.update)for(let Xe of Vt.update){let cr=Mt.get(Xe.id);if(cr==null)continue;let wr=!Xe.removeAllProperties&&(((se=Xe.removeProperties)===null||se===void 0?void 0:se.length)>0||((ae=Xe.addOrUpdateProperties)===null||ae===void 0?void 0:ae.length)>0);if((Xe.newGeometry||Xe.removeAllProperties||wr)&&(cr=Object.assign({},cr),Mt.set(Xe.id,cr),wr&&(cr.properties=Object.assign({},cr.properties))),Xe.newGeometry&&(cr.geometry=Xe.newGeometry),Xe.removeAllProperties)cr.properties={};else if(((lr=Xe.removeProperties)===null||lr===void 0?void 0:lr.length)>0)for(let xi of Xe.removeProperties)Object.prototype.hasOwnProperty.call(cr.properties,xi)&&delete cr.properties[xi];if(((vr=Xe.addOrUpdateProperties)===null||vr===void 0?void 0:vr.length)>0)for(let{key:xi,value:zi}of Xe.addOrUpdateProperties)cr.properties[xi]=zi}}(this._dataUpdateable,xt.dataDiff,Dt),_t(null,{type:\"FeatureCollection\",features:Array.from(this._dataUpdateable.values())})):_t(new Error(`Cannot update existing geojson data in ${xt.source}`)):_t(new Error(`Input data given to '${xt.source}' is not a valid GeoJSON object.`));return{cancel:()=>{}}},this.loadVectorData=this.loadGeoJSONTile,vt&&(this.loadGeoJSON=vt)}loadGeoJSONTile(tt,nt){let ht=tt.tileID.canonical;if(!this._geoJSONIndex)return nt(null,null);let vt=this._geoJSONIndex.getTile(ht.z,ht.x,ht.y);if(!vt)return nt(null,null);let xt=new class{constructor(Dt){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=n.N,this.length=Dt.length,this._features=Dt}feature(Dt){return new class{constructor(Mt){this._feature=Mt,this.extent=n.N,this.type=Mt.type,this.properties=Mt.tags,\"id\"in Mt&&!isNaN(Mt.id)&&(this.id=parseInt(Mt.id,10))}loadGeometry(){if(this._feature.type===1){let Mt=[];for(let Vt of this._feature.geometry)Mt.push([new n.P(Vt[0],Vt[1])]);return Mt}{let Mt=[];for(let Vt of this._feature.geometry){let ie=[];for(let se of Vt)ie.push(new n.P(se[0],se[1]));Mt.push(ie)}return Mt}}toGeoJSON(Mt,Vt,ie){return et.call(this,Mt,Vt,ie)}}(this._features[Dt])}}(vt.features),_t=zl(xt);_t.byteOffset===0&&_t.byteLength===_t.buffer.byteLength||(_t=new Uint8Array(_t)),nt(null,{vectorTile:xt,rawData:_t.buffer})}loadData(tt,nt){var ht;(ht=this._pendingRequest)===null||ht===void 0||ht.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});let vt=!!(tt&&tt.request&&tt.request.collectResourceTiming)&&new n.bu(tt.request);this._pendingCallback=nt,this._pendingRequest=this.loadGeoJSON(tt,(xt,_t)=>{if(delete this._pendingCallback,delete this._pendingRequest,xt||!_t)return nt(xt);if(typeof _t!=\"object\")return nt(new Error(`Input data given to '${tt.source}' is not a valid GeoJSON object.`));{Q(_t,!0);try{if(tt.filter){let Mt=n.bC(tt.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(Mt.result===\"error\")throw new Error(Mt.value.map(ie=>`${ie.key}: ${ie.message}`).join(\", \"));_t={type:\"FeatureCollection\",features:_t.features.filter(ie=>Mt.value.evaluate({zoom:0},ie))}}this._geoJSONIndex=tt.cluster?new kc(function({superclusterOptions:Mt,clusterProperties:Vt}){if(!Vt||!Mt)return Mt;let ie={},se={},ae={accumulated:null,zoom:0},lr={properties:null},vr=Object.keys(Vt);for(let Xe of vr){let[cr,wr]=Vt[Xe],xi=n.bC(wr),zi=n.bC(typeof cr==\"string\"?[cr,[\"accumulated\"],[\"get\",Xe]]:cr);ie[Xe]=xi.value,se[Xe]=zi.value}return Mt.map=Xe=>{lr.properties=Xe;let cr={};for(let wr of vr)cr[wr]=ie[wr].evaluate(ae,lr);return cr},Mt.reduce=(Xe,cr)=>{lr.properties=cr;for(let wr of vr)ae.accumulated=Xe[wr],Xe[wr]=se[wr].evaluate(ae,lr)},Mt}(tt)).load(_t.features):function(Mt,Vt){return new Te(Mt,Vt)}(_t,tt.geojsonVtOptions)}catch(Mt){return nt(Mt)}this.loaded={};let Dt={};if(vt){let Mt=vt.finish();Mt&&(Dt.resourceTiming={},Dt.resourceTiming[tt.source]=JSON.parse(JSON.stringify(Mt)))}nt(null,Dt)}})}reloadTile(tt,nt){let ht=this.loaded;return ht&&ht[tt.uid]?super.reloadTile(tt,nt):this.loadTile(tt,nt)}removeSource(tt,nt){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),nt()}getClusterExpansionZoom(tt,nt){try{nt(null,this._geoJSONIndex.getClusterExpansionZoom(tt.clusterId))}catch(ht){nt(ht)}}getClusterChildren(tt,nt){try{nt(null,this._geoJSONIndex.getChildren(tt.clusterId))}catch(ht){nt(ht)}}getClusterLeaves(tt,nt){try{nt(null,this._geoJSONIndex.getLeaves(tt.clusterId,tt.limit,tt.offset))}catch(ht){nt(ht)}}}class sa{constructor(tt){this.self=tt,this.actor=new n.C(tt,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:I,geojson:Mr},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(nt,ht)=>{if(this.workerSourceTypes[nt])throw new Error(`Worker source with name \"${nt}\" already registered.`);this.workerSourceTypes[nt]=ht},this.self.registerRTLTextPlugin=nt=>{if(n.bD.isParsed())throw new Error(\"RTL text plugin already registered.\");n.bD.applyArabicShaping=nt.applyArabicShaping,n.bD.processBidirectionalText=nt.processBidirectionalText,n.bD.processStyledBidirectionalText=nt.processStyledBidirectionalText}}setReferrer(tt,nt){this.referrer=nt}setImages(tt,nt,ht){this.availableImages[tt]=nt;for(let vt in this.workerSources[tt]){let xt=this.workerSources[tt][vt];for(let _t in xt)xt[_t].availableImages=nt}ht()}setLayers(tt,nt,ht){this.getLayerIndex(tt).replace(nt),ht()}updateLayers(tt,nt,ht){this.getLayerIndex(tt).update(nt.layers,nt.removedIds),ht()}loadTile(tt,nt,ht){this.getWorkerSource(tt,nt.type,nt.source).loadTile(nt,ht)}loadDEMTile(tt,nt,ht){this.getDEMWorkerSource(tt,nt.source).loadTile(nt,ht)}reloadTile(tt,nt,ht){this.getWorkerSource(tt,nt.type,nt.source).reloadTile(nt,ht)}abortTile(tt,nt,ht){this.getWorkerSource(tt,nt.type,nt.source).abortTile(nt,ht)}removeTile(tt,nt,ht){this.getWorkerSource(tt,nt.type,nt.source).removeTile(nt,ht)}removeDEMTile(tt,nt){this.getDEMWorkerSource(tt,nt.source).removeTile(nt)}removeSource(tt,nt,ht){if(!this.workerSources[tt]||!this.workerSources[tt][nt.type]||!this.workerSources[tt][nt.type][nt.source])return;let vt=this.workerSources[tt][nt.type][nt.source];delete this.workerSources[tt][nt.type][nt.source],vt.removeSource!==void 0?vt.removeSource(nt,ht):ht()}loadWorkerSource(tt,nt,ht){try{this.self.importScripts(nt.url),ht()}catch(vt){ht(vt.toString())}}syncRTLPluginState(tt,nt,ht){try{n.bD.setState(nt);let vt=n.bD.getPluginURL();if(n.bD.isLoaded()&&!n.bD.isParsed()&&vt!=null){this.self.importScripts(vt);let xt=n.bD.isParsed();ht(xt?void 0:new Error(`RTL Text Plugin failed to import scripts from ${vt}`),xt)}}catch(vt){ht(vt.toString())}}getAvailableImages(tt){let nt=this.availableImages[tt];return nt||(nt=[]),nt}getLayerIndex(tt){let nt=this.layerIndexes[tt];return nt||(nt=this.layerIndexes[tt]=new o),nt}getWorkerSource(tt,nt,ht){return this.workerSources[tt]||(this.workerSources[tt]={}),this.workerSources[tt][nt]||(this.workerSources[tt][nt]={}),this.workerSources[tt][nt][ht]||(this.workerSources[tt][nt][ht]=new this.workerSourceTypes[nt]({send:(vt,xt,_t)=>{this.actor.send(vt,xt,_t,tt)}},this.getLayerIndex(tt),this.getAvailableImages(tt))),this.workerSources[tt][nt][ht]}getDEMWorkerSource(tt,nt){return this.demWorkerSources[tt]||(this.demWorkerSources[tt]={}),this.demWorkerSources[tt][nt]||(this.demWorkerSources[tt][nt]=new R),this.demWorkerSources[tt][nt]}}return n.i()&&(self.worker=new sa(self)),sa}),i([\"./shared\"],function(n){\"use strict\";var o=\"3.6.2\";class c{static testProp(l){if(!c.docStyle)return l[0];for(let d=0;d<l.length;d++)if(l[d]in c.docStyle)return l[d];return l[0]}static create(l,d,v){let b=window.document.createElement(l);return d!==void 0&&(b.className=d),v&&v.appendChild(b),b}static createNS(l,d){return window.document.createElementNS(l,d)}static disableDrag(){c.docStyle&&c.selectProp&&(c.userSelect=c.docStyle[c.selectProp],c.docStyle[c.selectProp]=\"none\")}static enableDrag(){c.docStyle&&c.selectProp&&(c.docStyle[c.selectProp]=c.userSelect)}static setTransform(l,d){l.style[c.transformProp]=d}static addEventListener(l,d,v,b={}){l.addEventListener(d,v,\"passive\"in b?b:b.capture)}static removeEventListener(l,d,v,b={}){l.removeEventListener(d,v,\"passive\"in b?b:b.capture)}static suppressClickInternal(l){l.preventDefault(),l.stopPropagation(),window.removeEventListener(\"click\",c.suppressClickInternal,!0)}static suppressClick(){window.addEventListener(\"click\",c.suppressClickInternal,!0),window.setTimeout(()=>{window.removeEventListener(\"click\",c.suppressClickInternal,!0)},0)}static mousePos(l,d){let v=l.getBoundingClientRect();return new n.P(d.clientX-v.left-l.clientLeft,d.clientY-v.top-l.clientTop)}static touchPos(l,d){let v=l.getBoundingClientRect(),b=[];for(let M=0;M<d.length;M++)b.push(new n.P(d[M].clientX-v.left-l.clientLeft,d[M].clientY-v.top-l.clientTop));return b}static mouseButton(l){return l.button}static remove(l){l.parentNode&&l.parentNode.removeChild(l)}}c.docStyle=typeof window<\"u\"&&window.document&&window.document.documentElement.style,c.selectProp=c.testProp([\"userSelect\",\"MozUserSelect\",\"WebkitUserSelect\",\"msUserSelect\"]),c.transformProp=c.testProp([\"transform\",\"WebkitTransform\"]);let f={supported:!1,testSupport:function(T){!I&&w&&(R?N(T):_=T)}},_,w,I=!1,R=!1;function N(T){let l=T.createTexture();T.bindTexture(T.TEXTURE_2D,l);try{if(T.texImage2D(T.TEXTURE_2D,0,T.RGBA,T.RGBA,T.UNSIGNED_BYTE,w),T.isContextLost())return;f.supported=!0}catch{}T.deleteTexture(l),I=!0}var j,Q;typeof document<\"u\"&&(w=document.createElement(\"img\"),w.onload=function(){_&&N(_),_=null,R=!0},w.onerror=function(){I=!0,_=null},w.src=\"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\"),function(T){let l,d,v,b;T.resetRequestQueue=()=>{l=[],d=0,v=0,b={}},T.addThrottleControl=W=>{let Z=v++;return b[Z]=W,Z},T.removeThrottleControl=W=>{delete b[W],B()},T.getImage=(W,Z,$=!0)=>{f.supported&&(W.headers||(W.headers={}),W.headers.accept=\"image/webp,*/*\");let st={requestParameters:W,supportImageRefresh:$,callback:Z,cancelled:!1,completed:!1,cancel:()=>{st.completed||st.cancelled||(st.cancelled=!0,st.innerRequest&&(st.innerRequest.cancel(),d--),B())}};return l.push(st),B(),st};let M=W=>{let{requestParameters:Z,supportImageRefresh:$,callback:st}=W;return n.e(Z,{type:\"image\"}),($!==!1||n.i()||n.g(Z.url)||Z.headers&&!Object.keys(Z.headers).reduce((At,pt)=>At&&pt===\"accept\",!0)?n.m:U)(Z,(At,pt,yt,dt)=>{O(W,st,At,pt,yt,dt)})},O=(W,Z,$,st,At,pt)=>{$?Z($):st instanceof HTMLImageElement||n.a(st)?Z(null,st):st&&((yt,dt)=>{typeof createImageBitmap==\"function\"?n.b(yt,dt):n.d(yt,dt)})(st,(yt,dt)=>{yt!=null?Z(yt):dt!=null&&Z(null,dt,{cacheControl:At,expires:pt})}),W.cancelled||(W.completed=!0,d--,B())},B=()=>{let W=(()=>{let Z=Object.keys(b),$=!1;if(Z.length>0){for(let st of Z)if($=b[st](),$)break}return $})()?n.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:n.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let Z=d;Z<W&&l.length>0;Z++){let $=l.shift();if($.cancelled){Z--;continue}let st=M($);d++,$.innerRequest=st}},U=(W,Z)=>{let $=new Image,st=W.url,At=!1,pt=W.credentials;return pt&&pt===\"include\"?$.crossOrigin=\"use-credentials\":(pt&&pt===\"same-origin\"||!n.s(st))&&($.crossOrigin=\"anonymous\"),$.fetchPriority=\"high\",$.onload=()=>{Z(null,$),$.onerror=$.onload=null},$.onerror=()=>{At||Z(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\")),$.onerror=$.onload=null},$.src=st,{cancel:()=>{At=!0,$.src=\"\"}}}}(j||(j={})),j.resetRequestQueue(),function(T){T.Glyphs=\"Glyphs\",T.Image=\"Image\",T.Source=\"Source\",T.SpriteImage=\"SpriteImage\",T.SpriteJSON=\"SpriteJSON\",T.Style=\"Style\",T.Tile=\"Tile\",T.Unknown=\"Unknown\"}(Q||(Q={}));class et{constructor(l){this._transformRequestFn=l}transformRequest(l,d){return this._transformRequestFn&&this._transformRequestFn(l,d)||{url:l}}normalizeSpriteURL(l,d,v){let b=function(M){let O=M.match(Y);if(!O)throw new Error(`Unable to parse URL \"${M}\"`);return{protocol:O[1],authority:O[2],path:O[3]||\"/\",params:O[4]?O[4].split(\"&\"):[]}}(l);return b.path+=`${d}${v}`,function(M){let O=M.params.length?`?${M.params.join(\"&\")}`:\"\";return`${M.protocol}://${M.authority}${M.path}${O}`}(b)}setTransformRequest(l){this._transformRequestFn=l}}let Y=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function K(T){var l=new n.A(3);return l[0]=T[0],l[1]=T[1],l[2]=T[2],l}var J,ut=function(T,l,d){return T[0]=l[0]-d[0],T[1]=l[1]-d[1],T[2]=l[2]-d[2],T};J=new n.A(3),n.A!=Float32Array&&(J[0]=0,J[1]=0,J[2]=0);var Et=function(T){var l=T[0],d=T[1];return l*l+d*d};function kt(T){let l=[];if(typeof T==\"string\")l.push({id:\"default\",url:T});else if(T&&T.length>0){let d=[];for(let{id:v,url:b}of T){let M=`${v}${b}`;d.indexOf(M)===-1&&(d.push(M),l.push({id:v,url:b}))}}return l}function Xt(T,l,d,v,b){if(v)return void T(v);if(b!==Object.values(l).length||b!==Object.values(d).length)return;let M={};for(let O in l){M[O]={};let B=n.h.getImageCanvasContext(d[O]),U=l[O];for(let W in U){let{width:Z,height:$,x:st,y:At,sdf:pt,pixelRatio:yt,stretchX:dt,stretchY:Ft,content:Ht}=U[W];M[O][W]={data:null,pixelRatio:yt,sdf:pt,stretchX:dt,stretchY:Ft,content:Ht,spriteData:{width:Z,height:$,x:st,y:At,context:B}}}}T(null,M)}(function(){var T=new n.A(2);n.A!=Float32Array&&(T[0]=0,T[1]=0)})();class qt{constructor(l,d,v,b){this.context=l,this.format=v,this.texture=l.gl.createTexture(),this.update(d,b)}update(l,d,v){let{width:b,height:M}=l,O=!(this.size&&this.size[0]===b&&this.size[1]===M||v),{context:B}=this,{gl:U}=B;if(this.useMipmap=!!(d&&d.useMipmap),U.bindTexture(U.TEXTURE_2D,this.texture),B.pixelStoreUnpackFlipY.set(!1),B.pixelStoreUnpack.set(1),B.pixelStoreUnpackPremultiplyAlpha.set(this.format===U.RGBA&&(!d||d.premultiply!==!1)),O)this.size=[b,M],l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||n.a(l)?U.texImage2D(U.TEXTURE_2D,0,this.format,this.format,U.UNSIGNED_BYTE,l):U.texImage2D(U.TEXTURE_2D,0,this.format,b,M,0,this.format,U.UNSIGNED_BYTE,l.data);else{let{x:W,y:Z}=v||{x:0,y:0};l instanceof HTMLImageElement||l instanceof HTMLCanvasElement||l instanceof HTMLVideoElement||l instanceof ImageData||n.a(l)?U.texSubImage2D(U.TEXTURE_2D,0,W,Z,U.RGBA,U.UNSIGNED_BYTE,l):U.texSubImage2D(U.TEXTURE_2D,0,W,Z,b,M,U.RGBA,U.UNSIGNED_BYTE,l.data)}this.useMipmap&&this.isSizePowerOfTwo()&&U.generateMipmap(U.TEXTURE_2D)}bind(l,d,v){let{context:b}=this,{gl:M}=b;M.bindTexture(M.TEXTURE_2D,this.texture),v!==M.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(v=M.LINEAR),l!==this.filter&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MAG_FILTER,l),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_MIN_FILTER,v||l),this.filter=l),d!==this.wrap&&(M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_S,d),M.texParameteri(M.TEXTURE_2D,M.TEXTURE_WRAP_T,d),this.wrap=d)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:l}=this.context;l.deleteTexture(this.texture),this.texture=null}}function le(T){let{userImage:l}=T;return!!(l&&l.render&&l.render())&&(T.data.replace(new Uint8Array(l.data.buffer)),!0)}class ue extends n.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new n.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(l){if(this.loaded!==l&&(this.loaded=l,l)){for(let{ids:d,callback:v}of this.requestors)this._notify(d,v);this.requestors=[]}}getImage(l){let d=this.images[l];if(d&&!d.data&&d.spriteData){let v=d.spriteData;d.data=new n.R({width:v.width,height:v.height},v.context.getImageData(v.x,v.y,v.width,v.height).data),d.spriteData=null}return d}addImage(l,d){if(this.images[l])throw new Error(`Image id ${l} already exist, use updateImage instead`);this._validate(l,d)&&(this.images[l]=d)}_validate(l,d){let v=!0,b=d.data||d.spriteData;return this._validateStretch(d.stretchX,b&&b.width)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"stretchX\" value`))),v=!1),this._validateStretch(d.stretchY,b&&b.height)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"stretchY\" value`))),v=!1),this._validateContent(d.content,d)||(this.fire(new n.j(new Error(`Image \"${l}\" has invalid \"content\" value`))),v=!1),v}_validateStretch(l,d){if(!l)return!0;let v=0;for(let b of l){if(b[0]<v||b[1]<b[0]||d<b[1])return!1;v=b[1]}return!0}_validateContent(l,d){if(!l)return!0;if(l.length!==4)return!1;let v=d.spriteData,b=v&&v.width||d.data.width,M=v&&v.height||d.data.height;return!(l[0]<0||b<l[0]||l[1]<0||M<l[1]||l[2]<0||b<l[2]||l[3]<0||M<l[3]||l[2]<l[0]||l[3]<l[1])}updateImage(l,d,v=!0){let b=this.getImage(l);if(v&&(b.data.width!==d.data.width||b.data.height!==d.data.height))throw new Error(`size mismatch between old image (${b.data.width}x${b.data.height}) and new image (${d.data.width}x${d.data.height}).`);d.version=b.version+1,this.images[l]=d,this.updatedImages[l]=!0}removeImage(l){let d=this.images[l];delete this.images[l],delete this.patterns[l],d.userImage&&d.userImage.onRemove&&d.userImage.onRemove()}listImages(){return Object.keys(this.images)}getImages(l,d){let v=!0;if(!this.isLoaded())for(let b of l)this.images[b]||(v=!1);this.isLoaded()||v?this._notify(l,d):this.requestors.push({ids:l,callback:d})}_notify(l,d){let v={};for(let b of l){let M=this.getImage(b);M||(this.fire(new n.k(\"styleimagemissing\",{id:b})),M=this.getImage(b)),M?v[b]={data:M.data.clone(),pixelRatio:M.pixelRatio,sdf:M.sdf,version:M.version,stretchX:M.stretchX,stretchY:M.stretchY,content:M.content,hasRenderCallback:!!(M.userImage&&M.userImage.render)}:n.w(`Image \"${b}\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.`)}d(null,v)}getPixelSize(){let{width:l,height:d}=this.atlasImage;return{width:l,height:d}}getPattern(l){let d=this.patterns[l],v=this.getImage(l);if(!v)return null;if(d&&d.position.version===v.version)return d.position;if(d)d.position.version=v.version;else{let b={w:v.data.width+2,h:v.data.height+2,x:0,y:0},M=new n.I(b,v);this.patterns[l]={bin:b,position:M}}return this._updatePatternAtlas(),this.patterns[l].position}bind(l){let d=l.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new qt(l,this.atlasImage,d.RGBA),this.atlasTexture.bind(d.LINEAR,d.CLAMP_TO_EDGE)}_updatePatternAtlas(){let l=[];for(let M in this.patterns)l.push(this.patterns[M].bin);let{w:d,h:v}=n.p(l),b=this.atlasImage;b.resize({width:d||1,height:v||1});for(let M in this.patterns){let{bin:O}=this.patterns[M],B=O.x+1,U=O.y+1,W=this.getImage(M).data,Z=W.width,$=W.height;n.R.copy(W,b,{x:0,y:0},{x:B,y:U},{width:Z,height:$}),n.R.copy(W,b,{x:0,y:$-1},{x:B,y:U-1},{width:Z,height:1}),n.R.copy(W,b,{x:0,y:0},{x:B,y:U+$},{width:Z,height:1}),n.R.copy(W,b,{x:Z-1,y:0},{x:B-1,y:U},{width:1,height:$}),n.R.copy(W,b,{x:0,y:0},{x:B+Z,y:U},{width:1,height:$})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(l){for(let d of l){if(this.callbackDispatchedThisFrame[d])continue;this.callbackDispatchedThisFrame[d]=!0;let v=this.getImage(d);v||n.w(`Image with ID: \"${d}\" was not found`),le(v)&&this.updateImage(d,v)}}}let De=1e20;function Ke(T,l,d,v,b,M,O,B,U){for(let W=l;W<l+v;W++)rr(T,d*M+W,M,b,O,B,U);for(let W=d;W<d+b;W++)rr(T,W*M+l,1,v,O,B,U)}function rr(T,l,d,v,b,M,O){M[0]=0,O[0]=-De,O[1]=De,b[0]=T[l];for(let B=1,U=0,W=0;B<v;B++){b[B]=T[l+B*d];let Z=B*B;do{let $=M[U];W=(b[B]-b[$]+Z-$*$)/(B-$)/2}while(W<=O[U]&&--U>-1);U++,M[U]=B,O[U]=W,O[U+1]=De}for(let B=0,U=0;B<v;B++){for(;O[U+1]<B;)U++;let W=M[U],Z=B-W;T[l+B*d]=b[W]+Z*Z}}class Sr{constructor(l,d){this.requestManager=l,this.localIdeographFontFamily=d,this.entries={}}setURL(l){this.url=l}getGlyphs(l,d){let v=[];for(let b in l)for(let M of l[b])v.push({stack:b,id:M});n.o(v,({stack:b,id:M},O)=>{let B=this.entries[b];B||(B=this.entries[b]={glyphs:{},requests:{},ranges:{}});let U=B.glyphs[M];if(U!==void 0)return void O(null,{stack:b,id:M,glyph:U});if(U=this._tinySDF(B,b,M),U)return B.glyphs[M]=U,void O(null,{stack:b,id:M,glyph:U});let W=Math.floor(M/256);if(256*W>65535)return void O(new Error(\"glyphs > 65535 not supported\"));if(B.ranges[W])return void O(null,{stack:b,id:M,glyph:U});if(!this.url)return void O(new Error(\"glyphsUrl is not set\"));let Z=B.requests[W];Z||(Z=B.requests[W]=[],Sr.loadGlyphRange(b,W,this.url,this.requestManager,($,st)=>{if(st){for(let At in st)this._doesCharSupportLocalGlyph(+At)||(B.glyphs[+At]=st[+At]);B.ranges[W]=!0}for(let At of Z)At($,st);delete B.requests[W]})),Z.push(($,st)=>{$?O($):st&&O(null,{stack:b,id:M,glyph:st[M]||null})})},(b,M)=>{if(b)d(b);else if(M){let O={};for(let{stack:B,id:U,glyph:W}of M)(O[B]||(O[B]={}))[U]=W&&{id:W.id,bitmap:W.bitmap.clone(),metrics:W.metrics};d(null,O)}})}_doesCharSupportLocalGlyph(l){return!!this.localIdeographFontFamily&&(n.u[\"CJK Unified Ideographs\"](l)||n.u[\"Hangul Syllables\"](l)||n.u.Hiragana(l)||n.u.Katakana(l))}_tinySDF(l,d,v){let b=this.localIdeographFontFamily;if(!b||!this._doesCharSupportLocalGlyph(v))return;let M=l.tinySDF;if(!M){let B=\"400\";/bold/i.test(d)?B=\"900\":/medium/i.test(d)?B=\"500\":/light/i.test(d)&&(B=\"200\"),M=l.tinySDF=new Sr.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:b,fontWeight:B})}let O=M.draw(String.fromCharCode(v));return{id:v,bitmap:new n.q({width:O.width||60,height:O.height||60},O.data),metrics:{width:O.glyphWidth/2||24,height:O.glyphHeight/2||24,left:O.glyphLeft/2+.5||0,top:O.glyphTop/2-27.5||-8,advance:O.glyphAdvance/2||24,isDoubleResolution:!0}}}}Sr.loadGlyphRange=function(T,l,d,v,b){let M=256*l,O=M+255,B=v.transformRequest(d.replace(\"{fontstack}\",T).replace(\"{range}\",`${M}-${O}`),Q.Glyphs);n.l(B,(U,W)=>{if(U)b(U);else if(W){let Z={};for(let $ of n.n(W))Z[$.id]=$;b(null,Z)}})},Sr.TinySDF=class{constructor({fontSize:T=24,buffer:l=3,radius:d=8,cutoff:v=.25,fontFamily:b=\"sans-serif\",fontWeight:M=\"normal\",fontStyle:O=\"normal\"}={}){this.buffer=l,this.cutoff=v,this.radius=d;let B=this.size=T+4*l,U=this._createCanvas(B),W=this.ctx=U.getContext(\"2d\",{willReadFrequently:!0});W.font=`${O} ${M} ${T}px ${b}`,W.textBaseline=\"alphabetic\",W.textAlign=\"left\",W.fillStyle=\"black\",this.gridOuter=new Float64Array(B*B),this.gridInner=new Float64Array(B*B),this.f=new Float64Array(B),this.z=new Float64Array(B+1),this.v=new Uint16Array(B)}_createCanvas(T){let l=document.createElement(\"canvas\");return l.width=l.height=T,l}draw(T){let{width:l,actualBoundingBoxAscent:d,actualBoundingBoxDescent:v,actualBoundingBoxLeft:b,actualBoundingBoxRight:M}=this.ctx.measureText(T),O=Math.ceil(d),B=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(M-b))),U=Math.min(this.size-this.buffer,O+Math.ceil(v)),W=B+2*this.buffer,Z=U+2*this.buffer,$=Math.max(W*Z,0),st=new Uint8ClampedArray($),At={data:st,width:W,height:Z,glyphWidth:B,glyphHeight:U,glyphTop:O,glyphLeft:0,glyphAdvance:l};if(B===0||U===0)return At;let{ctx:pt,buffer:yt,gridInner:dt,gridOuter:Ft}=this;pt.clearRect(yt,yt,B,U),pt.fillText(T,yt,yt+O);let Ht=pt.getImageData(yt,yt,B,U);Ft.fill(De,0,$),dt.fill(0,0,$);for(let St=0;St<U;St++)for(let Bt=0;Bt<B;Bt++){let Qt=Ht.data[4*(St*B+Bt)+3]/255;if(Qt===0)continue;let $t=(St+yt)*W+Bt+yt;if(Qt===1)Ft[$t]=0,dt[$t]=De;else{let oe=.5-Qt;Ft[$t]=oe>0?oe*oe:0,dt[$t]=oe<0?oe*oe:0}}Ke(Ft,0,0,W,Z,W,this.f,this.v,this.z),Ke(dt,yt,yt,B,U,W,this.f,this.v,this.z);for(let St=0;St<$;St++){let Bt=Math.sqrt(Ft[St])-Math.sqrt(dt[St]);st[St]=Math.round(255-255*(Bt/this.radius+this.cutoff))}return At}};class Li{constructor(){this.specification=n.v.light.position}possiblyEvaluate(l,d){return n.z(l.expression.evaluate(d))}interpolate(l,d,v){return{x:n.B.number(l.x,d.x,v),y:n.B.number(l.y,d.y,v),z:n.B.number(l.z,d.z,v)}}}let oo;class zl extends n.E{constructor(l){super(),oo=oo||new n.r({anchor:new n.D(n.v.light.anchor),position:new Li,color:new n.D(n.v.light.color),intensity:new n.D(n.v.light.intensity)}),this._transitionable=new n.T(oo),this.setLight(l),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(l,d={}){if(!this._validate(n.t,l,d))for(let v in l){let b=l[v];v.endsWith(\"-transition\")?this._transitionable.setTransition(v.slice(0,-11),b):this._transitionable.setValue(v,b)}}updateTransitions(l){this._transitioning=this._transitionable.transitioned(l,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(l){this.properties=this._transitioning.possiblyEvaluate(l)}_validate(l,d,v){return(!v||v.validate!==!1)&&n.x(this,l.call(n.y,n.e({value:d,style:{glyphs:!0,sprite:!0},styleSpec:n.v})))}}class No{constructor(l,d){this.width=l,this.height=d,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}}getDash(l,d){let v=l.join(\",\")+String(d);return this.dashEntry[v]||(this.dashEntry[v]=this.addDash(l,d)),this.dashEntry[v]}getDashRanges(l,d,v){let b=[],M=l.length%2==1?-l[l.length-1]*v:0,O=l[0]*v,B=!0;b.push({left:M,right:O,isDash:B,zeroLength:l[0]===0});let U=l[0];for(let W=1;W<l.length;W++){B=!B;let Z=l[W];M=U*v,U+=Z,O=U*v,b.push({left:M,right:O,isDash:B,zeroLength:Z===0})}return b}addRoundDash(l,d,v){let b=d/2;for(let M=-v;M<=v;M++){let O=this.width*(this.nextRow+v+M),B=0,U=l[B];for(let W=0;W<this.width;W++){W/U.right>1&&(U=l[++B]);let Z=Math.abs(W-U.left),$=Math.abs(W-U.right),st=Math.min(Z,$),At,pt=M/v*(b+1);if(U.isDash){let yt=b-Math.abs(pt);At=Math.sqrt(st*st+yt*yt)}else At=b-Math.sqrt(st*st+pt*pt);this.data[O+W]=Math.max(0,Math.min(255,At+128))}}}addRegularDash(l){for(let B=l.length-1;B>=0;--B){let U=l[B],W=l[B+1];U.zeroLength?l.splice(B,1):W&&W.isDash===U.isDash&&(W.left=U.left,l.splice(B,1))}let d=l[0],v=l[l.length-1];d.isDash===v.isDash&&(d.left=v.left-this.width,v.right=d.right+this.width);let b=this.width*this.nextRow,M=0,O=l[M];for(let B=0;B<this.width;B++){B/O.right>1&&(O=l[++M]);let U=Math.abs(B-O.left),W=Math.abs(B-O.right),Z=Math.min(U,W);this.data[b+B]=Math.max(0,Math.min(255,(O.isDash?Z:-Z)+128))}}addDash(l,d){let v=d?7:0,b=2*v+1;if(this.nextRow+b>this.height)return n.w(\"LineAtlas out of space\"),null;let M=0;for(let B=0;B<l.length;B++)M+=l[B];if(M!==0){let B=this.width/M,U=this.getDashRanges(l,this.width,B);d?this.addRoundDash(U,B,v):this.addRegularDash(U)}let O={y:(this.nextRow+v+.5)/this.height,height:2*v/this.height,width:M};return this.nextRow+=b,this.dirty=!0,O}bind(l){let d=l.gl;this.texture?(d.bindTexture(d.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,d.texSubImage2D(d.TEXTURE_2D,0,0,0,this.width,this.height,d.ALPHA,d.UNSIGNED_BYTE,this.data))):(this.texture=d.createTexture(),d.bindTexture(d.TEXTURE_2D,this.texture),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.REPEAT),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.REPEAT),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR),d.texImage2D(d.TEXTURE_2D,0,d.ALPHA,this.width,this.height,0,d.ALPHA,d.UNSIGNED_BYTE,this.data))}}class ih{constructor(l,d,v){this.workerPool=l,this.actors=[],this.currentActor=0,this.id=v;let b=this.workerPool.acquire(v);for(let M=0;M<b.length;M++){let O=new n.C(b[M],d,v);O.name=`Worker ${M}`,this.actors.push(O)}if(!this.actors.length)throw new Error(\"No actors found\")}broadcast(l,d,v){n.o(this.actors,(b,M)=>{b.send(l,d,M)},v=v||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(l=!0){this.actors.forEach(d=>{d.remove()}),this.actors=[],l&&this.workerPool.release(this.id)}}function Uo(T,l,d){let v=function(b,M){if(b)return d(b);if(M){let O=n.F(n.e(M,T),[\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\"]);M.vector_layers&&(O.vectorLayers=M.vector_layers,O.vectorLayerIds=O.vectorLayers.map(B=>B.id)),d(null,O)}};return T.url?n.f(l.transformRequest(T.url,Q.Source),v):n.h.frame(()=>v(null,T))}class Si{constructor(l,d){l&&(d?this.setSouthWest(l).setNorthEast(d):Array.isArray(l)&&(l.length===4?this.setSouthWest([l[0],l[1]]).setNorthEast([l[2],l[3]]):this.setSouthWest(l[0]).setNorthEast(l[1])))}setNorthEast(l){return this._ne=l instanceof n.L?new n.L(l.lng,l.lat):n.L.convert(l),this}setSouthWest(l){return this._sw=l instanceof n.L?new n.L(l.lng,l.lat):n.L.convert(l),this}extend(l){let d=this._sw,v=this._ne,b,M;if(l instanceof n.L)b=l,M=l;else{if(!(l instanceof Si))return Array.isArray(l)?l.length===4||l.every(Array.isArray)?this.extend(Si.convert(l)):this.extend(n.L.convert(l)):l&&(\"lng\"in l||\"lon\"in l)&&\"lat\"in l?this.extend(n.L.convert(l)):this;if(b=l._sw,M=l._ne,!b||!M)return this}return d||v?(d.lng=Math.min(b.lng,d.lng),d.lat=Math.min(b.lat,d.lat),v.lng=Math.max(M.lng,v.lng),v.lat=Math.max(M.lat,v.lat)):(this._sw=new n.L(b.lng,b.lat),this._ne=new n.L(M.lng,M.lat)),this}getCenter(){return new n.L((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new n.L(this.getWest(),this.getNorth())}getSouthEast(){return new n.L(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(l){let{lng:d,lat:v}=n.L.convert(l),b=this._sw.lng<=d&&d<=this._ne.lng;return this._sw.lng>this._ne.lng&&(b=this._sw.lng>=d&&d>=this._ne.lng),this._sw.lat<=v&&v<=this._ne.lat&&b}static convert(l){return l instanceof Si?l:l&&new Si(l)}static fromLngLat(l,d=0){let v=360*d/40075017,b=v/Math.cos(Math.PI/180*l.lat);return new Si(new n.L(l.lng-b,l.lat-v),new n.L(l.lng+b,l.lat+v))}}class Ns{constructor(l,d,v){this.bounds=Si.convert(this.validateBounds(l)),this.minzoom=d||0,this.maxzoom=v||24}validateBounds(l){return Array.isArray(l)&&l.length===4?[Math.max(-180,l[0]),Math.max(-90,l[1]),Math.min(180,l[2]),Math.min(90,l[3])]:[-180,-90,180,90]}contains(l){let d=Math.pow(2,l.z),v=Math.floor(n.G(this.bounds.getWest())*d),b=Math.floor(n.H(this.bounds.getNorth())*d),M=Math.ceil(n.G(this.bounds.getEast())*d),O=Math.ceil(n.H(this.bounds.getSouth())*d);return l.x>=v&&l.x<M&&l.y>=b&&l.y<O}}class ll extends n.E{constructor(l,d,v,b){if(super(),this.load=()=>{this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=Uo(this._options,this.map._requestManager,(M,O)=>{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),M?this.fire(new n.j(M)):O&&(n.e(this,O),O.bounds&&(this.tileBounds=new Ns(O.bounds,this.minzoom,this.maxzoom)),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})},this.serialize=()=>n.e({},this._options),this.id=l,this.dispatcher=v,this.type=\"vector\",this.minzoom=0,this.maxzoom=22,this.scheme=\"xyz\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,n.e(this,n.F(d,[\"url\",\"scheme\",\"tileSize\",\"promoteId\"])),this._options=n.e({type:\"vector\"},d),this._collectResourceTiming=d.collectResourceTiming,this.tileSize!==512)throw new Error(\"vector tile sources must have a tileSize of 512\");this.setEventedParent(b)}loaded(){return this._loaded}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}onAdd(l){this.map=l,this.load()}setSourceProperty(l){this._tileJSONRequest&&this._tileJSONRequest.cancel(),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}setUrl(l){return this.setSourceProperty(()=>{this.url=l,this._options.url=l}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),b={request:this.map._requestManager.transformRequest(v,Q.Tile),uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,tileSize:this.tileSize*l.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function M(O,B){return delete l.request,l.aborted?d(null):O&&O.status!==404?d(O):(B&&B.resourceTiming&&(l.resourceTiming=B.resourceTiming),this.map._refreshExpiredTiles&&B&&l.setExpiryData(B),l.loadVectorData(B,this.map.painter),d(null),void(l.reloadCallback&&(this.loadTile(l,l.reloadCallback),l.reloadCallback=null)))}b.request.collectResourceTiming=this._collectResourceTiming,l.actor&&l.state!==\"expired\"?l.state===\"loading\"?l.reloadCallback=d:l.request=l.actor.send(\"reloadTile\",b,M.bind(this)):(l.actor=this.dispatcher.getActor(),l.request=l.actor.send(\"loadTile\",b,M.bind(this)))}abortTile(l){l.request&&(l.request.cancel(),delete l.request),l.actor&&l.actor.send(\"abortTile\",{uid:l.uid,type:this.type,source:this.id},void 0)}unloadTile(l){l.unloadVectorData(),l.actor&&l.actor.send(\"removeTile\",{uid:l.uid,type:this.type,source:this.id},void 0)}hasTransition(){return!1}}class kc extends n.E{constructor(l,d,v,b){super(),this.id=l,this.dispatcher=v,this.setEventedParent(b),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=n.e({type:\"raster\"},d),n.e(this,n.F(d,[\"url\",\"scheme\",\"tileSize\"]))}load(){this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=Uo(this._options,this.map._requestManager,(l,d)=>{this._tileJSONRequest=null,this._loaded=!0,l?this.fire(new n.j(l)):d&&(n.e(this,d),d.bounds&&(this.tileBounds=new Ns(d.bounds,this.minzoom,this.maxzoom)),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})))})}loaded(){return this._loaded}onAdd(l){this.map=l,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}setSourceProperty(l){this._tileJSONRequest&&this._tileJSONRequest.cancel(),l(),this.load()}setTiles(l){return this.setSourceProperty(()=>{this._options.tiles=l}),this}serialize(){return n.e({},this._options)}hasTile(l){return!this.tileBounds||this.tileBounds.contains(l.canonical)}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);l.request=j.getImage(this.map._requestManager.transformRequest(v,Q.Tile),(b,M,O)=>{if(delete l.request,l.aborted)l.state=\"unloaded\",d(null);else if(b)l.state=\"errored\",d(b);else if(M){this.map._refreshExpiredTiles&&O&&l.setExpiryData(O);let B=this.map.painter.context,U=B.gl;l.texture=this.map.painter.getTileTexture(M.width),l.texture?l.texture.update(M,{useMipmap:!0}):(l.texture=new qt(B,M,U.RGBA,{useMipmap:!0}),l.texture.bind(U.LINEAR,U.CLAMP_TO_EDGE,U.LINEAR_MIPMAP_NEAREST),B.extTextureFilterAnisotropic&&U.texParameterf(U.TEXTURE_2D,B.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,B.extTextureFilterAnisotropicMax)),l.state=\"loaded\",d(null)}},this.map._refreshExpiredTiles)}abortTile(l,d){l.request&&(l.request.cancel(),delete l.request),d()}unloadTile(l,d){l.texture&&this.map.painter.saveTileTexture(l.texture),d()}hasTransition(){return!1}}class Rc extends kc{constructor(l,d,v,b){super(l,d,v,b),this.type=\"raster-dem\",this.maxzoom=22,this._options=n.e({type:\"raster-dem\"},d),this.encoding=d.encoding||\"mapbox\",this.redFactor=d.redFactor,this.greenFactor=d.greenFactor,this.blueFactor=d.blueFactor,this.baseShift=d.baseShift}loadTile(l,d){let v=l.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),b=this.map._requestManager.transformRequest(v,Q.Tile);function M(O,B){O&&(l.state=\"errored\",d(O)),B&&(l.dem=B,l.needsHillshadePrepare=!0,l.needsTerrainPrepare=!0,l.state=\"loaded\",d(null))}l.neighboringTiles=this._getNeighboringTiles(l.tileID),l.request=j.getImage(b,(O,B,U)=>n._(this,void 0,void 0,function*(){if(delete l.request,l.aborted)l.state=\"unloaded\",d(null);else if(O)l.state=\"errored\",d(O);else if(B){this.map._refreshExpiredTiles&&l.setExpiryData(U);let W=n.a(B)&&n.J()?B:yield function($){return n._(this,void 0,void 0,function*(){if(typeof VideoFrame<\"u\"&&n.K()){let st=$.width+2,At=$.height+2;try{return new n.R({width:st,height:At},yield n.M($,-1,-1,st,At))}catch{}}return n.h.getImageData($,1)})}(B),Z={uid:l.uid,coord:l.tileID,source:this.id,rawImageData:W,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};l.actor&&l.state!==\"expired\"||(l.actor=this.dispatcher.getActor(),l.actor.send(\"loadDEMTile\",Z,M))}}),this.map._refreshExpiredTiles)}_getNeighboringTiles(l){let d=l.canonical,v=Math.pow(2,d.z),b=(d.x-1+v)%v,M=d.x===0?l.wrap-1:l.wrap,O=(d.x+1+v)%v,B=d.x+1===v?l.wrap+1:l.wrap,U={};return U[new n.O(l.overscaledZ,M,d.z,b,d.y).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y).key]={backfilled:!1},d.y>0&&(U[new n.O(l.overscaledZ,M,d.z,b,d.y-1).key]={backfilled:!1},U[new n.O(l.overscaledZ,l.wrap,d.z,d.x,d.y-1).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y-1).key]={backfilled:!1}),d.y+1<v&&(U[new n.O(l.overscaledZ,M,d.z,b,d.y+1).key]={backfilled:!1},U[new n.O(l.overscaledZ,l.wrap,d.z,d.x,d.y+1).key]={backfilled:!1},U[new n.O(l.overscaledZ,B,d.z,O,d.y+1).key]={backfilled:!1}),U}unloadTile(l){l.demTexture&&this.map.painter.saveTileTexture(l.demTexture),l.fbo&&(l.fbo.destroy(),delete l.fbo),l.dem&&delete l.dem,delete l.neighboringTiles,l.state=\"unloaded\",l.actor&&l.actor.send(\"removeDEMTile\",{uid:l.uid,source:this.id})}}class Xi extends n.E{constructor(l,d,v,b){super(),this.load=()=>{this._updateWorkerData()},this.serialize=()=>n.e({},this._options,{type:this.type,data:this._data}),this.id=l,this.type=\"geojson\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=v.getActor(),this.setEventedParent(b),this._data=d.data,this._options=n.e({},d),this._collectResourceTiming=d.collectResourceTiming,d.maxzoom!==void 0&&(this.maxzoom=d.maxzoom),d.type&&(this.type=d.type),d.attribution&&(this.attribution=d.attribution),this.promoteId=d.promoteId;let M=n.N/this.tileSize;this.workerOptions=n.e({source:this.id,cluster:d.cluster||!1,geojsonVtOptions:{buffer:(d.buffer!==void 0?d.buffer:128)*M,tolerance:(d.tolerance!==void 0?d.tolerance:.375)*M,extent:n.N,maxZoom:this.maxzoom,lineMetrics:d.lineMetrics||!1,generateId:d.generateId||!1},superclusterOptions:{maxZoom:d.clusterMaxZoom!==void 0?d.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,d.clusterMinPoints||2),extent:n.N,radius:(d.clusterRadius||50)*M,log:!1,generateId:d.generateId||!1},clusterProperties:d.clusterProperties,filter:d.filter},d.workerOptions),typeof this.promoteId==\"string\"&&(this.workerOptions.promoteId=this.promoteId)}onAdd(l){this.map=l,this.load()}setData(l){return this._data=l,this._updateWorkerData(),this}updateData(l){return this._updateWorkerData(l),this}setClusterOptions(l){return this.workerOptions.cluster=l.cluster,l&&(l.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=l.clusterRadius),l.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=l.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(l,d){return this.actor.send(\"geojson.getClusterExpansionZoom\",{clusterId:l,source:this.id},d),this}getClusterChildren(l,d){return this.actor.send(\"geojson.getClusterChildren\",{clusterId:l,source:this.id},d),this}getClusterLeaves(l,d,v,b){return this.actor.send(\"geojson.getClusterLeaves\",{source:this.id,clusterId:l,limit:d,offset:v},b),this}_updateWorkerData(l){let d=n.e({},this.workerOptions);l?d.dataDiff=l:typeof this._data==\"string\"?(d.request=this.map._requestManager.transformRequest(n.h.resolveURL(this._data),Q.Source),d.request.collectResourceTiming=this._collectResourceTiming):d.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this.actor.send(`${this.type}.loadData`,d,(v,b)=>{if(this._pendingLoads--,this._removed||b&&b.abandoned)return void this.fire(new n.k(\"dataabort\",{dataType:\"source\"}));let M=null;if(b&&b.resourceTiming&&b.resourceTiming[this.id]&&(M=b.resourceTiming[this.id].slice(0)),v)return void this.fire(new n.j(v));let O={dataType:\"source\"};this._collectResourceTiming&&M&&M.length>0&&n.e(O,{resourceTiming:M}),this.fire(new n.k(\"data\",Object.assign(Object.assign({},O),{sourceDataType:\"metadata\"}))),this.fire(new n.k(\"data\",Object.assign(Object.assign({},O),{sourceDataType:\"content\"})))})}loaded(){return this._pendingLoads===0}loadTile(l,d){let v=l.actor?\"reloadTile\":\"loadTile\";l.actor=this.actor;let b={type:this.type,uid:l.uid,tileID:l.tileID,zoom:l.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};l.request=this.actor.send(v,b,(M,O)=>(delete l.request,l.unloadVectorData(),l.aborted?d(null):M?d(M):(l.loadVectorData(O,this.map.painter,v===\"reloadTile\"),d(null))))}abortTile(l){l.request&&(l.request.cancel(),delete l.request),l.aborted=!0}unloadTile(l){l.unloadVectorData(),this.actor.send(\"removeTile\",{uid:l.uid,type:this.type,source:this.id})}onRemove(){this._removed=!0,this.actor.send(\"removeSource\",{type:this.type,source:this.id})}hasTransition(){return!1}}var Jn=n.Q([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);class ki extends n.E{constructor(l,d,v,b){super(),this.load=(M,O)=>{this._loaded=!1,this.fire(new n.k(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,this._request=j.getImage(this.map._requestManager.transformRequest(this.url,Q.Image),(B,U)=>{this._request=null,this._loaded=!0,B?this.fire(new n.j(B)):U&&(this.image=U,M&&(this.coordinates=M),O&&O(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||!this.image)return;let M=this.map.painter.context,O=M.gl;this.boundsBuffer||(this.boundsBuffer=M.createVertexBuffer(this._boundsArray,Jn.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture||(this.texture=new qt(M,this.image,O.RGBA),this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE));let B=!1;for(let U in this.tiles){let W=this.tiles[U];W.state!==\"loaded\"&&(W.state=\"loaded\",W.texture=this.texture,B=!0)}B&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"image\",url:this.options.url,coordinates:this.coordinates}),this.id=l,this.dispatcher=v,this.coordinates=d.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(b),this.options=d}loaded(){return this._loaded}updateImage(l){return l.url?(this._request&&(this._request.cancel(),this._request=null),this.options.url=l.url,this.load(l.coordinates,()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})))}onAdd(l){this.map=l,this.load()}onRemove(){this._request&&(this._request.cancel(),this._request=null)}setCoordinates(l){this.coordinates=l;let d=l.map(n.U.fromLngLat);this.tileID=function(b){let M=1/0,O=1/0,B=-1/0,U=-1/0;for(let st of b)M=Math.min(M,st.x),O=Math.min(O,st.y),B=Math.max(B,st.x),U=Math.max(U,st.y);let W=Math.max(B-M,U-O),Z=Math.max(0,Math.floor(-Math.log(W)/Math.LN2)),$=Math.pow(2,Z);return new n.W(Z,Math.floor((M+B)/2*$),Math.floor((O+U)/2*$))}(d),this.minzoom=this.maxzoom=this.tileID.z;let v=d.map(b=>this.tileID.getTilePoint(b)._round());return this._boundsArray=new n.V,this._boundsArray.emplaceBack(v[0].x,v[0].y,0,0),this._boundsArray.emplaceBack(v[1].x,v[1].y,n.N,0),this._boundsArray.emplaceBack(v[3].x,v[3].y,0,n.N),this._boundsArray.emplaceBack(v[2].x,v[2].y,n.N,n.N),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this}loadTile(l,d){this.tileID&&this.tileID.equals(l.tileID.canonical)?(this.tiles[String(l.tileID.wrap)]=l,l.buckets={},d(null)):(l.state=\"errored\",d(null))}hasTransition(){return!1}}class ts extends ki{constructor(l,d,v,b){super(l,d,v,b),this.load=()=>{this._loaded=!1;let M=this.options;this.urls=[];for(let O of M.urls)this.urls.push(this.map._requestManager.transformRequest(O,Q.Source).url);n.X(this.urls,(O,B)=>{this._loaded=!0,O?this.fire(new n.j(O)):B&&(this.video=B,this.video.loop=!0,this.video.addEventListener(\"playing\",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading())})},this.prepare=()=>{if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let M=this.map.painter.context,O=M.gl;this.boundsBuffer||(this.boundsBuffer=M.createVertexBuffer(this._boundsArray,Jn.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE),O.texSubImage2D(O.TEXTURE_2D,0,0,0,O.RGBA,O.UNSIGNED_BYTE,this.video)):(this.texture=new qt(M,this.video,O.RGBA),this.texture.bind(O.LINEAR,O.CLAMP_TO_EDGE));let B=!1;for(let U in this.tiles){let W=this.tiles[U];W.state!==\"loaded\"&&(W.state=\"loaded\",W.texture=this.texture,B=!0)}B&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"video\",urls:this.urls,coordinates:this.coordinates}),this.roundZoom=!0,this.type=\"video\",this.options=d}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(l){if(this.video){let d=this.video.seekable;l<d.start(0)||l>d.end(0)?this.fire(new n.j(new n.Y(`sources.${this.id}`,null,`Playback for this video can be set only between the ${d.start(0)} and ${d.end(0)}-second mark.`))):this.video.currentTime=l}}getVideo(){return this.video}onAdd(l){this.map||(this.map=l,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}hasTransition(){return this.video&&!this.video.paused}}class Vo extends ki{constructor(l,d,v,b){super(l,d,v,b),this.load=()=>{this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new n.j(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},this.prepare=()=>{let M=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,M=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,M=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let O=this.map.painter.context,B=O.gl;this.boundsBuffer||(this.boundsBuffer=O.createVertexBuffer(this._boundsArray,Jn.members)),this.boundsSegments||(this.boundsSegments=n.S.simpleSegment(0,0,4,2)),this.texture?(M||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new qt(O,this.canvas,B.RGBA,{premultiply:!0});let U=!1;for(let W in this.tiles){let Z=this.tiles[W];Z.state!==\"loaded\"&&(Z.state=\"loaded\",Z.texture=this.texture,U=!0)}U&&this.fire(new n.k(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}))},this.serialize=()=>({type:\"canvas\",coordinates:this.coordinates}),d.coordinates?Array.isArray(d.coordinates)&&d.coordinates.length===4&&!d.coordinates.some(M=>!Array.isArray(M)||M.length!==2||M.some(O=>typeof O!=\"number\"))||this.fire(new n.j(new n.Y(`sources.${l}`,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new n.j(new n.Y(`sources.${l}`,null,'missing required property \"coordinates\"'))),d.animate&&typeof d.animate!=\"boolean\"&&this.fire(new n.j(new n.Y(`sources.${l}`,null,'optional \"animate\" property must be a boolean value'))),d.canvas?typeof d.canvas==\"string\"||d.canvas instanceof HTMLCanvasElement||this.fire(new n.j(new n.Y(`sources.${l}`,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new n.j(new n.Y(`sources.${l}`,null,'missing required property \"canvas\"'))),this.options=d,this.animate=d.animate===void 0||d.animate}getCanvas(){return this.canvas}onAdd(l){this.map=l,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let l of[this.canvas.width,this.canvas.height])if(isNaN(l)||l<=0)return!0;return!1}}let cl={},xo=T=>{switch(T){case\"geojson\":return Xi;case\"image\":return ki;case\"raster\":return kc;case\"raster-dem\":return Rc;case\"vector\":return ll;case\"video\":return ts;case\"canvas\":return Vo}return cl[T]};function Pa(T,l){let d=n.Z();return n.$(d,d,[1,1,0]),n.a0(d,d,[.5*T.width,.5*T.height,1]),n.a1(d,d,T.calculatePosMatrix(l.toUnwrapped()))}function na(T,l,d,v,b,M){let O=function($,st,At){if($)for(let pt of $){let yt=st[pt];if(yt&&yt.source===At&&yt.type===\"fill-extrusion\")return!0}else for(let pt in st){let yt=st[pt];if(yt.source===At&&yt.type===\"fill-extrusion\")return!0}return!1}(b&&b.layers,l,T.id),B=M.maxPitchScaleFactor(),U=T.tilesIn(v,B,O);U.sort(as);let W=[];for(let $ of U)W.push({wrappedTileID:$.tileID.wrapped().key,queryResults:$.tile.queryRenderedFeatures(l,d,T._state,$.queryGeometry,$.cameraQueryGeometry,$.scale,b,M,B,Pa(T.transform,$.tileID))});let Z=function($){let st={},At={};for(let pt of $){let yt=pt.queryResults,dt=pt.wrappedTileID,Ft=At[dt]=At[dt]||{};for(let Ht in yt){let St=yt[Ht],Bt=Ft[Ht]=Ft[Ht]||{},Qt=st[Ht]=st[Ht]||[];for(let $t of St)Bt[$t.featureIndex]||(Bt[$t.featureIndex]=!0,Qt.push($t))}}return st}(W);for(let $ in Z)Z[$].forEach(st=>{let At=st.feature,pt=T.getFeatureState(At.layer[\"source-layer\"],At.id);At.source=At.layer.source,At.layer[\"source-layer\"]&&(At.sourceLayer=At.layer[\"source-layer\"]),At.state=pt});return Z}function as(T,l){let d=T.tileID,v=l.tileID;return d.overscaledZ-v.overscaledZ||d.canonical.y-v.canonical.y||d.wrap-v.wrap||d.canonical.x-v.canonical.x}class ao{constructor(l,d){this.timeAdded=0,this.fadeEndTime=0,this.tileID=l,this.uid=n.a2(),this.uses=0,this.tileSize=d,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state=\"loading\"}registerFadeDuration(l){let d=l+this.timeAdded;d<this.fadeEndTime||(this.fadeEndTime=d)}wasRequested(){return this.state===\"errored\"||this.state===\"loaded\"||this.state===\"reloading\"}clearTextures(l){this.demTexture&&l.saveTileTexture(this.demTexture),this.demTexture=null}loadVectorData(l,d,v){if(this.hasData()&&this.unloadVectorData(),this.state=\"loaded\",l){l.featureIndex&&(this.latestFeatureIndex=l.featureIndex,l.rawTileData?(this.latestRawTileData=l.rawTileData,this.latestFeatureIndex.rawTileData=l.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=l.collisionBoxArray,this.buckets=function(b,M){let O={};if(!M)return O;for(let B of b){let U=B.layerIds.map(W=>M.getLayer(W)).filter(Boolean);if(U.length!==0){B.layers=U,B.stateDependentLayerIds&&(B.stateDependentLayers=B.stateDependentLayerIds.map(W=>U.filter(Z=>Z.id===W)[0]));for(let W of U)O[W.id]=B}}return O}(l.buckets,d.style),this.hasSymbolBuckets=!1;for(let b in this.buckets){let M=this.buckets[b];if(M instanceof n.a4){if(this.hasSymbolBuckets=!0,!v)break;M.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let b in this.buckets){let M=this.buckets[b];if(M instanceof n.a4&&M.hasRTLText){this.hasRTLText=!0,n.a5();break}}this.queryPadding=0;for(let b in this.buckets){let M=this.buckets[b];this.queryPadding=Math.max(this.queryPadding,d.style.getLayer(b).queryRadius(M))}l.imageAtlas&&(this.imageAtlas=l.imageAtlas),l.glyphAtlasImage&&(this.glyphAtlasImage=l.glyphAtlasImage)}else this.collisionBoxArray=new n.a3}unloadVectorData(){for(let l in this.buckets)this.buckets[l].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\"unloaded\"}getBucket(l){return this.buckets[l.id]}upload(l){for(let v in this.buckets){let b=this.buckets[v];b.uploadPending()&&b.upload(l)}let d=l.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new qt(l,this.imageAtlas.image,d.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new qt(l,this.glyphAtlasImage,d.ALPHA),this.glyphAtlasImage=null)}prepare(l){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(l,this.imageAtlasTexture)}queryRenderedFeatures(l,d,v,b,M,O,B,U,W,Z){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:b,cameraQueryGeometry:M,scale:O,tileSize:this.tileSize,pixelPosMatrix:Z,transform:U,params:B,queryPadding:this.queryPadding*W},l,d,v):{}}querySourceFeatures(l,d){let v=this.latestFeatureIndex;if(!v||!v.rawTileData)return;let b=v.loadVTLayers(),M=d&&d.sourceLayer?d.sourceLayer:\"\",O=b._geojsonTileLayer||b[M];if(!O)return;let B=n.a6(d&&d.filter),{z:U,x:W,y:Z}=this.tileID.canonical,$={z:U,x:W,y:Z};for(let st=0;st<O.length;st++){let At=O.feature(st);if(B.needGeometry){let dt=n.a7(At,!0);if(!B.filter(new n.a8(this.tileID.overscaledZ),dt,this.tileID.canonical))continue}else if(!B.filter(new n.a8(this.tileID.overscaledZ),At))continue;let pt=v.getId(At,M),yt=new n.a9(At,U,W,Z,pt);yt.tile=$,l.push(yt)}}hasData(){return this.state===\"loaded\"||this.state===\"reloading\"||this.state===\"expired\"}patternsLoaded(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(l){let d=this.expirationTime;if(l.cacheControl){let v=n.aa(l.cacheControl);v[\"max-age\"]&&(this.expirationTime=Date.now()+1e3*v[\"max-age\"])}else l.expires&&(this.expirationTime=new Date(l.expires).getTime());if(this.expirationTime){let v=Date.now(),b=!1;if(this.expirationTime>v)b=!1;else if(d)if(this.expirationTime<d)b=!0;else{let M=this.expirationTime-d;M?this.expirationTime=v+Math.max(M,3e4):b=!0}else b=!0;b?(this.expiredRequestCount++,this.state=\"expired\"):this.expiredRequestCount=0}}getExpiryTimeout(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-new Date().getTime(),Math.pow(2,31)-1)}setFeatureState(l,d){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData||Object.keys(l).length===0)return;let v=this.latestFeatureIndex.loadVTLayers();for(let b in this.buckets){if(!d.style.hasLayer(b))continue;let M=this.buckets[b],O=M.layers[0].sourceLayer||\"_geojsonTileLayer\",B=v[O],U=l[O];if(!B||!U||Object.keys(U).length===0)continue;M.update(U,B,this.imageAtlas&&this.imageAtlas.patternPositions||{});let W=d&&d.style&&d.style.getLayer(b);W&&(this.queryPadding=Math.max(this.queryPadding,W.queryRadius(M)))}}holdingForFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<n.h.now()}clearFadeHold(){this.symbolFadeHoldUntil=void 0}setHoldDuration(l){this.symbolFadeHoldUntil=n.h.now()+l}setDependencies(l,d){let v={};for(let b of d)v[b]=!0;this.dependencies[l]=v}hasDependency(l,d){for(let v of l){let b=this.dependencies[v];if(b){for(let M of d)if(b[M])return!0}}return!1}}class Nl{constructor(l,d){this.max=l,this.onRemove=d,this.reset()}reset(){for(let l in this.data)for(let d of this.data[l])d.timeout&&clearTimeout(d.timeout),this.onRemove(d.value);return this.data={},this.order=[],this}add(l,d,v){let b=l.wrapped().key;this.data[b]===void 0&&(this.data[b]=[]);let M={value:d,timeout:void 0};if(v!==void 0&&(M.timeout=setTimeout(()=>{this.remove(l,M)},v)),this.data[b].push(M),this.order.push(b),this.order.length>this.max){let O=this._getAndRemoveByKey(this.order[0]);O&&this.onRemove(O)}return this}has(l){return l.wrapped().key in this.data}getAndRemove(l){return this.has(l)?this._getAndRemoveByKey(l.wrapped().key):null}_getAndRemoveByKey(l){let d=this.data[l].shift();return d.timeout&&clearTimeout(d.timeout),this.data[l].length===0&&delete this.data[l],this.order.splice(this.order.indexOf(l),1),d.value}getByKey(l){let d=this.data[l];return d?d[0].value:null}get(l){return this.has(l)?this.data[l.wrapped().key][0].value:null}remove(l,d){if(!this.has(l))return this;let v=l.wrapped().key,b=d===void 0?0:this.data[v].indexOf(d),M=this.data[v][b];return this.data[v].splice(b,1),M.timeout&&clearTimeout(M.timeout),this.data[v].length===0&&delete this.data[v],this.onRemove(M.value),this.order.splice(this.order.indexOf(v),1),this}setMaxSize(l){for(this.max=l;this.order.length>this.max;){let d=this._getAndRemoveByKey(this.order[0]);d&&this.onRemove(d)}return this}filter(l){let d=[];for(let v in this.data)for(let b of this.data[v])l(b.value)||d.push(b);for(let v of d)this.remove(v.value.tileID,v)}}class ee{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(l,d,v){let b=String(d);if(this.stateChanges[l]=this.stateChanges[l]||{},this.stateChanges[l][b]=this.stateChanges[l][b]||{},n.e(this.stateChanges[l][b],v),this.deletedStates[l]===null){this.deletedStates[l]={};for(let M in this.state[l])M!==b&&(this.deletedStates[l][M]=null)}else if(this.deletedStates[l]&&this.deletedStates[l][b]===null){this.deletedStates[l][b]={};for(let M in this.state[l][b])v[M]||(this.deletedStates[l][b][M]=null)}else for(let M in v)this.deletedStates[l]&&this.deletedStates[l][b]&&this.deletedStates[l][b][M]===null&&delete this.deletedStates[l][b][M]}removeFeatureState(l,d,v){if(this.deletedStates[l]===null)return;let b=String(d);if(this.deletedStates[l]=this.deletedStates[l]||{},v&&d!==void 0)this.deletedStates[l][b]!==null&&(this.deletedStates[l][b]=this.deletedStates[l][b]||{},this.deletedStates[l][b][v]=null);else if(d!==void 0)if(this.stateChanges[l]&&this.stateChanges[l][b])for(v in this.deletedStates[l][b]={},this.stateChanges[l][b])this.deletedStates[l][b][v]=null;else this.deletedStates[l][b]=null;else this.deletedStates[l]=null}getState(l,d){let v=String(d),b=n.e({},(this.state[l]||{})[v],(this.stateChanges[l]||{})[v]);if(this.deletedStates[l]===null)return{};if(this.deletedStates[l]){let M=this.deletedStates[l][d];if(M===null)return{};for(let O in M)delete b[O]}return b}initializeTileState(l,d){l.setFeatureState(this.state,d)}coalesceChanges(l,d){let v={};for(let b in this.stateChanges){this.state[b]=this.state[b]||{};let M={};for(let O in this.stateChanges[b])this.state[b][O]||(this.state[b][O]={}),n.e(this.state[b][O],this.stateChanges[b][O]),M[O]=this.state[b][O];v[b]=M}for(let b in this.deletedStates){this.state[b]=this.state[b]||{};let M={};if(this.deletedStates[b]===null)for(let O in this.state[b])M[O]={},this.state[b][O]={};else for(let O in this.deletedStates[b]){if(this.deletedStates[b][O]===null)this.state[b][O]={};else for(let B of Object.keys(this.deletedStates[b][O]))delete this.state[b][O][B];M[O]=this.state[b][O]}v[b]=v[b]||{},n.e(v[b],M)}if(this.stateChanges={},this.deletedStates={},Object.keys(v).length!==0)for(let b in l)l[b].setFeatureState(v,d)}}class ls extends n.E{constructor(l,d,v){super(),this.id=l,this.dispatcher=v,this.on(\"data\",b=>{b.dataType===\"source\"&&b.sourceDataType===\"metadata\"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&b.dataType===\"source\"&&b.sourceDataType===\"content\"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}),this.on(\"dataloading\",()=>{this._sourceErrored=!1}),this.on(\"error\",()=>{this._sourceErrored=this._source.loaded()}),this._source=((b,M,O,B)=>{let U=new(xo(M.type))(b,M,O,B);if(U.id!==b)throw new Error(`Expected Source id to be ${b} instead of ${U.id}`);return U})(l,d,v,this),this._tiles={},this._cache=new Nl(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new ee,this._didEmitContent=!1,this._updated=!1}onAdd(l){this.map=l,this._maxTileCacheSize=l?l._maxTileCacheSize:null,this._maxTileCacheZoomLevels=l?l._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(l)}onRemove(l){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(l)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(let l in this._tiles){let d=this._tiles[l];if(d.state!==\"loaded\"&&d.state!==\"errored\")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let l=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,l&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(l,d){return this._source.loadTile(l,d)}_unloadTile(l){if(this._source.unloadTile)return this._source.unloadTile(l,()=>{})}_abortTile(l){this._source.abortTile&&this._source.abortTile(l,()=>{}),this._source.fire(new n.k(\"dataabort\",{tile:l,coord:l.tileID,dataType:\"source\"}))}serialize(){return this._source.serialize()}prepare(l){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(let d in this._tiles){let v=this._tiles[d];v.upload(l),v.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(l=>l.tileID).sort(mn).map(l=>l.key)}getRenderableIds(l){let d=[];for(let v in this._tiles)this._isIdRenderable(v,l)&&d.push(this._tiles[v]);return l?d.sort((v,b)=>{let M=v.tileID,O=b.tileID,B=new n.P(M.canonical.x,M.canonical.y)._rotate(this.transform.angle),U=new n.P(O.canonical.x,O.canonical.y)._rotate(this.transform.angle);return M.overscaledZ-O.overscaledZ||U.y-B.y||U.x-B.x}).map(v=>v.tileID.key):d.map(v=>v.tileID).sort(mn).map(v=>v.key)}hasRenderableParent(l){let d=this.findLoadedParent(l,0);return!!d&&this._isIdRenderable(d.tileID.key)}_isIdRenderable(l,d){return this._tiles[l]&&this._tiles[l].hasData()&&!this._coveredTiles[l]&&(d||!this._tiles[l].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(let l in this._tiles)this._tiles[l].state!==\"errored\"&&this._reloadTile(l,\"reloading\")}}_reloadTile(l,d){let v=this._tiles[l];v&&(v.state!==\"loading\"&&(v.state=d),this._loadTile(v,this._tileLoaded.bind(this,v,l,d)))}_tileLoaded(l,d,v,b){if(b)return l.state=\"errored\",void(b.status!==404?this._source.fire(new n.j(b,{tile:l})):this.update(this.transform,this.terrain));l.timeAdded=n.h.now(),v===\"expired\"&&(l.refreshedUponExpiration=!0),this._setTileReloadTimer(d,l),this.getSource().type===\"raster-dem\"&&l.dem&&this._backfillDEM(l),this._state.initializeTileState(l,this.map?this.map.painter:null),l.aborted||this._source.fire(new n.k(\"data\",{dataType:\"source\",tile:l,coord:l.tileID}))}_backfillDEM(l){let d=this.getRenderableIds();for(let b=0;b<d.length;b++){let M=d[b];if(l.neighboringTiles&&l.neighboringTiles[M]){let O=this.getTileByID(M);v(l,O),v(O,l)}}function v(b,M){b.needsHillshadePrepare=!0,b.needsTerrainPrepare=!0;let O=M.tileID.canonical.x-b.tileID.canonical.x,B=M.tileID.canonical.y-b.tileID.canonical.y,U=Math.pow(2,b.tileID.canonical.z),W=M.tileID.key;O===0&&B===0||Math.abs(B)>1||(Math.abs(O)>1&&(Math.abs(O+U)===1?O+=U:Math.abs(O-U)===1&&(O-=U)),M.dem&&b.dem&&(b.dem.backfillBorder(M.dem,O,B),b.neighboringTiles&&b.neighboringTiles[W]&&(b.neighboringTiles[W].backfilled=!0)))}}getTile(l){return this.getTileByID(l.key)}getTileByID(l){return this._tiles[l]}_retainLoadedChildren(l,d,v,b){for(let M in this._tiles){let O=this._tiles[M];if(b[M]||!O.hasData()||O.tileID.overscaledZ<=d||O.tileID.overscaledZ>v)continue;let B=O.tileID;for(;O&&O.tileID.overscaledZ>d+1;){let W=O.tileID.scaledTo(O.tileID.overscaledZ-1);O=this._tiles[W.key],O&&O.hasData()&&(B=W)}let U=B;for(;U.overscaledZ>d;)if(U=U.scaledTo(U.overscaledZ-1),l[U.key]){b[B.key]=B;break}}}findLoadedParent(l,d){if(l.key in this._loadedParentTiles){let v=this._loadedParentTiles[l.key];return v&&v.tileID.overscaledZ>=d?v:null}for(let v=l.overscaledZ-1;v>=d;v--){let b=l.scaledTo(v),M=this._getLoadedTile(b);if(M)return M}}_getLoadedTile(l){let d=this._tiles[l.key];return d&&d.hasData()?d:this._cache.getByKey(l.wrapped().key)}updateCacheSize(l){let d=Math.ceil(l.width/this._source.tileSize)+1,v=Math.ceil(l.height/this._source.tileSize)+1,b=Math.floor(d*v*(this._maxTileCacheZoomLevels===null?n.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),M=typeof this._maxTileCacheSize==\"number\"?Math.min(this._maxTileCacheSize,b):b;this._cache.setMaxSize(M)}handleWrapJump(l){let d=Math.round((l-(this._prevLng===void 0?l:this._prevLng))/360);if(this._prevLng=l,d){let v={};for(let b in this._tiles){let M=this._tiles[b];M.tileID=M.tileID.unwrapTo(M.tileID.wrap+d),v[M.tileID.key]=M}this._tiles=v;for(let b in this._timers)clearTimeout(this._timers[b]),delete this._timers[b];for(let b in this._tiles)this._setTileReloadTimer(b,this._tiles[b])}}update(l,d){if(this.transform=l,this.terrain=d,!this._sourceLoaded||this._paused)return;let v;this.updateCacheSize(l),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?v=l.getVisibleUnwrappedCoordinates(this._source.tileID).map(Z=>new n.O(Z.canonical.z,Z.wrap,Z.canonical.z,Z.canonical.x,Z.canonical.y)):(v=l.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:d}),this._source.hasTile&&(v=v.filter(Z=>this._source.hasTile(Z)))):v=[];let b=l.coveringZoomLevel(this._source),M=Math.max(b-ls.maxOverzooming,this._source.minzoom),O=Math.max(b+ls.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){let Z={};for(let $ of v)if($.canonical.z>this._source.minzoom){let st=$.scaledTo($.canonical.z-1);Z[st.key]=st;let At=$.scaledTo(Math.max(this._source.minzoom,Math.min($.canonical.z,5)));Z[At.key]=At}v=v.concat(Object.values(Z))}let B=v.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,B&&this.fire(new n.k(\"data\",{sourceDataType:\"idle\",dataType:\"source\",sourceId:this.id}));let U=this._updateRetainedTiles(v,b);if(gi(this._source.type)){let Z={},$={},st=Object.keys(U),At=n.h.now();for(let pt of st){let yt=U[pt],dt=this._tiles[pt];if(!dt||dt.fadeEndTime!==0&&dt.fadeEndTime<=At)continue;let Ft=this.findLoadedParent(yt,M);Ft&&(this._addTile(Ft.tileID),Z[Ft.tileID.key]=Ft.tileID),$[pt]=yt}this._retainLoadedChildren($,b,O,U);for(let pt in Z)U[pt]||(this._coveredTiles[pt]=!0,U[pt]=Z[pt]);if(d){let pt={},yt={};for(let dt of v)this._tiles[dt.key].hasData()?pt[dt.key]=dt:yt[dt.key]=dt;for(let dt in yt){let Ft=yt[dt].children(this._source.maxzoom);this._tiles[Ft[0].key]&&this._tiles[Ft[1].key]&&this._tiles[Ft[2].key]&&this._tiles[Ft[3].key]&&(pt[Ft[0].key]=U[Ft[0].key]=Ft[0],pt[Ft[1].key]=U[Ft[1].key]=Ft[1],pt[Ft[2].key]=U[Ft[2].key]=Ft[2],pt[Ft[3].key]=U[Ft[3].key]=Ft[3],delete yt[dt])}for(let dt in yt){let Ft=this.findLoadedParent(yt[dt],this._source.minzoom);if(Ft){pt[Ft.tileID.key]=U[Ft.tileID.key]=Ft.tileID;for(let Ht in pt)pt[Ht].isChildOf(Ft.tileID)&&delete pt[Ht]}}for(let dt in this._tiles)pt[dt]||(this._coveredTiles[dt]=!0)}}for(let Z in U)this._tiles[Z].clearFadeHold();let W=n.ab(this._tiles,U);for(let Z of W){let $=this._tiles[Z];$.hasSymbolBuckets&&!$.holdingForFade()?$.setHoldDuration(this.map._fadeDuration):$.hasSymbolBuckets&&!$.symbolFadeFinished()||this._removeTile(Z)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(let l in this._tiles)this._tiles[l].holdingForFade()&&this._removeTile(l)}_updateRetainedTiles(l,d){let v={},b={},M=Math.max(d-ls.maxOverzooming,this._source.minzoom),O=Math.max(d+ls.maxUnderzooming,this._source.minzoom),B={};for(let U of l){let W=this._addTile(U);v[U.key]=U,W.hasData()||d<this._source.maxzoom&&(B[U.key]=U)}this._retainLoadedChildren(B,d,O,v);for(let U of l){let W=this._tiles[U.key];if(W.hasData())continue;if(d+1>this._source.maxzoom){let $=U.children(this._source.maxzoom)[0],st=this.getTile($);if(st&&st.hasData()){v[$.key]=$;continue}}else{let $=U.children(this._source.maxzoom);if(v[$[0].key]&&v[$[1].key]&&v[$[2].key]&&v[$[3].key])continue}let Z=W.wasRequested();for(let $=U.overscaledZ-1;$>=M;--$){let st=U.scaledTo($);if(b[st.key])break;if(b[st.key]=!0,W=this.getTile(st),!W&&Z&&(W=this._addTile(st)),W){let At=W.hasData();if((Z||At)&&(v[st.key]=st),Z=W.wasRequested(),At)break}}}return v}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(let l in this._tiles){let d=[],v,b=this._tiles[l].tileID;for(;b.overscaledZ>0;){if(b.key in this._loadedParentTiles){v=this._loadedParentTiles[b.key];break}d.push(b.key);let M=b.scaledTo(b.overscaledZ-1);if(v=this._getLoadedTile(M),v)break;b=M}for(let M of d)this._loadedParentTiles[M]=v}}_addTile(l){let d=this._tiles[l.key];if(d)return d;d=this._cache.getAndRemove(l),d&&(this._setTileReloadTimer(l.key,d),d.tileID=l,this._state.initializeTileState(d,this.map?this.map.painter:null),this._cacheTimers[l.key]&&(clearTimeout(this._cacheTimers[l.key]),delete this._cacheTimers[l.key],this._setTileReloadTimer(l.key,d)));let v=d;return d||(d=new ao(l,this._source.tileSize*l.overscaleFactor()),this._loadTile(d,this._tileLoaded.bind(this,d,l.key,d.state))),d.uses++,this._tiles[l.key]=d,v||this._source.fire(new n.k(\"dataloading\",{tile:d,coord:d.tileID,dataType:\"source\"})),d}_setTileReloadTimer(l,d){l in this._timers&&(clearTimeout(this._timers[l]),delete this._timers[l]);let v=d.getExpiryTimeout();v&&(this._timers[l]=setTimeout(()=>{this._reloadTile(l,\"expired\"),delete this._timers[l]},v))}_removeTile(l){let d=this._tiles[l];d&&(d.uses--,delete this._tiles[l],this._timers[l]&&(clearTimeout(this._timers[l]),delete this._timers[l]),d.uses>0||(d.hasData()&&d.state!==\"reloading\"?this._cache.add(d.tileID,d,d.getExpiryTimeout()):(d.aborted=!0,this._abortTile(d),this._unloadTile(d))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(let l in this._tiles)this._removeTile(l);this._cache.reset()}tilesIn(l,d,v){let b=[],M=this.transform;if(!M)return b;let O=v?M.getCameraQueryGeometry(l):l,B=l.map(pt=>M.pointCoordinate(pt,this.terrain)),U=O.map(pt=>M.pointCoordinate(pt,this.terrain)),W=this.getIds(),Z=1/0,$=1/0,st=-1/0,At=-1/0;for(let pt of U)Z=Math.min(Z,pt.x),$=Math.min($,pt.y),st=Math.max(st,pt.x),At=Math.max(At,pt.y);for(let pt=0;pt<W.length;pt++){let yt=this._tiles[W[pt]];if(yt.holdingForFade())continue;let dt=yt.tileID,Ft=Math.pow(2,M.zoom-yt.tileID.overscaledZ),Ht=d*yt.queryPadding*n.N/yt.tileSize/Ft,St=[dt.getTilePoint(new n.U(Z,$)),dt.getTilePoint(new n.U(st,At))];if(St[0].x-Ht<n.N&&St[0].y-Ht<n.N&&St[1].x+Ht>=0&&St[1].y+Ht>=0){let Bt=B.map($t=>dt.getTilePoint($t)),Qt=U.map($t=>dt.getTilePoint($t));b.push({tile:yt,tileID:dt,queryGeometry:Bt,cameraQueryGeometry:Qt,scale:Ft})}}return b}getVisibleCoordinates(l){let d=this.getRenderableIds(l).map(v=>this._tiles[v].tileID);for(let v of d)v.posMatrix=this.transform.calculatePosMatrix(v.toUnwrapped());return d}hasTransition(){if(this._source.hasTransition())return!0;if(gi(this._source.type)){let l=n.h.now();for(let d in this._tiles)if(this._tiles[d].fadeEndTime>=l)return!0}return!1}setFeatureState(l,d,v){this._state.updateState(l=l||\"_geojsonTileLayer\",d,v)}removeFeatureState(l,d,v){this._state.removeFeatureState(l=l||\"_geojsonTileLayer\",d,v)}getFeatureState(l,d){return this._state.getState(l=l||\"_geojsonTileLayer\",d)}setDependencies(l,d,v){let b=this._tiles[l];b&&b.setDependencies(d,v)}reloadTilesForDependencies(l,d){for(let v in this._tiles)this._tiles[v].hasDependency(l,d)&&this._reloadTile(v,\"reloading\");this._cache.filter(v=>!v.hasDependency(l,d))}}function mn(T,l){let d=Math.abs(2*T.wrap)-+(T.wrap<0),v=Math.abs(2*l.wrap)-+(l.wrap<0);return T.overscaledZ-l.overscaledZ||v-d||l.canonical.y-T.canonical.y||l.canonical.x-T.canonical.x}function gi(T){return T===\"raster\"||T===\"image\"||T===\"video\"}ls.maxOverzooming=10,ls.maxUnderzooming=3;let oi=\"mapboxgl_preloaded_worker_pool\";class lo{constructor(){this.active={}}acquire(l){if(!this.workers)for(this.workers=[];this.workers.length<lo.workerCount;)this.workers.push(new Worker(n.c.WORKER_URL));return this.active[l]=!0,this.workers.slice()}release(l){delete this.active[l],this.numActive()===0&&(this.workers.forEach(d=>{d.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[oi]}numActive(){return Object.keys(this.active).length}}let du=Math.floor(n.h.hardwareConcurrency/2),ul;function bo(){return ul||(ul=new lo),ul}lo.workerCount=n.ac(globalThis)?Math.max(Math.min(du,3),1):1;class hl{constructor(l,d){this.reset(l,d)}reset(l,d){this.points=l||[],this._distances=[0];for(let v=1;v<this.points.length;v++)this._distances[v]=this._distances[v-1]+this.points[v].dist(this.points[v-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(d||0,.5*this.length),this.paddedLength=this.length-2*this.padding}lerp(l){if(this.points.length===1)return this.points[0];l=n.ad(l,0,1);let d=1,v=this._distances[d],b=l*this.paddedLength+this.padding;for(;v<b&&d<this._distances.length;)v=this._distances[++d];let M=d-1,O=this._distances[M],B=v-O,U=B>0?(b-O)/B:0;return this.points[M].mult(1-U).add(this.points[d].mult(U))}}function Ia(T,l){let d=!0;return T===\"always\"||T!==\"never\"&&l!==\"never\"||(d=!1),d}class wo{constructor(l,d,v){let b=this.boxCells=[],M=this.circleCells=[];this.xCellCount=Math.ceil(l/v),this.yCellCount=Math.ceil(d/v);for(let O=0;O<this.xCellCount*this.yCellCount;O++)b.push([]),M.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=l,this.height=d,this.xScale=this.xCellCount/l,this.yScale=this.yCellCount/d,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(l,d,v,b,M){this._forEachCell(d,v,b,M,this._insertBoxCell,this.boxUid++),this.boxKeys.push(l),this.bboxes.push(d),this.bboxes.push(v),this.bboxes.push(b),this.bboxes.push(M)}insertCircle(l,d,v,b){this._forEachCell(d-b,v-b,d+b,v+b,this._insertCircleCell,this.circleUid++),this.circleKeys.push(l),this.circles.push(d),this.circles.push(v),this.circles.push(b)}_insertBoxCell(l,d,v,b,M,O){this.boxCells[M].push(O)}_insertCircleCell(l,d,v,b,M,O){this.circleCells[M].push(O)}_query(l,d,v,b,M,O,B){if(v<0||l>this.width||b<0||d>this.height)return[];let U=[];if(l<=0&&d<=0&&this.width<=v&&this.height<=b){if(M)return[{key:null,x1:l,y1:d,x2:v,y2:b}];for(let W=0;W<this.boxKeys.length;W++)U.push({key:this.boxKeys[W],x1:this.bboxes[4*W],y1:this.bboxes[4*W+1],x2:this.bboxes[4*W+2],y2:this.bboxes[4*W+3]});for(let W=0;W<this.circleKeys.length;W++){let Z=this.circles[3*W],$=this.circles[3*W+1],st=this.circles[3*W+2];U.push({key:this.circleKeys[W],x1:Z-st,y1:$-st,x2:Z+st,y2:$+st})}}else this._forEachCell(l,d,v,b,this._queryCell,U,{hitTest:M,overlapMode:O,seenUids:{box:{},circle:{}}},B);return U}query(l,d,v,b){return this._query(l,d,v,b,!1,null)}hitTest(l,d,v,b,M,O){return this._query(l,d,v,b,!0,M,O).length>0}hitTestCircle(l,d,v,b,M){let O=l-v,B=l+v,U=d-v,W=d+v;if(B<0||O>this.width||W<0||U>this.height)return!1;let Z=[];return this._forEachCell(O,U,B,W,this._queryCellCircle,Z,{hitTest:!0,overlapMode:b,circle:{x:l,y:d,radius:v},seenUids:{box:{},circle:{}}},M),Z.length>0}_queryCell(l,d,v,b,M,O,B,U){let{seenUids:W,hitTest:Z,overlapMode:$}=B,st=this.boxCells[M];if(st!==null){let pt=this.bboxes;for(let yt of st)if(!W.box[yt]){W.box[yt]=!0;let dt=4*yt,Ft=this.boxKeys[yt];if(l<=pt[dt+2]&&d<=pt[dt+3]&&v>=pt[dt+0]&&b>=pt[dt+1]&&(!U||U(Ft))&&(!Z||!Ia($,Ft.overlapMode))&&(O.push({key:Ft,x1:pt[dt],y1:pt[dt+1],x2:pt[dt+2],y2:pt[dt+3]}),Z))return!0}}let At=this.circleCells[M];if(At!==null){let pt=this.circles;for(let yt of At)if(!W.circle[yt]){W.circle[yt]=!0;let dt=3*yt,Ft=this.circleKeys[yt];if(this._circleAndRectCollide(pt[dt],pt[dt+1],pt[dt+2],l,d,v,b)&&(!U||U(Ft))&&(!Z||!Ia($,Ft.overlapMode))){let Ht=pt[dt],St=pt[dt+1],Bt=pt[dt+2];if(O.push({key:Ft,x1:Ht-Bt,y1:St-Bt,x2:Ht+Bt,y2:St+Bt}),Z)return!0}}}return!1}_queryCellCircle(l,d,v,b,M,O,B,U){let{circle:W,seenUids:Z,overlapMode:$}=B,st=this.boxCells[M];if(st!==null){let pt=this.bboxes;for(let yt of st)if(!Z.box[yt]){Z.box[yt]=!0;let dt=4*yt,Ft=this.boxKeys[yt];if(this._circleAndRectCollide(W.x,W.y,W.radius,pt[dt+0],pt[dt+1],pt[dt+2],pt[dt+3])&&(!U||U(Ft))&&!Ia($,Ft.overlapMode))return O.push(!0),!0}}let At=this.circleCells[M];if(At!==null){let pt=this.circles;for(let yt of At)if(!Z.circle[yt]){Z.circle[yt]=!0;let dt=3*yt,Ft=this.circleKeys[yt];if(this._circlesCollide(pt[dt],pt[dt+1],pt[dt+2],W.x,W.y,W.radius)&&(!U||U(Ft))&&!Ia($,Ft.overlapMode))return O.push(!0),!0}}}_forEachCell(l,d,v,b,M,O,B,U){let W=this._convertToXCellCoord(l),Z=this._convertToYCellCoord(d),$=this._convertToXCellCoord(v),st=this._convertToYCellCoord(b);for(let At=W;At<=$;At++)for(let pt=Z;pt<=st;pt++)if(M.call(this,l,d,v,b,this.xCellCount*pt+At,O,B,U))return}_convertToXCellCoord(l){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(l*this.xScale)))}_convertToYCellCoord(l){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(l*this.yScale)))}_circlesCollide(l,d,v,b,M,O){let B=b-l,U=M-d,W=v+O;return W*W>B*B+U*U}_circleAndRectCollide(l,d,v,b,M,O,B){let U=(O-b)/2,W=Math.abs(l-(b+U));if(W>U+v)return!1;let Z=(B-M)/2,$=Math.abs(d-(M+Z));if($>Z+v)return!1;if(W<=U||$<=Z)return!0;let st=W-U,At=$-Z;return st*st+At*At<=v*v}}function ve(T,l,d,v,b){let M=n.Z();return l?(n.a0(M,M,[1/b,1/b,1]),d||n.ae(M,M,v.angle)):n.a1(M,v.labelPlaneMatrix,T),M}function jo(T,l,d,v,b){if(l){let M=n.af(T);return n.a0(M,M,[b,b,1]),d||n.ae(M,M,-v.angle),M}return v.glCoordMatrix}function gn(T,l,d){let v;d?(v=[T.x,T.y,d(T.x,T.y),1],n.ag(v,v,l)):(v=[T.x,T.y,0,1],vt(v,v,l));let b=v[3];return{point:new n.P(v[0]/b,v[1]/b),signedDistanceFromCamera:b}}function Ul(T,l){return .5+T/l*.5}function Ca(T,l){let d=T[0]/T[3],v=T[1]/T[3];return d>=-l[0]&&d<=l[0]&&v>=-l[1]&&v<=l[1]}function Te(T,l,d,v,b,M,O,B,U,W){let Z=v?T.textSizeData:T.iconSizeData,$=n.ah(Z,d.transform.zoom),st=[256/d.width*2+1,256/d.height*2+1],At=v?T.text.dynamicLayoutVertexArray:T.icon.dynamicLayoutVertexArray;At.clear();let pt=T.lineVertexArray,yt=v?T.text.placedSymbolArray:T.icon.placedSymbolArray,dt=d.transform.width/d.transform.height,Ft=!1;for(let Ht=0;Ht<yt.length;Ht++){let St=yt.get(Ht);if(St.hidden||St.writingMode===n.ai.vertical&&!Ft){ht(St.numGlyphs,At);continue}let Bt;if(Ft=!1,W?(Bt=[St.anchorX,St.anchorY,W(St.anchorX,St.anchorY),1],n.ag(Bt,Bt,l)):(Bt=[St.anchorX,St.anchorY,0,1],vt(Bt,Bt,l)),!Ca(Bt,st)){ht(St.numGlyphs,At);continue}let Qt=Ul(d.transform.cameraToCenterDistance,Bt[3]),$t=n.aj(Z,$,St),oe=O?$t/Qt:$t*Qt,pe=new n.P(St.anchorX,St.anchorY),he=gn(pe,b,W).point,be={projections:{},offsets:{}},Ze=Us(St,oe,!1,B,l,b,M,T.glyphOffsetArray,pt,At,he,pe,be,dt,U,W);Ft=Ze.useVertical,(Ze.notEnoughRoom||Ft||Ze.needsFlipping&&Us(St,oe,!0,B,l,b,M,T.glyphOffsetArray,pt,At,he,pe,be,dt,U,W).notEnoughRoom)&&ht(St.numGlyphs,At)}v?T.text.dynamicLayoutVertexBuffer.updateData(At):T.icon.dynamicLayoutVertexBuffer.updateData(At)}function Dr(T,l,d,v,b,M,O,B,U,W,Z,$,st){let At=B.glyphStartIndex+B.numGlyphs,pt=B.lineStartIndex,yt=B.lineStartIndex+B.lineLength,dt=l.getoffsetX(B.glyphStartIndex),Ft=l.getoffsetX(At-1),Ht=tt(T*dt,d,v,b,M,O,B.segment,pt,yt,U,W,Z,$,st);if(!Ht)return null;let St=tt(T*Ft,d,v,b,M,O,B.segment,pt,yt,U,W,Z,$,st);return St?{first:Ht,last:St}:null}function gr(T,l,d,v){return T===n.ai.horizontal&&Math.abs(d.y-l.y)>Math.abs(d.x-l.x)*v?{useVertical:!0}:(T===n.ai.vertical?l.y<d.y:l.x>d.x)?{needsFlipping:!0}:null}function Us(T,l,d,v,b,M,O,B,U,W,Z,$,st,At,pt,yt){let dt=l/24,Ft=T.lineOffsetX*dt,Ht=T.lineOffsetY*dt,St;if(T.numGlyphs>1){let Bt=T.glyphStartIndex+T.numGlyphs,Qt=T.lineStartIndex,$t=T.lineStartIndex+T.lineLength,oe=Dr(dt,B,Ft,Ht,d,Z,$,T,U,M,st,pt,yt);if(!oe)return{notEnoughRoom:!0};let pe=gn(oe.first.point,O,yt).point,he=gn(oe.last.point,O,yt).point;if(v&&!d){let be=gr(T.writingMode,pe,he,At);if(be)return be}St=[oe.first];for(let be=T.glyphStartIndex+1;be<Bt-1;be++)St.push(tt(dt*B.getoffsetX(be),Ft,Ht,d,Z,$,T.segment,Qt,$t,U,M,st,pt,yt));St.push(oe.last)}else{if(v&&!d){let Qt=gn($,b,yt).point,$t=T.lineStartIndex+T.segment+1,oe=new n.P(U.getx($t),U.gety($t)),pe=gn(oe,b,yt),he=pe.signedDistanceFromCamera>0?pe.point:La($,oe,Qt,1,b,yt),be=gr(T.writingMode,Qt,he,At);if(be)return be}let Bt=tt(dt*B.getoffsetX(T.glyphStartIndex),Ft,Ht,d,Z,$,T.segment,T.lineStartIndex,T.lineStartIndex+T.lineLength,U,M,st,pt,yt);if(!Bt)return{notEnoughRoom:!0};St=[Bt]}for(let Bt of St)n.ak(W,Bt.point,Bt.angle);return{}}function La(T,l,d,v,b,M){let O=gn(T.add(T.sub(l)._unit()),b,M).point,B=d.sub(O);return d.add(B._mult(v/B.mag()))}function Mr(T,l){let{projectionCache:d,lineVertexArray:v,labelPlaneMatrix:b,tileAnchorPoint:M,distanceFromAnchor:O,getElevation:B,previousVertex:U,direction:W,absOffsetX:Z}=l;if(d.projections[T])return d.projections[T];let $=new n.P(v.getx(T),v.gety(T)),st=gn($,b,B);if(st.signedDistanceFromCamera>0)return d.projections[T]=st.point,st.point;let At=T-W;return La(O===0?M:new n.P(v.getx(At),v.gety(At)),$,U,Z-O+1,b,B)}function sa(T,l,d){return T._unit()._perp()._mult(l*d)}function gt(T,l,d,v,b,M,O,B){let{projectionCache:U,direction:W}=B;if(U.offsets[T])return U.offsets[T];let Z=d.add(l);if(T+W<v||T+W>=b)return U.offsets[T]=Z,Z;let $=Mr(T+W,B),st=sa($.sub(d),O,W),At=d.add(st),pt=$.add(st);return U.offsets[T]=n.al(M,Z,At,pt)||Z,U.offsets[T]}function tt(T,l,d,v,b,M,O,B,U,W,Z,$,st,At){let pt=v?T-l:T+l,yt=pt>0?1:-1,dt=0;v&&(yt*=-1,dt=Math.PI),yt<0&&(dt+=Math.PI);let Ft,Ht,St=yt>0?B+O:B+O+1,Bt=b,Qt=b,$t=0,oe=0,pe=Math.abs(pt),he=[],be;for(;$t+oe<=pe;){if(St+=yt,St<B||St>=U)return null;$t+=oe,Qt=Bt,Ht=Ft;let Ee={projectionCache:$,lineVertexArray:W,labelPlaneMatrix:Z,tileAnchorPoint:M,distanceFromAnchor:$t,getElevation:At,previousVertex:Qt,direction:yt,absOffsetX:pe};if(Bt=Mr(St,Ee),d===0)he.push(Qt),be=Bt.sub(Qt);else{let pr,tr=Bt.sub(Qt);pr=tr.mag()===0?sa(Mr(St+yt,Ee).sub(Bt),d,yt):sa(tr,d,yt),Ht||(Ht=Qt.add(pr)),Ft=gt(St,pr,Bt,B,U,Ht,d,Ee),he.push(Ht),be=Ft.sub(Ht)}oe=be.mag()}let Ze=be._mult((pe-$t)/oe)._add(Ht||Qt),Kr=dt+Math.atan2(Bt.y-Qt.y,Bt.x-Qt.x);return he.push(Ze),{point:Ze,angle:st?Kr:0,path:he}}let nt=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ht(T,l){for(let d=0;d<T;d++){let v=l.length;l.resize(v+4),l.float32.set(nt,3*v)}}function vt(T,l,d){let v=l[0],b=l[1];return T[0]=d[0]*v+d[4]*b+d[12],T[1]=d[1]*v+d[5]*b+d[13],T[3]=d[3]*v+d[7]*b+d[15],T}let xt=100;class _t{constructor(l,d=new wo(l.width+200,l.height+200,25),v=new wo(l.width+200,l.height+200,25)){this.transform=l,this.grid=d,this.ignoredGrid=v,this.pitchfactor=Math.cos(l._pitch)*l.cameraToCenterDistance,this.screenRightBoundary=l.width+xt,this.screenBottomBoundary=l.height+xt,this.gridRightBoundary=l.width+200,this.gridBottomBoundary=l.height+200,this.perspectiveRatioCutoff=.6}placeCollisionBox(l,d,v,b,M,O){let B=this.projectAndGetPerspectiveRatio(b,l.anchorPointX,l.anchorPointY,O),U=v*B.perspectiveRatio,W=l.x1*U+B.point.x,Z=l.y1*U+B.point.y,$=l.x2*U+B.point.x,st=l.y2*U+B.point.y;return!this.isInsideGrid(W,Z,$,st)||d!==\"always\"&&this.grid.hitTest(W,Z,$,st,d,M)||B.perspectiveRatio<this.perspectiveRatioCutoff?{box:[],offscreen:!1}:{box:[W,Z,$,st],offscreen:this.isOffscreen(W,Z,$,st)}}placeCollisionCircles(l,d,v,b,M,O,B,U,W,Z,$,st,At,pt){let yt=[],dt=new n.P(d.anchorX,d.anchorY),Ft=gn(dt,O,pt),Ht=Ul(this.transform.cameraToCenterDistance,Ft.signedDistanceFromCamera),St=(Z?M/Ht:M*Ht)/n.ap,Bt=gn(dt,B,pt).point,Qt=Dr(St,b,d.lineOffsetX*St,d.lineOffsetY*St,!1,Bt,dt,d,v,B,{projections:{},offsets:{}},!1,pt),$t=!1,oe=!1,pe=!0;if(Qt){let he=.5*st*Ht+At,be=new n.P(-100,-100),Ze=new n.P(this.screenRightBoundary,this.screenBottomBoundary),Kr=new hl,Ee=Qt.first,pr=Qt.last,tr=[];for(let Vr=Ee.path.length-1;Vr>=1;Vr--)tr.push(Ee.path[Vr]);for(let Vr=1;Vr<pr.path.length;Vr++)tr.push(pr.path[Vr]);let Gi=2.5*he;if(U){let Vr=tr.map(ei=>gn(ei,U,pt));tr=Vr.some(ei=>ei.signedDistanceFromCamera<=0)?[]:Vr.map(ei=>ei.point)}let Jr=[];if(tr.length>0){let Vr=tr[0].clone(),ei=tr[0].clone();for(let On=1;On<tr.length;On++)Vr.x=Math.min(Vr.x,tr[On].x),Vr.y=Math.min(Vr.y,tr[On].y),ei.x=Math.max(ei.x,tr[On].x),ei.y=Math.max(ei.y,tr[On].y);Jr=Vr.x>=be.x&&ei.x<=Ze.x&&Vr.y>=be.y&&ei.y<=Ze.y?[tr]:ei.x<be.x||Vr.x>Ze.x||ei.y<be.y||Vr.y>Ze.y?[]:n.am([tr],be.x,be.y,Ze.x,Ze.y)}for(let Vr of Jr){Kr.reset(Vr,.25*he);let ei=0;ei=Kr.length<=.5*he?1:Math.ceil(Kr.paddedLength/Gi)+1;for(let On=0;On<ei;On++){let tn=On/Math.max(ei-1,1),Gs=Kr.lerp(tn),hs=Gs.x+xt,Bn=Gs.y+xt;yt.push(hs,Bn,he,0);let qo=hs-he,jr=Bn-he,ql=hs+he,Zl=Bn+he;if(pe=pe&&this.isOffscreen(qo,jr,ql,Zl),oe=oe||this.isInsideGrid(qo,jr,ql,Zl),l!==\"always\"&&this.grid.hitTestCircle(hs,Bn,he,l,$)&&($t=!0,!W))return{circles:[],offscreen:!1,collisionDetected:$t}}}}return{circles:!W&&$t||!oe||Ht<this.perspectiveRatioCutoff?[]:yt,offscreen:pe,collisionDetected:$t}}queryRenderedSymbols(l){if(l.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};let d=[],v=1/0,b=1/0,M=-1/0,O=-1/0;for(let Z of l){let $=new n.P(Z.x+xt,Z.y+xt);v=Math.min(v,$.x),b=Math.min(b,$.y),M=Math.max(M,$.x),O=Math.max(O,$.y),d.push($)}let B=this.grid.query(v,b,M,O).concat(this.ignoredGrid.query(v,b,M,O)),U={},W={};for(let Z of B){let $=Z.key;if(U[$.bucketInstanceId]===void 0&&(U[$.bucketInstanceId]={}),U[$.bucketInstanceId][$.featureIndex])continue;let st=[new n.P(Z.x1,Z.y1),new n.P(Z.x2,Z.y1),new n.P(Z.x2,Z.y2),new n.P(Z.x1,Z.y2)];n.an(d,st)&&(U[$.bucketInstanceId][$.featureIndex]=!0,W[$.bucketInstanceId]===void 0&&(W[$.bucketInstanceId]=[]),W[$.bucketInstanceId].push($.featureIndex))}return W}insertCollisionBox(l,d,v,b,M,O){(v?this.ignoredGrid:this.grid).insert({bucketInstanceId:b,featureIndex:M,collisionGroupID:O,overlapMode:d},l[0],l[1],l[2],l[3])}insertCollisionCircles(l,d,v,b,M,O){let B=v?this.ignoredGrid:this.grid,U={bucketInstanceId:b,featureIndex:M,collisionGroupID:O,overlapMode:d};for(let W=0;W<l.length;W+=4)B.insertCircle(U,l[W],l[W+1],l[W+2])}projectAndGetPerspectiveRatio(l,d,v,b){let M;return b?(M=[d,v,b(d,v),1],n.ag(M,M,l)):(M=[d,v,0,1],vt(M,M,l)),{point:new n.P((M[0]/M[3]+1)/2*this.transform.width+xt,(-M[1]/M[3]+1)/2*this.transform.height+xt),perspectiveRatio:.5+this.transform.cameraToCenterDistance/M[3]*.5}}isOffscreen(l,d,v,b){return v<xt||l>=this.screenRightBoundary||b<xt||d>this.screenBottomBoundary}isInsideGrid(l,d,v,b){return v>=0&&l<this.gridRightBoundary&&b>=0&&d<this.gridBottomBoundary}getViewportMatrix(){let l=n.ao([]);return n.$(l,l,[-100,-100,0]),l}}function Dt(T,l,d){return l*(n.N/(T.tileSize*Math.pow(2,d-T.tileID.overscaledZ)))}class Mt{constructor(l,d,v,b){this.opacity=l?Math.max(0,Math.min(1,l.opacity+(l.placed?d:-d))):b&&v?1:0,this.placed=v}isHidden(){return this.opacity===0&&!this.placed}}class Vt{constructor(l,d,v,b,M){this.text=new Mt(l?l.text:null,d,v,M),this.icon=new Mt(l?l.icon:null,d,b,M)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class ie{constructor(l,d,v){this.text=l,this.icon=d,this.skipFade=v}}class se{constructor(){this.invProjMatrix=n.Z(),this.viewportMatrix=n.Z(),this.circles=[]}}class ae{constructor(l,d,v,b,M){this.bucketInstanceId=l,this.featureIndex=d,this.sourceLayerIndex=v,this.bucketIndex=b,this.tileID=M}}class lr{constructor(l){this.crossSourceCollisions=l,this.maxGroupID=0,this.collisionGroups={}}get(l){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[l]){let d=++this.maxGroupID;this.collisionGroups[l]={ID:d,predicate:v=>v.collisionGroupID===d}}return this.collisionGroups[l]}}function vr(T,l,d,v,b){let{horizontalAlign:M,verticalAlign:O}=n.au(T);return new n.P(-(M-.5)*l+v[0]*b,-(O-.5)*d+v[1]*b)}function Xe(T,l,d,v,b,M){let{x1:O,x2:B,y1:U,y2:W,anchorPointX:Z,anchorPointY:$}=T,st=new n.P(l,d);return v&&st._rotate(b?M:-M),{x1:O+st.x,y1:U+st.y,x2:B+st.x,y2:W+st.y,anchorPointX:Z,anchorPointY:$}}class cr{constructor(l,d,v,b,M){this.transform=l.clone(),this.terrain=d,this.collisionIndex=new _t(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=v,this.retainedQueryData={},this.collisionGroups=new lr(b),this.collisionCircleArrays={},this.prevPlacement=M,M&&(M.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(l,d,v,b){let M=v.getBucket(d),O=v.latestFeatureIndex;if(!M||!O||d.id!==M.layerIds[0])return;let B=v.collisionBoxArray,U=M.layers[0].layout,W=Math.pow(2,this.transform.zoom-v.tileID.overscaledZ),Z=v.tileSize/n.N,$=this.transform.calculatePosMatrix(v.tileID.toUnwrapped()),st=U.get(\"text-pitch-alignment\")===\"map\",At=U.get(\"text-rotation-alignment\")===\"map\",pt=Dt(v,1,this.transform.zoom),yt=ve($,st,At,this.transform,pt),dt=null;if(st){let Ht=jo($,st,At,this.transform,pt);dt=n.a1([],this.transform.labelPlaneMatrix,Ht)}this.retainedQueryData[M.bucketInstanceId]=new ae(M.bucketInstanceId,O,M.sourceLayerIndex,M.index,v.tileID);let Ft={bucket:M,layout:U,posMatrix:$,textLabelPlaneMatrix:yt,labelToScreenMatrix:dt,scale:W,textPixelRatio:Z,holdingForFade:v.holdingForFade(),collisionBoxArray:B,partiallyEvaluatedTextSize:n.ah(M.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(M.sourceID)};if(b)for(let Ht of M.sortKeyRanges){let{sortKey:St,symbolInstanceStart:Bt,symbolInstanceEnd:Qt}=Ht;l.push({sortKey:St,symbolInstanceStart:Bt,symbolInstanceEnd:Qt,parameters:Ft})}else l.push({symbolInstanceStart:0,symbolInstanceEnd:M.symbolInstances.length,parameters:Ft})}attemptAnchorPlacement(l,d,v,b,M,O,B,U,W,Z,$,st,At,pt,yt,dt){let Ft=n.aq[l.textAnchor],Ht=[l.textOffset0,l.textOffset1],St=vr(Ft,v,b,Ht,M),Bt=this.collisionIndex.placeCollisionBox(Xe(d,St.x,St.y,O,B,this.transform.angle),$,U,W,Z.predicate,dt);if((!yt||this.collisionIndex.placeCollisionBox(Xe(yt,St.x,St.y,O,B,this.transform.angle),$,U,W,Z.predicate,dt).box.length!==0)&&Bt.box.length>0){let Qt;if(this.prevPlacement&&this.prevPlacement.variableOffsets[st.crossTileID]&&this.prevPlacement.placements[st.crossTileID]&&this.prevPlacement.placements[st.crossTileID].text&&(Qt=this.prevPlacement.variableOffsets[st.crossTileID].anchor),st.crossTileID===0)throw new Error(\"symbolInstance.crossTileID can't be 0\");return this.variableOffsets[st.crossTileID]={textOffset:Ht,width:v,height:b,anchor:Ft,textBoxScale:M,prevAnchor:Qt},this.markUsedJustification(At,Ft,st,pt),At.allowVerticalPlacement&&(this.markUsedOrientation(At,pt,st),this.placedOrientations[st.crossTileID]=pt),{shift:St,placedGlyphBoxes:Bt}}}placeLayerBucketPart(l,d,v){let{bucket:b,layout:M,posMatrix:O,textLabelPlaneMatrix:B,labelToScreenMatrix:U,textPixelRatio:W,holdingForFade:Z,collisionBoxArray:$,partiallyEvaluatedTextSize:st,collisionGroup:At}=l.parameters,pt=M.get(\"text-optional\"),yt=M.get(\"icon-optional\"),dt=n.ar(M,\"text-overlap\",\"text-allow-overlap\"),Ft=dt===\"always\",Ht=n.ar(M,\"icon-overlap\",\"icon-allow-overlap\"),St=Ht===\"always\",Bt=M.get(\"text-rotation-alignment\")===\"map\",Qt=M.get(\"text-pitch-alignment\")===\"map\",$t=M.get(\"icon-text-fit\")!==\"none\",oe=M.get(\"symbol-z-order\")===\"viewport-y\",pe=Ft&&(St||!b.hasIconData()||yt),he=St&&(Ft||!b.hasTextData()||pt);!b.collisionArrays&&$&&b.deserializeCollisionBoxes($);let be=this.retainedQueryData[b.bucketInstanceId].tileID,Ze=this.terrain?(Ee,pr)=>this.terrain.getElevation(be,Ee,pr):null,Kr=(Ee,pr)=>{var tr,Gi;if(d[Ee.crossTileID])return;if(Z)return void(this.placements[Ee.crossTileID]=new ie(!1,!1,!1));let Jr=!1,Vr=!1,ei=!0,On=null,tn={box:null,offscreen:null},Gs={box:null,offscreen:null},hs=null,Bn=null,qo=null,jr=0,ql=0,Zl=0;pr.textFeatureIndex?jr=pr.textFeatureIndex:Ee.useRuntimeCollisionCircles&&(jr=Ee.featureIndex),pr.verticalTextFeatureIndex&&(ql=pr.verticalTextFeatureIndex);let yu=pr.textBox;if(yu){let Ws=Fn=>{let fs=n.ai.horizontal;if(b.allowVerticalPlacement&&!Fn&&this.prevPlacement){let Zo=this.prevPlacement.placedOrientations[Ee.crossTileID];Zo&&(this.placedOrientations[Ee.crossTileID]=Zo,fs=Zo,this.markUsedOrientation(b,fs,Ee))}return fs},Ps=(Fn,fs)=>{if(b.allowVerticalPlacement&&Ee.numVerticalGlyphVertices>0&&pr.verticalTextBox){for(let Zo of b.writingModes)if(Zo===n.ai.vertical?(tn=fs(),Gs=tn):tn=Fn(),tn&&tn.box&&tn.box.length)break}else tn=Fn()},Eo=Ee.textAnchorOffsetStartIndex,yh=Ee.textAnchorOffsetEndIndex;if(yh===Eo){let Fn=(fs,Zo)=>{let _n=this.collisionIndex.placeCollisionBox(fs,dt,W,O,At.predicate,Ze);return _n&&_n.box&&_n.box.length&&(this.markUsedOrientation(b,Zo,Ee),this.placedOrientations[Ee.crossTileID]=Zo),_n};Ps(()=>Fn(yu,n.ai.horizontal),()=>{let fs=pr.verticalTextBox;return b.allowVerticalPlacement&&Ee.numVerticalGlyphVertices>0&&fs?Fn(fs,n.ai.vertical):{box:null,offscreen:null}}),Ws(tn&&tn.box&&tn.box.length)}else{let Fn=n.aq[(Gi=(tr=this.prevPlacement)===null||tr===void 0?void 0:tr.variableOffsets[Ee.crossTileID])===null||Gi===void 0?void 0:Gi.anchor],fs=(_n,ho,Gr)=>{let Ua=_n.x2-_n.x1,S_=_n.y2-_n.y1,zd=Ee.textBoxScale,cA=$t&&Ht===\"never\"?ho:null,Yl={box:[],offscreen:!1},Yo=dt===\"never\"?1:2,me=\"never\";Fn&&Yo++;for(let ke=0;ke<Yo;ke++){for(let ml=Eo;ml<yh;ml++){let Mf=b.textAnchorOffsets.get(ml);if(Fn&&Mf.textAnchor!==Fn)continue;let Va=this.attemptAnchorPlacement(Mf,_n,Ua,S_,zd,Bt,Qt,W,O,At,me,Ee,b,Gr,cA,Ze);if(Va&&(Yl=Va.placedGlyphBoxes,Yl&&Yl.box&&Yl.box.length))return Jr=!0,On=Va.shift,Yl}Fn?Fn=null:me=dt}return Yl};Ps(()=>fs(yu,pr.iconBox,n.ai.horizontal),()=>{let _n=pr.verticalTextBox;return b.allowVerticalPlacement&&!(tn&&tn.box&&tn.box.length)&&Ee.numVerticalGlyphVertices>0&&_n?fs(_n,pr.verticalIconBox,n.ai.vertical):{box:null,offscreen:null}}),tn&&(Jr=tn.box,ei=tn.offscreen);let Zo=Ws(tn&&tn.box);if(!Jr&&this.prevPlacement){let _n=this.prevPlacement.variableOffsets[Ee.crossTileID];_n&&(this.variableOffsets[Ee.crossTileID]=_n,this.markUsedJustification(b,_n.anchor,Ee,Zo))}}}if(hs=tn,Jr=hs&&hs.box&&hs.box.length>0,ei=hs&&hs.offscreen,Ee.useRuntimeCollisionCircles){let Ws=b.text.placedSymbolArray.get(Ee.centerJustifiedTextSymbolIndex),Ps=n.aj(b.textSizeData,st,Ws),Eo=M.get(\"text-padding\");Bn=this.collisionIndex.placeCollisionCircles(dt,Ws,b.lineVertexArray,b.glyphOffsetArray,Ps,O,B,U,v,Qt,At.predicate,Ee.collisionCircleDiameter,Eo,Ze),Bn.circles.length&&Bn.collisionDetected&&!v&&n.w(\"Collisions detected, but collision boxes are not shown\"),Jr=Ft||Bn.circles.length>0&&!Bn.collisionDetected,ei=ei&&Bn.offscreen}if(pr.iconFeatureIndex&&(Zl=pr.iconFeatureIndex),pr.iconBox){let Ws=Ps=>{let Eo=$t&&On?Xe(Ps,On.x,On.y,Bt,Qt,this.transform.angle):Ps;return this.collisionIndex.placeCollisionBox(Eo,Ht,W,O,At.predicate,Ze)};Gs&&Gs.box&&Gs.box.length&&pr.verticalIconBox?(qo=Ws(pr.verticalIconBox),Vr=qo.box.length>0):(qo=Ws(pr.iconBox),Vr=qo.box.length>0),ei=ei&&qo.offscreen}let vu=pt||Ee.numHorizontalGlyphVertices===0&&Ee.numVerticalGlyphVertices===0,_h=yt||Ee.numIconVertices===0;if(vu||_h?_h?vu||(Vr=Vr&&Jr):Jr=Vr&&Jr:Vr=Jr=Vr&&Jr,Jr&&hs&&hs.box&&this.collisionIndex.insertCollisionBox(hs.box,dt,M.get(\"text-ignore-placement\"),b.bucketInstanceId,Gs&&Gs.box&&ql?ql:jr,At.ID),Vr&&qo&&this.collisionIndex.insertCollisionBox(qo.box,Ht,M.get(\"icon-ignore-placement\"),b.bucketInstanceId,Zl,At.ID),Bn&&(Jr&&this.collisionIndex.insertCollisionCircles(Bn.circles,dt,M.get(\"text-ignore-placement\"),b.bucketInstanceId,jr,At.ID),v)){let Ws=b.bucketInstanceId,Ps=this.collisionCircleArrays[Ws];Ps===void 0&&(Ps=this.collisionCircleArrays[Ws]=new se);for(let Eo=0;Eo<Bn.circles.length;Eo+=4)Ps.circles.push(Bn.circles[Eo+0]),Ps.circles.push(Bn.circles[Eo+1]),Ps.circles.push(Bn.circles[Eo+2]),Ps.circles.push(Bn.collisionDetected?1:0)}if(Ee.crossTileID===0)throw new Error(\"symbolInstance.crossTileID can't be 0\");if(b.bucketInstanceId===0)throw new Error(\"bucket.bucketInstanceId can't be 0\");this.placements[Ee.crossTileID]=new ie(Jr||pe,Vr||he,ei||b.justReloaded),d[Ee.crossTileID]=!0};if(oe){if(l.symbolInstanceStart!==0)throw new Error(\"bucket.bucketInstanceId should be 0\");let Ee=b.getSortedSymbolIndexes(this.transform.angle);for(let pr=Ee.length-1;pr>=0;--pr){let tr=Ee[pr];Kr(b.symbolInstances.get(tr),b.collisionArrays[tr])}}else for(let Ee=l.symbolInstanceStart;Ee<l.symbolInstanceEnd;Ee++)Kr(b.symbolInstances.get(Ee),b.collisionArrays[Ee]);if(v&&b.bucketInstanceId in this.collisionCircleArrays){let Ee=this.collisionCircleArrays[b.bucketInstanceId];n.as(Ee.invProjMatrix,O),Ee.viewportMatrix=this.collisionIndex.getViewportMatrix()}b.justReloaded=!1}markUsedJustification(l,d,v,b){let M;M=b===n.ai.vertical?v.verticalPlacedTextSymbolIndex:{left:v.leftJustifiedTextSymbolIndex,center:v.centerJustifiedTextSymbolIndex,right:v.rightJustifiedTextSymbolIndex}[n.at(d)];let O=[v.leftJustifiedTextSymbolIndex,v.centerJustifiedTextSymbolIndex,v.rightJustifiedTextSymbolIndex,v.verticalPlacedTextSymbolIndex];for(let B of O)B>=0&&(l.text.placedSymbolArray.get(B).crossTileID=M>=0&&B!==M?0:v.crossTileID)}markUsedOrientation(l,d,v){let b=d===n.ai.horizontal||d===n.ai.horizontalOnly?d:0,M=d===n.ai.vertical?d:0,O=[v.leftJustifiedTextSymbolIndex,v.centerJustifiedTextSymbolIndex,v.rightJustifiedTextSymbolIndex];for(let B of O)l.text.placedSymbolArray.get(B).placedOrientation=b;v.verticalPlacedTextSymbolIndex&&(l.text.placedSymbolArray.get(v.verticalPlacedTextSymbolIndex).placedOrientation=M)}commit(l){this.commitTime=l,this.zoomAtLastRecencyCheck=this.transform.zoom;let d=this.prevPlacement,v=!1;this.prevZoomAdjustment=d?d.zoomAdjustment(this.transform.zoom):0;let b=d?d.symbolFadeChange(l):1,M=d?d.opacities:{},O=d?d.variableOffsets:{},B=d?d.placedOrientations:{};for(let U in this.placements){let W=this.placements[U],Z=M[U];Z?(this.opacities[U]=new Vt(Z,b,W.text,W.icon),v=v||W.text!==Z.text.placed||W.icon!==Z.icon.placed):(this.opacities[U]=new Vt(null,b,W.text,W.icon,W.skipFade),v=v||W.text||W.icon)}for(let U in M){let W=M[U];if(!this.opacities[U]){let Z=new Vt(W,b,!1,!1);Z.isHidden()||(this.opacities[U]=Z,v=v||W.text.placed||W.icon.placed)}}for(let U in O)this.variableOffsets[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.variableOffsets[U]=O[U]);for(let U in B)this.placedOrientations[U]||!this.opacities[U]||this.opacities[U].isHidden()||(this.placedOrientations[U]=B[U]);if(d&&d.lastPlacementChangeTime===void 0)throw new Error(\"Last placement time for previous placement is not defined\");v?this.lastPlacementChangeTime=l:typeof this.lastPlacementChangeTime!=\"number\"&&(this.lastPlacementChangeTime=d?d.lastPlacementChangeTime:l)}updateLayerOpacities(l,d){let v={};for(let b of d){let M=b.getBucket(l);M&&b.latestFeatureIndex&&l.id===M.layerIds[0]&&this.updateBucketOpacities(M,v,b.collisionBoxArray)}}updateBucketOpacities(l,d,v){l.hasTextData()&&(l.text.opacityVertexArray.clear(),l.text.hasVisibleVertices=!1),l.hasIconData()&&(l.icon.opacityVertexArray.clear(),l.icon.hasVisibleVertices=!1),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexArray.clear(),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexArray.clear();let b=l.layers[0],M=b.layout,O=new Vt(null,0,!1,!1,!0),B=M.get(\"text-allow-overlap\"),U=M.get(\"icon-allow-overlap\"),W=b._unevaluatedLayout.hasValue(\"text-variable-anchor\")||b._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"),Z=M.get(\"text-rotation-alignment\")===\"map\",$=M.get(\"text-pitch-alignment\")===\"map\",st=M.get(\"icon-text-fit\")!==\"none\",At=new Vt(null,0,B&&(U||!l.hasIconData()||M.get(\"icon-optional\")),U&&(B||!l.hasTextData()||M.get(\"text-optional\")),!0);!l.collisionArrays&&v&&(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData())&&l.deserializeCollisionBoxes(v);let pt=(yt,dt,Ft)=>{for(let Ht=0;Ht<dt/4;Ht++)yt.opacityVertexArray.emplaceBack(Ft);yt.hasVisibleVertices=yt.hasVisibleVertices||Ft!==oa};for(let yt=0;yt<l.symbolInstances.length;yt++){let dt=l.symbolInstances.get(yt),{numHorizontalGlyphVertices:Ft,numVerticalGlyphVertices:Ht,crossTileID:St}=dt,Bt=this.opacities[St];d[St]?Bt=O:Bt||(Bt=At,this.opacities[St]=Bt),d[St]=!0;let Qt=dt.numIconVertices>0,$t=this.placedOrientations[dt.crossTileID],oe=$t===n.ai.vertical,pe=$t===n.ai.horizontal||$t===n.ai.horizontalOnly;if(Ft>0||Ht>0){let he=es(Bt.text);pt(l.text,Ft,oe?oa:he),pt(l.text,Ht,pe?oa:he);let be=Bt.text.isHidden();[dt.rightJustifiedTextSymbolIndex,dt.centerJustifiedTextSymbolIndex,dt.leftJustifiedTextSymbolIndex].forEach(Ee=>{Ee>=0&&(l.text.placedSymbolArray.get(Ee).hidden=be||oe?1:0)}),dt.verticalPlacedTextSymbolIndex>=0&&(l.text.placedSymbolArray.get(dt.verticalPlacedTextSymbolIndex).hidden=be||pe?1:0);let Ze=this.variableOffsets[dt.crossTileID];Ze&&this.markUsedJustification(l,Ze.anchor,dt,$t);let Kr=this.placedOrientations[dt.crossTileID];Kr&&(this.markUsedJustification(l,\"left\",dt,Kr),this.markUsedOrientation(l,Kr,dt))}if(Qt){let he=es(Bt.icon),be=!(st&&dt.verticalPlacedIconSymbolIndex&&oe);dt.placedIconSymbolIndex>=0&&(pt(l.icon,dt.numIconVertices,be?he:oa),l.icon.placedSymbolArray.get(dt.placedIconSymbolIndex).hidden=Bt.icon.isHidden()),dt.verticalPlacedIconSymbolIndex>=0&&(pt(l.icon,dt.numVerticalIconVertices,be?oa:he),l.icon.placedSymbolArray.get(dt.verticalPlacedIconSymbolIndex).hidden=Bt.icon.isHidden())}if(l.hasIconCollisionBoxData()||l.hasTextCollisionBoxData()){let he=l.collisionArrays[yt];if(he){let be=new n.P(0,0);if(he.textBox||he.verticalTextBox){let Kr=!0;if(W){let Ee=this.variableOffsets[St];Ee?(be=vr(Ee.anchor,Ee.width,Ee.height,Ee.textOffset,Ee.textBoxScale),Z&&be._rotate($?this.transform.angle:-this.transform.angle)):Kr=!1}he.textBox&&wr(l.textCollisionBox.collisionVertexArray,Bt.text.placed,!Kr||oe,be.x,be.y),he.verticalTextBox&&wr(l.textCollisionBox.collisionVertexArray,Bt.text.placed,!Kr||pe,be.x,be.y)}let Ze=!!(!pe&&he.verticalIconBox);he.iconBox&&wr(l.iconCollisionBox.collisionVertexArray,Bt.icon.placed,Ze,st?be.x:0,st?be.y:0),he.verticalIconBox&&wr(l.iconCollisionBox.collisionVertexArray,Bt.icon.placed,!Ze,st?be.x:0,st?be.y:0)}}}if(l.sortFeatures(this.transform.angle),this.retainedQueryData[l.bucketInstanceId]&&(this.retainedQueryData[l.bucketInstanceId].featureSortOrder=l.featureSortOrder),l.hasTextData()&&l.text.opacityVertexBuffer&&l.text.opacityVertexBuffer.updateData(l.text.opacityVertexArray),l.hasIconData()&&l.icon.opacityVertexBuffer&&l.icon.opacityVertexBuffer.updateData(l.icon.opacityVertexArray),l.hasIconCollisionBoxData()&&l.iconCollisionBox.collisionVertexBuffer&&l.iconCollisionBox.collisionVertexBuffer.updateData(l.iconCollisionBox.collisionVertexArray),l.hasTextCollisionBoxData()&&l.textCollisionBox.collisionVertexBuffer&&l.textCollisionBox.collisionVertexBuffer.updateData(l.textCollisionBox.collisionVertexArray),l.text.opacityVertexArray.length!==l.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${l.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${l.text.layoutVertexArray.length}) / 4`);if(l.icon.opacityVertexArray.length!==l.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${l.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${l.icon.layoutVertexArray.length}) / 4`);if(l.bucketInstanceId in this.collisionCircleArrays){let yt=this.collisionCircleArrays[l.bucketInstanceId];l.placementInvProjMatrix=yt.invProjMatrix,l.placementViewportMatrix=yt.viewportMatrix,l.collisionCircleArray=yt.circles,delete this.collisionCircleArrays[l.bucketInstanceId]}}symbolFadeChange(l){return this.fadeDuration===0?1:(l-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(l){return Math.max(0,(this.transform.zoom-l)/1.5)}hasTransitions(l){return this.stale||l-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(l,d){let v=this.zoomAtLastRecencyCheck===d?1-this.zoomAdjustment(d):1;return this.zoomAtLastRecencyCheck=d,this.commitTime+this.fadeDuration*v>l}setStale(){this.stale=!0}}function wr(T,l,d,v,b){T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0),T.emplaceBack(l?1:0,d?1:0,v||0,b||0)}let xi=Math.pow(2,25),zi=Math.pow(2,24),ni=Math.pow(2,17),Hr=Math.pow(2,16),jn=Math.pow(2,9),Bi=Math.pow(2,8),xn=Math.pow(2,1);function es(T){if(T.opacity===0&&!T.placed)return 0;if(T.opacity===1&&T.placed)return 4294967295;let l=T.placed?1:0,d=Math.floor(127*T.opacity);return d*xi+l*zi+d*ni+l*Hr+d*jn+l*Bi+d*xn+l}let oa=0;class Um{constructor(l){this._sortAcrossTiles=l.layout.get(\"symbol-z-order\")!==\"viewport-y\"&&!l.layout.get(\"symbol-sort-key\").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(l,d,v,b,M){let O=this._bucketParts;for(;this._currentTileIndex<l.length;)if(d.getBucketParts(O,b,l[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,M())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,O.sort((B,U)=>B.sortKey-U.sortKey));this._currentPartIndex<O.length;)if(d.placeLayerBucketPart(O[this._currentPartIndex],this._seenCrossTileIDs,v),this._currentPartIndex++,M())return!0;return!1}}class Vl{constructor(l,d,v,b,M,O,B,U){this.placement=new cr(l,d,O,B,U),this._currentPlacementIndex=v.length-1,this._forceFullPlacement=b,this._showCollisionBoxes=M,this._done=!1}isDone(){return this._done}continuePlacement(l,d,v){let b=n.h.now(),M=()=>!this._forceFullPlacement&&n.h.now()-b>2;for(;this._currentPlacementIndex>=0;){let O=d[l[this._currentPlacementIndex]],B=this.placement.collisionIndex.transform.zoom;if(O.type===\"symbol\"&&(!O.minzoom||O.minzoom<=B)&&(!O.maxzoom||O.maxzoom>B)){if(this._inProgressLayer||(this._inProgressLayer=new Um(O)),this._inProgressLayer.continuePlacement(v[O.source],this.placement,this._showCollisionBoxes,O,M))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(l){return this.placement.commit(l),this.placement}}let Ss=512/n.N/2;class nh{constructor(l,d,v){this.tileID=l,this.bucketInstanceId=v,this._symbolsByKey={};let b=new Map;for(let M=0;M<d.length;M++){let O=d.get(M),B=O.key,U=b.get(B);U?U.push(O):b.set(B,[O])}for(let[M,O]of b){let B={positions:O.map(U=>({x:Math.floor(U.anchorX*Ss),y:Math.floor(U.anchorY*Ss)})),crossTileIDs:O.map(U=>U.crossTileID)};if(B.positions.length>128){let U=new n.av(B.positions.length,16,Uint16Array);for(let{x:W,y:Z}of B.positions)U.add(W,Z);U.finish(),delete B.positions,B.index=U}this._symbolsByKey[M]=B}}getScaledCoordinates(l,d){let{x:v,y:b,z:M}=this.tileID.canonical,{x:O,y:B,z:U}=d.canonical,W=Ss/Math.pow(2,U-M),Z=(B*n.N+l.anchorY)*W,$=b*n.N*Ss;return{x:Math.floor((O*n.N+l.anchorX)*W-v*n.N*Ss),y:Math.floor(Z-$)}}findMatches(l,d,v){let b=this.tileID.canonical.z<d.canonical.z?1:Math.pow(2,this.tileID.canonical.z-d.canonical.z);for(let M=0;M<l.length;M++){let O=l.get(M);if(O.crossTileID)continue;let B=this._symbolsByKey[O.key];if(!B)continue;let U=this.getScaledCoordinates(O,d);if(B.index){let W=B.index.range(U.x-b,U.y-b,U.x+b,U.y+b).sort();for(let Z of W){let $=B.crossTileIDs[Z];if(!v[$]){v[$]=!0,O.crossTileID=$;break}}}else if(B.positions)for(let W=0;W<B.positions.length;W++){let Z=B.positions[W],$=B.crossTileIDs[W];if(Math.abs(Z.x-U.x)<=b&&Math.abs(Z.y-U.y)<=b&&!v[$]){v[$]=!0,O.crossTileID=$;break}}}}getCrossTileIDsLists(){return Object.values(this._symbolsByKey).map(({crossTileIDs:l})=>l)}}class ai{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class ka{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(l){let d=Math.round((l-this.lng)/360);if(d!==0)for(let v in this.indexes){let b=this.indexes[v],M={};for(let O in b){let B=b[O];B.tileID=B.tileID.unwrapTo(B.tileID.wrap+d),M[B.tileID.key]=B}this.indexes[v]=M}this.lng=l}addBucket(l,d,v){if(this.indexes[l.overscaledZ]&&this.indexes[l.overscaledZ][l.key]){if(this.indexes[l.overscaledZ][l.key].bucketInstanceId===d.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(l.overscaledZ,this.indexes[l.overscaledZ][l.key])}for(let M=0;M<d.symbolInstances.length;M++)d.symbolInstances.get(M).crossTileID=0;this.usedCrossTileIDs[l.overscaledZ]||(this.usedCrossTileIDs[l.overscaledZ]={});let b=this.usedCrossTileIDs[l.overscaledZ];for(let M in this.indexes){let O=this.indexes[M];if(Number(M)>l.overscaledZ)for(let B in O){let U=O[B];U.tileID.isChildOf(l)&&U.findMatches(d.symbolInstances,l,b)}else{let B=O[l.scaledTo(Number(M)).key];B&&B.findMatches(d.symbolInstances,l,b)}}for(let M=0;M<d.symbolInstances.length;M++){let O=d.symbolInstances.get(M);O.crossTileID||(O.crossTileID=v.generate(),b[O.crossTileID]=!0)}return this.indexes[l.overscaledZ]===void 0&&(this.indexes[l.overscaledZ]={}),this.indexes[l.overscaledZ][l.key]=new nh(l,d.symbolInstances,d.bucketInstanceId),!0}removeBucketCrossTileIDs(l,d){for(let v of d.getCrossTileIDsLists())for(let b of v)delete this.usedCrossTileIDs[l][b]}removeStaleBuckets(l){let d=!1;for(let v in this.indexes){let b=this.indexes[v];for(let M in b)l[b[M].bucketInstanceId]||(this.removeBucketCrossTileIDs(v,b[M]),delete b[M],d=!0)}return d}}class Dc{constructor(){this.layerIndexes={},this.crossTileIDs=new ai,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(l,d,v){let b=this.layerIndexes[l.id];b===void 0&&(b=this.layerIndexes[l.id]=new ka);let M=!1,O={};b.handleWrapJump(v);for(let B of d){let U=B.getBucket(l);U&&l.id===U.layerIds[0]&&(U.bucketInstanceId||(U.bucketInstanceId=++this.maxBucketInstanceId),b.addBucket(B.tileID,U,this.crossTileIDs)&&(M=!0),O[U.bucketInstanceId]=!0)}return b.removeStaleBuckets(O)&&(M=!0),M}pruneUnusedLayers(l){let d={};l.forEach(v=>{d[v]=!0});for(let v in this.layerIndexes)d[v]||delete this.layerIndexes[v]}}let ln=(T,l)=>n.x(T,l&&l.filter(d=>d.identifier!==\"source.canvas\")),Dn=n.F(n.ax,[\"addLayer\",\"removeLayer\",\"setPaintProperty\",\"setLayoutProperty\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\",\"setGlyphs\",\"setSprite\"]),Vm=n.F(n.ax,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),Go=n.aw();class Gn extends n.E{constructor(l,d={}){super(),this.map=l,this.dispatcher=new ih(bo(),this,l._getMapId()),this.imageManager=new ue,this.imageManager.setEventedParent(this),this.glyphManager=new Sr(l._requestManager,d.localIdeographFontFamily),this.lineAtlas=new No(256,512),this.crossTileSymbolIndex=new Dc,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new n.ay,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",n.az());let v=this;this._rtlTextPluginCallback=Gn.registerForPluginStateChange(b=>{v.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:b.pluginStatus,pluginURL:b.pluginURL},(M,O)=>{if(n.aA(M),O&&O.every(B=>B))for(let B in v.sourceCaches){let U=v.sourceCaches[B].getSource().type;U!==\"vector\"&&U!==\"geojson\"||v.sourceCaches[B].reload()}})}),this.on(\"data\",b=>{if(b.dataType!==\"source\"||b.sourceDataType!==\"metadata\")return;let M=this.sourceCaches[b.sourceId];if(!M)return;let O=M.getSource();if(O&&O.vectorLayerIds)for(let B in this._layers){let U=this._layers[B];U.source===O.id&&this._validateLayer(U)}})}loadURL(l,d={},v){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),d.validate=typeof d.validate!=\"boolean\"||d.validate;let b=this.map._requestManager.transformRequest(l,Q.Style);this._request=n.f(b,(M,O)=>{this._request=null,M?this.fire(new n.j(M)):O&&this._load(O,d,v)})}loadJSON(l,d={},v){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),this._request=n.h.frame(()=>{this._request=null,d.validate=d.validate!==!1,this._load(l,d,v)})}loadEmpty(){this.fire(new n.k(\"dataloading\",{dataType:\"style\"})),this._load(Go,{validate:!1})}_load(l,d,v){var b;let M=d.transformStyle?d.transformStyle(v,l):l;if(!d.validate||!ln(this,n.y(M))){this._loaded=!0,this.stylesheet=M;for(let O in M.sources)this.addSource(O,M.sources[O],{validate:!1});M.sprite?this._loadSprite(M.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(M.glyphs),this._createLayers(),this.light=new zl(this.stylesheet.light),this.map.setTerrain((b=this.stylesheet.terrain)!==null&&b!==void 0?b:null),this.fire(new n.k(\"data\",{dataType:\"style\"})),this.fire(new n.k(\"style.load\"))}}_createLayers(){let l=n.aB(this.stylesheet.layers);this.dispatcher.broadcast(\"setLayers\",l),this._order=l.map(d=>d.id),this._layers={},this._serializedLayers=null;for(let d of l){let v=n.aC(d);v.setEventedParent(this,{layer:{id:d.id}}),this._layers[d.id]=v}}_loadSprite(l,d=!1,v=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(b,M,O,B){let U=kt(b),W=U.length,Z=O>1?\"@2x\":\"\",$={},st={},At={};for(let{id:pt,url:yt}of U){let dt=M.transformRequest(M.normalizeSpriteURL(yt,Z,\".json\"),Q.SpriteJSON),Ft=`${pt}_${dt.url}`;$[Ft]=n.f(dt,(Bt,Qt)=>{delete $[Ft],st[pt]=Qt,Xt(B,st,At,Bt,W)});let Ht=M.transformRequest(M.normalizeSpriteURL(yt,Z,\".png\"),Q.SpriteImage),St=`${pt}_${Ht.url}`;$[St]=j.getImage(Ht,(Bt,Qt)=>{delete $[St],At[pt]=Qt,Xt(B,st,At,Bt,W)})}return{cancel(){for(let pt of Object.values($))pt.cancel()}}}(l,this.map._requestManager,this.map.getPixelRatio(),(b,M)=>{if(this._spriteRequest=null,b)this.fire(new n.j(b));else if(M)for(let O in M){this._spritesImagesIds[O]=[];let B=this._spritesImagesIds[O]?this._spritesImagesIds[O].filter(U=>!(U in M)):[];for(let U of B)this.imageManager.removeImage(U),this._changedImages[U]=!0;for(let U in M[O]){let W=O===\"default\"?U:`${O}:${U}`;this._spritesImagesIds[O].push(W),W in this.imageManager.images?this.imageManager.updateImage(W,M[O][U],!1):this.imageManager.addImage(W,M[O][U]),d&&(this._changedImages[W]=!0)}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),d&&(this._changed=!0),this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"})),v&&v(b)})}_unloadSprite(){for(let l of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(l),this._changedImages[l]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}_validateLayer(l){let d=this.sourceCaches[l.source];if(!d)return;let v=l.sourceLayer;if(!v)return;let b=d.getSource();(b.type===\"geojson\"||b.vectorLayerIds&&b.vectorLayerIds.indexOf(v)===-1)&&this.fire(new n.j(new Error(`Source layer \"${v}\" does not exist on source \"${b.id}\" as specified by style layer \"${l.id}\".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let l in this.sourceCaches)if(!this.sourceCaches[l].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(l){let d=this._serializedAllLayers();if(!l||l.length===0)return Object.values(d);let v=[];for(let b of l)d[b]&&v.push(d[b]);return v}_serializedAllLayers(){let l=this._serializedLayers;if(l)return l;l=this._serializedLayers={};let d=Object.keys(this._layers);for(let v of d){let b=this._layers[v];b.type!==\"custom\"&&(l[v]=b.serialize())}return l}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(let l in this.sourceCaches)if(this.sourceCaches[l].hasTransition())return!0;for(let l in this._layers)if(this._layers[l].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error(\"Style is not done loading.\")}update(l){if(!this._loaded)return;let d=this._changed;if(this._changed){let b=Object.keys(this._updatedLayers),M=Object.keys(this._removedLayers);(b.length||M.length)&&this._updateWorkerLayers(b,M);for(let O in this._updatedSources){let B=this._updatedSources[O];if(B===\"reload\")this._reloadSource(O);else{if(B!==\"clear\")throw new Error(`Invalid action ${B}`);this._clearSource(O)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let O in this._updatedPaintProps)this._layers[O].updateTransitions(l);this.light.updateTransitions(l),this._resetUpdates()}let v={};for(let b in this.sourceCaches){let M=this.sourceCaches[b];v[b]=M.used,M.used=!1}for(let b of this._order){let M=this._layers[b];M.recalculate(l,this._availableImages),!M.isHidden(l.zoom)&&M.source&&(this.sourceCaches[M.source].used=!0)}for(let b in v){let M=this.sourceCaches[b];v[b]!==M.used&&M.fire(new n.k(\"data\",{sourceDataType:\"visibility\",dataType:\"source\",sourceId:b}))}this.light.recalculate(l),this.z=l.zoom,d&&this.fire(new n.k(\"data\",{dataType:\"style\"}))}_updateTilesForChangedImages(){let l=Object.keys(this._changedImages);if(l.length){for(let d in this.sourceCaches)this.sourceCaches[d].reloadTilesForDependencies([\"icons\",\"patterns\"],l);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let l in this.sourceCaches)this.sourceCaches[l].reloadTilesForDependencies([\"glyphs\"],[\"\"]);this._glyphsDidChange=!1}}_updateWorkerLayers(l,d){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeByIds(l),removedIds:d})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(l,d={}){this._checkLoaded();let v=this.serialize();if(l=d.transformStyle?d.transformStyle(v,l):l,ln(this,n.y(l)))return!1;(l=n.aD(l)).layers=n.aB(l.layers);let b=n.aE(v,l).filter(O=>!(O.command in Vm));if(b.length===0)return!1;let M=b.filter(O=>!(O.command in Dn));if(M.length>0)throw new Error(`Unimplemented: ${M.map(O=>O.command).join(\", \")}.`);for(let O of b)O.command!==\"setTransition\"&&this[O.command].apply(this,O.args);return this.stylesheet=l,this._serializedLayers=null,!0}addImage(l,d){if(this.getImage(l))return this.fire(new n.j(new Error(`An image named \"${l}\" already exists.`)));this.imageManager.addImage(l,d),this._afterImageUpdated(l)}updateImage(l,d){this.imageManager.updateImage(l,d)}getImage(l){return this.imageManager.getImage(l)}removeImage(l){if(!this.getImage(l))return this.fire(new n.j(new Error(`An image named \"${l}\" does not exist.`)));this.imageManager.removeImage(l),this._afterImageUpdated(l)}_afterImageUpdated(l){this._availableImages=this.imageManager.listImages(),this._changedImages[l]=!0,this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(l,d,v={}){if(this._checkLoaded(),this.sourceCaches[l]!==void 0)throw new Error(`Source \"${l}\" already exists.`);if(!d.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(d).join(\", \")}.`);if([\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(d.type)>=0&&this._validate(n.y.source,`sources.${l}`,d,null,v))return;this.map&&this.map._collectResourceTiming&&(d.collectResourceTiming=!0);let b=this.sourceCaches[l]=new ls(l,d,this.dispatcher);b.style=this,b.setEventedParent(this,()=>({isSourceLoaded:b.loaded(),source:b.serialize(),sourceId:l})),b.onAdd(this.map),this._changed=!0}removeSource(l){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(\"There is no source with this ID\");for(let v in this._layers)if(this._layers[v].source===l)return this.fire(new n.j(new Error(`Source \"${l}\" cannot be removed while layer \"${v}\" is using it.`)));let d=this.sourceCaches[l];delete this.sourceCaches[l],delete this._updatedSources[l],d.fire(new n.k(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:l})),d.setEventedParent(null),d.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(l,d){if(this._checkLoaded(),this.sourceCaches[l]===void 0)throw new Error(`There is no source with this ID=${l}`);let v=this.sourceCaches[l].getSource();if(v.type!==\"geojson\")throw new Error(`geojsonSource.type is ${v.type}, which is !== 'geojson`);v.setData(d),this._changed=!0}getSource(l){return this.sourceCaches[l]&&this.sourceCaches[l].getSource()}addLayer(l,d,v={}){this._checkLoaded();let b=l.id;if(this.getLayer(b))return void this.fire(new n.j(new Error(`Layer \"${b}\" already exists on this map.`)));let M;if(l.type===\"custom\"){if(ln(this,n.aF(l)))return;M=n.aC(l)}else{if(\"source\"in l&&typeof l.source==\"object\"&&(this.addSource(b,l.source),l=n.aD(l),l=n.e(l,{source:b})),this._validate(n.y.layer,`layers.${b}`,l,{arrayIndex:-1},v))return;M=n.aC(l),this._validateLayer(M),M.setEventedParent(this,{layer:{id:b}})}let O=d?this._order.indexOf(d):this._order.length;if(d&&O===-1)this.fire(new n.j(new Error(`Cannot add layer \"${b}\" before non-existing layer \"${d}\".`)));else{if(this._order.splice(O,0,b),this._layerOrderChanged=!0,this._layers[b]=M,this._removedLayers[b]&&M.source&&M.type!==\"custom\"){let B=this._removedLayers[b];delete this._removedLayers[b],B.type!==M.type?this._updatedSources[M.source]=\"clear\":(this._updatedSources[M.source]=\"reload\",this.sourceCaches[M.source].pause())}this._updateLayer(M),M.onAdd&&M.onAdd(this.map)}}moveLayer(l,d){if(this._checkLoaded(),this._changed=!0,!this._layers[l])return void this.fire(new n.j(new Error(`The layer '${l}' does not exist in the map's style and cannot be moved.`)));if(l===d)return;let v=this._order.indexOf(l);this._order.splice(v,1);let b=d?this._order.indexOf(d):this._order.length;d&&b===-1?this.fire(new n.j(new Error(`Cannot move layer \"${l}\" before non-existing layer \"${d}\".`))):(this._order.splice(b,0,l),this._layerOrderChanged=!0)}removeLayer(l){this._checkLoaded();let d=this._layers[l];if(!d)return void this.fire(new n.j(new Error(`Cannot remove non-existing layer \"${l}\".`)));d.setEventedParent(null);let v=this._order.indexOf(l);this._order.splice(v,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[l]=d,delete this._layers[l],this._serializedLayers&&delete this._serializedLayers[l],delete this._updatedLayers[l],delete this._updatedPaintProps[l],d.onRemove&&d.onRemove(this.map)}getLayer(l){return this._layers[l]}getLayersOrder(){return[...this._order]}hasLayer(l){return l in this._layers}setLayerZoomRange(l,d,v){this._checkLoaded();let b=this.getLayer(l);b?b.minzoom===d&&b.maxzoom===v||(d!=null&&(b.minzoom=d),v!=null&&(b.maxzoom=v),this._updateLayer(b)):this.fire(new n.j(new Error(`Cannot set the zoom range of non-existing layer \"${l}\".`)))}setFilter(l,d,v={}){this._checkLoaded();let b=this.getLayer(l);if(b){if(!n.aG(b.filter,d))return d==null?(b.filter=void 0,void this._updateLayer(b)):void(this._validate(n.y.filter,`layers.${b.id}.filter`,d,null,v)||(b.filter=n.aD(d),this._updateLayer(b)))}else this.fire(new n.j(new Error(`Cannot filter non-existing layer \"${l}\".`)))}getFilter(l){return n.aD(this.getLayer(l).filter)}setLayoutProperty(l,d,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?n.aG(M.getLayoutProperty(d),v)||(M.setLayoutProperty(d,v,b),this._updateLayer(M)):this.fire(new n.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getLayoutProperty(l,d){let v=this.getLayer(l);if(v)return v.getLayoutProperty(d);this.fire(new n.j(new Error(`Cannot get style of non-existing layer \"${l}\".`)))}setPaintProperty(l,d,v,b={}){this._checkLoaded();let M=this.getLayer(l);M?n.aG(M.getPaintProperty(d),v)||(M.setPaintProperty(d,v,b)&&this._updateLayer(M),this._changed=!0,this._updatedPaintProps[l]=!0):this.fire(new n.j(new Error(`Cannot style non-existing layer \"${l}\".`)))}getPaintProperty(l,d){return this.getLayer(l).getPaintProperty(d)}setFeatureState(l,d){this._checkLoaded();let v=l.source,b=l.sourceLayer,M=this.sourceCaches[v];if(M===void 0)return void this.fire(new n.j(new Error(`The source '${v}' does not exist in the map's style.`)));let O=M.getSource().type;O===\"geojson\"&&b?this.fire(new n.j(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):O!==\"vector\"||b?(l.id===void 0&&this.fire(new n.j(new Error(\"The feature id parameter must be provided.\"))),M.setFeatureState(b,l.id,d)):this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}removeFeatureState(l,d){this._checkLoaded();let v=l.source,b=this.sourceCaches[v];if(b===void 0)return void this.fire(new n.j(new Error(`The source '${v}' does not exist in the map's style.`)));let M=b.getSource().type,O=M===\"vector\"?l.sourceLayer:void 0;M!==\"vector\"||O?d&&typeof l.id!=\"string\"&&typeof l.id!=\"number\"?this.fire(new n.j(new Error(\"A feature id is required to remove its specific state property.\"))):b.removeFeatureState(O,l.id,d):this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")))}getFeatureState(l){this._checkLoaded();let d=l.source,v=l.sourceLayer,b=this.sourceCaches[d];if(b!==void 0)return b.getSource().type!==\"vector\"||v?(l.id===void 0&&this.fire(new n.j(new Error(\"The feature id parameter must be provided.\"))),b.getFeatureState(v,l.id)):void this.fire(new n.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));this.fire(new n.j(new Error(`The source '${d}' does not exist in the map's style.`)))}getTransition(){return n.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;let l=n.aH(this.sourceCaches,M=>M.serialize()),d=this._serializeByIds(this._order),v=this.map.getTerrain()||void 0,b=this.stylesheet;return n.aI({version:b.version,name:b.name,metadata:b.metadata,light:b.light,center:b.center,zoom:b.zoom,bearing:b.bearing,pitch:b.pitch,sprite:b.sprite,glyphs:b.glyphs,transition:b.transition,sources:l,layers:d,terrain:v},M=>M!==void 0)}_updateLayer(l){this._updatedLayers[l.id]=!0,l.source&&!this._updatedSources[l.source]&&this.sourceCaches[l.source].getSource().type!==\"raster\"&&(this._updatedSources[l.source]=\"reload\",this.sourceCaches[l.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(l){let d=O=>this._layers[O].type===\"fill-extrusion\",v={},b=[];for(let O=this._order.length-1;O>=0;O--){let B=this._order[O];if(d(B)){v[B]=O;for(let U of l){let W=U[B];if(W)for(let Z of W)b.push(Z)}}}b.sort((O,B)=>B.intersectionZ-O.intersectionZ);let M=[];for(let O=this._order.length-1;O>=0;O--){let B=this._order[O];if(d(B))for(let U=b.length-1;U>=0;U--){let W=b[U].feature;if(v[W.layer.id]<O)break;M.push(W),b.pop()}else for(let U of l){let W=U[B];if(W)for(let Z of W)M.push(Z.feature)}}return M}queryRenderedFeatures(l,d,v){d&&d.filter&&this._validate(n.y.filter,\"queryRenderedFeatures.filter\",d.filter,null,d);let b={};if(d&&d.layers){if(!Array.isArray(d.layers))return this.fire(new n.j(new Error(\"parameters.layers must be an Array.\"))),[];for(let B of d.layers){let U=this._layers[B];if(!U)return this.fire(new n.j(new Error(`The layer '${B}' does not exist in the map's style and cannot be queried for features.`))),[];b[U.source]=!0}}let M=[];d.availableImages=this._availableImages;let O=this._serializedAllLayers();for(let B in this.sourceCaches)d.layers&&!b[B]||M.push(na(this.sourceCaches[B],this._layers,O,l,d,v));return this.placement&&M.push(function(B,U,W,Z,$,st,At){let pt={},yt=st.queryRenderedSymbols(Z),dt=[];for(let Ft of Object.keys(yt).map(Number))dt.push(At[Ft]);dt.sort(as);for(let Ft of dt){let Ht=Ft.featureIndex.lookupSymbolFeatures(yt[Ft.bucketInstanceId],U,Ft.bucketIndex,Ft.sourceLayerIndex,$.filter,$.layers,$.availableImages,B);for(let St in Ht){let Bt=pt[St]=pt[St]||[],Qt=Ht[St];Qt.sort(($t,oe)=>{let pe=Ft.featureSortOrder;if(pe){let he=pe.indexOf($t.featureIndex);return pe.indexOf(oe.featureIndex)-he}return oe.featureIndex-$t.featureIndex});for(let $t of Qt)Bt.push($t)}}for(let Ft in pt)pt[Ft].forEach(Ht=>{let St=Ht.feature,Bt=W[B[Ft].source].getFeatureState(St.layer[\"source-layer\"],St.id);St.source=St.layer.source,St.layer[\"source-layer\"]&&(St.sourceLayer=St.layer[\"source-layer\"]),St.state=Bt});return pt}(this._layers,O,this.sourceCaches,l,d,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(M)}querySourceFeatures(l,d){d&&d.filter&&this._validate(n.y.filter,\"querySourceFeatures.filter\",d.filter,null,d);let v=this.sourceCaches[l];return v?function(b,M){let O=b.getRenderableIds().map(W=>b.getTileByID(W)),B=[],U={};for(let W=0;W<O.length;W++){let Z=O[W],$=Z.tileID.canonical.key;U[$]||(U[$]=!0,Z.querySourceFeatures(B,M))}return B}(v,d):[]}addSourceType(l,d,v){return xo(l)?v(new Error(`A source type called \"${l}\" already exists.`)):(((b,M)=>{cl[b]=M})(l,d),d.workerSourceURL?void this.dispatcher.broadcast(\"loadWorkerSource\",{name:l,url:d.workerSourceURL},v):v(null,null))}getLight(){return this.light.getLight()}setLight(l,d={}){this._checkLoaded();let v=this.light.getLight(),b=!1;for(let O in l)if(!n.aG(l[O],v[O])){b=!0;break}if(!b)return;let M={now:n.h.now(),transition:n.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(l,d),this.light.updateTransitions(M)}_validate(l,d,v,b,M={}){return(!M||M.validate!==!1)&&ln(this,l.call(n.y,n.e({key:d,style:this.serialize(),value:v,styleSpec:n.v},b)))}_remove(l=!0){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),n.aJ.off(\"pluginStateChange\",this._rtlTextPluginCallback);for(let d in this._layers)this._layers[d].setEventedParent(null);for(let d in this.sourceCaches){let v=this.sourceCaches[d];v.setEventedParent(null),v.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove(l)}_clearSource(l){this.sourceCaches[l].clearTiles()}_reloadSource(l){this.sourceCaches[l].resume(),this.sourceCaches[l].reload()}_updateSources(l){for(let d in this.sourceCaches)this.sourceCaches[d].update(l,this.map.terrain)}_generateCollisionBoxes(){for(let l in this.sourceCaches)this._reloadSource(l)}_updatePlacement(l,d,v,b,M=!1){let O=!1,B=!1,U={};for(let W of this._order){let Z=this._layers[W];if(Z.type!==\"symbol\")continue;if(!U[Z.source]){let st=this.sourceCaches[Z.source];U[Z.source]=st.getRenderableIds(!0).map(At=>st.getTileByID(At)).sort((At,pt)=>pt.tileID.overscaledZ-At.tileID.overscaledZ||(At.tileID.isLessThan(pt.tileID)?-1:1))}let $=this.crossTileSymbolIndex.addLayer(Z,U[Z.source],l.center.lng);O=O||$}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((M=M||this._layerOrderChanged||v===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(n.h.now(),l.zoom))&&(this.pauseablePlacement=new Vl(l,this.map.terrain,this._order,M,d,v,b,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,U),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(n.h.now()),B=!0),O&&this.pauseablePlacement.placement.setStale()),B||O)for(let W of this._order){let Z=this._layers[W];Z.type===\"symbol\"&&this.placement.updateLayerOpacities(Z,U[Z.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(n.h.now())}_releaseSymbolFadeTiles(){for(let l in this.sourceCaches)this.sourceCaches[l].releaseSymbolFadeTiles()}getImages(l,d,v){this.imageManager.getImages(d.icons,v),this._updateTilesForChangedImages();let b=this.sourceCaches[d.source];b&&b.setDependencies(d.tileID.key,d.type,d.icons)}getGlyphs(l,d,v){this.glyphManager.getGlyphs(d.stacks,v);let b=this.sourceCaches[d.source];b&&b.setDependencies(d.tileID.key,d.type,[\"\"])}getResource(l,d,v){return n.m(d,v)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(l,d={}){this._checkLoaded(),l&&this._validate(n.y.glyphs,\"glyphs\",l,null,d)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=l,this.glyphManager.entries={},this.glyphManager.setURL(l))}addSprite(l,d,v={},b){this._checkLoaded();let M=[{id:l,url:d}],O=[...kt(this.stylesheet.sprite),...M];this._validate(n.y.sprite,\"sprite\",O,null,v)||(this.stylesheet.sprite=O,this._loadSprite(M,!0,b))}removeSprite(l){this._checkLoaded();let d=kt(this.stylesheet.sprite);if(d.find(v=>v.id===l)){if(this._spritesImagesIds[l])for(let v of this._spritesImagesIds[l])this.imageManager.removeImage(v),this._changedImages[v]=!0;d.splice(d.findIndex(v=>v.id===l),1),this.stylesheet.sprite=d.length>0?d:void 0,delete this._spritesImagesIds[l],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new n.k(\"data\",{dataType:\"style\"}))}else this.fire(new n.j(new Error(`Sprite \"${l}\" doesn't exists on this map.`)))}getSprite(){return kt(this.stylesheet.sprite)}setSprite(l,d={},v){this._checkLoaded(),l&&this._validate(n.y.sprite,\"sprite\",l,null,d)||(this.stylesheet.sprite=l,l?this._loadSprite(l,!0,v):(this._unloadSprite(),v&&v(null)))}}Gn.registerForPluginStateChange=n.aK;var So=n.Q([{name:\"a_pos\",type:\"Int16\",components:2}]),jl=\"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\";let Ki={prelude:_i(`#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\n`,`#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}`),background:_i(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),backgroundPattern:_i(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"),circle:_i(`varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:_i(\"void main() {gl_FragColor=vec4(1.0);}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),heatmap:_i(`uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),heatmapTexture:_i(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"),collisionBox:_i(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\"),collisionCircle:_i(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\",\"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"),debug:_i(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\",\"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"),fill:_i(`#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:_i(`varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:_i(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:_i(`varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:_i(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),hillshade:_i(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"),line:_i(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),lineGradient:_i(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}`),linePattern:_i(`#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:_i(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:_i(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,\"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"),symbolIcon:_i(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:_i(`#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:_i(`#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:_i(\"uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}\",jl),terrainDepth:_i(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\",jl),terrainCoords:_i(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\",jl)};function _i(T,l){let d=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,v=l.match(/attribute ([\\w]+) ([\\w]+)/g),b=T.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),M=l.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),O=M?M.concat(b):b,B={};return{fragmentSource:T=T.replace(d,(U,W,Z,$,st)=>(B[st]=!0,W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nvarying ${Z} ${$} ${st};\n#else\nuniform ${Z} ${$} u_${st};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${st}\n ${Z} ${$} ${st} = u_${st};\n#endif\n`)),vertexSource:l=l.replace(d,(U,W,Z,$,st)=>{let At=$===\"float\"?\"vec2\":\"vec4\",pt=st.match(/color/)?\"color\":At;return B[st]?W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nuniform lowp float u_${st}_t;\nattribute ${Z} ${At} a_${st};\nvarying ${Z} ${$} ${st};\n#else\nuniform ${Z} ${$} u_${st};\n#endif\n`:pt===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${st}\n ${st} = a_${st};\n#else\n ${Z} ${$} ${st} = u_${st};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${st}\n ${st} = unpack_mix_${pt}(a_${st}, u_${st}_t);\n#else\n ${Z} ${$} ${st} = u_${st};\n#endif\n`:W===\"define\"?`\n#ifndef HAS_UNIFORM_u_${st}\nuniform lowp float u_${st}_t;\nattribute ${Z} ${At} a_${st};\n#else\nuniform ${Z} ${$} u_${st};\n#endif\n`:pt===\"vec4\"?`\n#ifndef HAS_UNIFORM_u_${st}\n ${Z} ${$} ${st} = a_${st};\n#else\n ${Z} ${$} ${st} = u_${st};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${st}\n ${Z} ${$} ${st} = unpack_mix_${pt}(a_${st}, u_${st}_t);\n#else\n ${Z} ${$} ${st} = u_${st};\n#endif\n`}),staticAttributes:v,staticUniforms:O}}class Gl{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(l,d,v,b,M,O,B,U,W){this.context=l;let Z=this.boundPaintVertexBuffers.length!==b.length;for(let $=0;!Z&&$<b.length;$++)this.boundPaintVertexBuffers[$]!==b[$]&&(Z=!0);!this.vao||this.boundProgram!==d||this.boundLayoutVertexBuffer!==v||Z||this.boundIndexBuffer!==M||this.boundVertexOffset!==O||this.boundDynamicVertexBuffer!==B||this.boundDynamicVertexBuffer2!==U||this.boundDynamicVertexBuffer3!==W?this.freshBind(d,v,b,M,O,B,U,W):(l.bindVertexArray.set(this.vao),B&&B.bind(),M&&M.dynamicDraw&&M.bind(),U&&U.bind(),W&&W.bind())}freshBind(l,d,v,b,M,O,B,U){let W=l.numAttributes,Z=this.context,$=Z.gl;this.vao&&this.destroy(),this.vao=Z.createVertexArray(),Z.bindVertexArray.set(this.vao),this.boundProgram=l,this.boundLayoutVertexBuffer=d,this.boundPaintVertexBuffers=v,this.boundIndexBuffer=b,this.boundVertexOffset=M,this.boundDynamicVertexBuffer=O,this.boundDynamicVertexBuffer2=B,this.boundDynamicVertexBuffer3=U,d.enableAttributes($,l);for(let st of v)st.enableAttributes($,l);O&&O.enableAttributes($,l),B&&B.enableAttributes($,l),U&&U.enableAttributes($,l),d.bind(),d.setVertexAttribPointers($,l,M);for(let st of v)st.bind(),st.setVertexAttribPointers($,l,M);O&&(O.bind(),O.setVertexAttribPointers($,l,M)),b&&b.bind(),B&&(B.bind(),B.setVertexAttribPointers($,l,M)),U&&(U.bind(),U.setVertexAttribPointers($,l,M)),Z.currentNumAttributes=W}destroy(){this.vao&&(this.context.deleteVertexArray(this.vao),this.vao=null)}}function cn(T){let l=[];for(let d=0;d<T.length;d++){if(T[d]===null)continue;let v=T[d].split(\" \");l.push(v.pop())}return l}class pu{constructor(l,d,v,b,M,O){let B=l.gl;this.program=B.createProgram();let U=cn(d.staticAttributes),W=v?v.getBinderAttributes():[],Z=U.concat(W),$=Ki.prelude.staticUniforms?cn(Ki.prelude.staticUniforms):[],st=d.staticUniforms?cn(d.staticUniforms):[],At=v?v.getBinderUniforms():[],pt=$.concat(st).concat(At),yt=[];for(let $t of pt)yt.indexOf($t)<0&&yt.push($t);let dt=v?v.defines():[];M&&dt.push(\"#define OVERDRAW_INSPECTOR;\"),O&&dt.push(\"#define TERRAIN3D;\");let Ft=dt.concat(Ki.prelude.fragmentSource,d.fragmentSource).join(`\n`),Ht=dt.concat(Ki.prelude.vertexSource,d.vertexSource).join(`\n`),St=B.createShader(B.FRAGMENT_SHADER);if(B.isContextLost())return void(this.failedToCreate=!0);if(B.shaderSource(St,Ft),B.compileShader(St),!B.getShaderParameter(St,B.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${B.getShaderInfoLog(St)}`);B.attachShader(this.program,St);let Bt=B.createShader(B.VERTEX_SHADER);if(B.isContextLost())return void(this.failedToCreate=!0);if(B.shaderSource(Bt,Ht),B.compileShader(Bt),!B.getShaderParameter(Bt,B.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${B.getShaderInfoLog(Bt)}`);B.attachShader(this.program,Bt),this.attributes={};let Qt={};this.numAttributes=Z.length;for(let $t=0;$t<this.numAttributes;$t++)Z[$t]&&(B.bindAttribLocation(this.program,$t,Z[$t]),this.attributes[Z[$t]]=$t);if(B.linkProgram(this.program),!B.getProgramParameter(this.program,B.LINK_STATUS))throw new Error(`Program failed to link: ${B.getProgramInfoLog(this.program)}`);B.deleteShader(Bt),B.deleteShader(St);for(let $t=0;$t<yt.length;$t++){let oe=yt[$t];if(oe&&!Qt[oe]){let pe=B.getUniformLocation(this.program,oe);pe&&(Qt[oe]=pe)}}this.fixedUniforms=b(l,Qt),this.terrainUniforms=(($t,oe)=>({u_depth:new n.aL($t,oe.u_depth),u_terrain:new n.aL($t,oe.u_terrain),u_terrain_dim:new n.aM($t,oe.u_terrain_dim),u_terrain_matrix:new n.aN($t,oe.u_terrain_matrix),u_terrain_unpack:new n.aO($t,oe.u_terrain_unpack),u_terrain_exaggeration:new n.aM($t,oe.u_terrain_exaggeration)}))(l,Qt),this.binderUniforms=v?v.getUniforms(l,Qt):[]}draw(l,d,v,b,M,O,B,U,W,Z,$,st,At,pt,yt,dt,Ft,Ht){let St=l.gl;if(this.failedToCreate)return;if(l.program.set(this.program),l.setDepthMode(v),l.setStencilMode(b),l.setColorMode(M),l.setCullFace(O),U){l.activeTexture.set(St.TEXTURE2),St.bindTexture(St.TEXTURE_2D,U.depthTexture),l.activeTexture.set(St.TEXTURE3),St.bindTexture(St.TEXTURE_2D,U.texture);for(let Qt in this.terrainUniforms)this.terrainUniforms[Qt].set(U[Qt])}for(let Qt in this.fixedUniforms)this.fixedUniforms[Qt].set(B[Qt]);yt&&yt.setUniforms(l,this.binderUniforms,At,{zoom:pt});let Bt=0;switch(d){case St.LINES:Bt=2;break;case St.TRIANGLES:Bt=3;break;case St.LINE_STRIP:Bt=1}for(let Qt of st.get()){let $t=Qt.vaos||(Qt.vaos={});($t[W]||($t[W]=new Gl)).bind(l,this,Z,yt?yt.getPaintVertexBuffers():[],$,Qt.vertexOffset,dt,Ft,Ht),St.drawElements(d,Qt.primitiveLength*Bt,St.UNSIGNED_SHORT,Qt.primitiveOffset*Bt*2)}}}function rs(T,l,d){let v=1/Dt(d,1,l.transform.tileZoom),b=Math.pow(2,d.tileID.overscaledZ),M=d.tileSize*Math.pow(2,l.transform.tileZoom)/b,O=M*(d.tileID.canonical.x+d.tileID.wrap*b),B=M*d.tileID.canonical.y;return{u_image:0,u_texsize:d.imageAtlasTexture.size,u_scale:[v,T.fromScale,T.toScale],u_fade:T.t,u_pixel_coord_upper:[O>>16,B>>16],u_pixel_coord_lower:[65535&O,65535&B]}}let Gp=(T,l,d,v)=>{let b=l.style.light,M=b.properties.get(\"position\"),O=[M.x,M.y,M.z],B=function(){var W=new n.A(9);return n.A!=Float32Array&&(W[1]=0,W[2]=0,W[3]=0,W[5]=0,W[6]=0,W[7]=0),W[0]=1,W[4]=1,W[8]=1,W}();b.properties.get(\"anchor\")===\"viewport\"&&function(W,Z){var $=Math.sin(Z),st=Math.cos(Z);W[0]=st,W[1]=$,W[2]=0,W[3]=-$,W[4]=st,W[5]=0,W[6]=0,W[7]=0,W[8]=1}(B,-l.transform.angle),function(W,Z,$){var st=Z[0],At=Z[1],pt=Z[2];W[0]=st*$[0]+At*$[3]+pt*$[6],W[1]=st*$[1]+At*$[4]+pt*$[7],W[2]=st*$[2]+At*$[5]+pt*$[8]}(O,O,B);let U=b.properties.get(\"color\");return{u_matrix:T,u_lightpos:O,u_lightintensity:b.properties.get(\"intensity\"),u_lightcolor:[U.r,U.g,U.b],u_vertical_gradient:+d,u_opacity:v}},Wl=(T,l,d,v,b,M,O)=>n.e(Gp(T,l,d,v),rs(M,l,O),{u_height_factor:-Math.pow(2,b.overscaledZ)/O.tileSize/8}),_d=T=>({u_matrix:T}),yd=(T,l,d,v)=>n.e(_d(T),rs(d,l,v)),vd=(T,l)=>({u_matrix:T,u_world:l}),xd=(T,l,d,v,b)=>n.e(yd(T,l,d,v),{u_world:b}),lt=(T,l,d,v)=>{let b=T.transform,M,O;if(v.paint.get(\"circle-pitch-alignment\")===\"map\"){let B=Dt(d,1,b.zoom);M=!0,O=[B,B]}else M=!1,O=b.pixelsToGLUnits;return{u_camera_to_center_distance:b.cameraToCenterDistance,u_scale_with_map:+(v.paint.get(\"circle-pitch-scale\")===\"map\"),u_matrix:T.translatePosMatrix(l.posMatrix,d,v.paint.get(\"circle-translate\"),v.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+M,u_device_pixel_ratio:T.pixelRatio,u_extrude_scale:O}},ft=(T,l,d)=>{let v=Dt(d,1,l.zoom),b=Math.pow(2,l.zoom-d.tileID.overscaledZ),M=d.tileID.overscaleFactor();return{u_matrix:T,u_camera_to_center_distance:l.cameraToCenterDistance,u_pixels_to_tile_units:v,u_extrude_scale:[l.pixelsToGLUnits[0]/(v*b),l.pixelsToGLUnits[1]/(v*b)],u_overscale_factor:M}},Lt=(T,l,d=1)=>({u_matrix:T,u_color:l,u_overlay:0,u_overlay_scale:d}),Kt=T=>({u_matrix:T}),ge=(T,l,d,v)=>({u_matrix:T,u_extrude_scale:Dt(l,1,d),u_intensity:v});function
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment