Files
PMTiles/assets/index-CAhF7OQY.js
2026-03-02 15:47:47 +00:00

823 lines
1.0 MiB
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var X_=Object.defineProperty,yn=(we,ce)=>X_(we,"name",{value:ce,configurable:!0});function sr(we,ce){let Ae="script";return we==="name"?Ae="script":we==="name2"?Ae="script2":we==="name3"&&(Ae="script3"),[["coalesce",["get",`pgf:${we}`],["get",we]],{"text-font":["case",["==",["get",Ae],"Devanagari"],["literal",["Noto Sans Devanagari Regular v1"]],["literal",[ce||"Noto Sans Regular"]]]}]}yn(sr,"get_name_block");function gn(we,ce,Ae){let ze="name";return Ae==="name"?ze="":Ae==="name2"?ze="2":Ae==="name3"&&(ze="3"),ce==="Latin"?["has",`script${ze}`]:we==="ja"?["all",["!=",["get",`script${ze}`],"Han"],["!=",["get",`script${ze}`],"Hiragana"],["!=",["get",`script${ze}`],"Katakana"],["!=",["get",`script${ze}`],"Mixed-Japanese"]]:["!=",["get",`script${ze}`],ce]}yn(gn,"is_not_in_target_script");function Kr(we){return we==="Devanagari"?{"text-font":["literal",["Noto Sans Devanagari Regular v1"]]}:{}}yn(Kr,"get_font_formatting");function nd(we){let ce=Y_.find(Ae=>Ae.lang===we);return ce===void 0?"Latin":ce.script}yn(nd,"get_default_script");function bf(we,ce){let Ae=ce||nd(we),ze;return Ae==="Devanagari"?ze="pgf:":ze="",["format",["coalesce",["get",`${ze}name:${we}`],["get","name:en"]],Kr(Ae)]}yn(bf,"get_country_name");function Yr(we,ce,Ae){let ze=ce||nd(we),ot;return ze==="Devanagari"?ot="pgf:":ot="",["case",["all",["any",["has","name"],["has","pgf:name"]],["!",["any",["has","name2"],["has","pgf:name2"]]],["!",["any",["has","name3"],["has","pgf:name3"]]]],["case",gn(we,ze,"name"),["case",["any",["is-supported-script",["get","name"]],["has","pgf:name"]],["format",["coalesce",["get",`${ot}name:${we}`],["get","name:en"]],Kr(ze),`
`,{},["case",["all",["!",["has",`${ot}name:${we}`]],["has","name:en"],["!",["has","script"]]],"",["coalesce",["get","pgf:name"],["get","name"]]],{"text-font":["case",["==",["get","script"],"Devanagari"],["literal",["Noto Sans Devanagari Regular v1"]],["literal",[Ae||"Noto Sans Regular"]]]}],["get","name:en"]],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name"],["get","name"]],Kr(ze)]],["all",["any",["has","name"],["has","pgf:name"]],["any",["has","name2"],["has","pgf:name2"]],["!",["any",["has","name3"],["has","pgf:name3"]]]],["case",["all",gn(we,ze,"name"),gn(we,ze,"name2")],["format",["get",`${ot}name:${we}`],Kr(ze),`
`,{},...sr("name",Ae),`
`,{},...sr("name2",Ae)],["case",gn(we,ze,"name2"),["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name"],["get","name"]],Kr(ze),`
`,{},...sr("name2",Ae)],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name2"],["get","name2"]],Kr(ze),`
`,{},...sr("name",Ae)]]],["case",["all",gn(we,ze,"name"),gn(we,ze,"name2"),gn(we,ze,"name3")],["format",["get",`${ot}name:${we}`],Kr(ze),`
`,{},...sr("name",Ae),`
`,{},...sr("name2",Ae),`
`,{},...sr("name3",Ae)],["case",["!",gn(we,ze,"name")],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name"],["get","name"]],Kr(ze),`
`,{},...sr("name2",Ae),`
`,{},...sr("name3",Ae)],["!",gn(we,ze,"name2")],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name2"],["get","name2"]],Kr(ze),`
`,{},...sr("name",Ae),`
`,{},...sr("name3",Ae)],["format",["coalesce",["get",`${ot}name:${we}`],["get","pgf:name3"],["get","name3"]],Kr(ze),`
`,{},...sr("name",Ae),`
`,{},...sr("name2",Ae)]]]]}yn(Yr,"get_multiline_name");var Y_=[{lang:"ar",full_name:"Arabic",script:"Arabic"},{lang:"cs",full_name:"Czech",script:"Latin"},{lang:"bg",full_name:"Bulgarian",script:"Cyrillic"},{lang:"da",full_name:"Danish",script:"Latin"},{lang:"de",full_name:"German",script:"Latin"},{lang:"el",full_name:"Greek",script:"Greek"},{lang:"en",full_name:"English",script:"Latin"},{lang:"es",full_name:"Spanish",script:"Latin"},{lang:"et",full_name:"Estonian",script:"Latin"},{lang:"fa",full_name:"Persian",script:"Arabic"},{lang:"fi",full_name:"Finnish",script:"Latin"},{lang:"fr",full_name:"French",script:"Latin"},{lang:"ga",full_name:"Irish",script:"Latin"},{lang:"he",full_name:"Hebrew",script:"Hebrew"},{lang:"hi",full_name:"Hindi",script:"Devanagari"},{lang:"hr",full_name:"Croatian",script:"Latin"},{lang:"hu",full_name:"Hungarian",script:"Latin"},{lang:"id",full_name:"Indonesian",script:"Latin"},{lang:"it",full_name:"Italian",script:"Latin"},{lang:"ja",full_name:"Japanese",script:""},{lang:"ko",full_name:"Korean",script:"Hangul"},{lang:"lt",full_name:"Lithuanian",script:"Latin"},{lang:"lv",full_name:"Latvian",script:"Latin"},{lang:"ne",full_name:"Nepali",script:"Devanagari"},{lang:"nl",full_name:"Dutch",script:"Latin"},{lang:"no",full_name:"Norwegian",script:"Latin"},{lang:"mr",full_name:"Marathi",script:"Devanagari"},{lang:"mt",full_name:"Maltese",script:"Latin"},{lang:"pl",full_name:"Polish",script:"Latin"},{lang:"pt",full_name:"Portuguese",script:"Latin"},{lang:"ro",full_name:"Romanian",script:"Latin"},{lang:"ru",full_name:"Russian",script:"Cyrillic"},{lang:"sk",full_name:"Slovak",script:"Latin"},{lang:"sl",full_name:"Slovenian",script:"Latin"},{lang:"sv",full_name:"Swedish",script:"Latin"},{lang:"tr",full_name:"Turkish",script:"Latin"},{lang:"uk",full_name:"Ukrainian",script:"Cyrillic"},{lang:"ur",full_name:"Urdu",script:"Arabic"},{lang:"vi",full_name:"Vietnamese",script:"Latin"},{lang:"zh-Hans",full_name:"Chinese (Simplified)",script:"Han"},{lang:"zh-Hant",full_name:"Chinese (Traditional)",script:"Han"}];function wf(we,ce){return[{id:"background",type:"background",paint:{"background-color":ce.background}},{id:"earth",type:"fill",filter:["==","$type","Polygon"],source:we,"source-layer":"earth",paint:{"fill-color":ce.earth}},...ce.landcover?[{id:"landcover",type:"fill",source:we,"source-layer":"landcover",paint:{"fill-color":["match",["get","kind"],"grassland",ce.landcover.grassland,"barren",ce.landcover.barren,"urban_area",ce.landcover.urban_area,"farmland",ce.landcover.farmland,"glacier",ce.landcover.glacier,"scrub",ce.landcover.scrub,ce.landcover.forest],"fill-opacity":["interpolate",["linear"],["zoom"],5,1,7,0]}}]:[],{id:"landuse_park",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","national_park","park","cemetery","protected_area","nature_reserve","forest","golf_course","wood","nature_reserve","forest","scrub","grassland","grass","military","naval_base","airfield"],paint:{"fill-opacity":["interpolate",["linear"],["zoom"],6,0,11,1],"fill-color":["case",["in",["get","kind"],["literal",["national_park","park","cemetery","protected_area","nature_reserve","forest","golf_course"]]],ce.park_b,["in",["get","kind"],["literal",["wood","nature_reserve","forest"]]],ce.wood_b,["in",["get","kind"],["literal",["scrub","grassland","grass"]]],ce.scrub_b,["in",["get","kind"],["literal",["glacier"]]],ce.glacier,["in",["get","kind"],["literal",["sand"]]],ce.sand,["in",["get","kind"],["literal",["military","naval_base","airfield"]]],ce.zoo,ce.earth]}},{id:"landuse_urban_green",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","allotments","village_green","playground"],paint:{"fill-color":ce.park_b,"fill-opacity":.7}},{id:"landuse_hospital",type:"fill",source:we,"source-layer":"landuse",filter:["==","kind","hospital"],paint:{"fill-color":ce.hospital}},{id:"landuse_industrial",type:"fill",source:we,"source-layer":"landuse",filter:["==","kind","industrial"],paint:{"fill-color":ce.industrial}},{id:"landuse_school",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","school","university","college"],paint:{"fill-color":ce.school}},{id:"landuse_beach",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","beach"],paint:{"fill-color":ce.beach}},{id:"landuse_zoo",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","zoo"],paint:{"fill-color":ce.zoo}},{id:"landuse_aerodrome",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","aerodrome"],paint:{"fill-color":ce.aerodrome}},{id:"roads_runway",type:"line",source:we,"source-layer":"roads",filter:["==","kind_detail","runway"],paint:{"line-color":ce.runway,"line-width":["interpolate",["exponential",1.6],["zoom"],10,0,12,4,18,30]}},{id:"roads_taxiway",type:"line",source:we,"source-layer":"roads",minzoom:13,filter:["==","kind_detail","taxiway"],paint:{"line-color":ce.runway,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,15,6]}},{id:"landuse_runway",type:"fill",source:we,"source-layer":"landuse",filter:["any",["in","kind","runway","taxiway"]],paint:{"fill-color":ce.runway}},{id:"water",type:"fill",filter:["==","$type","Polygon"],source:we,"source-layer":"water",paint:{"fill-color":ce.water}},{id:"water_stream",type:"line",source:we,"source-layer":"water",minzoom:14,filter:["in","kind","stream"],paint:{"line-color":ce.water,"line-width":.5}},{id:"water_river",type:"line",source:we,"source-layer":"water",minzoom:9,filter:["in","kind","river"],paint:{"line-color":ce.water,"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1,18,12]}},{id:"landuse_pedestrian",type:"fill",source:we,"source-layer":"landuse",filter:["in","kind","pedestrian","dam"],paint:{"fill-color":ce.pedestrian}},{id:"landuse_pier",type:"fill",source:we,"source-layer":"landuse",filter:["==","kind","pier"],paint:{"fill-color":ce.pier}},{id:"roads_tunnels_other_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["in","kind","other","path"]],paint:{"line-color":ce.tunnel_other_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_tunnels_minor_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==","kind","minor_road"]],paint:{"line-color":ce.tunnel_minor_casing,"line-dasharray":[3,2],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1]}},{id:"roads_tunnels_link_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["has","is_link"]],paint:{"line-color":ce.tunnel_link_casing,"line-dasharray":[3,2],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1]}},{id:"roads_tunnels_major_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.tunnel_major_casing,"line-dasharray":[3,2],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,.5,18,13],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1]}},{id:"roads_tunnels_highway_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.tunnel_highway_casing,"line-dasharray":[6,.5],"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1,20,15]}},{id:"roads_tunnels_other",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["in","kind","other","path"]],paint:{"line-color":ce.tunnel_other,"line-dasharray":[4.5,.5],"line-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_tunnels_minor",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==","kind","minor_road"]],paint:{"line-color":ce.tunnel_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11]}},{id:"roads_tunnels_link",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["has","is_link"]],paint:{"line-color":ce.tunnel_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11]}},{id:"roads_tunnels_major",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==","kind","major_road"]],paint:{"line-color":ce.tunnel_major,"line-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13]}},{id:"roads_tunnels_highway",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_tunnel"],["==",["get","kind"],"highway"],["!",["has","is_link"]]],paint:{"line-color":ce.tunnel_highway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,1.1,12,1.6,15,5,18,15]}},{id:"buildings",type:"fill",source:we,"source-layer":"buildings",filter:["in","kind","building","building_part"],paint:{"fill-color":ce.buildings,"fill-opacity":.5}},{id:"roads_pier",type:"line",source:we,"source-layer":"roads",filter:["==","kind_detail","pier"],paint:{"line-color":ce.pier,"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,.5,20,16]}},{id:"roads_minor_service_casing",type:"line",source:we,"source-layer":"roads",minzoom:13,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["==","kind_detail","service"]],paint:{"line-color":ce.minor_service_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,18,8],"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,.8]}},{id:"roads_minor_casing",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["!=","kind_detail","service"]],paint:{"line-color":ce.minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1]}},{id:"roads_link_casing",type:"line",source:we,"source-layer":"roads",minzoom:13,filter:["has","is_link"],paint:{"line-color":ce.minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1.5]}},{id:"roads_major_casing_late",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.major_casing_late,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1]}},{id:"roads_highway_casing_late",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.highway_casing_late,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1,20,15]}},{id:"roads_other",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["in","kind","other","path"],["!=","kind_detail","pier"]],paint:{"line-color":ce.other,"line-dasharray":[3,1],"line-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_link",type:"line",source:we,"source-layer":"roads",filter:["has","is_link"],paint:{"line-color":ce.link,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11]}},{id:"roads_minor_service",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["==","kind_detail","service"]],paint:{"line-color":ce.minor_service,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,18,8]}},{id:"roads_minor",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","minor_road"],["!=","kind_detail","service"]],paint:{"line-color":["interpolate",["exponential",1.6],["zoom"],11,ce.minor_a,16,ce.minor_b],"line-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11]}},{id:"roads_major_casing_early",type:"line",source:we,"source-layer":"roads",maxzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.major_casing_early,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,.5,18,13],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1]}},{id:"roads_major",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.major,"line-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13]}},{id:"roads_highway_casing_early",type:"line",source:we,"source-layer":"roads",maxzoom:12,filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.highway_casing_early,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1]}},{id:"roads_highway",type:"line",source:we,"source-layer":"roads",filter:["all",["!has","is_tunnel"],["!has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.highway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,1.1,12,1.6,15,5,18,15]}},{id:"roads_rail",type:"line",source:we,"source-layer":"roads",filter:["==","kind","rail"],paint:{"line-dasharray":[.3,.75],"line-opacity":.5,"line-color":ce.railway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,.15,18,9]}},{id:"boundaries_country",type:"line",source:we,"source-layer":"boundaries",filter:["<=","kind_detail",2],paint:{"line-color":ce.boundaries,"line-width":.7,"line-dasharray":["step",["zoom"],["literal",[2]],4,["literal",[2,1]]]}},{id:"boundaries",type:"line",source:we,"source-layer":"boundaries",filter:[">","kind_detail",2],paint:{"line-color":ce.boundaries,"line-width":.4,"line-dasharray":["step",["zoom"],["literal",[2]],4,["literal",[2,1]]]}},{id:"roads_bridges_other_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["in","kind","other","path"]],paint:{"line-color":ce.bridges_other_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_bridges_link_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["has","is_link"]],paint:{"line-color":ce.bridges_minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],12,0,12.5,1.5]}},{id:"roads_bridges_minor_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","minor_road"]],paint:{"line-color":ce.bridges_minor_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11],"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,.8]}},{id:"roads_bridges_major_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.bridges_major_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,.5,18,10],"line-width":["interpolate",["exponential",1.6],["zoom"],9,0,9.5,1.5]}},{id:"roads_bridges_other",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["in","kind","other","path"]],paint:{"line-color":ce.bridges_other,"line-dasharray":[2,1],"line-width":["interpolate",["exponential",1.6],["zoom"],14,0,20,7]}},{id:"roads_bridges_minor",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","minor_road"]],paint:{"line-color":ce.bridges_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],11,0,12.5,.5,15,2,18,11]}},{id:"roads_bridges_link",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["has","is_link"]],paint:{"line-color":ce.bridges_minor,"line-width":["interpolate",["exponential",1.6],["zoom"],13,0,13.5,1,18,11]}},{id:"roads_bridges_major",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","major_road"]],paint:{"line-color":ce.bridges_major,"line-width":["interpolate",["exponential",1.6],["zoom"],6,0,12,1.6,15,3,18,13]}},{id:"roads_bridges_highway_casing",type:"line",source:we,"source-layer":"roads",minzoom:12,filter:["all",["has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.bridges_highway_casing,"line-gap-width":["interpolate",["exponential",1.6],["zoom"],3,0,3.5,.5,18,15],"line-width":["interpolate",["exponential",1.6],["zoom"],7,0,7.5,1,20,15]}},{id:"roads_bridges_highway",type:"line",source:we,"source-layer":"roads",filter:["all",["has","is_bridge"],["==","kind","highway"],["!has","is_link"]],paint:{"line-color":ce.bridges_highway,"line-width":["interpolate",["exponential",1.6],["zoom"],3,0,6,1.1,12,1.6,15,5,18,15]}}]}yn(wf,"nolabels_layers");function Tf(we,ce,Ae,ze){return[{id:"address_label",type:"symbol",source:we,"source-layer":"buildings",minzoom:18,filter:["==","kind","address"],layout:{"symbol-placement":"point","text-font":[ce.italic||"Noto Sans Italic"],"text-field":["get","addr_housenumber"],"text-size":12},paint:{"text-color":ce.address_label,"text-halo-color":ce.address_label_halo,"text-halo-width":1}},{id:"water_waterway_label",type:"symbol",source:we,"source-layer":"water",minzoom:13,filter:["in","kind","river","stream"],layout:{"symbol-placement":"line","text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":12,"text-letter-spacing":.2},paint:{"text-color":ce.ocean_label,"text-halo-color":ce.water,"text-halo-width":1}},{id:"roads_labels_minor",type:"symbol",source:we,"source-layer":"roads",minzoom:15,filter:["in","kind","minor_road","other","path"],layout:{"symbol-sort-key":["get","min_zoom"],"symbol-placement":"line","text-font":[ce.regular||"Noto Sans Regular"],"text-field":Yr(Ae,ze,ce.regular),"text-size":12},paint:{"text-color":ce.roads_label_minor,"text-halo-color":ce.roads_label_minor_halo,"text-halo-width":1}},{id:"water_label_ocean",type:"symbol",source:we,"source-layer":"water",filter:["in","kind","sea","ocean","bay","strait","fjord"],layout:{"text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":["interpolate",["linear"],["zoom"],3,10,10,12],"text-letter-spacing":.1,"text-max-width":9,"text-transform":"uppercase"},paint:{"text-color":ce.ocean_label,"text-halo-width":1,"text-halo-color":ce.water}},{id:"earth_label_islands",type:"symbol",source:we,"source-layer":"earth",filter:["in","kind","island"],layout:{"text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":10,"text-letter-spacing":.1,"text-max-width":8},paint:{"text-color":ce.subplace_label,"text-halo-color":ce.subplace_label_halo,"text-halo-width":1}},{id:"water_label_lakes",type:"symbol",source:we,"source-layer":"water",filter:["in","kind","lake","water"],layout:{"text-font":[ce.italic||"Noto Sans Italic"],"text-field":Yr(Ae,ze,ce.regular),"text-size":["interpolate",["linear"],["zoom"],3,10,6,12,10,12],"text-letter-spacing":.1,"text-max-width":9},paint:{"text-color":ce.ocean_label,"text-halo-color":ce.water,"text-halo-width":1}},{id:"roads_labels_major",type:"symbol",source:we,"source-layer":"roads",minzoom:11,filter:["in","kind","highway","major_road"],layout:{"symbol-sort-key":["get","min_zoom"],"symbol-placement":"line","text-font":[ce.regular||"Noto Sans Regular"],"text-field":Yr(Ae,ze,ce.regular),"text-size":12},paint:{"text-color":ce.roads_label_major,"text-halo-color":ce.roads_label_major_halo,"text-halo-width":1}},...ce.pois?[{id:"pois",type:"symbol",source:we,"source-layer":"pois",filter:["all",["in",["get","kind"],["literal",["beach","forest","marina","park","peak","zoo","garden","bench","aerodrome","station","bus_stop","ferry_terminal","stadium","university","library","school","animal","toilets","drinking_water"]]],[">=",["zoom"],["+",["get","min_zoom"],0]]],layout:{"icon-image":["match",["get","kind"],"station","train_station",["get","kind"]],"text-font":[ce.regular||"Noto Sans Regular"],"text-justify":"auto","text-field":Yr(Ae,ze,ce.regular),"text-size":["interpolate",["linear"],["zoom"],17,10,19,16],"text-max-width":8,"text-offset":[1.1,0],"text-variable-anchor":["left","right"]},paint:{"text-color":["case",["in",["get","kind"],["literal",["beach","forest","marina","park","peak","zoo","garden","bench"]]],ce.pois.green,["in",["get","kind"],["literal",["aerodrome","station","bus_stop","ferry_terminal"]]],ce.pois.lapis,["in",["get","kind"],["literal",["stadium","university","library","school","animal","toilets","drinking_water"]]],ce.pois.slategray,ce.earth],"text-halo-color":ce.earth,"text-halo-width":1}}]:[],{id:"places_subplace",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","neighbourhood"],layout:{"symbol-sort-key":["case",["has","sort_key"],["get","sort_key"],["get","min_zoom"]],"text-field":Yr(Ae,ze,ce.regular),"text-font":[ce.regular||"Noto Sans Regular"],"text-max-width":7,"text-letter-spacing":.1,"text-padding":["interpolate",["linear"],["zoom"],5,2,8,4,12,18,15,20],"text-size":["interpolate",["exponential",1.2],["zoom"],11,8,14,14,18,24],"text-transform":"uppercase"},paint:{"text-color":ce.subplace_label,"text-halo-color":ce.subplace_label_halo,"text-halo-width":1}},{id:"places_region",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","region"],layout:{"symbol-sort-key":["get","sort_key"],"text-field":["step",["zoom"],["coalesce",["get","ref:en"],["get","ref"]],6,Yr(Ae,ze,ce.regular)],"text-font":[ce.regular||"Noto Sans Regular"],"text-size":["interpolate",["linear"],["zoom"],3,11,7,16],"text-radial-offset":.2,"text-anchor":"center","text-transform":"uppercase"},paint:{"text-color":ce.state_label,"text-halo-color":ce.state_label_halo,"text-halo-width":1}},{id:"places_locality",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","locality"],layout:{"icon-image":["step",["zoom"],"townspot",8,""],"icon-size":.7,"text-field":Yr(Ae,ze,ce.regular),"text-font":["case",["<=",["get","min_zoom"],5],["literal",[ce.bold||"Noto Sans Medium"]],["literal",[ce.regular||"Noto Sans Regular"]]],"symbol-sort-key":["case",["has","sort_key"],["get","sort_key"],["get","min_zoom"]],"text-padding":["interpolate",["linear"],["zoom"],5,3,8,7,12,11],"text-size":["interpolate",["linear"],["zoom"],2,["case",["<",["get","population_rank"],13],8,[">=",["get","population_rank"],13],13,0],4,["case",["<",["get","population_rank"],13],10,[">=",["get","population_rank"],13],15,0],6,["case",["<",["get","population_rank"],12],11,[">=",["get","population_rank"],12],17,0],8,["case",["<",["get","population_rank"],11],11,[">=",["get","population_rank"],11],18,0],10,["case",["<",["get","population_rank"],9],12,[">=",["get","population_rank"],9],20,0],15,["case",["<",["get","population_rank"],8],12,[">=",["get","population_rank"],8],22,0]],"icon-padding":["interpolate",["linear"],["zoom"],0,0,8,4,10,8,12,6,22,2],"text-justify":"auto","text-anchor":["step",["zoom"],"left",8,"center"],"text-radial-offset":.4},paint:{"text-color":ce.city_label,"text-halo-color":ce.city_label_halo,"text-halo-width":1}},{id:"places_country",type:"symbol",source:we,"source-layer":"places",filter:["==","kind","country"],layout:{"symbol-sort-key":["case",["has","sort_key"],["get","sort_key"],["get","min_zoom"]],"text-field":bf(Ae,ze),"text-font":[ce.bold||"Noto Sans Medium"],"text-size":["interpolate",["linear"],["zoom"],2,["case",["<",["get","population_rank"],10],8,[">=",["get","population_rank"],10],12,0],6,["case",["<",["get","population_rank"],8],10,[">=",["get","population_rank"],8],18,0],8,["case",["<",["get","population_rank"],7],11,[">=",["get","population_rank"],7],20,0]],"icon-padding":["interpolate",["linear"],["zoom"],0,2,14,2,16,20,17,2,22,2],"text-transform":"uppercase"},paint:{"text-color":ce.country_label,"text-halo-color":ce.earth,"text-halo-width":1}}]}yn(Tf,"labels_layers");var K_={background:"#cccccc",earth:"#e2dfda",park_a:"#cfddd5",park_b:"#9cd3b4",hospital:"#e4dad9",industrial:"#d1dde1",school:"#e4ded7",wood_a:"#d0ded0",wood_b:"#a0d9a0",pedestrian:"#e3e0d4",scrub_a:"#cedcd7",scrub_b:"#99d2bb",glacier:"#e7e7e7",sand:"#e2e0d7",beach:"#e8e4d0",aerodrome:"#dadbdf",runway:"#e9e9ed",water:"#80deea",zoo:"#c6dcdc",military:"#dcdcdc",tunnel_other_casing:"#e0e0e0",tunnel_minor_casing:"#e0e0e0",tunnel_link_casing:"#e0e0e0",tunnel_major_casing:"#e0e0e0",tunnel_highway_casing:"#e0e0e0",tunnel_other:"#d5d5d5",tunnel_minor:"#d5d5d5",tunnel_link:"#d5d5d5",tunnel_major:"#d5d5d5",tunnel_highway:"#d5d5d5",pier:"#e0e0e0",buildings:"#cccccc",minor_service_casing:"#e0e0e0",minor_casing:"#e0e0e0",link_casing:"#e0e0e0",major_casing_late:"#e0e0e0",highway_casing_late:"#e0e0e0",other:"#ebebeb",minor_service:"#ebebeb",minor_a:"#ebebeb",minor_b:"#ffffff",link:"#ffffff",major_casing_early:"#e0e0e0",major:"#ffffff",highway_casing_early:"#e0e0e0",highway:"#ffffff",railway:"#a7b1b3",boundaries:"#adadad",bridges_other_casing:"#e0e0e0",bridges_minor_casing:"#e0e0e0",bridges_link_casing:"#e0e0e0",bridges_major_casing:"#e0e0e0",bridges_highway_casing:"#e0e0e0",bridges_other:"#ebebeb",bridges_minor:"#ffffff",bridges_link:"#ffffff",bridges_major:"#f5f5f5",bridges_highway:"#ffffff",roads_label_minor:"#91888b",roads_label_minor_halo:"#ffffff",roads_label_major:"#938a8d",roads_label_major_halo:"#ffffff",ocean_label:"#728dd4",subplace_label:"#8f8f8f",subplace_label_halo:"#e0e0e0",city_label:"#5c5c5c",city_label_halo:"#e0e0e0",state_label:"#b3b3b3",state_label_halo:"#e0e0e0",country_label:"#a3a3a3",address_label:"#91888b",address_label_halo:"#ffffff",pois:{blue:"#1A8CBD",green:"#20834D",lapis:"#315BCF",pink:"#EF56BA",red:"#F2567A",slategray:"#6A5B8F",tangerine:"#CB6704",turquoise:"#00C3D4"},landcover:{grassland:"rgba(210, 239, 207, 1)",barren:"rgba(255, 243, 215, 1)",urban_area:"rgba(230, 230, 230, 1)",farmland:"rgba(216, 239, 210, 1)",glacier:"rgba(255, 255, 255, 1)",scrub:"rgba(234, 239, 210, 1)",forest:"rgba(196, 231, 210, 1)"}},J_={background:"#34373d",earth:"#1f1f1f",park_a:"#1c2421",park_b:"#192a24",hospital:"#252424",industrial:"#222222",school:"#262323",wood_a:"#202121",wood_b:"#202121",pedestrian:"#1e1e1e",scrub_a:"#222323",scrub_b:"#222323",glacier:"#1c1c1c",sand:"#212123",beach:"#28282a",aerodrome:"#1e1e1e",runway:"#333333",water:"#31353f",zoo:"#222323",military:"#242323",tunnel_other_casing:"#141414",tunnel_minor_casing:"#141414",tunnel_link_casing:"#141414",tunnel_major_casing:"#141414",tunnel_highway_casing:"#141414",tunnel_other:"#292929",tunnel_minor:"#292929",tunnel_link:"#292929",tunnel_major:"#292929",tunnel_highway:"#292929",pier:"#333333",buildings:"#111111",minor_service_casing:"#1f1f1f",minor_casing:"#1f1f1f",link_casing:"#1f1f1f",major_casing_late:"#1f1f1f",highway_casing_late:"#1f1f1f",other:"#333333",minor_service:"#333333",minor_a:"#3d3d3d",minor_b:"#333333",link:"#3d3d3d",major_casing_early:"#1f1f1f",major:"#3d3d3d",highway_casing_early:"#1f1f1f",highway:"#474747",railway:"#000000",boundaries:"#5b6374",bridges_other_casing:"#2b2b2b",bridges_minor_casing:"#1f1f1f",bridges_link_casing:"#1f1f1f",bridges_major_casing:"#1f1f1f",bridges_highway_casing:"#1f1f1f",bridges_other:"#333333",bridges_minor:"#333333",bridges_link:"#3d3d3d",bridges_major:"#3d3d3d",bridges_highway:"#474747",roads_label_minor:"#525252",roads_label_minor_halo:"#1f1f1f",roads_label_major:"#666666",roads_label_major_halo:"#1f1f1f",ocean_label:"#717784",subplace_label:"#525252",subplace_label_halo:"#1f1f1f",city_label:"#7a7a7a",city_label_halo:"#212121",state_label:"#3d3d3d",state_label_halo:"#1f1f1f",country_label:"#5c5c5c",address_label:"#525252",address_label_halo:"#1f1f1f",pois:{blue:"#4299BB",green:"#30C573",lapis:"#2B5CEA",pink:"#EF56BA",red:"#F2567A",slategray:"#93939F",tangerine:"#F19B6E",turquoise:"#00C3D4"},landcover:{grassland:"rgba(30, 41, 31, 1)",barren:"rgba(38, 38, 36, 1)",urban_area:"rgba(28, 28, 28, 1)",farmland:"rgba(31, 36, 32, 1)",glacier:"rgba(43, 43, 43, 1)",scrub:"rgba(34, 36, 30, 1)",forest:"rgba(28, 41, 37, 1)"}},Q_={background:"#ffffff",earth:"#ffffff",park_a:"#fcfcfc",park_b:"#fcfcfc",hospital:"#f8f8f8",industrial:"#fcfcfc",school:"#f8f8f8",wood_a:"#fafafa",wood_b:"#fafafa",pedestrian:"#fdfdfd",scrub_a:"#fafafa",scrub_b:"#fafafa",glacier:"#fcfcfc",sand:"#fafafa",beach:"#f6f6f6",aerodrome:"#fdfdfd",runway:"#efefef",water:"#dcdcdc",zoo:"#f7f7f7",military:"#fcfcfc",tunnel_other_casing:"#d6d6d6",tunnel_minor_casing:"#fcfcfc",tunnel_link_casing:"#fcfcfc",tunnel_major_casing:"#fcfcfc",tunnel_highway_casing:"#fcfcfc",tunnel_other:"#d6d6d6",tunnel_minor:"#d6d6d6",tunnel_link:"#d6d6d6",tunnel_major:"#d6d6d6",tunnel_highway:"#d6d6d6",pier:"#efefef",buildings:"#efefef",minor_service_casing:"#ffffff",minor_casing:"#ffffff",link_casing:"#ffffff",major_casing_late:"#ffffff",highway_casing_late:"#ffffff",other:"#f5f5f5",minor_service:"#f5f5f5",minor_a:"#ebebeb",minor_b:"#f5f5f5",link:"#ebebeb",major_casing_early:"#ffffff",major:"#ebebeb",highway_casing_early:"#ffffff",highway:"#ebebeb",railway:"#d6d6d6",boundaries:"#adadad",bridges_other_casing:"#ffffff",bridges_minor_casing:"#ffffff",bridges_link_casing:"#ffffff",bridges_major_casing:"#ffffff",bridges_highway_casing:"#ffffff",bridges_other:"#f5f5f5",bridges_minor:"#f5f5f5",bridges_link:"#ebebeb",bridges_major:"#ebebeb",bridges_highway:"#ebebeb",roads_label_minor:"#adadad",roads_label_minor_halo:"#ffffff",roads_label_major:"#999999",roads_label_major_halo:"#ffffff",ocean_label:"#adadad",subplace_label:"#8f8f8f",subplace_label_halo:"#ffffff",city_label:"#5c5c5c",city_label_halo:"#ffffff",state_label:"#b3b3b3",state_label_halo:"#ffffff",country_label:"#b8b8b8",address_label:"#adadad",address_label_halo:"#ffffff"},eg={background:"#a3a3a3",earth:"#cccccc",park_a:"#c2c2c2",park_b:"#c2c2c2",hospital:"#d0d0d0",industrial:"#c6c6c6",school:"#d0d0d0",wood_a:"#c2c2c2",wood_b:"#c2c2c2",pedestrian:"#c4c4c4",scrub_a:"#c2c2c2",scrub_b:"#c2c2c2",glacier:"#d2d2d2",sand:"#d2d2d2",beach:"#d2d2d2",aerodrome:"#c9c9c9",runway:"#f5f5f5",water:"#a3a3a3",zoo:"#c7c7c7",military:"#bfbfbf",tunnel_other_casing:"#b8b8b8",tunnel_minor_casing:"#b8b8b8",tunnel_link_casing:"#b8b8b8",tunnel_major_casing:"#b8b8b8",tunnel_highway_casing:"#b8b8b8",tunnel_other:"#d6d6d6",tunnel_minor:"#d6d6d6",tunnel_link:"#d6d6d6",tunnel_major:"#d6d6d6",tunnel_highway:"#d6d6d6",pier:"#b8b8b8",buildings:"#e0e0e0",minor_service_casing:"#cccccc",minor_casing:"#cccccc",link_casing:"#cccccc",major_casing_late:"#cccccc",highway_casing_late:"#cccccc",other:"#e0e0e0",minor_service:"#e0e0e0",minor_a:"#ebebeb",minor_b:"#e0e0e0",link:"#ebebeb",major_casing_early:"#cccccc",major:"#ebebeb",highway_casing_early:"#cccccc",highway:"#ebebeb",railway:"#f5f5f5",boundaries:"#5c5c5c",bridges_other_casing:"#cccccc",bridges_minor_casing:"#cccccc",bridges_link_casing:"#cccccc",bridges_major_casing:"#cccccc",bridges_highway_casing:"#cccccc",bridges_other:"#e0e0e0",bridges_minor:"#e0e0e0",bridges_link:"#ebebeb",bridges_major:"#ebebeb",bridges_highway:"#ebebeb",roads_label_minor:"#999999",roads_label_minor_halo:"#e0e0e0",roads_label_major:"#8f8f8f",roads_label_major_halo:"#ebebeb",ocean_label:"#7a7a7a",subplace_label:"#7a7a7a",subplace_label_halo:"#cccccc",city_label:"#474747",city_label_halo:"#cccccc",state_label:"#999999",state_label_halo:"#cccccc",country_label:"#858585",address_label:"#999999",address_label_halo:"#e0e0e0"},tg={background:"#2b2b2b",earth:"#141414",park_a:"#181818",park_b:"#181818",hospital:"#1d1d1d",industrial:"#101010",school:"#111111",wood_a:"#1a1a1a",wood_b:"#1a1a1a",pedestrian:"#191919",scrub_a:"#1c1c1c",scrub_b:"#1c1c1c",glacier:"#191919",sand:"#161616",beach:"#1f1f1f",aerodrome:"#191919",runway:"#323232",water:"#333333",zoo:"#191919",military:"#121212",tunnel_other_casing:"#101010",tunnel_minor_casing:"#101010",tunnel_link_casing:"#101010",tunnel_major_casing:"#101010",tunnel_highway_casing:"#101010",tunnel_other:"#292929",tunnel_minor:"#292929",tunnel_link:"#292929",tunnel_major:"#292929",tunnel_highway:"#292929",pier:"#0a0a0a",buildings:"#0a0a0a",minor_service_casing:"#141414",minor_casing:"#141414",link_casing:"#141414",major_casing_late:"#141414",highway_casing_late:"#141414",other:"#1f1f1f",minor_service:"#1f1f1f",minor_a:"#292929",minor_b:"#1f1f1f",link:"#1f1f1f",major_casing_early:"#141414",major:"#292929",highway_casing_early:"#141414",highway:"#292929",railway:"#292929",boundaries:"#707070",bridges_other_casing:"#141414",bridges_minor_casing:"#141414",bridges_link_casing:"#141414",bridges_major_casing:"#141414",bridges_highway_casing:"#141414",bridges_other:"#1f1f1f",bridges_minor:"#1f1f1f",bridges_link:"#292929",bridges_major:"#292929",bridges_highway:"#292929",roads_label_minor:"#525252",roads_label_minor_halo:"#141414",roads_label_major:"#5c5c5c",roads_label_major_halo:"#141414",ocean_label:"#707070",subplace_label:"#5c5c5c",subplace_label_halo:"#141414",city_label:"#999999",city_label_halo:"#141414",state_label:"#3d3d3d",state_label_halo:"#141414",country_label:"#707070",address_label:"#525252",address_label_halo:"#141414"};function ig(we){switch(we){case"light":return K_;case"dark":return J_;case"white":return Q_;case"grayscale":return eg;case"black":return tg}throw new Error("Flavor not found")}yn(ig,"namedFlavor");function rg(we,ce,Ae){let ze=[];return Ae!=null&&Ae.labelsOnly||(ze=wf(we,ce)),Ae!=null&&Ae.lang&&(ze=ze.concat(Tf(we,ce,Ae.lang))),ze}yn(rg,"layers");var Du={exports:{}};var ng=Du.exports,xf;function ag(){return xf||(xf=1,(function(we,ce){(function(Ae,ze){we.exports=ze()})(ng,(function(){var Ae={},ze={};function ot(k,c,Ee){if(ze[k]=Ee,k==="index"){var Jt="var sharedModule = {}; ("+ze.shared+")(sharedModule); ("+ze.worker+")(sharedModule);",Nt={};return ze.shared(Nt),ze.index(Ae,Nt),typeof window<"u"&&Ae.setWorkerUrl(window.URL.createObjectURL(new Blob([Jt],{type:"text/javascript"}))),Ae}}ot("shared",["exports"],(function(k){function c(r,e,i,a){return new(i||(i=Promise))((function(o,u){function h(y){try{_(a.next(y))}catch(v){u(v)}}function f(y){try{_(a.throw(y))}catch(v){u(v)}}function _(y){var v;y.done?o(y.value):(v=y.value,v instanceof i?v:new i((function(b){b(v)}))).then(h,f)}_((a=a.apply(r,e||[])).next())}))}function Ee(r,e){this.x=r,this.y=e}function Jt(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Nt,or;typeof SuppressedError=="function"&&SuppressedError,Ee.prototype={clone(){return new Ee(this.x,this.y)},add(r){return this.clone()._add(r)},sub(r){return this.clone()._sub(r)},multByPoint(r){return this.clone()._multByPoint(r)},divByPoint(r){return this.clone()._divByPoint(r)},mult(r){return this.clone()._mult(r)},div(r){return this.clone()._div(r)},rotate(r){return this.clone()._rotate(r)},rotateAround(r,e){return this.clone()._rotateAround(r,e)},matMult(r){return this.clone()._matMult(r)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(r){return this.x===r.x&&this.y===r.y},dist(r){return Math.sqrt(this.distSqr(r))},distSqr(r){const e=r.x-this.x,i=r.y-this.y;return e*e+i*i},angle(){return Math.atan2(this.y,this.x)},angleTo(r){return Math.atan2(this.y-r.y,this.x-r.x)},angleWith(r){return this.angleWithSep(r.x,r.y)},angleWithSep(r,e){return Math.atan2(this.x*e-this.y*r,this.x*r+this.y*e)},_matMult(r){const e=r[2]*this.x+r[3]*this.y;return this.x=r[0]*this.x+r[1]*this.y,this.y=e,this},_add(r){return this.x+=r.x,this.y+=r.y,this},_sub(r){return this.x-=r.x,this.y-=r.y,this},_mult(r){return this.x*=r,this.y*=r,this},_div(r){return this.x/=r,this.y/=r,this},_multByPoint(r){return this.x*=r.x,this.y*=r.y,this},_divByPoint(r){return this.x/=r.x,this.y/=r.y,this},_unit(){return this._div(this.mag()),this},_perp(){const r=this.y;return this.y=this.x,this.x=-r,this},_rotate(r){const e=Math.cos(r),i=Math.sin(r),a=i*this.x+e*this.y;return this.x=e*this.x-i*this.y,this.y=a,this},_rotateAround(r,e){const i=Math.cos(r),a=Math.sin(r),o=e.y+a*(this.x-e.x)+i*(this.y-e.y);return this.x=e.x+i*(this.x-e.x)-a*(this.y-e.y),this.y=o,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:Ee},Ee.convert=function(r){if(r instanceof Ee)return r;if(Array.isArray(r))return new Ee(+r[0],+r[1]);if(r.x!==void 0&&r.y!==void 0)return new Ee(+r.x,+r.y);throw new Error("Expected [x, y] or {x, y} point format")};var lr=(function(){if(or)return Nt;function r(e,i,a,o){this.cx=3*e,this.bx=3*(a-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(o-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=i,this.p2x=a,this.p2y=o}return or=1,Nt=r,r.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,i){if(i===void 0&&(i=1e-6),e<0)return 0;if(e>1)return 1;for(var a=e,o=0;o<8;o++){var u=this.sampleCurveX(a)-e;if(Math.abs(u)<i)return a;var h=this.sampleCurveDerivativeX(a);if(Math.abs(h)<1e-6)break;a-=u/h}var f=0,_=1;for(a=e,o=0;o<20&&(u=this.sampleCurveX(a),!(Math.abs(u-e)<i));o++)e>u?f=a:_=a,a=.5*(_-f)+f;return a},solve:function(e,i){return this.sampleCurveY(this.solveCurveX(e,i))}},Nt})(),Zt=Jt(lr);let Jr,it;function fe(){return Jr==null&&(Jr=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),Jr}function Xn(){if(it==null&&(it=!1,fe())){const e=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(e){for(let a=0;a<25;a++){const o=4*a;e.fillStyle=`rgb(${o},${o+1},${o+2})`,e.fillRect(a%5,Math.floor(a/5),1,1)}const i=e.getImageData(0,0,5,5).data;for(let a=0;a<100;a++)if(a%4!=3&&i[a]!==a){it=!0;break}}}return it||!1}var Ct=1e-6,xt=typeof Float32Array<"u"?Float32Array:Array;function xn(){var r=new xt(9);return xt!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function Yn(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function Da(){var r=new xt(3);return xt!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Li(r){var e=r[0],i=r[1],a=r[2];return Math.sqrt(e*e+i*i+a*a)}function ka(r,e,i){var a=new xt(3);return a[0]=r,a[1]=e,a[2]=i,a}function gr(r,e,i){return r[0]=e[0]+i[0],r[1]=e[1]+i[1],r[2]=e[2]+i[2],r}function Qr(r,e,i){return r[0]=e[0]*i,r[1]=e[1]*i,r[2]=e[2]*i,r}function vn(r,e,i){var a=e[0],o=e[1],u=e[2],h=i[0],f=i[1],_=i[2];return r[0]=o*_-u*f,r[1]=u*h-a*_,r[2]=a*f-o*h,r}var en,yr=Li;function tn(r,e,i){var a=e[0],o=e[1],u=e[2],h=e[3];return r[0]=i[0]*a+i[4]*o+i[8]*u+i[12]*h,r[1]=i[1]*a+i[5]*o+i[9]*u+i[13]*h,r[2]=i[2]*a+i[6]*o+i[10]*u+i[14]*h,r[3]=i[3]*a+i[7]*o+i[11]*u+i[15]*h,r}function Ra(){var r=new xt(4);return xt!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function Kn(r,e,i,a){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"zyx",u=Math.PI/360;e*=u,a*=u,i*=u;var h=Math.sin(e),f=Math.cos(e),_=Math.sin(i),y=Math.cos(i),v=Math.sin(a),b=Math.cos(a);switch(o){case"xyz":r[0]=h*y*b+f*_*v,r[1]=f*_*b-h*y*v,r[2]=f*y*v+h*_*b,r[3]=f*y*b-h*_*v;break;case"xzy":r[0]=h*y*b-f*_*v,r[1]=f*_*b-h*y*v,r[2]=f*y*v+h*_*b,r[3]=f*y*b+h*_*v;break;case"yxz":r[0]=h*y*b+f*_*v,r[1]=f*_*b-h*y*v,r[2]=f*y*v-h*_*b,r[3]=f*y*b+h*_*v;break;case"yzx":r[0]=h*y*b+f*_*v,r[1]=f*_*b+h*y*v,r[2]=f*y*v-h*_*b,r[3]=f*y*b-h*_*v;break;case"zxy":r[0]=h*y*b-f*_*v,r[1]=f*_*b+h*y*v,r[2]=f*y*v+h*_*b,r[3]=f*y*b-h*_*v;break;case"zyx":r[0]=h*y*b-f*_*v,r[1]=f*_*b+h*y*v,r[2]=f*y*v-h*_*b,r[3]=f*y*b+h*_*v;break;default:throw new Error("Unknown angle order "+o)}return r}function Er(){var r=new xt(2);return xt!=Float32Array&&(r[0]=0,r[1]=0),r}function Ut(r,e){var i=new xt(2);return i[0]=r,i[1]=e,i}Da(),en=new xt(4),xt!=Float32Array&&(en[0]=0,en[1]=0,en[2]=0,en[3]=0),Da(),ka(1,0,0),ka(0,1,0),Ra(),Ra(),xn(),Er();const st=8192;function bn(r,e,i){return e*(st/(r.tileSize*Math.pow(2,i-r.tileID.overscaledZ)))}function xr(r,e){return(r%e+e)%e}function La(r,e,i){return r*(1-i)+e*i}function Jn(r){if(r<=0)return 0;if(r>=1)return 1;const e=r*r,i=e*r;return 4*(r<.5?i:3*(r-e)+i-.75)}function rn(r,e,i,a){const o=new Zt(r,e,i,a);return u=>o.solve(u)}const Cr=rn(.25,.1,.25,1);function Yi(r,e,i){return Math.min(i,Math.max(e,r))}function ui(r,e,i){const a=i-e,o=((r-e)%a+a)%a+e;return o===e?i:o}function Ei(r,...e){for(const i of e)for(const a in i)r[a]=i[a];return r}let Qn=1;function wn(r,e,i){const a={};for(const o in r)a[o]=e.call(this,r[o],o,r);return a}function Tn(r,e,i){const a={};for(const o in r)e.call(this,r[o],o,r)&&(a[o]=r[o]);return a}function hi(r){return Array.isArray(r)?r.map(hi):typeof r=="object"&&r?wn(r,hi):r}const Ds={};function di(r){Ds[r]||(typeof console<"u"&&console.warn(r),Ds[r]=!0)}function Fi(r,e,i){return(i.y-r.y)*(e.x-r.x)>(e.y-r.y)*(i.x-r.x)}function vr(r){return typeof WorkerGlobalScope<"u"&&r!==void 0&&r instanceof WorkerGlobalScope}let vt=null;function Sn(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap}const ea="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Pn(r,e,i,a,o){return c(this,void 0,void 0,(function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const u=new VideoFrame(r,{timestamp:0});try{const h=u?.format;if(!h||!h.startsWith("BGR")&&!h.startsWith("RGB"))throw new Error(`Unrecognized format ${h}`);const f=h.startsWith("BGR"),_=new Uint8ClampedArray(a*o*4);if(yield u.copyTo(_,(function(y,v,b,S,P){const E=4*Math.max(-v,0),A=(Math.max(0,b)-b)*S*4+E,R=4*S,O=Math.max(0,v),G=Math.max(0,b);return{rect:{x:O,y:G,width:Math.min(y.width,v+S)-O,height:Math.min(y.height,b+P)-G},layout:[{offset:A,stride:R}]}})(r,e,i,a,o)),f)for(let y=0;y<_.length;y+=4){const v=_[y];_[y]=_[y+2],_[y+2]=v}return _}finally{u.close()}}))}let nn,br;function an(r,e,i,a){return r.addEventListener(e,i,a),{unsubscribe:()=>{r.removeEventListener(e,i,a)}}}function Mn(r){return r*Math.PI/180}function Ar(r){return r/Math.PI*180}const zr={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},sn={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},ta="AbortError";class Fa extends Error{constructor(e=ta){super(e instanceof Error?e.message:e),this.name=ta,e instanceof Error&&e.stack&&(this.stack=e.stack)}}function ia(r){return r.name===ta}const ie={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function C(r){return ie.REGISTERED_PROTOCOLS[r.substring(0,r.indexOf("://"))]}const D="global-dispatcher";class F extends Error{constructor(e,i,a,o){super(`AJAXError: ${i} (${e}): ${a}`),this.status=e,this.statusText=i,this.url=a,this.body=o}}const $=()=>vr(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,J=function(r,e){if(/:\/\//.test(r.url)&&!/^https?:|^file:/.test(r.url)){const a=C(r.url);if(a)return a(r,e);if(vr(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:r,targetMapId:D},e)}if(!(/^file:/.test(i=r.url)||/^file:/.test($())&&!/^\w+:/.test(i))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return(function(a,o){return c(this,void 0,void 0,(function*(){const u=new Request(a.url,{method:a.method||"GET",body:a.body,credentials:a.credentials,headers:a.headers,cache:a.cache,referrer:$(),signal:o.signal});let h,f;a.type!=="json"||u.headers.has("Accept")||u.headers.set("Accept","application/json");try{h=yield fetch(u)}catch(y){throw ia(y)?y:new F(0,y.message,a.url,new Blob)}if(!h.ok){const y=yield h.blob();throw new F(h.status,h.statusText,a.url,y)}f=a.type==="arrayBuffer"||a.type==="image"?h.arrayBuffer():a.type==="json"?h.json():h.text();const _=yield f;return o.signal.throwIfAborted(),{data:_,cacheControl:h.headers.get("Cache-Control"),expires:h.headers.get("Expires")}}))})(r,e);if(vr(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:r,mustQueue:!0,targetMapId:D},e)}var i;return(function(a,o){return new Promise(((u,h)=>{var f;const _=new XMLHttpRequest;_.open(a.method||"GET",a.url,!0),a.type!=="arrayBuffer"&&a.type!=="image"||(_.responseType="arraybuffer");for(const y in a.headers)_.setRequestHeader(y,a.headers[y]);a.type==="json"&&(_.responseType="text",!((f=a.headers)===null||f===void 0)&&f.Accept||_.setRequestHeader("Accept","application/json")),_.withCredentials=a.credentials==="include",_.onerror=()=>{h(new Error(_.statusText))},_.onload=()=>{if(!o.signal.aborted)if((_.status>=200&&_.status<300||_.status===0)&&_.response!==null){let y=_.response;if(a.type==="json")try{y=JSON.parse(_.response)}catch(v){return void h(v)}u({data:y,cacheControl:_.getResponseHeader("Cache-Control"),expires:_.getResponseHeader("Expires")})}else{const y=new Blob([_.response],{type:_.getResponseHeader("Content-Type")});h(new F(_.status,_.statusText,a.url,y))}},o.signal.addEventListener("abort",(()=>{_.abort(),h(new Fa(o.signal.reason))})),_.send(a.body)}))})(r,e)};function ae(r){if(!r||r.indexOf("://")<=0||r.indexOf("data:image/")===0||r.indexOf("blob:")===0)return!0;const e=new URL(r),i=window.location;return e.protocol===i.protocol&&e.host===i.host}function oe(r,e,i){i[r]&&i[r].indexOf(e)!==-1||(i[r]=i[r]||[],i[r].push(e))}function re(r,e,i){if(i&&i[r]){const a=i[r].indexOf(e);a!==-1&&i[r].splice(a,1)}}class ne{constructor(e,i={}){Ei(this,i),this.type=e}}class be extends ne{constructor(e,i={}){super("error",Ei({error:e},i))}}class me{on(e,i){return this._listeners=this._listeners||{},oe(e,i,this._listeners),{unsubscribe:()=>{this.off(e,i)}}}off(e,i){return re(e,i,this._listeners),re(e,i,this._oneTimeListeners),this}once(e,i){return i?(this._oneTimeListeners=this._oneTimeListeners||{},oe(e,i,this._oneTimeListeners),this):new Promise((a=>this.once(e,a)))}fire(e,i){typeof e=="string"&&(e=new ne(e,i||{}));const a=e.type;if(this.listens(a)){e.target=this;const o=this._listeners&&this._listeners[a]?this._listeners[a].slice():[];for(const f of o)f.call(this,e);const u=this._oneTimeListeners&&this._oneTimeListeners[a]?this._oneTimeListeners[a].slice():[];for(const f of u)re(a,f,this._oneTimeListeners),f.call(this,e);const h=this._eventedParent;h&&(Ei(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),h.fire(e))}else e instanceof be&&console.error(e.error);return this}listens(e){return this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)}setEventedParent(e,i){return this._eventedParent=e,this._eventedParentData=i,this}}var K={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number",length:2},centerAltitude:{type:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},roll:{type:"number",default:0,units:"degrees"},state:{type:"state",default:{}},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},"font-faces":{type:"fontFaces"},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},encoding:{type:"enum",values:{mvt:{},mlt:{}},default:"mvt"},"*":{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:"filter"},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:{},"color-relief":{},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_color-relief","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-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",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-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",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-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",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-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",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},"layout_color-relief":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},filter:{type:"boolean",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},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:"expression_name",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}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","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","feature"]},"property-type":"cross-faded-data-driven"},"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:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,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:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",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"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"}},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"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}};const Oe=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function Ze(r,e){const i={};for(const a in r)a!=="ref"&&(i[a]=r[a]);return Oe.forEach((a=>{a in e&&(i[a]=e[a])})),i}function Ne(r,e){if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(let i=0;i<r.length;i++)if(!Ne(r[i],e[i]))return!1;return!0}if(typeof r=="object"&&r!==null&&e!==null){if(typeof e!="object"||Object.keys(r).length!==Object.keys(e).length)return!1;for(const i in r)if(!Ne(r[i],e[i]))return!1;return!0}return r===e}function qe(r,e){r.push(e)}function Ge(r,e,i){qe(i,{command:"addSource",args:[r,e[r]]})}function Ye(r,e,i){qe(e,{command:"removeSource",args:[r]}),i[r]=!0}function Lt(r,e,i,a){Ye(r,i,a),Ge(r,e,i)}function mt(r,e,i){let a;for(a in r[i])if(Object.prototype.hasOwnProperty.call(r[i],a)&&a!=="data"&&!Ne(r[i][a],e[i][a]))return!1;for(a in e[i])if(Object.prototype.hasOwnProperty.call(e[i],a)&&a!=="data"&&!Ne(r[i][a],e[i][a]))return!1;return!0}function Ft(r,e,i,a,o,u){r=r||{},e=e||{};for(const h in r)Object.prototype.hasOwnProperty.call(r,h)&&(Ne(r[h],e[h])||i.push({command:u,args:[a,h,e[h],o]}));for(const h in e)Object.prototype.hasOwnProperty.call(e,h)&&!Object.prototype.hasOwnProperty.call(r,h)&&(Ne(r[h],e[h])||i.push({command:u,args:[a,h,e[h],o]}))}function ni(r){return r.id}function At(r,e){return r[e.id]=e,r}class Se{constructor(e,i,a,o){this.message=(e?`${e}: `:"")+a,o&&(this.identifier=o),i!=null&&i.__line__&&(this.line=i.__line__)}}function at(r,...e){for(const i of e)for(const a in i)r[a]=i[a];return r}class bt extends Error{constructor(e,i){super(i),this.message=i,this.key=e}}class In{constructor(e,i=[]){this.parent=e,this.bindings={};for(const[a,o]of i)this.bindings[a]=o}concat(e){return new In(this,e)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error(`${e} not found in scope.`)}has(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}const Dr={kind:"null"},Pe={kind:"number"},$e={kind:"string"},We={kind:"boolean"},Ki={kind:"color"},ra={kind:"projectionDefinition"},En={kind:"object"},Ke={kind:"value"},na={kind:"collator"},aa={kind:"formatted"},ks={kind:"padding"},Ba={kind:"colorArray"},Oa={kind:"numberArray"},sa={kind:"resolvedImage"},Va={kind:"variableAnchorOffsetCollection"};function Ci(r,e){return{kind:"array",itemType:r,N:e}}function gt(r){if(r.kind==="array"){const e=gt(r.itemType);return typeof r.N=="number"?`array<${e}, ${r.N}>`:r.itemType.kind==="value"?"array":`array<${e}>`}return r.kind}const Cn=[Dr,Pe,$e,We,Ki,ra,aa,En,Ci(Ke),ks,Oa,Ba,sa,Va];function on(r,e){if(e.kind==="error")return null;if(r.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!on(r.itemType,e.itemType))&&(typeof r.N!="number"||r.N===e.N))return null}else{if(r.kind===e.kind)return null;if(r.kind==="value"){for(const i of Cn)if(!on(i,e))return null}}return`Expected ${gt(r)} but found ${gt(e)} instead.`}function Rs(r,e){return e.some((i=>i.kind===r.kind))}function kr(r,e){return e.some((i=>i==="null"?r===null:i==="array"?Array.isArray(r):i==="object"?r&&!Array.isArray(r)&&typeof r=="object":i===typeof r))}function ln(r,e){return r.kind==="array"&&e.kind==="array"?r.itemType.kind===e.itemType.kind&&typeof r.N=="number":r.kind===e.kind}const ja=.96422,Kl=.82521,An=4/29,cn=6/29,Xt=3*cn*cn,ku=cn*cn*cn,Jl=Math.PI/180,Na=180/Math.PI;function No(r){return(r%=360)<0&&(r+=360),r}function Ql([r,e,i,a]){let o,u;const h=Ls((.2225045*(r=Uo(r))+.7168786*(e=Uo(e))+.0606169*(i=Uo(i)))/1);r===e&&e===i?o=u=h:(o=Ls((.4360747*r+.3850649*e+.1430804*i)/ja),u=Ls((.0139322*r+.0971045*e+.7141733*i)/Kl));const f=116*h-16;return[f<0?0:f,500*(o-h),200*(h-u),a]}function Uo(r){return r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function Ls(r){return r>ku?Math.pow(r,1/3):r/Xt+An}function ec([r,e,i,a]){let o=(r+16)/116,u=isNaN(e)?o:o+e/500,h=isNaN(i)?o:o-i/200;return o=1*Go(o),u=ja*Go(u),h=Kl*Go(h),[Fs(3.1338561*u-1.6168667*o-.4906146*h),Fs(-.9787684*u+1.9161415*o+.033454*h),Fs(.0719453*u-.2289914*o+1.4052427*h),a]}function Fs(r){return(r=r<=.00304?12.92*r:1.055*Math.pow(r,1/2.4)-.055)<0?0:r>1?1:r}function Go(r){return r>cn?r*r*r:Xt*(r-An)}const Ru=Object.hasOwn||function(r,e){return Object.prototype.hasOwnProperty.call(r,e)};function Ua(r,e){return Ru(r,e)?r[e]:void 0}function Bs(r){return parseInt(r.padEnd(2,r),16)/255}function tc(r,e){return oa(e?r/100:r,0,1)}function oa(r,e,i){return Math.min(Math.max(e,r),i)}function ic(r){return!r.some(Number.isNaN)}const rc={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]};function Ji(r,e,i){return r+i*(e-r)}function la(r,e,i){return r.map(((a,o)=>Ji(a,e[o],i)))}class et{constructor(e,i,a,o=1,u=!0){this.r=e,this.g=i,this.b=a,this.a=o,u||(this.r*=o,this.g*=o,this.b*=o,o||this.overwriteGetter("rgb",[e,i,a,o]))}static parse(e){if(e instanceof et)return e;if(typeof e!="string")return;const i=(function(a){if((a=a.toLowerCase().trim())==="transparent")return[0,0,0,0];const o=Ua(rc,a);if(o){const[h,f,_]=o;return[h/255,f/255,_/255,1]}if(a.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(a)){const h=a.length<6?1:2;let f=1;return[Bs(a.slice(f,f+=h)),Bs(a.slice(f,f+=h)),Bs(a.slice(f,f+=h)),Bs(a.slice(f,f+h)||"ff")]}if(a.startsWith("rgb")){const h=a.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(h){const[f,_,y,v,b,S,P,E,A,R,O,G]=h,B=[v||" ",P||" ",R].join("");if(B===" "||B===" /"||B===",,"||B===",,,"){const V=[y,S,A].join(""),H=V==="%%%"?100:V===""?255:0;if(H){const ee=[oa(+_/H,0,1),oa(+b/H,0,1),oa(+E/H,0,1),O?tc(+O,G):1];if(ic(ee))return ee}}return}}const u=a.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(u){const[h,f,_,y,v,b,S,P,E]=u,A=[_||" ",v||" ",S].join("");if(A===" "||A===" /"||A===",,"||A===",,,"){const R=[+f,oa(+y,0,100),oa(+b,0,100),P?tc(+P,E):1];if(ic(R))return(function([O,G,B,V]){function H(ee){const se=(ee+O/30)%12,ge=G*Math.min(B,1-B);return B-ge*Math.max(-1,Math.min(se-3,9-se,1))}return O=No(O),G/=100,B/=100,[H(0),H(8),H(4),V]})(R)}}})(e);return i?new et(...i,!1):void 0}get rgb(){const{r:e,g:i,b:a,a:o}=this,u=o||1/0;return this.overwriteGetter("rgb",[e/u,i/u,a/u,o])}get hcl(){return this.overwriteGetter("hcl",(function(e){const[i,a,o,u]=Ql(e),h=Math.sqrt(a*a+o*o);return[Math.round(1e4*h)?No(Math.atan2(o,a)*Na):NaN,h,i,u]})(this.rgb))}get lab(){return this.overwriteGetter("lab",Ql(this.rgb))}overwriteGetter(e,i){return Object.defineProperty(this,e,{value:i}),i}toString(){const[e,i,a,o]=this.rgb;return`rgba(${[e,i,a].map((u=>Math.round(255*u))).join(",")},${o})`}static interpolate(e,i,a,o="rgb"){switch(o){case"rgb":{const[u,h,f,_]=la(e.rgb,i.rgb,a);return new et(u,h,f,_,!1)}case"hcl":{const[u,h,f,_]=e.hcl,[y,v,b,S]=i.hcl;let P,E;if(isNaN(u)||isNaN(y))isNaN(u)?isNaN(y)?P=NaN:(P=y,f!==1&&f!==0||(E=v)):(P=u,b!==1&&b!==0||(E=h));else{let B=y-u;y>u&&B>180?B-=360:y<u&&u-y>180&&(B+=360),P=u+a*B}const[A,R,O,G]=(function([B,V,H,ee]){return B=isNaN(B)?0:B*Jl,ec([H,Math.cos(B)*V,Math.sin(B)*V,ee])})([P,E??Ji(h,v,a),Ji(f,b,a),Ji(_,S,a)]);return new et(A,R,O,G,!1)}case"lab":{const[u,h,f,_]=ec(la(e.lab,i.lab,a));return new et(u,h,f,_,!1)}}}}et.black=new et(0,0,0,1),et.white=new et(1,1,1,1),et.transparent=new et(0,0,0,0),et.red=new et(1,0,0,1);class zn{constructor(e,i,a){this.sensitivity=e?i?"variant":"case":i?"accent":"base",this.locale=a,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,i){return this.collator.compare(e,i)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const Lu=["bottom","center","top"];class qo{constructor(e,i,a,o,u,h){this.text=e,this.image=i,this.scale=a,this.fontStack=o,this.textColor=u,this.verticalAlign=h}}class Bi{constructor(e){this.sections=e}static fromString(e){return new Bi([new qo(e,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some((e=>e.text.length!==0||e.image&&e.image.name.length!==0))}static factory(e){return e instanceof Bi?e:Bi.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map((e=>e.text)).join("")}}class pi{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof pi)return e;if(typeof e=="number")return new pi([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const i of e)if(typeof i!="number")return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new pi(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a){return new pi(la(e.values,i.values,a))}}class fi{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof fi)return e;if(typeof e=="number")return new fi([e]);if(Array.isArray(e)){for(const i of e)if(typeof i!="number")return;return new fi(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a){return new fi(la(e.values,i.values,a))}}class yt{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof yt)return e;if(typeof e=="string"){const a=et.parse(e);return a?new yt([a]):void 0}if(!Array.isArray(e))return;const i=[];for(const a of e){if(typeof a!="string")return;const o=et.parse(a);if(!o)return;i.push(o)}return new yt(i)}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a,o="rgb"){const u=[];if(e.values.length!=i.values.length)throw new Error(`colorArray: Arrays have mismatched length (${e.values.length} vs. ${i.values.length}), cannot interpolate.`);for(let h=0;h<e.values.length;h++)u.push(et.interpolate(e.values[h],i.values[h],a,o));return new yt(u)}}class je extends Error{constructor(e){super(e),this.name="RuntimeError"}toJSON(){return this.message}}const ca=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class Gt{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof Gt)return e;if(Array.isArray(e)&&!(e.length<1)&&e.length%2==0){for(let i=0;i<e.length;i+=2){const a=e[i],o=e[i+1];if(typeof a!="string"||!ca.has(a)||!Array.isArray(o)||o.length!==2||typeof o[0]!="number"||typeof o[1]!="number")return}return new Gt(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,a){const o=e.values,u=i.values;if(o.length!==u.length)throw new je(`Cannot interpolate values of different length. from: ${e.toString()}, to: ${i.toString()}`);const h=[];for(let f=0;f<o.length;f+=2){if(o[f]!==u[f])throw new je(`Cannot interpolate values containing mismatched anchors. from[${f}]: ${o[f]}, to[${f}]: ${u[f]}`);h.push(o[f]);const[_,y]=o[f+1],[v,b]=u[f+1];h.push([Ji(_,v,a),Ji(y,b,a)])}return new Gt(h)}}class Oi{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new Oi({name:e,available:!1}):null}}class Ai{constructor(e,i,a){this.from=e,this.to=i,this.transition=a}static interpolate(e,i,a){return new Ai(e,i,a)}static parse(e){return e instanceof Ai?e:Array.isArray(e)&&e.length===3&&typeof e[0]=="string"&&typeof e[1]=="string"&&typeof e[2]=="number"?new Ai(e[0],e[1],e[2]):typeof e=="object"&&typeof e.from=="string"&&typeof e.to=="string"&&typeof e.transition=="number"?new Ai(e.from,e.to,e.transition):typeof e=="string"?new Ai(e,e,1):void 0}}function Os(r,e,i,a){return typeof r=="number"&&r>=0&&r<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof i=="number"&&i>=0&&i<=255?a===void 0||typeof a=="number"&&a>=0&&a<=1?null:`Invalid rgba value [${[r,e,i,a].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof a=="number"?[r,e,i,a]:[r,e,i]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Rr(r){if(r===null||typeof r=="string"||typeof r=="boolean"||typeof r=="number"||r instanceof Ai||r instanceof et||r instanceof zn||r instanceof Bi||r instanceof pi||r instanceof fi||r instanceof yt||r instanceof Gt||r instanceof Oi)return!0;if(Array.isArray(r)){for(const e of r)if(!Rr(e))return!1;return!0}if(typeof r=="object"){for(const e in r)if(!Rr(r[e]))return!1;return!0}return!1}function Mt(r){if(r===null)return Dr;if(typeof r=="string")return $e;if(typeof r=="boolean")return We;if(typeof r=="number")return Pe;if(r instanceof et)return Ki;if(r instanceof Ai)return ra;if(r instanceof zn)return na;if(r instanceof Bi)return aa;if(r instanceof pi)return ks;if(r instanceof fi)return Oa;if(r instanceof yt)return Ba;if(r instanceof Gt)return Va;if(r instanceof Oi)return sa;if(Array.isArray(r)){const e=r.length;let i;for(const a of r){const o=Mt(a);if(i){if(i===o)continue;i=Ke;break}i=o}return Ci(i||Ke,e)}return En}function ua(r){const e=typeof r;return r===null?"":e==="string"||e==="number"||e==="boolean"?String(r):r instanceof et||r instanceof Ai||r instanceof Bi||r instanceof pi||r instanceof fi||r instanceof yt||r instanceof Gt||r instanceof Oi?r.toString():JSON.stringify(r)}class Lr{constructor(e,i){this.type=e,this.value=i}static parse(e,i){if(e.length!==2)return i.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!Rr(e[1]))return i.error("invalid value");const a=e[1];let o=Mt(a);const u=i.expectedType;return o.kind!=="array"||o.N!==0||!u||u.kind!=="array"||typeof u.N=="number"&&u.N!==0||(o=u),new Lr(o,a)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const Dn={string:$e,number:Pe,boolean:We,object:En};class cr{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");let a,o=1;const u=e[0];if(u==="array"){let f,_;if(e.length>2){const y=e[1];if(typeof y!="string"||!(y in Dn)||y==="object")return i.error('The item type argument of "array" must be one of string, number, boolean',1);f=Dn[y],o++}else f=Ke;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return i.error('The length argument to "array" must be a positive integer literal',2);_=e[2],o++}a=Ci(f,_)}else{if(!Dn[u])throw new Error(`Types doesn't contain name = ${u}`);a=Dn[u]}const h=[];for(;o<e.length;o++){const f=i.parse(e[o],o,Ke);if(!f)return null;h.push(f)}return new cr(a,h)}evaluate(e){for(let i=0;i<this.args.length;i++){const a=this.args[i].evaluate(e);if(!on(this.type,Mt(a)))return a;if(i===this.args.length-1)throw new je(`Expected value to be of type ${gt(this.type)}, but found ${gt(Mt(a))} instead.`)}throw new Error}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}}const Ga={"to-boolean":We,"to-color":Ki,"to-number":Pe,"to-string":$e};class Vi{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");const a=e[0];if(!Ga[a])throw new Error(`Can't parse ${a} as it is not part of the known types`);if((a==="to-boolean"||a==="to-string")&&e.length!==2)return i.error("Expected one argument.");const o=Ga[a],u=[];for(let h=1;h<e.length;h++){const f=i.parse(e[h],h,Ke);if(!f)return null;u.push(f)}return new Vi(o,u)}evaluate(e){switch(this.type.kind){case"boolean":return!!this.args[0].evaluate(e);case"color":{let i,a;for(const o of this.args){if(i=o.evaluate(e),a=null,i instanceof et)return i;if(typeof i=="string"){const u=e.parseColor(i);if(u)return u}else if(Array.isArray(i)&&(a=i.length<3||i.length>4?`Invalid rgba value ${JSON.stringify(i)}: expected an array containing either three or four numeric values.`:Os(i[0],i[1],i[2],i[3]),!a))return new et(i[0]/255,i[1]/255,i[2]/255,i[3])}throw new je(a||`Could not parse color from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"padding":{let i;for(const a of this.args){i=a.evaluate(e);const o=pi.parse(i);if(o)return o}throw new je(`Could not parse padding from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"numberArray":{let i;for(const a of this.args){i=a.evaluate(e);const o=fi.parse(i);if(o)return o}throw new je(`Could not parse numberArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"colorArray":{let i;for(const a of this.args){i=a.evaluate(e);const o=yt.parse(i);if(o)return o}throw new je(`Could not parse colorArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"variableAnchorOffsetCollection":{let i;for(const a of this.args){i=a.evaluate(e);const o=Gt.parse(i);if(o)return o}throw new je(`Could not parse variableAnchorOffsetCollection from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"number":{let i=null;for(const a of this.args){if(i=a.evaluate(e),i===null)return 0;const o=Number(i);if(!isNaN(o))return o}throw new je(`Could not convert ${JSON.stringify(i)} to number.`)}case"formatted":return Bi.fromString(ua(this.args[0].evaluate(e)));case"resolvedImage":return Oi.fromString(ua(this.args[0].evaluate(e)));case"projectionDefinition":return this.args[0].evaluate(e);default:return ua(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}}const nc=["Unknown","Point","LineString","Polygon"];class Zo{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,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"?nc[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(e){let i=this._parseColorCache.get(e);return i||(i=et.parse(e),this._parseColorCache.set(e,i)),i}}class qa{constructor(e,i,a=[],o,u=new In,h=[]){this.registry=e,this.path=a,this.key=a.map((f=>`[${f}]`)).join(""),this.scope=u,this.errors=h,this.expectedType=o,this._isConstant=i}parse(e,i,a,o,u={}){return i?this.concat(i,a,o)._parse(e,u):this._parse(e,u)}_parse(e,i){function a(o,u,h){return h==="assert"?new cr(u,[o]):h==="coerce"?new Vi(u,[o]):o}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),Array.isArray(e)){if(e.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const o=e[0];if(typeof o!="string")return this.error(`Expression name must be a string, but found ${typeof o} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const u=this.registry[o];if(u){let h=u.parse(e,this);if(!h)return null;if(this.expectedType){const f=this.expectedType,_=h.type;if(f.kind!=="string"&&f.kind!=="number"&&f.kind!=="boolean"&&f.kind!=="object"&&f.kind!=="array"||_.kind!=="value"){if(f.kind==="projectionDefinition"&&["string","array"].includes(_.kind)||["color","formatted","resolvedImage"].includes(f.kind)&&["value","string"].includes(_.kind)||["padding","numberArray"].includes(f.kind)&&["value","number","array"].includes(_.kind)||f.kind==="colorArray"&&["value","string","array"].includes(_.kind)||f.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(_.kind))h=a(h,f,i.typeAnnotation||"coerce");else if(this.checkSubtype(f,_))return null}else h=a(h,f,i.typeAnnotation||"assert")}if(!(h instanceof Lr)&&h.type.kind!=="resolvedImage"&&this._isConstant(h)){const f=new Zo;try{h=new Lr(h.type,h.evaluate(f))}catch(_){return this.error(_.message),null}}return h}return this.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,i,a){const o=typeof e=="number"?this.path.concat(e):this.path,u=a?this.scope.concat(a):this.scope;return new qa(this.registry,this._isConstant,o,i||null,u,this.errors)}error(e,...i){const a=`${this.key}${i.map((o=>`[${o}]`)).join("")}`;this.errors.push(new bt(a,e))}checkSubtype(e,i){const a=on(e,i);return a&&this.error(a),a}}class kn{constructor(e,i){this.type=i.type,this.bindings=[].concat(e),this.result=i}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const i of this.bindings)e(i[1]);e(this.result)}static parse(e,i){if(e.length<4)return i.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const a=[];for(let u=1;u<e.length-1;u+=2){const h=e[u];if(typeof h!="string")return i.error(`Expected string, but found ${typeof h} instead.`,u);if(/[^a-zA-Z0-9_]/.test(h))return i.error("Variable names must contain only alphanumeric characters or '_'.",u);const f=i.parse(e[u+1],u+1);if(!f)return null;a.push([h,f])}const o=i.parse(e[e.length-1],e.length-1,i.expectedType,a);return o?new kn(a,o):null}outputDefined(){return this.result.outputDefined()}}class dt{constructor(e,i){this.type=i.type,this.name=e,this.boundExpression=i}static parse(e,i){if(e.length!==2||typeof e[1]!="string")return i.error("'var' expression requires exactly one string literal argument.");const a=e[1];return i.scope.has(a)?new dt(a,i.scope.get(a)):i.error(`Unknown variable "${a}". Make sure "${a}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}}class Za{constructor(e,i,a){this.type=e,this.index=i,this.input=a}static parse(e,i){if(e.length!==3)return i.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Pe),o=i.parse(e[2],2,Ci(i.expectedType||Ke));return a&&o?new Za(o.type.itemType,a,o):null}evaluate(e){const i=this.index.evaluate(e),a=this.input.evaluate(e);if(i<0)throw new je(`Array index out of bounds: ${i} < 0.`);if(i>=a.length)throw new je(`Array index out of bounds: ${i} > ${a.length-1}.`);if(i!==Math.floor(i))throw new je(`Array index must be an integer, but found ${i} instead.`);return a[i]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}}class tt{constructor(e,i){this.type=We,this.needle=e,this.haystack=i}static parse(e,i){if(e.length!==3)return i.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Ke),o=i.parse(e[2],2,Ke);return a&&o?Rs(a.type,[We,$e,Pe,Dr,Ke])?new tt(a,o):i.error(`Expected first argument to be of type boolean, string, number or null, but found ${gt(a.type)} instead`):null}evaluate(e){const i=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!a)return!1;if(!kr(i,["boolean","string","number","null"]))throw new je(`Expected first argument to be of type boolean, string, number or null, but found ${gt(Mt(i))} instead.`);if(!kr(a,["string","array"]))throw new je(`Expected second argument to be of type array or string, but found ${gt(Mt(a))} instead.`);return a.indexOf(i)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}}class Xe{constructor(e,i,a){this.type=Pe,this.needle=e,this.haystack=i,this.fromIndex=a}static parse(e,i){if(e.length<=2||e.length>=5)return i.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Ke),o=i.parse(e[2],2,Ke);if(!a||!o)return null;if(!Rs(a.type,[We,$e,Pe,Dr,Ke]))return i.error(`Expected first argument to be of type boolean, string, number or null, but found ${gt(a.type)} instead`);if(e.length===4){const u=i.parse(e[3],3,Pe);return u?new Xe(a,o,u):null}return new Xe(a,o)}evaluate(e){const i=this.needle.evaluate(e),a=this.haystack.evaluate(e);if(!kr(i,["boolean","string","number","null"]))throw new je(`Expected first argument to be of type boolean, string, number or null, but found ${gt(Mt(i))} instead.`);let o;if(this.fromIndex&&(o=this.fromIndex.evaluate(e)),kr(a,["string"])){const u=a.indexOf(i,o);return u===-1?-1:[...a.slice(0,u)].length}if(kr(a,["array"]))return a.indexOf(i,o);throw new je(`Expected second argument to be of type array or string, but found ${gt(Mt(a))} instead.`)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}}class $a{constructor(e,i,a,o,u,h){this.inputType=e,this.type=i,this.input=a,this.cases=o,this.outputs=u,this.otherwise=h}static parse(e,i){if(e.length<5)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return i.error("Expected an even number of arguments.");let a,o;i.expectedType&&i.expectedType.kind!=="value"&&(o=i.expectedType);const u={},h=[];for(let y=2;y<e.length-1;y+=2){let v=e[y];const b=e[y+1];Array.isArray(v)||(v=[v]);const S=i.concat(y);if(v.length===0)return S.error("Expected at least one branch label.");for(const E of v){if(typeof E!="number"&&typeof E!="string")return S.error("Branch labels must be numbers or strings.");if(typeof E=="number"&&Math.abs(E)>Number.MAX_SAFE_INTEGER)return S.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof E=="number"&&Math.floor(E)!==E)return S.error("Numeric branch labels must be integer values.");if(a){if(S.checkSubtype(a,Mt(E)))return null}else a=Mt(E);if(u[String(E)]!==void 0)return S.error("Branch labels must be unique.");u[String(E)]=h.length}const P=i.parse(b,y,o);if(!P)return null;o=o||P.type,h.push(P)}const f=i.parse(e[1],1,Ke);if(!f)return null;const _=i.parse(e[e.length-1],e.length-1,o);return _?f.type.kind!=="value"&&i.concat(1).checkSubtype(a,f.type)?null:new $a(a,o,f,u,h,_):null}evaluate(e){const i=this.input.evaluate(e);return(Mt(i)===this.inputType&&this.outputs[this.cases[i]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))&&this.otherwise.outputDefined()}}class rt{constructor(e,i,a){this.type=e,this.branches=i,this.otherwise=a}static parse(e,i){if(e.length<4)return i.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return i.error("Expected an odd number of arguments.");let a;i.expectedType&&i.expectedType.kind!=="value"&&(a=i.expectedType);const o=[];for(let h=1;h<e.length-1;h+=2){const f=i.parse(e[h],h,We);if(!f)return null;const _=i.parse(e[h+1],h+1,a);if(!_)return null;o.push([f,_]),a=a||_.type}const u=i.parse(e[e.length-1],e.length-1,a);if(!u)return null;if(!a)throw new Error("Can't infer output type");return new rt(a,o,u)}evaluate(e){for(const[i,a]of this.branches)if(i.evaluate(e))return a.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(const[i,a]of this.branches)e(i),e(a);e(this.otherwise)}outputDefined(){return this.branches.every((([e,i])=>i.outputDefined()))&&this.otherwise.outputDefined()}}class ha{constructor(e,i,a,o){this.type=e,this.input=i,this.beginIndex=a,this.endIndex=o}static parse(e,i){if(e.length<=2||e.length>=5)return i.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const a=i.parse(e[1],1,Ke),o=i.parse(e[2],2,Pe);if(!a||!o)return null;if(!Rs(a.type,[Ci(Ke),$e,Ke]))return i.error(`Expected first argument to be of type array or string, but found ${gt(a.type)} instead`);if(e.length===4){const u=i.parse(e[3],3,Pe);return u?new ha(a.type,a,o,u):null}return new ha(a.type,a,o)}evaluate(e){const i=this.input.evaluate(e),a=this.beginIndex.evaluate(e);let o;if(this.endIndex&&(o=this.endIndex.evaluate(e)),kr(i,["string"]))return[...i].slice(a,o).join("");if(kr(i,["array"]))return i.slice(a,o);throw new je(`Expected first argument to be of type array or string, but found ${gt(Mt(i))} instead.`)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}}function Qi(r,e){const i=r.length-1;let a,o,u=0,h=i,f=0;for(;u<=h;)if(f=Math.floor((u+h)/2),a=r[f],o=r[f+1],a<=e){if(f===i||e<o)return f;u=f+1}else{if(!(a>e))throw new je("Input is not a number.");h=f-1}return 0}class Rn{constructor(e,i,a){this.type=e,this.input=i,this.labels=[],this.outputs=[];for(const[o,u]of a)this.labels.push(o),this.outputs.push(u)}static parse(e,i){if(e.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return i.error("Expected an even number of arguments.");const a=i.parse(e[1],1,Pe);if(!a)return null;const o=[];let u=null;i.expectedType&&i.expectedType.kind!=="value"&&(u=i.expectedType);for(let h=1;h<e.length;h+=2){const f=h===1?-1/0:e[h],_=e[h+1],y=h,v=h+1;if(typeof f!="number")return i.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',y);if(o.length&&o[o.length-1][0]>=f)return i.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',y);const b=i.parse(_,v,u);if(!b)return null;u=u||b.type,o.push([f,b])}return new Rn(u,a,o)}evaluate(e){const i=this.labels,a=this.outputs;if(i.length===1)return a[0].evaluate(e);const o=this.input.evaluate(e);if(o<=i[0])return a[0].evaluate(e);const u=i.length;return o>=i[u-1]?a[u-1].evaluate(e):a[Qi(i,o)].evaluate(e)}eachChild(e){e(this.input);for(const i of this.outputs)e(i)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))}}function Vs(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var js,Ns,ac=(function(){if(Ns)return js;function r(e,i,a,o){this.cx=3*e,this.bx=3*(a-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(o-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=i,this.p2x=a,this.p2y=o}return Ns=1,js=r,r.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,i){if(i===void 0&&(i=1e-6),e<0)return 0;if(e>1)return 1;for(var a=e,o=0;o<8;o++){var u=this.sampleCurveX(a)-e;if(Math.abs(u)<i)return a;var h=this.sampleCurveDerivativeX(a);if(Math.abs(h)<1e-6)break;a-=u/h}var f=0,_=1;for(a=e,o=0;o<20&&(u=this.sampleCurveX(a),!(Math.abs(u-e)<i));o++)e>u?f=a:_=a,a=.5*(_-f)+f;return a},solve:function(e,i){return this.sampleCurveY(this.solveCurveX(e,i))}},js})(),Fu=Vs(ac);class vi{constructor(e,i,a,o,u){this.type=e,this.operator=i,this.interpolation=a,this.input=o,this.labels=[],this.outputs=[];for(const[h,f]of u)this.labels.push(h),this.outputs.push(f)}static interpolationFactor(e,i,a,o){let u=0;if(e.name==="exponential")u=Us(i,e.base,a,o);else if(e.name==="linear")u=Us(i,1,a,o);else if(e.name==="cubic-bezier"){const h=e.controlPoints;u=new Fu(h[0],h[1],h[2],h[3]).solve(Us(i,1,a,o))}return u}static parse(e,i){let[a,o,u,...h]=e;if(!Array.isArray(o)||o.length===0)return i.error("Expected an interpolation type expression.",1);if(o[0]==="linear")o={name:"linear"};else if(o[0]==="exponential"){const y=o[1];if(typeof y!="number")return i.error("Exponential interpolation requires a numeric base.",1,1);o={name:"exponential",base:y}}else{if(o[0]!=="cubic-bezier")return i.error(`Unknown interpolation type ${String(o[0])}`,1,0);{const y=o.slice(1);if(y.length!==4||y.some((v=>typeof v!="number"||v<0||v>1)))return i.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);o={name:"cubic-bezier",controlPoints:y}}}if(e.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return i.error("Expected an even number of arguments.");if(u=i.parse(u,2,Pe),!u)return null;const f=[];let _=null;a!=="interpolate-hcl"&&a!=="interpolate-lab"||i.expectedType==Ba?i.expectedType&&i.expectedType.kind!=="value"&&(_=i.expectedType):_=Ki;for(let y=0;y<h.length;y+=2){const v=h[y],b=h[y+1],S=y+3,P=y+4;if(typeof v!="number")return i.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',S);if(f.length&&f[f.length-1][0]>=v)return i.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',S);const E=i.parse(b,P,_);if(!E)return null;_=_||E.type,f.push([v,E])}return ln(_,Pe)||ln(_,ra)||ln(_,Ki)||ln(_,ks)||ln(_,Oa)||ln(_,Ba)||ln(_,Va)||ln(_,Ci(Pe))?new vi(_,a,o,u,f):i.error(`Type ${gt(_)} is not interpolatable.`)}evaluate(e){const i=this.labels,a=this.outputs;if(i.length===1)return a[0].evaluate(e);const o=this.input.evaluate(e);if(o<=i[0])return a[0].evaluate(e);const u=i.length;if(o>=i[u-1])return a[u-1].evaluate(e);const h=Qi(i,o),f=vi.interpolationFactor(this.interpolation,o,i[h],i[h+1]),_=a[h].evaluate(e),y=a[h+1].evaluate(e);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return Ji(_,y,f);case"color":return et.interpolate(_,y,f);case"padding":return pi.interpolate(_,y,f);case"colorArray":return yt.interpolate(_,y,f);case"numberArray":return fi.interpolate(_,y,f);case"variableAnchorOffsetCollection":return Gt.interpolate(_,y,f);case"array":return la(_,y,f);case"projectionDefinition":return Ai.interpolate(_,y,f)}case"interpolate-hcl":switch(this.type.kind){case"color":return et.interpolate(_,y,f,"hcl");case"colorArray":return yt.interpolate(_,y,f,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return et.interpolate(_,y,f,"lab");case"colorArray":return yt.interpolate(_,y,f,"lab")}}}eachChild(e){e(this.input);for(const i of this.outputs)e(i)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))}}function Us(r,e,i,a){const o=a-i,u=r-i;return o===0?0:e===1?u/o:(Math.pow(e,u)-1)/(Math.pow(e,o)-1)}const ai={color:et.interpolate,number:Ji,padding:pi.interpolate,numberArray:fi.interpolate,colorArray:yt.interpolate,variableAnchorOffsetCollection:Gt.interpolate,array:la};class Yt{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");let a=null;const o=i.expectedType;o&&o.kind!=="value"&&(a=o);const u=[];for(const f of e.slice(1)){const _=i.parse(f,1+u.length,a,void 0,{typeAnnotation:"omit"});if(!_)return null;a=a||_.type,u.push(_)}if(!a)throw new Error("No output type");const h=o&&u.some((f=>on(o,f.type)));return new Yt(h?Ke:a,u)}evaluate(e){let i,a=null,o=0;for(const u of this.args)if(o++,a=u.evaluate(e),a&&a instanceof Oi&&!a.available&&(i||(i=a.name),a=null,o===this.args.length&&(a=i)),a!==null)break;return a}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}}function Wa(r,e){return r==="=="||r==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function $o(r,e,i,a){return a.compare(e,i)===0}function Fr(r,e,i){const a=r!=="=="&&r!=="!=";return class Sf{constructor(u,h,f){this.type=We,this.lhs=u,this.rhs=h,this.collator=f,this.hasUntypedArgument=u.type.kind==="value"||h.type.kind==="value"}static parse(u,h){if(u.length!==3&&u.length!==4)return h.error("Expected two or three arguments.");const f=u[0];let _=h.parse(u[1],1,Ke);if(!_)return null;if(!Wa(f,_.type))return h.concat(1).error(`"${f}" comparisons are not supported for type '${gt(_.type)}'.`);let y=h.parse(u[2],2,Ke);if(!y)return null;if(!Wa(f,y.type))return h.concat(2).error(`"${f}" comparisons are not supported for type '${gt(y.type)}'.`);if(_.type.kind!==y.type.kind&&_.type.kind!=="value"&&y.type.kind!=="value")return h.error(`Cannot compare types '${gt(_.type)}' and '${gt(y.type)}'.`);a&&(_.type.kind==="value"&&y.type.kind!=="value"?_=new cr(y.type,[_]):_.type.kind!=="value"&&y.type.kind==="value"&&(y=new cr(_.type,[y])));let v=null;if(u.length===4){if(_.type.kind!=="string"&&y.type.kind!=="string"&&_.type.kind!=="value"&&y.type.kind!=="value")return h.error("Cannot use collator to compare non-string types.");if(v=h.parse(u[3],3,na),!v)return null}return new Sf(_,y,v)}evaluate(u){const h=this.lhs.evaluate(u),f=this.rhs.evaluate(u);if(a&&this.hasUntypedArgument){const _=Mt(h),y=Mt(f);if(_.kind!==y.kind||_.kind!=="string"&&_.kind!=="number")throw new je(`Expected arguments for "${r}" to be (string, string) or (number, number), but found (${_.kind}, ${y.kind}) instead.`)}if(this.collator&&!a&&this.hasUntypedArgument){const _=Mt(h),y=Mt(f);if(_.kind!=="string"||y.kind!=="string")return e(u,h,f)}return this.collator?i(u,h,f,this.collator.evaluate(u)):e(u,h,f)}eachChild(u){u(this.lhs),u(this.rhs),this.collator&&u(this.collator)}outputDefined(){return!0}}}const Qt=Fr("==",(function(r,e,i){return e===i}),$o),sc=Fr("!=",(function(r,e,i){return e!==i}),(function(r,e,i,a){return!$o(0,e,i,a)})),Wo=Fr("<",(function(r,e,i){return e<i}),(function(r,e,i,a){return a.compare(e,i)<0})),oc=Fr(">",(function(r,e,i){return e>i}),(function(r,e,i,a){return a.compare(e,i)>0})),Bu=Fr("<=",(function(r,e,i){return e<=i}),(function(r,e,i,a){return a.compare(e,i)<=0})),da=Fr(">=",(function(r,e,i){return e>=i}),(function(r,e,i,a){return a.compare(e,i)>=0}));class Ln{constructor(e,i,a){this.type=na,this.locale=a,this.caseSensitive=e,this.diacriticSensitive=i}static parse(e,i){if(e.length!==2)return i.error("Expected one argument.");const a=e[1];if(typeof a!="object"||Array.isArray(a))return i.error("Collator options argument must be an object.");const o=i.parse(a["case-sensitive"]!==void 0&&a["case-sensitive"],1,We);if(!o)return null;const u=i.parse(a["diacritic-sensitive"]!==void 0&&a["diacritic-sensitive"],1,We);if(!u)return null;let h=null;return a.locale&&(h=i.parse(a.locale,1,$e),!h)?null:new Ln(o,u,h)}evaluate(e){return new zn(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}}class Ha{constructor(e,i,a,o,u){this.type=$e,this.number=e,this.locale=i,this.currency=a,this.minFractionDigits=o,this.maxFractionDigits=u}static parse(e,i){if(e.length!==3)return i.error("Expected two arguments.");const a=i.parse(e[1],1,Pe);if(!a)return null;const o=e[2];if(typeof o!="object"||Array.isArray(o))return i.error("NumberFormat options argument must be an object.");let u=null;if(o.locale&&(u=i.parse(o.locale,1,$e),!u))return null;let h=null;if(o.currency&&(h=i.parse(o.currency,1,$e),!h))return null;let f=null;if(o["min-fraction-digits"]&&(f=i.parse(o["min-fraction-digits"],1,Pe),!f))return null;let _=null;return o["max-fraction-digits"]&&(_=i.parse(o["max-fraction-digits"],1,Pe),!_)?null:new Ha(a,u,h,f,_)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}}class Gs{constructor(e){this.type=aa,this.sections=e}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");const a=e[1];if(!Array.isArray(a)&&typeof a=="object")return i.error("First argument must be an image or text section.");const o=[];let u=!1;for(let h=1;h<=e.length-1;++h){const f=e[h];if(u&&typeof f=="object"&&!Array.isArray(f)){u=!1;let _=null;if(f["font-scale"]&&(_=i.parse(f["font-scale"],1,Pe),!_))return null;let y=null;if(f["text-font"]&&(y=i.parse(f["text-font"],1,Ci($e)),!y))return null;let v=null;if(f["text-color"]&&(v=i.parse(f["text-color"],1,Ki),!v))return null;let b=null;if(f["vertical-align"]){if(typeof f["vertical-align"]=="string"&&!Lu.includes(f["vertical-align"]))return i.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${f["vertical-align"]}' instead.`);if(b=i.parse(f["vertical-align"],1,$e),!b)return null}const S=o[o.length-1];S.scale=_,S.font=y,S.textColor=v,S.verticalAlign=b}else{const _=i.parse(e[h],1,Ke);if(!_)return null;const y=_.type.kind;if(y!=="string"&&y!=="value"&&y!=="null"&&y!=="resolvedImage")return i.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");u=!0,o.push({content:_,scale:null,font:null,textColor:null,verticalAlign:null})}}return new Gs(o)}evaluate(e){return new Bi(this.sections.map((i=>{const a=i.content.evaluate(e);return Mt(a)===sa?new qo("",a,null,null,null,i.verticalAlign?i.verticalAlign.evaluate(e):null):new qo(ua(a),null,i.scale?i.scale.evaluate(e):null,i.font?i.font.evaluate(e).join(","):null,i.textColor?i.textColor.evaluate(e):null,i.verticalAlign?i.verticalAlign.evaluate(e):null)})))}eachChild(e){for(const i of this.sections)e(i.content),i.scale&&e(i.scale),i.font&&e(i.font),i.textColor&&e(i.textColor),i.verticalAlign&&e(i.verticalAlign)}outputDefined(){return!1}}class qs{constructor(e){this.type=sa,this.input=e}static parse(e,i){if(e.length!==2)return i.error("Expected two arguments.");const a=i.parse(e[1],1,$e);return a?new qs(a):i.error("No image name provided.")}evaluate(e){const i=this.input.evaluate(e),a=Oi.fromString(i);return a&&e.availableImages&&(a.available=e.availableImages.indexOf(i)>-1),a}eachChild(e){e(this.input)}outputDefined(){return!1}}class pa{constructor(e){this.type=Pe,this.input=e}static parse(e,i){if(e.length!==2)return i.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=i.parse(e[1],1);return a?a.type.kind!=="array"&&a.type.kind!=="string"&&a.type.kind!=="value"?i.error(`Expected argument of type string or array, but found ${gt(a.type)} instead.`):new pa(a):null}evaluate(e){const i=this.input.evaluate(e);if(typeof i=="string")return[...i].length;if(Array.isArray(i))return i.length;throw new je(`Expected value to be of type string or array, but found ${gt(Mt(i))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}}const ji=8192;function ur(r,e){const i=(180+r[0])/360,a=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r[1]*Math.PI/360)))/360,o=Math.pow(2,e.z);return[Math.round(i*o*ji),Math.round(a*o*ji)]}function Zs(r,e){const i=Math.pow(2,e.z);return[(o=(r[0]/ji+e.x)/i,360*o-180),(a=(r[1]/ji+e.y)/i,360/Math.PI*Math.atan(Math.exp((180-360*a)*Math.PI/180))-90)];var a,o}function un(r,e){r[0]=Math.min(r[0],e[0]),r[1]=Math.min(r[1],e[1]),r[2]=Math.max(r[2],e[0]),r[3]=Math.max(r[3],e[1])}function Xa(r,e){return!(r[0]<=e[0]||r[2]>=e[2]||r[1]<=e[1]||r[3]>=e[3])}function Ho(r,e,i){const a=r[0]-e[0],o=r[1]-e[1],u=r[0]-i[0],h=r[1]-i[1];return a*h-u*o==0&&a*u<=0&&o*h<=0}function $s(r,e,i,a){return(o=[a[0]-i[0],a[1]-i[1]])[0]*(u=[e[0]-r[0],e[1]-r[1]])[1]-o[1]*u[0]!=0&&!(!Xo(r,e,i,a)||!Xo(i,a,r,e));var o,u}function Ou(r,e,i){for(const a of i)for(let o=0;o<a.length-1;++o)if($s(r,e,a[o],a[o+1]))return!0;return!1}function fa(r,e,i=!1){let a=!1;for(const f of e)for(let _=0;_<f.length-1;_++){if(Ho(r,f[_],f[_+1]))return i;(u=f[_])[1]>(o=r)[1]!=(h=f[_+1])[1]>o[1]&&o[0]<(h[0]-u[0])*(o[1]-u[1])/(h[1]-u[1])+u[0]&&(a=!a)}var o,u,h;return a}function Vu(r,e){for(const i of e)if(fa(r,i))return!0;return!1}function Ya(r,e){for(const i of r)if(!fa(i,e))return!1;for(let i=0;i<r.length-1;++i)if(Ou(r[i],r[i+1],e))return!1;return!0}function ju(r,e){for(const i of e)if(Ya(r,i))return!0;return!1}function Xo(r,e,i,a){const o=a[0]-i[0],u=a[1]-i[1],h=(r[0]-i[0])*u-o*(r[1]-i[1]),f=(e[0]-i[0])*u-o*(e[1]-i[1]);return h>0&&f<0||h<0&&f>0}function Ws(r,e,i){const a=[];for(let o=0;o<r.length;o++){const u=[];for(let h=0;h<r[o].length;h++){const f=ur(r[o][h],i);un(e,f),u.push(f)}a.push(u)}return a}function lc(r,e,i){const a=[];for(let o=0;o<r.length;o++){const u=Ws(r[o],e,i);a.push(u)}return a}function Yo(r,e,i,a){if(r[0]<i[0]||r[0]>i[2]){const o=.5*a;let u=r[0]-i[0]>o?-a:i[0]-r[0]>o?a:0;u===0&&(u=r[0]-i[2]>o?-a:i[2]-r[0]>o?a:0),r[0]+=u}un(e,r)}function cc(r,e,i,a){const o=Math.pow(2,a.z)*ji,u=[a.x*ji,a.y*ji],h=[];for(const f of r)for(const _ of f){const y=[_.x+u[0],_.y+u[1]];Yo(y,e,i,o),h.push(y)}return h}function uc(r,e,i,a){const o=Math.pow(2,a.z)*ji,u=[a.x*ji,a.y*ji],h=[];for(const _ of r){const y=[];for(const v of _){const b=[v.x+u[0],v.y+u[1]];un(e,b),y.push(b)}h.push(y)}if(e[2]-e[0]<=o/2){(f=e)[0]=f[1]=1/0,f[2]=f[3]=-1/0;for(const _ of h)for(const y of _)Yo(y,e,i,o)}var f;return h}class Fn{constructor(e,i){this.type=We,this.geojson=e,this.geometries=i}static parse(e,i){if(e.length!==2)return i.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(Rr(e[1])){const a=e[1];if(a.type==="FeatureCollection"){const o=[];for(const u of a.features){const{type:h,coordinates:f}=u.geometry;h==="Polygon"&&o.push(f),h==="MultiPolygon"&&o.push(...f)}if(o.length)return new Fn(a,{type:"MultiPolygon",coordinates:o})}else if(a.type==="Feature"){const o=a.geometry.type;if(o==="Polygon"||o==="MultiPolygon")return new Fn(a,a.geometry)}else if(a.type==="Polygon"||a.type==="MultiPolygon")return new Fn(a,a)}return i.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()==="Point")return(function(i,a){const o=[1/0,1/0,-1/0,-1/0],u=[1/0,1/0,-1/0,-1/0],h=i.canonicalID();if(a.type==="Polygon"){const f=Ws(a.coordinates,u,h),_=cc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!fa(y,f))return!1}if(a.type==="MultiPolygon"){const f=lc(a.coordinates,u,h),_=cc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!Vu(y,f))return!1}return!0})(e,this.geometries);if(e.geometryType()==="LineString")return(function(i,a){const o=[1/0,1/0,-1/0,-1/0],u=[1/0,1/0,-1/0,-1/0],h=i.canonicalID();if(a.type==="Polygon"){const f=Ws(a.coordinates,u,h),_=uc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!Ya(y,f))return!1}if(a.type==="MultiPolygon"){const f=lc(a.coordinates,u,h),_=uc(i.geometry(),o,u,h);if(!Xa(o,u))return!1;for(const y of _)if(!ju(y,f))return!1}return!0})(e,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let hc=class{constructor(r=[],e=(i,a)=>i<a?-1:i>a?1:0){if(this.data=r,this.length=this.data.length,this.compare=e,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(r){this.data.push(r),this._up(this.length++)}pop(){if(this.length===0)return;const r=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),r}peek(){return this.data[0]}_up(r){const{data:e,compare:i}=this,a=e[r];for(;r>0;){const o=r-1>>1,u=e[o];if(i(a,u)>=0)break;e[r]=u,r=o}e[r]=a}_down(r){const{data:e,compare:i}=this,a=this.length>>1,o=e[r];for(;r<a;){let u=1+(r<<1);const h=u+1;if(h<this.length&&i(e[h],e[u])<0&&(u=h),i(e[u],o)>=0)break;e[r]=e[u],r=u}e[r]=o}};function dc(r,e,i=0,a=r.length-1,o=pc){for(;a>i;){if(a-i>600){const _=a-i+1,y=e-i+1,v=Math.log(_),b=.5*Math.exp(2*v/3),S=.5*Math.sqrt(v*b*(_-b)/_)*(y-_/2<0?-1:1);dc(r,e,Math.max(i,Math.floor(e-y*b/_+S)),Math.min(a,Math.floor(e+(_-y)*b/_+S)),o)}const u=r[e];let h=i,f=a;for(ma(r,i,e),o(r[a],u)>0&&ma(r,i,a);h<f;){for(ma(r,h,f),h++,f--;o(r[h],u)<0;)h++;for(;o(r[f],u)>0;)f--}o(r[i],u)===0?ma(r,i,f):(f++,ma(r,f,a)),f<=e&&(i=f+1),e<=f&&(a=f-1)}}function ma(r,e,i){const a=r[e];r[e]=r[i],r[i]=a}function pc(r,e){return r<e?-1:r>e?1:0}function Ka(r,e){if(r.length<=1)return[r];const i=[];let a,o;for(const u of r){const h=Uu(u);h!==0&&(u.area=Math.abs(h),o===void 0&&(o=h<0),o===h<0?(a&&i.push(a),a=[u]):a.push(u))}if(a&&i.push(a),e>1)for(let u=0;u<i.length;u++)i[u].length<=e||(dc(i[u],e,1,i[u].length-1,Nu),i[u]=i[u].slice(0,e));return i}function Nu(r,e){return e.area-r.area}function Uu(r){let e=0;for(let i,a,o=0,u=r.length,h=u-1;o<u;h=o++)i=r[o],a=r[h],e+=(a.x-i.x)*(i.y+a.y);return e}const fc=1/298.257223563,mc=fc*(2-fc),Ja=Math.PI/180;class Ko{constructor(e){const i=6378.137*Ja*1e3,a=Math.cos(e*Ja),o=1/(1-mc*(1-a*a)),u=Math.sqrt(o);this.kx=i*u*a,this.ky=i*u*o*(1-mc)}distance(e,i){const a=this.wrap(e[0]-i[0])*this.kx,o=(e[1]-i[1])*this.ky;return Math.sqrt(a*a+o*o)}pointOnLine(e,i){let a,o,u,h,f=1/0;for(let _=0;_<e.length-1;_++){let y=e[_][0],v=e[_][1],b=this.wrap(e[_+1][0]-y)*this.kx,S=(e[_+1][1]-v)*this.ky,P=0;b===0&&S===0||(P=(this.wrap(i[0]-y)*this.kx*b+(i[1]-v)*this.ky*S)/(b*b+S*S),P>1?(y=e[_+1][0],v=e[_+1][1]):P>0&&(y+=b/this.kx*P,v+=S/this.ky*P)),b=this.wrap(i[0]-y)*this.kx,S=(i[1]-v)*this.ky;const E=b*b+S*S;E<f&&(f=E,a=y,o=v,u=_,h=P)}return{point:[a,o],index:u,t:Math.max(0,Math.min(1,h))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}}function _c(r,e){return e[0]-r[0]}function Hs(r){return r[1]-r[0]+1}function Br(r,e){return r[1]>=r[0]&&r[1]<e}function Qa(r,e){if(r[0]>r[1])return[null,null];const i=Hs(r);if(e){if(i===2)return[r,null];const o=Math.floor(i/2);return[[r[0],r[0]+o],[r[0]+o,r[1]]]}if(i===1)return[r,null];const a=Math.floor(i/2)-1;return[[r[0],r[0]+a],[r[0]+a+1,r[1]]]}function Xs(r,e){if(!Br(e,r.length))return[1/0,1/0,-1/0,-1/0];const i=[1/0,1/0,-1/0,-1/0];for(let a=e[0];a<=e[1];++a)un(i,r[a]);return i}function Jo(r){const e=[1/0,1/0,-1/0,-1/0];for(const i of r)for(const a of i)un(e,a);return e}function gc(r){return r[0]!==-1/0&&r[1]!==-1/0&&r[2]!==1/0&&r[3]!==1/0}function Ys(r,e,i){if(!gc(r)||!gc(e))return NaN;let a=0,o=0;return r[2]<e[0]&&(a=e[0]-r[2]),r[0]>e[2]&&(a=r[0]-e[2]),r[1]>e[3]&&(o=r[1]-e[3]),r[3]<e[1]&&(o=e[1]-r[3]),i.distance([0,0],[a,o])}function hn(r,e,i){const a=i.pointOnLine(e,r);return i.distance(r,a.point)}function Qo(r,e,i,a,o){const u=Math.min(hn(r,[i,a],o),hn(e,[i,a],o)),h=Math.min(hn(i,[r,e],o),hn(a,[r,e],o));return Math.min(u,h)}function Gu(r,e,i,a,o){if(!Br(e,r.length)||!Br(a,i.length))return 1/0;let u=1/0;for(let h=e[0];h<e[1];++h){const f=r[h],_=r[h+1];for(let y=a[0];y<a[1];++y){const v=i[y],b=i[y+1];if($s(f,_,v,b))return 0;u=Math.min(u,Qo(f,_,v,b,o))}}return u}function qu(r,e,i,a,o){if(!Br(e,r.length)||!Br(a,i.length))return NaN;let u=1/0;for(let h=e[0];h<=e[1];++h)for(let f=a[0];f<=a[1];++f)if(u=Math.min(u,o.distance(r[h],i[f])),u===0)return u;return u}function yc(r,e,i){if(fa(r,e,!0))return 0;let a=1/0;for(const o of e){const u=o[0],h=o[o.length-1];if(u!==h&&(a=Math.min(a,hn(r,[h,u],i)),a===0))return a;const f=i.pointOnLine(o,r);if(a=Math.min(a,i.distance(r,f.point)),a===0)return a}return a}function Zu(r,e,i,a){if(!Br(e,r.length))return NaN;for(let u=e[0];u<=e[1];++u)if(fa(r[u],i,!0))return 0;let o=1/0;for(let u=e[0];u<e[1];++u){const h=r[u],f=r[u+1];for(const _ of i)for(let y=0,v=_.length,b=v-1;y<v;b=y++){const S=_[b],P=_[y];if($s(h,f,S,P))return 0;o=Math.min(o,Qo(h,f,S,P,a))}}return o}function xc(r,e){for(const i of r)for(const a of i)if(fa(a,e,!0))return!0;return!1}function $u(r,e,i,a=1/0){const o=Jo(r),u=Jo(e);if(a!==1/0&&Ys(o,u,i)>=a)return a;if(Xa(o,u)){if(xc(r,e))return 0}else if(xc(e,r))return 0;let h=1/0;for(const f of r)for(let _=0,y=f.length,v=y-1;_<y;v=_++){const b=f[v],S=f[_];for(const P of e)for(let E=0,A=P.length,R=A-1;E<A;R=E++){const O=P[R],G=P[E];if($s(b,S,O,G))return 0;h=Math.min(h,Qo(b,S,O,G,i))}}return h}function vc(r,e,i,a,o,u){if(!u)return;const h=Ys(Xs(a,u),o,i);h<e&&r.push([h,u,[0,0]])}function nt(r,e,i,a,o,u,h){if(!u||!h)return;const f=Ys(Xs(a,u),Xs(o,h),i);f<e&&r.push([f,u,h])}function Ks(r,e,i,a,o=1/0){let u=Math.min(a.distance(r[0],i[0][0]),o);if(u===0)return u;const h=new hc([[0,[0,r.length-1],[0,0]]],_c),f=Jo(i);for(;h.length>0;){const _=h.pop();if(_[0]>=u)continue;const y=_[1],v=e?50:100;if(Hs(y)<=v){if(!Br(y,r.length))return NaN;if(e){const b=Zu(r,y,i,a);if(isNaN(b)||b===0)return b;u=Math.min(u,b)}else for(let b=y[0];b<=y[1];++b){const S=yc(r[b],i,a);if(u=Math.min(u,S),u===0)return 0}}else{const b=Qa(y,e);vc(h,u,a,r,f,b[0]),vc(h,u,a,r,f,b[1])}}return u}function Js(r,e,i,a,o,u=1/0){let h=Math.min(u,o.distance(r[0],i[0]));if(h===0)return h;const f=new hc([[0,[0,r.length-1],[0,i.length-1]]],_c);for(;f.length>0;){const _=f.pop();if(_[0]>=h)continue;const y=_[1],v=_[2],b=e?50:100,S=a?50:100;if(Hs(y)<=b&&Hs(v)<=S){if(!Br(y,r.length)&&Br(v,i.length))return NaN;let P;if(e&&a)P=Gu(r,y,i,v,o),h=Math.min(h,P);else if(e&&!a){const E=r.slice(y[0],y[1]+1);for(let A=v[0];A<=v[1];++A)if(P=hn(i[A],E,o),h=Math.min(h,P),h===0)return h}else if(!e&&a){const E=i.slice(v[0],v[1]+1);for(let A=y[0];A<=y[1];++A)if(P=hn(r[A],E,o),h=Math.min(h,P),h===0)return h}else P=qu(r,y,i,v,o),h=Math.min(h,P)}else{const P=Qa(y,e),E=Qa(v,a);nt(f,h,o,r,i,P[0],E[0]),nt(f,h,o,r,i,P[0],E[1]),nt(f,h,o,r,i,P[1],E[0]),nt(f,h,o,r,i,P[1],E[1])}}return h}function el(r){return r.type==="MultiPolygon"?r.coordinates.map((e=>({type:"Polygon",coordinates:e}))):r.type==="MultiLineString"?r.coordinates.map((e=>({type:"LineString",coordinates:e}))):r.type==="MultiPoint"?r.coordinates.map((e=>({type:"Point",coordinates:e}))):[r]}class Bn{constructor(e,i){this.type=Pe,this.geojson=e,this.geometries=i}static parse(e,i){if(e.length!==2)return i.error(`'distance' expression requires exactly one argument, but found ${e.length-1} instead.`);if(Rr(e[1])){const a=e[1];if(a.type==="FeatureCollection")return new Bn(a,a.features.map((o=>el(o.geometry))).flat());if(a.type==="Feature")return new Bn(a,el(a.geometry));if("type"in a&&"coordinates"in a)return new Bn(a,el(a))}return i.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()==="Point")return(function(i,a){const o=i.geometry(),u=o.flat().map((_=>Zs([_.x,_.y],i.canonical)));if(o.length===0)return NaN;const h=new Ko(u[0][1]);let f=1/0;for(const _ of a){switch(_.type){case"Point":f=Math.min(f,Js(u,!1,[_.coordinates],!1,h,f));break;case"LineString":f=Math.min(f,Js(u,!1,_.coordinates,!0,h,f));break;case"Polygon":f=Math.min(f,Ks(u,!1,_.coordinates,h,f))}if(f===0)return f}return f})(e,this.geometries);if(e.geometryType()==="LineString")return(function(i,a){const o=i.geometry(),u=o.flat().map((_=>Zs([_.x,_.y],i.canonical)));if(o.length===0)return NaN;const h=new Ko(u[0][1]);let f=1/0;for(const _ of a){switch(_.type){case"Point":f=Math.min(f,Js(u,!0,[_.coordinates],!1,h,f));break;case"LineString":f=Math.min(f,Js(u,!0,_.coordinates,!0,h,f));break;case"Polygon":f=Math.min(f,Ks(u,!0,_.coordinates,h,f))}if(f===0)return f}return f})(e,this.geometries);if(e.geometryType()==="Polygon")return(function(i,a){const o=i.geometry();if(o.length===0||o[0].length===0)return NaN;const u=Ka(o,0).map((_=>_.map((y=>y.map((v=>Zs([v.x,v.y],i.canonical))))))),h=new Ko(u[0][0][0][1]);let f=1/0;for(const _ of a)for(const y of u){switch(_.type){case"Point":f=Math.min(f,Ks([_.coordinates],!1,y,h,f));break;case"LineString":f=Math.min(f,Ks(_.coordinates,!0,y,h,f));break;case"Polygon":f=Math.min(f,$u(y,_.coordinates,h,f))}if(f===0)return f}return f})(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class es{constructor(e){this.type=Ke,this.key=e}static parse(e,i){if(e.length!==2)return i.error(`Expected 1 argument, but found ${e.length-1} instead.`);const a=e[1];return a==null?i.error("Global state property must be defined."):typeof a!="string"?i.error(`Global state property must be string, but found ${typeof e[1]} instead.`):new es(a)}evaluate(e){var i;const a=(i=e.globals)===null||i===void 0?void 0:i.globalState;return a&&Object.keys(a).length!==0?Ua(a,this.key):null}eachChild(){}outputDefined(){return!1}}const _a={"==":Qt,"!=":sc,">":oc,"<":Wo,">=":da,"<=":Bu,array:cr,at:Za,boolean:cr,case:rt,coalesce:Yt,collator:Ln,format:Gs,image:qs,in:tt,"index-of":Xe,interpolate:vi,"interpolate-hcl":vi,"interpolate-lab":vi,length:pa,let:kn,literal:Lr,match:$a,number:cr,"number-format":Ha,object:cr,slice:ha,step:Rn,string:cr,"to-boolean":Vi,"to-color":Vi,"to-number":Vi,"to-string":Vi,var:dt,within:Fn,distance:Bn,"global-state":es};class er{constructor(e,i,a,o){this.name=e,this.type=i,this._evaluate=a,this.args=o}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}static parse(e,i){const a=e[0],o=er.definitions[a];if(!o)return i.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0);const u=Array.isArray(o)?o[0]:o.type,h=Array.isArray(o)?[[o[1],o[2]]]:o.overloads,f=h.filter((([y])=>!Array.isArray(y)||y.length===e.length-1));let _=null;for(const[y,v]of f){_=new qa(i.registry,Qs,i.path,null,i.scope);const b=[];let S=!1;for(let P=1;P<e.length;P++){const E=e[P],A=Array.isArray(y)?y[P-1]:y.type,R=_.parse(E,1+b.length,A);if(!R){S=!0;break}b.push(R)}if(!S)if(Array.isArray(y)&&y.length!==b.length)_.error(`Expected ${y.length} arguments, but found ${b.length} instead.`);else{for(let P=0;P<b.length;P++){const E=Array.isArray(y)?y[P]:y.type,A=b[P];_.concat(P+1).checkSubtype(E,A.type)}if(_.errors.length===0)return new er(a,u,v,b)}}if(f.length===1)i.errors.push(..._.errors);else{const y=(f.length?f:h).map((([b])=>{return S=b,Array.isArray(S)?`(${S.map(gt).join(", ")})`:`(${gt(S.type)}...)`;var S})).join(" | "),v=[];for(let b=1;b<e.length;b++){const S=i.parse(e[b],1+v.length);if(!S)return null;v.push(gt(S.type))}i.error(`Expected arguments of type ${y}, but found (${v.join(", ")}) instead.`)}return null}static register(e,i){er.definitions=i;for(const a in i)e[a]=er}}function bc(r,[e,i,a,o]){e=e.evaluate(r),i=i.evaluate(r),a=a.evaluate(r);const u=o?o.evaluate(r):1,h=Os(e,i,a,u);if(h)throw new je(h);return new et(e/255,i/255,a/255,u,!1)}function wc(r,e){return r in e}function tl(r,e){const i=e[r];return i===void 0?null:i}function On(r){return{type:r}}function Qs(r){if(r instanceof dt)return Qs(r.boundExpression);if(r instanceof er&&r.name==="error"||r instanceof Ln||r instanceof Fn||r instanceof Bn||r instanceof es)return!1;const e=r instanceof Vi||r instanceof cr;let i=!0;return r.eachChild((a=>{i=e?i&&Qs(a):i&&a instanceof Lr})),!!i&&eo(r)&&to(r,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function eo(r){if(r instanceof er&&(r.name==="get"&&r.args.length===1||r.name==="feature-state"||r.name==="has"&&r.args.length===1||r.name==="properties"||r.name==="geometry-type"||r.name==="id"||/^filter-/.test(r.name))||r instanceof Fn||r instanceof Bn)return!1;let e=!0;return r.eachChild((i=>{e&&!eo(i)&&(e=!1)})),e}function ts(r){if(r instanceof er&&r.name==="feature-state")return!1;let e=!0;return r.eachChild((i=>{e&&!ts(i)&&(e=!1)})),e}function to(r,e){if(r instanceof er&&e.indexOf(r.name)>=0)return!1;let i=!0;return r.eachChild((a=>{i&&!to(a,e)&&(i=!1)})),i}function Tc(r){return{result:"success",value:r}}function ga(r){return{result:"error",value:r}}function ya(r){return r["property-type"]==="data-driven"||r["property-type"]==="cross-faded-data-driven"}function Sc(r){return!!r.expression&&r.expression.parameters.indexOf("zoom")>-1}function il(r){return!!r.expression&&r.expression.interpolated}function Qe(r){return r instanceof Number?"number":r instanceof String?"string":r instanceof Boolean?"boolean":Array.isArray(r)?"array":r===null?"null":typeof r}function io(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&Mt(r)===En}function Wu(r){return r}function Pc(r,e){const i=r.stops&&typeof r.stops[0][0]=="object",a=i||!(i||r.property!==void 0),o=r.type||(il(e)?"exponential":"interval"),u=(function(v){switch(v.type){case"color":return et.parse;case"padding":return pi.parse;case"numberArray":return fi.parse;case"colorArray":return yt.parse;default:return null}})(e);if(u&&((r=at({},r)).stops&&(r.stops=r.stops.map((v=>[v[0],u(v[1])]))),r.default=u(r.default?r.default:e.default)),r.colorSpace&&(h=r.colorSpace)!=="rgb"&&h!=="hcl"&&h!=="lab")throw new Error(`Unknown color space: "${r.colorSpace}"`);var h;const f=(function(v){switch(v){case"exponential":return Mc;case"interval":return Xu;case"categorical":return Hu;case"identity":return Yu;default:throw new Error(`Unknown function type "${v}"`)}})(o);let _,y;if(o==="categorical"){_=Object.create(null);for(const v of r.stops)_[v[0]]=v[1];y=typeof r.stops[0][0]}if(i){const v={},b=[];for(let E=0;E<r.stops.length;E++){const A=r.stops[E],R=A[0].zoom;v[R]===void 0&&(v[R]={zoom:R,type:r.type,property:r.property,default:r.default,stops:[]},b.push(R)),v[R].stops.push([A[0].value,A[1]])}const S=[];for(const E of b)S.push([v[E].zoom,Pc(v[E],e)]);const P={name:"linear"};return{kind:"composite",interpolationType:P,interpolationFactor:vi.interpolationFactor.bind(void 0,P),zoomStops:S.map((E=>E[0])),evaluate:({zoom:E},A)=>Mc({stops:S,base:r.base},e,E).evaluate(E,A)}}if(a){const v=o==="exponential"?{name:"exponential",base:r.base!==void 0?r.base:1}:null;return{kind:"camera",interpolationType:v,interpolationFactor:vi.interpolationFactor.bind(void 0,v),zoomStops:r.stops.map((b=>b[0])),evaluate:({zoom:b})=>f(r,e,b,_,y)}}return{kind:"source",evaluate(v,b){const S=b&&b.properties?b.properties[r.property]:void 0;return S===void 0?is(r.default,e.default):f(r,e,S,_,y)}}}function is(r,e,i){return r!==void 0?r:e!==void 0?e:i!==void 0?i:void 0}function Hu(r,e,i,a,o){return is(typeof i===o?a[i]:void 0,r.default,e.default)}function Xu(r,e,i){if(Qe(i)!=="number")return is(r.default,e.default);const a=r.stops.length;if(a===1||i<=r.stops[0][0])return r.stops[0][1];if(i>=r.stops[a-1][0])return r.stops[a-1][1];const o=Qi(r.stops.map((u=>u[0])),i);return r.stops[o][1]}function Mc(r,e,i){const a=r.base!==void 0?r.base:1;if(Qe(i)!=="number")return is(r.default,e.default);const o=r.stops.length;if(o===1||i<=r.stops[0][0])return r.stops[0][1];if(i>=r.stops[o-1][0])return r.stops[o-1][1];const u=Qi(r.stops.map((v=>v[0])),i),h=(function(v,b,S,P){const E=P-S,A=v-S;return E===0?0:b===1?A/E:(Math.pow(b,A)-1)/(Math.pow(b,E)-1)})(i,a,r.stops[u][0],r.stops[u+1][0]),f=r.stops[u][1],_=r.stops[u+1][1],y=ai[e.type]||Wu;return typeof f.evaluate=="function"?{evaluate(...v){const b=f.evaluate.apply(void 0,v),S=_.evaluate.apply(void 0,v);if(b!==void 0&&S!==void 0)return y(b,S,h,r.colorSpace)}}:y(f,_,h,r.colorSpace)}function Yu(r,e,i){switch(e.type){case"color":i=et.parse(i);break;case"formatted":i=Bi.fromString(i.toString());break;case"resolvedImage":i=Oi.fromString(i.toString());break;case"padding":i=pi.parse(i);break;case"colorArray":i=yt.parse(i);break;case"numberArray":i=fi.parse(i);break;default:Qe(i)===e.type||e.type==="enum"&&e.values[i]||(i=void 0)}return is(i,r.default,e.default)}er.register(_a,{error:[{kind:"error"},[$e],(r,[e])=>{throw new je(e.evaluate(r))}],typeof:[$e,[Ke],(r,[e])=>gt(Mt(e.evaluate(r)))],"to-rgba":[Ci(Pe,4),[Ki],(r,[e])=>{const[i,a,o,u]=e.evaluate(r).rgb;return[255*i,255*a,255*o,u]}],rgb:[Ki,[Pe,Pe,Pe],bc],rgba:[Ki,[Pe,Pe,Pe,Pe],bc],has:{type:We,overloads:[[[$e],(r,[e])=>wc(e.evaluate(r),r.properties())],[[$e,En],(r,[e,i])=>wc(e.evaluate(r),i.evaluate(r))]]},get:{type:Ke,overloads:[[[$e],(r,[e])=>tl(e.evaluate(r),r.properties())],[[$e,En],(r,[e,i])=>tl(e.evaluate(r),i.evaluate(r))]]},"feature-state":[Ke,[$e],(r,[e])=>tl(e.evaluate(r),r.featureState||{})],properties:[En,[],r=>r.properties()],"geometry-type":[$e,[],r=>r.geometryType()],id:[Ke,[],r=>r.id()],zoom:[Pe,[],r=>r.globals.zoom],"heatmap-density":[Pe,[],r=>r.globals.heatmapDensity||0],elevation:[Pe,[],r=>r.globals.elevation||0],"line-progress":[Pe,[],r=>r.globals.lineProgress||0],accumulated:[Ke,[],r=>r.globals.accumulated===void 0?null:r.globals.accumulated],"+":[Pe,On(Pe),(r,e)=>{let i=0;for(const a of e)i+=a.evaluate(r);return i}],"*":[Pe,On(Pe),(r,e)=>{let i=1;for(const a of e)i*=a.evaluate(r);return i}],"-":{type:Pe,overloads:[[[Pe,Pe],(r,[e,i])=>e.evaluate(r)-i.evaluate(r)],[[Pe],(r,[e])=>-e.evaluate(r)]]},"/":[Pe,[Pe,Pe],(r,[e,i])=>e.evaluate(r)/i.evaluate(r)],"%":[Pe,[Pe,Pe],(r,[e,i])=>e.evaluate(r)%i.evaluate(r)],ln2:[Pe,[],()=>Math.LN2],pi:[Pe,[],()=>Math.PI],e:[Pe,[],()=>Math.E],"^":[Pe,[Pe,Pe],(r,[e,i])=>Math.pow(e.evaluate(r),i.evaluate(r))],sqrt:[Pe,[Pe],(r,[e])=>Math.sqrt(e.evaluate(r))],log10:[Pe,[Pe],(r,[e])=>Math.log(e.evaluate(r))/Math.LN10],ln:[Pe,[Pe],(r,[e])=>Math.log(e.evaluate(r))],log2:[Pe,[Pe],(r,[e])=>Math.log(e.evaluate(r))/Math.LN2],sin:[Pe,[Pe],(r,[e])=>Math.sin(e.evaluate(r))],cos:[Pe,[Pe],(r,[e])=>Math.cos(e.evaluate(r))],tan:[Pe,[Pe],(r,[e])=>Math.tan(e.evaluate(r))],asin:[Pe,[Pe],(r,[e])=>Math.asin(e.evaluate(r))],acos:[Pe,[Pe],(r,[e])=>Math.acos(e.evaluate(r))],atan:[Pe,[Pe],(r,[e])=>Math.atan(e.evaluate(r))],min:[Pe,On(Pe),(r,e)=>Math.min(...e.map((i=>i.evaluate(r))))],max:[Pe,On(Pe),(r,e)=>Math.max(...e.map((i=>i.evaluate(r))))],abs:[Pe,[Pe],(r,[e])=>Math.abs(e.evaluate(r))],round:[Pe,[Pe],(r,[e])=>{const i=e.evaluate(r);return i<0?-Math.round(-i):Math.round(i)}],floor:[Pe,[Pe],(r,[e])=>Math.floor(e.evaluate(r))],ceil:[Pe,[Pe],(r,[e])=>Math.ceil(e.evaluate(r))],"filter-==":[We,[$e,Ke],(r,[e,i])=>r.properties()[e.value]===i.value],"filter-id-==":[We,[Ke],(r,[e])=>r.id()===e.value],"filter-type-==":[We,[$e],(r,[e])=>r.geometryType()===e.value],"filter-<":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a<o}],"filter-id-<":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i<a}],"filter->":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a>o}],"filter-id->":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i>a}],"filter-<=":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a<=o}],"filter-id-<=":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i<=a}],"filter->=":[We,[$e,Ke],(r,[e,i])=>{const a=r.properties()[e.value],o=i.value;return typeof a==typeof o&&a>=o}],"filter-id->=":[We,[Ke],(r,[e])=>{const i=r.id(),a=e.value;return typeof i==typeof a&&i>=a}],"filter-has":[We,[Ke],(r,[e])=>e.value in r.properties()],"filter-has-id":[We,[],r=>r.id()!==null&&r.id()!==void 0],"filter-type-in":[We,[Ci($e)],(r,[e])=>e.value.indexOf(r.geometryType())>=0],"filter-id-in":[We,[Ci(Ke)],(r,[e])=>e.value.indexOf(r.id())>=0],"filter-in-small":[We,[$e,Ci(Ke)],(r,[e,i])=>i.value.indexOf(r.properties()[e.value])>=0],"filter-in-large":[We,[$e,Ci(Ke)],(r,[e,i])=>(function(a,o,u,h){for(;u<=h;){const f=u+h>>1;if(o[f]===a)return!0;o[f]>a?h=f-1:u=f+1}return!1})(r.properties()[e.value],i.value,0,i.value.length-1)],all:{type:We,overloads:[[[We,We],(r,[e,i])=>e.evaluate(r)&&i.evaluate(r)],[On(We),(r,e)=>{for(const i of e)if(!i.evaluate(r))return!1;return!0}]]},any:{type:We,overloads:[[[We,We],(r,[e,i])=>e.evaluate(r)||i.evaluate(r)],[On(We),(r,e)=>{for(const i of e)if(i.evaluate(r))return!0;return!1}]]},"!":[We,[We],(r,[e])=>!e.evaluate(r)],"is-supported-script":[We,[$e],(r,[e])=>{const i=r.globals&&r.globals.isSupportedScript;return!i||i(e.evaluate(r))}],upcase:[$e,[$e],(r,[e])=>e.evaluate(r).toUpperCase()],downcase:[$e,[$e],(r,[e])=>e.evaluate(r).toLowerCase()],concat:[$e,On(Ke),(r,e)=>e.map((i=>ua(i.evaluate(r)))).join("")],"resolved-locale":[$e,[na],(r,[e])=>e.evaluate(r).resolvedLocale()]});class rl{constructor(e,i,a){this.expression=e,this._warningHistory={},this._evaluator=new Zo,this._defaultValue=i?(function(o){if(o.type==="color"&&io(o.default))return new et(0,0,0,0);switch(o.type){case"color":return et.parse(o.default)||null;case"padding":return pi.parse(o.default)||null;case"numberArray":return fi.parse(o.default)||null;case"colorArray":return yt.parse(o.default)||null;case"variableAnchorOffsetCollection":return Gt.parse(o.default)||null;case"projectionDefinition":return Ai.parse(o.default)||null;default:return o.default===void 0?null:o.default}})(i):null,this._enumValues=i&&i.type==="enum"?i.values:null,this._globalState=a}evaluateWithoutErrorHandling(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=i,this._evaluator.featureState=a,this._evaluator.canonical=o,this._evaluator.availableImages=u||null,this._evaluator.formattedSection=h,this.expression.evaluate(this._evaluator)}evaluate(e,i,a,o,u,h){this._globalState&&(e=Or(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=i||null,this._evaluator.featureState=a||null,this._evaluator.canonical=o,this._evaluator.availableImages=u||null,this._evaluator.formattedSection=h||null;try{const f=this.expression.evaluate(this._evaluator);if(f==null||typeof f=="number"&&f!=f)return this._defaultValue;if(this._enumValues&&!(f in this._enumValues))throw new je(`Expected value to be one of ${Object.keys(this._enumValues).map((_=>JSON.stringify(_))).join(", ")}, but found ${JSON.stringify(f)} instead.`);return f}catch(f){return this._warningHistory[f.message]||(this._warningHistory[f.message]=!0,typeof console<"u"&&console.warn(f.message)),this._defaultValue}}}function ro(r){return Array.isArray(r)&&r.length>0&&typeof r[0]=="string"&&r[0]in _a}function Vn(r,e,i){const a=new qa(_a,Qs,[],e?(function(u){const h={color:Ki,string:$e,number:Pe,enum:$e,boolean:We,formatted:aa,padding:ks,numberArray:Oa,colorArray:Ba,projectionDefinition:ra,resolvedImage:sa,variableAnchorOffsetCollection:Va};return u.type==="array"?Ci(h[u.value]||Ke,u.length):h[u.type]})(e):void 0),o=a.parse(r,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?Tc(new rl(o,e,i)):ga(a.errors)}class no{constructor(e,i,a){this.kind=e,this._styleExpression=i,this.isStateDependent=e!=="constant"&&!ts(i.expression),this.globalStateRefs=ns(i.expression),this._globalState=a}evaluateWithoutErrorHandling(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,i,a,o,u,h)}evaluate(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluate(e,i,a,o,u,h)}}class nl{constructor(e,i,a,o,u){this.kind=e,this.zoomStops=a,this._styleExpression=i,this.isStateDependent=e!=="camera"&&!ts(i.expression),this.globalStateRefs=ns(i.expression),this.interpolationType=o,this._globalState=u}evaluateWithoutErrorHandling(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,i,a,o,u,h)}evaluate(e,i,a,o,u,h){return this._globalState&&(e=Or(e,this._globalState)),this._styleExpression.evaluate(e,i,a,o,u,h)}interpolationFactor(e,i,a){return this.interpolationType?vi.interpolationFactor(this.interpolationType,e,i,a):0}}function Ic(r,e,i){const a=Vn(r,e,i);if(a.result==="error")return a;const o=a.value.expression,u=eo(o);if(!u&&!ya(e))return ga([new bt("","data expressions not supported")]);const h=to(o,["zoom"]);if(!h&&!Sc(e))return ga([new bt("","zoom expressions not supported")]);const f=ao(o);return f||h?f instanceof bt?ga([f]):f instanceof vi&&!il(e)?ga([new bt("",'"interpolate" expressions cannot be used with this property')]):Tc(f?new nl(u?"camera":"composite",a.value,f.labels,f instanceof vi?f.interpolation:void 0,i):new no(u?"constant":"source",a.value,i)):ga([new bt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class rs{constructor(e,i){this._parameters=e,this._specification=i,at(this,Pc(this._parameters,this._specification))}static deserialize(e){return new rs(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function ao(r){let e=null;if(r instanceof kn)e=ao(r.result);else if(r instanceof Yt){for(const i of r.args)if(e=ao(i),e)break}else(r instanceof Rn||r instanceof vi)&&r.input instanceof er&&r.input.name==="zoom"&&(e=r);return e instanceof bt||r.eachChild((i=>{const a=ao(i);a instanceof bt?e=a:!e&&a?e=new bt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&a&&e!==a&&(e=new bt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),e}function ns(r,e=new Set){return r instanceof es&&e.add(r.key),r.eachChild((i=>{ns(i,e)})),e}function Or(r,e){const{zoom:i,heatmapDensity:a,elevation:o,lineProgress:u,isSupportedScript:h,accumulated:f}=r??{};return{zoom:i,heatmapDensity:a,elevation:o,lineProgress:u,isSupportedScript:h,accumulated:f,globalState:e}}function so(r){if(r===!0||r===!1)return!0;if(!Array.isArray(r)||r.length===0)return!1;switch(r[0]){case"has":return r.length>=2&&r[1]!=="$id"&&r[1]!=="$type";case"in":return r.length>=3&&(typeof r[1]!="string"||Array.isArray(r[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return r.length!==3||Array.isArray(r[1])||Array.isArray(r[2]);case"any":case"all":for(const e of r.slice(1))if(!so(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}const Ku={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function as(r,e){if(r==null)return{filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};so(r)||(r=oo(r));const i=Vn(r,Ku,e);if(i.result==="error")throw new Error(i.value.map((a=>`${a.key}: ${a.message}`)).join(", "));return{filter:(a,o,u)=>i.value.evaluate(a,o,{},u),needGeometry:Ec(r),getGlobalStateRefs:()=>ns(i.value.expression)}}function Ju(r,e){return r<e?-1:r>e?1:0}function Ec(r){if(!Array.isArray(r))return!1;if(r[0]==="within"||r[0]==="distance")return!0;for(let e=1;e<r.length;e++)if(Ec(r[e]))return!0;return!1}function oo(r){if(!r)return!0;const e=r[0];return r.length<=1?e!=="any":e==="=="?lo(r[1],r[2],"=="):e==="!="?co(lo(r[1],r[2],"==")):e==="<"||e===">"||e==="<="||e===">="?lo(r[1],r[2],e):e==="any"?(i=r.slice(1),["any"].concat(i.map(oo))):e==="all"?["all"].concat(r.slice(1).map(oo)):e==="none"?["all"].concat(r.slice(1).map(oo).map(co)):e==="in"?al(r[1],r.slice(2)):e==="!in"?co(al(r[1],r.slice(2))):e==="has"?Cc(r[1]):e!=="!has"||co(Cc(r[1]));var i}function lo(r,e,i){switch(r){case"$type":return[`filter-type-${i}`,e];case"$id":return[`filter-id-${i}`,e];default:return[`filter-${i}`,r,e]}}function al(r,e){if(e.length===0)return!1;switch(r){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((i=>typeof i!=typeof e[0]))?["filter-in-large",r,["literal",e.sort(Ju)]]:["filter-in-small",r,["literal",e]]}}function Cc(r){switch(r){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",r]}}function co(r){return["!",r]}function uo(r){const e=typeof r;if(e==="number"||e==="boolean"||e==="string"||r==null)return JSON.stringify(r);if(Array.isArray(r)){let o="[";for(const u of r)o+=`${uo(u)},`;return`${o}]`}const i=Object.keys(r).sort();let a="{";for(let o=0;o<i.length;o++)a+=`${JSON.stringify(i[o])}:${uo(r[i[o]])},`;return`${a}}`}function Ac(r){let e="";for(const i of Oe)e+=`/${uo(r[i])}`;return e}function sl(r){const e=r.value;return e?[new Se(r.key,e,"constants have been deprecated as of v8")]:[]}function Bt(r){return r instanceof Number||r instanceof String||r instanceof Boolean?r.valueOf():r}function jn(r){if(Array.isArray(r))return r.map(jn);if(r instanceof Object&&!(r instanceof Number||r instanceof String||r instanceof Boolean)){const e={};for(const i in r)e[i]=jn(r[i]);return e}return Bt(r)}function Ni(r){const e=r.key,i=r.value,a=r.valueSpec||{},o=r.objectElementValidators||{},u=r.style,h=r.styleSpec,f=r.validateSpec;let _=[];const y=Qe(i);if(y!=="object")return[new Se(e,i,`object expected, ${y} found`)];for(const v in i){const b=v.split(".")[0],S=Ua(a,b)||a["*"];let P;if(Ua(o,b))P=o[b];else if(Ua(a,b)){if(i[v]===void 0)continue;P=f}else if(o["*"])P=o["*"];else{if(!a["*"]){_.push(new Se(e,i[v],`unknown property "${v}"`));continue}P=f}_=_.concat(P({key:(e&&`${e}.`)+v,value:i[v],valueSpec:S,style:u,styleSpec:h,object:i,objectKey:v,validateSpec:f},i))}for(const v in a)o[v]||a[v].required&&a[v].default===void 0&&i[v]===void 0&&_.push(new Se(e,i,`missing required property "${v}"`));return _}function ol(r){const e=r.value,i=r.valueSpec,a=r.style,o=r.styleSpec,u=r.key,h=r.arrayElementValidator||r.validateSpec;if(Qe(e)!=="array")return[new Se(u,e,`array expected, ${Qe(e)} found`)];if(i.length&&e.length!==i.length)return[new Se(u,e,`array length ${i.length} expected, length ${e.length} found`)];let f={type:i.value,values:i.values};o.$version<7&&(f.function=i.function),Qe(i.value)==="object"&&(f=i.value);let _=[];for(let y=0;y<e.length;y++)_=_.concat(h({array:e,arrayIndex:y,value:e[y],valueSpec:f,validateSpec:r.validateSpec,style:a,styleSpec:o,key:`${u}[${y}]`}));return _}function ss(r){const e=r.key,i=r.value,a=r.valueSpec;let o=Qe(i);return o==="number"&&i!=i&&(o="NaN"),o!=="number"?[new Se(e,i,`number expected, ${o} found`)]:"minimum"in a&&i<a.minimum?[new Se(e,i,`${i} is less than the minimum value ${a.minimum}`)]:"maximum"in a&&i>a.maximum?[new Se(e,i,`${i} is greater than the maximum value ${a.maximum}`)]:[]}function ll(r){const e=r.valueSpec,i=Bt(r.value.type);let a,o,u,h={};const f=i!=="categorical"&&r.value.property===void 0,_=!f,y=Qe(r.value.stops)==="array"&&Qe(r.value.stops[0])==="array"&&Qe(r.value.stops[0][0])==="object",v=Ni({key:r.key,value:r.value,valueSpec:r.styleSpec.function,validateSpec:r.validateSpec,style:r.style,styleSpec:r.styleSpec,objectElementValidators:{stops:function(P){if(i==="identity")return[new Se(P.key,P.value,'identity function may not have a "stops" property')];let E=[];const A=P.value;return E=E.concat(ol({key:P.key,value:A,valueSpec:P.valueSpec,validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec,arrayElementValidator:b})),Qe(A)==="array"&&A.length===0&&E.push(new Se(P.key,A,"array must have at least one stop")),E},default:function(P){return P.validateSpec({key:P.key,value:P.value,valueSpec:e,validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec})}}});return i==="identity"&&f&&v.push(new Se(r.key,r.value,'missing required property "property"')),i==="identity"||r.value.stops||v.push(new Se(r.key,r.value,'missing required property "stops"')),i==="exponential"&&r.valueSpec.expression&&!il(r.valueSpec)&&v.push(new Se(r.key,r.value,"exponential functions not supported")),r.styleSpec.$version>=8&&(_&&!ya(r.valueSpec)?v.push(new Se(r.key,r.value,"property functions not supported")):f&&!Sc(r.valueSpec)&&v.push(new Se(r.key,r.value,"zoom functions not supported"))),i!=="categorical"&&!y||r.value.property!==void 0||v.push(new Se(r.key,r.value,'"property" property is required')),v;function b(P){let E=[];const A=P.value,R=P.key;if(Qe(A)!=="array")return[new Se(R,A,`array expected, ${Qe(A)} found`)];if(A.length!==2)return[new Se(R,A,`array length 2 expected, length ${A.length} found`)];if(y){if(Qe(A[0])!=="object")return[new Se(R,A,`object expected, ${Qe(A[0])} found`)];if(A[0].zoom===void 0)return[new Se(R,A,"object stop key must have zoom")];if(A[0].value===void 0)return[new Se(R,A,"object stop key must have value")];if(u&&u>Bt(A[0].zoom))return[new Se(R,A[0].zoom,"stop zoom values must appear in ascending order")];Bt(A[0].zoom)!==u&&(u=Bt(A[0].zoom),o=void 0,h={}),E=E.concat(Ni({key:`${R}[0]`,value:A[0],valueSpec:{zoom:{}},validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec,objectElementValidators:{zoom:ss,value:S}}))}else E=E.concat(S({key:`${R}[0]`,value:A[0],validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec},A));return ro(jn(A[1]))?E.concat([new Se(`${R}[1]`,A[1],"expressions are not allowed in function stops.")]):E.concat(P.validateSpec({key:`${R}[1]`,value:A[1],valueSpec:e,validateSpec:P.validateSpec,style:P.style,styleSpec:P.styleSpec}))}function S(P,E){const A=Qe(P.value),R=Bt(P.value),O=P.value!==null?P.value:E;if(a){if(A!==a)return[new Se(P.key,O,`${A} stop domain type must match previous stop domain type ${a}`)]}else a=A;if(A!=="number"&&A!=="string"&&A!=="boolean")return[new Se(P.key,O,"stop domain value must be a number, string, or boolean")];if(A!=="number"&&i!=="categorical"){let G=`number expected, ${A} found`;return ya(e)&&i===void 0&&(G+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Se(P.key,O,G)]}return i!=="categorical"||A!=="number"||isFinite(R)&&Math.floor(R)===R?i!=="categorical"&&A==="number"&&o!==void 0&&R<o?[new Se(P.key,O,"stop domain values must appear in ascending order")]:(o=R,i==="categorical"&&R in h?[new Se(P.key,O,"stop domain values must be unique")]:(h[R]=!0,[])):[new Se(P.key,O,`integer expected, found ${R}`)]}}function dn(r){const e=(r.expressionContext==="property"?Ic:Vn)(jn(r.value),r.valueSpec);if(e.result==="error")return e.value.map((a=>new Se(`${r.key}${a.key}`,r.value,a.message)));const i=e.value.expression||e.value._styleExpression.expression;if(r.expressionContext==="property"&&r.propertyKey==="text-font"&&!i.outputDefined())return[new Se(r.key,r.value,`Invalid data expression for "${r.propertyKey}". Output values must be contained as literals within the expression.`)];if(r.expressionContext==="property"&&r.propertyType==="layout"&&!ts(i))return[new Se(r.key,r.value,'"feature-state" data expressions are not supported with layout properties.')];if(r.expressionContext==="filter"&&!ts(i))return[new Se(r.key,r.value,'"feature-state" data expressions are not supported with filters.')];if(r.expressionContext&&r.expressionContext.indexOf("cluster")===0){if(!to(i,["zoom","feature-state"]))return[new Se(r.key,r.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(r.expressionContext==="cluster-initial"&&!eo(i))return[new Se(r.key,r.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function os(r){const e=r.key,i=r.value,a=Qe(i);return a!=="string"?[new Se(e,i,`color expected, ${a} found`)]:et.parse(String(i))?[]:[new Se(e,i,`color expected, "${i}" found`)]}function Nn(r){const e=r.key,i=r.value,a=r.valueSpec,o=[];return Array.isArray(a.values)?a.values.indexOf(Bt(i))===-1&&o.push(new Se(e,i,`expected one of [${a.values.join(", ")}], ${JSON.stringify(i)} found`)):Object.keys(a.values).indexOf(Bt(i))===-1&&o.push(new Se(e,i,`expected one of [${Object.keys(a.values).join(", ")}], ${JSON.stringify(i)} found`)),o}function ls(r){return so(jn(r.value))?dn(at({},r,{expressionContext:"filter",valueSpec:{value:"boolean"}})):cs(r)}function cs(r){const e=r.value,i=r.key;if(Qe(e)!=="array")return[new Se(i,e,`array expected, ${Qe(e)} found`)];const a=r.styleSpec;let o,u=[];if(e.length<1)return[new Se(i,e,"filter array must have at least 1 element")];switch(u=u.concat(Nn({key:`${i}[0]`,value:e[0],valueSpec:a.filter_operator,style:r.style,styleSpec:r.styleSpec})),Bt(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Bt(e[1])==="$type"&&u.push(new Se(i,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&u.push(new Se(i,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(o=Qe(e[1]),o!=="string"&&u.push(new Se(`${i}[1]`,e[1],`string expected, ${o} found`)));for(let h=2;h<e.length;h++)o=Qe(e[h]),Bt(e[1])==="$type"?u=u.concat(Nn({key:`${i}[${h}]`,value:e[h],valueSpec:a.geometry_type,style:r.style,styleSpec:r.styleSpec})):o!=="string"&&o!=="number"&&o!=="boolean"&&u.push(new Se(`${i}[${h}]`,e[h],`string, number, or boolean expected, ${o} found`));break;case"any":case"all":case"none":for(let h=1;h<e.length;h++)u=u.concat(cs({key:`${i}[${h}]`,value:e[h],style:r.style,styleSpec:r.styleSpec}));break;case"has":case"!has":o=Qe(e[1]),e.length!==2?u.push(new Se(i,e,`filter array for "${e[0]}" operator must have 2 elements`)):o!=="string"&&u.push(new Se(`${i}[1]`,e[1],`string expected, ${o} found`))}return u}function zc(r,e){const i=r.key,a=r.validateSpec,o=r.style,u=r.styleSpec,h=r.value,f=r.objectKey,_=u[`${e}_${r.layerType}`];if(!_)return[];const y=f.match(/^(.*)-transition$/);if(e==="paint"&&y&&_[y[1]]&&_[y[1]].transition)return a({key:i,value:h,valueSpec:u.transition,style:o,styleSpec:u});const v=r.valueSpec||_[f];if(!v)return[new Se(i,h,`unknown property "${f}"`)];let b;if(Qe(h)==="string"&&ya(v)&&!v.tokens&&(b=/^{([^}]+)}$/.exec(h)))return[new Se(i,h,`"${f}" does not support interpolation syntax
Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(b[1])} }\`.`)];const S=[];return r.layerType==="symbol"&&f==="text-font"&&io(jn(h))&&Bt(h.type)==="identity"&&S.push(new Se(i,h,'"text-font" does not support identity functions')),S.concat(a({key:r.key,value:h,valueSpec:v,style:o,styleSpec:u,expressionContext:"property",propertyType:e,propertyKey:f}))}function Dc(r){return zc(r,"paint")}function kc(r){return zc(r,"layout")}function Rc(r){let e=[];const i=r.value,a=r.key,o=r.style,u=r.styleSpec;if(Qe(i)!=="object")return[new Se(a,i,`object expected, ${Qe(i)} found`)];i.type||i.ref||e.push(new Se(a,i,'either "type" or "ref" is required'));let h=Bt(i.type);const f=Bt(i.ref);if(i.id){const _=Bt(i.id);for(let y=0;y<r.arrayIndex;y++){const v=o.layers[y];Bt(v.id)===_&&e.push(new Se(a,i.id,`duplicate layer id "${i.id}", previously used at line ${v.id.__line__}`))}}if("ref"in i){let _;["type","source","source-layer","filter","layout"].forEach((y=>{y in i&&e.push(new Se(a,i[y],`"${y}" is prohibited for ref layers`))})),o.layers.forEach((y=>{Bt(y.id)===f&&(_=y)})),_?_.ref?e.push(new Se(a,i.ref,"ref cannot reference another ref layer")):h=Bt(_.type):e.push(new Se(a,i.ref,`ref layer "${f}" not found`))}else if(h!=="background")if(i.source){const _=o.sources&&o.sources[i.source],y=_&&Bt(_.type);_?y==="vector"&&h==="raster"?e.push(new Se(a,i.source,`layer "${i.id}" requires a raster source`)):y!=="raster-dem"&&h==="hillshade"||y!=="raster-dem"&&h==="color-relief"?e.push(new Se(a,i.source,`layer "${i.id}" requires a raster-dem source`)):y==="raster"&&h!=="raster"?e.push(new Se(a,i.source,`layer "${i.id}" requires a vector source`)):y!=="vector"||i["source-layer"]?y==="raster-dem"&&h!=="hillshade"&&h!=="color-relief"?e.push(new Se(a,i.source,"raster-dem source can only be used with layer type 'hillshade' or 'color-relief'.")):h!=="line"||!i.paint||!i.paint["line-gradient"]||y==="geojson"&&_.lineMetrics||e.push(new Se(a,i,`layer "${i.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new Se(a,i,`layer "${i.id}" must specify a "source-layer"`)):e.push(new Se(a,i.source,`source "${i.source}" not found`))}else e.push(new Se(a,i,'missing required property "source"'));return e=e.concat(Ni({key:a,value:i,valueSpec:u.layer,style:r.style,styleSpec:r.styleSpec,validateSpec:r.validateSpec,objectElementValidators:{"*":()=>[],type:()=>r.validateSpec({key:`${a}.type`,value:i.type,valueSpec:u.layer.type,style:r.style,styleSpec:r.styleSpec,validateSpec:r.validateSpec,object:i,objectKey:"type"}),filter:ls,layout:_=>Ni({layer:i,key:_.key,value:_.value,style:_.style,styleSpec:_.styleSpec,validateSpec:_.validateSpec,objectElementValidators:{"*":y=>kc(at({layerType:h},y))}}),paint:_=>Ni({layer:i,key:_.key,value:_.value,style:_.style,styleSpec:_.styleSpec,validateSpec:_.validateSpec,objectElementValidators:{"*":y=>Dc(at({layerType:h},y))}})}})),e}function pn(r){const e=r.value,i=r.key,a=Qe(e);return a!=="string"?[new Se(i,e,`string expected, ${a} found`)]:[]}const Lc={promoteId:function({key:r,value:e}){if(Qe(e)==="string")return pn({key:r,value:e});{const i=[];for(const a in e)i.push(...pn({key:`${r}.${a}`,value:e[a]}));return i}}};function cl(r){const e=r.value,i=r.key,a=r.styleSpec,o=r.style,u=r.validateSpec;if(!e.type)return[new Se(i,e,'"type" is required')];const h=Bt(e.type);let f;switch(h){case"vector":case"raster":return f=Ni({key:i,value:e,valueSpec:a[`source_${h.replace("-","_")}`],style:r.style,styleSpec:a,objectElementValidators:Lc,validateSpec:u}),f;case"raster-dem":return f=(function(_){var y;const v=(y=_.sourceName)!==null&&y!==void 0?y:"",b=_.value,S=_.styleSpec,P=S.source_raster_dem,E=_.style;let A=[];const R=Qe(b);if(b===void 0)return A;if(R!=="object")return A.push(new Se("source_raster_dem",b,`object expected, ${R} found`)),A;const O=Bt(b.encoding)==="custom",G=["redFactor","greenFactor","blueFactor","baseShift"],B=_.value.encoding?`"${_.value.encoding}"`:"Default";for(const V in b)!O&&G.includes(V)?A.push(new Se(V,b[V],`In "${v}": "${V}" is only valid when "encoding" is set to "custom". ${B} encoding found`)):P[V]?A=A.concat(_.validateSpec({key:V,value:b[V],valueSpec:P[V],validateSpec:_.validateSpec,style:E,styleSpec:S})):A.push(new Se(V,b[V],`unknown property "${V}"`));return A})({sourceName:i,value:e,style:r.style,styleSpec:a,validateSpec:u}),f;case"geojson":if(f=Ni({key:i,value:e,valueSpec:a.source_geojson,style:o,styleSpec:a,validateSpec:u,objectElementValidators:Lc}),e.cluster)for(const _ in e.clusterProperties){const[y,v]=e.clusterProperties[_],b=typeof y=="string"?[y,["accumulated"],["get",_]]:y;f.push(...dn({key:`${i}.${_}.map`,value:v,expressionContext:"cluster-map"})),f.push(...dn({key:`${i}.${_}.reduce`,value:b,expressionContext:"cluster-reduce"}))}return f;case"video":return Ni({key:i,value:e,valueSpec:a.source_video,style:o,validateSpec:u,styleSpec:a});case"image":return Ni({key:i,value:e,valueSpec:a.source_image,style:o,validateSpec:u,styleSpec:a});case"canvas":return[new Se(i,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Nn({key:`${i}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function ul(r){const e=r.value,i=r.styleSpec,a=i.light,o=r.style;let u=[];const h=Qe(e);if(e===void 0)return u;if(h!=="object")return u=u.concat([new Se("light",e,`object expected, ${h} found`)]),u;for(const f in e){const _=f.match(/^(.*)-transition$/);u=u.concat(_&&a[_[1]]&&a[_[1]].transition?r.validateSpec({key:f,value:e[f],valueSpec:i.transition,validateSpec:r.validateSpec,style:o,styleSpec:i}):a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],validateSpec:r.validateSpec,style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)])}return u}function us(r){const e=r.value,i=r.styleSpec,a=i.sky,o=r.style,u=Qe(e);if(e===void 0)return[];if(u!=="object")return[new Se("sky",e,`object expected, ${u} found`)];let h=[];for(const f in e)h=h.concat(a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)]);return h}function Fc(r){const e=r.value,i=r.styleSpec,a=i.terrain,o=r.style;let u=[];const h=Qe(e);if(e===void 0)return u;if(h!=="object")return u=u.concat([new Se("terrain",e,`object expected, ${h} found`)]),u;for(const f in e)u=u.concat(a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],validateSpec:r.validateSpec,style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)]);return u}function hl(r){let e=[];const i=r.value,a=r.key;if(Array.isArray(i)){const o=[],u=[];for(const h in i)i[h].id&&o.includes(i[h].id)&&e.push(new Se(a,i,`all the sprites' ids must be unique, but ${i[h].id} is duplicated`)),o.push(i[h].id),i[h].url&&u.includes(i[h].url)&&e.push(new Se(a,i,`all the sprites' URLs must be unique, but ${i[h].url} is duplicated`)),u.push(i[h].url),e=e.concat(Ni({key:`${a}[${h}]`,value:i[h],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:r.validateSpec}));return e}return pn({key:a,value:i})}function dl(r){return!!r&&r.constructor===Object}function Bc(r){return dl(r.value)?[]:[new Se(r.key,r.value,`object expected, ${Qe(r.value)} found`)]}const pl={"*":()=>[],array:ol,boolean:function(r){const e=r.value,i=r.key,a=Qe(e);return a!=="boolean"?[new Se(i,e,`boolean expected, ${a} found`)]:[]},number:ss,color:os,constants:sl,enum:Nn,filter:ls,function:ll,layer:Rc,object:Ni,source:cl,light:ul,sky:us,terrain:Fc,projection:function(r){const e=r.value,i=r.styleSpec,a=i.projection,o=r.style,u=Qe(e);if(e===void 0)return[];if(u!=="object")return[new Se("projection",e,`object expected, ${u} found`)];let h=[];for(const f in e)h=h.concat(a[f]?r.validateSpec({key:f,value:e[f],valueSpec:a[f],style:o,styleSpec:i}):[new Se(f,e[f],`unknown property "${f}"`)]);return h},projectionDefinition:function(r){const e=r.key;let i=r.value;i=i instanceof String?i.valueOf():i;const a=Qe(i);return a!=="array"||(function(o){return Array.isArray(o)&&o.length===3&&typeof o[0]=="string"&&typeof o[1]=="string"&&typeof o[2]=="number"})(i)||(function(o){return!!["interpolate","step","literal"].includes(o[0])})(i)?["array","string"].includes(a)?[]:[new Se(e,i,`projection expected, invalid type "${a}" found`)]:[new Se(e,i,`projection expected, invalid array ${JSON.stringify(i)} found`)]},string:pn,formatted:function(r){return pn(r).length===0?[]:dn(r)},resolvedImage:function(r){return pn(r).length===0?[]:dn(r)},padding:function(r){const e=r.key,i=r.value;if(Qe(i)==="array"){if(i.length<1||i.length>4)return[new Se(e,i,`padding requires 1 to 4 values; ${i.length} values found`)];const a={type:"number"};let o=[];for(let u=0;u<i.length;u++)o=o.concat(r.validateSpec({key:`${e}[${u}]`,value:i[u],validateSpec:r.validateSpec,valueSpec:a}));return o}return ss({key:e,value:i,valueSpec:{}})},numberArray:function(r){const e=r.key,i=r.value;if(Qe(i)==="array"){const a={type:"number"};if(i.length<1)return[new Se(e,i,"array length at least 1 expected, length 0 found")];let o=[];for(let u=0;u<i.length;u++)o=o.concat(r.validateSpec({key:`${e}[${u}]`,value:i[u],validateSpec:r.validateSpec,valueSpec:a}));return o}return ss({key:e,value:i,valueSpec:{}})},colorArray:function(r){const e=r.key,i=r.value;if(Qe(i)==="array"){if(i.length<1)return[new Se(e,i,"array length at least 1 expected, length 0 found")];let a=[];for(let o=0;o<i.length;o++)a=a.concat(os({key:`${e}[${o}]`,value:i[o]}));return a}return os({key:e,value:i})},variableAnchorOffsetCollection:function(r){const e=r.key,i=r.value,a=Qe(i),o=r.styleSpec;if(a!=="array"||i.length<1||i.length%2!=0)return[new Se(e,i,"variableAnchorOffsetCollection requires a non-empty array of even length")];let u=[];for(let h=0;h<i.length;h+=2)u=u.concat(Nn({key:`${e}[${h}]`,value:i[h],valueSpec:o.layout_symbol["text-anchor"]})),u=u.concat(ol({key:`${e}[${h+1}]`,value:i[h+1],valueSpec:{length:2,value:"number"},validateSpec:r.validateSpec,style:r.style,styleSpec:o}));return u},sprite:hl,state:Bc,fontFaces:function(r){const e=r.key,i=r.value,a=r.validateSpec,o=r.styleSpec,u=r.style;if(!dl(i))return[new Se(e,i,`object expected, ${Qe(i)} found`)];const h=[];for(const f in i){const _=i[f],y=Qe(_);if(y==="string")h.push(...pn({key:`${e}.${f}`,value:_}));else if(y==="array"){const v={url:{type:"string",required:!0},"unicode-range":{type:"array",value:"string"}};for(const[b,S]of _.entries())h.push(...Ni({key:`${e}.${f}[${b}]`,value:S,valueSpec:v,styleSpec:o,style:u,validateSpec:a}))}else h.push(new Se(`${e}.${f}`,_,`string or array expected, ${y} found`))}return h}};function hs(r){const e=r.value,i=r.valueSpec,a=r.styleSpec;return r.validateSpec=hs,i.expression&&io(Bt(e))?ll(r):i.expression&&ro(jn(e))?dn(r):i.type&&pl[i.type]?pl[i.type](r):Ni(at({},r,{valueSpec:i.type?a[i.type]:i}))}function xa(r){const e=r.value,i=r.key,a=pn(r);return a.length||(e.indexOf("{fontstack}")===-1&&a.push(new Se(i,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new Se(i,e,'"glyphs" url must include a "{range}" token'))),a}function tr(r,e=K){let i=[];return i=i.concat(hs({key:"",value:r,valueSpec:e.$root,styleSpec:e,style:r,validateSpec:hs,objectElementValidators:{glyphs:xa,"*":()=>[]}})),r.constants&&(i=i.concat(sl({key:"constants",value:r.constants}))),Oc(i)}function hr(r){return function(e){return r(Object.assign({},e,{validateSpec:hs}))}}function Oc(r){return[].concat(r).sort(((e,i)=>e.line-i.line))}function dr(r){return function(...e){return Oc(r.apply(this,e))}}tr.source=dr(hr(cl)),tr.sprite=dr(hr(hl)),tr.glyphs=dr(hr(xa)),tr.light=dr(hr(ul)),tr.sky=dr(hr(us)),tr.terrain=dr(hr(Fc)),tr.state=dr(hr(Bc)),tr.layer=dr(hr(Rc)),tr.filter=dr(hr(ls)),tr.paintProperty=dr(hr(Dc)),tr.layoutProperty=dr(hr(kc));const Qu={type:"enum","property-type":"data-constant",expression:{interpolated:!1,parameters:["global-state"]},values:{visible:{},none:{}},transition:!1,default:"visible"};class eh{constructor(e,i){this._globalState=i,this.setValue(e)}evaluate(){var e;return(e=this._literalValue)!==null&&e!==void 0?e:this._compiledValue.evaluate({})}setValue(e){if(e==null||e==="visible"||e==="none")return this._literalValue=e==="none"?"none":"visible",this._compiledValue=void 0,void(this._globalStateRefs=new Set);const i=Vn(e,Qu,this._globalState);if(i.result==="error")throw this._literalValue="visible",this._compiledValue=void 0,new Error(i.value.map((a=>`${a.key}: ${a.message}`)).join(", "));this._literalValue=void 0,this._compiledValue=i.value,this._globalStateRefs=ns(i.value.expression)}getGlobalStateRefs(){return this._globalStateRefs}}const ds=K,wr=tr,Ui=wr.light,ps=wr.sky,Vc=wr.paintProperty,th=wr.layoutProperty;function jc(r,e){let i=!1;if(e&&e.length)for(const a of e)r.fire(new be(new Error(a.message))),i=!0;return i}class Vr{constructor(e,i,a){const o=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;const h=new Int32Array(this.arrayBuffer);e=h[0],this.d=(i=h[1])+2*(a=h[2]);for(let _=0;_<this.d*this.d;_++){const y=h[3+_],v=h[3+_+1];o.push(y===v?null:h.subarray(y,v))}const f=h[3+o.length+1];this.keys=h.subarray(h[3+o.length],f),this.bboxes=h.subarray(f),this.insert=this._insertReadonly}else{this.d=i+2*a;for(let h=0;h<this.d*this.d;h++)o.push([]);this.keys=[],this.bboxes=[]}this.n=i,this.extent=e,this.padding=a,this.scale=i/e,this.uid=0;const u=a/i*e;this.min=-u,this.max=e+u}insert(e,i,a,o,u){this._forEachCell(i,a,o,u,this._insertCell,this.uid++,void 0,void 0),this.keys.push(e),this.bboxes.push(i),this.bboxes.push(a),this.bboxes.push(o),this.bboxes.push(u)}_insertReadonly(){throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer.")}_insertCell(e,i,a,o,u,h){this.cells[u].push(h)}query(e,i,a,o,u){const h=this.min,f=this.max;if(e<=h&&i<=h&&f<=a&&f<=o&&!u)return Array.prototype.slice.call(this.keys);{const _=[];return this._forEachCell(e,i,a,o,this._queryCell,_,{},u),_}}_queryCell(e,i,a,o,u,h,f,_){const y=this.cells[u];if(y!==null){const v=this.keys,b=this.bboxes;for(let S=0;S<y.length;S++){const P=y[S];if(f[P]===void 0){const E=4*P;(_?_(b[E+0],b[E+1],b[E+2],b[E+3]):e<=b[E+2]&&i<=b[E+3]&&a>=b[E+0]&&o>=b[E+1])?(f[P]=!0,h.push(v[P])):f[P]=!1}}}}_forEachCell(e,i,a,o,u,h,f,_){const y=this._convertToCellCoord(e),v=this._convertToCellCoord(i),b=this._convertToCellCoord(a),S=this._convertToCellCoord(o);for(let P=y;P<=b;P++)for(let E=v;E<=S;E++){const A=this.d*E+P;if((!_||_(this._convertFromCellCoord(P),this._convertFromCellCoord(E),this._convertFromCellCoord(P+1),this._convertFromCellCoord(E+1)))&&u.call(this,e,i,a,o,A,h,f,_))return}}_convertFromCellCoord(e){return(e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const e=this.cells,i=3+this.cells.length+1+1;let a=0;for(let h=0;h<this.cells.length;h++)a+=this.cells[h].length;const o=new Int32Array(i+a+this.keys.length+this.bboxes.length);o[0]=this.extent,o[1]=this.n,o[2]=this.padding;let u=i;for(let h=0;h<e.length;h++){const f=e[h];o[3+h]=u,o.set(f,u),u+=f.length}return o[3+e.length]=u,o.set(this.keys,u),u+=this.keys.length,o[3+e.length+1]=u,o.set(this.bboxes,u),u+=this.bboxes.length,o.buffer}static serialize(e,i){const a=e.toArrayBuffer();return i&&i.push(a),{buffer:a}}static deserialize(e){return new Vr(e.buffer)}}const Tr={};function De(r,e,i={}){if(Tr[r])throw new Error(`${r} is already registered.`);Object.defineProperty(e,"_classRegistryKey",{value:r,writeable:!1}),Tr[r]={klass:e,omit:i.omit||[],shallow:i.shallow||[]}}De("Object",Object),De("Set",Set),De("TransferableGridIndex",Vr),De("Color",et),De("Error",Error),De("AJAXError",F),De("ResolvedImage",Oi),De("StylePropertyFunction",rs),De("StyleExpression",rl,{omit:["_evaluator"]}),De("ZoomDependentExpression",nl),De("ZoomConstantExpression",no),De("CompoundExpression",er,{omit:["_evaluate"]});for(const r in _a)_a[r]._classRegistryKey||De(`Expression_${r}`,_a[r]);function Nc(r){return r&&typeof ArrayBuffer<"u"&&(r instanceof ArrayBuffer||r.constructor&&r.constructor.name==="ArrayBuffer")}function fs(r){return r.$name||r.constructor._classRegistryKey}function Uc(r){return!(function(e){if(e===null||typeof e!="object")return!1;const i=fs(e);return!(!i||i==="Object")})(r)&&(r==null||typeof r=="boolean"||typeof r=="number"||typeof r=="string"||r instanceof Boolean||r instanceof Number||r instanceof String||r instanceof Date||r instanceof RegExp||r instanceof Blob||r instanceof Error||Nc(r)||Sn(r)||ArrayBuffer.isView(r)||r instanceof ImageData)}function jr(r,e){if(Uc(r))return(Nc(r)||Sn(r))&&e&&e.push(r),ArrayBuffer.isView(r)&&e&&e.push(r.buffer),r instanceof ImageData&&e&&e.push(r.data.buffer),r;if(Array.isArray(r)){const u=[];for(const h of r)u.push(jr(h,e));return u}if(typeof r!="object")throw new Error("can't serialize object of type "+typeof r);const i=fs(r);if(!i)throw new Error(`can't serialize object of unregistered class ${r.constructor.name}`);if(!Tr[i])throw new Error(`${i} is not registered.`);const{klass:a}=Tr[i],o=a.serialize?a.serialize(r,e):{};if(a.serialize){if(e&&o===e[e.length-1])throw new Error("statically serialized object won't survive transfer of $name property")}else{for(const u in r){if(!r.hasOwnProperty(u)||Tr[i].omit.indexOf(u)>=0)continue;const h=r[u];o[u]=Tr[i].shallow.indexOf(u)>=0?h:jr(h,e)}r instanceof Error&&(o.message=r.message)}if(o.$name)throw new Error("$name property is reserved for worker serialization logic.");return i!=="Object"&&(o.$name=i),o}function ms(r){if(Uc(r))return r;if(Array.isArray(r))return r.map(ms);if(typeof r!="object")throw new Error("can't deserialize object of type "+typeof r);const e=fs(r)||"Object";if(!Tr[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:i}=Tr[e];if(!i)throw new Error(`can't deserialize unregistered class ${e}`);if(i.deserialize)return i.deserialize(r);const a=Object.create(i.prototype);for(const o of Object.keys(r)){if(o==="$name")continue;const u=r[o];a[o]=Tr[e].shallow.indexOf(o)>=0?u:ms(u)}return a}class fl{constructor(){this.first=!0}update(e,i){const a=Math.floor(e);return this.first?(this.first=!1,this.lastIntegerZoom=a,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=a,!0):(this.lastFloorZoom>a?(this.lastIntegerZoom=a+1,this.lastIntegerZoomTime=i):this.lastFloorZoom<a&&(this.lastIntegerZoom=a,this.lastIntegerZoomTime=i),e!==this.lastZoom&&(this.lastZoom=e,this.lastFloorZoom=a,!0))}}function ih(r){return/[\u02EA\u02EB\u2E80-\u2FDF\u2FF0-\u303F\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FD-\u30FF\u3105-\u312F\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(r))}function Un(r){return/[\u02EA\u02EB\u1100-\u11FF\u1400-\u167F\u18B0-\u18F5\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u3007\u3012\u3013\u3020-\u302F\u3031-\u303F\u3041-\u3096\u309D-\u30FB\u30FD-\u30FF\u3105-\u312F\u3131-\u318E\u3190-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE48\uFE50-\uFE57\uFE5F-\uFE62\uFE67-\uFE6F\uFF00-\uFF07\uFF0A-\uFF0C\uFF0E-\uFF19\uFF1F-\uFF3A\uFF3C\uFF3E\uFF40-\uFF5A\uFFE0-\uFFE2\uFFE4-\uFFE7]|\uD802[\uDD80-\uDD9F]|\uD805[\uDD80-\uDDFF]|\uD806[\uDE00-\uDEBF]|\uD811[\uDC00-\uDE7F]|\uD81B[\uDFE0-\uDFE4\uDFF0-\uDFF6]|[\uD81C-\uD822\uD83D\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD30-\uDEFB]|\uD833[\uDEC0-\uDFCF]|\uD834[\uDC00-\uDDFF\uDEE0-\uDF7F]|\uD836[\uDC00-\uDEAF]|\uD83C[\uDC00-\uDE00\uDF00-\uDFFF]|\uD83E[\uDD00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(r))}function Gc(r){return/\s/u.test(String.fromCodePoint(r))}function ml(r){for(const e of r)if(Un(e.codePointAt(0)))return!0;return!1}function ho(r){for(const e of r)if(!po(e.codePointAt(0)))return!1;return!0}function qc(r){const e=r.map((i=>{try{return new RegExp(`\\p{sc=${i}}`,"u").source}catch{return null}})).filter((i=>i));return new RegExp(e.join("|"),"u")}const _l=qc(["Arab","Dupl","Mong","Ougr","Syrc"]);function po(r){return!_l.test(String.fromCodePoint(r))}function gl(r){return!(Un(r)||(e=r,/[\xA7\xA9\xAE\xB1\xBC-\xBE\xD7\xF7\u2016\u2020\u2021\u2030\u2031\u203B\u203C\u2042\u2047-\u2049\u2051\u2100-\u218F\u221E\u2234\u2235\u2300-\u2307\u230C-\u231F\u2324-\u2328\u232B\u237D-\u239A\u23BE-\u23CD\u23CF\u23D1-\u23DB\u23E2-\u2422\u2424-\u24FF\u25A0-\u2619\u2620-\u2767\u2776-\u2793\u2B12-\u2B2F\u2B50-\u2B59\u2BB8-\u2BEB\u3000-\u303F\u30A0-\u30FF\uE000-\uF8FF\uFE30-\uFE6F\uFF00-\uFFEF\uFFFC\uFFFD]|[\uDB80-\uDBFF][\uDC00-\uDFFF]/gim.test(String.fromCodePoint(e))));var e}const Zc=qc(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function yl(r){return Zc.test(String.fromCodePoint(r))}function $c(r,e){return!(!e&&yl(r)||/[\u0900-\u0DFF\u0F00-\u109F\u1780-\u17FF]/gim.test(String.fromCodePoint(r)))}function xl(r){for(const e of r)if(yl(e.codePointAt(0)))return!0;return!1}const Nr=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(r){this.pluginStatus=r.pluginStatus,this.pluginURL=r.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(r){if(Nr.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=r.applyArabicShaping,this.processBidirectionalText=r.processBidirectionalText,this.processStyledBidirectionalText=r.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}syncState(r,e){return c(this,void 0,void 0,(function*(){if(this.isParsed())return this.getState();if(r.pluginStatus!=="loading")return this.setState(r),r;const i=r.pluginURL,a=new Promise((u=>{this.loadScriptResolve=u}));e(i);const o=new Promise((u=>setTimeout((()=>u()),this.TIMEOUT)));if(yield Promise.race([a,o]),this.isParsed()){const u={pluginStatus:"loaded",pluginURL:i};return this.setState(u),u}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${i}`)}))}};class pt{constructor(e,i){this.isSupportedScript=Wc,this.zoom=e,i?(this.now=i.now||0,this.fadeDuration=i.fadeDuration||0,this.zoomHistory=i.zoomHistory||new fl,this.transition=i.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new fl,this.transition={})}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const e=this.zoom,i=e-Math.floor(e),a=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:i+(1-i)*a}:{fromScale:.5,toScale:1,t:1-(1-a)*i}}}function Wc(r){return(function(e,i){for(const a of e)if(!$c(a.codePointAt(0),i))return!1;return!0})(r,Nr.getRTLTextPluginStatus()==="loaded")}const fo="-transition";class _s{constructor(e,i,a){this.property=e,this.value=i,this.expression=(function(o,u,h){if(io(o))return new rs(o,u);if(ro(o)){const f=Ic(o,u,h);if(f.result==="error")throw new Error(f.value.map((_=>`${_.key}: ${_.message}`)).join(", "));return f.value}{let f=o;return u.type==="color"&&typeof o=="string"?f=et.parse(o):u.type!=="padding"||typeof o!="number"&&!Array.isArray(o)?u.type!=="numberArray"||typeof o!="number"&&!Array.isArray(o)?u.type!=="colorArray"||typeof o!="string"&&!Array.isArray(o)?u.type==="variableAnchorOffsetCollection"&&Array.isArray(o)?f=Gt.parse(o):u.type==="projectionDefinition"&&typeof o=="string"&&(f=Ai.parse(o)):f=yt.parse(o):f=fi.parse(o):f=pi.parse(o),{globalStateRefs:new Set,_globalState:null,kind:"constant",evaluate:()=>f}}})(i===void 0?e.specification.default:i,e.specification,a)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}getGlobalStateRefs(){return this.expression.globalStateRefs||new Set}possiblyEvaluate(e,i,a){return this.property.possiblyEvaluate(this,e,i,a)}}class vl{constructor(e,i){this.property=e,this.value=new _s(e,void 0,i)}transitioned(e,i){return new wl(this.property,this.value,i,Ei({},e.transition,this.transition),e.now)}untransitioned(){return new wl(this.property,this.value,null,{},0)}}class bl{constructor(e,i){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues),this._globalState=i}getValue(e){return hi(this._values[e].value.value)}setValue(e,i){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new vl(this._values[e].property,this._globalState)),this._values[e].value=new _s(this._values[e].property,i===null?void 0:hi(i),this._globalState)}getTransition(e){return hi(this._values[e].transition)}setTransition(e,i){Object.prototype.hasOwnProperty.call(this._values,e)||(this._values[e]=new vl(this._values[e].property,this._globalState)),this._values[e].transition=hi(i)||void 0}serialize(){const e={};for(const i of Object.keys(this._values)){const a=this.getValue(i);a!==void 0&&(e[i]=a);const o=this.getTransition(i);o!==void 0&&(e[`${i}${fo}`]=o)}return e}transitioned(e,i){const a=new Hc(this._properties);for(const o of Object.keys(this._values))a._values[o]=this._values[o].transitioned(e,i._values[o]);return a}untransitioned(){const e=new Hc(this._properties);for(const i of Object.keys(this._values))e._values[i]=this._values[i].untransitioned();return e}}class wl{constructor(e,i,a,o,u){this.property=e,this.value=i,this.begin=u+o.delay||0,this.end=this.begin+o.duration||0,e.specification.transition&&(o.delay||o.duration)&&(this.prior=a)}possiblyEvaluate(e,i,a){const o=e.now||0,u=this.value.possiblyEvaluate(e,i,a),h=this.prior;if(h){if(o>this.end)return this.prior=null,u;if(this.value.isDataDriven())return this.prior=null,u;if(o<this.begin)return h.possiblyEvaluate(e,i,a);{const f=(o-this.begin)/(this.end-this.begin);return this.property.interpolate(h.possiblyEvaluate(e,i,a),u,Jn(f))}}return u}}class Hc{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitioningPropertyValues)}possiblyEvaluate(e,i,a){const o=new gs(this._properties);for(const u of Object.keys(this._values))o._values[u]=this._values[u].possiblyEvaluate(e,i,a);return o}hasTransition(){for(const e of Object.keys(this._values))if(this._values[e].prior)return!0;return!1}}class rh{constructor(e,i){this._properties=e,this._values=Object.create(e.defaultPropertyValues),this._globalState=i}hasValue(e){return this._values[e].value!==void 0}getValue(e){return hi(this._values[e].value)}setValue(e,i){this._values[e]=new _s(this._values[e].property,i===null?void 0:hi(i),this._globalState)}serialize(){const e={};for(const i of Object.keys(this._values)){const a=this.getValue(i);a!==void 0&&(e[i]=a)}return e}possiblyEvaluate(e,i,a){const o=new gs(this._properties);for(const u of Object.keys(this._values))o._values[u]=this._values[u].possiblyEvaluate(e,i,a);return o}}class pr{constructor(e,i,a){this.property=e,this.value=i,this.parameters=a}isConstant(){return this.value.kind==="constant"}constantOr(e){return this.value.kind==="constant"?this.value.value:e}evaluate(e,i,a,o){return this.property.evaluate(this.value,this.parameters,e,i,a,o)}}class gs{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues)}get(e){return this._values[e]}}class Be{constructor(e){this.specification=e}possiblyEvaluate(e,i){if(e.isDataDriven())throw new Error("Value should not be data driven");return e.expression.evaluate(i)}interpolate(e,i,a){const o=ai[this.specification.type];return o?o(e,i,a):e}}class Ue{constructor(e,i){this.specification=e,this.overrides=i}possiblyEvaluate(e,i,a,o){return new pr(this,e.expression.kind==="constant"||e.expression.kind==="camera"?{kind:"constant",value:e.expression.evaluate(i,null,{},a,o)}:e.expression,i)}interpolate(e,i,a){if(e.value.kind!=="constant"||i.value.kind!=="constant")return e;if(e.value.value===void 0||i.value.value===void 0)return new pr(this,{kind:"constant",value:void 0},e.parameters);const o=ai[this.specification.type];if(o){const u=o(e.value.value,i.value.value,a);return new pr(this,{kind:"constant",value:u},e.parameters)}return e}evaluate(e,i,a,o,u,h){return e.kind==="constant"?e.value:e.evaluate(i,a,o,u,h)}}class fn extends Ue{possiblyEvaluate(e,i,a,o){if(e.value===void 0)return new pr(this,{kind:"constant",value:void 0},i);if(e.expression.kind==="constant"){const u=e.expression.evaluate(i,null,{},a,o),h=e.property.specification.type==="resolvedImage"&&typeof u!="string"?u.name:u,f=this._calculate(h,h,h,i);return new pr(this,{kind:"constant",value:f},i)}if(e.expression.kind==="camera"){const u=this._calculate(e.expression.evaluate({zoom:i.zoom-1}),e.expression.evaluate({zoom:i.zoom}),e.expression.evaluate({zoom:i.zoom+1}),i);return new pr(this,{kind:"constant",value:u},i)}return new pr(this,e.expression,i)}evaluate(e,i,a,o,u,h){if(e.kind==="source"){const f=e.evaluate(i,a,o,u,h);return this._calculate(f,f,f,i)}return e.kind==="composite"?this._calculate(e.evaluate({zoom:Math.floor(i.zoom)-1},a,o),e.evaluate({zoom:Math.floor(i.zoom)},a,o),e.evaluate({zoom:Math.floor(i.zoom)+1},a,o),i):e.value}_calculate(e,i,a,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:e,to:i}:{from:a,to:i}}interpolate(e){return e}}class Xc{constructor(e){this.specification=e}possiblyEvaluate(e,i,a,o){if(e.value!==void 0){if(e.expression.kind==="constant"){const u=e.expression.evaluate(i,null,{},a,o);return this._calculate(u,u,u,i)}return this._calculate(e.expression.evaluate(new pt(Math.floor(i.zoom-1),i)),e.expression.evaluate(new pt(Math.floor(i.zoom),i)),e.expression.evaluate(new pt(Math.floor(i.zoom+1),i)),i)}}_calculate(e,i,a,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:e,to:i}:{from:a,to:i}}interpolate(e){return e}}class va{constructor(e){this.specification=e}possiblyEvaluate(e,i,a,o){return!!e.expression.evaluate(i,null,{},a,o)}interpolate(){return!1}}class bi{constructor(e){this.properties=e,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const i in e){const a=e[i];a.specification.overridable&&this.overridableProperties.push(i);const o=this.defaultPropertyValues[i]=new _s(a,void 0,void 0),u=this.defaultTransitionablePropertyValues[i]=new vl(a,void 0);this.defaultTransitioningPropertyValues[i]=u.untransitioned(),this.defaultPossiblyEvaluatedValues[i]=o.possiblyEvaluate({})}}}De("DataDrivenProperty",Ue),De("DataConstantProperty",Be),De("CrossFadedDataDrivenProperty",fn),De("CrossFadedProperty",Xc),De("ColorRampProperty",va);class fr extends me{constructor(e,i,a){if(super(),this.id=e.id,this.type=e.type,this._globalState=a,this._featureFilter={filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set},this._visibilityExpression=(function(o,u){return new eh(o,u)})(this.visibility,a),e.type!=="custom"&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!=="background"&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter,this._featureFilter=as(e.filter,a)),i.layout&&(this._unevaluatedLayout=new rh(i.layout,a)),i.paint)){this._transitionablePaint=new bl(i.paint,a);for(const o in e.paint)this.setPaintProperty(o,e.paint[o],{validate:!1});for(const o in e.layout)this.setLayoutProperty(o,e.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new gs(i.paint)}}setFilter(e){this.filter=e,this._featureFilter=as(e,this._globalState)}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(e){return e==="visibility"?this.visibility:this._unevaluatedLayout.getValue(e)}getLayoutAffectingGlobalStateRefs(){const e=new Set;for(const i of this._visibilityExpression.getGlobalStateRefs())e.add(i);if(this._unevaluatedLayout)for(const i in this._unevaluatedLayout._values){const a=this._unevaluatedLayout._values[i];for(const o of a.getGlobalStateRefs())e.add(o)}for(const i of this._featureFilter.getGlobalStateRefs())e.add(i);return e}getPaintAffectingGlobalStateRefs(){var e;const i=new globalThis.Map;if(this._transitionablePaint)for(const a in this._transitionablePaint._values){const o=this._transitionablePaint._values[a].value;for(const u of o.getGlobalStateRefs()){const h=(e=i.get(u))!==null&&e!==void 0?e:[];h.push({name:a,value:o.value}),i.set(u,h)}}return i}getVisibilityAffectingGlobalStateRefs(){return this._visibilityExpression.getGlobalStateRefs()}setLayoutProperty(e,i,a={}){if(i==null||!this._validate(th,`layers.${this.id}.layout.${e}`,e,i,a))return e==="visibility"?(this.visibility=i,this._visibilityExpression.setValue(i),void this.recalculateVisibility()):void this._unevaluatedLayout.setValue(e,i)}getPaintProperty(e){return e.endsWith(fo)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,i,a={}){if(i!=null&&this._validate(Vc,`layers.${this.id}.paint.${e}`,e,i,a))return!1;if(e.endsWith(fo))return this._transitionablePaint.setTransition(e.slice(0,-11),i||void 0),!1;{const o=this._transitionablePaint._values[e],u=o.property.specification["property-type"]==="cross-faded-data-driven",h=o.value.isDataDriven(),f=o.value;this._transitionablePaint.setValue(e,i),this._handleSpecialPaintPropertyUpdate(e);const _=this._transitionablePaint._values[e].value;return _.isDataDriven()||h||u||this._handleOverridablePaintPropertyUpdate(e,f,_)}}_handleSpecialPaintPropertyUpdate(e){}_handleOverridablePaintPropertyUpdate(e,i,a){return!1}isHidden(e=this.minzoom,i=!1){return!!(this.minzoom&&e<(i?Math.floor(this.minzoom):this.minzoom))||!!(this.maxzoom&&e>=this.maxzoom)||this._evaluatedVisibility==="none"}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculateVisibility(){this._evaluatedVisibility=this._visibilityExpression.evaluate()}recalculate(e,i){e.getCrossfadeParameters&&(this._crossfadeParameters=e.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,i)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,i)}serialize(){const e={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&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),Tn(e,((i,a)=>!(i===void 0||a==="layout"&&!Object.keys(i).length||a==="paint"&&!Object.keys(i).length)))}_validate(e,i,a,o,u={}){return(!u||u.validate!==!1)&&jc(this,e.call(wr,{key:i,layerType:this.type,objectKey:a,value:o,styleSpec:K,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const e in this.paint._values){const i=this.paint.get(e);if(i instanceof pr&&ya(i.property.specification)&&(i.value.kind==="source"||i.value.kind==="composite")&&i.value.isStateDependent)return!0}return!1}}let Tl;var Yc={get paint(){return Tl=Tl||new bi({"raster-opacity":new Be(K.paint_raster["raster-opacity"]),"raster-hue-rotate":new Be(K.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Be(K.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Be(K.paint_raster["raster-brightness-max"]),"raster-saturation":new Be(K.paint_raster["raster-saturation"]),"raster-contrast":new Be(K.paint_raster["raster-contrast"]),"raster-resampling":new Be(K.paint_raster["raster-resampling"]),"raster-fade-duration":new Be(K.paint_raster["raster-fade-duration"])})}};class Kc extends fr{constructor(e,i){super(e,Yc,i)}}const nh={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ys{constructor(e,i){this._structArray=e,this._pos1=i*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class It{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(e,i){return e._trim(),i&&(e.isTransferred=!0,i.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){const i=Object.create(this.prototype);return i.arrayBuffer=e.arrayBuffer,i.length=e.length,i.capacity=e.arrayBuffer.byteLength/i.bytesPerElement,i._refreshViews(),i}_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(e){this.reserve(e),this.length=e}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const i=this.uint8;this._refreshViews(),i&&this.uint8.set(i)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function Ot(r,e=1){let i=0,a=0;return{members:r.map((o=>{const u=nh[o.type].BYTES_PER_ELEMENT,h=i=Jc(i,Math.max(e,u)),f=o.components||1;return a=Math.max(a,u),i+=u*f,{name:o.name,type:o.type,components:f,offset:h}})),size:Jc(i,Math.max(a,e)),alignment:e}}function Jc(r,e){return Math.ceil(r/e)*e}class Sr extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i){const a=this.length;return this.resize(a+1),this.emplace(a,e,i)}emplace(e,i,a){const o=2*e;return this.int16[o+0]=i,this.int16[o+1]=a,e}}Sr.prototype.bytesPerElement=4,De("StructArrayLayout2i4",Sr);class mo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.int16[u+0]=i,this.int16[u+1]=a,this.int16[u+2]=o,e}}mo.prototype.bytesPerElement=6,De("StructArrayLayout3i6",mo);class Sl extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o){const u=this.length;return this.resize(u+1),this.emplace(u,e,i,a,o)}emplace(e,i,a,o,u){const h=4*e;return this.int16[h+0]=i,this.int16[h+1]=a,this.int16[h+2]=o,this.int16[h+3]=u,e}}Sl.prototype.bytesPerElement=8,De("StructArrayLayout4i8",Sl);class Pl extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=6*e;return this.int16[_+0]=i,this.int16[_+1]=a,this.int16[_+2]=o,this.int16[_+3]=u,this.int16[_+4]=h,this.int16[_+5]=f,e}}Pl.prototype.bytesPerElement=12,De("StructArrayLayout2i4i12",Pl);class _o extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=4*e,y=8*e;return this.int16[_+0]=i,this.int16[_+1]=a,this.uint8[y+4]=o,this.uint8[y+5]=u,this.uint8[y+6]=h,this.uint8[y+7]=f,e}}_o.prototype.bytesPerElement=8,De("StructArrayLayout2i4ub8",_o);class xs extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i){const a=this.length;return this.resize(a+1),this.emplace(a,e,i)}emplace(e,i,a){const o=2*e;return this.float32[o+0]=i,this.float32[o+1]=a,e}}xs.prototype.bytesPerElement=8,De("StructArrayLayout2f8",xs);class Ml extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y,v){const b=this.length;return this.resize(b+1),this.emplace(b,e,i,a,o,u,h,f,_,y,v)}emplace(e,i,a,o,u,h,f,_,y,v,b){const S=10*e;return this.uint16[S+0]=i,this.uint16[S+1]=a,this.uint16[S+2]=o,this.uint16[S+3]=u,this.uint16[S+4]=h,this.uint16[S+5]=f,this.uint16[S+6]=_,this.uint16[S+7]=y,this.uint16[S+8]=v,this.uint16[S+9]=b,e}}Ml.prototype.bytesPerElement=20,De("StructArrayLayout10ui20",Ml);class Ur extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_){const y=this.length;return this.resize(y+1),this.emplace(y,e,i,a,o,u,h,f,_)}emplace(e,i,a,o,u,h,f,_,y){const v=8*e;return this.uint16[v+0]=i,this.uint16[v+1]=a,this.uint16[v+2]=o,this.uint16[v+3]=u,this.uint16[v+4]=h,this.uint16[v+5]=f,this.uint16[v+6]=_,this.uint16[v+7]=y,e}}Ur.prototype.bytesPerElement=16,De("StructArrayLayout8ui16",Ur);class go extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h,f,_,y,v,b,S){const P=this.length;return this.resize(P+1),this.emplace(P,e,i,a,o,u,h,f,_,y,v,b,S)}emplace(e,i,a,o,u,h,f,_,y,v,b,S,P){const E=12*e;return this.int16[E+0]=i,this.int16[E+1]=a,this.int16[E+2]=o,this.int16[E+3]=u,this.uint16[E+4]=h,this.uint16[E+5]=f,this.uint16[E+6]=_,this.uint16[E+7]=y,this.int16[E+8]=v,this.int16[E+9]=b,this.int16[E+10]=S,this.int16[E+11]=P,e}}go.prototype.bytesPerElement=24,De("StructArrayLayout4i4ui4i24",go);class vs extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.float32[u+0]=i,this.float32[u+1]=a,this.float32[u+2]=o,e}}vs.prototype.bytesPerElement=12,De("StructArrayLayout3f12",vs);class yo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){const i=this.length;return this.resize(i+1),this.emplace(i,e)}emplace(e,i){return this.uint32[1*e+0]=i,e}}yo.prototype.bytesPerElement=4,De("StructArrayLayout1ul4",yo);class bs extends It{_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(e,i,a,o,u,h,f,_,y){const v=this.length;return this.resize(v+1),this.emplace(v,e,i,a,o,u,h,f,_,y)}emplace(e,i,a,o,u,h,f,_,y,v){const b=10*e,S=5*e;return this.int16[b+0]=i,this.int16[b+1]=a,this.int16[b+2]=o,this.int16[b+3]=u,this.int16[b+4]=h,this.int16[b+5]=f,this.uint32[S+3]=_,this.uint16[b+8]=y,this.uint16[b+9]=v,e}}bs.prototype.bytesPerElement=20,De("StructArrayLayout6i1ul2ui20",bs);class Il extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=6*e;return this.int16[_+0]=i,this.int16[_+1]=a,this.int16[_+2]=o,this.int16[_+3]=u,this.int16[_+4]=h,this.int16[_+5]=f,e}}Il.prototype.bytesPerElement=12,De("StructArrayLayout2i2i2i12",Il);class ba extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u){const h=this.length;return this.resize(h+1),this.emplace(h,e,i,a,o,u)}emplace(e,i,a,o,u,h){const f=4*e,_=8*e;return this.float32[f+0]=i,this.float32[f+1]=a,this.float32[f+2]=o,this.int16[_+6]=u,this.int16[_+7]=h,e}}ba.prototype.bytesPerElement=16,De("StructArrayLayout2f1f2i16",ba);class Gn extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,i,a,o,u,h){const f=this.length;return this.resize(f+1),this.emplace(f,e,i,a,o,u,h)}emplace(e,i,a,o,u,h,f){const _=16*e,y=4*e,v=8*e;return this.uint8[_+0]=i,this.uint8[_+1]=a,this.float32[y+1]=o,this.float32[y+2]=u,this.int16[v+6]=h,this.int16[v+7]=f,e}}Gn.prototype.bytesPerElement=16,De("StructArrayLayout2ub2f2i16",Gn);class xo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.uint16[u+0]=i,this.uint16[u+1]=a,this.uint16[u+2]=o,e}}xo.prototype.bytesPerElement=6,De("StructArrayLayout3ui6",xo);class vo extends It{_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(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O){const G=this.length;return this.resize(G+1),this.emplace(G,e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O)}emplace(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G){const B=24*e,V=12*e,H=48*e;return this.int16[B+0]=i,this.int16[B+1]=a,this.uint16[B+2]=o,this.uint16[B+3]=u,this.uint32[V+2]=h,this.uint32[V+3]=f,this.uint32[V+4]=_,this.uint16[B+10]=y,this.uint16[B+11]=v,this.uint16[B+12]=b,this.float32[V+7]=S,this.float32[V+8]=P,this.uint8[H+36]=E,this.uint8[H+37]=A,this.uint8[H+38]=R,this.uint32[V+10]=O,this.int16[B+22]=G,e}}vo.prototype.bytesPerElement=48,De("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",vo);class qn extends It{_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(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B,V,H,ee,se,ge,ye,ve,Ce,Te){const xe=this.length;return this.resize(xe+1),this.emplace(xe,e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B,V,H,ee,se,ge,ye,ve,Ce,Te)}emplace(e,i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B,V,H,ee,se,ge,ye,ve,Ce,Te,xe){const pe=32*e,ke=16*e;return this.int16[pe+0]=i,this.int16[pe+1]=a,this.int16[pe+2]=o,this.int16[pe+3]=u,this.int16[pe+4]=h,this.int16[pe+5]=f,this.int16[pe+6]=_,this.int16[pe+7]=y,this.uint16[pe+8]=v,this.uint16[pe+9]=b,this.uint16[pe+10]=S,this.uint16[pe+11]=P,this.uint16[pe+12]=E,this.uint16[pe+13]=A,this.uint16[pe+14]=R,this.uint16[pe+15]=O,this.uint16[pe+16]=G,this.uint16[pe+17]=B,this.uint16[pe+18]=V,this.uint16[pe+19]=H,this.uint16[pe+20]=ee,this.uint16[pe+21]=se,this.uint16[pe+22]=ge,this.uint32[ke+12]=ye,this.float32[ke+13]=ve,this.float32[ke+14]=Ce,this.uint16[pe+30]=Te,this.uint16[pe+31]=xe,e}}qn.prototype.bytesPerElement=64,De("StructArrayLayout8i15ui1ul2f2ui64",qn);class bo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){const i=this.length;return this.resize(i+1),this.emplace(i,e)}emplace(e,i){return this.float32[1*e+0]=i,e}}bo.prototype.bytesPerElement=4,De("StructArrayLayout1f4",bo);class El extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=3*e;return this.uint16[6*e+0]=i,this.float32[u+1]=a,this.float32[u+2]=o,e}}El.prototype.bytesPerElement=12,De("StructArrayLayout1ui2f12",El);class wo extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i,a){const o=this.length;return this.resize(o+1),this.emplace(o,e,i,a)}emplace(e,i,a,o){const u=4*e;return this.uint32[2*e+0]=i,this.uint16[u+2]=a,this.uint16[u+3]=o,e}}wo.prototype.bytesPerElement=8,De("StructArrayLayout1ul2ui8",wo);class Cl extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,i){const a=this.length;return this.resize(a+1),this.emplace(a,e,i)}emplace(e,i,a){const o=2*e;return this.uint16[o+0]=i,this.uint16[o+1]=a,e}}Cl.prototype.bytesPerElement=4,De("StructArrayLayout2ui4",Cl);class d extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){const i=this.length;return this.resize(i+1),this.emplace(i,e)}emplace(e,i){return this.uint16[1*e+0]=i,e}}d.prototype.bytesPerElement=2,De("StructArrayLayout1ui2",d);class t extends It{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,i,a,o){const u=this.length;return this.resize(u+1),this.emplace(u,e,i,a,o)}emplace(e,i,a,o,u){const h=4*e;return this.float32[h+0]=i,this.float32[h+1]=a,this.float32[h+2]=o,this.float32[h+3]=u,e}}t.prototype.bytesPerElement=16,De("StructArrayLayout4f16",t);class n extends ys{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 Ee(this.anchorPointX,this.anchorPointY)}}n.prototype.size=20;class s extends bs{get(e){return new n(this,e)}}De("CollisionBoxArray",s);class l extends ys{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(e){this._structArray.uint8[this._pos1+37]=e}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}l.prototype.size=48;class p extends vo{get(e){return new l(this,e)}}De("PlacedSymbolArray",p);class m extends ys{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(e){this._structArray.uint32[this._pos4+12]=e}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]}}m.prototype.size=64;class g extends qn{get(e){return new m(this,e)}}De("SymbolInstanceArray",g);class x extends bo{getoffsetX(e){return this.float32[1*e+0]}}De("GlyphOffsetArray",x);class w extends mo{getx(e){return this.int16[3*e+0]}gety(e){return this.int16[3*e+1]}gettileUnitDistanceFromAnchor(e){return this.int16[3*e+2]}}De("SymbolLineVertexArray",w);class T extends ys{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 I extends El{get(e){return new T(this,e)}}De("TextAnchorOffsetArray",I);class M extends ys{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]}}M.prototype.size=8;class z extends wo{get(e){return new M(this,e)}}De("FeatureIndexArray",z);class L extends Sr{}class j extends Sr{}class U extends Sr{}class N extends Pl{}class Z extends _o{}class X extends xs{}class q extends Ml{}class Y extends Ur{}class Q extends go{}class W extends vs{}class te extends yo{}class de extends Il{}class ue extends Gn{}class le extends xo{}class he extends Cl{}const Me=Ot([{name:"a_pos",components:2,type:"Int16"}],4),{members:Ie}=Me;class _e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=e}prepareSegment(e,i,a,o){const u=this.segments[this.segments.length-1];return e>_e.MAX_VERTEX_ARRAY_LENGTH&&di(`Max vertices per segment is ${_e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${_e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!u||u.vertexLength+e>_e.MAX_VERTEX_ARRAY_LENGTH||u.sortKey!==o?this.createNewSegment(i,a,o):u}createNewSegment(e,i,a){const o={vertexOffset:e.length,primitiveOffset:i.length,vertexLength:0,primitiveLength:0,vaos:{}};return a!==void 0&&(o.sortKey=a),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(o),o}getOrCreateLatestSegment(e,i,a){return this.prepareSegment(0,e,i,a)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const e of this.segments)for(const i in e.vaos)e.vaos[i].destroy()}static simpleSegment(e,i,a,o){return new _e([{vertexOffset:e,primitiveOffset:i,vertexLength:a,primitiveLength:o,vaos:{},sortKey:0}])}}function Le(r,e){return 256*(r=Yi(Math.floor(r),0,255))+Yi(Math.floor(e),0,255)}_e.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,De("SegmentVector",_e);const He=Ot([{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"}]),lt=Ot([{name:"a_dasharray_from",components:4,type:"Uint16"},{name:"a_dasharray_to",components:4,type:"Uint16"}]);var _t,ft,wt,ct={exports:{}},$t={exports:{}},Tt={exports:{}},si=(function(){if(wt)return ct.exports;wt=1;var r=(_t||(_t=1,$t.exports=function(i,a){var o,u,h,f,_,y,v,b;for(u=i.length-(o=3&i.length),h=a,_=3432918353,y=461845907,b=0;b<u;)v=255&i.charCodeAt(b)|(255&i.charCodeAt(++b))<<8|(255&i.charCodeAt(++b))<<16|(255&i.charCodeAt(++b))<<24,++b,h=27492+(65535&(f=5*(65535&(h=(h^=v=(65535&(v=(v=(65535&v)*_+(((v>>>16)*_&65535)<<16)&4294967295)<<15|v>>>17))*y+(((v>>>16)*y&65535)<<16)&4294967295)<<13|h>>>19))+((5*(h>>>16)&65535)<<16)&4294967295))+((58964+(f>>>16)&65535)<<16);switch(v=0,o){case 3:v^=(255&i.charCodeAt(b+2))<<16;case 2:v^=(255&i.charCodeAt(b+1))<<8;case 1:h^=v=(65535&(v=(v=(65535&(v^=255&i.charCodeAt(b)))*_+(((v>>>16)*_&65535)<<16)&4294967295)<<15|v>>>17))*y+(((v>>>16)*y&65535)<<16)&4294967295}return h^=i.length,h=2246822507*(65535&(h^=h>>>16))+((2246822507*(h>>>16)&65535)<<16)&4294967295,h=3266489909*(65535&(h^=h>>>13))+((3266489909*(h>>>16)&65535)<<16)&4294967295,(h^=h>>>16)>>>0}),$t.exports),e=(ft||(ft=1,Tt.exports=function(i,a){for(var o,u=i.length,h=a^u,f=0;u>=4;)o=1540483477*(65535&(o=255&i.charCodeAt(f)|(255&i.charCodeAt(++f))<<8|(255&i.charCodeAt(++f))<<16|(255&i.charCodeAt(++f))<<24))+((1540483477*(o>>>16)&65535)<<16),h=1540483477*(65535&h)+((1540483477*(h>>>16)&65535)<<16)^(o=1540483477*(65535&(o^=o>>>24))+((1540483477*(o>>>16)&65535)<<16)),u-=4,++f;switch(u){case 3:h^=(255&i.charCodeAt(f+2))<<16;case 2:h^=(255&i.charCodeAt(f+1))<<8;case 1:h=1540483477*(65535&(h^=255&i.charCodeAt(f)))+((1540483477*(h>>>16)&65535)<<16)}return h=1540483477*(65535&(h^=h>>>13))+((1540483477*(h>>>16)&65535)<<16),(h^=h>>>15)>>>0}),Tt.exports);return ct.exports=r,ct.exports.murmur3=r,ct.exports.murmur2=e,ct.exports})(),zt=Jt(si);class Dt{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,i,a,o){this.ids.push(wi(e)),this.positions.push(i,a,o)}getPositions(e){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const i=wi(e);let a=0,o=this.ids.length-1;for(;a<o;){const h=a+o>>1;this.ids[h]>=i?o=h:a=h+1}const u=[];for(;this.ids[a]===i;)u.push({index:this.positions[3*a],start:this.positions[3*a+1],end:this.positions[3*a+2]}),a++;return u}static serialize(e,i){const a=new Float64Array(e.ids),o=new Uint32Array(e.positions);return Gr(a,o,0,a.length-1),i&&i.push(a.buffer,o.buffer),{ids:a,positions:o}}static deserialize(e){const i=new Dt;return i.ids=e.ids,i.positions=e.positions,i.indexed=!0,i}}function wi(r){const e=+r;return!isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:zt(String(r))}function Gr(r,e,i,a){for(;i<a;){const o=r[i+a>>1];let u=i-1,h=a+1;for(;;){do u++;while(r[u]<o);do h--;while(r[h]>o);if(u>=h)break;Pr(r,u,h),Pr(e,3*u,3*h),Pr(e,3*u+1,3*h+1),Pr(e,3*u+2,3*h+2)}h-i<a-h?(Gr(r,e,i,h),i=h+1):(Gr(r,e,h+1,a),a=h)}}function Pr(r,e,i){const a=r[e];r[e]=r[i],r[i]=a}De("FeaturePositionMap",Dt);class Ti{constructor(e,i){this.gl=e.gl,this.location=i}}class qr extends Ti{constructor(e,i){super(e,i),this.current=0}set(e){this.current!==e&&(this.current=e,this.gl.uniform1f(this.location,e))}}class ws extends Ti{constructor(e,i){super(e,i),this.current=[0,0,0,0]}set(e){e[0]===this.current[0]&&e[1]===this.current[1]&&e[2]===this.current[2]&&e[3]===this.current[3]||(this.current=e,this.gl.uniform4f(this.location,e[0],e[1],e[2],e[3]))}}class Ts extends Ti{constructor(e,i){super(e,i),this.current=et.transparent}set(e){e.r===this.current.r&&e.g===this.current.g&&e.b===this.current.b&&e.a===this.current.a||(this.current=e,this.gl.uniform4f(this.location,e.r,e.g,e.b,e.a))}}const wa=new Float32Array(16);function zi(r){return[Le(255*r.r,255*r.g),Le(255*r.b,255*r.a)]}class ir{constructor(e,i,a){this.value=e,this.uniformNames=i.map((o=>`u_${o}`)),this.type=a}setUniform(e,i,a){e.set(a.constantOr(this.value))}getBinding(e,i,a){return this.type==="color"?new Ts(e,i):new qr(e,i)}}class Gi{constructor(e,i){this.uniformNames=i.map((a=>`u_${a}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(e,i){this.pixelRatioFrom=i.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=i.tlbr,this.patternTo=e.tlbr}setConstantDashPositions(e,i){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,i.y,i.height,i.width]}setUniform(e,i,a,o){let u=null;o==="u_pattern_to"?u=this.patternTo:o==="u_pattern_from"?u=this.patternFrom:o==="u_dasharray_to"?u=this.dashTo:o==="u_dasharray_from"?u=this.dashFrom:o==="u_pixel_ratio_to"?u=this.pixelRatioTo:o==="u_pixel_ratio_from"&&(u=this.pixelRatioFrom),u!==null&&e.set(u)}getBinding(e,i,a){return a.startsWith("u_pattern")||a.startsWith("u_dasharray_")?new ws(e,i):new qr(e,i)}}class qi{constructor(e,i,a,o){this.expression=e,this.type=a,this.maxValue=0,this.paintVertexAttributes=i.map((u=>({name:`a_${u}`,type:"Float32",components:a==="color"?2:1,offset:0}))),this.paintVertexArray=new o}populatePaintArray(e,i,a){const o=this.paintVertexArray.length,u=this.expression.evaluate(new pt(0,a),i,{},a.canonical,[],a.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(o,e,u)}updatePaintArray(e,i,a,o,u){const h=this.expression.evaluate(new pt(0,u),a,o);this._setPaintValue(e,i,h)}_setPaintValue(e,i,a){if(this.type==="color"){const o=zi(a);for(let u=e;u<i;u++)this.paintVertexArray.emplace(u,o[0],o[1])}else{for(let o=e;o<i;o++)this.paintVertexArray.emplace(o,a);this.maxValue=Math.max(this.maxValue,Math.abs(a))}}upload(e){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}}class ht{constructor(e,i,a,o,u,h){this.expression=e,this.uniformNames=i.map((f=>`u_${f}_t`)),this.type=a,this.useIntegerZoom=o,this.zoom=u,this.maxValue=0,this.paintVertexAttributes=i.map((f=>({name:`a_${f}`,type:"Float32",components:a==="color"?4:2,offset:0}))),this.paintVertexArray=new h}populatePaintArray(e,i,a){const o=this.expression.evaluate(new pt(this.zoom,a),i,{},a.canonical,[],a.formattedSection),u=this.expression.evaluate(new pt(this.zoom+1,a),i,{},a.canonical,[],a.formattedSection),h=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(h,e,o,u)}updatePaintArray(e,i,a,o,u){const h=this.expression.evaluate(new pt(this.zoom,u),a,o),f=this.expression.evaluate(new pt(this.zoom+1,u),a,o);this._setPaintValue(e,i,h,f)}_setPaintValue(e,i,a,o){if(this.type==="color"){const u=zi(a),h=zi(o);for(let f=e;f<i;f++)this.paintVertexArray.emplace(f,u[0],u[1],h[0],h[1])}else{for(let u=e;u<i;u++)this.paintVertexArray.emplace(u,a,o);this.maxValue=Math.max(this.maxValue,Math.abs(a),Math.abs(o))}}upload(e){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(e,i){const a=this.useIntegerZoom?Math.floor(i.zoom):i.zoom,o=Yi(this.expression.interpolationFactor(a,this.zoom,this.zoom+1),0,1);e.set(o)}getBinding(e,i,a){return new qr(e,i)}}class St{constructor(e,i,a,o,u,h){this.expression=e,this.type=i,this.useIntegerZoom=a,this.zoom=o,this.layerId=h,this.zoomInPaintVertexArray=new u,this.zoomOutPaintVertexArray=new u}populatePaintArray(e,i,a){const o=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(e),this.zoomOutPaintVertexArray.resize(e),this._setPaintValues(o,e,this.getPositionIds(i),a)}updatePaintArray(e,i,a,o,u){this._setPaintValues(e,i,this.getPositionIds(a),u)}_setPaintValues(e,i,a,o){const u=this.getPositions(o);if(!u||!a)return;const h=u[a.min],f=u[a.mid],_=u[a.max];if(h&&f&&_)for(let y=e;y<i;y++)this.emplace(this.zoomInPaintVertexArray,y,f,h),this.emplace(this.zoomOutPaintVertexArray,y,f,_)}upload(e){if(this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer){const i=this.getVertexAttributes();this.zoomInPaintVertexBuffer=e.createVertexBuffer(this.zoomInPaintVertexArray,i,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=e.createVertexBuffer(this.zoomOutPaintVertexArray,i,this.expression.isStateDependent)}}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()}}class Zi extends St{getPositions(e){return e.imagePositions}getPositionIds(e){return e.patterns&&e.patterns[this.layerId]}getVertexAttributes(){return He.members}emplace(e,i,a,o){e.emplace(i,a.tlbr[0],a.tlbr[1],a.tlbr[2],a.tlbr[3],o.tlbr[0],o.tlbr[1],o.tlbr[2],o.tlbr[3],a.pixelRatio,o.pixelRatio)}}class Kt extends St{getPositions(e){return e.dashPositions}getPositionIds(e){return e.dashes&&e.dashes[this.layerId]}getVertexAttributes(){return lt.members}emplace(e,i,a,o){e.emplace(i,0,a.y,a.height,a.width,0,o.y,o.height,o.width)}}class Qc{constructor(e,i,a){this.binders={},this._buffers=[];const o=[];for(const u in e.paint._values){if(!a(u))continue;const h=e.paint.get(u);if(!(h instanceof pr&&ya(h.property.specification)))continue;const f=ah(u,e.type),_=h.value,y=h.property.specification.type,v=h.property.useIntegerZoom,b=h.property.specification["property-type"],S=b==="cross-faded"||b==="cross-faded-data-driven";if(_.kind==="constant")this.binders[u]=S?new Gi(_.value,f):new ir(_.value,f,y),o.push(`/u_${u}`);else if(_.kind==="source"||S){const P=eu(u,y,"source");this.binders[u]=S?u==="line-dasharray"?new Kt(_,y,v,i,P,e.id):new Zi(_,y,v,i,P,e.id):new qi(_,f,y,P),o.push(`/a_${u}`)}else{const P=eu(u,y,"composite");this.binders[u]=new ht(_,f,y,v,i,P),o.push(`/z_${u}`)}}this.cacheKey=o.sort().join("")}getMaxValue(e){const i=this.binders[e];return i instanceof qi||i instanceof ht?i.maxValue:0}populatePaintArrays(e,i,a){for(const o in this.binders){const u=this.binders[o];(u instanceof qi||u instanceof ht||u instanceof St)&&u.populatePaintArray(e,i,a)}}setConstantPatternPositions(e,i){for(const a in this.binders){const o=this.binders[a];o instanceof Gi&&o.setConstantPatternPositions(e,i)}}setConstantDashPositions(e,i){for(const a in this.binders){const o=this.binders[a];o instanceof Gi&&o.setConstantDashPositions(e,i)}}updatePaintArrays(e,i,a,o,u){let h=!1;for(const f in e){const _=i.getPositions(f);for(const y of _){const v=a.feature(y.index);for(const b in this.binders){const S=this.binders[b];if((S instanceof qi||S instanceof ht||S instanceof St)&&S.expression.isStateDependent===!0){const P=o.paint.get(b);S.expression=P.value,S.updatePaintArray(y.start,y.end,v,e[f],u),h=!0}}}}return h}defines(){const e=[];for(const i in this.binders){const a=this.binders[i];(a instanceof ir||a instanceof Gi)&&e.push(...a.uniformNames.map((o=>`#define HAS_UNIFORM_${o}`)))}return e}getBinderAttributes(){const e=[];for(const i in this.binders){const a=this.binders[i];if(a instanceof qi||a instanceof ht)for(let o=0;o<a.paintVertexAttributes.length;o++)e.push(a.paintVertexAttributes[o].name);else if(a instanceof St){const o=a.getVertexAttributes();for(const u of o)e.push(u.name)}}return e}getBinderUniforms(){const e=[];for(const i in this.binders){const a=this.binders[i];if(a instanceof ir||a instanceof Gi||a instanceof ht)for(const o of a.uniformNames)e.push(o)}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e,i){const a=[];for(const o in this.binders){const u=this.binders[o];if(u instanceof ir||u instanceof Gi||u instanceof ht){for(const h of u.uniformNames)if(i[h]){const f=u.getBinding(e,i[h],h);a.push({name:h,property:o,binding:f})}}}return a}setUniforms(e,i,a,o){for(const{name:u,property:h,binding:f}of i)this.binders[h].setUniform(f,o,a.get(h),u)}updatePaintBuffers(e){this._buffers=[];for(const i in this.binders){const a=this.binders[i];if(e&&a instanceof St){const o=e.fromScale===2?a.zoomInPaintVertexBuffer:a.zoomOutPaintVertexBuffer;o&&this._buffers.push(o)}else(a instanceof qi||a instanceof ht)&&a.paintVertexBuffer&&this._buffers.push(a.paintVertexBuffer)}}upload(e){for(const i in this.binders){const a=this.binders[i];(a instanceof qi||a instanceof ht||a instanceof St)&&a.upload(e)}this.updatePaintBuffers()}destroy(){for(const e in this.binders){const i=this.binders[e];(i instanceof qi||i instanceof ht||i instanceof St)&&i.destroy()}}}class Zn{constructor(e,i,a=()=>!0){this.programConfigurations={};for(const o of e)this.programConfigurations[o.id]=new Qc(o,i,a);this.needsUpload=!1,this._featureMap=new Dt,this._bufferOffset=0}populatePaintArrays(e,i,a,o){for(const u in this.programConfigurations)this.programConfigurations[u].populatePaintArrays(e,i,o);i.id!==void 0&&this._featureMap.add(i.id,a,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,i,a,o){for(const u of a)this.needsUpload=this.programConfigurations[u.id].updatePaintArrays(e,this._featureMap,i,u,o)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(const i in this.programConfigurations)this.programConfigurations[i].upload(e);this.needsUpload=!1}}destroy(){for(const e in this.programConfigurations)this.programConfigurations[e].destroy()}}function ah(r,e){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-dasharray":["dasharray_to","dasharray_from"],"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"]}[r]||[r.replace(`${e}-`,"").replace(/-/g,"_")]}function eu(r,e,i){const a={color:{source:xs,composite:t},number:{source:bo,composite:xs}},o=(function(u){return{"line-pattern":{source:q,composite:q},"fill-pattern":{source:q,composite:q},"fill-extrusion-pattern":{source:q,composite:q},"line-dasharray":{source:Y,composite:Y}}[u]})(r);return o&&o[i]||a[e][i]}De("ConstantBinder",ir),De("CrossFadedConstantBinder",Gi),De("SourceExpressionBinder",qi),De("CrossFadedPatternBinder",Zi),De("CrossFadedDasharrayBinder",Kt),De("CompositeExpressionBinder",ht),De("ProgramConfiguration",Qc,{omit:["_buffers"]}),De("ProgramConfigurationSet",Zn);const Al=Math.pow(2,14)-1,tu=-Al-1;function $i(r){const e=st/r.extent,i=r.loadGeometry();for(let a=0;a<i.length;a++){const o=i[a];for(let u=0;u<o.length;u++){const h=o[u],f=Math.round(h.x*e),_=Math.round(h.y*e);h.x=Yi(f,tu,Al),h.y=Yi(_,tu,Al),(f<h.x||f>h.x+1||_<h.y||_>h.y+1)&&di("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return i}function mn(r,e){return{type:r.type,id:r.id,properties:r.properties,geometry:e?$i(r):[]}}const zl=-32768;function iu(r,e,i,a,o){r.emplaceBack(zl+8*e+a,zl+8*i+o)}class Ss{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.layoutVertexArray=new j,this.indexArray=new le,this.segments=new _e,this.programConfigurations=new Zn(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){const o=this.layers[0],u=[];let h=null,f=!1,_=o.type==="heatmap";if(o.type==="circle"){const v=o;h=v.layout.get("circle-sort-key"),f=!h.isConstant(),_=_||v.paint.get("circle-pitch-alignment")==="map"}const y=_?i.subdivisionGranularity.circle:1;for(const{feature:v,id:b,index:S,sourceLayerIndex:P}of e){const E=this.layers[0]._featureFilter.needGeometry,A=mn(v,E);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),A,a))continue;const R=f?h.evaluate(A,{},a):void 0,O={id:b,properties:v.properties,type:v.type,sourceLayerIndex:P,index:S,geometry:E?A.geometry:$i(v),patterns:{},sortKey:R};u.push(O)}f&&u.sort(((v,b)=>v.sortKey-b.sortKey));for(const v of u){const{geometry:b,index:S,sourceLayerIndex:P}=v,E=e[S].feature;this.addFeature(v,b,S,a,y),i.featureIndex.insert(E,b,S,P,this.index)}}update(e,i,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a})}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Ie),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(e,i,a,o,u=1){let h;switch(u){case 1:h=[0,7];break;case 3:h=[0,2,5,7];break;case 5:h=[0,1,3,4,6,7];break;case 7:h=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${u}; valid values are 1, 3, 5, 7.`)}const f=h.length;for(const _ of i)for(const y of _){const v=y.x,b=y.y;if(v<0||v>=st||b<0||b>=st)continue;const S=this.segments.prepareSegment(f*f,this.layoutVertexArray,this.indexArray,e.sortKey),P=S.vertexLength;for(let E=0;E<f;E++)for(let A=0;A<f;A++)iu(this.layoutVertexArray,v,b,h[A],h[E]);for(let E=0;E<f-1;E++)for(let A=0;A<f-1;A++){const R=P+E*f+A,O=P+(E+1)*f+A;this.indexArray.emplaceBack(R,O+1,R+1),this.indexArray.emplaceBack(R,O,O+1)}S.vertexLength+=f*f,S.primitiveLength+=(f-1)*(f-1)*2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{imagePositions:{},canonical:o})}}function Dl(r,e){for(let i=0;i<r.length;i++)if(To(e,r[i]))return!0;for(let i=0;i<e.length;i++)if(To(r,e[i]))return!0;return!!sh(r,e)}function Ta(r,e,i){return!!To(r,e)||!!oh(e,r,i)}function ad(r,e){if(r.length===1)return od(e,r[0]);for(let i=0;i<e.length;i++){const a=e[i];for(let o=0;o<a.length;o++)if(To(r,a[o]))return!0}for(let i=0;i<r.length;i++)if(od(e,r[i]))return!0;for(let i=0;i<e.length;i++)if(sh(r,e[i]))return!0;return!1}function Pf(r,e,i){if(r.length>1){if(sh(r,e))return!0;for(let a=0;a<e.length;a++)if(oh(e[a],r,i))return!0}for(let a=0;a<r.length;a++)if(oh(r[a],e,i))return!0;return!1}function sh(r,e){if(r.length===0||e.length===0)return!1;for(let i=0;i<r.length-1;i++){const a=r[i],o=r[i+1];for(let u=0;u<e.length-1;u++)if(Mf(a,o,e[u],e[u+1]))return!0}return!1}function Mf(r,e,i,a){return Fi(r,i,a)!==Fi(e,i,a)&&Fi(r,e,i)!==Fi(r,e,a)}function oh(r,e,i){const a=i*i;if(e.length===1)return r.distSqr(e[0])<a;for(let o=1;o<e.length;o++)if(sd(r,e[o-1],e[o])<a)return!0;return!1}function sd(r,e,i){const a=e.distSqr(i);if(a===0)return r.distSqr(e);const o=((r.x-e.x)*(i.x-e.x)+(r.y-e.y)*(i.y-e.y))/a;return r.distSqr(o<0?e:o>1?i:i.sub(e)._mult(o)._add(e))}function od(r,e){let i,a,o,u=!1;for(let h=0;h<r.length;h++){i=r[h];for(let f=0,_=i.length-1;f<i.length;_=f++)a=i[f],o=i[_],a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(u=!u)}return u}function To(r,e){let i=!1;for(let a=0,o=r.length-1;a<r.length;o=a++){const u=r[a],h=r[o];u.y>e.y!=h.y>e.y&&e.x<(h.x-u.x)*(e.y-u.y)/(h.y-u.y)+u.x&&(i=!i)}return i}function If(r,e,i){const a=i[0],o=i[2];if(r.x<a.x&&e.x<a.x||r.x>o.x&&e.x>o.x||r.y<a.y&&e.y<a.y||r.y>o.y&&e.y>o.y)return!1;const u=Fi(r,e,i[0]);return u!==Fi(r,e,i[1])||u!==Fi(r,e,i[2])||u!==Fi(r,e,i[3])}function So(r,e,i){const a=e.paint.get(r).value;return a.kind==="constant"?a.value:i.programConfigurations.get(e.id).getMaxValue(r)}function ru(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1])}function nu(r,e,i,a,o){if(!e[0]&&!e[1])return r;const u=Ee.convert(e)._mult(o);i==="viewport"&&u._rotate(-a);const h=[];for(let f=0;f<r.length;f++)h.push(r[f].sub(u));return h}function Ef(r){const e=[];for(let i=0;i<r.length;i++){const a=r[i],o=e.at(-1);(i===0||o&&!a.equals(o))&&e.push(a)}return e}function Cf({queryGeometry:r,size:e},i){return Ta(r,i,e)}function Af({queryGeometry:r,size:e,transform:i,unwrappedTileID:a,getElevation:o},u){return Ta(r,u,e*(i.projectTileCoordinates(u.x,u.y,a,o).signedDistanceFromCamera/i.cameraToCenterDistance))}function zf({queryGeometry:r,size:e,transform:i,unwrappedTileID:a,getElevation:o},u){const h=i.projectTileCoordinates(u.x,u.y,a,o).signedDistanceFromCamera,f=e*(i.cameraToCenterDistance/h);return Ta(r,lh(u,i,a,o),f)}function Df({queryGeometry:r,size:e,transform:i,unwrappedTileID:a,getElevation:o},u){return Ta(r,lh(u,i,a,o),e)}function ld({queryGeometry:r,size:e,transform:i,unwrappedTileID:a,getElevation:o,pitchAlignment:u="map",pitchScale:h="map"},f){const _=u==="map"?h==="map"?Cf:Af:h==="map"?zf:Df,y={queryGeometry:r,size:e,transform:i,unwrappedTileID:a,getElevation:o};for(const v of f)for(const b of v)if(_(y,b))return!0;return!1}function lh(r,e,i,a){const o=e.projectTileCoordinates(r.x,r.y,i,a).point;return new Ee((.5*o.x+.5)*e.width,(.5*-o.y+.5)*e.height)}let cd,ud;De("CircleBucket",Ss,{omit:["layers"]});var kf={get paint(){return ud=ud||new bi({"circle-radius":new Ue(K.paint_circle["circle-radius"]),"circle-color":new Ue(K.paint_circle["circle-color"]),"circle-blur":new Ue(K.paint_circle["circle-blur"]),"circle-opacity":new Ue(K.paint_circle["circle-opacity"]),"circle-translate":new Be(K.paint_circle["circle-translate"]),"circle-translate-anchor":new Be(K.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new Be(K.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new Be(K.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Ue(K.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Ue(K.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Ue(K.paint_circle["circle-stroke-opacity"])})},get layout(){return cd=cd||new bi({"circle-sort-key":new Ue(K.layout_circle["circle-sort-key"])})}};class Rf extends fr{constructor(e,i){super(e,kf,i)}createBucket(e){return new Ss(e)}queryRadius(e){const i=e;return So("circle-radius",this,i)+So("circle-stroke-width",this,i)+ru(this.paint.get("circle-translate"))}queryIntersectsFeature({queryGeometry:e,feature:i,featureState:a,geometry:o,transform:u,pixelsToTileUnits:h,unwrappedTileID:f,getElevation:_}){const y=nu(e,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),-u.bearingInRadians,h),v=this.paint.get("circle-radius").evaluate(i,a)+this.paint.get("circle-stroke-width").evaluate(i,a),b=this.paint.get("circle-pitch-scale"),S=this.paint.get("circle-pitch-alignment");let P,E;return S==="map"?(P=y,E=v*h):(P=(function(A,R,O,G){return A.map((B=>lh(B,R,O,G)))})(y,u,f,_),E=v),ld({queryGeometry:P,size:E,transform:u,unwrappedTileID:f,getElevation:_,pitchAlignment:S,pitchScale:b},o)}}class hd extends Ss{}let dd;De("HeatmapBucket",hd,{omit:["layers"]});var Lf={get paint(){return dd=dd||new bi({"heatmap-radius":new Ue(K.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Ue(K.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Be(K.paint_heatmap["heatmap-intensity"]),"heatmap-color":new va(K.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Be(K.paint_heatmap["heatmap-opacity"])})}};function ch(r,{width:e,height:i},a,o){if(o){if(o instanceof Uint8ClampedArray)o=new Uint8Array(o.buffer);else if(o.length!==e*i*a)throw new RangeError(`mismatched image size. expected: ${o.length} but got: ${e*i*a}`)}else o=new Uint8Array(e*i*a);return r.width=e,r.height=i,r.data=o,r}function pd(r,{width:e,height:i},a){if(e===r.width&&i===r.height)return;const o=ch({},{width:e,height:i},a);uh(r,o,{x:0,y:0},{x:0,y:0},{width:Math.min(r.width,e),height:Math.min(r.height,i)},a),r.width=e,r.height=i,r.data=o.data}function uh(r,e,i,a,o,u){if(o.width===0||o.height===0)return e;if(o.width>r.width||o.height>r.height||i.x>r.width-o.width||i.y>r.height-o.height)throw new RangeError("out of range source coordinates for image copy");if(o.width>e.width||o.height>e.height||a.x>e.width-o.width||a.y>e.height-o.height)throw new RangeError("out of range destination coordinates for image copy");const h=r.data,f=e.data;if(h===f)throw new Error("srcData equals dstData, so image is already copied");for(let _=0;_<o.height;_++){const y=((i.y+_)*r.width+i.x)*u,v=((a.y+_)*e.width+a.x)*u;for(let b=0;b<o.width*u;b++)f[v+b]=h[y+b]}return e}class kl{constructor(e,i){ch(this,e,1,i)}resize(e){pd(this,e,1)}clone(){return new kl({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,i,a,o,u){uh(e,i,a,o,u,1)}}class Wi{constructor(e,i){ch(this,e,4,i)}resize(e){pd(this,e,4)}replace(e,i){i?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e}clone(){return new Wi({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,i,a,o,u){uh(e,i,a,o,u,4)}setPixel(e,i,a){const o=4*(e*this.width+i);this.data[o+0]=Math.round(255*a.r/a.a),this.data[o+1]=Math.round(255*a.g/a.a),this.data[o+2]=Math.round(255*a.b/a.a),this.data[o+3]=Math.round(255*a.a)}}function fd(r){const e=new Uint8Array(r.length);for(let i=0;i<r.length;i+=4){const a=r[i+3];e[i+0]=Math.round(r[i+0]*a/255),e[i+1]=Math.round(r[i+1]*a/255),e[i+2]=Math.round(r[i+2]*a/255),e[i+3]=a}return e}function md(r){const e={},i=r.resolution||256,a=r.clips?r.clips.length:1,o=r.image||new Wi({width:i,height:a});if(Math.log(i)/Math.LN2%1!=0)throw new Error(`width is not a power of 2 - ${i}`);const u=(h,f,_)=>{e[r.evaluationKey]=_;const y=r.expression.evaluate(e);o.setPixel(h/4/i,f/4,y)};if(r.clips)for(let h=0,f=0;h<a;++h,f+=4*i)for(let _=0,y=0;_<i;_++,y+=4){const v=_/(i-1),{start:b,end:S}=r.clips[h];u(f,y,b*(1-v)+S*v)}else for(let h=0,f=0;h<i;h++,f+=4)u(0,f,h/(i-1));return o}De("AlphaImage",kl),De("RGBAImage",Wi);const hh="big-fb";class Ff extends fr{createBucket(e){return new hd(e)}constructor(e,i){super(e,Lf,i),this.heatmapFbos=new Map,this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(e){e==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=md({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbos.has(hh)&&this.heatmapFbos.delete(hh)}queryRadius(e){return So("heatmap-radius",this,e)}queryIntersectsFeature({queryGeometry:e,feature:i,featureState:a,geometry:o,transform:u,pixelsToTileUnits:h,unwrappedTileID:f,getElevation:_}){return ld({queryGeometry:e,size:this.paint.get("heatmap-radius").evaluate(i,a)*h,transform:u,unwrappedTileID:f,getElevation:_},o)}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&!this.isHidden()}}let _d;var Bf={get paint(){return _d=_d||new bi({"hillshade-illumination-direction":new Be(K.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-altitude":new Be(K.paint_hillshade["hillshade-illumination-altitude"]),"hillshade-illumination-anchor":new Be(K.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new Be(K.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new Be(K.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new Be(K.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new Be(K.paint_hillshade["hillshade-accent-color"]),"hillshade-method":new Be(K.paint_hillshade["hillshade-method"])})}};class Of extends fr{constructor(e,i){super(e,Bf,i),this.recalculate({zoom:0,zoomHistory:{}},void 0)}getIlluminationProperties(){let e=this.paint.get("hillshade-illumination-direction").values,i=this.paint.get("hillshade-illumination-altitude").values,a=this.paint.get("hillshade-highlight-color").values,o=this.paint.get("hillshade-shadow-color").values;const u=Math.max(e.length,i.length,a.length,o.length);e=e.concat(Array(u-e.length).fill(e.at(-1))),i=i.concat(Array(u-i.length).fill(i.at(-1))),a=a.concat(Array(u-a.length).fill(a.at(-1))),o=o.concat(Array(u-o.length).fill(o.at(-1)));const h=i.map(Mn);return{directionRadians:e.map(Mn),altitudeRadians:h,shadowColor:o,highlightColor:a}}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&!this.isHidden()}}let gd;var Vf={get paint(){return gd=gd||new bi({"color-relief-opacity":new Be(K["paint_color-relief"]["color-relief-opacity"]),"color-relief-color":new va(K["paint_color-relief"]["color-relief-color"])})}};function yd(r){return"data"in r}class dh{constructor(e,i,a,o){this.context=e,this.format=a,this.texture=e.gl.createTexture(),this._ownedHandle=this.texture,this.update(i,o)}update(e,i,a){const{width:o,height:u}=e,h=!(this.size&&this.size[0]===o&&this.size[1]===u||a),{context:f}=this,{gl:_}=f;this.useMipmap=!!(i&&i.useMipmap),_.bindTexture(_.TEXTURE_2D,this.texture),f.pixelStoreUnpackFlipY.set(!1),f.pixelStoreUnpack.set(1);const y=this.format===_.RGBA&&(!i||i.premultiply!==!1);if(h)this.size=[o,u],yd(e)?(f.pixelStoreUnpackPremultiplyAlpha.set(!1),this._uploadRawData(e,y,o,u,_)):(f.pixelStoreUnpackPremultiplyAlpha.set(y),this._uploadDomImage(e,_));else{const{x:v,y:b}=a||{x:0,y:0};yd(e)?(f.pixelStoreUnpackPremultiplyAlpha.set(!1),this._updateRawData(e,y,v,b,o,u,_)):(f.pixelStoreUnpackPremultiplyAlpha.set(y),this._updateDomImage(e,v,b,_))}this.useMipmap&&this.isSizePowerOfTwo()&&_.generateMipmap(_.TEXTURE_2D),f.pixelStoreUnpackFlipY.setDefault(),f.pixelStoreUnpack.setDefault(),f.pixelStoreUnpackPremultiplyAlpha.setDefault()}_uploadDomImage(e,i){i.texImage2D(i.TEXTURE_2D,0,this.format,this.format,i.UNSIGNED_BYTE,e)}_uploadRawData(e,i,a,o,u){let{data:h}=e;i&&h&&(h=fd(h)),u.texImage2D(u.TEXTURE_2D,0,this.format,a,o,0,this.format,u.UNSIGNED_BYTE,h)}_updateDomImage(e,i,a,o){o.texSubImage2D(o.TEXTURE_2D,0,i,a,o.RGBA,o.UNSIGNED_BYTE,e)}_updateRawData(e,i,a,o,u,h,f){let{data:_}=e;i&&_&&(_=fd(_)),f.texSubImage2D(f.TEXTURE_2D,0,a,o,u,h,f.RGBA,f.UNSIGNED_BYTE,_)}bind(e,i,a){const{context:o}=this,{gl:u}=o;this.texture!==this._ownedHandle&&(this.texture=this._ownedHandle),u.bindTexture(u.TEXTURE_2D,this.texture),a!==u.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(a=u.LINEAR),e!==this.filter&&(u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MAG_FILTER,e),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MIN_FILTER,a||e),this.filter=e),i!==this.wrap&&(u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_S,i),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_T,i),this.wrap=i)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:e}=this.context;e.deleteTexture(this.texture),this.texture=null,this._ownedHandle=null}}class xd{constructor(e,i,a,o=1,u=1,h=1,f=0){if(this.uid=e,i.height!==i.width)throw new RangeError("DEM tiles must be square");if(a&&!["mapbox","terrarium","custom"].includes(a))return void di(`"${a}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);this.stride=i.height;const _=this.dim=i.height-2;switch(this.data=new Uint32Array(i.data.buffer),a){case"terrarium":this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case"custom":this.redFactor=o,this.greenFactor=u,this.blueFactor=h,this.baseShift=f;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4}for(let y=0;y<_;y++)this.data[this._idx(-1,y)]=this.data[this._idx(0,y)],this.data[this._idx(_,y)]=this.data[this._idx(_-1,y)],this.data[this._idx(y,-1)]=this.data[this._idx(y,0)],this.data[this._idx(y,_)]=this.data[this._idx(y,_-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(_,-1)]=this.data[this._idx(_-1,0)],this.data[this._idx(-1,_)]=this.data[this._idx(0,_-1)],this.data[this._idx(_,_)]=this.data[this._idx(_-1,_-1)],this.min=Number.MAX_SAFE_INTEGER,this.max=Number.MIN_SAFE_INTEGER;for(let y=0;y<_;y++)for(let v=0;v<_;v++){const b=this.get(y,v);b>this.max&&(this.max=b),b<this.min&&(this.min=b)}}get(e,i){const a=new Uint8Array(this.data.buffer),o=4*this._idx(e,i);return this.unpack(a[o],a[o+1],a[o+2])}getUnpackVector(){return[this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(e,i){if(e<-1||e>=this.dim+1||i<-1||i>=this.dim+1)throw new RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${i}, dim: ${this.dim}`);return(i+1)*this.stride+(e+1)}unpack(e,i,a){return e*this.redFactor+i*this.greenFactor+a*this.blueFactor-this.baseShift}pack(e){return vd(e,this.getUnpackVector())}getPixels(){return new Wi({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(e,i,a){if(this.dim!==e.dim)throw new Error("dem dimension mismatch");let o=i*this.dim,u=i*this.dim+this.dim,h=a*this.dim,f=a*this.dim+this.dim;switch(i){case-1:o=u-1;break;case 1:u=o+1}switch(a){case-1:h=f-1;break;case 1:f=h+1}const _=-i*this.dim,y=-a*this.dim;for(let v=h;v<f;v++)for(let b=o;b<u;b++)this.data[this._idx(b,v)]=e.data[this._idx(b+_,v+y)]}}function vd(r,e){const i=e[0],a=e[1],o=e[2],u=e[3],h=Math.min(i,a,o),f=Math.round((r+u)/h);return{r:Math.floor(f*h/i)%256,g:Math.floor(f*h/a)%256,b:Math.floor(f*h/o)%256}}De("DEMData",xd);class jf extends fr{constructor(e,i){super(e,Vf,i)}_createColorRamp(e){const i={elevationStops:[],colorStops:[]},a=this._transitionablePaint._values["color-relief-color"].value.expression;if(a instanceof no&&a._styleExpression.expression instanceof vi){this.colorRampExpression=a;const h=a._styleExpression.expression;i.elevationStops=h.labels,i.colorStops=[];for(const f of i.elevationStops)i.colorStops.push(h.evaluate({globals:{elevation:f}}))}if(i.elevationStops.length<1&&(i.elevationStops=[0],i.colorStops=[et.transparent]),i.elevationStops.length<2&&(i.elevationStops.push(i.elevationStops[0]+1),i.colorStops.push(i.colorStops[0])),i.elevationStops.length<=e)return i;const o={elevationStops:[],colorStops:[]},u=(i.elevationStops.length-1)/(e-1);for(let h=0;h<i.elevationStops.length-.5;h+=u)o.elevationStops.push(i.elevationStops[Math.round(h)]),o.colorStops.push(i.colorStops[Math.round(h)]);return di(`Too many colors in specification of ${this.id} color-relief layer, may not render properly. Max possible colors: ${e}, provided: ${i.elevationStops.length}`),o}_colorRampChanged(){return this.colorRampExpression!=this._transitionablePaint._values["color-relief-color"].value.expression}getColorRampTextures(e,i,a){if(this.colorRampTextures&&!this._colorRampChanged())return this.colorRampTextures;const o=this._createColorRamp(i),u=new Wi({width:o.colorStops.length,height:1}),h=new Wi({width:o.colorStops.length,height:1});for(let f=0;f<o.elevationStops.length;f++){const _=vd(o.elevationStops[f],a);h.setPixel(0,f,new et(_.r/255,_.g/255,_.b/255,1)),u.setPixel(0,f,o.colorStops[f])}return this.colorRampTextures={elevationTexture:new dh(e,h,e.gl.RGBA),colorTexture:new dh(e,u,e.gl.RGBA)},this.colorRampTextures}hasOffscreenPass(){return!this.isHidden()&&!!this.colorRampTextures}}const Nf=Ot([{name:"a_pos",components:2,type:"Int16"}],4),{members:Uf}=Nf;function au(r,e,i){const a=i.patternDependencies;let o=!1;for(const u of e){const h=u.paint.get(`${r}-pattern`);h.isConstant()||(o=!0);const f=h.constantOr(null);f&&(o=!0,a[f.to]=!0,a[f.from]=!0)}return o}function ph(r,e,i,a,o){const{zoom:u}=a,h=o.patternDependencies;for(const f of e){const _=f.paint.get(`${r}-pattern`).value;if(_.kind!=="constant"){let y=_.evaluate({zoom:u-1},i,{},o.availableImages),v=_.evaluate({zoom:u},i,{},o.availableImages),b=_.evaluate({zoom:u+1},i,{},o.availableImages);y=y&&y.name?y.name:y,v=v&&v.name?v.name:v,b=b&&b.name?b.name:b,h[y]=!0,h[v]=!0,h[b]=!0,i.patterns[f.id]={min:y,mid:v,max:b}}}return i}function bd(r,e,i,a,o){let u;if(o===(function(h,f,_,y){let v=0;for(let b=f,S=_-y;b<_;b+=y)v+=(h[S]-h[b])*(h[b+1]+h[S+1]),S=b;return v})(r,e,i,a)>0)for(let h=e;h<i;h+=a)u=Pd(h/a|0,r[h],r[h+1],u);else for(let h=i-a;h>=e;h-=a)u=Pd(h/a|0,r[h],r[h+1],u);return u&&Po(u,u.next)&&(Bl(u),u=u.next),u}function Ps(r,e){if(!r)return r;e||(e=r);let i,a=r;do if(i=!1,a.steiner||!Po(a,a.next)&&qt(a.prev,a,a.next)!==0)a=a.next;else{if(Bl(a),a=e=a.prev,a===a.next)break;i=!0}while(i||a!==e);return e}function Rl(r,e,i,a,o,u,h){if(!r)return;!h&&u&&(function(_,y,v,b){let S=_;do S.z===0&&(S.z=fh(S.x,S.y,y,v,b)),S.prevZ=S.prev,S.nextZ=S.next,S=S.next;while(S!==_);S.prevZ.nextZ=null,S.prevZ=null,(function(P){let E,A=1;do{let R,O=P;P=null;let G=null;for(E=0;O;){E++;let B=O,V=0;for(let ee=0;ee<A&&(V++,B=B.nextZ,B);ee++);let H=A;for(;V>0||H>0&&B;)V!==0&&(H===0||!B||O.z<=B.z)?(R=O,O=O.nextZ,V--):(R=B,B=B.nextZ,H--),G?G.nextZ=R:P=R,R.prevZ=G,G=R;O=B}G.nextZ=null,A*=2}while(E>1)})(S)})(r,a,o,u);let f=r;for(;r.prev!==r.next;){const _=r.prev,y=r.next;if(u?qf(r,a,o,u):Gf(r))e.push(_.i,r.i,y.i),Bl(r),r=y.next,f=y.next;else if((r=y)===f){h?h===1?Rl(r=Zf(Ps(r),e),e,i,a,o,u,2):h===2&&$f(r,e,i,a,o,u):Rl(Ps(r),e,i,a,o,u,1);break}}}function Gf(r){const e=r.prev,i=r,a=r.next;if(qt(e,i,a)>=0)return!1;const o=e.x,u=i.x,h=a.x,f=e.y,_=i.y,y=a.y,v=Math.min(o,u,h),b=Math.min(f,_,y),S=Math.max(o,u,h),P=Math.max(f,_,y);let E=a.next;for(;E!==e;){if(E.x>=v&&E.x<=S&&E.y>=b&&E.y<=P&&Ll(o,f,u,_,h,y,E.x,E.y)&&qt(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function qf(r,e,i,a){const o=r.prev,u=r,h=r.next;if(qt(o,u,h)>=0)return!1;const f=o.x,_=u.x,y=h.x,v=o.y,b=u.y,S=h.y,P=Math.min(f,_,y),E=Math.min(v,b,S),A=Math.max(f,_,y),R=Math.max(v,b,S),O=fh(P,E,e,i,a),G=fh(A,R,e,i,a);let B=r.prevZ,V=r.nextZ;for(;B&&B.z>=O&&V&&V.z<=G;){if(B.x>=P&&B.x<=A&&B.y>=E&&B.y<=R&&B!==o&&B!==h&&Ll(f,v,_,b,y,S,B.x,B.y)&&qt(B.prev,B,B.next)>=0||(B=B.prevZ,V.x>=P&&V.x<=A&&V.y>=E&&V.y<=R&&V!==o&&V!==h&&Ll(f,v,_,b,y,S,V.x,V.y)&&qt(V.prev,V,V.next)>=0))return!1;V=V.nextZ}for(;B&&B.z>=O;){if(B.x>=P&&B.x<=A&&B.y>=E&&B.y<=R&&B!==o&&B!==h&&Ll(f,v,_,b,y,S,B.x,B.y)&&qt(B.prev,B,B.next)>=0)return!1;B=B.prevZ}for(;V&&V.z<=G;){if(V.x>=P&&V.x<=A&&V.y>=E&&V.y<=R&&V!==o&&V!==h&&Ll(f,v,_,b,y,S,V.x,V.y)&&qt(V.prev,V,V.next)>=0)return!1;V=V.nextZ}return!0}function Zf(r,e){let i=r;do{const a=i.prev,o=i.next.next;!Po(a,o)&&Td(a,i,i.next,o)&&Fl(a,o)&&Fl(o,a)&&(e.push(a.i,i.i,o.i),Bl(i),Bl(i.next),i=r=o),i=i.next}while(i!==r);return Ps(i)}function $f(r,e,i,a,o,u){let h=r;do{let f=h.next.next;for(;f!==h.prev;){if(h.i!==f.i&&Kf(h,f)){let _=Sd(h,f);return h=Ps(h,h.next),_=Ps(_,_.next),Rl(h,e,i,a,o,u,0),void Rl(_,e,i,a,o,u,0)}f=f.next}h=h.next}while(h!==r)}function Wf(r,e){let i=r.x-e.x;return i===0&&(i=r.y-e.y,i===0)&&(i=(r.next.y-r.y)/(r.next.x-r.x)-(e.next.y-e.y)/(e.next.x-e.x)),i}function Hf(r,e){const i=(function(o,u){let h=u;const f=o.x,_=o.y;let y,v=-1/0;if(Po(o,h))return h;do{if(Po(o,h.next))return h.next;if(_<=h.y&&_>=h.next.y&&h.next.y!==h.y){const A=h.x+(_-h.y)*(h.next.x-h.x)/(h.next.y-h.y);if(A<=f&&A>v&&(v=A,y=h.x<h.next.x?h:h.next,A===f))return y}h=h.next}while(h!==u);if(!y)return null;const b=y,S=y.x,P=y.y;let E=1/0;h=y;do{if(f>=h.x&&h.x>=S&&f!==h.x&&wd(_<P?f:v,_,S,P,_<P?v:f,_,h.x,h.y)){const A=Math.abs(_-h.y)/(f-h.x);Fl(h,o)&&(A<E||A===E&&(h.x>y.x||h.x===y.x&&Xf(y,h)))&&(y=h,E=A)}h=h.next}while(h!==b);return y})(r,e);if(!i)return e;const a=Sd(i,r);return Ps(a,a.next),Ps(i,i.next)}function Xf(r,e){return qt(r.prev,r,e.prev)<0&&qt(e.next,r,r.next)<0}function fh(r,e,i,a,o){return(r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r=(r-i)*o|0)|r<<8))|r<<4))|r<<2))|r<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-a)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Yf(r){let e=r,i=r;do(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),e=e.next;while(e!==r);return i}function wd(r,e,i,a,o,u,h,f){return(o-h)*(e-f)>=(r-h)*(u-f)&&(r-h)*(a-f)>=(i-h)*(e-f)&&(i-h)*(u-f)>=(o-h)*(a-f)}function Ll(r,e,i,a,o,u,h,f){return!(r===h&&e===f)&&wd(r,e,i,a,o,u,h,f)}function Kf(r,e){return r.next.i!==e.i&&r.prev.i!==e.i&&!(function(i,a){let o=i;do{if(o.i!==i.i&&o.next.i!==i.i&&o.i!==a.i&&o.next.i!==a.i&&Td(o,o.next,i,a))return!0;o=o.next}while(o!==i);return!1})(r,e)&&(Fl(r,e)&&Fl(e,r)&&(function(i,a){let o=i,u=!1;const h=(i.x+a.x)/2,f=(i.y+a.y)/2;do o.y>f!=o.next.y>f&&o.next.y!==o.y&&h<(o.next.x-o.x)*(f-o.y)/(o.next.y-o.y)+o.x&&(u=!u),o=o.next;while(o!==i);return u})(r,e)&&(qt(r.prev,r,e.prev)||qt(r,e.prev,e))||Po(r,e)&&qt(r.prev,r,r.next)>0&&qt(e.prev,e,e.next)>0)}function qt(r,e,i){return(e.y-r.y)*(i.x-e.x)-(e.x-r.x)*(i.y-e.y)}function Po(r,e){return r.x===e.x&&r.y===e.y}function Td(r,e,i,a){const o=ou(qt(r,e,i)),u=ou(qt(r,e,a)),h=ou(qt(i,a,r)),f=ou(qt(i,a,e));return o!==u&&h!==f||!(o!==0||!su(r,i,e))||!(u!==0||!su(r,a,e))||!(h!==0||!su(i,r,a))||!(f!==0||!su(i,e,a))}function su(r,e,i){return e.x<=Math.max(r.x,i.x)&&e.x>=Math.min(r.x,i.x)&&e.y<=Math.max(r.y,i.y)&&e.y>=Math.min(r.y,i.y)}function ou(r){return r>0?1:r<0?-1:0}function Fl(r,e){return qt(r.prev,r,r.next)<0?qt(r,e,r.next)>=0&&qt(r,r.prev,e)>=0:qt(r,e,r.prev)<0||qt(r,r.next,e)<0}function Sd(r,e){const i=mh(r.i,r.x,r.y),a=mh(e.i,e.x,e.y),o=r.next,u=e.prev;return r.next=e,e.prev=r,i.next=o,o.prev=i,a.next=i,i.prev=a,u.next=a,a.prev=u,a}function Pd(r,e,i,a){const o=mh(r,e,i);return a?(o.next=a.next,o.prev=a,a.next.prev=o,a.next=o):(o.prev=o,o.next=o),o}function Bl(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function mh(r,e,i){return{i:r,x:e,y:i,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class Mo{constructor(e,i){if(i>e)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=e,this._minGranularity=i}getGranularityForZoomLevel(e){return Math.max(Math.floor(this._baseZoomGranularity/(1<<e)),this._minGranularity,1)}}class lu{constructor(e){this.fill=e.fill,this.line=e.line,this.tile=e.tile,this.stencil=e.stencil,this.circle=e.circle}}lu.noSubdivision=new lu({fill:new Mo(0,0),line:new Mo(0,0),tile:new Mo(0,0),stencil:new Mo(0,0),circle:1}),De("SubdivisionGranularityExpression",Mo),De("SubdivisionGranularitySetting",lu);const Io=-32768,Ol=32767;class Jf{constructor(e,i){this._vertexBuffer=[],this._vertexDictionary=new Map,this._used=!1,this._granularity=e,this._granularityCellSize=st/e,this._canonical=i}_getKey(e,i){return(e+=32768)<<16|i+32768}_vertexToIndex(e,i){if(e<-32768||i<-32768||e>32767||i>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const a=0|Math.round(e),o=0|Math.round(i),u=this._getKey(a,o);if(this._vertexDictionary.has(u))return this._vertexDictionary.get(u);const h=this._vertexBuffer.length/2;return this._vertexDictionary.set(u,h),this._vertexBuffer.push(a,o),h}_subdivideTrianglesScanline(e){if(this._granularity<2)return(function(o,u){const h=[];for(let f=0;f<u.length;f+=3){const _=u[f],y=u[f+1],v=u[f+2],b=o[2*_],S=o[2*_+1];(o[2*y]-b)*(o[2*v+1]-S)-(o[2*y+1]-S)*(o[2*v]-b)>0?(h.push(_),h.push(v),h.push(y)):(h.push(_),h.push(y),h.push(v))}return h})(this._vertexBuffer,e);const i=[],a=e.length;for(let o=0;o<a;o+=3){const u=[e[o+0],e[o+1],e[o+2]],h=[this._vertexBuffer[2*e[o+0]+0],this._vertexBuffer[2*e[o+0]+1],this._vertexBuffer[2*e[o+1]+0],this._vertexBuffer[2*e[o+1]+1],this._vertexBuffer[2*e[o+2]+0],this._vertexBuffer[2*e[o+2]+1]];let f=1/0,_=1/0,y=-1/0,v=-1/0;for(let A=0;A<3;A++){const R=h[2*A],O=h[2*A+1];f=Math.min(f,R),y=Math.max(y,R),_=Math.min(_,O),v=Math.max(v,O)}if(f===y||_===v)continue;const b=Math.floor(f/this._granularityCellSize),S=Math.ceil(y/this._granularityCellSize),P=Math.floor(_/this._granularityCellSize),E=Math.ceil(v/this._granularityCellSize);if(b!==S||P!==E)for(let A=P;A<E;A++){const R=this._scanlineGenerateVertexRingForCellRow(A,h,u);Qf(this._vertexBuffer,R,i)}else i.push(...u)}return i}_scanlineGenerateVertexRingForCellRow(e,i,a){const o=e*this._granularityCellSize,u=o+this._granularityCellSize,h=[];for(let f=0;f<3;f++){const _=i[2*f],y=i[2*f+1],v=i[2*(f+1)%6],b=i[(2*(f+1)+1)%6],S=i[2*(f+2)%6],P=i[(2*(f+2)+1)%6],E=v-_,A=b-y,R=E===0,O=A===0,G=(o-y)/A,B=(u-y)/A,V=Math.min(G,B),H=Math.max(G,B);if(!O&&(V>=1||H<=0)||O&&(y<o||y>u)){b>=o&&b<=u&&h.push(a[(f+1)%3]);continue}!O&&V>0&&h.push(this._vertexToIndex(_+E*V,y+A*V));const ee=_+E*Math.max(V,0),se=_+E*Math.min(H,1);R||this._generateIntraEdgeVertices(h,_,y,v,b,ee,se),!O&&H<1&&h.push(this._vertexToIndex(_+E*H,y+A*H)),(O||b>=o&&b<=u)&&h.push(a[(f+1)%3]),!O&&(b<=o||b>=u)&&this._generateInterEdgeVertices(h,_,y,v,b,S,P,se,o,u)}return h}_generateIntraEdgeVertices(e,i,a,o,u,h,f){const _=o-i,y=u-a,v=y===0,b=v?Math.min(i,o):Math.min(h,f),S=v?Math.max(i,o):Math.max(h,f),P=Math.floor(b/this._granularityCellSize)+1,E=Math.ceil(S/this._granularityCellSize)-1;if(v?i<o:h<f)for(let A=P;A<=E;A++){const R=A*this._granularityCellSize;e.push(this._vertexToIndex(R,a+y*(R-i)/_))}else for(let A=E;A>=P;A--){const R=A*this._granularityCellSize;e.push(this._vertexToIndex(R,a+y*(R-i)/_))}}_generateInterEdgeVertices(e,i,a,o,u,h,f,_,y,v){const b=u-a,S=h-o,P=f-u,E=(y-u)/P,A=(v-u)/P,R=Math.min(E,A),O=Math.max(E,A),G=o+S*R;let B=Math.floor(Math.min(G,_)/this._granularityCellSize)+1,V=Math.ceil(Math.max(G,_)/this._granularityCellSize)-1,H=_<G;const ee=P===0;if(ee&&(f===y||f===v))return;if(ee||R>=1||O<=0){const ge=a-f,ye=h+(i-h)*Math.min((y-f)/ge,(v-f)/ge);B=Math.floor(Math.min(ye,_)/this._granularityCellSize)+1,V=Math.ceil(Math.max(ye,_)/this._granularityCellSize)-1,H=_<ye}const se=b>0?v:y;if(H)for(let ge=B;ge<=V;ge++)e.push(this._vertexToIndex(ge*this._granularityCellSize,se));else for(let ge=V;ge>=B;ge--)e.push(this._vertexToIndex(ge*this._granularityCellSize,se))}_generateOutline(e){const i=[];for(const a of e){const o=Ms(a,this._granularity,!0),u=this._pointArrayToIndices(o),h=[];for(let f=1;f<u.length;f++)h.push(u[f-1]),h.push(u[f]);i.push(h)}return i}_handlePoles(e){let i=!1,a=!1;this._canonical&&(this._canonical.y===0&&(i=!0),this._canonical.y===(1<<this._canonical.z)-1&&(a=!0)),(i||a)&&this._fillPoles(e,i,a)}_ensureNoPoleVertices(){const e=this._vertexBuffer;for(let i=0;i<e.length;i+=2){const a=e[i+1];a===Io&&(e[i+1]=-32767),a===Ol&&(e[i+1]=32766)}}_generatePoleQuad(e,i,a,o,u,h){o>u!=(h===Io)?(e.push(i),e.push(a),e.push(this._vertexToIndex(o,h)),e.push(a),e.push(this._vertexToIndex(u,h)),e.push(this._vertexToIndex(o,h))):(e.push(a),e.push(i),e.push(this._vertexToIndex(o,h)),e.push(this._vertexToIndex(u,h)),e.push(a),e.push(this._vertexToIndex(o,h)))}_fillPoles(e,i,a){const o=this._vertexBuffer,u=st,h=e.length;for(let f=2;f<h;f+=3){const _=e[f-2],y=e[f-1],v=e[f],b=o[2*_],S=o[2*_+1],P=o[2*y],E=o[2*y+1],A=o[2*v],R=o[2*v+1];i&&(S===0&&E===0&&this._generatePoleQuad(e,_,y,b,P,Io),E===0&&R===0&&this._generatePoleQuad(e,y,v,P,A,Io),R===0&&S===0&&this._generatePoleQuad(e,v,_,A,b,Io)),a&&(S===u&&E===u&&this._generatePoleQuad(e,_,y,b,P,Ol),E===u&&R===u&&this._generatePoleQuad(e,y,v,P,A,Ol),R===u&&S===u&&this._generatePoleQuad(e,v,_,A,b,Ol))}}_initializeVertices(e){for(let i=0;i<e.length;i+=2)this._vertexToIndex(e[i],e[i+1])}subdividePolygonInternal(e,i){if(this._used)throw new Error("Subdivision: multiple use not allowed.");this._used=!0;const{flattened:a,holeIndices:o}=(function(f){const _=[],y=[];for(const v of f)if(v.length!==0){v!==f[0]&&_.push(y.length/2);for(let b=0;b<v.length;b++)y.push(v[b].x),y.push(v[b].y)}return{flattened:y,holeIndices:_}})(e);let u;this._initializeVertices(a);try{const f=(function(y,v,b=2){const S=v&&v.length,P=S?v[0]*b:y.length;let E=bd(y,0,P,b,!0);const A=[];if(!E||E.next===E.prev)return A;let R,O,G;if(S&&(E=(function(B,V,H,ee){const se=[];for(let ge=0,ye=V.length;ge<ye;ge++){const ve=bd(B,V[ge]*ee,ge<ye-1?V[ge+1]*ee:B.length,ee,!1);ve===ve.next&&(ve.steiner=!0),se.push(Yf(ve))}se.sort(Wf);for(let ge=0;ge<se.length;ge++)H=Hf(se[ge],H);return H})(y,v,E,b)),y.length>80*b){R=y[0],O=y[1];let B=R,V=O;for(let H=b;H<P;H+=b){const ee=y[H],se=y[H+1];ee<R&&(R=ee),se<O&&(O=se),ee>B&&(B=ee),se>V&&(V=se)}G=Math.max(B-R,V-O),G=G!==0?32767/G:0}return Rl(E,A,b,R,O,G,0),A})(a,o),_=this._convertIndices(a,f);u=this._subdivideTrianglesScanline(_)}catch(f){console.error(f)}let h=[];return i&&(h=this._generateOutline(e)),this._ensureNoPoleVertices(),this._handlePoles(u),{verticesFlattened:this._vertexBuffer,indicesTriangles:u,indicesLineList:h}}_convertIndices(e,i){const a=[];for(let o=0;o<i.length;o++)a.push(this._vertexToIndex(e[2*i[o]],e[2*i[o]+1]));return a}_pointArrayToIndices(e){const i=[];for(let a=0;a<e.length;a++){const o=e[a];i.push(this._vertexToIndex(o.x,o.y))}return i}}function Md(r,e,i,a=!0){return new Jf(i,e).subdividePolygonInternal(r,a)}function Ms(r,e,i=!1){if(!r||r.length<1)return[];if(r.length<2)return[];const a=r[0],o=r[r.length-1],u=i&&(a.x!==o.x||a.y!==o.y);if(e<2)return u?[...r,r[0]]:[...r];const h=Math.floor(st/e),f=[];f.push(new Ee(r[0].x,r[0].y));const _=r.length,y=u?_:_-1;for(let v=0;v<y;v++){const b=r[v],S=v<_-1?r[v+1]:r[0],P=b.x,E=b.y,A=S.x,R=S.y,O=P!==A,G=E!==R;if(!O&&!G)continue;const B=A-P,V=R-E,H=Math.abs(B),ee=Math.abs(V);let se=P,ge=E;for(;;){const ve=B>0?(Math.floor(se/h)+1)*h:(Math.ceil(se/h)-1)*h,Ce=V>0?(Math.floor(ge/h)+1)*h:(Math.ceil(ge/h)-1)*h,Te=Math.abs(se-ve),xe=Math.abs(ge-Ce),pe=Math.abs(se-A),ke=Math.abs(ge-R),Re=O?Te/H:Number.POSITIVE_INFINITY,Ve=G?xe/ee:Number.POSITIVE_INFINITY;if((pe<=Te||!O)&&(ke<=xe||!G))break;if(Re<Ve&&O||!G){se=ve,ge+=V*Re;const Fe=new Ee(se,Math.round(ge));f[f.length-1].x===Fe.x&&f[f.length-1].y===Fe.y||f.push(Fe)}else{se+=B*Ve,ge=Ce;const Fe=new Ee(Math.round(se),ge);f[f.length-1].x===Fe.x&&f[f.length-1].y===Fe.y||f.push(Fe)}}const ye=new Ee(A,R);f[f.length-1].x===ye.x&&f[f.length-1].y===ye.y||f.push(ye)}return f}function Qf(r,e,i){if(e.length===0)throw new Error("Subdivision vertex ring is empty.");let a=0,o=r[2*e[0]];for(let _=1;_<e.length;_++){const y=r[2*e[_]];y<o&&(o=y,a=_)}const u=e.length;let h=a,f=(h+1)%u;for(;;){const _=h-1>=0?h-1:u-1,y=(f+1)%u,v=r[2*e[_]],b=r[2*e[y]],S=r[2*e[h]],P=r[2*e[h]+1],E=r[2*e[f]+1];let A=!1;if(v<b)A=!0;else if(v>b)A=!1;else{const R=E-P,O=-(r[2*e[f]]-S),G=P<E?1:-1;((v-S)*R+(r[2*e[_]+1]-P)*O)*G>((b-S)*R+(r[2*e[y]+1]-P)*O)*G&&(A=!0)}if(A){const R=e[_],O=e[h],G=e[f];R!==O&&R!==G&&O!==G&&i.push(G,O,R),h--,h<0&&(h=u-1)}else{const R=e[y],O=e[h],G=e[f];R!==O&&R!==G&&O!==G&&i.push(G,O,R),f++,f>=u&&(f=0)}if(_===y)break}}function Id(r,e,i,a,o,u,h,f,_){const y=o.length/2,v=h&&f&&_;if(y<_e.MAX_VERTEX_ARRAY_LENGTH){const b=e.prepareSegment(y,i,a),S=b.vertexLength;for(let A=0;A<u.length;A+=3)a.emplaceBack(S+u[A],S+u[A+1],S+u[A+2]);let P,E;b.vertexLength+=y,b.primitiveLength+=u.length/3,v&&(E=h.prepareSegment(y,i,f),P=E.vertexLength,E.vertexLength+=y);for(let A=0;A<o.length;A+=2)r(o[A],o[A+1]);if(v)for(let A=0;A<_.length;A++){const R=_[A];for(let O=1;O<R.length;O+=2)f.emplaceBack(P+R[O-1],P+R[O]);E.primitiveLength+=R.length/2}}else(function(b,S,P,E,A,R){const O=[];for(let ee=0;ee<E.length/2;ee++)O.push(-1);const G={count:0};let B=0,V=b.getOrCreateLatestSegment(S,P),H=V.vertexLength;for(let ee=2;ee<A.length;ee+=3){const se=A[ee-2],ge=A[ee-1],ye=A[ee];let ve=O[se]<B,Ce=O[ge]<B,Te=O[ye]<B;V.vertexLength+((ve?1:0)+(Ce?1:0)+(Te?1:0))>_e.MAX_VERTEX_ARRAY_LENGTH&&(V=b.createNewSegment(S,P),B=G.count,ve=!0,Ce=!0,Te=!0,H=0);const xe=Vl(O,E,R,G,se,ve,V),pe=Vl(O,E,R,G,ge,Ce,V),ke=Vl(O,E,R,G,ye,Te,V);P.emplaceBack(H+xe-B,H+pe-B,H+ke-B),V.primitiveLength++}})(e,i,a,o,u,r),v&&(function(b,S,P,E,A,R){const O=[];for(let ee=0;ee<E.length/2;ee++)O.push(-1);const G={count:0};let B=0,V=b.getOrCreateLatestSegment(S,P),H=V.vertexLength;for(let ee=0;ee<A.length;ee++){const se=A[ee];for(let ge=1;ge<A[ee].length;ge+=2){const ye=se[ge-1],ve=se[ge];let Ce=O[ye]<B,Te=O[ve]<B;V.vertexLength+((Ce?1:0)+(Te?1:0))>_e.MAX_VERTEX_ARRAY_LENGTH&&(V=b.createNewSegment(S,P),B=G.count,Ce=!0,Te=!0,H=0);const xe=Vl(O,E,R,G,ye,Ce,V),pe=Vl(O,E,R,G,ve,Te,V);P.emplaceBack(H+xe-B,H+pe-B),V.primitiveLength++}}})(h,i,f,o,_,r),e.forceNewSegmentOnNextPrepare(),h?.forceNewSegmentOnNextPrepare()}function Vl(r,e,i,a,o,u,h){if(u){const f=a.count;return i(e[2*o],e[2*o+1]),r[o]=a.count,a.count++,h.vertexLength++,f}return r[o]}class _h{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.patternFeatures=[],this.layoutVertexArray=new U,this.indexArray=new le,this.indexArray2=new he,this.programConfigurations=new Zn(e.layers,e.zoom),this.segments=new _e,this.segments2=new _e,this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){this.hasDependencies=au("fill",this.layers,i);const o=this.layers[0].layout.get("fill-sort-key"),u=!o.isConstant(),h=[];for(const{feature:f,id:_,index:y,sourceLayerIndex:v}of e){const b=this.layers[0]._featureFilter.needGeometry,S=mn(f,b);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),S,a))continue;const P=u?o.evaluate(S,{},a,i.availableImages):void 0,E={id:_,properties:f.properties,type:f.type,sourceLayerIndex:v,index:y,geometry:b?S.geometry:$i(f),patterns:{},sortKey:P};h.push(E)}u&&h.sort(((f,_)=>f.sortKey-_.sortKey));for(const f of h){const{geometry:_,index:y,sourceLayerIndex:v}=f;if(this.hasDependencies){const b=ph("fill",this.layers,f,{zoom:this.zoom},i);this.patternFeatures.push(b)}else this.addFeature(f,_,y,a,{},i.subdivisionGranularity);i.featureIndex.insert(e[y].feature,_,y,v,this.index)}}update(e,i,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a})}addFeatures(e,i,a){for(const o of this.patternFeatures)this.addFeature(o,o.geometry,o.index,i,a,e.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Uf),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),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(e,i,a,o,u,h){for(const f of Ka(i,500)){const _=Md(f,o,h.fill.getGranularityForZoomLevel(o.z)),y=this.layoutVertexArray;Id(((v,b)=>{y.emplaceBack(v,b)}),this.segments,this.layoutVertexArray,this.indexArray,_.verticesFlattened,_.indicesTriangles,this.segments2,this.indexArray2,_.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{imagePositions:u,canonical:o})}}let Ed,Cd;De("FillBucket",_h,{omit:["layers","patternFeatures"]});var em={get paint(){return Cd=Cd||new bi({"fill-antialias":new Be(K.paint_fill["fill-antialias"]),"fill-opacity":new Ue(K.paint_fill["fill-opacity"]),"fill-color":new Ue(K.paint_fill["fill-color"]),"fill-outline-color":new Ue(K.paint_fill["fill-outline-color"]),"fill-translate":new Be(K.paint_fill["fill-translate"]),"fill-translate-anchor":new Be(K.paint_fill["fill-translate-anchor"]),"fill-pattern":new fn(K.paint_fill["fill-pattern"])})},get layout(){return Ed=Ed||new bi({"fill-sort-key":new Ue(K.layout_fill["fill-sort-key"])})}};class tm extends fr{constructor(e,i){super(e,em,i)}recalculate(e,i){super.recalculate(e,i);const 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(e){return new _h(e)}queryRadius(){return ru(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:e,geometry:i,transform:a,pixelsToTileUnits:o}){return ad(nu(e,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-a.bearingInRadians,o),i)}isTileClipped(){return!0}}const im=Ot([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),rm=Ot([{name:"a_centroid",components:2,type:"Int16"}],4),{members:nm}=im;class jl{constructor(e,i,a,o,u){this.properties={},this.extent=a,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=o,this._values=u,e.readFields(am,this,i)}loadGeometry(){const e=this._pbf;e.pos=this._geometry;const i=e.readVarint()+e.pos,a=[];let o,u=1,h=0,f=0,_=0;for(;e.pos<i;){if(h<=0){const y=e.readVarint();u=7&y,h=y>>3}if(h--,u===1||u===2)f+=e.readSVarint(),_+=e.readSVarint(),u===1&&(o&&a.push(o),o=[]),o&&o.push(new Ee(f,_));else{if(u!==7)throw new Error(`unknown command ${u}`);o&&o.push(o[0].clone())}}return o&&a.push(o),a}bbox(){const e=this._pbf;e.pos=this._geometry;const i=e.readVarint()+e.pos;let a=1,o=0,u=0,h=0,f=1/0,_=-1/0,y=1/0,v=-1/0;for(;e.pos<i;){if(o<=0){const b=e.readVarint();a=7&b,o=b>>3}if(o--,a===1||a===2)u+=e.readSVarint(),h+=e.readSVarint(),u<f&&(f=u),u>_&&(_=u),h<y&&(y=h),h>v&&(v=h);else if(a!==7)throw new Error(`unknown command ${a}`)}return[f,y,_,v]}toGeoJSON(e,i,a){const o=this.extent*Math.pow(2,a),u=this.extent*e,h=this.extent*i,f=this.loadGeometry();function _(S){return[360*(S.x+u)/o-180,360/Math.PI*Math.atan(Math.exp((1-2*(S.y+h)/o)*Math.PI))-90]}function y(S){return S.map(_)}let v;if(this.type===1){const S=[];for(const E of f)S.push(E[0]);const P=y(S);v=S.length===1?{type:"Point",coordinates:P[0]}:{type:"MultiPoint",coordinates:P}}else if(this.type===2){const S=f.map(y);v=S.length===1?{type:"LineString",coordinates:S[0]}:{type:"MultiLineString",coordinates:S}}else{if(this.type!==3)throw new Error("unknown feature type");{const S=Ad(f),P=[];for(const E of S)P.push(E.map(y));v=P.length===1?{type:"Polygon",coordinates:P[0]}:{type:"MultiPolygon",coordinates:P}}}const b={type:"Feature",geometry:v,properties:this.properties};return this.id!=null&&(b.id=this.id),b}}function am(r,e,i){r===1?e.id=i.readVarint():r===2?(function(a,o){const u=a.readVarint()+a.pos;for(;a.pos<u;){const h=o._keys[a.readVarint()],f=o._values[a.readVarint()];o.properties[h]=f}})(i,e):r===3?e.type=i.readVarint():r===4&&(e._geometry=i.pos)}function Ad(r){const e=r.length;if(e<=1)return[r];const i=[];let a,o;for(let u=0;u<e;u++){const h=sm(r[u]);h!==0&&(o===void 0&&(o=h<0),o===h<0?(a&&i.push(a),a=[r[u]]):a&&a.push(r[u]))}return a&&i.push(a),i}function sm(r){let e=0;for(let i,a,o=0,u=r.length,h=u-1;o<u;h=o++)i=r[o],a=r[h],e+=(a.x-i.x)*(i.y+a.y);return e}jl.types=["Unknown","Point","LineString","Polygon"];class om{constructor(e,i){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(lm,this,i),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];const i=this._pbf.readVarint()+this._pbf.pos;return new jl(this._pbf,i,this.extent,this._keys,this._values)}}function lm(r,e,i){r===15?e.version=i.readVarint():r===1?e.name=i.readString():r===5?e.extent=i.readVarint():r===2?e._features.push(i.pos):r===3?e._keys.push(i.readString()):r===4&&e._values.push((function(a){let o=null;const u=a.readVarint()+a.pos;for(;a.pos<u;){const h=a.readVarint()>>3;o=h===1?a.readString():h===2?a.readFloat():h===3?a.readDouble():h===4?a.readVarint64():h===5?a.readVarint():h===6?a.readSVarint():h===7?a.readBoolean():null}if(o==null)throw new Error("unknown feature value");return o})(i))}class zd{constructor(e,i){this.layers=e.readFields(cm,{},i)}}function cm(r,e,i){if(r===3){const a=new om(i,i.readVarint()+i.pos);a.length&&(e[a.name]=a)}}const gh=Math.pow(2,13);function Nl(r,e,i,a,o,u,h,f){r.emplaceBack(e,i,2*Math.floor(a*gh)+h,o*gh*2,u*gh*2,Math.round(f))}class yh{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.layoutVertexArray=new N,this.centroidVertexArray=new L,this.indexArray=new le,this.programConfigurations=new Zn(e.layers,e.zoom),this.segments=new _e,this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){this.features=[],this.hasDependencies=au("fill-extrusion",this.layers,i);for(const{feature:o,id:u,index:h,sourceLayerIndex:f}of e){const _=this.layers[0]._featureFilter.needGeometry,y=mn(o,_);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),y,a))continue;const v={id:u,sourceLayerIndex:f,index:h,geometry:_?y.geometry:$i(o),properties:o.properties,type:o.type,patterns:{}};this.hasDependencies?this.features.push(ph("fill-extrusion",this.layers,v,{zoom:this.zoom},i)):this.addFeature(v,v.geometry,h,a,{},i.subdivisionGranularity),i.featureIndex.insert(o,v.geometry,h,f,this.index,!0)}}addFeatures(e,i,a){for(const o of this.features){const{geometry:u}=o;this.addFeature(o,u,o.index,i,a,e.subdivisionGranularity)}}update(e,i,a){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a})}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,nm),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,rm.members,!0),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(e,i,a,o,u,h){for(const f of Ka(i,500)){const _={x:0,y:0,sampleCount:0},y=this.layoutVertexArray.length;this.processPolygon(_,o,e,f,h);const v=this.layoutVertexArray.length-y,b=Math.floor(_.x/_.sampleCount),S=Math.floor(_.y/_.sampleCount);for(let P=0;P<v;P++)this.centroidVertexArray.emplaceBack(b,S)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{imagePositions:u,canonical:o})}processPolygon(e,i,a,o,u){if(o.length<1||Dd(o[0]))return;for(const b of o)b.length!==0&&um(e,b);const h={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},f=u.fill.getGranularityForZoomLevel(i.z),_=jl.types[a.type]==="Polygon";for(const b of o){if(b.length===0||Dd(b))continue;const S=Ms(b,f,_);this._generateSideFaces(S,h)}if(!_)return;const y=Md(o,i,f,!1),v=this.layoutVertexArray;Id(((b,S)=>{Nl(v,b,S,0,0,1,1,0)}),this.segments,this.layoutVertexArray,this.indexArray,y.verticesFlattened,y.indicesTriangles)}_generateSideFaces(e,i){let a=0;for(let o=1;o<e.length;o++){const u=e[o],h=e[o-1];if(hm(u,h))continue;i.segment.vertexLength+4>_e.MAX_VERTEX_ARRAY_LENGTH&&(i.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const f=u.sub(h)._perp()._unit(),_=h.dist(u);a+_>32768&&(a=0),Nl(this.layoutVertexArray,u.x,u.y,f.x,f.y,0,0,a),Nl(this.layoutVertexArray,u.x,u.y,f.x,f.y,0,1,a),a+=_,Nl(this.layoutVertexArray,h.x,h.y,f.x,f.y,0,0,a),Nl(this.layoutVertexArray,h.x,h.y,f.x,f.y,0,1,a);const y=i.segment.vertexLength;this.indexArray.emplaceBack(y,y+2,y+1),this.indexArray.emplaceBack(y+1,y+2,y+3),i.segment.vertexLength+=4,i.segment.primitiveLength+=2}}}function um(r,e){for(let i=0;i<e.length;i++){const a=e[i];i===e.length-1&&e[0].x===a.x&&e[0].y===a.y||(r.x+=a.x,r.y+=a.y,r.sampleCount++)}}function hm(r,e){return r.x===e.x&&(r.x<0||r.x>st)||r.y===e.y&&(r.y<0||r.y>st)}function Dd(r){return r.every((e=>e.x<0))||r.every((e=>e.x>st))||r.every((e=>e.y<0))||r.every((e=>e.y>st))}let kd;De("FillExtrusionBucket",yh,{omit:["layers","features"]});var dm={get paint(){return kd=kd||new bi({"fill-extrusion-opacity":new Be(K["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Ue(K["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Be(K["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Be(K["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new fn(K["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Ue(K["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Ue(K["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Be(K["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class pm extends fr{constructor(e,i){super(e,dm,i)}createBucket(e){return new yh(e)}queryRadius(){return ru(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:e,feature:i,featureState:a,geometry:o,transform:u,pixelsToTileUnits:h,pixelPosMatrix:f}){const _=nu(e,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-u.bearingInRadians,h),y=this.paint.get("fill-extrusion-height").evaluate(i,a),v=this.paint.get("fill-extrusion-base").evaluate(i,a),b=(function(P,E){const A=[];for(const R of P){const O=[R.x,R.y,0,1];tn(O,O,E),A.push(new Ee(O[0]/O[3],O[1]/O[3]))}return A})(_,f),S=(function(P,E,A,R){const O=[],G=[],B=R[8]*E,V=R[9]*E,H=R[10]*E,ee=R[11]*E,se=R[8]*A,ge=R[9]*A,ye=R[10]*A,ve=R[11]*A;for(const Ce of P){const Te=[],xe=[];for(const pe of Ce){const ke=pe.x,Re=pe.y,Ve=R[0]*ke+R[4]*Re+R[12],Fe=R[1]*ke+R[5]*Re+R[13],Je=R[2]*ke+R[6]*Re+R[14],Pt=R[3]*ke+R[7]*Re+R[15],Wt=Je+H,gi=Pt+ee,Mr=Ve+se,Ri=Fe+ge,oi=Je+ye,yi=Pt+ve,jt=new Ee((Ve+B)/gi,(Fe+V)/gi);jt.z=Wt/gi,Te.push(jt);const li=new Ee(Mr/yi,Ri/yi);li.z=oi/yi,xe.push(li)}O.push(Te),G.push(xe)}return[O,G]})(o,v,y,f);return(function(P,E,A){let R=1/0;ad(A,E)&&(R=Rd(A,E[0]));for(let O=0;O<E.length;O++){const G=E[O],B=P[O];for(let V=0;V<G.length-1;V++){const H=G[V],ee=[H,G[V+1],B[V+1],B[V],H];Dl(A,ee)&&(R=Math.min(R,Rd(A,ee)))}}return R!==1/0&&R})(S[0],S[1],b)}}function Ul(r,e){return r.x*e.x+r.y*e.y}function Rd(r,e){if(r.length===1){let i=0;const a=e[i++];let o;for(;!o||a.equals(o);)if(o=e[i++],!o)return 1/0;for(;i<e.length;i++){const u=e[i],h=r[0],f=o.sub(a),_=u.sub(a),y=h.sub(a),v=Ul(f,f),b=Ul(f,_),S=Ul(_,_),P=Ul(y,f),E=Ul(y,_),A=v*S-b*b,R=(S*P-b*E)/A,O=(v*E-b*P)/A,G=a.z*(1-R-O)+o.z*R+u.z*O;if(isFinite(G))return G}return 1/0}{let i=1/0;for(const a of e)i=Math.min(i,a.z);return i}}const fm=Ot([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4),{members:mm}=fm,_m=Ot([{name:"a_uv_x",components:1,type:"Float32"},{name:"a_split_index",components:1,type:"Float32"}]),{members:gm}=_m,ym=Math.cos(Math.PI/180*37.5),Ld=Math.pow(2,14)/.5;class xh{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((i=>i.id)),this.index=e.index,this.hasDependencies=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((i=>{this.gradients[i.id]={}})),this.layoutVertexArray=new Z,this.layoutVertexArray2=new X,this.indexArray=new le,this.programConfigurations=new Zn(e.layers,e.zoom),this.segments=new _e,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((i=>i.isStateDependent())).map((i=>i.id))}populate(e,i,a){this.hasDependencies=au("line",this.layers,i)||this.hasLineDasharray(this.layers);const o=this.layers[0].layout.get("line-sort-key"),u=!o.isConstant(),h=[];for(const{feature:f,id:_,index:y,sourceLayerIndex:v}of e){const b=this.layers[0]._featureFilter.needGeometry,S=mn(f,b);if(!this.layers[0]._featureFilter.filter(new pt(this.zoom),S,a))continue;const P=u?o.evaluate(S,{},a):void 0,E={id:_,properties:f.properties,type:f.type,sourceLayerIndex:v,index:y,geometry:b?S.geometry:$i(f),patterns:{},dashes:{},sortKey:P};h.push(E)}u&&h.sort(((f,_)=>f.sortKey-_.sortKey));for(const f of h){const{geometry:_,index:y,sourceLayerIndex:v}=f;this.hasDependencies?(au("line",this.layers,i)?ph("line",this.layers,f,{zoom:this.zoom},i):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,f,this.zoom,i),this.patternFeatures.push(f)):this.addFeature(f,_,y,a,{},{},i.subdivisionGranularity),i.featureIndex.insert(e[y].feature,_,y,v,this.index)}}update(e,i,a,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,i,this.stateDependentLayers,{imagePositions:a,dashPositions:o})}addFeatures(e,i,a,o){for(const u of this.patternFeatures)this.addFeature(u,u.geometry,u.index,i,a,o,e.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,gm)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,mm),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&Object.prototype.hasOwnProperty.call(e.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(e.properties,"mapbox_clip_end"))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,i,a,o,u,h,f){const _=this.layers[0].layout,y=_.get("line-join").evaluate(e,{}),v=_.get("line-cap"),b=_.get("line-miter-limit"),S=_.get("line-round-limit");this.lineClips=this.lineFeatureClips(e);for(const P of i)this.addLine(P,e,y,v,b,S,o,f);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,a,{imagePositions:u,dashPositions:h,canonical:o})}addLine(e,i,a,o,u,h,f,_){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,e=Ms(e,f?_.line.getGranularityForZoomLevel(f.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let B=0;B<e.length-1;B++)this.totalDistance+=e[B].dist(e[B+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}const y=jl.types[i.type]==="Polygon";let v=e.length;for(;v>=2&&e[v-1].equals(e[v-2]);)v--;let b=0;for(;b<v-1&&e[b].equals(e[b+1]);)b++;if(v<(y?3:2))return;a==="bevel"&&(u=1.05);const S=this.overscaling<=16?122880/(512*this.overscaling):0,P=this.segments.prepareSegment(10*v,this.layoutVertexArray,this.indexArray);let E,A,R,O,G;this.e1=this.e2=-1,y&&(E=e[v-2],G=e[b].sub(E)._unit()._perp());for(let B=b;B<v;B++){if(R=B===v-1?y?e[b+1]:void 0:e[B+1],R&&e[B].equals(R))continue;G&&(O=G),E&&(A=E),E=e[B],G=R?R.sub(E)._unit()._perp():O,O=O||G;let V=O.add(G);V.x===0&&V.y===0||V._unit();const H=O.x*G.x+O.y*G.y,ee=V.x*G.x+V.y*G.y,se=ee!==0?1/ee:1/0,ge=2*Math.sqrt(2-2*ee),ye=ee<ym&&A&&R,ve=O.x*G.y-O.y*G.x>0;if(ye&&B>b){const xe=E.dist(A);if(xe>2*S){const pe=E.sub(E.sub(A)._mult(S/xe)._round());this.updateDistance(A,pe),this.addCurrentVertex(pe,O,0,0,P),A=pe}}const Ce=A&&R;let Te=Ce?a:y?"butt":o;if(Ce&&Te==="round"&&(se<h?Te="miter":se<=2&&(Te="fakeround")),Te==="miter"&&se>u&&(Te="bevel"),Te==="bevel"&&(se>2&&(Te="flipbevel"),se<u&&(Te="miter")),A&&this.updateDistance(A,E),Te==="miter")V._mult(se),this.addCurrentVertex(E,V,0,0,P);else if(Te==="flipbevel"){if(se>100)V=G.mult(-1);else{const xe=se*O.add(G).mag()/O.sub(G).mag();V._perp()._mult(xe*(ve?-1:1))}this.addCurrentVertex(E,V,0,0,P),this.addCurrentVertex(E,V.mult(-1),0,0,P)}else if(Te==="bevel"||Te==="fakeround"){const xe=-Math.sqrt(se*se-1),pe=ve?xe:0,ke=ve?0:xe;if(A&&this.addCurrentVertex(E,O,pe,ke,P),Te==="fakeround"){const Re=Math.round(180*ge/Math.PI/20);for(let Ve=1;Ve<Re;Ve++){let Fe=Ve/Re;if(Fe!==.5){const Pt=Fe-.5;Fe+=Fe*Pt*(Fe-1)*((1.0904+H*(H*(3.55645-1.43519*H)-3.2452))*Pt*Pt+(.848013+H*(.215638*H-1.06021)))}const Je=G.sub(O)._mult(Fe)._add(O)._unit()._mult(ve?-1:1);this.addHalfVertex(E,Je.x,Je.y,!1,ve,0,P)}}R&&this.addCurrentVertex(E,G,-pe,-ke,P)}else if(Te==="butt")this.addCurrentVertex(E,V,0,0,P);else if(Te==="square"){const xe=A?1:-1;this.addCurrentVertex(E,V,xe,xe,P)}else Te==="round"&&(A&&(this.addCurrentVertex(E,O,0,0,P),this.addCurrentVertex(E,O,1,1,P,!0)),R&&(this.addCurrentVertex(E,G,-1,-1,P,!0),this.addCurrentVertex(E,G,0,0,P)));if(ye&&B<v-1){const xe=E.dist(R);if(xe>2*S){const pe=E.add(R.sub(E)._mult(S/xe)._round());this.updateDistance(E,pe),this.addCurrentVertex(pe,G,0,0,P),E=pe}}}}addCurrentVertex(e,i,a,o,u,h=!1){const f=i.y*o-i.x,_=-i.y-i.x*o;this.addHalfVertex(e,i.x+i.y*a,i.y-i.x*a,h,!1,a,u),this.addHalfVertex(e,f,_,h,!0,-o,u),this.distance>Ld/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,i,a,o,u,h))}addHalfVertex({x:e,y:i},a,o,u,h,f,_){const y=.5*(this.lineClips?this.scaledDistance*(Ld-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((e<<1)+(u?1:0),(i<<1)+(h?1:0),Math.round(63*a)+128,Math.round(63*o)+128,1+(f===0?0:f<0?-1:1)|(63&y)<<2,y>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const v=_.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,v,this.e2),_.primitiveLength++),h?this.e2=v:this.e1=v}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(e,i){this.distance+=e.dist(i),this.updateScaledDistance()}hasLineDasharray(e){for(const i of e){const a=i.paint.get("line-dasharray");if(a&&!a.isConstant())return!0}return!1}addLineDashDependencies(e,i,a,o){for(const u of e){const h=u.paint.get("line-dasharray");if(!h||h.value.kind==="constant")continue;const f=u.layout.get("line-cap")==="round",_={dasharray:h.value.evaluate({zoom:a-1},i,{}),round:f},y={dasharray:h.value.evaluate({zoom:a},i,{}),round:f},v={dasharray:h.value.evaluate({zoom:a+1},i,{}),round:f},b=`${_.dasharray.join(",")},${_.round}`,S=`${y.dasharray.join(",")},${y.round}`,P=`${v.dasharray.join(",")},${v.round}`;o.dashDependencies[b]=_,o.dashDependencies[S]=y,o.dashDependencies[P]=v,i.dashes[u.id]={min:b,mid:S,max:P}}}}let Fd,Bd;De("LineBucket",xh,{omit:["layers","patternFeatures"]});var Od={get paint(){return Bd=Bd||new bi({"line-opacity":new Ue(K.paint_line["line-opacity"]),"line-color":new Ue(K.paint_line["line-color"]),"line-translate":new Be(K.paint_line["line-translate"]),"line-translate-anchor":new Be(K.paint_line["line-translate-anchor"]),"line-width":new Ue(K.paint_line["line-width"]),"line-gap-width":new Ue(K.paint_line["line-gap-width"]),"line-offset":new Ue(K.paint_line["line-offset"]),"line-blur":new Ue(K.paint_line["line-blur"]),"line-dasharray":new fn(K.paint_line["line-dasharray"]),"line-pattern":new fn(K.paint_line["line-pattern"]),"line-gradient":new va(K.paint_line["line-gradient"])})},get layout(){return Fd=Fd||new bi({"line-cap":new Be(K.layout_line["line-cap"]),"line-join":new Ue(K.layout_line["line-join"]),"line-miter-limit":new Be(K.layout_line["line-miter-limit"]),"line-round-limit":new Be(K.layout_line["line-round-limit"]),"line-sort-key":new Ue(K.layout_line["line-sort-key"])})}};class xm extends Ue{possiblyEvaluate(e,i){return i=new pt(Math.floor(i.zoom),{now:i.now,fadeDuration:i.fadeDuration,zoomHistory:i.zoomHistory,transition:i.transition}),super.possiblyEvaluate(e,i)}evaluate(e,i,a,o){return i=Ei({},i,{zoom:Math.floor(i.zoom)}),super.evaluate(e,i,a,o)}}let cu;class vm extends fr{constructor(e,i){super(e,Od,i),this.gradientVersion=0,cu||(cu=new xm(Od.paint.properties["line-width"].specification),cu.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(e){if(e==="line-gradient"){const i=this.gradientExpression();this.stepInterpolant=!!(function(a){return a._styleExpression!==void 0})(i)&&i._styleExpression.expression instanceof Rn,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(e,i){super.recalculate(e,i),this.paint._values["line-floorwidth"]=cu.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)}createBucket(e){return new xh(e)}queryRadius(e){const i=e,a=Vd(So("line-width",this,i),So("line-gap-width",this,i)),o=So("line-offset",this,i);return a/2+Math.abs(o)+ru(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:e,feature:i,featureState:a,geometry:o,transform:u,pixelsToTileUnits:h}){const f=nu(e,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-u.bearingInRadians,h),_=h/2*Vd(this.paint.get("line-width").evaluate(i,a),this.paint.get("line-gap-width").evaluate(i,a)),y=this.paint.get("line-offset").evaluate(i,a);return y&&(o=(function(v,b){const S=[];for(let P=0;P<v.length;P++){const E=Ef(v[P]),A=[];for(let R=0;R<E.length;R++){const O=E[R],G=E[R-1],B=E[R+1],V=R===0?new Ee(0,0):O.sub(G)._unit()._perp(),H=R===E.length-1?new Ee(0,0):B.sub(O)._unit()._perp(),ee=V._add(H)._unit(),se=ee.x*H.x+ee.y*H.y;se!==0&&ee._mult(1/se),A.push(ee._mult(b)._add(O))}S.push(A)}return S})(o,y*h)),(function(v,b,S){for(let P=0;P<b.length;P++){const E=b[P];if(v.length>=3){for(let A=0;A<E.length;A++)if(To(v,E[A]))return!0}if(Pf(v,E,S))return!0}return!1})(f,o,_)}isTileClipped(){return!0}}function Vd(r,e){return e>0?e+2*r:r}const bm=Ot([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),wm=Ot([{name:"a_projected_pos",components:3,type:"Float32"}],4);Ot([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const Tm=Ot([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);Ot([{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"}]);const jd=Ot([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Sm=Ot([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Pm(r,e,i){return r.sections.forEach((a=>{a.text=(function(o,u,h){const f=u.layout.get("text-transform").evaluate(h,{});return f==="uppercase"?o=o.toLocaleUpperCase():f==="lowercase"&&(o=o.toLocaleLowerCase()),Nr.applyArabicShaping&&(o=Nr.applyArabicShaping(o)),o})(a.text,e,i)})),r}Ot([{name:"triangle",components:3,type:"Uint16"}]),Ot([{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"}]),Ot([{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"}]),Ot([{type:"Float32",name:"offsetX"}]),Ot([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),Ot([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);var ei=24;const Gl={"!":"︕","#":"",$:"","%":"","&":"","(":"︵",")":"︶","*":"","+":"",",":"︐","-":"︲",".":"・","/":"",":":"︓",";":"︔","<":"︿","=":"",">":"﹀","?":"︖","@":"","[":"﹇","\\":"","]":"﹈","^":"",_:"︳","`":"","{":"︷","|":"―","}":"︸","~":"","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","":"︲","—":"︱","":"﹃","":"﹄","“":"﹁","”":"﹂","…":"︙","⋯":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","":"︹","":"︺","〖":"︗","〗":"︘","":"︕","":"︵","":"︶","":"︐","":"︲","":"・","":"︓","":"︔","":"︿","":"﹀","":"︖","":"﹇","":"﹈","_":"︳","":"︷","":"―","":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},Mm={10:!0,32:!0,38:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0},Im={40:!0};function Nd(r,e,i,a,o,u){if("fontStack"in e){const h=i[e.fontStack],f=h&&h[r];return f?f.metrics.advance*e.scale+o:0}{const h=a[e.imageName];return h?h.displaySize[0]*e.scale*ei/u+o:0}}function Ud(r,e,i,a){const o=Math.pow(r-e,2);return a?r<e?o/2:2*o:o+Math.abs(i)*i}function Em(r,e,i){let a=0;return r===10&&(a-=1e4),i&&(a+=150),r!==40&&r!==65288||(a+=50),e!==41&&e!==65289||(a+=50),a}function Gd(r,e,i,a,o,u){let h=null,f=Ud(e,i,o,u);for(const _ of a){const y=Ud(e-_.x,i,o,u)+_.badness;y<=f&&(h=_,f=y)}return{index:r,x:e,priorBreak:h,badness:f}}function qd(r){return r?qd(r.priorBreak).concat(r.index):[]}class Eo{constructor(e="",i=[],a=[]){this.text=e,this.sections=i,this.sectionIndex=a,this.imageSectionID=null}static fromFeature(e,i){const a=new Eo;for(let o=0;o<e.sections.length;o++){const u=e.sections[o];u.image?a.addImageSection(u):a.addTextSection(u,i)}return a}length(){return[...this.text].length}getSection(e){return this.sections[this.sectionIndex[e]]}getSectionIndex(e){return this.sectionIndex[e]}verticalizePunctuation(){this.text=(function(e){let i="",a={premature:!0,value:void 0};const o=e[Symbol.iterator]();let u=o.next();const h=e[Symbol.iterator]();h.next();let f=h.next();for(;!u.done;)i+=!f.done&&gl(f.value.codePointAt(0))&&!Gl[f.value]||!a.premature&&gl(a.value.codePointAt(0))&&!Gl[a.value]||!Gl[u.value]?u.value:Gl[u.value],a={value:u.value,premature:!1},u=o.next(),f=h.next();return i})(this.text)}hasZeroWidthSpaces(){return this.text.includes("")}trim(){const e=this.text.match(/^\s*/),i=e?e[0].length:0,a=this.text.match(/\S\s*$/),o=a?a[0].length-1:0;this.text=this.text.substring(i,this.text.length-o),this.sectionIndex=this.sectionIndex.slice(i,this.sectionIndex.length-o)}substring(e,i){const a=[...this.text].slice(e,i).join(""),o=this.sectionIndex.slice(e,i);return new Eo(a,this.sections,o)}toCodeUnitIndex(e){return[...this.text].slice(0,e).join("").length}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((e,i)=>Math.max(e,this.sections[i].scale)),0)}getMaxImageSize(e){let i=0,a=0;for(let o=0;o<this.length();o++){const u=this.getSection(o);if("imageName"in u){const h=e[u.imageName];if(!h)continue;const f=h.displaySize;i=Math.max(i,f[0]),a=Math.max(a,f[1])}}return{maxImageWidth:i,maxImageHeight:a}}addTextSection(e,i){this.text+=e.text,this.sections.push({scale:e.scale||1,verticalAlign:e.verticalAlign||"bottom",fontStack:e.fontStack||i});const a=this.sections.length-1;this.sectionIndex.push(...[...e.text].map((()=>a)))}addImageSection(e){const i=e.image?e.image.name:"";if(i.length===0)return void di("Can't add FormattedSection with an empty image.");const a=this.getNextImageSectionCharCode();a?(this.text+=String.fromCharCode(a),this.sections.push({scale:1,verticalAlign:e.verticalAlign||"bottom",imageName:i}),this.sectionIndex.push(this.sections.length-1)):di("Reached maximum number of images 6401")}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}determineLineBreaks(e,i,a,o,u){const h=[],f=this.determineAverageLineWidth(e,i,a,o,u),_=this.hasZeroWidthSpaces();let y=0,v=0;const b=this.text[Symbol.iterator]();let S=b.next();const P=this.text[Symbol.iterator]();P.next();let E=P.next();const A=this.text[Symbol.iterator]();A.next(),A.next();let R=A.next();for(;!S.done;){const O=this.getSection(v),G=S.value.codePointAt(0);if(Gc(G)||(y+=Nd(G,O,a,o,e,u)),!E.done){const B=ih(G),V=E.value.codePointAt(0);(Mm[G]||B||"imageName"in O||!R.done&&Im[V])&&h.push(Gd(v+1,y,f,h,Em(G,V,B&&_),!1))}v++,S=b.next(),E=P.next(),R=A.next()}return qd(Gd(this.length(),y,f,h,0,!0))}determineAverageLineWidth(e,i,a,o,u){let h=0,f=0;for(const _ of this.text){const y=this.getSection(f);h+=Nd(_.codePointAt(0),y,a,o,e,u),f++}return h/Math.max(1,Math.ceil(h/i))}}const vh=4294967296,Zd=1/vh,$d=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");class uu{constructor(e=new Uint8Array(16)){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(e,i,a=this.length){for(;this.pos<a;){const o=this.readVarint(),u=o>>3,h=this.pos;this.type=7&o,e(u,i,this),this.pos===h&&this.skip(o)}return i}readMessage(e,i){return this.readFields(e,i,this.readVarint()+this.pos)}readFixed32(){const e=this.dataView.getUint32(this.pos,!0);return this.pos+=4,e}readSFixed32(){const e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}readFixed64(){const e=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*vh;return this.pos+=8,e}readSFixed64(){const e=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*vh;return this.pos+=8,e}readFloat(){const e=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,e}readDouble(){const e=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,e}readVarint(e){const i=this.buf;let a,o;return o=i[this.pos++],a=127&o,o<128?a:(o=i[this.pos++],a|=(127&o)<<7,o<128?a:(o=i[this.pos++],a|=(127&o)<<14,o<128?a:(o=i[this.pos++],a|=(127&o)<<21,o<128?a:(o=i[this.pos],a|=(15&o)<<28,(function(u,h,f){const _=f.buf;let y,v;if(v=_[f.pos++],y=(112&v)>>4,v<128||(v=_[f.pos++],y|=(127&v)<<3,v<128)||(v=_[f.pos++],y|=(127&v)<<10,v<128)||(v=_[f.pos++],y|=(127&v)<<17,v<128)||(v=_[f.pos++],y|=(127&v)<<24,v<128)||(v=_[f.pos++],y|=(1&v)<<31,v<128))return Co(u,y,h);throw new Error("Expected varint not more than 10 bytes")})(a,e,this)))))}readVarint64(){return this.readVarint(!0)}readSVarint(){const e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return!!this.readVarint()}readString(){const e=this.readVarint()+this.pos,i=this.pos;return this.pos=e,e-i>=12&&$d?$d.decode(this.buf.subarray(i,e)):(function(a,o,u){let h="",f=o;for(;f<u;){const _=a[f];let y,v,b,S=null,P=_>239?4:_>223?3:_>191?2:1;if(f+P>u)break;P===1?_<128&&(S=_):P===2?(y=a[f+1],(192&y)==128&&(S=(31&_)<<6|63&y,S<=127&&(S=null))):P===3?(y=a[f+1],v=a[f+2],(192&y)==128&&(192&v)==128&&(S=(15&_)<<12|(63&y)<<6|63&v,(S<=2047||S>=55296&&S<=57343)&&(S=null))):P===4&&(y=a[f+1],v=a[f+2],b=a[f+3],(192&y)==128&&(192&v)==128&&(192&b)==128&&(S=(15&_)<<18|(63&y)<<12|(63&v)<<6|63&b,(S<=65535||S>=1114112)&&(S=null))),S===null?(S=65533,P=1):S>65535&&(S-=65536,h+=String.fromCharCode(S>>>10&1023|55296),S=56320|1023&S),h+=String.fromCharCode(S),f+=P}return h})(this.buf,i,e)}readBytes(){const e=this.readVarint()+this.pos,i=this.buf.subarray(this.pos,e);return this.pos=e,i}readPackedVarint(e=[],i){const a=this.readPackedEnd();for(;this.pos<a;)e.push(this.readVarint(i));return e}readPackedSVarint(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readSVarint());return e}readPackedBoolean(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readBoolean());return e}readPackedFloat(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readFloat());return e}readPackedDouble(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readDouble());return e}readPackedFixed32(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readFixed32());return e}readPackedSFixed32(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readSFixed32());return e}readPackedFixed64(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readFixed64());return e}readPackedSFixed64(e=[]){const i=this.readPackedEnd();for(;this.pos<i;)e.push(this.readSFixed64());return e}readPackedEnd(){return this.type===2?this.readVarint()+this.pos:this.pos+1}skip(e){const i=7&e;if(i===0)for(;this.buf[this.pos++]>127;);else if(i===2)this.pos=this.readVarint()+this.pos;else if(i===5)this.pos+=4;else{if(i!==1)throw new Error(`Unimplemented type: ${i}`);this.pos+=8}}writeTag(e,i){this.writeVarint(e<<3|i)}realloc(e){let i=this.length||16;for(;i<this.pos+e;)i*=2;if(i!==this.length){const a=new Uint8Array(i);a.set(this.buf),this.buf=a,this.dataView=new DataView(a.buffer),this.length=i}}finish(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)}writeFixed32(e){this.realloc(4),this.dataView.setInt32(this.pos,e,!0),this.pos+=4}writeSFixed32(e){this.realloc(4),this.dataView.setInt32(this.pos,e,!0),this.pos+=4}writeFixed64(e){this.realloc(8),this.dataView.setInt32(this.pos,-1&e,!0),this.dataView.setInt32(this.pos+4,Math.floor(e*Zd),!0),this.pos+=8}writeSFixed64(e){this.realloc(8),this.dataView.setInt32(this.pos,-1&e,!0),this.dataView.setInt32(this.pos+4,Math.floor(e*Zd),!0),this.pos+=8}writeVarint(e){(e=+e||0)>268435455||e<0?(function(i,a){let o,u;if(i>=0?(o=i%4294967296|0,u=i/4294967296|0):(o=~(-i%4294967296),u=~(-i/4294967296),4294967295^o?o=o+1|0:(o=0,u=u+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");a.realloc(10),(function(h,f,_){_.buf[_.pos++]=127&h|128,h>>>=7,_.buf[_.pos++]=127&h|128,h>>>=7,_.buf[_.pos++]=127&h|128,h>>>=7,_.buf[_.pos++]=127&h|128,_.buf[_.pos]=127&(h>>>=7)})(o,0,a),(function(h,f){const _=(7&h)<<4;f.buf[f.pos++]|=_|((h>>>=3)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h|((h>>>=7)?128:0),h&&(f.buf[f.pos++]=127&h)))))})(u,a)})(e,this):(this.realloc(4),this.buf[this.pos++]=127&e|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=e>>>7&127))))}writeSVarint(e){this.writeVarint(e<0?2*-e-1:2*e)}writeBoolean(e){this.writeVarint(+e)}writeString(e){e=String(e),this.realloc(4*e.length),this.pos++;const i=this.pos;this.pos=(function(o,u,h){for(let f,_,y=0;y<u.length;y++){if(f=u.charCodeAt(y),f>55295&&f<57344){if(!_){f>56319||y+1===u.length?(o[h++]=239,o[h++]=191,o[h++]=189):_=f;continue}if(f<56320){o[h++]=239,o[h++]=191,o[h++]=189,_=f;continue}f=_-55296<<10|f-56320|65536,_=null}else _&&(o[h++]=239,o[h++]=191,o[h++]=189,_=null);f<128?o[h++]=f:(f<2048?o[h++]=f>>6|192:(f<65536?o[h++]=f>>12|224:(o[h++]=f>>18|240,o[h++]=f>>12&63|128),o[h++]=f>>6&63|128),o[h++]=63&f|128)}return h})(this.buf,e,this.pos);const a=this.pos-i;a>=128&&Wd(i,a,this),this.pos=i-1,this.writeVarint(a),this.pos+=a}writeFloat(e){this.realloc(4),this.dataView.setFloat32(this.pos,e,!0),this.pos+=4}writeDouble(e){this.realloc(8),this.dataView.setFloat64(this.pos,e,!0),this.pos+=8}writeBytes(e){const i=e.length;this.writeVarint(i),this.realloc(i);for(let a=0;a<i;a++)this.buf[this.pos++]=e[a]}writeRawMessage(e,i){this.pos++;const a=this.pos;e(i,this);const o=this.pos-a;o>=128&&Wd(a,o,this),this.pos=a-1,this.writeVarint(o),this.pos+=o}writeMessage(e,i,a){this.writeTag(e,2),this.writeRawMessage(i,a)}writePackedVarint(e,i){i.length&&this.writeMessage(e,Cm,i)}writePackedSVarint(e,i){i.length&&this.writeMessage(e,Am,i)}writePackedBoolean(e,i){i.length&&this.writeMessage(e,km,i)}writePackedFloat(e,i){i.length&&this.writeMessage(e,zm,i)}writePackedDouble(e,i){i.length&&this.writeMessage(e,Dm,i)}writePackedFixed32(e,i){i.length&&this.writeMessage(e,Rm,i)}writePackedSFixed32(e,i){i.length&&this.writeMessage(e,Lm,i)}writePackedFixed64(e,i){i.length&&this.writeMessage(e,Fm,i)}writePackedSFixed64(e,i){i.length&&this.writeMessage(e,Bm,i)}writeBytesField(e,i){this.writeTag(e,2),this.writeBytes(i)}writeFixed32Field(e,i){this.writeTag(e,5),this.writeFixed32(i)}writeSFixed32Field(e,i){this.writeTag(e,5),this.writeSFixed32(i)}writeFixed64Field(e,i){this.writeTag(e,1),this.writeFixed64(i)}writeSFixed64Field(e,i){this.writeTag(e,1),this.writeSFixed64(i)}writeVarintField(e,i){this.writeTag(e,0),this.writeVarint(i)}writeSVarintField(e,i){this.writeTag(e,0),this.writeSVarint(i)}writeStringField(e,i){this.writeTag(e,2),this.writeString(i)}writeFloatField(e,i){this.writeTag(e,5),this.writeFloat(i)}writeDoubleField(e,i){this.writeTag(e,1),this.writeDouble(i)}writeBooleanField(e,i){this.writeVarintField(e,+i)}}function Co(r,e,i){return i?4294967296*e+(r>>>0):4294967296*(e>>>0)+(r>>>0)}function Wd(r,e,i){const a=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(a);for(let o=i.pos-1;o>=r;o--)i.buf[o+a]=i.buf[o]}function Cm(r,e){for(let i=0;i<r.length;i++)e.writeVarint(r[i])}function Am(r,e){for(let i=0;i<r.length;i++)e.writeSVarint(r[i])}function zm(r,e){for(let i=0;i<r.length;i++)e.writeFloat(r[i])}function Dm(r,e){for(let i=0;i<r.length;i++)e.writeDouble(r[i])}function km(r,e){for(let i=0;i<r.length;i++)e.writeBoolean(r[i])}function Rm(r,e){for(let i=0;i<r.length;i++)e.writeFixed32(r[i])}function Lm(r,e){for(let i=0;i<r.length;i++)e.writeSFixed32(r[i])}function Fm(r,e){for(let i=0;i<r.length;i++)e.writeFixed64(r[i])}function Bm(r,e){for(let i=0;i<r.length;i++)e.writeSFixed64(r[i])}function Om(r,e,i){r===1&&i.readMessage(Vm,e)}function Vm(r,e,i){if(r===3){const{id:a,bitmap:o,width:u,height:h,left:f,top:_,advance:y}=i.readMessage(jm,{});e.push({id:a,bitmap:new kl({width:u+6,height:h+6},o),metrics:{width:u,height:h,left:f,top:_,advance:y}})}}function jm(r,e,i){r===1?e.id=i.readVarint():r===2?e.bitmap=i.readBytes():r===3?e.width=i.readVarint():r===4?e.height=i.readVarint():r===5?e.left=i.readSVarint():r===6?e.top=i.readSVarint():r===7&&(e.advance=i.readVarint())}function Hd(r){let e=0,i=0;for(const h of r)e+=h.w*h.h,i=Math.max(i,h.w);r.sort(((h,f)=>f.h-h.h));const a=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),i),h:1/0}];let o=0,u=0;for(const h of r)for(let f=a.length-1;f>=0;f--){const _=a[f];if(!(h.w>_.w||h.h>_.h)){if(h.x=_.x,h.y=_.y,u=Math.max(u,h.y+h.h),o=Math.max(o,h.x+h.w),h.w===_.w&&h.h===_.h){const y=a.pop();y&&f<a.length&&(a[f]=y)}else h.h===_.h?(_.x+=h.w,_.w-=h.w):h.w===_.w?(_.y+=h.h,_.h-=h.h):(a.push({x:_.x+h.w,y:_.y,w:_.w-h.w,h:h.h}),_.y+=h.h,_.h-=h.h);break}}return{w:o,h:u,fill:e/(o*u)||0}}class bh{constructor(e,{pixelRatio:i,version:a,stretchX:o,stretchY:u,content:h,textFitWidth:f,textFitHeight:_}){this.paddedRect=e,this.pixelRatio=i,this.stretchX=o,this.stretchY=u,this.content=h,this.version=a,this.textFitWidth=f,this.textFitHeight=_}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class Xd{constructor(e,i){const a={},o={};this.haveRenderCallbacks=[];const u=[];this.addImages(e,a,u),this.addImages(i,o,u);const{w:h,h:f}=Hd(u),_=new Wi({width:h||1,height:f||1});for(const y in e){const v=e[y],b=a[y].paddedRect;Wi.copy(v.data,_,{x:0,y:0},{x:b.x+1,y:b.y+1},v.data)}for(const y in i){const v=i[y],b=o[y].paddedRect,S=b.x+1,P=b.y+1,E=v.data.width,A=v.data.height;Wi.copy(v.data,_,{x:0,y:0},{x:S,y:P},v.data),Wi.copy(v.data,_,{x:0,y:A-1},{x:S,y:P-1},{width:E,height:1}),Wi.copy(v.data,_,{x:0,y:0},{x:S,y:P+A},{width:E,height:1}),Wi.copy(v.data,_,{x:E-1,y:0},{x:S-1,y:P},{width:1,height:A}),Wi.copy(v.data,_,{x:0,y:0},{x:S+E,y:P},{width:1,height:A})}this.image=_,this.iconPositions=a,this.patternPositions=o}addImages(e,i,a){for(const o in e){const u=e[o],h={x:0,y:0,w:u.data.width+2,h:u.data.height+2};a.push(h),i[o]=new bh(h,u),u.hasRenderCallback&&this.haveRenderCallbacks.push(o)}}patchUpdatedImages(e,i){e.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const a in e.updatedImages)this.patchUpdatedImage(this.iconPositions[a],e.getImage(a),i),this.patchUpdatedImage(this.patternPositions[a],e.getImage(a),i)}patchUpdatedImage(e,i,a){if(!e||!i||e.version===i.version)return;e.version=i.version;const[o,u]=e.tl;a.update(i.data,void 0,{x:o,y:u})}}var Sa;function hu(r,e,i,a,o,u,h,f,_,y,v,b,S,P,E){const A=Eo.fromFeature(r,o);let R;b===k.az.vertical&&A.verticalizePunctuation();let O=A.determineLineBreaks(y,u,e,a,P);const{processBidirectionalText:G,processStyledBidirectionalText:B}=Nr;if(G&&A.sections.length===1){R=[],O=O.map((se=>A.toCodeUnitIndex(se)));const ee=G(A.toString(),O);for(const se of ee){const ge=[...se].map((()=>0));R.push(new Eo(se,A.sections,ge))}}else if(B){R=[],O=O.map((ye=>A.toCodeUnitIndex(ye)));let ee=0;const se=[];for(const ye of A.text)se.push(...Array(ye.length).fill(A.sectionIndex[ee])),ee++;const ge=B(A.text,se,O);for(const ye of ge){const ve=[];let Ce="";for(const Te of ye[0])ve.push(ye[1][Ce.length]),Ce+=Te;R.push(new Eo(ye[0],A.sections,ve))}}else R=(function(ee,se){const ge=[];let ye=0;for(const ve of se)ge.push(ee.substring(ye,ve)),ye=ve;return ye<ee.length()&&ge.push(ee.substring(ye,ee.length())),ge})(A,O);const V=[],H={positionedLines:V,text:A.toString(),top:v[1],bottom:v[1],left:v[0],right:v[0],writingMode:b,iconsInText:!1,verticalizable:!1};return(function(ee,se,ge,ye,ve,Ce,Te,xe,pe,ke,Re,Ve){let Fe=0,Je=0,Pt=0,Wt=0;const gi=xe==="right"?1:xe==="left"?0:.5,Mr=ei/Ve;let Ri=0;for(const jt of ve){jt.trim();const li=jt.getMaxScale(),Pi={positionedGlyphs:[],lineOffset:0};ee.positionedLines[Ri]=Pi;const Mi=Pi.positionedGlyphs;let Hi=0;if(!jt.length()){Je+=Ce,++Ri;continue}const xi=Nm(ye,jt,Mr);let Xi=0;for(const ii of jt.text){const Et=jt.getSection(Xi),Ht=ii.codePointAt(0),Rt=Um(pe,Re,Ht),ri={glyph:Ht,imageName:null,x:Fe,y:Je+-17,vertical:Rt,scale:1,fontStack:"",sectionIndex:jt.getSectionIndex(Xi),metrics:null,rect:null};let Wn;if("fontStack"in Et){if(Wn=Gm(Et,Ht,Rt,xi,se,ge),!Wn)continue;ri.fontStack=Et.fontStack}else{if(ee.iconsInText=!0,Et.scale*=Mr,Wn=qm(Et,Rt,li,xi,ye),!Wn)continue;Hi=Math.max(Hi,Wn.imageOffset),ri.imageName=Et.imageName}const{rect:Wr,metrics:Yl,baselineOffset:Aa}=Wn;ri.y+=Aa,ri.scale=Et.scale,ri.metrics=Yl,ri.rect=Wr,Mi.push(ri),Rt?(ee.verticalizable=!0,Fe+=("imageName"in Et?Yl.advance:ei)*Et.scale+ke):Fe+=Yl.advance*Et.scale+ke,Xi++}Mi.length!==0&&(Pt=Math.max(Fe-ke,Pt),Zm(Mi,0,Mi.length-1,gi)),Fe=0,Pi.lineOffset=Math.max(Hi,(li-1)*ei);const Ir=Ce*li+Hi;Je+=Ir,Wt=Math.max(Ir,Wt),++Ri}const{horizontalAlign:oi,verticalAlign:yi}=wh(Te);(function(jt,li,Pi,Mi,Hi,xi,Xi,Ir,ii){const Et=(li-Pi)*Hi;let Ht=0;Ht=xi!==Xi?-Ir*Mi- -17:-Mi*ii*Xi+.5*Xi;for(const Rt of jt)for(const ri of Rt.positionedGlyphs)ri.x+=Et,ri.y+=Ht})(ee.positionedLines,gi,oi,yi,Pt,Wt,Ce,Je,ve.length),ee.top+=-yi*Je,ee.bottom=ee.top+Je,ee.left+=-oi*Pt,ee.right=ee.left+Pt})(H,e,i,a,R,h,f,_,b,y,S,E),!(function(ee){for(const se of ee)if(se.positionedGlyphs.length!==0)return!1;return!0})(V)&&H}function wh(r){let e=.5,i=.5;switch(r){case"right":case"top-right":case"bottom-right":e=1;break;case"left":case"top-left":case"bottom-left":e=0}switch(r){case"bottom":case"bottom-right":case"bottom-left":i=1;break;case"top":case"top-right":case"top-left":i=0}return{horizontalAlign:e,verticalAlign:i}}function Nm(r,e,i){const a=e.getMaxScale()*ei,{maxImageWidth:o,maxImageHeight:u}=e.getMaxImageSize(r),h=Math.max(a,u*i);return{verticalLineContentWidth:Math.max(a,o*i),horizontalLineContentHeight:h}}function Yd(r){switch(r){case"top":return 0;case"center":return .5;default:return 1}}function Um(r,e,i){return!(r===k.az.horizontal||!e&&!Un(i)||e&&(Gc(i)||(a=i,new RegExp("\\p{sc=Arab}","u").test(String.fromCodePoint(a)))));var a}function Gm(r,e,i,a,o,u){const h=u[r.fontStack],f=(function(y,v,b,S){if(y&&y.rect)return y;const P=v[b.fontStack],E=P&&P[S];return E?{rect:null,metrics:E.metrics}:null})(h&&h[e],o,r,e);if(f===null)return null;let _;if(i)_=a.verticalLineContentWidth-r.scale*ei;else{const y=Yd(r.verticalAlign);_=(a.horizontalLineContentHeight-r.scale*ei)*y}return{rect:f.rect,metrics:f.metrics,baselineOffset:_}}function qm(r,e,i,a,o){const u=o[r.imageName];if(!u)return null;const h=u.paddedRect,f=u.displaySize,_={width:f[0],height:f[1],left:1,top:-3,advance:e?f[1]:f[0]};let y;if(e)y=a.verticalLineContentWidth-f[1]*r.scale;else{const v=Yd(r.verticalAlign);y=(a.horizontalLineContentHeight-f[1]*r.scale)*v}return{rect:h,metrics:_,baselineOffset:y,imageOffset:(e?f[0]:f[1])*r.scale-ei*i}}function Zm(r,e,i,a){if(a===0)return;const o=r[i],u=(r[i].x+o.metrics.advance*o.scale)*a;for(let h=e;h<=i;h++)r[h].x-=u}function $m(r,e,i){const{horizontalAlign:a,verticalAlign:o}=wh(i),u=e[0]-r.displaySize[0]*a,h=e[1]-r.displaySize[1]*o;return{image:r,top:h,bottom:h+r.displaySize[1],left:u,right:u+r.displaySize[0]}}function Kd(r){var e,i;let a=r.left,o=r.top,u=r.right-a,h=r.bottom-o;const f=(e=r.image.textFitWidth)!==null&&e!==void 0?e:"stretchOrShrink",_=(i=r.image.textFitHeight)!==null&&i!==void 0?i:"stretchOrShrink",y=(r.image.content[2]-r.image.content[0])/(r.image.content[3]-r.image.content[1]);if(_==="proportional"){if(f==="stretchOnly"&&u/h<y||f==="proportional"){const v=Math.ceil(h*y);a*=v/u,u=v}}else if(f==="proportional"&&_==="stretchOnly"&&y!==0&&u/h>y){const v=Math.ceil(u/y);o*=v/h,h=v}return{x1:a,y1:o,x2:a+u,y2:o+h}}function Jd(r,e,i,a,o,u){const h=r.image;let f;if(h.content){const R=h.content,O=h.pixelRatio||1;f=[R[0]/O,R[1]/O,h.displaySize[0]-R[2]/O,h.displaySize[1]-R[3]/O]}const _=e.left*u,y=e.right*u;let v,b,S,P;i==="width"||i==="both"?(P=o[0]+_-a[3],b=o[0]+y+a[1]):(P=o[0]+(_+y-h.displaySize[0])/2,b=P+h.displaySize[0]);const E=e.top*u,A=e.bottom*u;return i==="height"||i==="both"?(v=o[1]+E-a[0],S=o[1]+A+a[2]):(v=o[1]+(E+A-h.displaySize[1])/2,S=v+h.displaySize[1]),{image:h,top:v,right:b,bottom:S,left:P,collisionPadding:f}}De("ImagePosition",bh),De("ImageAtlas",Xd),k.az=void 0,(Sa=k.az||(k.az={}))[Sa.none=0]="none",Sa[Sa.horizontal=1]="horizontal",Sa[Sa.vertical=2]="vertical",Sa[Sa.horizontalOnly=3]="horizontalOnly";const $n=128,Pa=32640;function Qd(r,e){const{expression:i}=e;if(i.kind==="constant")return{kind:"constant",layoutSize:i.evaluate(new pt(r+1))};if(i.kind==="source")return{kind:"source"};{const{zoomStops:a,interpolationType:o}=i;let u=0;for(;u<a.length&&a[u]<=r;)u++;u=Math.max(0,u-1);let h=u;for(;h<a.length&&a[h]<r+1;)h++;h=Math.min(a.length-1,h);const f=a[u],_=a[h];return i.kind==="composite"?{kind:"composite",minZoom:f,maxZoom:_,interpolationType:o}:{kind:"camera",minZoom:f,maxZoom:_,minSize:i.evaluate(new pt(f)),maxSize:i.evaluate(new pt(_)),interpolationType:o}}}function Th(r,e,i){let a="never";const o=r.get(e);return o?a=o:r.get(i)&&(a="always"),a}const Wm=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function du(r,e,i,a,o,u,h,f,_,y,v,b,S){const P=f?Math.min(Pa,Math.round(f[0])):0,E=f?Math.min(Pa,Math.round(f[1])):0;r.emplaceBack(e,i,Math.round(32*a),Math.round(32*o),u,h,(P<<1)+(_?1:0),E,16*y,16*v,256*b,256*S)}function Sh(r,e,i){r.emplaceBack(e.x,e.y,i),r.emplaceBack(e.x,e.y,i),r.emplaceBack(e.x,e.y,i),r.emplaceBack(e.x,e.y,i)}function Hm(r){for(const e of r.sections)if(xl(e.text))return!0;return!1}class Ph{constructor(e){this.layoutVertexArray=new Q,this.indexArray=new le,this.programConfigurations=e,this.segments=new _e,this.dynamicLayoutVertexArray=new W,this.opacityVertexArray=new te,this.hasVisibleVertices=!1,this.placedSymbolArray=new p}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,i,a,o){this.isEmpty()||(a&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,bm.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,i),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,wm.members,!0),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,Wm,!0),this.opacityVertexBuffer.itemSize=1),(a||o)&&this.programConfigurations.upload(e))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}De("SymbolBuffers",Ph);class Mh{constructor(e,i,a){this.layoutVertexArray=new e,this.layoutAttributes=i,this.indexArray=new a,this.segments=new _e,this.collisionVertexArray=new ue}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,Tm.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())}}De("CollisionBuffers",Mh);class Ao{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((h=>h.id)),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const i=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Qd(this.zoom,i["text-size"]),this.iconSizeData=Qd(this.zoom,i["icon-size"]);const a=this.layers[0].layout,o=a.get("symbol-sort-key"),u=a.get("symbol-z-order");this.canOverlap=Th(a,"text-overlap","text-allow-overlap")!=="never"||Th(a,"icon-overlap","icon-allow-overlap")!=="never"||a.get("text-ignore-placement")||a.get("icon-ignore-placement"),this.sortFeaturesByKey=u!=="viewport-y"&&!o.isConstant(),this.sortFeaturesByY=(u==="viewport-y"||u==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,a.get("symbol-placement")==="point"&&(this.writingModes=a.get("text-writing-mode").map((h=>k.az[h]))),this.stateDependentLayerIds=this.layers.filter((h=>h.isStateDependent())).map((h=>h.id)),this.sourceID=e.sourceID}createArrays(){this.text=new Ph(new Zn(this.layers,this.zoom,(e=>/^text/.test(e)))),this.icon=new Ph(new Zn(this.layers,this.zoom,(e=>/^icon/.test(e)))),this.glyphOffsetArray=new x,this.lineVertexArray=new w,this.symbolInstances=new g,this.textAnchorOffsets=new I}calculateGlyphDependencies(e,i,a,o,u){for(const h of e)if(i[h.codePointAt(0)]=!0,(a||o)&&u){const f=Gl[h];f&&(i[f.codePointAt(0)]=!0)}}populate(e,i,a){const o=this.layers[0],u=o.layout,h=u.get("text-font"),f=u.get("text-field"),_=u.get("icon-image"),y=(f.value.kind!=="constant"||f.value.value instanceof Bi&&!f.value.value.isEmpty()||f.value.value.toString().length>0)&&(h.value.kind!=="constant"||h.value.value.length>0),v=_.value.kind!=="constant"||!!_.value.value||Object.keys(_.parameters).length>0,b=u.get("symbol-sort-key");if(this.features=[],!y&&!v)return;const S=i.iconDependencies,P=i.glyphDependencies,E=i.availableImages,A=new pt(this.zoom);for(const{feature:R,id:O,index:G,sourceLayerIndex:B}of e){const V=o._featureFilter.needGeometry,H=mn(R,V);if(!o._featureFilter.filter(A,H,a))continue;let ee,se;if(V||(H.geometry=$i(R)),y){const ye=o.getValueAndResolveTokens("text-field",H,a,E),ve=Bi.factory(ye),Ce=this.hasRTLText=this.hasRTLText||Hm(ve);(!Ce||Nr.getRTLTextPluginStatus()==="unavailable"||Ce&&Nr.isParsed())&&(ee=Pm(ve,o,H))}if(v){const ye=o.getValueAndResolveTokens("icon-image",H,a,E);se=ye instanceof Oi?ye:Oi.fromString(ye)}if(!ee&&!se)continue;const ge=this.sortFeaturesByKey?b.evaluate(H,{},a):void 0;if(this.features.push({id:O,text:ee,icon:se,index:G,sourceLayerIndex:B,geometry:H.geometry,properties:R.properties,type:jl.types[R.type],sortKey:ge}),se&&(S[se.name]=!0),ee){const ye=h.evaluate(H,{},a).join(","),ve=u.get("text-rotation-alignment")!=="viewport"&&u.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(k.az.vertical)>=0;for(const Ce of ee.sections)if(Ce.image)S[Ce.image.name]=!0;else{const Te=ml(ee.toString()),xe=Ce.fontStack||ye,pe=P[xe]=P[xe]||{};this.calculateGlyphDependencies(Ce.text,pe,ve,this.allowVerticalPlacement,Te)}}}u.get("symbol-placement")==="line"&&(this.features=(function(R){const O={},G={},B=[];let V=0;function H(ye){B.push(R[ye]),V++}function ee(ye,ve,Ce){const Te=G[ye];return delete G[ye],G[ve]=Te,B[Te].geometry[0].pop(),B[Te].geometry[0]=B[Te].geometry[0].concat(Ce[0]),Te}function se(ye,ve,Ce){const Te=O[ve];return delete O[ve],O[ye]=Te,B[Te].geometry[0].shift(),B[Te].geometry[0]=Ce[0].concat(B[Te].geometry[0]),Te}function ge(ye,ve,Ce){const Te=Ce?ve[0][ve[0].length-1]:ve[0][0];return`${ye}:${Te.x}:${Te.y}`}for(let ye=0;ye<R.length;ye++){const ve=R[ye],Ce=ve.geometry,Te=ve.text?ve.text.toString():null;if(!Te){H(ye);continue}const xe=ge(Te,Ce),pe=ge(Te,Ce,!0);if(xe in G&&pe in O&&G[xe]!==O[pe]){const ke=se(xe,pe,Ce),Re=ee(xe,pe,B[ke].geometry);delete O[xe],delete G[pe],G[ge(Te,B[Re].geometry,!0)]=Re,B[ke].geometry=null}else xe in G?ee(xe,pe,Ce):pe in O?se(xe,pe,Ce):(H(ye),O[xe]=V-1,G[pe]=V-1)}return B.filter((ye=>ye.geometry))})(this.features)),this.sortFeaturesByKey&&this.features.sort(((R,O)=>R.sortKey-O.sortKey))}update(e,i,a){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,i,this.layers,{imagePositions:a}),this.icon.programConfigurations.updatePaintArrays(e,i,this.layers,{imagePositions:a}))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,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(e,i){const a=this.lineVertexArray.length;if(e.segment!==void 0){let o=e.dist(i[e.segment+1]),u=e.dist(i[e.segment]);const h={};for(let f=e.segment+1;f<i.length;f++)h[f]={x:i[f].x,y:i[f].y,tileUnitDistanceFromAnchor:o},f<i.length-1&&(o+=i[f+1].dist(i[f]));for(let f=e.segment||0;f>=0;f--)h[f]={x:i[f].x,y:i[f].y,tileUnitDistanceFromAnchor:u},f>0&&(u+=i[f-1].dist(i[f]));for(let f=0;f<i.length;f++){const _=h[f];this.lineVertexArray.emplaceBack(_.x,_.y,_.tileUnitDistanceFromAnchor)}}return{lineStartIndex:a,lineLength:this.lineVertexArray.length-a}}addSymbols(e,i,a,o,u,h,f,_,y,v,b,S){const P=e.indexArray,E=e.layoutVertexArray,A=e.segments.prepareSegment(4*i.length,E,P,this.canOverlap?h.sortKey:void 0),R=this.glyphOffsetArray.length,O=A.vertexLength,G=this.allowVerticalPlacement&&f===k.az.vertical?Math.PI/2:0,B=h.text&&h.text.sections;for(let V=0;V<i.length;V++){const{tl:H,tr:ee,bl:se,br:ge,tex:ye,pixelOffsetTL:ve,pixelOffsetBR:Ce,minFontScaleX:Te,minFontScaleY:xe,glyphOffset:pe,isSDF:ke,sectionIndex:Re}=i[V],Ve=A.vertexLength,Fe=pe[1];du(E,_.x,_.y,H.x,Fe+H.y,ye.x,ye.y,a,ke,ve.x,ve.y,Te,xe),du(E,_.x,_.y,ee.x,Fe+ee.y,ye.x+ye.w,ye.y,a,ke,Ce.x,ve.y,Te,xe),du(E,_.x,_.y,se.x,Fe+se.y,ye.x,ye.y+ye.h,a,ke,ve.x,Ce.y,Te,xe),du(E,_.x,_.y,ge.x,Fe+ge.y,ye.x+ye.w,ye.y+ye.h,a,ke,Ce.x,Ce.y,Te,xe),Sh(e.dynamicLayoutVertexArray,_,G),P.emplaceBack(Ve,Ve+2,Ve+1),P.emplaceBack(Ve+1,Ve+2,Ve+3),A.vertexLength+=4,A.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(pe[0]),V!==i.length-1&&Re===i[V+1].sectionIndex||e.programConfigurations.populatePaintArrays(E.length,h,h.index,{imagePositions:{},canonical:S,formattedSection:B&&B[Re]})}e.placedSymbolArray.emplaceBack(_.x,_.y,R,this.glyphOffsetArray.length-R,O,y,v,_.segment,a?a[0]:0,a?a[1]:0,o[0],o[1],f,0,!1,0,b)}_addCollisionDebugVertex(e,i,a,o,u,h){return i.emplaceBack(0,0),e.emplaceBack(a.x,a.y,o,u,Math.round(h.x),Math.round(h.y))}addCollisionDebugVertices(e,i,a,o,u,h,f){const _=u.segments.prepareSegment(4,u.layoutVertexArray,u.indexArray),y=_.vertexLength,v=u.layoutVertexArray,b=u.collisionVertexArray,S=f.anchorX,P=f.anchorY;this._addCollisionDebugVertex(v,b,h,S,P,new Ee(e,i)),this._addCollisionDebugVertex(v,b,h,S,P,new Ee(a,i)),this._addCollisionDebugVertex(v,b,h,S,P,new Ee(a,o)),this._addCollisionDebugVertex(v,b,h,S,P,new Ee(e,o)),_.vertexLength+=4;const E=u.indexArray;E.emplaceBack(y,y+1),E.emplaceBack(y+1,y+2),E.emplaceBack(y+2,y+3),E.emplaceBack(y+3,y),_.primitiveLength+=4}addDebugCollisionBoxes(e,i,a,o){for(let u=e;u<i;u++){const h=this.collisionBoxArray.get(u);this.addCollisionDebugVertices(h.x1,h.y1,h.x2,h.y2,o?this.textCollisionBox:this.iconCollisionBox,h.anchorPoint,a)}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Mh(de,jd.members,he),this.iconCollisionBox=new Mh(de,jd.members,he);for(let e=0;e<this.symbolInstances.length;e++){const i=this.symbolInstances.get(e);this.addDebugCollisionBoxes(i.textBoxStartIndex,i.textBoxEndIndex,i,!0),this.addDebugCollisionBoxes(i.verticalTextBoxStartIndex,i.verticalTextBoxEndIndex,i,!0),this.addDebugCollisionBoxes(i.iconBoxStartIndex,i.iconBoxEndIndex,i,!1),this.addDebugCollisionBoxes(i.verticalIconBoxStartIndex,i.verticalIconBoxEndIndex,i,!1)}}_deserializeCollisionBoxesForSymbol(e,i,a,o,u,h,f,_,y){const v={};for(let b=i;b<a;b++){const S=e.get(b);v.textBox={x1:S.x1,y1:S.y1,x2:S.x2,y2:S.y2,anchorPointX:S.anchorPointX,anchorPointY:S.anchorPointY},v.textFeatureIndex=S.featureIndex;break}for(let b=o;b<u;b++){const S=e.get(b);v.verticalTextBox={x1:S.x1,y1:S.y1,x2:S.x2,y2:S.y2,anchorPointX:S.anchorPointX,anchorPointY:S.anchorPointY},v.verticalTextFeatureIndex=S.featureIndex;break}for(let b=h;b<f;b++){const S=e.get(b);v.iconBox={x1:S.x1,y1:S.y1,x2:S.x2,y2:S.y2,anchorPointX:S.anchorPointX,anchorPointY:S.anchorPointY},v.iconFeatureIndex=S.featureIndex;break}for(let b=_;b<y;b++){const S=e.get(b);v.verticalIconBox={x1:S.x1,y1:S.y1,x2:S.x2,y2:S.y2,anchorPointX:S.anchorPointX,anchorPointY:S.anchorPointY},v.verticalIconFeatureIndex=S.featureIndex;break}return v}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let i=0;i<this.symbolInstances.length;i++){const a=this.symbolInstances.get(i);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,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(e,i){const a=e.placedSymbolArray.get(i),o=a.vertexStartIndex+4*a.numGlyphs;for(let u=a.vertexStartIndex;u<o;u+=4)e.indexArray.emplaceBack(u,u+2,u+1),e.indexArray.emplaceBack(u+1,u+2,u+3)}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;const i=Math.sin(e),a=Math.cos(e),o=[],u=[],h=[];for(let f=0;f<this.symbolInstances.length;++f){h.push(f);const _=this.symbolInstances.get(f);o.push(0|Math.round(i*_.anchorX+a*_.anchorY)),u.push(_.featureIndex)}return h.sort(((f,_)=>o[f]-o[_]||u[_]-u[f])),h}addToSortKeyRanges(e,i){const a=this.sortKeyRanges[this.sortKeyRanges.length-1];a&&a.sortKey===i?a.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:i,symbolInstanceStart:e,symbolInstanceEnd:e+1})}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const i of this.symbolInstanceIndexes){const a=this.symbolInstances.get(i);this.featureSortOrder.push(a.featureIndex),[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach(((o,u,h)=>{o>=0&&h.indexOf(o)===u&&this.addIndicesForPlacedSymbol(this.text,o)})),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 ep,tp;De("SymbolBucket",Ao,{omit:["layers","collisionBoxArray","features","compareText"]}),Ao.MAX_GLYPHS=65535,Ao.addDynamicAttributes=Sh;var Ih={get paint(){return tp=tp||new bi({"icon-opacity":new Ue(K.paint_symbol["icon-opacity"]),"icon-color":new Ue(K.paint_symbol["icon-color"]),"icon-halo-color":new Ue(K.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ue(K.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ue(K.paint_symbol["icon-halo-blur"]),"icon-translate":new Be(K.paint_symbol["icon-translate"]),"icon-translate-anchor":new Be(K.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ue(K.paint_symbol["text-opacity"]),"text-color":new Ue(K.paint_symbol["text-color"],{runtimeType:Ki,getOverride:r=>r.textColor,hasOverride:r=>!!r.textColor}),"text-halo-color":new Ue(K.paint_symbol["text-halo-color"]),"text-halo-width":new Ue(K.paint_symbol["text-halo-width"]),"text-halo-blur":new Ue(K.paint_symbol["text-halo-blur"]),"text-translate":new Be(K.paint_symbol["text-translate"]),"text-translate-anchor":new Be(K.paint_symbol["text-translate-anchor"])})},get layout(){return ep=ep||new bi({"symbol-placement":new Be(K.layout_symbol["symbol-placement"]),"symbol-spacing":new Be(K.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Be(K.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ue(K.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Be(K.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Be(K.layout_symbol["icon-allow-overlap"]),"icon-overlap":new Be(K.layout_symbol["icon-overlap"]),"icon-ignore-placement":new Be(K.layout_symbol["icon-ignore-placement"]),"icon-optional":new Be(K.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Be(K.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ue(K.layout_symbol["icon-size"]),"icon-text-fit":new Be(K.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Be(K.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ue(K.layout_symbol["icon-image"]),"icon-rotate":new Ue(K.layout_symbol["icon-rotate"]),"icon-padding":new Ue(K.layout_symbol["icon-padding"]),"icon-keep-upright":new Be(K.layout_symbol["icon-keep-upright"]),"icon-offset":new Ue(K.layout_symbol["icon-offset"]),"icon-anchor":new Ue(K.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Be(K.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Be(K.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Be(K.layout_symbol["text-rotation-alignment"]),"text-field":new Ue(K.layout_symbol["text-field"]),"text-font":new Ue(K.layout_symbol["text-font"]),"text-size":new Ue(K.layout_symbol["text-size"]),"text-max-width":new Ue(K.layout_symbol["text-max-width"]),"text-line-height":new Be(K.layout_symbol["text-line-height"]),"text-letter-spacing":new Ue(K.layout_symbol["text-letter-spacing"]),"text-justify":new Ue(K.layout_symbol["text-justify"]),"text-radial-offset":new Ue(K.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Be(K.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Ue(K.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Ue(K.layout_symbol["text-anchor"]),"text-max-angle":new Be(K.layout_symbol["text-max-angle"]),"text-writing-mode":new Be(K.layout_symbol["text-writing-mode"]),"text-rotate":new Ue(K.layout_symbol["text-rotate"]),"text-padding":new Be(K.layout_symbol["text-padding"]),"text-keep-upright":new Be(K.layout_symbol["text-keep-upright"]),"text-transform":new Ue(K.layout_symbol["text-transform"]),"text-offset":new Ue(K.layout_symbol["text-offset"]),"text-allow-overlap":new Be(K.layout_symbol["text-allow-overlap"]),"text-overlap":new Be(K.layout_symbol["text-overlap"]),"text-ignore-placement":new Be(K.layout_symbol["text-ignore-placement"]),"text-optional":new Be(K.layout_symbol["text-optional"])})}};class ip{constructor(e){if(e.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=e.property.overrides?e.property.overrides.runtimeType:Dr,this.defaultValue=e}evaluate(e){if(e.formattedSection){const i=this.defaultValue.property.overrides;if(i&&i.hasOverride(e.formattedSection))return i.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}De("FormatSectionOverride",ip,{omit:["defaultValue"]});class pu extends fr{constructor(e,i){super(e,Ih,i)}recalculate(e,i){if(super.recalculate(e,i),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"){const a=this.layout.get("text-writing-mode");if(a){const o=[];for(const u of a)o.indexOf(u)<0&&o.push(u);this.layout._values["text-writing-mode"]=o}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(e,i,a,o){const u=this.layout.get(e).evaluate(i,{},a,o),h=this._unevaluatedLayout._values[e];return h.isDataDriven()||ro(h.value)||!u?u:(function(f,_){return _.replace(/{([^{}]+)}/g,((y,v)=>f&&v in f?String(f[v]):""))})(i.properties,u)}createBucket(e){return new Ao(e)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const e of Ih.paint.overridableProperties){if(!pu.hasPaintOverride(this.layout,e))continue;const i=this.paint.get(e),a=new ip(i),o=new rl(a,i.property.specification);let u=null;u=i.value.kind==="constant"||i.value.kind==="source"?new no("source",o):new nl("composite",o,i.value.zoomStops),this.paint._values[e]=new pr(i.property,u,i.parameters)}}_handleOverridablePaintPropertyUpdate(e,i,a){return!(!this.layout||i.isDataDriven()||a.isDataDriven())&&pu.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,i){const a=e.get("text-field"),o=Ih.paint.properties[i];let u=!1;const h=f=>{for(const _ of f)if(o.overrides&&o.overrides.hasOverride(_))return void(u=!0)};if(a.value.kind==="constant"&&a.value.value instanceof Bi)h(a.value.value.sections);else if(a.value.kind==="source"||a.value.kind==="composite"){const f=y=>{u||(y instanceof Lr&&Mt(y.value)===aa?h(y.value.sections):y instanceof Gs?h(y.sections):y.eachChild(f))},_=a.value;_._styleExpression&&f(_._styleExpression.expression)}return u}}let rp;var Xm={get paint(){return rp=rp||new bi({"background-color":new Be(K.paint_background["background-color"]),"background-pattern":new Xc(K.paint_background["background-pattern"]),"background-opacity":new Be(K.paint_background["background-opacity"])})}};class Ym extends fr{constructor(e,i){super(e,Xm,i)}}class Km extends fr{constructor(e,i){super(e,{},i),this.onAdd=a=>{this.implementation.onAdd&&this.implementation.onAdd(a,a.painter.context.gl)},this.onRemove=a=>{this.implementation.onRemove&&this.implementation.onRemove(a,a.painter.context.gl)},this.implementation=e}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 Jm{constructor(e){this._methodToThrottle=e,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._methodToThrottle()}),0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}const Qm={once:!0},Eh=63710088e-1;class Ma{constructor(e,i){if(isNaN(e)||isNaN(i))throw new Error(`Invalid LngLat object: (${e}, ${i})`);if(this.lng=+e,this.lat=+i,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new Ma(ui(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){const i=Math.PI/180,a=this.lat*i,o=e.lat*i,u=Math.sin(a)*Math.sin(o)+Math.cos(a)*Math.cos(o)*Math.cos((e.lng-this.lng)*i);return Eh*Math.acos(Math.min(u,1))}static convert(e){if(e instanceof Ma)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new Ma(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e=="object"&&e!==null)return new Ma(Number("lng"in e?e.lng:e.lon),Number(e.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>]")}}const np=2*Math.PI*Eh;function ap(r){return np*Math.cos(r*Math.PI/180)}function sp(r){return(180+r)/360}function op(r){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360}function lp(r,e){return r/ap(e)}function cp(r){return 360*r-180}function fu(r){return 360/Math.PI*Math.atan(Math.exp((180-360*r)*Math.PI/180))-90}function up(r,e){return r*ap(fu(e))}class ql{constructor(e,i,a=0){this.x=+e,this.y=+i,this.z=+a}static fromLngLat(e,i=0){const a=Ma.convert(e);return new ql(sp(a.lng),op(a.lat),lp(i,a.lat))}toLngLat(){return new Ma(cp(this.x),fu(this.y))}toAltitude(){return up(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/np*(e=fu(this.y),1/Math.cos(e*Math.PI/180));var e}}function hp(r,e,i){var a=2*Math.PI*6378137/256/Math.pow(2,i);return[r*a-2*Math.PI*6378137/2,e*a-2*Math.PI*6378137/2]}class Ch{constructor(e,i,a){if(!(function(o,u,h){return!(o<0||o>25||h<0||h>=Math.pow(2,o)||u<0||u>=Math.pow(2,o))})(e,i,a))throw new Error(`x=${i}, y=${a}, z=${e} outside of bounds. 0<=x<${Math.pow(2,e)}, 0<=y<${Math.pow(2,e)} 0<=z<=25 `);this.z=e,this.x=i,this.y=a,this.key=zo(0,e,e,i,a)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,i,a){const o=(h=this.y,f=this.z,_=hp(256*(u=this.x),256*(h=Math.pow(2,f)-h-1),f),y=hp(256*(u+1),256*(h+1),f),_[0]+","+_[1]+","+y[0]+","+y[1]);var u,h,f,_,y;const v=(function(b,S,P){let E,A="";for(let R=b;R>0;R--)E=1<<R-1,A+=(S&E?1:0)+(P&E?2:0);return A})(this.z,this.x,this.y);return e[(this.x+this.y)%e.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,i>1?"@2x":"").replace(/{quadkey}/g,v).replace(/{bbox-epsg-3857}/g,o)}isChildOf(e){const i=this.z-e.z;return i>0&&e.x===this.x>>i&&e.y===this.y>>i}getTilePoint(e){const i=Math.pow(2,this.z);return new Ee((e.x*i-this.x)*st,(e.y*i-this.y)*st)}toString(){return`${this.z}/${this.x}/${this.y}`}}class dp{constructor(e,i){this.wrap=e,this.canonical=i,this.key=zo(e,i.z,i.z,i.x,i.y)}}class rr{constructor(e,i,a,o,u){if(this.terrainRttPosMatrix32f=null,e<a)throw new Error(`overscaledZ should be >= z; overscaledZ = ${e}; z = ${a}`);this.overscaledZ=e,this.wrap=i,this.canonical=new Ch(a,+o,+u),this.key=zo(i,e,a,o,u)}clone(){return new rr(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(e){if(e>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);const i=this.canonical.z-e;return e>this.canonical.z?new rr(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new rr(e,this.wrap,e,this.canonical.x>>i,this.canonical.y>>i)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,i){if(e>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);const a=this.canonical.z-e;return e>this.canonical.z?zo(this.wrap*+i,e,this.canonical.z,this.canonical.x,this.canonical.y):zo(this.wrap*+i,e,e,this.canonical.x>>a,this.canonical.y>>a)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return!1;if(e.overscaledZ===0)return this.overscaledZ>0;const i=this.canonical.z-e.canonical.z;return!(i<0)&&e.canonical.x===this.canonical.x>>i&&e.canonical.y===this.canonical.y>>i}children(e){if(this.overscaledZ>=e)return[new rr(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const i=this.canonical.z+1,a=2*this.canonical.x,o=2*this.canonical.y;return[new rr(i,this.wrap,i,a,o),new rr(i,this.wrap,i,a+1,o),new rr(i,this.wrap,i,a,o+1),new rr(i,this.wrap,i,a+1,o+1)]}isLessThan(e){return this.wrap<e.wrap||!(this.wrap>e.wrap)&&(this.overscaledZ<e.overscaledZ||!(this.overscaledZ>e.overscaledZ)&&(this.canonical.x<e.canonical.x||!(this.canonical.x>e.canonical.x)&&this.canonical.y<e.canonical.y))}wrapped(){return new rr(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(e){return new rr(this.overscaledZ,e,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return Math.pow(2,this.overscaledZ-this.canonical.z)}toUnwrapped(){return new dp(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(e){return this.canonical.getTilePoint(new ql(e.x-this.wrap,e.y))}normalizeCoordinates(e,i,a=8192){if(e>=0&&e<a&&i>=0&&i<a)return{tileID:this,x:e,y:i};const o=Math.floor(e/a),u=Math.floor(i/a),h=e-o*a,f=i-u*a,_=this.canonical.z,y=1<<_,v=this.canonical.y+u;if(v<0||v>=y)return null;let b=this.canonical.x+o,S=this.wrap;return b<0?(S-=Math.ceil(-b/y),b=(b%y+y)%y):b>=y&&(S+=Math.floor(b/y),b%=y),{tileID:new rr(this.overscaledZ,S,_,b,v),x:h,y:f}}}function zo(r,e,i,a,o){(r*=2)<0&&(r=-1*r-1);const u=1<<i;return(u*u*r+u*o+a).toString(36)+i.toString(36)+e.toString(36)}function Ah(r,e){return e?r.properties[e]:r.id}function e_(r,e){const i={id:r.id};if(e.removeAllProperties&&(delete r.removeProperties,delete r.addOrUpdateProperties,delete e.removeProperties),e.removeProperties)for(const a of e.removeProperties){const o=r.addOrUpdateProperties.findIndex((u=>u.key===a));o>-1&&r.addOrUpdateProperties.splice(o,1)}return(r.removeAllProperties||e.removeAllProperties)&&(i.removeAllProperties=!0),(r.removeProperties||e.removeProperties)&&(i.removeProperties=[...r.removeProperties||[],...e.removeProperties||[]]),(r.addOrUpdateProperties||e.addOrUpdateProperties)&&(i.addOrUpdateProperties=[...r.addOrUpdateProperties||[],...e.addOrUpdateProperties||[]]),(r.newGeometry||e.newGeometry)&&(i.newGeometry=e.newGeometry||r.newGeometry),i}function pp(r){var e,i;if(!r)return{};const a={};return a.removeAll=r.removeAll,a.remove=new Set(r.remove||[]),a.add=new Map((e=r.add)===null||e===void 0?void 0:e.map((o=>[o.id,o]))),a.update=new Map((i=r.update)===null||i===void 0?void 0:i.map((o=>[o.id,o]))),a}De("CanonicalTileID",Ch),De("OverscaledTileID",rr,{omit:["terrainRttPosMatrix32f"]});class Is{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(e){const i=new Is;return i.extend(e(new Ee(this.minX,this.minY))),i.extend(e(new Ee(this.maxX,this.minY))),i.extend(e(new Ee(this.minX,this.maxY))),i.extend(e(new Ee(this.maxX,this.maxY))),i}static fromPoints(e){const i=new Is;for(const a of e)i.extend(a);return i}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return!this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return!this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}}class fp{constructor(e){this._stringToNumber={},this._numberToString=[];for(let i=0;i<e.length;i++){const a=e[i];this._stringToNumber[a]=i,this._numberToString[i]=a}}encode(e){return this._stringToNumber[e]}decode(e){if(e>=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}}class mp{constructor(e,i,a,o,u){this.type="Feature",this._vectorTileFeature=e,this._x=a,this._y=o,this._z=i,this.properties=e.properties,this.id=u}projectPoint(e,i,a,o){return[360*(e.x+i)/o-180,360/Math.PI*Math.atan(Math.exp((1-2*(e.y+a)/o)*Math.PI))-90]}projectLine(e,i,a,o){return e.map((u=>this.projectPoint(u,i,a,o)))}get geometry(){if(this._geometry)return this._geometry;const e=this._vectorTileFeature,i=e.extent*Math.pow(2,this._z),a=e.extent*this._x,o=e.extent*this._y,u=e.loadGeometry();switch(e.type){case 1:{const h=[];for(const _ of u)h.push(_[0]);const f=this.projectLine(h,a,o,i);this._geometry=h.length===1?{type:"Point",coordinates:f[0]}:{type:"MultiPoint",coordinates:f};break}case 2:{const h=u.map((f=>this.projectLine(f,a,o,i)));this._geometry=h.length===1?{type:"LineString",coordinates:h[0]}:{type:"MultiLineString",coordinates:h};break}case 3:{const h=Ad(u),f=[];for(const _ of h)f.push(_.map((y=>this.projectLine(y,a,o,i))));this._geometry=f.length===1?{type:"Polygon",coordinates:f[0]}:{type:"MultiPolygon",coordinates:f};break}default:throw new Error(`unknown feature type: ${e.type}`)}return this._geometry}set geometry(e){this._geometry=e}toJSON(){const e={geometry:this.geometry};for(const i in this)i!=="_geometry"&&i!=="_vectorTileFeature"&&i!=="_x"&&i!=="_y"&&i!=="_z"&&(e[i]=this[i]);return e}}class Do{_name;dataBuffer;nullabilityBuffer;_size;constructor(e,i,a){this._name=e,this.dataBuffer=i,typeof a=="number"?this._size=a:(this.nullabilityBuffer=a,this._size=a.size())}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer&&this.nullabilityBuffer.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}}class mu extends Do{}class zh extends mu{getValueFromBuffer(e){return this.dataBuffer[e]}}class Dh extends mu{getValueFromBuffer(e){return this.dataBuffer[e]}}class _p extends Do{delta;constructor(e,i,a,o){super(e,i,o),this.delta=a}}class kh extends _p{constructor(e,i,a,o){super(e,Int32Array.of(i),a,o)}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}}class Rh extends Do{constructor(e,i,a){super(e,Int32Array.of(i),a)}getValueFromBuffer(e){return this.dataBuffer[0]}}class t_{_name;_geometryVector;_idVector;_propertyVectors;_extent;propertyVectorsMap;constructor(e,i,a,o,u=4096){this._name=e,this._geometryVector=i,this._idVector=a,this._propertyVectors=o,this._extent=u}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors}getPropertyVector(e){return this.propertyVectorsMap||(this.propertyVectorsMap=new Map(this._propertyVectors.map((i=>[i.name,i])))),this.propertyVectorsMap.get(e)}*[Symbol.iterator](){const e=this.geometryVector[Symbol.iterator]();let i=0;for(;i<this.numFeatures;){let a;this.idVector&&(a=this.containsMaxSaveIntegerValues(this.idVector)?Number(this.idVector.getValue(i)):this.idVector.getValue(i));const o=e?.next().value,u={};for(const h of this.propertyVectors){if(!h)continue;const f=h.name,_=h.getValue(i);_!==null&&(u[f]=_)}i++,yield{id:a,geometry:o,properties:u}}}get numFeatures(){return this.geometryVector.numGeometries}get extent(){return this._extent}getFeatures(){const e=[],i=this.geometryVector.getGeometries();for(let a=0;a<this.numFeatures;a++){let o;this.idVector&&(o=this.containsMaxSaveIntegerValues(this.idVector)?Number(this.idVector.getValue(a)):this.idVector.getValue(a));const u={coordinates:i[a],type:this.geometryVector.geometryType(a)},h={};for(const f of this.propertyVectors){if(!f)continue;const _=f.name,y=f.getValue(a);y!==null&&(h[_]=y)}e.push({id:o,geometry:u,properties:h})}return e}containsMaxSaveIntegerValues(e){return e instanceof zh||e instanceof Rh&&e instanceof kh||e instanceof Dh}}class i_{value;constructor(e){this.value=e}get(){return this.value}set(e){this.value=e}increment(){return this.value++}add(e){this.value+=e}}var ut,Ia,mi,Zr,Es,nr,Vt,ti,gp,mr;function Si(r,e,i){const a=new Int32Array(i);let o=0,u=e.get();for(let h=0;h<a.length;h++){let f=r[u++],_=127&f;f<128||(f=r[u++],_|=(127&f)<<7,f<128||(f=r[u++],_|=(127&f)<<14,f<128||(f=r[u++],_|=(127&f)<<21,f<128||(f=r[u++],_|=(15&f)<<28)))),a[o++]=_}return e.set(u),a}function Lh(r,e,i){const a=new BigInt64Array(i);for(let o=0;o<a.length;o++)a[o]=r_(r,e);return a}function r_(r,e){let i=0n,a=0,o=e.get();for(;o<r.length;){const u=r[o++];if(i|=BigInt(127&u)<<BigInt(a),!(128&u))break;if(a+=7,a>=64)throw new Error("Varint too long")}return e.set(o),i}function n_(r,e){let i,a;return a=r[e.get()],e.increment(),i=127&a,a<128?i:(a=r[e.get()],e.increment(),i|=(127&a)<<7,a<128?i:(a=r[e.get()],e.increment(),i|=(127&a)<<14,a<128?i:(a=r[e.get()],e.increment(),i|=(127&a)<<21,a<128?i:(a=r[e.get()],i|=(15&a)<<28,(function(o,u,h){let f,_;if(_=u[h.get()],h.increment(),f=(112&_)>>4,_<128||(_=u[h.get()],h.increment(),f|=(127&_)<<3,_<128)||(_=u[h.get()],h.increment(),f|=(127&_)<<10,_<128)||(_=u[h.get()],h.increment(),f|=(127&_)<<17,_<128)||(_=u[h.get()],h.increment(),f|=(127&_)<<24,_<128)||(_=u[h.get()],h.increment(),f|=(1&_)<<31,_<128))return 4294967296*f+(o>>>0);throw new Error("Expected varint not more than 10 bytes")})(i,r,e)))))}function kt(r){return r>>>1^-(1&r)}function ar(r){return r>>1n^-(1n&r)}function ko(r){return r%2==1?(r+1)/-2:r/2}function yp(r,e,i){if(i===void 0){i=0;for(let u=0;u<e;u++)i+=r[u]}const a=new Int32Array(i);let o=0;for(let u=0;u<e;u++){const h=r[u];a.fill(r[u+e],o,o+h),o+=h}return a}function xp(r,e,i){if(i===void 0){i=0;for(let u=0;u<e;u++)i+=Number(r[u])}const a=new BigInt64Array(i);let o=0;for(let u=0;u<e;u++){const h=Number(r[u]);a.fill(r[u+e],o,o+h),o+=h}return a}function vp(r,e,i){const a=new Float64Array(i);let o=0;for(let u=0;u<e;u++){const h=r[u];a.fill(r[u+e],o,o+h),o+=h}return a}function bp(r){const e=r.length/4*4;let i=1;if(e>=4)for(let a=r[0];i<e-4;i+=4)a=r[i]+=a,a=r[i+1]+=a,a=r[i+2]+=a,a=r[i+3]+=a;for(;i!=r.length;)r[i]+=r[i-1],++i}(function(r){r.NONE="NONE",r.DELTA="DELTA",r.COMPONENTWISE_DELTA="COMPONENTWISE_DELTA",r.RLE="RLE",r.MORTON="MORTON",r.PDE="PDE"})(ut||(ut={})),(function(r){r.NONE="NONE",r.FAST_PFOR="FAST_PFOR",r.VARINT="VARINT",r.ALP="ALP"})(Ia||(Ia={})),(function(r){r.PRESENT="PRESENT",r.DATA="DATA",r.OFFSET="OFFSET",r.LENGTH="LENGTH"})(mi||(mi={}));class Fh{_dictionaryType;_offsetType;_lengthType;constructor(e,i,a){this._dictionaryType=e,this._offsetType=i,this._lengthType=a}get dictionaryType(){return this._dictionaryType}get offsetType(){return this._offsetType}get lengthType(){return this._lengthType}}function Di(r,e){const i=(function(a,o){const u=a[o.get()],h=Object.values(mi)[u>>4];let f=null;switch(h){case mi.DATA:f=new Fh(Object.values(Zr)[15&u]);break;case mi.OFFSET:f=new Fh(null,Object.values(Es)[15&u]);break;case mi.LENGTH:f=new Fh(null,null,Object.values(nr)[15&u])}o.increment();const _=a[o.get()],y=Object.values(ut)[_>>5],v=Object.values(ut)[_>>2&7],b=Object.values(Ia)[3&_];o.increment();const S=Si(a,o,2),P=S[0];return{physicalStreamType:h,logicalStreamType:f,logicalLevelTechnique1:y,logicalLevelTechnique2:v,physicalLevelTechnique:b,numValues:P,byteLength:S[1],decompressedCount:P}})(r,e);return i.logicalLevelTechnique1===ut.MORTON?(function(a,o,u){const h=Si(o,u,2);return{physicalStreamType:a.physicalStreamType,logicalStreamType:a.logicalStreamType,logicalLevelTechnique1:a.logicalLevelTechnique1,logicalLevelTechnique2:a.logicalLevelTechnique2,physicalLevelTechnique:a.physicalLevelTechnique,numValues:a.numValues,byteLength:a.byteLength,decompressedCount:a.decompressedCount,numBits:h[0],coordinateShift:h[1]}})(i,r,e):ut.RLE!==i.logicalLevelTechnique1&&ut.RLE!==i.logicalLevelTechnique2||Ia.NONE===i.physicalLevelTechnique?i:(function(a,o,u){const h=Si(o,u,2);return{physicalStreamType:a.physicalStreamType,logicalStreamType:a.logicalStreamType,logicalLevelTechnique1:a.logicalLevelTechnique1,logicalLevelTechnique2:a.logicalLevelTechnique2,physicalLevelTechnique:a.physicalLevelTechnique,numValues:a.numValues,byteLength:a.byteLength,decompressedCount:h[1],runs:h[0],numRleValues:h[1]}})(i,r,e)}(function(r){r.NONE="NONE",r.SINGLE="SINGLE",r.SHARED="SHARED",r.VERTEX="VERTEX",r.MORTON="MORTON",r.FSST="FSST"})(Zr||(Zr={})),(function(r){r.VERTEX="VERTEX",r.INDEX="INDEX",r.STRING="STRING",r.KEY="KEY"})(Es||(Es={})),(function(r){r.VAR_BINARY="VAR_BINARY",r.GEOMETRIES="GEOMETRIES",r.PARTS="PARTS",r.RINGS="RINGS",r.TRIANGLES="TRIANGLES",r.SYMBOL="SYMBOL",r.DICTIONARY="DICTIONARY"})(nr||(nr={})),(function(r){r[r.FLAT=0]="FLAT",r[r.CONST=1]="CONST",r[r.SEQUENCE=2]="SEQUENCE",r[r.DICTIONARY=3]="DICTIONARY",r[r.FSST_DICTIONARY=4]="FSST_DICTIONARY"})(Vt||(Vt={}));class $r{values;_size;constructor(e,i){this.values=e,this._size=i}get(e){const i=Math.floor(e/8);return(this.values[i]>>e%8&1)==1}set(e,i){const a=Math.floor(e/8);this.values[a]=this.values[a]|(i?1:0)<<e%8}getInt(e){const i=Math.floor(e/8);return this.values[i]>>e%8&1}size(){return this._size}getBuffer(){return this.values}}function _u(r,e,i){if(!e)return r;const a=e.size(),o=new r.constructor(a);let u=0;for(let h=0;h<a;h++)o[h]=e.get(h)?r[u++]:i;return o}function ki(r,e,i,a,o,u){return(function(h,f,_,y,v){switch(f.logicalLevelTechnique1){case ut.DELTA:if(f.logicalLevelTechnique2===ut.RLE){const b=f;if(!v)return(function(S,P,E){const A=new Int32Array(E);let R=0,O=0;for(let G=0;G<P;G++){const B=S[G],V=kt(S[G+P]);for(let H=0;H<B;H++)O+=V,A[R++]=O}return A})(h,b.runs,b.numRleValues);h=yp(h,b.runs,b.numRleValues)}(function(b){b[0]=kt(b[0]);const S=b.length/4*4;let P=1;if(S>=4)for(;P<S-4;P+=4){const E=b[P+1],A=b[P+2],R=b[P+3];b[P]=kt(b[P])+b[P-1],b[P+1]=kt(E)+b[P],b[P+2]=kt(A)+b[P+1],b[P+3]=kt(R)+b[P+2]}for(;P!=b.length;++P)b[P]=kt(b[P])+b[P-1]})(h);break;case ut.RLE:h=(function(b,S,P){return P?(function(E,A,R){if(R===void 0){R=0;for(let B=0;B<A;B++)R+=E[B]}const O=new Int32Array(R);let G=0;for(let B=0;B<A;B++){const V=E[B];let H=E[B+A];H=kt(H),O.fill(H,G,G+V),G+=V}return O})(b,S.runs,S.numRleValues):yp(b,S.runs,S.numRleValues)})(h,f,_);break;case ut.MORTON:bp(h);break;case ut.COMPONENTWISE_DELTA:(function(b){if(b.length<2)return;b[0]=kt(b[0]),b[1]=kt(b[1]);const S=b.length/4*4;let P=2;if(S>=4)for(;P<S-4;P+=4){const E=b[P+1],A=b[P+2],R=b[P+3];b[P]=kt(b[P])+b[P-2],b[P+1]=kt(E)+b[P-1],b[P+2]=kt(A)+b[P],b[P+3]=kt(R)+b[P+1]}for(;P!=b.length;P+=2)b[P]=kt(b[P])+b[P-2],b[P+1]=kt(b[P+1])+b[P-1]})(h);break;case ut.NONE:_&&(function(b){for(let S=0;S<b.length;S++)b[S]=kt(b[S])})(h);break;default:throw new Error(`The specified Logical level technique is not supported: ${f.logicalLevelTechnique1}`)}return v?_u(h,v,0):h})(gu(r,e,i),i,a,0,u)}function Ea(r,e,i){return(function(a,o){if(o.logicalLevelTechnique1===ut.DELTA&&o.logicalLevelTechnique2===ut.NONE)return(function(u){const h=new Int32Array(u.length+1);h[0]=0,h[1]=kt(u[0]);let f=h[1];for(let _=2;_!=h.length;++_)f+=kt(u[_-1]),h[_]=h[_-1]+f;return new Uint32Array(h)})(a);if(o.logicalLevelTechnique1===ut.RLE&&o.logicalLevelTechnique2===ut.NONE)return(function(u,h,f){const _=new Int32Array(f+1);_[0]=0;let y=1,v=_[0];for(let b=0;b<h;b++){const S=u[b],P=u[b+h];for(let E=y;E<y+S;E++)_[E]=P+v,v=_[E];y+=S}return new Uint32Array(_)})(a,o.runs,o.numRleValues);if(o.logicalLevelTechnique1===ut.NONE&&o.logicalLevelTechnique2===ut.NONE){(function(h){let f=0;for(let _=0;_<h.length;_++)h[_]+=f,f=h[_]})(a);const u=new Uint32Array(o.numValues+1);return u[0]=0,u.set(a,1),u}if(o.logicalLevelTechnique1===ut.DELTA&&o.logicalLevelTechnique2===ut.RLE){const u=(function(h,f,_){const y=new Int32Array(_+1);y[0]=0;let v=1,b=y[0];for(let S=0;S<f;S++){const P=h[S];let E=h[S+f];E=kt(E);for(let A=v;A<v+P;A++)y[A]=E+b,b=y[A];v+=P}return new Uint32Array(y)})(a,o.runs,o.numRleValues);return bp(u),u}throw new Error("Only delta encoding is supported for transforming length to offset streams yet.")})(gu(r,e,i),i)}function gu(r,e,i){const a=i.physicalLevelTechnique;if(a===Ia.FAST_PFOR)return(function(){throw new Error("FastPFor is not implemented yet.")})();if(a===Ia.VARINT)return Si(r,e,i.numValues);if(a===Ia.NONE){const o=e.get();e.add(i.byteLength);const u=r.subarray(o,e.get());return new Int32Array(u)}throw new Error("Specified physicalLevelTechnique is not supported (yet).")}function Bh(r,e,i,a){const o=gu(r,e,i);if(o.length===1){const u=o[0];return a?kt(u):u}return a?(function(u){return kt(u[1])})(o):(function(u){return u[1]})(o)}function wp(r,e,i){return(function(a){if(a.length==2){const o=kt(a[1]);return[o,o]}return[kt(a[2]),kt(a[3])]})(gu(r,e,i))}function Tp(r,e,i){return(function(a){if(a.length==2){const o=ar(a[1]);return[o,o]}return[ar(a[2]),ar(a[3])]})(Lh(r,e,i.numValues))}function Sp(r,e,i,a,o){return(function(u,h,f,_){switch(h.logicalLevelTechnique1){case ut.DELTA:if(h.logicalLevelTechnique2===ut.RLE){const y=h;if(!_)return(function(v,b,S){const P=new BigInt64Array(S);let E=0,A=0n;for(let R=0;R<b;R++){const O=Number(v[R]),G=ar(v[R+b]);for(let B=0;B<O;B++)A+=G,P[E++]=A}return P})(u,y.runs,y.numRleValues);u=xp(u,y.runs,y.numRleValues)}(function(y){y[0]=ar(y[0]);const v=y.length/4*4;let b=1;if(v>=4)for(;b<v-4;b+=4){const S=y[b+1],P=y[b+2],E=y[b+3];y[b]=ar(y[b])+y[b-1],y[b+1]=ar(S)+y[b],y[b+2]=ar(P)+y[b+1],y[b+3]=ar(E)+y[b+2]}for(;b!=y.length;++b)y[b]=ar(y[b])+y[b-1]})(u);break;case ut.RLE:u=(function(y,v,b){return b?(function(S,P,E){if(E===void 0){E=0;for(let O=0;O<P;O++)E+=Number(S[O])}const A=new BigInt64Array(E);let R=0;for(let O=0;O<P;O++){const G=Number(S[O]);let B=S[O+P];B=ar(B),A.fill(B,R,R+G),R+=G}return A})(y,v.runs,v.numRleValues):xp(y,v.runs,v.numRleValues)})(u,h,f);break;case ut.NONE:f&&(function(y){for(let v=0;v<y.length;v++)y[v]=ar(y[v])})(u);break;default:throw new Error(`The specified Logical level technique is not supported: ${h.logicalLevelTechnique1}`)}return _?_u(u,_,0n):u})(Lh(r,e,i.numValues),i,a,o)}function Pp(r,e,i,a){const o=Lh(r,e,i.numValues);if(o.length===1){const u=o[0];return a?ar(u):u}return a?(function(u){return ar(u[1])})(o):(function(u){return u[1]})(o)}function yu(r,e,i,a){const o=r.logicalLevelTechnique1;if(o===ut.RLE)return r.runs===1?Vt.CONST:Vt.FLAT;if(o!==ut.DELTA||r.logicalLevelTechnique2!==ut.RLE)return r.numValues===1?Vt.CONST:Vt.FLAT;const u=e instanceof $r?e.size():e;if(r.numRleValues!==u)return Vt.FLAT;if(r.runs===1)return Vt.SEQUENCE;if(r.runs!==2)return r.numValues===1?Vt.CONST:Vt.FLAT;const h=a.get();let f;if(r.physicalLevelTechnique===Ia.VARINT)f=Si(i,a,4);else{const _=a.get();f=new Int32Array(i.buffer,i.byteOffset+_,4)}return a.set(h),f[2]===2&&f[3]===2?Vt.SEQUENCE:r.numValues===1?Vt.CONST:Vt.FLAT}class Mp extends mu{getValueFromBuffer(e){return this.dataBuffer[e]}}class Ip extends _p{constructor(e,i,a,o){super(e,BigInt64Array.of(i),a,o)}getValueFromBuffer(e){return this.dataBuffer[0]+BigInt(e)*this.delta}}class Ro{_geometryOffsets;_partOffsets;_ringOffsets;constructor(e,i,a){this._geometryOffsets=e,this._partOffsets=i,this._ringOffsets=a}get geometryOffsets(){return this._geometryOffsets}get partOffsets(){return this._partOffsets}get ringOffsets(){return this._ringOffsets}}function Oh(r,e,i){return{x:Ep(r,e)-i,y:Ep(r>>1,e)-i}}function Ep(r,e){let i=0;for(let a=0;a<e;a++)i|=(r&1<<2*a)>>a;return i}(function(r){r[r.POINT=0]="POINT",r[r.LINESTRING=1]="LINESTRING",r[r.POLYGON=2]="POLYGON",r[r.MULTIPOINT=3]="MULTIPOINT",r[r.MULTILINESTRING=4]="MULTILINESTRING",r[r.MULTIPOLYGON=5]="MULTIPOLYGON"})(ti||(ti={})),(function(r){r[r.POINT=0]="POINT",r[r.LINESTRING=1]="LINESTRING",r[r.POLYGON=2]="POLYGON"})(gp||(gp={})),(function(r){r[r.MORTON=0]="MORTON",r[r.VEC_2=1]="VEC_2",r[r.VEC_3=2]="VEC_3"})(mr||(mr={}));class a_{createPoint(e){return[[e]]}createMultiPoint(e){return e.map((i=>[i]))}createLineString(e){return[e]}createMultiLineString(e){return e}createPolygon(e,i){return[e].concat(i)}createMultiPolygon(e){return e.flat()}}function Cp(r){const e=new Array(r.numGeometries);let i=1,a=1,o=1,u=0;const h=new a_;let f=0,_=0;const y=r.mortonSettings,v=r.topologyVector,b=v.geometryOffsets,S=v.partOffsets,P=v.ringOffsets,E=r.vertexOffsets,A=r.containsPolygonGeometry(),R=r.vertexBuffer;for(let O=0;O<r.numGeometries;O++){const G=r.geometryType(O);if(G===ti.POINT){if(E&&E.length!==0)if(r.vertexBufferType===mr.VEC_2){const B=2*E[_++],V=new Ee(R[B],R[B+1]);e[u++]=h.createPoint(V)}else{const B=Oh(R[E[_++]],y.numBits,y.coordinateShift),V=new Ee(B.x,B.y);e[u++]=h.createPoint(V)}else{const B=new Ee(R[f++],R[f++]);e[u++]=h.createPoint(B)}b&&o++,S&&i++,P&&a++}else if(G===ti.MULTIPOINT){const B=b[o]-b[o-1];o++;const V=new Array(B);if(E&&E.length!==0){for(let H=0;H<B;H++){const ee=2*E[_++];V[H]=new Ee(R[ee],R[ee+1])}e[u++]=h.createMultiPoint(V)}else{for(let H=0;H<B;H++){const ee=R[f++],se=R[f++];V[H]=new Ee(ee,se)}e[u++]=h.createMultiPoint(V)}}else if(G===ti.LINESTRING){let B,V=0;A?(V=P[a]-P[a-1],a++):V=S[i]-S[i-1],i++,E&&E.length!==0?(B=r.vertexBufferType===mr.VEC_2?jh(R,E,_,V,!1):Nh(R,E,_,V,!1,y),_+=V):(B=Vh(R,f,V,!1),f+=2*V),e[u++]=h.createLineString(B),b&&o++}else if(G===ti.POLYGON){const B=S[i]-S[i-1];i++;const V=new Array(B-1);let H=P[a]-P[a-1];if(a++,E&&E.length!==0){const ee=r.vertexBufferType===mr.VEC_2?vu(R,E,_,H):bu(R,E,_,H,0,y);_+=H;for(let se=0;se<V.length;se++)H=P[a]-P[a-1],a++,V[se]=r.vertexBufferType===mr.VEC_2?vu(R,E,_,H):bu(R,E,_,H,0,y),_+=H;e[u++]=h.createPolygon(ee,V)}else{const ee=xu(R,f,H);f+=2*H;for(let se=0;se<V.length;se++)H=P[a]-P[a-1],a++,V[se]=xu(R,f,H),f+=2*H;e[u++]=h.createPolygon(ee,V)}b&&o++}else if(G===ti.MULTILINESTRING){const B=b[o]-b[o-1];o++;const V=new Array(B);if(E&&E.length!==0){for(let H=0;H<B;H++){let ee=0;A?(ee=P[a]-P[a-1],a++):ee=S[i]-S[i-1],i++;const se=r.vertexBufferType===mr.VEC_2?jh(R,E,_,ee,!1):Nh(R,E,_,ee,!1,y);V[H]=se,_+=ee}e[u++]=h.createMultiLineString(V)}else{for(let H=0;H<B;H++){let ee=0;A?(ee=P[a]-P[a-1],a++):ee=S[i]-S[i-1],i++,V[H]=Vh(R,f,ee,!1),f+=2*ee}e[u++]=h.createMultiLineString(V)}}else{if(G!==ti.MULTIPOLYGON)throw new Error("The specified geometry type is currently not supported.");{const B=b[o]-b[o-1];o++;const V=new Array(B);let H=0;if(E&&E.length!==0){for(let ee=0;ee<B;ee++){const se=S[i]-S[i-1];i++;const ge=new Array(se-1);H=P[a]-P[a-1],a++;const ye=r.vertexBufferType===mr.VEC_2?vu(R,E,_,H):bu(R,E,_,H,0,y);_+=H;for(let ve=0;ve<ge.length;ve++)H=P[a]-P[a-1],a++,ge[ve]=r.vertexBufferType===mr.VEC_2?vu(R,E,_,H):bu(R,E,_,H,0,y),_+=H;V[ee]=h.createPolygon(ye,ge)}e[u++]=h.createMultiPolygon(V)}else{for(let ee=0;ee<B;ee++){const se=S[i]-S[i-1];i++;const ge=new Array(se-1);H=P[a]-P[a-1],a++;const ye=xu(R,f,H);f+=2*H;for(let ve=0;ve<ge.length;ve++){const Ce=P[a]-P[a-1];a++,ge[ve]=xu(R,f,Ce),f+=2*Ce}V[ee]=h.createPolygon(ye,ge)}e[u++]=h.createMultiPolygon(V)}}}}return e}function xu(r,e,i){return Vh(r,e,i,!0)}function vu(r,e,i,a){return jh(r,e,i,a,!0)}function bu(r,e,i,a,o,u){return Nh(r,e,i,a,!0,u)}function Vh(r,e,i,a){const o=new Array(a?i+1:i);for(let u=0;u<2*i;u+=2)o[u/2]=new Ee(r[e+u],r[e+u+1]);return a&&(o[o.length-1]=o[0]),o}function jh(r,e,i,a,o){const u=new Array(o?a+1:a);for(let h=0;h<2*a;h+=2){const f=2*e[i+h/2];u[h/2]=new Ee(r[f],r[f+1])}return o&&(u[u.length-1]=u[0]),u}function Nh(r,e,i,a,o,u){const h=new Array(o?a+1:a);for(let f=0;f<a;f++){const _=Oh(r[e[i+f]],u.numBits,u.coordinateShift);h[f]=new Ee(_.x,_.y)}return o&&(h[h.length-1]=h[0]),h}class Ap{_vertexBufferType;_topologyVector;_vertexOffsets;_vertexBuffer;_mortonSettings;constructor(e,i,a,o,u){this._vertexBufferType=e,this._topologyVector=i,this._vertexOffsets=a,this._vertexBuffer=o,this._mortonSettings=u}get vertexBufferType(){return this._vertexBufferType}get topologyVector(){return this._topologyVector}get vertexOffsets(){return this._vertexOffsets}get vertexBuffer(){return this._vertexBuffer}*[Symbol.iterator](){const e=Cp(this);let i=0;for(;i<this.numGeometries;)yield{coordinates:e[i],type:this.geometryType(i)},i++}getSimpleEncodedVertex(e){const i=this.vertexOffsets?2*this.vertexOffsets[e]:2*e;return[this.vertexBuffer[i],this.vertexBuffer[i+1]]}getVertex(e){if(this.vertexOffsets&&this.mortonSettings){const a=Oh(this.vertexBuffer[this.vertexOffsets[e]],this.mortonSettings.numBits,this.mortonSettings.coordinateShift);return[a.x,a.y]}const i=this.vertexOffsets?2*this.vertexOffsets[e]:2*e;return[this.vertexBuffer[i],this.vertexBuffer[i+1]]}getGeometries(){return Cp(this)}get mortonSettings(){return this._mortonSettings}}class zp extends Ap{_numGeometries;_geometryType;constructor(e,i,a,o,u,h,f){super(a,o,u,h,f),this._numGeometries=e,this._geometryType=i}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsPolygonGeometry(){return this._geometryType===ti.POLYGON||this._geometryType===ti.MULTIPOLYGON}containsSingleGeometryType(){return!0}}class Dp extends Ap{_geometryTypes;constructor(e,i,a,o,u,h){super(e,a,o,u,h),this._geometryTypes=i}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsPolygonGeometry(){for(let e=0;e<this.numGeometries;e++)if(this.geometryType(e)===ti.POLYGON||this.geometryType(e)===ti.MULTIPOLYGON)return!0;return!1}containsSingleGeometryType(){return!1}}class kp{_triangleOffsets;_indexBuffer;_vertexBuffer;_topologyVector;constructor(e,i,a,o){this._triangleOffsets=e,this._indexBuffer=i,this._vertexBuffer=a,this._topologyVector=o}get triangleOffsets(){return this._triangleOffsets}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}get topologyVector(){return this._topologyVector}getGeometries(){if(!this._topologyVector)throw new Error("Cannot convert GpuVector to coordinates without topology information");const e=new Array(this.numGeometries),i=this._topologyVector,a=i.partOffsets,o=i.ringOffsets,u=i.geometryOffsets;let h=0,f=1,_=1,y=1;for(let v=0;v<this.numGeometries;v++)switch(this.geometryType(v)){case ti.POLYGON:{const b=a[f]-a[f-1];f++;const S=[];for(let P=0;P<b;P++){const E=o[_]-o[_-1];_++;const A=[];for(let R=0;R<E;R++){const O=this._vertexBuffer[h++],G=this._vertexBuffer[h++];A.push(new Ee(O,G))}A.length>0&&A.push(A[0]),S.push(A)}e[v]=S,u&&y++}break;case ti.MULTIPOLYGON:{const b=u[y]-u[y-1];y++;const S=[];for(let P=0;P<b;P++){const E=a[f]-a[f-1];f++;for(let A=0;A<E;A++){const R=o[_]-o[_-1];_++;const O=[];for(let G=0;G<R;G++){const B=this._vertexBuffer[h++],V=this._vertexBuffer[h++];O.push(new Ee(B,V))}O.length>0&&O.push(O[0]),S.push(O)}}e[v]=S}}return e}[Symbol.iterator](){return null}}function Rp(r,e,i,a,o,u){return new s_(r,e,i,a,o,u)}class s_ extends kp{_numGeometries;_geometryType;constructor(e,i,a,o,u,h){super(a,o,u,h),this._numGeometries=e,this._geometryType=i}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return!0}}function Lp(r,e,i,a,o){return new o_(r,e,i,a,o)}class o_ extends kp{_geometryTypes;constructor(e,i,a,o,u){super(i,a,o,u),this._geometryTypes=e}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return!1}}function l_(r,e,i,a,o){const u=Di(r,i);let h=null,f=null,_=null,y=null;if(yu(u,a,r,i)===Vt.CONST){const G=Bh(r,i,u,!1);let B=null,V=null,H=null,ee=null;for(let se=0;se<e-1;se++){const ge=Di(r,i);switch(ge.physicalStreamType){case mi.LENGTH:switch(ge.logicalStreamType.lengthType){case nr.GEOMETRIES:B=Ea(r,i,ge);break;case nr.PARTS:V=Ea(r,i,ge);break;case nr.RINGS:H=Ea(r,i,ge);break;case nr.TRIANGLES:ee=Ea(r,i,ge)}break;case mi.OFFSET:switch(ge.logicalStreamType.offsetType){case Es.VERTEX:h=ki(r,i,ge,!1);break;case Es.INDEX:y=ki(r,i,ge,!1)}break;case mi.DATA:Zr.VERTEX===ge.logicalStreamType.dictionaryType?f=ki(r,i,ge,!0):(_={numBits:ge.numBits,coordinateShift:ge.coordinateShift},f=ki(r,i,ge,!1))}}return y!==null?B!=null||V!=null?Rp(a,G,ee,y,f,new Ro(B,V,H)):Rp(a,G,ee,y,f):_===null?(function(se,ge,ye,ve,Ce){return new zp(se,ge,mr.VEC_2,ye,ve,Ce)})(a,G,new Ro(B,V,H),h,f):(function(se,ge,ye,ve,Ce,Te){return new zp(se,ge,mr.MORTON,ye,ve,Ce,Te)})(a,G,new Ro(B,V,H),h,f,_)}const v=ki(r,i,u,!1);let b=null,S=null,P=null,E=null;for(let G=0;G<e-1;G++){const B=Di(r,i);switch(B.physicalStreamType){case mi.LENGTH:switch(B.logicalStreamType.lengthType){case nr.GEOMETRIES:b=ki(r,i,B,!1);break;case nr.PARTS:S=ki(r,i,B,!1);break;case nr.RINGS:P=ki(r,i,B,!1);break;case nr.TRIANGLES:E=Ea(r,i,B)}break;case mi.OFFSET:switch(B.logicalStreamType.offsetType){case Es.VERTEX:h=ki(r,i,B,!1);break;case Es.INDEX:y=ki(r,i,B,!1)}break;case mi.DATA:Zr.VERTEX===B.logicalStreamType.dictionaryType?f=ki(r,i,B,!0):(_={numBits:B.numBits,coordinateShift:B.coordinateShift},f=ki(r,i,B,!1))}}let A=null,R=null,O=null;return b!==null?(A=Uh(v,b,2),S!==null&&P!==null?(R=Fp(v,A,S,!1),O=(function(G,B,V,H){const ee=new Uint32Array(V[V.length-1]+1);let se=0;ee[0]=se;let ge=1,ye=1,ve=0;for(let Ce=0;Ce<G.length;Ce++){const Te=G[Ce],xe=B[Ce+1]-B[Ce];if(Te!==0&&Te!==3)for(let pe=0;pe<xe;pe++){const ke=V[ge]-V[ge-1];ge++;for(let Re=0;Re<ke;Re++)se=ee[ye++]=se+H[ve++]}else for(let pe=0;pe<xe;pe++)ee[ye++]=++se,ge++}return ee})(v,A,R,P)):S!==null&&(R=(function(G,B,V){const H=new Uint32Array(B[B.length-1]+1);let ee=0;H[0]=ee;let se=1,ge=0;for(let ye=0;ye<G.length;ye++){const ve=G[ye],Ce=B[ye+1]-B[ye];if(ve===4||ve===1)for(let Te=0;Te<Ce;Te++)ee=H[se++]=ee+V[ge++];else for(let Te=0;Te<Ce;Te++)H[se++]=++ee}return H})(v,A,S))):S!==null&&P!==null?(R=Uh(v,S,1),O=Fp(v,R,P,!0)):S!==null&&(R=Uh(v,S,0)),y!==null&&R===null?Lp(v,E,y,f):y!==null?Lp(v,E,y,f,new Ro(A,R,O)):_===null?(function(G,B,V,H){return new Dp(mr.VEC_2,G,B,V,H)})(v,new Ro(A,R,O),h,f):(function(G,B,V,H,ee){return new Dp(mr.MORTON,G,B,V,H,ee)})(v,new Ro(A,R,O),h,f,_)}function Uh(r,e,i){const a=new Uint32Array(r.length+1);let o=0;a[0]=o;let u=0;for(let h=0;h<r.length;h++)o=a[h+1]=o+(r[h]>i?e[u++]:1);return a}function Fp(r,e,i,a){const o=new Uint32Array(e[e.length-1]+1);let u=0;o[0]=u;let h=1,f=0;for(let _=0;_<r.length;_++){const y=r[_],v=e[_+1]-e[_];if(y===5||y===2||a&&(y===4||y===1))for(let b=0;b<v;b++)u=o[h++]=u+i[f++];else for(let b=0;b<v;b++)o[h++]=++u}return o}class c_ extends Do{dataVector;constructor(e,i,a){super(e,i.getBuffer(),a),this.dataVector=i}getValueFromBuffer(e){return this.dataVector.get(e)}}class u_ extends mu{getValueFromBuffer(e){return this.dataBuffer[e]}}class Bp extends Do{constructor(e,i,a){super(e,BigInt64Array.of(i),a)}getValueFromBuffer(e){return this.dataBuffer[0]}}function Zl(r,e,i,a,o){const u=(function(h,f,_,y){const v=new Uint8Array(f);let b=0;const S=y.get()+_;for(;b<f&&!(y.get()>=S);){const P=h[y.increment()];if(P<=127){const E=P+3,A=h[y.increment()],R=Math.min(b+E,f);v.fill(A,b,R),b=R}else{const E=256-P;for(let A=0;A<E&&b<f;A++)v[b++]=h[y.increment()]}}return y.set(S),v})(r,Math.ceil(e/8),i,a);return o?(function(h,f,_){if(!_)return h;const y=_.size(),v=new $r(h,f),b=new $r(new Uint8Array(Math.ceil(y/8)),y);let S=0;for(let P=0;P<y;P++){const E=!!_.get(P)&&v.get(S++);b.set(P,E)}return b.getBuffer()})(u,e,o):u}const h_=new TextDecoder;function Gh(r,e,i){return i-e>=12?h_.decode(r.subarray(e,i)):(function(a,o,u){let h="",f=o;for(;f<u;){const _=a[f];let y,v,b,S=null,P=_>239?4:_>223?3:_>191?2:1;if(f+P>u)break;P===1?_<128&&(S=_):P===2?(y=a[f+1],(192&y)==128&&(S=(31&_)<<6|63&y,S<=127&&(S=null))):P===3?(y=a[f+1],v=a[f+2],(192&y)==128&&(192&v)==128&&(S=(15&_)<<12|(63&y)<<6|63&v,(S<=2047||S>=55296&&S<=57343)&&(S=null))):P===4&&(y=a[f+1],v=a[f+2],b=a[f+3],(192&y)==128&&(192&v)==128&&(192&b)==128&&(S=(15&_)<<18|(63&y)<<12|(63&v)<<6|63&b,(S<=65535||S>=1114112)&&(S=null))),S===null?(S=65533,P=1):S>65535&&(S-=65536,h+=String.fromCharCode(S>>>10&1023|55296),S=56320|1023&S),h+=String.fromCharCode(S),f+=P}return h})(r,e,i)}class qh extends Do{offsetBuffer;constructor(e,i,a,o){super(e,a,o),this.offsetBuffer=i}}class Op extends qh{textEncoder;constructor(e,i,a,o){super(e,i,a,o??i.length-1),this.textEncoder=new TextEncoder}getValueFromBuffer(e){return Gh(this.dataBuffer,this.offsetBuffer[e],this.offsetBuffer[e+1])}}class Lo extends qh{indexBuffer;textEncoder;constructor(e,i,a,o,u){super(e,a,o,u??i.length),this.indexBuffer=i,this.indexBuffer=i,this.textEncoder=new TextEncoder}getValueFromBuffer(e){const i=this.indexBuffer[e];return Gh(this.dataBuffer,this.offsetBuffer[i],this.offsetBuffer[i+1])}}class Vp extends qh{indexBuffer;symbolOffsetBuffer;symbolTableBuffer;textEncoder;symbolLengthBuffer;lengthBuffer;decodedDictionary;constructor(e,i,a,o,u,h,f){super(e,a,o,f),this.indexBuffer=i,this.symbolOffsetBuffer=u,this.symbolTableBuffer=h,this.textEncoder=new TextEncoder}getValueFromBuffer(e){this.decodedDictionary==null&&(this.symbolLengthBuffer==null&&(this.symbolLengthBuffer=this.offsetToLengthBuffer(this.symbolOffsetBuffer),this.lengthBuffer=this.offsetToLengthBuffer(this.offsetBuffer)),this.decodedDictionary=(function(a,o,u){const h=[],f=new Array(o.length).fill(0);for(let _=1;_<o.length;_++)f[_]=f[_-1]+o[_-1];for(let _=0;_<u.length;_++)if(u[_]===255)h.push(u[++_]);else{const y=o[u[_]],v=f[u[_]];for(let b=0;b<y;b++)h.push(a[v+b])}return new Uint8Array(h)})(this.symbolTableBuffer,this.symbolLengthBuffer,this.dataBuffer));const i=this.indexBuffer[e];return Gh(this.decodedDictionary,this.offsetBuffer[i],this.offsetBuffer[i+1])}offsetToLengthBuffer(e){const i=new Uint32Array(e.length-1);let a=e[0];for(let o=1;o<e.length;o++){const u=e[o];i[o-1]=u-a,a=u}return i}}function d_(r,e,i,a,o,u){return i.type==="scalarType"?(function(h,f,_,y,v,b){let S=null,P=0;if(h===0)return null;if(b.nullable){const A=Di(f,_);P=A.numValues;const R=_.get(),O=Zl(f,P,A.byteLength,_);_.set(R+A.byteLength),S=new $r(O,A.numValues)}const E=S??y;switch(v.physicalType){case 4:case 3:return(function(A,R,O,G,B){const V=Di(A,R),H=yu(V,B,A,R),ee=G.physicalType===3;if(H===Vt.FLAT){const se=ki(A,R,V,ee,0,$l(B)?B:void 0);return new zh(O.name,se,B)}if(H===Vt.SEQUENCE){const se=wp(A,R,V);return new kh(O.name,se[0],se[1],V.numRleValues)}{const se=Bh(A,R,V,ee);return new Rh(O.name,se,B)}})(f,_,b,v,E);case 9:return(function(A,R,O,G,B){let V=null,H=null,ee=null,se=null,ge=null,ye=null,ve=null,Ce=null;for(let Te=0;Te<G;Te++){const xe=Di(R,O);if(xe.byteLength!==0)switch(xe.physicalStreamType){case mi.PRESENT:{const pe=Zl(R,xe.numValues,xe.byteLength,O);ye=new $r(pe,xe.numValues);break}case mi.OFFSET:H=ki(R,O,xe,!1,0,B!=null||ye!=null?B??ye:void 0);break;case mi.LENGTH:{const pe=Ea(R,O,xe);nr.DICTIONARY===xe.logicalStreamType.lengthType?V=pe:nr.SYMBOL===xe.logicalStreamType.lengthType?se=pe:ve=pe;break}case mi.DATA:{const pe=R.subarray(O.get(),O.get()+xe.byteLength);O.add(xe.byteLength);const ke=xe.logicalStreamType.dictionaryType;Zr.FSST===ke?ge=pe:Zr.SINGLE===ke||Zr.SHARED===ke?ee=pe:Zr.NONE===ke&&(Ce=pe);break}}}return(function(Te,xe,pe,ke,Re,Ve,Fe){return xe?new Vp(Te,pe,ke,Re,Ve,xe,Fe):null})(A,ge,H,V,ee,se,B??ye)??(function(Te,xe,pe,ke,Re){return xe?Re?new Lo(Te,pe,ke,xe,Re):new Lo(Te,pe,ke,xe):null})(A,ee,H,V,B??ye)??(function(Te,xe,pe,ke,Re){if(!xe||!pe)return null;if(ke)return Re?new Lo(Te,ke,xe,pe,Re):new Lo(Te,ke,xe,pe);if(Re&&Re.size()!==xe.length-1){const Ve=new Int32Array(Re.size());let Fe=0;for(let Je=0;Je<Re.size();Je++)Ve[Je]=Re.get(Je)?Fe++:0;return new Lo(Te,Ve,xe,pe,Re)}return Re?new Op(Te,xe,pe,Re):new Op(Te,xe,pe)})(A,ve,Ce,H,B??ye)})(b.name,f,_,b.nullable?h-1:h,S);case 0:return(function(A,R,O,G,B){const V=Di(A,R),H=V.numValues,ee=R.get(),se=$l(B)?B:void 0,ge=Zl(A,H,V.byteLength,R,se);R.set(ee+V.byteLength);const ye=new $r(ge,H);return new c_(O.name,ye,B)})(f,_,b,0,E);case 6:case 5:return(function(A,R,O,G,B){const V=Di(A,R),H=yu(V,G,A,R),ee=B.physicalType===5;if(H===Vt.FLAT){const se=Sp(A,R,V,ee,$l(G)?G:void 0);return new Mp(O.name,se,G)}if(H===Vt.SEQUENCE){const se=Tp(A,R,V);return new Ip(O.name,se[0],se[1],V.numRleValues)}{const se=Pp(A,R,V,ee);return new Bp(O.name,se,G)}})(f,_,b,E,v);case 7:return(function(A,R,O,G){const B=Di(A,R),V=$l(G)?G:void 0,H=(function(ee,se,ge,ye){const ve=se.get(),Ce=ve+ge*Float32Array.BYTES_PER_ELEMENT,Te=new Uint8Array(ee.subarray(ve,Ce)).buffer,xe=new Float32Array(Te);return se.set(Ce),ye?_u(xe,ye,0):xe})(A,R,B.numValues,V);return new u_(O.name,H,G)})(f,_,b,E);case 8:return(function(A,R,O,G){const B=Di(A,R),V=$l(G)?G:void 0,H=(function(ee,se,ge,ye){const ve=se.get(),Ce=ve+ge*Float64Array.BYTES_PER_ELEMENT,Te=new Uint8Array(ee.subarray(ve,Ce)).buffer,xe=new Float64Array(Te);return se.set(Ce),ye?_u(xe,ye,0):xe})(A,R,B.numValues,V);return new Dh(O.name,H,G)})(f,_,b,E);default:throw new Error(`The specified data type for the field is currently not supported: ${v}`)}})(a,r,e,o,i.scalarType,i):a===0?null:(function(h,f,_,y){let v=null,b=null,S=null,P=null,E=!1;for(;!E;){const G=Di(h,f);switch(G.physicalStreamType){case mi.LENGTH:nr.DICTIONARY===G.logicalStreamType.lengthType?v=Ea(h,f,G):S=Ea(h,f,G);break;case mi.DATA:Zr.SINGLE===G.logicalStreamType.dictionaryType||Zr.SHARED===G.logicalStreamType.dictionaryType?(b=h.subarray(f.get(),f.get()+G.byteLength),E=!0):P=h.subarray(f.get(),f.get()+G.byteLength),f.add(G.byteLength)}}const A=_.complexType.children,R=[];let O=0;for(const G of A){const B=Si(h,f,1)[0];if(B==0)continue;const V=G.name?`${_.name}${G.name}`:_.name;if(B!==2||G.type!=="scalarField"||G.scalarField.physicalType!==9)throw new Error("Currently only optional string fields are implemented for a struct.");const H=Di(h,f),ee=Zl(h,H.numValues,H.byteLength,f),se=Di(h,f),ge=ki(h,f,se,!1,0,se.decompressedCount!==y?new $r(ee,H.numValues):void 0);R[O++]=P?new Vp(V,ge,v,b,S,P,new $r(ee,H.numValues)):new Lo(V,ge,v,b,new $r(ee,H.numValues))}return R})(r,e,i,o)}function $l(r){return r instanceof $r}function jp(r){switch(r){case 0:case 1:case 2:case 3:{const e={};e.nullable=!!(1&r),e.columnScope=0;const i={};return i.physicalType=r>1?6:4,i.type="physicalType",e.scalarType=i,e.type="scalarType",e}case 4:{const e={nullable:!1,columnScope:0},i={type:"physicalType",physicalType:0};return e.type="complexType",e.complexType=i,e}case 30:{const e={nullable:!1,columnScope:0},i={type:"physicalType",physicalType:1};return e.type="complexType",e.complexType=i,e}default:return(function(e){let i=null;switch(e){case 10:case 11:i=0;break;case 12:case 13:i=1;break;case 14:case 15:i=2;break;case 16:case 17:i=3;break;case 18:case 19:i=4;break;case 20:case 21:i=5;break;case 22:case 23:i=6;break;case 24:case 25:i=7;break;case 26:case 27:i=8;break;case 28:case 29:i=9;break;default:return null}const a={};a.nullable=!!(1&e),a.columnScope=0;const o={type:"physicalType"};return o.physicalType=i,a.type="scalarType",a.scalarType=o,a})(r)}}function Np(r){return r>=10}function Up(r){return r===30}function p_(r){if(r.name==="id")return!1;if(r.type==="scalarType"){const e=r.scalarType;if(e.type==="physicalType")switch(e.physicalType){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:default:return!1;case 9:return!0}else if(e.type==="logicalType")return!1}else if(r.type==="complexType"){const e=r.complexType;if(e.type==="physicalType")switch(e.physicalType){case 0:case 1:return!0;default:return!1}}return console.warn("Unexpected column type in hasStreamCount",r),!1}const f_=new TextDecoder;function Zh(r,e){const i=Si(r,e,1)[0];if(i===0)return"";const a=e.get(),o=r.subarray(a,a+i);return e.add(i),f_.decode(o)}function Gp(r,e){const i=Si(r,e,1)[0]>>>0;if(i<10||i>30)throw new Error(`Unsupported field type code ${i}. Supported: 10-29(scalars), 30(STRUCT)`);const a=jp(i);if(Np(i)&&(a.name=Zh(r,e)),Up(i)){const o=Si(r,e,1)[0]>>>0;a.complexType.children=new Array(o);for(let u=0;u<o;u++)a.complexType.children[u]=Gp(r,e)}return(function(o){return{name:o.name,nullable:o.nullable,scalarField:o.scalarType,complexField:o.complexType,type:o.type==="scalarType"?"scalarField":"complexField"}})(a)}function m_(r,e){const i=Si(r,e,1)[0]>>>0,a=jp(i);if(!a)throw new Error(`Unsupported column type code ${i}. Supported: 0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT)`);if(Np(i)?a.name=Zh(r,e):i>=0&&i<=3?a.name="id":i===4&&(a.name="geometry"),Up(i)){const o=Si(r,e,1)[0]>>>0,u=a.complexType;u.children=new Array(o);for(let h=0;h<o;h++)u.children[h]=Gp(r,e)}return a}function __(r,e){const i={featureTables:[]},a={};a.name=Zh(r,e);const o=Si(r,e,1)[0]>>>0,u=Si(r,e,1)[0]>>>0;a.columns=new Array(u);for(let h=0;h<u;h++)a.columns[h]=m_(r,e);return i.featureTables.push(a),[i,o]}function g_(r,e,i,a,o,u,h=!1){const f=e.scalarType.physicalType,_=yu(o,u,r,i);if(f===4)switch(_){case Vt.FLAT:{const y=ki(r,i,o,!1);return new zh(a,y,u)}case Vt.SEQUENCE:{const y=wp(r,i,o);return new kh(a,y[0],y[1],o.numRleValues)}case Vt.CONST:{const y=Bh(r,i,o,!1);return new Rh(a,y,u)}}else switch(_){case Vt.FLAT:{if(h){const v=(function(b,S,P){const E=(function(A,R,O){const G=new Float64Array(O);for(let B=0;B<O;B++)G[B]=n_(A,R);return G})(b,S,P.numValues);return(function(A,R){switch(R.logicalLevelTechnique1){case ut.DELTA:return R.logicalLevelTechnique2===ut.RLE&&(A=vp(A,R.runs,R.numRleValues)),(function(O){O[0]=ko(O[0]);const G=O.length/4*4;let B=1;if(G>=4)for(;B<G-4;B+=4){const V=O[B+1],H=O[B+2],ee=O[B+3];O[B]=ko(O[B])+O[B-1],O[B+1]=ko(V)+O[B],O[B+2]=ko(H)+O[B+1],O[B+3]=ko(ee)+O[B+2]}for(;B!=O.length;++B)O[B]=ko(O[B])+O[B-1]})(A),A;case ut.RLE:return(function(O,G){return vp(O,G.runs,G.numRleValues)})(A,R);case ut.NONE:return A;default:throw new Error(`The specified Logical level technique is not supported: ${R.logicalLevelTechnique1}`)}})(E,P)})(r,i,o);return new Dh(a,v,u)}const y=Sp(r,i,o,!1);return new Mp(a,y,u)}case Vt.SEQUENCE:{const y=Tp(r,i,o);return new Ip(a,y[0],y[1],o.numRleValues)}case Vt.CONST:{const y=Pp(r,i,o,!1);return new Bp(a,y,u)}}throw new Error("Vector type not supported for id column.")}class y_{constructor(e,i){var a;switch(this._featureData=e,this.properties=this._featureData.properties||{},(a=this._featureData.geometry)===null||a===void 0?void 0:a.type){case ti.POINT:case ti.MULTIPOINT:this.type=1;break;case ti.LINESTRING:case ti.MULTILINESTRING:this.type=2;break;case ti.POLYGON:case ti.MULTIPOLYGON:this.type=3;break;default:this.type=0}this.extent=i,this.id=Number(this._featureData.id)}loadGeometry(){const e=[];for(const i of this._featureData.geometry.coordinates){const a=[];for(const o of i)a.push(new Ee(o.x,o.y));e.push(a)}return e}}class x_{constructor(e){this.features=[],this.featureTable=e,this.name=e.name,this.extent=e.extent,this.version=2,this.features=e.getFeatures(),this.length=this.features.length}feature(e){return new y_(this.features[e],this.extent)}}class qp{constructor(e){this.layers={};const i=(function(a,o,u=!0){const h=new i_(0),f=[];for(;h.get()<a.length;){const _=Si(a,h,1)[0]>>>0,y=h.get()+_;if(y>a.length)throw new Error(`Block overruns tile: ${y} > ${a.length}`);if(Si(a,h,1)[0]>>>0!=1){h.set(y);continue}const v=__(a,h),b=v[1],S=v[0].featureTables[0];let P=null,E=null;const A=[];let R=0;for(const G of S.columns){const B=G.name;if(B==="id"){let V=null;if(G.nullable){const ee=Di(a,h),se=h.get(),ge=Zl(a,ee.numValues,ee.byteLength,h);h.set(se+ee.byteLength),V=new $r(ge,ee.numValues)}const H=Di(a,h);R=H.decompressedCount,P=g_(a,G,h,B,H,V??R,u)}else if(B==="geometry"){const V=Si(a,h,1)[0];if(R===0){const H=h.get();R=Di(a,h).decompressedCount,h.set(H)}E=l_(a,V,h,R)}else{const V=p_(G)?Si(a,h,1)[0]:1;if(V===0)continue;const H=d_(a,h,G,V,R);if(H)if(Array.isArray(H))for(const ee of H)A.push(ee);else A.push(H)}}const O=new t_(S.name,E,P,A,b);f.push(O),h.set(y)}return f})(new Uint8Array(e));this.layers=i.reduce(((a,o)=>Object.assign(Object.assign({},a),{[o.name]:new x_(o)})),{})}}class v_{constructor(e,i){this.feature=e,this.type=e.type,this.properties=e.tags?e.tags:{},this.extent=i,"id"in e&&(typeof e.id=="string"?this.id=parseInt(e.id,10):typeof e.id!="number"||isNaN(e.id)||(this.id=e.id))}loadGeometry(){const e=[],i=this.feature.type===1?[this.feature.geometry]:this.feature.geometry;for(const a of i){const o=[];for(const u of a)o.push(new Ee(u[0],u[1]));e.push(o)}return e}}const Wl="_geojsonTileLayer";function b_(r,e){e.writeVarintField(15,r.version||1),e.writeStringField(1,r.name||""),e.writeVarintField(5,r.extent||4096);const i={keys:[],values:[],keycache:{},valuecache:{}};for(let u=0;u<r.length;u++)i.feature=r.feature(u),e.writeMessage(2,w_,i);const a=i.keys;for(const u of a)e.writeStringField(3,u);const o=i.values;for(const u of o)e.writeMessage(4,P_,u)}function w_(r,e){if(!r.feature)return;const i=r.feature;i.id!==void 0&&e.writeVarintField(1,i.id),e.writeMessage(2,T_,r),e.writeVarintField(3,i.type),e.writeMessage(4,S_,i)}function T_(r,e){for(const i in r.feature?.properties){let a=r.feature.properties[i],o=r.keycache[i];if(a==null)continue;o===void 0&&(r.keys.push(i),o=r.keys.length-1,r.keycache[i]=o),e.writeVarint(o),typeof a!="string"&&typeof a!="boolean"&&typeof a!="number"&&(a=JSON.stringify(a));const u=typeof a+":"+a;let h=r.valuecache[u];h===void 0&&(r.values.push(a),h=r.values.length-1,r.valuecache[u]=h),e.writeVarint(h)}}function $h(r,e){return(e<<3)+(7&r)}function Zp(r){return r<<1^r>>31}function S_(r,e){const i=r.loadGeometry(),a=r.type;let o=0,u=0;for(const h of i){let f=1;a===1&&(f=h.length),e.writeVarint($h(1,f));const _=a===3?h.length-1:h.length;for(let y=0;y<_;y++){y===1&&a!==1&&e.writeVarint($h(2,_-1));const v=h[y].x-o,b=h[y].y-u;e.writeVarint(Zp(v)),e.writeVarint(Zp(b)),o+=v,u+=b}r.type===3&&e.writeVarint($h(7,1))}}function P_(r,e){const i=typeof r;i==="string"?e.writeStringField(1,r):i==="boolean"?e.writeBooleanField(7,r):i==="number"&&(r%1!=0?e.writeDoubleField(3,r):r<0?e.writeSVarintField(6,r):e.writeVarintField(5,r))}class $p{constructor(e,i){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Vr(st,16,0),this.grid3D=new Vr(st,16,0),this.featureIndexArray=new z,this.promoteId=i}insert(e,i,a,o,u,h){const f=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(a,o,u);const _=h?this.grid3D:this.grid;for(let y=0;y<i.length;y++){const v=i[y],b=[1/0,1/0,-1/0,-1/0];for(let S=0;S<v.length;S++){const P=v[S];b[0]=Math.min(b[0],P.x),b[1]=Math.min(b[1],P.y),b[2]=Math.max(b[2],P.x),b[3]=Math.max(b[3],P.y)}b[0]<st&&b[1]<st&&b[2]>=0&&b[3]>=0&&_.insert(f,b[0],b[1],b[2],b[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=this.encoding!=="mlt"?new zd(new uu(this.rawTileData)).layers:new qp(this.rawTileData).layers,this.sourceLayerCoder=new fp(this.vtLayers?Object.keys(this.vtLayers).sort():[Wl])),this.vtLayers}query(e,i,a,o){this.loadVTLayers();const u=e.params,h=st/e.tileSize/e.scale,f=as(u.filter,u.globalState),_=e.queryGeometry,y=e.queryPadding*h,v=Is.fromPoints(_),b=this.grid.query(v.minX-y,v.minY-y,v.maxX+y,v.maxY+y),S=Is.fromPoints(e.cameraQueryGeometry).expandBy(y),P=this.grid3D.query(S.minX,S.minY,S.maxX,S.maxY,((R,O,G,B)=>(function(V,H,ee,se,ge){for(const ve of V)if(H<=ve.x&&ee<=ve.y&&se>=ve.x&&ge>=ve.y)return!0;const ye=[new Ee(H,ee),new Ee(H,ge),new Ee(se,ge),new Ee(se,ee)];if(V.length>2){for(const ve of ye)if(To(V,ve))return!0}for(let ve=0;ve<V.length-1;ve++)if(If(V[ve],V[ve+1],ye))return!0;return!1})(e.cameraQueryGeometry,R-y,O-y,G+y,B+y)));for(const R of P)b.push(R);b.sort(M_);const E={};let A;for(let R=0;R<b.length;R++){const O=b[R];if(O===A)continue;A=O;const G=this.featureIndexArray.get(O);let B=null;this.loadMatchingFeature(E,G.bucketIndex,G.sourceLayerIndex,G.featureIndex,f,u.layers,u.availableImages,i,a,o,((V,H,ee)=>(B||(B=$i(V)),H.queryIntersectsFeature({queryGeometry:_,feature:V,featureState:ee,geometry:B,zoom:this.z,transform:e.transform,pixelsToTileUnits:h,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation}))))}return E}loadMatchingFeature(e,i,a,o,u,h,f,_,y,v,b){const S=this.bucketLayerIDs[i];if(h&&!S.some((R=>h.has(R))))return;const P=this.sourceLayerCoder.decode(a),E=this.vtLayers[P].feature(o);if(u.needGeometry){const R=mn(E,!0);if(!u.filter(new pt(this.tileID.overscaledZ),R,this.tileID.canonical))return}else if(!u.filter(new pt(this.tileID.overscaledZ),E))return;const A=this.getId(E,P);for(let R=0;R<S.length;R++){const O=S[R];if(h&&!h.has(O))continue;const G=_[O];if(!G)continue;let B={};A&&v&&(B=v.getState(G.sourceLayer||Wl,A));const V=Ei({},y[O]);V.paint=Wp(V.paint,G.paint,E,B,f),V.layout=Wp(V.layout,G.layout,E,B,f);const H=!b||b(E,G,B);if(!H)continue;const ee=new mp(E,this.z,this.x,this.y,A);ee.layer=V;let se=e[O];se===void 0&&(se=e[O]=[]),se.push({featureIndex:o,feature:ee,intersectionZ:H})}}lookupSymbolFeatures(e,i,a,o,u,h,f,_){const y={};this.loadVTLayers();const v=as(u.filterSpec,u.globalState);for(const b of e)this.loadMatchingFeature(y,a,o,b,v,h,f,_,i);return y}hasLayer(e){for(const i of this.bucketLayerIDs)for(const a of i)if(e===a)return!0;return!1}getId(e,i){var a;let o=e.id;return this.promoteId&&(o=e.properties[typeof this.promoteId=="string"?this.promoteId:this.promoteId[i]],typeof o=="boolean"&&(o=Number(o)),o===void 0&&(!((a=e.properties)===null||a===void 0)&&a.cluster)&&this.promoteId&&(o=Number(e.properties.cluster_id))),o}}function Wp(r,e,i,a,o){return wn(r,((u,h)=>{const f=e instanceof gs?e.get(h):null;return f&&f.evaluate?f.evaluate(i,a,o):f}))}function M_(r,e){return e-r}function Hp(r,e,i,a,o){const u=[];for(let h=0;h<r.length;h++){const f=r[h];let _;for(let y=0;y<f.length-1;y++){let v=f[y],b=f[y+1];v.x<e&&b.x<e||(v.x<e?v=new Ee(e,v.y+(e-v.x)/(b.x-v.x)*(b.y-v.y))._round():b.x<e&&(b=new Ee(e,v.y+(e-v.x)/(b.x-v.x)*(b.y-v.y))._round()),v.y<i&&b.y<i||(v.y<i?v=new Ee(v.x+(i-v.y)/(b.y-v.y)*(b.x-v.x),i)._round():b.y<i&&(b=new Ee(v.x+(i-v.y)/(b.y-v.y)*(b.x-v.x),i)._round()),v.x>=a&&b.x>=a||(v.x>=a?v=new Ee(a,v.y+(a-v.x)/(b.x-v.x)*(b.y-v.y))._round():b.x>=a&&(b=new Ee(a,v.y+(a-v.x)/(b.x-v.x)*(b.y-v.y))._round()),v.y>=o&&b.y>=o||(v.y>=o?v=new Ee(v.x+(o-v.y)/(b.y-v.y)*(b.x-v.x),o)._round():b.y>=o&&(b=new Ee(v.x+(o-v.y)/(b.y-v.y)*(b.x-v.x),o)._round()),_&&v.equals(_[_.length-1])||(_=[v],u.push(_)),_.push(b)))))}}return u}function Xp(r,e,i,a,o){switch(e){case 1:return(function(u,h,f,_){const y=[];for(const v of u)for(const b of v){const S=_===0?b.x:b.y;S>=h&&S<=f&&y.push([b])}return y})(r,i,a,o);case 2:return Yp(r,i,a,o,!1);case 3:return Yp(r,i,a,o,!0)}return[]}function I_(r,e,i,a,o){const u=a===0?E_:C_;let h=[];const f=[];for(let v=0;v<r.length-1;v++){const b=r[v],S=r[v+1],P=a===0?b.x:b.y,E=a===0?S.x:S.y;let A=!1;P<e?E>e&&h.push(u(b,S,e)):P>i?E<i&&h.push(u(b,S,i)):h.push(b),E<e&&P>=e&&(h.push(u(b,S,e)),A=!0),E>i&&P<=i&&(h.push(u(b,S,i)),A=!0),!o&&A&&(f.push(h),h=[])}const _=r.length-1,y=a===0?r[_].x:r[_].y;return y>=e&&y<=i&&h.push(r[_]),o&&h.length>0&&!h[0].equals(h[h.length-1])&&h.push(new Ee(h[0].x,h[0].y)),h.length>0&&f.push(h),f}function Yp(r,e,i,a,o){const u=[];for(const h of r){const f=I_(h,e,i,a,o);f.length>0&&u.push(...f)}return u}function E_(r,e,i){return new Ee(i,r.y+(i-r.x)/(e.x-r.x)*(e.y-r.y))}function C_(r,e,i){return new Ee(r.x+(i-r.y)/(e.y-r.y)*(e.x-r.x),i)}De("FeatureIndex",$p,{omit:["rawTileData","sourceLayerCoder"]});class Ca extends Ee{constructor(e,i,a,o){super(e,i),this.angle=a,o!==void 0&&(this.segment=o)}clone(){return new Ca(this.x,this.y,this.angle,this.segment)}}function Kp(r,e,i,a,o){if(e.segment===void 0||i===0)return!0;let u=e,h=e.segment+1,f=0;for(;f>-i/2;){if(h--,h<0)return!1;f-=r[h].dist(u),u=r[h]}f+=r[h].dist(r[h+1]),h++;const _=[];let y=0;for(;f<i/2;){const v=r[h],b=r[h+1];if(!b)return!1;let S=r[h-1].angleTo(v)-v.angleTo(b);for(S=Math.abs((S+3*Math.PI)%(2*Math.PI)-Math.PI),_.push({distance:f,angleDelta:S}),y+=S;f-_[0].distance>a;)y-=_.shift().angleDelta;if(y>o)return!1;h++,f+=v.dist(b)}return!0}function Jp(r){let e=0;for(let i=0;i<r.length-1;i++)e+=r[i].dist(r[i+1]);return e}function Qp(r,e,i){return r?.6*e*i:0}function ef(r,e){return Math.max(r?r.right-r.left:0,e?e.right-e.left:0)}function A_(r,e,i,a,o,u){const h=Qp(i,o,u),f=ef(i,a)*u;let _=0;const y=Jp(r)/2;for(let v=0;v<r.length-1;v++){const b=r[v],S=r[v+1],P=b.dist(S);if(_+P>y){const E=(y-_)/P,A=ai.number(b.x,S.x,E),R=ai.number(b.y,S.y,E),O=new Ca(A,R,S.angleTo(b),v);return O._round(),!h||Kp(r,O,f,h,e)?O:void 0}_+=P}}function z_(r,e,i,a,o,u,h,f,_){const y=Qp(a,u,h),v=ef(a,o),b=v*h,S=r[0].x===0||r[0].x===_||r[0].y===0||r[0].y===_;return e-b<e/4&&(e=b+e/4),tf(r,S?e/2*f%e:(v/2+2*u)*h*f%e,e,y,i,b,S,!1,_)}function tf(r,e,i,a,o,u,h,f,_){const y=u/2,v=Jp(r);let b=0,S=e-i,P=[];for(let E=0;E<r.length-1;E++){const A=r[E],R=r[E+1],O=A.dist(R),G=R.angleTo(A);for(;S+i<b+O;){S+=i;const B=(S-b)/O,V=ai.number(A.x,R.x,B),H=ai.number(A.y,R.y,B);if(V>=0&&V<_&&H>=0&&H<_&&S-y>=0&&S+y<=v){const ee=new Ca(V,H,G,E);ee._round(),a&&!Kp(r,ee,u,a,o)||P.push(ee)}}b+=O}return f||P.length||h||(P=tf(r,b/2,i,a,o,u,h,!0,_)),P}function rf(r,e,i,a){const o=[],u=r.image,h=u.pixelRatio,f=u.paddedRect.w-2,_=u.paddedRect.h-2;let y={x1:r.left,y1:r.top,x2:r.right,y2:r.bottom};const v=u.stretchX||[[0,f]],b=u.stretchY||[[0,_]],S=(pe,ke)=>pe+ke[1]-ke[0],P=v.reduce(S,0),E=b.reduce(S,0),A=f-P,R=_-E;let O=0,G=P,B=0,V=E,H=0,ee=A,se=0,ge=R;if(u.content&&a){const pe=u.content,ke=pe[2]-pe[0],Re=pe[3]-pe[1];(u.textFitWidth||u.textFitHeight)&&(y=Kd(r)),O=wu(v,0,pe[0]),B=wu(b,0,pe[1]),G=wu(v,pe[0],pe[2]),V=wu(b,pe[1],pe[3]),H=pe[0]-O,se=pe[1]-B,ee=ke-G,ge=Re-V}const ye=y.x1,ve=y.y1,Ce=y.x2-ye,Te=y.y2-ve,xe=(pe,ke,Re,Ve)=>{const Fe=Tu(pe.stretch-O,G,Ce,ye),Je=Su(pe.fixed-H,ee,pe.stretch,P),Pt=Tu(ke.stretch-B,V,Te,ve),Wt=Su(ke.fixed-se,ge,ke.stretch,E),gi=Tu(Re.stretch-O,G,Ce,ye),Mr=Su(Re.fixed-H,ee,Re.stretch,P),Ri=Tu(Ve.stretch-B,V,Te,ve),oi=Su(Ve.fixed-se,ge,Ve.stretch,E),yi=new Ee(Fe,Pt),jt=new Ee(gi,Pt),li=new Ee(gi,Ri),Pi=new Ee(Fe,Ri),Mi=new Ee(Je/h,Wt/h),Hi=new Ee(Mr/h,oi/h),xi=e*Math.PI/180;if(xi){const ii=Math.sin(xi),Et=Math.cos(xi),Ht=[Et,-ii,ii,Et];yi._matMult(Ht),jt._matMult(Ht),Pi._matMult(Ht),li._matMult(Ht)}const Xi=pe.stretch+pe.fixed,Ir=ke.stretch+ke.fixed;return{tl:yi,tr:jt,bl:Pi,br:li,tex:{x:u.paddedRect.x+1+Xi,y:u.paddedRect.y+1+Ir,w:Re.stretch+Re.fixed-Xi,h:Ve.stretch+Ve.fixed-Ir},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Mi,pixelOffsetBR:Hi,minFontScaleX:ee/h/Ce,minFontScaleY:ge/h/Te,isSDF:i}};if(a&&(u.stretchX||u.stretchY)){const pe=nf(v,A,P),ke=nf(b,R,E);for(let Re=0;Re<pe.length-1;Re++){const Ve=pe[Re],Fe=pe[Re+1];for(let Je=0;Je<ke.length-1;Je++)o.push(xe(Ve,ke[Je],Fe,ke[Je+1]))}}else o.push(xe({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:f+1},{fixed:0,stretch:_+1}));return o}function wu(r,e,i){let a=0;for(const o of r)a+=Math.max(e,Math.min(i,o[1]))-Math.max(e,Math.min(i,o[0]));return a}function nf(r,e,i){const a=[{fixed:-1,stretch:0}];for(const[o,u]of r){const h=a[a.length-1];a.push({fixed:o-h.stretch,stretch:h.stretch}),a.push({fixed:o-h.stretch,stretch:h.stretch+(u-o)})}return a.push({fixed:e+1,stretch:i}),a}function Tu(r,e,i,a){return r/e*i+a}function Su(r,e,i,a){return r-e*i/a}De("Anchor",Ca);class Pu{constructor(e,i,a,o,u,h,f,_,y,v){var b;if(this.boxStartIndex=e.length,y){let S=h.top,P=h.bottom;const E=h.collisionPadding;E&&(S-=E[1],P+=E[3]);let A=P-S;A>0&&(A=Math.max(10,A),this.circleDiameter=A)}else{const S=!((b=h.image)===null||b===void 0)&&b.content&&(h.image.textFitWidth||h.image.textFitHeight)?Kd(h):{x1:h.left,y1:h.top,x2:h.right,y2:h.bottom};S.y1=S.y1*f-_[0],S.y2=S.y2*f+_[2],S.x1=S.x1*f-_[3],S.x2=S.x2*f+_[1];const P=h.collisionPadding;if(P&&(S.x1-=P[0]*f,S.y1-=P[1]*f,S.x2+=P[2]*f,S.y2+=P[3]*f),v){const E=new Ee(S.x1,S.y1),A=new Ee(S.x2,S.y1),R=new Ee(S.x1,S.y2),O=new Ee(S.x2,S.y2),G=v*Math.PI/180;E._rotate(G),A._rotate(G),R._rotate(G),O._rotate(G),S.x1=Math.min(E.x,A.x,R.x,O.x),S.x2=Math.max(E.x,A.x,R.x,O.x),S.y1=Math.min(E.y,A.y,R.y,O.y),S.y2=Math.max(E.y,A.y,R.y,O.y)}e.emplaceBack(i.x,i.y,S.x1,S.y1,S.x2,S.y2,a,o,u)}this.boxEndIndex=e.length}}class D_{constructor(e=[],i=(a,o)=>a<o?-1:a>o?1:0){if(this.data=e,this.length=this.data.length,this.compare=i,this.length>0)for(let a=(this.length>>1)-1;a>=0;a--)this._down(a)}push(e){this.data.push(e),this._up(this.length++)}pop(){if(this.length===0)return;const e=this.data[0],i=this.data.pop();return--this.length>0&&(this.data[0]=i,this._down(0)),e}peek(){return this.data[0]}_up(e){const{data:i,compare:a}=this,o=i[e];for(;e>0;){const u=e-1>>1,h=i[u];if(a(o,h)>=0)break;i[e]=h,e=u}i[e]=o}_down(e){const{data:i,compare:a}=this,o=this.length>>1,u=i[e];for(;e<o;){let h=1+(e<<1);const f=h+1;if(f<this.length&&a(i[f],i[h])<0&&(h=f),a(i[h],u)>=0)break;i[e]=i[h],e=h}i[e]=u}}function k_(r,e=1,i=!1){const a=Is.fromPoints(r[0]),o=Math.min(a.width(),a.height());let u=o/2;const h=new D_([],R_),{minX:f,minY:_,maxX:y,maxY:v}=a;if(o===0)return new Ee(f,_);for(let P=f;P<y;P+=o)for(let E=_;E<v;E+=o)h.push(new Fo(P+u,E+u,u,r));let b=(function(P){let E=0,A=0,R=0;const O=P[0];for(let G=0,B=O.length,V=B-1;G<B;V=G++){const H=O[G],ee=O[V],se=H.x*ee.y-ee.x*H.y;A+=(H.x+ee.x)*se,R+=(H.y+ee.y)*se,E+=3*se}return new Fo(A/E,R/E,0,P)})(r),S=h.length;for(;h.length;){const P=h.pop();(P.d>b.d||!b.d)&&(b=P,i&&console.log("found best %d after %d probes",Math.round(1e4*P.d)/1e4,S)),P.max-b.d<=e||(u=P.h/2,h.push(new Fo(P.p.x-u,P.p.y-u,u,r)),h.push(new Fo(P.p.x+u,P.p.y-u,u,r)),h.push(new Fo(P.p.x-u,P.p.y+u,u,r)),h.push(new Fo(P.p.x+u,P.p.y+u,u,r)),S+=4)}return i&&(console.log(`num probes: ${S}`),console.log(`best distance: ${b.d}`)),b.p}function R_(r,e){return e.max-r.max}function Fo(r,e,i,a){this.p=new Ee(r,e),this.h=i,this.d=(function(o,u){let h=!1,f=1/0;for(let _=0;_<u.length;_++){const y=u[_];for(let v=0,b=y.length,S=b-1;v<b;S=v++){const P=y[v],E=y[S];P.y>o.y!=E.y>o.y&&o.x<(E.x-P.x)*(o.y-P.y)/(E.y-P.y)+P.x&&(h=!h),f=Math.min(f,sd(o,P,E))}}return(h?1:-1)*Math.sqrt(f)})(this.p,a),this.max=this.d+this.h*Math.SQRT2}var _i;k.aP=void 0,(_i=k.aP||(k.aP={}))[_i.center=1]="center",_i[_i.left=2]="left",_i[_i.right=3]="right",_i[_i.top=4]="top",_i[_i.bottom=5]="bottom",_i[_i["top-left"]=6]="top-left",_i[_i["top-right"]=7]="top-right",_i[_i["bottom-left"]=8]="bottom-left",_i[_i["bottom-right"]=9]="bottom-right";const Wh=Number.POSITIVE_INFINITY;function af(r,e){return e[1]!==Wh?(function(i,a,o){let u=0,h=0;switch(a=Math.abs(a),o=Math.abs(o),i){case"top-right":case"top-left":case"top":h=o-7;break;case"bottom-right":case"bottom-left":case"bottom":h=7-o}switch(i){case"top-right":case"bottom-right":case"right":u=-a;break;case"top-left":case"bottom-left":case"left":u=a}return[u,h]})(r,e[0],e[1]):(function(i,a){let o=0,u=0;a<0&&(a=0);const h=a/Math.SQRT2;switch(i){case"top-right":case"top-left":u=h-7;break;case"bottom-right":case"bottom-left":u=7-h;break;case"bottom":u=7-a;break;case"top":u=a-7}switch(i){case"top-right":case"bottom-right":o=-h;break;case"top-left":case"bottom-left":o=h;break;case"left":o=a;break;case"right":o=-a}return[o,u]})(r,e[0])}function sf(r,e,i){var a;const o=r.layout,u=(a=o.get("text-variable-anchor-offset"))===null||a===void 0?void 0:a.evaluate(e,{},i);if(u){const f=u.values,_=[];for(let y=0;y<f.length;y+=2){const v=_[y]=f[y],b=f[y+1].map((S=>S*ei));v.startsWith("top")?b[1]-=7:v.startsWith("bottom")&&(b[1]+=7),_[y+1]=b}return new Gt(_)}const h=o.get("text-variable-anchor");if(h){let f;f=r._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[o.get("text-radial-offset").evaluate(e,{},i)*ei,Wh]:o.get("text-offset").evaluate(e,{},i).map((y=>y*ei));const _=[];for(const y of h)_.push(y,af(y,f));return new Gt(_)}return null}function Hh(r){switch(r){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function L_(r,e,i,a,o,u,h,f,_,y,v,b){let S=u.textMaxSize.evaluate(e,{});S===void 0&&(S=h);const P=r.layers[0].layout,E=P.get("icon-offset").evaluate(e,{},v),A=lf(i.horizontal),R=h/24,O=r.tilePixelRatio*R,G=r.tilePixelRatio*S/24,B=r.tilePixelRatio*f,V=r.tilePixelRatio*P.get("symbol-spacing"),H=P.get("text-padding")*r.tilePixelRatio,ee=(function(Re,Ve,Fe,Je=1){const Pt=Re.get("icon-padding").evaluate(Ve,{},Fe),Wt=Pt&&Pt.values;return[Wt[0]*Je,Wt[1]*Je,Wt[2]*Je,Wt[3]*Je]})(P,e,v,r.tilePixelRatio),se=P.get("text-max-angle")/180*Math.PI,ge=P.get("text-rotation-alignment")!=="viewport"&&P.get("symbol-placement")!=="point",ye=P.get("icon-rotation-alignment")==="map"&&P.get("symbol-placement")!=="point",ve=P.get("symbol-placement"),Ce=V/2,Te=P.get("icon-text-fit");let xe;a&&Te!=="none"&&(r.allowVerticalPlacement&&i.vertical&&(xe=Jd(a,i.vertical,Te,P.get("icon-text-fit-padding"),E,R)),A&&(a=Jd(a,A,Te,P.get("icon-text-fit-padding"),E,R)));const pe=v?b.line.getGranularityForZoomLevel(v.z):1,ke=(Re,Ve)=>{Ve.x<0||Ve.x>=st||Ve.y<0||Ve.y>=st||(function(Fe,Je,Pt,Wt,gi,Mr,Ri,oi,yi,jt,li,Pi,Mi,Hi,xi,Xi,Ir,ii,Et,Ht,Rt,ri,Wn,Wr,Yl){const Aa=Fe.addToLineVertexArray(Je,Pt);let Cs,Bo,Oo,Vo,df=0,pf=0,ff=0,mf=0,id=-1,rd=-1;const Hn={};let _f=zt("");if(Fe.allowVerticalPlacement&&Wt.vertical){const Ii=oi.layout.get("text-rotate").evaluate(Rt,{},Wr)+90;Oo=new Pu(yi,Je,jt,li,Pi,Wt.vertical,Mi,Hi,xi,Ii),Ri&&(Vo=new Pu(yi,Je,jt,li,Pi,Ri,Ir,ii,xi,Ii))}if(gi){const Ii=oi.layout.get("icon-rotate").evaluate(Rt,{}),_r=oi.layout.get("icon-text-fit")!=="none",As=rf(gi,Ii,Wn,_r),Xr=Ri?rf(Ri,Ii,Wn,_r):void 0;Bo=new Pu(yi,Je,jt,li,Pi,gi,Ir,ii,!1,Ii),df=4*As.length;const zs=Fe.iconSizeData;let _n=null;zs.kind==="source"?(_n=[$n*oi.layout.get("icon-size").evaluate(Rt,{})],_n[0]>Pa&&di(`${Fe.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):zs.kind==="composite"&&(_n=[$n*ri.compositeIconSizes[0].evaluate(Rt,{},Wr),$n*ri.compositeIconSizes[1].evaluate(Rt,{},Wr)],(_n[0]>Pa||_n[1]>Pa)&&di(`${Fe.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),Fe.addSymbols(Fe.icon,As,_n,Ht,Et,Rt,k.az.none,Je,Aa.lineStartIndex,Aa.lineLength,-1,Wr),id=Fe.icon.placedSymbolArray.length-1,Xr&&(pf=4*Xr.length,Fe.addSymbols(Fe.icon,Xr,_n,Ht,Et,Rt,k.az.vertical,Je,Aa.lineStartIndex,Aa.lineLength,-1,Wr),rd=Fe.icon.placedSymbolArray.length-1)}const gf=Object.keys(Wt.horizontal);for(const Ii of gf){const _r=Wt.horizontal[Ii];if(!Cs){_f=zt(_r.text);const Xr=oi.layout.get("text-rotate").evaluate(Rt,{},Wr);Cs=new Pu(yi,Je,jt,li,Pi,_r,Mi,Hi,xi,Xr)}const As=_r.positionedLines.length===1;if(ff+=of(Fe,Je,_r,Mr,oi,xi,Rt,Xi,Aa,Wt.vertical?k.az.horizontal:k.az.horizontalOnly,As?gf:[Ii],Hn,id,ri,Wr),As)break}Wt.vertical&&(mf+=of(Fe,Je,Wt.vertical,Mr,oi,xi,Rt,Xi,Aa,k.az.vertical,["vertical"],Hn,rd,ri,Wr));const O_=Cs?Cs.boxStartIndex:Fe.collisionBoxArray.length,V_=Cs?Cs.boxEndIndex:Fe.collisionBoxArray.length,j_=Oo?Oo.boxStartIndex:Fe.collisionBoxArray.length,N_=Oo?Oo.boxEndIndex:Fe.collisionBoxArray.length,U_=Bo?Bo.boxStartIndex:Fe.collisionBoxArray.length,G_=Bo?Bo.boxEndIndex:Fe.collisionBoxArray.length,q_=Vo?Vo.boxStartIndex:Fe.collisionBoxArray.length,Z_=Vo?Vo.boxEndIndex:Fe.collisionBoxArray.length;let Hr=-1;const Iu=(Ii,_r)=>Ii&&Ii.circleDiameter?Math.max(Ii.circleDiameter,_r):_r;Hr=Iu(Cs,Hr),Hr=Iu(Oo,Hr),Hr=Iu(Bo,Hr),Hr=Iu(Vo,Hr);const yf=Hr>-1?1:0;yf&&(Hr*=Yl/ei),Fe.glyphOffsetArray.length>=Ao.MAX_GLYPHS&&di("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Rt.sortKey!==void 0&&Fe.addToSortKeyRanges(Fe.symbolInstances.length,Rt.sortKey);const $_=sf(oi,Rt,Wr),[W_,H_]=(function(Ii,_r){const As=Ii.length,Xr=_r?.values;if(Xr?.length>0)for(let zs=0;zs<Xr.length;zs+=2){const _n=Xr[zs+1];Ii.emplaceBack(k.aP[Xr[zs]],_n[0],_n[1])}return[As,Ii.length]})(Fe.textAnchorOffsets,$_);Fe.symbolInstances.emplaceBack(Je.x,Je.y,Hn.right>=0?Hn.right:-1,Hn.center>=0?Hn.center:-1,Hn.left>=0?Hn.left:-1,Hn.vertical||-1,id,rd,_f,O_,V_,j_,N_,U_,G_,q_,Z_,jt,ff,mf,df,pf,yf,0,Mi,Hr,W_,H_)})(r,Ve,Re,i,a,o,xe,r.layers[0],r.collisionBoxArray,e.index,e.sourceLayerIndex,r.index,O,[H,H,H,H],ge,_,B,ee,ye,E,e,u,y,v,h)};if(ve==="line")for(const Re of Hp(e.geometry,0,0,st,st)){const Ve=Ms(Re,pe),Fe=z_(Ve,V,se,i.vertical||A,a,24,G,r.overscaling,st);for(const Je of Fe)A&&F_(r,A.text,Ce,Je)||ke(Ve,Je)}else if(ve==="line-center"){for(const Re of e.geometry)if(Re.length>1){const Ve=Ms(Re,pe),Fe=A_(Ve,se,i.vertical||A,a,24,G);Fe&&ke(Ve,Fe)}}else if(e.type==="Polygon")for(const Re of Ka(e.geometry,0)){const Ve=k_(Re,16);ke(Ms(Re[0],pe,!0),new Ca(Ve.x,Ve.y,0))}else if(e.type==="LineString")for(const Re of e.geometry){const Ve=Ms(Re,pe);ke(Ve,new Ca(Ve[0].x,Ve[0].y,0))}else if(e.type==="Point")for(const Re of e.geometry)for(const Ve of Re)ke([Ve],new Ca(Ve.x,Ve.y,0))}function of(r,e,i,a,o,u,h,f,_,y,v,b,S,P,E){const A=(function(G,B,V,H,ee,se,ge,ye){const ve=H.layout.get("text-rotate").evaluate(se,{})*Math.PI/180,Ce=[];for(const Te of B.positionedLines)for(const xe of Te.positionedGlyphs){if(!xe.rect)continue;const pe=xe.rect||{};let ke=4,Re=!0,Ve=1,Fe=0;const Je=(ee||ye)&&xe.vertical,Pt=xe.metrics.advance*xe.scale/2;if(ye&&B.verticalizable&&(Fe=Te.lineOffset/2-(xe.imageName?-(ei-xe.metrics.width*xe.scale)/2:(xe.scale-1)*ei)),xe.imageName){const ii=ge[xe.imageName];Re=ii.sdf,Ve=ii.pixelRatio,ke=1/Ve}const Wt=ee?[xe.x+Pt,xe.y]:[0,0];let gi=ee?[0,0]:[xe.x+Pt+V[0],xe.y+V[1]-Fe],Mr=[0,0];Je&&(Mr=gi,gi=[0,0]);const Ri=xe.metrics.isDoubleResolution?2:1,oi=(xe.metrics.left-ke)*xe.scale-Pt+gi[0],yi=(-xe.metrics.top-ke)*xe.scale+gi[1],jt=oi+pe.w/Ri*xe.scale/Ve,li=yi+pe.h/Ri*xe.scale/Ve,Pi=new Ee(oi,yi),Mi=new Ee(jt,yi),Hi=new Ee(oi,li),xi=new Ee(jt,li);if(Je){const ii=new Ee(-Pt,Pt- -17),Et=-Math.PI/2,Ht=12-Pt,Rt=new Ee(22-Ht,-(xe.imageName?Ht:0)),ri=new Ee(...Mr);Pi._rotateAround(Et,ii)._add(Rt)._add(ri),Mi._rotateAround(Et,ii)._add(Rt)._add(ri),Hi._rotateAround(Et,ii)._add(Rt)._add(ri),xi._rotateAround(Et,ii)._add(Rt)._add(ri)}if(ve){const ii=Math.sin(ve),Et=Math.cos(ve),Ht=[Et,-ii,ii,Et];Pi._matMult(Ht),Mi._matMult(Ht),Hi._matMult(Ht),xi._matMult(Ht)}const Xi=new Ee(0,0),Ir=new Ee(0,0);Ce.push({tl:Pi,tr:Mi,bl:Hi,br:xi,tex:pe,writingMode:B.writingMode,glyphOffset:Wt,sectionIndex:xe.sectionIndex,isSDF:Re,pixelOffsetTL:Xi,pixelOffsetBR:Ir,minFontScaleX:0,minFontScaleY:0})}return Ce})(0,i,f,o,u,h,a,r.allowVerticalPlacement),R=r.textSizeData;let O=null;R.kind==="source"?(O=[$n*o.layout.get("text-size").evaluate(h,{})],O[0]>Pa&&di(`${r.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):R.kind==="composite"&&(O=[$n*P.compositeTextSizes[0].evaluate(h,{},E),$n*P.compositeTextSizes[1].evaluate(h,{},E)],(O[0]>Pa||O[1]>Pa)&&di(`${r.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),r.addSymbols(r.text,A,O,f,u,h,y,e,_.lineStartIndex,_.lineLength,S,E);for(const G of v)b[G]=r.text.placedSymbolArray.length-1;return 4*A.length}function lf(r){for(const e in r)return r[e];return null}function F_(r,e,i,a){const o=r.compareText;if(e in o){const u=o[e];for(let h=u.length-1;h>=0;h--)if(a.dist(u[h])<i)return!0}else o[e]=[];return o[e].push(a),!1}const cf=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class Xh{static from(e){if(!(e instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[i,a]=new Uint8Array(e,0,2);if(i!==219)throw new Error("Data does not appear to be in a KDBush format.");const o=a>>4;if(o!==1)throw new Error(`Got v${o} data when expected v1.`);const u=cf[15&a];if(!u)throw new Error("Unrecognized array type.");const[h]=new Uint16Array(e,2,1),[f]=new Uint32Array(e,4,1);return new Xh(f,h,u,e)}constructor(e,i=64,a=Float64Array,o){if(isNaN(e)||e<0)throw new Error(`Unpexpected numItems value: ${e}.`);this.numItems=+e,this.nodeSize=Math.min(Math.max(+i,2),65535),this.ArrayType=a,this.IndexArrayType=e<65536?Uint16Array:Uint32Array;const u=cf.indexOf(this.ArrayType),h=2*e*this.ArrayType.BYTES_PER_ELEMENT,f=e*this.IndexArrayType.BYTES_PER_ELEMENT,_=(8-f%8)%8;if(u<0)throw new Error(`Unexpected typed array class: ${a}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+f+_,2*e),this._pos=2*e,this._finished=!0):(this.data=new ArrayBuffer(8+h+f+_),this.ids=new this.IndexArrayType(this.data,8,e),this.coords=new this.ArrayType(this.data,8+f+_,2*e),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+u]),new Uint16Array(this.data,2,1)[0]=i,new Uint32Array(this.data,4,1)[0]=e)}add(e,i){const a=this._pos>>1;return this.ids[a]=a,this.coords[this._pos++]=e,this.coords[this._pos++]=i,a}finish(){const e=this._pos>>1;if(e!==this.numItems)throw new Error(`Added ${e} items when expected ${this.numItems}.`);return Yh(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,i,a,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:u,coords:h,nodeSize:f}=this,_=[0,u.length-1,0],y=[];for(;_.length;){const v=_.pop()||0,b=_.pop()||0,S=_.pop()||0;if(b-S<=f){for(let R=S;R<=b;R++){const O=h[2*R],G=h[2*R+1];O>=e&&O<=a&&G>=i&&G<=o&&y.push(u[R])}continue}const P=S+b>>1,E=h[2*P],A=h[2*P+1];E>=e&&E<=a&&A>=i&&A<=o&&y.push(u[P]),(v===0?e<=E:i<=A)&&(_.push(S),_.push(P-1),_.push(1-v)),(v===0?a>=E:o>=A)&&(_.push(P+1),_.push(b),_.push(1-v))}return y}within(e,i,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:u,nodeSize:h}=this,f=[0,o.length-1,0],_=[],y=a*a;for(;f.length;){const v=f.pop()||0,b=f.pop()||0,S=f.pop()||0;if(b-S<=h){for(let R=S;R<=b;R++)hf(u[2*R],u[2*R+1],e,i)<=y&&_.push(o[R]);continue}const P=S+b>>1,E=u[2*P],A=u[2*P+1];hf(E,A,e,i)<=y&&_.push(o[P]),(v===0?e-a<=E:i-a<=A)&&(f.push(S),f.push(P-1),f.push(1-v)),(v===0?e+a>=E:i+a>=A)&&(f.push(P+1),f.push(b),f.push(1-v))}return _}}function Yh(r,e,i,a,o,u){if(o-a<=i)return;const h=a+o>>1;uf(r,e,h,a,o,u),Yh(r,e,i,a,h-1,1-u),Yh(r,e,i,h+1,o,1-u)}function uf(r,e,i,a,o,u){for(;o>a;){if(o-a>600){const y=o-a+1,v=i-a+1,b=Math.log(y),S=.5*Math.exp(2*b/3),P=.5*Math.sqrt(b*S*(y-S)/y)*(v-y/2<0?-1:1);uf(r,e,i,Math.max(a,Math.floor(i-v*S/y+P)),Math.min(o,Math.floor(i+(y-v)*S/y+P)),u)}const h=e[2*i+u];let f=a,_=o;for(Hl(r,e,a,i),e[2*o+u]>h&&Hl(r,e,a,o);f<_;){for(Hl(r,e,f,_),f++,_--;e[2*f+u]<h;)f++;for(;e[2*_+u]>h;)_--}e[2*a+u]===h?Hl(r,e,a,_):(_++,Hl(r,e,_,o)),_<=i&&(a=_+1),i<=_&&(o=_-1)}}function Hl(r,e,i,a){Kh(r,i,a),Kh(e,2*i,2*a),Kh(e,2*i+1,2*a+1)}function Kh(r,e,i){const a=r[e];r[e]=r[i],r[i]=a}function hf(r,e,i,a){const o=r-i,u=e-a;return o*o+u*u}var Jh;k.cI=void 0,(Jh=k.cI||(k.cI={})).create="create",Jh.load="load",Jh.fullLoad="fullLoad";let Mu=null,Xl=[];const Qh=1e3/60,ed="loadTime",td="fullLoadTime",B_={mark(r){performance.mark(r)},recordStartOfFrameAt(r){Mu!=null&&Xl.push(r-Mu),Mu=r},resetRuntimeMetrics(){Mu=null,Xl=[]},clearInitializationMetrics(){performance.clearMeasures(ed),performance.clearMeasures(td);for(const r in k.cI)performance.clearMarks(k.cI[r])},remove(){this.resetRuntimeMetrics(),this.clearInitializationMetrics()},getPerformanceMetrics(){performance.measure(ed,k.cI.create,k.cI.load),performance.measure(td,k.cI.create,k.cI.fullLoad);const r=performance.getEntriesByName(ed)[0].duration,e=performance.getEntriesByName(td)[0].duration,i=Xl.length;return{loadTimeMs:r,fullLoadTimeMs:e,averageFramesPerSecond:1/(Xl.reduce(((a,o)=>a+o),0)/i/1e3),virtualDroppedFramesCount:Xl.filter((a=>a>Qh)).reduce(((a,o)=>a+(o-Qh)/Qh),0),totalFramesCount:i}}};k.$=fe,k.A=xt,k.B=jc,k.C=wr,k.D=Be,k.E=me,k.F=function([r,e,i]){return e+=90,e*=Math.PI/180,i*=Math.PI/180,{x:r*Math.cos(e)*Math.sin(i),y:r*Math.sin(e)*Math.sin(i),z:r*Math.cos(i)}},k.G=ai,k.H=pt,k.I=bh,k.J=ps,k.K=function(r){if(vt==null){const e=r.navigator?r.navigator.userAgent:null;vt=!!r.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return vt},k.L=class{constructor(r,e){this.target=r,this.mapId=e,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new Jm((()=>this.process())),this.subscription=an(this.target,"message",(i=>this.receive(i)),!1),this.globalScope=vr(self)?r:window}registerMessageHandler(r,e){this.messageHandlers[r]=e}unregisterMessageHandler(r){delete this.messageHandlers[r]}sendAsync(r,e){return new Promise(((i,a)=>{const o=Math.round(1e18*Math.random()).toString(36).substring(0,10),u=e?an(e.signal,"abort",(()=>{u?.unsubscribe(),delete this.resolveRejects[o];const _={id:o,type:"<cancel>",origin:location.origin,targetMapId:r.targetMapId,sourceMapId:this.mapId};this.target.postMessage(_)}),Qm):null;this.resolveRejects[o]={resolve:_=>{u?.unsubscribe(),i(_)},reject:_=>{u?.unsubscribe(),a(_)}};const h=[],f=Object.assign(Object.assign({},r),{id:o,sourceMapId:this.mapId,origin:location.origin,data:jr(r.data,h)});this.target.postMessage(f,{transfer:h})}))}receive(r){const e=r.data,i=e.id;if(!(e.origin!=="file://"&&location.origin!=="file://"&&e.origin!=="resource://android"&&location.origin!=="resource://android"&&e.origin!==location.origin||e.targetMapId&&this.mapId!==e.targetMapId)){if(e.type==="<cancel>"){delete this.tasks[i];const a=this.abortControllers[i];return delete this.abortControllers[i],void(a&&a.abort())}if(vr(self)||e.mustQueue)return this.tasks[i]=e,this.taskQueue.push(i),void this.invoker.trigger();this.processTask(i,e)}}process(){if(this.taskQueue.length===0)return;const r=this.taskQueue.shift(),e=this.tasks[r];delete this.tasks[r],this.taskQueue.length>0&&this.invoker.trigger(),e&&this.processTask(r,e)}processTask(r,e){return c(this,void 0,void 0,(function*(){if(e.type==="<response>"){const o=this.resolveRejects[r];return delete this.resolveRejects[r],o?void(e.error?o.reject(ms(e.error)):o.resolve(ms(e.data))):void 0}if(!this.messageHandlers[e.type])return void this.completeTask(r,new Error(`Could not find a registered handler for ${e.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const i=ms(e.data),a=new AbortController;this.abortControllers[r]=a;try{const o=yield this.messageHandlers[e.type](e.sourceMapId,i,a);this.completeTask(r,null,o)}catch(o){this.completeTask(r,o)}}))}completeTask(r,e,i){const a=[];delete this.abortControllers[r];const o={id:r,type:"<response>",sourceMapId:this.mapId,origin:location.origin,error:e?jr(e):null,data:jr(i,a)};this.target.postMessage(o,{transfer:a})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},k.M=D,k.N=function(){var r=new xt(16);return xt!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=0,r[12]=0,r[13]=0,r[14]=0),r[0]=1,r[5]=1,r[10]=1,r[15]=1,r},k.O=function(r,e,i){var a,o,u,h,f,_,y,v,b,S,P,E,A=i[0],R=i[1],O=i[2];return e===r?(r[12]=e[0]*A+e[4]*R+e[8]*O+e[12],r[13]=e[1]*A+e[5]*R+e[9]*O+e[13],r[14]=e[2]*A+e[6]*R+e[10]*O+e[14],r[15]=e[3]*A+e[7]*R+e[11]*O+e[15]):(o=e[1],u=e[2],h=e[3],f=e[4],_=e[5],y=e[6],v=e[7],b=e[8],S=e[9],P=e[10],E=e[11],r[0]=a=e[0],r[1]=o,r[2]=u,r[3]=h,r[4]=f,r[5]=_,r[6]=y,r[7]=v,r[8]=b,r[9]=S,r[10]=P,r[11]=E,r[12]=a*A+f*R+b*O+e[12],r[13]=o*A+_*R+S*O+e[13],r[14]=u*A+y*R+P*O+e[14],r[15]=h*A+v*R+E*O+e[15]),r},k.P=Ee,k.Q=function(r,e,i){var a=i[0],o=i[1],u=i[2];return r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r[3]=e[3]*a,r[4]=e[4]*o,r[5]=e[5]*o,r[6]=e[6]*o,r[7]=e[7]*o,r[8]=e[8]*u,r[9]=e[9]*u,r[10]=e[10]*u,r[11]=e[11]*u,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},k.R=Wi,k.S=function(r,e,i){var a=e[0],o=e[1],u=e[2],h=e[3],f=e[4],_=e[5],y=e[6],v=e[7],b=e[8],S=e[9],P=e[10],E=e[11],A=e[12],R=e[13],O=e[14],G=e[15],B=i[0],V=i[1],H=i[2],ee=i[3];return r[0]=B*a+V*f+H*b+ee*A,r[1]=B*o+V*_+H*S+ee*R,r[2]=B*u+V*y+H*P+ee*O,r[3]=B*h+V*v+H*E+ee*G,r[4]=(B=i[4])*a+(V=i[5])*f+(H=i[6])*b+(ee=i[7])*A,r[5]=B*o+V*_+H*S+ee*R,r[6]=B*u+V*y+H*P+ee*O,r[7]=B*h+V*v+H*E+ee*G,r[8]=(B=i[8])*a+(V=i[9])*f+(H=i[10])*b+(ee=i[11])*A,r[9]=B*o+V*_+H*S+ee*R,r[10]=B*u+V*y+H*P+ee*O,r[11]=B*h+V*v+H*E+ee*G,r[12]=(B=i[12])*a+(V=i[13])*f+(H=i[14])*b+(ee=i[15])*A,r[13]=B*o+V*_+H*S+ee*R,r[14]=B*u+V*y+H*P+ee*O,r[15]=B*h+V*v+H*E+ee*G,r},k.T=dh,k.U=function(r,e){const i={};for(let a=0;a<e.length;a++){const o=e[a];o in r&&(i[o]=r[o])}return i},k.V=Ma,k.W=ui,k.X=op,k.Y=sp,k.Z=ia,k._=c,k.a=Fa,k.a$=Qr,k.a0=Xn,k.a1=Pn,k.a2=rr,k.a3=cp,k.a4=fu,k.a5=st,k.a6=function(r,e,i){if(!r)return e||{};if(!e)return r||{};const a=pp(r),o=pp(e);(function(h,f){f.removeAll&&(h.add.clear(),h.update.clear(),h.remove.clear(),f.remove.clear());for(const _ of f.remove)h.add.delete(_),h.update.delete(_);for(const[_,y]of f.update){const v=h.update.get(_);v&&(f.update.set(_,e_(v,y)),h.update.delete(_))}})(a,o);const u={};if((a.removeAll||o.removeAll)&&(u.removeAll=!0),u.remove=new Set([...a.remove,...o.remove]),u.add=new Map([...a.add,...o.add]),u.update=new Map([...a.update,...o.update]),u.remove.size&&u.add.size)for(const h of u.add.keys())u.remove.delete(h);return(function(h){const f={};return h.removeAll&&(f.removeAll=h.removeAll),h.remove&&(f.remove=Array.from(h.remove)),h.add&&(f.add=Array.from(h.add.values())),h.update&&(f.update=Array.from(h.update.values())),f})(u)},k.a7=function(r,e){const i=new Map;if(r==null||r.type==null)return i;if(r.type==="Feature"){const a=Ah(r,e);return a==null?void 0:(i.set(a,r),i)}if(r.type==="FeatureCollection"){const a=new Set;for(const o of r.features){const u=Ah(o,e);if(u==null||a.has(u))return;a.add(u),i.set(u,o)}return i}},k.a8=function(r,e,i){var a,o;const u=[];if(e.removeAll)r.clear();else if(e.remove)for(const h of e.remove){const f=r.get(h);f&&(u.push(f.geometry),r.delete(h))}if(e.add)for(const h of e.add){const f=Ah(h,i);if(f==null)continue;const _=r.get(f);_&&u.push(_.geometry),u.push(h.geometry),r.set(f,h)}if(e.update)for(const h of e.update){const f=r.get(h.id);if(!f)continue;const _=!!h.newGeometry,y=h.removeAllProperties||((a=h.removeProperties)===null||a===void 0?void 0:a.length)>0||((o=h.addOrUpdateProperties)===null||o===void 0?void 0:o.length)>0;if(!_&&!y)continue;u.push(f.geometry);const v=Object.assign({},f);if(r.set(h.id,v),_&&(u.push(h.newGeometry),v.geometry=h.newGeometry),y){if(v.properties=h.removeAllProperties?{}:Object.assign({},v.properties||{}),h.removeProperties)for(const b of h.removeProperties)delete v.properties[b];if(h.addOrUpdateProperties)for(const{key:b,value:S}of h.addOrUpdateProperties)v.properties[b]=S}}return u},k.a9=ql,k.aA=function(r,{uSize:e,uSizeT:i},{lowerSize:a,upperSize:o}){return r.kind==="source"?a/$n:r.kind==="composite"?ai.number(a/$n,o/$n,i):e},k.aB=function(r,e){var i=e[0],a=e[1],o=e[2],u=e[3],h=e[4],f=e[5],_=e[6],y=e[7],v=e[8],b=e[9],S=e[10],P=e[11],E=e[12],A=e[13],R=e[14],O=e[15],G=i*f-a*h,B=i*_-o*h,V=i*y-u*h,H=a*_-o*f,ee=a*y-u*f,se=o*y-u*_,ge=v*A-b*E,ye=v*R-S*E,ve=v*O-P*E,Ce=b*R-S*A,Te=b*O-P*A,xe=S*O-P*R,pe=G*xe-B*Te+V*Ce+H*ve-ee*ye+se*ge;return pe?(r[0]=(f*xe-_*Te+y*Ce)*(pe=1/pe),r[1]=(o*Te-a*xe-u*Ce)*pe,r[2]=(A*se-R*ee+O*H)*pe,r[3]=(S*ee-b*se-P*H)*pe,r[4]=(_*ve-h*xe-y*ye)*pe,r[5]=(i*xe-o*ve+u*ye)*pe,r[6]=(R*V-E*se-O*B)*pe,r[7]=(v*se-S*V+P*B)*pe,r[8]=(h*Te-f*ve+y*ge)*pe,r[9]=(a*ve-i*Te-u*ge)*pe,r[10]=(E*ee-A*V+O*G)*pe,r[11]=(b*V-v*ee-P*G)*pe,r[12]=(f*ye-h*Ce-_*ge)*pe,r[13]=(i*Ce-a*ye+o*ge)*pe,r[14]=(A*B-E*H-R*G)*pe,r[15]=(v*H-b*B+S*G)*pe,r):null},k.aC=Er,k.aD=function(r){var e=r[0],i=r[1];return Math.sqrt(e*e+i*i)},k.aE=function(r){return r[0]=0,r[1]=0,r},k.aF=function(r,e,i){return r[0]=e[0]*i,r[1]=e[1]*i,r},k.aG=Sh,k.aH=tn,k.aI=function(r,e,i,a){const o=e.y-r.y,u=e.x-r.x,h=a.y-i.y,f=a.x-i.x,_=h*u-f*o;if(_===0)return null;const y=(f*(r.y-i.y)-h*(r.x-i.x))/_;return new Ee(r.x+y*u,r.y+y*o)},k.aJ=Hp,k.aK=Dl,k.aL=function(r){let e=1/0,i=1/0,a=-1/0,o=-1/0;for(const u of r)e=Math.min(e,u.x),i=Math.min(i,u.y),a=Math.max(a,u.x),o=Math.max(o,u.y);return[e,i,a,o]},k.aM=ei,k.aN=bn,k.aO=function(r,e,i,a,o=!1){if(!i[0]&&!i[1])return[0,0];const u=o?a==="map"?-r.bearingInRadians:0:a==="viewport"?r.bearingInRadians:0;if(u){const h=Math.sin(u),f=Math.cos(u);i=[i[0]*f-i[1]*h,i[0]*h+i[1]*f]}return[o?i[0]:bn(e,i[0],r.zoom),o?i[1]:bn(e,i[1],r.zoom)]},k.aQ=Th,k.aR=Hh,k.aS=wh,k.aT=Xh,k.aU=Ot,k.aV=lu,k.aW=L,k.aX=_e,k.aY=le,k.aZ=Ar,k.a_=up,k.aa=Is,k.ab=25,k.ac=Ch,k.ad=r=>{const e=window.document.createElement("video");return e.muted=!0,new Promise((i=>{e.onloadstart=()=>{i(e)};for(const a of r){const o=window.document.createElement("source");ae(a)||(e.crossOrigin="Anonymous"),o.src=a,e.appendChild(o)}}))},k.ae=Se,k.af=function(){return Qn++},k.ag=s,k.ah=Ao,k.ai=Wl,k.aj=as,k.ak=mn,k.al=mp,k.am=function(r){const e={};if(r.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((i,a,o,u)=>{const h=o||u;return e[a]=!h||h.toLowerCase(),""})),e["max-age"]){const i=parseInt(e["max-age"],10);isNaN(i)?delete e["max-age"]:e["max-age"]=i}return e},k.an=Yi,k.ao=85.051129,k.ap=Mn,k.aq=function(r){return Math.pow(2,r)},k.ar=Yn,k.as=lp,k.at=function(r){return Math.log(r)/Math.LN2},k.au=function(r){var e=r[0],i=r[1];return e*e+i*i},k.av=function(r){if(!r.length)return new Set;const e=Math.max(...r.map((_=>_.canonical.z)));let i=1/0,a=-1/0,o=1/0,u=-1/0;const h=[];for(const _ of r){const{x:y,y:v,z:b}=_.canonical,S=Math.pow(2,e-b),P=y*S,E=v*S;h.push({id:_,x:P,y:E}),P<i&&(i=P),P>a&&(a=P),E<o&&(o=E),E>u&&(u=E)}const f=new Set;for(const _ of h)_.x!==i&&_.x!==a&&_.y!==o&&_.y!==u||f.add(_.id);return f},k.aw=function(r,e){const i=Math.abs(2*r.wrap)-+(r.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return r.overscaledZ-e.overscaledZ||a-i||e.canonical.y-r.canonical.y||e.canonical.x-r.canonical.x},k.ax=class{constructor(r,e){this.max=r,this.onRemove=e,this.reset()}reset(){for(const r in this.data)for(const e of this.data[r])e.timeout&&clearTimeout(e.timeout),this.onRemove(e.value);return this.data={},this.order=[],this}add(r,e,i){const a=r.wrapped().key;this.data[a]===void 0&&(this.data[a]=[]);const o={value:e,timeout:void 0};if(i!==void 0&&(o.timeout=setTimeout((()=>{this.remove(r,o)}),i)),this.data[a].push(o),this.order.push(a),this.order.length>this.max){const u=this._getAndRemoveByKey(this.order[0]);u&&this.onRemove(u)}return this}has(r){return r.wrapped().key in this.data}getAndRemove(r){return this.has(r)?this._getAndRemoveByKey(r.wrapped().key):null}_getAndRemoveByKey(r){const e=this.data[r].shift();return e.timeout&&clearTimeout(e.timeout),this.data[r].length===0&&delete this.data[r],this.order.splice(this.order.indexOf(r),1),e.value}getByKey(r){const e=this.data[r];return e?e[0].value:null}get(r){return this.has(r)?this.data[r.wrapped().key][0].value:null}remove(r,e){if(!this.has(r))return this;const i=r.wrapped().key,a=e===void 0?0:this.data[i].indexOf(e),o=this.data[i][a];return this.data[i].splice(a,1),o.timeout&&clearTimeout(o.timeout),this.data[i].length===0&&delete this.data[i],this.onRemove(o.value),this.order.splice(this.order.indexOf(i),1),this}setMaxSize(r){for(this.max=r;this.order.length>this.max;){const e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this}filter(r){const e=[];for(const i in this.data)for(const a of this.data[i])r(a.value)||e.push(a);for(const i of e)this.remove(i.value.tileID,i)}},k.ay=function(r,e){let i=0,a=0;if(r.kind==="constant")a=r.layoutSize;else if(r.kind!=="source"){const{interpolationType:o,minZoom:u,maxZoom:h}=r,f=o?Yi(vi.interpolationFactor(o,e,u,h),0,1):0;r.kind==="camera"?a=ai.number(r.minSize,r.maxSize,f):i=f}return{uSizeT:i,uSize:a}},k.b=Sn,k.b$=Ts,k.b0=gr,k.b1=function(r){var e=new xt(3);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e},k.b2=function(r,e,i){return r[0]=e[0]-i[0],r[1]=e[1]-i[1],r[2]=e[2]-i[2],r},k.b3=function(r,e){var i=e[0],a=e[1],o=e[2],u=i*i+a*a+o*o;return u>0&&(u=1/Math.sqrt(u)),r[0]=e[0]*u,r[1]=e[1]*u,r[2]=e[2]*u,r},k.b4=vn,k.b5=function(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]},k.b6=function(r,e,i){return r[0]=e[0]*i[0],r[1]=e[1]*i[1],r[2]=e[2]*i[2],r[3]=e[3]*i[3],r},k.b7=Li,k.b8=function(r,e,i){const a=e[0]*i[0]+e[1]*i[1]+e[2]*i[2];return a===0?null:(-(r[0]*i[0]+r[1]*i[1]+r[2]*i[2])-i[3])/a},k.b9=yr,k.bA=function(){return new Float64Array(3)},k.bB=Kn,k.bC=function(r,e,i){var a=i[0],o=i[1],u=i[2],h=i[3],f=e[0],_=e[1],y=e[2],v=o*y-u*_,b=u*f-a*y,S=a*_-o*f;return r[0]=f+h*(v+=v)+o*(S+=S)-u*(b+=b),r[1]=_+h*b+u*v-a*S,r[2]=y+h*S+a*b-o*v,r},k.bD=function(r,e,i){const a=(o=[r[0],r[1],r[2],e[0],e[1],e[2],i[0],i[1],i[2]])[0]*((v=o[8])*(h=o[4])-(f=o[5])*(y=o[7]))+o[1]*(-v*(u=o[3])+f*(_=o[6]))+o[2]*(y*u-h*_);var o,u,h,f,_,y,v;if(a===0)return null;const b=vn([],[e[0],e[1],e[2]],[i[0],i[1],i[2]]),S=vn([],[i[0],i[1],i[2]],[r[0],r[1],r[2]]),P=vn([],[r[0],r[1],r[2]],[e[0],e[1],e[2]]),E=Qr([],b,-r[3]);return gr(E,E,Qr([],S,-e[3])),gr(E,E,Qr([],P,-i[3])),Qr(E,E,1/a),E},k.bE=Eh,k.bF=function(){return new Float64Array(4)},k.bG=function(r,e,i,a){var o=[],u=[];return o[0]=e[0]-i[0],o[1]=e[1]-i[1],o[2]=e[2]-i[2],u[0]=o[0]*Math.cos(a)-o[1]*Math.sin(a),u[1]=o[0]*Math.sin(a)+o[1]*Math.cos(a),u[2]=o[2],r[0]=u[0]+i[0],r[1]=u[1]+i[1],r[2]=u[2]+i[2],r},k.bH=function(r,e,i,a){var o=[],u=[];return o[0]=e[0]-i[0],o[1]=e[1]-i[1],o[2]=e[2]-i[2],u[0]=o[0],u[1]=o[1]*Math.cos(a)-o[2]*Math.sin(a),u[2]=o[1]*Math.sin(a)+o[2]*Math.cos(a),r[0]=u[0]+i[0],r[1]=u[1]+i[1],r[2]=u[2]+i[2],r},k.bI=function(r,e,i,a){var o=[],u=[];return o[0]=e[0]-i[0],o[1]=e[1]-i[1],o[2]=e[2]-i[2],u[0]=o[2]*Math.sin(a)+o[0]*Math.cos(a),u[1]=o[1],u[2]=o[2]*Math.cos(a)-o[0]*Math.sin(a),r[0]=u[0]+i[0],r[1]=u[1]+i[1],r[2]=u[2]+i[2],r},k.bJ=function(r,e,i){var a=Math.sin(i),o=Math.cos(i),u=e[0],h=e[1],f=e[2],_=e[3],y=e[8],v=e[9],b=e[10],S=e[11];return e!==r&&(r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=u*o-y*a,r[1]=h*o-v*a,r[2]=f*o-b*a,r[3]=_*o-S*a,r[8]=u*a+y*o,r[9]=h*a+v*o,r[10]=f*a+b*o,r[11]=_*a+S*o,r},k.bK=function(r,e){const i=xr(r,360),a=xr(e,360),o=a-i,u=a>i?o-360:o+360;return Math.abs(o)<Math.abs(u)?o:u},k.bL=function(r){return r[0]=0,r[1]=0,r[2]=0,r},k.bM=function(r,e,i,a){const o=Math.sqrt(r*r+e*e),u=Math.sqrt(i*i+a*a);r/=o,e/=o,i/=u,a/=u;const h=Math.acos(r*i+e*a);return-e*i+r*a>0?h:-h},k.bN=function(r,e){const i=xr(r,2*Math.PI),a=xr(e,2*Math.PI);return Math.min(Math.abs(i-a),Math.abs(i-a+2*Math.PI),Math.abs(i-a-2*Math.PI))},k.bO=function(){const r={},e=K.$version;for(const i in K.$root){const a=K.$root[i];if(a.required){let o=null;o=i==="version"?e:a.type==="array"?[]:{},o!=null&&(r[i]=o)}}return r},k.bP=$,k.bQ=fl,k.bR=function r(e,i){if(Array.isArray(e)){if(!Array.isArray(i)||e.length!==i.length)return!1;for(let a=0;a<e.length;a++)if(!r(e[a],i[a]))return!1;return!0}if(typeof e=="object"&&e!==null&&i!==null){if(typeof i!="object"||Object.keys(e).length!==Object.keys(i).length)return!1;for(const a in e)if(!r(e[a],i[a]))return!1;return!0}return e===i},k.bS=function(r){r=r.slice();const e=Object.create(null);for(let i=0;i<r.length;i++)e[r[i].id]=r[i];for(let i=0;i<r.length;i++)"ref"in r[i]&&(r[i]=Ze(r[i],e[r[i].ref]));return r},k.bT=function(r,e){if(r.type==="custom")return new Km(r,e);switch(r.type){case"background":return new Ym(r,e);case"circle":return new Rf(r,e);case"color-relief":return new jf(r,e);case"fill":return new tm(r,e);case"fill-extrusion":return new pm(r,e);case"heatmap":return new Ff(r,e);case"hillshade":return new Of(r,e);case"line":return new vm(r,e);case"raster":return new Kc(r,e);case"symbol":return new pu(r,e)}},k.bU=r=>r.type==="raster",k.bV=hi,k.bW=function(r,e){if(!r)return[{command:"setStyle",args:[e]}];let i=[];try{if(!Ne(r.version,e.version))return[{command:"setStyle",args:[e]}];Ne(r.center,e.center)||i.push({command:"setCenter",args:[e.center]}),Ne(r.state,e.state)||i.push({command:"setGlobalState",args:[e.state]}),Ne(r.centerAltitude,e.centerAltitude)||i.push({command:"setCenterAltitude",args:[e.centerAltitude]}),Ne(r.zoom,e.zoom)||i.push({command:"setZoom",args:[e.zoom]}),Ne(r.bearing,e.bearing)||i.push({command:"setBearing",args:[e.bearing]}),Ne(r.pitch,e.pitch)||i.push({command:"setPitch",args:[e.pitch]}),Ne(r.roll,e.roll)||i.push({command:"setRoll",args:[e.roll]}),Ne(r.sprite,e.sprite)||i.push({command:"setSprite",args:[e.sprite]}),Ne(r.glyphs,e.glyphs)||i.push({command:"setGlyphs",args:[e.glyphs]}),Ne(r.transition,e.transition)||i.push({command:"setTransition",args:[e.transition]}),Ne(r.light,e.light)||i.push({command:"setLight",args:[e.light]}),Ne(r.terrain,e.terrain)||i.push({command:"setTerrain",args:[e.terrain]}),Ne(r.sky,e.sky)||i.push({command:"setSky",args:[e.sky]}),Ne(r.projection,e.projection)||i.push({command:"setProjection",args:[e.projection]});const a={},o=[];(function(h,f,_,y){let v;for(v in f=f||{},h=h||{})Object.prototype.hasOwnProperty.call(h,v)&&(Object.prototype.hasOwnProperty.call(f,v)||Ye(v,_,y));for(v in f)Object.prototype.hasOwnProperty.call(f,v)&&(Object.prototype.hasOwnProperty.call(h,v)?Ne(h[v],f[v])||(h[v].type==="geojson"&&f[v].type==="geojson"&&mt(h,f,v)?qe(_,{command:"setGeoJSONSourceData",args:[v,f[v].data]}):Lt(v,f,_,y)):Ge(v,f,_))})(r.sources,e.sources,o,a);const u=[];r.layers&&r.layers.forEach((h=>{"source"in h&&a[h.source]?i.push({command:"removeLayer",args:[h.id]}):u.push(h)})),i=i.concat(o),(function(h,f,_){f=f||[];const y=(h=h||[]).map(ni),v=f.map(ni),b=h.reduce(At,{}),S=f.reduce(At,{}),P=y.slice(),E=Object.create(null);let A,R,O,G,B;for(let V=0,H=0;V<y.length;V++)A=y[V],Object.prototype.hasOwnProperty.call(S,A)?H++:(qe(_,{command:"removeLayer",args:[A]}),P.splice(P.indexOf(A,H),1));for(let V=0,H=0;V<v.length;V++)A=v[v.length-1-V],P[P.length-1-V]!==A&&(Object.prototype.hasOwnProperty.call(b,A)?(qe(_,{command:"removeLayer",args:[A]}),P.splice(P.lastIndexOf(A,P.length-H),1)):H++,G=P[P.length-V],qe(_,{command:"addLayer",args:[S[A],G]}),P.splice(P.length-V,0,A),E[A]=!0);for(let V=0;V<v.length;V++)if(A=v[V],R=b[A],O=S[A],!E[A]&&!Ne(R,O))if(Ne(R.source,O.source)&&Ne(R["source-layer"],O["source-layer"])&&Ne(R.type,O.type)){for(B in Ft(R.layout,O.layout,_,A,null,"setLayoutProperty"),Ft(R.paint,O.paint,_,A,null,"setPaintProperty"),Ne(R.filter,O.filter)||qe(_,{command:"setFilter",args:[A,O.filter]}),Ne(R.minzoom,O.minzoom)&&Ne(R.maxzoom,O.maxzoom)||qe(_,{command:"setLayerZoomRange",args:[A,O.minzoom,O.maxzoom]}),R)Object.prototype.hasOwnProperty.call(R,B)&&B!=="layout"&&B!=="paint"&&B!=="filter"&&B!=="metadata"&&B!=="minzoom"&&B!=="maxzoom"&&(B.indexOf("paint.")===0?Ft(R[B],O[B],_,A,B.slice(6),"setPaintProperty"):Ne(R[B],O[B])||qe(_,{command:"setLayerProperty",args:[A,B,O[B]]}));for(B in O)Object.prototype.hasOwnProperty.call(O,B)&&!Object.prototype.hasOwnProperty.call(R,B)&&B!=="layout"&&B!=="paint"&&B!=="filter"&&B!=="metadata"&&B!=="minzoom"&&B!=="maxzoom"&&(B.indexOf("paint.")===0?Ft(R[B],O[B],_,A,B.slice(6),"setPaintProperty"):Ne(R[B],O[B])||qe(_,{command:"setLayerProperty",args:[A,B,O[B]]}))}else qe(_,{command:"removeLayer",args:[A]}),G=P[P.lastIndexOf(A)+1],qe(_,{command:"addLayer",args:[O,G]})})(u,e.layers,i)}catch(a){console.warn("Unable to compute style diff:",a),i=[{command:"setStyle",args:[e]}]}return i},k.bX=function(r){const e=[],i=r.id;return i===void 0&&e.push({message:`layers.${i}: missing required property "id"`}),r.render===void 0&&e.push({message:`layers.${i}: missing required method "render"`}),r.renderingMode&&r.renderingMode!=="2d"&&r.renderingMode!=="3d"&&e.push({message:`layers.${i}: property "renderingMode" must be either "2d" or "3d"`}),e},k.bY=wn,k.bZ=Tn,k.b_=class extends Ti{constructor(r,e){super(r,e),this.current=0}set(r){this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r))}},k.ba=function(r,e,i){return r[0]=e[0]*i,r[1]=e[1]*i,r[2]=e[2]*i,r[3]=e[3]*i,r},k.bb=function(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]},k.bc=dp,k.bd=zo,k.be=function(r,e,i,a,o){var u=1/Math.tan(e/2);if(r[0]=u/i,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=u,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,o!=null&&o!==1/0){var h=1/(a-o);r[10]=(o+a)*h,r[14]=2*o*a*h}else r[10]=-1,r[14]=-2*a;return r},k.bf=function(r){var e=new xt(16);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e},k.bg=function(r,e,i){var a=Math.sin(i),o=Math.cos(i),u=e[0],h=e[1],f=e[2],_=e[3],y=e[4],v=e[5],b=e[6],S=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=u*o+y*a,r[1]=h*o+v*a,r[2]=f*o+b*a,r[3]=_*o+S*a,r[4]=y*o-u*a,r[5]=v*o-h*a,r[6]=b*o-f*a,r[7]=S*o-_*a,r},k.bh=function(r,e,i){var a=Math.sin(i),o=Math.cos(i),u=e[4],h=e[5],f=e[6],_=e[7],y=e[8],v=e[9],b=e[10],S=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=u*o+y*a,r[5]=h*o+v*a,r[6]=f*o+b*a,r[7]=_*o+S*a,r[8]=y*o-u*a,r[9]=v*o-h*a,r[10]=b*o-f*a,r[11]=S*o-_*a,r},k.bi=function(){const r=new Float32Array(16);return Yn(r),r},k.bj=function(){const r=new Float64Array(16);return Yn(r),r},k.bk=function(){return new Float64Array(16)},k.bl=function(r,e,i){const a=new Float64Array(4);return Kn(a,r,e-90,i),a},k.bm=function(r,e,i,a){var o,u,h,f,_,y=e[0],v=e[1],b=e[2],S=e[3],P=i[0],E=i[1],A=i[2],R=i[3];return(u=y*P+v*E+b*A+S*R)<0&&(u=-u,P=-P,E=-E,A=-A,R=-R),1-u>Ct?(o=Math.acos(u),h=Math.sin(o),f=Math.sin((1-a)*o)/h,_=Math.sin(a*o)/h):(f=1-a,_=a),r[0]=f*y+_*P,r[1]=f*v+_*E,r[2]=f*b+_*A,r[3]=f*S+_*R,r},k.bn=function(r){const e=new Float64Array(9);var i,a,o,u,h,f,_,y,v,b,S,P,E,A,R,O,G,B;b=(o=(a=r)[0])*(_=o+o),S=(u=a[1])*_,E=(h=a[2])*_,A=h*(y=u+u),O=(f=a[3])*_,G=f*y,B=f*(v=h+h),(i=e)[0]=1-(P=u*y)-(R=h*v),i[3]=S-B,i[6]=E+G,i[1]=S+B,i[4]=1-b-R,i[7]=A-O,i[2]=E-G,i[5]=A+O,i[8]=1-b-P;const V=Ar(-Math.asin(Yi(e[2],-1,1)));let H,ee;return Math.hypot(e[5],e[8])<.001?(H=0,ee=-Ar(Math.atan2(e[3],e[4]))):(H=Ar(e[5]===0&&e[8]===0?0:Math.atan2(e[5],e[8])),ee=Ar(e[1]===0&&e[0]===0?0:Math.atan2(e[1],e[0]))),{roll:H,pitch:V+90,bearing:ee}},k.bo=function(r,e){return r.roll==e.roll&&r.pitch==e.pitch&&r.bearing==e.bearing},k.bp=et,k.bq=qr,k.br=Io,k.bs=Ol,k.bt=Mo,k.bu=La,k.bv=Jn,k.bw=Ai,k.bx=function(r,e,i,a,o){return La(a,o,Yi((r-e)/(i-e),0,1))},k.by=function(r,e,i,a){return r[0]=e[0]+i[0]*a,r[1]=e[1]+i[1]*a,r[2]=e[2]+i[2]*a,r},k.bz=xr,k.c=ie,k.c$=class{constructor(r){this.start=`${r}#start`,this.end=`${r}#end`,this.measure=r,performance.mark(this.start)}finish(){performance.mark(this.end);let r=performance.getEntriesByName(this.measure);return r.length===0&&(performance.measure(this.measure,this.start,this.end),r=performance.getEntriesByName(this.measure),performance.clearMarks(this.start),performance.clearMarks(this.end),performance.clearMeasures(this.measure)),r}},k.c0=class extends Ti{constructor(r,e){super(r,e),this.current=wa}set(r){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let e=1;e<16;e++)if(r[e]!==this.current[e]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}},k.c1=ws,k.c2=class extends Ti{constructor(r,e){super(r,e),this.current=[0,0,0]}set(r){r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2]))}},k.c3=class extends Ti{constructor(r,e){super(r,e),this.current=[0,0]}set(r){r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1]))}},k.c4=xn,k.c5=function(r,e){var i=Math.sin(e),a=Math.cos(e);return r[0]=a,r[1]=i,r[2]=0,r[3]=-i,r[4]=a,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r},k.c6=function(r,e,i){var a=e[0],o=e[1],u=e[2];return r[0]=a*i[0]+o*i[3]+u*i[6],r[1]=a*i[1]+o*i[4]+u*i[7],r[2]=a*i[2]+o*i[5]+u*i[8],r},k.c7=function(r,e,i,a,o,u,h){var f=1/(e-i),_=1/(a-o),y=1/(u-h);return r[0]=-2*f,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*_,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*y,r[11]=0,r[12]=(e+i)*f,r[13]=(o+a)*_,r[14]=(h+u)*y,r[15]=1,r},k.c8=class extends Ti{constructor(r,e){super(r,e),this.current=new Array}set(r){if(r!=this.current){this.current=r;const e=new Float32Array(4*r.length);for(let i=0;i<r.length;i++)e[4*i]=r[i].r,e[4*i+1]=r[i].g,e[4*i+2]=r[i].b,e[4*i+3]=r[i].a;this.gl.uniform4fv(this.location,e)}}},k.c9=class extends Ti{constructor(r,e){super(r,e),this.current=new Array}set(r){if(r!=this.current){this.current=r;const e=new Float32Array(r);this.gl.uniform1fv(this.location,e)}}},k.cA=function(r,e){var i;if(!sn[e])return!1;const a=r?.target,o=((i=a?.ownerDocument)===null||i===void 0?void 0:i.defaultView)||window;return r instanceof o.MouseEvent||r instanceof o.WheelEvent},k.cB=function(r,e){return zr[e]&&"touches"in r},k.cC=function(r){return zr[r]||sn[r]},k.cD=function(r,e,i){var a=e[0],o=e[1];return r[0]=i[0]*a+i[4]*o+i[12],r[1]=i[1]*a+i[5]*o+i[13],r},k.cE=function(r,e){const{x:i,y:a}=ql.fromLngLat(e);return!(r<0||r>25||a<0||a>=1||i<0||i>=1)},k.cF=function(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=e[1],r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=e[2],r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r},k.cG=class extends mo{},k.cH=B_,k.cJ=F,k.cK=function(r,e){ie.REGISTERED_PROTOCOLS[r]=e},k.cL=function(r){delete ie.REGISTERED_PROTOCOLS[r]},k.cM=function(r,e){const i={};for(let o=0;o<r.length;o++){const u=e&&e[r[o].id]||Ac(r[o]);e&&(e[r[o].id]=u);let h=i[u];h||(h=i[u]=[]),h.push(r[o])}const a=[];for(const o in i)a.push(i[o]);return a},k.cN=De,k.cO=fp,k.cP=$p,k.cQ=Xd,k.cR=function(r){var e;r.bucket.createArrays(),r.bucket.tilePixelRatio=st/(512*r.bucket.overscaling),r.bucket.compareText={},r.bucket.iconsNeedLinear=!1;const i=r.bucket.layers[0],a=i.layout,o=i._unevaluatedLayout._values,u={layoutIconSize:o["icon-size"].possiblyEvaluate(new pt(r.bucket.zoom+1),r.canonical),layoutTextSize:o["text-size"].possiblyEvaluate(new pt(r.bucket.zoom+1),r.canonical),textMaxSize:o["text-size"].possiblyEvaluate(new pt(18))};if(r.bucket.textSizeData.kind==="composite"){const{minZoom:v,maxZoom:b}=r.bucket.textSizeData;u.compositeTextSizes=[o["text-size"].possiblyEvaluate(new pt(v),r.canonical),o["text-size"].possiblyEvaluate(new pt(b),r.canonical)]}if(r.bucket.iconSizeData.kind==="composite"){const{minZoom:v,maxZoom:b}=r.bucket.iconSizeData;u.compositeIconSizes=[o["icon-size"].possiblyEvaluate(new pt(v),r.canonical),o["icon-size"].possiblyEvaluate(new pt(b),r.canonical)]}const h=a.get("text-line-height")*ei,f=a.get("text-rotation-alignment")!=="viewport"&&a.get("symbol-placement")!=="point",_=a.get("text-keep-upright"),y=a.get("text-size");for(const v of r.bucket.features){const b=a.get("text-font").evaluate(v,{},r.canonical).join(","),S=y.evaluate(v,{},r.canonical),P=u.layoutTextSize.evaluate(v,{},r.canonical),E=u.layoutIconSize.evaluate(v,{},r.canonical),A={horizontal:{},vertical:void 0},R=v.text;let O,G=[0,0];if(R){const H=R.toString(),ee=a.get("text-letter-spacing").evaluate(v,{},r.canonical)*ei,se=ho(H)?ee:0,ge=a.get("text-anchor").evaluate(v,{},r.canonical),ye=sf(i,v,r.canonical);if(!ye){const xe=a.get("text-radial-offset").evaluate(v,{},r.canonical);G=xe?af(ge,[xe*ei,Wh]):a.get("text-offset").evaluate(v,{},r.canonical).map((pe=>pe*ei))}let ve=f?"center":a.get("text-justify").evaluate(v,{},r.canonical);const Ce=a.get("symbol-placement")==="point"?a.get("text-max-width").evaluate(v,{},r.canonical)*ei:1/0,Te=()=>{r.bucket.allowVerticalPlacement&&ml(H)&&(A.vertical=hu(R,r.glyphMap,r.glyphPositions,r.imagePositions,b,Ce,h,ge,"left",se,G,k.az.vertical,!0,P,S))};if(!f&&ye){const xe=new Set;if(ve==="auto")for(let ke=0;ke<ye.values.length;ke+=2)xe.add(Hh(ye.values[ke]));else xe.add(ve);let pe=!1;for(const ke of xe)if(!A.horizontal[ke])if(pe)A.horizontal[ke]=A.horizontal[0];else{const Re=hu(R,r.glyphMap,r.glyphPositions,r.imagePositions,b,Ce,h,"center",ke,se,G,k.az.horizontal,!1,P,S);Re&&(A.horizontal[ke]=Re,pe=Re.positionedLines.length===1)}Te()}else{ve==="auto"&&(ve=Hh(ge));const xe=hu(R,r.glyphMap,r.glyphPositions,r.imagePositions,b,Ce,h,ge,ve,se,G,k.az.horizontal,!1,P,S);xe&&(A.horizontal[ve]=xe),Te(),ml(H)&&f&&_&&(A.vertical=hu(R,r.glyphMap,r.glyphPositions,r.imagePositions,b,Ce,h,ge,ve,se,G,k.az.vertical,!1,P,S))}}let B=!1;if(v.icon&&v.icon.name){const H=r.imageMap[v.icon.name];H&&(O=$m(r.imagePositions[v.icon.name],a.get("icon-offset").evaluate(v,{},r.canonical),a.get("icon-anchor").evaluate(v,{},r.canonical)),B=!!H.sdf,r.bucket.sdfIcons===void 0?r.bucket.sdfIcons=B:r.bucket.sdfIcons!==B&&di("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(H.pixelRatio!==r.bucket.pixelRatio||a.get("icon-rotate").constantOr(1)!==0)&&(r.bucket.iconsNeedLinear=!0))}const V=lf(A.horizontal)||A.vertical;(e=r.bucket).iconsInText||(e.iconsInText=!!V&&V.iconsInText),(V||O)&&L_(r.bucket,v,A,O,r.imageMap,u,P,E,G,B,r.canonical,r.subdivisionGranularity)}r.showCollisionBoxes&&r.bucket.generateCollisionDebugBuffers()},k.cS=_h,k.cT=yh,k.cU=xh,k.cV=function(r){const e=new uu;return(function(i,a){for(const o in i.layers)a.writeMessage(3,b_,i.layers[o])})(r,e),e.finish()},k.cW=function(r,e,i,a,o,u){let h=Xp(r,e,i,o,0);return h=Xp(h,e,a,u,1),h},k.cX=class{constructor(r){this.maxEntries=r,this.map=new Map}get(r){const e=this.map.get(r);return e!==void 0&&(this.map.delete(r),this.map.set(r,e)),e}set(r,e){if(this.map.has(r))this.map.delete(r);else if(this.map.size>=this.maxEntries){const i=this.map.keys().next().value;this.map.delete(i)}this.map.set(r,e)}clear(){this.map.clear()}},k.cY=zd,k.cZ=uu,k.c_=qp,k.ca=class extends ba{},k.cb=Sm,k.cc=class extends xo{},k.cd=hh,k.ce=function(r){return r<=1?1:Math.pow(2,Math.ceil(Math.log(r)/Math.LN2))},k.cf=md,k.cg=function(r,e,i){var a=e[0],o=e[1],u=e[2],h=i[3]*a+i[7]*o+i[11]*u+i[15];return r[0]=(i[0]*a+i[4]*o+i[8]*u+i[12])/(h=h||1),r[1]=(i[1]*a+i[5]*o+i[9]*u+i[13])/h,r[2]=(i[2]*a+i[6]*o+i[10]*u+i[14])/h,r},k.ch=class extends Sl{},k.ci=class extends d{},k.cj=function(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]&&r[4]===e[4]&&r[5]===e[5]&&r[6]===e[6]&&r[7]===e[7]&&r[8]===e[8]&&r[9]===e[9]&&r[10]===e[10]&&r[11]===e[11]&&r[12]===e[12]&&r[13]===e[13]&&r[14]===e[14]&&r[15]===e[15]},k.ck=function(r,e){var i=r[0],a=r[1],o=r[2],u=r[3],h=r[4],f=r[5],_=r[6],y=r[7],v=r[8],b=r[9],S=r[10],P=r[11],E=r[12],A=r[13],R=r[14],O=r[15],G=e[0],B=e[1],V=e[2],H=e[3],ee=e[4],se=e[5],ge=e[6],ye=e[7],ve=e[8],Ce=e[9],Te=e[10],xe=e[11],pe=e[12],ke=e[13],Re=e[14],Ve=e[15];return Math.abs(i-G)<=Ct*Math.max(1,Math.abs(i),Math.abs(G))&&Math.abs(a-B)<=Ct*Math.max(1,Math.abs(a),Math.abs(B))&&Math.abs(o-V)<=Ct*Math.max(1,Math.abs(o),Math.abs(V))&&Math.abs(u-H)<=Ct*Math.max(1,Math.abs(u),Math.abs(H))&&Math.abs(h-ee)<=Ct*Math.max(1,Math.abs(h),Math.abs(ee))&&Math.abs(f-se)<=Ct*Math.max(1,Math.abs(f),Math.abs(se))&&Math.abs(_-ge)<=Ct*Math.max(1,Math.abs(_),Math.abs(ge))&&Math.abs(y-ye)<=Ct*Math.max(1,Math.abs(y),Math.abs(ye))&&Math.abs(v-ve)<=Ct*Math.max(1,Math.abs(v),Math.abs(ve))&&Math.abs(b-Ce)<=Ct*Math.max(1,Math.abs(b),Math.abs(Ce))&&Math.abs(S-Te)<=Ct*Math.max(1,Math.abs(S),Math.abs(Te))&&Math.abs(P-xe)<=Ct*Math.max(1,Math.abs(P),Math.abs(xe))&&Math.abs(E-pe)<=Ct*Math.max(1,Math.abs(E),Math.abs(pe))&&Math.abs(A-ke)<=Ct*Math.max(1,Math.abs(A),Math.abs(ke))&&Math.abs(R-Re)<=Ct*Math.max(1,Math.abs(R),Math.abs(Re))&&Math.abs(O-Ve)<=Ct*Math.max(1,Math.abs(O),Math.abs(Ve))},k.cl=function(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},k.cm=r=>r.type==="symbol",k.cn=r=>r.type==="circle",k.co=r=>r.type==="heatmap",k.cp=r=>r.type==="line",k.cq=r=>r.type==="fill",k.cr=r=>r.type==="fill-extrusion",k.cs=r=>r.type==="hillshade",k.ct=r=>r.type==="color-relief",k.cu=r=>r.type==="background",k.cv=r=>r.type==="custom",k.cw=rn,k.cx=function(r,e,i){if(e<=0)return r;const a=1/e;return i===void 0||Math.abs(i)<1e-10?Math.round(r*a)/a:(i>0?Math.ceil(r*a-1e-9):Math.floor(r*a+1e-10))/a},k.cy=function(r,e,i){const a=Ut(e.x-i.x,e.y-i.y),o=Ut(r.x-i.x,r.y-i.y);var u,h;return Ar(Math.atan2(a[0]*o[1]-a[1]*o[0],(u=a)[0]*(h=o)[0]+u[1]*h[1]))},k.cz=Cr,k.d=ae,k.d0=function(r,e,i,a,o){return c(this,void 0,void 0,(function*(){if(Xn())try{return yield Pn(r,e,i,a,o)}catch{}return(function(u,h,f,_,y){const v=u.width,b=u.height;nn&&br||(nn=new OffscreenCanvas(v,b),br=nn.getContext("2d",{willReadFrequently:!0})),nn.width=v,nn.height=b,br.drawImage(u,0,0,v,b);const S=br.getImageData(h,f,_,y);return br.clearRect(0,0,v,b),S.data})(r,e,i,a,o)}))},k.d1=xd,k.d2=Jt,k.d3=class{constructor(r,e){this.layers={[Wl]:this},this.name=Wl,this.version=e?e.version:1,this.extent=e?e.extent:4096,this.length=r.length,this.features=r}feature(r){return new v_(this.features[r],this.extent)}},k.d4=Vn,k.d5=Nr,k.e=Ei,k.f=r=>c(void 0,void 0,void 0,(function*(){if(r.byteLength===0)return createImageBitmap(new ImageData(1,1));const e=new Blob([new Uint8Array(r)],{type:"image/png"});try{return createImageBitmap(e)}catch(i){throw new Error(`Could not load image because of ${i.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}})),k.g=C,k.h=r=>new Promise(((e,i)=>{const a=new Image;a.onload=()=>{e(a),URL.revokeObjectURL(a.src),a.onload=null,window.requestAnimationFrame((()=>{a.src=ea}))},a.onerror=()=>i(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."));const o=new Blob([new Uint8Array(r)],{type:"image/png"});a.src=r.byteLength?URL.createObjectURL(o):ea})),k.i=vr,k.j=(r,e)=>J(Ei(r,{type:"json"}),e),k.k=be,k.l=ne,k.m=J,k.n=(r,e)=>J(Ei(r,{type:"arrayBuffer"}),e),k.o=function(r){return new uu(r).readFields(Om,[])},k.p=Hd,k.q=function(r){return/[\u02EA\u02EB\u1100-\u11FF\u2E80-\u2FDF\u3000-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(r))},k.r=kl,k.s=an,k.t=bi,k.u=K,k.v=ds,k.w=di,k.x=bl,k.y=Ui,k.z=fo})),ot("worker",["./shared"],(function(k){class c{constructor(C,D){this.keyCache={},C&&this.replace(C,D)}replace(C,D){this._layerConfigs={},this._layers={},this.update(C,[],D)}update(C,D,F){for(const J of C){this._layerConfigs[J.id]=J;const ae=this._layers[J.id]=k.bT(J,F);ae._featureFilter=k.aj(ae.filter,F),this.keyCache[J.id]&&delete this.keyCache[J.id]}for(const J of D)delete this.keyCache[J],delete this._layerConfigs[J],delete this._layers[J];this.familiesBySource={};const $=k.cM(Object.values(this._layerConfigs),this.keyCache);for(const J of $){const ae=J.map((K=>this._layers[K.id])),oe=ae[0];if(oe.isHidden())continue;const re=oe.source||"";let ne=this.familiesBySource[re];ne||(ne=this.familiesBySource[re]={});const be=oe.sourceLayer||k.ai;let me=ne[be];me||(me=ne[be]=[]),me.push(ae)}}}class Ee{constructor(C){const D={},F=[];for(const oe in C){const re=C[oe],ne=D[oe]={};for(const be in re){const me=re[+be];if(!me||me.bitmap.width===0||me.bitmap.height===0)continue;const K={x:0,y:0,w:me.bitmap.width+2,h:me.bitmap.height+2};F.push(K),ne[be]={rect:K,metrics:me.metrics}}}const{w:$,h:J}=k.p(F),ae=new k.r({width:$||1,height:J||1});for(const oe in C){const re=C[oe];for(const ne in re){const be=re[+ne];if(!be||be.bitmap.width===0||be.bitmap.height===0)continue;const me=D[oe][ne].rect;k.r.copy(be.bitmap,ae,{x:0,y:0},{x:me.x+1,y:me.y+1},be.bitmap)}}this.image=ae,this.positions=D}}k.cN("GlyphAtlas",Ee);class Jt{constructor(C){this.tileID=new k.a2(C.tileID.overscaledZ,C.tileID.wrap,C.tileID.canonical.z,C.tileID.canonical.x,C.tileID.canonical.y),this.uid=C.uid,this.zoom=C.zoom,this.pixelRatio=C.pixelRatio,this.tileSize=C.tileSize,this.source=C.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=C.showCollisionBoxes,this.collectResourceTiming=!!C.collectResourceTiming,this.returnDependencies=!!C.returnDependencies,this.promoteId=C.promoteId,this.inFlightDependencies=[]}parse(C,D,F,$,J){return k._(this,void 0,void 0,(function*(){this.status="parsing",this.data=C,this.collisionBoxArray=new k.ag;const ae=new k.cO(Object.keys(C.layers).sort()),oe=new k.cP(this.tileID,this.promoteId);oe.bucketLayerIDs=[];const re={},ne={featureIndex:oe,iconDependencies:{},patternDependencies:{},glyphDependencies:{},dashDependencies:{},availableImages:F,subdivisionGranularity:J},be=D.familiesBySource[this.source];for(const at in be){const bt=C.layers[at];if(!bt)continue;bt.version===1&&k.w(`Vector tile source "${this.source}" layer "${at}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const In=ae.encode(at),Dr=[];for(let Pe=0;Pe<bt.length;Pe++){const $e=bt.feature(Pe),We=oe.getId($e,at);Dr.push({feature:$e,id:We,index:Pe,sourceLayerIndex:In})}for(const Pe of be[at]){const $e=Pe[0];$e.source!==this.source&&k.w(`layer.source = ${$e.source} does not equal this.source = ${this.source}`),$e.isHidden(this.zoom,!0)||(Nt(Pe,this.zoom,F),(re[$e.id]=$e.createBucket({index:oe.bucketLayerIDs.length,layers:Pe,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:In,sourceID:this.source})).populate(Dr,ne,this.tileID.canonical),oe.bucketLayerIDs.push(Pe.map((We=>We.id))))}}const me=k.bY(ne.glyphDependencies,(at=>Object.keys(at).map(Number)));this.inFlightDependencies.forEach((at=>at?.abort())),this.inFlightDependencies=[];let K=Promise.resolve({});if(Object.keys(me).length){const at=new AbortController;this.inFlightDependencies.push(at),K=$.sendAsync({type:"GG",data:{stacks:me,source:this.source,tileID:this.tileID,type:"glyphs"}},at)}const Oe=Object.keys(ne.iconDependencies);let Ze=Promise.resolve({});if(Oe.length){const at=new AbortController;this.inFlightDependencies.push(at),Ze=$.sendAsync({type:"GI",data:{icons:Oe,source:this.source,tileID:this.tileID,type:"icons"}},at)}const Ne=Object.keys(ne.patternDependencies);let qe=Promise.resolve({});if(Ne.length){const at=new AbortController;this.inFlightDependencies.push(at),qe=$.sendAsync({type:"GI",data:{icons:Ne,source:this.source,tileID:this.tileID,type:"patterns"}},at)}const Ge=ne.dashDependencies;let Ye=Promise.resolve({});if(Object.keys(Ge).length){const at=new AbortController;this.inFlightDependencies.push(at),Ye=$.sendAsync({type:"GDA",data:{dashes:Ge}},at)}const[Lt,mt,Ft,ni]=yield Promise.all([K,Ze,qe,Ye]),At=new Ee(Lt),Se=new k.cQ(mt,Ft);for(const at in re){const bt=re[at];bt instanceof k.ah?(Nt(bt.layers,this.zoom,F),k.cR({bucket:bt,glyphMap:Lt,glyphPositions:At.positions,imageMap:mt,imagePositions:Se.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:ne.subdivisionGranularity})):bt.hasDependencies&&(bt instanceof k.cS||bt instanceof k.cT||bt instanceof k.cU)&&(Nt(bt.layers,this.zoom,F),bt.addFeatures(ne,this.tileID.canonical,Se.patternPositions,ni))}return this.status="done",{buckets:Object.values(re).filter((at=>!at.isEmpty())),featureIndex:oe,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:At.image,imageAtlas:Se,dashPositions:ni,glyphMap:this.returnDependencies?Lt:null,iconMap:this.returnDependencies?mt:null,glyphPositions:this.returnDependencies?At.positions:null}}))}}function Nt(ie,C,D){const F=new k.H(C);for(const $ of ie)$.recalculate(F,D)}class or{constructor(){this.loading={},this.loaded={},this.parsing={}}startLoading(C,D){this.loading[C]=D}finishLoading(C){delete this.loading[C]}abort(C){const D=this.loading[C];D?.abort&&(D.abort.abort(),delete this.loading[C])}setParsing(C,D){this.parsing[C]=D}consumeParsing(C){const D=this.parsing[C];if(D)return delete this.parsing[C],D}clearParsing(C){delete this.parsing[C]}markLoaded(C,D){this.loaded[C]=D}getLoaded(C){const D=this.loaded[C];if(D)return D}removeLoaded(C){delete this.loaded[C]}clearLoaded(){this.loaded={}}}class lr{constructor(C,D,F,$,J){this.type=C,this.properties=F||{},this.extent=J,this.pointsArray=D,this.id=$}loadGeometry(){return this.pointsArray.map((C=>C.map((D=>new k.P(D.x,D.y)))))}}class Zt{constructor(C,D,F){this.version=2,this._myFeatures=C,this.name=D,this.length=C.length,this.extent=F}feature(C){return this._myFeatures[C]}}class Jr{constructor(){this.layers={}}addLayer(C){this.layers[C.name]=C}}function it(ie){let C=k.cV(ie);return C.byteOffset===0&&C.byteLength===C.buffer.byteLength||(C=new Uint8Array(C)),{vectorTile:ie,rawData:C.buffer}}function fe(ie,C,D){const{extent:F}=ie,$=Math.pow(2,D.z-C.z),J=(D.x-C.x*$)*F,ae=(D.y-C.y*$)*F,oe=[];for(let re=0;re<ie.length;re++){const ne=ie.feature(re);let be=ne.loadGeometry();for(const K of be)for(const Oe of K)Oe.x=Oe.x*$-J,Oe.y=Oe.y*$-ae;const me=128;be=k.cW(be,ne.type,-me,-me,F+me,F+me),be.length!==0&&oe.push(new lr(ne.type,be,ne.properties,ne.id,F))}return new Zt(oe,ie.name,F)}class Xn{constructor(C,D,F){this.actor=C,this.layerIndex=D,this.availableImages=F,this.tileState=new or,this.overzoomedTileResultCache=new k.cX(1e3)}loadVectorTile(C,D){return k._(this,void 0,void 0,(function*(){const F=yield k.n(C.request,D);try{return{vectorTile:C.encoding!=="mlt"?new k.cY(new k.cZ(F.data)):new k.c_(F.data),rawData:F.data,cacheControl:F.cacheControl,expires:F.expires}}catch($){const J=new Uint8Array(F.data);let ae=`Unable to parse the tile at ${C.request.url}, `;throw ae+=J[0]===31&&J[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${$.message}`,new Error(ae)}}))}loadTile(C){return k._(this,void 0,void 0,(function*(){const{uid:D,overzoomParameters:F}=C;F&&(C.request=F.overzoomRequest);const $=this._startRequestTiming(C),J=new Jt(C);this.tileState.startLoading(D,J);const ae=new AbortController;J.abort=ae;try{const oe=yield this.loadVectorTile(C,ae);if(this.tileState.finishLoading(D),!oe)return null;let{vectorTile:re,rawData:ne}=oe;F&&({vectorTile:re,rawData:ne}=this._getOverzoomTile(C,oe.vectorTile));const be=this._getExpiryData(oe),me=this._finishRequestTiming($);J.vectorTile=re,this.tileState.markLoaded(D,J);const K={rawData:ne,cacheControl:be,resourceTiming:me};this.tileState.setParsing(D,K);try{return yield this._parseWorkerTile(J,C,K)}finally{this.tileState.clearParsing(D)}}catch(oe){throw this.tileState.finishLoading(D),J.status="done",this.tileState.markLoaded(D,J),oe}}))}_parseWorkerTile(C,D,F){return k._(this,void 0,void 0,(function*(){let $=yield C.parse(C.vectorTile,this.layerIndex,this.availableImages,this.actor,D.subdivisionGranularity);if(F){const{rawData:J,cacheControl:ae,resourceTiming:oe}=F;$=k.e({rawTileData:J.slice(0),encoding:D.encoding},$,ae,oe)}return $}))}_getExpiryData(C){const{expires:D,cacheControl:F}=C,$={};return D&&($.expires=D),F&&($.cacheControl=F),$}_startRequestTiming(C){var D;if(!((D=C.request)===null||D===void 0)&&D.collectResourceTiming)return new k.c$(C.request.url)}_finishRequestTiming(C){const D=C?.finish();return D?{resourceTiming:JSON.parse(JSON.stringify(D))}:{}}_getOverzoomTile(C,D){const{tileID:F,source:$,overzoomParameters:J}=C,{maxZoomTileID:ae}=J,oe=`${ae.key}_${F.key}`,re=this.overzoomedTileResultCache.get(oe);if(re)return re;const ne=new Jr,be=this.layerIndex.familiesBySource[$];for(const K in be){const Oe=D.layers[K];if(!Oe)continue;const Ze=fe(Oe,ae,F.canonical);Ze.length>0&&ne.addLayer(Ze)}const me=it(ne);return this.overzoomedTileResultCache.set(oe,me),me}reloadTile(C){return k._(this,void 0,void 0,(function*(){const D=C.uid,F=this.tileState.getLoaded(D);if(!F)throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");if(F.showCollisionBoxes=C.showCollisionBoxes,F.status==="parsing"){const $=this.tileState.consumeParsing(D);return yield this._parseWorkerTile(F,C,$)}if(F.status==="done"&&F.vectorTile)return yield this._parseWorkerTile(F,C)}))}abortTile(C){return k._(this,void 0,void 0,(function*(){this.tileState.abort(C.uid)}))}removeTile(C){return k._(this,void 0,void 0,(function*(){this.tileState.removeLoaded(C.uid)}))}}class Ct{constructor(){this.loaded={}}loadTile(C){return k._(this,void 0,void 0,(function*(){const{uid:D,encoding:F,rawImageData:$,redFactor:J,greenFactor:ae,blueFactor:oe,baseShift:re}=C,ne=$.width+2,be=$.height+2,me=k.b($)?new k.R({width:ne,height:be},yield k.d0($,-1,-1,ne,be)):$,K=new k.d1(D,me,F,J,ae,oe,re);return this.loaded=this.loaded||{},this.loaded[D]=K,K}))}removeTile(C){const D=this.loaded,F=C.uid;D&&D[F]&&delete D[F]}}var xt,xn,Yn=(function(){if(xn)return xt;function ie(D,F){if(D.length!==0){C(D[0],F);for(var $=1;$<D.length;$++)C(D[$],!F)}}function C(D,F){for(var $=0,J=0,ae=0,oe=D.length,re=oe-1;ae<oe;re=ae++){var ne=(D[ae][0]-D[re][0])*(D[re][1]+D[ae][1]),be=$+ne;J+=Math.abs($)>=Math.abs(ne)?$-be+ne:ne-be+$,$=be}$+J>=0!=!!F&&D.reverse()}return xn=1,xt=function D(F,$){var J,ae=F&&F.type;if(ae==="FeatureCollection")for(J=0;J<F.features.length;J++)D(F.features[J],$);else if(ae==="GeometryCollection")for(J=0;J<F.geometries.length;J++)D(F.geometries[J],$);else if(ae==="Feature")D(F.geometry,$);else if(ae==="Polygon")ie(F.coordinates,$);else if(ae==="MultiPolygon")for(J=0;J<F.coordinates.length;J++)ie(F.coordinates[J],$);return F}})(),Da=k.d2(Yn);const Li={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:ie=>ie},ka=Math.fround||(gr=new Float32Array(1),ie=>(gr[0]=+ie,gr[0]));var gr;class Qr{constructor(C){this.options=Object.assign(Object.create(Li),C),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(C){const{log:D,minZoom:F,maxZoom:$}=this.options;D&&console.time("total time");const J=`prepare ${C.length} points`;D&&console.time(J),this.points=C;const ae=[];for(let re=0;re<C.length;re++){const ne=C[re];if(!ne.geometry)continue;const[be,me]=ne.geometry.coordinates,K=ka(yr(be)),Oe=ka(tn(me));ae.push(K,Oe,1/0,re,-1,1),this.options.reduce&&ae.push(0)}let oe=this.trees[$+1]=this._createTree(ae);D&&console.timeEnd(J);for(let re=$;re>=F;re--){const ne=+Date.now();oe=this.trees[re]=this._createTree(this._cluster(oe,re)),D&&console.log("z%d: %d clusters in %dms",re,oe.numItems,+Date.now()-ne)}return D&&console.timeEnd("total time"),this}getClusters(C,D){let F=((C[0]+180)%360+360)%360-180;const $=Math.max(-90,Math.min(90,C[1]));let J=C[2]===180?180:((C[2]+180)%360+360)%360-180;const ae=Math.max(-90,Math.min(90,C[3]));if(C[2]-C[0]>=360)F=-180,J=180;else if(F>J){const me=this.getClusters([F,$,180,ae],D),K=this.getClusters([-180,$,J,ae],D);return me.concat(K)}const oe=this.trees[this._limitZoom(D)],re=oe.range(yr(F),tn(ae),yr(J),tn($)),ne=oe.data,be=[];for(const me of re){const K=this.stride*me;be.push(ne[K+5]>1?vn(ne,K,this.clusterProps):this.points[ne[K+3]])}return be}getChildren(C){const D=this._getOriginId(C),F=this._getOriginZoom(C),$="No cluster with the specified id.",J=this.trees[F];if(!J)throw new Error($);const ae=J.data;if(D*this.stride>=ae.length)throw new Error($);const oe=this.options.radius/(this.options.extent*Math.pow(2,F-1)),re=J.within(ae[D*this.stride],ae[D*this.stride+1],oe),ne=[];for(const be of re){const me=be*this.stride;ae[me+4]===C&&ne.push(ae[me+5]>1?vn(ae,me,this.clusterProps):this.points[ae[me+3]])}if(ne.length===0)throw new Error($);return ne}getLeaves(C,D,F){const $=[];return this._appendLeaves($,C,D=D||10,F=F||0,0),$}getTile(C,D,F){const $=this.trees[this._limitZoom(C)],J=Math.pow(2,C),{extent:ae,radius:oe}=this.options,re=oe/ae,ne=(F-re)/J,be=(F+1+re)/J,me={features:[]};return this._addTileFeatures($.range((D-re)/J,ne,(D+1+re)/J,be),$.data,D,F,J,me),D===0&&this._addTileFeatures($.range(1-re/J,ne,1,be),$.data,J,F,J,me),D===J-1&&this._addTileFeatures($.range(0,ne,re/J,be),$.data,-1,F,J,me),me.features.length?me:null}getClusterExpansionZoom(C){let D=this._getOriginZoom(C)-1;for(;D<=this.options.maxZoom;){const F=this.getChildren(C);if(D++,F.length!==1)break;C=F[0].properties.cluster_id}return D}_appendLeaves(C,D,F,$,J){const ae=this.getChildren(D);for(const oe of ae){const re=oe.properties;if(re&&re.cluster?J+re.point_count<=$?J+=re.point_count:J=this._appendLeaves(C,re.cluster_id,F,$,J):J<$?J++:C.push(oe),C.length===F)break}return J}_createTree(C){const D=new k.aT(C.length/this.stride|0,this.options.nodeSize,Float32Array);for(let F=0;F<C.length;F+=this.stride)D.add(C[F],C[F+1]);return D.finish(),D.data=C,D}_addTileFeatures(C,D,F,$,J,ae){for(const oe of C){const re=oe*this.stride,ne=D[re+5]>1;let be,me,K;if(ne)be=en(D,re,this.clusterProps),me=D[re],K=D[re+1];else{const Ne=this.points[D[re+3]];be=Ne.properties;const[qe,Ge]=Ne.geometry.coordinates;me=yr(qe),K=tn(Ge)}const Oe={type:1,geometry:[[Math.round(this.options.extent*(me*J-F)),Math.round(this.options.extent*(K*J-$))]],tags:be};let Ze;Ze=ne||this.options.generateId?D[re+3]:this.points[D[re+3]].id,Ze!==void 0&&(Oe.id=Ze),ae.features.push(Oe)}}_limitZoom(C){return Math.max(this.options.minZoom,Math.min(Math.floor(+C),this.options.maxZoom+1))}_cluster(C,D){const{radius:F,extent:$,reduce:J,minPoints:ae}=this.options,oe=F/($*Math.pow(2,D)),re=C.data,ne=[],be=this.stride;for(let me=0;me<re.length;me+=be){if(re[me+2]<=D)continue;re[me+2]=D;const K=re[me],Oe=re[me+1],Ze=C.within(re[me],re[me+1],oe),Ne=re[me+5];let qe=Ne;for(const Ge of Ze){const Ye=Ge*be;re[Ye+2]>D&&(qe+=re[Ye+5])}if(qe>Ne&&qe>=ae){let Ge,Ye=K*Ne,Lt=Oe*Ne,mt=-1;const Ft=(me/be<<5)+(D+1)+this.points.length;for(const ni of Ze){const At=ni*be;if(re[At+2]<=D)continue;re[At+2]=D;const Se=re[At+5];Ye+=re[At]*Se,Lt+=re[At+1]*Se,re[At+4]=Ft,J&&(Ge||(Ge=this._map(re,me,!0),mt=this.clusterProps.length,this.clusterProps.push(Ge)),J(Ge,this._map(re,At)))}re[me+4]=Ft,ne.push(Ye/qe,Lt/qe,1/0,Ft,-1,qe),J&&ne.push(mt)}else{for(let Ge=0;Ge<be;Ge++)ne.push(re[me+Ge]);if(qe>1)for(const Ge of Ze){const Ye=Ge*be;if(!(re[Ye+2]<=D)){re[Ye+2]=D;for(let Lt=0;Lt<be;Lt++)ne.push(re[Ye+Lt])}}}}return ne}_getOriginId(C){return C-this.points.length>>5}_getOriginZoom(C){return(C-this.points.length)%32}_map(C,D,F){if(C[D+5]>1){const ae=this.clusterProps[C[D+6]];return F?Object.assign({},ae):ae}const $=this.points[C[D+3]].properties,J=this.options.map($);return F&&J===$?Object.assign({},J):J}}function vn(ie,C,D){return{type:"Feature",id:ie[C+3],properties:en(ie,C,D),geometry:{type:"Point",coordinates:[(F=ie[C],360*(F-.5)),Ra(ie[C+1])]}};var F}function en(ie,C,D){const F=ie[C+5],$=F>=1e4?`${Math.round(F/1e3)}k`:F>=1e3?Math.round(F/100)/10+"k":F,J=ie[C+6],ae=J===-1?{}:Object.assign({},D[J]);return Object.assign(ae,{cluster:!0,cluster_id:ie[C+3],point_count:F,point_count_abbreviated:$})}function yr(ie){return ie/360+.5}function tn(ie){const C=Math.sin(ie*Math.PI/180),D=.5-.25*Math.log((1+C)/(1-C))/Math.PI;return D<0?0:D>1?1:D}function Ra(ie){const C=(180-360*ie)*Math.PI/180;return 360*Math.atan(Math.exp(C))/Math.PI-90}function Kn(ie,C,D,F){let $=F;const J=C+(D-C>>1);let ae,oe=D-C;const re=ie[C],ne=ie[C+1],be=ie[D],me=ie[D+1];for(let K=C+3;K<D;K+=3){const Oe=Er(ie[K],ie[K+1],re,ne,be,me);if(Oe>$)ae=K,$=Oe;else if(Oe===$){const Ze=Math.abs(K-J);Ze<oe&&(ae=K,oe=Ze)}}$>F&&(ae-C>3&&Kn(ie,C,ae,F),ie[ae+2]=$,D-ae>3&&Kn(ie,ae,D,F))}function Er(ie,C,D,F,$,J){let ae=$-D,oe=J-F;if(ae!==0||oe!==0){const re=((ie-D)*ae+(C-F)*oe)/(ae*ae+oe*oe);re>1?(D=$,F=J):re>0&&(D+=ae*re,F+=oe*re)}return ae=ie-D,oe=C-F,ae*ae+oe*oe}function Ut(ie,C,D,F){const $={type:C,geom:D},J={id:ie??null,type:$.type,geometry:$.geom,tags:F,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};switch($.type){case"Point":case"MultiPoint":case"LineString":st(J,$.geom);break;case"Polygon":st(J,$.geom[0]);break;case"MultiLineString":for(const ae of $.geom)st(J,ae);break;case"MultiPolygon":for(const ae of $.geom)st(J,ae[0])}return J}function st(ie,C){for(let D=0;D<C.length;D+=3)ie.minX=Math.min(ie.minX,C[D]),ie.minY=Math.min(ie.minY,C[D+1]),ie.maxX=Math.max(ie.maxX,C[D]),ie.maxY=Math.max(ie.maxY,C[D+1])}function bn(ie,C){const D=[];switch(ie.type){case"FeatureCollection":for(let F=0;F<ie.features.length;F++)xr(D,ie.features[F],C,F);break;case"Feature":xr(D,ie,C);break;default:xr(D,{geometry:ie,properties:void 0},C)}return D}function xr(ie,C,D,F){if(!C.geometry)return;if(C.geometry.type==="GeometryCollection"){for(const oe of C.geometry.geometries)xr(ie,{id:C.id,geometry:oe,properties:C.properties},D,F);return}if(!C.geometry.coordinates?.length)return;const J=Math.pow(D.tolerance/((1<<D.maxZoom)*D.extent),2);let ae=C.id;switch(D.promoteId?ae=C.properties?.[D.promoteId]:D.generateId&&(ae=F||0),C.geometry.type){case"Point":{const oe=[];return La(C.geometry.coordinates,oe),void ie.push(Ut(ae,C.geometry.type,oe,C.properties))}case"MultiPoint":{const oe=[];for(const re of C.geometry.coordinates)La(re,oe);return void ie.push(Ut(ae,C.geometry.type,oe,C.properties))}case"LineString":{const oe=[];return Jn(C.geometry.coordinates,oe,J,!1),void ie.push(Ut(ae,C.geometry.type,oe,C.properties))}case"MultiLineString":{if(D.lineMetrics){for(const re of C.geometry.coordinates){const ne=[];Jn(re,ne,J,!1),ie.push(Ut(ae,"LineString",ne,C.properties))}return}const oe=[];return rn(C.geometry.coordinates,oe,J,!1),void ie.push(Ut(ae,C.geometry.type,oe,C.properties))}case"Polygon":{const oe=[];return rn(C.geometry.coordinates,oe,J,!0),void ie.push(Ut(ae,C.geometry.type,oe,C.properties))}case"MultiPolygon":{const oe=[];for(const re of C.geometry.coordinates){const ne=[];rn(re,ne,J,!0),oe.push(ne)}return void ie.push(Ut(ae,C.geometry.type,oe,C.properties))}default:throw new Error("Input data is not a valid GeoJSON object.")}}function La(ie,C){C.push(Cr(ie[0]),Yi(ie[1]),0)}function Jn(ie,C,D,F){let $,J,ae=0;for(let re=0;re<ie.length;re++){const ne=Cr(ie[re][0]),be=Yi(ie[re][1]);C.push(ne,be,0),re>0&&(ae+=F?($*be-ne*J)/2:Math.sqrt(Math.pow(ne-$,2)+Math.pow(be-J,2))),$=ne,J=be}const oe=C.length-3;C[2]=1,D>0&&Kn(C,0,oe,D),C[oe+2]=1,C.size=Math.abs(ae),C.start=0,C.end=C.size}function rn(ie,C,D,F){for(let $=0;$<ie.length;$++){const J=[];Jn(ie[$],J,D,F),C.push(J)}}function Cr(ie){return ie/360+.5}function Yi(ie){const C=Math.sin(ie*Math.PI/180),D=.5-.25*Math.log((1+C)/(1-C))/Math.PI;return D<0?0:D>1?1:D}function ui(ie,C,D,F,$,J,ae,oe){if(F/=C,J>=(D/=C)&&ae<F)return ie;if(ae<D||J>=F)return null;const re=[];for(const ne of ie){const be=$===0?ne.minX:ne.minY,me=$===0?ne.maxX:ne.maxY;if(be>=D&&me<F)re.push(ne);else if(!(me<D||be>=F))switch(ne.type){case"Point":case"MultiPoint":{const K=[];if(Ei(ne.geometry,K,D,F,$),!K.length)continue;re.push(Ut(ne.id,K.length===3?"Point":"MultiPoint",K,ne.tags));continue}case"LineString":{const K=[];if(Qn(ne.geometry,K,D,F,$,!1,oe.lineMetrics),!K.length)continue;if(oe.lineMetrics){for(const Oe of K)re.push(Ut(ne.id,ne.type,Oe,ne.tags));continue}if(K.length>1){re.push(Ut(ne.id,"MultiLineString",K,ne.tags));continue}re.push(Ut(ne.id,ne.type,K[0],ne.tags));continue}case"MultiLineString":{const K=[];if(Tn(ne.geometry,K,D,F,$,!1),!K.length)continue;if(K.length===1){re.push(Ut(ne.id,"LineString",K[0],ne.tags));continue}re.push(Ut(ne.id,ne.type,K,ne.tags));continue}case"Polygon":{const K=[];if(Tn(ne.geometry,K,D,F,$,!0),!K.length)continue;re.push(Ut(ne.id,ne.type,K,ne.tags));continue}case"MultiPolygon":{const K=[];for(const Oe of ne.geometry){const Ze=[];Tn(Oe,Ze,D,F,$,!0),Ze.length&&K.push(Ze)}if(!K.length)continue;re.push(Ut(ne.id,ne.type,K,ne.tags));continue}}}return re.length?re:null}function Ei(ie,C,D,F,$){for(let J=0;J<ie.length;J+=3){const ae=ie[J+$];ae>=D&&ae<=F&&hi(C,ie[J],ie[J+1],ie[J+2])}}function Qn(ie,C,D,F,$,J,ae){let oe=wn(ie);const re=$===0?Ds:di;let ne,be,me=ie.start;for(let qe=0;qe<ie.length-3;qe+=3){const Ge=ie[qe],Ye=ie[qe+1],Lt=ie[qe+2],mt=ie[qe+3],Ft=ie[qe+4],ni=$===0?Ge:Ye,At=$===0?mt:Ft;let Se=!1;ae&&(ne=Math.sqrt(Math.pow(Ge-mt,2)+Math.pow(Ye-Ft,2))),ni<D?At>D&&(be=re(oe,Ge,Ye,mt,Ft,D),ae&&(oe.start=me+ne*be)):ni>F?At<F&&(be=re(oe,Ge,Ye,mt,Ft,F),ae&&(oe.start=me+ne*be)):hi(oe,Ge,Ye,Lt),At<D&&ni>=D&&(be=re(oe,Ge,Ye,mt,Ft,D),Se=!0),At>F&&ni<=F&&(be=re(oe,Ge,Ye,mt,Ft,F),Se=!0),!J&&Se&&(ae&&(oe.end=me+ne*be),C.push(oe),oe=wn(ie)),ae&&(me+=ne)}let K=ie.length-3;const Oe=ie[K],Ze=ie[K+1],Ne=$===0?Oe:Ze;Ne>=D&&Ne<=F&&hi(oe,Oe,Ze,ie[K+2]),K=oe.length-3,J&&K>=3&&(oe[K]!==oe[0]||oe[K+1]!==oe[1])&&hi(oe,oe[0],oe[1],oe[2]),oe.length&&C.push(oe)}function wn(ie){const C=[];return C.size=ie.size,C.start=ie.start,C.end=ie.end,C}function Tn(ie,C,D,F,$,J){for(const ae of ie)Qn(ae,C,D,F,$,J,!1)}function hi(ie,C,D,F){ie.push(C,D,F)}function Ds(ie,C,D,F,$,J){const ae=(J-C)/(F-C);return hi(ie,J,D+($-D)*ae,1),ae}function di(ie,C,D,F,$,J){const ae=(J-D)/($-D);return hi(ie,C+(F-C)*ae,J,1),ae}function Fi(ie,C){const D=C.buffer/C.extent;let F=ie;const $=ui(ie,1,-1-D,D,0,-1,2,C),J=ui(ie,1,1-D,2+D,0,-1,2,C);return($||J)&&(F=ui(ie,1,-D,1+D,0,-1,2,C)||[],$&&(F=vr($,1).concat(F)),J&&(F=F.concat(vr(J,-1)))),F}function vr(ie,C){const D=[];for(const F of ie)switch(F.type){case"Point":case"MultiPoint":case"LineString":{const $=vt(F.geometry,C);D.push(Ut(F.id,F.type,$,F.tags));continue}case"MultiLineString":case"Polygon":{const $=[];for(const J of F.geometry)$.push(vt(J,C));D.push(Ut(F.id,F.type,$,F.tags));continue}case"MultiPolygon":{const $=[];for(const J of F.geometry){const ae=[];for(const oe of J)ae.push(vt(oe,C));$.push(ae)}D.push(Ut(F.id,F.type,$,F.tags));continue}}return D}function vt(ie,C){const D=[];D.size=ie.size,ie.start!==void 0&&(D.start=ie.start,D.end=ie.end);for(let F=0;F<ie.length;F+=3)D.push(ie[F]+C,ie[F+1],ie[F+2]);return D}function Sn(ie,C){if(ie.transformed)return ie;const D=1<<ie.z,F=ie.x,$=ie.y;for(const J of ie.features){if(J.type===1){const oe=[];for(let re=0;re<J.geometry.length;re+=2)oe.push(ea(J.geometry[re],J.geometry[re+1],C,D,F,$));J.geometry=oe;continue}const ae=[];for(const oe of J.geometry){const re=[];for(let ne=0;ne<oe.length;ne+=2)re.push(ea(oe[ne],oe[ne+1],C,D,F,$));ae.push(re)}J.geometry=ae}return ie.transformed=!0,ie}function ea(ie,C,D,F,$,J){return[Math.round(D*(ie*F-$)),Math.round(D*(C*F-J))]}function Pn(ie,C,D,F,$){const J=C===$.maxZoom?0:$.tolerance/((1<<C)*$.extent),ae={features:[],numPoints:0,numSimplified:0,numFeatures:ie.length,source:null,x:D,y:F,z:C,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const oe of ie)nn(ae,oe,J,$);return ae}function nn(ie,C,D,F){ie.minX=Math.min(ie.minX,C.minX),ie.minY=Math.min(ie.minY,C.minY),ie.maxX=Math.max(ie.maxX,C.maxX),ie.maxY=Math.max(ie.maxY,C.maxY);let $,J=C.tags||null;switch(C.type){case"Point":case"MultiPoint":{const ae=[];for(let oe=0;oe<C.geometry.length;oe+=3)ae.push(C.geometry[oe],C.geometry[oe+1]),ie.numPoints++,ie.numSimplified++;if(!ae.length)return;$={type:1,tags:J,geometry:ae};break}case"LineString":{const ae=[];if(br(ae,C.geometry,ie,D,!1,!1),!ae.length)return;if(F.lineMetrics){J={};for(const oe in C.tags)J[oe]=C.tags[oe];J.mapbox_clip_start=C.geometry.start/C.geometry.size,J.mapbox_clip_end=C.geometry.end/C.geometry.size}$={type:2,tags:J,geometry:ae};break}case"MultiLineString":case"Polygon":{const ae=[];for(let oe=0;oe<C.geometry.length;oe++)br(ae,C.geometry[oe],ie,D,C.type==="Polygon",oe===0);if(!ae.length)return;$={type:C.type==="Polygon"?3:2,tags:J,geometry:ae};break}case"MultiPolygon":{const ae=[];for(let oe=0;oe<C.geometry.length;oe++){const re=C.geometry[oe];for(let ne=0;ne<re.length;ne++)br(ae,re[ne],ie,D,!0,ne===0)}if(!ae.length)return;$={type:3,tags:J,geometry:ae};break}}C.id!==null&&($.id=C.id),ie.features.push($)}function br(ie,C,D,F,$,J){const ae=F*F;if(F>0&&C.size<($?ae:F))return void(D.numPoints+=C.length/3);const oe=[];for(let re=0;re<C.length;re+=3)(F===0||C[re+2]>ae)&&(D.numSimplified++,oe.push(C[re],C[re+1])),D.numPoints++;$&&(function(re,ne){let be=0;for(let me=0,K=re.length,Oe=K-2;me<K;Oe=me,me+=2)be+=(re[me]-re[Oe])*(re[me+1]+re[Oe+1]);if(be>0===ne)for(let me=0,K=re.length;me<K/2;me+=2){const Oe=re[me],Ze=re[me+1];re[me]=re[K-2-me],re[me+1]=re[K-1-me],re[K-2-me]=Oe,re[K-1-me]=Ze}})(oe,J),ie.push(oe)}function an(ie,C,D){const F=!!C.newGeometry,$=C.removeAllProperties||C.removeProperties?.length>0||C.addOrUpdateProperties?.length>0;if(F){let J=bn({type:"FeatureCollection",features:[{type:"Feature",id:ie.id,geometry:C.newGeometry,properties:$?Mn(ie.tags,C):ie.tags}]},D);return J=Fi(J,D),J[0]}if($){const J={...ie};return J.tags=Mn(J.tags,C),J}return null}function Mn(ie,C){if(C.removeAllProperties)return{};const D={...ie||{}};if(C.removeProperties)for(const F of C.removeProperties)delete D[F];if(C.addOrUpdateProperties)for(const{key:F,value:$}of C.addOrUpdateProperties)D[F]=$;return D}const Ar={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,updateable:!1,debug:0};class zr{options;tiles;tileCoords;stats={};total=0;source;constructor(C,D){const F=(D=this.options=Object.assign({},Ar,D)).debug;if(F&&console.time("preprocess data"),D.maxZoom<0||D.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(D.promoteId&&D.generateId)throw new Error("promoteId and generateId cannot be used together.");let $=bn(C,D);this.tiles={},this.tileCoords=[],F&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",D.indexMaxZoom,D.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),$=Fi($,D),$.length&&this.splitTile($,0,0,0),D.updateable&&(this.source=$),F&&($.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)))}splitTile(C,D,F,$,J,ae,oe){const re=[C,D,F,$],ne=this.options,be=ne.debug;for(;re.length;){$=re.pop(),F=re.pop(),D=re.pop(),C=re.pop();const me=1<<D,K=sn(D,F,$);let Oe=this.tiles[K];if(!Oe&&(be>1&&console.time("creation"),Oe=this.tiles[K]=Pn(C,D,F,$,ne),this.tileCoords.push({z:D,x:F,y:$,id:K}),be)){be>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",D,F,$,Oe.numFeatures,Oe.numPoints,Oe.numSimplified),console.timeEnd("creation"));const Se=`z${D}`;this.stats[Se]=(this.stats[Se]||0)+1,this.total++}if(Oe.source=C,J==null){if(D===ne.indexMaxZoom||Oe.numPoints<=ne.indexMaxPoints)continue}else{if(D===ne.maxZoom||D===J)continue;if(J!=null){const Se=J-D;if(F!==ae>>Se||$!==oe>>Se)continue}}if(Oe.source=null,!C.length)continue;be>1&&console.time("clipping");const Ze=.5*ne.buffer/ne.extent,Ne=.5-Ze,qe=.5+Ze,Ge=1+Ze;let Ye=null,Lt=null,mt=null,Ft=null;const ni=ui(C,me,F-Ze,F+qe,0,Oe.minX,Oe.maxX,ne),At=ui(C,me,F+Ne,F+Ge,0,Oe.minX,Oe.maxX,ne);ni&&(Ye=ui(ni,me,$-Ze,$+qe,1,Oe.minY,Oe.maxY,ne),Lt=ui(ni,me,$+Ne,$+Ge,1,Oe.minY,Oe.maxY,ne)),At&&(mt=ui(At,me,$-Ze,$+qe,1,Oe.minY,Oe.maxY,ne),Ft=ui(At,me,$+Ne,$+Ge,1,Oe.minY,Oe.maxY,ne)),be>1&&console.timeEnd("clipping"),re.push(Ye||[],D+1,2*F,2*$),re.push(Lt||[],D+1,2*F,2*$+1),re.push(mt||[],D+1,2*F+1,2*$),re.push(Ft||[],D+1,2*F+1,2*$+1)}}getTile(C,D,F){C=+C,D=+D,F=+F;const $=this.options,{extent:J,debug:ae}=$;if(C<0||C>24)return null;const oe=1<<C,re=sn(C,D=D+oe&oe-1,F);if(this.tiles[re])return Sn(this.tiles[re],J);ae>1&&console.log("drilling down to z%d-%d-%d",C,D,F);let ne,be=C,me=D,K=F;for(;!ne&&be>0;)be--,me>>=1,K>>=1,ne=this.tiles[sn(be,me,K)];return ne?.source?(ae>1&&(console.log("found parent tile z%d-%d-%d",be,me,K),console.time("drilling down")),this.splitTile(ne.source,be,me,K,C,D,F),ae>1&&console.timeEnd("drilling down"),this.tiles[re]?Sn(this.tiles[re],J):null):null}invalidateTiles(C){const D=this.options,{debug:F}=D;let $=1/0,J=-1/0,ae=1/0,oe=-1/0;for(const be of C)$=Math.min($,be.minX),J=Math.max(J,be.maxX),ae=Math.min(ae,be.minY),oe=Math.max(oe,be.maxY);const re=D.buffer/D.extent,ne=new Set;for(const be in this.tiles){const me=this.tiles[be],K=1<<me.z,Oe=(me.x-re)/K,Ze=(me.x+1+re)/K,Ne=(me.y-re)/K,qe=(me.y+1+re)/K;if(J<Oe||$>=Ze||oe<Ne||ae>=qe)continue;let Ge=!1;for(const Ye of C)if(Ye.maxX>=Oe&&Ye.minX<Ze&&Ye.maxY>=Ne&&Ye.minY<qe){Ge=!0;break}if(Ge){if(F){F>1&&console.log("invalidate tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",me.z,me.x,me.y,me.numFeatures,me.numPoints,me.numSimplified);const Ye=`z${me.z}`;this.stats[Ye]=(this.stats[Ye]||0)-1,this.total--}delete this.tiles[be],ne.add(be)}}ne.size&&(this.tileCoords=this.tileCoords.filter((be=>!ne.has(be.id))))}updateData(C){const D=this.options,F=D.debug;if(!D.updateable)throw new Error("to update tile geojson `updateable` option must be set to true");const{affected:$,source:J}=(function(me,K,Oe){const Ze=(function(qe){return qe?{removeAll:qe.removeAll,remove:new Set(qe.remove||[]),add:new Map(qe.add?.map((Ge=>[Ge.id,Ge]))),update:new Map(qe.update?.map((Ge=>[Ge.id,Ge])))}:{remove:new Set,add:new Map,update:new Map}})(K);let Ne=[];if(Ze.removeAll&&(Ne=me,me=[]),Ze.remove.size||Ze.add.size){const qe=[];for(const Ge of me){const{id:Ye}=Ge;(Ze.remove.has(Ye)||Ze.add.has(Ye))&&qe.push(Ge)}if(qe.length){Ne.push(...qe);const Ge=new Set(qe.map((Ye=>Ye.id)));me=me.filter((Ye=>!Ge.has(Ye.id)))}if(Ze.add.size){let Ge=bn({type:"FeatureCollection",features:Array.from(Ze.add.values())},Oe);Ge=Fi(Ge,Oe),Ne.push(...Ge),me.push(...Ge)}}if(Ze.update.size)for(const[qe,Ge]of Ze.update){const Ye=me.findIndex((Ft=>Ft.id===qe));if(Ye===-1)continue;const Lt=me[Ye],mt=an(Lt,Ge,Oe);mt&&(Ne.push(Lt,mt),me[Ye]=mt)}return{affected:Ne,source:me}})(this.source,C,D);if(!$.length)return;this.source=J,F>1&&(console.log("invalidating tiles"),console.time("invalidating")),this.invalidateTiles($),F>1&&console.timeEnd("invalidating");const[ae,oe,re]=[0,0,0],ne=Pn(this.source,ae,oe,re,this.options);ne.source=this.source;const be=sn(ae,oe,re);if(this.tiles[be]=ne,this.tileCoords.push({z:ae,x:oe,y:re,id:be}),F){const me=`z${ae}`;this.stats[me]=(this.stats[me]||0)+1,this.total++}}}function sn(ie,C,D){return 32*((1<<ie)*D+C)+ie}class ta{constructor(C,D,F,$=Fa){this._dataUpdateable=new Map,this.actor=C,this.layerIndex=D,this.availableImages=F,this.tileState=new or,this._createGeoJSONIndex=$}loadVectorTile(C){if(!this._geoJSONIndex)throw new Error("Unable to parse the data into a cluster or geojson");const{z:D,x:F,y:$}=C.tileID.canonical,J=this._geoJSONIndex.getTile(D,F,$);return J?it(new k.d3(J.features,{version:2,extent:k.a5})):null}loadTile(C){return k._(this,void 0,void 0,(function*(){const{uid:D}=C,F=new Jt(C);F.abort=new AbortController;try{const $=this.loadVectorTile(C);if(!$)return null;const{vectorTile:J,rawData:ae}=$;F.vectorTile=J,this.tileState.markLoaded(D,F);const oe={rawData:ae};this.tileState.setParsing(D,oe);try{return yield this._parseWorkerTile(F,C,oe)}finally{this.tileState.clearParsing(D)}}catch($){throw F.status="done",this.tileState.markLoaded(D,F),$}}))}_reloadLoadedTile(C){return k._(this,void 0,void 0,(function*(){const D=C.uid,F=this.tileState.getLoaded(D);if(!F)throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");if(F.showCollisionBoxes=C.showCollisionBoxes,F.status==="parsing"){const $=this.tileState.consumeParsing(D);return yield this._parseWorkerTile(F,C,$)}if(F.status==="done"&&F.vectorTile)return yield this._parseWorkerTile(F,C)}))}_parseWorkerTile(C,D,F){return k._(this,void 0,void 0,(function*(){let $=yield C.parse(C.vectorTile,this.layerIndex,this.availableImages,this.actor,D.subdivisionGranularity);if(F){const{rawData:J}=F;$=k.e({rawTileData:J.slice(0)},$)}return $}))}abortTile(C){return k._(this,void 0,void 0,(function*(){this.tileState.abort(C.uid)}))}removeTile(C){return k._(this,void 0,void 0,(function*(){this.tileState.removeLoaded(C.uid)}))}loadData(C){return k._(this,void 0,void 0,(function*(){var D;(D=this._pendingRequest)===null||D===void 0||D.abort();const F=this._startRequestTiming(C);this._pendingRequest=new AbortController;try{(!this._pendingData||C.request||C.data||C.dataDiff)&&(this._pendingData=this.loadAndProcessGeoJSON(C,this._pendingRequest));const $=yield this._pendingData;this._geoJSONIndex=this._createGeoJSONIndex($,C),this.tileState.clearLoaded();const J={};return C.request&&(J.data=$),this._finishRequestTiming(F,C,J),J}catch($){if(delete this._pendingRequest,k.Z($))return{abandoned:!0};throw $}}))}_startRequestTiming(C){var D;if(!((D=C.request)===null||D===void 0)&&D.collectResourceTiming)return new k.c$(C.request.url)}_finishRequestTiming(C,D,F){const $=C?.finish();$&&(F.resourceTiming={[D.source]:JSON.parse(JSON.stringify($))})}getData(){return k._(this,void 0,void 0,(function*(){return this._pendingData}))}reloadTile(C){return this.tileState.getLoaded(C.uid)?this._reloadLoadedTile(C):this.loadTile(C)}loadAndProcessGeoJSON(C,D){return k._(this,void 0,void 0,(function*(){let F;if(C.request?F=yield this.loadGeoJSONFromUrl(C.request,C.promoteId,D):C.data?F=this._loadGeoJSONFromObject(C.data,C.promoteId):C.dataDiff&&(F=this._loadGeoJSONFromDiff(C.dataDiff,C.promoteId,C.source)),delete this._pendingRequest,typeof F!="object")throw new Error(`Input data given to '${C.source}' is not a valid GeoJSON object.`);return Da(F,!0),C.filter&&(F=this._filterGeoJSON(F,C.filter)),F}))}loadGeoJSONFromUrl(C,D,F){return k._(this,void 0,void 0,(function*(){const $=yield k.j(C,F);return this._dataUpdateable=k.a7($.data,D),$.data}))}_loadGeoJSONFromObject(C,D){return this._dataUpdateable=k.a7(C,D),C}_loadGeoJSONFromDiff(C,D,F){if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${F}`);k.a8(this._dataUpdateable,C,D);const $=Array.from(this._dataUpdateable.values());return this._toFeatureCollection($)}_filterGeoJSON(C,D){const F=k.d4(D,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(F.result==="error")throw new Error(F.value.map((J=>`${J.key}: ${J.message}`)).join(", "));const $=C.features.filter((J=>F.value.evaluate({zoom:0},J)));return this._toFeatureCollection($)}_toFeatureCollection(C){return{type:"FeatureCollection",features:C}}removeSource(C){return k._(this,void 0,void 0,(function*(){var D;(D=this._pendingRequest)===null||D===void 0||D.abort()}))}getClusterExpansionZoom(C){return this._geoJSONIndex.getClusterExpansionZoom(C.clusterId)}getClusterChildren(C){return this._geoJSONIndex.getChildren(C.clusterId)}getClusterLeaves(C){return this._geoJSONIndex.getLeaves(C.clusterId,C.limit,C.offset)}}function Fa(ie,C){return C.cluster?new Qr((function({superclusterOptions:D,clusterProperties:F}){if(!F||!D)return D;const $={},J={},ae={accumulated:null,zoom:0},oe={properties:null},re=Object.keys(F);for(const ne of re){const[be,me]=F[ne],K=k.d4(me),Oe=k.d4(typeof be=="string"?[be,["accumulated"],["get",ne]]:be);$[ne]=K.value,J[ne]=Oe.value}return D.map=ne=>{oe.properties=ne;const be={};for(const me of re)be[me]=$[me].evaluate(ae,oe);return be},D.reduce=(ne,be)=>{oe.properties=be;for(const me of re)ae.accumulated=ne[me],ne[me]=J[me].evaluate(ae,oe)},D})(C)).load(ie.features):(function(D,F){return new zr(D,F)})(ie,C.geojsonVtOptions)}class ia{constructor(C){this.self=C,this.actor=new k.L(C),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.globalStates=new Map,this.self.registerWorkerSource=(D,F)=>{if(this.externalWorkerSourceTypes[D])throw new Error(`Worker source with name "${D}" already registered.`);this.externalWorkerSourceTypes[D]=F},this.self.addProtocol=k.cK,this.self.removeProtocol=k.cL,this.self.registerRTLTextPlugin=D=>{k.d5.setMethods(D)},this.actor.registerMessageHandler("LDT",((D,F)=>this._getDEMWorkerSource(D,F.source).loadTile(F))),this.actor.registerMessageHandler("RDT",((D,F)=>k._(this,void 0,void 0,(function*(){this._getDEMWorkerSource(D,F.source).removeTile(F)})))),this.actor.registerMessageHandler("GCEZ",((D,F)=>k._(this,void 0,void 0,(function*(){return this._getWorkerSource(D,F.type,F.source).getClusterExpansionZoom(F)})))),this.actor.registerMessageHandler("GCC",((D,F)=>k._(this,void 0,void 0,(function*(){return this._getWorkerSource(D,F.type,F.source).getClusterChildren(F)})))),this.actor.registerMessageHandler("GCL",((D,F)=>k._(this,void 0,void 0,(function*(){return this._getWorkerSource(D,F.type,F.source).getClusterLeaves(F)})))),this.actor.registerMessageHandler("LD",((D,F)=>this._getWorkerSource(D,F.type,F.source).loadData(F))),this.actor.registerMessageHandler("GD",((D,F)=>this._getWorkerSource(D,F.type,F.source).getData())),this.actor.registerMessageHandler("LT",((D,F)=>this._getWorkerSource(D,F.type,F.source).loadTile(F))),this.actor.registerMessageHandler("RT",((D,F)=>this._getWorkerSource(D,F.type,F.source).reloadTile(F))),this.actor.registerMessageHandler("AT",((D,F)=>this._getWorkerSource(D,F.type,F.source).abortTile(F))),this.actor.registerMessageHandler("RMT",((D,F)=>this._getWorkerSource(D,F.type,F.source).removeTile(F))),this.actor.registerMessageHandler("RS",((D,F)=>k._(this,void 0,void 0,(function*(){if(!this.workerSources[D]||!this.workerSources[D][F.type]||!this.workerSources[D][F.type][F.source])return;const $=this.workerSources[D][F.type][F.source];delete this.workerSources[D][F.type][F.source],$.removeSource!==void 0&&$.removeSource(F)})))),this.actor.registerMessageHandler("RM",(D=>k._(this,void 0,void 0,(function*(){delete this.layerIndexes[D],delete this.availableImages[D],delete this.workerSources[D],delete this.demWorkerSources[D],this.globalStates.delete(D)})))),this.actor.registerMessageHandler("SR",((D,F)=>k._(this,void 0,void 0,(function*(){this.referrer=F})))),this.actor.registerMessageHandler("SRPS",((D,F)=>this._syncRTLPluginState(D,F))),this.actor.registerMessageHandler("IS",((D,F)=>k._(this,void 0,void 0,(function*(){this.self.importScripts(F)})))),this.actor.registerMessageHandler("SI",((D,F)=>this._setImages(D,F))),this.actor.registerMessageHandler("UL",((D,F)=>k._(this,void 0,void 0,(function*(){this._getLayerIndex(D).update(F.layers,F.removedIds,this._getGlobalState(D))})))),this.actor.registerMessageHandler("UGS",((D,F)=>k._(this,void 0,void 0,(function*(){const $=this._getGlobalState(D);for(const J in F)$[J]=F[J]})))),this.actor.registerMessageHandler("SL",((D,F)=>k._(this,void 0,void 0,(function*(){this._getLayerIndex(D).replace(F,this._getGlobalState(D))}))))}_getGlobalState(C){let D=this.globalStates.get(C);return D||(D={},this.globalStates.set(C,D)),D}_setImages(C,D){return k._(this,void 0,void 0,(function*(){this.availableImages[C]=D;for(const F in this.workerSources[C]){const $=this.workerSources[C][F];for(const J in $)$[J].availableImages=D}}))}_syncRTLPluginState(C,D){return k._(this,void 0,void 0,(function*(){return yield k.d5.syncState(D,this.self.importScripts)}))}_getAvailableImages(C){let D=this.availableImages[C];return D||(D=[]),D}_getLayerIndex(C){let D=this.layerIndexes[C];return D||(D=this.layerIndexes[C]=new c),D}_getWorkerSource(C,D,F){if(this.workerSources[C]||(this.workerSources[C]={}),this.workerSources[C][D]||(this.workerSources[C][D]={}),!this.workerSources[C][D][F]){const $={sendAsync:(J,ae)=>(J.targetMapId=C,this.actor.sendAsync(J,ae))};switch(D){case"vector":this.workerSources[C][D][F]=new Xn($,this._getLayerIndex(C),this._getAvailableImages(C));break;case"geojson":this.workerSources[C][D][F]=new ta($,this._getLayerIndex(C),this._getAvailableImages(C));break;default:this.workerSources[C][D][F]=new this.externalWorkerSourceTypes[D]($,this._getLayerIndex(C),this._getAvailableImages(C))}}return this.workerSources[C][D][F]}_getDEMWorkerSource(C,D){return this.demWorkerSources[C]||(this.demWorkerSources[C]={}),this.demWorkerSources[C][D]||(this.demWorkerSources[C][D]=new Ct),this.demWorkerSources[C][D]}}return k.i(self)&&(self.worker=new ia(self)),ia})),ot("index",["exports","./shared"],(function(k,c){var Ee="5.19.0";function Jt(){var d=new c.A(4);return c.A!=Float32Array&&(d[1]=0,d[2]=0),d[0]=1,d[3]=1,d}let Nt,or,lr;const Zt={frame(d,t,n,s){const l=s||window,p=l.requestAnimationFrame((g=>{m(),t(g)})),{unsubscribe:m}=c.s(d.signal,"abort",(()=>{m(),l.cancelAnimationFrame(p),n(new c.a(d.signal.reason))}),!1)},frameAsync(d,t){return new Promise(((n,s)=>{this.frame(d,n,s,t)}))},getImageData(d,t=0){return this.getImageCanvasContext(d).getImageData(-t,-t,d.width+2*t,d.height+2*t)},getImageCanvasContext(d){const t=window.document.createElement("canvas"),n=t.getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("failed to create canvas 2d context");return t.width=d.width,t.height=d.height,n.drawImage(d,0,0,d.width,d.height),n},resolveURL:d=>(Nt||(Nt=document.createElement("a")),Nt.href=d,Nt.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return lr!==void 0?lr:!!matchMedia&&(or==null&&(or=matchMedia("(prefers-reduced-motion: reduce)")),or.matches)},set prefersReducedMotion(d){lr=d}},Jr=new class{constructor(){this._realTime=typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),this._frozenAt=null}getCurrentTime(){return this._frozenAt!==null?this._frozenAt:this._realTime()}setNow(d){this._frozenAt=d}restoreNow(){this._frozenAt=null}isFrozen(){return this._frozenAt!==null}};function it(){return Jr.getCurrentTime()}class fe{static testProp(t){if(!fe.docStyle)return t[0];for(let n=0;n<t.length;n++)if(t[n]in fe.docStyle)return t[n];return t[0]}static create(t,n,s){const l=window.document.createElement(t);return n!==void 0&&(l.className=n),s&&s.appendChild(l),l}static createNS(t,n){return window.document.createElementNS(t,n)}static disableDrag(){fe.docStyle&&fe.selectProp&&(fe.userSelect=fe.docStyle[fe.selectProp],fe.docStyle[fe.selectProp]="none")}static enableDrag(){fe.docStyle&&fe.selectProp&&(fe.docStyle[fe.selectProp]=fe.userSelect)}static setTransform(t,n){t.style[fe.transformProp]=n}static addEventListener(t,n,s,l={}){t.addEventListener(n,s,"passive"in l?l:l.capture)}static removeEventListener(t,n,s,l={}){t.removeEventListener(n,s,"passive"in l?l:l.capture)}static suppressClickInternal(t){t.preventDefault(),t.stopPropagation(),window.removeEventListener("click",fe.suppressClickInternal,!0)}static suppressClick(){window.addEventListener("click",fe.suppressClickInternal,!0),window.setTimeout((()=>{window.removeEventListener("click",fe.suppressClickInternal,!0)}),0)}static getScale(t){const n=t.getBoundingClientRect();return{x:n.width/t.offsetWidth||1,y:n.height/t.offsetHeight||1,boundingClientRect:n}}static getPoint(t,n,s){const l=n.boundingClientRect;return new c.P((s.clientX-l.left)/n.x-t.clientLeft,(s.clientY-l.top)/n.y-t.clientTop)}static mousePos(t,n){const s=fe.getScale(t);return fe.getPoint(t,s,n)}static touchPos(t,n){const s=[],l=fe.getScale(t);for(let p=0;p<n.length;p++)s.push(fe.getPoint(t,l,n[p]));return s}static mouseButton(t){return t.button}static remove(t){t.parentNode&&t.parentNode.removeChild(t)}static sanitize(t){const n=new DOMParser().parseFromString(t,"text/html").body||document.createElement("body"),s=n.querySelectorAll("script");for(const l of s)l.remove();return fe.clean(n),n.innerHTML}static isPossiblyDangerous(t,n){const s=n.replace(/\s+/g,"").toLowerCase();return!(!["src","href","xlink:href"].includes(t)||!s.includes("javascript:")&&!s.includes("data:"))||!!t.startsWith("on")||void 0}static clean(t){const n=t.children;for(const s of n)fe.removeAttributes(s),fe.clean(s)}static removeAttributes(t){for(const{name:n,value:s}of t.attributes)fe.isPossiblyDangerous(n,s)&&t.removeAttribute(n)}}fe.docStyle=typeof window<"u"&&window.document&&window.document.documentElement.style,fe.selectProp=fe.testProp(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]),fe.transformProp=fe.testProp(["transform","WebkitTransform"]);const Xn={supported:!1,testSupport:function(d){!xn&&xt&&(Yn?Da(d):Ct=d)}};let Ct,xt,xn=!1,Yn=!1;function Da(d){const t=d.createTexture();d.bindTexture(d.TEXTURE_2D,t);try{if(d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,xt),d.isContextLost())return;Xn.supported=!0}catch{}d.deleteTexture(t),xn=!0}var Li;typeof document<"u"&&(xt=document.createElement("img"),xt.onload=()=>{Ct&&Da(Ct),Ct=null,Yn=!0},xt.onerror=()=>{xn=!0,Ct=null},xt.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),(function(d){let t,n,s,l;d.resetRequestQueue=()=>{t=[],n=0,s=0,l={}},d.addThrottleControl=x=>{const w=s++;return l[w]=x,w},d.removeThrottleControl=x=>{delete l[x],m()},d.getImage=(x,w,T=!0)=>new Promise(((I,M)=>{Xn.supported&&(x.headers||(x.headers={}),x.headers.accept="image/webp,*/*"),c.e(x,{type:"image"}),t.push({abortController:w,requestParameters:x,supportImageRefresh:T,state:"queued",onError:z=>{M(z)},onSuccess:z=>{I(z)}}),m()}));const p=x=>c._(this,void 0,void 0,(function*(){x.state="running";const{requestParameters:w,supportImageRefresh:T,onError:I,onSuccess:M,abortController:z}=x,L=T===!1&&!c.i(self)&&!c.g(w.url)&&(!w.headers||Object.keys(w.headers).reduce(((N,Z)=>N&&Z==="accept"),!0));n++;const j=L?g(w,z):c.m(w,z);try{const N=yield j;delete x.abortController,x.state="completed",N.data instanceof HTMLImageElement||c.b(N.data)?M(N):N.data&&M({data:yield(U=N.data,typeof createImageBitmap=="function"?c.f(U):c.h(U)),cacheControl:N.cacheControl,expires:N.expires})}catch(N){delete x.abortController,I(N)}finally{n--,m()}var U})),m=()=>{const x=(()=>{for(const w of Object.keys(l))if(l[w]())return!0;return!1})()?c.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:c.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let w=n;w<x&&t.length>0;w++){const T=t.shift();T.abortController.signal.aborted?w--:p(T)}},g=(x,w)=>new Promise(((T,I)=>{const M=new Image,z=x.url,L=x.credentials;L&&L==="include"?M.crossOrigin="use-credentials":(L&&L==="same-origin"||!c.d(z))&&(M.crossOrigin="anonymous"),w.signal.addEventListener("abort",(()=>{M.src="",I(new c.a(w.signal.reason))})),M.fetchPriority="high",M.onload=()=>{M.onerror=M.onload=null,T({data:M})},M.onerror=()=>{M.onerror=M.onload=null,w.signal.aborted||I(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."))},M.src=z}))})(Li||(Li={})),Li.resetRequestQueue();class ka{constructor(t){this._transformRequestFn=t??null}transformRequest(t,n){return this._transformRequestFn&&this._transformRequestFn(t,n)||{url:t}}setTransformRequest(t){this._transformRequestFn=t}}function gr(d){const t=[];if(typeof d=="string")t.push({id:"default",url:d});else if(d&&d.length>0){const n=[];for(const{id:s,url:l}of d){const p=`${s}${l}`;n.indexOf(p)===-1&&(n.push(p),t.push({id:s,url:l}))}}return t}function Qr(d,t,n){try{const s=new URL(d);return s.pathname+=`${t}${n}`,s.toString()}catch{throw new Error(`Invalid sprite URL "${d}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}function vn(d){const{userImage:t}=d;return!!(t&&t.render&&t.render())&&(d.data.replace(new Uint8Array(t.data.buffer)),!0)}class en extends c.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new c.R({width:1,height:1}),this.dirty=!0}destroy(){this.atlasTexture&&(this.atlasTexture.destroy(),this.atlasTexture=null);for(const t of Object.keys(this.images))this.removeImage(t);this.patterns={},this.atlasImage=new c.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(t){if(this.loaded!==t&&(this.loaded=t,t)){for(const{ids:n,promiseResolve:s}of this.requestors)s(this._getImagesForIds(n));this.requestors=[]}}getImage(t){const n=this.images[t];if(n&&!n.data&&n.spriteData){const s=n.spriteData;n.data=new c.R({width:s.width,height:s.height},s.context.getImageData(s.x,s.y,s.width,s.height).data),n.spriteData=null}return n}addImage(t,n){if(this.images[t])throw new Error(`Image id ${t} already exist, use updateImage instead`);this._validate(t,n)&&(this.images[t]=n)}_validate(t,n){let s=!0;const l=n.data||n.spriteData;return this._validateStretch(n.stretchX,l&&l.width)||(this.fire(new c.k(new Error(`Image "${t}" has invalid "stretchX" value`))),s=!1),this._validateStretch(n.stretchY,l&&l.height)||(this.fire(new c.k(new Error(`Image "${t}" has invalid "stretchY" value`))),s=!1),this._validateContent(n.content,n)||(this.fire(new c.k(new Error(`Image "${t}" has invalid "content" value`))),s=!1),s}_validateStretch(t,n){if(!t)return!0;let s=0;for(const l of t){if(l[0]<s||l[1]<l[0]||n<l[1])return!1;s=l[1]}return!0}_validateContent(t,n){if(!t)return!0;if(t.length!==4)return!1;const s=n.spriteData,l=s&&s.width||n.data.width,p=s&&s.height||n.data.height;return!(t[0]<0||l<t[0]||t[1]<0||p<t[1]||t[2]<0||l<t[2]||t[3]<0||p<t[3]||t[2]<t[0]||t[3]<t[1])}updateImage(t,n,s=!0){const l=this.getImage(t);if(s&&(l.data.width!==n.data.width||l.data.height!==n.data.height))throw new Error(`size mismatch between old image (${l.data.width}x${l.data.height}) and new image (${n.data.width}x${n.data.height}).`);n.version=l.version+1,this.images[t]=n,this.updatedImages[t]=!0}removeImage(t){const n=this.images[t];delete this.images[t],delete this.patterns[t],n.userImage&&n.userImage.onRemove&&n.userImage.onRemove()}listImages(){return Object.keys(this.images)}getImages(t){return new Promise(((n,s)=>{let l=!0;if(!this.isLoaded())for(const p of t)this.images[p]||(l=!1);this.isLoaded()||l?n(this._getImagesForIds(t)):this.requestors.push({ids:t,promiseResolve:n})}))}_getImagesForIds(t){const n={};for(const s of t){let l=this.getImage(s);l||(this.fire(new c.l("styleimagemissing",{id:s})),l=this.getImage(s)),l?n[s]={data:l.data.clone(),pixelRatio:l.pixelRatio,sdf:l.sdf,version:l.version,stretchX:l.stretchX,stretchY:l.stretchY,content:l.content,textFitWidth:l.textFitWidth,textFitHeight:l.textFitHeight,hasRenderCallback:!!(l.userImage&&l.userImage.render)}:c.w(`Image "${s}" 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.`)}return n}getPixelSize(){const{width:t,height:n}=this.atlasImage;return{width:t,height:n}}getPattern(t){const n=this.patterns[t],s=this.getImage(t);if(!s)return null;if(n&&n.position.version===s.version)return n.position;if(n)n.position.version=s.version;else{const l={w:s.data.width+2,h:s.data.height+2,x:0,y:0},p=new c.I(l,s);this.patterns[t]={bin:l,position:p}}return this._updatePatternAtlas(),this.patterns[t].position}bind(t){const n=t.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new c.T(t,this.atlasImage,n.RGBA),this.atlasTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}_updatePatternAtlas(){const t=[];for(const p in this.patterns)t.push(this.patterns[p].bin);const{w:n,h:s}=c.p(t),l=this.atlasImage;l.resize({width:n||1,height:s||1});for(const p in this.patterns){const{bin:m}=this.patterns[p],g=m.x+1,x=m.y+1,w=this.getImage(p).data,T=w.width,I=w.height;c.R.copy(w,l,{x:0,y:0},{x:g,y:x},{width:T,height:I}),c.R.copy(w,l,{x:0,y:I-1},{x:g,y:x-1},{width:T,height:1}),c.R.copy(w,l,{x:0,y:0},{x:g,y:x+I},{width:T,height:1}),c.R.copy(w,l,{x:T-1,y:0},{x:g-1,y:x},{width:1,height:I}),c.R.copy(w,l,{x:0,y:0},{x:g+T,y:x},{width:1,height:I})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(t){for(const n of t){if(this.callbackDispatchedThisFrame[n])continue;this.callbackDispatchedThisFrame[n]=!0;const s=this.getImage(n);s||c.w(`Image with ID: "${n}" was not found`),vn(s)&&this.updateImage(n,s)}}cloneImages(){const t={};for(const n in this.images){const s=this.images[n];t[n]=Object.assign(Object.assign({},s),{data:s.data?s.data.clone():null})}return t}}const yr=1e20;function tn(d,t,n,s,l,p,m,g,x){for(let w=t;w<t+s;w++)Ra(d,n*p+w,p,l,m,g,x);for(let w=n;w<n+l;w++)Ra(d,w*p+t,1,s,m,g,x)}function Ra(d,t,n,s,l,p,m){p[0]=0,m[0]=-yr,m[1]=yr,l[0]=d[t];for(let g=1,x=0,w=0;g<s;g++){l[g]=d[t+g*n];const T=g*g;do{const I=p[x];w=(l[g]-l[I]+T-I*I)/(g-I)/2}while(w<=m[x]&&--x>-1);x++,p[x]=g,m[x]=w,m[x+1]=yr}for(let g=0,x=0;g<s;g++){for(;m[x+1]<g;)x++;const w=p[x],T=g-w;d[t+g*n]=l[w]+T*T}}const Kn=c.v.layout_symbol["text-font"].default.join(",");class Er{constructor(t,n,s){this.requestManager=t,this.localIdeographFontFamily=n,this.entries={},this.lang=s}setURL(t){this.url=t}getGlyphs(t){return c._(this,void 0,void 0,(function*(){const n=[];for(const p in t)for(const m of t[p])n.push(this._getAndCacheGlyphsPromise(p,m));const s=yield Promise.all(n),l={};for(const{stack:p,id:m,glyph:g}of s)l[p]||(l[p]={}),l[p][m]=g&&{id:g.id,bitmap:g.bitmap.clone(),metrics:g.metrics};return l}))}_getAndCacheGlyphsPromise(t,n){return c._(this,void 0,void 0,(function*(){let s=this.entries[t];s||(s=this.entries[t]={glyphs:{},requests:{},ranges:{}});let l=s.glyphs[n];return l!==void 0?{stack:t,id:n,glyph:l}:!this.url||this._charUsesLocalIdeographFontFamily(n)?(l=s.glyphs[n]=this._drawGlyph(s,t,n),{stack:t,id:n,glyph:l}):yield this._downloadAndCacheRangePromise(t,n)}))}_downloadAndCacheRangePromise(t,n){return c._(this,void 0,void 0,(function*(){const s=this.entries[t],l=Math.floor(n/256);if(s.ranges[l])return{stack:t,id:n,glyph:null};if(!s.requests[l]){const p=Er.loadGlyphRange(t,l,this.url,this.requestManager);s.requests[l]=p}try{const p=yield s.requests[l];for(const m in p)s.glyphs[+m]=p[+m];return s.ranges[l]=!0,{stack:t,id:n,glyph:p[n]||null}}catch(p){const m=s.glyphs[n]=this._drawGlyph(s,t,n);return this._warnOnMissingGlyphRange(m,l,n,p),{stack:t,id:n,glyph:m}}}))}_warnOnMissingGlyphRange(t,n,s,l){const p=256*n,m=p+255,g=s.toString(16).padStart(4,"0").toUpperCase();c.w(`Unable to load glyph range ${n}, ${p}-${m}. Rendering codepoint U+${g} locally instead. ${l}`)}_charUsesLocalIdeographFontFamily(t){return!!this.localIdeographFontFamily&&c.q(t)}_drawGlyph(t,n,s){const l=n===Kn&&this.localIdeographFontFamily!==""&&this._charUsesLocalIdeographFontFamily(s),p=l?"ideographTinySDF":"tinySDF";t[p]||(t[p]=this._createTinySDF(l?this.localIdeographFontFamily:n));const m=t[p].draw(String.fromCodePoint(s)),g=new RegExp("^\\p{gc=Cf}+$","u").test(String.fromCodePoint(s));return{id:s,bitmap:new c.r({width:m.width||60,height:m.height||60},m.data),metrics:{width:g?0:m.glyphWidth/2||24,height:m.glyphHeight/2||24,left:m.glyphLeft/2+.5||0,top:m.glyphTop/2-27.5||-8,advance:g?0:m.glyphAdvance/2||24,isDoubleResolution:!0}}}_createTinySDF(t){const n=t?t.split(","):[];n.push("sans-serif");const s=n.map((l=>/[-\w]+/.test(l)?l:`'${CSS.escape(l)}'`)).join(",");return new Er.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:s,fontWeight:this._fontWeight(n[0]),fontStyle:this._fontStyle(n[0]),lang:this.lang})}_fontStyle(t){return/italic/i.test(t)?"italic":/oblique/i.test(t)?"oblique":"normal"}_fontWeight(t){const n={thin:100,hairline:100,"extra light":200,"ultra light":200,light:300,normal:400,regular:400,medium:500,semibold:600,demibold:600,bold:700,"extra bold":800,"ultra bold":800,black:900,heavy:900,"extra black":950,"ultra black":950};let s;for(const[l,p]of Object.entries(n))new RegExp(`\\b${l}\\b`,"i").test(t)&&(s=`${p}`);return s}destroy(){for(const t in this.entries){const n=this.entries[t];n.tinySDF&&(n.tinySDF=null),n.ideographTinySDF&&(n.ideographTinySDF=null),n.glyphs={},n.requests={},n.ranges={}}this.entries={}}}Er.loadGlyphRange=function(d,t,n,s){return c._(this,void 0,void 0,(function*(){const l=256*t,p=l+255,m=s.transformRequest(n.replace("{fontstack}",d).replace("{range}",`${l}-${p}`),"Glyphs"),g=yield c.n(m,new AbortController);if(!g||!g.data)throw new Error(`Could not load glyph range. range: ${t}, ${l}-${p}`);const x={};for(const w of c.o(g.data))x[w.id]=w;return x}))},Er.TinySDF=class{constructor({fontSize:d=24,buffer:t=3,radius:n=8,cutoff:s=.25,fontFamily:l="sans-serif",fontWeight:p="normal",fontStyle:m="normal",lang:g=null}={}){this.buffer=t,this.cutoff=s,this.radius=n,this.lang=g;const x=this.size=d+4*t,w=this._createCanvas(x),T=this.ctx=w.getContext("2d",{willReadFrequently:!0});T.font=`${m} ${p} ${d}px ${l}`,T.textBaseline="alphabetic",T.textAlign="left",T.fillStyle="black",this.gridOuter=new Float64Array(x*x),this.gridInner=new Float64Array(x*x),this.f=new Float64Array(x),this.z=new Float64Array(x+1),this.v=new Uint16Array(x)}_createCanvas(d){const t=document.createElement("canvas");return t.width=t.height=d,t}draw(d){const{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:s,actualBoundingBoxLeft:l,actualBoundingBoxRight:p}=this.ctx.measureText(d),m=Math.ceil(n),g=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(p-l))),x=Math.min(this.size-this.buffer,m+Math.ceil(s)),w=g+2*this.buffer,T=x+2*this.buffer,I=Math.max(w*T,0),M=new Uint8ClampedArray(I),z={data:M,width:w,height:T,glyphWidth:g,glyphHeight:x,glyphTop:m,glyphLeft:0,glyphAdvance:t};if(g===0||x===0)return z;const{ctx:L,buffer:j,gridInner:U,gridOuter:N}=this;this.lang&&(L.lang=this.lang),L.clearRect(j,j,g,x),L.fillText(d,j,j+m);const Z=L.getImageData(j,j,g,x);N.fill(yr,0,I),U.fill(0,0,I);for(let X=0;X<x;X++)for(let q=0;q<g;q++){const Y=Z.data[4*(X*g+q)+3]/255;if(Y===0)continue;const Q=(X+j)*w+q+j;if(Y===1)N[Q]=0,U[Q]=yr;else{const W=.5-Y;N[Q]=W>0?W*W:0,U[Q]=W<0?W*W:0}}tn(N,0,0,w,T,w,this.f,this.v,this.z),tn(U,j,j,g,x,w,this.f,this.v,this.z);for(let X=0;X<I;X++){const q=Math.sqrt(N[X])-Math.sqrt(U[X]);M[X]=Math.round(255-255*(q/this.radius+this.cutoff))}return z}};class Ut{constructor(){this.specification=c.u.light.position}possiblyEvaluate(t,n){return c.F(t.expression.evaluate(n))}interpolate(t,n,s){return{x:c.G.number(t.x,n.x,s),y:c.G.number(t.y,n.y,s),z:c.G.number(t.z,n.z,s)}}}let st;class bn extends c.E{constructor(t){super(),st=st||new c.t({anchor:new c.D(c.u.light.anchor),position:new Ut,color:new c.D(c.u.light.color),intensity:new c.D(c.u.light.intensity)}),this._transitionable=new c.x(st,void 0),this.setLight(t),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(t,n={}){if(!this._validate(c.y,t,n))for(const s in t){const l=t[s];s.endsWith(c.z)?this._transitionable.setTransition(s.slice(0,-c.z.length),l):this._transitionable.setValue(s,l)}}updateTransitions(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(t){this.properties=this._transitioning.possiblyEvaluate(t)}_validate(t,n,s){return(!s||s.validate!==!1)&&c.B(this,t.call(c.C,{value:n,style:{glyphs:!0,sprite:!0},styleSpec:c.u}))}}const xr=new c.t({"sky-color":new c.D(c.u.sky["sky-color"]),"horizon-color":new c.D(c.u.sky["horizon-color"]),"fog-color":new c.D(c.u.sky["fog-color"]),"fog-ground-blend":new c.D(c.u.sky["fog-ground-blend"]),"horizon-fog-blend":new c.D(c.u.sky["horizon-fog-blend"]),"sky-horizon-blend":new c.D(c.u.sky["sky-horizon-blend"]),"atmosphere-blend":new c.D(c.u.sky["atmosphere-blend"])});class La extends c.E{constructor(t){super(),this._transitionable=new c.x(xr,void 0),this.setSky(t),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new c.H(0))}setSky(t,n={}){if(!this._validate(c.J,t,n)){t||(t={"sky-color":"transparent","horizon-color":"transparent","fog-color":"transparent","fog-ground-blend":1,"atmosphere-blend":0});for(const s in t){const l=t[s];s.endsWith(c.z)?this._transitionable.setTransition(s.slice(0,-c.z.length),l):this._transitionable.setValue(s,l)}}}getSky(){return this._transitionable.serialize()}updateTransitions(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(t){this.properties=this._transitioning.possiblyEvaluate(t)}_validate(t,n,s={}){return s?.validate!==!1&&c.B(this,t.call(c.C,c.e({value:n,style:{glyphs:!0,sprite:!0},styleSpec:c.u})))}calculateFogBlendOpacity(t){return t<60?0:t<70?(t-60)/10:1}}class Jn{constructor(t,n){this.width=t,this.height=n,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}}getDash(t,n){const s=t.join(",")+String(n);return this.dashEntry[s]||(this.dashEntry[s]=this.addDash(t,n)),this.dashEntry[s]}getDashRanges(t,n,s){const l=[];let p=t.length%2==1?-t[t.length-1]*s:0,m=t[0]*s,g=!0;l.push({left:p,right:m,isDash:g,zeroLength:t[0]===0});let x=t[0];for(let w=1;w<t.length;w++){g=!g;const T=t[w];p=x*s,x+=T,m=x*s,l.push({left:p,right:m,isDash:g,zeroLength:T===0})}return l}addRoundDash(t,n,s){const l=n/2;for(let p=-s;p<=s;p++){const m=this.width*(this.nextRow+s+p);let g=0,x=t[g];for(let w=0;w<this.width;w++){w/x.right>1&&(x=t[++g]);const T=Math.abs(w-x.left),I=Math.abs(w-x.right),M=Math.min(T,I);let z;const L=p/s*(l+1);if(x.isDash){const j=l-Math.abs(L);z=Math.sqrt(M*M+j*j)}else z=l-Math.sqrt(M*M+L*L);this.data[m+w]=Math.max(0,Math.min(255,z+128))}}}addRegularDash(t){for(let g=t.length-1;g>=0;--g){const x=t[g],w=t[g+1];x.zeroLength?t.splice(g,1):w&&w.isDash===x.isDash&&(w.left=x.left,t.splice(g,1))}const n=t[0],s=t[t.length-1];n.isDash===s.isDash&&(n.left=s.left-this.width,s.right=n.right+this.width);const l=this.width*this.nextRow;let p=0,m=t[p];for(let g=0;g<this.width;g++){g/m.right>1&&(m=t[++p]);const x=Math.abs(g-m.left),w=Math.abs(g-m.right),T=Math.min(x,w);this.data[l+g]=Math.max(0,Math.min(255,(m.isDash?T:-T)+128))}}addDash(t,n){const s=n?7:0,l=2*s+1;if(this.nextRow+l>this.height)return c.w("LineAtlas out of space"),null;let p=0;for(let g=0;g<t.length;g++)p+=t[g];if(p!==0){const g=this.width/p,x=this.getDashRanges(t,this.width,g);n?this.addRoundDash(x,g,s):this.addRegularDash(x)}const m={y:this.nextRow+s,height:2*s,width:p};return this.nextRow+=l,this.dirty=!0,m}bind(t){const n=t.gl;this.texture?(n.bindTexture(n.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,n.texSubImage2D(n.TEXTURE_2D,0,0,0,this.width,this.height,n.ALPHA,n.UNSIGNED_BYTE,this.data))):(this.texture=n.createTexture(),n.bindTexture(n.TEXTURE_2D,this.texture),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.REPEAT),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.REPEAT),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.LINEAR),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.LINEAR),n.texImage2D(n.TEXTURE_2D,0,n.ALPHA,this.width,this.height,0,n.ALPHA,n.UNSIGNED_BYTE,this.data))}}const rn="maplibre_preloaded_worker_pool";class Cr{constructor(){this.active={}}acquire(t){if(!this.workers)for(this.workers=[];this.workers.length<Cr.workerCount;)this.workers.push(new Worker(c.c.WORKER_URL));return this.active[t]=!0,this.workers.slice()}release(t){delete this.active[t],this.numActive()===0&&(this.workers.forEach((n=>{n.terminate()})),this.workers=null)}isPreloaded(){return!!this.active[rn]}numActive(){return Object.keys(this.active).length}}const Yi=Math.floor(Zt.hardwareConcurrency/2);let ui,Ei;function Qn(){return ui||(ui=new Cr),ui}Cr.workerCount=c.K(globalThis)?Math.max(Math.min(Yi,3),1):1;class wn{constructor(t,n){this.workerPool=t,this.actors=[],this.currentActor=0,this.id=n;const s=this.workerPool.acquire(n);for(let l=0;l<s.length;l++){const p=new c.L(s[l],n);p.name=`Worker ${l}`,this.actors.push(p)}if(!this.actors.length)throw new Error("No actors found")}broadcast(t,n){const s=[];for(const l of this.actors)s.push(l.sendAsync({type:t,data:n}));return Promise.all(s)}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(t=!0){this.actors.forEach((n=>{n.remove()})),this.actors=[],t&&this.workerPool.release(this.id)}registerMessageHandler(t,n){for(const s of this.actors)s.registerMessageHandler(t,n)}unregisterMessageHandler(t){for(const n of this.actors)n.unregisterMessageHandler(t)}}function Tn(){return Ei||(Ei=new wn(Qn(),c.M),Ei.registerMessageHandler("GR",((d,t,n)=>c.m(t,n)))),Ei}function hi(d,t){const n=c.N();return c.O(n,n,[1,1,0]),c.Q(n,n,[.5*d.width,.5*d.height,1]),d.calculatePosMatrix?c.S(n,n,d.calculatePosMatrix(t.toUnwrapped())):n}function Ds(d,t,n,s,l,p,m){var g;const x=(function(M,z,L){if(M)for(const j of M){const U=z[j];if(U&&U.source===L&&U.type==="fill-extrusion")return!0}else for(const j in z){const U=z[j];if(U.source===L&&U.type==="fill-extrusion")return!0}return!1})((g=l?.layers)!==null&&g!==void 0?g:null,t,d.id),w=p.maxPitchScaleFactor(),T=d.tilesIn(s,w,x);T.sort(di);const I=[];for(const M of T)I.push({wrappedTileID:M.tileID.wrapped().key,queryResults:M.tile.queryRenderedFeatures(t,n,d.getState(),M.queryGeometry,M.cameraQueryGeometry,M.scale,l,p,w,hi(p,M.tileID),m?(z,L)=>m(M.tileID,z,L):void 0)});return(function(M,z){for(const L in M)for(const j of M[L])Fi(j,z);return M})((function(M){const z={},L={};for(const j of M){const U=j.queryResults,N=j.wrappedTileID,Z=L[N]=L[N]||{};for(const X in U){const q=U[X],Y=Z[X]=Z[X]||{},Q=z[X]=z[X]||[];for(const W of q)Y[W.featureIndex]||(Y[W.featureIndex]=!0,Q.push(W))}}return z})(I),d)}function di(d,t){const n=d.tileID,s=t.tileID;return n.overscaledZ-s.overscaledZ||n.canonical.y-s.canonical.y||n.wrap-s.wrap||n.canonical.x-s.canonical.x}function Fi(d,t){const n=d.feature,s=t.getFeatureState(n.layer["source-layer"],n.id);n.source=n.layer.source,n.layer["source-layer"]&&(n.sourceLayer=n.layer["source-layer"]),n.state=s}function vr(d,t,n,s){return c._(this,void 0,void 0,(function*(){let l=d;if(d.url?l=(yield c.j(t.transformRequest(d.url,"Source"),n)).data:yield Zt.frameAsync(n,s),!l)return null;const p=c.U(c.e(l,d),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in l&&l.vector_layers&&(p.vectorLayerIds=l.vector_layers.map((m=>m.id))),p}))}class vt{constructor(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):Array.isArray(t)&&(t.length===4?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1])))}setNorthEast(t){return this._ne=t instanceof c.V?new c.V(t.lng,t.lat):c.V.convert(t),this}setSouthWest(t){return this._sw=t instanceof c.V?new c.V(t.lng,t.lat):c.V.convert(t),this}extend(t){const n=this._sw,s=this._ne;let l,p;if(t instanceof c.V)l=t,p=t;else{if(!(t instanceof vt))return Array.isArray(t)?t.length===4||t.every(Array.isArray)?this.extend(vt.convert(t)):this.extend(c.V.convert(t)):t&&("lng"in t||"lon"in t)&&"lat"in t?this.extend(c.V.convert(t)):this;if(l=t._sw,p=t._ne,!l||!p)return this}return n||s?(n.lng=Math.min(l.lng,n.lng),n.lat=Math.min(l.lat,n.lat),s.lng=Math.max(p.lng,s.lng),s.lat=Math.max(p.lat,s.lat)):(this._sw=new c.V(l.lng,l.lat),this._ne=new c.V(p.lng,p.lat)),this}getCenter(){return new c.V((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 c.V(this.getWest(),this.getNorth())}getSouthEast(){return new c.V(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(t){const{lng:n,lat:s}=c.V.convert(t);let l=this._sw.lng<=n&&n<=this._ne.lng;return this._sw.lng>this._ne.lng&&(l=this._sw.lng>=n&&n>=this._ne.lng),this._sw.lat<=s&&s<=this._ne.lat&&l}intersects(t){if(!((t=vt.convert(t)).getNorth()>=this.getSouth()&&t.getSouth()<=this.getNorth()))return!1;const n=Math.abs(this.getEast()-this.getWest()),s=Math.abs(t.getEast()-t.getWest());if(n>=360||s>=360)return!0;const l=c.W(this.getWest(),-180,180),p=c.W(this.getEast(),-180,180),m=c.W(t.getWest(),-180,180),g=c.W(t.getEast(),-180,180),x=l>p,w=m>g;return!(!x||!w)||(x?g>=l||m<=p:w?p>=m||l<=g:m<=p&&g>=l)}static convert(t){return t instanceof vt?t:t&&new vt(t)}static fromLngLat(t,n=0){const s=360*n/40075017,l=s/Math.cos(Math.PI/180*t.lat);return new vt(new c.V(t.lng-l,t.lat-s),new c.V(t.lng+l,t.lat+s))}adjustAntiMeridian(){const t=new c.V(this._sw.lng,this._sw.lat),n=new c.V(this._ne.lng,this._ne.lat);return new vt(t,t.lng>n.lng?new c.V(n.lng+360,n.lat):n)}}class Sn{constructor(t,n,s){this.bounds=vt.convert(this.validateBounds(t)),this.minzoom=n||0,this.maxzoom=s||24}validateBounds(t){return Array.isArray(t)&&t.length===4?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]}contains(t){const n=Math.pow(2,t.z),s=Math.floor(c.Y(this.bounds.getWest())*n),l=Math.floor(c.X(this.bounds.getNorth())*n),p=Math.ceil(c.Y(this.bounds.getEast())*n),m=Math.ceil(c.X(this.bounds.getSouth())*n);return t.x>=s&&t.x<p&&t.y>=l&&t.y<m}}class ea extends c.E{constructor(t,n,s,l){if(super(),this.id=t,this.dispatcher=s,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,c.e(this,c.U(n,["url","scheme","tileSize","promoteId","encoding"])),this._options=c.e({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(l)}load(){return c._(this,void 0,void 0,(function*(){this._loaded=!1,this.fire(new c.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const t=yield vr(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=!0,this.map.style.tileManagers[this.id].clearTiles(),t&&(c.e(this,t),t.bounds&&(this.tileBounds=new Sn(t.bounds,this.minzoom,this.maxzoom)),this.fire(new c.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new c.l("data",{dataType:"source",sourceDataType:"content"})))}catch(t){this._tileJSONRequest=null,this._loaded=!0,c.Z(t)||this.fire(new c.k(t))}}))}loaded(){return this._loaded}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}onAdd(t){this.map=t,this.load()}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.abort(),t(),this.load()}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return c.e({},this._options)}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),s={request:this.map._requestManager.transformRequest(n,"Tile"),uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity,encoding:this.encoding,overzoomParameters:this._getOverzoomParameters(t)};s.request.collectResourceTiming=this._collectResourceTiming;let l="RT";if(t.actor&&t.state!=="expired"){if(t.state==="loading")return new Promise(((p,m)=>{t.reloadPromise={resolve:p,reject:m}}))}else t.actor=this.dispatcher.getActor(),l="LT";t.abortController=new AbortController;try{const p=yield t.actor.sendAsync({type:l,data:s},t.abortController);if(delete t.abortController,t.aborted)return;this._afterTileLoadWorkerResponse(t,p)}catch(p){if(delete t.abortController,t.aborted)return;if(p&&p.status!==404)throw p;this._afterTileLoadWorkerResponse(t,null)}}))}_getOverzoomParameters(t){if(t.tileID.canonical.z<=this.maxzoom||this.map._zoomLevelsToOverscale===void 0)return;const n=t.tileID.scaledTo(this.maxzoom).canonical,s=n.url(this.tiles,this.map.getPixelRatio(),this.scheme);return{maxZoomTileID:n,overzoomRequest:this.map._requestManager.transformRequest(s,"Tile")}}_afterTileLoadWorkerResponse(t,n){if(n&&n.resourceTiming&&(t.resourceTiming=n.resourceTiming),n&&this.map._refreshExpiredTiles&&t.setExpiryData(n),t.loadVectorData(n,this.map.painter),t.reloadPromise){const s=t.reloadPromise;t.reloadPromise=null,this.loadTile(t).then(s.resolve).catch(s.reject)}}abortTile(t){return c._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController),t.actor&&(yield t.actor.sendAsync({type:"AT",data:{uid:t.uid,type:this.type,source:this.id}}))}))}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.unloadVectorData(),t.actor&&(yield t.actor.sendAsync({type:"RMT",data:{uid:t.uid,type:this.type,source:this.id}}))}))}hasTransition(){return!1}}class Pn extends c.E{constructor(t,n,s,l){super(),this.id=t,this.dispatcher=s,this.setEventedParent(l),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=c.e({type:"raster"},n),c.e(this,c.U(n,["url","scheme","tileSize"]))}load(){return c._(this,arguments,void 0,(function*(t=!1){this._loaded=!1,this.fire(new c.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const n=yield vr(this._options,this.map._requestManager,this._tileJSONRequest,this.map._ownerWindow);this._tileJSONRequest=null,this._loaded=!0,n&&(c.e(this,n),n.bounds&&(this.tileBounds=new Sn(n.bounds,this.minzoom,this.maxzoom)),this.fire(new c.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new c.l("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:t})))}catch(n){this._tileJSONRequest=null,this._loaded=!0,c.Z(n)||this.fire(new c.k(n))}}))}loaded(){return this._loaded}onAdd(t){this.map=t,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(t){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),t(),this.load(!0)}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t})),this}serialize(){return c.e({},this._options)}hasTile(t){return!this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.abortController=new AbortController;try{const s=yield Li.getImage(this.map._requestManager.transformRequest(n,"Tile"),t.abortController,this.map._refreshExpiredTiles);if(delete t.abortController,t.aborted)return void(t.state="unloaded");if(s&&s.data){this.map._refreshExpiredTiles&&(s.cacheControl||s.expires)&&t.setExpiryData({cacheControl:s.cacheControl,expires:s.expires});const l=this.map.painter.context,p=l.gl,m=s.data;t.texture=this.map.painter.getTileTexture(m.width),t.texture?t.texture.update(m,{useMipmap:!0}):(t.texture=new c.T(l,m,p.RGBA,{useMipmap:!0}),t.texture.bind(p.LINEAR,p.CLAMP_TO_EDGE,p.LINEAR_MIPMAP_NEAREST)),t.state="loaded"}}catch(s){if(delete t.abortController,t.aborted)t.state="unloaded";else if(s)throw t.state="errored",s}}))}abortTile(t){return c._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController)}))}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.texture&&this.map.painter.saveTileTexture(t.texture)}))}hasTransition(){return!1}}class nn extends Pn{constructor(t,n,s,l){super(t,n,s,l),this.type="raster-dem",this.maxzoom=22,this._options=c.e({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox",this.redFactor=n.redFactor,this.greenFactor=n.greenFactor,this.blueFactor=n.blueFactor,this.baseShift=n.baseShift}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),s=this.map._requestManager.transformRequest(n,"Tile");t.neighboringTiles=this._getNeighboringTiles(t.tileID),t.abortController=new AbortController;try{const l=yield Li.getImage(s,t.abortController,this.map._refreshExpiredTiles);if(delete t.abortController,t.aborted)return void(t.state="unloaded");if(l&&l.data){const p=l.data;this.map._refreshExpiredTiles&&(l.cacheControl||l.expires)&&t.setExpiryData({cacheControl:l.cacheControl,expires:l.expires});const m=c.b(p)&&c.$()?p:yield this.readImageNow(p),g={type:this.type,uid:t.uid,source:this.id,rawImageData:m,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!t.actor||t.state==="expired"){t.actor=this.dispatcher.getActor();const x=yield t.actor.sendAsync({type:"LDT",data:g});t.dem=x,t.needsHillshadePrepare=!0,t.needsTerrainPrepare=!0,t.state="loaded"}}}catch(l){if(delete t.abortController,t.aborted)t.state="unloaded";else if(l)throw t.state="errored",l}}))}readImageNow(t){return c._(this,void 0,void 0,(function*(){if(typeof VideoFrame<"u"&&c.a0()){const n=t.width+2,s=t.height+2;try{return new c.R({width:n,height:s},yield c.a1(t,-1,-1,n,s))}catch{}}return Zt.getImageData(t,1)}))}_getNeighboringTiles(t){const n=t.canonical,s=Math.pow(2,n.z),l=(n.x-1+s)%s,p=n.x===0?t.wrap-1:t.wrap,m=(n.x+1+s)%s,g=n.x+1===s?t.wrap+1:t.wrap,x={};return x[new c.a2(t.overscaledZ,p,n.z,l,n.y).key]={backfilled:!1},x[new c.a2(t.overscaledZ,g,n.z,m,n.y).key]={backfilled:!1},n.y>0&&(x[new c.a2(t.overscaledZ,p,n.z,l,n.y-1).key]={backfilled:!1},x[new c.a2(t.overscaledZ,t.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},x[new c.a2(t.overscaledZ,g,n.z,m,n.y-1).key]={backfilled:!1}),n.y+1<s&&(x[new c.a2(t.overscaledZ,p,n.z,l,n.y+1).key]={backfilled:!1},x[new c.a2(t.overscaledZ,t.wrap,n.z,n.x,n.y+1).key]={backfilled:!1},x[new c.a2(t.overscaledZ,g,n.z,m,n.y+1).key]={backfilled:!1}),x}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.demTexture&&this.map.painter.saveTileTexture(t.demTexture),t.fbo&&(t.fbo.destroy(),delete t.fbo),t.dem&&delete t.dem,delete t.neighboringTiles,t.state="unloaded",t.actor&&(yield t.actor.sendAsync({type:"RDT",data:{type:this.type,uid:t.uid,source:this.id}}))}))}}function br(d){return d&&d.length!==0?typeof d[0]=="number"?[d]:d.flatMap((t=>br(t))):[]}function an(d){return d.type==="GeometryCollection"?d.geometries.flatMap((t=>an(t))):br(d.coordinates)}function Mn(d){const t=new vt;let n;switch(d.type){case"FeatureCollection":n=d.features.flatMap((s=>an(s.geometry)));break;case"Feature":n=an(d.geometry);break;default:n=an(d)}if(n.length===0)return t;for(let s=0;s<n.length;s++){const[l,p]=n[s];t.extend([l,p])}return t}class Ar extends c.E{constructor(t,n,s,l){super(),this.id=t,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._isUpdatingWorker=!1,this._pendingWorkerUpdate={data:n.data},this.actor=s.getActor(),this.setEventedParent(l),this._data=typeof n.data=="string"?{url:n.data}:{geojson:n.data},this._options=c.e({},n),this._collectResourceTiming=n.collectResourceTiming,n.maxzoom!==void 0&&(this.maxzoom=n.maxzoom),n.type&&(this.type=n.type),n.attribution&&(this.attribution=n.attribution),this.promoteId=n.promoteId,n.clusterMaxZoom!==void 0&&this.maxzoom<=n.clusterMaxZoom&&c.w(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${n.clusterMaxZoom}".`),this.workerOptions=c.e({source:this.id,cluster:n.cluster||!1,geojsonVtOptions:{buffer:this._pixelsToTileUnits(n.buffer!==void 0?n.buffer:128),tolerance:this._pixelsToTileUnits(n.tolerance!==void 0?n.tolerance:.375),extent:c.a5,maxZoom:this.maxzoom,lineMetrics:n.lineMetrics||!1,generateId:n.generateId||!1},superclusterOptions:{maxZoom:this._getClusterMaxZoom(n.clusterMaxZoom),minPoints:Math.max(2,n.clusterMinPoints||2),extent:c.a5,radius:this._pixelsToTileUnits(n.clusterRadius||50),log:!1,generateId:n.generateId||!1},clusterProperties:n.clusterProperties,filter:n.filter},n.workerOptions),typeof this.promoteId=="string"&&(this.workerOptions.promoteId=this.promoteId)}_hasPendingWorkerUpdate(){return this._pendingWorkerUpdate.data!==void 0||this._pendingWorkerUpdate.diff!==void 0||this._pendingWorkerUpdate.optionsChanged}_pixelsToTileUnits(t){return t*(c.a5/this.tileSize)}_getClusterMaxZoom(t){const n=t?Math.round(t):this.maxzoom-1;return Number.isInteger(t)||t===void 0||c.w(`Integer expected for option 'clusterMaxZoom': provided value "${t}" rounded to "${n}"`),n}load(){return c._(this,void 0,void 0,(function*(){yield this._updateWorkerData()}))}onAdd(t){this.map=t,this.load()}setData(t,n){this._data=typeof t=="string"?{url:t}:{geojson:t},this._pendingWorkerUpdate={data:t};const s=this._updateWorkerData();return n?s:this}updateData(t,n){this._pendingWorkerUpdate.diff=c.a6(this._pendingWorkerUpdate.diff,t);const s=this._updateWorkerData();return n?s:this}getData(){return c._(this,void 0,void 0,(function*(){const t=c.e({type:this.type},this.workerOptions);return this.actor.sendAsync({type:"GD",data:t})}))}getBounds(){return c._(this,void 0,void 0,(function*(){return Mn(yield this.getData())}))}setClusterOptions(t){return this.workerOptions.cluster=t.cluster,t.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=this._pixelsToTileUnits(t.clusterRadius)),t.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=this._getClusterMaxZoom(t.clusterMaxZoom)),this._pendingWorkerUpdate.optionsChanged=!0,this._updateWorkerData(),this}getClusterExpansionZoom(t){return this.actor.sendAsync({type:"GCEZ",data:{type:this.type,clusterId:t,source:this.id}})}getClusterChildren(t){return this.actor.sendAsync({type:"GCC",data:{type:this.type,clusterId:t,source:this.id}})}getClusterLeaves(t,n,s){return this.actor.sendAsync({type:"GCL",data:{type:this.type,source:this.id,clusterId:t,limit:n,offset:s}})}_updateWorkerData(){return c._(this,void 0,void 0,(function*(){if(this._isUpdatingWorker)return;if(!this._hasPendingWorkerUpdate())return void c.w(`No pending worker updates for GeoJSONSource ${this.id}.`);const{data:t,diff:n}=this._pendingWorkerUpdate,s=this._getLoadGeoJSONParameters(t,n);t!==void 0?this._pendingWorkerUpdate.data=void 0:n&&(this._pendingWorkerUpdate.diff=void 0),this._pendingWorkerUpdate.optionsChanged=void 0,yield this._dispatchWorkerUpdate(s)}))}_getLoadGeoJSONParameters(t,n){const s=c.e({type:this.type},this.workerOptions);return typeof t=="string"?(s.request=this.map._requestManager.transformRequest(Zt.resolveURL(t),"Source"),s.request.collectResourceTiming=this._collectResourceTiming,s):t!==void 0?(s.data=t,s):(n&&(s.dataDiff=n),s)}_dispatchWorkerUpdate(t){return c._(this,void 0,void 0,(function*(){this._isUpdatingWorker=!0,this.fire(new c.l("dataloading",{dataType:"source"}));try{const n=yield this.actor.sendAsync({type:"LD",data:t});if(this._isUpdatingWorker=!1,this._removed||n.abandoned)return void this.fire(new c.l("dataabort",{dataType:"source"}));n.data&&(this._data={geojson:n.data});const s=this._applyDiffToSource(t.dataDiff),l=this._getShouldReloadTileOptions(s),p={dataType:"source"};this._applyResourceTiming(p,n),this.fire(new c.l("data",Object.assign(Object.assign({},p),{sourceDataType:"metadata"}))),this.fire(new c.l("data",Object.assign(Object.assign({},p),{sourceDataType:"content",shouldReloadTileOptions:l})))}catch(n){if(this._isUpdatingWorker=!1,this._removed)return void this.fire(new c.l("dataabort",{dataType:"source"}));this.fire(new c.k(n))}finally{this._hasPendingWorkerUpdate()&&this._updateWorkerData()}}))}_applyResourceTiming(t,n){var s;if(!this._collectResourceTiming)return;const l=(s=n.resourceTiming)===null||s===void 0?void 0:s[this.id];if(!l)return;const p=l.slice(0);p?.length&&c.e(t,{resourceTiming:p})}_applyDiffToSource(t){if(!t)return;const n=typeof this.promoteId=="string"?this.promoteId:void 0;if(!this._data.url&&!this._data.updateable){const l=c.a7(this._data.geojson,n);if(!l)throw new Error(`GeoJSONSource "${this.id}": GeoJSON data is not compatible with updateData`);this._data={updateable:l}}if(!this._data.updateable)return;const s=c.a8(this._data.updateable,t,n);return t.removeAll||this._options.cluster?void 0:s}_getShouldReloadTileOptions(t){if(t)return{affectedBounds:t.filter(Boolean).map((n=>Mn(n)))}}shouldReloadTile(t,{affectedBounds:n}){if(t.state==="loading")return!0;if(t.state==="unloaded")return!1;const{buffer:s,extent:l}=this.workerOptions.geojsonVtOptions,p=(function({x:m,y:g,z:x},w=0){const T=c.a3((m-w)/Math.pow(2,x)),I=c.a4((g+1+w)/Math.pow(2,x)),M=c.a3((m+1+w)/Math.pow(2,x)),z=c.a4((g-w)/Math.pow(2,x));return new vt([T,I],[M,z])})(t.tileID.canonical,s/l);for(const m of n)if(p.intersects(m))return!0;return!1}loaded(){return!this._isUpdatingWorker&&!this._hasPendingWorkerUpdate()}loadTile(t){return c._(this,void 0,void 0,(function*(){const n=t.actor?"RT":"LT";t.actor=this.actor;const s={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,subdivisionGranularity:this.map.style.projection.subdivisionGranularity};t.abortController=new AbortController;const l=yield this.actor.sendAsync({type:n,data:s},t.abortController);delete t.abortController,t.unloadVectorData(),t.aborted||t.loadVectorData(l,this.map.painter,n==="RT")}))}abortTile(t){return c._(this,void 0,void 0,(function*(){t.abortController&&(t.abortController.abort(),delete t.abortController),t.aborted=!0}))}unloadTile(t){return c._(this,void 0,void 0,(function*(){t.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:t.uid,type:this.type,source:this.id}})}))}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return c.e({},this._options,{type:this.type,data:this._data.updateable?{type:"FeatureCollection",features:Array.from(this._data.updateable.values())}:this._data.url||this._data.geojson})}hasTransition(){return!1}}class zr extends c.E{constructor(t,n,s,l){super(),this.flippedWindingOrder=!1,this.id=t,this.dispatcher=s,this.coordinates=n.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(l),this.options=n}load(t){return c._(this,void 0,void 0,(function*(){this._loaded=!1,this.fire(new c.l("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const n=yield Li.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,n&&n.data&&(this.image=n.data,t&&(this.coordinates=t),this._finishLoading())}catch(n){this._request=null,this._loaded=!0,c.Z(n)||this.fire(new c.k(n))}}))}loaded(){return this._loaded}updateImage(t){return t.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=t.url,this.load(t.coordinates).finally((()=>{this.texture=null})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new c.l("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(t){this.map=t,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(t){this.coordinates=t;const n=t.map(c.a9.fromLngLat);var s;return this.tileID=(function(l){const p=c.aa.fromPoints(l),m=p.width(),g=p.height(),x=Math.max(m,g),w=Math.max(0,Math.floor(-Math.log(x)/Math.LN2)),T=Math.pow(2,w);return new c.ac(w,Math.floor((p.minX+p.maxX)/2*T),Math.floor((p.minY+p.maxY)/2*T))})(n),this.terrainTileRanges=this._getOverlappingTileRanges(n),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=n.map((l=>this.tileID.getTilePoint(l)._round())),this.flippedWindingOrder=((s=this.tileCoords)[1].x-s[0].x)*(s[2].y-s[0].y)-(s[1].y-s[0].y)*(s[2].x-s[0].x)<0,this.fire(new c.l("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const t=this.map.painter.context,n=t.gl;this.texture||(this.texture=new c.T(t,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let s=!1;for(const l in this.tiles){const p=this.tiles[l];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,s=!0)}s&&this.fire(new c.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(t){return c._(this,void 0,void 0,(function*(){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={}):t.state="errored"}))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}_getOverlappingTileRanges(t){const{minX:n,minY:s,maxX:l,maxY:p}=c.aa.fromPoints(t),m={};for(let g=0;g<=c.ab;g++){const x=Math.pow(2,g),w=Math.floor(n*x),T=Math.floor(s*x),I=Math.floor(l*x),M=Math.floor(p*x),z=(w%x+x)%x,L=I%x,j=Math.floor(w/x),U=Math.floor(I/x);m[g]={minWrap:j,maxWrap:U,minTileXWrapped:z,maxTileXWrapped:L,minTileY:T,maxTileY:M}}return m}}class sn extends zr{constructor(t,n,s,l){super(t,n,s,l),this.roundZoom=!0,this.type="video",this.options=n}load(){return c._(this,void 0,void 0,(function*(){this._loaded=!1;const t=this.options;this.urls=[];for(const n of t.urls)this.urls.push(this.map._requestManager.transformRequest(n,"Source").url);try{const n=yield c.ad(this.urls);if(this._loaded=!0,!n)return;this.video=n,this.video.loop=!0,this.video.addEventListener("playing",(()=>{this.map.triggerRepaint()})),this.map&&this.video.play(),this._finishLoading()}catch(n){this.fire(new c.k(n))}}))}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(t){if(this.video){const n=this.video.seekable;t<n.start(0)||t>n.end(0)?this.fire(new c.k(new c.ae(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=t}}getVideo(){return this.video}onAdd(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const t=this.map.painter.context,n=t.gl;this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new c.T(t,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE));let s=!1;for(const l in this.tiles){const p=this.tiles[l];p.state!=="loaded"&&(p.state="loaded",p.texture=this.texture,s=!0)}s&&this.fire(new c.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class ta extends zr{constructor(t,n,s,l){super(t,n,s,l),n.coordinates?Array.isArray(n.coordinates)&&n.coordinates.length===4&&!n.coordinates.some((p=>!Array.isArray(p)||p.length!==2||p.some((m=>typeof m!="number"))))||this.fire(new c.k(new c.ae(`sources.${t}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new c.k(new c.ae(`sources.${t}`,null,'missing required property "coordinates"'))),n.animate&&typeof n.animate!="boolean"&&this.fire(new c.k(new c.ae(`sources.${t}`,null,'optional "animate" property must be a boolean value'))),n.canvas?typeof n.canvas=="string"||n.canvas instanceof HTMLCanvasElement||this.fire(new c.k(new c.ae(`sources.${t}`,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 c.k(new c.ae(`sources.${t}`,null,'missing required property "canvas"'))),this.options=n,this.animate=n.animate===void 0||n.animate}load(){return c._(this,void 0,void 0,(function*(){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 c.k(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())}))}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const n=this.map.painter.context,s=n.gl;this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):(this.texture=new c.T(n,this.canvas,s.RGBA,{premultiply:!0}),this.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE));let l=!1;for(const p in this.tiles){const m=this.tiles[p];m.state!=="loaded"&&(m.state="loaded",m.texture=this.texture,l=!0)}l&&this.fire(new c.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",animate:this.animate,canvas:this.options.canvas,coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const t of[this.canvas.width,this.canvas.height])if(isNaN(t)||t<=0)return!0;return!1}}const Fa={},ia=d=>{switch(d){case"geojson":return Ar;case"image":return zr;case"raster":return Pn;case"raster-dem":return nn;case"vector":return ea;case"video":return sn;case"canvas":return ta}return Fa[d]},ie="RTLPluginLoaded";class C extends c.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=Tn()}_syncState(t){return this.status=t,this.dispatcher.broadcast("SRPS",{pluginStatus:t,pluginURL:this.url}).catch((n=>{throw this.status="error",n}))}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(t){return c._(this,arguments,void 0,(function*(n,s=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=Zt.resolveURL(n),!this.url)throw new Error(`requested url ${n} is invalid`);if(this.status==="unavailable"){if(!s)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()}))}_requestImport(){return c._(this,void 0,void 0,(function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new c.l(ie))}))}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let D=null;function F(){return D||(D=new C),D}var $,J;(function(d){d[d.Base=0]="Base",d[d.Parent=1]="Parent"})($||($={})),(function(d){d[d.Departing=0]="Departing",d[d.Incoming=1]="Incoming"})(J||(J={}));class ae{constructor(t,n){this.timeAdded=0,this.fadeEndTime=0,this.fadeOpacity=1,this.tileID=t,this.uid=c.af(),this.uses=0,this.tileSize=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttFingerprint={},this.expiredRequestCount=0,this.state="loading"}isRenderable(t){return this.hasData()&&(!this.fadeEndTime||this.fadeOpacity>0)&&(t||!this.holdingForSymbolFade())}setCrossFadeLogic({fadingRole:t,fadingDirection:n,fadingParentID:s,fadeEndTime:l}){this.resetFadeLogic(),this.fadingRole=t,this.fadingDirection=n,this.fadingParentID=s,this.fadeEndTime=l}setSelfFadeLogic(t){this.resetFadeLogic(),this.selfFading=!0,this.fadeEndTime=t}resetFadeLogic(){this.fadingRole=null,this.fadingDirection=null,this.fadingParentID=null,this.selfFading=!1,this.timeAdded=it(),this.fadeEndTime=0,this.fadeOpacity=1}wasRequested(){return this.state==="errored"||this.state==="loaded"||this.state==="reloading"}clearTextures(t){this.demTexture&&t.saveTileTexture(this.demTexture),this.demTexture=null}loadVectorData(t,n,s){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",t){t.featureIndex&&(this.latestFeatureIndex=t.featureIndex,t.rawTileData?(this.latestRawTileData=t.rawTileData,this.latestFeatureIndex.rawTileData=t.rawTileData,this.latestFeatureIndex.encoding=t.encoding):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData,this.latestFeatureIndex.encoding=this.latestEncoding)),this.collisionBoxArray=t.collisionBoxArray,this.buckets=(function(l,p){const m={};if(!p)return m;for(const g of l){const x=g.layerIds.map((w=>p.getLayer(w))).filter(Boolean);if(x.length!==0){g.layers=x,g.stateDependentLayerIds&&(g.stateDependentLayers=g.stateDependentLayerIds.map((w=>x.filter((T=>T.id===w))[0])));for(const w of x)m[w.id]=g}}return m})(t.buckets,n?.style),this.hasSymbolBuckets=!1;for(const l in this.buckets){const p=this.buckets[l];if(p instanceof c.ah){if(this.hasSymbolBuckets=!0,!s)break;p.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const l in this.buckets){const p=this.buckets[l];if(p instanceof c.ah&&p.hasRTLText){this.hasRTLText=!0,F().lazyLoad();break}}this.queryPadding=0;for(const l in this.buckets){const p=this.buckets[l];this.queryPadding=Math.max(this.queryPadding,n.style.getLayer(l).queryRadius(p))}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage),this.dashPositions=t.dashPositions}else this.collisionBoxArray=new c.ag}unloadVectorData(){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.dashPositions&&(this.dashPositions=null),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(t){return this.buckets[t.id]}upload(t){for(const s in this.buckets){const l=this.buckets[s];l.uploadPending()&&l.upload(t)}const n=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new c.T(t,this.imageAtlas.image,n.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new c.T(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null)}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture)}queryRenderedFeatures(t,n,s,l,p,m,g,x,w,T,I){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:l,cameraQueryGeometry:p,scale:m,tileSize:this.tileSize,pixelPosMatrix:T,transform:x,params:g,queryPadding:this.queryPadding*w,getElevation:I},t,n,s):{}}querySourceFeatures(t,n){const s=this.latestFeatureIndex;if(!s||!s.rawTileData)return;const l=s.loadVTLayers(),p=n&&n.sourceLayer?n.sourceLayer:"",m=l[c.ai]||l[p];if(!m)return;const g=c.aj(n?.filter,n?.globalState),{z:x,x:w,y:T}=this.tileID.canonical,I={z:x,x:w,y:T};for(let M=0;M<m.length;M++){const z=m.feature(M);if(g.needGeometry){const U=c.ak(z,!0);if(!g.filter(new c.H(this.tileID.overscaledZ),U,this.tileID.canonical))continue}else if(!g.filter(new c.H(this.tileID.overscaledZ),z))continue;const L=s.getId(z,p),j=new c.al(z,x,w,T,L);j.tile=I,t.push(j)}}hasData(){return this.state==="loaded"||this.state==="reloading"||this.state==="expired"}patternsLoaded(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(t){const n=this.expirationTime;if(t.cacheControl){const s=c.am(t.cacheControl);s["max-age"]&&(this.expirationTime=Date.now()+1e3*s["max-age"])}else t.expires&&(this.expirationTime=new Date(t.expires).getTime());if(this.expirationTime){const s=Date.now();let l=!1;if(this.expirationTime>s)l=!1;else if(n)if(this.expirationTime<n)l=!0;else{const p=this.expirationTime-n;p?this.expirationTime=s+Math.max(p,3e4):l=!0}else l=!0;l?(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(t,n){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData||Object.keys(t).length===0)return;const s=this.latestFeatureIndex.loadVTLayers();for(const l in this.buckets){if(!n.style.hasLayer(l))continue;const p=this.buckets[l],m=p.layers[0].sourceLayer||c.ai,g=s[m],x=t[m];if(!g||!x||Object.keys(x).length===0)continue;p.update(x,g,this.imageAtlas&&this.imageAtlas.patternPositions||{},this.dashPositions||{});const w=n&&n.style&&n.style.getLayer(l);w&&(this.queryPadding=Math.max(this.queryPadding,w.queryRadius(p)))}}holdingForSymbolFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<it()}clearSymbolFadeHold(){this.symbolFadeHoldUntil=void 0}setSymbolHoldDuration(t){this.symbolFadeHoldUntil=it()+t}setDependencies(t,n){const s={};for(const l of n)s[l]=!0;this.dependencies[t]=s}hasDependency(t,n){for(const s of t){const l=this.dependencies[s];if(l){for(const p of n)if(l[p])return!0}}return!1}}class oe{constructor(){this.state={},this.stateChanges={},this.deletedStates={},this.revision=0}updateState(t,n,s){const l=String(n);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][l]=this.stateChanges[t][l]||{},c.e(this.stateChanges[t][l],s),this.deletedStates[t]===null){this.deletedStates[t]={};for(const p in this.state[t])p!==l&&(this.deletedStates[t][p]=null)}else if(this.deletedStates[t]&&this.deletedStates[t][l]===null){this.deletedStates[t][l]={};for(const p in this.state[t][l])s[p]||(this.deletedStates[t][l][p]=null)}else for(const p in s)this.deletedStates[t]&&this.deletedStates[t][l]&&this.deletedStates[t][l][p]===null&&delete this.deletedStates[t][l][p]}removeFeatureState(t,n,s){if(this.deletedStates[t]===null)return;const l=String(n);if(this.deletedStates[t]=this.deletedStates[t]||{},s&&n!==void 0)this.deletedStates[t][l]!==null&&(this.deletedStates[t][l]=this.deletedStates[t][l]||{},this.deletedStates[t][l][s]=null);else if(n!==void 0)if(this.stateChanges[t]&&this.stateChanges[t][l])for(s in this.deletedStates[t][l]={},this.stateChanges[t][l])this.deletedStates[t][l][s]=null;else this.deletedStates[t][l]=null;else this.deletedStates[t]=null}getState(t,n){const s=String(n),l=c.e({},(this.state[t]||{})[s],(this.stateChanges[t]||{})[s]);if(this.deletedStates[t]===null)return{};if(this.deletedStates[t]){const p=this.deletedStates[t][n];if(p===null)return{};for(const m in p)delete l[m]}return l}initializeTileState(t,n){t.setFeatureState(this.state,n)}coalesceChanges(t,n){const s={};for(const l in this.stateChanges){this.state[l]=this.state[l]||{};const p={};for(const m in this.stateChanges[l])this.state[l][m]||(this.state[l][m]={}),c.e(this.state[l][m],this.stateChanges[l][m]),p[m]=this.state[l][m];s[l]=p}for(const l in this.deletedStates){this.state[l]=this.state[l]||{};const p={};if(this.deletedStates[l]===null)for(const m in this.state[l])p[m]={},this.state[l][m]={};else for(const m in this.deletedStates[l]){if(this.deletedStates[l][m]===null)this.state[l][m]={};else for(const g of Object.keys(this.deletedStates[l][m]))delete this.state[l][m][g];p[m]=this.state[l][m]}s[l]=s[l]||{},c.e(s[l],p)}this.stateChanges={},this.deletedStates={},Object.keys(s).length!==0&&(this.revision++,t.setFeatureState(s,n))}}const re=89.25;function ne(d,t){const n=c.an(t.lat,-c.ao,c.ao);return new c.P(c.Y(t.lng)*d,c.X(n)*d)}function be(d,t){return new c.a9(t.x/d,t.y/d).toLngLat()}function me(d){return d.cameraToCenterDistance*Math.min(.85*Math.tan(c.ap(90-d.pitch)),Math.tan(c.ap(re-d.pitch)))}function K(d,t){const n=d.canonical,s=t/c.aq(n.z),l=n.x+Math.pow(2,n.z)*d.wrap,p=c.ar(new Float64Array(16));return c.O(p,p,[l*s,n.y*s,0]),c.Q(p,p,[s/c.a5,s/c.a5,1]),p}function Oe(d,t,n,s,l){const p=c.a9.fromLngLat(d,t),m=l*c.as(1,d.lat),{x:g,y:x,z:w}=Ze(n,s);return new c.a9(p.x+m*-g,p.y+m*-x,p.z+m*-w)}function Ze(d,t){const n=c.ap(d),s=c.ap(t),l=Math.cos(-n),p=Math.sin(n);return{x:p*Math.sin(s),y:-p*Math.cos(s),z:l}}function Ne(d,t,n){const s=t.intersectsFrustum(d);if(!n||s===0)return s;const l=t.intersectsPlane(n);return l===0?0:s===2&&l===2?2:1}function qe(d,t,n){let s=0;const l=(n-t)/10;for(let p=0;p<10;p++)s+=l*Math.pow(Math.cos(t+(p+.5)/10*(n-t)),d);return s}function Ge(d,t){return function(n,s,l,p,m){const g=2*((d-1)/c.at(Math.cos(c.ap(re-m))/Math.cos(c.ap(re)))-1),x=Math.acos(l/p),w=2*qe(g-1,0,c.ap(m/2)),T=Math.min(c.ap(re),x+c.ap(m/2)),I=qe(g-1,Math.min(T,x-c.ap(m/2)),T),M=Math.atan(s/l),z=Math.hypot(s,l);let L=n;return L+=c.at(p/z/Math.max(.5,Math.cos(c.ap(m/2)))),L+=g*c.at(Math.cos(M))/2,L-=c.at(Math.max(1,I/w/t))/2,L}}const Ye=Ge(9.314,3);function Lt(d,t){const n=(t.roundZoom?Math.round:Math.floor)(d.zoom+c.at(d.tileSize/t.tileSize));return Math.max(0,n)}function mt(d,t){const n=d.getCameraFrustum(),s=d.getClippingPlane(),l=d.screenPointToMercatorCoordinate(d.getCameraPoint()),p=c.a9.fromLngLat(d.center,d.elevation);l.z=p.z+Math.cos(d.pitchInRadians)*d.cameraToCenterDistance/d.worldSize;const m=d.getCoveringTilesDetailsProvider(),g=m.allowVariableZoom(d,t),x=Lt(d,t),w=t.minzoom||0,T=t.maxzoom!==void 0?t.maxzoom:d.maxZoom,I=Math.min(Math.max(0,x),T),M=Math.pow(2,I),z=[M*l.x,M*l.y,0],L=[M*p.x,M*p.y,0],j=Math.hypot(p.x-l.x,p.y-l.y),U=Math.abs(p.z-l.z),N=Math.hypot(j,U),Z=Y=>({zoom:0,x:0,y:0,wrap:Y,fullyVisible:!1}),X=[],q=[];if(d.renderWorldCopies&&m.allowWorldCopies())for(let Y=1;Y<=3;Y++)X.push(Z(-Y)),X.push(Z(Y));for(X.push(Z(0));X.length>0;){const Y=X.pop(),Q=Y.x,W=Y.y;let te=Y.fullyVisible;const de={x:Q,y:W,z:Y.zoom},ue=m.getTileBoundingVolume(de,Y.wrap,d.elevation,t);if(!te){const Ie=Ne(n,ue,s);if(Ie===0)continue;te=Ie===2}const le=m.distanceToTile2d(l.x,l.y,de,ue);let he=x;g&&(he=(t.calculateTileZoom||Ye)(d.zoom+c.at(d.tileSize/t.tileSize),le,U,N,d.fov)),he=(t.roundZoom?Math.round:Math.floor)(he),he=Math.max(0,he);const Me=Math.min(he,T);if(Y.wrap=m.getWrap(p,de,Y.wrap),Y.zoom>=Me){if(Y.zoom<w)continue;const Ie=I-Y.zoom,_e=z[0]-.5-(Q<<Ie),Le=z[1]-.5-(W<<Ie),He=t.reparseOverscaled?Math.max(Y.zoom,he):Y.zoom;q.push({tileID:new c.a2(Y.zoom===T?He:Y.zoom,Y.wrap,Y.zoom,Q,W),distanceSq:c.au([L[0]-.5-Q,L[1]-.5-W]),tileDistanceToCamera:Math.sqrt(_e*_e+Le*Le)})}else for(let Ie=0;Ie<4;Ie++)X.push({zoom:Y.zoom+1,x:(Q<<1)+Ie%2,y:(W<<1)+(Ie>>1),wrap:Y.wrap,fullyVisible:te})}return q.sort(((Y,Q)=>Y.distanceSq-Q.distanceSq)).map((Y=>Y.tileID))}const Ft=c.aa.fromPoints([new c.P(0,0),new c.P(c.a5,c.a5)]);function ni(d){return d==="raster"||d==="image"||d==="video"}function At(d,t,n,s,l,p,m){if(!t.hasData())return!1;const{tileID:g,fadingRole:x,fadingDirection:w,fadingParentID:T}=t;if(x===$.Base&&w===J.Incoming&&T)return n[T.key]=T,!0;const I=Math.max(g.overscaledZ-l,p);for(let M=g.overscaledZ-1;M>=I;M--){const z=g.scaledTo(M),L=d.getLoadedTile(z);if(L)return t.setCrossFadeLogic({fadingRole:$.Base,fadingDirection:J.Incoming,fadingParentID:L.tileID,fadeEndTime:s+m}),L.setCrossFadeLogic({fadingRole:$.Parent,fadingDirection:J.Departing,fadeEndTime:s+m}),n[z.key]=z,!0}return!1}function Se(d,t,n,s,l,p){if(!t.hasData())return!1;const m=t.tileID.children(l);let g=at(d,t,m,n,s,l,p);if(g)return!0;for(const x of m)at(d,t,x.children(l),n,s,l,p)&&(g=!0);return g}function at(d,t,n,s,l,p,m){if(n[0].overscaledZ>=p)return!1;let g=!1;for(const x of n){const w=d.getLoadedTile(x);if(!w)continue;const{fadingRole:T,fadingDirection:I,fadingParentID:M}=w;T===$.Base&&I===J.Departing&&M||(w.setCrossFadeLogic({fadingRole:$.Base,fadingDirection:J.Departing,fadingParentID:t.tileID,fadeEndTime:l+m}),t.setCrossFadeLogic({fadingRole:$.Parent,fadingDirection:J.Incoming,fadeEndTime:l+m})),s[x.key]=x,g=!0}return g}function bt(d,t,n,s){const l=d.tileID;return!!d.selfFading||!d.hasData()&&!!t.has(l)&&(d.setSelfFadeLogic(n+s),!0)}function In(d,t){var n;d.needsHillshadePrepare=!0,d.needsTerrainPrepare=!0;let s=t.tileID.canonical.x-d.tileID.canonical.x;const l=t.tileID.canonical.y-d.tileID.canonical.y,p=Math.pow(2,d.tileID.canonical.z),m=t.tileID.key;s===0&&l===0||Math.abs(l)>1||(Math.abs(s)>1&&(Math.abs(s+p)===1?s+=p:Math.abs(s-p)===1&&(s-=p)),t.dem&&d.dem&&(d.dem.backfillBorder(t.dem,s,l),!((n=d.neighboringTiles)===null||n===void 0)&&n[m]&&(d.neighboringTiles[m].backfilled=!0)))}class Dr{constructor(){this._tiles={}}handleWrapJump(t){const n={};for(const s in this._tiles){const l=this._tiles[s];l.tileID=l.tileID.unwrapTo(l.tileID.wrap+t),n[l.tileID.key]=l}this._tiles=n}setFeatureState(t,n){for(const s in this._tiles)this._tiles[s].setFeatureState(t,n)}getAllTiles(){return Object.values(this._tiles)}getAllIds(t=!1){return t?Object.values(this._tiles).map((n=>n.tileID)).sort(c.aw).map((n=>n.key)):Object.keys(this._tiles)}getTileById(t){return this._tiles[t]}setTile(t,n){this._tiles[t]=n}deleteTileById(t){delete this._tiles[t]}getLoadedTile(t){const n=this.getTileById(t.key);return n?.hasData()?n:null}isIdRenderable(t,n=!1){var s;return(s=this.getTileById(t))===null||s===void 0?void 0:s.isRenderable(n)}getRenderableIds(t=0,n){const s=[];for(const l of this.getAllIds())this.isIdRenderable(l,n)&&s.push(this.getTileById(l));return n?s.sort(((l,p)=>{const m=l.tileID,g=p.tileID,x=new c.P(m.canonical.x,m.canonical.y)._rotate(-t),w=new c.P(g.canonical.x,g.canonical.y)._rotate(-t);return m.overscaledZ-g.overscaledZ||w.y-x.y||w.x-x.x})).map((l=>l.tileID.key)):s.map((l=>l.tileID)).sort(c.aw).map((l=>l.key))}}class Pe extends c.E{constructor(t,n,s){super(),this.id=t,this.dispatcher=s,this.on("data",(l=>this._dataHandler(l))),this.on("dataloading",(()=>{this._sourceErrored=!1})),this.on("error",(()=>{this._sourceErrored=this._source.loaded()})),this._source=((l,p,m,g)=>{const x=new(ia(p.type))(l,p,m,g);if(x.id!==l)throw new Error(`Expected Source id to be ${l} instead of ${x.id}`);return x})(t,n,s,this),this._inViewTiles=new Dr,this._outOfViewCache=new c.ax(0,(l=>this._unloadTile(l))),this._timers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._rasterFadeDuration=0,this._maxFadingAncestorLevels=5,this._state=new oe,this._didEmitContent=!1,this._updated=!1}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(t)}onRemove(t){for(const n of this._inViewTiles.getAllTiles())n.unloadVectorData();this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t),this._inViewTiles=new Dr}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(const t of this._inViewTiles.getAllTiles())if(t.state!=="loaded"&&t.state!=="errored")return!1;return!0}getSource(){return this._source}getState(){return this._state}pause(){this._paused=!0}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(t,n,s){return c._(this,void 0,void 0,(function*(){try{yield this._source.loadTile(t),this._tileLoaded(t,n,s)}catch(l){t.state="errored",l.status!==404?this._source.fire(new c.k(l,{tile:t})):this.update(this.transform,this.terrain)}}))}_unloadTile(t){this._source.unloadTile&&this._source.unloadTile(t)}_abortTile(t){this._source.abortTile&&this._source.abortTile(t),this._source.fire(new c.l("dataabort",{tile:t,coord:t.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._inViewTiles,this.map?this.map.painter:null);for(const n of this._inViewTiles.getAllTiles())n.upload(t),n.prepare(this.map.style.imageManager)}getIds(){return this._inViewTiles.getAllIds(!0)}getRenderableIds(t){var n;return this._inViewTiles.getRenderableIds((n=this.transform)===null||n===void 0?void 0:n.bearingInRadians,t)}hasRenderableParent(t){const n=t.overscaledZ-1;if(n>=this._source.minzoom){const s=this.getLoadedTile(t.scaledTo(n));if(s)return this._inViewTiles.isIdRenderable(s.tileID.key)}return!1}reload(t,n=void 0){if(this._paused)this._shouldReloadOnResume=!0;else{this._outOfViewCache.reset();for(const s of this._inViewTiles.getAllIds()){const l=this._inViewTiles.getTileById(s);n&&!this._source.shouldReloadTile(l,n)||(t?this._reloadTile(s,"expired"):l.state!=="errored"&&this._reloadTile(s,"reloading"))}}}_reloadTile(t,n){return c._(this,void 0,void 0,(function*(){const s=this._inViewTiles.getTileById(t);s&&(s.state!=="loading"&&(s.state=n),yield this._loadTile(s,t,n))}))}_tileLoaded(t,n,s){t.timeAdded=it(),t.selfFading&&(t.fadeEndTime=t.timeAdded+this._rasterFadeDuration),s==="expired"&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(n,t),this.getSource().type==="raster-dem"&&t.dem&&(function(l,p){var m,g;const x=p.getRenderableIds();for(const w of x){if(!l.neighboringTiles||!l.neighboringTiles[w])continue;const T=p.getTileById(w);l.neighboringTiles[w].backfilled||In(l,T),!((g=(m=T.neighboringTiles)===null||m===void 0?void 0:m[l.tileID.key])===null||g===void 0)&&g.backfilled||In(T,l)}})(t,this._inViewTiles),this._state.initializeTileState(t,this.map?this.map.painter:null),t.aborted||this._source.fire(new c.l("data",{dataType:"source",tile:t,coord:t.tileID}))}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._inViewTiles.getTileById(t)}_retainLoadedChildren(t,n){const s=this._getLoadedDescendents(n),l=new Set;for(const p of n){const m=s[p.key];if(!m?.length){l.add(p);continue}const g=p.overscaledZ+Pe.maxOverzooming,x=m.filter((I=>I.tileID.overscaledZ<=g));if(!x.length){l.add(p);continue}const w=Math.min(...x.map((I=>I.tileID.overscaledZ))),T=x.filter((I=>I.tileID.overscaledZ===w)).map((I=>I.tileID));for(const I of T)t[I.key]=I;this._areDescendentsComplete(T,w,p.overscaledZ)||l.add(p)}return l}_getLoadedDescendents(t){var n;const s={};for(const l of this._inViewTiles.getAllTiles().filter((p=>p.hasData())))for(const p of t)l.tileID.isChildOf(p)&&(s[n=p.key]||(s[n]=[])).push(l);return s}_areDescendentsComplete(t,n,s){return t.length===1&&t[0].isOverscaled()?t[0].overscaledZ===n:Math.pow(4,n-s)===t.length}getLoadedTile(t){return this._inViewTiles.getLoadedTile(t)}updateCacheSize(t){const n=Math.ceil(t.width/this._source.tileSize)+1,s=Math.ceil(t.height/this._source.tileSize)+1,l=Math.floor(n*s*(this._maxTileCacheZoomLevels===null?c.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),p=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,l):l;this._outOfViewCache.setMaxSize(p)}handleWrapJump(t){const n=Math.round((t-(this._prevLng===void 0?t:this._prevLng))/360);this._prevLng=t,n&&(this._inViewTiles.handleWrapJump(n),this._resetTileReloadTimers())}update(t,n){if(!this._sourceLoaded||this._paused)return;let s;this.transform=t,this.terrain=n,this.updateCacheSize(t),this.handleWrapJump(this.transform.center.lng),this.used||this.usedForTerrain?this._source.tileID?s=t.getVisibleUnwrappedCoordinates(this._source.tileID).map((x=>new c.a2(x.canonical.z,x.wrap,x.canonical.z,x.canonical.x,x.canonical.y))):(s=mt(t,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.type==="vector"&&this.map._zoomLevelsToOverscale!==void 0?t.maxZoom-this.map._zoomLevelsToOverscale:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:n,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(s=s.filter((x=>this._source.hasTile(x))))):s=[],this.usedForTerrain&&(s=this._addTerrainIdealTiles(s));const l=s.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,l&&this.fire(new c.l("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const p=Lt(t,this._source),m=this._updateRetainedTiles(s,p),g=ni(this._source.type);g&&this._rasterFadeDuration>0&&!n&&(function(x,w,T,I,M,z,L){const j=it(),U=c.av(w);for(const N of w){const Z=x.getTileById(N.key);Z.fadingDirection!==J.Departing&&Z.fadeOpacity!==0||Z.resetFadeLogic(),At(x,Z,T,j,I,M,L)||Se(x,Z,T,j,z,L)||bt(Z,U,j,L)||Z.resetFadeLogic()}})(this._inViewTiles,s,m,this._maxFadingAncestorLevels,this._source.minzoom,this._source.maxzoom,this._rasterFadeDuration),g?this._cleanUpRasterTiles(m):this._cleanUpVectorTiles(m)}_cleanUpRasterTiles(t){for(const n of this._inViewTiles.getAllIds())t[n]||this._removeTile(n)}_cleanUpVectorTiles(t){for(const n of this._inViewTiles.getAllIds()){const s=this._inViewTiles.getTileById(n);t[n]?s.clearSymbolFadeHold():s.hasSymbolBuckets?s.holdingForSymbolFade()?s.symbolFadeFinished()&&this._removeTile(n):s.setSymbolHoldDuration(this.map._fadeDuration):this._removeTile(n)}}_addTerrainIdealTiles(t){const n=[];for(const s of t)if(s.canonical.z>this._source.minzoom){const l=s.scaledTo(s.canonical.z-1);n.push(l);const p=s.scaledTo(Math.max(this._source.minzoom,Math.min(s.canonical.z,5)));n.push(p)}return t.concat(n)}releaseSymbolFadeTiles(){for(const t of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(t).holdingForSymbolFade()&&this._removeTile(t)}_updateRetainedTiles(t,n){var s;const l=new Set;for(const w of t)this._addTile(w).hasData()||l.add(w);const p=t.reduce(((w,T)=>(w[T.key]=T,w)),{}),m=this._retainLoadedChildren(p,l),g={},x=Math.max(n-Pe.maxUnderzooming,this._source.minzoom);for(const w of m){let T=this._inViewTiles.getTileById(w.key),I=T?.wasRequested();for(let M=w.overscaledZ-1;M>=x;--M){const z=w.scaledTo(M);if(g[z.key])break;if(g[z.key]=!0,T=this.getTile(z),!T&&I&&(T=this._addTile(z)),T){const L=T.hasData();if((L||!(!((s=this.map)===null||s===void 0)&&s.cancelPendingTileRequestsWhileZooming)||I)&&(p[z.key]=z),I=T.wasRequested(),L)break}}}return p}_addTile(t){let n=this._inViewTiles.getTileById(t.key);if(n)return n;n=this._outOfViewCache.getAndRemove(t),n&&(n.resetFadeLogic(),this._setTileReloadTimer(t.key,n),n.tileID=t,this._state.initializeTileState(n,this.map?this.map.painter:null));const s=n;return n||(n=new ae(t,this._source.tileSize*t.overscaleFactor()),this._loadTile(n,t.key,n.state)),n.uses++,this._inViewTiles.setTile(t.key,n),s||this._source.fire(new c.l("dataloading",{tile:n,coord:n.tileID,dataType:"source"})),n}_setTileReloadTimer(t,n){this._clearTileReloadTimer(t);const s=n.getExpiryTimeout();s&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,"expired"),delete this._timers[t]}),s))}_clearTileReloadTimer(t){const n=this._timers[t];n&&(clearTimeout(n),delete this._timers[t])}_resetTileReloadTimers(){for(const t in this._timers)clearTimeout(this._timers[t]),delete this._timers[t];for(const t of this._inViewTiles.getAllIds()){const n=this._inViewTiles.getTileById(t);this._setTileReloadTimer(t,n)}}refreshTiles(t){for(const n of this._inViewTiles.getAllIds()){const s=this._inViewTiles.getTileById(n);(this._inViewTiles.isIdRenderable(n)||s.state=="errored")&&t.some((l=>l.equals(s.tileID.canonical)))&&this._reloadTile(n,"expired")}}_removeTile(t){const n=this._inViewTiles.getTileById(t);n&&(n.uses--,this._inViewTiles.deleteTileById(t),this._clearTileReloadTimer(t),n.uses>0||(n.hasData()&&n.state!=="reloading"?this._outOfViewCache.add(n.tileID,n,n.getExpiryTimeout()):(n.aborted=!0,this._abortTile(n),this._unloadTile(n))))}_dataHandler(t){t.dataType==="source"&&(t.sourceDataType!=="metadata"?t.sourceDataType==="content"&&this._sourceLoaded&&!this._paused&&(this.reload(t.sourceDataChanged,t.shouldReloadTileOptions),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0):this._sourceLoaded=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t of this._inViewTiles.getAllIds())this._removeTile(t);this._outOfViewCache.reset()}tilesIn(t,n,s){const l=[],p=this.transform;if(!p)return l;const m=p.getCoveringTilesDetailsProvider().allowWorldCopies(),g=s?p.getCameraQueryGeometry(t):t,x=z=>p.screenPointToMercatorCoordinate(z,this.terrain),w=this.transformBbox(t,x,!m),T=this.transformBbox(g,x,!m),I=this.getIds(),M=c.aa.fromPoints(T);for(let z=0;z<I.length;z++){const L=this._inViewTiles.getTileById(I[z]);if(L.holdingForSymbolFade())continue;const j=m?[L.tileID]:[L.tileID.unwrapTo(-1),L.tileID.unwrapTo(0)],U=Math.pow(2,p.zoom-L.tileID.overscaledZ),N=n*L.queryPadding*c.a5/L.tileSize/U;for(const Z of j){const X=M.map((q=>Z.getTilePoint(new c.a9(q.x,q.y))));if(X.expandBy(N),X.intersects(Ft)){const q=w.map((Q=>Z.getTilePoint(Q))),Y=T.map((Q=>Z.getTilePoint(Q)));l.push({tile:L,tileID:m?Z:Z.unwrapTo(0),queryGeometry:q,cameraQueryGeometry:Y,scale:U})}}}return l}transformBbox(t,n,s){let l=t.map(n);if(s){const p=c.aa.fromPoints(t);p.shrinkBy(.001*Math.min(p.width(),p.height()));const m=p.map(n);c.aa.fromPoints(l).covers(m)||(l=l.map((g=>g.x>.5?new c.a9(g.x-1,g.y,g.z):g)))}return l}getVisibleCoordinates(t){const n=this.getRenderableIds(t).map((s=>this._inViewTiles.getTileById(s).tileID));return this.transform&&this.transform.populateCache(n),n}hasTransition(){return!!this._source.hasTransition()||!(!ni(this._source.type)||!(function(t,n){if(n<=0)return!1;const s=it();for(const l of t.getAllTiles())if(l.fadeEndTime>=s)return!0;return!1})(this._inViewTiles,this._rasterFadeDuration))}setRasterFadeDuration(t){this._rasterFadeDuration=t}setFeatureState(t,n,s){this._state.updateState(t=t||c.ai,n,s)}removeFeatureState(t,n,s){this._state.removeFeatureState(t=t||c.ai,n,s)}getFeatureState(t,n){return this._state.getState(t=t||c.ai,n)}setDependencies(t,n,s){const l=this._inViewTiles.getTileById(t);l&&l.setDependencies(n,s)}reloadTilesForDependencies(t,n){for(const s of this._inViewTiles.getAllIds())this._inViewTiles.getTileById(s).hasDependency(t,n)&&this._reloadTile(s,"reloading");this._outOfViewCache.filter((s=>!s.hasDependency(t,n)))}areTilesLoaded(){for(const t of this._inViewTiles.getAllTiles())if(t.state!=="loaded"&&t.state!=="errored")return!1;return!0}}Pe.maxUnderzooming=10,Pe.maxOverzooming=3;class $e{constructor(t,n){this.reset(t,n)}reset(t,n){this.points=t||[],this._distances=[0];for(let s=1;s<this.points.length;s++)this._distances[s]=this._distances[s-1]+this.points[s].dist(this.points[s-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(n||0,.5*this.length),this.paddedLength=this.length-2*this.padding}lerp(t){if(this.points.length===1)return this.points[0];t=c.an(t,0,1);let n=1,s=this._distances[n];const l=t*this.paddedLength+this.padding;for(;s<l&&n<this._distances.length;)s=this._distances[++n];const p=n-1,m=this._distances[p],g=s-m,x=g>0?(l-m)/g:0;return this.points[p].mult(1-x).add(this.points[n].mult(x))}}function We(d,t){let n=!0;return d==="always"||d!=="never"&&t!=="never"||(n=!1),n}class Ki{constructor(t,n,s){const l=this.boxCells=[],p=this.circleCells=[];this.xCellCount=Math.ceil(t/s),this.yCellCount=Math.ceil(n/s);for(let m=0;m<this.xCellCount*this.yCellCount;m++)l.push([]),p.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=t,this.height=n,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/n,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(t,n,s,l,p){this._forEachCell(n,s,l,p,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(n),this.bboxes.push(s),this.bboxes.push(l),this.bboxes.push(p)}insertCircle(t,n,s,l){this._forEachCell(n-l,s-l,n+l,s+l,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(n),this.circles.push(s),this.circles.push(l)}_insertBoxCell(t,n,s,l,p,m){this.boxCells[p].push(m)}_insertCircleCell(t,n,s,l,p,m){this.circleCells[p].push(m)}_query(t,n,s,l,p,m,g){if(s<0||t>this.width||l<0||n>this.height)return[];const x=[];if(t<=0&&n<=0&&this.width<=s&&this.height<=l){if(p)return[{key:null,x1:t,y1:n,x2:s,y2:l}];for(let w=0;w<this.boxKeys.length;w++)x.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++){const T=this.circles[3*w],I=this.circles[3*w+1],M=this.circles[3*w+2];x.push({key:this.circleKeys[w],x1:T-M,y1:I-M,x2:T+M,y2:I+M})}}else this._forEachCell(t,n,s,l,this._queryCell,x,{hitTest:p,overlapMode:m,seenUids:{box:{},circle:{}}},g);return x}query(t,n,s,l){return this._query(t,n,s,l,!1,null)}hitTest(t,n,s,l,p,m){return this._query(t,n,s,l,!0,p,m).length>0}hitTestCircle(t,n,s,l,p){const m=t-s,g=t+s,x=n-s,w=n+s;if(g<0||m>this.width||w<0||x>this.height)return!1;const T=[];return this._forEachCell(m,x,g,w,this._queryCellCircle,T,{hitTest:!0,overlapMode:l,circle:{x:t,y:n,radius:s},seenUids:{box:{},circle:{}}},p),T.length>0}_queryCell(t,n,s,l,p,m,g,x){const{seenUids:w,hitTest:T,overlapMode:I}=g,M=this.boxCells[p];if(M!==null){const L=this.bboxes;for(const j of M)if(!w.box[j]){w.box[j]=!0;const U=4*j,N=this.boxKeys[j];if(t<=L[U+2]&&n<=L[U+3]&&s>=L[U+0]&&l>=L[U+1]&&(!x||x(N))&&(!T||!We(I,N.overlapMode))&&(m.push({key:N,x1:L[U],y1:L[U+1],x2:L[U+2],y2:L[U+3]}),T))return!0}}const z=this.circleCells[p];if(z!==null){const L=this.circles;for(const j of z)if(!w.circle[j]){w.circle[j]=!0;const U=3*j,N=this.circleKeys[j];if(this._circleAndRectCollide(L[U],L[U+1],L[U+2],t,n,s,l)&&(!x||x(N))&&(!T||!We(I,N.overlapMode))){const Z=L[U],X=L[U+1],q=L[U+2];if(m.push({key:N,x1:Z-q,y1:X-q,x2:Z+q,y2:X+q}),T)return!0}}}return!1}_queryCellCircle(t,n,s,l,p,m,g,x){const{circle:w,seenUids:T,overlapMode:I}=g,M=this.boxCells[p];if(M!==null){const L=this.bboxes;for(const j of M)if(!T.box[j]){T.box[j]=!0;const U=4*j,N=this.boxKeys[j];if(this._circleAndRectCollide(w.x,w.y,w.radius,L[U+0],L[U+1],L[U+2],L[U+3])&&(!x||x(N))&&!We(I,N.overlapMode))return m.push(!0),!0}}const z=this.circleCells[p];if(z!==null){const L=this.circles;for(const j of z)if(!T.circle[j]){T.circle[j]=!0;const U=3*j,N=this.circleKeys[j];if(this._circlesCollide(L[U],L[U+1],L[U+2],w.x,w.y,w.radius)&&(!x||x(N))&&!We(I,N.overlapMode))return m.push(!0),!0}}}_forEachCell(t,n,s,l,p,m,g,x){const w=this._convertToXCellCoord(t),T=this._convertToYCellCoord(n),I=this._convertToXCellCoord(s),M=this._convertToYCellCoord(l);for(let z=w;z<=I;z++)for(let L=T;L<=M;L++)if(p.call(this,t,n,s,l,this.xCellCount*L+z,m,g,x))return}_convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}_convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}_circlesCollide(t,n,s,l,p,m){const g=l-t,x=p-n,w=s+m;return w*w>g*g+x*x}_circleAndRectCollide(t,n,s,l,p,m,g){const x=(m-l)/2,w=Math.abs(t-(l+x));if(w>x+s)return!1;const T=(g-p)/2,I=Math.abs(n-(p+T));if(I>T+s)return!1;if(w<=x||I<=T)return!0;const M=w-x,z=I-T;return M*M+z*z<=s*s}}function ra(d,t,n){const s=c.N();if(!d){const{vecSouth:I,vecEast:M}=Ke(t),z=Jt();z[0]=M[0],z[1]=M[1],z[2]=I[0],z[3]=I[1],l=z,(T=(m=(p=z)[0])*(w=p[3])-(x=p[2])*(g=p[1]))&&(l[0]=w*(T=1/T),l[1]=-g*T,l[2]=-x*T,l[3]=m*T),s[0]=z[0],s[1]=z[1],s[4]=z[2],s[5]=z[3]}var l,p,m,g,x,w,T;return c.Q(s,s,[1/n,1/n,1]),s}function En(d,t,n,s){if(d){const l=c.N();if(!t){const{vecSouth:p,vecEast:m}=Ke(n);l[0]=m[0],l[1]=m[1],l[4]=p[0],l[5]=p[1]}return c.Q(l,l,[s,s,1]),l}return n.pixelsToClipSpaceMatrix}function Ke(d){const t=Math.cos(d.rollInRadians),n=Math.sin(d.rollInRadians),s=Math.cos(d.pitchInRadians),l=Math.cos(d.bearingInRadians),p=Math.sin(d.bearingInRadians),m=c.aC();m[0]=-l*s*n-p*t,m[1]=-p*s*n+l*t;const g=c.aD(m);g<1e-9?c.aE(m):c.aF(m,m,1/g);const x=c.aC();x[0]=l*s*t-p*n,x[1]=p*s*t+l*n;const w=c.aD(x);return w<1e-9?c.aE(x):c.aF(x,x,1/w),{vecEast:x,vecSouth:m}}function na(d,t,n,s){let l;s?(l=[d,t,s(d,t),1],c.aH(l,l,n)):(l=[d,t,0,1],cn(l,l,n));const p=l[3];return{point:new c.P(l[0]/p,l[1]/p),signedDistanceFromCamera:p,isOccluded:!1}}function aa(d,t){return .5+d/t*.5}function ks(d,t){return d.x>=-t[0]&&d.x<=t[0]&&d.y>=-t[1]&&d.y<=t[1]}function Ba(d,t,n,s,l,p,m,g,x,w,T,I,M){const z=n?d.textSizeData:d.iconSizeData,L=c.ay(z,t.transform.zoom),j=[256/t.width*2+1,256/t.height*2+1],U=n?d.text.dynamicLayoutVertexArray:d.icon.dynamicLayoutVertexArray;U.clear();const N=d.lineVertexArray,Z=n?d.text.placedSymbolArray:d.icon.placedSymbolArray,X=t.transform.width/t.transform.height;let q=!1;for(let Y=0;Y<Z.length;Y++){const Q=Z.get(Y);if(Q.hidden||Q.writingMode===c.az.vertical&&!q){An(Q.numGlyphs,U);continue}q=!1;const W=new c.P(Q.anchorX,Q.anchorY),te={getElevation:M,pitchedLabelPlaneMatrix:s,lineVertexArray:N,pitchWithMap:p,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:t.transform,tileAnchorPoint:W,unwrappedTileID:x,width:w,height:T,translation:I},de=Rs(Q.anchorX,Q.anchorY,te);if(!ks(de.point,j)){An(Q.numGlyphs,U);continue}const ue=aa(t.transform.cameraToCenterDistance,de.signedDistanceFromCamera),le=c.aA(z,L,Q),he=p?le*t.transform.getPitchedTextCorrection(Q.anchorX,Q.anchorY,x)/ue:le*ue,Me=Va({projectionContext:te,pitchedLabelPlaneMatrixInverse:l,symbol:Q,fontSize:he,flip:!1,keepUpright:m,glyphOffsetArray:d.glyphOffsetArray,dynamicLayoutVertexArray:U,aspectRatio:X,rotateToLine:g});q=Me.useVertical,(Me.notEnoughRoom||q||Me.needsFlipping&&Va({projectionContext:te,pitchedLabelPlaneMatrixInverse:l,symbol:Q,fontSize:he,flip:!0,keepUpright:m,glyphOffsetArray:d.glyphOffsetArray,dynamicLayoutVertexArray:U,aspectRatio:X,rotateToLine:g}).notEnoughRoom)&&An(Q.numGlyphs,U)}n?d.text.dynamicLayoutVertexBuffer.updateData(U):d.icon.dynamicLayoutVertexBuffer.updateData(U)}function Oa(d,t,n,s,l,p,m,g){const x=p.glyphStartIndex+p.numGlyphs,w=p.lineStartIndex,T=p.lineStartIndex+p.lineLength,I=t.getoffsetX(p.glyphStartIndex),M=t.getoffsetX(x-1),z=ja(d*I,n,s,l,p.segment,w,T,g,m);if(!z)return null;const L=ja(d*M,n,s,l,p.segment,w,T,g,m);return L?g.projectionCache.anyProjectionOccluded?null:{first:z,last:L}:null}function sa(d,t,n,s){return d===c.az.horizontal&&Math.abs(n.y-t.y)>Math.abs(n.x-t.x)*s?{useVertical:!0}:(d===c.az.vertical?t.y<n.y:t.x>n.x)?{needsFlipping:!0}:null}function Va(d){const{projectionContext:t,pitchedLabelPlaneMatrixInverse:n,symbol:s,fontSize:l,flip:p,keepUpright:m,glyphOffsetArray:g,dynamicLayoutVertexArray:x,aspectRatio:w,rotateToLine:T}=d,I=l/24,M=s.lineOffsetX*I,z=s.lineOffsetY*I;let L;if(s.numGlyphs>1){const j=s.glyphStartIndex+s.numGlyphs,U=s.lineStartIndex,N=s.lineStartIndex+s.lineLength,Z=Oa(I,g,M,z,p,s,T,t);if(!Z)return{notEnoughRoom:!0};const X=on(Z.first.point.x,Z.first.point.y,t,n),q=on(Z.last.point.x,Z.last.point.y,t,n);if(m&&!p){const Y=sa(s.writingMode,X,q,w);if(Y)return Y}L=[Z.first];for(let Y=s.glyphStartIndex+1;Y<j-1;Y++){const Q=ja(I*g.getoffsetX(Y),M,z,p,s.segment,U,N,t,T);if(!Q)return{notEnoughRoom:!0};L.push(Q)}L.push(Z.last)}else{if(m&&!p){const U=Cn(t.tileAnchorPoint.x,t.tileAnchorPoint.y,t).point,N=s.lineStartIndex+s.segment+1,Z=new c.P(t.lineVertexArray.getx(N),t.lineVertexArray.gety(N)),X=Cn(Z.x,Z.y,t),q=X.signedDistanceFromCamera>0?X.point:Ci(t.tileAnchorPoint,Z,U,1,t),Y=on(U.x,U.y,t,n),Q=on(q.x,q.y,t,n),W=sa(s.writingMode,Y,Q,w);if(W)return W}const j=ja(I*g.getoffsetX(s.glyphStartIndex),M,z,p,s.segment,s.lineStartIndex,s.lineStartIndex+s.lineLength,t,T);if(!j||t.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};L=[j]}for(const j of L)c.aG(x,j.point,j.angle);return{}}function Ci(d,t,n,s,l){const p=d.add(d.sub(t)._unit()),m=Cn(p.x,p.y,l).point,g=n.sub(m);return n.add(g._mult(s/g.mag()))}function gt(d,t,n){const s=t.projectionCache;if(s.projections[d])return s.projections[d];const l=new c.P(t.lineVertexArray.getx(d),t.lineVertexArray.gety(d)),p=Cn(l.x,l.y,t);if(p.signedDistanceFromCamera>0)return s.projections[d]=p.point,s.anyProjectionOccluded=s.anyProjectionOccluded||p.isOccluded,p.point;const m=d-n.direction;return Ci(n.distanceFromAnchor===0?t.tileAnchorPoint:new c.P(t.lineVertexArray.getx(m),t.lineVertexArray.gety(m)),l,n.previousVertex,n.absOffsetX-n.distanceFromAnchor+1,t)}function Cn(d,t,n){const s=d+n.translation[0],l=t+n.translation[1];let p;return n.pitchWithMap?(p=na(s,l,n.pitchedLabelPlaneMatrix,n.getElevation),p.isOccluded=!1):(p=n.transform.projectTileCoordinates(s,l,n.unwrappedTileID,n.getElevation),p.point.x=(.5*p.point.x+.5)*n.width,p.point.y=(.5*-p.point.y+.5)*n.height),p}function on(d,t,n,s){if(n.pitchWithMap){const l=[d,t,0,1];return c.aH(l,l,s),n.transform.projectTileCoordinates(l[0]/l[3],l[1]/l[3],n.unwrappedTileID,n.getElevation).point}return{x:d/n.width*2-1,y:1-t/n.height*2}}function Rs(d,t,n){return n.transform.projectTileCoordinates(d,t,n.unwrappedTileID,n.getElevation)}function kr(d,t,n){return d._unit()._perp()._mult(t*n)}function ln(d,t,n,s,l,p,m,g,x){if(g.projectionCache.offsets[d])return g.projectionCache.offsets[d];const w=n.add(t);if(d+x.direction<s||d+x.direction>=l)return g.projectionCache.offsets[d]=w,w;const T=gt(d+x.direction,g,x),I=kr(T.sub(n),m,x.direction),M=n.add(I),z=T.add(I);return g.projectionCache.offsets[d]=c.aI(p,w,M,z)||w,g.projectionCache.offsets[d]}function ja(d,t,n,s,l,p,m,g,x){const w=s?d-t:d+t;let T=w>0?1:-1,I=0;s&&(T*=-1,I=Math.PI),T<0&&(I+=Math.PI);let M,z=T>0?p+l:p+l+1;g.projectionCache.cachedAnchorPoint?M=g.projectionCache.cachedAnchorPoint:(M=Cn(g.tileAnchorPoint.x,g.tileAnchorPoint.y,g).point,g.projectionCache.cachedAnchorPoint=M);let L,j,U=M,N=M,Z=0,X=0;const q=Math.abs(w),Y=[];let Q;for(;Z+X<=q;){if(z+=T,z<p||z>=m)return null;Z+=X,N=U,j=L;const de={absOffsetX:q,direction:T,distanceFromAnchor:Z,previousVertex:N};if(U=gt(z,g,de),n===0)Y.push(N),Q=U.sub(N);else{let ue;const le=U.sub(N);ue=le.mag()===0?kr(gt(z+T,g,de).sub(U),n,T):kr(le,n,T),j||(j=N.add(ue)),L=ln(z,ue,U,p,m,j,n,g,de),Y.push(j),Q=L.sub(j)}X=Q.mag()}const W=Q._mult((q-Z)/X)._add(j||N),te=I+Math.atan2(U.y-N.y,U.x-N.x);return Y.push(W),{point:W,angle:x?te:0,path:Y}}const Kl=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function An(d,t){for(let n=0;n<d;n++){const s=t.length;t.resize(s+4),t.float32.set(Kl,3*s)}}function cn(d,t,n){const s=t[0],l=t[1];return d[0]=n[0]*s+n[4]*l+n[12],d[1]=n[1]*s+n[5]*l+n[13],d[3]=n[3]*s+n[7]*l+n[15],d}const Xt=100;class ku{constructor(t,n=new Ki(t.width+200,t.height+200,25),s=new Ki(t.width+200,t.height+200,25)){this.transform=t,this.grid=n,this.ignoredGrid=s,this.pitchFactor=Math.cos(t.pitch*Math.PI/180)*t.cameraToCenterDistance,this.screenRightBoundary=t.width+Xt,this.screenBottomBoundary=t.height+Xt,this.gridRightBoundary=t.width+200,this.gridBottomBoundary=t.height+200,this.perspectiveRatioCutoff=.6}placeCollisionBox(t,n,s,l,p,m,g,x,w,T,I,M){const z=this.projectAndGetPerspectiveRatio(t.anchorPointX+x[0],t.anchorPointY+x[1],p,T,M),L=s*z.perspectiveRatio;let j;if(m||g)j=this._projectCollisionBox(t,L,l,p,m,g,x,z,T,I,M);else{const Q=z.x+(I?I.x*L:0),W=z.y+(I?I.y*L:0);j={allPointsOccluded:!1,box:[Q+t.x1*L,W+t.y1*L,Q+t.x2*L,W+t.y2*L]}}const[U,N,Z,X]=j.box,q=m?j.allPointsOccluded:z.isOccluded;let Y=q;return Y||(Y=z.perspectiveRatio<this.perspectiveRatioCutoff),Y||(Y=!this.isInsideGrid(U,N,Z,X)),Y||n!=="always"&&this.grid.hitTest(U,N,Z,X,n,w)?{box:[U,N,Z,X],placeable:!1,offscreen:!1,occluded:q}:{box:[U,N,Z,X],placeable:!0,offscreen:this.isOffscreen(U,N,Z,X),occluded:q}}placeCollisionCircles(t,n,s,l,p,m,g,x,w,T,I,M,z,L){const j=[],U=new c.P(n.anchorX,n.anchorY),N=this.getPerspectiveRatio(U.x,U.y,m,L),Z=(w?p*this.transform.getPitchedTextCorrection(n.anchorX,n.anchorY,m)/N:p*N)/c.aM,X={getElevation:L,pitchedLabelPlaneMatrix:g,lineVertexArray:s,pitchWithMap:w,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:this.transform,tileAnchorPoint:U,unwrappedTileID:m,width:this.transform.width,height:this.transform.height,translation:z},q=Oa(Z,l,n.lineOffsetX*Z,n.lineOffsetY*Z,!1,n,!1,X);let Y=!1,Q=!1,W=!0;if(q){const te=.5*I*N+M,de=new c.P(-100,-100),ue=new c.P(this.screenRightBoundary,this.screenBottomBoundary),le=new $e,he=q.first,Me=q.last;let Ie=[];for(let He=he.path.length-1;He>=1;He--)Ie.push(he.path[He]);for(let He=1;He<Me.path.length;He++)Ie.push(Me.path[He]);const _e=2.5*te;if(w){const He=this.projectPathToScreenSpace(Ie,X);Ie=He.some((lt=>lt.signedDistanceFromCamera<=0))?[]:He.map((lt=>lt.point))}let Le=[];if(Ie.length>0){const He=Ie[0].clone(),lt=Ie[0].clone();for(let _t=1;_t<Ie.length;_t++)He.x=Math.min(He.x,Ie[_t].x),He.y=Math.min(He.y,Ie[_t].y),lt.x=Math.max(lt.x,Ie[_t].x),lt.y=Math.max(lt.y,Ie[_t].y);Le=He.x>=de.x&&lt.x<=ue.x&&He.y>=de.y&&lt.y<=ue.y?[Ie]:lt.x<de.x||He.x>ue.x||lt.y<de.y||He.y>ue.y?[]:c.aJ([Ie],de.x,de.y,ue.x,ue.y)}for(const He of Le){le.reset(He,.25*te);let lt=0;lt=le.length<=.5*te?1:Math.ceil(le.paddedLength/_e)+1;for(let _t=0;_t<lt;_t++){const ft=_t/Math.max(lt-1,1),wt=le.lerp(ft),ct=wt.x+Xt,$t=wt.y+Xt;j.push(ct,$t,te,0);const Tt=ct-te,si=$t-te,zt=ct+te,Dt=$t+te;if(W=W&&this.isOffscreen(Tt,si,zt,Dt),Q=Q||this.isInsideGrid(Tt,si,zt,Dt),t!=="always"&&this.grid.hitTestCircle(ct,$t,te,t,T)&&(Y=!0,!x))return{circles:[],offscreen:!1,collisionDetected:Y}}}}return{circles:!x&&Y||!Q||N<this.perspectiveRatioCutoff?[]:j,offscreen:W,collisionDetected:Y}}projectPathToScreenSpace(t,n){const s=(function(l,p){const m=c.N();return c.aB(m,p.pitchedLabelPlaneMatrix),l.map((g=>{const x=na(g.x,g.y,m,p.getElevation),w=p.transform.projectTileCoordinates(x.point.x,x.point.y,p.unwrappedTileID,p.getElevation);return w.point.x=(.5*w.point.x+.5)*p.width,w.point.y=(.5*-w.point.y+.5)*p.height,w}))})(t,n);return(function(l){let p=0,m=0,g=0,x=0;for(let w=0;w<l.length;w++)l[w].isOccluded?(g=w+1,x=0):(x++,x>m&&(m=x,p=g));return l.slice(p,p+m)})(s)}queryRenderedSymbols(t){if(t.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};const n=[],s=new c.aa;for(const I of t){const M=new c.P(I.x+Xt,I.y+Xt);s.extend(M),n.push(M)}const{minX:l,minY:p,maxX:m,maxY:g}=s,x=this.grid.query(l,p,m,g).concat(this.ignoredGrid.query(l,p,m,g)),w={},T={};for(const I of x){const M=I.key;if(w[M.bucketInstanceId]===void 0&&(w[M.bucketInstanceId]={}),w[M.bucketInstanceId][M.featureIndex])continue;const z=[new c.P(I.x1,I.y1),new c.P(I.x2,I.y1),new c.P(I.x2,I.y2),new c.P(I.x1,I.y2)];c.aK(n,z)&&(w[M.bucketInstanceId][M.featureIndex]=!0,T[M.bucketInstanceId]===void 0&&(T[M.bucketInstanceId]=[]),T[M.bucketInstanceId].push(M.featureIndex))}return T}insertCollisionBox(t,n,s,l,p,m){(s?this.ignoredGrid:this.grid).insert({bucketInstanceId:l,featureIndex:p,collisionGroupID:m,overlapMode:n},t[0],t[1],t[2],t[3])}insertCollisionCircles(t,n,s,l,p,m){const g=s?this.ignoredGrid:this.grid,x={bucketInstanceId:l,featureIndex:p,collisionGroupID:m,overlapMode:n};for(let w=0;w<t.length;w+=4)g.insertCircle(x,t[w],t[w+1],t[w+2])}projectAndGetPerspectiveRatio(t,n,s,l,p){if(p){let m;l?(m=[t,n,l(t,n),1],c.aH(m,m,p)):(m=[t,n,0,1],cn(m,m,p));const g=m[3];return{x:(m[0]/g+1)/2*this.transform.width+Xt,y:(-m[1]/g+1)/2*this.transform.height+Xt,perspectiveRatio:.5+this.transform.cameraToCenterDistance/g*.5,isOccluded:!1,signedDistanceFromCamera:g}}{const m=this.transform.projectTileCoordinates(t,n,s,l);return{x:(m.point.x+1)/2*this.transform.width+Xt,y:(1-m.point.y)/2*this.transform.height+Xt,perspectiveRatio:.5+this.transform.cameraToCenterDistance/m.signedDistanceFromCamera*.5,isOccluded:m.isOccluded,signedDistanceFromCamera:m.signedDistanceFromCamera}}}getPerspectiveRatio(t,n,s,l){const p=this.transform.projectTileCoordinates(t,n,s,l);return .5+this.transform.cameraToCenterDistance/p.signedDistanceFromCamera*.5}isOffscreen(t,n,s,l){return s<Xt||t>=this.screenRightBoundary||l<Xt||n>this.screenBottomBoundary}isInsideGrid(t,n,s,l){return s>=0&&t<this.gridRightBoundary&&l>=0&&n<this.gridBottomBoundary}getViewportMatrix(){const t=c.ar([]);return c.O(t,t,[-100,-100,0]),t}_projectCollisionBox(t,n,s,l,p,m,g,x,w,T,I){let M=1,z=0,L=0,j=1;const U=t.anchorPointX+g[0],N=t.anchorPointY+g[1];if(m&&!p){const Ie=this.projectAndGetPerspectiveRatio(U+1,N,l,w,I),_e=Ie.x-x.x,Le=Math.atan((Ie.y-x.y)/_e)+(_e<0?Math.PI:0),He=Math.sin(Le),lt=Math.cos(Le);M=lt,z=He,L=-He,j=lt}else if(!m&&p){const Ie=Ke(this.transform);M=Ie.vecEast[0],z=Ie.vecEast[1],L=Ie.vecSouth[0],j=Ie.vecSouth[1]}let Z=x.x,X=x.y,q=n;p&&(Z=U,X=N,q=Math.pow(2,-(this.transform.zoom-s.overscaledZ)),q*=this.transform.getPitchedTextCorrection(U,N,l),T||(q*=c.an(.5+x.signedDistanceFromCamera/this.transform.cameraToCenterDistance*.5,0,4))),T&&(Z+=M*T.x*q+L*T.y*q,X+=z*T.x*q+j*T.y*q);const Y=t.x1*q,Q=t.x2*q,W=(Y+Q)/2,te=t.y1*q,de=t.y2*q,ue=(te+de)/2,le=[{offsetX:Y,offsetY:te},{offsetX:W,offsetY:te},{offsetX:Q,offsetY:te},{offsetX:Q,offsetY:ue},{offsetX:Q,offsetY:de},{offsetX:W,offsetY:de},{offsetX:Y,offsetY:de},{offsetX:Y,offsetY:ue}];let he=[];for(const{offsetX:Ie,offsetY:_e}of le)he.push(new c.P(Z+M*Ie+L*_e,X+z*Ie+j*_e));let Me=!1;if(p){const Ie=he.map((_e=>this.projectAndGetPerspectiveRatio(_e.x,_e.y,l,w,I)));Me=Ie.some((_e=>!_e.isOccluded)),he=Ie.map((_e=>new c.P(_e.x,_e.y)))}else Me=!0;return{box:c.aL(he),allPointsOccluded:!Me}}}class Jl{constructor(t,n,s,l){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?n:-n))):l&&s?1:0,this.placed=s}isHidden(){return this.opacity===0&&!this.placed}}class Na{constructor(t,n,s,l,p){this.text=new Jl(t?t.text:null,n,s,p),this.icon=new Jl(t?t.icon:null,n,l,p)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class No{constructor(t,n,s){this.text=t,this.icon=n,this.skipFade=s}}class Ql{constructor(t,n,s,l,p){this.bucketInstanceId=t,this.featureIndex=n,this.sourceLayerIndex=s,this.bucketIndex=l,this.tileID=p}}class Uo{constructor(t){this.crossSourceCollisions=t,this.maxGroupID=0,this.collisionGroups={}}get(t){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[t]){const n=++this.maxGroupID;this.collisionGroups[t]={ID:n,predicate:s=>s.collisionGroupID===n}}return this.collisionGroups[t]}}function Ls(d,t,n,s,l){const{horizontalAlign:p,verticalAlign:m}=c.aS(d);return new c.P(-(p-.5)*t+s[0]*l,-(m-.5)*n+s[1]*l)}class ec{constructor(t,n,s,l,p){this.transform=t.clone(),this.terrain=n,this.collisionIndex=new ku(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=s,this.retainedQueryData={},this.collisionGroups=new Uo(l),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=p,p&&(p.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(t){const n=this.terrain;return n?(s,l)=>n.getElevation(t,s,l):null}getBucketParts(t,n,s,l){const p=s.getBucket(n),m=s.latestFeatureIndex;if(!p||!m||n.id!==p.layerIds[0])return;const g=s.collisionBoxArray,x=p.layers[0].layout,w=p.layers[0].paint,T=Math.pow(2,this.transform.zoom-s.tileID.overscaledZ),I=s.tileSize/c.a5,M=s.tileID.toUnwrapped(),z=x.get("text-rotation-alignment")==="map",L=c.aN(s,1,this.transform.zoom),j=c.aO(this.collisionIndex.transform,s,w.get("text-translate"),w.get("text-translate-anchor")),U=c.aO(this.collisionIndex.transform,s,w.get("icon-translate"),w.get("icon-translate-anchor")),N=ra(z,this.transform,L);this.retainedQueryData[p.bucketInstanceId]=new Ql(p.bucketInstanceId,m,p.sourceLayerIndex,p.index,s.tileID);const Z={bucket:p,layout:x,translationText:j,translationIcon:U,unwrappedTileID:M,pitchedLabelPlaneMatrix:N,scale:T,textPixelRatio:I,holdingForFade:s.holdingForSymbolFade(),collisionBoxArray:g,partiallyEvaluatedTextSize:c.ay(p.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(p.sourceID)};if(l)for(const X of p.sortKeyRanges){const{sortKey:q,symbolInstanceStart:Y,symbolInstanceEnd:Q}=X;t.push({sortKey:q,symbolInstanceStart:Y,symbolInstanceEnd:Q,parameters:Z})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:p.symbolInstances.length,parameters:Z})}attemptAnchorPlacement(t,n,s,l,p,m,g,x,w,T,I,M,z,L,j,U,N,Z,X,q){const Y=c.aP[t.textAnchor],Q=[t.textOffset0,t.textOffset1],W=Ls(Y,s,l,Q,p),te=this.collisionIndex.placeCollisionBox(n,M,x,w,T,g,m,U,I.predicate,X,W,q);if((!Z||this.collisionIndex.placeCollisionBox(Z,M,x,w,T,g,m,N,I.predicate,X,W,q).placeable)&&te.placeable){let de;if(this.prevPlacement&&this.prevPlacement.variableOffsets[z.crossTileID]&&this.prevPlacement.placements[z.crossTileID]&&this.prevPlacement.placements[z.crossTileID].text&&(de=this.prevPlacement.variableOffsets[z.crossTileID].anchor),z.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[z.crossTileID]={textOffset:Q,width:s,height:l,anchor:Y,textBoxScale:p,prevAnchor:de},this.markUsedJustification(L,Y,z,j),L.allowVerticalPlacement&&(this.markUsedOrientation(L,j,z),this.placedOrientations[z.crossTileID]=j),{shift:W,placedGlyphBoxes:te}}}placeLayerBucketPart(t,n,s){const{bucket:l,layout:p,translationText:m,translationIcon:g,unwrappedTileID:x,pitchedLabelPlaneMatrix:w,textPixelRatio:T,holdingForFade:I,collisionBoxArray:M,partiallyEvaluatedTextSize:z,collisionGroup:L}=t.parameters,j=p.get("text-optional"),U=p.get("icon-optional"),N=c.aQ(p,"text-overlap","text-allow-overlap"),Z=N==="always",X=c.aQ(p,"icon-overlap","icon-allow-overlap"),q=X==="always",Y=p.get("text-rotation-alignment")==="map",Q=p.get("text-pitch-alignment")==="map",W=p.get("icon-text-fit")!=="none",te=p.get("symbol-z-order")==="viewport-y",de=Z&&(q||!l.hasIconData()||U),ue=q&&(Z||!l.hasTextData()||j);!l.collisionArrays&&M&&l.deserializeCollisionBoxes(M);const le=this.retainedQueryData[l.bucketInstanceId].tileID,he=this._getTerrainElevationFunc(le),Me=this.transform.getFastPathSimpleProjectionMatrix(le),Ie=(_e,Le,He)=>{var lt,_t;if(n[_e.crossTileID])return;if(I)return void(this.placements[_e.crossTileID]=new No(!1,!1,!1));let ft=!1,wt=!1,ct=!0,$t=null,Tt={box:null,placeable:!1,offscreen:null,occluded:!1},si={placeable:!1},zt=null,Dt=null,wi=null,Gr=0,Pr=0,Ti=0;Le.textFeatureIndex?Gr=Le.textFeatureIndex:_e.useRuntimeCollisionCircles&&(Gr=_e.featureIndex),Le.verticalTextFeatureIndex&&(Pr=Le.verticalTextFeatureIndex);const qr=Le.textBox;if(qr){const zi=ht=>{let St=c.az.horizontal;if(l.allowVerticalPlacement&&!ht&&this.prevPlacement){const Zi=this.prevPlacement.placedOrientations[_e.crossTileID];Zi&&(this.placedOrientations[_e.crossTileID]=Zi,St=Zi,this.markUsedOrientation(l,St,_e))}return St},ir=(ht,St)=>{if(l.allowVerticalPlacement&&_e.numVerticalGlyphVertices>0&&Le.verticalTextBox){for(const Zi of l.writingModes)if(Zi===c.az.vertical?(Tt=St(),si=Tt):Tt=ht(),Tt&&Tt.placeable)break}else Tt=ht()},Gi=_e.textAnchorOffsetStartIndex,qi=_e.textAnchorOffsetEndIndex;if(qi===Gi){const ht=(St,Zi)=>{const Kt=this.collisionIndex.placeCollisionBox(St,N,T,le,x,Q,Y,m,L.predicate,he,void 0,Me);return Kt&&Kt.placeable&&(this.markUsedOrientation(l,Zi,_e),this.placedOrientations[_e.crossTileID]=Zi),Kt};ir((()=>ht(qr,c.az.horizontal)),(()=>{const St=Le.verticalTextBox;return l.allowVerticalPlacement&&_e.numVerticalGlyphVertices>0&&St?ht(St,c.az.vertical):{box:null,offscreen:null}})),zi(Tt&&Tt.placeable)}else{let ht=c.aP[(_t=(lt=this.prevPlacement)===null||lt===void 0?void 0:lt.variableOffsets[_e.crossTileID])===null||_t===void 0?void 0:_t.anchor];const St=(Kt,Qc,Zn)=>{const ah=Kt.x2-Kt.x1,eu=Kt.y2-Kt.y1,Al=_e.textBoxScale,tu=W&&X==="never"?Qc:null;let $i=null,mn=N==="never"?1:2,zl="never";ht&&mn++;for(let iu=0;iu<mn;iu++){for(let Ss=Gi;Ss<qi;Ss++){const Dl=l.textAnchorOffsets.get(Ss);if(ht&&Dl.textAnchor!==ht)continue;const Ta=this.attemptAnchorPlacement(Dl,Kt,ah,eu,Al,Y,Q,T,le,x,L,zl,_e,l,Zn,m,g,tu,he);if(Ta&&($i=Ta.placedGlyphBoxes,$i&&$i.placeable))return ft=!0,$t=Ta.shift,$i}ht?ht=null:zl=N}return s&&!$i&&($i={box:this.collisionIndex.placeCollisionBox(qr,"always",T,le,x,Q,Y,m,L.predicate,he,void 0,Me).box,offscreen:!1,placeable:!1,occluded:!1}),$i};ir((()=>St(qr,Le.iconBox,c.az.horizontal)),(()=>{const Kt=Le.verticalTextBox;return l.allowVerticalPlacement&&(!Tt||!Tt.placeable)&&_e.numVerticalGlyphVertices>0&&Kt?St(Kt,Le.verticalIconBox,c.az.vertical):{box:null,occluded:!0,offscreen:null}})),Tt&&(ft=Tt.placeable,ct=Tt.offscreen);const Zi=zi(Tt&&Tt.placeable);if(!ft&&this.prevPlacement){const Kt=this.prevPlacement.variableOffsets[_e.crossTileID];Kt&&(this.variableOffsets[_e.crossTileID]=Kt,this.markUsedJustification(l,Kt.anchor,_e,Zi))}}}if(zt=Tt,ft=zt&&zt.placeable,ct=zt&&zt.offscreen,_e.useRuntimeCollisionCircles&&_e.centerJustifiedTextSymbolIndex>=0){const zi=l.text.placedSymbolArray.get(_e.centerJustifiedTextSymbolIndex),ir=c.aA(l.textSizeData,z,zi),Gi=p.get("text-padding");Dt=this.collisionIndex.placeCollisionCircles(N,zi,l.lineVertexArray,l.glyphOffsetArray,ir,x,w,s,Q,L.predicate,_e.collisionCircleDiameter,Gi,m,he),Dt.circles.length&&Dt.collisionDetected&&!s&&c.w("Collisions detected, but collision boxes are not shown"),ft=Z||Dt.circles.length>0&&!Dt.collisionDetected,ct=ct&&Dt.offscreen}if(Le.iconFeatureIndex&&(Ti=Le.iconFeatureIndex),Le.iconBox){const zi=ir=>this.collisionIndex.placeCollisionBox(ir,X,T,le,x,Q,Y,g,L.predicate,he,W&&$t?$t:void 0,Me);si&&si.placeable&&Le.verticalIconBox?(wi=zi(Le.verticalIconBox),wt=wi.placeable):(wi=zi(Le.iconBox),wt=wi.placeable),ct=ct&&wi.offscreen}const ws=j||_e.numHorizontalGlyphVertices===0&&_e.numVerticalGlyphVertices===0,Ts=U||_e.numIconVertices===0;ws||Ts?Ts?ws||(wt=wt&&ft):ft=wt&&ft:wt=ft=wt&&ft;const wa=wt&&wi.placeable;if(ft&&zt.placeable&&this.collisionIndex.insertCollisionBox(zt.box,N,p.get("text-ignore-placement"),l.bucketInstanceId,si&&si.placeable&&Pr?Pr:Gr,L.ID),wa&&this.collisionIndex.insertCollisionBox(wi.box,X,p.get("icon-ignore-placement"),l.bucketInstanceId,Ti,L.ID),Dt&&ft&&this.collisionIndex.insertCollisionCircles(Dt.circles,N,p.get("text-ignore-placement"),l.bucketInstanceId,Gr,L.ID),s&&this.storeCollisionData(l.bucketInstanceId,He,Le,zt,wi,Dt),_e.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");if(l.bucketInstanceId===0)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[_e.crossTileID]=new No((ft||de)&&!zt?.occluded,(wt||ue)&&!wi?.occluded,ct||l.justReloaded),n[_e.crossTileID]=!0};if(te){if(t.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");const _e=l.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let Le=_e.length-1;Le>=0;--Le){const He=_e[Le];Ie(l.symbolInstances.get(He),l.collisionArrays[He],He)}}else for(let _e=t.symbolInstanceStart;_e<t.symbolInstanceEnd;_e++)Ie(l.symbolInstances.get(_e),l.collisionArrays[_e],_e);l.justReloaded=!1}storeCollisionData(t,n,s,l,p,m){if(s.textBox||s.iconBox){let g,x;this.collisionBoxArrays.has(t)?g=this.collisionBoxArrays.get(t):(g=new Map,this.collisionBoxArrays.set(t,g)),g.has(n)?x=g.get(n):(x={text:null,icon:null},g.set(n,x)),s.textBox&&(x.text=l.box),s.iconBox&&(x.icon=p.box)}if(m){let g=this.collisionCircleArrays[t];g===void 0&&(g=this.collisionCircleArrays[t]=[]);for(let x=0;x<m.circles.length;x+=4)g.push(m.circles[x+0]-Xt),g.push(m.circles[x+1]-Xt),g.push(m.circles[x+2]),g.push(m.collisionDetected?1:0)}}markUsedJustification(t,n,s,l){let p;p=l===c.az.vertical?s.verticalPlacedTextSymbolIndex:{left:s.leftJustifiedTextSymbolIndex,center:s.centerJustifiedTextSymbolIndex,right:s.rightJustifiedTextSymbolIndex}[c.aR(n)];const m=[s.leftJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.rightJustifiedTextSymbolIndex,s.verticalPlacedTextSymbolIndex];for(const g of m)g>=0&&(t.text.placedSymbolArray.get(g).crossTileID=p>=0&&g!==p?0:s.crossTileID)}markUsedOrientation(t,n,s){const l=n===c.az.horizontal||n===c.az.horizontalOnly?n:0,p=n===c.az.vertical?n:0,m=[s.leftJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.rightJustifiedTextSymbolIndex];for(const g of m)t.text.placedSymbolArray.get(g).placedOrientation=l;s.verticalPlacedTextSymbolIndex&&(t.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation=p)}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const n=this.prevPlacement;let s=!1;this.prevZoomAdjustment=n?n.zoomAdjustment(this.transform.zoom):0;const l=n?n.symbolFadeChange(t):1,p=n?n.opacities:{},m=n?n.variableOffsets:{},g=n?n.placedOrientations:{};for(const x in this.placements){const w=this.placements[x],T=p[x];T?(this.opacities[x]=new Na(T,l,w.text,w.icon),s=s||w.text!==T.text.placed||w.icon!==T.icon.placed):(this.opacities[x]=new Na(null,l,w.text,w.icon,w.skipFade),s=s||w.text||w.icon)}for(const x in p){const w=p[x];if(!this.opacities[x]){const T=new Na(w,l,!1,!1);T.isHidden()||(this.opacities[x]=T,s=s||w.text.placed||w.icon.placed)}}for(const x in m)this.variableOffsets[x]||!this.opacities[x]||this.opacities[x].isHidden()||(this.variableOffsets[x]=m[x]);for(const x in g)this.placedOrientations[x]||!this.opacities[x]||this.opacities[x].isHidden()||(this.placedOrientations[x]=g[x]);if(n&&n.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");s?this.lastPlacementChangeTime=t:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=n?n.lastPlacementChangeTime:t)}updateLayerOpacities(t,n){const s={};for(const l of n){const p=l.getBucket(t);p&&l.latestFeatureIndex&&t.id===p.layerIds[0]&&this.updateBucketOpacities(p,l.tileID,s,l.collisionBoxArray)}}updateBucketOpacities(t,n,s,l){t.hasTextData()&&(t.text.opacityVertexArray.clear(),t.text.hasVisibleVertices=!1),t.hasIconData()&&(t.icon.opacityVertexArray.clear(),t.icon.hasVisibleVertices=!1),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const p=t.layers[0],m=p.layout,g=new Na(null,0,!1,!1,!0),x=m.get("text-allow-overlap"),w=m.get("icon-allow-overlap"),T=p._unevaluatedLayout.hasValue("text-variable-anchor")||p._unevaluatedLayout.hasValue("text-variable-anchor-offset"),I=m.get("text-rotation-alignment")==="map",M=m.get("text-pitch-alignment")==="map",z=m.get("icon-text-fit")!=="none",L=new Na(null,0,x&&(w||!t.hasIconData()||m.get("icon-optional")),w&&(x||!t.hasTextData()||m.get("text-optional")),!0);!t.collisionArrays&&l&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(l);const j=(N,Z,X)=>{for(let q=0;q<Z/4;q++)N.opacityVertexArray.emplaceBack(X);N.hasVisibleVertices=N.hasVisibleVertices||X!==Ji},U=this.collisionBoxArrays.get(t.bucketInstanceId);for(let N=0;N<t.symbolInstances.length;N++){const Z=t.symbolInstances.get(N),{numHorizontalGlyphVertices:X,numVerticalGlyphVertices:q,crossTileID:Y}=Z;let Q=this.opacities[Y];s[Y]?Q=g:Q||(Q=L,this.opacities[Y]=Q),s[Y]=!0;const W=Z.numIconVertices>0,te=this.placedOrientations[Z.crossTileID],de=te===c.az.vertical,ue=te===c.az.horizontal||te===c.az.horizontalOnly;if(X>0||q>0){const he=rc(Q.text);j(t.text,X,de?Ji:he),j(t.text,q,ue?Ji:he);const Me=Q.text.isHidden();[Z.rightJustifiedTextSymbolIndex,Z.centerJustifiedTextSymbolIndex,Z.leftJustifiedTextSymbolIndex].forEach((Le=>{Le>=0&&(t.text.placedSymbolArray.get(Le).hidden=Me||de?1:0)})),Z.verticalPlacedTextSymbolIndex>=0&&(t.text.placedSymbolArray.get(Z.verticalPlacedTextSymbolIndex).hidden=Me||ue?1:0);const Ie=this.variableOffsets[Z.crossTileID];Ie&&this.markUsedJustification(t,Ie.anchor,Z,te);const _e=this.placedOrientations[Z.crossTileID];_e&&(this.markUsedJustification(t,"left",Z,_e),this.markUsedOrientation(t,_e,Z))}if(W){const he=rc(Q.icon),Me=!(z&&Z.verticalPlacedIconSymbolIndex&&de);Z.placedIconSymbolIndex>=0&&(j(t.icon,Z.numIconVertices,Me?he:Ji),t.icon.placedSymbolArray.get(Z.placedIconSymbolIndex).hidden=Q.icon.isHidden()),Z.verticalPlacedIconSymbolIndex>=0&&(j(t.icon,Z.numVerticalIconVertices,Me?Ji:he),t.icon.placedSymbolArray.get(Z.verticalPlacedIconSymbolIndex).hidden=Q.icon.isHidden())}const le=U&&U.has(N)?U.get(N):{text:null,icon:null};if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const he=t.collisionArrays[N];if(he){let Me=new c.P(0,0);if(he.textBox||he.verticalTextBox){let Ie=!0;if(T){const _e=this.variableOffsets[Y];_e?(Me=Ls(_e.anchor,_e.width,_e.height,_e.textOffset,_e.textBoxScale),I&&Me._rotate(M?-this.transform.bearingInRadians:this.transform.bearingInRadians)):Ie=!1}if(he.textBox||he.verticalTextBox){let _e;he.textBox&&(_e=de),he.verticalTextBox&&(_e=ue),Fs(t.textCollisionBox.collisionVertexArray,Q.text.placed,!Ie||_e,le.text,Me.x,Me.y)}}if(he.iconBox||he.verticalIconBox){const Ie=!!(!ue&&he.verticalIconBox);let _e;he.iconBox&&(_e=Ie),he.verticalIconBox&&(_e=!Ie),Fs(t.iconCollisionBox.collisionVertexArray,Q.icon.placed,_e,le.icon,z?Me.x:0,z?Me.y:0)}}}}if(t.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.text.opacityVertexArray.length!==t.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${t.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${t.text.layoutVertexArray.length}) / 4`);if(t.icon.opacityVertexArray.length!==t.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${t.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${t.icon.layoutVertexArray.length}) / 4`);t.bucketInstanceId in this.collisionCircleArrays&&(t.collisionCircleArray=this.collisionCircleArrays[t.bucketInstanceId],delete this.collisionCircleArrays[t.bucketInstanceId])}symbolFadeChange(t){return this.fadeDuration===0?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(t){return Math.max(0,(this.transform.zoom-t)/1.5)}hasTransitions(t){return this.stale||t-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(t,n){const s=this.zoomAtLastRecencyCheck===n?1-this.zoomAdjustment(n):1;return this.zoomAtLastRecencyCheck=n,this.commitTime+this.fadeDuration*s>t}setStale(){this.stale=!0}}function Fs(d,t,n,s,l,p){s&&s.length!==0||(s=[0,0,0,0]);const m=s[0]-Xt,g=s[1]-Xt,x=s[2]-Xt,w=s[3]-Xt;d.emplaceBack(t?1:0,n?1:0,l||0,p||0,m,g),d.emplaceBack(t?1:0,n?1:0,l||0,p||0,x,g),d.emplaceBack(t?1:0,n?1:0,l||0,p||0,x,w),d.emplaceBack(t?1:0,n?1:0,l||0,p||0,m,w)}const Go=Math.pow(2,25),Ru=Math.pow(2,24),Ua=Math.pow(2,17),Bs=Math.pow(2,16),tc=Math.pow(2,9),oa=Math.pow(2,8),ic=Math.pow(2,1);function rc(d){if(d.opacity===0&&!d.placed)return 0;if(d.opacity===1&&d.placed)return 4294967295;const t=d.placed?1:0,n=Math.floor(127*d.opacity);return n*Go+t*Ru+n*Ua+t*Bs+n*tc+t*oa+n*ic+t}const Ji=0;class la{constructor(t){this._sortAcrossTiles=t.layout.get("symbol-z-order")!=="viewport-y"&&!t.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(t,n,s,l,p){const m=this._bucketParts;for(;this._currentTileIndex<t.length;)if(n.getBucketParts(m,l,t[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,p())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,m.sort(((g,x)=>g.sortKey-x.sortKey)));this._currentPartIndex<m.length;)if(n.placeLayerBucketPart(m[this._currentPartIndex],this._seenCrossTileIDs,s),this._currentPartIndex++,p())return!0;return!1}}class et{constructor(t,n,s,l,p,m,g,x){this.placement=new ec(t,n,m,g,x),this._currentPlacementIndex=s.length-1,this._forceFullPlacement=l,this._showCollisionBoxes=p,this._done=!1}isDone(){return this._done}continuePlacement(t,n,s){const l=it(),p=()=>!this._forceFullPlacement&&it()-l>2;for(;this._currentPlacementIndex>=0;){const m=n[t[this._currentPlacementIndex]],g=this.placement.collisionIndex.transform.zoom;if(m.type==="symbol"&&(!m.minzoom||m.minzoom<=g)&&(!m.maxzoom||m.maxzoom>g)){if(this._inProgressLayer||(this._inProgressLayer=new la(m)),this._inProgressLayer.continuePlacement(s[m.source],this.placement,this._showCollisionBoxes,m,p))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(t){return this.placement.commit(t),this.placement}}const zn=512/c.a5/2;class Lu{constructor(t,n,s){this.tileID=t,this.bucketInstanceId=s,this._symbolsByKey={};const l=new Map;for(let p=0;p<n.length;p++){const m=n.get(p),g=m.key,x=l.get(g);x?x.push(m):l.set(g,[m])}for(const[p,m]of l){const g={positions:m.map((x=>({x:Math.floor(x.anchorX*zn),y:Math.floor(x.anchorY*zn)}))),crossTileIDs:m.map((x=>x.crossTileID))};if(g.positions.length>128){const x=new c.aT(g.positions.length,16,Uint16Array);for(const{x:w,y:T}of g.positions)x.add(w,T);x.finish(),delete g.positions,g.index=x}this._symbolsByKey[p]=g}}getScaledCoordinates(t,n){const{x:s,y:l,z:p}=this.tileID.canonical,{x:m,y:g,z:x}=n.canonical,w=zn/Math.pow(2,x-p),T=(g*c.a5+t.anchorY)*w,I=l*c.a5*zn;return{x:Math.floor((m*c.a5+t.anchorX)*w-s*c.a5*zn),y:Math.floor(T-I)}}findMatches(t,n,s){const l=this.tileID.canonical.z<n.canonical.z?1:Math.pow(2,this.tileID.canonical.z-n.canonical.z);for(let p=0;p<t.length;p++){const m=t.get(p);if(m.crossTileID)continue;const g=this._symbolsByKey[m.key];if(!g)continue;const x=this.getScaledCoordinates(m,n);if(g.index){const w=g.index.range(x.x-l,x.y-l,x.x+l,x.y+l).sort();for(const T of w){const I=g.crossTileIDs[T];if(!s[I]){s[I]=!0,m.crossTileID=I;break}}}else if(g.positions)for(let w=0;w<g.positions.length;w++){const T=g.positions[w],I=g.crossTileIDs[w];if(Math.abs(T.x-x.x)<=l&&Math.abs(T.y-x.y)<=l&&!s[I]){s[I]=!0,m.crossTileID=I;break}}}}getCrossTileIDsLists(){return Object.values(this._symbolsByKey).map((({crossTileIDs:t})=>t))}}class qo{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Bi{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(t){const n=Math.round((t-this.lng)/360);if(n!==0)for(const s in this.indexes){const l=this.indexes[s],p={};for(const m in l){const g=l[m];g.tileID=g.tileID.unwrapTo(g.tileID.wrap+n),p[g.tileID.key]=g}this.indexes[s]=p}this.lng=t}addBucket(t,n,s){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===n.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key])}for(let p=0;p<n.symbolInstances.length;p++)n.symbolInstances.get(p).crossTileID=0;this.usedCrossTileIDs[t.overscaledZ]||(this.usedCrossTileIDs[t.overscaledZ]={});const l=this.usedCrossTileIDs[t.overscaledZ];for(const p in this.indexes){const m=this.indexes[p];if(Number(p)>t.overscaledZ)for(const g in m){const x=m[g];x.tileID.isChildOf(t)&&x.findMatches(n.symbolInstances,t,l)}else{const g=m[t.scaledTo(Number(p)).key];g&&g.findMatches(n.symbolInstances,t,l)}}for(let p=0;p<n.symbolInstances.length;p++){const m=n.symbolInstances.get(p);m.crossTileID||(m.crossTileID=s.generate(),l[m.crossTileID]=!0)}return this.indexes[t.overscaledZ]===void 0&&(this.indexes[t.overscaledZ]={}),this.indexes[t.overscaledZ][t.key]=new Lu(t,n.symbolInstances,n.bucketInstanceId),!0}removeBucketCrossTileIDs(t,n){for(const s of n.getCrossTileIDsLists())for(const l of s)delete this.usedCrossTileIDs[t][l]}removeStaleBuckets(t){let n=!1;for(const s in this.indexes){const l=this.indexes[s];for(const p in l)t[l[p].bucketInstanceId]||(this.removeBucketCrossTileIDs(s,l[p]),delete l[p],n=!0)}return n}}class pi{constructor(){this.layerIndexes={},this.crossTileIDs=new qo,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(t,n,s){let l=this.layerIndexes[t.id];l===void 0&&(l=this.layerIndexes[t.id]=new Bi);let p=!1;const m={};l.handleWrapJump(s);for(const g of n){const x=g.getBucket(t);x&&t.id===x.layerIds[0]&&(x.bucketInstanceId||(x.bucketInstanceId=++this.maxBucketInstanceId),l.addBucket(g.tileID,x,this.crossTileIDs)&&(p=!0),m[x.bucketInstanceId]=!0)}return l.removeStaleBuckets(m)&&(p=!0),p}pruneUnusedLayers(t){const n={};t.forEach((s=>{n[s]=!0}));for(const s in this.layerIndexes)n[s]||delete this.layerIndexes[s]}}var fi="void main() {fragColor=vec4(1.0);}";const yt={prelude:je(`#ifdef GL_ES
precision mediump float;
#else
#if !defined(lowp)
#define lowp
#endif
#if !defined(mediump)
#define mediump
#endif
#if !defined(highp)
#define highp
#endif
#endif
out highp vec4 fragColor;`,`#ifdef GL_ES
precision highp float;
#else
#if !defined(lowp)
#define lowp
#endif
#if !defined(mediump)
#define mediump
#endif
#if !defined(highp)
#define highp
#endif
#endif
vec2 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
);}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;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c
);}
#ifdef TERRAIN3D
uniform 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;
#endif
const 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) {
#ifdef TERRAIN3D
highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
#else
return 1.0;
#endif
}float calculate_visibility(vec4 pos) {
#ifdef TERRAIN3D
vec3 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;
#else
return 1.0;
#endif
}float ele(vec2 pos) {
#ifdef TERRAIN3D
vec4 rgb=(texture(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
#else
return 0.0;
#endif
}float get_elevation(vec2 pos) {
#ifdef TERRAIN3D
#ifdef GLOBE
if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
#endif
vec2 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;
#else
return 0.0;
#endif
}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`),projectionMercator:je("","float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}"),projectionGlobe:je("",`#define GLOBE_RADIUS 6371008.8
uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos
);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float spherical_y=2.0*atan(exp(PI-(mercator_pos_y*PI*2.0)))-PI*0.5;return cos(spherical_y);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);
if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;vec2 spherical;spherical.x=mercator_pos.x*PI*2.0+PI;spherical.y=2.0*atan(exp(PI-(mercator_pos.y*PI*2.0)))-PI*0.5;float len=cos(spherical.y);vec3 pos=vec3(sin(spherical.x)*len,sin(spherical.y),cos(spherical.x)*len
);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:je(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:je(`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;in vec2 v_pos_a;in 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=texture(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=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,"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;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos);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:je(`in vec3 v_data;in float v_visibility;
#pragma mapbox: define highp vec4 color
#pragma mapbox: define mediump float radius
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define highp vec4 stroke_color
#pragma mapbox: define mediump float stroke_width
#pragma mapbox: define lowp float stroke_opacity
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize mediump float radius
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize highp vec4 stroke_color
#pragma mapbox: initialize mediump float stroke_width
#pragma mapbox: initialize lowp float stroke_opacity
vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;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));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;uniform vec2 u_translate;in vec2 a_pos;out vec3 v_data;out float v_visibility;
#pragma mapbox: define highp vec4 color
#pragma mapbox: define mediump float radius
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define highp vec4 stroke_color
#pragma mapbox: define mediump float stroke_width
#pragma mapbox: define lowp float stroke_opacity
void main(void) {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize mediump float radius
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize highp vec4 stroke_color
#pragma mapbox: initialize mediump float stroke_width
#pragma mapbox: initialize lowp float stroke_opacity
vec2 pos_raw=a_pos+32768.0;vec2 extrude=vec2(mod(pos_raw,8.0)/7.0*2.0-1.0);vec2 circle_center=floor(pos_raw/8.0)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
#ifdef GLOBE
vec3 center_vector=projectToSphere(circle_center);
#endif
float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {
#ifdef GLOBE
vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
#else
vec4 projected_center=projectTileWithElevation(circle_center,ele);
#endif
corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}
#ifdef GLOBE
vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
#else
gl_Position=projectTileWithElevation(corner_position,ele);
#endif
} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}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;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:je(fi,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:je(`uniform highp float u_intensity;in vec2 v_extrude;
#pragma mapbox: define highp float weight
#define GAUSS_COEF 0.3989422804014327
void main() {
#pragma mapbox: initialize highp float weight
float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;in vec2 a_pos;out vec2 v_extrude;
#pragma mapbox: define highp float weight
#pragma mapbox: define mediump float radius
const highp float ZERO=1.0/255.0/16.0;
#define GAUSS_COEF 0.3989422804014327
void main(void) {
#pragma mapbox: initialize highp float weight
#pragma mapbox: initialize mediump float radius
vec2 pos_raw=a_pos+32768.0;vec2 unscaled_extrude=vec2(mod(pos_raw,8.0)/7.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;vec2 circle_center=floor(pos_raw/8.0);
#ifdef GLOBE
vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);
#else
gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
#endif
}`),heatmapTexture:je(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(0.0);
#endif
}`,"uniform mat4 u_matrix;uniform vec2 u_world;in vec2 a_pos;out 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:je("in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}","in vec2 a_anchor_pos;in vec2 a_placed;in vec2 a_box_real;uniform vec2 u_pixel_extrude_scale;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:je("in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;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);fragColor=color*alpha*opacity_t;}","in vec2 a_pos;in float a_radius;in vec2 a_flags;uniform vec2 u_viewport_size;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {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;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),colorRelief:je(`#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {float x=(float(stop)+0.5)/float(u_color_ramp_size);vec4 data=texture(u_elevation_stops,vec2(x,0))*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else
{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0));
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,"uniform vec2 u_dimension;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),debug:je("uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}","in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}"),depth:je(fi,`in vec2 a_pos;void main() {
#ifdef GLOBE
gl_Position=projectTileFor3D(a_pos,0.0);
#else
gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
#endif
}`),fill:je(`#pragma mapbox: define highp vec4 color
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize lowp float opacity
fragColor=color*opacity;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform vec2 u_fill_translate;in vec2 a_pos;
#pragma mapbox: define highp vec4 color
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize lowp float opacity
gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:je(`in vec2 v_pos;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define highp vec4 outline_color
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize highp vec4 outline_color
#pragma mapbox: initialize lowp float opacity
float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define highp vec4 outline_color
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize highp vec4 outline_color
#pragma mapbox: initialize lowp float opacity
gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
}`),fillOutlinePattern:je(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
void main() {
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
vec2 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=texture(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=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=mix(color1,color2,u_fade)*alpha*opacity;
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
#pragma mapbox: define lowp float pixel_ratio_from
#pragma mapbox: define lowp float pixel_ratio_to
void main() {
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
#pragma mapbox: initialize lowp float pixel_ratio_from
#pragma mapbox: initialize lowp float pixel_ratio_to
vec2 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=projectTile(a_pos+u_fill_translate,a_pos);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;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
}`),fillPattern:je(`#ifdef GL_ES
precision highp float;
#endif
uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
void main() {
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
vec2 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=texture(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=texture(u_image,pos2);fragColor=mix(color1,color2,u_fade)*opacity;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
#pragma mapbox: define lowp float pixel_ratio_from
#pragma mapbox: define lowp float pixel_ratio_to
void main() {
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
#pragma mapbox: initialize lowp float pixel_ratio_from
#pragma mapbox: initialize lowp float pixel_ratio_to
vec2 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=projectTile(a_pos+u_fill_translate,a_pos);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:je(`in vec4 v_color;void main() {fragColor=v_color;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;in vec2 a_pos;in vec4 a_normal_ed;
#ifdef TERRAIN3D
in vec2 a_centroid;
#endif
out vec4 v_color;
#pragma mapbox: define highp float base
#pragma mapbox: define highp float height
#pragma mapbox: define highp vec4 color
void main() {
#pragma mapbox: initialize highp float base
#pragma mapbox: initialize highp float height
#pragma mapbox: initialize highp vec4 color
vec3 normal=a_normal_ed.xyz;
#ifdef TERRAIN3D
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
#else
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
#endif
base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
#ifdef GLOBE
vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
#else
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
#endif
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;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);
#ifdef GLOBE
mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
#endif
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:je(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;
#pragma mapbox: define lowp float base
#pragma mapbox: define lowp float height
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
#pragma mapbox: define lowp float pixel_ratio_from
#pragma mapbox: define lowp float pixel_ratio_to
void main() {
#pragma mapbox: initialize lowp float base
#pragma mapbox: initialize lowp float height
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
#pragma mapbox: initialize lowp float pixel_ratio_from
#pragma mapbox: initialize lowp float pixel_ratio_to
vec2 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=texture(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=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`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 vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;in vec2 a_pos;in vec4 a_normal_ed;
#ifdef TERRAIN3D
in vec2 a_centroid;
#endif
#ifdef GLOBE
out vec3 v_sphere_pos;
#endif
out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
#pragma mapbox: define lowp float base
#pragma mapbox: define lowp float height
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
#pragma mapbox: define lowp float pixel_ratio_from
#pragma mapbox: define lowp float pixel_ratio_to
void main() {
#pragma mapbox: initialize lowp float base
#pragma mapbox: initialize lowp float height
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
#pragma mapbox: initialize lowp float pixel_ratio_from
#pragma mapbox: initialize lowp float pixel_ratio_to
vec2 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;
#ifdef TERRAIN3D
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
#else
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
#endif
base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
#ifdef GLOBE
vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
#else
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
#endif
vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
? a_pos
: vec2(edgedistance,elevation*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:je(`#ifdef GL_ES
precision highp float;
#endif
uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {vec2 epsilon=1.0/u_dimension;float tileSize=u_dimension.x-2.0;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))*tileSize/pow(2.0,exaggeration+(28.2562-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+0.5,deriv.y/8.0+0.5,1.0,1.0),0.0,1.0);
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out 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:je(`uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES];
#define PI 3.141592653589793
#define STANDARD 0
#define COMBINED 1
#define IGOR 2
#define MULTIDIRECTIONAL 3
#define BASIC 4
float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;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_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else
{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else
{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {vec4 pixel=texture(u_image,v_pos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=((pixel.rg*8.0)-4.0)/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);}
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,"uniform mat4 u_matrix;in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}"),line:je(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define highp vec4 color
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
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);fragColor=color*(alpha*opacity);
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`
#define scale 0.015873016
in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define highp vec4 color
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define mediump float gapwidth
#pragma mapbox: define lowp float offset
#pragma mapbox: define mediump float width
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump float gapwidth
#pragma mapbox: initialize lowp float offset
#pragma mapbox: initialize mediump float width
float 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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
#ifdef TERRAIN3D
v_gamma_scale=1.0;
#else
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
#endif
v_width2=vec2(outset,inset);}`),lineGradient:je(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
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);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity);
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`
#define scale 0.015873016
in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define mediump float gapwidth
#pragma mapbox: define lowp float offset
#pragma mapbox: define mediump float width
void main() {
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump float gapwidth
#pragma mapbox: initialize lowp float offset
#pragma mapbox: initialize mediump float width
float 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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
#ifdef TERRAIN3D
v_gamma_scale=1.0;
#else
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
#endif
v_width2=vec2(outset,inset);}`),linePattern:je(`#ifdef GL_ES
precision highp float;
#endif
uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
#pragma mapbox: define lowp float pixel_ratio_from
#pragma mapbox: define lowp float pixel_ratio_to
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
#pragma mapbox: initialize lowp float pixel_ratio_from
#pragma mapbox: initialize lowp float pixel_ratio_to
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
vec2 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(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`
#define scale 0.015873016
#define LINE_DISTANCE_SCALE 2.0
in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp float offset
#pragma mapbox: define mediump float gapwidth
#pragma mapbox: define mediump float width
#pragma mapbox: define lowp float floorwidth
#pragma mapbox: define lowp vec4 pattern_from
#pragma mapbox: define lowp vec4 pattern_to
#pragma mapbox: define lowp float pixel_ratio_from
#pragma mapbox: define lowp float pixel_ratio_to
void main() {
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize lowp float offset
#pragma mapbox: initialize mediump float gapwidth
#pragma mapbox: initialize mediump float width
#pragma mapbox: initialize lowp float floorwidth
#pragma mapbox: initialize mediump vec4 pattern_from
#pragma mapbox: initialize mediump vec4 pattern_to
#pragma mapbox: initialize lowp float pixel_ratio_from
#pragma mapbox: initialize lowp float pixel_ratio_to
float 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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
#ifdef TERRAIN3D
v_gamma_scale=1.0;
#else
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
#endif
v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:je(`uniform lowp float u_device_pixel_ratio;uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define highp vec4 color
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define mediump float width
#pragma mapbox: define lowp float floorwidth
#pragma mapbox: define mediump vec4 dasharray_from
#pragma mapbox: define mediump vec4 dasharray_to
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump float width
#pragma mapbox: initialize lowp float floorwidth
#pragma mapbox: initialize mediump vec4 dasharray_from
#pragma mapbox: initialize mediump vec4 dasharray_to
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 sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`
#define scale 0.015873016
#define LINE_DISTANCE_SCALE 2.0
in vec2 a_pos_normal;in vec4 a_data;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define highp vec4 color
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define mediump float gapwidth
#pragma mapbox: define lowp float offset
#pragma mapbox: define mediump float width
#pragma mapbox: define lowp float floorwidth
#pragma mapbox: define mediump vec4 dasharray_from
#pragma mapbox: define mediump vec4 dasharray_to
void main() {
#pragma mapbox: initialize highp vec4 color
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump float gapwidth
#pragma mapbox: initialize lowp float offset
#pragma mapbox: initialize mediump float width
#pragma mapbox: initialize lowp float floorwidth
#pragma mapbox: initialize mediump vec4 dasharray_from
#pragma mapbox: initialize mediump vec4 dasharray_to
float 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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
#ifdef TERRAIN3D
v_gamma_scale=1.0;
#else
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
#endif
float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:je(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv;
#ifdef GLOBE
in float v_depth;
#endif
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define mediump float width
#pragma mapbox: define lowp float floorwidth
#pragma mapbox: define mediump vec4 dasharray_from
#pragma mapbox: define mediump vec4 dasharray_to
void main() {
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump float width
#pragma mapbox: initialize lowp float floorwidth
#pragma mapbox: initialize mediump vec4 dasharray_from
#pragma mapbox: initialize mediump vec4 dasharray_to
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);vec4 color=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity);
#ifdef GLOBE
if (v_depth > 1.0) {discard;}
#endif
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`
#define scale 0.015873016
#define LINE_DISTANCE_SCALE 2.0
in vec2 a_pos_normal;in vec4 a_data;in float a_uv_x;in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b;
#ifdef GLOBE
out float v_depth;
#endif
#pragma mapbox: define lowp float blur
#pragma mapbox: define lowp float opacity
#pragma mapbox: define mediump float gapwidth
#pragma mapbox: define lowp float offset
#pragma mapbox: define mediump float width
#pragma mapbox: define lowp float floorwidth
#pragma mapbox: define mediump vec4 dasharray_from
#pragma mapbox: define mediump vec4 dasharray_to
void main() {
#pragma mapbox: initialize lowp float blur
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize mediump float gapwidth
#pragma mapbox: initialize lowp float offset
#pragma mapbox: initialize mediump float width
#pragma mapbox: initialize lowp float floorwidth
#pragma mapbox: initialize mediump vec4 dasharray_from
#pragma mapbox: initialize mediump vec4 dasharray_to
float 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;float texel_height=1.0/u_image_height;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);float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
#ifdef GLOBE
v_depth=gl_Position.z/gl_Position.w;
#endif
#ifdef TERRAIN3D
v_gamma_scale=1.0;
#else
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
#endif
float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),raster:je(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec2 v_pos0;in 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=texture(u_image0,v_pos0);vec4 color1=texture(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);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;in vec2 a_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 position=mix(mix(u_coords_top.xy,u_coords_top.zw,fractionalPos.x),mix(u_coords_bottom.xy,u_coords_bottom.zw,fractionalPos.x),fractionalPos.y);gl_Position=projectTile(position,position);v_pos0=((fractionalPos-0.5)/u_buffer_scale)+0.5;
#ifdef GLOBE
if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;}
#endif
v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:je(`uniform sampler2D u_texture;in vec2 v_tex;in float v_fade_opacity;
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize lowp float opacity
lowp float alpha=opacity*v_fade_opacity;fragColor=texture(u_texture,v_tex)*alpha;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec2 v_tex;out float v_fade_opacity;
#pragma mapbox: define lowp float opacity
void main() {
#pragma mapbox: initialize lowp float opacity
vec2 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
camera_to_anchor_distance/u_camera_to_center_distance :
u_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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);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;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
#ifdef GLOBE
if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
#endif
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;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:je(`#define SDF_PX 8.0
uniform 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;in vec2 v_data0;in vec3 v_data1;
#pragma mapbox: define highp vec4 fill_color
#pragma mapbox: define highp vec4 halo_color
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp float halo_width
#pragma mapbox: define lowp float halo_blur
void main() {
#pragma mapbox: initialize highp vec4 fill_color
#pragma mapbox: initialize highp vec4 halo_color
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize lowp float halo_width
#pragma mapbox: initialize lowp float halo_blur
float 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=texture(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);}fragColor=color*(alpha*opacity*fade_opacity);
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`in vec4 a_pos_offset;in vec4 a_data;in vec4 a_pixeloffset;in vec3 a_projected_pos;in 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_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;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_translation;uniform float u_pitched_scale;out vec2 v_data0;out vec3 v_data1;
#pragma mapbox: define highp vec4 fill_color
#pragma mapbox: define highp vec4 halo_color
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp float halo_width
#pragma mapbox: define lowp float halo_blur
void main() {
#pragma mapbox: initialize highp vec4 fill_color
#pragma mapbox: initialize highp vec4 halo_color
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize lowp float halo_width
#pragma mapbox: initialize lowp float halo_blur
vec2 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/16.0;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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
camera_to_anchor_distance/u_camera_to_center_distance :
u_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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);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;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
#ifdef GLOBE
if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
#endif
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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:je(`#define SDF_PX 8.0
#define SDF 1.0
#define ICON 0.0
uniform 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;in vec4 v_data0;in vec4 v_data1;
#pragma mapbox: define highp vec4 fill_color
#pragma mapbox: define highp vec4 halo_color
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp float halo_width
#pragma mapbox: define lowp float halo_blur
void main() {
#pragma mapbox: initialize highp vec4 fill_color
#pragma mapbox: initialize highp vec4 halo_color
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize lowp float halo_width
#pragma mapbox: initialize lowp float halo_blur
float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;fragColor=texture(u_texture_icon,tex_icon)*alpha;
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
return;}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=texture(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);fragColor=color*(alpha*opacity*fade_opacity);
#ifdef OVERDRAW_INSPECTOR
fragColor=vec4(1.0);
#endif
}`,`in vec4 a_pos_offset;in vec4 a_data;in vec3 a_projected_pos;in 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_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;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;out vec4 v_data0;out vec4 v_data1;
#pragma mapbox: define highp vec4 fill_color
#pragma mapbox: define highp vec4 halo_color
#pragma mapbox: define lowp float opacity
#pragma mapbox: define lowp float halo_width
#pragma mapbox: define lowp float halo_blur
void main() {
#pragma mapbox: initialize highp vec4 fill_color
#pragma mapbox: initialize highp vec4 halo_color
#pragma mapbox: initialize lowp float opacity
#pragma mapbox: initialize lowp float halo_width
#pragma mapbox: initialize lowp float halo_blur
vec2 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;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
camera_to_anchor_distance/u_camera_to_center_distance :
u_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=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);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;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
#ifdef GLOBE
if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
#endif
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;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:je("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}","in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"),terrainDepth:je("in 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() {fragColor=pack(v_depth);}","in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}"),terrainCoords:je("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;in vec2 v_texture_pos;void main() {vec4 rgba=texture(u_texture,v_texture_pos);fragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","in vec3 a_pos3d;uniform float u_ele_delta;out vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);}"),projectionErrorMeasurement:je("in vec4 v_output_error_encoded;void main() {fragColor=v_output_error_encoded;}","in vec2 a_pos;uniform highp float u_input;uniform highp float u_output_expected;out vec4 v_output_error_encoded;void main() {float real_output=2.0*atan(exp(PI-(u_input*PI*2.0)))-PI*0.5;float error=real_output-u_output_expected;float abs_error=abs(error)*128.0;v_output_error_encoded.x=min(floor(abs_error*256.0),255.0)/255.0;abs_error-=v_output_error_encoded.x;v_output_error_encoded.y=min(floor(abs_error*65536.0),255.0)/255.0;abs_error-=v_output_error_encoded.x/255.0;v_output_error_encoded.z=min(floor(abs_error*16777216.0),255.0)/255.0;v_output_error_encoded.w=error >=0.0 ? 1.0 : 0.0;gl_Position=vec4(a_pos,0.0,1.0);}"),atmosphere:je(`#ifdef GL_ES
precision highp float;
#endif
in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758
);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,"in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}"),sky:je("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor=mix(fragColor,vec4(vec3(0.0),0.0),u_sky_blend);}","in vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function je(d,t){const n=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=t.match(/in ([\w]+) ([\w]+)/g),l=d.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),p=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),m=p?p.concat(l):l,g={};return{fragmentSource:d=d.replace(n,((x,w,T,I,M)=>(g[M]=!0,w==="define"?`
#ifndef HAS_UNIFORM_u_${M}
in ${T} ${I} ${M};
#else
uniform ${T} ${I} u_${M};
#endif
`:`
#ifdef HAS_UNIFORM_u_${M}
${T} ${I} ${M} = u_${M};
#endif
`))),vertexSource:t=t.replace(n,((x,w,T,I,M)=>{const z=I==="float"?"vec2":"vec4",L=M.match(/color/)?"color":z;return g[M]?w==="define"?`
#ifndef HAS_UNIFORM_u_${M}
uniform lowp float u_${M}_t;
in ${T} ${z} a_${M};
out ${T} ${I} ${M};
#else
uniform ${T} ${I} u_${M};
#endif
`:L==="vec4"?`
#ifndef HAS_UNIFORM_u_${M}
${M} = a_${M};
#else
${T} ${I} ${M} = u_${M};
#endif
`:`
#ifndef HAS_UNIFORM_u_${M}
${M} = unpack_mix_${L}(a_${M}, u_${M}_t);
#else
${T} ${I} ${M} = u_${M};
#endif
`:w==="define"?`
#ifndef HAS_UNIFORM_u_${M}
uniform lowp float u_${M}_t;
in ${T} ${z} a_${M};
#else
uniform ${T} ${I} u_${M};
#endif
`:L==="vec4"?`
#ifndef HAS_UNIFORM_u_${M}
${T} ${I} ${M} = a_${M};
#else
${T} ${I} ${M} = u_${M};
#endif
`:`
#ifndef HAS_UNIFORM_u_${M}
${T} ${I} ${M} = unpack_mix_${L}(a_${M}, u_${M}_t);
#else
${T} ${I} ${M} = u_${M};
#endif
`})),staticAttributes:s,staticUniforms:m}}class ca{constructor(t,n,s){this.vertexBuffer=t,this.indexBuffer=n,this.segments=s}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var Gt=c.aU([{name:"a_pos",type:"Int16",components:2}]);const Oi="#define PROJECTION_MERCATOR",Ai="mercator";class Os{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return Ai}get shaderDefine(){return Oi}get shaderPreludeCode(){return yt.projectionMercator}get vertexShaderPreludeCode(){return yt.projectionMercator.vertexSource}get subdivisionGranularity(){return c.aV.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(t){}getMeshFromTileID(t,n,s,l,p){if(this._cachedMesh)return this._cachedMesh;const m=new c.aW;m.emplaceBack(0,0),m.emplaceBack(c.a5,0),m.emplaceBack(0,c.a5),m.emplaceBack(c.a5,c.a5);const g=t.createVertexBuffer(m,Gt.members),x=c.aX.simpleSegment(0,0,4,2),w=new c.aY;w.emplaceBack(1,0,2),w.emplaceBack(1,2,3);const T=t.createIndexBuffer(w);return this._cachedMesh=new ca(g,T,x),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(t){}}class Rr{constructor(t=0,n=0,s=0,l=0){if(isNaN(t)||t<0||isNaN(n)||n<0||isNaN(s)||s<0||isNaN(l)||l<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=n,this.left=s,this.right=l}interpolate(t,n,s){return n.top!=null&&t.top!=null&&(this.top=c.G.number(t.top,n.top,s)),n.bottom!=null&&t.bottom!=null&&(this.bottom=c.G.number(t.bottom,n.bottom,s)),n.left!=null&&t.left!=null&&(this.left=c.G.number(t.left,n.left,s)),n.right!=null&&t.right!=null&&(this.right=c.G.number(t.right,n.right,s)),this}getCenter(t,n){const s=c.an((this.left+t-this.right)/2,0,t),l=c.an((this.top+n-this.bottom)/2,0,n);return new c.P(s,l)}equals(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right}clone(){return new Rr(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Mt(d,t){if(!d.renderWorldCopies||d.lngRange)return;const n=t.lng-d.center.lng;t.lng+=n>180?-360:n<-180?360:0}function ua(d){return Math.max(0,Math.floor(d))}class Lr{constructor(t,n){var s;this.applyConstrain=(l,p)=>this._constrainOverride!==null?this._constrainOverride(l,p):this._callbacks.defaultConstrain(l,p),this._callbacks=t,this._tileSize=512,this._renderWorldCopies=n?.renderWorldCopies===void 0||!!n?.renderWorldCopies,this._minZoom=n?.minZoom||0,this._maxZoom=n?.maxZoom||22,this._minPitch=n?.minPitch==null?0:n?.minPitch,this._maxPitch=n?.maxPitch==null?60:n?.maxPitch,this._constrainOverride=(s=n?.constrainOverride)!==null&&s!==void 0?s:null,this.setMaxBounds(),this._width=0,this._height=0,this._center=new c.V(0,0),this._elevation=0,this._zoom=0,this._tileZoom=ua(this._zoom),this._scale=c.aq(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new Rr,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(t,n,s){this._constrainOverride=t.constrainOverride,this._latRange=t.latRange,this._lngRange=t.lngRange,this._width=t.width,this._height=t.height,this._center=t.center,this._elevation=t.elevation,this._minElevationForCurrentTile=t.minElevationForCurrentTile,this._zoom=t.zoom,this._tileZoom=ua(this._zoom),this._scale=c.aq(this._zoom),this._bearingInRadians=t.bearingInRadians,this._fovInRadians=t.fovInRadians,this._pitchInRadians=t.pitchInRadians,this._rollInRadians=t.rollInRadians,this._unmodified=t.unmodified,this._edgeInsets=new Rr(t.padding.top,t.padding.bottom,t.padding.left,t.padding.right),this._minZoom=t.minZoom,this._maxZoom=t.maxZoom,this._minPitch=t.minPitch,this._maxPitch=t.maxPitch,this._renderWorldCopies=t.renderWorldCopies,this._cameraToCenterDistance=t.cameraToCenterDistance,this._nearZ=t.nearZ,this._farZ=t.farZ,this._autoCalculateNearFarZ=!s&&t.autoCalculateNearFarZ,n&&this.constrainInternal(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(t){this._minElevationForCurrentTile=t}get tileSize(){return this._tileSize}get tileZoom(){return this._tileZoom}get scale(){return this._scale}get width(){return this._width}get height(){return this._height}get bearingInRadians(){return this._bearingInRadians}get lngRange(){return this._lngRange}get latRange(){return this._latRange}get pixelsToGLUnits(){return this._pixelsToGLUnits}get minZoom(){return this._minZoom}setMinZoom(t){this._minZoom!==t&&(this._minZoom=t,this.setZoom(this.applyConstrain(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(t){this._maxZoom!==t&&(this._maxZoom=t,this.setZoom(this.applyConstrain(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(t){this._minPitch!==t&&(this._minPitch=t,this.setPitch(Math.max(this.pitch,t)))}get maxPitch(){return this._maxPitch}setMaxPitch(t){this._maxPitch!==t&&(this._maxPitch=t,this.setPitch(Math.min(this.pitch,t)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(t){t===void 0?t=!0:t===null&&(t=!1),this._renderWorldCopies=t}get constrainOverride(){return this._constrainOverride}setConstrainOverride(t){t===void 0&&(t=null),this._constrainOverride!==t&&(this._constrainOverride=t,this.constrainInternal(),this._calcMatrices())}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new c.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(t){const n=c.W(t,-180,180)*Math.PI/180;var s,l,p,m,g,x,w,T,I;this._bearingInRadians!==n&&(this._unmodified=!1,this._bearingInRadians=n,this._calcMatrices(),this._rotationMatrix=Jt(),s=this._rotationMatrix,p=-this._bearingInRadians,m=(l=this._rotationMatrix)[0],g=l[1],x=l[2],w=l[3],T=Math.sin(p),I=Math.cos(p),s[0]=m*I+x*T,s[1]=g*I+w*T,s[2]=m*-T+x*I,s[3]=g*-T+w*I)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(t){const n=c.an(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==n&&(this._unmodified=!1,this._pitchInRadians=n,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(t){const n=t/180*Math.PI;this._rollInRadians!==n&&(this._unmodified=!1,this._rollInRadians=n,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return c.aZ(this._fovInRadians)}setFov(t){t=c.an(t,.1,150),this.fov!==t&&(this._unmodified=!1,this._fovInRadians=c.ap(t),this._calcMatrices())}get zoom(){return this._zoom}setZoom(t){const n=this.applyConstrain(this._center,t).zoom;this._zoom!==n&&(this._unmodified=!1,this._zoom=n,this._tileZoom=Math.max(0,Math.floor(n)),this._scale=c.aq(n),this.constrainInternal(),this._calcMatrices())}get center(){return this._center}setCenter(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this.constrainInternal(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(t){t!==this._elevation&&(this._elevation=t,this.constrainInternal(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this._width,this._height)}get pixelsPerMeter(){return this._pixelPerMeter}get unmodified(){return this._unmodified}get cameraToCenterDistance(){return this._cameraToCenterDistance}get nearZ(){return this._nearZ}get farZ(){return this._farZ}get autoCalculateNearFarZ(){return this._autoCalculateNearFarZ}overrideNearFarZ(t,n){this._autoCalculateNearFarZ=!1,this._nearZ=t,this._farZ=n,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(t){return this._edgeInsets.equals(t)}interpolatePadding(t,n,s){this._unmodified=!1,this._edgeInsets.interpolate(t,n,s),this.constrainInternal(),this._calcMatrices()}resize(t,n,s=!0){this._width=t,this._height=n,s&&this.constrainInternal(),this._calcMatrices()}getMaxBounds(){return this._latRange&&this._latRange.length===2&&this._lngRange&&this._lngRange.length===2?new vt([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(t){t?(this._lngRange=[t.getWest(),t.getEast()],this._latRange=[t.getSouth(),t.getNorth()],this.constrainInternal()):(this._lngRange=null,this._latRange=[-c.ao,c.ao])}getCameraQueryGeometry(t,n){if(n.length===1)return[n[0],t];{const{minX:s,minY:l,maxX:p,maxY:m}=c.aa.fromPoints(n).extend(t);return[new c.P(s,l),new c.P(p,l),new c.P(p,m),new c.P(s,m),new c.P(s,l)]}}constrainInternal(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const t=this._unmodified,{center:n,zoom:s}=this.applyConstrain(this.center,this.zoom);this.setCenter(n),this.setZoom(s),this._unmodified=t,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let t=c.ar(new Float64Array(16));c.Q(t,t,[this._width/2,-this._height/2,1]),c.O(t,t,[1,-1,0]),this._clipSpaceToPixelsMatrix=t,t=c.ar(new Float64Array(16)),c.Q(t,t,[1,-1,1]),c.O(t,t,[-1,-1,0]),c.Q(t,t,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=t,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(t,n,s,l){const p=s!==void 0?s:this.bearing,m=l=l!==void 0?l:this.pitch,{distanceToCenter:g,clampedElevation:x}=this._distanceToCenterFromAltElevationPitch(n,this.elevation,m),{x:w,y:T}=Ze(m,p),I=c.a9.fromLngLat(t,n);let M,z,L=c.a_(1,I.y),j=0;do{if(j+=1,j>10)break;z=g/L,M=new c.a9(I.x+w*z,I.y+T*z),L=1/M.meterInMercatorCoordinateUnits()}while(Math.abs(g-z*L)>1e-12);return{center:M.toLngLat(),elevation:x,zoom:c.at(this.height/2/Math.tan(this.fovInRadians/2)/z/this.tileSize)}}recalculateZoomAndCenter(t){if(this.elevation-t==0)return;const n=1/this.worldSize,s=c.as(1,this.center.lat)*this.worldSize,l=c.a9.fromLngLat(this.center,this.elevation),p=l.x/n,m=l.y/n,g=l.z/n,x=this.pitch,w=this.bearing,{x:T,y:I,z:M}=Ze(x,w),z=this.cameraToCenterDistance,L=p+z*-T,j=m+z*-I,U=g+z*M,{distanceToCenter:N,clampedElevation:Z}=this._distanceToCenterFromAltElevationPitch(U/s,t,x),X=N*s,q=new c.a9((L+T*X)*n,(j+I*X)*n,0).toLngLat(),Y=c.as(1,q.lat),Q=c.at(this.height/2/Math.tan(this.fovInRadians/2)/N/Y/this.tileSize);this._elevation=Z,this._center=q,this.setZoom(Q)}_distanceToCenterFromAltElevationPitch(t,n,s){const l=-Math.cos(c.ap(s)),p=t-n;let m,g=n;return l*p>=0||Math.abs(l)<.1?(m=1e4,g=t+m*l):m=-p/l,{distanceToCenter:m,clampedElevation:g}}getCameraPoint(){const t=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new c.P(t*Math.sin(this.rollInRadians),t*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const t=c.as(1,this.center.lat)*this.worldSize;return Oe(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/t).toLngLat()}getMercatorTileCoordinates(t){if(!t)return[0,0,1,1];const n=t.canonical.z>=0?1<<t.canonical.z:Math.pow(2,t.canonical.z);return[t.canonical.x/n,t.canonical.y/n,1/n/c.a5,1/n/c.a5]}}class Dn{constructor(t,n){this.min=t,this.max=n,this.center=c.a$([],c.b0([],this.min,this.max),.5)}quadrant(t){const n=[t%2==0,t<2],s=c.b1(this.min),l=c.b1(this.max);for(let p=0;p<n.length;p++)s[p]=n[p]?this.min[p]:this.center[p],l[p]=n[p]?this.center[p]:this.max[p];return l[2]=this.max[2],new Dn(s,l)}distanceX(t){return Math.max(Math.min(this.max[0],t[0]),this.min[0])-t[0]}distanceY(t){return Math.max(Math.min(this.max[1],t[1]),this.min[1])-t[1]}intersectsFrustum(t){let n=!0;for(let s=0;s<t.planes.length;s++){const l=this.intersectsPlane(t.planes[s]);if(l===0)return 0;l===1&&(n=!1)}return n?2:t.aabb.min[0]>this.max[0]||t.aabb.min[1]>this.max[1]||t.aabb.min[2]>this.max[2]||t.aabb.max[0]<this.min[0]||t.aabb.max[1]<this.min[1]||t.aabb.max[2]<this.min[2]?0:1}intersectsPlane(t){let n=t[3],s=t[3];for(let l=0;l<3;l++)t[l]>0?(n+=t[l]*this.min[l],s+=t[l]*this.max[l]):(s+=t[l]*this.min[l],n+=t[l]*this.max[l]);return n>=0?2:s<0?0:1}}class cr{distanceToTile2d(t,n,s,l){const p=l.distanceX([t,n]),m=l.distanceY([t,n]);return Math.hypot(p,m)}getWrap(t,n,s){return s}getTileBoundingVolume(t,n,s,l){var p,m;let g=0,x=0;if(l?.terrain){const T=new c.a2(t.z,n,t.z,t.x,t.y),I=l.terrain.getMinMaxElevation(T);g=(p=I.minElevation)!==null&&p!==void 0?p:Math.min(0,s),x=(m=I.maxElevation)!==null&&m!==void 0?m:Math.max(0,s)}const w=1<<t.z;return new Dn([n+t.x/w,t.y/w,g],[n+(t.x+1)/w,(t.y+1)/w,x])}allowVariableZoom(t,n){const s=t.fov*(Math.abs(Math.cos(t.rollInRadians))*t.height+Math.abs(Math.sin(t.rollInRadians))*t.width)/t.height,l=c.an(78.5-s/2,0,60);return!!n.terrain||t.pitch>l}allowWorldCopies(){return!0}prepareNextFrame(){}}class Ga{constructor(t,n,s){this.points=t,this.planes=n,this.aabb=s}static fromInvProjectionMatrix(t,n=1,s=0,l,p){const m=p?[[6,5,4],[0,1,2],[0,3,7],[2,1,5],[3,2,6],[0,4,5]]:[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],g=Math.pow(2,s),x=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((M=>(function(z,L,j,U){const N=c.aH([],z,L),Z=1/N[3]/j*U;return c.b6(N,N,[Z,Z,1/N[3],Z])})(M,t,n,g)));l&&(function(M,z,L,j){const U=j?4:0,N=j?0:4;let Z=0;const X=[],q=[];for(let W=0;W<4;W++){const te=c.b2([],M[W+N],M[W+U]),de=c.b7(te);c.a$(te,te,1/de),X.push(de),q.push(te)}for(let W=0;W<4;W++){const te=c.b8(M[W+U],q[W],L);Z=te!==null&&te>=0?Math.max(Z,te):Math.max(Z,X[W])}const Y=(function(W,te){const de=c.b2([],W[te[0]],W[te[1]]),ue=c.b2([],W[te[2]],W[te[1]]),le=[0,0,0,0];return c.b3(le,c.b4([],de,ue)),le[3]=-c.b5(le,W[te[0]]),le})(M,z),Q=(function(W,te){const de=c.b9(W),ue=c.ba([],W,1/de),le=c.b2([],te,c.a$([],ue,c.b5(te,ue))),he=c.b9(le);if(he>0){const Me=Math.sqrt(1-ue[3]*ue[3]),Ie=c.a$([],ue,-ue[3]),_e=c.b0([],Ie,c.a$([],le,Me/he));return c.bb(te,_e)}return null})(L,Y);if(Q!==null){const W=Q/c.b5(q[0],Y);Z=Math.min(Z,W)}for(let W=0;W<4;W++){const te=Math.min(Z,X[W]);M[W+N]=[M[W+U][0]+q[W][0]*te,M[W+U][1]+q[W][1]*te,M[W+U][2]+q[W][2]*te,1]}})(x,m[0],l,p);const w=m.map((M=>{const z=c.b2([],x[M[0]],x[M[1]]),L=c.b2([],x[M[2]],x[M[1]]),j=c.b3([],c.b4([],z,L)),U=-c.b5(j,x[M[1]]);return j.concat(U)})),T=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],I=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const M of x)for(let z=0;z<3;z++)T[z]=Math.min(T[z],M[z]),I[z]=Math.max(I[z],M[z]);return new Ga(x,w,new Dn(T,I))}}class Vi{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,n,s){return this._helper.interpolatePadding(t,n,s)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,n,s=!0){this._helper.resize(t,n,s)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}setConstrainOverride(t){this._helper.setConstrainOverride(t)}overrideNearFarZ(t,n){this._helper.overrideNearFarZ(t,n)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(t,n){}constructor(t){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this.defaultConstrain=(n,s)=>{s=c.an(+s,this.minZoom,this.maxZoom);const l={center:new c.V(n.lng,n.lat),zoom:s};let p=this._helper._lngRange;if(!this._helper._renderWorldCopies&&p===null){const q=179.9999999999;p=[-q,q]}const m=this.tileSize*c.aq(l.zoom);let g=0,x=m,w=0,T=m,I=0,M=0;const{x:z,y:L}=this.size;if(this._helper._latRange){const q=this._helper._latRange;g=c.X(q[1])*m,x=c.X(q[0])*m,x-g<L&&(I=L/(x-g))}p&&(w=c.W(c.Y(p[0])*m,0,m),T=c.W(c.Y(p[1])*m,0,m),T<w&&(T+=m),T-w<z&&(M=z/(T-w)));const{x:j,y:U}=ne(m,n);let N,Z;const X=Math.max(M||0,I||0);if(X){const q=new c.P(M?(T+w)/2:j,I?(x+g)/2:U);return l.center=be(m,q).wrap(),l.zoom+=c.at(X),l}if(this._helper._latRange){const q=L/2;U-q<g&&(Z=g+q),U+q>x&&(Z=x-q)}if(p){const q=(w+T)/2;let Y=j;this._helper._renderWorldCopies&&(Y=c.W(j,q-m/2,q+m/2));const Q=z/2;Y-Q<w&&(N=w+Q),Y+Q>T&&(N=T-Q)}if(N!==void 0||Z!==void 0){const q=new c.P(N??j,Z??U);l.center=be(m,q).wrap()}return l},this.applyConstrain=(n,s)=>this._helper.applyConstrain(n,s),this._helper=new Lr({calcMatrices:()=>{this._calcMatrices()},defaultConstrain:(n,s)=>this.defaultConstrain(n,s)},t),this._coveringTilesDetailsProvider=new cr}clone(){const t=new Vi;return t.apply(this,!1),t}apply(t,n,s){this._helper.apply(t,n,s)}get cameraPosition(){return this._cameraPosition}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._viewProjMatrix}get inverseProjectionMatrix(){return this._invProjMatrix}get mercatorMatrix(){return this._mercatorMatrix}getVisibleUnwrappedCoordinates(t){const n=[new c.bc(0,t)];if(this._helper._renderWorldCopies){const s=this.screenPointToMercatorCoordinate(new c.P(0,0)),l=this.screenPointToMercatorCoordinate(new c.P(this._helper._width,0)),p=this.screenPointToMercatorCoordinate(new c.P(this._helper._width,this._helper._height)),m=this.screenPointToMercatorCoordinate(new c.P(0,this._helper._height)),g=Math.floor(Math.min(s.x,l.x,p.x,m.x)),x=Math.floor(Math.max(s.x,l.x,p.x,m.x)),w=1;for(let T=g-w;T<=x+w;T++)T!==0&&n.push(new c.bc(T,t))}return n}getCameraFrustum(){return Ga.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(t){const n=this.screenPointToLocation(this.centerPoint,t),s=t?t.getElevationForLngLatZoom(n,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(s)}setLocationAtPoint(t,n){const s=c.as(this.elevation,this.center.lat),l=this.screenPointToMercatorCoordinateAtZ(n,s),p=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,s),m=c.a9.fromLngLat(t),g=new c.a9(m.x-(l.x-p.x),m.y-(l.y-p.y));this.setCenter(g?.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(t,n){return n?this.coordinatePoint(c.a9.fromLngLat(t),n.getElevationForLngLat(t,this),this._pixelMatrix3D):this.coordinatePoint(c.a9.fromLngLat(t))}screenPointToLocation(t,n){var s;return(s=this.screenPointToMercatorCoordinate(t,n))===null||s===void 0?void 0:s.toLngLat()}screenPointToMercatorCoordinate(t,n){if(n){const s=n.pointCoordinate(t);if(s!=null)return s}return this.screenPointToMercatorCoordinateAtZ(t)}screenPointToMercatorCoordinateAtZ(t,n){const s=n||0,l=[t.x,t.y,0,1],p=[t.x,t.y,1,1];c.aH(l,l,this._pixelMatrixInverse),c.aH(p,p,this._pixelMatrixInverse);const m=l[3],g=p[3],x=l[1]/m,w=p[1]/g,T=l[2]/m,I=p[2]/g,M=T===I?0:(s-T)/(I-T);return new c.a9(c.G.number(l[0]/m,p[0]/g,M)/this.worldSize,c.G.number(x,w,M)/this.worldSize,s)}coordinatePoint(t,n=0,s=this._pixelMatrix){const l=[t.x*this.worldSize,t.y*this.worldSize,n,1];return c.aH(l,l,s),new c.P(l[0]/l[3],l[1]/l[3])}getBounds(){const t=Math.max(0,this._helper._height/2-me(this));return new vt().extend(this.screenPointToLocation(new c.P(0,t))).extend(this.screenPointToLocation(new c.P(this._helper._width,t))).extend(this.screenPointToLocation(new c.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new c.P(0,this._helper._height)))}isPointOnMapSurface(t,n){return n?n.pointCoordinate(t)!=null:t.y>this.height/2-me(this)}calculatePosMatrix(t,n=!1,s){var l;const p=(l=t.key)!==null&&l!==void 0?l:c.bd(t.wrap,t.canonical.z,t.canonical.z,t.canonical.x,t.canonical.y),m=n?this._alignedPosMatrixCache:this._posMatrixCache;if(m.has(p)){const w=m.get(p);return s?w.f32:w.f64}const g=K(t,this.worldSize);c.S(g,n?this._alignedProjMatrix:this._viewProjMatrix,g);const x={f64:g,f32:new Float32Array(g)};return m.set(p,x),s?x.f32:x.f64}calculateFogMatrix(t){const n=t.key,s=this._fogMatrixCacheF32;if(s.has(n))return s.get(n);const l=K(t,this.worldSize);return c.S(l,this._fogMatrix,l),s.set(n,new Float32Array(l)),s.get(n)}calculateCenterFromCameraLngLatAlt(t,n,s,l){return this._helper.calculateCenterFromCameraLngLatAlt(t,n,s,l)}_calculateNearFarZIfNeeded(t,n,s){if(!this._helper.autoCalculateNearFarZ)return;const l=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),p=t-l*this._helper._pixelPerMeter/Math.cos(n),m=l<0?p:t,g=Math.PI/2+this.pitchInRadians,x=c.ap(this.fov)*(Math.abs(Math.cos(c.ap(this.roll)))*this.height+Math.abs(Math.sin(c.ap(this.roll)))*this.width)/this.height*(.5+s.y/this.height),w=Math.sin(x)*m/Math.sin(c.an(Math.PI-g-x,.01,Math.PI-.01)),T=me(this),I=Math.atan(T/this._helper.cameraToCenterDistance),M=c.ap(.75),z=I>M?2*I*(.5+s.y/(2*T)):M,L=Math.sin(z)*m/Math.sin(c.an(Math.PI-g-z,.01,Math.PI-.01)),j=Math.min(w,L);this._helper._farZ=1.01*(Math.cos(Math.PI/2-n)*j+m),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const t=this.centerOffset,n=ne(this.worldSize,this.center),s=n.x,l=n.y;this._helper._pixelPerMeter=c.as(1,this.center.lat)*this.worldSize;const p=c.ap(Math.min(this.pitch,re)),m=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(p));let g;this._calculateNearFarZIfNeeded(m,p,t),g=new Float64Array(16),c.be(g,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),c.aB(this._invProjMatrix,g),g[8]=2*-t.x/this._helper._width,g[9]=2*t.y/this._helper._height,this._projectionMatrix=c.bf(g),c.Q(g,g,[1,-1,1]),c.O(g,g,[0,0,-this._helper.cameraToCenterDistance]),c.bg(g,g,-this.rollInRadians),c.bh(g,g,this.pitchInRadians),c.bg(g,g,-this.bearingInRadians),c.O(g,g,[-s,-l,0]),this._mercatorMatrix=c.Q([],g,[this.worldSize,this.worldSize,this.worldSize]),c.Q(g,g,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=c.S(new Float64Array(16),this.clipSpaceToPixelsMatrix,g),c.O(g,g,[0,0,-this.elevation]),this._viewProjMatrix=g,this._invViewProjMatrix=c.aB([],g);const x=[0,0,-1,1];c.aH(x,x,this._invViewProjMatrix),this._cameraPosition=[x[0]/x[3],x[1]/x[3],x[2]/x[3]],this._fogMatrix=new Float64Array(16),c.be(this._fogMatrix,this.fovInRadians,this.width/this.height,m,this._helper._farZ),this._fogMatrix[8]=2*-t.x/this.width,this._fogMatrix[9]=2*t.y/this.height,c.Q(this._fogMatrix,this._fogMatrix,[1,-1,1]),c.O(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),c.bg(this._fogMatrix,this._fogMatrix,-this.rollInRadians),c.bh(this._fogMatrix,this._fogMatrix,this.pitchInRadians),c.bg(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),c.O(this._fogMatrix,this._fogMatrix,[-s,-l,0]),c.Q(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),c.O(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=c.S(new Float64Array(16),this.clipSpaceToPixelsMatrix,g);const w=this._helper._width%2/2,T=this._helper._height%2/2,I=Math.cos(this.bearingInRadians),M=Math.sin(-this.bearingInRadians),z=s-Math.round(s)+I*w+M*T,L=l-Math.round(l)+I*T+M*w,j=new Float64Array(g);if(c.O(j,j,[z>.5?z-1:z,L>.5?L-1:L,0]),this._alignedProjMatrix=j,g=c.aB(new Float64Array(16),this._pixelMatrix),!g)throw new Error("failed to invert matrix");this._pixelMatrixInverse=g,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const t=this.screenPointToMercatorCoordinate(new c.P(0,0)),n=[t.x*this.worldSize,t.y*this.worldSize,0,1];return c.aH(n,n,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const t=c.as(1,this.center.lat)*this.worldSize;return Oe(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/t).toLngLat()}lngLatToCameraDepth(t,n){const s=c.a9.fromLngLat(t),l=[s.x*this.worldSize,s.y*this.worldSize,n,1];return c.aH(l,l,this._viewProjMatrix),l[2]/l[3]}getProjectionData(t){const{overscaledTileID:n,aligned:s,applyTerrainMatrix:l}=t,p=this._helper.getMercatorTileCoordinates(n),m=n?this.calculatePosMatrix(n,s,!0):null;let g;return g=n&&n.terrainRttPosMatrix32f&&l?n.terrainRttPosMatrix32f:m||c.bi(),{mainMatrix:g,tileMercatorCoords:p,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:g}}isLocationOccluded(t){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(t,n,s){return 1}transformLightDirection(t){return c.b1(t)}getRayDirectionFromPixel(t){throw new Error("Not implemented.")}projectTileCoordinates(t,n,s,l){const p=this.calculatePosMatrix(s);let m;l?(m=[t,n,l(t,n),1],c.aH(m,m,p)):(m=[t,n,0,1],cn(m,m,p));const g=m[3];return{point:new c.P(m[0]/g,m[1]/g),signedDistanceFromCamera:g,isOccluded:!1}}populateCache(t){for(const n of t)this.calculatePosMatrix(n)}getMatrixForModel(t,n){const s=c.a9.fromLngLat(t,n),l=s.meterInMercatorCoordinateUnits(),p=c.bj();return c.O(p,p,[s.x,s.y,s.z]),c.bg(p,p,Math.PI),c.bh(p,p,Math.PI/2),c.Q(p,p,[-l,l,l]),p}getProjectionDataForCustomLayer(t=!0){const n=new c.a2(0,0,0,0,0),s=this.getProjectionData({overscaledTileID:n,applyGlobeMatrix:t}),l=K(n,this.worldSize);c.S(l,this._viewProjMatrix,l),s.tileMercatorCoords=[0,0,1,1];const p=[c.a5,c.a5,this.worldSize/this._helper.pixelsPerMeter],m=c.bk();return c.Q(m,l,p),s.fallbackMatrix=m,s.mainMatrix=m,s}getFastPathSimpleProjectionMatrix(t){return this.calculatePosMatrix(t)}}function nc(){c.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function Zo(d){if(d.useSlerp)if(d.k<1){const t=c.bl(d.startEulerAngles.roll,d.startEulerAngles.pitch,d.startEulerAngles.bearing),n=c.bl(d.endEulerAngles.roll,d.endEulerAngles.pitch,d.endEulerAngles.bearing),s=new Float64Array(4);c.bm(s,t,n,d.k);const l=c.bn(s);d.tr.setRoll(l.roll),d.tr.setPitch(l.pitch),d.tr.setBearing(l.bearing)}else d.tr.setRoll(d.endEulerAngles.roll),d.tr.setPitch(d.endEulerAngles.pitch),d.tr.setBearing(d.endEulerAngles.bearing);else d.tr.setRoll(c.G.number(d.startEulerAngles.roll,d.endEulerAngles.roll,d.k)),d.tr.setPitch(c.G.number(d.startEulerAngles.pitch,d.endEulerAngles.pitch,d.k)),d.tr.setBearing(c.G.number(d.startEulerAngles.bearing,d.endEulerAngles.bearing,d.k))}function qa(d,t,n,s,l){const p=l.padding,m=ne(l.worldSize,n.getNorthWest()),g=ne(l.worldSize,n.getNorthEast()),x=ne(l.worldSize,n.getSouthEast()),w=ne(l.worldSize,n.getSouthWest()),T=c.ap(-s),I=m.rotate(T),M=g.rotate(T),z=x.rotate(T),L=w.rotate(T),j=new c.P(Math.max(I.x,M.x,L.x,z.x),Math.max(I.y,M.y,L.y,z.y)),U=new c.P(Math.min(I.x,M.x,L.x,z.x),Math.min(I.y,M.y,L.y,z.y)),N=j.sub(U),Z=(l.width-(p.left+p.right+t.left+t.right))/N.x,X=(l.height-(p.top+p.bottom+t.top+t.bottom))/N.y;if(X<0||Z<0)return void nc();const q=Math.min(c.at(l.scale*Math.min(Z,X)),d.maxZoom),Y=c.P.convert(d.offset),Q=new c.P((t.left-t.right)/2,(t.top-t.bottom)/2).rotate(c.ap(s)),W=Y.add(Q).mult(l.scale/c.aq(q));return{center:be(l.worldSize,m.add(x).div(2).sub(W)),zoom:q,bearing:s}}class kn{get useGlobeControls(){return!1}handlePanInertia(t,n){const s=t.mag(),l=Math.abs(me(n));return{easingOffset:t.mult(Math.min(.75*l/s,1)),easingCenter:n.center}}handleMapControlsRollPitchBearingZoom(t,n){t.bearingDelta&&n.setBearing(n.bearing+t.bearingDelta),t.pitchDelta&&n.setPitch(n.pitch+t.pitchDelta),t.rollDelta&&n.setRoll(n.roll+t.rollDelta),t.zoomDelta&&n.setZoom(n.zoom+t.zoomDelta)}handleMapControlsPan(t,n,s){t.around.distSqr(n.centerPoint)<.01||n.setLocationAtPoint(s,t.around)}cameraForBoxAndBearing(t,n,s,l,p){return qa(t,n,s,l,p)}handleJumpToCenterZoom(t,n){t.zoom!==(n.zoom!==void 0?+n.zoom:t.zoom)&&t.setZoom(+n.zoom),n.center!==void 0&&t.setCenter(c.V.convert(n.center))}handleEaseTo(t,n){const s=t.zoom,l=t.padding,p={roll:t.roll,pitch:t.pitch,bearing:t.bearing},m={roll:n.roll===void 0?t.roll:n.roll,pitch:n.pitch===void 0?t.pitch:n.pitch,bearing:n.bearing===void 0?t.bearing:n.bearing},g=n.zoom!==void 0,x=!t.isPaddingEqual(n.padding);let w=!1;const T=g?+n.zoom:t.zoom;let I=t.centerPoint.add(n.offsetAsPoint);const M=t.screenPointToLocation(I),{center:z,zoom:L}=t.applyConstrain(c.V.convert(n.center||M),T??s);Mt(t,z);const j=ne(t.worldSize,M),U=ne(t.worldSize,z).sub(j),N=c.aq(L-s);return w=L!==s,{easeFunc:Z=>{if(w&&t.setZoom(c.G.number(s,L,Z)),c.bo(p,m)||Zo({startEulerAngles:p,endEulerAngles:m,tr:t,k:Z,useSlerp:p.roll!=m.roll}),x&&(t.interpolatePadding(l,n.padding,Z),I=t.centerPoint.add(n.offsetAsPoint)),n.around)t.setLocationAtPoint(n.around,n.aroundPoint);else{const X=c.aq(t.zoom-s),q=L>s?Math.min(2,N):Math.max(.5,N),Y=Math.pow(q,1-Z),Q=be(t.worldSize,j.add(U.mult(Z*Y)).mult(X));t.setLocationAtPoint(t.renderWorldCopies?Q.wrap():Q,I)}},isZooming:w,elevationCenter:z}}handleFlyTo(t,n){const s=n.zoom!==void 0,l=t.zoom,p=t.applyConstrain(c.V.convert(n.center||n.locationAtOffset),s?+n.zoom:l),m=p.center,g=p.zoom;Mt(t,m);const x=ne(t.worldSize,n.locationAtOffset),w=ne(t.worldSize,m).sub(x),T=w.mag(),I=c.aq(g-l);let M;if(n.minZoom!==void 0){const z=Math.min(+n.minZoom,l,g),L=t.applyConstrain(m,z).zoom;M=c.aq(L-l)}return{easeFunc:(z,L,j,U)=>{t.setZoom(z===1?g:l+c.at(L));const N=z===1?m:be(t.worldSize,x.add(w.mult(j)).mult(L));t.setLocationAtPoint(t.renderWorldCopies?N.wrap():N,U)},scaleOfZoom:I,targetCenter:m,scaleOfMinZoom:M,pixelPathLength:T}}}class dt{constructor(t,n,s){this.blendFunction=t,this.blendColor=n,this.mask=s}}dt.Replace=[1,0],dt.disabled=new dt(dt.Replace,c.bp.transparent,[!1,!1,!1,!1]),dt.unblended=new dt(dt.Replace,c.bp.transparent,[!0,!0,!0,!0]),dt.alphaBlended=new dt([1,771],c.bp.transparent,[!0,!0,!0,!0]);const Za=2305;class tt{constructor(t,n,s){this.enable=t,this.mode=n,this.frontFace=s}}tt.disabled=new tt(!1,1029,Za),tt.backCCW=new tt(!0,1029,Za),tt.frontCCW=new tt(!0,1028,Za);class Xe{constructor(t,n,s){this.func=t,this.mask=n,this.range=s}}Xe.ReadOnly=!1,Xe.ReadWrite=!0,Xe.disabled=new Xe(519,Xe.ReadOnly,[0,1]);const $a=7680;class rt{constructor(t,n,s,l,p,m){this.test=t,this.ref=n,this.mask=s,this.fail=l,this.depthFail=p,this.pass=m}}rt.disabled=new rt({func:519,mask:0},0,0,$a,$a,$a);const ha=new WeakMap;function Qi(d){var t;if(ha.has(d))return ha.get(d);{const n=(t=d.getParameter(d.VERSION))===null||t===void 0?void 0:t.startsWith("WebGL 2.0");return ha.set(d,n),n}}class Rn{get awaitingQuery(){return!!this._readbackQueue}constructor(t){this._readbackWaitFrames=4,this._measureWaitFrames=6,this._texWidth=1,this._texHeight=1,this._measuredError=0,this._updateCount=0,this._lastReadbackFrame=-1e3,this._readbackQueue=null,this._cachedRenderContext=t;const n=t.context,s=n.gl;this._texFormat=s.RGBA,this._texType=s.UNSIGNED_BYTE;const l=new c.aW;l.emplaceBack(-1,-1),l.emplaceBack(2,-1),l.emplaceBack(-1,2);const p=new c.aY;p.emplaceBack(0,1,2),this._fullscreenTriangle=new ca(n.createVertexBuffer(l,Gt.members),n.createIndexBuffer(p),c.aX.simpleSegment(0,0,l.length,p.length)),this._resultBuffer=new Uint8Array(4),n.activeTexture.set(s.TEXTURE1);const m=s.createTexture();s.bindTexture(s.TEXTURE_2D,m),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.NEAREST),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.NEAREST),s.texImage2D(s.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=n.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(m),Qi(s)&&(this._pbo=s.createBuffer(),s.bindBuffer(s.PIXEL_PACK_BUFFER,this._pbo),s.bufferData(s.PIXEL_PACK_BUFFER,4,s.STREAM_READ),s.bindBuffer(s.PIXEL_PACK_BUFFER,null))}destroy(){const t=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),t.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(t,n){const s=this._updateCount;return this._readbackQueue?s>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():s>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(t,n),this._updateCount++,this._measuredError}_bindFramebuffer(){const t=this._cachedRenderContext.context,n=t.gl;t.activeTexture.set(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this._fbo.colorAttachment.get()),t.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(t,n){const s=this._cachedRenderContext.context,l=s.gl;if(this._bindFramebuffer(),s.viewport.set([0,0,this._texWidth,this._texHeight]),s.clear({color:c.bp.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(s,l.TRIANGLES,Xe.disabled,rt.disabled,dt.unblended,tt.disabled,((p,m)=>({u_input:p,u_output_expected:m}))(t,n),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&Qi(l)){l.bindBuffer(l.PIXEL_PACK_BUFFER,this._pbo),l.readBuffer(l.COLOR_ATTACHMENT0),l.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,0),l.bindBuffer(l.PIXEL_PACK_BUFFER,null);const p=l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE,0);l.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:p}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const t=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&Qi(t)){const n=t.clientWaitSync(this._readbackQueue.sync,0,0);if(n===t.WAIT_FAILED)return c.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(n===t.TIMEOUT_EXPIRED)return;t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pbo),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),t.bindBuffer(t.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),t.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=Rn._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(t){let n=0;return n+=t[0]/256,n+=t[1]/65536,n+=t[2]/16777216,t[3]<127&&(n=-n),n/128}}const Vs=c.a5/128;function js(d,t){const n=d.granularity!==void 0?Math.max(d.granularity,1):1,s=n+(d.generateBorders?2:0),l=n+(d.extendToNorthPole||d.generateBorders?1:0)+(d.extendToSouthPole||d.generateBorders?1:0),p=s+1,m=l+1,g=d.generateBorders?-1:0,x=d.generateBorders||d.extendToNorthPole?-1:0,w=n+(d.generateBorders?1:0),T=n+(d.generateBorders||d.extendToSouthPole?1:0),I=p*m,M=s*l*6,z=p*m>65536;if(z&&t==="16bit")throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const L=z||t==="32bit",j=new Int16Array(2*I);let U=0;for(let X=x;X<=T;X++)for(let q=g;q<=w;q++){let Y=q/n*c.a5;q===-1&&(Y=-Vs),q===n+1&&(Y=c.a5+Vs);let Q=X/n*c.a5;X===-1&&(Q=d.extendToNorthPole?c.br:-Vs),X===n+1&&(Q=d.extendToSouthPole?c.bs:c.a5+Vs),j[U++]=Y,j[U++]=Q}const N=L?new Uint32Array(M):new Uint16Array(M);let Z=0;for(let X=0;X<l;X++)for(let q=0;q<s;q++){const Y=q+1+X*p,Q=q+(X+1)*p,W=q+1+(X+1)*p;N[Z++]=q+X*p,N[Z++]=Q,N[Z++]=Y,N[Z++]=Y,N[Z++]=Q,N[Z++]=W}return{vertices:j.buffer.slice(0),indices:N.buffer.slice(0),uses32bitIndices:L}}const Ns=new c.aV({fill:new c.bt(128,2),line:new c.bt(512,0),tile:new c.bt(128,32),stencil:new c.bt(128,1),circle:3});class ac{constructor(){this._tileMeshCache={},this._errorCorrectionUsable=0,this._errorMeasurementLastValue=0,this._errorCorrectionPreviousValue=0,this._errorMeasurementLastChangeTime=-1e3}get name(){return"vertical-perspective"}get transitionState(){return 1}get useSubdivision(){return!0}get shaderVariantName(){return"globe"}get shaderDefine(){return"#define GLOBE"}get shaderPreludeCode(){return yt.projectionGlobe}get vertexShaderPreludeCode(){return yt.projectionMercator.vertexSource}get subdivisionGranularity(){return Ns}get useGlobeControls(){return!0}get latitudeErrorCorrectionRadians(){return this._errorCorrectionUsable}destroy(){this._errorMeasurement&&this._errorMeasurement.destroy()}updateGPUdependent(t){this._errorMeasurement||(this._errorMeasurement=new Rn(t));const n=c.X(this._errorQueryLatitudeDegrees),s=2*Math.atan(Math.exp(Math.PI-n*Math.PI*2))-.5*Math.PI,l=this._errorMeasurement.updateErrorLoop(n,s),p=it();l!==this._errorMeasurementLastValue&&(this._errorCorrectionPreviousValue=this._errorCorrectionUsable,this._errorMeasurementLastValue=l,this._errorMeasurementLastChangeTime=p);const m=Math.min(Math.max((p-this._errorMeasurementLastChangeTime)/1e3/.5,0),1);this._errorCorrectionUsable=c.bu(this._errorCorrectionPreviousValue,-this._errorMeasurementLastValue,c.bv(m))}_getMeshKey(t){return`${t.granularity.toString(36)}_${t.generateBorders?"b":""}${t.extendToNorthPole?"n":""}${t.extendToSouthPole?"s":""}`}getMeshFromTileID(t,n,s,l,p){const m=(p==="stencil"?Ns.stencil:Ns.tile).getGranularityForZoomLevel(n.z);return this._getMesh(t,{granularity:m,generateBorders:s,extendToNorthPole:n.y===0&&l,extendToSouthPole:n.y===(1<<n.z)-1&&l})}_getMesh(t,n){const s=this._getMeshKey(n);if(s in this._tileMeshCache)return this._tileMeshCache[s];const l=(function(p,m){const g=js(m,"16bit"),x=c.aW.deserialize({arrayBuffer:g.vertices,length:g.vertices.byteLength/2/2}),w=c.aY.deserialize({arrayBuffer:g.indices,length:g.indices.byteLength/2/3});return new ca(p.createVertexBuffer(x,Gt.members),p.createIndexBuffer(w),c.aX.simpleSegment(0,0,x.length,w.length))})(t,n);return this._tileMeshCache[s]=l,l}recalculate(t){}hasTransition(){const t=it();let n=!1;return n=n||(t-this._errorMeasurementLastChangeTime)/1e3<.7,n=n||this._errorMeasurement&&this._errorMeasurement.awaitingQuery,n}setErrorQueryLatitudeDegrees(t){this._errorQueryLatitudeDegrees=t}}const Fu=new c.t({type:new c.D(c.u.projection.type)});class vi extends c.E{constructor(t){super(),this._transitionable=new c.x(Fu,void 0),this.setProjection(t),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new c.H(0)),this._mercatorProjection=new Os,this._verticalPerspectiveProjection=new ac}get transitionState(){const t=this.properties.get("type");if(typeof t=="string"&&t==="mercator")return 0;if(typeof t=="string"&&t==="vertical-perspective")return 1;if(t instanceof c.bw){if(t.from==="vertical-perspective"&&t.to==="mercator")return 1-t.transition;if(t.from==="mercator"&&t.to==="vertical-perspective")return t.transition}return 1}get useGlobeRendering(){return this.transitionState>0}get latitudeErrorCorrectionRadians(){return this._verticalPerspectiveProjection.latitudeErrorCorrectionRadians}get currentProjection(){return this.useGlobeRendering?this._verticalPerspectiveProjection:this._mercatorProjection}get name(){return"globe"}get useSubdivision(){return this.currentProjection.useSubdivision}get shaderVariantName(){return this.currentProjection.shaderVariantName}get shaderDefine(){return this.currentProjection.shaderDefine}get shaderPreludeCode(){return this.currentProjection.shaderPreludeCode}get vertexShaderPreludeCode(){return this.currentProjection.vertexShaderPreludeCode}get subdivisionGranularity(){return this.currentProjection.subdivisionGranularity}get useGlobeControls(){return this.transitionState>0}destroy(){this._mercatorProjection.destroy(),this._verticalPerspectiveProjection.destroy()}updateGPUdependent(t){this._mercatorProjection.updateGPUdependent(t),this._verticalPerspectiveProjection.updateGPUdependent(t)}getMeshFromTileID(t,n,s,l,p){return this.currentProjection.getMeshFromTileID(t,n,s,l,p)}setProjection(t){this._transitionable.setValue("type",t?.type||"mercator")}updateTransitions(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(t){this.properties=this._transitioning.possiblyEvaluate(t)}setErrorQueryLatitudeDegrees(t){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(t),this._mercatorProjection.setErrorQueryLatitudeDegrees(t)}}function Us(d){const t=Wa(d.worldSize,d.center.lat);return 2*Math.PI*t}function ai(d,t,n,s,l){const p=1/(1<<l),m=t/c.a5*p+s*p,g=c.bz((d/c.a5*p+n*p)*Math.PI*2+Math.PI,2*Math.PI),x=2*Math.atan(Math.exp(Math.PI-m*Math.PI*2))-.5*Math.PI,w=Math.cos(x),T=new Float64Array(3);return T[0]=Math.sin(g)*w,T[1]=Math.sin(x),T[2]=Math.cos(g)*w,T}function Yt(d){return(function(t,n){const s=Math.cos(n),l=new Float64Array(3);return l[0]=Math.sin(t)*s,l[1]=Math.sin(n),l[2]=Math.cos(t)*s,l})(d.lng*Math.PI/180,d.lat*Math.PI/180)}function Wa(d,t){return d/(2*Math.PI)/Math.cos(t*Math.PI/180)}function $o(d){const t=Math.asin(d[1])/Math.PI*180,n=Math.sqrt(d[0]*d[0]+d[2]*d[2]);if(n>1e-6){const s=d[0]/n,l=Math.acos(d[2]/n),p=(s>0?l:-l)/Math.PI*180;return new c.V(c.W(p,-180,180),t)}return new c.V(0,t)}function Fr(d){return Math.cos(d*Math.PI/180)}function Qt(d,t){const n=Fr(d),s=Fr(t);return c.at(s/n)}function sc(d,t){const n=d.rotate(t.bearingInRadians),s=t.zoom+Qt(t.center.lat,0),l=c.bu(1/Fr(t.center.lat),1/Fr(Math.min(Math.abs(t.center.lat),60)),c.bx(s,7,3,0,1)),p=360/Us({worldSize:t.worldSize,center:{lat:t.center.lat}});return new c.V(t.center.lng-n.x*p*l,c.an(t.center.lat+n.y*p,-c.ao,c.ao))}function Wo(d){const t=.5*d,n=Math.sin(t),s=Math.cos(t);return Math.log(n+s)-Math.log(s-n)}function oc(d,t,n,s){const l=d.lat+n*s;if(Math.abs(n)>1){const p=(Math.sign(d.lat+n)!==Math.sign(d.lat)?-Math.abs(d.lat):Math.abs(d.lat))*Math.PI/180,m=Math.abs(d.lat+n)*Math.PI/180,g=Wo(p+s*(m-p)),x=Wo(p),w=Wo(m);return new c.V(d.lng+t*((g-x)/(w-x)),l)}return new c.V(d.lng+t*s,l)}class Bu{constructor(t){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._boundingVolumeFactory=t}swapBuffers(){if(!this._hadAnyChanges)return;const t=this._cachePrevious;this._cachePrevious=this._cache,this._cache=t,this._cache.clear(),this._hadAnyChanges=!1}getTileBoundingVolume(t,n,s,l){const p=`${t.z}_${t.x}_${t.y}_${l?.terrain?"t":""}`,m=this._cache.get(p);if(m)return m;const g=this._cachePrevious.get(p);if(g)return this._cache.set(p,g),g;const x=this._boundingVolumeFactory(t,n,s,l);return this._cache.set(p,x),this._hadAnyChanges=!0,x}}class da{constructor(t,n,s,l){this.min=s,this.max=l,this.points=t,this.planes=n}static fromAabb(t,n){const s=[];for(let l=0;l<8;l++)s.push([1&~l?t[0]:n[0],(l>>1&1)==1?n[1]:t[1],(l>>2&1)==1?n[2]:t[2]]);return new da(s,[[-1,0,0,n[0]],[1,0,0,-t[0]],[0,-1,0,n[1]],[0,1,0,-t[1]],[0,0,-1,n[2]],[0,0,1,-t[2]]],t,n)}static fromCenterSizeAngles(t,n,s){const l=c.bB([],s[0],s[1],s[2]),p=c.bC([],[n[0],0,0],l),m=c.bC([],[0,n[1],0],l),g=c.bC([],[0,0,n[2]],l),x=[...t],w=[...t];for(let I=0;I<8;I++)for(let M=0;M<3;M++){const z=t[M]+p[M]*(1&~I?-1:1)+m[M]*((I>>1&1)==1?1:-1)+g[M]*((I>>2&1)==1?1:-1);x[M]=Math.min(x[M],z),w[M]=Math.max(w[M],z)}const T=[];for(let I=0;I<8;I++){const M=[...t];c.b0(M,M,c.a$([],p,1&~I?-1:1)),c.b0(M,M,c.a$([],m,(I>>1&1)==1?1:-1)),c.b0(M,M,c.a$([],g,(I>>2&1)==1?1:-1)),T.push(M)}return new da(T,[[...p,-c.b5(p,T[0])],[...m,-c.b5(m,T[0])],[...g,-c.b5(g,T[0])],[-p[0],-p[1],-p[2],-c.b5(p,T[7])],[-m[0],-m[1],-m[2],-c.b5(m,T[7])],[-g[0],-g[1],-g[2],-c.b5(g,T[7])]],x,w)}intersectsFrustum(t){let n=!0;const s=this.points.length,l=this.planes.length,p=t.planes.length,m=t.points.length;for(let g=0;g<p;g++){const x=t.planes[g];let w=0;for(let T=0;T<s;T++){const I=this.points[T];x[0]*I[0]+x[1]*I[1]+x[2]*I[2]+x[3]>=0&&w++}if(w===0)return 0;w<s&&(n=!1)}if(n)return 2;for(let g=0;g<l;g++){const x=this.planes[g];let w=0;for(let T=0;T<m;T++){const I=t.points[T];x[0]*I[0]+x[1]*I[1]+x[2]*I[2]+x[3]>=0&&w++}if(w===0)return 0}return 1}intersectsPlane(t){const n=this.points.length;let s=0;for(let l=0;l<n;l++){const p=this.points[l];t[0]*p[0]+t[1]*p[1]+t[2]*p[2]+t[3]>=0&&s++}return s===n?2:s===0?0:1}}function Ln(d,t,n){const s=d-t;return s<0?-s:Math.max(0,s-n)}function Ha(d,t,n,s,l){const p=d-n;let m;return m=p<0?Math.min(-p,1+p-l):p>1?Math.min(Math.max(p-l,0),1-p):0,Math.max(m,Ln(t,s,l))}class Gs{constructor(){this._boundingVolumeCache=new Bu(this._computeTileBoundingVolume)}prepareNextFrame(){this._boundingVolumeCache.swapBuffers()}distanceToTile2d(t,n,s,l){const p=1<<s.z,m=1/p,g=s.x/p,x=s.y/p;let w=2;return w=Math.min(w,Ha(t,n,g,x,m)),w=Math.min(w,Ha(t,n,g+.5,-x-m,m)),w=Math.min(w,Ha(t,n,g+.5,2-x-m,m)),w}getWrap(t,n,s){const l=1<<n.z,p=1/l,m=n.x/l,g=Ln(t.x,m,p),x=Ln(t.x,m-1,p),w=Ln(t.x,m+1,p),T=Math.min(g,x,w);return T===w?1:T===x?-1:0}allowVariableZoom(t,n){return Lt(t,n)>4}allowWorldCopies(){return!1}getTileBoundingVolume(t,n,s,l){return this._boundingVolumeCache.getTileBoundingVolume(t,n,s,l)}_computeTileBoundingVolume(t,n,s,l){var p,m;let g=0,x=0;if(l?.terrain){const w=new c.a2(t.z,n,t.z,t.x,t.y),T=l.terrain.getMinMaxElevation(w);g=(p=T.minElevation)!==null&&p!==void 0?p:Math.min(0,s),x=(m=T.maxElevation)!==null&&m!==void 0?m:Math.max(0,s)}if(g/=c.bE,x/=c.bE,g+=1,x+=1,t.z<=0)return da.fromAabb([-x,-x,-x],[x,x,x]);if(t.z===1)return da.fromAabb([t.x===0?-x:0,t.y===0?0:-x,-x],[t.x===0?0:x,t.y===0?x:0,x]);{const w=[ai(0,0,t.x,t.y,t.z),ai(c.a5,0,t.x,t.y,t.z),ai(c.a5,c.a5,t.x,t.y,t.z),ai(0,c.a5,t.x,t.y,t.z)],T=[];for(const le of w)T.push(c.a$([],le,x));if(x!==g)for(const le of w)T.push(c.a$([],le,g));t.y===0&&T.push([0,1,0]),t.y===(1<<t.z)-1&&T.push([0,-1,0]);const I=[1,1,1],M=[-1,-1,-1];for(const le of T)for(let he=0;he<3;he++)I[he]=Math.min(I[he],le[he]),M[he]=Math.max(M[he],le[he]);const z=ai(c.a5/2,c.a5/2,t.x,t.y,t.z),L=c.b4([],[0,1,0],z);c.b3(L,L);const j=c.b4([],z,L);c.b3(j,j);const U=c.b4([],w[2],w[1]);c.b3(U,U);const N=c.b4([],w[0],w[3]);c.b3(N,N),T.push(c.a$([],z,x)),t.y>=(1<<t.z)/2&&T.push(c.a$([],ai(c.a5/2,0,t.x,t.y,t.z),x)),t.y<(1<<t.z)/2&&T.push(c.a$([],ai(c.a5/2,c.a5,t.x,t.y,t.z),x));const Z=qs(z,T),X=qs(j,T),q=[-z[0],-z[1],-z[2],Z.max],Y=[z[0],z[1],z[2],-Z.min],Q=[-j[0],-j[1],-j[2],X.max],W=[j[0],j[1],j[2],-X.min],te=[...U,0],de=[...N,0],ue=[];return t.y===0?ue.push(c.bD(de,te,q),c.bD(de,te,Y)):ue.push(c.bD(Q,te,q),c.bD(Q,te,Y),c.bD(Q,de,q),c.bD(Q,de,Y)),t.y===(1<<t.z)-1?ue.push(c.bD(de,te,q),c.bD(de,te,Y)):ue.push(c.bD(W,te,q),c.bD(W,te,Y),c.bD(W,de,q),c.bD(W,de,Y)),new da(ue,[q,Y,Q,W,te,de],I,M)}}}function qs(d,t){let n=1/0,s=-1/0;for(const l of t){const p=c.b5(d,l);n=Math.min(n,p),s=Math.max(s,p)}return{min:n,max:s}}class pa{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,n,s){return this._helper.interpolatePadding(t,n,s)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,n){this._helper.resize(t,n)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}setConstrainOverride(t){this._helper.setConstrainOverride(t)}overrideNearFarZ(t,n){this._helper.overrideNearFarZ(t,n)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(t){}constructor(t){this._cachedClippingPlane=c.bF(),this._projectionMatrix=c.bj(),this._globeViewProjMatrix32f=c.bi(),this._globeViewProjMatrixNoCorrection=c.bj(),this._globeViewProjMatrixNoCorrectionInverted=c.bj(),this._globeProjMatrixInverted=c.bj(),this._cameraPosition=c.bA(),this._globeLatitudeErrorCorrectionRadians=0,this.defaultConstrain=(n,s)=>{const l=c.an(n.lat,-c.ao,c.ao),p=c.an(+s,this.minZoom+Qt(0,l),this.maxZoom);return{center:new c.V(n.lng,l),zoom:p}},this.applyConstrain=(n,s)=>this._helper.applyConstrain(n,s),this._helper=new Lr({calcMatrices:()=>{this._calcMatrices()},defaultConstrain:(n,s)=>this.defaultConstrain(n,s)},t),this._coveringTilesDetailsProvider=new Gs}clone(){const t=new pa;return t.apply(this,!1),t}apply(t,n,s){this._globeLatitudeErrorCorrectionRadians=s||0,this._helper.apply(t,n)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const t=c.bA();return t[0]=this._cameraPosition[0],t[1]=this._cameraPosition[1],t[2]=this._cameraPosition[2],t}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(t){const{overscaledTileID:n,applyGlobeMatrix:s}=t,l=this._helper.getMercatorTileCoordinates(n);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:l,clippingPlane:this._cachedClippingPlane,projectionTransition:s?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(t){const n=this.pitchInRadians,s=this.cameraToCenterDistance/t,l=Math.sin(n)*s,p=Math.cos(n)*s+1,m=1/Math.sqrt(l*l+p*p)*1;let g=-l,x=p;const w=Math.sqrt(g*g+x*x);g/=w,x/=w;const T=[0,g,x];c.bG(T,T,[0,0,0],-this.bearingInRadians),c.bH(T,T,[0,0,0],-1*this.center.lat*Math.PI/180),c.bI(T,T,[0,0,0],this.center.lng*Math.PI/180);const I=1/c.b7(T);return c.a$(T,T,I),[...T,-m*I]}isLocationOccluded(t){return!this.isSurfacePointVisible(Yt(t))}transformLightDirection(t){const n=this._helper._center.lng*Math.PI/180,s=this._helper._center.lat*Math.PI/180,l=Math.cos(s),p=[Math.sin(n)*l,Math.sin(s),Math.cos(n)*l],m=[p[2],0,-p[0]],g=[0,0,0];c.b4(g,m,p),c.b3(m,m),c.b3(g,g);const x=[0,0,0];return c.b3(x,[m[0]*t[0]+g[0]*t[1]+p[0]*t[2],m[1]*t[0]+g[1]*t[1]+p[1]*t[2],m[2]*t[0]+g[2]*t[1]+p[2]*t[2]]),x}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(t,n,s){const l=(function(g,x,w){const T=1/(1<<w.z);return new c.a9(g/c.a5*T+w.x*T,x/c.a5*T+w.y*T)})(t,n,s.canonical),p=(m=l.y,[c.bz(l.x*Math.PI*2+Math.PI,2*Math.PI),2*Math.atan(Math.exp(Math.PI-m*Math.PI*2))-.5*Math.PI]);var m;return this.getCircleRadiusCorrection()/Math.cos(p[1])}projectTileCoordinates(t,n,s,l){const p=s.canonical,m=ai(t,n,p.x,p.y,p.z),g=1+(l?l(t,n):0)/c.bE,x=[m[0]*g,m[1]*g,m[2]*g,1];c.aH(x,x,this._globeViewProjMatrixNoCorrection);const w=this._cachedClippingPlane,T=w[0]*m[0]+w[1]*m[1]+w[2]*m[2]+w[3]<0;return{point:new c.P(x[0]/x[3],x[1]/x[3]),signedDistanceFromCamera:x[3],isOccluded:T}}_calcMatrices(){if(!this._helper._width||!this._helper._height)return;const t=Wa(this.worldSize,this.center.lat),n=c.bk(),s=c.bk();this._helper.autoCalculateNearFarZ&&(this._helper._nearZ=.5,this._helper._farZ=this.cameraToCenterDistance+2*t),c.be(n,this.fovInRadians,this.width/this.height,this._helper._nearZ,this._helper._farZ);const l=this.centerOffset;n[8]=2*-l.x/this._helper._width,n[9]=2*l.y/this._helper._height,this._projectionMatrix=c.bf(n),this._globeProjMatrixInverted=c.bk(),c.aB(this._globeProjMatrixInverted,n),c.O(n,n,[0,0,-this.cameraToCenterDistance]),c.bg(n,n,this.rollInRadians),c.bh(n,n,-this.pitchInRadians),c.bg(n,n,this.bearingInRadians),c.O(n,n,[0,0,-t]);const p=c.bA();p[0]=t,p[1]=t,p[2]=t,c.bh(s,n,this.center.lat*Math.PI/180),c.bJ(s,s,-this.center.lng*Math.PI/180),c.Q(s,s,p),this._globeViewProjMatrixNoCorrection=s,c.bh(n,n,this.center.lat*Math.PI/180-this._globeLatitudeErrorCorrectionRadians),c.bJ(n,n,-this.center.lng*Math.PI/180),c.Q(n,n,p),this._globeViewProjMatrix32f=new Float32Array(n),this._globeViewProjMatrixNoCorrectionInverted=c.bk(),c.aB(this._globeViewProjMatrixNoCorrectionInverted,s);const m=c.bA();this._cameraPosition=c.bA(),this._cameraPosition[2]=this.cameraToCenterDistance/t,c.bG(this._cameraPosition,this._cameraPosition,m,-this.rollInRadians),c.bH(this._cameraPosition,this._cameraPosition,m,this.pitchInRadians),c.bG(this._cameraPosition,this._cameraPosition,m,-this.bearingInRadians),c.b0(this._cameraPosition,this._cameraPosition,[0,0,1]),c.bH(this._cameraPosition,this._cameraPosition,m,-this.center.lat*Math.PI/180),c.bI(this._cameraPosition,this._cameraPosition,m,this.center.lng*Math.PI/180),this._cachedClippingPlane=this._computeClippingPlane(t);const g=c.bf(this._globeViewProjMatrixNoCorrectionInverted);c.Q(g,g,[1,1,-1]),this._cachedFrustum=Ga.fromInvProjectionMatrix(g,1,0,this._cachedClippingPlane,!0)}calculateFogMatrix(t){c.w("calculateFogMatrix is not supported on globe projection.");const n=c.bk();return c.ar(n),n}getVisibleUnwrappedCoordinates(t){return[new c.bc(0,t)]}getCameraFrustum(){return this._cachedFrustum}getClippingPlane(){return this._cachedClippingPlane}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(t){t&&c.w("terrain is not fully supported on vertical perspective projection."),this._helper.recalculateZoomAndCenter(0)}maxPitchScaleFactor(){return 1}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(t,n){if(!this._globeViewProjMatrixNoCorrection)return 1;const s=Yt(t);c.a$(s,s,1+n/c.bE);const l=c.bF();return c.aH(l,[s[0],s[1],s[2],1],this._globeViewProjMatrixNoCorrection),l[2]/l[3]}populateCache(t){}getBounds(){const t=.5*this.width,n=.5*this.height,s=[new c.P(0,0),new c.P(t,0),new c.P(this.width,0),new c.P(this.width,n),new c.P(this.width,this.height),new c.P(t,this.height),new c.P(0,this.height),new c.P(0,n)],l=[];for(const I of s)l.push(this.unprojectScreenPoint(I));let p=0,m=0,g=0,x=0;const w=this.center;for(const I of l){const M=c.bK(w.lng,I.lng),z=c.bK(w.lat,I.lat);M<m&&(m=M),M>p&&(p=M),z<x&&(x=z),z>g&&(g=z)}const T=[w.lng+m,w.lat+x,w.lng+p,w.lat+g];return this.isSurfacePointOnScreen([0,1,0])&&(T[3]=90,T[0]=-180,T[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(T[1]=-90,T[0]=-180,T[2]=180),new vt(T)}calculateCenterFromCameraLngLatAlt(t,n,s,l){return this._helper.calculateCenterFromCameraLngLatAlt(t,n,s,l)}setLocationAtPoint(t,n){const s=Yt(this.unprojectScreenPoint(n)),l=Yt(t),p=c.bA();c.bL(p);const m=c.bA();c.bI(m,s,p,-this.center.lng*Math.PI/180),c.bH(m,m,p,this.center.lat*Math.PI/180);const g=l[0]*l[0]+l[2]*l[2],x=m[0]*m[0];if(g<x)return;const w=Math.sqrt(g-x),T=-w,I=c.bM(l[0],l[2],m[0],w),M=c.bM(l[0],l[2],m[0],T),z=c.bA();c.bI(z,l,p,-I);const L=c.bM(z[1],z[2],m[1],m[2]),j=c.bA();c.bI(j,l,p,-M);const U=c.bM(j[1],j[2],m[1],m[2]),N=.5*Math.PI,Z=L>=-N&&L<=N,X=U>=-N&&U<=N;let q,Y;if(Z&&X){const de=this.center.lng*Math.PI/180,ue=this.center.lat*Math.PI/180;c.bN(I,de)+c.bN(L,ue)<c.bN(M,de)+c.bN(U,ue)?(q=I,Y=L):(q=M,Y=U)}else if(Z)q=I,Y=L;else{if(!X)return;q=M,Y=U}const Q=q/Math.PI*180,W=Y/Math.PI*180,te=this.center.lat;this.setCenter(new c.V(Q,c.an(W,-90,90))),this.setZoom(this.zoom+Qt(te,this.center.lat))}locationToScreenPoint(t,n){const s=Yt(t);if(n){const l=n.getElevationForLngLatZoom(t,this._helper._tileZoom);c.a$(s,s,1+l/c.bE)}return this._projectSurfacePointToScreen(s)}_projectSurfacePointToScreen(t){const n=c.bF();return c.aH(n,[...t,1],this._globeViewProjMatrixNoCorrection),n[0]/=n[3],n[1]/=n[3],new c.P((.5*n[0]+.5)*this.width,(.5*-n[1]+.5)*this.height)}screenPointToMercatorCoordinate(t,n){if(n){const s=n.pointCoordinate(t);if(s)return s}return c.a9.fromLngLat(this.unprojectScreenPoint(t))}screenPointToLocation(t,n){var s;return(s=this.screenPointToMercatorCoordinate(t,n))===null||s===void 0?void 0:s.toLngLat()}isPointOnMapSurface(t,n){const s=this._cameraPosition,l=this.getRayDirectionFromPixel(t);return!!this.rayPlanetIntersection(s,l)}getRayDirectionFromPixel(t){const n=c.bF();n[0]=t.x/this.width*2-1,n[1]=-1*(t.y/this.height*2-1),n[2]=1,n[3]=1,c.aH(n,n,this._globeViewProjMatrixNoCorrectionInverted),n[0]/=n[3],n[1]/=n[3],n[2]/=n[3];const s=c.bA();s[0]=n[0]-this._cameraPosition[0],s[1]=n[1]-this._cameraPosition[1],s[2]=n[2]-this._cameraPosition[2];const l=c.bA();return c.b3(l,s),l}isSurfacePointVisible(t){const n=this._cachedClippingPlane;return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]>=0}isSurfacePointOnScreen(t){if(!this.isSurfacePointVisible(t))return!1;const n=c.bF();return c.aH(n,[...t,1],this._globeViewProjMatrixNoCorrection),n[0]/=n[3],n[1]/=n[3],n[2]/=n[3],n[0]>-1&&n[0]<1&&n[1]>-1&&n[1]<1&&n[2]>-1&&n[2]<1}rayPlanetIntersection(t,n){const s=c.b5(t,n),l=c.bA(),p=c.bA();c.a$(p,n,s),c.b2(l,t,p);const m=1-c.b5(l,l);if(m<0)return null;const g=c.b5(t,t)-1,x=-s+(s<0?1:-1)*Math.sqrt(m),w=g/x,T=x;return{tMin:Math.min(w,T),tMax:Math.max(w,T)}}unprojectScreenPoint(t){const n=this._cameraPosition,s=this.getRayDirectionFromPixel(t),l=this.rayPlanetIntersection(n,s);if(l){const T=c.bA();c.b0(T,n,[s[0]*l.tMin,s[1]*l.tMin,s[2]*l.tMin]);const I=c.bA();return c.b3(I,T),$o(I)}const p=this._cachedClippingPlane,m=p[0]*s[0]+p[1]*s[1]+p[2]*s[2],g=-c.bb(p,n)/m,x=c.bA();if(g>0)c.b0(x,n,[s[0]*g,s[1]*g,s[2]*g]);else{const T=c.bA();c.b0(T,n,[2*s[0],2*s[1],2*s[2]]);const I=c.bb(this._cachedClippingPlane,T);c.b2(x,T,[this._cachedClippingPlane[0]*I,this._cachedClippingPlane[1]*I,this._cachedClippingPlane[2]*I])}const w=(function(T){const I=c.bA();return I[0]=T[0]*-T[3],I[1]=T[1]*-T[3],I[2]=T[2]*-T[3],{center:I,radius:Math.sqrt(1-T[3]*T[3])}})(p);return $o((function(T,I,M){const z=c.bA();c.b2(z,M,T);const L=c.bA();return c.by(L,T,z,I/c.b9(z)),L})(w.center,w.radius,x))}getMatrixForModel(t,n){const s=c.V.convert(t),l=1/c.bE,p=c.bj();return c.bJ(p,p,s.lng/180*Math.PI),c.bh(p,p,-s.lat/180*Math.PI),c.O(p,p,[0,0,1+n/c.bE]),c.bh(p,p,.5*Math.PI),c.Q(p,p,[l,l,l]),p}getProjectionDataForCustomLayer(t=!0){const n=this.getProjectionData({overscaledTileID:new c.a2(0,0,0,0,0),applyGlobeMatrix:t});return n.tileMercatorCoords=[0,0,1,1],n}getFastPathSimpleProjectionMatrix(t){}}class ji{get pixelsToClipSpaceMatrix(){return this._helper.pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._helper.clipSpaceToPixelsMatrix}get pixelsToGLUnits(){return this._helper.pixelsToGLUnits}get centerOffset(){return this._helper.centerOffset}get size(){return this._helper.size}get rotationMatrix(){return this._helper.rotationMatrix}get centerPoint(){return this._helper.centerPoint}get pixelsPerMeter(){return this._helper.pixelsPerMeter}setMinZoom(t){this._helper.setMinZoom(t)}setMaxZoom(t){this._helper.setMaxZoom(t)}setMinPitch(t){this._helper.setMinPitch(t)}setMaxPitch(t){this._helper.setMaxPitch(t)}setRenderWorldCopies(t){this._helper.setRenderWorldCopies(t)}setBearing(t){this._helper.setBearing(t)}setPitch(t){this._helper.setPitch(t)}setRoll(t){this._helper.setRoll(t)}setFov(t){this._helper.setFov(t)}setZoom(t){this._helper.setZoom(t)}setCenter(t){this._helper.setCenter(t)}setElevation(t){this._helper.setElevation(t)}setMinElevationForCurrentTile(t){this._helper.setMinElevationForCurrentTile(t)}setPadding(t){this._helper.setPadding(t)}interpolatePadding(t,n,s){return this._helper.interpolatePadding(t,n,s)}isPaddingEqual(t){return this._helper.isPaddingEqual(t)}resize(t,n,s=!0){this._helper.resize(t,n,s)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(t){this._helper.setMaxBounds(t)}setConstrainOverride(t){this._helper.setConstrainOverride(t)}overrideNearFarZ(t,n){this._helper.overrideNearFarZ(t,n)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(t){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),t)}get tileSize(){return this._helper.tileSize}get tileZoom(){return this._helper.tileZoom}get scale(){return this._helper.scale}get worldSize(){return this._helper.worldSize}get width(){return this._helper.width}get height(){return this._helper.height}get lngRange(){return this._helper.lngRange}get latRange(){return this._helper.latRange}get minZoom(){return this._helper.minZoom}get maxZoom(){return this._helper.maxZoom}get zoom(){return this._helper.zoom}get center(){return this._helper.center}get minPitch(){return this._helper.minPitch}get maxPitch(){return this._helper.maxPitch}get pitch(){return this._helper.pitch}get pitchInRadians(){return this._helper.pitchInRadians}get roll(){return this._helper.roll}get rollInRadians(){return this._helper.rollInRadians}get bearing(){return this._helper.bearing}get bearingInRadians(){return this._helper.bearingInRadians}get fov(){return this._helper.fov}get fovInRadians(){return this._helper.fovInRadians}get elevation(){return this._helper.elevation}get minElevationForCurrentTile(){return this._helper.minElevationForCurrentTile}get padding(){return this._helper.padding}get unmodified(){return this._helper.unmodified}get renderWorldCopies(){return this._helper.renderWorldCopies}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}get constrainOverride(){return this._helper.constrainOverride}get nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(t,n){this._globeness=t,this._globeLatitudeErrorCorrectionRadians=n,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().prepareNextFrame(),this._mercatorTransform.getCoveringTilesDetailsProvider().prepareNextFrame()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(t){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this.defaultConstrain=(n,s)=>this.currentTransform.defaultConstrain(n,s),this.applyConstrain=(n,s)=>this._helper.applyConstrain(n,s),this._helper=new Lr({calcMatrices:()=>{this._calcMatrices()},defaultConstrain:(n,s)=>this.defaultConstrain(n,s)},t),this._globeness=1,this._mercatorTransform=new Vi,this._verticalPerspectiveTransform=new pa}clone(){const t=new ji;return t._globeness=this._globeness,t._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,t.apply(this,!1),t}apply(t,n){this._helper.apply(t,n),this._mercatorTransform.apply(this,!1),this._verticalPerspectiveTransform.apply(this,!1,this._globeLatitudeErrorCorrectionRadians)}get projectionMatrix(){return this.currentTransform.projectionMatrix}get modelViewProjectionMatrix(){return this.currentTransform.modelViewProjectionMatrix}get inverseProjectionMatrix(){return this.currentTransform.inverseProjectionMatrix}get cameraPosition(){return this.currentTransform.cameraPosition}getProjectionData(t){const n=this._mercatorTransform.getProjectionData(t),s=this._verticalPerspectiveTransform.getProjectionData(t);return{mainMatrix:this.isGlobeRendering?s.mainMatrix:n.mainMatrix,clippingPlane:s.clippingPlane,tileMercatorCoords:s.tileMercatorCoords,projectionTransition:t.applyGlobeMatrix?this._globeness:0,fallbackMatrix:n.fallbackMatrix}}isLocationOccluded(t){return this.currentTransform.isLocationOccluded(t)}transformLightDirection(t){return this.currentTransform.transformLightDirection(t)}getPixelScale(){return c.bu(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return c.bu(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(t,n,s){const l=this._mercatorTransform.getPitchedTextCorrection(t,n,s),p=this._verticalPerspectiveTransform.getPitchedTextCorrection(t,n,s);return c.bu(l,p,this._globeness)}projectTileCoordinates(t,n,s,l){return this.currentTransform.projectTileCoordinates(t,n,s,l)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,!1,this._globeLatitudeErrorCorrectionRadians),this._helper._nearZ=this._verticalPerspectiveTransform.nearZ,this._helper._farZ=this._verticalPerspectiveTransform.farZ,this._mercatorTransform.apply(this,!0,this.isGlobeRendering),this._helper._nearZ=this._mercatorTransform.nearZ,this._helper._farZ=this._mercatorTransform.farZ)}calculateFogMatrix(t){return this.currentTransform.calculateFogMatrix(t)}getVisibleUnwrappedCoordinates(t){return this.currentTransform.getVisibleUnwrappedCoordinates(t)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(t){this._mercatorTransform.recalculateZoomAndCenter(t),this._verticalPerspectiveTransform.recalculateZoomAndCenter(t)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(t,n){return this.currentTransform.lngLatToCameraDepth(t,n)}populateCache(t){this._mercatorTransform.populateCache(t),this._verticalPerspectiveTransform.populateCache(t)}getBounds(){return this.currentTransform.getBounds()}calculateCenterFromCameraLngLatAlt(t,n,s,l){return this._helper.calculateCenterFromCameraLngLatAlt(t,n,s,l)}setLocationAtPoint(t,n){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(t,n),void this.apply(this._mercatorTransform,!1);this._verticalPerspectiveTransform.setLocationAtPoint(t,n),this.apply(this._verticalPerspectiveTransform,!1)}locationToScreenPoint(t,n){return this.currentTransform.locationToScreenPoint(t,n)}screenPointToMercatorCoordinate(t,n){return this.currentTransform.screenPointToMercatorCoordinate(t,n)}screenPointToLocation(t,n){return this.currentTransform.screenPointToLocation(t,n)}isPointOnMapSurface(t,n){return this.currentTransform.isPointOnMapSurface(t,n)}getRayDirectionFromPixel(t){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(t)}getMatrixForModel(t,n){return this.currentTransform.getMatrixForModel(t,n)}getProjectionDataForCustomLayer(t=!0){const n=this._mercatorTransform.getProjectionDataForCustomLayer(t);if(!this.isGlobeRendering)return n;const s=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(t);return s.fallbackMatrix=n.mainMatrix,s}getFastPathSimpleProjectionMatrix(t){return this.currentTransform.getFastPathSimpleProjectionMatrix(t)}}class ur{get useGlobeControls(){return!0}handlePanInertia(t,n){const s=sc(t,n);return Math.abs(s.lng-n.center.lng)>180&&(s.lng=n.center.lng+179.5*Math.sign(s.lng-n.center.lng)),{easingCenter:s,easingOffset:new c.P(0,0)}}handleMapControlsRollPitchBearingZoom(t,n){const s=t.around,l=n.screenPointToLocation(s);t.bearingDelta&&n.setBearing(n.bearing+t.bearingDelta),t.pitchDelta&&n.setPitch(n.pitch+t.pitchDelta),t.rollDelta&&n.setRoll(n.roll+t.rollDelta);const p=n.zoom;t.zoomDelta&&n.setZoom(n.zoom+t.zoomDelta);const m=n.zoom-p;if(m===0)return;const g=c.bK(n.center.lng,l.lng),x=g/(Math.abs(g/180)+1),w=c.bK(n.center.lat,l.lat),T=n.getRayDirectionFromPixel(s),I=n.cameraPosition,M=-1*c.b5(I,T),z=c.bA();c.b0(z,I,[T[0]*M,T[1]*M,T[2]*M]);const L=c.b7(z)-1,j=Math.exp(.5*-Math.max(L-.3,0)),U=Wa(n.worldSize,n.center.lat)/Math.min(n.width,n.height),N=c.bx(U,.9,.5,1,.25),Z=(1-c.aq(-m))*Math.min(j,N),X=n.center.lat,q=n.zoom,Y=new c.V(n.center.lng+x*Z,c.an(n.center.lat+w*Z,-c.ao,c.ao));n.setLocationAtPoint(l,s);const Q=n.center,W=c.bx(Math.abs(g),45,85,0,1),te=c.bx(U,.75,.35,0,1),de=Math.pow(Math.max(W,te),.25),ue=c.bK(Q.lng,Y.lng),le=c.bK(Q.lat,Y.lat);n.setCenter(new c.V(Q.lng+ue*de,Q.lat+le*de).wrap()),n.setZoom(q+Qt(X,n.center.lat))}handleMapControlsPan(t,n,s){if(!t.panDelta)return;const l=n.center.lat,p=n.zoom;n.setCenter(sc(t.panDelta,n).wrap()),n.setZoom(p+Qt(l,n.center.lat))}cameraForBoxAndBearing(t,n,s,l,p){const m=qa(t,n,s,l,p),g=n.left/p.width*2-1,x=(p.width-n.right)/p.width*2-1,w=n.top/p.height*-2+1,T=(p.height-n.bottom)/p.height*-2+1,I=c.bK(s.getWest(),s.getEast())<0,M=I?s.getEast():s.getWest(),z=I?s.getWest():s.getEast(),L=Math.max(s.getNorth(),s.getSouth()),j=Math.min(s.getNorth(),s.getSouth()),U=M+.5*c.bK(M,z),N=L+.5*c.bK(L,j),Z=p.clone();Z.setCenter(m.center),Z.setBearing(m.bearing),Z.setPitch(0),Z.setRoll(0),Z.setZoom(m.zoom);const X=Z.modelViewProjectionMatrix,q=[Yt(s.getNorthWest()),Yt(s.getNorthEast()),Yt(s.getSouthWest()),Yt(s.getSouthEast()),Yt(new c.V(z,N)),Yt(new c.V(M,N)),Yt(new c.V(U,L)),Yt(new c.V(U,j))],Y=Yt(m.center);let Q=Number.POSITIVE_INFINITY;for(const W of q)g<0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"x",g))),x>0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"x",x))),w>0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"y",w))),T<0&&(Q=ur.getLesserNonNegativeNonNull(Q,ur.solveVectorScale(W,Y,X,"y",T)));if(Number.isFinite(Q)&&Q!==0)return m.zoom=Z.zoom+c.at(Q),m;nc()}handleJumpToCenterZoom(t,n){const s=t.center.lat,l=t.applyConstrain(n.center?c.V.convert(n.center):t.center,t.zoom).center;t.setCenter(l.wrap());const p=n.zoom!==void 0?+n.zoom:t.zoom+Qt(s,l.lat);t.zoom!==p&&t.setZoom(p)}handleEaseTo(t,n){const s=t.zoom,l=t.center,p=t.padding,m={roll:t.roll,pitch:t.pitch,bearing:t.bearing},g={roll:n.roll===void 0?t.roll:n.roll,pitch:n.pitch===void 0?t.pitch:n.pitch,bearing:n.bearing===void 0?t.bearing:n.bearing},x=n.zoom!==void 0,w=!t.isPaddingEqual(n.padding);let T=!1;const I=n.center?c.V.convert(n.center):l,M=t.applyConstrain(I,s).center;Mt(t,M);const z=t.clone();z.setCenter(M),z.setZoom(x?+n.zoom:s+Qt(l.lat,I.lat)),z.setBearing(n.bearing);const L=new c.P(c.an(t.centerPoint.x+n.offsetAsPoint.x,0,t.width),c.an(t.centerPoint.y+n.offsetAsPoint.y,0,t.height));z.setLocationAtPoint(M,L);const j=(n.offset&&n.offsetAsPoint.mag())>0?z.center:M,U=x?+n.zoom:s+Qt(l.lat,j.lat),N=s+Qt(l.lat,0),Z=U+Qt(j.lat,0),X=c.bK(l.lng,j.lng),q=c.bK(l.lat,j.lat),Y=c.aq(Z-N);return T=U!==s,{easeFunc:Q=>{if(c.bo(m,g)||Zo({startEulerAngles:m,endEulerAngles:g,tr:t,k:Q,useSlerp:m.roll!=g.roll}),w&&t.interpolatePadding(p,n.padding,Q),n.around)c.w("Easing around a point is not supported under globe projection."),t.setLocationAtPoint(n.around,n.aroundPoint);else{const W=Z>N?Math.min(2,Y):Math.max(.5,Y),te=Math.pow(W,1-Q),de=oc(l,X,q,Q*te);t.setCenter(de.wrap())}if(T){const W=c.G.number(N,Z,Q)+Qt(0,t.center.lat);t.setZoom(W)}},isZooming:T,elevationCenter:j}}handleFlyTo(t,n){const s=n.zoom!==void 0,l=t.center,p=t.zoom,m=t.padding,g=!t.isPaddingEqual(n.padding),x=t.applyConstrain(c.V.convert(n.center||n.locationAtOffset),p).center,w=s?+n.zoom:t.zoom+Qt(t.center.lat,x.lat),T=t.clone();T.setCenter(x),T.setZoom(w),T.setBearing(n.bearing);const I=new c.P(c.an(t.centerPoint.x+n.offsetAsPoint.x,0,t.width),c.an(t.centerPoint.y+n.offsetAsPoint.y,0,t.height));T.setLocationAtPoint(x,I);const M=T.center;Mt(t,M);const z=(function(q,Y,Q){const W=Yt(Y),te=Yt(Q),de=c.b5(W,te),ue=Math.acos(de),le=Us(q);return ue/(2*Math.PI)*le})(t,l,M),L=p+Qt(l.lat,0),j=w+Qt(M.lat,0),U=c.aq(j-L);let N;if(typeof n.minZoom=="number"){const q=+n.minZoom+Qt(M.lat,0),Y=Math.min(q,L,j)+Qt(0,M.lat),Q=t.applyConstrain(M,Y).zoom+Qt(M.lat,0);N=c.aq(Q-L)}const Z=c.bK(l.lng,M.lng),X=c.bK(l.lat,M.lat);return{easeFunc:(q,Y,Q,W)=>{const te=oc(l,Z,X,Q);g&&t.interpolatePadding(m,n.padding,q);const de=q===1?M:te;t.setCenter(de.wrap());const ue=L+c.at(Y);t.setZoom(q===1?w:ue+Qt(0,de.lat))},scaleOfZoom:U,targetCenter:M,scaleOfMinZoom:N,pixelPathLength:z}}static solveVectorScale(t,n,s,l,p){const m=l==="x"?[s[0],s[4],s[8],s[12]]:[s[1],s[5],s[9],s[13]],g=[s[3],s[7],s[11],s[15]],x=t[0]*m[0]+t[1]*m[1]+t[2]*m[2],w=t[0]*g[0]+t[1]*g[1]+t[2]*g[2],T=n[0]*m[0]+n[1]*m[1]+n[2]*m[2],I=n[0]*g[0]+n[1]*g[1]+n[2]*g[2];return T+p*w===x+p*I||g[3]*(x-T)+m[3]*(I-w)+x*I==T*w?null:(T+m[3]-p*I-p*g[3])/(T-x-p*I+p*w)}static getLesserNonNegativeNonNull(t,n){return n!==null&&n>=0&&n<t?n:t}}class Zs{constructor(t){this._globe=t,this._mercatorCameraHelper=new kn,this._verticalPerspectiveCameraHelper=new ur}get useGlobeControls(){return this._globe.useGlobeRendering}get currentHelper(){return this.useGlobeControls?this._verticalPerspectiveCameraHelper:this._mercatorCameraHelper}handlePanInertia(t,n){return this.currentHelper.handlePanInertia(t,n)}handleMapControlsRollPitchBearingZoom(t,n){return this.currentHelper.handleMapControlsRollPitchBearingZoom(t,n)}handleMapControlsPan(t,n,s){this.currentHelper.handleMapControlsPan(t,n,s)}cameraForBoxAndBearing(t,n,s,l,p){return this.currentHelper.cameraForBoxAndBearing(t,n,s,l,p)}handleJumpToCenterZoom(t,n){this.currentHelper.handleJumpToCenterZoom(t,n)}handleEaseTo(t,n){return this.currentHelper.handleEaseTo(t,n)}handleFlyTo(t,n){return this.currentHelper.handleFlyTo(t,n)}}const un=(d,t)=>c.B(d,t&&t.filter((n=>n.identifier!=="source.canvas"))),Xa=c.bO();class Ho extends c.E{constructor(t,n={}){var s,l;super(),this._rtlPluginLoaded=()=>{for(const m in this.tileManagers){const g=this.tileManagers[m].getSource().type;g!=="vector"&&g!=="geojson"||this.tileManagers[m].reload()}},this.map=t,this.dispatcher=new wn(Qn(),t._getMapId()),this.dispatcher.registerMessageHandler("GG",((m,g)=>this.getGlyphs(m,g))),this.dispatcher.registerMessageHandler("GI",((m,g)=>this.getImages(m,g))),this.dispatcher.registerMessageHandler("GDA",((m,g)=>this.getDashes(m,g))),this.imageManager=new en,this.imageManager.setEventedParent(this);const p=((s=t._container)===null||s===void 0?void 0:s.lang)||typeof document<"u"&&((l=document.documentElement)===null||l===void 0?void 0:l.lang)||void 0;this.glyphManager=new Er(t._requestManager,n.localIdeographFontFamily,p),this.lineAtlas=new Jn(256,512),this.crossTileSymbolIndex=new pi,this._setInitialValues(),this._resetUpdates(),this.dispatcher.broadcast("SR",c.bP()),F().on(ie,this._rtlPluginLoaded),this.on("data",(m=>{if(m.dataType!=="source"||m.sourceDataType!=="metadata")return;const g=this.tileManagers[m.sourceId];if(!g)return;const x=g.getSource();if(x&&x.vectorLayerIds)for(const w in this._layers){const T=this._layers[w];T.source===x.id&&this._validateLayer(T)}}))}_setInitialValues(){var t;this._spritesImagesIds={},this._layers={},this._order=[],this.tileManagers={},this.zoomHistory=new c.bQ,this._availableImages=[],this._globalState={},this._serializedLayers={},this.stylesheet=null,this.light=null,this.sky=null,this.projection&&(this.projection.destroy(),delete this.projection),this._loaded=!1,this._changed=!1,this._updatedLayers={},this._updatedSources={},this._changedImages={},this._glyphsDidChange=!1,this._updatedPaintProps={},this._layerOrderChanged=!1,this.crossTileSymbolIndex=new(((t=this.crossTileSymbolIndex)===null||t===void 0?void 0:t.constructor)||Object),this.pauseablePlacement=void 0,this.placement=void 0,this.z=0}setGlobalStateProperty(t,n){var s,l,p;this._checkLoaded();const m=n===null?(p=(l=(s=this.stylesheet.state)===null||s===void 0?void 0:s[t])===null||l===void 0?void 0:l.default)!==null&&p!==void 0?p:null:n;if(c.bR(m,this._globalState[t]))return this;this._globalState[t]=m,this._applyGlobalStateChanges([t])}getGlobalState(){return this._globalState}setGlobalState(t){this._checkLoaded();const n=[];for(const s in t)!c.bR(this._globalState[s],t[s].default)&&(n.push(s),this._globalState[s]=t[s].default);this._applyGlobalStateChanges(n)}_applyGlobalStateChanges(t){if(t.length===0)return;const n=new Set,s={};for(const l of t){s[l]=this._globalState[l];for(const p in this._layers){const m=this._layers[p],g=m.getLayoutAffectingGlobalStateRefs(),x=m.getPaintAffectingGlobalStateRefs(),w=m.getVisibilityAffectingGlobalStateRefs();if(g.has(l)&&n.add(m.source),x.has(l))for(const{name:T,value:I}of x.get(l))this._updatePaintProperty(m,T,I);w?.has(l)&&(m.recalculateVisibility(),this._updateLayer(m))}}this.dispatcher.broadcast("UGS",s);for(const l in this.tileManagers)n.has(l)&&(this._reloadSource(l),this._changed=!0)}loadURL(t,n={},s){this.fire(new c.l("dataloading",{dataType:"style"})),n.validate=typeof n.validate!="boolean"||n.validate;const l=this.map._requestManager.transformRequest(t,"Style");this._loadStyleRequest=new AbortController;const p=this._loadStyleRequest;c.j(l,this._loadStyleRequest).then((m=>{this._loadStyleRequest=null,this._load(m.data,n,s)})).catch((m=>{this._loadStyleRequest=null,m&&!p.signal.aborted&&this.fire(new c.k(m))}))}loadJSON(t,n={},s){this.fire(new c.l("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,Zt.frameAsync(this._frameRequest,this.map._ownerWindow).then((()=>{this._frameRequest=null,n.validate=n.validate!==!1,this._load(t,n,s)})).catch((()=>{}))}loadEmpty(){this.fire(new c.l("dataloading",{dataType:"style"})),this._load(Xa,{validate:!1})}_load(t,n,s){var l,p;let m=n.transformStyle?n.transformStyle(s,t):t;if(!n.validate||!un(this,c.C(m))){m=Object.assign({},m),this._loaded=!0,this.stylesheet=m;for(const g in m.sources)this.addSource(g,m.sources[g],{validate:!1});m.sprite?this._loadSprite(m.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(m.glyphs),this._createLayers(),this.light=new bn(this.stylesheet.light),this._setProjectionInternal(((l=this.stylesheet.projection)===null||l===void 0?void 0:l.type)||"mercator"),this.sky=new La(this.stylesheet.sky),this.map.setTerrain((p=this.stylesheet.terrain)!==null&&p!==void 0?p:null),this.fire(new c.l("data",{dataType:"style"})),this.fire(new c.l("style.load"))}}_createLayers(){var t,n,s;const l=c.bS(this.stylesheet.layers);this.setGlobalState((t=this.stylesheet.state)!==null&&t!==void 0?t:null),this.dispatcher.broadcast("SL",l),this._order=l.map((p=>p.id)),this._layers={},this._serializedLayers=null;for(const p of l){const m=c.bT(p,this._globalState);if(m.setEventedParent(this,{layer:{id:p.id}}),this._layers[p.id]=m,c.bU(m)&&this.tileManagers[m.source]){const g=(s=(n=p.paint)===null||n===void 0?void 0:n["raster-fade-duration"])!==null&&s!==void 0?s:m.paint.get("raster-fade-duration");this.tileManagers[m.source].setRasterFadeDuration(g)}}}_loadSprite(t,n=!1,s=void 0){this.imageManager.setLoaded(!1);const l=new AbortController;let p;this._spriteRequest=l,(function(m,g,x,w){return c._(this,void 0,void 0,(function*(){const T=gr(m),I=x>1?"@2x":"",M={},z={};for(const{id:L,url:j}of T){const U=g.transformRequest(Qr(j,I,".json"),"SpriteJSON");M[L]=c.j(U,w);const N=g.transformRequest(Qr(j,I,".png"),"SpriteImage");z[L]=Li.getImage(N,w)}return yield Promise.all([...Object.values(M),...Object.values(z)]),(function(L,j){return c._(this,void 0,void 0,(function*(){const U={};for(const N in L){U[N]={};const Z=Zt.getImageCanvasContext((yield j[N]).data),X=(yield L[N]).data;for(const q in X){const{width:Y,height:Q,x:W,y:te,sdf:de,pixelRatio:ue,stretchX:le,stretchY:he,content:Me,textFitWidth:Ie,textFitHeight:_e}=X[q];U[N][q]={data:null,pixelRatio:ue,sdf:de,stretchX:le,stretchY:he,content:Me,textFitWidth:Ie,textFitHeight:_e,spriteData:{width:Y,height:Q,x:W,y:te,context:Z}}}}return U}))})(M,z)}))})(t,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then((m=>{if(this._spriteRequest=null,m)for(const g in m){this._spritesImagesIds[g]=[];const x=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter((w=>!(w in m))):[];for(const w of x)this.imageManager.removeImage(w),this._changedImages[w]=!0;for(const w in m[g]){const T=g==="default"?w:`${g}:${w}`;this._spritesImagesIds[g].push(T),T in this.imageManager.images?this.imageManager.updateImage(T,m[g][w],!1):this.imageManager.addImage(T,m[g][w]),n&&(this._changedImages[T]=!0)}}})).catch((m=>{this._spriteRequest=null,p=m,l.signal.aborted||this.fire(new c.k(p))})).finally((()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),n&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"})),s&&s(p)}))}_unloadSprite(){for(const t of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(t),this._changedImages[t]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"}))}_validateLayer(t){const n=this.tileManagers[t.source];if(!n)return;const s=t.sourceLayer;if(!s)return;const l=n.getSource();(l.type==="geojson"||l.vectorLayerIds&&l.vectorLayerIds.indexOf(s)===-1)&&this.fire(new c.k(new Error(`Source layer "${s}" does not exist on source "${l.id}" as specified by style layer "${t.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const t in this.tileManagers)if(!this.tileManagers[t].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(t,n=!1){const s=this._serializedAllLayers();if(!t||t.length===0)return Object.values(n?c.bV(s):s);const l=[];for(const p of t)if(s[p]){const m=n?c.bV(s[p]):s[p];l.push(m)}return l}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const n=Object.keys(this._layers);for(const s of n){const l=this._layers[s];l.type!=="custom"&&(t[s]=l.serialize())}return t}hasTransitions(){var t,n,s;if(!((t=this.light)===null||t===void 0)&&t.hasTransition()||!((n=this.sky)===null||n===void 0)&&n.hasTransition()||!((s=this.projection)===null||s===void 0)&&s.hasTransition())return!0;for(const l in this.tileManagers)if(this.tileManagers[l].hasTransition())return!0;for(const 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(t){if(!this._loaded)return;const n=this._changed;if(n){const l=Object.keys(this._updatedLayers),p=Object.keys(this._removedLayers);(l.length||p.length)&&this._updateWorkerLayers(l,p);for(const m in this._updatedSources){const g=this._updatedSources[m];if(g==="reload")this._reloadSource(m);else{if(g!=="clear")throw new Error(`Invalid action ${g}`);this._clearSource(m)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const m in this._updatedPaintProps)this._layers[m].updateTransitions(t);this.light.updateTransitions(t),this.sky.updateTransitions(t),this._resetUpdates()}const s={};for(const l in this.tileManagers){const p=this.tileManagers[l];s[l]=p.used,p.used=!1}for(const l of this._order){const p=this._layers[l];p.recalculate(t,this._availableImages),!p.isHidden(t.zoom)&&p.source&&(this.tileManagers[p.source].used=!0)}for(const l in s){const p=this.tileManagers[l];!!s[l]!=!!p.used&&p.fire(new c.l("data",{sourceDataType:"visibility",dataType:"source",sourceId:l}))}this.light.recalculate(t),this.sky.recalculate(t),this.projection.recalculate(t),this.z=t.zoom,n&&this.fire(new c.l("data",{dataType:"style"}))}_updateTilesForChangedImages(){const t=Object.keys(this._changedImages);if(t.length){for(const n in this.tileManagers)this.tileManagers[n].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const t in this.tileManagers)this.tileManagers[t].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(t,n){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(t,!1),removedIds:n})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(t,n={}){var s;this._checkLoaded();const l=this.serialize();if(t=n.transformStyle?n.transformStyle(l,t):t,((s=n.validate)===null||s===void 0||s)&&un(this,c.C(t)))return!1;(t=c.bV(t)).layers=c.bS(t.layers);const p=c.bW(l,t),m=this._getOperationsToPerform(p);if(m.unimplemented.length>0)throw new Error(`Unimplemented: ${m.unimplemented.join(", ")}.`);if(m.operations.length===0)return!1;for(const g of m.operations)g();return this.stylesheet=t,this._serializedLayers=null,this.fire(new c.l("style.load",{style:this})),!0}_getOperationsToPerform(t){const n=[],s=[];for(const l of t)switch(l.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":n.push((()=>this.addLayer.apply(this,l.args)));break;case"removeLayer":n.push((()=>this.removeLayer.apply(this,l.args)));break;case"setPaintProperty":n.push((()=>this.setPaintProperty.apply(this,l.args)));break;case"setLayoutProperty":n.push((()=>this.setLayoutProperty.apply(this,l.args)));break;case"setFilter":n.push((()=>this.setFilter.apply(this,l.args)));break;case"addSource":n.push((()=>this.addSource.apply(this,l.args)));break;case"removeSource":n.push((()=>this.removeSource.apply(this,l.args)));break;case"setLayerZoomRange":n.push((()=>this.setLayerZoomRange.apply(this,l.args)));break;case"setLight":n.push((()=>this.setLight.apply(this,l.args)));break;case"setGeoJSONSourceData":n.push((()=>this.setGeoJSONSourceData.apply(this,l.args)));break;case"setGlyphs":n.push((()=>this.setGlyphs.apply(this,l.args)));break;case"setSprite":n.push((()=>this.setSprite.apply(this,l.args)));break;case"setTerrain":n.push((()=>this.map.setTerrain.apply(this,l.args)));break;case"setSky":n.push((()=>this.setSky.apply(this,l.args)));break;case"setProjection":this.setProjection.apply(this,l.args);break;case"setGlobalState":n.push((()=>this.setGlobalState.apply(this,l.args)));break;case"setTransition":n.push((()=>{}));break;default:s.push(l.command)}return{operations:n,unimplemented:s}}addImage(t,n){if(this.getImage(t))return this.fire(new c.k(new Error(`An image named "${t}" already exists.`)));this.imageManager.addImage(t,n),this._afterImageUpdated(t)}updateImage(t,n){this.imageManager.updateImage(t,n)}getImage(t){return this.imageManager.getImage(t)}removeImage(t){if(!this.getImage(t))return this.fire(new c.k(new Error(`An image named "${t}" does not exist.`)));this.imageManager.removeImage(t),this._afterImageUpdated(t)}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(t,n,s={}){if(this._checkLoaded(),this.tileManagers[t]!==void 0)throw new Error(`Source "${t}" already exists.`);if(!n.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(c.C.source,`sources.${t}`,n,null,s))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const l=this.tileManagers[t]=new Pe(t,n,this.dispatcher);l.style=this,l.setEventedParent(this,(()=>({isSourceLoaded:l.loaded(),source:l.serialize(),sourceId:t}))),l.onAdd(this.map),this._changed=!0}removeSource(t){if(this._checkLoaded(),this.tileManagers[t]===void 0)throw new Error(`There is no source with this ID=${t}`);for(const s in this._layers)if(this._layers[s].source===t)return this.fire(new c.k(new Error(`Source "${t}" cannot be removed while layer "${s}" is using it.`)));const n=this.tileManagers[t];delete this.tileManagers[t],delete this._updatedSources[t],n.fire(new c.l("data",{sourceDataType:"metadata",dataType:"source",sourceId:t})),n.setEventedParent(null),n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(t,n){if(this._checkLoaded(),this.tileManagers[t]===void 0)throw new Error(`There is no source with this ID=${t}`);const s=this.tileManagers[t].getSource();if(s.type!=="geojson")throw new Error(`geojsonSource.type is ${s.type}, which is !== 'geojson`);s.setData(n),this._changed=!0}getSource(t){return this.tileManagers[t]&&this.tileManagers[t].getSource()}addLayer(t,n,s={}){this._checkLoaded();const l=t.id;if(this.getLayer(l))return void this.fire(new c.k(new Error(`Layer "${l}" already exists on this map.`)));let p;if(t.type==="custom"){if(un(this,c.bX(t)))return;p=c.bT(t,this._globalState)}else{if("source"in t&&typeof t.source=="object"&&(this.addSource(l,t.source),t=c.bV(t),t=c.e(t,{source:l})),this._validate(c.C.layer,`layers.${l}`,t,{arrayIndex:-1},s))return;p=c.bT(t,this._globalState),this._validateLayer(p),p.setEventedParent(this,{layer:{id:l}})}const m=n?this._order.indexOf(n):this._order.length;if(n&&m===-1)this.fire(new c.k(new Error(`Cannot add layer "${l}" before non-existing layer "${n}".`)));else{if(this._order.splice(m,0,l),this._layerOrderChanged=!0,this._layers[l]=p,this._removedLayers[l]&&p.source&&p.type!=="custom"){const g=this._removedLayers[l];delete this._removedLayers[l],g.type!==p.type?this._updatedSources[p.source]="clear":(this._updatedSources[p.source]="reload",this.tileManagers[p.source].pause())}this._updateLayer(p),p.onAdd&&p.onAdd(this.map)}}moveLayer(t,n){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new c.k(new Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===n)return;const s=this._order.indexOf(t);this._order.splice(s,1);const l=n?this._order.indexOf(n):this._order.length;n&&l===-1?this.fire(new c.k(new Error(`Cannot move layer "${t}" before non-existing layer "${n}".`))):(this._order.splice(l,0,t),this._layerOrderChanged=!0)}removeLayer(t){this._checkLoaded();const n=this._layers[t];if(!n)return void this.fire(new c.k(new Error(`Cannot remove non-existing layer "${t}".`)));n.setEventedParent(null);const s=this._order.indexOf(t);this._order.splice(s,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=n,delete this._layers[t],this._serializedLayers&&delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],n.onRemove&&n.onRemove(this.map)}getLayer(t){return this._layers[t]}getLayersOrder(){return[...this._order]}hasLayer(t){return t in this._layers}setLayerZoomRange(t,n,s){this._checkLoaded();const l=this.getLayer(t);l?l.minzoom===n&&l.maxzoom===s||(n!=null&&(l.minzoom=n),s!=null&&(l.maxzoom=s),this._updateLayer(l)):this.fire(new c.k(new Error(`Cannot set the zoom range of non-existing layer "${t}".`)))}setFilter(t,n,s={}){this._checkLoaded();const l=this.getLayer(t);if(l){if(!c.bR(l.filter,n))return n==null?(l.setFilter(void 0),void this._updateLayer(l)):void(this._validate(c.C.filter,`layers.${l.id}.filter`,n,null,s)||(l.setFilter(c.bV(n)),this._updateLayer(l)))}else this.fire(new c.k(new Error(`Cannot filter non-existing layer "${t}".`)))}getFilter(t){return c.bV(this.getLayer(t).filter)}setLayoutProperty(t,n,s,l={}){this._checkLoaded();const p=this.getLayer(t);p?c.bR(p.getLayoutProperty(n),s)||(p.setLayoutProperty(n,s,l),this._updateLayer(p)):this.fire(new c.k(new Error(`Cannot style non-existing layer "${t}".`)))}getLayoutProperty(t,n){const s=this.getLayer(t);if(s)return s.getLayoutProperty(n);this.fire(new c.k(new Error(`Cannot get style of non-existing layer "${t}".`)))}setPaintProperty(t,n,s,l={}){this._checkLoaded();const p=this.getLayer(t);p?c.bR(p.getPaintProperty(n),s)||this._updatePaintProperty(p,n,s,l):this.fire(new c.k(new Error(`Cannot style non-existing layer "${t}".`)))}_updatePaintProperty(t,n,s,l={}){t.setPaintProperty(n,s,l)&&this._updateLayer(t),c.bU(t)&&n==="raster-fade-duration"&&this.tileManagers[t.source].setRasterFadeDuration(s),this._changed=!0,this._updatedPaintProps[t.id]=!0,this._serializedLayers=null}getPaintProperty(t,n){return this.getLayer(t).getPaintProperty(n)}setFeatureState(t,n){this._checkLoaded();const s=t.source,l=t.sourceLayer,p=this.tileManagers[s];if(p===void 0)return void this.fire(new c.k(new Error(`The source '${s}' does not exist in the map's style.`)));const m=p.getSource().type;m==="geojson"&&l?this.fire(new c.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):m!=="vector"||l?(t.id===void 0&&this.fire(new c.k(new Error("The feature id parameter must be provided."))),p.setFeatureState(l,t.id,n)):this.fire(new c.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(t,n){this._checkLoaded();const s=t.source,l=this.tileManagers[s];if(l===void 0)return void this.fire(new c.k(new Error(`The source '${s}' does not exist in the map's style.`)));const p=l.getSource().type,m=p==="vector"?t.sourceLayer:void 0;p!=="vector"||m?n&&typeof t.id!="string"&&typeof t.id!="number"?this.fire(new c.k(new Error("A feature id is required to remove its specific state property."))):l.removeFeatureState(m,t.id,n):this.fire(new c.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(t){this._checkLoaded();const n=t.source,s=t.sourceLayer,l=this.tileManagers[n];if(l!==void 0)return l.getSource().type!=="vector"||s?(t.id===void 0&&this.fire(new c.k(new Error("The feature id parameter must be provided."))),l.getFeatureState(s,t.id)):void this.fire(new c.k(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new c.k(new Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return c.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const t=c.bY(this.tileManagers,(p=>p.serialize())),n=this._serializeByIds(this._order,!0),s=this.map.getTerrain()||void 0,l=this.stylesheet;return c.bZ({version:l.version,name:l.name,metadata:l.metadata,light:l.light,sky:l.sky,center:l.center,zoom:l.zoom,bearing:l.bearing,pitch:l.pitch,sprite:l.sprite,glyphs:l.glyphs,transition:l.transition,projection:l.projection,sources:t,layers:n,terrain:s},(p=>p!==void 0))}_updateLayer(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&this.tileManagers[t.source].getSource().type!=="raster"&&(this._updatedSources[t.source]="reload",this.tileManagers[t.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(t){const n=m=>this._layers[m].type==="fill-extrusion",s={},l=[];for(let m=this._order.length-1;m>=0;m--){const g=this._order[m];if(n(g)){s[g]=m;for(const x of t){const w=x[g];if(w)for(const T of w)l.push(T)}}}l.sort(((m,g)=>g.intersectionZ-m.intersectionZ));const p=[];for(let m=this._order.length-1;m>=0;m--){const g=this._order[m];if(n(g))for(let x=l.length-1;x>=0;x--){const w=l[x].feature;if(s[w.layer.id]<m)break;p.push(w),l.pop()}else for(const x of t){const w=x[g];if(w)for(const T of w)p.push(T.feature)}}return p}queryRenderedFeatures(t,n,s){n&&n.filter&&this._validate(c.C.filter,"queryRenderedFeatures.filter",n.filter,null,n);const l={};if(n&&n.layers){if(!(Array.isArray(n.layers)||n.layers instanceof Set))return this.fire(new c.k(new Error("parameters.layers must be an Array or a Set of strings"))),[];for(const w of n.layers){const T=this._layers[w];if(!T)return this.fire(new c.k(new Error(`The layer '${w}' does not exist in the map's style and cannot be queried for features.`))),[];l[T.source]=!0}}const p=[];n.availableImages=this._availableImages;const m=this._serializedAllLayers(),g=n.layers instanceof Set?n.layers:Array.isArray(n.layers)?new Set(n.layers):null,x=Object.assign(Object.assign({},n),{layers:g,globalState:this._globalState});for(const w in this.tileManagers)n.layers&&!l[w]||p.push(Ds(this.tileManagers[w],this._layers,m,t,x,s,this.map.terrain?(T,I,M)=>this.map.terrain.getElevation(T,I,M):void 0));return this.placement&&p.push((function(w,T,I,M,z,L,j){const U={},N=L.queryRenderedSymbols(M),Z=[];for(const X of Object.keys(N).map(Number))Z.push(j[X]);Z.sort(di);for(const X of Z){const q=X.featureIndex.lookupSymbolFeatures(N[X.bucketInstanceId],T,X.bucketIndex,X.sourceLayerIndex,{filterSpec:z.filter,globalState:z.globalState},z.layers,z.availableImages,w);for(const Y in q){const Q=U[Y]=U[Y]||[],W=q[Y];W.sort(((te,de)=>{const ue=X.featureSortOrder;if(ue){const le=ue.indexOf(te.featureIndex);return ue.indexOf(de.featureIndex)-le}return de.featureIndex-te.featureIndex}));for(const te of W)Q.push(te)}}return(function(X,q,Y){for(const Q in X)for(const W of X[Q])Fi(W,Y[q[Q].source]);return X})(U,w,I)})(this._layers,m,this.tileManagers,t,x,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(p)}querySourceFeatures(t,n){n?.filter&&this._validate(c.C.filter,"querySourceFeatures.filter",n.filter,null,n);const s=this.tileManagers[t];return s?(function(l,p){const m=l.getRenderableIds().map((w=>l.getTileByID(w))),g=[],x={};for(let w=0;w<m.length;w++){const T=m[w],I=T.tileID.canonical.key;x[I]||(x[I]=!0,T.querySourceFeatures(g,p))}return g})(s,n?Object.assign(Object.assign({},n),{globalState:this._globalState}):{globalState:this._globalState}):[]}getLight(){return this.light.getLight()}setLight(t,n={}){this._checkLoaded();const s=this.light.getLight();let l=!1;for(const m in t)if(!c.bR(t[m],s[m])){l=!0;break}if(!l)return;const p={now:it(),transition:c.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(t,n),this.light.updateTransitions(p)}getProjection(){var t;return(t=this.stylesheet)===null||t===void 0?void 0:t.projection}setProjection(t){if(this._checkLoaded(),this.stylesheet.projection=t,this.projection){if(this.projection.name===t.type)return;this.projection.destroy(),delete this.projection}this._setProjectionInternal(t.type)}getSky(){var t;return(t=this.stylesheet)===null||t===void 0?void 0:t.sky}setSky(t,n={}){this._checkLoaded();const s=this.getSky();let l=!1;if(!t&&!s)return;if(t&&!s)l=!0;else if(!t&&s)l=!0;else for(const m in t)if(!c.bR(t[m],s[m])){l=!0;break}if(!l)return;const p={now:it(),transition:c.e({duration:300,delay:0},this.stylesheet.transition)};this.stylesheet.sky=t,this.sky.setSky(t,n),this.sky.updateTransitions(p)}_setProjectionInternal(t){const n=(function(s,l){const p={constrainOverride:l};if(Array.isArray(s)){const m=new vi({type:s});return{projection:m,transform:new ji(p),cameraHelper:new Zs(m)}}switch(s){case"mercator":return{projection:new Os,transform:new Vi(p),cameraHelper:new kn};case"globe":{const m=new vi({type:["interpolate",["linear"],["zoom"],11,"vertical-perspective",12,"mercator"]});return{projection:m,transform:new ji(p),cameraHelper:new Zs(m)}}case"vertical-perspective":return{projection:new ac,transform:new pa(p),cameraHelper:new ur};default:return c.w(`Unknown projection name: ${s}. Falling back to mercator projection.`),{projection:new Os,transform:new Vi(p),cameraHelper:new kn}}})(t,this.map.transformConstrain);this.projection=n.projection,this.map.migrateProjection(n.transform,n.cameraHelper);for(const s in this.tileManagers)this.tileManagers[s].reload()}_validate(t,n,s,l,p={}){return(!p||p.validate!==!1)&&un(this,t.call(c.C,c.e({key:n,style:this.serialize(),value:s,styleSpec:c.u},l)))}_remove(t=!0){this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._loadStyleRequest&&(this._loadStyleRequest.abort(),this._loadStyleRequest=null),this._spriteRequest&&(this._spriteRequest.abort(),this._spriteRequest=null),F().off(ie,this._rtlPluginLoaded);for(const n in this._layers)this._layers[n].setEventedParent(null);for(const n in this.tileManagers){const s=this.tileManagers[n];s.setEventedParent(null),s.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),t&&this.dispatcher.broadcast("RM",void 0),this.dispatcher.remove(t)}_clearSource(t){this.tileManagers[t].clearTiles()}_reloadSource(t){this.tileManagers[t].resume(),this.tileManagers[t].reload()}_updateSources(t){for(const n in this.tileManagers)this.tileManagers[n].update(t,this.map.terrain)}_generateCollisionBoxes(){for(const t in this.tileManagers)this._reloadSource(t)}_updatePlacement(t,n,s,l,p=!1){let m=!1,g=!1;const x={};for(const w of this._order){const T=this._layers[w];if(T.type!=="symbol")continue;if(!x[T.source]){const M=this.tileManagers[T.source];x[T.source]=M.getRenderableIds(!0).map((z=>M.getTileByID(z))).sort(((z,L)=>L.tileID.overscaledZ-z.tileID.overscaledZ||(z.tileID.isLessThan(L.tileID)?-1:1)))}const I=this.crossTileSymbolIndex.addLayer(T,x[T.source],t.center.lng);m=m||I}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((p=p||this._layerOrderChanged||s===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(it(),t.zoom))&&(this.pauseablePlacement=new et(t,this.map.terrain,this._order,p,n,s,l,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,x),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(it()),g=!0),m&&this.pauseablePlacement.placement.setStale()),g||m)for(const w of this._order){const T=this._layers[w];T.type==="symbol"&&this.placement.updateLayerOpacities(T,x[T.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(it())}_releaseSymbolFadeTiles(){for(const t in this.tileManagers)this.tileManagers[t].releaseSymbolFadeTiles()}getImages(t,n){return c._(this,void 0,void 0,(function*(){const s=yield this.imageManager.getImages(n.icons);this._updateTilesForChangedImages();const l=this.tileManagers[n.source];return l&&l.setDependencies(n.tileID.key,n.type,n.icons),s}))}getGlyphs(t,n){return c._(this,void 0,void 0,(function*(){const s=yield this.glyphManager.getGlyphs(n.stacks),l=this.tileManagers[n.source];return l&&l.setDependencies(n.tileID.key,n.type,[""]),s}))}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(t,n={}){this._checkLoaded(),t&&this._validate(c.C.glyphs,"glyphs",t,null,n)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=t,this.glyphManager.entries={},this.glyphManager.setURL(t))}getDashes(t,n){return c._(this,void 0,void 0,(function*(){const s={};for(const[l,p]of Object.entries(n.dashes))s[l]=this.lineAtlas.getDash(p.dasharray,p.round);return s}))}addSprite(t,n,s={},l){this._checkLoaded();const p=[{id:t,url:n}],m=[...gr(this.stylesheet.sprite),...p];this._validate(c.C.sprite,"sprite",m,null,s)||(this.stylesheet.sprite=m,this._loadSprite(p,!0,l))}removeSprite(t){this._checkLoaded();const n=gr(this.stylesheet.sprite);if(n.find((s=>s.id===t))){if(this._spritesImagesIds[t])for(const s of this._spritesImagesIds[t])this.imageManager.removeImage(s),this._changedImages[s]=!0;n.splice(n.findIndex((s=>s.id===t)),1),this.stylesheet.sprite=n.length>0?n:void 0,delete this._spritesImagesIds[t],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new c.l("data",{dataType:"style"}))}else this.fire(new c.k(new Error(`Sprite "${t}" doesn't exists on this map.`)))}getSprite(){return gr(this.stylesheet.sprite)}setSprite(t,n={},s){this._checkLoaded(),t&&this._validate(c.C.sprite,"sprite",t,null,n)||(this.stylesheet.sprite=t,t?this._loadSprite(t,!0,s):(this._unloadSprite(),s&&s(null)))}destroy(){this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._loadStyleRequest&&(this._loadStyleRequest.abort(),this._loadStyleRequest=null),this._spriteRequest&&(this._spriteRequest.abort(),this._spriteRequest=null);for(const t in this.tileManagers){const n=this.tileManagers[t];n.setEventedParent(null),n.onRemove(this.map)}this.tileManagers={},this.imageManager&&(this.imageManager.setEventedParent(null),this.imageManager.destroy(),this._availableImages=[],this._spritesImagesIds={}),this.glyphManager&&this.glyphManager.destroy();for(const t in this._layers){const n=this._layers[t];n.setEventedParent(null),n.onRemove&&n.onRemove(this.map)}this._setInitialValues(),this.setEventedParent(null),this.dispatcher.unregisterMessageHandler("GG"),this.dispatcher.unregisterMessageHandler("GI"),this.dispatcher.unregisterMessageHandler("GDA"),this.dispatcher.remove(!0),this._listeners={},this._oneTimeListeners={}}}var $s=c.aU([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class Ou{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(t,n,s,l,p,m,g,x,w){this.context=t;let T=this.boundPaintVertexBuffers.length!==l.length;for(let I=0;!T&&I<l.length;I++)this.boundPaintVertexBuffers[I]!==l[I]&&(T=!0);!this.vao||this.boundProgram!==n||this.boundLayoutVertexBuffer!==s||T||this.boundIndexBuffer!==p||this.boundVertexOffset!==m||this.boundDynamicVertexBuffer!==g||this.boundDynamicVertexBuffer2!==x||this.boundDynamicVertexBuffer3!==w?this.freshBind(n,s,l,p,m,g,x,w):(t.bindVertexArray.set(this.vao),g&&g.bind(),p&&p.dynamicDraw&&p.bind(),x&&x.bind(),w&&w.bind())}freshBind(t,n,s,l,p,m,g,x){const w=t.numAttributes,T=this.context,I=T.gl;this.vao&&this.destroy(),this.vao=T.createVertexArray(),T.bindVertexArray.set(this.vao),this.boundProgram=t,this.boundLayoutVertexBuffer=n,this.boundPaintVertexBuffers=s,this.boundIndexBuffer=l,this.boundVertexOffset=p,this.boundDynamicVertexBuffer=m,this.boundDynamicVertexBuffer2=g,this.boundDynamicVertexBuffer3=x,n.enableAttributes(I,t);for(const M of s)M.enableAttributes(I,t);m&&m.enableAttributes(I,t),g&&g.enableAttributes(I,t),x&&x.enableAttributes(I,t),n.bind(),n.setVertexAttribPointers(I,t,p);for(const M of s)M.bind(),M.setVertexAttribPointers(I,t,p);m&&(m.bind(),m.setVertexAttribPointers(I,t,p)),l&&l.bind(),g&&(g.bind(),g.setVertexAttribPointers(I,t,p)),x&&(x.bind(),x.setVertexAttribPointers(I,t,p)),T.currentNumAttributes=w}destroy(){this.vao&&(this.context.deleteVertexArray(this.vao),this.vao=null)}}const fa=(d,t,n,s,l)=>({u_texture:0,u_ele_delta:d,u_fog_matrix:t,u_fog_color:n?n.properties.get("fog-color"):c.bp.white,u_fog_ground_blend:n?n.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:l?0:n?n.calculateFogBlendOpacity(s):0,u_horizon_color:n?n.properties.get("horizon-color"):c.bp.white,u_horizon_fog_blend:n?n.properties.get("horizon-fog-blend"):1,u_is_globe_mode:l?1:0}),Vu={mainMatrix:"u_projection_matrix",tileMercatorCoords:"u_projection_tile_mercator_coords",clippingPlane:"u_projection_clipping_plane",projectionTransition:"u_projection_transition",fallbackMatrix:"u_projection_fallback_matrix"};function Ya(d){const t=[];for(let n=0;n<d.length;n++){if(d[n]===null)continue;const s=d[n].split(" ");t.push(s.pop())}return t}class ju{constructor(t,n,s,l,p,m,g,x,w=[]){const T=t.gl;this.program=T.createProgram();const I=Ya(n.staticAttributes),M=s?s.getBinderAttributes():[],z=I.concat(M),L=yt.prelude.staticUniforms?Ya(yt.prelude.staticUniforms):[],j=g.staticUniforms?Ya(g.staticUniforms):[],U=n.staticUniforms?Ya(n.staticUniforms):[],N=s?s.getBinderUniforms():[],Z=L.concat(j).concat(U).concat(N),X=[];for(const ue of Z)X.indexOf(ue)<0&&X.push(ue);const q=s?s.defines():[];Qi(T)&&q.unshift("#version 300 es"),p&&q.push("#define OVERDRAW_INSPECTOR;"),m&&q.push("#define TERRAIN3D;"),x&&q.push(x),w&&q.push(...w);let Y=q.concat(yt.prelude.fragmentSource,g.fragmentSource,n.fragmentSource).join(`
`),Q=q.concat(yt.prelude.vertexSource,g.vertexSource,n.vertexSource).join(`
`);Qi(T)||(Y=(function(ue){return ue.replace(/\bin\s/g,"varying ").replace("out highp vec4 fragColor;","").replace(/fragColor/g,"gl_FragColor").replace(/texture\(/g,"texture2D(")})(Y),Q=(function(ue){return ue.replace(/\bin\s/g,"attribute ").replace(/\bout\s/g,"varying ").replace(/texture\(/g,"texture2D(")})(Q));const W=T.createShader(T.FRAGMENT_SHADER);if(T.isContextLost())return void(this.failedToCreate=!0);if(T.shaderSource(W,Y),T.compileShader(W),!T.getShaderParameter(W,T.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${T.getShaderInfoLog(W)}`);T.attachShader(this.program,W);const te=T.createShader(T.VERTEX_SHADER);if(T.isContextLost())return void(this.failedToCreate=!0);if(T.shaderSource(te,Q),T.compileShader(te),!T.getShaderParameter(te,T.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${T.getShaderInfoLog(te)}`);T.attachShader(this.program,te),this.attributes={};const de={};this.numAttributes=z.length;for(let ue=0;ue<this.numAttributes;ue++)z[ue]&&(T.bindAttribLocation(this.program,ue,z[ue]),this.attributes[z[ue]]=ue);if(T.linkProgram(this.program),!T.getProgramParameter(this.program,T.LINK_STATUS))throw new Error(`Program failed to link: ${T.getProgramInfoLog(this.program)}`);T.deleteShader(te),T.deleteShader(W);for(let ue=0;ue<X.length;ue++){const le=X[ue];if(le&&!de[le]){const he=T.getUniformLocation(this.program,le);he&&(de[le]=he)}}this.fixedUniforms=l(t,de),this.terrainUniforms=((ue,le)=>({u_depth:new c.b_(ue,le.u_depth),u_terrain:new c.b_(ue,le.u_terrain),u_terrain_dim:new c.bq(ue,le.u_terrain_dim),u_terrain_matrix:new c.c0(ue,le.u_terrain_matrix),u_terrain_unpack:new c.c1(ue,le.u_terrain_unpack),u_terrain_exaggeration:new c.bq(ue,le.u_terrain_exaggeration)}))(t,de),this.projectionUniforms=((ue,le)=>({u_projection_matrix:new c.c0(ue,le.u_projection_matrix),u_projection_tile_mercator_coords:new c.c1(ue,le.u_projection_tile_mercator_coords),u_projection_clipping_plane:new c.c1(ue,le.u_projection_clipping_plane),u_projection_transition:new c.bq(ue,le.u_projection_transition),u_projection_fallback_matrix:new c.c0(ue,le.u_projection_fallback_matrix)}))(t,de),this.binderUniforms=s?s.getUniforms(t,de):[]}draw(t,n,s,l,p,m,g,x,w,T,I,M,z,L,j,U,N,Z,X){const q=t.gl;if(this.failedToCreate)return;if(t.program.set(this.program),t.setDepthMode(s),t.setStencilMode(l),t.setColorMode(p),t.setCullFace(m),x){t.activeTexture.set(q.TEXTURE2),q.bindTexture(q.TEXTURE_2D,x.depthTexture),t.activeTexture.set(q.TEXTURE3),q.bindTexture(q.TEXTURE_2D,x.texture);for(const Q in this.terrainUniforms)this.terrainUniforms[Q].set(x[Q])}if(w)for(const Q in w)this.projectionUniforms[Vu[Q]].set(w[Q]);if(g)for(const Q in this.fixedUniforms)this.fixedUniforms[Q].set(g[Q]);U&&U.setUniforms(t,this.binderUniforms,L,{zoom:j});let Y=0;switch(n){case q.LINES:Y=2;break;case q.TRIANGLES:Y=3;break;case q.LINE_STRIP:Y=1}for(const Q of z.get()){const W=Q.vaos||(Q.vaos={});(W[T]||(W[T]=new Ou)).bind(t,this,I,U?U.getPaintVertexBuffers():[],M,Q.vertexOffset,N,Z,X),q.drawElements(n,Q.primitiveLength*Y,q.UNSIGNED_SHORT,Q.primitiveOffset*Y*2)}}}function Xo(d,t,n){const s=1/c.aN(n,1,t.transform.tileZoom),l=Math.pow(2,n.tileID.overscaledZ),p=n.tileSize*Math.pow(2,t.transform.tileZoom)/l,m=p*(n.tileID.canonical.x+n.tileID.wrap*l),g=p*n.tileID.canonical.y;return{u_image:0,u_texsize:n.imageAtlasTexture.size,u_scale:[s,d.fromScale,d.toScale],u_fade:d.t,u_pixel_coord_upper:[m>>16,g>>16],u_pixel_coord_lower:[65535&m,65535&g]}}const Ws=(d,t,n,s)=>{const l=d.style.light,p=l.properties.get("position"),m=[p.x,p.y,p.z],g=c.c4();l.properties.get("anchor")==="viewport"&&c.c5(g,d.transform.bearingInRadians),c.c6(m,m,g);const x=d.transform.transformLightDirection(m),w=l.properties.get("color");return{u_lightpos:m,u_lightpos_globe:x,u_lightintensity:l.properties.get("intensity"),u_lightcolor:[w.r,w.g,w.b],u_vertical_gradient:+t,u_opacity:n,u_fill_translate:s}},lc=(d,t,n,s,l,p,m)=>c.e(Ws(d,t,n,s),Xo(p,d,m),{u_height_factor:-Math.pow(2,l.overscaledZ)/m.tileSize/8}),Yo=(d,t,n,s)=>c.e(Xo(t,d,n),{u_fill_translate:s}),cc=(d,t)=>({u_world:d,u_fill_translate:t}),uc=(d,t,n,s,l)=>c.e(Yo(d,t,n,l),{u_world:s}),Fn=(d,t,n,s,l)=>{const p=d.transform;let m,g,x=0;if(n.paint.get("circle-pitch-alignment")==="map"){const w=c.aN(t,1,p.zoom);m=!0,g=[w,w],x=w/(c.a5*Math.pow(2,t.tileID.overscaledZ))*2*Math.PI*l}else m=!1,g=p.pixelsToGLUnits;return{u_camera_to_center_distance:p.cameraToCenterDistance,u_scale_with_map:+(n.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+m,u_device_pixel_ratio:d.pixelRatio,u_extrude_scale:g,u_globe_extrude_scale:x,u_translate:s}},hc=d=>({u_pixel_extrude_scale:[1/d.width,1/d.height]}),dc=d=>({u_viewport_size:[d.width,d.height]}),ma=(d,t=1)=>({u_color:d,u_overlay:0,u_overlay_scale:t}),pc=(d,t,n,s)=>{const l=c.aN(d,1,t)/(c.a5*Math.pow(2,d.tileID.overscaledZ))*2*Math.PI*s;return{u_extrude_scale:c.aN(d,1,t),u_intensity:n,u_globe_extrude_scale:l}},Ka=(d,t,n,s)=>{const l=c.N();c.c7(l,0,d.width,d.height,0,0,1);const p=d.context.gl;return{u_matrix:l,u_world:[p.drawingBufferWidth,p.drawingBufferHeight],u_image:n,u_color_ramp:s,u_opacity:t.paint.get("heatmap-opacity")}},Nu=(d,t,n)=>{const s=n.paint.get("hillshade-accent-color");let l;switch(n.paint.get("hillshade-method")){case"basic":l=4;break;case"combined":l=1;break;case"igor":l=2;break;case"multidirectional":l=3;break;default:l=0}const p=n.getIlluminationProperties();for(let m=0;m<p.directionRadians.length;m++)n.paint.get("hillshade-illumination-anchor")==="viewport"&&(p.directionRadians[m]+=d.transform.bearingInRadians);return{u_image:0,u_latrange:fc(0,t.tileID),u_exaggeration:n.paint.get("hillshade-exaggeration"),u_altitudes:p.altitudeRadians,u_azimuths:p.directionRadians,u_accent:s,u_method:l,u_highlights:p.highlightColor,u_shadows:p.shadowColor}},Uu=(d,t)=>{const n=t.stride,s=c.N();return c.c7(s,0,c.a5,-c.a5,0,0,1),c.O(s,s,[0,-c.a5,0]),{u_matrix:s,u_image:1,u_dimension:[n,n],u_zoom:d.overscaledZ,u_unpack:t.getUnpackVector()}};function fc(d,t){const n=Math.pow(2,t.canonical.z),s=t.canonical.y;return[new c.a9(0,s/n).toLngLat().lat,new c.a9(0,(s+1)/n).toLngLat().lat]}const mc=(d,t,n=0)=>({u_image:0,u_unpack:t.getUnpackVector(),u_dimension:[t.stride,t.stride],u_elevation_stops:1,u_color_stops:4,u_color_ramp_size:n,u_opacity:d.paint.get("color-relief-opacity")}),Ja=(d,t,n,s)=>{const l=d.transform;return{u_translation:Xs(d,t,n),u_ratio:s/c.aN(t,1,l.zoom),u_device_pixel_ratio:d.pixelRatio,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]]}},Ko=(d,t,n,s,l)=>c.e(Ja(d,t,n,s),{u_image:0,u_image_height:l}),_c=(d,t,n,s,l)=>{const p=d.transform,m=Qa(t,p);return{u_translation:Xs(d,t,n),u_texsize:t.imageAtlasTexture.size,u_ratio:s/c.aN(t,1,p.zoom),u_device_pixel_ratio:d.pixelRatio,u_image:0,u_scale:[m,l.fromScale,l.toScale],u_fade:l.t,u_units_to_pixels:[1/p.pixelsToGLUnits[0],1/p.pixelsToGLUnits[1]]}},Hs=(d,t,n,s,l)=>{const p=Qa(t,d.transform);return c.e(Ja(d,t,n,s),{u_tileratio:p,u_crossfade_from:l.fromScale,u_crossfade_to:l.toScale,u_image:0,u_mix:l.t,u_lineatlas_width:d.lineAtlas.width,u_lineatlas_height:d.lineAtlas.height})},Br=(d,t,n,s,l,p)=>{const m=Qa(t,d.transform);return c.e(Ja(d,t,n,s),{u_image:0,u_image_height:p,u_tileratio:m,u_crossfade_from:l.fromScale,u_crossfade_to:l.toScale,u_image_dash:1,u_mix:l.t,u_lineatlas_width:d.lineAtlas.width,u_lineatlas_height:d.lineAtlas.height})};function Qa(d,t){return 1/c.aN(d,1,t.tileZoom)}function Xs(d,t,n){return c.aO(d.transform,t,n.paint.get("line-translate"),n.paint.get("line-translate-anchor"))}const Jo=(d,t,n,s,l)=>{return{u_tl_parent:d,u_scale_parent:t,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*s.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:s.paint.get("raster-brightness-min"),u_brightness_high:s.paint.get("raster-brightness-max"),u_saturation_factor:(m=s.paint.get("raster-saturation"),m>0?1-1/(1.001-m):-m),u_contrast_factor:(p=s.paint.get("raster-contrast"),p>0?1/(1-p):1+p),u_spin_weights:gc(s.paint.get("raster-hue-rotate")),u_coords_top:[l[0].x,l[0].y,l[1].x,l[1].y],u_coords_bottom:[l[3].x,l[3].y,l[2].x,l[2].y]};var p,m};function gc(d){d*=Math.PI/180;const t=Math.sin(d),n=Math.cos(d);return[(2*n+1)/3,(-Math.sqrt(3)*t-n+1)/3,(Math.sqrt(3)*t-n+1)/3]}const Ys=(d,t,n,s,l,p,m,g,x,w,T,I,M)=>{const z=m.transform;return{u_is_size_zoom_constant:+(d==="constant"||d==="source"),u_is_size_feature_constant:+(d==="constant"||d==="camera"),u_size_t:t?t.uSizeT:0,u_size:t?t.uSize:0,u_camera_to_center_distance:z.cameraToCenterDistance,u_pitch:z.pitch/360*2*Math.PI,u_rotate_symbol:+n,u_aspect_ratio:z.width/z.height,u_fade_change:m.options.fadeDuration?m.symbolFadeChange:1,u_label_plane_matrix:g,u_coord_matrix:x,u_is_text:+T,u_pitch_with_map:+s,u_is_along_line:l,u_is_variable_anchor:p,u_texsize:I,u_texture:0,u_translation:w,u_pitched_scale:M}},hn=(d,t,n,s,l,p,m,g,x,w,T,I,M,z)=>{const L=m.transform;return c.e(Ys(d,t,n,s,l,p,m,g,x,w,T,I,z),{u_gamma_scale:s?Math.cos(L.pitch*Math.PI/180)*L.cameraToCenterDistance:1,u_device_pixel_ratio:m.pixelRatio,u_is_halo:1})},Qo=(d,t,n,s,l,p,m,g,x,w,T,I,M)=>c.e(hn(d,t,n,s,l,p,m,g,x,w,!0,T,0,M),{u_texsize_icon:I,u_texture_icon:1}),Gu=(d,t)=>({u_opacity:d,u_color:t}),qu=(d,t,n,s,l)=>c.e((function(p,m,g,x){const w=g.imageManager.getPattern(p.from.toString()),T=g.imageManager.getPattern(p.to.toString()),{width:I,height:M}=g.imageManager.getPixelSize(),z=Math.pow(2,x.tileID.overscaledZ),L=x.tileSize*Math.pow(2,g.transform.tileZoom)/z,j=L*(x.tileID.canonical.x+x.tileID.wrap*z),U=L*x.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:w.tl,u_pattern_br_a:w.br,u_pattern_tl_b:T.tl,u_pattern_br_b:T.br,u_texsize:[I,M],u_mix:m.t,u_pattern_size_a:w.displaySize,u_pattern_size_b:T.displaySize,u_scale_a:m.fromScale,u_scale_b:m.toScale,u_tile_units_to_pixels:1/c.aN(x,1,g.transform.tileZoom),u_pixel_coord_upper:[j>>16,U>>16],u_pixel_coord_lower:[65535&j,65535&U]}})(n,l,t,s),{u_opacity:d}),yc=(d,t)=>{},Zu={fillExtrusion:(d,t)=>({u_lightpos:new c.c2(d,t.u_lightpos),u_lightpos_globe:new c.c2(d,t.u_lightpos_globe),u_lightintensity:new c.bq(d,t.u_lightintensity),u_lightcolor:new c.c2(d,t.u_lightcolor),u_vertical_gradient:new c.bq(d,t.u_vertical_gradient),u_opacity:new c.bq(d,t.u_opacity),u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillExtrusionPattern:(d,t)=>({u_lightpos:new c.c2(d,t.u_lightpos),u_lightpos_globe:new c.c2(d,t.u_lightpos_globe),u_lightintensity:new c.bq(d,t.u_lightintensity),u_lightcolor:new c.c2(d,t.u_lightcolor),u_vertical_gradient:new c.bq(d,t.u_vertical_gradient),u_height_factor:new c.bq(d,t.u_height_factor),u_opacity:new c.bq(d,t.u_opacity),u_fill_translate:new c.c3(d,t.u_fill_translate),u_image:new c.b_(d,t.u_image),u_texsize:new c.c3(d,t.u_texsize),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade)}),fill:(d,t)=>({u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillPattern:(d,t)=>({u_image:new c.b_(d,t.u_image),u_texsize:new c.c3(d,t.u_texsize),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade),u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillOutline:(d,t)=>({u_world:new c.c3(d,t.u_world),u_fill_translate:new c.c3(d,t.u_fill_translate)}),fillOutlinePattern:(d,t)=>({u_world:new c.c3(d,t.u_world),u_image:new c.b_(d,t.u_image),u_texsize:new c.c3(d,t.u_texsize),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade),u_fill_translate:new c.c3(d,t.u_fill_translate)}),circle:(d,t)=>({u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_scale_with_map:new c.b_(d,t.u_scale_with_map),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_extrude_scale:new c.c3(d,t.u_extrude_scale),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_globe_extrude_scale:new c.bq(d,t.u_globe_extrude_scale),u_translate:new c.c3(d,t.u_translate)}),collisionBox:(d,t)=>({u_pixel_extrude_scale:new c.c3(d,t.u_pixel_extrude_scale)}),collisionCircle:(d,t)=>({u_viewport_size:new c.c3(d,t.u_viewport_size)}),debug:(d,t)=>({u_color:new c.b$(d,t.u_color),u_overlay:new c.b_(d,t.u_overlay),u_overlay_scale:new c.bq(d,t.u_overlay_scale)}),depth:yc,clippingMask:yc,heatmap:(d,t)=>({u_extrude_scale:new c.bq(d,t.u_extrude_scale),u_intensity:new c.bq(d,t.u_intensity),u_globe_extrude_scale:new c.bq(d,t.u_globe_extrude_scale)}),heatmapTexture:(d,t)=>({u_matrix:new c.c0(d,t.u_matrix),u_world:new c.c3(d,t.u_world),u_image:new c.b_(d,t.u_image),u_color_ramp:new c.b_(d,t.u_color_ramp),u_opacity:new c.bq(d,t.u_opacity)}),hillshade:(d,t)=>({u_image:new c.b_(d,t.u_image),u_latrange:new c.c3(d,t.u_latrange),u_exaggeration:new c.bq(d,t.u_exaggeration),u_altitudes:new c.c9(d,t.u_altitudes),u_azimuths:new c.c9(d,t.u_azimuths),u_accent:new c.b$(d,t.u_accent),u_method:new c.b_(d,t.u_method),u_shadows:new c.c8(d,t.u_shadows),u_highlights:new c.c8(d,t.u_highlights)}),hillshadePrepare:(d,t)=>({u_matrix:new c.c0(d,t.u_matrix),u_image:new c.b_(d,t.u_image),u_dimension:new c.c3(d,t.u_dimension),u_zoom:new c.bq(d,t.u_zoom),u_unpack:new c.c1(d,t.u_unpack)}),colorRelief:(d,t)=>({u_image:new c.b_(d,t.u_image),u_unpack:new c.c1(d,t.u_unpack),u_dimension:new c.c3(d,t.u_dimension),u_elevation_stops:new c.b_(d,t.u_elevation_stops),u_color_stops:new c.b_(d,t.u_color_stops),u_color_ramp_size:new c.b_(d,t.u_color_ramp_size),u_opacity:new c.bq(d,t.u_opacity)}),line:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels)}),lineGradient:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_image:new c.b_(d,t.u_image),u_image_height:new c.bq(d,t.u_image_height)}),linePattern:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_texsize:new c.c3(d,t.u_texsize),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_image:new c.b_(d,t.u_image),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_scale:new c.c2(d,t.u_scale),u_fade:new c.bq(d,t.u_fade)}),lineSDF:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_image:new c.b_(d,t.u_image),u_mix:new c.bq(d,t.u_mix),u_tileratio:new c.bq(d,t.u_tileratio),u_crossfade_from:new c.bq(d,t.u_crossfade_from),u_crossfade_to:new c.bq(d,t.u_crossfade_to),u_lineatlas_width:new c.bq(d,t.u_lineatlas_width),u_lineatlas_height:new c.bq(d,t.u_lineatlas_height)}),lineGradientSDF:(d,t)=>({u_translation:new c.c3(d,t.u_translation),u_ratio:new c.bq(d,t.u_ratio),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_units_to_pixels:new c.c3(d,t.u_units_to_pixels),u_image:new c.b_(d,t.u_image),u_image_height:new c.bq(d,t.u_image_height),u_tileratio:new c.bq(d,t.u_tileratio),u_crossfade_from:new c.bq(d,t.u_crossfade_from),u_crossfade_to:new c.bq(d,t.u_crossfade_to),u_image_dash:new c.b_(d,t.u_image_dash),u_mix:new c.bq(d,t.u_mix),u_lineatlas_width:new c.bq(d,t.u_lineatlas_width),u_lineatlas_height:new c.bq(d,t.u_lineatlas_height)}),raster:(d,t)=>({u_tl_parent:new c.c3(d,t.u_tl_parent),u_scale_parent:new c.bq(d,t.u_scale_parent),u_buffer_scale:new c.bq(d,t.u_buffer_scale),u_fade_t:new c.bq(d,t.u_fade_t),u_opacity:new c.bq(d,t.u_opacity),u_image0:new c.b_(d,t.u_image0),u_image1:new c.b_(d,t.u_image1),u_brightness_low:new c.bq(d,t.u_brightness_low),u_brightness_high:new c.bq(d,t.u_brightness_high),u_saturation_factor:new c.bq(d,t.u_saturation_factor),u_contrast_factor:new c.bq(d,t.u_contrast_factor),u_spin_weights:new c.c2(d,t.u_spin_weights),u_coords_top:new c.c1(d,t.u_coords_top),u_coords_bottom:new c.c1(d,t.u_coords_bottom)}),symbolIcon:(d,t)=>({u_is_size_zoom_constant:new c.b_(d,t.u_is_size_zoom_constant),u_is_size_feature_constant:new c.b_(d,t.u_is_size_feature_constant),u_size_t:new c.bq(d,t.u_size_t),u_size:new c.bq(d,t.u_size),u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_pitch:new c.bq(d,t.u_pitch),u_rotate_symbol:new c.b_(d,t.u_rotate_symbol),u_aspect_ratio:new c.bq(d,t.u_aspect_ratio),u_fade_change:new c.bq(d,t.u_fade_change),u_label_plane_matrix:new c.c0(d,t.u_label_plane_matrix),u_coord_matrix:new c.c0(d,t.u_coord_matrix),u_is_text:new c.b_(d,t.u_is_text),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_is_along_line:new c.b_(d,t.u_is_along_line),u_is_variable_anchor:new c.b_(d,t.u_is_variable_anchor),u_texsize:new c.c3(d,t.u_texsize),u_texture:new c.b_(d,t.u_texture),u_translation:new c.c3(d,t.u_translation),u_pitched_scale:new c.bq(d,t.u_pitched_scale)}),symbolSDF:(d,t)=>({u_is_size_zoom_constant:new c.b_(d,t.u_is_size_zoom_constant),u_is_size_feature_constant:new c.b_(d,t.u_is_size_feature_constant),u_size_t:new c.bq(d,t.u_size_t),u_size:new c.bq(d,t.u_size),u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_pitch:new c.bq(d,t.u_pitch),u_rotate_symbol:new c.b_(d,t.u_rotate_symbol),u_aspect_ratio:new c.bq(d,t.u_aspect_ratio),u_fade_change:new c.bq(d,t.u_fade_change),u_label_plane_matrix:new c.c0(d,t.u_label_plane_matrix),u_coord_matrix:new c.c0(d,t.u_coord_matrix),u_is_text:new c.b_(d,t.u_is_text),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_is_along_line:new c.b_(d,t.u_is_along_line),u_is_variable_anchor:new c.b_(d,t.u_is_variable_anchor),u_texsize:new c.c3(d,t.u_texsize),u_texture:new c.b_(d,t.u_texture),u_gamma_scale:new c.bq(d,t.u_gamma_scale),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_is_halo:new c.b_(d,t.u_is_halo),u_translation:new c.c3(d,t.u_translation),u_pitched_scale:new c.bq(d,t.u_pitched_scale)}),symbolTextAndIcon:(d,t)=>({u_is_size_zoom_constant:new c.b_(d,t.u_is_size_zoom_constant),u_is_size_feature_constant:new c.b_(d,t.u_is_size_feature_constant),u_size_t:new c.bq(d,t.u_size_t),u_size:new c.bq(d,t.u_size),u_camera_to_center_distance:new c.bq(d,t.u_camera_to_center_distance),u_pitch:new c.bq(d,t.u_pitch),u_rotate_symbol:new c.b_(d,t.u_rotate_symbol),u_aspect_ratio:new c.bq(d,t.u_aspect_ratio),u_fade_change:new c.bq(d,t.u_fade_change),u_label_plane_matrix:new c.c0(d,t.u_label_plane_matrix),u_coord_matrix:new c.c0(d,t.u_coord_matrix),u_is_text:new c.b_(d,t.u_is_text),u_pitch_with_map:new c.b_(d,t.u_pitch_with_map),u_is_along_line:new c.b_(d,t.u_is_along_line),u_is_variable_anchor:new c.b_(d,t.u_is_variable_anchor),u_texsize:new c.c3(d,t.u_texsize),u_texsize_icon:new c.c3(d,t.u_texsize_icon),u_texture:new c.b_(d,t.u_texture),u_texture_icon:new c.b_(d,t.u_texture_icon),u_gamma_scale:new c.bq(d,t.u_gamma_scale),u_device_pixel_ratio:new c.bq(d,t.u_device_pixel_ratio),u_is_halo:new c.b_(d,t.u_is_halo),u_translation:new c.c3(d,t.u_translation),u_pitched_scale:new c.bq(d,t.u_pitched_scale)}),background:(d,t)=>({u_opacity:new c.bq(d,t.u_opacity),u_color:new c.b$(d,t.u_color)}),backgroundPattern:(d,t)=>({u_opacity:new c.bq(d,t.u_opacity),u_image:new c.b_(d,t.u_image),u_pattern_tl_a:new c.c3(d,t.u_pattern_tl_a),u_pattern_br_a:new c.c3(d,t.u_pattern_br_a),u_pattern_tl_b:new c.c3(d,t.u_pattern_tl_b),u_pattern_br_b:new c.c3(d,t.u_pattern_br_b),u_texsize:new c.c3(d,t.u_texsize),u_mix:new c.bq(d,t.u_mix),u_pattern_size_a:new c.c3(d,t.u_pattern_size_a),u_pattern_size_b:new c.c3(d,t.u_pattern_size_b),u_scale_a:new c.bq(d,t.u_scale_a),u_scale_b:new c.bq(d,t.u_scale_b),u_pixel_coord_upper:new c.c3(d,t.u_pixel_coord_upper),u_pixel_coord_lower:new c.c3(d,t.u_pixel_coord_lower),u_tile_units_to_pixels:new c.bq(d,t.u_tile_units_to_pixels)}),terrain:(d,t)=>({u_texture:new c.b_(d,t.u_texture),u_ele_delta:new c.bq(d,t.u_ele_delta),u_fog_matrix:new c.c0(d,t.u_fog_matrix),u_fog_color:new c.b$(d,t.u_fog_color),u_fog_ground_blend:new c.bq(d,t.u_fog_ground_blend),u_fog_ground_blend_opacity:new c.bq(d,t.u_fog_ground_blend_opacity),u_horizon_color:new c.b$(d,t.u_horizon_color),u_horizon_fog_blend:new c.bq(d,t.u_horizon_fog_blend),u_is_globe_mode:new c.bq(d,t.u_is_globe_mode)}),terrainDepth:(d,t)=>({u_ele_delta:new c.bq(d,t.u_ele_delta)}),terrainCoords:(d,t)=>({u_texture:new c.b_(d,t.u_texture),u_terrain_coords_id:new c.bq(d,t.u_terrain_coords_id),u_ele_delta:new c.bq(d,t.u_ele_delta)}),projectionErrorMeasurement:(d,t)=>({u_input:new c.bq(d,t.u_input),u_output_expected:new c.bq(d,t.u_output_expected)}),atmosphere:(d,t)=>({u_sun_pos:new c.c2(d,t.u_sun_pos),u_atmosphere_blend:new c.bq(d,t.u_atmosphere_blend),u_globe_position:new c.c2(d,t.u_globe_position),u_globe_radius:new c.bq(d,t.u_globe_radius),u_inv_proj_matrix:new c.c0(d,t.u_inv_proj_matrix)}),sky:(d,t)=>({u_sky_color:new c.b$(d,t.u_sky_color),u_horizon_color:new c.b$(d,t.u_horizon_color),u_horizon:new c.c3(d,t.u_horizon),u_horizon_normal:new c.c3(d,t.u_horizon_normal),u_sky_horizon_blend:new c.bq(d,t.u_sky_horizon_blend),u_sky_blend:new c.bq(d,t.u_sky_blend)})};class xc{constructor(t,n,s){this.context=t;const l=t.gl;this.buffer=l.createBuffer(),this.dynamicDraw=!!s,this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),l.bufferData(l.ELEMENT_ARRAY_BUFFER,n.arrayBuffer,this.dynamicDraw?l.DYNAMIC_DRAW:l.STATIC_DRAW),this.dynamicDraw||delete n.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(t){const n=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),n.bufferSubData(n.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const $u={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class vc{constructor(t,n,s,l){this.length=n.length,this.attributes=s,this.itemSize=n.bytesPerElement,this.dynamicDraw=l,this.context=t;const p=t.gl;this.buffer=p.createBuffer(),t.bindVertexBuffer.set(this.buffer),p.bufferData(p.ARRAY_BUFFER,n.arrayBuffer,this.dynamicDraw?p.DYNAMIC_DRAW:p.STATIC_DRAW),this.dynamicDraw||delete n.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(t){if(t.length!==this.length)throw new Error(`Length of new data is ${t.length}, which doesn't match current length of ${this.length}`);const n=this.context.gl;this.bind(),n.bufferSubData(n.ARRAY_BUFFER,0,t.arrayBuffer)}enableAttributes(t,n){for(let s=0;s<this.attributes.length;s++){const l=n.attributes[this.attributes[s].name];l!==void 0&&t.enableVertexAttribArray(l)}}setVertexAttribPointers(t,n,s){for(let l=0;l<this.attributes.length;l++){const p=this.attributes[l],m=n.attributes[p.name];m!==void 0&&t.vertexAttribPointer(m,p.components,t[$u[p.type]],!1,this.itemSize,p.offset+this.itemSize*(s||0))}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}class nt{constructor(t){this.gl=t.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(t){}getDefault(){return this.default}setDefault(){this.set(this.default)}}class Ks extends nt{getDefault(){return c.bp.transparent}set(t){const n=this.current;(t.r!==n.r||t.g!==n.g||t.b!==n.b||t.a!==n.a||this.dirty)&&(this.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1)}}class Js extends nt{getDefault(){return 1}set(t){(t!==this.current||this.dirty)&&(this.gl.clearDepth(t),this.current=t,this.dirty=!1)}}class el extends nt{getDefault(){return 0}set(t){(t!==this.current||this.dirty)&&(this.gl.clearStencil(t),this.current=t,this.dirty=!1)}}class Bn extends nt{getDefault(){return[!0,!0,!0,!0]}set(t){const n=this.current;(t[0]!==n[0]||t[1]!==n[1]||t[2]!==n[2]||t[3]!==n[3]||this.dirty)&&(this.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1)}}class es extends nt{getDefault(){return!0}set(t){(t!==this.current||this.dirty)&&(this.gl.depthMask(t),this.current=t,this.dirty=!1)}}class _a extends nt{getDefault(){return 255}set(t){(t!==this.current||this.dirty)&&(this.gl.stencilMask(t),this.current=t,this.dirty=!1)}}class er extends nt{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(t){const n=this.current;(t.func!==n.func||t.ref!==n.ref||t.mask!==n.mask||this.dirty)&&(this.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t,this.dirty=!1)}}class bc extends nt{getDefault(){const t=this.gl;return[t.KEEP,t.KEEP,t.KEEP]}set(t){const n=this.current;(t[0]!==n[0]||t[1]!==n[1]||t[2]!==n[2]||this.dirty)&&(this.gl.stencilOp(t[0],t[1],t[2]),this.current=t,this.dirty=!1)}}class wc extends nt{getDefault(){return!1}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;t?n.enable(n.STENCIL_TEST):n.disable(n.STENCIL_TEST),this.current=t,this.dirty=!1}}class tl extends nt{getDefault(){return[0,1]}set(t){const n=this.current;(t[0]!==n[0]||t[1]!==n[1]||this.dirty)&&(this.gl.depthRange(t[0],t[1]),this.current=t,this.dirty=!1)}}class On extends nt{getDefault(){return!1}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;t?n.enable(n.DEPTH_TEST):n.disable(n.DEPTH_TEST),this.current=t,this.dirty=!1}}class Qs extends nt{getDefault(){return this.gl.LESS}set(t){(t!==this.current||this.dirty)&&(this.gl.depthFunc(t),this.current=t,this.dirty=!1)}}class eo extends nt{getDefault(){return!1}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;t?n.enable(n.BLEND):n.disable(n.BLEND),this.current=t,this.dirty=!1}}class ts extends nt{getDefault(){const t=this.gl;return[t.ONE,t.ZERO]}set(t){const n=this.current;(t[0]!==n[0]||t[1]!==n[1]||this.dirty)&&(this.gl.blendFunc(t[0],t[1]),this.current=t,this.dirty=!1)}}class to extends nt{getDefault(){return c.bp.transparent}set(t){const n=this.current;(t.r!==n.r||t.g!==n.g||t.b!==n.b||t.a!==n.a||this.dirty)&&(this.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1)}}class Tc extends nt{getDefault(){return this.gl.FUNC_ADD}set(t){(t!==this.current||this.dirty)&&(this.gl.blendEquation(t),this.current=t,this.dirty=!1)}}class ga extends nt{getDefault(){return!1}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;t?n.enable(n.CULL_FACE):n.disable(n.CULL_FACE),this.current=t,this.dirty=!1}}class ya extends nt{getDefault(){return this.gl.BACK}set(t){(t!==this.current||this.dirty)&&(this.gl.cullFace(t),this.current=t,this.dirty=!1)}}class Sc extends nt{getDefault(){return this.gl.CCW}set(t){(t!==this.current||this.dirty)&&(this.gl.frontFace(t),this.current=t,this.dirty=!1)}}class il extends nt{getDefault(){return null}set(t){(t!==this.current||this.dirty)&&(this.gl.useProgram(t),this.current=t,this.dirty=!1)}}class Qe extends nt{getDefault(){return this.gl.TEXTURE0}set(t){(t!==this.current||this.dirty)&&(this.gl.activeTexture(t),this.current=t,this.dirty=!1)}}class io extends nt{getDefault(){const t=this.gl;return[0,0,t.drawingBufferWidth,t.drawingBufferHeight]}set(t){const n=this.current;(t[0]!==n[0]||t[1]!==n[1]||t[2]!==n[2]||t[3]!==n[3]||this.dirty)&&(this.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1)}}class Wu extends nt{getDefault(){return null}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.bindFramebuffer(n.FRAMEBUFFER,t),this.current=t,this.dirty=!1}}class Pc extends nt{getDefault(){return null}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.bindRenderbuffer(n.RENDERBUFFER,t),this.current=t,this.dirty=!1}}class is extends nt{getDefault(){return null}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.bindTexture(n.TEXTURE_2D,t),this.current=t,this.dirty=!1}}class Hu extends nt{getDefault(){return null}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.bindBuffer(n.ARRAY_BUFFER,t),this.current=t,this.dirty=!1}}class Xu extends nt{getDefault(){return null}set(t){const n=this.gl;n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t),this.current=t,this.dirty=!1}}class Mc extends nt{getDefault(){return null}set(t){var n;if(t===this.current&&!this.dirty)return;const s=this.gl;Qi(s)?s.bindVertexArray(t):(n=s.getExtension("OES_vertex_array_object"))===null||n===void 0||n.bindVertexArrayOES(t),this.current=t,this.dirty=!1}}class Yu extends nt{getDefault(){return 4}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.pixelStorei(n.UNPACK_ALIGNMENT,t),this.current=t,this.dirty=!1}}class rl extends nt{getDefault(){return!1}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t,this.dirty=!1}}class ro extends nt{getDefault(){return!1}set(t){if(t===this.current&&!this.dirty)return;const n=this.gl;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,t),this.current=t,this.dirty=!1}}class Vn extends nt{constructor(t,n){super(t),this.context=t,this.parent=n}getDefault(){return null}}class no extends Vn{setDirty(){this.dirty=!0}set(t){if(t===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const n=this.gl;n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0),this.current=t,this.dirty=!1}}class nl extends Vn{set(t){if(t===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const n=this.gl;n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t),this.current=t,this.dirty=!1}}class Ic extends Vn{set(t){if(t===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const n=this.gl;n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,t),this.current=t,this.dirty=!1}}const rs="Framebuffer is not complete";class ao{constructor(t,n,s,l,p){this.context=t,this.width=n,this.height=s;const m=t.gl,g=this.framebuffer=m.createFramebuffer();if(this.colorAttachment=new no(t,g),l)this.depthAttachment=p?new Ic(t,g):new nl(t,g);else if(p)throw new Error("Stencil cannot be set without depth");if(m.checkFramebufferStatus(m.FRAMEBUFFER)!==m.FRAMEBUFFER_COMPLETE)throw new Error(rs)}destroy(){const t=this.context.gl,n=this.colorAttachment.get();if(n&&t.deleteTexture(n),this.depthAttachment){const s=this.depthAttachment.get();s&&t.deleteRenderbuffer(s)}t.deleteFramebuffer(this.framebuffer)}}class ns{constructor(t){var n,s;if(this.gl=t,this.clearColor=new Ks(this),this.clearDepth=new Js(this),this.clearStencil=new el(this),this.colorMask=new Bn(this),this.depthMask=new es(this),this.stencilMask=new _a(this),this.stencilFunc=new er(this),this.stencilOp=new bc(this),this.stencilTest=new wc(this),this.depthRange=new tl(this),this.depthTest=new On(this),this.depthFunc=new Qs(this),this.blend=new eo(this),this.blendFunc=new ts(this),this.blendColor=new to(this),this.blendEquation=new Tc(this),this.cullFace=new ga(this),this.cullFaceSide=new ya(this),this.frontFace=new Sc(this),this.program=new il(this),this.activeTexture=new Qe(this),this.viewport=new io(this),this.bindFramebuffer=new Wu(this),this.bindRenderbuffer=new Pc(this),this.bindTexture=new is(this),this.bindVertexBuffer=new Hu(this),this.bindElementBuffer=new Xu(this),this.bindVertexArray=new Mc(this),this.pixelStoreUnpack=new Yu(this),this.pixelStoreUnpackPremultiplyAlpha=new rl(this),this.pixelStoreUnpackFlipY=new ro(this),this.extTextureFilterAnisotropic=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.maxTextureSize=t.getParameter(t.MAX_TEXTURE_SIZE),Qi(t)){this.HALF_FLOAT=t.HALF_FLOAT;const l=t.getExtension("EXT_color_buffer_half_float");this.RGBA16F=(n=t.RGBA16F)!==null&&n!==void 0?n:l?.RGBA16F_EXT,this.RGB16F=(s=t.RGB16F)!==null&&s!==void 0?s:l?.RGB16F_EXT,t.getExtension("EXT_color_buffer_float")}else{t.getExtension("EXT_color_buffer_half_float"),t.getExtension("OES_texture_half_float_linear");const l=t.getExtension("OES_texture_half_float");this.HALF_FLOAT=l?.HALF_FLOAT_OES}}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()}setDirty(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.bindVertexArray.dirty=!0,this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0}createIndexBuffer(t,n){return new xc(this,t,n)}createVertexBuffer(t,n,s){return new vc(this,t,n,s)}createRenderbuffer(t,n,s){const l=this.gl,p=l.createRenderbuffer();return this.bindRenderbuffer.set(p),l.renderbufferStorage(l.RENDERBUFFER,t,n,s),this.bindRenderbuffer.set(null),p}createFramebuffer(t,n,s,l){return new ao(this,t,n,s,l)}clear({color:t,depth:n,stencil:s}){const l=this.gl;let p=0;t&&(p|=l.COLOR_BUFFER_BIT,this.clearColor.set(t),this.colorMask.set([!0,!0,!0,!0])),n!==void 0&&(p|=l.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(n),this.depthMask.set(!0)),s!==void 0&&(p|=l.STENCIL_BUFFER_BIT,this.clearStencil.set(s),this.stencilMask.set(255)),l.clear(p)}setCullFace(t){t.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(t.mode),this.frontFace.set(t.frontFace))}setDepthMode(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1)}setStencilMode(t){t.test.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1)}setColorMode(t){c.bR(t.blendFunction,dt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(t.blendFunction),this.blendColor.set(t.blendColor)),this.colorMask.set(t.mask)}createVertexArray(){var t;return Qi(this.gl)?this.gl.createVertexArray():(t=this.gl.getExtension("OES_vertex_array_object"))===null||t===void 0?void 0:t.createVertexArrayOES()}deleteVertexArray(t){var n;return Qi(this.gl)?this.gl.deleteVertexArray(t):(n=this.gl.getExtension("OES_vertex_array_object"))===null||n===void 0?void 0:n.deleteVertexArrayOES(t)}unbindVAO(){this.bindVertexArray.set(null)}}let Or;function so(d,t,n,s,l){const p=d.context,m=d.transform,g=p.gl,x=d.useProgram("collisionBox"),w=[];let T=0,I=0;for(let N=0;N<s.length;N++){const Z=s[N],X=t.getTile(Z).getBucket(n);if(!X)continue;const q=l?X.textCollisionBox:X.iconCollisionBox,Y=X.collisionCircleArray;Y.length>0&&(w.push({circleArray:Y,circleOffset:I,coord:Z}),T+=Y.length/4,I=T),q&&x.draw(p,g.LINES,Xe.disabled,rt.disabled,d.colorModeForRenderPass(),tt.disabled,hc(d.transform),d.style.map.terrain&&d.style.map.terrain.getTerrainData(Z),m.getProjectionData({overscaledTileID:Z,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),n.id,q.layoutVertexBuffer,q.indexBuffer,q.segments,null,d.transform.zoom,null,null,q.collisionVertexBuffer)}if(!l||!w.length)return;const M=d.useProgram("collisionCircle"),z=new c.ca;z.resize(4*T),z._trim();let L=0;for(const N of w)for(let Z=0;Z<N.circleArray.length/4;Z++){const X=4*Z,q=N.circleArray[X+0],Y=N.circleArray[X+1],Q=N.circleArray[X+2],W=N.circleArray[X+3];z.emplace(L++,q,Y,Q,W,0),z.emplace(L++,q,Y,Q,W,1),z.emplace(L++,q,Y,Q,W,2),z.emplace(L++,q,Y,Q,W,3)}(!Or||Or.length<2*T)&&(Or=(function(N){const Z=2*N,X=new c.cc;X.resize(Z),X._trim();for(let q=0;q<Z;q++){const Y=6*q;X.uint16[Y+0]=4*q+0,X.uint16[Y+1]=4*q+1,X.uint16[Y+2]=4*q+2,X.uint16[Y+3]=4*q+2,X.uint16[Y+4]=4*q+3,X.uint16[Y+5]=4*q+0}return X})(T));const j=p.createIndexBuffer(Or,!0),U=p.createVertexBuffer(z,c.cb.members,!0);for(const N of w){const Z=dc(d.transform);M.draw(p,g.TRIANGLES,Xe.disabled,rt.disabled,d.colorModeForRenderPass(),tt.disabled,Z,d.style.map.terrain&&d.style.map.terrain.getTerrainData(N.coord),null,n.id,U,j,c.aX.simpleSegment(0,2*N.circleOffset,N.circleArray.length,N.circleArray.length/2),null,d.transform.zoom,null,null,null)}U.destroy(),j.destroy()}const Ku=c.ar(new Float32Array(16));function as(d,t,n,s,l,p){const{horizontalAlign:m,verticalAlign:g}=c.aS(d);return new c.P((-(m-.5)*t/l+s[0])*p,(-(g-.5)*n/l+s[1])*p)}function Ju(d,t,n,s,l,p){const m=t.tileAnchorPoint.add(new c.P(t.translation[0],t.translation[1]));if(t.pitchWithMap){let g=s.mult(p);n||(g=g.rotate(-l));const x=m.add(g);return na(x.x,x.y,t.pitchedLabelPlaneMatrix,t.getElevation).point}if(n){const g=Cn(t.tileAnchorPoint.x+1,t.tileAnchorPoint.y,t).point.sub(d),x=Math.atan(g.y/g.x)+(g.x<0?Math.PI:0);return d.add(s.rotate(x))}return d.add(s)}function Ec(d,t,n,s,l,p,m,g,x,w,T,I){const M=d.text.placedSymbolArray,z=d.text.dynamicLayoutVertexArray,L=d.icon.dynamicLayoutVertexArray,j={};z.clear();for(let U=0;U<M.length;U++){const N=M.get(U),Z=N.hidden||!N.crossTileID||d.allowVerticalPlacement&&!N.placedOrientation?null:s[N.crossTileID];if(Z){const X=new c.P(N.anchorX,N.anchorY),q={getElevation:I,width:l.width,height:l.height,pitchedLabelPlaneMatrix:p,pitchWithMap:n,transform:l,tileAnchorPoint:X,translation:w,unwrappedTileID:T},Y=n?Rs(X.x,X.y,q):Cn(X.x,X.y,q),Q=aa(l.cameraToCenterDistance,Y.signedDistanceFromCamera);let W=c.aA(d.textSizeData,g,N)*Q/c.aM;n&&(W*=d.tilePixelRatio/m);const{width:te,height:de,anchor:ue,textOffset:le,textBoxScale:he}=Z,Me=as(ue,te,de,le,he,W),Ie=l.getPitchedTextCorrection(X.x+w[0],X.y+w[1],T),_e=Ju(Y.point,q,t,Me,-l.bearingInRadians,Ie),Le=d.allowVerticalPlacement&&N.placedOrientation===c.az.vertical?Math.PI/2:0;for(let He=0;He<N.numGlyphs;He++)c.aG(z,_e,Le);x&&N.associatedIconIndex>=0&&(j[N.associatedIconIndex]={shiftedAnchor:_e,angle:Le})}else An(N.numGlyphs,z)}if(x){L.clear();const U=d.icon.placedSymbolArray;for(let N=0;N<U.length;N++){const Z=U.get(N);if(Z.hidden)An(Z.numGlyphs,L);else{const X=j[N];if(X)for(let q=0;q<Z.numGlyphs;q++)c.aG(L,X.shiftedAnchor,X.angle);else An(Z.numGlyphs,L)}}d.icon.dynamicLayoutVertexBuffer.updateData(L)}d.text.dynamicLayoutVertexBuffer.updateData(z)}function oo(d,t,n){return n.iconsInText&&t?"symbolTextAndIcon":d?"symbolSDF":"symbolIcon"}function lo(d,t,n,s,l,p,m,g,x,w,T,I,M){const z=d.context,L=z.gl,j=d.transform,U=g==="map",N=x==="map",Z=g!=="viewport"&&n.layout.get("symbol-placement")!=="point",X=U&&!N&&!Z,q=!n.layout.get("symbol-sort-key").isConstant();let Y=!1;const Q=d.getDepthModeForSublayer(0,Xe.ReadOnly),W=n._unevaluatedLayout.hasValue("text-variable-anchor")||n._unevaluatedLayout.hasValue("text-variable-anchor-offset"),te=[],de=j.getCircleRadiusCorrection();for(const ue of s){const le=t.getTile(ue),he=le.getBucket(n);if(!he)continue;const Me=l?he.text:he.icon;if(!Me||!Me.segments.get().length||!Me.hasVisibleVertices)continue;const Ie=Me.programConfigurations.get(n.id),_e=l||he.sdfIcons,Le=l?he.textSizeData:he.iconSizeData,He=N||j.pitch!==0,lt=d.useProgram(oo(_e,l,he),Ie),_t=c.ay(Le,j.zoom),ft=d.style.map.terrain&&d.style.map.terrain.getTerrainData(ue);let wt,ct,$t,Tt,si=[0,0],zt=null;if(l)ct=le.glyphAtlasTexture,$t=L.LINEAR,wt=le.glyphAtlasTexture.size,he.iconsInText&&(si=le.imageAtlasTexture.size,zt=le.imageAtlasTexture,Tt=He||d.options.rotating||d.options.zooming||Le.kind==="composite"||Le.kind==="camera"?L.LINEAR:L.NEAREST);else{const ht=n.layout.get("icon-size").constantOr(0)!==1||he.iconsNeedLinear;ct=le.imageAtlasTexture,$t=_e||d.options.rotating||d.options.zooming||ht||He?L.LINEAR:L.NEAREST,wt=le.imageAtlasTexture.size}const Dt=c.aN(le,1,d.transform.zoom),wi=ra(U,d.transform,Dt),Gr=c.N();c.aB(Gr,wi);const Pr=En(N,U,d.transform,Dt),Ti=c.aO(j,le,p,m),qr=j.getProjectionData({overscaledTileID:ue,applyGlobeMatrix:!M,applyTerrainMatrix:!0}),ws=W&&he.hasTextData(),Ts=n.layout.get("icon-text-fit")!=="none"&&ws&&he.hasIconData();if(Z){const ht=d.style.map.terrain?(Zi,Kt)=>d.style.map.terrain.getElevation(ue,Zi,Kt):null,St=n.layout.get("text-rotation-alignment")==="map";Ba(he,d,l,wi,Gr,N,w,St,ue.toUnwrapped(),j.width,j.height,Ti,ht)}const wa=l&&W||Ts,zi=Z||wa?Ku:N?wi:d.transform.clipSpaceToPixelsMatrix,ir=_e&&n.paint.get(l?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let Gi;Gi=_e?he.iconsInText?Qo(Le.kind,_t,X,N,Z,wa,d,zi,Pr,Ti,wt,si,de):hn(Le.kind,_t,X,N,Z,wa,d,zi,Pr,Ti,l,wt,0,de):Ys(Le.kind,_t,X,N,Z,wa,d,zi,Pr,Ti,l,wt,de);const qi={program:lt,buffers:Me,uniformValues:Gi,projectionData:qr,atlasTexture:ct,atlasTextureIcon:zt,atlasInterpolation:$t,atlasInterpolationIcon:Tt,isSDF:_e,hasHalo:ir};if(q&&he.canOverlap){Y=!0;const ht=Me.segments.get();for(const St of ht)te.push({segments:new c.aX([St]),sortKey:St.sortKey,state:qi,terrainData:ft})}else te.push({segments:Me.segments,sortKey:0,state:qi,terrainData:ft})}Y&&te.sort(((ue,le)=>ue.sortKey-le.sortKey));for(const ue of te){const le=ue.state;if(z.activeTexture.set(L.TEXTURE0),le.atlasTexture.bind(le.atlasInterpolation,L.CLAMP_TO_EDGE),le.atlasTextureIcon&&(z.activeTexture.set(L.TEXTURE1),le.atlasTextureIcon&&le.atlasTextureIcon.bind(le.atlasInterpolationIcon,L.CLAMP_TO_EDGE)),le.isSDF){const he=le.uniformValues;le.hasHalo&&(he.u_is_halo=1,al(le.buffers,ue.segments,n,d,le.program,Q,T,I,he,le.projectionData,ue.terrainData)),he.u_is_halo=0}al(le.buffers,ue.segments,n,d,le.program,Q,T,I,le.uniformValues,le.projectionData,ue.terrainData)}}function al(d,t,n,s,l,p,m,g,x,w,T){const I=s.context;l.draw(I,I.gl.TRIANGLES,p,m,g,tt.backCCW,x,T,w,n.id,d.layoutVertexBuffer,d.indexBuffer,t,n.paint,s.transform.zoom,d.programConfigurations.get(n.id),d.dynamicLayoutVertexBuffer,d.opacityVertexBuffer)}function Cc(d,t,n,s,l){const p=d.context,m=p.gl,g=rt.disabled,x=new dt([m.ONE,m.ONE],c.bp.transparent,[!0,!0,!0,!0]),w=t.getBucket(n);if(!w)return;const T=s.key;let I=n.heatmapFbos.get(T);I||(I=uo(p,t.tileSize,t.tileSize),n.heatmapFbos.set(T,I)),p.bindFramebuffer.set(I.framebuffer),p.viewport.set([0,0,t.tileSize,t.tileSize]),p.clear({color:c.bp.transparent});const M=w.programConfigurations.get(n.id),z=d.useProgram("heatmap",M,!l),L=d.transform.getProjectionData({overscaledTileID:t.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),j=d.style.map.terrain.getTerrainData(s);z.draw(p,m.TRIANGLES,Xe.disabled,g,x,tt.disabled,pc(t,d.transform.zoom,n.paint.get("heatmap-intensity"),1),j,L,n.id,w.layoutVertexBuffer,w.indexBuffer,w.segments,n.paint,d.transform.zoom,M)}function co(d,t,n,s,l){const p=d.context,m=p.gl,g=d.transform;p.setColorMode(d.colorModeForRenderPass());const x=Ac(p,t),w=n.key,T=t.heatmapFbos.get(w);if(!T)return;p.activeTexture.set(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,T.colorAttachment.get()),p.activeTexture.set(m.TEXTURE1),x.bind(m.LINEAR,m.CLAMP_TO_EDGE);const I=g.getProjectionData({overscaledTileID:n,applyTerrainMatrix:l,applyGlobeMatrix:!s});d.useProgram("heatmapTexture").draw(p,m.TRIANGLES,Xe.disabled,rt.disabled,d.colorModeForRenderPass(),tt.disabled,Ka(d,t,0,1),null,I,t.id,d.rasterBoundsBuffer,d.quadTriangleIndexBuffer,d.rasterBoundsSegments,t.paint,g.zoom),T.destroy(),t.heatmapFbos.delete(w)}function uo(d,t,n){var s,l;const p=d.gl,m=p.createTexture();p.bindTexture(p.TEXTURE_2D,m),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_S,p.CLAMP_TO_EDGE),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_T,p.CLAMP_TO_EDGE),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,p.LINEAR),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,p.LINEAR);const g=(s=d.HALF_FLOAT)!==null&&s!==void 0?s:p.UNSIGNED_BYTE,x=(l=d.RGBA16F)!==null&&l!==void 0?l:p.RGBA;p.texImage2D(p.TEXTURE_2D,0,x,t,n,0,p.RGBA,g,null);const w=d.createFramebuffer(t,n,!1,!1);return w.colorAttachment.set(m),w}function Ac(d,t){return t.colorRampTexture||(t.colorRampTexture=new c.T(d,t.colorRamp,d.gl.RGBA)),t.colorRampTexture}function sl(d,t,n,s,l,p,m,g){let x=256;if(l.stepInterpolant){const w=t.getSource().maxzoom,T=m.canonical.z===w?Math.ceil(1<<d.transform.maxZoom-m.canonical.z):1;x=c.an(c.ce(p.maxLineLength/c.a5*1024*T),256,n.maxTextureSize)}return g.gradient=c.cf({expression:l.gradientExpression(),evaluationKey:"lineProgress",resolution:x,image:g.gradient||void 0,clips:p.lineClipsArray}),g.texture?g.texture.update(g.gradient):g.texture=new c.T(n,g.gradient,s.RGBA),g.version=l.gradientVersion,g.texture}function Bt(d,t,n,s,l){d.activeTexture.set(t.TEXTURE0),n.imageAtlasTexture.bind(t.LINEAR,t.CLAMP_TO_EDGE),s.updatePaintBuffers(l)}function jn(d,t,n,s,l,p){(l||d.lineAtlas.dirty)&&(t.activeTexture.set(n.TEXTURE0),d.lineAtlas.bind(t)),s.updatePaintBuffers(p)}function Ni(d,t,n,s,l,p,m){const g=p.gradients[l.id];let x=g.texture;l.gradientVersion!==g.version&&(x=sl(d,t,n,s,l,p,m,g)),n.activeTexture.set(s.TEXTURE0),x.bind(l.stepInterpolant?s.NEAREST:s.LINEAR,s.CLAMP_TO_EDGE)}function ol(d,t,n,s,l,p,m,g,x){const w=p.gradients[l.id];let T=w.texture;l.gradientVersion!==w.version&&(T=sl(d,t,n,s,l,p,m,w)),n.activeTexture.set(s.TEXTURE0),T.bind(l.stepInterpolant?s.NEAREST:s.LINEAR,s.CLAMP_TO_EDGE),n.activeTexture.set(s.TEXTURE1),d.lineAtlas.bind(n),g.updatePaintBuffers(x)}function ss(d,t,n,s,l){if(!n||!s||!s.imageAtlas)return;const p=s.imageAtlas.patternPositions;let m=p[n.to.toString()],g=p[n.from.toString()];if(!m&&g&&(m=g),!g&&m&&(g=m),!m||!g){const x=l.getPaintProperty(t);m=p[x],g=p[x]}m&&g&&d.setConstantPatternPositions(m,g)}function ll(d,t,n,s,l,p,m,g){const x=d.context.gl,w="fill-pattern",T=n.paint.get(w),I=T&&T.constantOr(1),M=n.getCrossfadeParameters();let z,L,j,U,N;const Z=d.transform,X=n.paint.get("fill-translate"),q=n.paint.get("fill-translate-anchor");m?(L=I&&!n.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",z=x.LINES):(L=I?"fillPattern":"fill",z=x.TRIANGLES);const Y=T.constantOr(null);for(const Q of s){const W=t.getTile(Q);if(I&&!W.patternsLoaded())continue;const te=W.getBucket(n);if(!te)continue;const de=te.programConfigurations.get(n.id),ue=d.useProgram(L,de),le=d.style.map.terrain&&d.style.map.terrain.getTerrainData(Q);I&&(d.context.activeTexture.set(x.TEXTURE0),W.imageAtlasTexture.bind(x.LINEAR,x.CLAMP_TO_EDGE),de.updatePaintBuffers(M)),ss(de,w,Y,W,n);const he=Z.getProjectionData({overscaledTileID:Q,applyGlobeMatrix:!g,applyTerrainMatrix:!0}),Me=c.aO(Z,W,X,q);if(m){U=te.indexBuffer2,N=te.segments2;const _e=[x.drawingBufferWidth,x.drawingBufferHeight];j=L==="fillOutlinePattern"&&I?uc(d,M,W,_e,Me):cc(_e,Me)}else U=te.indexBuffer,N=te.segments,j=I?Yo(d,M,W,Me):{u_fill_translate:Me};const Ie=d.stencilModeForClipping(Q);ue.draw(d.context,z,l,Ie,p,tt.backCCW,j,le,he,n.id,te.layoutVertexBuffer,U,N,n.paint,d.transform.zoom,de)}}function dn(d,t,n,s,l,p,m,g){const x=d.context,w=x.gl,T="fill-extrusion-pattern",I=n.paint.get(T),M=I.constantOr(1),z=n.getCrossfadeParameters(),L=n.paint.get("fill-extrusion-opacity"),j=I.constantOr(null),U=d.transform;for(const N of s){const Z=t.getTile(N),X=Z.getBucket(n);if(!X)continue;const q=d.style.map.terrain&&d.style.map.terrain.getTerrainData(N),Y=X.programConfigurations.get(n.id),Q=d.useProgram(M?"fillExtrusionPattern":"fillExtrusion",Y);M&&(d.context.activeTexture.set(w.TEXTURE0),Z.imageAtlasTexture.bind(w.LINEAR,w.CLAMP_TO_EDGE),Y.updatePaintBuffers(z));const W=U.getProjectionData({overscaledTileID:N,applyGlobeMatrix:!g,applyTerrainMatrix:!0});ss(Y,T,j,Z,n);const te=c.aO(U,Z,n.paint.get("fill-extrusion-translate"),n.paint.get("fill-extrusion-translate-anchor")),de=n.paint.get("fill-extrusion-vertical-gradient"),ue=M?lc(d,de,L,te,N,z,Z):Ws(d,de,L,te);Q.draw(x,x.gl.TRIANGLES,l,p,m,tt.backCCW,ue,q,W,n.id,X.layoutVertexBuffer,X.indexBuffer,X.segments,n.paint,d.transform.zoom,Y,d.style.map.terrain&&X.centroidVertexBuffer)}}function os(d,t,n,s,l,p,m,g,x){var w;const T=d.style.projection,I=d.context,M=d.transform,z=I.gl,L=[`#define NUM_ILLUMINATION_SOURCES ${n.paint.get("hillshade-highlight-color").values.length}`],j=d.useProgram("hillshade",null,!1,L),U=!d.options.moving;for(const N of s){const Z=t.getTile(N),X=Z.fbo;if(!X)continue;const q=T.getMeshFromTileID(I,N.canonical,g,!0,"raster"),Y=(w=d.style.map.terrain)===null||w===void 0?void 0:w.getTerrainData(N);I.activeTexture.set(z.TEXTURE0),z.bindTexture(z.TEXTURE_2D,X.colorAttachment.get());const Q=M.getProjectionData({overscaledTileID:N,aligned:U,applyGlobeMatrix:!x,applyTerrainMatrix:!0});j.draw(I,z.TRIANGLES,p,l[N.overscaledZ],m,tt.backCCW,Nu(d,Z,n),Y,Q,n.id,q.vertexBuffer,q.indexBuffer,q.segments)}}function Nn(d,t,n,s,l,p,m,g,x){var w;const T=d.style.projection,I=d.context,M=d.transform,z=I.gl,L=d.useProgram("colorRelief"),j=!d.options.moving;let U=!0,N=0;for(const Z of s){const X=t.getTile(Z),q=X.dem;if(U){const ue=z.getParameter(z.MAX_TEXTURE_SIZE),{elevationTexture:le,colorTexture:he}=n.getColorRampTextures(I,ue,q.getUnpackVector());I.activeTexture.set(z.TEXTURE1),le.bind(z.NEAREST,z.CLAMP_TO_EDGE),I.activeTexture.set(z.TEXTURE4),he.bind(z.LINEAR,z.CLAMP_TO_EDGE),U=!1,N=le.size[0]}if(!q||!q.data)continue;const Y=q.stride,Q=q.getPixels();if(I.activeTexture.set(z.TEXTURE0),I.pixelStoreUnpackPremultiplyAlpha.set(!1),X.demTexture=X.demTexture||d.getTileTexture(Y),X.demTexture){const ue=X.demTexture;ue.update(Q,{premultiply:!1}),ue.bind(z.LINEAR,z.CLAMP_TO_EDGE)}else X.demTexture=new c.T(I,Q,z.RGBA,{premultiply:!1}),X.demTexture.bind(z.LINEAR,z.CLAMP_TO_EDGE);const W=T.getMeshFromTileID(I,Z.canonical,g,!0,"raster"),te=(w=d.style.map.terrain)===null||w===void 0?void 0:w.getTerrainData(Z),de=M.getProjectionData({overscaledTileID:Z,aligned:j,applyGlobeMatrix:!x,applyTerrainMatrix:!0});L.draw(I,z.TRIANGLES,p,l[Z.overscaledZ],m,tt.backCCW,mc(n,X.dem,N),te,de,n.id,W.vertexBuffer,W.indexBuffer,W.segments)}}const ls=[new c.P(0,0),new c.P(c.a5,0),new c.P(c.a5,c.a5),new c.P(0,c.a5)];function cs(d,t,n,s,l,p,m,g,x=!1,w=!1){const T=s[s.length-1].overscaledZ,I=d.context,M=I.gl,z=d.useProgram("raster"),L=d.transform,j=d.style.projection,U=d.colorModeForRenderPass(),N=!d.options.moving,Z=n.paint.get("raster-opacity"),X=n.paint.get("raster-resampling"),q=n.paint.get("raster-fade-duration"),Y=!!d.style.map.terrain;for(const Q of s){const W=d.getDepthModeForSublayer(Q.overscaledZ-T,Z===1?Xe.ReadWrite:Xe.ReadOnly,M.LESS),te=t.getTile(Q),de=X==="nearest"?M.NEAREST:M.LINEAR;I.activeTexture.set(M.TEXTURE0),te.texture.bind(de,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST),I.activeTexture.set(M.TEXTURE1);const{parentTile:ue,parentScaleBy:le,parentTopLeft:he,fadeValues:Me}=zc(te,t,q,Y);te.fadeOpacity=Me.tileOpacity,ue?(ue.fadeOpacity=Me.parentTileOpacity,ue.texture.bind(de,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST)):te.texture.bind(de,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST),te.texture.useMipmap&&I.extTextureFilterAnisotropic&&d.transform.pitch>d.options.anisotropicFilterPitch&&M.texParameterf(M.TEXTURE_2D,I.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,I.extTextureFilterAnisotropicMax);const Ie=d.style.map.terrain&&d.style.map.terrain.getTerrainData(Q),_e=L.getProjectionData({overscaledTileID:Q,aligned:N,applyGlobeMatrix:!w,applyTerrainMatrix:!0}),Le=Jo(he,le,Me.fadeMix,n,g),He=j.getMeshFromTileID(I,Q.canonical,p,m,"raster");z.draw(I,M.TRIANGLES,W,l?l[Q.overscaledZ]:rt.disabled,U,x?tt.frontCCW:tt.backCCW,Le,Ie,_e,n.id,He.vertexBuffer,He.indexBuffer,He.segments)}}function zc(d,t,n,s){const l={parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:{tileOpacity:1,parentTileOpacity:1,fadeMix:{opacity:1,mix:0}}};if(n===0||s)return l;if(d.fadingParentID){const p=t.getLoadedTile(d.fadingParentID);if(!p)return l;const m=Math.pow(2,p.tileID.overscaledZ-d.tileID.overscaledZ),g=[d.tileID.canonical.x*m%1,d.tileID.canonical.y*m%1],x=(function(w,T,I){const M=it(),z=(M-T.timeAdded)/I,L=w.fadingDirection===J.Incoming,j=c.an((M-w.timeAdded)/I,0,1),U=c.an(1-z,0,1),N=L?j:U;return{tileOpacity:N,parentTileOpacity:L?U:j,fadeMix:{opacity:1,mix:1-N}}})(d,p,n);return{parentTile:p,parentScaleBy:m,parentTopLeft:g,fadeValues:x}}if(d.selfFading){const p=(function(m,g){const x=(it()-m.timeAdded)/g,w=c.an(x,0,1);return{tileOpacity:w,fadeMix:{opacity:w,mix:0}}})(d,n);return{parentTile:null,parentScaleBy:1,parentTopLeft:[0,0],fadeValues:p}}return l}const Dc=new c.bp(1,0,0,1),kc=new c.bp(0,1,0,1),Rc=new c.bp(0,0,1,1),pn=new c.bp(1,0,1,1),Lc=new c.bp(0,1,1,1);function cl(d,t,n,s){us(d,0,t+n/2,d.transform.width,n,s)}function ul(d,t,n,s){us(d,t-n/2,0,n,d.transform.height,s)}function us(d,t,n,s,l,p){const m=d.context,g=m.gl;g.enable(g.SCISSOR_TEST),g.scissor(t*d.pixelRatio,n*d.pixelRatio,s*d.pixelRatio,l*d.pixelRatio),m.clear({color:p}),g.disable(g.SCISSOR_TEST)}function Fc(d,t,n){const s=d.context,l=s.gl,p=d.useProgram("debug"),m=Xe.disabled,g=rt.disabled,x=d.colorModeForRenderPass(),w="$debug",T=d.style.map.terrain&&d.style.map.terrain.getTerrainData(n);s.activeTexture.set(l.TEXTURE0);const I=t.getTileByID(n.key).latestRawTileData,M=Math.floor((I&&I.byteLength||0)/1024),z=t.getTile(n).tileSize,L=512/Math.min(z,512)*(n.overscaledZ/d.transform.zoom)*.5;let j=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(j+=` => ${n.overscaledZ}`),(function(N,Z){N.initDebugOverlayCanvas();const X=N.debugOverlayCanvas,q=N.context.gl,Y=N.debugOverlayCanvas.getContext("2d");Y.clearRect(0,0,X.width,X.height),Y.shadowColor="white",Y.shadowBlur=2,Y.lineWidth=1.5,Y.strokeStyle="white",Y.textBaseline="top",Y.font="bold 36px Open Sans, sans-serif",Y.fillText(Z,5,5),Y.strokeText(Z,5,5),N.debugOverlayTexture.update(X),N.debugOverlayTexture.bind(q.LINEAR,q.CLAMP_TO_EDGE)})(d,`${j} ${M}kB`);const U=d.transform.getProjectionData({overscaledTileID:n,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(s,l.TRIANGLES,m,g,dt.alphaBlended,tt.disabled,ma(c.bp.transparent,L),null,U,w,d.debugBuffer,d.quadTriangleIndexBuffer,d.debugSegments),p.draw(s,l.LINE_STRIP,m,g,x,tt.disabled,ma(c.bp.red),T,U,w,d.debugBuffer,d.tileBorderIndexBuffer,d.debugSegments)}function hl(d,t,n,s){const{isRenderingGlobe:l}=s,p=d.context,m=p.gl,g=d.transform,x=d.colorModeForRenderPass(),w=d.getDepthModeFor3D(),T=d.useProgram("terrain");p.bindFramebuffer.set(null),p.viewport.set([0,0,d.width,d.height]);for(const I of n){const M=t.getTerrainMesh(I.tileID),z=d.renderToTexture.getTexture(I),L=t.getTerrainData(I.tileID);p.activeTexture.set(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,z.texture);const j=t.getMeshFrameDelta(g.zoom),U=g.calculateFogMatrix(I.tileID.toUnwrapped()),N=fa(j,U,d.style.sky,g.pitch,l),Z=g.getProjectionData({overscaledTileID:I.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});T.draw(p,m.TRIANGLES,w,rt.disabled,x,tt.backCCW,N,L,Z,"terrain",M.vertexBuffer,M.indexBuffer,M.segments)}}function dl(d,t){if(!t.mesh){const n=new c.aW;n.emplaceBack(-1,-1),n.emplaceBack(1,-1),n.emplaceBack(1,1),n.emplaceBack(-1,1);const s=new c.aY;s.emplaceBack(0,1,2),s.emplaceBack(0,2,3),t.mesh=new ca(d.createVertexBuffer(n,Gt.members),d.createIndexBuffer(s),c.aX.simpleSegment(0,0,n.length,s.length))}return t.mesh}class Bc{constructor(t,n){this.context=new ns(t),this.transform=n,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:c.ar(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=Pe.maxOverzooming+Pe.maxUnderzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new pi}resize(t,n,s){if(this.width=Math.floor(t*s),this.height=Math.floor(n*s),this.pixelRatio=s,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const l of this.style._order)this.style._layers[l].resize()}setup(){const t=this.context,n=new c.aW;n.emplaceBack(0,0),n.emplaceBack(c.a5,0),n.emplaceBack(0,c.a5),n.emplaceBack(c.a5,c.a5),this.tileExtentBuffer=t.createVertexBuffer(n,Gt.members),this.tileExtentSegments=c.aX.simpleSegment(0,0,4,2);const s=new c.aW;s.emplaceBack(0,0),s.emplaceBack(c.a5,0),s.emplaceBack(0,c.a5),s.emplaceBack(c.a5,c.a5),this.debugBuffer=t.createVertexBuffer(s,Gt.members),this.debugSegments=c.aX.simpleSegment(0,0,4,5);const l=new c.ch;l.emplaceBack(0,0,0,0),l.emplaceBack(c.a5,0,c.a5,0),l.emplaceBack(0,c.a5,0,c.a5),l.emplaceBack(c.a5,c.a5,c.a5,c.a5),this.rasterBoundsBuffer=t.createVertexBuffer(l,$s.members),this.rasterBoundsSegments=c.aX.simpleSegment(0,0,4,2);const p=new c.aW;p.emplaceBack(0,0),p.emplaceBack(c.a5,0),p.emplaceBack(0,c.a5),p.emplaceBack(c.a5,c.a5),this.rasterBoundsBufferPosOnly=t.createVertexBuffer(p,Gt.members),this.rasterBoundsSegmentsPosOnly=c.aX.simpleSegment(0,0,4,5);const m=new c.aW;m.emplaceBack(0,0),m.emplaceBack(1,0),m.emplaceBack(0,1),m.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(m,Gt.members),this.viewportSegments=c.aX.simpleSegment(0,0,4,2);const g=new c.ci;g.emplaceBack(0),g.emplaceBack(1),g.emplaceBack(3),g.emplaceBack(2),g.emplaceBack(0),this.tileBorderIndexBuffer=t.createIndexBuffer(g);const x=new c.aY;x.emplaceBack(1,0,2),x.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(x);const w=this.context.gl;this.stencilClearMode=new rt({func:w.ALWAYS,mask:0},0,255,w.ZERO,w.ZERO,w.ZERO),this.tileExtentMesh=new ca(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const t=this.context,n=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const s=c.N();c.c7(s,0,this.width,this.height,0,0,1),c.Q(s,s,[n.drawingBufferWidth,n.drawingBufferHeight,0]);const l={mainMatrix:s,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:s};this.useProgram("clippingMask",null,!0).draw(t,n.TRIANGLES,Xe.disabled,this.stencilClearMode,dt.disabled,tt.disabled,null,null,l,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(t,n,s){if(this.currentStencilSource===t.source||!t.isTileClipped()||!n||!n.length)return;this.currentStencilSource=t.source,this.nextStencilID+n.length>256&&this.clearStencil();const l=this.context;l.setColorMode(dt.disabled),l.setDepthMode(Xe.disabled);const p={};for(const m of n)p[m.key]=this.nextStencilID++;this._renderTileMasks(p,n,s,!0),this._renderTileMasks(p,n,s,!1),this._tileClippingMaskIDs=p}_renderTileMasks(t,n,s,l){const p=this.context,m=p.gl,g=this.style.projection,x=this.transform,w=this.useProgram("clippingMask");for(const T of n){const I=t[T.key],M=this.style.map.terrain&&this.style.map.terrain.getTerrainData(T),z=g.getMeshFromTileID(this.context,T.canonical,l,!0,"stencil"),L=x.getProjectionData({overscaledTileID:T,applyGlobeMatrix:!s,applyTerrainMatrix:!0});w.draw(p,m.TRIANGLES,Xe.disabled,new rt({func:m.ALWAYS,mask:0},I,255,m.KEEP,m.KEEP,m.REPLACE),dt.disabled,s?tt.disabled:tt.backCCW,null,M,L,"$clipping",z.vertexBuffer,z.indexBuffer,z.segments)}}_renderTilesDepthBuffer(){const t=this.context,n=t.gl,s=this.style.projection,l=this.transform,p=this.useProgram("depth"),m=this.getDepthModeFor3D(),g=mt(l,{tileSize:l.tileSize});for(const x of g){const w=this.style.map.terrain&&this.style.map.terrain.getTerrainData(x),T=s.getMeshFromTileID(this.context,x.canonical,!0,!0,"raster"),I=l.getProjectionData({overscaledTileID:x,applyGlobeMatrix:!0,applyTerrainMatrix:!0});p.draw(t,n.TRIANGLES,m,rt.disabled,dt.disabled,tt.backCCW,null,w,I,"$clipping",T.vertexBuffer,T.indexBuffer,T.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,n=this.context.gl;return new rt({func:n.NOTEQUAL,mask:255},t,255,n.KEEP,n.KEEP,n.REPLACE)}stencilModeForClipping(t){const n=this.context.gl;return new rt({func:n.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,n.KEEP,n.KEEP,n.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(t){const n=this.context.gl,s=t.sort(((m,g)=>g.overscaledZ-m.overscaledZ)),l=s[s.length-1].overscaledZ,p=s[0].overscaledZ-l+1;if(p>1){this.currentStencilSource=void 0,this.nextStencilID+p>256&&this.clearStencil();const m={};for(let g=0;g<p;g++)m[g+l]=new rt({func:n.GEQUAL,mask:255},g+this.nextStencilID,255,n.KEEP,n.KEEP,n.REPLACE);return this.nextStencilID+=p,[m,s]}return[{[l]:rt.disabled},s]}stencilConfigForOverlapTwoPass(t){const n=this.context.gl,s=t.sort(((m,g)=>g.overscaledZ-m.overscaledZ)),l=s[s.length-1].overscaledZ,p=s[0].overscaledZ-l+1;if(this.clearStencil(),p>1){const m={},g={};for(let x=0;x<p;x++)m[x+l]=new rt({func:n.GREATER,mask:255},p+1+x,255,n.KEEP,n.KEEP,n.REPLACE),g[x+l]=new rt({func:n.GREATER,mask:255},1+x,255,n.KEEP,n.KEEP,n.REPLACE);return this.nextStencilID=2*p+1,[m,g,s]}return this.nextStencilID=3,[{[l]:new rt({func:n.GREATER,mask:255},2,255,n.KEEP,n.KEEP,n.REPLACE)},{[l]:new rt({func:n.GREATER,mask:255},1,255,n.KEEP,n.KEEP,n.REPLACE)},s]}colorModeForRenderPass(){const t=this.context.gl;return this._showOverdrawInspector?new dt([t.CONSTANT_COLOR,t.ONE],new c.bp(.125,.125,.125,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?dt.unblended:dt.alphaBlended}getDepthModeForSublayer(t,n,s){if(!this.opaquePassEnabledForLayer())return Xe.disabled;const l=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon;return new Xe(s||this.context.gl.LEQUAL,n,[l,l])}getDepthModeFor3D(){return new Xe(this.context.gl.LEQUAL,Xe.ReadWrite,this.depthRangeFor3D)}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(t,n){var s,l;this.style=t,this.options=n,this.lineAtlas=t.lineAtlas,this.imageManager=t.imageManager,this.glyphManager=t.glyphManager,this.symbolFadeChange=t.placement.symbolFadeChange(it()),this.imageManager.beginFrame();const p=this.style._order,m=this.style.tileManagers,g={},x={},w={},T={isRenderingToTexture:!1,isRenderingGlobe:((s=t.projection)===null||s===void 0?void 0:s.transitionState)>0};for(const M in m){const z=m[M];z.used&&z.prepare(this.context),g[M]=z.getVisibleCoordinates(!1),x[M]=g[M].slice().reverse(),w[M]=z.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let M=0;M<p.length;M++)if(this.style._layers[p[M]].is3D()){this.opaquePassCutoff=M;break}this.maybeDrawDepthAndCoords(!1),this.renderToTexture&&(this.renderToTexture.prepareForRender(this.style,this.transform.zoom),this.opaquePassCutoff=0),this.renderPass="offscreen";for(const M of p){const z=this.style._layers[M];if(!z.hasOffscreenPass()||z.isHidden(this.transform.zoom))continue;const L=x[z.source];(z.type==="custom"||L.length)&&this.renderLayer(this,m[z.source],z,L,T)}if((l=this.style.projection)===null||l===void 0||l.updateGPUdependent({context:this.context,useProgram:M=>this.useProgram(M)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:n.showOverdrawInspector?c.bp.black:c.bp.transparent,depth:1}),this.clearStencil(),this.style.sky&&(function(M,z){const L=M.context,j=L.gl,U=((Q,W,te)=>{const de=Math.cos(W.rollInRadians),ue=Math.sin(W.rollInRadians),le=me(W),he=W.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:Q.properties.get("sky-color"),u_horizon_color:Q.properties.get("horizon-color"),u_horizon:[(W.width/2-le*ue)*te,(W.height/2+le*de)*te],u_horizon_normal:[-ue,de],u_sky_horizon_blend:Q.properties.get("sky-horizon-blend")*W.height/2*te,u_sky_blend:he}})(z,M.style.map.transform,M.pixelRatio),N=new Xe(j.LEQUAL,Xe.ReadWrite,[0,1]),Z=rt.disabled,X=M.colorModeForRenderPass(),q=M.useProgram("sky"),Y=dl(L,z);q.draw(L,j.TRIANGLES,N,Z,X,tt.disabled,U,null,void 0,"sky",Y.vertexBuffer,Y.indexBuffer,Y.segments)})(this,this.style.sky),this._showOverdrawInspector=n.showOverdrawInspector,this.depthRangeFor3D=[0,1-(t._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=p.length-1;this.currentLayer>=0;this.currentLayer--){const M=this.style._layers[p[this.currentLayer]],z=m[M.source],L=g[M.source];this._renderTileClippingMasks(M,L,!1),this.renderLayer(this,z,M,L,T)}this.renderPass="translucent";let I=!1;for(this.currentLayer=0;this.currentLayer<p.length;this.currentLayer++){const M=this.style._layers[p[this.currentLayer]],z=m[M.source];if(this.renderToTexture&&this.renderToTexture.renderLayer(M,T))continue;this.opaquePassEnabledForLayer()||I||(I=!0,T.isRenderingGlobe&&!this.style.map.terrain&&this._renderTilesDepthBuffer());const L=(M.type==="symbol"?w:x)[M.source];this._renderTileClippingMasks(M,g[M.source],!!this.renderToTexture),this.renderLayer(this,z,M,L,T)}if(T.isRenderingGlobe&&(function(M,z,L){const j=M.context,U=j.gl,N=M.useProgram("atmosphere"),Z=new Xe(U.LEQUAL,Xe.ReadOnly,[0,1]),X=M.transform,q=(function(he,Me){const Ie=he.properties.get("position"),_e=[-Ie.x,-Ie.y,-Ie.z],Le=c.ar(new Float64Array(16));return he.properties.get("anchor")==="map"&&(c.bg(Le,Le,Me.rollInRadians),c.bh(Le,Le,-Me.pitchInRadians),c.bg(Le,Le,Me.bearingInRadians),c.bh(Le,Le,Me.center.lat*Math.PI/180),c.bJ(Le,Le,-Me.center.lng*Math.PI/180)),c.cg(_e,_e,Le),_e})(L,M.transform),Y=X.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),Q=z.properties.get("atmosphere-blend")*Y.projectionTransition;if(Q===0)return;const W=Wa(X.worldSize,X.center.lat),te=X.inverseProjectionMatrix,de=new Float64Array(4);de[3]=1,c.aH(de,de,X.modelViewProjectionMatrix),de[0]/=de[3],de[1]/=de[3],de[2]/=de[3],de[3]=1,c.aH(de,de,te),de[0]/=de[3],de[1]/=de[3],de[2]/=de[3],de[3]=1;const ue=((he,Me,Ie,_e,Le)=>({u_sun_pos:he,u_atmosphere_blend:Me,u_globe_position:Ie,u_globe_radius:_e,u_inv_proj_matrix:Le}))(q,Q,[de[0],de[1],de[2]],W,te),le=dl(j,z);N.draw(j,U.TRIANGLES,Z,rt.disabled,dt.alphaBlended,tt.disabled,ue,null,null,"atmosphere",le.vertexBuffer,le.indexBuffer,le.segments)})(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const M=(function(z,L){let j=null;const U=Object.values(z._layers).flatMap((q=>q.source&&!q.isHidden(L)?[z.tileManagers[q.source]]:[])),N=U.filter((q=>q.getSource().type==="vector")),Z=U.filter((q=>q.getSource().type!=="vector")),X=q=>{(!j||j.getSource().maxzoom<q.getSource().maxzoom)&&(j=q)};return N.forEach((q=>X(q))),j||Z.forEach((q=>X(q))),j})(this.style,this.transform.zoom);M&&(function(z,L,j){for(let U=0;U<j.length;U++)Fc(z,L,j[U])})(this,M,M.getVisibleCoordinates())}this.options.showPadding&&(function(M){const z=M.transform.padding;cl(M,M.transform.height-(z.top||0),3,Dc),cl(M,z.bottom||0,3,kc),ul(M,z.left||0,3,Rc),ul(M,M.transform.width-(z.right||0),3,pn);const L=M.transform.centerPoint;(function(j,U,N,Z){us(j,U-1,N-10,2,20,Z),us(j,U-10,N-1,20,2,Z)})(M,L.x,M.transform.height-L.y,Lc)})(this),this.context.setDefault()}maybeDrawDepthAndCoords(t){if(!this.style||!this.style.map||!this.style.map.terrain)return;const n=this.terrainFacilitator.matrix,s=this.transform.modelViewProjectionMatrix;let l=this.terrainFacilitator.dirty;l||(l=t?!c.cj(n,s):!c.ck(n,s)),l||(l=this.style.map.terrain.tileManager.anyTilesAfterTime(this.terrainFacilitator.renderTime)),l&&(c.cl(n,s),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,(function(p,m){const g=p.context,x=g.gl,w=p.transform,T=dt.unblended,I=new Xe(x.LEQUAL,Xe.ReadWrite,[0,1]),M=m.tileManager.getRenderableTiles(),z=p.useProgram("terrainDepth");g.bindFramebuffer.set(m.getFramebuffer("depth").framebuffer),g.viewport.set([0,0,p.width/devicePixelRatio,p.height/devicePixelRatio]),g.clear({color:c.bp.transparent,depth:1});for(const L of M){const j=m.getTerrainMesh(L.tileID),U=m.getTerrainData(L.tileID),N=w.getProjectionData({overscaledTileID:L.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0}),Z={u_ele_delta:m.getMeshFrameDelta(w.zoom)};z.draw(g,x.TRIANGLES,I,rt.disabled,T,tt.backCCW,Z,U,N,"terrain",j.vertexBuffer,j.indexBuffer,j.segments)}g.bindFramebuffer.set(null),g.viewport.set([0,0,p.width,p.height])})(this,this.style.map.terrain),(function(p,m){const g=p.context,x=g.gl,w=p.transform,T=dt.unblended,I=new Xe(x.LEQUAL,Xe.ReadWrite,[0,1]),M=m.getCoordsTexture(),z=m.tileManager.getRenderableTiles(),L=p.useProgram("terrainCoords");g.bindFramebuffer.set(m.getFramebuffer("coords").framebuffer),g.viewport.set([0,0,p.width/devicePixelRatio,p.height/devicePixelRatio]),g.clear({color:c.bp.transparent,depth:1}),m.coordsIndex=[];for(const j of z){const U=m.getTerrainMesh(j.tileID),N=m.getTerrainData(j.tileID);g.activeTexture.set(x.TEXTURE0),x.bindTexture(x.TEXTURE_2D,M.texture);const Z={u_terrain_coords_id:(255-m.coordsIndex.length)/255,u_texture:0,u_ele_delta:m.getMeshFrameDelta(w.zoom)},X=w.getProjectionData({overscaledTileID:j.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});L.draw(g,x.TRIANGLES,I,rt.disabled,T,tt.backCCW,Z,N,X,"terrain",U.vertexBuffer,U.indexBuffer,U.segments),m.coordsIndex.push(j.tileID.key)}g.bindFramebuffer.set(null),g.viewport.set([0,0,p.width,p.height])})(this,this.style.map.terrain))}renderLayer(t,n,s,l,p){s.isHidden(this.transform.zoom)||(s.type==="background"||s.type==="custom"||(l||[]).length)&&(this.id=s.id,c.cm(s)?(function(m,g,x,w,T,I){if(m.renderPass!=="translucent")return;const{isRenderingToTexture:M}=I,z=rt.disabled,L=m.colorModeForRenderPass();(x._unevaluatedLayout.hasValue("text-variable-anchor")||x._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&(function(j,U,N,Z,X,q,Y,Q,W){const te=U.transform,de=U.style.map.terrain,ue=X==="map",le=q==="map";for(const he of j){const Me=Z.getTile(he),Ie=Me.getBucket(N);if(!Ie||!Ie.text||!Ie.text.segments.get().length)continue;const _e=c.ay(Ie.textSizeData,te.zoom),Le=c.aN(Me,1,U.transform.zoom),He=ra(ue,U.transform,Le),lt=N.layout.get("icon-text-fit")!=="none"&&Ie.hasIconData();if(_e){const _t=Math.pow(2,te.zoom-Me.tileID.overscaledZ),ft=de?(wt,ct)=>de.getElevation(he,wt,ct):null;Ec(Ie,ue,le,W,te,He,_t,_e,lt,c.aO(te,Me,Y,Q),he.toUnwrapped(),ft)}}})(w,m,x,g,x.layout.get("text-rotation-alignment"),x.layout.get("text-pitch-alignment"),x.paint.get("text-translate"),x.paint.get("text-translate-anchor"),T),x.paint.get("icon-opacity").constantOr(1)!==0&&lo(m,g,x,w,!1,x.paint.get("icon-translate"),x.paint.get("icon-translate-anchor"),x.layout.get("icon-rotation-alignment"),x.layout.get("icon-pitch-alignment"),x.layout.get("icon-keep-upright"),z,L,M),x.paint.get("text-opacity").constantOr(1)!==0&&lo(m,g,x,w,!0,x.paint.get("text-translate"),x.paint.get("text-translate-anchor"),x.layout.get("text-rotation-alignment"),x.layout.get("text-pitch-alignment"),x.layout.get("text-keep-upright"),z,L,M),g.map.showCollisionBoxes&&(so(m,g,x,w,!0),so(m,g,x,w,!1))})(t,n,s,l,this.style.placement.variableOffsets,p):c.cn(s)?(function(m,g,x,w,T){if(m.renderPass!=="translucent")return;const{isRenderingToTexture:I}=T,M=x.paint.get("circle-opacity"),z=x.paint.get("circle-stroke-width"),L=x.paint.get("circle-stroke-opacity"),j=!x.layout.get("circle-sort-key").isConstant();if(M.constantOr(1)===0&&(z.constantOr(1)===0||L.constantOr(1)===0))return;const U=m.context,N=U.gl,Z=m.transform,X=m.getDepthModeForSublayer(0,Xe.ReadOnly),q=rt.disabled,Y=m.colorModeForRenderPass(),Q=[],W=Z.getCircleRadiusCorrection();for(let te=0;te<w.length;te++){const de=w[te],ue=g.getTile(de),le=ue.getBucket(x);if(!le)continue;const he=x.paint.get("circle-translate"),Me=x.paint.get("circle-translate-anchor"),Ie=c.aO(Z,ue,he,Me),_e=le.programConfigurations.get(x.id),Le=m.useProgram("circle",_e),He=le.layoutVertexBuffer,lt=le.indexBuffer,_t=m.style.map.terrain&&m.style.map.terrain.getTerrainData(de),ft={programConfiguration:_e,program:Le,layoutVertexBuffer:He,indexBuffer:lt,uniformValues:Fn(m,ue,x,Ie,W),terrainData:_t,projectionData:Z.getProjectionData({overscaledTileID:de,applyGlobeMatrix:!I,applyTerrainMatrix:!0})};if(j){const wt=le.segments.get();for(const ct of wt)Q.push({segments:new c.aX([ct]),sortKey:ct.sortKey,state:ft})}else Q.push({segments:le.segments,sortKey:0,state:ft})}j&&Q.sort(((te,de)=>te.sortKey-de.sortKey));for(const te of Q){const{programConfiguration:de,program:ue,layoutVertexBuffer:le,indexBuffer:he,uniformValues:Me,terrainData:Ie,projectionData:_e}=te.state;ue.draw(U,N.TRIANGLES,X,q,Y,tt.backCCW,Me,Ie,_e,x.id,le,he,te.segments,x.paint,m.transform.zoom,de)}})(t,n,s,l,p):c.co(s)?(function(m,g,x,w,T){if(x.paint.get("heatmap-opacity")===0)return;const I=m.context,{isRenderingToTexture:M,isRenderingGlobe:z}=T;if(m.style.map.terrain){for(const L of w){const j=g.getTile(L);g.hasRenderableParent(L)||(m.renderPass==="offscreen"?Cc(m,j,x,L,z):m.renderPass==="translucent"&&co(m,x,L,M,z))}I.viewport.set([0,0,m.width,m.height])}else m.renderPass==="offscreen"?(function(L,j,U,N){const Z=L.context,X=Z.gl,q=L.transform,Y=rt.disabled,Q=new dt([X.ONE,X.ONE],c.bp.transparent,[!0,!0,!0,!0]);(function(W,te,de){const ue=W.gl;W.activeTexture.set(ue.TEXTURE1),W.viewport.set([0,0,te.width/4,te.height/4]);let le=de.heatmapFbos.get(c.cd);le?(ue.bindTexture(ue.TEXTURE_2D,le.colorAttachment.get()),W.bindFramebuffer.set(le.framebuffer)):(le=uo(W,te.width/4,te.height/4),de.heatmapFbos.set(c.cd,le))})(Z,L,U),Z.clear({color:c.bp.transparent});for(let W=0;W<N.length;W++){const te=N[W];if(j.hasRenderableParent(te))continue;const de=j.getTile(te),ue=de.getBucket(U);if(!ue)continue;const le=ue.programConfigurations.get(U.id),he=L.useProgram("heatmap",le),Me=q.getProjectionData({overscaledTileID:te,applyGlobeMatrix:!0,applyTerrainMatrix:!1}),Ie=q.getCircleRadiusCorrection();he.draw(Z,X.TRIANGLES,Xe.disabled,Y,Q,tt.backCCW,pc(de,q.zoom,U.paint.get("heatmap-intensity"),Ie),null,Me,U.id,ue.layoutVertexBuffer,ue.indexBuffer,ue.segments,U.paint,q.zoom,le)}Z.viewport.set([0,0,L.width,L.height])})(m,g,x,w):m.renderPass==="translucent"&&(function(L,j){const U=L.context,N=U.gl;U.setColorMode(L.colorModeForRenderPass());const Z=j.heatmapFbos.get(c.cd);Z&&(U.activeTexture.set(N.TEXTURE0),N.bindTexture(N.TEXTURE_2D,Z.colorAttachment.get()),U.activeTexture.set(N.TEXTURE1),Ac(U,j).bind(N.LINEAR,N.CLAMP_TO_EDGE),L.useProgram("heatmapTexture").draw(U,N.TRIANGLES,Xe.disabled,rt.disabled,L.colorModeForRenderPass(),tt.disabled,Ka(L,j,0,1),null,null,j.id,L.viewportBuffer,L.quadTriangleIndexBuffer,L.viewportSegments,j.paint,L.transform.zoom))})(m,x)})(t,n,s,l,p):c.cp(s)?(function(m,g,x,w,T){if(m.renderPass!=="translucent")return;const{isRenderingToTexture:I}=T,M=x.paint.get("line-opacity"),z=x.paint.get("line-width");if(M.constantOr(1)===0||z.constantOr(1)===0)return;const L=m.getDepthModeForSublayer(0,Xe.ReadOnly),j=m.colorModeForRenderPass(),U=x.paint.get("line-dasharray"),N=U.constantOr(1),Z=x.paint.get("line-pattern"),X=Z.constantOr(1),q=x.paint.get("line-gradient"),Y=x.getCrossfadeParameters();let Q;Q=X?"linePattern":N&&q?"lineGradientSDF":N?"lineSDF":q?"lineGradient":"line";const W=m.context,te=W.gl,de=m.transform;let ue=!0;for(const le of w){const he=g.getTile(le);if(X&&!he.patternsLoaded())continue;const Me=he.getBucket(x);if(!Me)continue;const Ie=Me.programConfigurations.get(x.id),_e=m.context.program.get(),Le=m.useProgram(Q,Ie),He=ue||Le.program!==_e,lt=m.style.map.terrain&&m.style.map.terrain.getTerrainData(le),_t=Z.constantOr(null),ft=U&&U.constantOr(null);if(_t&&he.imageAtlas){const si=he.imageAtlas,zt=si.patternPositions[_t.to.toString()],Dt=si.patternPositions[_t.from.toString()];zt&&Dt&&Ie.setConstantPatternPositions(zt,Dt)}else if(ft){const si=x.layout.get("line-cap")==="round",zt=m.lineAtlas.getDash(ft.to,si),Dt=m.lineAtlas.getDash(ft.from,si);Ie.setConstantDashPositions(zt,Dt)}const wt=de.getProjectionData({overscaledTileID:le,applyGlobeMatrix:!I,applyTerrainMatrix:!0}),ct=de.getPixelScale();let $t;X?($t=_c(m,he,x,ct,Y),Bt(W,te,he,Ie,Y)):N&&q?($t=Br(m,he,x,ct,Y,Me.lineClipsArray.length),ol(m,g,W,te,x,Me,le,Ie,Y)):N?($t=Hs(m,he,x,ct,Y),jn(m,W,te,Ie,He,Y)):q?($t=Ko(m,he,x,ct,Me.lineClipsArray.length),Ni(m,g,W,te,x,Me,le)):$t=Ja(m,he,x,ct);const Tt=m.stencilModeForClipping(le);Le.draw(W,te.TRIANGLES,L,Tt,j,tt.disabled,$t,lt,wt,x.id,Me.layoutVertexBuffer,Me.indexBuffer,Me.segments,x.paint,m.transform.zoom,Ie,Me.layoutVertexBuffer2),ue=!1}})(t,n,s,l,p):c.cq(s)?(function(m,g,x,w,T){const I=x.paint.get("fill-color"),M=x.paint.get("fill-opacity");if(M.constantOr(1)===0)return;const{isRenderingToTexture:z}=T,L=m.colorModeForRenderPass(),j=x.paint.get("fill-pattern"),U=m.opaquePassEnabledForLayer()&&!j.constantOr(1)&&I.constantOr(c.bp.transparent).a===1&&M.constantOr(0)===1?"opaque":"translucent";if(m.renderPass===U){const N=m.getDepthModeForSublayer(1,m.renderPass==="opaque"?Xe.ReadWrite:Xe.ReadOnly);ll(m,g,x,w,N,L,!1,z)}if(m.renderPass==="translucent"&&x.paint.get("fill-antialias")){const N=m.getDepthModeForSublayer(x.getPaintProperty("fill-outline-color")?2:0,Xe.ReadOnly);ll(m,g,x,w,N,L,!0,z)}})(t,n,s,l,p):c.cr(s)?(function(m,g,x,w,T){const I=x.paint.get("fill-extrusion-opacity");if(I===0)return;const{isRenderingToTexture:M}=T;if(m.renderPass==="translucent"){const z=new Xe(m.context.gl.LEQUAL,Xe.ReadWrite,m.depthRangeFor3D);if(I!==1||x.paint.get("fill-extrusion-pattern").constantOr(1))dn(m,g,x,w,z,rt.disabled,dt.disabled,M),dn(m,g,x,w,z,m.stencilModeFor3D(),m.colorModeForRenderPass(),M);else{const L=m.colorModeForRenderPass();dn(m,g,x,w,z,rt.disabled,L,M)}}})(t,n,s,l,p):c.cs(s)?(function(m,g,x,w,T){if(m.renderPass!=="offscreen"&&m.renderPass!=="translucent")return;const{isRenderingToTexture:I}=T,M=m.context,z=m.style.projection.useSubdivision,L=m.getDepthModeForSublayer(0,Xe.ReadOnly),j=m.colorModeForRenderPass();if(m.renderPass==="offscreen")(function(U,N,Z,X,q,Y,Q){const W=U.context,te=W.gl;for(const de of Z){const ue=N.getTile(de),le=ue.dem;if(!le||!le.data||!ue.needsHillshadePrepare)continue;const he=le.dim,Me=le.stride,Ie=le.getPixels();if(W.activeTexture.set(te.TEXTURE1),W.pixelStoreUnpackPremultiplyAlpha.set(!1),ue.demTexture=ue.demTexture||U.getTileTexture(Me),ue.demTexture){const Le=ue.demTexture;Le.update(Ie,{premultiply:!1}),Le.bind(te.NEAREST,te.CLAMP_TO_EDGE)}else ue.demTexture=new c.T(W,Ie,te.RGBA,{premultiply:!1}),ue.demTexture.bind(te.NEAREST,te.CLAMP_TO_EDGE);W.activeTexture.set(te.TEXTURE0);let _e=ue.fbo;if(!_e){const Le=new c.T(W,{width:he,height:he,data:null},te.RGBA);Le.bind(te.LINEAR,te.CLAMP_TO_EDGE),_e=ue.fbo=W.createFramebuffer(he,he,!0,!1),_e.colorAttachment.set(Le.texture)}W.bindFramebuffer.set(_e.framebuffer),W.viewport.set([0,0,he,he]),U.useProgram("hillshadePrepare").draw(W,te.TRIANGLES,q,Y,Q,tt.disabled,Uu(ue.tileID,le),null,null,X.id,U.rasterBoundsBuffer,U.quadTriangleIndexBuffer,U.rasterBoundsSegments),ue.needsHillshadePrepare=!1}})(m,g,w,x,L,rt.disabled,j),M.viewport.set([0,0,m.width,m.height]);else if(m.renderPass==="translucent")if(z){const[U,N,Z]=m.stencilConfigForOverlapTwoPass(w);os(m,g,x,Z,U,L,j,!1,I),os(m,g,x,Z,N,L,j,!0,I)}else{const[U,N]=m.getStencilConfigForOverlapAndUpdateStencilID(w);os(m,g,x,N,U,L,j,!1,I)}})(t,n,s,l,p):c.ct(s)?(function(m,g,x,w,T){if(m.renderPass!=="translucent"||!w.length)return;const{isRenderingToTexture:I}=T,M=m.style.projection.useSubdivision,z=m.getDepthModeForSublayer(0,Xe.ReadOnly),L=m.colorModeForRenderPass();if(M){const[j,U,N]=m.stencilConfigForOverlapTwoPass(w);Nn(m,g,x,N,j,z,L,!1,I),Nn(m,g,x,N,U,z,L,!0,I)}else{const[j,U]=m.getStencilConfigForOverlapAndUpdateStencilID(w);Nn(m,g,x,U,j,z,L,!1,I)}})(t,n,s,l,p):c.bU(s)?(function(m,g,x,w,T){if(m.renderPass!=="translucent"||x.paint.get("raster-opacity")===0||!w.length)return;const{isRenderingToTexture:I}=T,M=g.getSource(),z=m.style.projection.useSubdivision;if(M instanceof zr)cs(m,g,x,w,null,!1,!1,M.tileCoords,M.flippedWindingOrder,I);else if(z){const[L,j,U]=m.stencilConfigForOverlapTwoPass(w);cs(m,g,x,U,L,!1,!0,ls,!1,I),cs(m,g,x,U,j,!0,!0,ls,!1,I)}else{const[L,j]=m.getStencilConfigForOverlapAndUpdateStencilID(w);cs(m,g,x,j,L,!1,!0,ls,!1,I)}})(t,n,s,l,p):c.cu(s)?(function(m,g,x,w,T){const I=x.paint.get("background-color"),M=x.paint.get("background-opacity");if(M===0)return;const{isRenderingToTexture:z}=T,L=m.context,j=L.gl,U=m.style.projection,N=m.transform,Z=N.tileSize,X=x.paint.get("background-pattern");if(m.isPatternMissing(X))return;const q=!X&&I.a===1&&M===1&&m.opaquePassEnabledForLayer()?"opaque":"translucent";if(m.renderPass!==q)return;const Y=rt.disabled,Q=m.getDepthModeForSublayer(0,q==="opaque"?Xe.ReadWrite:Xe.ReadOnly),W=m.colorModeForRenderPass(),te=m.useProgram(X?"backgroundPattern":"background"),de=w||mt(N,{tileSize:Z,terrain:m.style.map.terrain});X&&(L.activeTexture.set(j.TEXTURE0),m.imageManager.bind(m.context));const ue=x.getCrossfadeParameters();for(const le of de){const he=N.getProjectionData({overscaledTileID:le,applyGlobeMatrix:!z,applyTerrainMatrix:!0}),Me=X?qu(M,m,X,{tileID:le,tileSize:Z},ue):Gu(M,I),Ie=m.style.map.terrain&&m.style.map.terrain.getTerrainData(le),_e=U.getMeshFromTileID(L,le.canonical,!1,!0,"raster");te.draw(L,j.TRIANGLES,Q,Y,W,tt.backCCW,Me,Ie,he,x.id,_e.vertexBuffer,_e.indexBuffer,_e.segments)}})(t,0,s,l,p):c.cv(s)&&(function(m,g,x,w){const{isRenderingGlobe:T}=w,I=m.context,M=x.implementation,z=m.style.projection,L=m.transform,j=L.getProjectionDataForCustomLayer(T),U={farZ:L.farZ,nearZ:L.nearZ,fov:L.fov*Math.PI/180,modelViewProjectionMatrix:L.modelViewProjectionMatrix,projectionMatrix:L.projectionMatrix,shaderData:{variantName:z.shaderVariantName,vertexShaderPrelude:`const float PI = 3.141592653589793;
uniform mat4 u_projection_matrix;
${z.shaderPreludeCode.vertexSource}`,define:z.shaderDefine},defaultProjectionData:j},N=M.renderingMode?M.renderingMode:"2d";if(m.renderPass==="offscreen"){const Z=M.prerender;Z&&(m.setCustomLayerDefaults(),I.setColorMode(m.colorModeForRenderPass()),Z.call(M,I.gl,U),I.setDirty(),m.setBaseState())}else if(m.renderPass==="translucent"){m.setCustomLayerDefaults(),I.setColorMode(m.colorModeForRenderPass()),I.setStencilMode(rt.disabled);const Z=N==="3d"?m.getDepthModeFor3D():m.getDepthModeForSublayer(0,Xe.ReadOnly);I.setDepthMode(Z),M.render(I.gl,U),I.setDirty(),m.setBaseState(),I.bindFramebuffer.set(null)}})(t,0,s,p))}saveTileTexture(t){const n=this._tileTextures[t.size[0]];n?n.push(t):this._tileTextures[t.size[0]]=[t]}getTileTexture(t){const n=this._tileTextures[t];return n&&n.length>0?n.pop():null}isPatternMissing(t){if(!t)return!1;if(!t.from||!t.to)return!0;const n=this.imageManager.getPattern(t.from.toString()),s=this.imageManager.getPattern(t.to.toString());return!n||!s}useProgram(t,n,s=!1,l=[]){this.cache=this.cache||{};const p=!!this.style.map.terrain,m=this.style.projection,g=s?yt.projectionMercator:m.shaderPreludeCode,x=s?Oi:m.shaderDefine,w=t+(n?n.cacheKey:"")+`/${s?Ai:m.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(p?"/terrain":"")+(l?`/${l.join("/")}`:"");return this.cache[w]||(this.cache[w]=new ju(this.context,yt[t],n,Zu[t],this._showOverdrawInspector,p,g,x,l)),this.cache[w]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new c.T(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){var t,n;if(this._tileTextures){for(const s in this._tileTextures){const l=this._tileTextures[s];if(l)for(const p of l)p.destroy()}this._tileTextures={}}if(this.tileExtentBuffer&&this.tileExtentBuffer.destroy(),this.debugBuffer&&this.debugBuffer.destroy(),this.rasterBoundsBuffer&&this.rasterBoundsBuffer.destroy(),this.rasterBoundsBufferPosOnly&&this.rasterBoundsBufferPosOnly.destroy(),this.viewportBuffer&&this.viewportBuffer.destroy(),this.tileBorderIndexBuffer&&this.tileBorderIndexBuffer.destroy(),this.quadTriangleIndexBuffer&&this.quadTriangleIndexBuffer.destroy(),this.tileExtentMesh&&((t=this.tileExtentMesh.vertexBuffer)===null||t===void 0||t.destroy()),this.tileExtentMesh&&((n=this.tileExtentMesh.indexBuffer)===null||n===void 0||n.destroy()),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.cache){for(const s in this.cache){const l=this.cache[s];l&&l.program&&this.context.gl.deleteProgram(l.program)}this.cache={}}this.context&&this.context.setDefault()}overLimit(){const{drawingBufferWidth:t,drawingBufferHeight:n}=this.context.gl;return this.width!==t||this.height!==n}}function pl(d,t){let n,s=!1,l=null,p=null;const m=()=>{l=null,s&&(d.apply(p,n),l=setTimeout(m,t),s=!1)};return(...g)=>(s=!0,p=this,n=g,l||m(),l)}class hs{constructor(t){this._getCurrentHash=()=>{const n=window.location.hash.replace("#","");if(this._hashName){let s;return n.split("&").map((l=>l.split("="))).forEach((l=>{l[0]===this._hashName&&(s=l)})),(s&&s[1]||"").split("/")}return n.split("/")},this._onHashChange=()=>{const n=this._getCurrentHash();if(!this._isValidHash(n))return!1;const s=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(n[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+n[2],+n[1]],zoom:+n[0],bearing:s,pitch:+(n[4]||0)}),!0},this._updateHashUnthrottled=()=>{const n=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,n)},this._removeHash=()=>{const n=this._getCurrentHash();if(n.length===0)return;const s=n.join("/");let l=s;l.split("&").length>0&&(l=l.split("&")[0]),this._hashName&&(l=`${this._hashName}=${s}`);let p=window.location.hash.replace(l,"");p.startsWith("#&")?p=p.slice(0,1)+p.slice(2):p==="#"&&(p="");let m=window.location.href.replace(/(#.+)?$/,p);m=m.replace("&&","&"),window.history.replaceState(window.history.state,null,m)},this._updateHash=pl(this._updateHashUnthrottled,300),this._hashName=t&&encodeURIComponent(t)}addTo(t){return this._map=t,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(t){const n=this._map.getCenter(),s=Math.round(100*this._map.getZoom())/100,l=Math.ceil((s*Math.LN2+Math.log(512/360/.5))/Math.LN10),p=Math.pow(10,l),m=Math.round(n.lng*p)/p,g=Math.round(n.lat*p)/p,x=this._map.getBearing(),w=this._map.getPitch();let T="";if(T+=t?`/${m}/${g}/${s}`:`${s}/${g}/${m}`,(x||w)&&(T+="/"+Math.round(10*x)/10),w&&(T+=`/${Math.round(w)}`),this._hashName){const I=this._hashName;let M=!1;const z=window.location.hash.slice(1).split("&").map((L=>{const j=L.split("=")[0];return j===I?(M=!0,`${j}=${T}`):L})).filter((L=>L));return M||z.push(`${I}=${T}`),`#${z.join("&")}`}return`#${T}`}_isValidHash(t){if(t.length<3||t.some(isNaN))return!1;try{new c.V(+t[2],+t[1])}catch{return!1}const n=+t[0],s=+(t[3]||0),l=+(t[4]||0);return n>=this._map.getMinZoom()&&n<=this._map.getMaxZoom()&&s>=-180&&s<=180&&l>=this._map.getMinPitch()&&l<=this._map.getMaxPitch()}}const xa={linearity:.3,easing:c.cw(0,0,.3,1)},tr=c.e({deceleration:2500,maxSpeed:1400},xa),hr=c.e({deceleration:20,maxSpeed:1400},xa),Oc=c.e({deceleration:1e3,maxSpeed:360},xa),dr=c.e({deceleration:1e3,maxSpeed:90},xa),Qu=c.e({deceleration:1e3,maxSpeed:360},xa);class eh{constructor(t){this._map=t,this.clear()}clear(){this._inertiaBuffer=[]}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:it(),settings:t})}_drainInertiaBuffer(){const t=this._inertiaBuffer,n=it();for(;t.length>0&&n-t[0].time>160;)t.shift()}_onMoveEnd(t){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const n={zoom:0,bearing:0,pitch:0,roll:0,pan:new c.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:p}of this._inertiaBuffer)n.zoom+=p.zoomDelta||0,n.bearing+=p.bearingDelta||0,n.pitch+=p.pitchDelta||0,n.roll+=p.rollDelta||0,p.panDelta&&n.pan._add(p.panDelta),p.around&&(n.around=p.around),p.pinchAround&&(n.pinchAround=p.pinchAround);const s=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,l={};if(n.pan.mag()){const p=wr(n.pan.mag(),s,c.e({},tr,t||{})),m=n.pan.mult(p.amount/n.pan.mag()),g=this._map.cameraHelper.handlePanInertia(m,this._map.transform);l.center=g.easingCenter,l.offset=g.easingOffset,ds(l,p)}if(n.zoom){const p=wr(n.zoom,s,hr),m=c.cx(this._map.transform.zoom+p.amount,this._map.getZoomSnap(),p.amount);l.zoom=m,ds(l,p)}if(n.bearing){const p=wr(n.bearing,s,Oc);l.bearing=this._map.transform.bearing+c.an(p.amount,-179,179),ds(l,p)}if(n.pitch){const p=wr(n.pitch,s,dr);l.pitch=this._map.transform.pitch+p.amount,ds(l,p)}if(n.roll){const p=wr(n.roll,s,Qu);l.roll=this._map.transform.roll+c.an(p.amount,-179,179),ds(l,p)}if(l.zoom||l.bearing){const p=n.pinchAround===void 0?n.around:n.pinchAround;l.around=p?this._map.unproject(p):this._map.getCenter()}return this.clear(),c.e(l,{noMoveStart:!0})}}function ds(d,t){(!d.duration||d.duration<t.duration)&&(d.duration=t.duration,d.easing=t.easing)}function wr(d,t,n){const{maxSpeed:s,linearity:l,deceleration:p}=n,m=c.an(d*l/(t/1e3),-s,s),g=Math.abs(m)/(p*l);return{easing:n.easing,duration:1e3*g,amount:m*(g/2)}}class Ui extends c.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,n,s,l={}){s=s instanceof MouseEvent?s:new MouseEvent(t,s);const p=fe.mousePos(n.getCanvas(),s),m=n.unproject(p);super(t,c.e({point:p,lngLat:m,originalEvent:s},l)),this._defaultPrevented=!1,this.target=n}}class ps extends c.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,n,s){const l=t==="touchend"?s.changedTouches:s.touches,p=fe.touchPos(n.getCanvasContainer(),l),m=p.map((x=>n.unproject(x))),g=p.reduce(((x,w,T,I)=>x.add(w.div(I.length))),new c.P(0,0));super(t,{points:p,point:g,lngLats:m,lngLat:n.unproject(g),originalEvent:s}),this._defaultPrevented=!1}}class Vc extends c.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,n,s){super(t,{originalEvent:s}),this._defaultPrevented=!1}}class th{constructor(t,n){this._map=t,this._clickTolerance=n.clickTolerance}reset(){delete this._mousedownPos}wheel(t){return this._firePreventable(new Vc(t.type,this._map,t))}mousedown(t,n){return this._mousedownPos=n,this._firePreventable(new Ui(t.type,this._map,t))}mouseup(t){this._map.fire(new Ui(t.type,this._map,t))}click(t,n){this._mousedownPos&&this._mousedownPos.dist(n)>=this._clickTolerance||this._map.fire(new Ui(t.type,this._map,t))}dblclick(t){return this._firePreventable(new Ui(t.type,this._map,t))}mouseover(t){this._map.fire(new Ui(t.type,this._map,t))}mouseout(t){this._map.fire(new Ui(t.type,this._map,t))}touchstart(t){return this._firePreventable(new ps(t.type,this._map,t))}touchmove(t){this._map.fire(new ps(t.type,this._map,t))}touchend(t){this._map.fire(new ps(t.type,this._map,t))}touchcancel(t){this._map.fire(new ps(t.type,this._map,t))}_firePreventable(t){if(this._map.fire(t),t.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class jc{constructor(t){this._map=t}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(t){this._map.fire(new Ui(t.type,this._map,t))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ui("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(t){this._delayContextMenu?this._contextMenuEvent=t:this._ignoreContextMenu||this._map.fire(new Ui(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Vr{constructor(t){this._map=t}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(t){return this.transform.screenPointToLocation(c.P.convert(t),this._map.terrain)}}class Tr{constructor(t,n){this._map=t,this._tr=new Vr(t),this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=n.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(t,n){this.isEnabled()&&t.shiftKey&&t.button===0&&(fe.disableDrag(),this._startPos=this._lastPos=n,this._active=!0)}mousemoveWindow(t,n){if(!this._active)return;const s=n;if(this._lastPos.equals(s)||!this._box&&s.dist(this._startPos)<this._clickTolerance)return;const l=this._startPos;this._lastPos=s,this._box||(this._box=fe.create("div","maplibregl-boxzoom",this._container),this._container.classList.add("maplibregl-crosshair"),this._fireEvent("boxzoomstart",t));const p=Math.min(l.x,s.x),m=Math.max(l.x,s.x),g=Math.min(l.y,s.y),x=Math.max(l.y,s.y);fe.setTransform(this._box,`translate(${p}px,${g}px)`),this._box.style.width=m-p+"px",this._box.style.height=x-g+"px"}mouseupWindow(t,n){if(!this._active||t.button!==0)return;const s=this._startPos,l=n;if(this.reset(),fe.suppressClick(),s.x!==l.x||s.y!==l.y)return this._map.fire(new c.l("boxzoomend",{originalEvent:t})),{cameraAnimation:p=>p.fitScreenCoordinates(s,l,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",t)}keydown(t){this._active&&t.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",t))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(fe.remove(this._box),this._box=null),fe.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(t,n){return this._map.fire(new c.l(t,{originalEvent:n}))}}function De(d,t){if(d.length!==t.length)throw new Error(`The number of touches and points are not equal - touches ${d.length}, points ${t.length}`);const n={};for(let s=0;s<d.length;s++)n[d[s].identifier]=t[s];return n}class Nc{constructor(t){this.reset(),this.numTouches=t.numTouches}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1}touchstart(t,n,s){(this.centroid||s.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=t.timeStamp),s.length===this.numTouches&&(this.centroid=(function(l){const p=new c.P(0,0);for(const m of l)p._add(m);return p.div(l.length)})(n),this.touches=De(s,n)))}touchmove(t,n,s){if(this.aborted||!this.centroid)return;const l=De(s,n);for(const p in this.touches){const m=l[p];(!m||m.dist(this.touches[p])>30)&&(this.aborted=!0)}}touchend(t,n,s){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),s.length===0){const l=!this.aborted&&this.centroid;if(this.reset(),l)return l}}}class fs{constructor(t){this.singleTap=new Nc(t),this.numTaps=t.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(t,n,s){this.singleTap.touchstart(t,n,s)}touchmove(t,n,s){this.singleTap.touchmove(t,n,s)}touchend(t,n,s){const l=this.singleTap.touchend(t,n,s);if(l){const p=t.timeStamp-this.lastTime<500,m=!this.lastTap||this.lastTap.dist(l)<30;if(p&&m||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=l,this.count===this.numTaps)return this.reset(),l}}}class Uc{constructor(t){this._tr=new Vr(t),this._zoomIn=new fs({numTouches:1,numTaps:2}),this._zoomOut=new fs({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(t,n,s){this._zoomIn.touchstart(t,n,s),this._zoomOut.touchstart(t,n,s)}touchmove(t,n,s){this._zoomIn.touchmove(t,n,s),this._zoomOut.touchmove(t,n,s)}touchend(t,n,s){const l=this._zoomIn.touchend(t,n,s),p=this._zoomOut.touchend(t,n,s),m=this._tr;return l?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:g=>g.easeTo({duration:300,zoom:c.cx(m.zoom+1,g.getZoomSnap()),around:m.unproject(l)},{originalEvent:t})}):p?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:g=>g.easeTo({duration:300,zoom:c.cx(m.zoom-1,g.getZoomSnap()),around:m.unproject(p)},{originalEvent:t})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class jr{constructor(t){this._enabled=!!t.enable,this._moveStateManager=t.moveStateManager,this._clickTolerance=t.clickTolerance||1,this._moveFunction=t.move,this._activateOnStart=!!t.activateOnStart,t.assignEvents(this),this.reset()}reset(t){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(t)}_move(...t){const n=this._moveFunction(...t);if(n.bearingDelta||n.pitchDelta||n.rollDelta||n.around||n.panDelta)return this._active=!0,n}dragStart(t,n){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(t)&&(this._moveStateManager.startMove(t),this._lastPoint=Array.isArray(n)?n[0]:n,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(t,n){if(!this.isEnabled())return;const s=this._lastPoint;if(!s)return;if(t.preventDefault(),!this._moveStateManager.isValidMoveEvent(t))return void this.reset(t);const l=Array.isArray(n)?n[0]:n;return!this._moved&&l.dist(s)<this._clickTolerance?void 0:(this._moved=!0,this._lastPoint=l,this._move(s,l))}dragEnd(t){this.isEnabled()&&this._lastPoint&&this._moveStateManager.isValidEndEvent(t)&&(this._moved&&fe.suppressClick(),this.reset(t))}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}}const ms=0,fl=2,ih={[ms]:1,[fl]:2};class Un{constructor(t){this._correctEvent=t.checkCorrectEvent}startMove(t){const n=fe.mouseButton(t);this._eventButton=n}endMove(t){delete this._eventButton}isValidStartEvent(t){return this._correctEvent(t)}isValidMoveEvent(t){return!(function(n,s){const l=ih[s];return n.buttons===void 0||(n.buttons&l)!==l})(t,this._eventButton)}isValidEndEvent(t){return fe.mouseButton(t)===this._eventButton}}class Gc{constructor(){this._firstTouch=void 0}_isOneFingerTouch(t){return t.targetTouches.length===1}_isSameTouchEvent(t){return t.targetTouches[0].identifier===this._firstTouch}startMove(t){this._firstTouch=t.targetTouches[0].identifier}endMove(t){delete this._firstTouch}isValidStartEvent(t){return this._isOneFingerTouch(t)}isValidMoveEvent(t){return this._isOneFingerTouch(t)&&this._isSameTouchEvent(t)}isValidEndEvent(t){return this._isOneFingerTouch(t)&&this._isSameTouchEvent(t)}}class ml{constructor(t=new Un({checkCorrectEvent:()=>!0}),n=new Gc){this.mouseMoveStateManager=t,this.oneFingerTouchMoveStateManager=n}_executeRelevantHandler(t,n,s){return t instanceof MouseEvent?n(t):typeof TouchEvent<"u"&&t instanceof TouchEvent?s(t):void 0}startMove(t){this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.startMove(n)),(n=>this.oneFingerTouchMoveStateManager.startMove(n)))}endMove(t){this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.endMove(n)),(n=>this.oneFingerTouchMoveStateManager.endMove(n)))}isValidStartEvent(t){return this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.isValidStartEvent(n)),(n=>this.oneFingerTouchMoveStateManager.isValidStartEvent(n)))}isValidMoveEvent(t){return this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.isValidMoveEvent(n)),(n=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(n)))}isValidEndEvent(t){return this._executeRelevantHandler(t,(n=>this.mouseMoveStateManager.isValidEndEvent(n)),(n=>this.oneFingerTouchMoveStateManager.isValidEndEvent(n)))}}const ho=d=>{d.mousedown=d.dragStart,d.mousemoveWindow=d.dragMove,d.mouseup=d.dragEnd,d.contextmenu=t=>{t.preventDefault()}};class qc{constructor(t,n){this._clickTolerance=t.clickTolerance||1,this._map=n,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new c.P(0,0)}_shouldBePrevented(t){return t<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(t,n,s){return this._calculateTransform(t,n,s)}touchmove(t,n,s){if(this._active){if(!this._shouldBePrevented(s.length))return t.preventDefault(),this._calculateTransform(t,n,s);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",t)}}touchend(t,n,s){this._calculateTransform(t,n,s),this._active&&this._shouldBePrevented(s.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(t,n,s){s.length>0&&(this._active=!0);const l=De(s,n),p=new c.P(0,0),m=new c.P(0,0);let g=0;for(const w in l){const T=l[w],I=this._touches[w];I&&(p._add(T),m._add(T.sub(I)),g++,l[w]=T)}if(this._touches=l,this._shouldBePrevented(g)||!m.mag())return;const x=m.div(g);return this._sum._add(x),this._sum.mag()<this._clickTolerance?void 0:{around:p.div(g),panDelta:x}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class _l{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}touchstart(t,n,s){this._firstTwoTouches||s.length<2||(this._firstTwoTouches=[s[0].identifier,s[1].identifier],this._start([n[0],n[1]]))}touchmove(t,n,s){if(!this._firstTwoTouches)return;t.preventDefault();const[l,p]=this._firstTwoTouches,m=po(s,n,l),g=po(s,n,p);if(!m||!g)return;const x=this._aroundCenter?null:m.add(g).div(2);return this._move([m,g],x,t)}touchend(t,n,s){if(!this._firstTwoTouches)return;const[l,p]=this._firstTwoTouches,m=po(s,n,l),g=po(s,n,p);m&&g||(this._active&&fe.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(t){this._enabled=!0,this._aroundCenter=!!t&&t.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}}function po(d,t,n){for(let s=0;s<d.length;s++)if(d[s].identifier===n)return t[s]}function gl(d,t){return Math.log(d/t)/Math.LN2}class Zc extends _l{reset(){super.reset(),delete this._distance,delete this._startDistance}_start(t){this._startDistance=this._distance=t[0].dist(t[1])}_move(t,n){const s=this._distance;if(this._distance=t[0].dist(t[1]),this._active||!(Math.abs(gl(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:gl(this._distance,s),pinchAround:n}}}function yl(d,t){return 180*d.angleWith(t)/Math.PI}class $c extends _l{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(t){this._startVector=this._vector=t[0].sub(t[1]),this._minDiameter=t[0].dist(t[1])}_move(t,n,s){const l=this._vector;if(this._vector=t[0].sub(t[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:yl(this._vector,l),pinchAround:n}}_isBelowThreshold(t){this._minDiameter=Math.min(this._minDiameter,t.mag());const n=25/(Math.PI*this._minDiameter)*360,s=yl(t,this._startVector);return Math.abs(s)<n}}function xl(d){return Math.abs(d.y)>Math.abs(d.x)}class Nr extends _l{constructor(t){super(),this._currentTouchCount=0,this._map=t}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(t,n,s){super.touchstart(t,n,s),this._currentTouchCount=s.length}_start(t){this._lastPoints=t,xl(t[0].sub(t[1]))&&(this._valid=!1)}_move(t,n,s){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const l=t[0].sub(this._lastPoints[0]),p=t[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(l,p,s.timeStamp),this._valid?(this._lastPoints=t,this._active=!0,{pitchDelta:(l.y+p.y)/2*-.5}):void 0}gestureBeginsVertically(t,n,s){if(this._valid!==void 0)return this._valid;const l=t.mag()>=2,p=n.mag()>=2;if(!l&&!p)return;if(!l||!p)return this._firstMove===void 0&&(this._firstMove=s),s-this._firstMove<100&&void 0;const m=t.y>0==n.y>0;return xl(t)&&xl(n)&&m}}const pt={panStep:100,bearingStep:15,pitchStep:10};class Wc{constructor(t){this._tr=new Vr(t);const n=pt;this._panStep=n.panStep,this._bearingStep=n.bearingStep,this._pitchStep=n.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(t){if(t.altKey||t.ctrlKey||t.metaKey)return;let n=0,s=0,l=0,p=0,m=0;switch(t.keyCode){case 61:case 107:case 171:case 187:n=1;break;case 189:case 109:case 173:n=-1;break;case 37:t.shiftKey?s=-1:(t.preventDefault(),p=-1);break;case 39:t.shiftKey?s=1:(t.preventDefault(),p=1);break;case 38:t.shiftKey?l=1:(t.preventDefault(),m=-1);break;case 40:t.shiftKey?l=-1:(t.preventDefault(),m=1);break;default:return}return this._rotationDisabled&&(s=0,l=0),{cameraAnimation:g=>{const x=this._tr;g.easeTo({duration:300,easeId:"keyboardHandler",easing:fo,zoom:n?c.cx(x.zoom+n*(t.shiftKey?2:1),g.getZoomSnap()):x.zoom,bearing:x.bearing+s*this._bearingStep,pitch:x.pitch+l*this._pitchStep,offset:[-p*this._panStep,-m*this._panStep],center:x.center},{originalEvent:t})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function fo(d){return d*(2-d)}const _s=4.000244140625,vl=1/450;class bl{constructor(t,n){this._onTimeout=s=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(s)},this._map=t,this._tr=new Vr(t),this._triggerRenderFrame=n,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=vl}setZoomRate(t){this._defaultZoomRate=t}setWheelZoomRate(t){this._wheelZoomRate=t}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!t&&t.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(t){return!!this._map.cooperativeGestures.isEnabled()&&!(t.ctrlKey||this._map.cooperativeGestures.isBypassed(t))}wheel(t){if(!this.isEnabled())return;if(this._shouldBePrevented(t))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",t);let n=t.deltaMode===WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY;const s=it(),l=s-(this._lastWheelEventTime||0);this._lastWheelEventTime=s,n!==0&&n%_s==0?this._type="wheel":n!==0&&Math.abs(n)<4?this._type="trackpad":l>400?(this._type=null,this._lastValue=n,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(l*n)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,n+=this._lastValue)),t.shiftKey&&n&&(n/=4),this._type&&(this._lastWheelEvent=t,this._delta-=n,this._active||this._start(t)),t.preventDefault()}_start(t){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const n=fe.mousePos(this._map.getCanvas(),t),s=this._tr;this._aroundPoint=this._aroundCenter?s.transform.locationToScreenPoint(c.V.convert(s.center)):n,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const t=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const g=t.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=g),typeof this._targetZoom=="number"&&(this._targetZoom+=g)}if(this._delta!==0){const g=this._type==="wheel"&&Math.abs(this._delta)>_s?this._wheelZoomRate:this._defaultZoomRate;let x=2/(1+Math.exp(-Math.abs(this._delta*g)));this._delta<0&&x!==0&&(x=1/x);const w=typeof this._targetZoom!="number"?t.scale:c.aq(this._targetZoom),T=t.applyConstrain(t.getCameraLngLat(),c.at(w*x)).zoom,I=this._map.getZoomSnap();if(this._type==="wheel"&&I>0){const M=c.cx(t.zoom,I);this._targetZoom=c.cx(T,I,T-M)}else this._targetZoom=T;this._type==="wheel"&&(this._startZoom=t.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const n=typeof this._targetZoom!="number"?t.zoom:this._targetZoom,s=this._startZoom,l=this._easing;let p,m=!1;if(this._type==="wheel"&&s&&l){const g=it()-this._lastWheelEventTime,x=Math.min((g+5)/200,1),w=l(x);p=c.G.number(s,n,w),x<1?this._frameId||(this._frameId=!0):m=!0}else p=n,m=!0;return this._active=!0,m&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout}),200)),this._lastExpectedZoom=p,{noInertia:!0,needsRenderFrame:!m,zoomDelta:p-t.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let n=c.cz;if(this._prevEase){const s=this._prevEase,l=(it()-s.start)/s.duration,p=s.easing(l+.01)-s.easing(l),m=.27/Math.sqrt(p*p+1e-4)*.01,g=Math.sqrt(.0729-m*m);n=c.cw(m,g,.25,1)}return this._prevEase={start:it(),duration:t,easing:n},n}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class wl{constructor(t,n){this._clickZoom=t,this._tapZoom=n}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Hc{constructor(t){this._tr=new Vr(t),this.reset()}reset(){this._active=!1}dblclick(t,n){return t.preventDefault(),{cameraAnimation:s=>{s.easeTo({duration:300,zoom:c.cx(this._tr.zoom+(t.shiftKey?-1:1),s.getZoomSnap()),around:this._tr.unproject(n)},{originalEvent:t})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rh{constructor(){this._tap=new fs({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(t,n,s){if(!this._swipePoint)if(this._tapTime){const l=n[0],p=t.timeStamp-this._tapTime<500,m=this._tapPoint.dist(l)<30;p&&m?s.length>0&&(this._swipePoint=l,this._swipeTouch=s[0].identifier):this.reset()}else this._tap.touchstart(t,n,s)}touchmove(t,n,s){if(this._tapTime){if(this._swipePoint){if(s[0].identifier!==this._swipeTouch)return;const l=n[0],p=l.y-this._swipePoint.y;return this._swipePoint=l,t.preventDefault(),this._active=!0,{zoomDelta:p/128}}}else this._tap.touchmove(t,n,s)}touchend(t,n,s){if(this._tapTime)this._swipePoint&&s.length===0&&this.reset();else{const l=this._tap.touchend(t,n,s);l&&(this._tapTime=t.timeStamp,this._tapPoint=l)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class pr{constructor(t,n,s){this._el=t,this._mousePan=n,this._touchPan=s}enable(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class gs{constructor(t,n,s,l){this._pitchWithRotate=t.pitchWithRotate,this._rollEnabled=t.rollEnabled,this._mouseRotate=n,this._mousePitch=s,this._mouseRoll=l}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable(),this._rollEnabled&&this._mouseRoll.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable(),this._mouseRoll.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())&&(!this._rollEnabled||this._mouseRoll.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()||this._mouseRoll.isActive()}}class Be{constructor(t,n,s,l){this._el=t,this._touchZoom=n,this._touchRotate=s,this._tapDragZoom=l,this._rotationDisabled=!1,this._enabled=!0}enable(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class Ue{constructor(t,n){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=t,this._options=n,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const t=this._map.getCanvasContainer();t.classList.add("maplibregl-cooperative-gestures"),this._container=fe.create("div","maplibregl-cooperative-gesture-screen",t);let n=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(n=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const s=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),l=document.createElement("div");l.className="maplibregl-desktop-message",l.textContent=n,this._container.appendChild(l);const p=document.createElement("div");p.className="maplibregl-mobile-message",p.textContent=s,this._container.appendChild(p),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(fe.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(t){return t[this._bypassKey]}notifyGestureBlocked(t,n){this._enabled&&(this._map.fire(new c.l("cooperativegestureprevented",{gestureType:t,originalEvent:n})),this._container.classList.add("maplibregl-show"),setTimeout((()=>{this._container.classList.remove("maplibregl-show")}),100))}}const fn=d=>d.zoom||d.drag||d.roll||d.pitch||d.rotate;class Xc extends c.l{}function va(d){return d.panDelta&&d.panDelta.mag()||d.zoomDelta||d.bearingDelta||d.pitchDelta||d.rollDelta}class bi{get _ownerDocument(){var t;return((t=this._el)===null||t===void 0?void 0:t.ownerDocument)||document}get _ownerWindow(){var t,n;return((n=(t=this._el)===null||t===void 0?void 0:t.ownerDocument)===null||n===void 0?void 0:n.defaultView)||window}constructor(t,n){this.handleWindowEvent=l=>{this.handleEvent(l,`${l.type}Window`)},this.handleEvent=(l,p)=>{if(l.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const m=l.type==="renderFrame"?void 0:l,g={needsRenderFrame:!1},x={},w={};for(const{handlerName:M,handler:z,allowed:L}of this._handlers){if(!z.isEnabled())continue;let j;if(this._blockedByActive(w,L,M))z.reset();else if(z[p||l.type]){if(c.cA(l,p||l.type)){const U=fe.mousePos(this._map.getCanvas(),l);j=z[p||l.type](l,U)}else if(c.cB(l,p||l.type)){const U=this._getMapTouches(l.touches),N=fe.touchPos(this._map.getCanvas(),U);j=z[p||l.type](l,N,U)}else c.cC(p||l.type)||(j=z[p||l.type](l));this.mergeHandlerResult(g,x,j,M,m),j&&j.needsRenderFrame&&this._triggerRenderFrame()}(j||z.isActive())&&(w[M]=z)}const T={};for(const M in this._previousActiveHandlers)w[M]||(T[M]=m);this._previousActiveHandlers=w,(Object.keys(T).length||va(g))&&(this._changes.push([g,x,T]),this._triggerRenderFrame()),(Object.keys(w).length||va(g))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:I}=g;I&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],I(this._map))},this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new eh(t),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n);const s=this._el;this._listeners=[[s,"touchstart",{passive:!0}],[s,"touchmove",{passive:!1}],[s,"touchend",void 0],[s,"touchcancel",void 0],[s,"mousedown",void 0],[s,"mousemove",void 0],[s,"mouseup",void 0],[this._ownerDocument,"mousemove",{capture:!0}],[this._ownerDocument,"mouseup",void 0],[s,"mouseover",void 0],[s,"mouseout",void 0],[s,"dblclick",void 0],[s,"click",void 0],[s,"keydown",{capture:!1}],[s,"keyup",void 0],[s,"wheel",{passive:!1}],[s,"contextmenu",void 0],[this._ownerWindow,"blur",void 0]];for(const[l,p,m]of this._listeners)fe.addEventListener(l,p,l===this._ownerDocument?this.handleWindowEvent:this.handleEvent,m)}destroy(){for(const[t,n,s]of this._listeners)fe.removeEventListener(t,n,t===this._ownerDocument?this.handleWindowEvent:this.handleEvent,s)}_addDefaultHandlers(t){const n=this._map,s=n.getCanvasContainer();this._add("mapEvent",new th(n,t));const l=n.boxZoom=new Tr(n,t);this._add("boxZoom",l),t.interactive&&t.boxZoom&&l.enable();const p=n.cooperativeGestures=new Ue(n,t.cooperativeGestures);this._add("cooperativeGestures",p),t.cooperativeGestures&&p.enable();const m=new Uc(n),g=new Hc(n);n.doubleClickZoom=new wl(g,m),this._add("tapZoom",m),this._add("clickZoom",g),t.interactive&&t.doubleClickZoom&&n.doubleClickZoom.enable();const x=new rh;this._add("tapDragZoom",x);const w=n.touchPitch=new Nr(n);this._add("touchPitch",w),t.interactive&&t.touchPitch&&n.touchPitch.enable(t.touchPitch);const T=()=>n.project(n.getCenter()),I=(function({enable:q,clickTolerance:Y,aroundCenter:Q=!0,minPixelCenterThreshold:W=100,rotateDegreesPerPixelMoved:te=.8},de){const ue=new Un({checkCorrectEvent:le=>fe.mouseButton(le)===0&&le.ctrlKey||fe.mouseButton(le)===2&&!le.ctrlKey});return new jr({clickTolerance:Y,move:(le,he)=>{const Me=de();if(Q&&Math.abs(Me.y-le.y)>W)return{bearingDelta:c.cy(new c.P(le.x,he.y),he,Me)};let Ie=(he.x-le.x)*te;return Q&&he.y<Me.y&&(Ie=-Ie),{bearingDelta:Ie}},moveStateManager:ue,enable:q,assignEvents:ho})})(t,T),M=(function({enable:q,clickTolerance:Y,pitchDegreesPerPixelMoved:Q=-.5}){const W=new Un({checkCorrectEvent:te=>fe.mouseButton(te)===0&&te.ctrlKey||fe.mouseButton(te)===2});return new jr({clickTolerance:Y,move:(te,de)=>({pitchDelta:(de.y-te.y)*Q}),moveStateManager:W,enable:q,assignEvents:ho})})(t),z=(function({enable:q,clickTolerance:Y,rollDegreesPerPixelMoved:Q=.3},W){const te=new Un({checkCorrectEvent:de=>fe.mouseButton(de)===2&&de.ctrlKey});return new jr({clickTolerance:Y,move:(de,ue)=>{const le=W();let he=(ue.x-de.x)*Q;return ue.y<le.y&&(he=-he),{rollDelta:he}},moveStateManager:te,enable:q,assignEvents:ho})})(t,T);n.dragRotate=new gs(t,I,M,z),this._add("mouseRotate",I,["mousePitch"]),this._add("mousePitch",M,["mouseRotate","mouseRoll"]),this._add("mouseRoll",z,["mousePitch"]),t.interactive&&t.dragRotate&&n.dragRotate.enable();const L=(function({enable:q,clickTolerance:Y}){const Q=new Un({checkCorrectEvent:W=>fe.mouseButton(W)===0&&!W.ctrlKey});return new jr({clickTolerance:Y,move:(W,te)=>({around:te,panDelta:te.sub(W)}),activateOnStart:!0,moveStateManager:Q,enable:q,assignEvents:ho})})(t),j=new qc(t,n);n.dragPan=new pr(s,L,j),this._add("mousePan",L),this._add("touchPan",j,["touchZoom","touchRotate"]),t.interactive&&t.dragPan&&n.dragPan.enable(t.dragPan);const U=new $c,N=new Zc;n.touchZoomRotate=new Be(s,N,U,x),this._add("touchRotate",U,["touchPan","touchZoom"]),this._add("touchZoom",N,["touchPan","touchRotate"]),t.interactive&&t.touchZoomRotate&&n.touchZoomRotate.enable(t.touchZoomRotate),this._add("blockableMapEvent",new jc(n));const Z=n.scrollZoom=new bl(n,(()=>this._triggerRenderFrame()));this._add("scrollZoom",Z,["mousePan"]),t.interactive&&t.scrollZoom&&n.scrollZoom.enable(t.scrollZoom);const X=n.keyboard=new Wc(n);this._add("keyboard",X),t.interactive&&t.keyboard&&n.keyboard.enable()}_add(t,n,s){this._handlers.push({handlerName:t,handler:n,allowed:s}),this._handlersById[t]=n}stop(t){if(!this._updatingCamera){for(const{handler:n}of this._handlers)n.reset();this._inertia.clear(),this._fireEvents({},{},t),this._changes=[]}}isActive(){for(const{handler:t}of this._handlers)if(t.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!fn(this._eventsInProgress)||this.isZooming()}_blockedByActive(t,n,s){for(const l in t)if(l!==s&&(!n||n.indexOf(l)<0))return!0;return!1}_getMapTouches(t){const n=[];for(const s of t)this._el.contains(s.target)&&n.push(s);return n}mergeHandlerResult(t,n,s,l,p){if(!s)return;c.e(t,s);const m={handlerName:l,originalEvent:s.originalEvent||p};s.zoomDelta!==void 0&&(n.zoom=m),s.panDelta!==void 0&&(n.drag=m),s.rollDelta!==void 0&&(n.roll=m),s.pitchDelta!==void 0&&(n.pitch=m),s.bearingDelta!==void 0&&(n.rotate=m)}_applyChanges(){const t={},n={},s={};for(const[l,p,m]of this._changes)l.panDelta&&(t.panDelta=(t.panDelta||new c.P(0,0))._add(l.panDelta)),l.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+l.zoomDelta),l.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+l.bearingDelta),l.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+l.pitchDelta),l.rollDelta&&(t.rollDelta=(t.rollDelta||0)+l.rollDelta),l.around!==void 0&&(t.around=l.around),l.pinchAround!==void 0&&(t.pinchAround=l.pinchAround),l.noInertia&&(t.noInertia=l.noInertia),c.e(n,p),c.e(s,m);this._updateMapTransform(t,n,s),this._changes=[]}_updateMapTransform(t,n,s){const l=this._map,p=l._getTransformForUpdate(),m=l.terrain;if(!(va(t)||m&&this._terrainMovement))return this._fireEvents(n,s,!0);l._stop(!0);let{panDelta:g,zoomDelta:x,bearingDelta:w,pitchDelta:T,rollDelta:I,around:M,pinchAround:z}=t;z!==void 0&&(M=z),M=M||l.transform.centerPoint,m&&!p.isPointOnMapSurface(M)&&(M=p.centerPoint);const L={panDelta:g,zoomDelta:x,rollDelta:I,pitchDelta:T,bearingDelta:w,around:M};this._map.cameraHelper.useGlobeControls&&!p.isPointOnMapSurface(M)&&(M=p.centerPoint);const j=M.distSqr(p.centerPoint)<.01?p.center:p.screenPointToLocation(g?M.sub(g):M);this._handleMapControls({terrain:m,tr:p,deltasForHelper:L,preZoomAroundLoc:j,combinedEventsInProgress:n,panDelta:g}),l._applyUpdatedTransform(p),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(n,s,!0)}_handleMapControls({terrain:t,tr:n,deltasForHelper:s,preZoomAroundLoc:l,combinedEventsInProgress:p,panDelta:m}){const g=this._map.cameraHelper;if(g.handleMapControlsRollPitchBearingZoom(s,n),t)return g.useGlobeControls?(this._terrainMovement||!p.drag&&!p.zoom||(this._terrainMovement=!0,this._map._elevationFreeze=!0),void g.handleMapControlsPan(s,n,l)):this._terrainMovement||!p.drag&&!p.zoom?void(p.drag&&this._terrainMovement&&m?n.setCenter(n.screenPointToLocation(n.centerPoint.sub(m))):g.handleMapControlsPan(s,n,l)):(this._terrainMovement=!0,this._map._elevationFreeze=!0,void g.handleMapControlsPan(s,n,l));g.handleMapControlsPan(s,n,l)}_fireEvents(t,n,s){const l=fn(this._eventsInProgress),p=fn(t),m={};for(const I in t){const{originalEvent:M}=t[I];this._eventsInProgress[I]||(m[`${I}start`]=M),this._eventsInProgress[I]=t[I]}!l&&p&&this._fireEvent("movestart",p.originalEvent);for(const I in m)this._fireEvent(I,m[I]);p&&this._fireEvent("move",p.originalEvent);for(const I in t){const{originalEvent:M}=t[I];this._fireEvent(I,M)}const g={};let x;for(const I in this._eventsInProgress){const{handlerName:M,originalEvent:z}=this._eventsInProgress[I];this._handlersById[M].isActive()||(delete this._eventsInProgress[I],x=n[M]||z,g[`${I}end`]=x)}for(const I in g)this._fireEvent(I,g[I]);const w=fn(this._eventsInProgress),T=(l||p)&&!w;if(T&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const I=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&I.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(I)}if(s&&T){this._updatingCamera=!0;const I=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),M=z=>z!==0&&-this._bearingSnap<z&&z<this._bearingSnap;!I||!I.essential&&Zt.prefersReducedMotion?(this._map.fire(new c.l("moveend",{originalEvent:x})),M(this._map.getBearing())&&this._map.resetNorth()):(M(I.bearing||this._map.getBearing())&&(I.bearing=0),I.freezeElevation=!0,this._map.easeTo(I,{originalEvent:x})),this._updatingCamera=!1}}_fireEvent(t,n){this._map.fire(new c.l(t,n?{originalEvent:n}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add((t=>{delete this._frameId,this.handleEvent(new Xc("renderFrame",{timeStamp:t})),this._applyChanges()}))}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class fr extends c.E{constructor(t,n,s){super(),this._renderFrameCallback=()=>{const l=Math.min((it()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(l)),l<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=s.bearingSnap,this._zoomSnap=s.zoomSnap,this.cameraHelper=n,this.on("moveend",(()=>{delete this._requestedCameraState}))}migrateProjection(t,n){t.apply(this.transform,!0),this.transform=t,this.cameraHelper=n}getCenter(){return new c.V(this.transform.center.lng,this.transform.center.lat)}setCenter(t,n){return this.jumpTo({center:t},n)}getCenterElevation(){return this.transform.elevation}setCenterElevation(t,n){return this.jumpTo({elevation:t},n),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(t){this._centerClampedToGround=t}panBy(t,n,s){return t=c.P.convert(t).mult(-1),this.panTo(this.transform.center,c.e({offset:t},n),s)}panTo(t,n,s){return this.easeTo(c.e({center:t},n),s)}getZoom(){return this.transform.zoom}setZoom(t,n){return this.jumpTo({zoom:t},n),this}zoomTo(t,n,s){return this.easeTo(c.e({zoom:t},n),s)}zoomIn(t,n){return this.zoomTo(c.cx(this.getZoom()+1,this._zoomSnap),t,n),this}zoomOut(t,n){return this.zoomTo(c.cx(this.getZoom()-1,this._zoomSnap),t,n),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(t,n){return t!=this.transform.fov&&(this.transform.setFov(t),this.fire(new c.l("movestart",n)).fire(new c.l("move",n)).fire(new c.l("moveend",n))),this}getBearing(){return this.transform.bearing}setZoomSnap(t){return this._zoomSnap=t,this}getZoomSnap(){return this._zoomSnap}setBearing(t,n){return this.jumpTo({bearing:t},n),this}getPadding(){return this.transform.padding}setPadding(t,n){return this.jumpTo({padding:t},n),this}rotateTo(t,n,s){return this.easeTo(c.e({bearing:t},n),s)}resetNorth(t,n){return this.rotateTo(0,c.e({duration:1e3},t),n),this}resetNorthPitch(t,n){return this.easeTo(c.e({bearing:0,pitch:0,roll:0,duration:1e3},t),n),this}snapToNorth(t,n){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(t,n):this}getPitch(){return this.transform.pitch}setPitch(t,n){return this.jumpTo({pitch:t},n),this}getRoll(){return this.transform.roll}setRoll(t,n){return this.jumpTo({roll:t},n),this}cameraForBounds(t,n){t=vt.convert(t).adjustAntiMeridian();const s=n&&n.bearing||0;return this._cameraForBoxAndBearing(t.getNorthWest(),t.getSouthEast(),s,n)}_cameraForBoxAndBearing(t,n,s,l){const p={top:0,bottom:0,right:0,left:0};if(typeof(l=c.e({padding:p,offset:[0,0],maxZoom:this.transform.maxZoom},l)).padding=="number"){const w=l.padding;l.padding={top:w,bottom:w,right:w,left:w}}const m=c.e(p,l.padding);l.padding=m;const g=this.transform,x=new vt(t,n);return this.cameraHelper.cameraForBoxAndBearing(l,m,x,s,g)}fitBounds(t,n,s){return this._fitInternal(this.cameraForBounds(t,n),n,s)}fitScreenCoordinates(t,n,s,l,p){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(c.P.convert(t)),this.transform.screenPointToLocation(c.P.convert(n)),s,l),l,p)}_fitInternal(t,n,s){return t?(delete(n=c.e(t,n)).padding,n.linear?this.easeTo(n,s):this.flyTo(n,s)):this}jumpTo(t,n){this.stop();const s=this._getTransformForUpdate();let l=!1,p=!1,m=!1;const g=s.zoom;this.cameraHelper.handleJumpToCenterZoom(s,t);const x=s.zoom!==g;return"elevation"in t&&s.elevation!==+t.elevation&&s.setElevation(+t.elevation),"bearing"in t&&s.bearing!==+t.bearing&&(l=!0,s.setBearing(+t.bearing)),"pitch"in t&&s.pitch!==+t.pitch&&(p=!0,s.setPitch(+t.pitch)),"roll"in t&&s.roll!==+t.roll&&(m=!0,s.setRoll(+t.roll)),t.padding==null||s.isPaddingEqual(t.padding)||s.setPadding(t.padding),this._applyUpdatedTransform(s),this.fire(new c.l("movestart",n)).fire(new c.l("move",n)),x&&this.fire(new c.l("zoomstart",n)).fire(new c.l("zoom",n)).fire(new c.l("zoomend",n)),l&&this.fire(new c.l("rotatestart",n)).fire(new c.l("rotate",n)).fire(new c.l("rotateend",n)),p&&this.fire(new c.l("pitchstart",n)).fire(new c.l("pitch",n)).fire(new c.l("pitchend",n)),m&&this.fire(new c.l("rollstart",n)).fire(new c.l("roll",n)).fire(new c.l("rollend",n)),this.fire(new c.l("moveend",n))}calculateCameraOptionsFromTo(t,n,s,l=0){const p=c.a9.fromLngLat(t,n),m=c.a9.fromLngLat(s,l),g=m.x-p.x,x=m.y-p.y,w=m.z-p.z,T=Math.hypot(g,x,w);if(T===0)throw new Error("Can't calculate camera options with same From and To");const I=Math.hypot(g,x),M=c.at(this.transform.cameraToCenterDistance/T/this.transform.tileSize),z=180*Math.atan2(g,-x)/Math.PI;let L=180*Math.acos(I/T)/Math.PI;return L=w<0?90-L:90+L,{center:m.toLngLat(),elevation:l,zoom:M,pitch:L,bearing:z}}calculateCameraOptionsFromCameraLngLatAltRotation(t,n,s,l,p){const m=this.transform.calculateCenterFromCameraLngLatAlt(t,n,s,l);return{center:m.center,elevation:m.elevation,zoom:m.zoom,bearing:s,pitch:l,roll:p}}easeTo(t,n){this._stop(!1,t.easeId),((t=c.e({offset:[0,0],duration:500,easing:c.cz},t)).animate===!1||!t.essential&&Zt.prefersReducedMotion)&&(t.duration=0);const s=this._getTransformForUpdate(),l=this.getBearing(),p=s.pitch,m=s.roll,g="bearing"in t?this._normalizeBearing(t.bearing,l):l,x="pitch"in t?+t.pitch:p,w="roll"in t?this._normalizeBearing(t.roll,m):m,T="padding"in t?t.padding:s.padding,I=c.P.convert(t.offset);let M,z;t.around&&(M=c.V.convert(t.around),z=s.locationToScreenPoint(M));const L={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},j=this.cameraHelper.handleEaseTo(s,{bearing:g,pitch:x,roll:w,padding:T,around:M,aroundPoint:z,offsetAsPoint:I,offset:t.offset,zoom:t.zoom,center:t.center});return this._rotating=this._rotating||l!==g,this._pitching=this._pitching||x!==p,this._rolling=this._rolling||w!==m,this._padding=!s.isPaddingEqual(T),this._zooming=this._zooming||j.isZooming,this._easeId=t.easeId,this._prepareEase(n,t.noMoveStart,L),this.terrain&&this._prepareElevation(j.elevationCenter),this._ease((U=>{j.easeFunc(U),this.terrain&&!t.freezeElevation&&this._updateElevation(U),this._applyUpdatedTransform(s),this._fireMoveEvents(n)}),(U=>{this.terrain&&t.freezeElevation&&this._finalizeElevation(),this._afterEase(n,U)}),t),this}_prepareEase(t,n,s={}){this._moving=!0,n||s.moving||this.fire(new c.l("movestart",t)),this._zooming&&!s.zooming&&this.fire(new c.l("zoomstart",t)),this._rotating&&!s.rotating&&this.fire(new c.l("rotatestart",t)),this._pitching&&!s.pitching&&this.fire(new c.l("pitchstart",t)),this._rolling&&!s.rolling&&this.fire(new c.l("rollstart",t))}_prepareElevation(t){this._elevationCenter=t,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(t,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(t){this._elevationStart!==void 0&&this._elevationCenter!==void 0||this._prepareElevation(this.transform.center),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const n=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(t<1&&n!==this._elevationTarget){const s=this._elevationTarget-this._elevationStart;this._elevationStart+=t*(s-(n-(s*t+this._elevationStart))/(1-t)),this._elevationTarget=n}this.transform.setElevation(c.G.number(this._elevationStart,this._elevationTarget,t))}_finalizeElevation(){this._elevationFreeze=!1,this.getCenterClampedToGround()&&this.transform.recalculateZoomAndCenter(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(t){if(!this.terrain&&t.elevation>=0&&t.pitch<=90)return{};const n=t.getCameraLngLat(),s=t.getCameraAltitude(),l=this.terrain?this.terrain.getElevationForLngLatZoom(n,t.zoom):0;if(s<l){const p=this.calculateCameraOptionsFromTo(n,l,t.center,t.elevation);return{pitch:p.pitch,zoom:p.zoom}}return{}}_applyUpdatedTransform(t){const n=[];if(n.push((l=>this._elevateCameraIfInsideTerrain(l))),this.transformCameraUpdate&&n.push((l=>this.transformCameraUpdate(l))),!n.length)return;const s=t.clone();for(const l of n){const p=s.clone(),{center:m,zoom:g,roll:x,pitch:w,bearing:T,elevation:I}=l(p);m&&p.setCenter(m),I!==void 0&&p.setElevation(I),g!==void 0&&p.setZoom(g),x!==void 0&&p.setRoll(x),w!==void 0&&p.setPitch(w),T!==void 0&&p.setBearing(T),s.apply(p,!1)}this.transform.apply(s,!1)}_fireMoveEvents(t){this.fire(new c.l("move",t)),this._zooming&&this.fire(new c.l("zoom",t)),this._rotating&&this.fire(new c.l("rotate",t)),this._pitching&&this.fire(new c.l("pitch",t)),this._rolling&&this.fire(new c.l("roll",t))}_afterEase(t,n){if(this._easeId&&n&&this._easeId===n)return;delete this._easeId;const s=this._zooming,l=this._rotating,p=this._pitching,m=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,s&&this.fire(new c.l("zoomend",t)),l&&this.fire(new c.l("rotateend",t)),p&&this.fire(new c.l("pitchend",t)),m&&this.fire(new c.l("rollend",t)),this.fire(new c.l("moveend",t))}flyTo(t,n){if(!t.essential&&Zt.prefersReducedMotion){const he=c.U(t,["center","zoom","bearing","pitch","roll","elevation","padding"]);return this.jumpTo(he,n)}this.stop(),t=c.e({offset:[0,0],speed:1.2,curve:1.42,easing:c.cz},t);const s=this._getTransformForUpdate(),l=s.bearing,p=s.pitch,m=s.roll,g=s.padding,x="bearing"in t?this._normalizeBearing(t.bearing,l):l,w="pitch"in t?+t.pitch:p,T="roll"in t?this._normalizeBearing(t.roll,m):m,I="padding"in t?t.padding:s.padding,M=c.P.convert(t.offset);let z=s.centerPoint.add(M);const L=s.screenPointToLocation(z),j=this.cameraHelper.handleFlyTo(s,{bearing:x,pitch:w,roll:T,padding:I,locationAtOffset:L,offsetAsPoint:M,center:t.center,minZoom:t.minZoom,zoom:t.zoom});let U=t.curve;const N=Math.max(s.width,s.height),Z=N/j.scaleOfZoom,X=j.pixelPathLength;typeof j.scaleOfMinZoom=="number"&&(U=Math.sqrt(N/j.scaleOfMinZoom/X*2));const q=U*U;function Y(he){const Me=(Z*Z-N*N+(he?-1:1)*q*q*X*X)/(2*(he?Z:N)*q*X);return Math.log(Math.sqrt(Me*Me+1)-Me)}function Q(he){return(Math.exp(he)-Math.exp(-he))/2}function W(he){return(Math.exp(he)+Math.exp(-he))/2}const te=Y(!1);let de=function(he){return W(te)/W(te+U*he)},ue=function(he){return N*((W(te)*(Q(Me=te+U*he)/W(Me))-Q(te))/q)/X;var Me},le=(Y(!0)-te)/U;if(Math.abs(X)<2e-6||!isFinite(le)){if(Math.abs(N-Z)<1e-6)return this.easeTo(t,n);const he=Z<N?-1:1;le=Math.abs(Math.log(Z/N))/U,ue=()=>0,de=Me=>Math.exp(he*U*Me)}return t.duration="duration"in t?+t.duration:1e3*le/("screenSpeed"in t?+t.screenSpeed/U:+t.speed),t.maxDuration&&t.duration>t.maxDuration&&(t.duration=0),this._zooming=!0,this._rotating=l!==x,this._pitching=w!==p,this._rolling=T!==m,this._padding=!s.isPaddingEqual(I),this._prepareEase(n,!1),this.terrain&&this._prepareElevation(j.targetCenter),this._ease((he=>{const Me=he*le,Ie=1/de(Me),_e=ue(Me);this._rotating&&s.setBearing(c.G.number(l,x,he)),this._pitching&&s.setPitch(c.G.number(p,w,he)),this._rolling&&s.setRoll(c.G.number(m,T,he)),this._padding&&(s.interpolatePadding(g,I,he),z=s.centerPoint.add(M)),j.easeFunc(he,Ie,_e,z),this.terrain&&!t.freezeElevation&&this._updateElevation(he),this._applyUpdatedTransform(s),this._fireMoveEvents(n)}),(()=>{this.terrain&&t.freezeElevation&&this._finalizeElevation(),this._afterEase(n)}),t),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(t,n){var s;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const l=this._onEaseEnd;delete this._onEaseEnd,l.call(this,n)}return t||(s=this.handlers)===null||s===void 0||s.stop(!1),this}_ease(t,n,s){s.animate===!1||s.duration===0?(t(1),n()):(this._easeStart=it(),this._easeOptions=s,this._onEaseFrame=t,this._onEaseEnd=n,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(t,n){t=c.W(t,-180,180);const s=Math.abs(t-n);return Math.abs(t-360-n)<s&&(t-=360),Math.abs(t+360-n)<s&&(t+=360),t}queryTerrainElevation(t){return this.terrain?this.terrain.getElevationForLngLat(c.V.convert(t),this.transform):null}}const Tl={compact:!0,customAttribution:'<a href="https://maplibre.org/" target="_blank">MapLibre</a>'};class Yc{constructor(t=Tl){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")))},this._updateData=n=>{!n||n.sourceDataType!=="metadata"&&n.sourceDataType!=="visibility"&&n.dataType!=="style"&&n.type!=="terrain"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"))},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show")},this.options=t}getDefaultPosition(){return"bottom-right"}onAdd(t){return this._map=t,this._compact=this.options.compact,this._container=fe.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=fe.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=fe.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){fe.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(t,n){const s=this._map._getUIString(`AttributionControl.${n}`);t.title=s,t.setAttribute("aria-label",s)}_updateAttributions(){if(!this._map.style)return;let t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((l=>typeof l!="string"?"":l))):typeof this.options.customAttribution=="string"&&t.push(this.options.customAttribution)),this._map.style.stylesheet){const l=this._map.style.stylesheet;this.styleOwner=l.owner,this.styleId=l.id}const n=this._map.style.tileManagers;for(const l in n){const p=n[l];if(p.used||p.usedForTerrain){const m=p.getSource();m.attribution&&t.indexOf(m.attribution)<0&&t.push(m.attribution)}}t=t.filter((l=>String(l).trim())),t.sort(((l,p)=>l.length-p.length)),t=t.filter(((l,p)=>{for(let m=p+1;m<t.length;m++)if(t[m].indexOf(l)>=0)return!1;return!0}));const s=t.join(" | ");s!==this._attribHTML&&(this._attribHTML=s,t.length?(this._innerContainer.innerHTML=fe.sanitize(s),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class Kc{constructor(t={}){this._updateCompact=()=>{const n=this._container.children;if(n.length){const s=n[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&s.classList.add("maplibregl-compact"):s.classList.remove("maplibregl-compact")}},this.options=t}getDefaultPosition(){return"bottom-left"}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=fe.create("div","maplibregl-ctrl");const n=fe.create("a","maplibregl-ctrl-logo");return n.target="_blank",n.rel="noopener nofollow",n.href="https://maplibre.org/",n.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),n.setAttribute("rel","noopener nofollow"),this._container.appendChild(n),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){fe.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class nh{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(t){const n=++this._id;return this._queue.push({callback:t,id:n,cancelled:!1}),n}remove(t){const n=this._currentlyRunning,s=n?this._queue.concat(n):this._queue;for(const l of s)if(l.id===t)return void(l.cancelled=!0)}run(t=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const n=this._currentlyRunning=this._queue;this._queue=[];for(const s of n)if(!s.cancelled&&(s.callback(t),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var ys=c.aU([{name:"a_pos3d",type:"Int16",components:3}]);class It extends c.E{constructor(t){super(),this._lastTilesetChange=it(),this.tileManager=t,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=t._source.tileSize*2**this.deltaZoom,t.usedForTerrain=!0,t.tileSize=this.tileSize}destruct(){this.tileManager.usedForTerrain=!1,this.tileManager.tileSize=null}getSource(){return this.tileManager._source}update(t,n){this.tileManager.update(t,n),this._renderableTilesKeys=[];const s={};for(const l of mt(t,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:n,calculateTileZoom:this.tileManager._source.calculateTileZoom}))s[l.key]=!0,this._renderableTilesKeys.push(l.key),this._tiles[l.key]||(l.terrainRttPosMatrix32f=new Float64Array(16),c.c7(l.terrainRttPosMatrix32f,0,c.a5,c.a5,0,0,1),this._tiles[l.key]=new ae(l,this.tileSize),this._lastTilesetChange=it());for(const l in this._tiles)s[l]||delete this._tiles[l]}freeRtt(t){for(const n in this._tiles){const s=this._tiles[n];(!t||s.tileID.equals(t)||s.tileID.isChildOf(t)||t.isChildOf(s.tileID))&&(s.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map((t=>this.getTileByID(t)))}getTileByID(t){return this._tiles[t]}getTerrainCoords(t,n){return n?this._getTerrainCoordsForTileRanges(t,n):this._getTerrainCoordsForRegularTile(t)}_getTerrainCoordsForRegularTile(t){const n={};for(const s of this._renderableTilesKeys){const l=this._tiles[s].tileID,p=t.clone(),m=c.bk();if(l.canonical.equals(t.canonical))c.c7(m,0,c.a5,c.a5,0,0,1);else if(l.canonical.isChildOf(t.canonical)){const g=l.canonical.z-t.canonical.z,x=l.canonical.x-(l.canonical.x>>g<<g),w=l.canonical.y-(l.canonical.y>>g<<g),T=c.a5>>g;c.c7(m,0,T,T,0,0,1),c.O(m,m,[-x*T,-w*T,0])}else{if(!t.canonical.isChildOf(l.canonical))continue;{const g=t.canonical.z-l.canonical.z,x=t.canonical.x-(t.canonical.x>>g<<g),w=t.canonical.y-(t.canonical.y>>g<<g),T=c.a5>>g;c.c7(m,0,c.a5,c.a5,0,0,1),c.O(m,m,[x*T,w*T,0]),c.Q(m,m,[1/2**g,1/2**g,0])}}p.terrainRttPosMatrix32f=new Float32Array(m),n[s]=p}return n}_getTerrainCoordsForTileRanges(t,n){const s={};for(const l of this._renderableTilesKeys){const p=this._tiles[l].tileID;if(!this._isWithinTileRanges(p,n))continue;const m=t.clone(),g=c.bk();if(p.canonical.z===t.canonical.z){const x=t.canonical.x-p.canonical.x+t.wrap*(1<<t.canonical.z),w=t.canonical.y-p.canonical.y;c.c7(g,0,c.a5,c.a5,0,0,1),c.O(g,g,[x*c.a5,w*c.a5,0])}else if(p.canonical.z>t.canonical.z){const x=p.canonical.z-t.canonical.z,w=p.canonical.x-(p.canonical.x>>x<<x)+t.wrap*(1<<p.canonical.z),T=p.canonical.y-(p.canonical.y>>x<<x),I=t.canonical.x-(p.canonical.x>>x),M=t.canonical.y-(p.canonical.y>>x),z=c.a5>>x;c.c7(g,0,z,z,0,0,1),c.O(g,g,[-w*z+I*c.a5,-T*z+M*c.a5,0])}else{const x=t.canonical.z-p.canonical.z,w=t.canonical.x-(t.canonical.x>>x<<x)+t.wrap*(1<<t.canonical.z),T=t.canonical.y-(t.canonical.y>>x<<x),I=(t.canonical.x>>x)-p.canonical.x,M=(t.canonical.y>>x)-p.canonical.y,z=c.a5<<x;c.c7(g,0,z,z,0,0,1),c.O(g,g,[w*c.a5+I*z,T*c.a5+M*z,0])}m.terrainRttPosMatrix32f=new Float32Array(g),s[l]=m}return s}getSourceTile(t,n){const s=this.tileManager._source;let l=t.overscaledZ-this.deltaZoom;if(l>s.maxzoom&&(l=s.maxzoom),l<s.minzoom)return;this._sourceTileCache[t.key]||(this._sourceTileCache[t.key]=t.scaledTo(l).key);let p=this.findTileInCaches(this._sourceTileCache[t.key]);if(!p?.dem&&n)for(;l>=s.minzoom&&!p?.dem;)p=this.findTileInCaches(t.scaledTo(l--).key);return p}findTileInCaches(t){let n=this.tileManager.getTileByID(t);return n||(n=this.tileManager._outOfViewCache.getByKey(t),n)}anyTilesAfterTime(t=Date.now()){return this._lastTilesetChange>=t}_isWithinTileRanges(t,n){const s=n[t.canonical.z];return!!s&&(t.wrap>s.minWrap||t.wrap<s.maxWrap||t.canonical.x>=s.minTileXWrapped&&t.canonical.x<=s.maxTileXWrapped&&t.canonical.y>=s.minTileY&&t.canonical.y<=s.maxTileY)}}class Ot{constructor(t,n,s){this._meshCache={},this.painter=t,this.tileManager=new It(n),this.options=s,this.exaggeration=typeof s.exaggeration=="number"?s.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(t,n,s,l=c.a5){var p;const m=t.normalizeCoordinates(n,s,l);if(!m)return 0;const g=this.getTerrainData(m.tileID),x=(p=g.tile)===null||p===void 0?void 0:p.dem;if(!x)return 0;const w=c.cD([],[m.x/l*c.a5,m.y/l*c.a5],g.u_terrain_matrix),T=[w[0]*x.dim,w[1]*x.dim],I=Math.floor(T[0]),M=Math.floor(T[1]),z=T[0]-I,L=T[1]-M;return x.get(I,M)*(1-z)*(1-L)+x.get(I+1,M)*z*(1-L)+x.get(I,M+1)*(1-z)*L+x.get(I+1,M+1)*z*L}getElevationForLngLatZoom(t,n){if(!c.cE(n,t.wrap()))return 0;const{tileID:s,mercatorX:l,mercatorY:p}=this._getOverscaledTileIDFromLngLatZoom(t,n);return this.getElevation(s,l%c.a5,p%c.a5,c.a5)}getElevationForLngLat(t,n){const s=mt(n,{maxzoom:this.tileManager.maxzoom,minzoom:this.tileManager.minzoom,tileSize:512,terrain:this});let l=0;for(const p of s)p.canonical.z>l&&(l=Math.min(p.canonical.z,this.tileManager.maxzoom));return this.getElevationForLngLatZoom(t,l)}getElevation(t,n,s,l=c.a5){return this.getDEMElevation(t,n,s,l)*this.exaggeration}getTerrainData(t){if(!this._emptyDemTexture){const l=this.painter.context,p=new c.R({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new c.T(l,p,l.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new c.T(l,new c.R({width:1,height:1}),l.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=c.ar([])}const n=this.tileManager.getSourceTile(t,!0);if(n&&n.dem&&(!n.demTexture||n.needsTerrainPrepare)){const l=this.painter.context;n.demTexture=this.painter.getTileTexture(n.dem.stride),n.demTexture?n.demTexture.update(n.dem.getPixels(),{premultiply:!1}):n.demTexture=new c.T(l,n.dem.getPixels(),l.gl.RGBA,{premultiply:!1}),n.demTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),n.needsTerrainPrepare=!1}const s=n&&n.toString()+n.tileID.key+t.key;if(s&&!this._demMatrixCache[s]){const l=this.tileManager.getSource().maxzoom;let p=t.canonical.z-n.tileID.canonical.z;t.overscaledZ>t.canonical.z&&(t.canonical.z>=l?p=t.canonical.z-l:c.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const m=t.canonical.x-(t.canonical.x>>p<<p),g=t.canonical.y-(t.canonical.y>>p<<p),x=c.cF(new Float64Array(16),[1/(c.a5<<p),1/(c.a5<<p),0]);c.O(x,x,[m*c.a5,g*c.a5,0]),this._demMatrixCache[t.key]={matrix:x,coord:t}}return{u_depth:2,u_terrain:3,u_terrain_dim:n&&n.dem&&n.dem.dim||1,u_terrain_matrix:s?this._demMatrixCache[t.key].matrix:this._emptyDemMatrix,u_terrain_unpack:n&&n.dem&&n.dem.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(n&&n.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:n}}getFramebuffer(t){const n=this.painter,s=n.width/devicePixelRatio,l=n.height/devicePixelRatio;return!this._fbo||this._fbo.width===s&&this._fbo.height===l||(this._fbo.destroy(),this._fboCoordsTexture.destroy(),this._fboDepthTexture.destroy(),delete this._fbo,delete this._fboDepthTexture,delete this._fboCoordsTexture),this._fboCoordsTexture||(this._fboCoordsTexture=new c.T(n.context,{width:s,height:l,data:null},n.context.gl.RGBA,{premultiply:!1}),this._fboCoordsTexture.bind(n.context.gl.NEAREST,n.context.gl.CLAMP_TO_EDGE)),this._fboDepthTexture||(this._fboDepthTexture=new c.T(n.context,{width:s,height:l,data:null},n.context.gl.RGBA,{premultiply:!1}),this._fboDepthTexture.bind(n.context.gl.NEAREST,n.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=n.context.createFramebuffer(s,l,!0,!1),this._fbo.depthAttachment.set(n.context.createRenderbuffer(n.context.gl.DEPTH_COMPONENT16,s,l))),this._fbo.colorAttachment.set(t==="coords"?this._fboCoordsTexture.texture:this._fboDepthTexture.texture),this._fbo}getCoordsTexture(){const t=this.painter.context;if(this._coordsTexture)return this._coordsTexture;const n=new Uint8Array(this._coordsTextureSize*this._coordsTextureSize*4);for(let p=0,m=0;p<this._coordsTextureSize;p++)for(let g=0;g<this._coordsTextureSize;g++,m+=4)n[m+0]=255&g,n[m+1]=255&p,n[m+2]=g>>8<<4|p>>8,n[m+3]=0;const s=new c.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(n.buffer)),l=new c.T(t,s,t.gl.RGBA,{premultiply:!1});return l.bind(t.gl.NEAREST,t.gl.CLAMP_TO_EDGE),this._coordsTexture=l,l}pointCoordinate(t){this.painter.maybeDrawDepthAndCoords(!0);const n=new Uint8Array(4),s=this.painter.context,l=s.gl,p=Math.round(t.x*this.painter.pixelRatio/devicePixelRatio),m=Math.round(t.y*this.painter.pixelRatio/devicePixelRatio),g=Math.round(this.painter.height/devicePixelRatio);s.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),l.readPixels(p,g-m-1,1,1,l.RGBA,l.UNSIGNED_BYTE,n),s.bindFramebuffer.set(null);const x=n[0]+(n[2]>>4<<8),w=n[1]+((15&n[2])<<8),T=this.coordsIndex[255-n[3]],I=T&&this.tileManager.getTileByID(T);if(!I)return null;const M=this._coordsTextureSize,z=(1<<I.tileID.canonical.z)*M;return new c.a9((I.tileID.canonical.x*M+x)/z+I.tileID.wrap,(I.tileID.canonical.y*M+w)/z,this.getElevation(I.tileID,x,w,M))}depthAtPoint(t){const n=new Uint8Array(4),s=this.painter.context,l=s.gl;return s.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer),l.readPixels(t.x,this.painter.height/devicePixelRatio-t.y-1,1,1,l.RGBA,l.UNSIGNED_BYTE,n),s.bindFramebuffer.set(null),(n[0]/16777216+n[1]/65536+n[2]/256+n[3])/256}getTerrainMesh(t){var n;const s=((n=this.painter.style.projection)===null||n===void 0?void 0:n.transitionState)>0,l=s&&t.canonical.y===0,p=s&&t.canonical.y===(1<<t.canonical.z)-1,m=`m_${l?"n":""}_${p?"s":""}`;if(this._meshCache[m])return this._meshCache[m];const g=this.painter.context,x=new c.cG,w=new c.aY,T=this.meshSize,I=c.a5/T,M=T*T;for(let W=0;W<=T;W++)for(let te=0;te<=T;te++)x.emplaceBack(te*I,W*I,0);for(let W=0;W<M;W+=T+1)for(let te=0;te<T;te++)w.emplaceBack(te+W,T+te+W+1,T+te+W+2),w.emplaceBack(te+W,T+te+W+2,te+W+1);const z=x.length,L=z+(T+1),j=(T+1)*T,U=l?c.br:0,N=l?0:1,Z=p?c.bs:c.a5,X=p?0:1;for(let W=0;W<=T;W++)x.emplaceBack(W*I,U,N);for(let W=0;W<=T;W++)x.emplaceBack(W*I,Z,X);for(let W=0;W<T;W++)w.emplaceBack(j+W,L+W,L+W+1),w.emplaceBack(j+W,L+W+1,j+W+1),w.emplaceBack(0+W,z+W+1,z+W),w.emplaceBack(0+W,0+W+1,z+W+1);const q=x.length,Y=q+2*(T+1);for(const W of[0,1])for(let te=0;te<=T;te++)for(const de of[0,1])x.emplaceBack(W*c.a5,te*I,de);for(let W=0;W<2*T;W+=2)w.emplaceBack(q+W,q+W+1,q+W+3),w.emplaceBack(q+W,q+W+3,q+W+2),w.emplaceBack(Y+W,Y+W+3,Y+W+1),w.emplaceBack(Y+W,Y+W+2,Y+W+3);const Q=new ca(g.createVertexBuffer(x,ys.members),g.createIndexBuffer(w),c.aX.simpleSegment(0,0,x.length,w.length));return this._meshCache[m]=Q,Q}getMeshFrameDelta(t){return 2*Math.PI*c.bE/Math.pow(2,Math.max(t,0))/5}getMinTileElevationForLngLatZoom(t,n){var s;if(!c.cE(n,t.wrap()))return 0;const{tileID:l}=this._getOverscaledTileIDFromLngLatZoom(t,n);return(s=this.getMinMaxElevation(l).minElevation)!==null&&s!==void 0?s:0}getMinMaxElevation(t){const n=this.getTerrainData(t).tile,s={minElevation:null,maxElevation:null};return n&&n.dem&&(s.minElevation=n.dem.min*this.exaggeration,s.maxElevation=n.dem.max*this.exaggeration),s}_getOverscaledTileIDFromLngLatZoom(t,n){const s=c.a9.fromLngLat(t.wrap()),l=(1<<n)*c.a5,p=s.x*l,m=s.y*l,g=Math.floor(p/c.a5),x=Math.floor(m/c.a5);return{tileID:new c.a2(n,0,n,g,x),mercatorX:p,mercatorY:m}}}class Jc{constructor(t,n,s){this._context=t,this._size=n,this._tileSize=s,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(const t of this._objects)t.texture.destroy(),t.fbo.destroy()}_createObject(t){const n=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),s=new c.T(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return s.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),this._context.extTextureFilterAnisotropic&&this._context.gl.texParameterf(this._context.gl.TEXTURE_2D,this._context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,this._context.extTextureFilterAnisotropicMax),n.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),n.colorAttachment.set(s.texture),{id:t,fbo:n,texture:s,stamp:-1,inUse:!1}}getObjectForId(t){return this._objects[t]}useObject(t){t.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter((n=>t.id!==n)),this._recentlyUsed.push(t.id)}stampObject(t){t.stamp=++this._stamp}getOrCreateFreeObject(){for(const n of this._recentlyUsed)if(!this._objects[n].inUse)return this._objects[n];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const t=this._createObject(this._objects.length);return this._objects.push(t),t}freeObject(t){t.inUse=!1}freeAllObjects(){for(const t of this._objects)this.freeObject(t)}isFull(){return!(this._objects.length<this._size)&&this._objects.some((t=>!t.inUse))===!1}}const Sr={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0,"color-relief":!0};class mo{constructor(t,n){this.painter=t,this.terrain=n,this.pool=new Jc(t.context,30,n.tileManager.tileSize*n.qualityFactor)}destruct(){this.pool.destruct()}getTexture(t){return this.pool.getObjectForId(t.rtt[this._stacks.length-1].id).texture}prepareForRender(t,n){var s,l;this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.tileManager.getRenderableTiles(),this._renderableLayerIds=t._order.filter((p=>!t._layers[p].isHidden(n))),this._coordsAscending={};for(const p in t.tileManagers){this._coordsAscending[p]={};const m=t.tileManagers[p].getVisibleCoordinates(),g=t.tileManagers[p].getSource(),x=g instanceof zr?g.terrainTileRanges:null;for(const w of m){const T=this.terrain.tileManager.getTerrainCoords(w,x);for(const I in T)this._coordsAscending[p][I]||(this._coordsAscending[p][I]=[]),this._coordsAscending[p][I].push(T[I])}}this._rttFingerprints={};for(const p of t._order){const m=t._layers[p],g=m.source;if(Sr[m.type]&&!this._rttFingerprints[g]){this._rttFingerprints[g]={};const x=(l=(s=t.tileManagers[g])===null||s===void 0?void 0:s.getState().revision)!==null&&l!==void 0?l:0;for(const w in this._coordsAscending[g])this._rttFingerprints[g][w]=`${this._coordsAscending[g][w].map((T=>T.key)).sort().join()}#${x}`}}for(const p of this._renderableTiles)for(const m in this._rttFingerprints){const g=this._rttFingerprints[m][p.tileID.key];g&&g!==p.rttFingerprint[m]&&(p.rtt=[])}}renderLayer(t,n){if(t.isHidden(this.painter.transform.zoom))return!1;const s=Object.assign(Object.assign({},n),{isRenderingToTexture:!0}),l=t.type,p=this.painter,m=this._renderableLayerIds[this._renderableLayerIds.length-1]===t.id;if(Sr[l]&&(this._prevType&&Sr[this._prevType]||this._stacks.push([]),this._prevType=l,this._stacks[this._stacks.length-1].push(t.id),!m))return!0;if(Sr[this._prevType]||Sr[l]&&m){this._prevType=l;const g=this._stacks.length-1,x=this._stacks[g]||[];for(const w of this._renderableTiles){if(this.pool.isFull()&&(hl(this.painter,this.terrain,this._rttTiles,s),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(w),w.rtt[g]){const I=this.pool.getObjectForId(w.rtt[g].id);if(I.stamp===w.rtt[g].stamp){this.pool.useObject(I);continue}}const T=this.pool.getOrCreateFreeObject();this.pool.useObject(T),this.pool.stampObject(T),w.rtt[g]={id:T.id,stamp:T.stamp},p.context.bindFramebuffer.set(T.fbo.framebuffer),p.context.clear({color:c.bp.transparent,stencil:0}),p.currentStencilSource=void 0;for(let I=0;I<x.length;I++){const M=p.style._layers[x[I]],z=M.source?this._coordsAscending[M.source][w.tileID.key]:[w.tileID];p.context.viewport.set([0,0,T.fbo.width,T.fbo.height]),p._renderTileClippingMasks(M,z,!0),p.renderLayer(p,p.style.tileManagers[M.source],M,z,s),M.source&&(w.rttFingerprint[M.source]=this._rttFingerprints[M.source][w.tileID.key])}}return hl(this.painter,this.terrain,this._rttTiles,s),this._rttTiles=[],this.pool.freeAllObjects(),Sr[l]}return!1}}const Sl={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"MapLibre logo","Map.Title":"Map","Marker.Title":"Map marker","NavigationControl.ResetBearing":"Drag to rotate map, click to reset north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","Popup.Close":"Close popup","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","GlobeControl.Enable":"Enable globe","GlobeControl.Disable":"Disable globe","TerrainControl.Enable":"Enable terrain","TerrainControl.Disable":"Disable terrain","CooperativeGesturesHandler.WindowsHelpText":"Use Ctrl + scroll to zoom the map","CooperativeGesturesHandler.MacHelpText":"Use ⌘ + scroll to zoom the map","CooperativeGesturesHandler.MobileHelpText":"Use two fingers to move the map"},Pl=Ee,_o={hash:!1,interactive:!0,bearingSnap:7,zoomSnap:0,attributionControl:Tl,maplibreLogo:!1,refreshExpiredTiles:!0,canvasContextAttributes:{antialias:!1,preserveDrawingBuffer:!1,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,desynchronized:!1,contextType:void 0},scrollZoom:!0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,trackResize:!0,center:[0,0],elevation:0,zoom:0,bearing:0,pitch:0,roll:0,renderWorldCopies:!0,maxTileCacheSize:null,maxTileCacheZoomLevels:c.c.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,transformConstrain:null,fadeDuration:300,crossSourceCollisions:!0,clickTolerance:3,localIdeographFontFamily:"sans-serif",pitchWithRotate:!0,rollEnabled:!1,reduceMotion:void 0,validateStyle:!0,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:!0,centerClampedToGround:!0,experimentalZoomLevelsToOverscale:void 0,anisotropicFilterPitch:20},xs={showCompass:!0,showZoom:!0,visualizePitch:!1,visualizeRoll:!0};class Ml{constructor(t,n,s=!1){this.mousedown=p=>{this.startMove(p,fe.mousePos(this.element,p)),fe.addEventListener(window,"mousemove",this.mousemove),fe.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=p=>{this.move(p,fe.mousePos(this.element,p))},this.mouseup=p=>{this._rotatePitchHandler.dragEnd(p),this.offTemp()},this.touchstart=p=>{p.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=fe.touchPos(this.element,p.targetTouches)[0],this.startMove(p,this._startPos),fe.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),fe.addEventListener(window,"touchend",this.touchend))},this.touchmove=p=>{p.targetTouches.length!==1?this.reset():(this._lastPos=fe.touchPos(this.element,p.targetTouches)[0],this.move(p,this._lastPos))},this.touchend=p=>{p.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),delete this._startPos,delete this._lastPos,this.offTemp()},this.reset=()=>{this._rotatePitchHandler.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=n;const l=new ml;this._rotatePitchHandler=new jr({clickTolerance:3,move:(p,m)=>{const g=n.getBoundingClientRect(),x=new c.P((g.bottom-g.top)/2,(g.right-g.left)/2);return{bearingDelta:c.cy(new c.P(p.x,m.y),m,x),pitchDelta:s?-.5*(m.y-p.y):void 0}},moveStateManager:l,enable:!0,assignEvents:()=>{}}),this.map=t,fe.addEventListener(n,"mousedown",this.mousedown),fe.addEventListener(n,"touchstart",this.touchstart,{passive:!1}),fe.addEventListener(n,"touchcancel",this.reset)}startMove(t,n){this._rotatePitchHandler.dragStart(t,n),fe.disableDrag()}move(t,n){const s=this.map,{bearingDelta:l,pitchDelta:p}=this._rotatePitchHandler.dragMove(t,n)||{};l&&s.setBearing(s.getBearing()+l),p&&s.setPitch(s.getPitch()+p)}off(){const t=this.element;fe.removeEventListener(t,"mousedown",this.mousedown),fe.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),fe.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),fe.removeEventListener(window,"touchend",this.touchend),fe.removeEventListener(t,"touchcancel",this.reset),this.offTemp()}offTemp(){fe.enableDrag(),fe.removeEventListener(window,"mousemove",this.mousemove),fe.removeEventListener(window,"mouseup",this.mouseup),fe.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),fe.removeEventListener(window,"touchend",this.touchend)}}let Ur;function go(d,t,n,s=!1){if(s||!n.getCoveringTilesDetailsProvider().allowWorldCopies())return d?.wrap();const l=new c.V(d.lng,d.lat);if(d=new c.V(d.lng,d.lat),t){const p=new c.V(d.lng-360,d.lat),m=new c.V(d.lng+360,d.lat),g=n.locationToScreenPoint(d).distSqr(t);n.locationToScreenPoint(p).distSqr(t)<g?d=p:n.locationToScreenPoint(m).distSqr(t)<g&&(d=m)}for(;Math.abs(d.lng-n.center.lng)>180;){const p=n.locationToScreenPoint(d);if(p.x>=0&&p.y>=0&&p.x<=n.width&&p.y<=n.height)break;d.lng>n.center.lng?d.lng-=360:d.lng+=360}return d.lng!==l.lng&&n.isPointOnMapSurface(n.locationToScreenPoint(d))?d:l}const vs={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function yo(d,t,n){const s=d.classList;for(const l in vs)s.remove(`maplibregl-${n}-anchor-${l}`);s.add(`maplibregl-${n}-anchor-${t}`)}class bs extends c.E{constructor(t){if(super(),this._onClick=n=>{this.fire(new c.l("click",{originalEvent:n}))},this._onKeyPress=n=>{const s=n.code,l=n.charCode||n.keyCode;s!=="Space"&&s!=="Enter"&&l!==32&&l!==13||this.togglePopup()},this._onMapClick=n=>{const s=n.originalEvent.target,l=this._element;this._popup&&(s===l||l.contains(s))&&this.togglePopup()},this._update=n=>{if(!this._map)return;const s=this._map.loaded()&&!this._map.isMoving();(n?.type==="terrain"||n?.type==="render"&&!s)&&this._map.once("render",this._update),this._lngLat=go(this._lngLat,this._flatPos,this._map.transform),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationToScreenPoint(this._lngLat)._add(this._offset));let l="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?l=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(l=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let p="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?p="rotateX(0deg)":this._pitchAlignment==="map"&&(p=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||n&&n.type!=="moveend"||(this._pos=this._pos.round()),fe.setTransform(this._element,`${vs[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${p} ${l}`),Zt.frameAsync(new AbortController,this._map._ownerWindow).then((()=>{this._updateOpacity(n&&n.type==="moveend")})).catch((()=>{}))},this._onMove=n=>{if(!this._isDragging){const s=this._clickTolerance||this._map._clickTolerance;this._isDragging=n.point.dist(this._pointerdownPos)>=s}this._isDragging&&(this._pos=n.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new c.l("dragstart"))),this.fire(new c.l("drag")))},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new c.l("dragend")),this._state="inactive"},this._addDragHandler=n=>{this._element.contains(n.originalEvent.target)&&(n.preventDefault(),this._positionDelta=n.point.sub(this._pos).add(this._offset),this._pointerdownPos=n.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=t&&t.anchor||"center",this._color=t&&t.color||"#3FB1CE",this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._subpixelPositioning=t&&t.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||"auto",this._pitchAlignment=t&&t.pitchAlignment&&t.pitchAlignment!=="auto"?t.pitchAlignment:this._rotationAlignment,this.setOpacity(t?.opacity,t?.opacityWhenCovered),t&&t.element)this._element=t.element,this._offset=c.P.convert(t&&t.offset||[0,0]);else{this._defaultMarker=!0,this._element=fe.create("div");const n=fe.createNS("http://www.w3.org/2000/svg","svg"),s=41,l=27;n.setAttributeNS(null,"display","block"),n.setAttributeNS(null,"height",`${s}px`),n.setAttributeNS(null,"width",`${l}px`),n.setAttributeNS(null,"viewBox",`0 0 ${l} ${s}`);const p=fe.createNS("http://www.w3.org/2000/svg","g");p.setAttributeNS(null,"stroke","none"),p.setAttributeNS(null,"stroke-width","1"),p.setAttributeNS(null,"fill","none"),p.setAttributeNS(null,"fill-rule","evenodd");const m=fe.createNS("http://www.w3.org/2000/svg","g");m.setAttributeNS(null,"fill-rule","nonzero");const g=fe.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"transform","translate(3.0, 29.0)"),g.setAttributeNS(null,"fill","#000000");const x=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const N of x){const Z=fe.createNS("http://www.w3.org/2000/svg","ellipse");Z.setAttributeNS(null,"opacity","0.04"),Z.setAttributeNS(null,"cx","10.5"),Z.setAttributeNS(null,"cy","5.80029008"),Z.setAttributeNS(null,"rx",N.rx),Z.setAttributeNS(null,"ry",N.ry),g.appendChild(Z)}const w=fe.createNS("http://www.w3.org/2000/svg","g");w.setAttributeNS(null,"fill",this._color);const T=fe.createNS("http://www.w3.org/2000/svg","path");T.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),w.appendChild(T);const I=fe.createNS("http://www.w3.org/2000/svg","g");I.setAttributeNS(null,"opacity","0.25"),I.setAttributeNS(null,"fill","#000000");const M=fe.createNS("http://www.w3.org/2000/svg","path");M.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),I.appendChild(M);const z=fe.createNS("http://www.w3.org/2000/svg","g");z.setAttributeNS(null,"transform","translate(6.0, 7.0)"),z.setAttributeNS(null,"fill","#FFFFFF");const L=fe.createNS("http://www.w3.org/2000/svg","g");L.setAttributeNS(null,"transform","translate(8.0, 8.0)");const j=fe.createNS("http://www.w3.org/2000/svg","circle");j.setAttributeNS(null,"fill","#000000"),j.setAttributeNS(null,"opacity","0.25"),j.setAttributeNS(null,"cx","5.5"),j.setAttributeNS(null,"cy","5.5"),j.setAttributeNS(null,"r","5.4999962");const U=fe.createNS("http://www.w3.org/2000/svg","circle");U.setAttributeNS(null,"fill","#FFFFFF"),U.setAttributeNS(null,"cx","5.5"),U.setAttributeNS(null,"cy","5.5"),U.setAttributeNS(null,"r","5.4999962"),L.appendChild(j),L.appendChild(U),m.appendChild(g),m.appendChild(w),m.appendChild(I),m.appendChild(z),m.appendChild(L),n.appendChild(m),n.setAttributeNS(null,"height",s*this._scale+"px"),n.setAttributeNS(null,"width",l*this._scale+"px"),this._element.appendChild(n),this._offset=c.P.convert(t&&t.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",(n=>{n.preventDefault()})),this._element.addEventListener("mousedown",(n=>{n.preventDefault()})),yo(this._element,this._anchor,"marker"),this._element.addEventListener("click",this._onClick),t&&t.className)for(const n of t.className.split(" "))this._element.classList.add(n);this._popup=null}addTo(t){return this.remove(),this._map=t,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",t._getUIString("Marker.Title")),this._element.hasAttribute("role")||this._element.setAttribute("role","button"),t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),t.on("terrain",this._update),t.on("projectiontransition",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("terrain",this._update),this._map.off("projectiontransition",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),fe.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=c.V.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),t){if(!("offset"in t.options)){const l=Math.abs(13.5)/Math.SQRT2;t.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[l,-1*(38.1-13.5+l)],"bottom-right":[-l,-1*(38.1-13.5+l)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=t,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(t){return this._subpixelPositioning=t,this}getPopup(){return this._popup}togglePopup(){const t=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:t?(t.isOpen()?t.remove():(t.setLngLat(this._lngLat),t.addTo(this._map)),this):this}_updateOpacity(t=!1){var n,s;const l=(n=this._map)===null||n===void 0?void 0:n.terrain,p=this._map.transform.isLocationOccluded(this._lngLat);if(!l||p){const z=p?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==z&&(this._element.style.opacity=z))}if(t)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout((()=>{this._opacityTimeout=null}),100)}const m=this._map,g=m.terrain.depthAtPoint(this._pos),x=m.terrain.getElevationForLngLat(this._lngLat,m.transform);if(m.transform.lngLatToCameraDepth(this._lngLat,x)-g<.006)return void(this._element.style.opacity=this._opacity);const w=-this._offset.y/m.transform.pixelsPerMeter,T=Math.sin(m.getPitch()*Math.PI/180)*w,I=m.terrain.depthAtPoint(new c.P(this._pos.x,this._pos.y-this._offset.y)),M=m.transform.lngLatToCameraDepth(this._lngLat,x+T)-I>.006;!((s=this._popup)===null||s===void 0)&&s.isOpen()&&M&&this._popup.remove(),this._element.style.opacity=M?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(t){return this._offset=c.P.convert(t),this._update(),this}addClassName(t){this._element.classList.add(t)}removeClassName(t){this._element.classList.remove(t)}toggleClassName(t){return this._element.classList.toggle(t)}setDraggable(t){return this._draggable=!!t,this._map&&(t?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(t){return this._rotation=t||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(t){return this._rotationAlignment=t||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(t){return this._pitchAlignment=t&&t!=="auto"?t:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(t,n){return(this._opacity===void 0||t===void 0&&n===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),t!==void 0&&(this._opacity=t),n!==void 0&&(this._opacityWhenCovered=n),this._map&&this._updateOpacity(!0),this}}const Il={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let ba=0,Gn=!1;const xo={maxWidth:100,unit:"metric"};function vo(d,t,n){const s=n&&n.maxWidth||100,l=d._container.clientHeight/2,p=d._container.clientWidth/2,m=d.unproject([p-s/2,l]),g=d.unproject([p+s/2,l]),x=Math.round(d.project(g).x-d.project(m).x),w=Math.min(s,x,d._container.clientWidth),T=m.distanceTo(g);if(n&&n.unit==="imperial"){const I=3.2808*T;I>5280?qn(t,w,I/5280,d._getUIString("ScaleControl.Miles")):qn(t,w,I,d._getUIString("ScaleControl.Feet"))}else n&&n.unit==="nautical"?qn(t,w,T/1852,d._getUIString("ScaleControl.NauticalMiles")):T>=1e3?qn(t,w,T/1e3,d._getUIString("ScaleControl.Kilometers")):qn(t,w,T,d._getUIString("ScaleControl.Meters"))}function qn(d,t,n,s){const l=(function(p){const m=Math.pow(10,`${Math.floor(p)}`.length-1);let g=p/m;return g=g>=10?10:g>=5?5:g>=3?3:g>=2?2:g>=1?1:(function(x){const w=Math.pow(10,Math.ceil(-Math.log(x)/Math.LN10));return Math.round(x*w)/w})(g),m*g})(n);d.style.width=t*(l/n)+"px",d.innerHTML=`${l}&nbsp;${s}`}const bo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0,padding:void 0},El=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function wo(d){if(d){if(typeof d=="number"){const t=Math.round(Math.abs(d)/Math.SQRT2);return{center:new c.P(0,0),top:new c.P(0,d),"top-left":new c.P(t,t),"top-right":new c.P(-t,t),bottom:new c.P(0,-d),"bottom-left":new c.P(t,-t),"bottom-right":new c.P(-t,-t),left:new c.P(d,0),right:new c.P(-d,0)}}if(d instanceof c.P||Array.isArray(d)){const t=c.P.convert(d);return{center:t,top:t,"top-left":t,"top-right":t,bottom:t,"bottom-left":t,"bottom-right":t,left:t,right:t}}return{center:c.P.convert(d.center||[0,0]),top:c.P.convert(d.top||[0,0]),"top-left":c.P.convert(d["top-left"]||[0,0]),"top-right":c.P.convert(d["top-right"]||[0,0]),bottom:c.P.convert(d.bottom||[0,0]),"bottom-left":c.P.convert(d["bottom-left"]||[0,0]),"bottom-right":c.P.convert(d["bottom-right"]||[0,0]),left:c.P.convert(d.left||[0,0]),right:c.P.convert(d.right||[0,0])}}return wo(new c.P(0,0))}const Cl=Ee;k.AJAXError=c.cJ,k.EXTENT=c.a5,k.Event=c.l,k.Evented=c.E,k.LngLat=c.V,k.MercatorCoordinate=c.a9,k.Point=c.P,k.addProtocol=c.cK,k.config=c.c,k.removeProtocol=c.cL,k.AttributionControl=Yc,k.BoxZoomHandler=Tr,k.CanvasSource=ta,k.CooperativeGesturesHandler=Ue,k.DoubleClickZoomHandler=wl,k.DragPanHandler=pr,k.DragRotateHandler=gs,k.EdgeInsets=Rr,k.FullscreenControl=class extends c.E{constructor(d={}){var t;super(),this._onFullscreenChange=()=>{var n;let s=window.document.fullscreenElement||window.document.webkitFullscreenElement;for(;!((n=s?.shadowRoot)===null||n===void 0)&&n.fullscreenElement;)s=s.shadowRoot.fullscreenElement;s===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,this._pseudo=(t=d.pseudo)!==null&&t!==void 0&&t,d&&d.container&&(d.container instanceof HTMLElement?this._container=d.container:c.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange")}onAdd(d){return this._map=d,this._container||(this._container=this._map.getContainer()),this._controlContainer=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){fe.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const d=this._fullscreenButton=fe.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);fe.create("span","maplibregl-ctrl-icon",d).setAttribute("aria-hidden","true"),d.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const d=this._getTitle();this._fullscreenButton.setAttribute("aria-label",d),this._fullscreenButton.title=d}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new c.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new c.l("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){this._pseudo?this._togglePseudoFullScreen():window.document.exitFullscreen?window.document.exitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._pseudo?this._togglePseudoFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},k.GeoJSONSource=Ar,k.GeolocateControl=class extends c.E{constructor(d){super(),this._onSuccess=t=>{if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new c.l("outofmaxbounds",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(t),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new c.l("geolocate",t)),this._finish()}},this._updateCamera=t=>{const n=new c.V(t.coords.longitude,t.coords.latitude),s=t.coords.accuracy,l=this._map.getBearing(),p=c.e({bearing:l},this.options.fitBoundsOptions),m=vt.fromLngLat(n,s);this._map.fitBounds(m,p,{geolocateSource:!0})},this._updateMarker=t=>{if(t){const n=new c.V(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(n).addTo(this._map),this._userLocationDotMarker.setLngLat(n).addTo(this._map),this._accuracy=t.coords.accuracy,this._updateCircleRadiusIfNeeded()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onUpdate=()=>{this._updateCircleRadiusIfNeeded()},this._onError=t=>{if(this._map){if(t.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=n,this._geolocateButton.setAttribute("aria-label",n),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(t.code===3&&Gn)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new c.l("error",t)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this._geolocateButton=fe.create("button","maplibregl-ctrl-geolocate",this._container),fe.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=t=>{if(this._map){if(t===!1){c.w("Geolocation support is not available so the GeolocateControl will be disabled.");const n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=n,this._geolocateButton.setAttribute("aria-label",n)}else{const n=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=n,this._geolocateButton.setAttribute("aria-label",n)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=fe.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new bs({element:this._dotElement}),this._circleElement=fe.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new bs({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onUpdate),this._map.on("move",this._onUpdate),this._map.on("rotate",this._onUpdate),this._map.on("pitch",this._onUpdate)),this._geolocateButton.addEventListener("click",(()=>this.trigger())),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(n=>{const s=n?.[0]instanceof ResizeObserverEntry;n.geolocateSource||this._watchState!=="ACTIVE_LOCK"||s||this._map.isZooming()||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new c.l("trackuserlocationend")),this.fire(new c.l("userlocationlostfocus")))}))}},this.options=c.e({},Il,d)}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),(function(){return c._(this,arguments,void 0,(function*(t=!1){if(Ur!==void 0&&!t)return Ur;if(window.navigator.permissions===void 0)return Ur=!!window.navigator.geolocation,Ur;try{Ur=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Ur=!!window.navigator.geolocation}return Ur}))})().then((t=>this._finishSetupUI(t))),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),fe.remove(this._container),this._map.off("zoom",this._onUpdate),this._map.off("move",this._onUpdate),this._map.off("rotate",this._onUpdate),this._map.off("pitch",this._onUpdate),this._map=void 0,ba=0,Gn=!1}_isOutOfMapMaxBounds(d){const t=this._map.getMaxBounds(),n=d.coords;return t&&(n.longitude<t.getWest()||n.longitude>t.getEast()||n.latitude<t.getSouth()||n.latitude>t.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":case"BACKGROUND_ERROR":case"OFF":case void 0:break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadiusIfNeeded(){const d=this._userLocationDotMarker.getLngLat();if(!(this.options.showUserLocation&&this.options.showAccuracyCircle&&this._accuracy&&d))return;const t=this._map.project(d),n=this._map.unproject([t.x+100,t.y]),s=d.distanceTo(n)/100,l=2*this._accuracy/s;this._circleElement.style.width=`${l.toFixed(2)}px`,this._circleElement.style.height=`${l.toFixed(2)}px`}trigger(){if(!this._setup)return c.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new c.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":ba--,Gn=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new c.l("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new c.l("trackuserlocationstart")),this.fire(new c.l("userlocationfocus"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let d;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),ba++,ba>1?(d={maximumAge:6e5,timeout:0},Gn=!0):(d=this.options.positionOptions,Gn=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,d)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},k.GlobeControl=class{constructor(){this._toggleProjection=()=>{var d;const t=(d=this._map.getProjection())===null||d===void 0?void 0:d.type;this._map.setProjection(t!=="mercator"&&t?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var d;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((d=this._map.getProjection())===null||d===void 0?void 0:d.type)==="globe"?(this._globeButton.classList.add("maplibregl-ctrl-globe-enabled"),this._globeButton.title=this._map._getUIString("GlobeControl.Disable")):(this._globeButton.classList.add("maplibregl-ctrl-globe"),this._globeButton.title=this._map._getUIString("GlobeControl.Enable"))}}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=fe.create("button","maplibregl-ctrl-globe",this._container),fe.create("span","maplibregl-ctrl-icon",this._globeButton).setAttribute("aria-hidden","true"),this._globeButton.type="button",this._globeButton.addEventListener("click",this._toggleProjection),this._updateGlobeIcon(),this._map.on("styledata",this._updateGlobeIcon),this._map.on("projectiontransition",this._updateGlobeIcon),this._container}onRemove(){fe.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._map.off("projectiontransition",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},k.Hash=hs,k.ImageSource=zr,k.KeyboardHandler=Wc,k.LngLatBounds=vt,k.LogoControl=Kc,k.Map=class extends fr{get _ownerWindow(){var d,t;return((t=(d=this._container)===null||d===void 0?void 0:d.ownerDocument)===null||t===void 0?void 0:t.defaultView)||window}constructor(d){var t,n;c.cH.mark(c.cI.create);const s=Object.assign(Object.assign(Object.assign({},_o),d),{canvasContextAttributes:Object.assign(Object.assign({},_o.canvasContextAttributes),d.canvasContextAttributes)});if(s.minZoom!=null&&s.maxZoom!=null&&s.minZoom>s.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(s.minPitch!=null&&s.maxPitch!=null&&s.minPitch>s.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(s.minPitch!=null&&s.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(s.maxPitch!=null&&s.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const l=new Vi,p=new kn;s.minZoom!==void 0&&l.setMinZoom(s.minZoom),s.maxZoom!==void 0&&l.setMaxZoom(s.maxZoom),s.minPitch!==void 0&&l.setMinPitch(s.minPitch),s.maxPitch!==void 0&&l.setMaxPitch(s.maxPitch),s.renderWorldCopies!==void 0&&l.setRenderWorldCopies(s.renderWorldCopies),s.transformConstrain!==null&&l.setConstrainOverride(s.transformConstrain),super(l,p,{bearingSnap:s.bearingSnap,zoomSnap:s.zoomSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new nh,this._controls=[],this._mapId=c.af(),this._lostContextStyle={style:null,images:null},this._contextLost=g=>{if(g.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.painter.destroy(),this._lostContextStyle=this._getStyleAndImages(),this.style){for(const x of Object.values(this.style._layers))if(x.type==="custom"&&console.warn(`Custom layer with id '${x.id}' cannot be restored after WebGL context loss. You will need to re-add it manually after context restoration.`),x._listeners)for(const[w]of Object.entries(x._listeners))console.warn(`Custom layer with id '${x.id}' had event listeners for event '${w}' which cannot be restored after WebGL context loss. You will need to re-add them manually after context restoration.`);this.style.destroy(),this.style=null,this.fire(new c.l("webglcontextlost",{originalEvent:g}))}else this.fire(new c.l("webglcontextlost",{originalEvent:g}))},this._contextRestored=g=>{this._lostContextStyle.style&&this.setStyle(this._lostContextStyle.style,{diff:!1}),this._lostContextStyle.images&&(this.style.imageManager.images=this._lostContextStyle.images),this._lostContextStyle={style:null,images:null},this._setupPainter(),this.resize(),this._update(),this._resizeInternal(),this.fire(new c.l("webglcontextrestored",{originalEvent:g}))},this._onMapScroll=g=>{if(g.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=s.interactive,this._maxTileCacheSize=s.maxTileCacheSize,this._maxTileCacheZoomLevels=s.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},s.canvasContextAttributes),this._trackResize=s.trackResize===!0,this._bearingSnap=s.bearingSnap,this._zoomSnap=s.zoomSnap,this._centerClampedToGround=s.centerClampedToGround,this._refreshExpiredTiles=s.refreshExpiredTiles===!0,this._fadeDuration=s.fadeDuration,this._crossSourceCollisions=s.crossSourceCollisions===!0,this._collectResourceTiming=s.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},Sl),s.locale),this._clickTolerance=s.clickTolerance,this._overridePixelRatio=s.pixelRatio,this._maxCanvasSize=s.maxCanvasSize,this._zoomLevelsToOverscale=s.experimentalZoomLevelsToOverscale,this.transformCameraUpdate=s.transformCameraUpdate,this.transformConstrain=s.transformConstrain,this.cancelPendingTileRequestsWhileZooming=s.cancelPendingTileRequestsWhileZooming===!0,this.setAnisotropicFilterPitch(s.anisotropicFilterPitch),s.reduceMotion!==void 0&&(Zt.prefersReducedMotion=s.reduceMotion),this._imageQueueHandle=Li.addThrottleControl((()=>this.isMoving())),this._requestManager=new ka(s.transformRequest),this._container=this._resolveContainer(s.container),s.maxBounds&&this.setMaxBounds(s.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",(()=>this._update(!1))),this.on("moveend",(()=>this._update(!1))),this.on("zoom",(()=>this._update(!0))),this.on("terrain",(()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)})),this.once("idle",(()=>{this._idleTriggered=!0})),typeof window<"u"&&(this._ownerWindow.addEventListener("online",this._onWindowOnline,!1),this._setupResizeObserver()),this.handlers=new bi(this,s),this._hash=s.hash&&new hs(typeof s.hash=="string"&&s.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:s.center,elevation:s.elevation,zoom:s.zoom,bearing:s.bearing,pitch:s.pitch,roll:s.roll}),s.bounds&&(this.resize(),this.fitBounds(s.bounds,c.e({},s.fitBoundsOptions,{duration:0}))));const m=typeof s.style=="string"||((n=(t=s.style)===null||t===void 0?void 0:t.projection)===null||n===void 0?void 0:n.type)!=="globe";this.resize(null,m),this._localIdeographFontFamily=s.localIdeographFontFamily,this._validateStyle=s.validateStyle,s.style&&this.setStyle(s.style,{localIdeographFontFamily:s.localIdeographFontFamily}),s.attributionControl&&this.addControl(new Yc(typeof s.attributionControl=="boolean"?void 0:s.attributionControl)),s.maplibreLogo&&this.addControl(new Kc,s.logoPosition),this.on("style.load",(()=>{if(m||this._resizeTransform(),this.transform.unmodified){const g=c.U(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(g)}})),this.on("data",(g=>{this._update(g.dataType==="style"),this.fire(new c.l(`${g.dataType}data`,g))})),this.on("dataloading",(g=>{this.fire(new c.l(`${g.dataType}dataloading`,g))})),this.on("dataabort",(g=>{this.fire(new c.l("sourcedataabort",g))}))}_getMapId(){return this._mapId}setGlobalStateProperty(d,t){return this.style.setGlobalStateProperty(d,t),this._update(!0)}getGlobalState(){return this.style.getGlobalState()}addControl(d,t){if(t===void 0&&(t=d.getDefaultPosition?d.getDefaultPosition():"top-right"),!d||!d.onAdd)return this.fire(new c.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const n=d.onAdd(this);this._controls.push(d);const s=this._controlPositions[t];return t.indexOf("bottom")!==-1?s.insertBefore(n,s.firstChild):s.appendChild(n),this}removeControl(d){if(!d||!d.onRemove)return this.fire(new c.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const t=this._controls.indexOf(d);return t>-1&&this._controls.splice(t,1),d.onRemove(this),this}hasControl(d){return this._controls.indexOf(d)>-1}coveringTiles(d){return mt(this.transform,d)}calculateCameraOptionsFromTo(d,t,n,s){return s==null&&this.terrain&&(s=this.terrain.getElevationForLngLat(n,this.transform)),super.calculateCameraOptionsFromTo(d,t,n,s)}resize(d,t=!0){if(this._lostContextStyle.style!==null)return this;this._resizeInternal(t);const n=!this._moving;return n&&(this.stop(),this.fire(new c.l("movestart",d)).fire(new c.l("move",d))),this.fire(new c.l("resize",d)),n&&this.fire(new c.l("moveend",d)),this}_resizeInternal(d=!0){const[t,n]=this._containerDimensions(),s=this._getClampedPixelRatio(t,n);if(this._resizeCanvas(t,n,s),this.painter.resize(t,n,s),this.painter.overLimit()){const l=this.painter.context.gl;this._maxCanvasSize=[l.drawingBufferWidth,l.drawingBufferHeight];const p=this._getClampedPixelRatio(t,n);this._resizeCanvas(t,n,p),this.painter.resize(t,n,p)}this._resizeTransform(d)}_resizeTransform(d=!0){var t;const[n,s]=this._containerDimensions();this.transform.resize(n,s,d),(t=this._requestedCameraState)===null||t===void 0||t.resize(n,s,d)}_getClampedPixelRatio(d,t){const{0:n,1:s}=this._maxCanvasSize,l=this.getPixelRatio(),p=d*l,m=t*l;return Math.min(p>n?n/p:1,m>s?s/m:1)*l}getPixelRatio(){var d;return(d=this._overridePixelRatio)!==null&&d!==void 0?d:devicePixelRatio}setPixelRatio(d){this._overridePixelRatio=d,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(d){return this.transform.setMaxBounds(vt.convert(d)),this._update()}setMinZoom(d){if((d=d??-2)>=-2&&d<=this.transform.maxZoom){const t=this.transform.zoom,n=this._getTransformForUpdate();return n.setMinZoom(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.zoom&&this.fire(new c.l("zoomstart")).fire(new c.l("zoom")).fire(new c.l("zoomend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(d){if((d=d??22)>=this.transform.minZoom){const t=this.transform.zoom,n=this._getTransformForUpdate();return n.setMaxZoom(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.zoom&&this.fire(new c.l("zoomstart")).fire(new c.l("zoom")).fire(new c.l("zoomend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(d){if((d=d??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(d>=0&&d<=this.transform.maxPitch){const t=this.transform.pitch,n=this._getTransformForUpdate();return n.setMinPitch(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.pitch&&this.fire(new c.l("pitchstart")).fire(new c.l("pitch")).fire(new c.l("pitchend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(d){if((d=d??60)>180)throw new Error("maxPitch must be less than or equal to 180");if(d>=this.transform.minPitch){const t=this.transform.pitch,n=this._getTransformForUpdate();return n.setMaxPitch(d),this._applyUpdatedTransform(n),this._update(),t!==this.transform.pitch&&this.fire(new c.l("pitchstart")).fire(new c.l("pitch")).fire(new c.l("pitchend")).fire(new c.l("movestart")).fire(new c.l("move")).fire(new c.l("moveend")),this}throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getAnisotropicFilterPitch(){return this._anisotropicFilterPitch}setAnisotropicFilterPitch(d){if((d=d??20)>180)throw new Error("anisotropicFilterPitch must be less than or equal to 180");if(d<0)throw new Error("anisotropicFilterPitch must be greater than or equal to 0");return this._anisotropicFilterPitch=d,this._update()}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(d){return this.transform.setRenderWorldCopies(d),this._update()}setTransformConstrain(d){return this.transform.setConstrainOverride(d),this._update()}project(d){return this.transform.locationToScreenPoint(c.V.convert(d),this.style&&this.terrain)}unproject(d){return this.transform.screenPointToLocation(c.P.convert(d),this.terrain)}isMoving(){var d;return this._moving||((d=this.handlers)===null||d===void 0?void 0:d.isMoving())}isZooming(){var d;return this._zooming||((d=this.handlers)===null||d===void 0?void 0:d.isZooming())}isRotating(){var d;return this._rotating||((d=this.handlers)===null||d===void 0?void 0:d.isRotating())}_createDelegatedListener(d,t,n){if(d==="mouseenter"||d==="mouseover"){let s=!1;return{layers:t,listener:n,delegates:{mousemove:p=>{const m=t.filter((x=>this.getLayer(x))),g=m.length!==0?this.queryRenderedFeatures(p.point,{layers:m}):[];g.length?s||(s=!0,n.call(this,new Ui(d,this,p.originalEvent,{features:g}))):s=!1},mouseout:()=>{s=!1}}}}if(d==="mouseleave"||d==="mouseout"){let s=!1;return{layers:t,listener:n,delegates:{mousemove:m=>{const g=t.filter((x=>this.getLayer(x)));(g.length!==0?this.queryRenderedFeatures(m.point,{layers:g}):[]).length?s=!0:s&&(s=!1,n.call(this,new Ui(d,this,m.originalEvent)))},mouseout:m=>{s&&(s=!1,n.call(this,new Ui(d,this,m.originalEvent)))}}}}{const s=l=>{const p=t.filter((g=>this.getLayer(g))),m=p.length!==0?this.queryRenderedFeatures(l.point,{layers:p}):[];m.length&&(l.features=m,n.call(this,l),delete l.features)};return{layers:t,listener:n,delegates:{[d]:s}}}}_saveDelegatedListener(d,t){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[d]=this._delegatedListeners[d]||[],this._delegatedListeners[d].push(t)}_removeDelegatedListener(d,t,n){if(!this._delegatedListeners||!this._delegatedListeners[d])return;const s=this._delegatedListeners[d];for(let l=0;l<s.length;l++){const p=s[l];if(p.listener===n&&p.layers.length===t.length&&p.layers.every((m=>t.includes(m)))){for(const m in p.delegates)this.off(m,p.delegates[m]);return void s.splice(l,1)}}}on(d,t,n){if(n===void 0)return super.on(d,t);const s=typeof t=="string"?[t]:t,l=this._createDelegatedListener(d,s,n);this._saveDelegatedListener(d,l);for(const p in l.delegates)this.on(p,l.delegates[p]);return{unsubscribe:()=>{this._removeDelegatedListener(d,s,n)}}}once(d,t,n){if(n===void 0)return super.once(d,t);const s=typeof t=="string"?[t]:t,l=this._createDelegatedListener(d,s,n);for(const p in l.delegates){const m=l.delegates[p];l.delegates[p]=(...g)=>{this._removeDelegatedListener(d,s,n),m(...g)}}this._saveDelegatedListener(d,l);for(const p in l.delegates)this.once(p,l.delegates[p]);return this}off(d,t,n){return n===void 0?super.off(d,t):(this._removeDelegatedListener(d,typeof t=="string"?[t]:t,n),this)}queryRenderedFeatures(d,t){if(!this.style)return[];let n;const s=d instanceof c.P||Array.isArray(d),l=s?d:[[0,0],[this.transform.width,this.transform.height]];if(t=t||(s?{}:d)||{},l instanceof c.P||typeof l[0]=="number")n=[c.P.convert(l)];else{const p=c.P.convert(l[0]),m=c.P.convert(l[1]);n=[p,new c.P(m.x,p.y),m,new c.P(p.x,m.y),p]}return this.style.queryRenderedFeatures(n,t,this.transform)}querySourceFeatures(d,t){return this.style.querySourceFeatures(d,t)}setStyle(d,t){return(t=c.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},t)).diff!==!1&&t.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&d?(this._diffStyle(d,t),this):(this._localIdeographFontFamily=t.localIdeographFontFamily,this._updateStyle(d,t))}setTransformRequest(d){return this._requestManager.setTransformRequest(d),this}_getUIString(d){const t=this._locale[d];if(t==null)throw new Error(`Missing UI string '${d}'`);return t}_updateStyle(d,t){var n,s;if(t.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",(()=>this._updateStyle(d,t)));const l=this.style&&t.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!d)),d?(this.style=new Ho(this,t||{}),this.style.setEventedParent(this,{style:this.style}),typeof d=="string"?this.style.loadURL(d,t,l):this.style.loadJSON(d,t,l),this):((s=(n=this.style)===null||n===void 0?void 0:n.projection)===null||s===void 0||s.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ho(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(d,t){if(typeof d=="string"){const n=this._requestManager.transformRequest(d,"Style");c.j(n,new AbortController).then((s=>{this._updateDiff(s.data,t)})).catch((s=>{s&&this.fire(new c.k(s))}))}else typeof d=="object"&&this._updateDiff(d,t)}_updateDiff(d,t){try{this.style.setState(d,t)&&this._update(!0)}catch(n){c.w(`Unable to perform style diff: ${n.message||n.error||n}. Rebuilding the style from scratch.`),this._updateStyle(d,t)}}getStyle(){if(this.style)return this.style.serialize()}_getStyleAndImages(){return this.style?{style:this.style.serialize(),images:this.style.imageManager.cloneImages()}:{style:null,images:{}}}isStyleLoaded(){return this.style?this.style.loaded():c.w("There is no style added to the map.")}addSource(d,t){return this._lazyInitEmptyStyle(),this.style.addSource(d,t),this._update(!0)}isSourceLoaded(d){const t=this.style&&this.style.tileManagers[d];if(t!==void 0)return t.loaded();this.fire(new c.k(new Error(`There is no tile manager with ID '${d}'`)))}setTerrain(d){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),d){const t=this.style.tileManagers[d.source];if(!t)throw new Error(`cannot load terrain, because there exists no source with ID: ${d.source}`);this.terrain===null&&t.reload();for(const n in this.style._layers){const s=this.style._layers[n];s.type==="hillshade"&&s.source===d.source&&c.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality."),s.type==="color-relief"&&s.source===d.source&&c.w("You are using the same source for a color-relief layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Ot(this.painter,t,d),this.painter.renderToTexture=new mo(this.painter,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._terrainDataCallback=n=>{var s;n.dataType==="style"?this.terrain.tileManager.freeRtt():n.dataType==="source"&&n.tile&&(n.sourceId!==d.source||this._elevationFreeze||(this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))),((s=n.source)===null||s===void 0?void 0:s.type)==="image"?this.terrain.tileManager.freeRtt():this.terrain.tileManager.freeRtt(n.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.tileManager.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0);return this.fire(new c.l("terrain",{terrain:d})),this}getTerrain(){var d,t;return(t=(d=this.terrain)===null||d===void 0?void 0:d.options)!==null&&t!==void 0?t:null}areTilesLoaded(){const d=this.style&&this.style.tileManagers;for(const t of Object.values(d))if(!t.areTilesLoaded())return!1;return!0}removeSource(d){return this.style.removeSource(d),this._update(!0)}getSource(d){return this.style.getSource(d)}setSourceTileLodParams(d,t,n){if(n){const s=this.getSource(n);if(!s)throw new Error(`There is no source with ID "${n}", cannot set LOD parameters`);s.calculateTileZoom=Ge(Math.max(1,d),Math.max(1,t))}else for(const s in this.style.tileManagers)this.style.tileManagers[s].getSource().calculateTileZoom=Ge(Math.max(1,d),Math.max(1,t));return this._update(!0),this}refreshTiles(d,t){const n=this.style.tileManagers[d];if(!n)throw new Error(`There is no tile manager with ID "${d}", cannot refresh tile`);t===void 0?n.reload(!0):n.refreshTiles(t.map((s=>new c.ac(s.z,s.x,s.y))))}addImage(d,t,n={}){const{pixelRatio:s=1,sdf:l=!1,stretchX:p,stretchY:m,content:g,textFitWidth:x,textFitHeight:w}=n;if(this._lazyInitEmptyStyle(),!(t instanceof HTMLImageElement||c.b(t))){if(t.width===void 0||t.height===void 0)return this.fire(new c.k(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:T,height:I,data:M}=t,z=t;return this.style.addImage(d,{data:new c.R({width:T,height:I},new Uint8Array(M)),pixelRatio:s,stretchX:p,stretchY:m,content:g,textFitWidth:x,textFitHeight:w,sdf:l,version:0,userImage:z}),z.onAdd&&z.onAdd(this,d),this}}{const{width:T,height:I,data:M}=Zt.getImageData(t);this.style.addImage(d,{data:new c.R({width:T,height:I},M),pixelRatio:s,stretchX:p,stretchY:m,content:g,textFitWidth:x,textFitHeight:w,sdf:l,version:0})}}updateImage(d,t){const n=this.style.getImage(d);if(!n)return this.fire(new c.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const s=t instanceof HTMLImageElement||c.b(t)?Zt.getImageData(t):t,{width:l,height:p,data:m}=s;if(l===void 0||p===void 0)return this.fire(new c.k(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(l!==n.data.width||p!==n.data.height)return this.fire(new c.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const g=!(t instanceof HTMLImageElement||c.b(t));return n.data.replace(m,g),this.style.updateImage(d,n),this}getImage(d){return this.style.getImage(d)}hasImage(d){return d?!!this.style.getImage(d):(this.fire(new c.k(new Error("Missing required image id"))),!1)}removeImage(d){this.style.removeImage(d)}loadImage(d){return Li.getImage(this._requestManager.transformRequest(d,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(d,t){return this._lazyInitEmptyStyle(),this.style.addLayer(d,t),this._update(!0)}moveLayer(d,t){return this.style.moveLayer(d,t),this._update(!0)}removeLayer(d){return this.style.removeLayer(d),this._update(!0)}getLayer(d){return this.style.getLayer(d)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(d,t,n){return this.style.setLayerZoomRange(d,t,n),this._update(!0)}setFilter(d,t,n={}){return this.style.setFilter(d,t,n),this._update(!0)}getFilter(d){return this.style.getFilter(d)}setPaintProperty(d,t,n,s={}){return this.style.setPaintProperty(d,t,n,s),this._update(!0)}getPaintProperty(d,t){return this.style.getPaintProperty(d,t)}setLayoutProperty(d,t,n,s={}){return this.style.setLayoutProperty(d,t,n,s),this._update(!0)}getLayoutProperty(d,t){return this.style.getLayoutProperty(d,t)}setGlyphs(d,t={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(d,t),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(d,t,n={}){return this._lazyInitEmptyStyle(),this.style.addSprite(d,t,n,(s=>{s||this._update(!0)})),this}removeSprite(d){return this._lazyInitEmptyStyle(),this.style.removeSprite(d),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(d,t={}){return this._lazyInitEmptyStyle(),this.style.setSprite(d,t,(n=>{n||this._update(!0)})),this}setLight(d,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(d,t),this._update(!0)}getLight(){return this.style.getLight()}setSky(d,t={}){return this._lazyInitEmptyStyle(),this.style.setSky(d,t),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(d,t){return this.style.setFeatureState(d,t),this._update()}removeFeatureState(d,t){return this.style.removeFeatureState(d,t),this._update()}getFeatureState(d){return this.style.getFeatureState(d)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let d=0,t=0;return this._container&&(d=this._container.clientWidth||400,t=this._container.clientHeight||300),[d,t]}_setupResizeObserver(){var d;let t=!1;const n=pl((l=>{this._trackResize&&!this._removed&&(this.resize(l),this.redraw())}),50),s=(d=this._ownerWindow.ResizeObserver)!==null&&d!==void 0?d:ResizeObserver;this._resizeObserver=new s((l=>{t?n(l):t=!0})),this._resizeObserver.observe(this._container)}_resolveContainer(d){if(typeof d=="string"){const t=document.getElementById(d);if(!t)throw new Error(`Container '${d}' not found.`);return t}if(d instanceof HTMLElement||d&&typeof d=="object"&&d.nodeType===1)return d;throw new Error("Invalid type: 'container' must be a String or HTMLElement.")}_setupContainer(){const d=this._container;d.classList.add("maplibregl-map");const t=this._canvasContainer=fe.create("div","maplibregl-canvas-container",d);this._interactive&&t.classList.add("maplibregl-interactive"),this._canvas=fe.create("canvas","maplibregl-canvas",t),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");const n=this._containerDimensions(),s=this._getClampedPixelRatio(n[0],n[1]);this._resizeCanvas(n[0],n[1],s);const l=this._controlContainer=fe.create("div","maplibregl-control-container",d),p=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((m=>{p[m]=fe.create("div",`maplibregl-ctrl-${m} `,l)})),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(d,t,n){this._canvas.width=Math.floor(n*d),this._canvas.height=Math.floor(n*t),this._canvas.style.width=`${d}px`,this._canvas.style.height=`${t}px`}_setupPainter(){const d=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let t=null;this._canvas.addEventListener("webglcontextcreationerror",(s=>{t={requestedAttributes:d},s&&(t.statusMessage=s.statusMessage,t.type=s.type)}),{once:!0});let n=null;if(n=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,d):this._canvas.getContext("webgl2",d)||this._canvas.getContext("webgl",d),!n){const s="Failed to initialize WebGL";throw t?(t.message=s,new Error(JSON.stringify(t))):new Error(s)}this.painter=new Bc(n,this.transform),Xn.testSupport(n)}migrateProjection(d,t){super.migrateProjection(d,t),this.painter.transform=d,this.fire(new c.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(d){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||d,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(d){return this._update(),this._renderTaskQueue.add(d)}_cancelRenderFrame(d){this._renderTaskQueue.remove(d)}_render(d){var t,n,s,l,p;const m=this._idleTriggered?this._fadeDuration:0,g=((t=this.style.projection)===null||t===void 0?void 0:t.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(d),this._removed)return;let x=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const I=this.transform.zoom,M=it();this.style.zoomHistory.update(I,M);const z=new c.H(I,{now:M,fadeDuration:m,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),L=z.crossFadingFactor();L===1&&L===this._crossFadingFactor||(x=!0,this._crossFadingFactor=L),this.style.update(z)}const w=((n=this.style.projection)===null||n===void 0?void 0:n.transitionState)>0!==g;(s=this.style.projection)===null||s===void 0||s.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((l=this.style.projection)===null||l===void 0?void 0:l.transitionState,(p=this.style.projection)===null||p===void 0?void 0:p.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||w)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.tileManager.update(this.transform,this.terrain),this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),!this._elevationFreeze&&this._centerClampedToGround&&this.transform.setElevation(this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.setMinElevationForCurrentTile(0),this._centerClampedToGround&&this.transform.setElevation(0)),this._placementDirty=this.style&&this.style._updatePlacement(this.transform,this.showCollisionBoxes,m,this._crossSourceCollisions,w),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:m,showPadding:this.showPadding,anisotropicFilterPitch:this.getAnisotropicFilterPitch()}),this.fire(new c.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,c.cH.mark(c.cI.load),this.fire(new c.l("load"))),this.style&&(this.style.hasTransitions()||x)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const T=this._sourcesDirty||this._styleDirty||this._placementDirty;return T||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new c.l("idle")),!this._loaded||this._fullyLoaded||T||(this._fullyLoaded=!0,c.cH.mark(c.cI.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var d;this._hash&&this._hash.remove();for(const n of this._controls)n.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<"u"&&this._ownerWindow.removeEventListener("online",this._onWindowOnline,!1),Li.removeThrottleControl(this._imageQueueHandle),(d=this._resizeObserver)===null||d===void 0||d.disconnect();const t=this.painter.context.gl.getExtension("WEBGL_lose_context");t?.loseContext&&t.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),fe.remove(this._canvasContainer),fe.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),c.cH.remove(),this._removed=!0,this.fire(new c.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,Zt.frame(this._frameRequest,(d=>{c.cH.recordStartOfFrameAt(d),this._frameRequest=null;try{this._render(d)}catch(t){if(!c.Z(t)&&!(function(n){return n.message===rs})(t))throw t}}),(()=>{}),this._ownerWindow))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(d){this._showTileBoundaries!==d&&(this._showTileBoundaries=d,this._update())}get showPadding(){return!!this._showPadding}set showPadding(d){this._showPadding!==d&&(this._showPadding=d,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(d){this._showCollisionBoxes!==d&&(this._showCollisionBoxes=d,d?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(d){this._showOverdrawInspector!==d&&(this._showOverdrawInspector=d,this._update())}get repaint(){return!!this._repaint}set repaint(d){this._repaint!==d&&(this._repaint=d,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(d){this._vertices=d,this._update()}get version(){return Pl}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(d){return this._lazyInitEmptyStyle(),this.style.setProjection(d),this._update(!0)}},k.MapMouseEvent=Ui,k.MapTouchEvent=ps,k.MapWheelEvent=Vc,k.Marker=bs,k.NavigationControl=class{constructor(d){this._updateZoomButtons=()=>{const t=this._map.getZoom(),n=t===this._map.getMaxZoom(),s=t===this._map.getMinZoom();this._zoomInButton.disabled=n,this._zoomOutButton.disabled=s,this._zoomInButton.setAttribute("aria-disabled",n.toString()),this._zoomOutButton.setAttribute("aria-disabled",s.toString())},this._rotateCompassArrow=()=>{this._compassIcon.style.transform=this.options.visualizePitch&&this.options.visualizeRoll?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateZ(${-this._map.transform.roll}deg) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitchInRadians),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${-this._map.transform.bearing}deg)`:this.options.visualizeRoll?`rotate(${-this._map.transform.bearing-this._map.transform.roll}deg)`:`rotate(${-this._map.transform.bearing}deg)`},this._setButtonTitle=(t,n)=>{const s=this._map._getUIString(`NavigationControl.${n}`);t.title=s,t.setAttribute("aria-label",s)},this.options=c.e({},xs,d),this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",(t=>this._map.zoomIn({},{originalEvent:t}))),fe.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",(t=>this._map.zoomOut({},{originalEvent:t}))),fe.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",(t=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t})})),this._compassIcon=fe.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(d){return this._map=d,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.on("roll",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ml(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){fe.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this.options.visualizeRoll&&this._map.off("roll",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(d,t){const n=fe.create("button",d,this._container);return n.type="button",n.addEventListener("click",t),n}},k.Popup=class extends c.E{constructor(d){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:"")},this.remove=()=>(this._content&&fe.remove(this._content),this._container&&(fe.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new c.l("close"))),this),this._onMouseUp=t=>{this._update(t.point)},this._onMouseMove=t=>{this._update(t.point)},this._onDrag=t=>{this._update(t.point)},this._update=t=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=fe.create("div","maplibregl-popup",this._map.getContainer()),this._tip=fe.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const m of this.options.className.split(" "))this._container.classList.add(m);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=go(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!t)return;const n=this._flatPos=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&t?t:this._map.transform.locationToScreenPoint(this._lngLat));let s=this.options.anchor;const l=wo(this.options.offset);if(!s){const m=this._container.offsetWidth,g=this._container.offsetHeight,x=(function(T){var I,M,z,L;return T?{top:(I=T.top)!==null&&I!==void 0?I:0,right:(M=T.right)!==null&&M!==void 0?M:0,bottom:(z=T.bottom)!==null&&z!==void 0?z:0,left:(L=T.left)!==null&&L!==void 0?L:0}:{top:0,right:0,bottom:0,left:0}})(this.options.padding);let w;w=n.y+l.bottom.y<g+x.top?["top"]:n.y>this._map.transform.height-g-x.bottom?["bottom"]:[],n.x<m/2+x.left?w.push("left"):n.x>this._map.transform.width-m/2-x.right&&w.push("right"),s=w.length===0?"bottom":w.join("-")}let p=n.add(l[s]);this.options.subpixelPositioning||(p=p.round()),fe.setTransform(this._container,`${vs[s]} translate(${p.x}px,${p.y}px)`),yo(this._container,s,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=c.e(Object.create(bo),d)}addTo(d){return this._map&&this.remove(),this._map=d,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new c.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(d){return this._lngLat=c.V.convert(d),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(d){return this.setDOMContent(document.createTextNode(d))}setHTML(d){const t=document.createDocumentFragment(),n=document.createElement("body");let s;for(n.innerHTML=d;s=n.firstChild,s;)t.appendChild(s);return this.setDOMContent(t)}getMaxWidth(){var d;return(d=this._container)===null||d===void 0?void 0:d.style.maxWidth}setMaxWidth(d){return this.options.maxWidth=d,this._update(),this}setDOMContent(d){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=fe.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(d),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(d){return this._container&&this._container.classList.add(d),this}removeClassName(d){return this._container&&this._container.classList.remove(d),this}setOffset(d){return this.options.offset=d,this._update(),this}toggleClassName(d){if(this._container)return this._container.classList.toggle(d)}setSubpixelPositioning(d){this.options.subpixelPositioning=d}setPadding(d){this.options.padding=d,this._update()}_createCloseButton(){this.options.closeButton&&(this._closeButton=fe.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="&#215;",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const d=this._container.querySelector(El);d&&d.focus()}},k.RasterDEMTileSource=nn,k.RasterTileSource=Pn,k.ScaleControl=class{constructor(d){this._onMove=()=>{vo(this._map,this._container,this.options)},this.setUnit=t=>{this.options.unit=t,vo(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xo),d)}getDefaultPosition(){return"bottom-left"}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-scale",d.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){fe.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},k.ScrollZoomHandler=bl,k.Style=Ho,k.TerrainControl=class{constructor(d){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.Disable")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.Enable"))},this.options=d}onAdd(d){return this._map=d,this._container=fe.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=fe.create("button","maplibregl-ctrl-terrain",this._container),fe.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){fe.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},k.TwoFingersTouchPitchHandler=Nr,k.TwoFingersTouchRotateHandler=$c,k.TwoFingersTouchZoomHandler=Zc,k.TwoFingersTouchZoomRotateHandler=Be,k.VectorTileSource=ea,k.VideoSource=sn,k.addSourceType=(d,t)=>c._(void 0,void 0,void 0,(function*(){if(ia(d))throw new Error(`A source type called "${d}" already exists.`);((n,s)=>{Fa[n]=s})(d,t)})),k.clearPrewarmedResources=function(){const d=ui;d&&(d.isPreloaded()&&d.numActive()===1?(d.release(rn),ui=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},k.createTileMesh=js,k.getMaxParallelImageRequests=function(){return c.c.MAX_PARALLEL_IMAGE_REQUESTS},k.getRTLTextPluginStatus=function(){return F().getRTLTextPluginStatus()},k.getVersion=function(){return Cl},k.getWorkerCount=function(){return Cr.workerCount},k.getWorkerUrl=function(){return c.c.WORKER_URL},k.importScriptInWorkers=function(d){return Tn().broadcast("IS",d)},k.isTimeFrozen=function(){return Jr.isFrozen()},k.now=it,k.prewarm=function(){Qn().acquire(rn)},k.restoreNow=function(){Jr.restoreNow()},k.setMaxParallelImageRequests=function(d){c.c.MAX_PARALLEL_IMAGE_REQUESTS=d},k.setNow=function(d){Jr.setNow(d)},k.setRTLTextPlugin=function(d,t){return F().setRTLTextPlugin(d,t)},k.setWorkerCount=function(d){Cr.workerCount=d},k.setWorkerUrl=function(d){c.c.WORKER_URL=d}}));var ci=Ae;return ci}))})(Du)),Du.exports}var og=ag();const Eu=Math.PI/180,Cu=180/Math.PI,Au=6378137,za=20037508342789244e-9,zu="900913",sg="WGS84",jo={};function vf(we){return Number(we)===we&&we%1!==0}class lg{#e;#t;#n;#a;#r;#i;constructor(ce={}){if(this.#e=ce.size||256,this.#t=ce.antimeridian?2:1,!jo[this.#e]){let Ae=this.#e;const ze=jo[this.#e]={};ze.Bc=[],ze.Cc=[],ze.zc=[],ze.Ac=[];for(let ot=0;ot<30;ot++)ze.Bc.push(Ae/360),ze.Cc.push(Ae/(2*Math.PI)),ze.zc.push(Ae/2),ze.Ac.push(Ae),Ae*=2}this.#n=jo[this.#e].Bc,this.#a=jo[this.#e].Cc,this.#r=jo[this.#e].zc,this.#i=jo[this.#e].Ac}px(ce,Ae){if(vf(Ae)){const ze=this.#e*Math.pow(2,Ae),ot=ze/2,ci=ze/360,k=ze/(2*Math.PI),c=ze,Ee=Math.min(Math.max(Math.sin(Eu*ce[1]),-.9999),.9999);let Jt=ot+ce[0]*ci,Nt=ot+.5*Math.log((1+Ee)/(1-Ee))*-k;return Jt>c*this.#t&&(Jt=c*this.#t),Nt>c&&(Nt=c),[Jt,Nt]}else{const ze=this.#r[Ae],ot=Math.min(Math.max(Math.sin(Eu*ce[1]),-.9999),.9999);let ci=Math.round(ze+ce[0]*this.#n[Ae]),k=Math.round(ze+.5*Math.log((1+ot)/(1-ot))*-this.#a[Ae]);return ci>this.#i[Ae]*this.#t&&(ci=this.#i[Ae]*this.#t),k>this.#i[Ae]&&(k=this.#i[Ae]),[ci,k]}}ll(ce,Ae){if(vf(Ae)){const ze=this.#e*Math.pow(2,Ae),ot=ze/360,ci=ze/(2*Math.PI),k=ze/2,c=(ce[1]-k)/-ci,Ee=(ce[0]-k)/ot,Jt=Cu*(2*Math.atan(Math.exp(c))-.5*Math.PI);return[Ee,Jt]}else{const ze=(ce[1]-this.#r[Ae])/-this.#a[Ae],ot=(ce[0]-this.#r[Ae])/this.#n[Ae],ci=Cu*(2*Math.atan(Math.exp(ze))-.5*Math.PI);return[ot,ci]}}convert(ce,Ae){return Ae===zu?[...this.forward(ce.slice(0,2)),...this.forward(ce.slice(2,4))]:[...this.inverse(ce.slice(0,2)),...this.inverse(ce.slice(2,4))]}inverse(ce){return[ce[0]*Cu/Au,(Math.PI*.5-2*Math.atan(Math.exp(-ce[1]/Au)))*Cu]}forward(ce){const Ae=[Au*ce[0]*Eu,Au*Math.log(Math.tan(Math.PI*.25+.5*ce[1]*Eu))];return Ae[0]>za&&(Ae[0]=za),Ae[0]<-za&&(Ae[0]=-za),Ae[1]>za&&(Ae[1]=za),Ae[1]<-za&&(Ae[1]=-za),Ae}bbox(ce,Ae,ze,ot,ci){ot&&(Ae=Math.pow(2,ze)-1-Ae);const k=[ce*this.#e,(+Ae+1)*this.#e],c=[(+ce+1)*this.#e,Ae*this.#e],Ee=[...this.ll(k,ze),...this.ll(c,ze)];return ci===zu?this.convert(Ee,zu):Ee}xyz(ce,Ae,ze,ot){const ci=ot===zu?this.convert(ce,sg):ce,k=[ci[0],ci[1]],c=[ci[2],ci[3]],Ee=this.px(k,Ae),Jt=this.px(c,Ae),Nt=[Math.floor(Ee[0]/this.#e),Math.floor((Jt[0]-1)/this.#e)],or=[Math.floor(Jt[1]/this.#e),Math.floor((Ee[1]-1)/this.#e)],lr={minX:Math.min.apply(Math,Nt)<0?0:Math.min.apply(Math,Nt),minY:Math.min.apply(Math,or)<0?0:Math.min.apply(Math,or),maxX:Math.max.apply(Math,Nt),maxY:Math.max.apply(Math,or)};if(ze){const Zt={minY:Math.pow(2,Ae)-1-lr.maxY,maxY:Math.pow(2,Ae)-1-lr.minY};lr.minY=Zt.minY,lr.maxY=Zt.maxY}return lr}}export{ig as C,rg as R,lg as S,og as m};