@opengis/gis 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/import-file.cjs +845 -0
- package/dist/{index.js → import-file.js} +12117 -11060
- package/package.json +3 -4
- package/dist/index.umd.cjs +0 -845
- /package/dist/{index.css → import-file.css} +0 -0
package/dist/index.umd.cjs
DELETED
|
@@ -1,845 +0,0 @@
|
|
|
1
|
-
(function(zi,S){typeof exports=="object"&&typeof module<"u"?S(exports,require("vue"),require("vue3-smooth-dnd")):typeof define=="function"&&define.amd?define(["exports","vue","vue3-smooth-dnd"],S):(zi=typeof globalThis<"u"?globalThis:zi||self,S(zi.MapCustom={},zi.Vue,zi.vue3SmoothDnd))})(this,function(zi,S,Fs){"use strict";var LS=Object.defineProperty;var RS=(zi,S,Fs)=>S in zi?LS(zi,S,{enumerable:!0,configurable:!0,writable:!0,value:Fs}):zi[S]=Fs;var lr=(zi,S,Fs)=>RS(zi,typeof S!="symbol"?S+"":S,Fs);var Xh;function yd(d){return d&&d.__esModule&&Object.prototype.hasOwnProperty.call(d,"default")?d.default:d}var cc={exports:{}};/**
|
|
2
|
-
* MapLibre GL JS
|
|
3
|
-
* @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.5.0/LICENSE.txt
|
|
4
|
-
*/var by=cc.exports,_d;function vy(){return _d||(_d=1,function(d,f){(function(_,v){d.exports=v()})(by,function(){var _={},v={};function k(x,s,B){if(v[x]=B,x==="index"){var z="var sharedModule = {}; ("+v.shared+")(sharedModule); ("+v.worker+")(sharedModule);",R={};return v.shared(R),v.index(_,R),typeof window<"u"&&_.setWorkerUrl(window.URL.createObjectURL(new Blob([z],{type:"text/javascript"}))),_}}k("shared",["exports"],function(x){function s(n,t,i,o){return new(i||(i=Promise))(function(c,p){function m(E){try{w(o.next(E))}catch(L){p(L)}}function y(E){try{w(o.throw(E))}catch(L){p(L)}}function w(E){var L;E.done?c(E.value):(L=E.value,L instanceof i?L:new i(function(V){V(L)})).then(m,y)}w((o=o.apply(n,t||[])).next())})}function B(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var z,R;function H(){if(R)return z;function n(t,i){this.x=t,this.y=i}return R=1,z=n,n.prototype={clone:function(){return new n(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,i){return this.clone()._rotateAround(t,i)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var i=t.x-this.x,o=t.y-this.y;return i*i+o*o},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,i){return Math.atan2(this.x*i-this.y*t,this.x*t+this.y*i)},_matMult:function(t){var i=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var i=Math.cos(t),o=Math.sin(t),c=o*this.x+i*this.y;return this.x=i*this.x-o*this.y,this.y=c,this},_rotateAround:function(t,i){var o=Math.cos(t),c=Math.sin(t),p=i.y+c*(this.x-i.x)+o*(this.y-i.y);return this.x=i.x+o*(this.x-i.x)-c*(this.y-i.y),this.y=p,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},n.convert=function(t){return t instanceof n?t:Array.isArray(t)?new n(t[0],t[1]):t},z}typeof SuppressedError=="function"&&SuppressedError;var M,C,T=B(H()),N=function(){if(C)return M;function n(t,i,o,c){this.cx=3*t,this.bx=3*(o-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(c-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=i,this.p2x=o,this.p2y=c}return C=1,M=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,i){if(i===void 0&&(i=1e-6),t<0)return 0;if(t>1)return 1;for(var o=t,c=0;c<8;c++){var p=this.sampleCurveX(o)-t;if(Math.abs(p)<i)return o;var m=this.sampleCurveDerivativeX(o);if(Math.abs(m)<1e-6)break;o-=p/m}var y=0,w=1;for(o=t,c=0;c<20&&(p=this.sampleCurveX(o),!(Math.abs(p-t)<i));c++)t>p?y=o:w=o,o=.5*(w-y)+y;return o},solve:function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}},M}(),K=B(N);let ie,le;function Se(){return ie==null&&(ie=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),ie}function ee(){if(le==null&&(le=!1,Se())){const t=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(t){for(let o=0;o<5*5;o++){const c=4*o;t.fillStyle=`rgb(${c},${c+1},${c+2})`,t.fillRect(o%5,Math.floor(o/5),1,1)}const i=t.getImageData(0,0,5,5).data;for(let o=0;o<5*5*4;o++)if(o%4!=3&&i[o]!==o){le=!0;break}}}return le||!1}var pe=1e-6,Pe=typeof Float32Array<"u"?Float32Array:Array;function De(){var n=new Pe(9);return Pe!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function Ze(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function gt(){var n=new Pe(3);return Pe!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n}function rt(n){return Math.hypot(n[0],n[1],n[2])}function Je(n,t,i){var o=new Pe(3);return o[0]=n,o[1]=t,o[2]=i,o}Math.hypot||(Math.hypot=function(){for(var n=0,t=arguments.length;t--;)n+=arguments[t]*arguments[t];return Math.sqrt(n)});var it,bt=rt;function It(n,t,i){var o=t[0],c=t[1],p=t[2],m=t[3];return n[0]=i[0]*o+i[4]*c+i[8]*p+i[12]*m,n[1]=i[1]*o+i[5]*c+i[9]*p+i[13]*m,n[2]=i[2]*o+i[6]*c+i[10]*p+i[14]*m,n[3]=i[3]*o+i[7]*c+i[11]*p+i[15]*m,n}function mr(){var n=new Pe(4);return Pe!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function Sr(){var n=new Pe(2);return Pe!=Float32Array&&(n[0]=0,n[1]=0),n}function Ai(n,t){var i=new Pe(2);return i[0]=n,i[1]=t,i}gt(),it=new Pe(4),Pe!=Float32Array&&(it[0]=0,it[1]=0,it[2]=0,it[3]=0),gt(),Je(1,0,0),Je(0,1,0),mr(),mr(),De(),Sr();const Ft=8192;function en(n,t,i){return t*(Ft/(n.tileSize*Math.pow(2,i-n.tileID.overscaledZ)))}function Ur(n,t){return(n%t+t)%t}function kn(n,t,i){return n*(1-i)+t*i}function ki(n){if(n<=0)return 0;if(n>=1)return 1;const t=n*n,i=t*n;return 4*(n<.5?i:3*(n-t)+i-.75)}function cs(n,t,i,o){const c=new K(n,t,i,o);return p=>c.solve(p)}const yi=cs(.25,.1,.25,1);function Dr(n,t,i){return Math.min(i,Math.max(t,n))}function tn(n,t,i){const o=i-t,c=((n-t)%o+o)%o+t;return c===t?i:c}function ii(n,...t){for(const i of t)for(const o in i)n[o]=i[o];return n}let Tn=1;function Zi(n,t,i){const o={};for(const c in n)o[c]=t.call(this,n[c],c,n);return o}function Un(n,t,i){const o={};for(const c in n)t.call(this,n[c],c,n)&&(o[c]=n[c]);return o}function ci(n){return Array.isArray(n)?n.map(ci):typeof n=="object"&&n?Zi(n,ci):n}const et={};function nt(n){et[n]||(typeof console<"u"&&console.warn(n),et[n]=!0)}function Xe(n,t,i){return(i.y-n.y)*(t.x-n.x)>(t.y-n.y)*(i.x-n.x)}function xt(n){return typeof WorkerGlobalScope<"u"&&n!==void 0&&n instanceof WorkerGlobalScope}let wt=null;function kt(n){return typeof ImageBitmap<"u"&&n instanceof ImageBitmap}const er="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Ht(n,t,i,o,c){return s(this,void 0,void 0,function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const p=new VideoFrame(n,{timestamp:0});try{const m=p==null?void 0:p.format;if(!m||!m.startsWith("BGR")&&!m.startsWith("RGB"))throw new Error(`Unrecognized format ${m}`);const y=m.startsWith("BGR"),w=new Uint8ClampedArray(o*c*4);if(yield p.copyTo(w,function(E,L,V,q,j){const W=4*Math.max(1,0),X=(Math.max(0,V)-V)*q*4+W,$=4*q,ae=Math.max(0,L),_e=Math.max(0,V);return{rect:{x:ae,y:_e,width:Math.min(E.width,L+q)-ae,height:Math.min(E.height,V+j)-_e},layout:[{offset:X,stride:$}]}}(n,t,i,o,c)),y)for(let E=0;E<w.length;E+=4){const L=w[E];w[E]=w[E+2],w[E+2]=L}return w}finally{p.close()}})}let Jt,Br;function _i(n,t,i,o){return n.addEventListener(t,i,o),{unsubscribe:()=>{n.removeEventListener(t,i,o)}}}function gr(n){return n*Math.PI/180}function Ti(n){return n/Math.PI*180}const rn={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},or={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},Xt="AbortError";function _t(){return new Error(Xt)}const Ar={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function tr(n){return Ar.REGISTERED_PROTOCOLS[n.substring(0,n.indexOf("://"))]}const yr="global-dispatcher";class Cr extends Error{constructor(t,i,o,c){super(`AJAXError: ${i} (${t}): ${o}`),this.status=t,this.statusText=i,this.url=o,this.body=c}}const Zt=()=>xt(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,jr=function(n,t){if(/:\/\//.test(n.url)&&!/^https?:|^file:/.test(n.url)){const o=tr(n.url);if(o)return o(n,t);if(xt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,targetMapId:yr},t)}if(!(/^file:/.test(i=n.url)||/^file:/.test(Zt())&&!/^\w+:/.test(i))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(o,c){return s(this,void 0,void 0,function*(){const p=new Request(o.url,{method:o.method||"GET",body:o.body,credentials:o.credentials,headers:o.headers,cache:o.cache,referrer:Zt(),signal:c.signal});let m,y;o.type!=="json"||p.headers.has("Accept")||p.headers.set("Accept","application/json");try{m=yield fetch(p)}catch(E){throw new Cr(0,E.message,o.url,new Blob)}if(!m.ok){const E=yield m.blob();throw new Cr(m.status,m.statusText,o.url,E)}y=o.type==="arrayBuffer"||o.type==="image"?m.arrayBuffer():o.type==="json"?m.json():m.text();const w=yield y;if(c.signal.aborted)throw _t();return{data:w,cacheControl:m.headers.get("Cache-Control"),expires:m.headers.get("Expires")}})}(n,t);if(xt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:n,mustQueue:!0,targetMapId:yr},t)}var i;return function(o,c){return new Promise((p,m)=>{var y;const w=new XMLHttpRequest;w.open(o.method||"GET",o.url,!0),o.type!=="arrayBuffer"&&o.type!=="image"||(w.responseType="arraybuffer");for(const E in o.headers)w.setRequestHeader(E,o.headers[E]);o.type==="json"&&(w.responseType="text",!((y=o.headers)===null||y===void 0)&&y.Accept||w.setRequestHeader("Accept","application/json")),w.withCredentials=o.credentials==="include",w.onerror=()=>{m(new Error(w.statusText))},w.onload=()=>{if(!c.signal.aborted)if((w.status>=200&&w.status<300||w.status===0)&&w.response!==null){let E=w.response;if(o.type==="json")try{E=JSON.parse(w.response)}catch(L){return void m(L)}p({data:E,cacheControl:w.getResponseHeader("Cache-Control"),expires:w.getResponseHeader("Expires")})}else{const E=new Blob([w.response],{type:w.getResponseHeader("Content-Type")});m(new Cr(w.status,w.statusText,o.url,E))}},c.signal.addEventListener("abort",()=>{w.abort(),m(_t())}),w.send(o.body)})}(n,t)};function ve(n){if(!n||n.indexOf("://")<=0||n.indexOf("data:image/")===0||n.indexOf("blob:")===0)return!0;const t=new URL(n),i=window.location;return t.protocol===i.protocol&&t.host===i.host}function G(n,t,i){i[n]&&i[n].indexOf(t)!==-1||(i[n]=i[n]||[],i[n].push(t))}function Q(n,t,i){if(i&&i[n]){const o=i[n].indexOf(t);o!==-1&&i[n].splice(o,1)}}class te{constructor(t,i={}){ii(this,i),this.type=t}}class he extends te{constructor(t,i={}){super("error",ii({error:t},i))}}class xe{on(t,i){return this._listeners=this._listeners||{},G(t,i,this._listeners),{unsubscribe:()=>{this.off(t,i)}}}off(t,i){return Q(t,i,this._listeners),Q(t,i,this._oneTimeListeners),this}once(t,i){return i?(this._oneTimeListeners=this._oneTimeListeners||{},G(t,i,this._oneTimeListeners),this):new Promise(o=>this.once(t,o))}fire(t,i){typeof t=="string"&&(t=new te(t,i||{}));const o=t.type;if(this.listens(o)){t.target=this;const c=this._listeners&&this._listeners[o]?this._listeners[o].slice():[];for(const y of c)y.call(this,t);const p=this._oneTimeListeners&&this._oneTimeListeners[o]?this._oneTimeListeners[o].slice():[];for(const y of p)Q(o,y,this._oneTimeListeners),y.call(this,t);const m=this._eventedParent;m&&(ii(t,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),m.fire(t))}else t instanceof he&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,i){return this._eventedParent=t,this._eventedParentData=i,this}}var re={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},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"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},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_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"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_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"}}};const Ee=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function we(n,t){const i={};for(const o in n)o!=="ref"&&(i[o]=n[o]);return Ee.forEach(o=>{o in t&&(i[o]=t[o])}),i}function ke(n,t){if(Array.isArray(n)){if(!Array.isArray(t)||n.length!==t.length)return!1;for(let i=0;i<n.length;i++)if(!ke(n[i],t[i]))return!1;return!0}if(typeof n=="object"&&n!==null&&t!==null){if(typeof t!="object"||Object.keys(n).length!==Object.keys(t).length)return!1;for(const i in n)if(!ke(n[i],t[i]))return!1;return!0}return n===t}function Ie(n,t){n.push(t)}function Ae(n,t,i){Ie(i,{command:"addSource",args:[n,t[n]]})}function Ue(n,t,i){Ie(t,{command:"removeSource",args:[n]}),i[n]=!0}function $e(n,t,i,o){Ue(n,i,o),Ae(n,t,i)}function tt(n,t,i){let o;for(o in n[i])if(Object.prototype.hasOwnProperty.call(n[i],o)&&o!=="data"&&!ke(n[i][o],t[i][o]))return!1;for(o in t[i])if(Object.prototype.hasOwnProperty.call(t[i],o)&&o!=="data"&&!ke(n[i][o],t[i][o]))return!1;return!0}function ht(n,t,i,o,c,p){n=n||{},t=t||{};for(const m in n)Object.prototype.hasOwnProperty.call(n,m)&&(ke(n[m],t[m])||i.push({command:p,args:[o,m,t[m],c]}));for(const m in t)Object.prototype.hasOwnProperty.call(t,m)&&!Object.prototype.hasOwnProperty.call(n,m)&&(ke(n[m],t[m])||i.push({command:p,args:[o,m,t[m],c]}))}function St(n){return n.id}function yt(n,t){return n[t.id]=t,n}class Be{constructor(t,i,o,c){this.message=(t?`${t}: `:"")+o,c&&(this.identifier=c),i!=null&&i.__line__&&(this.line=i.__line__)}}function Wt(n,...t){for(const i of t)for(const o in i)n[o]=i[o];return n}class zt extends Error{constructor(t,i){super(i),this.message=i,this.key=t}}class qt{constructor(t,i=[]){this.parent=t,this.bindings={};for(const[o,c]of i)this.bindings[o]=c}concat(t){return new qt(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}const mt={kind:"null"},qe={kind:"number"},dt={kind:"string"},At={kind:"boolean"},_r={kind:"color"},xr={kind:"projectionDefinition"},xi={kind:"object"},Tt={kind:"value"},us={kind:"collator"},Ws={kind:"formatted"},jn={kind:"padding"},Zs={kind:"colorArray"},dn={kind:"numberArray"},Hn={kind:"resolvedImage"},Er={kind:"variableAnchorOffsetCollection"};function Ci(n,t){return{kind:"array",itemType:n,N:t}}function ar(n){if(n.kind==="array"){const t=ar(n.itemType);return typeof n.N=="number"?`array<${t}, ${n.N}>`:n.itemType.kind==="value"?"array":`array<${t}>`}return n.kind}const Ks=[mt,qe,dt,At,_r,xr,Ws,xi,Ci(Tt),jn,dn,Zs,Hn,Er];function hs(n,t){if(t.kind==="error")return null;if(n.kind==="array"){if(t.kind==="array"&&(t.N===0&&t.itemType.kind==="value"||!hs(n.itemType,t.itemType))&&(typeof n.N!="number"||n.N===t.N))return null}else{if(n.kind===t.kind)return null;if(n.kind==="value"){for(const i of Ks)if(!hs(i,t))return null}}return`Expected ${ar(n)} but found ${ar(t)} instead.`}function $a(n,t){return t.some(i=>i.kind===n.kind)}function Wn(n,t){return t.some(i=>i==="null"?n===null:i==="array"?Array.isArray(n):i==="object"?n&&!Array.isArray(n)&&typeof n=="object":i===typeof n)}function fn(n,t){return n.kind==="array"&&t.kind==="array"?n.itemType.kind===t.itemType.kind&&typeof n.N=="number":n.kind===t.kind}const su=.96422,el=.82521,ou=4/29,ps=6/29,au=3*ps*ps,Qh=ps*ps*ps,Yh=Math.PI/180,$h=180/Math.PI;function lu(n){return(n%=360)<0&&(n+=360),n}function tl([n,t,i,o]){let c,p;const m=rl((.2225045*(n=Zn(n))+.7168786*(t=Zn(t))+.0606169*(i=Zn(i)))/1);n===t&&t===i?c=p=m:(c=rl((.4360747*n+.3850649*t+.1430804*i)/su),p=rl((.0139322*n+.0971045*t+.7141733*i)/el));const y=116*m-16;return[y<0?0:y,500*(c-m),200*(m-p),o]}function Zn(n){return n<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function rl(n){return n>Qh?Math.pow(n,1/3):n/au+ou}function cu([n,t,i,o]){let c=(n+16)/116,p=isNaN(t)?c:c+t/500,m=isNaN(i)?c:c-i/200;return c=1*il(c),p=su*il(p),m=el*il(m),[Kn(3.1338561*p-1.6168667*c-.4906146*m),Kn(-.9787684*p+1.9161415*c+.033454*m),Kn(.0719453*p-.2289914*c+1.4052427*m),o]}function Kn(n){return(n=n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055)<0?0:n>1?1:n}function il(n){return n>ps?n*n*n:au*(n-ou)}const ep=Object.hasOwn||function(n,t){return Object.prototype.hasOwnProperty.call(n,t)};function Gs(n,t){return ep(n,t)?n[t]:void 0}function Js(n){return parseInt(n.padEnd(2,n),16)/255}function nl(n,t){return ui(t?n/100:n,0,1)}function ui(n,t,i){return Math.min(Math.max(t,n),i)}function Ot(n){return!n.some(Number.isNaN)}const ds={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 hi(n,t,i){return n+i*(t-n)}function Gn(n,t,i){return n.map((o,c)=>hi(o,t[c],i))}class Dt{constructor(t,i,o,c=1,p=!0){this.r=t,this.g=i,this.b=o,this.a=c,p||(this.r*=c,this.g*=c,this.b*=c,c||this.overwriteGetter("rgb",[t,i,o,c]))}static parse(t){if(t instanceof Dt)return t;if(typeof t!="string")return;const i=function(o){if((o=o.toLowerCase().trim())==="transparent")return[0,0,0,0];const c=Gs(ds,o);if(c){const[m,y,w]=c;return[m/255,y/255,w/255,1]}if(o.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(o)){const m=o.length<6?1:2;let y=1;return[Js(o.slice(y,y+=m)),Js(o.slice(y,y+=m)),Js(o.slice(y,y+=m)),Js(o.slice(y,y+m)||"ff")]}if(o.startsWith("rgb")){const m=o.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(m){const[y,w,E,L,V,q,j,W,X,$,ae,_e]=m,ue=[L||" ",j||" ",$].join("");if(ue===" "||ue===" /"||ue===",,"||ue===",,,"){const U=[E,q,X].join(""),Y=U==="%%%"?100:U===""?255:0;if(Y){const de=[ui(+w/Y,0,1),ui(+V/Y,0,1),ui(+W/Y,0,1),ae?nl(+ae,_e):1];if(Ot(de))return de}}return}}const p=o.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(p){const[m,y,w,E,L,V,q,j,W]=p,X=[w||" ",L||" ",q].join("");if(X===" "||X===" /"||X===",,"||X===",,,"){const $=[+y,ui(+E,0,100),ui(+V,0,100),j?nl(+j,W):1];if(Ot($))return function([ae,_e,ue,U]){function Y(de){const Ce=(de+ae/30)%12,je=_e*Math.min(ue,1-ue);return ue-je*Math.max(-1,Math.min(Ce-3,9-Ce,1))}return ae=lu(ae),_e/=100,ue/=100,[Y(0),Y(8),Y(4),U]}($)}}}(t);return i?new Dt(...i,!1):void 0}get rgb(){const{r:t,g:i,b:o,a:c}=this,p=c||1/0;return this.overwriteGetter("rgb",[t/p,i/p,o/p,c])}get hcl(){return this.overwriteGetter("hcl",function(t){const[i,o,c,p]=tl(t),m=Math.sqrt(o*o+c*c);return[Math.round(1e4*m)?lu(Math.atan2(c,o)*$h):NaN,m,i,p]}(this.rgb))}get lab(){return this.overwriteGetter("lab",tl(this.rgb))}overwriteGetter(t,i){return Object.defineProperty(this,t,{value:i}),i}toString(){const[t,i,o,c]=this.rgb;return`rgba(${[t,i,o].map(p=>Math.round(255*p)).join(",")},${c})`}static interpolate(t,i,o,c="rgb"){switch(c){case"rgb":{const[p,m,y,w]=Gn(t.rgb,i.rgb,o);return new Dt(p,m,y,w,!1)}case"hcl":{const[p,m,y,w]=t.hcl,[E,L,V,q]=i.hcl;let j,W;if(isNaN(p)||isNaN(E))isNaN(p)?isNaN(E)?j=NaN:(j=E,y!==1&&y!==0||(W=L)):(j=p,V!==1&&V!==0||(W=m));else{let ue=E-p;E>p&&ue>180?ue-=360:E<p&&p-E>180&&(ue+=360),j=p+o*ue}const[X,$,ae,_e]=function([ue,U,Y,de]){return ue=isNaN(ue)?0:ue*Yh,cu([Y,Math.cos(ue)*U,Math.sin(ue)*U,de])}([j,W??hi(m,L,o),hi(y,V,o),hi(w,q,o)]);return new Dt(X,$,ae,_e,!1)}case"lab":{const[p,m,y,w]=cu(Gn(t.lab,i.lab,o));return new Dt(p,m,y,w,!1)}}}}Dt.black=new Dt(0,0,0,1),Dt.white=new Dt(1,1,1,1),Dt.transparent=new Dt(0,0,0,0),Dt.red=new Dt(1,0,0,1);class Xs{constructor(t,i,o){this.sensitivity=t?i?"variant":"case":i?"accent":"base",this.locale=o,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,i){return this.collator.compare(t,i)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const Qs=["bottom","center","top"];class fs{constructor(t,i,o,c,p,m){this.text=t,this.image=i,this.scale=o,this.fontStack=c,this.textColor=p,this.verticalAlign=m}}class bi{constructor(t){this.sections=t}static fromString(t){return new bi([new fs(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(t=>t.text.length!==0||t.image&&t.image.name.length!==0)}static factory(t){return t instanceof bi?t:bi.fromString(t)}toString(){return this.sections.length===0?"":this.sections.map(t=>t.text).join("")}}class Qr{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof Qr)return t;if(typeof t=="number")return new Qr([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const i of t)if(typeof i!="number")return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]]}return new Qr(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o){return new Qr(Gn(t.values,i.values,o))}}class Pr{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof Pr)return t;if(typeof t=="number")return new Pr([t]);if(Array.isArray(t)){for(const i of t)if(typeof i!="number")return;return new Pr(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o){return new Pr(Gn(t.values,i.values,o))}}class Yr{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof Yr)return t;if(typeof t=="string"){const o=Dt.parse(t);return o?new Yr([o]):void 0}if(!Array.isArray(t))return;const i=[];for(const o of t){if(typeof o!="string")return;const c=Dt.parse(o);if(!c)return;i.push(c)}return new Yr(i)}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o,c="rgb"){const p=[];if(t.values.length!=i.values.length)throw new Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${i.values.length}), cannot interpolate.`);for(let m=0;m<t.values.length;m++)p.push(Dt.interpolate(t.values[m],i.values[m],o,c));return new Yr(p)}}class rr extends Error{constructor(t){super(t),this.name="RuntimeError"}toJSON(){return this.message}}const ms=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class pi{constructor(t){this.values=t.slice()}static parse(t){if(t instanceof pi)return t;if(Array.isArray(t)&&!(t.length<1)&&t.length%2==0){for(let i=0;i<t.length;i+=2){const o=t[i],c=t[i+1];if(typeof o!="string"||!ms.has(o)||!Array.isArray(c)||c.length!==2||typeof c[0]!="number"||typeof c[1]!="number")return}return new pi(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,i,o){const c=t.values,p=i.values;if(c.length!==p.length)throw new rr(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${i.toString()}`);const m=[];for(let y=0;y<c.length;y+=2){if(c[y]!==p[y])throw new rr(`Cannot interpolate values containing mismatched anchors. from[${y}]: ${c[y]}, to[${y}]: ${p[y]}`);m.push(c[y]);const[w,E]=c[y+1],[L,V]=p[y+1];m.push([hi(w,L,o),hi(E,V,o)])}return new pi(m)}}class Ei{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Ei({name:t,available:!1}):null}}class vi{constructor(t,i,o){this.from=t,this.to=i,this.transition=o}static interpolate(t,i,o){return new vi(t,i,o)}static parse(t){return t instanceof vi?t:Array.isArray(t)&&t.length===3&&typeof t[0]=="string"&&typeof t[1]=="string"&&typeof t[2]=="number"?new vi(t[0],t[1],t[2]):typeof t=="object"&&typeof t.from=="string"&&typeof t.to=="string"&&typeof t.transition=="number"?new vi(t.from,t.to,t.transition):typeof t=="string"?new vi(t,t,1):void 0}}function Ys(n,t,i,o){return typeof n=="number"&&n>=0&&n<=255&&typeof t=="number"&&t>=0&&t<=255&&typeof i=="number"&&i>=0&&i<=255?o===void 0||typeof o=="number"&&o>=0&&o<=1?null:`Invalid rgba value [${[n,t,i,o].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof o=="number"?[n,t,i,o]:[n,t,i]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Kt(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"||n instanceof vi||n instanceof Dt||n instanceof Xs||n instanceof bi||n instanceof Qr||n instanceof Pr||n instanceof Yr||n instanceof pi||n instanceof Ei)return!0;if(Array.isArray(n)){for(const t of n)if(!Kt(t))return!1;return!0}if(typeof n=="object"){for(const t in n)if(!Kt(n[t]))return!1;return!0}return!1}function br(n){if(n===null)return mt;if(typeof n=="string")return dt;if(typeof n=="boolean")return At;if(typeof n=="number")return qe;if(n instanceof Dt)return _r;if(n instanceof vi)return xr;if(n instanceof Xs)return us;if(n instanceof bi)return Ws;if(n instanceof Qr)return jn;if(n instanceof Pr)return dn;if(n instanceof Yr)return Zs;if(n instanceof pi)return Er;if(n instanceof Ei)return Hn;if(Array.isArray(n)){const t=n.length;let i;for(const o of n){const c=br(o);if(i){if(i===c)continue;i=Tt;break}i=c}return Ci(i||Tt,t)}return xi}function Bt(n){const t=typeof n;return n===null?"":t==="string"||t==="number"||t==="boolean"?String(n):n instanceof Dt||n instanceof vi||n instanceof bi||n instanceof Qr||n instanceof Pr||n instanceof Yr||n instanceof pi||n instanceof Ei?n.toString():JSON.stringify(n)}class vt{constructor(t,i){this.type=t,this.value=i}static parse(t,i){if(t.length!==2)return i.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Kt(t[1]))return i.error("invalid value");const o=t[1];let c=br(o);const p=i.expectedType;return c.kind!=="array"||c.N!==0||!p||p.kind!=="array"||typeof p.N=="number"&&p.N!==0||(c=p),new vt(c,o)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const gs={string:dt,number:qe,boolean:At,object:xi};class Ct{constructor(t,i){this.type=t,this.args=i}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");let o,c=1;const p=t[0];if(p==="array"){let y,w;if(t.length>2){const E=t[1];if(typeof E!="string"||!(E in gs)||E==="object")return i.error('The item type argument of "array" must be one of string, number, boolean',1);y=gs[E],c++}else y=Tt;if(t.length>3){if(t[2]!==null&&(typeof t[2]!="number"||t[2]<0||t[2]!==Math.floor(t[2])))return i.error('The length argument to "array" must be a positive integer literal',2);w=t[2],c++}o=Ci(y,w)}else{if(!gs[p])throw new Error(`Types doesn't contain name = ${p}`);o=gs[p]}const m=[];for(;c<t.length;c++){const y=i.parse(t[c],c,Tt);if(!y)return null;m.push(y)}return new Ct(o,m)}evaluate(t){for(let i=0;i<this.args.length;i++){const o=this.args[i].evaluate(t);if(!hs(this.type,br(o)))return o;if(i===this.args.length-1)throw new rr(`Expected value to be of type ${ar(this.type)}, but found ${ar(br(o))} instead.`)}throw new Error}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}}const Uo={"to-boolean":At,"to-color":_r,"to-number":qe,"to-string":dt};class ni{constructor(t,i){this.type=t,this.args=i}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");const o=t[0];if(!Uo[o])throw new Error(`Can't parse ${o} as it is not part of the known types`);if((o==="to-boolean"||o==="to-string")&&t.length!==2)return i.error("Expected one argument.");const c=Uo[o],p=[];for(let m=1;m<t.length;m++){const y=i.parse(t[m],m,Tt);if(!y)return null;p.push(y)}return new ni(c,p)}evaluate(t){switch(this.type.kind){case"boolean":return!!this.args[0].evaluate(t);case"color":{let i,o;for(const c of this.args){if(i=c.evaluate(t),o=null,i instanceof Dt)return i;if(typeof i=="string"){const p=t.parseColor(i);if(p)return p}else if(Array.isArray(i)&&(o=i.length<3||i.length>4?`Invalid rgba value ${JSON.stringify(i)}: expected an array containing either three or four numeric values.`:Ys(i[0],i[1],i[2],i[3]),!o))return new Dt(i[0]/255,i[1]/255,i[2]/255,i[3])}throw new rr(o||`Could not parse color from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"padding":{let i;for(const o of this.args){i=o.evaluate(t);const c=Qr.parse(i);if(c)return c}throw new rr(`Could not parse padding from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"numberArray":{let i;for(const o of this.args){i=o.evaluate(t);const c=Pr.parse(i);if(c)return c}throw new rr(`Could not parse numberArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"colorArray":{let i;for(const o of this.args){i=o.evaluate(t);const c=Yr.parse(i);if(c)return c}throw new rr(`Could not parse colorArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"variableAnchorOffsetCollection":{let i;for(const o of this.args){i=o.evaluate(t);const c=pi.parse(i);if(c)return c}throw new rr(`Could not parse variableAnchorOffsetCollection from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"number":{let i=null;for(const o of this.args){if(i=o.evaluate(t),i===null)return 0;const c=Number(i);if(!isNaN(c))return c}throw new rr(`Could not convert ${JSON.stringify(i)} to number.`)}case"formatted":return bi.fromString(Bt(this.args[0].evaluate(t)));case"resolvedImage":return Ei.fromString(Bt(this.args[0].evaluate(t)));case"projectionDefinition":return this.args[0].evaluate(t);default:return Bt(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}}const sl=["Unknown","Point","LineString","Polygon"];class ol{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"?sl[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(t){let i=this._parseColorCache.get(t);return i||(i=Dt.parse(t),this._parseColorCache.set(t,i)),i}}class $s{constructor(t,i,o=[],c,p=new qt,m=[]){this.registry=t,this.path=o,this.key=o.map(y=>`[${y}]`).join(""),this.scope=p,this.errors=m,this.expectedType=c,this._isConstant=i}parse(t,i,o,c,p={}){return i?this.concat(i,o,c)._parse(t,p):this._parse(t,p)}_parse(t,i){function o(c,p,m){return m==="assert"?new Ct(p,[c]):m==="coerce"?new ni(p,[c]):c}if(t!==null&&typeof t!="string"&&typeof t!="boolean"&&typeof t!="number"||(t=["literal",t]),Array.isArray(t)){if(t.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const c=t[0];if(typeof c!="string")return this.error(`Expression name must be a string, but found ${typeof c} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const p=this.registry[c];if(p){let m=p.parse(t,this);if(!m)return null;if(this.expectedType){const y=this.expectedType,w=m.type;if(y.kind!=="string"&&y.kind!=="number"&&y.kind!=="boolean"&&y.kind!=="object"&&y.kind!=="array"||w.kind!=="value"){if(y.kind==="projectionDefinition"&&["string","array"].includes(w.kind)||["color","formatted","resolvedImage"].includes(y.kind)&&["value","string"].includes(w.kind)||["padding","numberArray"].includes(y.kind)&&["value","number","array"].includes(w.kind)||y.kind==="colorArray"&&["value","string","array"].includes(w.kind)||y.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(w.kind))m=o(m,y,i.typeAnnotation||"coerce");else if(this.checkSubtype(y,w))return null}else m=o(m,y,i.typeAnnotation||"assert")}if(!(m instanceof vt)&&m.type.kind!=="resolvedImage"&&this._isConstant(m)){const y=new ol;try{m=new vt(m.type,m.evaluate(y))}catch(w){return this.error(w.message),null}}return m}return this.error(`Unknown expression "${c}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(t===void 0?"'undefined' value invalid. Use null instead.":typeof t=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,i,o){const c=typeof t=="number"?this.path.concat(t):this.path,p=o?this.scope.concat(o):this.scope;return new $s(this.registry,this._isConstant,c,i||null,p,this.errors)}error(t,...i){const o=`${this.key}${i.map(c=>`[${c}]`).join("")}`;this.errors.push(new zt(o,t))}checkSubtype(t,i){const o=hs(t,i);return o&&this.error(o),o}}class ys{constructor(t,i){this.type=i.type,this.bindings=[].concat(t),this.result=i}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const i of this.bindings)t(i[1]);t(this.result)}static parse(t,i){if(t.length<4)return i.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const o=[];for(let p=1;p<t.length-1;p+=2){const m=t[p];if(typeof m!="string")return i.error(`Expected string, but found ${typeof m} instead.`,p);if(/[^a-zA-Z0-9_]/.test(m))return i.error("Variable names must contain only alphanumeric characters or '_'.",p);const y=i.parse(t[p+1],p+1);if(!y)return null;o.push([m,y])}const c=i.parse(t[t.length-1],t.length-1,i.expectedType,o);return c?new ys(o,c):null}outputDefined(){return this.result.outputDefined()}}class eo{constructor(t,i){this.type=i.type,this.name=t,this.boundExpression=i}static parse(t,i){if(t.length!==2||typeof t[1]!="string")return i.error("'var' expression requires exactly one string literal argument.");const o=t[1];return i.scope.has(o)?new eo(o,i.scope.get(o)):i.error(`Unknown variable "${o}". Make sure "${o}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}}class al{constructor(t,i,o){this.type=t,this.index=i,this.input=o}static parse(t,i){if(t.length!==3)return i.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,qe),c=i.parse(t[2],2,Ci(i.expectedType||Tt));return o&&c?new al(c.type.itemType,o,c):null}evaluate(t){const i=this.index.evaluate(t),o=this.input.evaluate(t);if(i<0)throw new rr(`Array index out of bounds: ${i} < 0.`);if(i>=o.length)throw new rr(`Array index out of bounds: ${i} > ${o.length-1}.`);if(i!==Math.floor(i))throw new rr(`Array index must be an integer, but found ${i} instead.`);return o[i]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}}class jo{constructor(t,i){this.type=At,this.needle=t,this.haystack=i}static parse(t,i){if(t.length!==3)return i.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Tt),c=i.parse(t[2],2,Tt);return o&&c?$a(o.type,[At,dt,qe,mt,Tt])?new jo(o,c):i.error(`Expected first argument to be of type boolean, string, number or null, but found ${ar(o.type)} instead`):null}evaluate(t){const i=this.needle.evaluate(t),o=this.haystack.evaluate(t);if(!o)return!1;if(!Wn(i,["boolean","string","number","null"]))throw new rr(`Expected first argument to be of type boolean, string, number or null, but found ${ar(br(i))} instead.`);if(!Wn(o,["string","array"]))throw new rr(`Expected second argument to be of type array or string, but found ${ar(br(o))} instead.`);return o.indexOf(i)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}}class to{constructor(t,i,o){this.type=qe,this.needle=t,this.haystack=i,this.fromIndex=o}static parse(t,i){if(t.length<=2||t.length>=5)return i.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Tt),c=i.parse(t[2],2,Tt);if(!o||!c)return null;if(!$a(o.type,[At,dt,qe,mt,Tt]))return i.error(`Expected first argument to be of type boolean, string, number or null, but found ${ar(o.type)} instead`);if(t.length===4){const p=i.parse(t[3],3,qe);return p?new to(o,c,p):null}return new to(o,c)}evaluate(t){const i=this.needle.evaluate(t),o=this.haystack.evaluate(t);if(!Wn(i,["boolean","string","number","null"]))throw new rr(`Expected first argument to be of type boolean, string, number or null, but found ${ar(br(i))} instead.`);let c;if(this.fromIndex&&(c=this.fromIndex.evaluate(t)),Wn(o,["string"])){const p=o.indexOf(i,c);return p===-1?-1:[...o.slice(0,p)].length}if(Wn(o,["array"]))return o.indexOf(i,c);throw new rr(`Expected second argument to be of type array or string, but found ${ar(br(o))} instead.`)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}}class Jn{constructor(t,i,o,c,p,m){this.inputType=t,this.type=i,this.input=o,this.cases=c,this.outputs=p,this.otherwise=m}static parse(t,i){if(t.length<5)return i.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return i.error("Expected an even number of arguments.");let o,c;i.expectedType&&i.expectedType.kind!=="value"&&(c=i.expectedType);const p={},m=[];for(let E=2;E<t.length-1;E+=2){let L=t[E];const V=t[E+1];Array.isArray(L)||(L=[L]);const q=i.concat(E);if(L.length===0)return q.error("Expected at least one branch label.");for(const W of L){if(typeof W!="number"&&typeof W!="string")return q.error("Branch labels must be numbers or strings.");if(typeof W=="number"&&Math.abs(W)>Number.MAX_SAFE_INTEGER)return q.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof W=="number"&&Math.floor(W)!==W)return q.error("Numeric branch labels must be integer values.");if(o){if(q.checkSubtype(o,br(W)))return null}else o=br(W);if(p[String(W)]!==void 0)return q.error("Branch labels must be unique.");p[String(W)]=m.length}const j=i.parse(V,E,c);if(!j)return null;c=c||j.type,m.push(j)}const y=i.parse(t[1],1,Tt);if(!y)return null;const w=i.parse(t[t.length-1],t.length-1,c);return w?y.type.kind!=="value"&&i.concat(1).checkSubtype(o,y.type)?null:new Jn(o,c,y,p,m,w):null}evaluate(t){const i=this.input.evaluate(t);return(br(i)===this.inputType&&this.outputs[this.cases[i]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}}class Hr{constructor(t,i,o){this.type=t,this.branches=i,this.otherwise=o}static parse(t,i){if(t.length<4)return i.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return i.error("Expected an odd number of arguments.");let o;i.expectedType&&i.expectedType.kind!=="value"&&(o=i.expectedType);const c=[];for(let m=1;m<t.length-1;m+=2){const y=i.parse(t[m],m,At);if(!y)return null;const w=i.parse(t[m+1],m+1,o);if(!w)return null;c.push([y,w]),o=o||w.type}const p=i.parse(t[t.length-1],t.length-1,o);if(!p)return null;if(!o)throw new Error("Can't infer output type");return new Hr(o,c,p)}evaluate(t){for(const[i,o]of this.branches)if(i.evaluate(t))return o.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[i,o]of this.branches)t(i),t(o);t(this.otherwise)}outputDefined(){return this.branches.every(([t,i])=>i.outputDefined())&&this.otherwise.outputDefined()}}class Xn{constructor(t,i,o,c){this.type=t,this.input=i,this.beginIndex=o,this.endIndex=c}static parse(t,i){if(t.length<=2||t.length>=5)return i.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const o=i.parse(t[1],1,Tt),c=i.parse(t[2],2,qe);if(!o||!c)return null;if(!$a(o.type,[Ci(Tt),dt,Tt]))return i.error(`Expected first argument to be of type array or string, but found ${ar(o.type)} instead`);if(t.length===4){const p=i.parse(t[3],3,qe);return p?new Xn(o.type,o,c,p):null}return new Xn(o.type,o,c)}evaluate(t){const i=this.input.evaluate(t),o=this.beginIndex.evaluate(t);let c;if(this.endIndex&&(c=this.endIndex.evaluate(t)),Wn(i,["string"]))return[...i].slice(o,c).join("");if(Wn(i,["array"]))return i.slice(o,c);throw new rr(`Expected first argument to be of type array or string, but found ${ar(br(i))} instead.`)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}}function ro(n,t){const i=n.length-1;let o,c,p=0,m=i,y=0;for(;p<=m;)if(y=Math.floor((p+m)/2),o=n[y],c=n[y+1],o<=t){if(y===i||t<c)return y;p=y+1}else{if(!(o>t))throw new rr("Input is not a number.");m=y-1}return 0}class Cn{constructor(t,i,o){this.type=t,this.input=i,this.labels=[],this.outputs=[];for(const[c,p]of o)this.labels.push(c),this.outputs.push(p)}static parse(t,i){if(t.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return i.error("Expected an even number of arguments.");const o=i.parse(t[1],1,qe);if(!o)return null;const c=[];let p=null;i.expectedType&&i.expectedType.kind!=="value"&&(p=i.expectedType);for(let m=1;m<t.length;m+=2){const y=m===1?-1/0:t[m],w=t[m+1],E=m,L=m+1;if(typeof y!="number")return i.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',E);if(c.length&&c[c.length-1][0]>=y)return i.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',E);const V=i.parse(w,L,p);if(!V)return null;p=p||V.type,c.push([y,V])}return new Cn(p,o,c)}evaluate(t){const i=this.labels,o=this.outputs;if(i.length===1)return o[0].evaluate(t);const c=this.input.evaluate(t);if(c<=i[0])return o[0].evaluate(t);const p=i.length;return c>=i[p-1]?o[p-1].evaluate(t):o[ro(i,c)].evaluate(t)}eachChild(t){t(this.input);for(const i of this.outputs)t(i)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}}function Wr(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ho,Wo,uu=function(){if(Wo)return Ho;function n(t,i,o,c){this.cx=3*t,this.bx=3*(o-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(c-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=i,this.p2x=o,this.p2y=c}return Wo=1,Ho=n,n.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,i){if(i===void 0&&(i=1e-6),t<0)return 0;if(t>1)return 1;for(var o=t,c=0;c<8;c++){var p=this.sampleCurveX(o)-t;if(Math.abs(p)<i)return o;var m=this.sampleCurveDerivativeX(o);if(Math.abs(m)<1e-6)break;o-=p/m}var y=0,w=1;for(o=t,c=0;c<20&&(p=this.sampleCurveX(o),!(Math.abs(p-t)<i));c++)t>p?y=o:w=o,o=.5*(w-y)+y;return o},solve:function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}},Ho}(),tp=Wr(uu);class si{constructor(t,i,o,c,p){this.type=t,this.operator=i,this.interpolation=o,this.input=c,this.labels=[],this.outputs=[];for(const[m,y]of p)this.labels.push(m),this.outputs.push(y)}static interpolationFactor(t,i,o,c){let p=0;if(t.name==="exponential")p=io(i,t.base,o,c);else if(t.name==="linear")p=io(i,1,o,c);else if(t.name==="cubic-bezier"){const m=t.controlPoints;p=new tp(m[0],m[1],m[2],m[3]).solve(io(i,1,o,c))}return p}static parse(t,i){let[o,c,p,...m]=t;if(!Array.isArray(c)||c.length===0)return i.error("Expected an interpolation type expression.",1);if(c[0]==="linear")c={name:"linear"};else if(c[0]==="exponential"){const E=c[1];if(typeof E!="number")return i.error("Exponential interpolation requires a numeric base.",1,1);c={name:"exponential",base:E}}else{if(c[0]!=="cubic-bezier")return i.error(`Unknown interpolation type ${String(c[0])}`,1,0);{const E=c.slice(1);if(E.length!==4||E.some(L=>typeof L!="number"||L<0||L>1))return i.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);c={name:"cubic-bezier",controlPoints:E}}}if(t.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return i.error("Expected an even number of arguments.");if(p=i.parse(p,2,qe),!p)return null;const y=[];let w=null;o!=="interpolate-hcl"&&o!=="interpolate-lab"||i.expectedType==Zs?i.expectedType&&i.expectedType.kind!=="value"&&(w=i.expectedType):w=_r;for(let E=0;E<m.length;E+=2){const L=m[E],V=m[E+1],q=E+3,j=E+4;if(typeof L!="number")return i.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',q);if(y.length&&y[y.length-1][0]>=L)return i.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',q);const W=i.parse(V,j,w);if(!W)return null;w=w||W.type,y.push([L,W])}return fn(w,qe)||fn(w,xr)||fn(w,_r)||fn(w,jn)||fn(w,dn)||fn(w,Zs)||fn(w,Er)||fn(w,Ci(qe))?new si(w,o,c,p,y):i.error(`Type ${ar(w)} is not interpolatable.`)}evaluate(t){const i=this.labels,o=this.outputs;if(i.length===1)return o[0].evaluate(t);const c=this.input.evaluate(t);if(c<=i[0])return o[0].evaluate(t);const p=i.length;if(c>=i[p-1])return o[p-1].evaluate(t);const m=ro(i,c),y=si.interpolationFactor(this.interpolation,c,i[m],i[m+1]),w=o[m].evaluate(t),E=o[m+1].evaluate(t);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return hi(w,E,y);case"color":return Dt.interpolate(w,E,y);case"padding":return Qr.interpolate(w,E,y);case"colorArray":return Yr.interpolate(w,E,y);case"numberArray":return Pr.interpolate(w,E,y);case"variableAnchorOffsetCollection":return pi.interpolate(w,E,y);case"array":return Gn(w,E,y);case"projectionDefinition":return vi.interpolate(w,E,y)}case"interpolate-hcl":switch(this.type.kind){case"color":return Dt.interpolate(w,E,y,"hcl");case"colorArray":return Yr.interpolate(w,E,y,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return Dt.interpolate(w,E,y,"lab");case"colorArray":return Yr.interpolate(w,E,y,"lab")}}}eachChild(t){t(this.input);for(const i of this.outputs)t(i)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}}function io(n,t,i,o){const c=o-i,p=n-i;return c===0?0:t===1?p/c:(Math.pow(t,p)-1)/(Math.pow(t,c)-1)}const nn={color:Dt.interpolate,number:hi,padding:Qr.interpolate,numberArray:Pr.interpolate,colorArray:Yr.interpolate,variableAnchorOffsetCollection:pi.interpolate,array:Gn};class Qn{constructor(t,i){this.type=t,this.args=i}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");let o=null;const c=i.expectedType;c&&c.kind!=="value"&&(o=c);const p=[];for(const y of t.slice(1)){const w=i.parse(y,1+p.length,o,void 0,{typeAnnotation:"omit"});if(!w)return null;o=o||w.type,p.push(w)}if(!o)throw new Error("No output type");const m=c&&p.some(y=>hs(c,y.type));return new Qn(m?Tt:o,p)}evaluate(t){let i,o=null,c=0;for(const p of this.args)if(c++,o=p.evaluate(t),o&&o instanceof Ei&&!o.available&&(i||(i=o.name),o=null,c===this.args.length&&(o=i)),o!==null)break;return o}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}}function no(n,t){return n==="=="||n==="!="?t.kind==="boolean"||t.kind==="string"||t.kind==="number"||t.kind==="null"||t.kind==="value":t.kind==="string"||t.kind==="number"||t.kind==="value"}function Fi(n,t,i,o){return o.compare(t,i)===0}function Yn(n,t,i){const o=n!=="=="&&n!=="!=";return class _y{constructor(p,m,y){this.type=At,this.lhs=p,this.rhs=m,this.collator=y,this.hasUntypedArgument=p.type.kind==="value"||m.type.kind==="value"}static parse(p,m){if(p.length!==3&&p.length!==4)return m.error("Expected two or three arguments.");const y=p[0];let w=m.parse(p[1],1,Tt);if(!w)return null;if(!no(y,w.type))return m.concat(1).error(`"${y}" comparisons are not supported for type '${ar(w.type)}'.`);let E=m.parse(p[2],2,Tt);if(!E)return null;if(!no(y,E.type))return m.concat(2).error(`"${y}" comparisons are not supported for type '${ar(E.type)}'.`);if(w.type.kind!==E.type.kind&&w.type.kind!=="value"&&E.type.kind!=="value")return m.error(`Cannot compare types '${ar(w.type)}' and '${ar(E.type)}'.`);o&&(w.type.kind==="value"&&E.type.kind!=="value"?w=new Ct(E.type,[w]):w.type.kind!=="value"&&E.type.kind==="value"&&(E=new Ct(w.type,[E])));let L=null;if(p.length===4){if(w.type.kind!=="string"&&E.type.kind!=="string"&&w.type.kind!=="value"&&E.type.kind!=="value")return m.error("Cannot use collator to compare non-string types.");if(L=m.parse(p[3],3,us),!L)return null}return new _y(w,E,L)}evaluate(p){const m=this.lhs.evaluate(p),y=this.rhs.evaluate(p);if(o&&this.hasUntypedArgument){const w=br(m),E=br(y);if(w.kind!==E.kind||w.kind!=="string"&&w.kind!=="number")throw new rr(`Expected arguments for "${n}" to be (string, string) or (number, number), but found (${w.kind}, ${E.kind}) instead.`)}if(this.collator&&!o&&this.hasUntypedArgument){const w=br(m),E=br(y);if(w.kind!=="string"||E.kind!=="string")return t(p,m,y)}return this.collator?i(p,m,y,this.collator.evaluate(p)):t(p,m,y)}eachChild(p){p(this.lhs),p(this.rhs),this.collator&&p(this.collator)}outputDefined(){return!0}}}const Zo=Yn("==",function(n,t,i){return t===i},Fi),rp=Yn("!=",function(n,t,i){return t!==i},function(n,t,i,o){return!Fi(0,t,i,o)}),ll=Yn("<",function(n,t,i){return t<i},function(n,t,i,o){return o.compare(t,i)<0}),ip=Yn(">",function(n,t,i){return t>i},function(n,t,i,o){return o.compare(t,i)>0}),np=Yn("<=",function(n,t,i){return t<=i},function(n,t,i,o){return o.compare(t,i)<=0}),sp=Yn(">=",function(n,t,i){return t>=i},function(n,t,i,o){return o.compare(t,i)>=0});class Ko{constructor(t,i,o){this.type=us,this.locale=o,this.caseSensitive=t,this.diacriticSensitive=i}static parse(t,i){if(t.length!==2)return i.error("Expected one argument.");const o=t[1];if(typeof o!="object"||Array.isArray(o))return i.error("Collator options argument must be an object.");const c=i.parse(o["case-sensitive"]!==void 0&&o["case-sensitive"],1,At);if(!c)return null;const p=i.parse(o["diacritic-sensitive"]!==void 0&&o["diacritic-sensitive"],1,At);if(!p)return null;let m=null;return o.locale&&(m=i.parse(o.locale,1,dt),!m)?null:new Ko(c,p,m)}evaluate(t){return new Xs(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}}class _s{constructor(t,i,o,c,p){this.type=dt,this.number=t,this.locale=i,this.currency=o,this.minFractionDigits=c,this.maxFractionDigits=p}static parse(t,i){if(t.length!==3)return i.error("Expected two arguments.");const o=i.parse(t[1],1,qe);if(!o)return null;const c=t[2];if(typeof c!="object"||Array.isArray(c))return i.error("NumberFormat options argument must be an object.");let p=null;if(c.locale&&(p=i.parse(c.locale,1,dt),!p))return null;let m=null;if(c.currency&&(m=i.parse(c.currency,1,dt),!m))return null;let y=null;if(c["min-fraction-digits"]&&(y=i.parse(c["min-fraction-digits"],1,qe),!y))return null;let w=null;return c["max-fraction-digits"]&&(w=i.parse(c["max-fraction-digits"],1,qe),!w)?null:new _s(o,p,m,y,w)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}}class Go{constructor(t){this.type=Ws,this.sections=t}static parse(t,i){if(t.length<2)return i.error("Expected at least one argument.");const o=t[1];if(!Array.isArray(o)&&typeof o=="object")return i.error("First argument must be an image or text section.");const c=[];let p=!1;for(let m=1;m<=t.length-1;++m){const y=t[m];if(p&&typeof y=="object"&&!Array.isArray(y)){p=!1;let w=null;if(y["font-scale"]&&(w=i.parse(y["font-scale"],1,qe),!w))return null;let E=null;if(y["text-font"]&&(E=i.parse(y["text-font"],1,Ci(dt)),!E))return null;let L=null;if(y["text-color"]&&(L=i.parse(y["text-color"],1,_r),!L))return null;let V=null;if(y["vertical-align"]){if(typeof y["vertical-align"]=="string"&&!Qs.includes(y["vertical-align"]))return i.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${y["vertical-align"]}' instead.`);if(V=i.parse(y["vertical-align"],1,dt),!V)return null}const q=c[c.length-1];q.scale=w,q.font=E,q.textColor=L,q.verticalAlign=V}else{const w=i.parse(t[m],1,Tt);if(!w)return null;const E=w.type.kind;if(E!=="string"&&E!=="value"&&E!=="null"&&E!=="resolvedImage")return i.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");p=!0,c.push({content:w,scale:null,font:null,textColor:null,verticalAlign:null})}}return new Go(c)}evaluate(t){return new bi(this.sections.map(i=>{const o=i.content.evaluate(t);return br(o)===Hn?new fs("",o,null,null,null,i.verticalAlign?i.verticalAlign.evaluate(t):null):new fs(Bt(o),null,i.scale?i.scale.evaluate(t):null,i.font?i.font.evaluate(t).join(","):null,i.textColor?i.textColor.evaluate(t):null,i.verticalAlign?i.verticalAlign.evaluate(t):null)}))}eachChild(t){for(const i of this.sections)t(i.content),i.scale&&t(i.scale),i.font&&t(i.font),i.textColor&&t(i.textColor),i.verticalAlign&&t(i.verticalAlign)}outputDefined(){return!1}}class Jo{constructor(t){this.type=Hn,this.input=t}static parse(t,i){if(t.length!==2)return i.error("Expected two arguments.");const o=i.parse(t[1],1,dt);return o?new Jo(o):i.error("No image name provided.")}evaluate(t){const i=this.input.evaluate(t),o=Ei.fromString(i);return o&&t.availableImages&&(o.available=t.availableImages.indexOf(i)>-1),o}eachChild(t){t(this.input)}outputDefined(){return!1}}class Xo{constructor(t){this.type=qe,this.input=t}static parse(t,i){if(t.length!==2)return i.error(`Expected 1 argument, but found ${t.length-1} instead.`);const o=i.parse(t[1],1);return o?o.type.kind!=="array"&&o.type.kind!=="string"&&o.type.kind!=="value"?i.error(`Expected argument of type string or array, but found ${ar(o.type)} instead.`):new Xo(o):null}evaluate(t){const i=this.input.evaluate(t);if(typeof i=="string")return[...i].length;if(Array.isArray(i))return i.length;throw new rr(`Expected value to be of type string or array, but found ${ar(br(i))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}}const sn=8192;function hu(n,t){const i=(180+n[0])/360,o=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n[1]*Math.PI/360)))/360,c=Math.pow(2,t.z);return[Math.round(i*c*sn),Math.round(o*c*sn)]}function cl(n,t){const i=Math.pow(2,t.z);return[(c=(n[0]/sn+t.x)/i,360*c-180),(o=(n[1]/sn+t.y)/i,360/Math.PI*Math.atan(Math.exp((180-360*o)*Math.PI/180))-90)];var o,c}function so(n,t){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function oo(n,t){return!(n[0]<=t[0]||n[2]>=t[2]||n[1]<=t[1]||n[3]>=t[3])}function op(n,t,i){const o=n[0]-t[0],c=n[1]-t[1],p=n[0]-i[0],m=n[1]-i[1];return o*m-p*c==0&&o*p<=0&&c*m<=0}function Qo(n,t,i,o){return(c=[o[0]-i[0],o[1]-i[1]])[0]*(p=[t[0]-n[0],t[1]-n[1]])[1]-c[1]*p[0]!=0&&!(!mu(n,t,i,o)||!mu(i,o,n,t));var c,p}function pu(n,t,i){for(const o of i)for(let c=0;c<o.length-1;++c)if(Qo(n,t,o[c],o[c+1]))return!0;return!1}function $n(n,t,i=!1){let o=!1;for(const y of t)for(let w=0;w<y.length-1;w++){if(op(n,y[w],y[w+1]))return i;(p=y[w])[1]>(c=n)[1]!=(m=y[w+1])[1]>c[1]&&c[0]<(m[0]-p[0])*(c[1]-p[1])/(m[1]-p[1])+p[0]&&(o=!o)}var c,p,m;return o}function du(n,t){for(const i of t)if($n(n,i))return!0;return!1}function fu(n,t){for(const i of n)if(!$n(i,t))return!1;for(let i=0;i<n.length-1;++i)if(pu(n[i],n[i+1],t))return!1;return!0}function ap(n,t){for(const i of t)if(fu(n,i))return!0;return!1}function mu(n,t,i,o){const c=o[0]-i[0],p=o[1]-i[1],m=(n[0]-i[0])*p-c*(n[1]-i[1]),y=(t[0]-i[0])*p-c*(t[1]-i[1]);return m>0&&y<0||m<0&&y>0}function ao(n,t,i){const o=[];for(let c=0;c<n.length;c++){const p=[];for(let m=0;m<n[c].length;m++){const y=hu(n[c][m],i);so(t,y),p.push(y)}o.push(p)}return o}function gu(n,t,i){const o=[];for(let c=0;c<n.length;c++){const p=ao(n[c],t,i);o.push(p)}return o}function yu(n,t,i,o){if(n[0]<i[0]||n[0]>i[2]){const c=.5*o;let p=n[0]-i[0]>c?-o:i[0]-n[0]>c?o:0;p===0&&(p=n[0]-i[2]>c?-o:i[2]-n[0]>c?o:0),n[0]+=p}so(t,n)}function _u(n,t,i,o){const c=Math.pow(2,o.z)*sn,p=[o.x*sn,o.y*sn],m=[];for(const y of n)for(const w of y){const E=[w.x+p[0],w.y+p[1]];yu(E,t,i,c),m.push(E)}return m}function ul(n,t,i,o){const c=Math.pow(2,o.z)*sn,p=[o.x*sn,o.y*sn],m=[];for(const w of n){const E=[];for(const L of w){const V=[L.x+p[0],L.y+p[1]];so(t,V),E.push(V)}m.push(E)}if(t[2]-t[0]<=c/2){(y=t)[0]=y[1]=1/0,y[2]=y[3]=-1/0;for(const w of m)for(const E of w)yu(E,t,i,c)}var y;return m}class En{constructor(t,i){this.type=At,this.geojson=t,this.geometries=i}static parse(t,i){if(t.length!==2)return i.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Kt(t[1])){const o=t[1];if(o.type==="FeatureCollection"){const c=[];for(const p of o.features){const{type:m,coordinates:y}=p.geometry;m==="Polygon"&&c.push(y),m==="MultiPolygon"&&c.push(...y)}if(c.length)return new En(o,{type:"MultiPolygon",coordinates:c})}else if(o.type==="Feature"){const c=o.geometry.type;if(c==="Polygon"||c==="MultiPolygon")return new En(o,o.geometry)}else if(o.type==="Polygon"||o.type==="MultiPolygon")return new En(o,o)}return i.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return function(i,o){const c=[1/0,1/0,-1/0,-1/0],p=[1/0,1/0,-1/0,-1/0],m=i.canonicalID();if(o.type==="Polygon"){const y=ao(o.coordinates,p,m),w=_u(i.geometry(),c,p,m);if(!oo(c,p))return!1;for(const E of w)if(!$n(E,y))return!1}if(o.type==="MultiPolygon"){const y=gu(o.coordinates,p,m),w=_u(i.geometry(),c,p,m);if(!oo(c,p))return!1;for(const E of w)if(!du(E,y))return!1}return!0}(t,this.geometries);if(t.geometryType()==="LineString")return function(i,o){const c=[1/0,1/0,-1/0,-1/0],p=[1/0,1/0,-1/0,-1/0],m=i.canonicalID();if(o.type==="Polygon"){const y=ao(o.coordinates,p,m),w=ul(i.geometry(),c,p,m);if(!oo(c,p))return!1;for(const E of w)if(!fu(E,y))return!1}if(o.type==="MultiPolygon"){const y=gu(o.coordinates,p,m),w=ul(i.geometry(),c,p,m);if(!oo(c,p))return!1;for(const E of w)if(!ap(E,y))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let xu=class{constructor(n=[],t=(i,o)=>i<o?-1:i>o?1:0){if(this.data=n,this.length=this.data.length,this.compare=t,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(n){this.data.push(n),this._up(this.length++)}pop(){if(this.length===0)return;const n=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),n}peek(){return this.data[0]}_up(n){const{data:t,compare:i}=this,o=t[n];for(;n>0;){const c=n-1>>1,p=t[c];if(i(o,p)>=0)break;t[n]=p,n=c}t[n]=o}_down(n){const{data:t,compare:i}=this,o=this.length>>1,c=t[n];for(;n<o;){let p=1+(n<<1);const m=p+1;if(m<this.length&&i(t[m],t[p])<0&&(p=m),i(t[p],c)>=0)break;t[n]=t[p],n=p}t[n]=c}};function bu(n,t,i=0,o=n.length-1,c=vu){for(;o>i;){if(o-i>600){const w=o-i+1,E=t-i+1,L=Math.log(w),V=.5*Math.exp(2*L/3),q=.5*Math.sqrt(L*V*(w-V)/w)*(E-w/2<0?-1:1);bu(n,t,Math.max(i,Math.floor(t-E*V/w+q)),Math.min(o,Math.floor(t+(w-E)*V/w+q)),c)}const p=n[t];let m=i,y=o;for(xs(n,i,t),c(n[o],p)>0&&xs(n,i,o);m<y;){for(xs(n,m,y),m++,y--;c(n[m],p)<0;)m++;for(;c(n[y],p)>0;)y--}c(n[i],p)===0?xs(n,i,y):(y++,xs(n,y,o)),y<=t&&(i=y+1),t<=y&&(o=y-1)}}function xs(n,t,i){const o=n[t];n[t]=n[i],n[i]=o}function vu(n,t){return n<t?-1:n>t?1:0}function Yo(n,t){if(n.length<=1)return[n];const i=[];let o,c;for(const p of n){const m=cp(p);m!==0&&(p.area=Math.abs(m),c===void 0&&(c=m<0),c===m<0?(o&&i.push(o),o=[p]):o.push(p))}if(o&&i.push(o),t>1)for(let p=0;p<i.length;p++)i[p].length<=t||(bu(i[p],t,1,i[p].length-1,lp),i[p]=i[p].slice(0,t));return i}function lp(n,t){return t.area-n.area}function cp(n){let t=0;for(let i,o,c=0,p=n.length,m=p-1;c<p;m=c++)i=n[c],o=n[m],t+=(o.x-i.x)*(i.y+o.y);return t}const hl=1/298.257223563,wu=hl*(2-hl),Su=Math.PI/180;class pl{constructor(t){const i=6378.137*Su*1e3,o=Math.cos(t*Su),c=1/(1-wu*(1-o*o)),p=Math.sqrt(c);this.kx=i*p*o,this.ky=i*p*c*(1-wu)}distance(t,i){const o=this.wrap(t[0]-i[0])*this.kx,c=(t[1]-i[1])*this.ky;return Math.sqrt(o*o+c*c)}pointOnLine(t,i){let o,c,p,m,y=1/0;for(let w=0;w<t.length-1;w++){let E=t[w][0],L=t[w][1],V=this.wrap(t[w+1][0]-E)*this.kx,q=(t[w+1][1]-L)*this.ky,j=0;V===0&&q===0||(j=(this.wrap(i[0]-E)*this.kx*V+(i[1]-L)*this.ky*q)/(V*V+q*q),j>1?(E=t[w+1][0],L=t[w+1][1]):j>0&&(E+=V/this.kx*j,L+=q/this.ky*j)),V=this.wrap(i[0]-E)*this.kx,q=(i[1]-L)*this.ky;const W=V*V+q*q;W<y&&(y=W,o=E,c=L,p=w,m=j)}return{point:[o,c],index:p,t:Math.max(0,Math.min(1,m))}}wrap(t){for(;t<-180;)t+=360;for(;t>180;)t-=360;return t}}function Au(n,t){return t[0]-n[0]}function Nt(n){return n[1]-n[0]+1}function mn(n,t){return n[1]>=n[0]&&n[1]<t}function dl(n,t){if(n[0]>n[1])return[null,null];const i=Nt(n);if(t){if(i===2)return[n,null];const c=Math.floor(i/2);return[[n[0],n[0]+c],[n[0]+c,n[1]]]}if(i===1)return[n,null];const o=Math.floor(i/2)-1;return[[n[0],n[0]+o],[n[0]+o+1,n[1]]]}function fl(n,t){if(!mn(t,n.length))return[1/0,1/0,-1/0,-1/0];const i=[1/0,1/0,-1/0,-1/0];for(let o=t[0];o<=t[1];++o)so(i,n[o]);return i}function ml(n){const t=[1/0,1/0,-1/0,-1/0];for(const i of n)for(const o of i)so(t,o);return t}function ku(n){return n[0]!==-1/0&&n[1]!==-1/0&&n[2]!==1/0&&n[3]!==1/0}function gl(n,t,i){if(!ku(n)||!ku(t))return NaN;let o=0,c=0;return n[2]<t[0]&&(o=t[0]-n[2]),n[0]>t[2]&&(o=n[0]-t[2]),n[1]>t[3]&&(c=n[1]-t[3]),n[3]<t[1]&&(c=t[1]-n[3]),i.distance([0,0],[o,c])}function es(n,t,i){const o=i.pointOnLine(t,n);return i.distance(n,o.point)}function yl(n,t,i,o,c){const p=Math.min(es(n,[i,o],c),es(t,[i,o],c)),m=Math.min(es(i,[n,t],c),es(o,[n,t],c));return Math.min(p,m)}function up(n,t,i,o,c){if(!mn(t,n.length)||!mn(o,i.length))return 1/0;let p=1/0;for(let m=t[0];m<t[1];++m){const y=n[m],w=n[m+1];for(let E=o[0];E<o[1];++E){const L=i[E],V=i[E+1];if(Qo(y,w,L,V))return 0;p=Math.min(p,yl(y,w,L,V,c))}}return p}function hp(n,t,i,o,c){if(!mn(t,n.length)||!mn(o,i.length))return NaN;let p=1/0;for(let m=t[0];m<=t[1];++m)for(let y=o[0];y<=o[1];++y)if(p=Math.min(p,c.distance(n[m],i[y])),p===0)return p;return p}function pp(n,t,i){if($n(n,t,!0))return 0;let o=1/0;for(const c of t){const p=c[0],m=c[c.length-1];if(p!==m&&(o=Math.min(o,es(n,[m,p],i)),o===0))return o;const y=i.pointOnLine(c,n);if(o=Math.min(o,i.distance(n,y.point)),o===0)return o}return o}function dp(n,t,i,o){if(!mn(t,n.length))return NaN;for(let p=t[0];p<=t[1];++p)if($n(n[p],i,!0))return 0;let c=1/0;for(let p=t[0];p<t[1];++p){const m=n[p],y=n[p+1];for(const w of i)for(let E=0,L=w.length,V=L-1;E<L;V=E++){const q=w[V],j=w[E];if(Qo(m,y,q,j))return 0;c=Math.min(c,yl(m,y,q,j,o))}}return c}function Tu(n,t){for(const i of n)for(const o of i)if($n(o,t,!0))return!0;return!1}function fp(n,t,i,o=1/0){const c=ml(n),p=ml(t);if(o!==1/0&&gl(c,p,i)>=o)return o;if(oo(c,p)){if(Tu(n,t))return 0}else if(Tu(t,n))return 0;let m=1/0;for(const y of n)for(let w=0,E=y.length,L=E-1;w<E;L=w++){const V=y[L],q=y[w];for(const j of t)for(let W=0,X=j.length,$=X-1;W<X;$=W++){const ae=j[$],_e=j[W];if(Qo(V,q,ae,_e))return 0;m=Math.min(m,yl(V,q,ae,_e,i))}}return m}function Cu(n,t,i,o,c,p){if(!p)return;const m=gl(fl(o,p),c,i);m<t&&n.push([m,p,[0,0]])}function $o(n,t,i,o,c,p,m){if(!p||!m)return;const y=gl(fl(o,p),fl(c,m),i);y<t&&n.push([y,p,m])}function ea(n,t,i,o,c=1/0){let p=Math.min(o.distance(n[0],i[0][0]),c);if(p===0)return p;const m=new xu([[0,[0,n.length-1],[0,0]]],Au),y=ml(i);for(;m.length>0;){const w=m.pop();if(w[0]>=p)continue;const E=w[1],L=t?50:100;if(Nt(E)<=L){if(!mn(E,n.length))return NaN;if(t){const V=dp(n,E,i,o);if(isNaN(V)||V===0)return V;p=Math.min(p,V)}else for(let V=E[0];V<=E[1];++V){const q=pp(n[V],i,o);if(p=Math.min(p,q),p===0)return 0}}else{const V=dl(E,t);Cu(m,p,o,n,y,V[0]),Cu(m,p,o,n,y,V[1])}}return p}function ta(n,t,i,o,c,p=1/0){let m=Math.min(p,c.distance(n[0],i[0]));if(m===0)return m;const y=new xu([[0,[0,n.length-1],[0,i.length-1]]],Au);for(;y.length>0;){const w=y.pop();if(w[0]>=m)continue;const E=w[1],L=w[2],V=t?50:100,q=o?50:100;if(Nt(E)<=V&&Nt(L)<=q){if(!mn(E,n.length)&&mn(L,i.length))return NaN;let j;if(t&&o)j=up(n,E,i,L,c),m=Math.min(m,j);else if(t&&!o){const W=n.slice(E[0],E[1]+1);for(let X=L[0];X<=L[1];++X)if(j=es(i[X],W,c),m=Math.min(m,j),m===0)return m}else if(!t&&o){const W=i.slice(L[0],L[1]+1);for(let X=E[0];X<=E[1];++X)if(j=es(n[X],W,c),m=Math.min(m,j),m===0)return m}else j=hp(n,E,i,L,c),m=Math.min(m,j)}else{const j=dl(E,t),W=dl(L,o);$o(y,m,c,n,i,j[0],W[0]),$o(y,m,c,n,i,j[0],W[1]),$o(y,m,c,n,i,j[1],W[0]),$o(y,m,c,n,i,j[1],W[1])}}return m}function _l(n){return n.type==="MultiPolygon"?n.coordinates.map(t=>({type:"Polygon",coordinates:t})):n.type==="MultiLineString"?n.coordinates.map(t=>({type:"LineString",coordinates:t})):n.type==="MultiPoint"?n.coordinates.map(t=>({type:"Point",coordinates:t})):[n]}class ts{constructor(t,i){this.type=qe,this.geojson=t,this.geometries=i}static parse(t,i){if(t.length!==2)return i.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Kt(t[1])){const o=t[1];if(o.type==="FeatureCollection")return new ts(o,o.features.map(c=>_l(c.geometry)).flat());if(o.type==="Feature")return new ts(o,_l(o.geometry));if("type"in o&&"coordinates"in o)return new ts(o,_l(o))}return i.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(t.geometry()!=null&&t.canonicalID()!=null){if(t.geometryType()==="Point")return function(i,o){const c=i.geometry(),p=c.flat().map(w=>cl([w.x,w.y],i.canonical));if(c.length===0)return NaN;const m=new pl(p[0][1]);let y=1/0;for(const w of o){switch(w.type){case"Point":y=Math.min(y,ta(p,!1,[w.coordinates],!1,m,y));break;case"LineString":y=Math.min(y,ta(p,!1,w.coordinates,!0,m,y));break;case"Polygon":y=Math.min(y,ea(p,!1,w.coordinates,m,y))}if(y===0)return y}return y}(t,this.geometries);if(t.geometryType()==="LineString")return function(i,o){const c=i.geometry(),p=c.flat().map(w=>cl([w.x,w.y],i.canonical));if(c.length===0)return NaN;const m=new pl(p[0][1]);let y=1/0;for(const w of o){switch(w.type){case"Point":y=Math.min(y,ta(p,!0,[w.coordinates],!1,m,y));break;case"LineString":y=Math.min(y,ta(p,!0,w.coordinates,!0,m,y));break;case"Polygon":y=Math.min(y,ea(p,!0,w.coordinates,m,y))}if(y===0)return y}return y}(t,this.geometries);if(t.geometryType()==="Polygon")return function(i,o){const c=i.geometry();if(c.length===0||c[0].length===0)return NaN;const p=Yo(c,0).map(w=>w.map(E=>E.map(L=>cl([L.x,L.y],i.canonical)))),m=new pl(p[0][0][0][1]);let y=1/0;for(const w of o)for(const E of p){switch(w.type){case"Point":y=Math.min(y,ea([w.coordinates],!1,E,m,y));break;case"LineString":y=Math.min(y,ea(w.coordinates,!0,E,m,y));break;case"Polygon":y=Math.min(y,fp(E,w.coordinates,m,y))}if(y===0)return y}return y}(t,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class ra{constructor(t){this.type=Tt,this.key=t}static parse(t,i){if(t.length!==2)return i.error(`Expected 1 argument, but found ${t.length-1} instead.`);const o=t[1];return o==null?i.error("Global state property must be defined."):typeof o!="string"?i.error(`Global state property must be string, but found ${typeof t[1]} instead.`):new ra(o)}evaluate(t){var i;const o=(i=t.globals)===null||i===void 0?void 0:i.globalState;return o&&Object.keys(o).length!==0?Gs(o,this.key):null}eachChild(){}outputDefined(){return!1}}const bs={"==":Zo,"!=":rp,">":ip,"<":ll,">=":sp,"<=":np,array:Ct,at:al,boolean:Ct,case:Hr,coalesce:Qn,collator:Ko,format:Go,image:Jo,in:jo,"index-of":to,interpolate:si,"interpolate-hcl":si,"interpolate-lab":si,length:Xo,let:ys,literal:vt,match:Jn,number:Ct,"number-format":_s,object:Ct,slice:Xn,step:Cn,string:Ct,"to-boolean":ni,"to-color":ni,"to-number":ni,"to-string":ni,var:eo,within:En,distance:ts,"global-state":ra};class Ni{constructor(t,i,o,c){this.name=t,this.type=i,this._evaluate=o,this.args=c}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}static parse(t,i){const o=t[0],c=Ni.definitions[o];if(!c)return i.error(`Unknown expression "${o}". If you wanted a literal array, use ["literal", [...]].`,0);const p=Array.isArray(c)?c[0]:c.type,m=Array.isArray(c)?[[c[1],c[2]]]:c.overloads,y=m.filter(([E])=>!Array.isArray(E)||E.length===t.length-1);let w=null;for(const[E,L]of y){w=new $s(i.registry,ia,i.path,null,i.scope);const V=[];let q=!1;for(let j=1;j<t.length;j++){const W=t[j],X=Array.isArray(E)?E[j-1]:E.type,$=w.parse(W,1+V.length,X);if(!$){q=!0;break}V.push($)}if(!q)if(Array.isArray(E)&&E.length!==V.length)w.error(`Expected ${E.length} arguments, but found ${V.length} instead.`);else{for(let j=0;j<V.length;j++){const W=Array.isArray(E)?E[j]:E.type,X=V[j];w.concat(j+1).checkSubtype(W,X.type)}if(w.errors.length===0)return new Ni(o,p,L,V)}}if(y.length===1)i.errors.push(...w.errors);else{const E=(y.length?y:m).map(([V])=>{return q=V,Array.isArray(q)?`(${q.map(ar).join(", ")})`:`(${ar(q.type)}...)`;var q}).join(" | "),L=[];for(let V=1;V<t.length;V++){const q=i.parse(t[V],1+L.length);if(!q)return null;L.push(ar(q.type))}i.error(`Expected arguments of type ${E}, but found (${L.join(", ")}) instead.`)}return null}static register(t,i){Ni.definitions=i;for(const o in i)t[o]=Ni}}function Eu(n,[t,i,o,c]){t=t.evaluate(n),i=i.evaluate(n),o=o.evaluate(n);const p=c?c.evaluate(n):1,m=Ys(t,i,o,p);if(m)throw new rr(m);return new Dt(t/255,i/255,o/255,p,!1)}function Pu(n,t){return n in t}function xl(n,t){const i=t[n];return i===void 0?null:i}function rs(n){return{type:n}}function ia(n){if(n instanceof eo)return ia(n.boundExpression);if(n instanceof Ni&&n.name==="error"||n instanceof Ko||n instanceof En||n instanceof ts||n instanceof ra)return!1;const t=n instanceof ni||n instanceof Ct;let i=!0;return n.eachChild(o=>{i=t?i&&ia(o):i&&o instanceof vt}),!!i&&na(n)&&sa(n,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function na(n){if(n instanceof Ni&&(n.name==="get"&&n.args.length===1||n.name==="feature-state"||n.name==="has"&&n.args.length===1||n.name==="properties"||n.name==="geometry-type"||n.name==="id"||/^filter-/.test(n.name))||n instanceof En||n instanceof ts)return!1;let t=!0;return n.eachChild(i=>{t&&!na(i)&&(t=!1)}),t}function lo(n){if(n instanceof Ni&&n.name==="feature-state")return!1;let t=!0;return n.eachChild(i=>{t&&!lo(i)&&(t=!1)}),t}function sa(n,t){if(n instanceof Ni&&t.indexOf(n.name)>=0)return!1;let i=!0;return n.eachChild(o=>{i&&!sa(o,t)&&(i=!1)}),i}function oa(n){return{result:"success",value:n}}function vs(n){return{result:"error",value:n}}function ws(n){return n["property-type"]==="data-driven"||n["property-type"]==="cross-faded-data-driven"}function Iu(n){return!!n.expression&&n.expression.parameters.indexOf("zoom")>-1}function aa(n){return!!n.expression&&n.expression.interpolated}function Mt(n){return n instanceof Number?"number":n instanceof String?"string":n instanceof Boolean?"boolean":Array.isArray(n)?"array":n===null?"null":typeof n}function la(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&br(n)===xi}function ca(n){return n}function bl(n,t){const i=n.stops&&typeof n.stops[0][0]=="object",o=i||!(i||n.property!==void 0),c=n.type||(aa(t)?"exponential":"interval"),p=function(L){switch(L.type){case"color":return Dt.parse;case"padding":return Qr.parse;case"numberArray":return Pr.parse;case"colorArray":return Yr.parse;default:return null}}(t);if(p&&((n=Wt({},n)).stops&&(n.stops=n.stops.map(L=>[L[0],p(L[1])])),n.default=p(n.default?n.default:t.default)),n.colorSpace&&(m=n.colorSpace)!=="rgb"&&m!=="hcl"&&m!=="lab")throw new Error(`Unknown color space: "${n.colorSpace}"`);var m;const y=function(L){switch(L){case"exponential":return Mu;case"interval":return gp;case"categorical":return mp;case"identity":return yp;default:throw new Error(`Unknown function type "${L}"`)}}(c);let w,E;if(c==="categorical"){w=Object.create(null);for(const L of n.stops)w[L[0]]=L[1];E=typeof n.stops[0][0]}if(i){const L={},V=[];for(let W=0;W<n.stops.length;W++){const X=n.stops[W],$=X[0].zoom;L[$]===void 0&&(L[$]={zoom:$,type:n.type,property:n.property,default:n.default,stops:[]},V.push($)),L[$].stops.push([X[0].value,X[1]])}const q=[];for(const W of V)q.push([L[W].zoom,bl(L[W],t)]);const j={name:"linear"};return{kind:"composite",interpolationType:j,interpolationFactor:si.interpolationFactor.bind(void 0,j),zoomStops:q.map(W=>W[0]),evaluate:({zoom:W},X)=>Mu({stops:q,base:n.base},t,W).evaluate(W,X)}}if(o){const L=c==="exponential"?{name:"exponential",base:n.base!==void 0?n.base:1}:null;return{kind:"camera",interpolationType:L,interpolationFactor:si.interpolationFactor.bind(void 0,L),zoomStops:n.stops.map(V=>V[0]),evaluate:({zoom:V})=>y(n,t,V,w,E)}}return{kind:"source",evaluate(L,V){const q=V&&V.properties?V.properties[n.property]:void 0;return q===void 0?co(n.default,t.default):y(n,t,q,w,E)}}}function co(n,t,i){return n!==void 0?n:t!==void 0?t:i!==void 0?i:void 0}function mp(n,t,i,o,c){return co(typeof i===c?o[i]:void 0,n.default,t.default)}function gp(n,t,i){if(Mt(i)!=="number")return co(n.default,t.default);const o=n.stops.length;if(o===1||i<=n.stops[0][0])return n.stops[0][1];if(i>=n.stops[o-1][0])return n.stops[o-1][1];const c=ro(n.stops.map(p=>p[0]),i);return n.stops[c][1]}function Mu(n,t,i){const o=n.base!==void 0?n.base:1;if(Mt(i)!=="number")return co(n.default,t.default);const c=n.stops.length;if(c===1||i<=n.stops[0][0])return n.stops[0][1];if(i>=n.stops[c-1][0])return n.stops[c-1][1];const p=ro(n.stops.map(L=>L[0]),i),m=function(L,V,q,j){const W=j-q,X=L-q;return W===0?0:V===1?X/W:(Math.pow(V,X)-1)/(Math.pow(V,W)-1)}(i,o,n.stops[p][0],n.stops[p+1][0]),y=n.stops[p][1],w=n.stops[p+1][1],E=nn[t.type]||ca;return typeof y.evaluate=="function"?{evaluate(...L){const V=y.evaluate.apply(void 0,L),q=w.evaluate.apply(void 0,L);if(V!==void 0&&q!==void 0)return E(V,q,m,n.colorSpace)}}:E(y,w,m,n.colorSpace)}function yp(n,t,i){switch(t.type){case"color":i=Dt.parse(i);break;case"formatted":i=bi.fromString(i.toString());break;case"resolvedImage":i=Ei.fromString(i.toString());break;case"padding":i=Qr.parse(i);break;case"colorArray":i=Yr.parse(i);break;case"numberArray":i=Pr.parse(i);break;default:Mt(i)===t.type||t.type==="enum"&&t.values[i]||(i=void 0)}return co(i,n.default,t.default)}Ni.register(bs,{error:[{kind:"error"},[dt],(n,[t])=>{throw new rr(t.evaluate(n))}],typeof:[dt,[Tt],(n,[t])=>ar(br(t.evaluate(n)))],"to-rgba":[Ci(qe,4),[_r],(n,[t])=>{const[i,o,c,p]=t.evaluate(n).rgb;return[255*i,255*o,255*c,p]}],rgb:[_r,[qe,qe,qe],Eu],rgba:[_r,[qe,qe,qe,qe],Eu],has:{type:At,overloads:[[[dt],(n,[t])=>Pu(t.evaluate(n),n.properties())],[[dt,xi],(n,[t,i])=>Pu(t.evaluate(n),i.evaluate(n))]]},get:{type:Tt,overloads:[[[dt],(n,[t])=>xl(t.evaluate(n),n.properties())],[[dt,xi],(n,[t,i])=>xl(t.evaluate(n),i.evaluate(n))]]},"feature-state":[Tt,[dt],(n,[t])=>xl(t.evaluate(n),n.featureState||{})],properties:[xi,[],n=>n.properties()],"geometry-type":[dt,[],n=>n.geometryType()],id:[Tt,[],n=>n.id()],zoom:[qe,[],n=>n.globals.zoom],"heatmap-density":[qe,[],n=>n.globals.heatmapDensity||0],"line-progress":[qe,[],n=>n.globals.lineProgress||0],accumulated:[Tt,[],n=>n.globals.accumulated===void 0?null:n.globals.accumulated],"+":[qe,rs(qe),(n,t)=>{let i=0;for(const o of t)i+=o.evaluate(n);return i}],"*":[qe,rs(qe),(n,t)=>{let i=1;for(const o of t)i*=o.evaluate(n);return i}],"-":{type:qe,overloads:[[[qe,qe],(n,[t,i])=>t.evaluate(n)-i.evaluate(n)],[[qe],(n,[t])=>-t.evaluate(n)]]},"/":[qe,[qe,qe],(n,[t,i])=>t.evaluate(n)/i.evaluate(n)],"%":[qe,[qe,qe],(n,[t,i])=>t.evaluate(n)%i.evaluate(n)],ln2:[qe,[],()=>Math.LN2],pi:[qe,[],()=>Math.PI],e:[qe,[],()=>Math.E],"^":[qe,[qe,qe],(n,[t,i])=>Math.pow(t.evaluate(n),i.evaluate(n))],sqrt:[qe,[qe],(n,[t])=>Math.sqrt(t.evaluate(n))],log10:[qe,[qe],(n,[t])=>Math.log(t.evaluate(n))/Math.LN10],ln:[qe,[qe],(n,[t])=>Math.log(t.evaluate(n))],log2:[qe,[qe],(n,[t])=>Math.log(t.evaluate(n))/Math.LN2],sin:[qe,[qe],(n,[t])=>Math.sin(t.evaluate(n))],cos:[qe,[qe],(n,[t])=>Math.cos(t.evaluate(n))],tan:[qe,[qe],(n,[t])=>Math.tan(t.evaluate(n))],asin:[qe,[qe],(n,[t])=>Math.asin(t.evaluate(n))],acos:[qe,[qe],(n,[t])=>Math.acos(t.evaluate(n))],atan:[qe,[qe],(n,[t])=>Math.atan(t.evaluate(n))],min:[qe,rs(qe),(n,t)=>Math.min(...t.map(i=>i.evaluate(n)))],max:[qe,rs(qe),(n,t)=>Math.max(...t.map(i=>i.evaluate(n)))],abs:[qe,[qe],(n,[t])=>Math.abs(t.evaluate(n))],round:[qe,[qe],(n,[t])=>{const i=t.evaluate(n);return i<0?-Math.round(-i):Math.round(i)}],floor:[qe,[qe],(n,[t])=>Math.floor(t.evaluate(n))],ceil:[qe,[qe],(n,[t])=>Math.ceil(t.evaluate(n))],"filter-==":[At,[dt,Tt],(n,[t,i])=>n.properties()[t.value]===i.value],"filter-id-==":[At,[Tt],(n,[t])=>n.id()===t.value],"filter-type-==":[At,[dt],(n,[t])=>n.geometryType()===t.value],"filter-<":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o<c}],"filter-id-<":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i<o}],"filter->":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o>c}],"filter-id->":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i>o}],"filter-<=":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o<=c}],"filter-id-<=":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i<=o}],"filter->=":[At,[dt,Tt],(n,[t,i])=>{const o=n.properties()[t.value],c=i.value;return typeof o==typeof c&&o>=c}],"filter-id->=":[At,[Tt],(n,[t])=>{const i=n.id(),o=t.value;return typeof i==typeof o&&i>=o}],"filter-has":[At,[Tt],(n,[t])=>t.value in n.properties()],"filter-has-id":[At,[],n=>n.id()!==null&&n.id()!==void 0],"filter-type-in":[At,[Ci(dt)],(n,[t])=>t.value.indexOf(n.geometryType())>=0],"filter-id-in":[At,[Ci(Tt)],(n,[t])=>t.value.indexOf(n.id())>=0],"filter-in-small":[At,[dt,Ci(Tt)],(n,[t,i])=>i.value.indexOf(n.properties()[t.value])>=0],"filter-in-large":[At,[dt,Ci(Tt)],(n,[t,i])=>function(o,c,p,m){for(;p<=m;){const y=p+m>>1;if(c[y]===o)return!0;c[y]>o?m=y-1:p=y+1}return!1}(n.properties()[t.value],i.value,0,i.value.length-1)],all:{type:At,overloads:[[[At,At],(n,[t,i])=>t.evaluate(n)&&i.evaluate(n)],[rs(At),(n,t)=>{for(const i of t)if(!i.evaluate(n))return!1;return!0}]]},any:{type:At,overloads:[[[At,At],(n,[t,i])=>t.evaluate(n)||i.evaluate(n)],[rs(At),(n,t)=>{for(const i of t)if(i.evaluate(n))return!0;return!1}]]},"!":[At,[At],(n,[t])=>!t.evaluate(n)],"is-supported-script":[At,[dt],(n,[t])=>{const i=n.globals&&n.globals.isSupportedScript;return!i||i(t.evaluate(n))}],upcase:[dt,[dt],(n,[t])=>t.evaluate(n).toUpperCase()],downcase:[dt,[dt],(n,[t])=>t.evaluate(n).toLowerCase()],concat:[dt,rs(Tt),(n,t)=>t.map(i=>Bt(i.evaluate(n))).join("")],"resolved-locale":[dt,[us],(n,[t])=>t.evaluate(n).resolvedLocale()]});class ua{constructor(t,i){this.expression=t,this._warningHistory={},this._evaluator=new ol,this._defaultValue=i?function(o){if(o.type==="color"&&la(o.default))return new Dt(0,0,0,0);switch(o.type){case"color":return Dt.parse(o.default)||null;case"padding":return Qr.parse(o.default)||null;case"numberArray":return Pr.parse(o.default)||null;case"colorArray":return Yr.parse(o.default)||null;case"variableAnchorOffsetCollection":return pi.parse(o.default)||null;case"projectionDefinition":return vi.parse(o.default)||null;default:return o.default===void 0?null:o.default}}(i):null,this._enumValues=i&&i.type==="enum"?i.values:null}evaluateWithoutErrorHandling(t,i,o,c,p,m){return this._evaluator.globals=t,this._evaluator.feature=i,this._evaluator.featureState=o,this._evaluator.canonical=c,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m,this.expression.evaluate(this._evaluator)}evaluate(t,i,o,c,p,m){this._evaluator.globals=t,this._evaluator.feature=i||null,this._evaluator.featureState=o||null,this._evaluator.canonical=c,this._evaluator.availableImages=p||null,this._evaluator.formattedSection=m||null;try{const y=this.expression.evaluate(this._evaluator);if(y==null||typeof y=="number"&&y!=y)return this._defaultValue;if(this._enumValues&&!(y in this._enumValues))throw new rr(`Expected value to be one of ${Object.keys(this._enumValues).map(w=>JSON.stringify(w)).join(", ")}, but found ${JSON.stringify(y)} instead.`);return y}catch(y){return this._warningHistory[y.message]||(this._warningHistory[y.message]=!0,typeof console<"u"&&console.warn(y.message)),this._defaultValue}}}function uo(n){return Array.isArray(n)&&n.length>0&&typeof n[0]=="string"&&n[0]in bs}function ha(n,t){const i=new $s(bs,ia,[],t?function(c){const p={color:_r,string:dt,number:qe,enum:dt,boolean:At,formatted:Ws,padding:jn,numberArray:dn,colorArray:Zs,projectionDefinition:xr,resolvedImage:Hn,variableAnchorOffsetCollection:Er};return c.type==="array"?Ci(p[c.value]||Tt,c.length):p[c.type]}(t):void 0),o=i.parse(n,void 0,void 0,void 0,t&&t.type==="string"?{typeAnnotation:"coerce"}:void 0);return o?oa(new ua(o,t)):vs(i.errors)}class vl{constructor(t,i){this.kind=t,this._styleExpression=i,this.isStateDependent=t!=="constant"&&!lo(i.expression)}evaluateWithoutErrorHandling(t,i,o,c,p,m){return this._styleExpression.evaluateWithoutErrorHandling(t,i,o,c,p,m)}evaluate(t,i,o,c,p,m){return this._styleExpression.evaluate(t,i,o,c,p,m)}}class pa{constructor(t,i,o,c){this.kind=t,this.zoomStops=o,this._styleExpression=i,this.isStateDependent=t!=="camera"&&!lo(i.expression),this.interpolationType=c}evaluateWithoutErrorHandling(t,i,o,c,p,m){return this._styleExpression.evaluateWithoutErrorHandling(t,i,o,c,p,m)}evaluate(t,i,o,c,p,m){return this._styleExpression.evaluate(t,i,o,c,p,m)}interpolationFactor(t,i,o){return this.interpolationType?si.interpolationFactor(this.interpolationType,t,i,o):0}}function wl(n,t){const i=ha(n,t);if(i.result==="error")return i;const o=i.value.expression,c=na(o);if(!c&&!ws(t))return vs([new zt("","data expressions not supported")]);const p=sa(o,["zoom"]);if(!p&&!Iu(t))return vs([new zt("","zoom expressions not supported")]);const m=po(o);return m||p?m instanceof zt?vs([m]):m instanceof si&&!aa(t)?vs([new zt("",'"interpolate" expressions cannot be used with this property')]):oa(m?new pa(c?"camera":"composite",i.value,m.labels,m instanceof si?m.interpolation:void 0):new vl(c?"constant":"source",i.value)):vs([new zt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ho{constructor(t,i){this._parameters=t,this._specification=i,Wt(this,bl(this._parameters,this._specification))}static deserialize(t){return new ho(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function po(n){let t=null;if(n instanceof ys)t=po(n.result);else if(n instanceof Qn){for(const i of n.args)if(t=po(i),t)break}else(n instanceof Cn||n instanceof si)&&n.input instanceof Ni&&n.input.name==="zoom"&&(t=n);return t instanceof zt||n.eachChild(i=>{const o=po(i);o instanceof zt?t=o:!t&&o?t=new zt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):t&&o&&t!==o&&(t=new zt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),t}function fo(n){if(n===!0||n===!1)return!0;if(!Array.isArray(n)||n.length===0)return!1;switch(n[0]){case"has":return n.length>=2&&n[1]!=="$id"&&n[1]!=="$type";case"in":return n.length>=3&&(typeof n[1]!="string"||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return n.length!==3||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const t of n.slice(1))if(!fo(t)&&typeof t!="boolean")return!1;return!0;default:return!0}}const Sl={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function mo(n){if(n==null)return{filter:()=>!0,needGeometry:!1};fo(n)||(n=fa(n));const t=ha(n,Sl);if(t.result==="error")throw new Error(t.value.map(i=>`${i.key}: ${i.message}`).join(", "));return{filter:(i,o,c)=>t.value.evaluate(i,o,{},c),needGeometry:Lu(n)}}function da(n,t){return n<t?-1:n>t?1:0}function Lu(n){if(!Array.isArray(n))return!1;if(n[0]==="within"||n[0]==="distance")return!0;for(let t=1;t<n.length;t++)if(Lu(n[t]))return!0;return!1}function fa(n){if(!n)return!0;const t=n[0];return n.length<=1?t!=="any":t==="=="?Al(n[1],n[2],"=="):t==="!="?ma(Al(n[1],n[2],"==")):t==="<"||t===">"||t==="<="||t===">="?Al(n[1],n[2],t):t==="any"?(i=n.slice(1),["any"].concat(i.map(fa))):t==="all"?["all"].concat(n.slice(1).map(fa)):t==="none"?["all"].concat(n.slice(1).map(fa).map(ma)):t==="in"?Ru(n[1],n.slice(2)):t==="!in"?ma(Ru(n[1],n.slice(2))):t==="has"?zu(n[1]):t!=="!has"||ma(zu(n[1]));var i}function Al(n,t,i){switch(n){case"$type":return[`filter-type-${i}`,t];case"$id":return[`filter-id-${i}`,t];default:return[`filter-${i}`,n,t]}}function Ru(n,t){if(t.length===0)return!1;switch(n){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some(i=>typeof i!=typeof t[0])?["filter-in-large",n,["literal",t.sort(da)]]:["filter-in-small",n,["literal",t]]}}function zu(n){switch(n){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",n]}}function ma(n){return["!",n]}function ga(n){const t=typeof n;if(t==="number"||t==="boolean"||t==="string"||n==null)return JSON.stringify(n);if(Array.isArray(n)){let c="[";for(const p of n)c+=`${ga(p)},`;return`${c}]`}const i=Object.keys(n).sort();let o="{";for(let c=0;c<i.length;c++)o+=`${JSON.stringify(i[c])}:${ga(n[i[c]])},`;return`${o}}`}function Du(n){let t="";for(const i of Ee)t+=`/${ga(n[i])}`;return t}function go(n){const t=n.value;return t?[new Be(n.key,t,"constants have been deprecated as of v8")]:[]}function kr(n){return n instanceof Number||n instanceof String||n instanceof Boolean?n.valueOf():n}function Pn(n){if(Array.isArray(n))return n.map(Pn);if(n instanceof Object&&!(n instanceof Number||n instanceof String||n instanceof Boolean)){const t={};for(const i in n)t[i]=Pn(n[i]);return t}return kr(n)}function Pi(n){const t=n.key,i=n.value,o=n.valueSpec||{},c=n.objectElementValidators||{},p=n.style,m=n.styleSpec,y=n.validateSpec;let w=[];const E=Mt(i);if(E!=="object")return[new Be(t,i,`object expected, ${E} found`)];for(const L in i){const V=L.split(".")[0],q=Gs(o,V)||o["*"];let j;if(Gs(c,V))j=c[V];else if(Gs(o,V))j=y;else if(c["*"])j=c["*"];else{if(!o["*"]){w.push(new Be(t,i[L],`unknown property "${L}"`));continue}j=y}w=w.concat(j({key:(t&&`${t}.`)+L,value:i[L],valueSpec:q,style:p,styleSpec:m,object:i,objectKey:L,validateSpec:y},i))}for(const L in o)c[L]||o[L].required&&o[L].default===void 0&&i[L]===void 0&&w.push(new Be(t,i,`missing required property "${L}"`));return w}function kl(n){const t=n.value,i=n.valueSpec,o=n.style,c=n.styleSpec,p=n.key,m=n.arrayElementValidator||n.validateSpec;if(Mt(t)!=="array")return[new Be(p,t,`array expected, ${Mt(t)} found`)];if(i.length&&t.length!==i.length)return[new Be(p,t,`array length ${i.length} expected, length ${t.length} found`)];if(i["min-length"]&&t.length<i["min-length"])return[new Be(p,t,`array length at least ${i["min-length"]} expected, length ${t.length} found`)];let y={type:i.value,values:i.values};c.$version<7&&(y.function=i.function),Mt(i.value)==="object"&&(y=i.value);let w=[];for(let E=0;E<t.length;E++)w=w.concat(m({array:t,arrayIndex:E,value:t[E],valueSpec:y,validateSpec:n.validateSpec,style:o,styleSpec:c,key:`${p}[${E}]`}));return w}function yo(n){const t=n.key,i=n.value,o=n.valueSpec;let c=Mt(i);return c==="number"&&i!=i&&(c="NaN"),c!=="number"?[new Be(t,i,`number expected, ${c} found`)]:"minimum"in o&&i<o.minimum?[new Be(t,i,`${i} is less than the minimum value ${o.minimum}`)]:"maximum"in o&&i>o.maximum?[new Be(t,i,`${i} is greater than the maximum value ${o.maximum}`)]:[]}function Tl(n){const t=n.valueSpec,i=kr(n.value.type);let o,c,p,m={};const y=i!=="categorical"&&n.value.property===void 0,w=!y,E=Mt(n.value.stops)==="array"&&Mt(n.value.stops[0])==="array"&&Mt(n.value.stops[0][0])==="object",L=Pi({key:n.key,value:n.value,valueSpec:n.styleSpec.function,validateSpec:n.validateSpec,style:n.style,styleSpec:n.styleSpec,objectElementValidators:{stops:function(j){if(i==="identity")return[new Be(j.key,j.value,'identity function may not have a "stops" property')];let W=[];const X=j.value;return W=W.concat(kl({key:j.key,value:X,valueSpec:j.valueSpec,validateSpec:j.validateSpec,style:j.style,styleSpec:j.styleSpec,arrayElementValidator:V})),Mt(X)==="array"&&X.length===0&&W.push(new Be(j.key,X,"array must have at least one stop")),W},default:function(j){return j.validateSpec({key:j.key,value:j.value,valueSpec:t,validateSpec:j.validateSpec,style:j.style,styleSpec:j.styleSpec})}}});return i==="identity"&&y&&L.push(new Be(n.key,n.value,'missing required property "property"')),i==="identity"||n.value.stops||L.push(new Be(n.key,n.value,'missing required property "stops"')),i==="exponential"&&n.valueSpec.expression&&!aa(n.valueSpec)&&L.push(new Be(n.key,n.value,"exponential functions not supported")),n.styleSpec.$version>=8&&(w&&!ws(n.valueSpec)?L.push(new Be(n.key,n.value,"property functions not supported")):y&&!Iu(n.valueSpec)&&L.push(new Be(n.key,n.value,"zoom functions not supported"))),i!=="categorical"&&!E||n.value.property!==void 0||L.push(new Be(n.key,n.value,'"property" property is required')),L;function V(j){let W=[];const X=j.value,$=j.key;if(Mt(X)!=="array")return[new Be($,X,`array expected, ${Mt(X)} found`)];if(X.length!==2)return[new Be($,X,`array length 2 expected, length ${X.length} found`)];if(E){if(Mt(X[0])!=="object")return[new Be($,X,`object expected, ${Mt(X[0])} found`)];if(X[0].zoom===void 0)return[new Be($,X,"object stop key must have zoom")];if(X[0].value===void 0)return[new Be($,X,"object stop key must have value")];if(p&&p>kr(X[0].zoom))return[new Be($,X[0].zoom,"stop zoom values must appear in ascending order")];kr(X[0].zoom)!==p&&(p=kr(X[0].zoom),c=void 0,m={}),W=W.concat(Pi({key:`${$}[0]`,value:X[0],valueSpec:{zoom:{}},validateSpec:j.validateSpec,style:j.style,styleSpec:j.styleSpec,objectElementValidators:{zoom:yo,value:q}}))}else W=W.concat(q({key:`${$}[0]`,value:X[0],validateSpec:j.validateSpec,style:j.style,styleSpec:j.styleSpec},X));return uo(Pn(X[1]))?W.concat([new Be(`${$}[1]`,X[1],"expressions are not allowed in function stops.")]):W.concat(j.validateSpec({key:`${$}[1]`,value:X[1],valueSpec:t,validateSpec:j.validateSpec,style:j.style,styleSpec:j.styleSpec}))}function q(j,W){const X=Mt(j.value),$=kr(j.value),ae=j.value!==null?j.value:W;if(o){if(X!==o)return[new Be(j.key,ae,`${X} stop domain type must match previous stop domain type ${o}`)]}else o=X;if(X!=="number"&&X!=="string"&&X!=="boolean")return[new Be(j.key,ae,"stop domain value must be a number, string, or boolean")];if(X!=="number"&&i!=="categorical"){let _e=`number expected, ${X} found`;return ws(t)&&i===void 0&&(_e+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Be(j.key,ae,_e)]}return i!=="categorical"||X!=="number"||isFinite($)&&Math.floor($)===$?i!=="categorical"&&X==="number"&&c!==void 0&&$<c?[new Be(j.key,ae,"stop domain values must appear in ascending order")]:(c=$,i==="categorical"&&$ in m?[new Be(j.key,ae,"stop domain values must be unique")]:(m[$]=!0,[])):[new Be(j.key,ae,`integer expected, found ${$}`)]}}function on(n){const t=(n.expressionContext==="property"?wl:ha)(Pn(n.value),n.valueSpec);if(t.result==="error")return t.value.map(o=>new Be(`${n.key}${o.key}`,n.value,o.message));const i=t.value.expression||t.value._styleExpression.expression;if(n.expressionContext==="property"&&n.propertyKey==="text-font"&&!i.outputDefined())return[new Be(n.key,n.value,`Invalid data expression for "${n.propertyKey}". Output values must be contained as literals within the expression.`)];if(n.expressionContext==="property"&&n.propertyType==="layout"&&!lo(i))return[new Be(n.key,n.value,'"feature-state" data expressions are not supported with layout properties.')];if(n.expressionContext==="filter"&&!lo(i))return[new Be(n.key,n.value,'"feature-state" data expressions are not supported with filters.')];if(n.expressionContext&&n.expressionContext.indexOf("cluster")===0){if(!sa(i,["zoom","feature-state"]))return[new Be(n.key,n.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(n.expressionContext==="cluster-initial"&&!na(i))return[new Be(n.key,n.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Cl(n){const t=n.key,i=n.value,o=Mt(i);return o!=="string"?[new Be(t,i,`color expected, ${o} found`)]:Dt.parse(String(i))?[]:[new Be(t,i,`color expected, "${i}" found`)]}function _o(n){const t=n.key,i=n.value,o=n.valueSpec,c=[];return Array.isArray(o.values)?o.values.indexOf(kr(i))===-1&&c.push(new Be(t,i,`expected one of [${o.values.join(", ")}], ${JSON.stringify(i)} found`)):Object.keys(o.values).indexOf(kr(i))===-1&&c.push(new Be(t,i,`expected one of [${Object.keys(o.values).join(", ")}], ${JSON.stringify(i)} found`)),c}function El(n){return fo(Pn(n.value))?on(Wt({},n,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Bu(n)}function Bu(n){const t=n.value,i=n.key;if(Mt(t)!=="array")return[new Be(i,t,`array expected, ${Mt(t)} found`)];const o=n.styleSpec;let c,p=[];if(t.length<1)return[new Be(i,t,"filter array must have at least 1 element")];switch(p=p.concat(_o({key:`${i}[0]`,value:t[0],valueSpec:o.filter_operator,style:n.style,styleSpec:n.styleSpec})),kr(t[0])){case"<":case"<=":case">":case">=":t.length>=2&&kr(t[1])==="$type"&&p.push(new Be(i,t,`"$type" cannot be use with operator "${t[0]}"`));case"==":case"!=":t.length!==3&&p.push(new Be(i,t,`filter array for operator "${t[0]}" must have 3 elements`));case"in":case"!in":t.length>=2&&(c=Mt(t[1]),c!=="string"&&p.push(new Be(`${i}[1]`,t[1],`string expected, ${c} found`)));for(let m=2;m<t.length;m++)c=Mt(t[m]),kr(t[1])==="$type"?p=p.concat(_o({key:`${i}[${m}]`,value:t[m],valueSpec:o.geometry_type,style:n.style,styleSpec:n.styleSpec})):c!=="string"&&c!=="number"&&c!=="boolean"&&p.push(new Be(`${i}[${m}]`,t[m],`string, number, or boolean expected, ${c} found`));break;case"any":case"all":case"none":for(let m=1;m<t.length;m++)p=p.concat(Bu({key:`${i}[${m}]`,value:t[m],style:n.style,styleSpec:n.styleSpec}));break;case"has":case"!has":c=Mt(t[1]),t.length!==2?p.push(new Be(i,t,`filter array for "${t[0]}" operator must have 2 elements`)):c!=="string"&&p.push(new Be(`${i}[1]`,t[1],`string expected, ${c} found`))}return p}function Vu(n,t){const i=n.key,o=n.validateSpec,c=n.style,p=n.styleSpec,m=n.value,y=n.objectKey,w=p[`${t}_${n.layerType}`];if(!w)return[];const E=y.match(/^(.*)-transition$/);if(t==="paint"&&E&&w[E[1]]&&w[E[1]].transition)return o({key:i,value:m,valueSpec:p.transition,style:c,styleSpec:p});const L=n.valueSpec||w[y];if(!L)return[new Be(i,m,`unknown property "${y}"`)];let V;if(Mt(m)==="string"&&ws(L)&&!L.tokens&&(V=/^{([^}]+)}$/.exec(m)))return[new Be(i,m,`"${y}" does not support interpolation syntax
|
|
5
|
-
Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(V[1])} }\`.`)];const q=[];return n.layerType==="symbol"&&(y==="text-field"&&c&&!c.glyphs&&q.push(new Be(i,m,'use of "text-field" requires a style "glyphs" property')),y==="text-font"&&la(Pn(m))&&kr(m.type)==="identity"&&q.push(new Be(i,m,'"text-font" does not support identity functions'))),q.concat(o({key:n.key,value:m,valueSpec:L,style:c,styleSpec:p,expressionContext:"property",propertyType:t,propertyKey:y}))}function Ou(n){return Vu(n,"paint")}function Ss(n){return Vu(n,"layout")}function As(n){let t=[];const i=n.value,o=n.key,c=n.style,p=n.styleSpec;if(Mt(i)!=="object")return[new Be(o,i,`object expected, ${Mt(i)} found`)];i.type||i.ref||t.push(new Be(o,i,'either "type" or "ref" is required'));let m=kr(i.type);const y=kr(i.ref);if(i.id){const w=kr(i.id);for(let E=0;E<n.arrayIndex;E++){const L=c.layers[E];kr(L.id)===w&&t.push(new Be(o,i.id,`duplicate layer id "${i.id}", previously used at line ${L.id.__line__}`))}}if("ref"in i){let w;["type","source","source-layer","filter","layout"].forEach(E=>{E in i&&t.push(new Be(o,i[E],`"${E}" is prohibited for ref layers`))}),c.layers.forEach(E=>{kr(E.id)===y&&(w=E)}),w?w.ref?t.push(new Be(o,i.ref,"ref cannot reference another ref layer")):m=kr(w.type):t.push(new Be(o,i.ref,`ref layer "${y}" not found`))}else if(m!=="background")if(i.source){const w=c.sources&&c.sources[i.source],E=w&&kr(w.type);w?E==="vector"&&m==="raster"?t.push(new Be(o,i.source,`layer "${i.id}" requires a raster source`)):E!=="raster-dem"&&m==="hillshade"?t.push(new Be(o,i.source,`layer "${i.id}" requires a raster-dem source`)):E==="raster"&&m!=="raster"?t.push(new Be(o,i.source,`layer "${i.id}" requires a vector source`)):E!=="vector"||i["source-layer"]?E==="raster-dem"&&m!=="hillshade"?t.push(new Be(o,i.source,"raster-dem source can only be used with layer type 'hillshade'.")):m!=="line"||!i.paint||!i.paint["line-gradient"]||E==="geojson"&&w.lineMetrics||t.push(new Be(o,i,`layer "${i.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new Be(o,i,`layer "${i.id}" must specify a "source-layer"`)):t.push(new Be(o,i.source,`source "${i.source}" not found`))}else t.push(new Be(o,i,'missing required property "source"'));return t=t.concat(Pi({key:o,value:i,valueSpec:p.layer,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,objectElementValidators:{"*":()=>[],type:()=>n.validateSpec({key:`${o}.type`,value:i.type,valueSpec:p.layer.type,style:n.style,styleSpec:n.styleSpec,validateSpec:n.validateSpec,object:i,objectKey:"type"}),filter:El,layout:w=>Pi({layer:i,key:w.key,value:w.value,style:w.style,styleSpec:w.styleSpec,validateSpec:w.validateSpec,objectElementValidators:{"*":E=>Ss(Wt({layerType:m},E))}}),paint:w=>Pi({layer:i,key:w.key,value:w.value,style:w.style,styleSpec:w.styleSpec,validateSpec:w.validateSpec,objectElementValidators:{"*":E=>Ou(Wt({layerType:m},E))}})}})),t}function Vr(n){const t=n.value,i=n.key,o=Mt(t);return o!=="string"?[new Be(i,t,`string expected, ${o} found`)]:[]}const ks={promoteId:function({key:n,value:t}){if(Mt(t)==="string")return Vr({key:n,value:t});{const i=[];for(const o in t)i.push(...Vr({key:`${n}.${o}`,value:t[o]}));return i}}};function Pl(n){const t=n.value,i=n.key,o=n.styleSpec,c=n.style,p=n.validateSpec;if(!t.type)return[new Be(i,t,'"type" is required')];const m=kr(t.type);let y;switch(m){case"vector":case"raster":return y=Pi({key:i,value:t,valueSpec:o[`source_${m.replace("-","_")}`],style:n.style,styleSpec:o,objectElementValidators:ks,validateSpec:p}),y;case"raster-dem":return y=function(w){var E;const L=(E=w.sourceName)!==null&&E!==void 0?E:"",V=w.value,q=w.styleSpec,j=q.source_raster_dem,W=w.style;let X=[];const $=Mt(V);if(V===void 0)return X;if($!=="object")return X.push(new Be("source_raster_dem",V,`object expected, ${$} found`)),X;const ae=kr(V.encoding)==="custom",_e=["redFactor","greenFactor","blueFactor","baseShift"],ue=w.value.encoding?`"${w.value.encoding}"`:"Default";for(const U in V)!ae&&_e.includes(U)?X.push(new Be(U,V[U],`In "${L}": "${U}" is only valid when "encoding" is set to "custom". ${ue} encoding found`)):j[U]?X=X.concat(w.validateSpec({key:U,value:V[U],valueSpec:j[U],validateSpec:w.validateSpec,style:W,styleSpec:q})):X.push(new Be(U,V[U],`unknown property "${U}"`));return X}({sourceName:i,value:t,style:n.style,styleSpec:o,validateSpec:p}),y;case"geojson":if(y=Pi({key:i,value:t,valueSpec:o.source_geojson,style:c,styleSpec:o,validateSpec:p,objectElementValidators:ks}),t.cluster)for(const w in t.clusterProperties){const[E,L]=t.clusterProperties[w],V=typeof E=="string"?[E,["accumulated"],["get",w]]:E;y.push(...on({key:`${i}.${w}.map`,value:L,expressionContext:"cluster-map"})),y.push(...on({key:`${i}.${w}.reduce`,value:V,expressionContext:"cluster-reduce"}))}return y;case"video":return Pi({key:i,value:t,valueSpec:o.source_video,style:c,validateSpec:p,styleSpec:o});case"image":return Pi({key:i,value:t,valueSpec:o.source_image,style:c,validateSpec:p,styleSpec:o});case"canvas":return[new Be(i,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return _o({key:`${i}.type`,value:t.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function Fu(n){const t=n.value,i=n.styleSpec,o=i.light,c=n.style;let p=[];const m=Mt(t);if(t===void 0)return p;if(m!=="object")return p=p.concat([new Be("light",t,`object expected, ${m} found`)]),p;for(const y in t){const w=y.match(/^(.*)-transition$/);p=p.concat(w&&o[w[1]]&&o[w[1]].transition?n.validateSpec({key:y,value:t[y],valueSpec:i.transition,validateSpec:n.validateSpec,style:c,styleSpec:i}):o[y]?n.validateSpec({key:y,value:t[y],valueSpec:o[y],validateSpec:n.validateSpec,style:c,styleSpec:i}):[new Be(y,t[y],`unknown property "${y}"`)])}return p}function Nu(n){const t=n.value,i=n.styleSpec,o=i.sky,c=n.style,p=Mt(t);if(t===void 0)return[];if(p!=="object")return[new Be("sky",t,`object expected, ${p} found`)];let m=[];for(const y in t)m=m.concat(o[y]?n.validateSpec({key:y,value:t[y],valueSpec:o[y],style:c,styleSpec:i}):[new Be(y,t[y],`unknown property "${y}"`)]);return m}function Ts(n){const t=n.value,i=n.styleSpec,o=i.terrain,c=n.style;let p=[];const m=Mt(t);if(t===void 0)return p;if(m!=="object")return p=p.concat([new Be("terrain",t,`object expected, ${m} found`)]),p;for(const y in t)p=p.concat(o[y]?n.validateSpec({key:y,value:t[y],valueSpec:o[y],validateSpec:n.validateSpec,style:c,styleSpec:i}):[new Be(y,t[y],`unknown property "${y}"`)]);return p}function Il(n){let t=[];const i=n.value,o=n.key;if(Array.isArray(i)){const c=[],p=[];for(const m in i)i[m].id&&c.includes(i[m].id)&&t.push(new Be(o,i,`all the sprites' ids must be unique, but ${i[m].id} is duplicated`)),c.push(i[m].id),i[m].url&&p.includes(i[m].url)&&t.push(new Be(o,i,`all the sprites' URLs must be unique, but ${i[m].url} is duplicated`)),p.push(i[m].url),t=t.concat(Pi({key:`${o}[${m}]`,value:i[m],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:n.validateSpec}));return t}return Vr({key:o,value:i})}function ya(n){return t=n.value,t&&t.constructor===Object?[]:[new Be(n.key,n.value,`object expected, ${Mt(n.value)} found`)];var t}const qu={"*":()=>[],array:kl,boolean:function(n){const t=n.value,i=n.key,o=Mt(t);return o!=="boolean"?[new Be(i,t,`boolean expected, ${o} found`)]:[]},number:yo,color:Cl,constants:go,enum:_o,filter:El,function:Tl,layer:As,object:Pi,source:Pl,light:Fu,sky:Nu,terrain:Ts,projection:function(n){const t=n.value,i=n.styleSpec,o=i.projection,c=n.style,p=Mt(t);if(t===void 0)return[];if(p!=="object")return[new Be("projection",t,`object expected, ${p} found`)];let m=[];for(const y in t)m=m.concat(o[y]?n.validateSpec({key:y,value:t[y],valueSpec:o[y],style:c,styleSpec:i}):[new Be(y,t[y],`unknown property "${y}"`)]);return m},projectionDefinition:function(n){const t=n.key;let i=n.value;i=i instanceof String?i.valueOf():i;const o=Mt(i);return o!=="array"||function(c){return Array.isArray(c)&&c.length===3&&typeof c[0]=="string"&&typeof c[1]=="string"&&typeof c[2]=="number"}(i)||function(c){return!!["interpolate","step","literal"].includes(c[0])}(i)?["array","string"].includes(o)?[]:[new Be(t,i,`projection expected, invalid type "${o}" found`)]:[new Be(t,i,`projection expected, invalid array ${JSON.stringify(i)} found`)]},string:Vr,formatted:function(n){return Vr(n).length===0?[]:on(n)},resolvedImage:function(n){return Vr(n).length===0?[]:on(n)},padding:function(n){const t=n.key,i=n.value;if(Mt(i)==="array"){if(i.length<1||i.length>4)return[new Be(t,i,`padding requires 1 to 4 values; ${i.length} values found`)];const o={type:"number"};let c=[];for(let p=0;p<i.length;p++)c=c.concat(n.validateSpec({key:`${t}[${p}]`,value:i[p],validateSpec:n.validateSpec,valueSpec:o}));return c}return yo({key:t,value:i,valueSpec:{}})},numberArray:function(n){const t=n.key,i=n.value;if(Mt(i)==="array"){const o={type:"number"};if(i.length<1)return[new Be(t,i,"array length at least 1 expected, length 0 found")];let c=[];for(let p=0;p<i.length;p++)c=c.concat(n.validateSpec({key:`${t}[${p}]`,value:i[p],validateSpec:n.validateSpec,valueSpec:o}));return c}return yo({key:t,value:i,valueSpec:{}})},colorArray:function(n){const t=n.key,i=n.value;if(Mt(i)==="array"){if(i.length<1)return[new Be(t,i,"array length at least 1 expected, length 0 found")];let o=[];for(let c=0;c<i.length;c++)o=o.concat(Cl({key:`${t}[${c}]`,value:i[c]}));return o}return Cl({key:t,value:i})},variableAnchorOffsetCollection:function(n){const t=n.key,i=n.value,o=Mt(i),c=n.styleSpec;if(o!=="array"||i.length<1||i.length%2!=0)return[new Be(t,i,"variableAnchorOffsetCollection requires a non-empty array of even length")];let p=[];for(let m=0;m<i.length;m+=2)p=p.concat(_o({key:`${t}[${m}]`,value:i[m],valueSpec:c.layout_symbol["text-anchor"]})),p=p.concat(kl({key:`${t}[${m+1}]`,value:i[m+1],valueSpec:{length:2,value:"number"},validateSpec:n.validateSpec,style:n.style,styleSpec:c}));return p},sprite:Il,state:ya};function Cs(n){const t=n.value,i=n.valueSpec,o=n.styleSpec;return n.validateSpec=Cs,i.expression&&la(kr(t))?Tl(n):i.expression&&uo(Pn(t))?on(n):i.type&&qu[i.type]?qu[i.type](n):Pi(Wt({},n,{valueSpec:i.type?o[i.type]:i}))}function Uu(n){const t=n.value,i=n.key,o=Vr(n);return o.length||(t.indexOf("{fontstack}")===-1&&o.push(new Be(i,t,'"glyphs" url must include a "{fontstack}" token')),t.indexOf("{range}")===-1&&o.push(new Be(i,t,'"glyphs" url must include a "{range}" token'))),o}function oi(n,t=re){let i=[];return i=i.concat(Cs({key:"",value:n,valueSpec:t.$root,styleSpec:t,style:n,validateSpec:Cs,objectElementValidators:{glyphs:Uu,"*":()=>[]}})),n.constants&&(i=i.concat(go({key:"constants",value:n.constants}))),Es(i)}function Ki(n){return function(t){return n({...t,validateSpec:Cs})}}function Es(n){return[].concat(n).sort((t,i)=>t.line-i.line)}function Gi(n){return function(...t){return Es(n.apply(this,t))}}oi.source=Gi(Ki(Pl)),oi.sprite=Gi(Ki(Il)),oi.glyphs=Gi(Ki(Uu)),oi.light=Gi(Ki(Fu)),oi.sky=Gi(Ki(Nu)),oi.terrain=Gi(Ki(Ts)),oi.state=Gi(Ki(ya)),oi.layer=Gi(Ki(As)),oi.filter=Gi(Ki(El)),oi.paintProperty=Gi(Ki(Ou)),oi.layoutProperty=Gi(Ki(Ss));const Ps=oi,_a=Ps.light,_p=Ps.sky,Ml=Ps.paintProperty,xa=Ps.layoutProperty;function Ll(n,t){let i=!1;if(t&&t.length)for(const o of t)n.fire(new he(new Error(o.message))),i=!0;return i}class Is{constructor(t,i,o){const c=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const m=new Int32Array(this.arrayBuffer);t=m[0],this.d=(i=m[1])+2*(o=m[2]);for(let w=0;w<this.d*this.d;w++){const E=m[3+w],L=m[3+w+1];c.push(E===L?null:m.subarray(E,L))}const y=m[3+c.length+1];this.keys=m.subarray(m[3+c.length],y),this.bboxes=m.subarray(y),this.insert=this._insertReadonly}else{this.d=i+2*o;for(let m=0;m<this.d*this.d;m++)c.push([]);this.keys=[],this.bboxes=[]}this.n=i,this.extent=t,this.padding=o,this.scale=i/t,this.uid=0;const p=o/i*t;this.min=-p,this.max=t+p}insert(t,i,o,c,p){this._forEachCell(i,o,c,p,this._insertCell,this.uid++,void 0,void 0),this.keys.push(t),this.bboxes.push(i),this.bboxes.push(o),this.bboxes.push(c),this.bboxes.push(p)}_insertReadonly(){throw new Error("Cannot insert into a GridIndex created from an ArrayBuffer.")}_insertCell(t,i,o,c,p,m){this.cells[p].push(m)}query(t,i,o,c,p){const m=this.min,y=this.max;if(t<=m&&i<=m&&y<=o&&y<=c&&!p)return Array.prototype.slice.call(this.keys);{const w=[];return this._forEachCell(t,i,o,c,this._queryCell,w,{},p),w}}_queryCell(t,i,o,c,p,m,y,w){const E=this.cells[p];if(E!==null){const L=this.keys,V=this.bboxes;for(let q=0;q<E.length;q++){const j=E[q];if(y[j]===void 0){const W=4*j;(w?w(V[W+0],V[W+1],V[W+2],V[W+3]):t<=V[W+2]&&i<=V[W+3]&&o>=V[W+0]&&c>=V[W+1])?(y[j]=!0,m.push(L[j])):y[j]=!1}}}}_forEachCell(t,i,o,c,p,m,y,w){const E=this._convertToCellCoord(t),L=this._convertToCellCoord(i),V=this._convertToCellCoord(o),q=this._convertToCellCoord(c);for(let j=E;j<=V;j++)for(let W=L;W<=q;W++){const X=this.d*W+j;if((!w||w(this._convertFromCellCoord(j),this._convertFromCellCoord(W),this._convertFromCellCoord(j+1),this._convertFromCellCoord(W+1)))&&p.call(this,t,i,o,c,X,m,y,w))return}}_convertFromCellCoord(t){return(t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,i=3+this.cells.length+1+1;let o=0;for(let m=0;m<this.cells.length;m++)o+=this.cells[m].length;const c=new Int32Array(i+o+this.keys.length+this.bboxes.length);c[0]=this.extent,c[1]=this.n,c[2]=this.padding;let p=i;for(let m=0;m<t.length;m++){const y=t[m];c[3+m]=p,c.set(y,p),p+=y.length}return c[3+t.length]=p,c.set(this.keys,p),p+=this.keys.length,c[3+t.length+1]=p,c.set(this.bboxes,p),p+=this.bboxes.length,c.buffer}static serialize(t,i){const o=t.toArrayBuffer();return i&&i.push(o),{buffer:o}}static deserialize(t){return new Is(t.buffer)}}const an={};function st(n,t,i={}){if(an[n])throw new Error(`${n} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:n,writeable:!1}),an[n]={klass:t,omit:i.omit||[],shallow:i.shallow||[]}}st("Object",Object),st("TransferableGridIndex",Is),st("Color",Dt),st("Error",Error),st("AJAXError",Cr),st("ResolvedImage",Ei),st("StylePropertyFunction",ho),st("StyleExpression",ua,{omit:["_evaluator"]}),st("ZoomDependentExpression",pa),st("ZoomConstantExpression",vl),st("CompoundExpression",Ni,{omit:["_evaluate"]});for(const n in bs)bs[n]._classRegistryKey||st(`Expression_${n}`,bs[n]);function ba(n){return n&&typeof ArrayBuffer<"u"&&(n instanceof ArrayBuffer||n.constructor&&n.constructor.name==="ArrayBuffer")}function va(n){return n.$name||n.constructor._classRegistryKey}function ju(n){return!function(t){if(t===null||typeof t!="object")return!1;const i=va(t);return!(!i||i==="Object")}(n)&&(n==null||typeof n=="boolean"||typeof n=="number"||typeof n=="string"||n instanceof Boolean||n instanceof Number||n instanceof String||n instanceof Date||n instanceof RegExp||n instanceof Blob||n instanceof Error||ba(n)||kt(n)||ArrayBuffer.isView(n)||n instanceof ImageData)}function Ms(n,t){if(ju(n))return(ba(n)||kt(n))&&t&&t.push(n),ArrayBuffer.isView(n)&&t&&t.push(n.buffer),n instanceof ImageData&&t&&t.push(n.data.buffer),n;if(Array.isArray(n)){const p=[];for(const m of n)p.push(Ms(m,t));return p}if(typeof n!="object")throw new Error("can't serialize object of type "+typeof n);const i=va(n);if(!i)throw new Error(`can't serialize object of unregistered class ${n.constructor.name}`);if(!an[i])throw new Error(`${i} is not registered.`);const{klass:o}=an[i],c=o.serialize?o.serialize(n,t):{};if(o.serialize){if(t&&c===t[t.length-1])throw new Error("statically serialized object won't survive transfer of $name property")}else{for(const p in n){if(!n.hasOwnProperty(p)||an[i].omit.indexOf(p)>=0)continue;const m=n[p];c[p]=an[i].shallow.indexOf(p)>=0?m:Ms(m,t)}n instanceof Error&&(c.message=n.message)}if(c.$name)throw new Error("$name property is reserved for worker serialization logic.");return i!=="Object"&&(c.$name=i),c}function xo(n){if(ju(n))return n;if(Array.isArray(n))return n.map(xo);if(typeof n!="object")throw new Error("can't deserialize object of type "+typeof n);const t=va(n)||"Object";if(!an[t])throw new Error(`can't deserialize unregistered class ${t}`);const{klass:i}=an[t];if(!i)throw new Error(`can't deserialize unregistered class ${t}`);if(i.deserialize)return i.deserialize(n);const o=Object.create(i.prototype);for(const c of Object.keys(n)){if(c==="$name")continue;const p=n[c];o[c]=an[t].shallow.indexOf(c)>=0?p:xo(p)}return o}class Rl{constructor(){this.first=!0}update(t,i){const o=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=o,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=o,!0):(this.lastFloorZoom>o?(this.lastIntegerZoom=o+1,this.lastIntegerZoomTime=i):this.lastFloorZoom<o&&(this.lastIntegerZoom=o,this.lastIntegerZoomTime=i),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=o,!0))}}const Lt={"Latin-1 Supplement":n=>n>=128&&n<=255,"Hangul Jamo":n=>n>=4352&&n<=4607,Khmer:n=>n>=6016&&n<=6143,"General Punctuation":n=>n>=8192&&n<=8303,"Letterlike Symbols":n=>n>=8448&&n<=8527,"Number Forms":n=>n>=8528&&n<=8591,"Miscellaneous Technical":n=>n>=8960&&n<=9215,"Control Pictures":n=>n>=9216&&n<=9279,"Optical Character Recognition":n=>n>=9280&&n<=9311,"Enclosed Alphanumerics":n=>n>=9312&&n<=9471,"Geometric Shapes":n=>n>=9632&&n<=9727,"Miscellaneous Symbols":n=>n>=9728&&n<=9983,"Miscellaneous Symbols and Arrows":n=>n>=11008&&n<=11263,"Ideographic Description Characters":n=>n>=12272&&n<=12287,"CJK Symbols and Punctuation":n=>n>=12288&&n<=12351,Hiragana:n=>n>=12352&&n<=12447,Katakana:n=>n>=12448&&n<=12543,Kanbun:n=>n>=12688&&n<=12703,"CJK Strokes":n=>n>=12736&&n<=12783,"Enclosed CJK Letters and Months":n=>n>=12800&&n<=13055,"CJK Compatibility":n=>n>=13056&&n<=13311,"Yijing Hexagram Symbols":n=>n>=19904&&n<=19967,"CJK Unified Ideographs":n=>n>=19968&&n<=40959,"Hangul Syllables":n=>n>=44032&&n<=55215,"Private Use Area":n=>n>=57344&&n<=63743,"Vertical Forms":n=>n>=65040&&n<=65055,"CJK Compatibility Forms":n=>n>=65072&&n<=65103,"Small Form Variants":n=>n>=65104&&n<=65135,"Halfwidth and Fullwidth Forms":n=>n>=65280&&n<=65519};function wa(n){for(const t of n)if(Sa(t.charCodeAt(0)))return!0;return!1}function xp(n){for(const t of n)if(!Wu(t.charCodeAt(0)))return!1;return!0}function zl(n){const t=n.map(i=>{try{return new RegExp(`\\p{sc=${i}}`,"u").source}catch{return null}}).filter(i=>i);return new RegExp(t.join("|"),"u")}const Hu=zl(["Arab","Dupl","Mong","Ougr","Syrc"]);function Wu(n){return!Hu.test(String.fromCodePoint(n))}const Dl=zl(["Bopo","Hani","Hira","Kana","Kits","Nshu","Tang","Yiii"]);function Sa(n){return!(n!==746&&n!==747&&(n<4352||!(Lt["CJK Compatibility Forms"](n)&&!(n>=65097&&n<=65103)||Lt["CJK Compatibility"](n)||Lt["CJK Strokes"](n)||!(!Lt["CJK Symbols and Punctuation"](n)||n>=12296&&n<=12305||n>=12308&&n<=12319||n===12336)||Lt["Enclosed CJK Letters and Months"](n)||Lt["Ideographic Description Characters"](n)||Lt.Kanbun(n)||Lt.Katakana(n)&&n!==12540||!(!Lt["Halfwidth and Fullwidth Forms"](n)||n===65288||n===65289||n===65293||n>=65306&&n<=65310||n===65339||n===65341||n===65343||n>=65371&&n<=65503||n===65507||n>=65512&&n<=65519)||!(!Lt["Small Form Variants"](n)||n>=65112&&n<=65118||n>=65123&&n<=65126)||Lt["Vertical Forms"](n)||Lt["Yijing Hexagram Symbols"](n)||new RegExp("\\p{sc=Cans}","u").test(String.fromCodePoint(n))||new RegExp("\\p{sc=Hang}","u").test(String.fromCodePoint(n))||Dl.test(String.fromCodePoint(n)))))}function bo(n){return!(Sa(n)||function(t){return!!(Lt["Latin-1 Supplement"](t)&&(t===167||t===169||t===174||t===177||t===188||t===189||t===190||t===215||t===247)||Lt["General Punctuation"](t)&&(t===8214||t===8224||t===8225||t===8240||t===8241||t===8251||t===8252||t===8258||t===8263||t===8264||t===8265||t===8273)||Lt["Letterlike Symbols"](t)||Lt["Number Forms"](t)||Lt["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||t===9003||t>=9085&&t<=9114||t>=9150&&t<=9165||t===9167||t>=9169&&t<=9179||t>=9186&&t<=9215)||Lt["Control Pictures"](t)&&t!==9251||Lt["Optical Character Recognition"](t)||Lt["Enclosed Alphanumerics"](t)||Lt["Geometric Shapes"](t)||Lt["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Lt["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Lt["CJK Symbols and Punctuation"](t)||Lt.Katakana(t)||Lt["Private Use Area"](t)||Lt["CJK Compatibility Forms"](t)||Lt["Small Form Variants"](t)||Lt["Halfwidth and Fullwidth Forms"](t)||t===8734||t===8756||t===8757||t>=9984&&t<=10087||t>=10102&&t<=10131||t===65532||t===65533)}(n))}const bp=zl(["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 Aa(n){return bp.test(String.fromCodePoint(n))}function vp(n,t){return!(!t&&Aa(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||Lt.Khmer(n))}function wp(n){for(const t of n)if(Aa(t.charCodeAt(0)))return!0;return!1}const gn=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null,this.loadScriptResolve=()=>{}}setState(n){this.pluginStatus=n.pluginStatus,this.pluginURL=n.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(n){if(gn.isParsed())throw new Error("RTL text plugin already registered.");this.applyArabicShaping=n.applyArabicShaping,this.processBidirectionalText=n.processBidirectionalText,this.processStyledBidirectionalText=n.processStyledBidirectionalText,this.loadScriptResolve()}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}syncState(n,t){return s(this,void 0,void 0,function*(){if(this.isParsed())return this.getState();if(n.pluginStatus!=="loading")return this.setState(n),n;const i=n.pluginURL,o=new Promise(p=>{this.loadScriptResolve=p});t(i);const c=new Promise(p=>setTimeout(()=>p(),this.TIMEOUT));if(yield Promise.race([o,c]),this.isParsed()){const p={pluginStatus:"loaded",pluginURL:i};return this.setState(p),p}throw this.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${i}`)})}};class ir{constructor(t,i){this.zoom=t,i?(this.now=i.now,this.fadeDuration=i.fadeDuration,this.zoomHistory=i.zoomHistory,this.transition=i.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Rl,this.transition={})}isSupportedScript(t){return function(i,o){for(const c of i)if(!vp(c.charCodeAt(0),o))return!1;return!0}(t,gn.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,i=t-Math.floor(t),o=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:i+(1-i)*o}:{fromScale:.5,toScale:1,t:1-(1-o)*i}}}class vo{constructor(t,i){this.property=t,this.value=i,this.expression=function(o,c){if(la(o))return new ho(o,c);if(uo(o)){const p=wl(o,c);if(p.result==="error")throw new Error(p.value.map(m=>`${m.key}: ${m.message}`).join(", "));return p.value}{let p=o;return c.type==="color"&&typeof o=="string"?p=Dt.parse(o):c.type!=="padding"||typeof o!="number"&&!Array.isArray(o)?c.type!=="numberArray"||typeof o!="number"&&!Array.isArray(o)?c.type!=="colorArray"||typeof o!="string"&&!Array.isArray(o)?c.type==="variableAnchorOffsetCollection"&&Array.isArray(o)?p=pi.parse(o):c.type==="projectionDefinition"&&typeof o=="string"&&(p=vi.parse(o)):p=Yr.parse(o):p=Pr.parse(o):p=Qr.parse(o),{kind:"constant",evaluate:()=>p}}}(i===void 0?t.specification.default:i,t.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(t,i,o){return this.property.possiblyEvaluate(this,t,i,o)}}class Bl{constructor(t){this.property=t,this.value=new vo(t,void 0)}transitioned(t,i){return new Ku(this.property,this.value,i,ii({},t.transition,this.transition),t.now)}untransitioned(){return new Ku(this.property,this.value,null,{},0)}}class Zu{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)}getValue(t){return ci(this._values[t].value.value)}setValue(t,i){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new Bl(this._values[t].property)),this._values[t].value=new vo(this._values[t].property,i===null?void 0:ci(i))}getTransition(t){return ci(this._values[t].transition)}setTransition(t,i){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new Bl(this._values[t].property)),this._values[t].transition=ci(i)||void 0}serialize(){const t={};for(const i of Object.keys(this._values)){const o=this.getValue(i);o!==void 0&&(t[i]=o);const c=this.getTransition(i);c!==void 0&&(t[`${i}-transition`]=c)}return t}transitioned(t,i){const o=new Gu(this._properties);for(const c of Object.keys(this._values))o._values[c]=this._values[c].transitioned(t,i._values[c]);return o}untransitioned(){const t=new Gu(this._properties);for(const i of Object.keys(this._values))t._values[i]=this._values[i].untransitioned();return t}}class Ku{constructor(t,i,o,c,p){this.property=t,this.value=i,this.begin=p+c.delay||0,this.end=this.begin+c.duration||0,t.specification.transition&&(c.delay||c.duration)&&(this.prior=o)}possiblyEvaluate(t,i,o){const c=t.now||0,p=this.value.possiblyEvaluate(t,i,o),m=this.prior;if(m){if(c>this.end)return this.prior=null,p;if(this.value.isDataDriven())return this.prior=null,p;if(c<this.begin)return m.possiblyEvaluate(t,i,o);{const y=(c-this.begin)/(this.end-this.begin);return this.property.interpolate(m.possiblyEvaluate(t,i,o),p,ki(y))}}return p}}class Gu{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)}possiblyEvaluate(t,i,o){const c=new ka(this._properties);for(const p of Object.keys(this._values))c._values[p]=this._values[p].possiblyEvaluate(t,i,o);return c}hasTransition(){for(const t of Object.keys(this._values))if(this._values[t].prior)return!0;return!1}}class Sp{constructor(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues)}hasValue(t){return this._values[t].value!==void 0}getValue(t){return ci(this._values[t].value)}setValue(t,i){this._values[t]=new vo(this._values[t].property,i===null?void 0:ci(i))}serialize(){const t={};for(const i of Object.keys(this._values)){const o=this.getValue(i);o!==void 0&&(t[i]=o)}return t}possiblyEvaluate(t,i,o){const c=new ka(this._properties);for(const p of Object.keys(this._values))c._values[p]=this._values[p].possiblyEvaluate(t,i,o);return c}}class di{constructor(t,i,o){this.property=t,this.value=i,this.parameters=o}isConstant(){return this.value.kind==="constant"}constantOr(t){return this.value.kind==="constant"?this.value.value:t}evaluate(t,i,o,c){return this.property.evaluate(this.value,this.parameters,t,i,o,c)}}class ka{constructor(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues)}get(t){return this._values[t]}}class ct{constructor(t){this.specification=t}possiblyEvaluate(t,i){if(t.isDataDriven())throw new Error("Value should not be data driven");return t.expression.evaluate(i)}interpolate(t,i,o){const c=nn[this.specification.type];return c?c(t,i,o):t}}class ft{constructor(t,i){this.specification=t,this.overrides=i}possiblyEvaluate(t,i,o,c){return new di(this,t.expression.kind==="constant"||t.expression.kind==="camera"?{kind:"constant",value:t.expression.evaluate(i,null,{},o,c)}:t.expression,i)}interpolate(t,i,o){if(t.value.kind!=="constant"||i.value.kind!=="constant")return t;if(t.value.value===void 0||i.value.value===void 0)return new di(this,{kind:"constant",value:void 0},t.parameters);const c=nn[this.specification.type];if(c){const p=c(t.value.value,i.value.value,o);return new di(this,{kind:"constant",value:p},t.parameters)}return t}evaluate(t,i,o,c,p,m){return t.kind==="constant"?t.value:t.evaluate(i,o,c,p,m)}}class wo extends ft{possiblyEvaluate(t,i,o,c){if(t.value===void 0)return new di(this,{kind:"constant",value:void 0},i);if(t.expression.kind==="constant"){const p=t.expression.evaluate(i,null,{},o,c),m=t.property.specification.type==="resolvedImage"&&typeof p!="string"?p.name:p,y=this._calculate(m,m,m,i);return new di(this,{kind:"constant",value:y},i)}if(t.expression.kind==="camera"){const p=this._calculate(t.expression.evaluate({zoom:i.zoom-1}),t.expression.evaluate({zoom:i.zoom}),t.expression.evaluate({zoom:i.zoom+1}),i);return new di(this,{kind:"constant",value:p},i)}return new di(this,t.expression,i)}evaluate(t,i,o,c,p,m){if(t.kind==="source"){const y=t.evaluate(i,o,c,p,m);return this._calculate(y,y,y,i)}return t.kind==="composite"?this._calculate(t.evaluate({zoom:Math.floor(i.zoom)-1},o,c),t.evaluate({zoom:Math.floor(i.zoom)},o,c),t.evaluate({zoom:Math.floor(i.zoom)+1},o,c),i):t.value}_calculate(t,i,o,c){return c.zoom>c.zoomHistory.lastIntegerZoom?{from:t,to:i}:{from:o,to:i}}interpolate(t){return t}}class Vl{constructor(t){this.specification=t}possiblyEvaluate(t,i,o,c){if(t.value!==void 0){if(t.expression.kind==="constant"){const p=t.expression.evaluate(i,null,{},o,c);return this._calculate(p,p,p,i)}return this._calculate(t.expression.evaluate(new ir(Math.floor(i.zoom-1),i)),t.expression.evaluate(new ir(Math.floor(i.zoom),i)),t.expression.evaluate(new ir(Math.floor(i.zoom+1),i)),i)}}_calculate(t,i,o,c){return c.zoom>c.zoomHistory.lastIntegerZoom?{from:t,to:i}:{from:o,to:i}}interpolate(t){return t}}class Ol{constructor(t){this.specification=t}possiblyEvaluate(t,i,o,c){return!!t.expression.evaluate(i,null,{},o,c)}interpolate(){return!1}}class Mr{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const i in t){const o=t[i];o.specification.overridable&&this.overridableProperties.push(i);const c=this.defaultPropertyValues[i]=new vo(o,void 0),p=this.defaultTransitionablePropertyValues[i]=new Bl(o);this.defaultTransitioningPropertyValues[i]=p.untransitioned(),this.defaultPossiblyEvaluatedValues[i]=c.possiblyEvaluate({})}}}st("DataDrivenProperty",ft),st("DataConstantProperty",ct),st("CrossFadedDataDrivenProperty",wo),st("CrossFadedProperty",Vl),st("ColorRampProperty",Ol);const Fl="-transition";class qi extends xe{constructor(t,i){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1},t.type!=="custom"&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,t.type!=="background"&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),i.layout&&(this._unevaluatedLayout=new Sp(i.layout)),i.paint)){this._transitionablePaint=new Zu(i.paint);for(const o in t.paint)this.setPaintProperty(o,t.paint[o],{validate:!1});for(const o in t.layout)this.setLayoutProperty(o,t.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new ka(i.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return t==="visibility"?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,i,o={}){i!=null&&this._validate(xa,`layers.${this.id}.layout.${t}`,t,i,o)||(t!=="visibility"?this._unevaluatedLayout.setValue(t,i):this.visibility=i)}getPaintProperty(t){return t.endsWith(Fl)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,i,o={}){if(i!=null&&this._validate(Ml,`layers.${this.id}.paint.${t}`,t,i,o))return!1;if(t.endsWith(Fl))return this._transitionablePaint.setTransition(t.slice(0,-11),i||void 0),!1;{const c=this._transitionablePaint._values[t],p=c.property.specification["property-type"]==="cross-faded-data-driven",m=c.value.isDataDriven(),y=c.value;this._transitionablePaint.setValue(t,i),this._handleSpecialPaintPropertyUpdate(t);const w=this._transitionablePaint._values[t].value;return w.isDataDriven()||m||p||this._handleOverridablePaintPropertyUpdate(t,y,w)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,i,o){return!1}isHidden(t){return!!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||this.visibility==="none"}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,i){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,i)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,i)}serialize(){const t={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&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),Un(t,(i,o)=>!(i===void 0||o==="layout"&&!Object.keys(i).length||o==="paint"&&!Object.keys(i).length))}_validate(t,i,o,c,p={}){return(!p||p.validate!==!1)&&Ll(this,t.call(Ps,{key:i,layerType:this.type,objectKey:o,value:c,styleSpec:re,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const t in this.paint._values){const i=this.paint.get(t);if(i instanceof di&&ws(i.property.specification)&&(i.value.kind==="source"||i.value.kind==="composite")&&i.value.isStateDependent)return!0}return!1}}const Ju={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class is{constructor(t,i){this._structArray=t,this._pos1=i*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class vr{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(t,i){return t._trim(),i&&(t.isTransferred=!0,i.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const i=Object.create(this.prototype);return i.arrayBuffer=t.arrayBuffer,i.length=t.length,i.capacity=t.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(t){this.reserve(t),this.length=t}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,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 cr(n,t=1){let i=0,o=0;return{members:n.map(c=>{const p=Ju[c.type].BYTES_PER_ELEMENT,m=i=Ls(i,Math.max(t,p)),y=c.components||1;return o=Math.max(o,p),i+=p*y,{name:c.name,type:c.type,components:y,offset:m}}),size:Ls(i,Math.max(o,t)),alignment:t}}function Ls(n,t){return Math.ceil(n/t)*t}class So extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i){const o=this.length;return this.resize(o+1),this.emplace(o,t,i)}emplace(t,i,o){const c=2*t;return this.int16[c+0]=i,this.int16[c+1]=o,t}}So.prototype.bytesPerElement=4,st("StructArrayLayout2i4",So);class Ao extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const p=3*t;return this.int16[p+0]=i,this.int16[p+1]=o,this.int16[p+2]=c,t}}Ao.prototype.bytesPerElement=6,st("StructArrayLayout3i6",Ao);class ns extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c){const p=this.length;return this.resize(p+1),this.emplace(p,t,i,o,c)}emplace(t,i,o,c,p){const m=4*t;return this.int16[m+0]=i,this.int16[m+1]=o,this.int16[m+2]=c,this.int16[m+3]=p,t}}ns.prototype.bytesPerElement=8,st("StructArrayLayout4i8",ns);class Nl extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,i,o,c,p,m)}emplace(t,i,o,c,p,m,y){const w=6*t;return this.int16[w+0]=i,this.int16[w+1]=o,this.int16[w+2]=c,this.int16[w+3]=p,this.int16[w+4]=m,this.int16[w+5]=y,t}}Nl.prototype.bytesPerElement=12,st("StructArrayLayout2i4i12",Nl);class ql extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,i,o,c,p,m)}emplace(t,i,o,c,p,m,y){const w=4*t,E=8*t;return this.int16[w+0]=i,this.int16[w+1]=o,this.uint8[E+4]=c,this.uint8[E+5]=p,this.uint8[E+6]=m,this.uint8[E+7]=y,t}}ql.prototype.bytesPerElement=8,st("StructArrayLayout2i4ub8",ql);class Rs extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i){const o=this.length;return this.resize(o+1),this.emplace(o,t,i)}emplace(t,i,o){const c=2*t;return this.float32[c+0]=i,this.float32[c+1]=o,t}}Rs.prototype.bytesPerElement=8,st("StructArrayLayout2f8",Rs);class Ul extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p,m,y,w,E,L){const V=this.length;return this.resize(V+1),this.emplace(V,t,i,o,c,p,m,y,w,E,L)}emplace(t,i,o,c,p,m,y,w,E,L,V){const q=10*t;return this.uint16[q+0]=i,this.uint16[q+1]=o,this.uint16[q+2]=c,this.uint16[q+3]=p,this.uint16[q+4]=m,this.uint16[q+5]=y,this.uint16[q+6]=w,this.uint16[q+7]=E,this.uint16[q+8]=L,this.uint16[q+9]=V,t}}Ul.prototype.bytesPerElement=20,st("StructArrayLayout10ui20",Ul);class u extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p,m,y,w,E,L,V,q){const j=this.length;return this.resize(j+1),this.emplace(j,t,i,o,c,p,m,y,w,E,L,V,q)}emplace(t,i,o,c,p,m,y,w,E,L,V,q,j){const W=12*t;return this.int16[W+0]=i,this.int16[W+1]=o,this.int16[W+2]=c,this.int16[W+3]=p,this.uint16[W+4]=m,this.uint16[W+5]=y,this.uint16[W+6]=w,this.uint16[W+7]=E,this.int16[W+8]=L,this.int16[W+9]=V,this.int16[W+10]=q,this.int16[W+11]=j,t}}u.prototype.bytesPerElement=24,st("StructArrayLayout4i4ui4i24",u);class e extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const p=3*t;return this.float32[p+0]=i,this.float32[p+1]=o,this.float32[p+2]=c,t}}e.prototype.bytesPerElement=12,st("StructArrayLayout3f12",e);class r extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(t){const i=this.length;return this.resize(i+1),this.emplace(i,t)}emplace(t,i){return this.uint32[1*t+0]=i,t}}r.prototype.bytesPerElement=4,st("StructArrayLayout1ul4",r);class a extends vr{_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(t,i,o,c,p,m,y,w,E){const L=this.length;return this.resize(L+1),this.emplace(L,t,i,o,c,p,m,y,w,E)}emplace(t,i,o,c,p,m,y,w,E,L){const V=10*t,q=5*t;return this.int16[V+0]=i,this.int16[V+1]=o,this.int16[V+2]=c,this.int16[V+3]=p,this.int16[V+4]=m,this.int16[V+5]=y,this.uint32[q+3]=w,this.uint16[V+8]=E,this.uint16[V+9]=L,t}}a.prototype.bytesPerElement=20,st("StructArrayLayout6i1ul2ui20",a);class l extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,i,o,c,p,m)}emplace(t,i,o,c,p,m,y){const w=6*t;return this.int16[w+0]=i,this.int16[w+1]=o,this.int16[w+2]=c,this.int16[w+3]=p,this.int16[w+4]=m,this.int16[w+5]=y,t}}l.prototype.bytesPerElement=12,st("StructArrayLayout2i2i2i12",l);class h extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p){const m=this.length;return this.resize(m+1),this.emplace(m,t,i,o,c,p)}emplace(t,i,o,c,p,m){const y=4*t,w=8*t;return this.float32[y+0]=i,this.float32[y+1]=o,this.float32[y+2]=c,this.int16[w+6]=p,this.int16[w+7]=m,t}}h.prototype.bytesPerElement=16,st("StructArrayLayout2f1f2i16",h);class g extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(t,i,o,c,p,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,i,o,c,p,m)}emplace(t,i,o,c,p,m,y){const w=16*t,E=4*t,L=8*t;return this.uint8[w+0]=i,this.uint8[w+1]=o,this.float32[E+1]=c,this.float32[E+2]=p,this.int16[L+6]=m,this.int16[L+7]=y,t}}g.prototype.bytesPerElement=16,st("StructArrayLayout2ub2f2i16",g);class b extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const p=3*t;return this.uint16[p+0]=i,this.uint16[p+1]=o,this.uint16[p+2]=c,t}}b.prototype.bytesPerElement=6,st("StructArrayLayout3ui6",b);class A extends vr{_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(t,i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae){const _e=this.length;return this.resize(_e+1),this.emplace(_e,t,i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae)}emplace(t,i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae,_e){const ue=24*t,U=12*t,Y=48*t;return this.int16[ue+0]=i,this.int16[ue+1]=o,this.uint16[ue+2]=c,this.uint16[ue+3]=p,this.uint32[U+2]=m,this.uint32[U+3]=y,this.uint32[U+4]=w,this.uint16[ue+10]=E,this.uint16[ue+11]=L,this.uint16[ue+12]=V,this.float32[U+7]=q,this.float32[U+8]=j,this.uint8[Y+36]=W,this.uint8[Y+37]=X,this.uint8[Y+38]=$,this.uint32[U+10]=ae,this.int16[ue+22]=_e,t}}A.prototype.bytesPerElement=48,st("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",A);class I extends vr{_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(t,i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae,_e,ue,U,Y,de,Ce,je,Me,Ve,Ke,He){const Ge=this.length;return this.resize(Ge+1),this.emplace(Ge,t,i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae,_e,ue,U,Y,de,Ce,je,Me,Ve,Ke,He)}emplace(t,i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae,_e,ue,U,Y,de,Ce,je,Me,Ve,Ke,He,Ge){const Fe=32*t,ot=16*t;return this.int16[Fe+0]=i,this.int16[Fe+1]=o,this.int16[Fe+2]=c,this.int16[Fe+3]=p,this.int16[Fe+4]=m,this.int16[Fe+5]=y,this.int16[Fe+6]=w,this.int16[Fe+7]=E,this.uint16[Fe+8]=L,this.uint16[Fe+9]=V,this.uint16[Fe+10]=q,this.uint16[Fe+11]=j,this.uint16[Fe+12]=W,this.uint16[Fe+13]=X,this.uint16[Fe+14]=$,this.uint16[Fe+15]=ae,this.uint16[Fe+16]=_e,this.uint16[Fe+17]=ue,this.uint16[Fe+18]=U,this.uint16[Fe+19]=Y,this.uint16[Fe+20]=de,this.uint16[Fe+21]=Ce,this.uint16[Fe+22]=je,this.uint32[ot+12]=Me,this.float32[ot+13]=Ve,this.float32[ot+14]=Ke,this.uint16[Fe+30]=He,this.uint16[Fe+31]=Ge,t}}I.prototype.bytesPerElement=64,st("StructArrayLayout8i15ui1ul2f2ui64",I);class D extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t){const i=this.length;return this.resize(i+1),this.emplace(i,t)}emplace(t,i){return this.float32[1*t+0]=i,t}}D.prototype.bytesPerElement=4,st("StructArrayLayout1f4",D);class F extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const p=3*t;return this.uint16[6*t+0]=i,this.float32[p+1]=o,this.float32[p+2]=c,t}}F.prototype.bytesPerElement=12,st("StructArrayLayout1ui2f12",F);class O extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i,o){const c=this.length;return this.resize(c+1),this.emplace(c,t,i,o)}emplace(t,i,o,c){const p=4*t;return this.uint32[2*t+0]=i,this.uint16[p+2]=o,this.uint16[p+3]=c,t}}O.prototype.bytesPerElement=8,st("StructArrayLayout1ul2ui8",O);class Z extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t,i){const o=this.length;return this.resize(o+1),this.emplace(o,t,i)}emplace(t,i,o){const c=2*t;return this.uint16[c+0]=i,this.uint16[c+1]=o,t}}Z.prototype.bytesPerElement=4,st("StructArrayLayout2ui4",Z);class J extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(t){const i=this.length;return this.resize(i+1),this.emplace(i,t)}emplace(t,i){return this.uint16[1*t+0]=i,t}}J.prototype.bytesPerElement=2,st("StructArrayLayout1ui2",J);class se extends vr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(t,i,o,c){const p=this.length;return this.resize(p+1),this.emplace(p,t,i,o,c)}emplace(t,i,o,c,p){const m=4*t;return this.float32[m+0]=i,this.float32[m+1]=o,this.float32[m+2]=c,this.float32[m+3]=p,t}}se.prototype.bytesPerElement=16,st("StructArrayLayout4f16",se);class ne extends is{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 T(this.anchorPointX,this.anchorPointY)}}ne.prototype.size=20;class oe extends a{get(t){return new ne(this,t)}}st("CollisionBoxArray",oe);class ce extends is{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(t){this._structArray.uint8[this._pos1+37]=t}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}ce.prototype.size=48;class me extends A{get(t){return new ce(this,t)}}st("PlacedSymbolArray",me);class fe extends is{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(t){this._structArray.uint32[this._pos4+12]=t}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]}}fe.prototype.size=64;class ge extends I{get(t){return new fe(this,t)}}st("SymbolInstanceArray",ge);class be extends D{getoffsetX(t){return this.float32[1*t+0]}}st("GlyphOffsetArray",be);class ye extends Ao{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}st("SymbolLineVertexArray",ye);class Te extends is{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]}}Te.prototype.size=12;class Oe extends F{get(t){return new Te(this,t)}}st("TextAnchorOffsetArray",Oe);class Le extends is{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]}}Le.prototype.size=8;class Re extends O{get(t){return new Le(this,t)}}st("FeatureIndexArray",Re);class ze extends So{}class Ye extends So{}class Qe extends So{}class We extends Nl{}class at extends ql{}class Et extends Rs{}class Vt extends Ul{}class ur extends u{}class Qt extends e{}class hr extends r{}class pr extends l{}class $t extends g{}class Ut extends b{}class Or extends Z{}const Zr=cr([{name:"a_pos",components:2,type:"Int16"}],4),{members:$r}=Zr;class jt{constructor(t=[]){this._forceNewSegmentOnNextPrepare=!1,this.segments=t}prepareSegment(t,i,o,c){const p=this.segments[this.segments.length-1];return t>jt.MAX_VERTEX_ARRAY_LENGTH&&nt(`Max vertices per segment is ${jt.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${jt.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!p||p.vertexLength+t>jt.MAX_VERTEX_ARRAY_LENGTH||p.sortKey!==c?this.createNewSegment(i,o,c):p}createNewSegment(t,i,o){const c={vertexOffset:t.length,primitiveOffset:i.length,vertexLength:0,primitiveLength:0,vaos:{}};return o!==void 0&&(c.sortKey=o),this._forceNewSegmentOnNextPrepare=!1,this.segments.push(c),c}getOrCreateLatestSegment(t,i,o){return this.prepareSegment(0,t,i,o)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=!0}get(){return this.segments}destroy(){for(const t of this.segments)for(const i in t.vaos)t.vaos[i].destroy()}static simpleSegment(t,i,o,c){return new jt([{vertexOffset:t,primitiveOffset:i,vertexLength:o,primitiveLength:c,vaos:{},sortKey:0}])}}function In(n,t){return 256*(n=Dr(Math.floor(n),0,255))+Dr(Math.floor(t),0,255)}jt.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,st("SegmentVector",jt);const ln=cr([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var Mn,ss,ko,Ln={exports:{}},os={exports:{}},Ii={exports:{}},Rn=function(){if(ko)return Ln.exports;ko=1;var n=(Mn||(Mn=1,os.exports=function(i,o){var c,p,m,y,w,E,L,V;for(p=i.length-(c=3&i.length),m=o,w=3432918353,E=461845907,V=0;V<p;)L=255&i.charCodeAt(V)|(255&i.charCodeAt(++V))<<8|(255&i.charCodeAt(++V))<<16|(255&i.charCodeAt(++V))<<24,++V,m=27492+(65535&(y=5*(65535&(m=(m^=L=(65535&(L=(L=(65535&L)*w+(((L>>>16)*w&65535)<<16)&4294967295)<<15|L>>>17))*E+(((L>>>16)*E&65535)<<16)&4294967295)<<13|m>>>19))+((5*(m>>>16)&65535)<<16)&4294967295))+((58964+(y>>>16)&65535)<<16);switch(L=0,c){case 3:L^=(255&i.charCodeAt(V+2))<<16;case 2:L^=(255&i.charCodeAt(V+1))<<8;case 1:m^=L=(65535&(L=(L=(65535&(L^=255&i.charCodeAt(V)))*w+(((L>>>16)*w&65535)<<16)&4294967295)<<15|L>>>17))*E+(((L>>>16)*E&65535)<<16)&4294967295}return m^=i.length,m=2246822507*(65535&(m^=m>>>16))+((2246822507*(m>>>16)&65535)<<16)&4294967295,m=3266489909*(65535&(m^=m>>>13))+((3266489909*(m>>>16)&65535)<<16)&4294967295,(m^=m>>>16)>>>0}),os.exports),t=(ss||(ss=1,Ii.exports=function(i,o){for(var c,p=i.length,m=o^p,y=0;p>=4;)c=1540483477*(65535&(c=255&i.charCodeAt(y)|(255&i.charCodeAt(++y))<<8|(255&i.charCodeAt(++y))<<16|(255&i.charCodeAt(++y))<<24))+((1540483477*(c>>>16)&65535)<<16),m=1540483477*(65535&m)+((1540483477*(m>>>16)&65535)<<16)^(c=1540483477*(65535&(c^=c>>>24))+((1540483477*(c>>>16)&65535)<<16)),p-=4,++y;switch(p){case 3:m^=(255&i.charCodeAt(y+2))<<16;case 2:m^=(255&i.charCodeAt(y+1))<<8;case 1:m=1540483477*(65535&(m^=255&i.charCodeAt(y)))+((1540483477*(m>>>16)&65535)<<16)}return m=1540483477*(65535&(m^=m>>>13))+((1540483477*(m>>>16)&65535)<<16),(m^=m>>>15)>>>0}),Ii.exports);return Ln.exports=n,Ln.exports.murmur3=n,Ln.exports.murmur2=t,Ln.exports}(),yn=B(Rn);class zn{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(t,i,o,c){this.ids.push(Lr(t)),this.positions.push(i,o,c)}getPositions(t){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const i=Lr(t);let o=0,c=this.ids.length-1;for(;o<c;){const m=o+c>>1;this.ids[m]>=i?c=m:o=m+1}const p=[];for(;this.ids[o]===i;)p.push({index:this.positions[3*o],start:this.positions[3*o+1],end:this.positions[3*o+2]}),o++;return p}static serialize(t,i){const o=new Float64Array(t.ids),c=new Uint32Array(t.positions);return Rr(o,c,0,o.length-1),i&&i.push(o.buffer,c.buffer),{ids:o,positions:c}}static deserialize(t){const i=new zn;return i.ids=t.ids,i.positions=t.positions,i.indexed=!0,i}}function Lr(n){const t=+n;return!isNaN(t)&&t<=Number.MAX_SAFE_INTEGER?t:yn(String(n))}function Rr(n,t,i,o){for(;i<o;){const c=n[i+o>>1];let p=i-1,m=o+1;for(;;){do p++;while(n[p]<c);do m--;while(n[m]>c);if(p>=m)break;fi(n,p,m),fi(t,3*p,3*m),fi(t,3*p+1,3*m+1),fi(t,3*p+2,3*m+2)}m-i<o-m?(Rr(n,t,i,m),i=m+1):(Rr(n,t,m+1,o),o=m)}}function fi(n,t,i){const o=n[t];n[t]=n[i],n[i]=o}st("FeaturePositionMap",zn);class nr{constructor(t,i){this.gl=t.gl,this.location=i}}class Ta extends nr{constructor(t,i){super(t,i),this.current=0}set(t){this.current!==t&&(this.current=t,this.gl.uniform1f(this.location,t))}}class Xu extends nr{constructor(t,i){super(t,i),this.current=[0,0,0,0]}set(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]&&t[3]===this.current[3]||(this.current=t,this.gl.uniform4f(this.location,t[0],t[1],t[2],t[3]))}}class Qu extends nr{constructor(t,i){super(t,i),this.current=Dt.transparent}set(t){t.r===this.current.r&&t.g===this.current.g&&t.b===this.current.b&&t.a===this.current.a||(this.current=t,this.gl.uniform4f(this.location,t.r,t.g,t.b,t.a))}}const Ap=new Float32Array(16);function jl(n){return[In(255*n.r,255*n.g),In(255*n.b,255*n.a)]}class To{constructor(t,i,o){this.value=t,this.uniformNames=i.map(c=>`u_${c}`),this.type=o}setUniform(t,i,o){t.set(o.constantOr(this.value))}getBinding(t,i,o){return this.type==="color"?new Qu(t,i):new Ta(t,i)}}class Ui{constructor(t,i){this.uniformNames=i.map(o=>`u_${o}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(t,i){this.pixelRatioFrom=i.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=i.tlbr,this.patternTo=t.tlbr}setUniform(t,i,o,c){const p=c==="u_pattern_to"?this.patternTo:c==="u_pattern_from"?this.patternFrom:c==="u_pixel_ratio_to"?this.pixelRatioTo:c==="u_pixel_ratio_from"?this.pixelRatioFrom:null;p&&t.set(p)}getBinding(t,i,o){return o.substr(0,9)==="u_pattern"?new Xu(t,i):new Ta(t,i)}}class cn{constructor(t,i,o,c){this.expression=t,this.type=o,this.maxValue=0,this.paintVertexAttributes=i.map(p=>({name:`a_${p}`,type:"Float32",components:o==="color"?2:1,offset:0})),this.paintVertexArray=new c}populatePaintArray(t,i,o,c,p){const m=this.paintVertexArray.length,y=this.expression.evaluate(new ir(0),i,{},c,[],p);this.paintVertexArray.resize(t),this._setPaintValue(m,t,y)}updatePaintArray(t,i,o,c){const p=this.expression.evaluate({zoom:0},o,c);this._setPaintValue(t,i,p)}_setPaintValue(t,i,o){if(this.type==="color"){const c=jl(o);for(let p=t;p<i;p++)this.paintVertexArray.emplace(p,c[0],c[1])}else{for(let c=t;c<i;c++)this.paintVertexArray.emplace(c,o);this.maxValue=Math.max(this.maxValue,Math.abs(o))}}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}}class ji{constructor(t,i,o,c,p,m){this.expression=t,this.uniformNames=i.map(y=>`u_${y}_t`),this.type=o,this.useIntegerZoom=c,this.zoom=p,this.maxValue=0,this.paintVertexAttributes=i.map(y=>({name:`a_${y}`,type:"Float32",components:o==="color"?4:2,offset:0})),this.paintVertexArray=new m}populatePaintArray(t,i,o,c,p){const m=this.expression.evaluate(new ir(this.zoom),i,{},c,[],p),y=this.expression.evaluate(new ir(this.zoom+1),i,{},c,[],p),w=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(w,t,m,y)}updatePaintArray(t,i,o,c){const p=this.expression.evaluate({zoom:this.zoom},o,c),m=this.expression.evaluate({zoom:this.zoom+1},o,c);this._setPaintValue(t,i,p,m)}_setPaintValue(t,i,o,c){if(this.type==="color"){const p=jl(o),m=jl(c);for(let y=t;y<i;y++)this.paintVertexArray.emplace(y,p[0],p[1],m[0],m[1])}else{for(let p=t;p<i;p++)this.paintVertexArray.emplace(p,o,c);this.maxValue=Math.max(this.maxValue,Math.abs(o),Math.abs(c))}}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(t,i){const o=this.useIntegerZoom?Math.floor(i.zoom):i.zoom,c=Dr(this.expression.interpolationFactor(o,this.zoom,this.zoom+1),0,1);t.set(c)}getBinding(t,i,o){return new Ta(t,i)}}class _n{constructor(t,i,o,c,p,m){this.expression=t,this.type=i,this.useIntegerZoom=o,this.zoom=c,this.layerId=m,this.zoomInPaintVertexArray=new p,this.zoomOutPaintVertexArray=new p}populatePaintArray(t,i,o){const c=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(t),this.zoomOutPaintVertexArray.resize(t),this._setPaintValues(c,t,i.patterns&&i.patterns[this.layerId],o)}updatePaintArray(t,i,o,c,p){this._setPaintValues(t,i,o.patterns&&o.patterns[this.layerId],p)}_setPaintValues(t,i,o,c){if(!c||!o)return;const{min:p,mid:m,max:y}=o,w=c[p],E=c[m],L=c[y];if(w&&E&&L)for(let V=t;V<i;V++)this.zoomInPaintVertexArray.emplace(V,E.tl[0],E.tl[1],E.br[0],E.br[1],w.tl[0],w.tl[1],w.br[0],w.br[1],E.pixelRatio,w.pixelRatio),this.zoomOutPaintVertexArray.emplace(V,E.tl[0],E.tl[1],E.br[0],E.br[1],L.tl[0],L.tl[1],L.br[0],L.br[1],E.pixelRatio,L.pixelRatio)}upload(t){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=t.createVertexBuffer(this.zoomInPaintVertexArray,ln.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=t.createVertexBuffer(this.zoomOutPaintVertexArray,ln.members,this.expression.isStateDependent))}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()}}class Ca{constructor(t,i,o){this.binders={},this._buffers=[];const c=[];for(const p in t.paint._values){if(!o(p))continue;const m=t.paint.get(p);if(!(m instanceof di&&ws(m.property.specification)))continue;const y=Hl(p,t.type),w=m.value,E=m.property.specification.type,L=m.property.useIntegerZoom,V=m.property.specification["property-type"],q=V==="cross-faded"||V==="cross-faded-data-driven";if(w.kind==="constant")this.binders[p]=q?new Ui(w.value,y):new To(w.value,y,E),c.push(`/u_${p}`);else if(w.kind==="source"||q){const j=Lm(p,E,"source");this.binders[p]=q?new _n(w,E,L,i,j,t.id):new cn(w,y,E,j),c.push(`/a_${p}`)}else{const j=Lm(p,E,"composite");this.binders[p]=new ji(w,y,E,L,i,j),c.push(`/z_${p}`)}}this.cacheKey=c.sort().join("")}getMaxValue(t){const i=this.binders[t];return i instanceof cn||i instanceof ji?i.maxValue:0}populatePaintArrays(t,i,o,c,p){for(const m in this.binders){const y=this.binders[m];(y instanceof cn||y instanceof ji||y instanceof _n)&&y.populatePaintArray(t,i,o,c,p)}}setConstantPatternPositions(t,i){for(const o in this.binders){const c=this.binders[o];c instanceof Ui&&c.setConstantPatternPositions(t,i)}}updatePaintArrays(t,i,o,c,p){let m=!1;for(const y in t){const w=i.getPositions(y);for(const E of w){const L=o.feature(E.index);for(const V in this.binders){const q=this.binders[V];if((q instanceof cn||q instanceof ji||q instanceof _n)&&q.expression.isStateDependent===!0){const j=c.paint.get(V);q.expression=j.value,q.updatePaintArray(E.start,E.end,L,t[y],p),m=!0}}}}return m}defines(){const t=[];for(const i in this.binders){const o=this.binders[i];(o instanceof To||o instanceof Ui)&&t.push(...o.uniformNames.map(c=>`#define HAS_UNIFORM_${c}`))}return t}getBinderAttributes(){const t=[];for(const i in this.binders){const o=this.binders[i];if(o instanceof cn||o instanceof ji)for(let c=0;c<o.paintVertexAttributes.length;c++)t.push(o.paintVertexAttributes[c].name);else if(o instanceof _n)for(let c=0;c<ln.members.length;c++)t.push(ln.members[c].name)}return t}getBinderUniforms(){const t=[];for(const i in this.binders){const o=this.binders[i];if(o instanceof To||o instanceof Ui||o instanceof ji)for(const c of o.uniformNames)t.push(c)}return t}getPaintVertexBuffers(){return this._buffers}getUniforms(t,i){const o=[];for(const c in this.binders){const p=this.binders[c];if(p instanceof To||p instanceof Ui||p instanceof ji){for(const m of p.uniformNames)if(i[m]){const y=p.getBinding(t,i[m],m);o.push({name:m,property:c,binding:y})}}}return o}setUniforms(t,i,o,c){for(const{name:p,property:m,binding:y}of i)this.binders[m].setUniform(y,c,o.get(m),p)}updatePaintBuffers(t){this._buffers=[];for(const i in this.binders){const o=this.binders[i];if(t&&o instanceof _n){const c=t.fromScale===2?o.zoomInPaintVertexBuffer:o.zoomOutPaintVertexBuffer;c&&this._buffers.push(c)}else(o instanceof cn||o instanceof ji)&&o.paintVertexBuffer&&this._buffers.push(o.paintVertexBuffer)}}upload(t){for(const i in this.binders){const o=this.binders[i];(o instanceof cn||o instanceof ji||o instanceof _n)&&o.upload(t)}this.updatePaintBuffers()}destroy(){for(const t in this.binders){const i=this.binders[t];(i instanceof cn||i instanceof ji||i instanceof _n)&&i.destroy()}}}class Dn{constructor(t,i,o=()=>!0){this.programConfigurations={};for(const c of t)this.programConfigurations[c.id]=new Ca(c,i,o);this.needsUpload=!1,this._featureMap=new zn,this._bufferOffset=0}populatePaintArrays(t,i,o,c,p,m){for(const y in this.programConfigurations)this.programConfigurations[y].populatePaintArrays(t,i,c,p,m);i.id!==void 0&&this._featureMap.add(i.id,o,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0}updatePaintArrays(t,i,o,c){for(const p of o)this.needsUpload=this.programConfigurations[p.id].updatePaintArrays(t,this._featureMap,i,p,c)||this.needsUpload}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const i in this.programConfigurations)this.programConfigurations[i].upload(t);this.needsUpload=!1}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy()}}function Hl(n,t){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[n]||[n.replace(`${t}-`,"").replace(/-/g,"_")]}function Lm(n,t,i){const o={color:{source:Rs,composite:se},number:{source:D,composite:Rs}},c=function(p){return{"line-pattern":{source:Vt,composite:Vt},"fill-pattern":{source:Vt,composite:Vt},"fill-extrusion-pattern":{source:Vt,composite:Vt}}[p]}(n);return c&&c[i]||o[t][i]}st("ConstantBinder",To),st("CrossFadedConstantBinder",Ui),st("SourceExpressionBinder",cn),st("CrossFadedCompositeBinder",_n),st("CompositeExpressionBinder",ji),st("ProgramConfiguration",Ca,{omit:["_buffers"]}),st("ProgramConfigurationSet",Dn);const kp=Math.pow(2,14)-1,Rm=-kp-1;function Co(n){const t=Ft/n.extent,i=n.loadGeometry();for(let o=0;o<i.length;o++){const c=i[o];for(let p=0;p<c.length;p++){const m=c[p],y=Math.round(m.x*t),w=Math.round(m.y*t);m.x=Dr(y,Rm,kp),m.y=Dr(w,Rm,kp),(y<m.x||y>m.x+1||w<m.y||w>m.y+1)&&nt("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return i}function Eo(n,t){return{type:n.type,id:n.id,properties:n.properties,geometry:t?Co(n):[]}}const zm=-32768;function Gw(n,t,i,o,c){n.emplaceBack(zm+8*t+o,zm+8*i+c)}class Tp{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ye,this.indexArray=new Ut,this.segments=new jt,this.programConfigurations=new Dn(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){const c=this.layers[0],p=[];let m=null,y=!1,w=c.type==="heatmap";if(c.type==="circle"){const L=c;m=L.layout.get("circle-sort-key"),y=!m.isConstant(),w=w||L.paint.get("circle-pitch-alignment")==="map"}const E=w?i.subdivisionGranularity.circle:1;for(const{feature:L,id:V,index:q,sourceLayerIndex:j}of t){const W=this.layers[0]._featureFilter.needGeometry,X=Eo(L,W);if(!this.layers[0]._featureFilter.filter(new ir(this.zoom),X,o))continue;const $=y?m.evaluate(X,{},o):void 0,ae={id:V,properties:L.properties,type:L.type,sourceLayerIndex:j,index:q,geometry:W?X.geometry:Co(L),patterns:{},sortKey:$};p.push(ae)}y&&p.sort((L,V)=>L.sortKey-V.sortKey);for(const L of p){const{geometry:V,index:q,sourceLayerIndex:j}=L,W=t[q].feature;this.addFeature(L,V,q,o,E),i.featureIndex.insert(W,V,q,j,this.index)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,$r),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(t,i,o,c,p=1){let m;switch(p){case 1:m=[0,7];break;case 3:m=[0,2,5,7];break;case 5:m=[0,1,3,4,6,7];break;case 7:m=[0,1,2,3,4,5,6,7];break;default:throw new Error(`Invalid circle bucket granularity: ${p}; valid values are 1, 3, 5, 7.`)}const y=m.length;for(const w of i)for(const E of w){const L=E.x,V=E.y;if(L<0||L>=Ft||V<0||V>=Ft)continue;const q=this.segments.prepareSegment(y*y,this.layoutVertexArray,this.indexArray,t.sortKey),j=q.vertexLength;for(let W=0;W<y;W++)for(let X=0;X<y;X++)Gw(this.layoutVertexArray,L,V,m[X],m[W]);for(let W=0;W<y-1;W++)for(let X=0;X<y-1;X++){const $=j+W*y+X,ae=j+(W+1)*y+X;this.indexArray.emplaceBack($,ae+1,$+1),this.indexArray.emplaceBack($,ae,ae+1)}q.vertexLength+=y*y,q.primitiveLength+=(y-1)*(y-1)*2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,{},c)}}function Dm(n,t){for(let i=0;i<n.length;i++)if(Po(t,n[i]))return!0;for(let i=0;i<t.length;i++)if(Po(n,t[i]))return!0;return!!Cp(n,t)}function Jw(n,t,i){return!!Po(n,t)||!!Ep(t,n,i)}function Bm(n,t){if(n.length===1)return Om(t,n[0]);for(let i=0;i<t.length;i++){const o=t[i];for(let c=0;c<o.length;c++)if(Po(n,o[c]))return!0}for(let i=0;i<n.length;i++)if(Om(t,n[i]))return!0;for(let i=0;i<t.length;i++)if(Cp(n,t[i]))return!0;return!1}function Xw(n,t,i){if(n.length>1){if(Cp(n,t))return!0;for(let o=0;o<t.length;o++)if(Ep(t[o],n,i))return!0}for(let o=0;o<n.length;o++)if(Ep(n[o],t,i))return!0;return!1}function Cp(n,t){if(n.length===0||t.length===0)return!1;for(let i=0;i<n.length-1;i++){const o=n[i],c=n[i+1];for(let p=0;p<t.length-1;p++)if(Qw(o,c,t[p],t[p+1]))return!0}return!1}function Qw(n,t,i,o){return Xe(n,i,o)!==Xe(t,i,o)&&Xe(n,t,i)!==Xe(n,t,o)}function Ep(n,t,i){const o=i*i;if(t.length===1)return n.distSqr(t[0])<o;for(let c=1;c<t.length;c++)if(Vm(n,t[c-1],t[c])<o)return!0;return!1}function Vm(n,t,i){const o=t.distSqr(i);if(o===0)return n.distSqr(t);const c=((n.x-t.x)*(i.x-t.x)+(n.y-t.y)*(i.y-t.y))/o;return n.distSqr(c<0?t:c>1?i:i.sub(t)._mult(c)._add(t))}function Om(n,t){for(let i=0;i<n.length;i++)if(Po(n[i],t))return!0;return!1}function Po(n,t){let i=!1;for(let o=0,c=n.length-1;o<n.length;c=o++){const p=n[o],m=n[c];p.y>t.y!=m.y>t.y&&t.x<(m.x-p.x)*(t.y-p.y)/(m.y-p.y)+p.x&&(i=!i)}return i}function Yw(n,t,i){const o=i[0],c=i[2];if(n.x<o.x&&t.x<o.x||n.x>c.x&&t.x>c.x||n.y<o.y&&t.y<o.y||n.y>c.y&&t.y>c.y)return!1;const p=Xe(n,t,i[0]);return p!==Xe(n,t,i[1])||p!==Xe(n,t,i[2])||p!==Xe(n,t,i[3])}function Wl(n,t,i){const o=t.paint.get(n).value;return o.kind==="constant"?o.value:i.programConfigurations.get(t.id).getMaxValue(n)}function Yu(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function $u(n,t,i,o,c){if(!t[0]&&!t[1])return n;const p=T.convert(t)._mult(c);i==="viewport"&&p._rotate(-o);const m=[];for(let y=0;y<n.length;y++)m.push(n[y].sub(p));return m}let Fm,Nm;st("CircleBucket",Tp,{omit:["layers"]});var $w={get paint(){return Nm=Nm||new Mr({"circle-radius":new ft(re.paint_circle["circle-radius"]),"circle-color":new ft(re.paint_circle["circle-color"]),"circle-blur":new ft(re.paint_circle["circle-blur"]),"circle-opacity":new ft(re.paint_circle["circle-opacity"]),"circle-translate":new ct(re.paint_circle["circle-translate"]),"circle-translate-anchor":new ct(re.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new ct(re.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new ct(re.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new ft(re.paint_circle["circle-stroke-width"]),"circle-stroke-color":new ft(re.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new ft(re.paint_circle["circle-stroke-opacity"])})},get layout(){return Fm=Fm||new Mr({"circle-sort-key":new ft(re.layout_circle["circle-sort-key"])})}};class e2 extends qi{constructor(t){super(t,$w)}createBucket(t){return new Tp(t)}queryRadius(t){const i=t;return Wl("circle-radius",this,i)+Wl("circle-stroke-width",this,i)+Yu(this.paint.get("circle-translate"))}queryIntersectsFeature({queryGeometry:t,feature:i,featureState:o,geometry:c,transform:p,pixelsToTileUnits:m,unwrappedTileID:y,getElevation:w}){const E=$u(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),-p.bearingInRadians,m),L=this.paint.get("circle-radius").evaluate(i,o)+this.paint.get("circle-stroke-width").evaluate(i,o),V=this.paint.get("circle-pitch-alignment")==="map",q=V?E:function(W,X,$,ae){return W.map(_e=>qm(_e,X,$,ae))}(E,p,y,w),j=V?L*m:L;for(const W of c)for(const X of W){const $=V?X:qm(X,p,y,w);let ae=j;const _e=p.projectTileCoordinates(X.x,X.y,y,w).signedDistanceFromCamera;if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ae*=_e/p.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ae*=p.cameraToCenterDistance/_e),Jw(q,$,ae))return!0}return!1}}function qm(n,t,i,o){const c=t.projectTileCoordinates(n.x,n.y,i,o).point;return new T((.5*c.x+.5)*t.width,(.5*-c.y+.5)*t.height)}class Um extends Tp{}let jm;st("HeatmapBucket",Um,{omit:["layers"]});var t2={get paint(){return jm=jm||new Mr({"heatmap-radius":new ft(re.paint_heatmap["heatmap-radius"]),"heatmap-weight":new ft(re.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new ct(re.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Ol(re.paint_heatmap["heatmap-color"]),"heatmap-opacity":new ct(re.paint_heatmap["heatmap-opacity"])})}};function Pp(n,{width:t,height:i},o,c){if(c){if(c instanceof Uint8ClampedArray)c=new Uint8Array(c.buffer);else if(c.length!==t*i*o)throw new RangeError(`mismatched image size. expected: ${c.length} but got: ${t*i*o}`)}else c=new Uint8Array(t*i*o);return n.width=t,n.height=i,n.data=c,n}function Hm(n,{width:t,height:i},o){if(t===n.width&&i===n.height)return;const c=Pp({},{width:t,height:i},o);Ip(n,c,{x:0,y:0},{x:0,y:0},{width:Math.min(n.width,t),height:Math.min(n.height,i)},o),n.width=t,n.height=i,n.data=c.data}function Ip(n,t,i,o,c,p){if(c.width===0||c.height===0)return t;if(c.width>n.width||c.height>n.height||i.x>n.width-c.width||i.y>n.height-c.height)throw new RangeError("out of range source coordinates for image copy");if(c.width>t.width||c.height>t.height||o.x>t.width-c.width||o.y>t.height-c.height)throw new RangeError("out of range destination coordinates for image copy");const m=n.data,y=t.data;if(m===y)throw new Error("srcData equals dstData, so image is already copied");for(let w=0;w<c.height;w++){const E=((i.y+w)*n.width+i.x)*p,L=((o.y+w)*t.width+o.x)*p;for(let V=0;V<c.width*p;V++)y[L+V]=m[E+V]}return t}class Zl{constructor(t,i){Pp(this,t,1,i)}resize(t){Hm(this,t,1)}clone(){return new Zl({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,i,o,c,p){Ip(t,i,o,c,p,1)}}class Ji{constructor(t,i){Pp(this,t,4,i)}resize(t){Hm(this,t,4)}replace(t,i){i?this.data.set(t):this.data=t instanceof Uint8ClampedArray?new Uint8Array(t.buffer):t}clone(){return new Ji({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,i,o,c,p){Ip(t,i,o,c,p,4)}}function Wm(n){const t={},i=n.resolution||256,o=n.clips?n.clips.length:1,c=n.image||new Ji({width:i,height:o});if(Math.log(i)/Math.LN2%1!=0)throw new Error(`width is not a power of 2 - ${i}`);const p=(m,y,w)=>{t[n.evaluationKey]=w;const E=n.expression.evaluate(t);c.data[m+y+0]=Math.floor(255*E.r/E.a),c.data[m+y+1]=Math.floor(255*E.g/E.a),c.data[m+y+2]=Math.floor(255*E.b/E.a),c.data[m+y+3]=Math.floor(255*E.a)};if(n.clips)for(let m=0,y=0;m<o;++m,y+=4*i)for(let w=0,E=0;w<i;w++,E+=4){const L=w/(i-1),{start:V,end:q}=n.clips[m];p(y,E,V*(1-L)+q*L)}else for(let m=0,y=0;m<i;m++,y+=4)p(0,y,m/(i-1));return c}st("AlphaImage",Zl),st("RGBAImage",Ji);const Mp="big-fb";class r2 extends qi{createBucket(t){return new Um(t)}constructor(t){super(t,t2),this.heatmapFbos=new Map,this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(t){t==="heatmap-color"&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=Wm({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbos.has(Mp)&&this.heatmapFbos.delete(Mp)}queryRadius(){return 0}queryIntersectsFeature(){return!1}hasOffscreenPass(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"}}let Zm;var i2={get paint(){return Zm=Zm||new Mr({"hillshade-illumination-direction":new ct(re.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-altitude":new ct(re.paint_hillshade["hillshade-illumination-altitude"]),"hillshade-illumination-anchor":new ct(re.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new ct(re.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new ct(re.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new ct(re.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new ct(re.paint_hillshade["hillshade-accent-color"]),"hillshade-method":new ct(re.paint_hillshade["hillshade-method"])})}};class n2 extends qi{constructor(t){super(t,i2),this.recalculate({zoom:0,zoomHistory:{}},void 0)}getIlluminationProperties(){let t=this.paint.get("hillshade-illumination-direction").values,i=this.paint.get("hillshade-illumination-altitude").values,o=this.paint.get("hillshade-highlight-color").values,c=this.paint.get("hillshade-shadow-color").values;const p=Math.max(t.length,i.length,o.length,c.length);t=t.concat(Array(p-t.length).fill(t.at(-1))),i=i.concat(Array(p-i.length).fill(i.at(-1))),o=o.concat(Array(p-o.length).fill(o.at(-1))),c=c.concat(Array(p-c.length).fill(c.at(-1)));const m=i.map(gr);return{directionRadians:t.map(gr),altitudeRadians:m,shadowColor:c,highlightColor:o}}hasOffscreenPass(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"}}const s2=cr([{name:"a_pos",components:2,type:"Int16"}],4),{members:o2}=s2;function Lp(n,t,i){const o=i.patternDependencies;let c=!1;for(const p of t){const m=p.paint.get(`${n}-pattern`);m.isConstant()||(c=!0);const y=m.constantOr(null);y&&(c=!0,o[y.to]=!0,o[y.from]=!0)}return c}function Rp(n,t,i,o,c){const p=c.patternDependencies;for(const m of t){const y=m.paint.get(`${n}-pattern`).value;if(y.kind!=="constant"){let w=y.evaluate({zoom:o-1},i,{},c.availableImages),E=y.evaluate({zoom:o},i,{},c.availableImages),L=y.evaluate({zoom:o+1},i,{},c.availableImages);w=w&&w.name?w.name:w,E=E&&E.name?E.name:E,L=L&&L.name?L.name:L,p[w]=!0,p[E]=!0,p[L]=!0,i.patterns[m.id]={min:w,mid:E,max:L}}}return i}function Km(n,t,i,o,c){let p;if(c===function(m,y,w,E){let L=0;for(let V=y,q=w-E;V<w;V+=E)L+=(m[q]-m[V])*(m[V+1]+m[q+1]),q=V;return L}(n,t,i,o)>0)for(let m=t;m<i;m+=o)p=Qm(m/o|0,n[m],n[m+1],p);else for(let m=i-o;m>=t;m-=o)p=Qm(m/o|0,n[m],n[m+1],p);return p&&Ea(p,p.next)&&(Xl(p),p=p.next),p}function Io(n,t){if(!n)return n;t||(t=n);let i,o=n;do if(i=!1,o.steiner||!Ea(o,o.next)&&Ir(o.prev,o,o.next)!==0)o=o.next;else{if(Xl(o),o=t=o.prev,o===o.next)break;i=!0}while(i||o!==t);return t}function Kl(n,t,i,o,c,p,m){if(!n)return;!m&&p&&function(w,E,L,V){let q=w;do q.z===0&&(q.z=zp(q.x,q.y,E,L,V)),q.prevZ=q.prev,q.nextZ=q.next,q=q.next;while(q!==w);q.prevZ.nextZ=null,q.prevZ=null,function(j){let W,X=1;do{let $,ae=j;j=null;let _e=null;for(W=0;ae;){W++;let ue=ae,U=0;for(let de=0;de<X&&(U++,ue=ue.nextZ,ue);de++);let Y=X;for(;U>0||Y>0&&ue;)U!==0&&(Y===0||!ue||ae.z<=ue.z)?($=ae,ae=ae.nextZ,U--):($=ue,ue=ue.nextZ,Y--),_e?_e.nextZ=$:j=$,$.prevZ=_e,_e=$;ae=ue}_e.nextZ=null,X*=2}while(W>1)}(q)}(n,o,c,p);let y=n;for(;n.prev!==n.next;){const w=n.prev,E=n.next;if(p?l2(n,o,c,p):a2(n))t.push(w.i,n.i,E.i),Xl(n),n=E.next,y=E.next;else if((n=E)===y){m?m===1?Kl(n=c2(Io(n),t),t,i,o,c,p,2):m===2&&u2(n,t,i,o,c,p):Kl(Io(n),t,i,o,c,p,1);break}}}function a2(n){const t=n.prev,i=n,o=n.next;if(Ir(t,i,o)>=0)return!1;const c=t.x,p=i.x,m=o.x,y=t.y,w=i.y,E=o.y,L=Math.min(c,p,m),V=Math.min(y,w,E),q=Math.max(c,p,m),j=Math.max(y,w,E);let W=o.next;for(;W!==t;){if(W.x>=L&&W.x<=q&&W.y>=V&&W.y<=j&&Gl(c,y,p,w,m,E,W.x,W.y)&&Ir(W.prev,W,W.next)>=0)return!1;W=W.next}return!0}function l2(n,t,i,o){const c=n.prev,p=n,m=n.next;if(Ir(c,p,m)>=0)return!1;const y=c.x,w=p.x,E=m.x,L=c.y,V=p.y,q=m.y,j=Math.min(y,w,E),W=Math.min(L,V,q),X=Math.max(y,w,E),$=Math.max(L,V,q),ae=zp(j,W,t,i,o),_e=zp(X,$,t,i,o);let ue=n.prevZ,U=n.nextZ;for(;ue&&ue.z>=ae&&U&&U.z<=_e;){if(ue.x>=j&&ue.x<=X&&ue.y>=W&&ue.y<=$&&ue!==c&&ue!==m&&Gl(y,L,w,V,E,q,ue.x,ue.y)&&Ir(ue.prev,ue,ue.next)>=0||(ue=ue.prevZ,U.x>=j&&U.x<=X&&U.y>=W&&U.y<=$&&U!==c&&U!==m&&Gl(y,L,w,V,E,q,U.x,U.y)&&Ir(U.prev,U,U.next)>=0))return!1;U=U.nextZ}for(;ue&&ue.z>=ae;){if(ue.x>=j&&ue.x<=X&&ue.y>=W&&ue.y<=$&&ue!==c&&ue!==m&&Gl(y,L,w,V,E,q,ue.x,ue.y)&&Ir(ue.prev,ue,ue.next)>=0)return!1;ue=ue.prevZ}for(;U&&U.z<=_e;){if(U.x>=j&&U.x<=X&&U.y>=W&&U.y<=$&&U!==c&&U!==m&&Gl(y,L,w,V,E,q,U.x,U.y)&&Ir(U.prev,U,U.next)>=0)return!1;U=U.nextZ}return!0}function c2(n,t){let i=n;do{const o=i.prev,c=i.next.next;!Ea(o,c)&&Jm(o,i,i.next,c)&&Jl(o,c)&&Jl(c,o)&&(t.push(o.i,i.i,c.i),Xl(i),Xl(i.next),i=n=c),i=i.next}while(i!==n);return Io(i)}function u2(n,t,i,o,c,p){let m=n;do{let y=m.next.next;for(;y!==m.prev;){if(m.i!==y.i&&m2(m,y)){let w=Xm(m,y);return m=Io(m,m.next),w=Io(w,w.next),Kl(m,t,i,o,c,p,0),void Kl(w,t,i,o,c,p,0)}y=y.next}m=m.next}while(m!==n)}function h2(n,t){let i=n.x-t.x;return i===0&&(i=n.y-t.y,i===0)&&(i=(n.next.y-n.y)/(n.next.x-n.x)-(t.next.y-t.y)/(t.next.x-t.x)),i}function p2(n,t){const i=function(c,p){let m=p;const y=c.x,w=c.y;let E,L=-1/0;if(Ea(c,m))return m;do{if(Ea(c,m.next))return m.next;if(w<=m.y&&w>=m.next.y&&m.next.y!==m.y){const X=m.x+(w-m.y)*(m.next.x-m.x)/(m.next.y-m.y);if(X<=y&&X>L&&(L=X,E=m.x<m.next.x?m:m.next,X===y))return E}m=m.next}while(m!==p);if(!E)return null;const V=E,q=E.x,j=E.y;let W=1/0;m=E;do{if(y>=m.x&&m.x>=q&&y!==m.x&&Gm(w<j?y:L,w,q,j,w<j?L:y,w,m.x,m.y)){const X=Math.abs(w-m.y)/(y-m.x);Jl(m,c)&&(X<W||X===W&&(m.x>E.x||m.x===E.x&&d2(E,m)))&&(E=m,W=X)}m=m.next}while(m!==V);return E}(n,t);if(!i)return t;const o=Xm(i,n);return Io(o,o.next),Io(i,i.next)}function d2(n,t){return Ir(n.prev,n,t.prev)<0&&Ir(t.next,n,n.next)<0}function zp(n,t,i,o,c){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-i)*c|0)|n<<8))|n<<4))|n<<2))|n<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-o)*c|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function f2(n){let t=n,i=n;do(t.x<i.x||t.x===i.x&&t.y<i.y)&&(i=t),t=t.next;while(t!==n);return i}function Gm(n,t,i,o,c,p,m,y){return(c-m)*(t-y)>=(n-m)*(p-y)&&(n-m)*(o-y)>=(i-m)*(t-y)&&(i-m)*(p-y)>=(c-m)*(o-y)}function Gl(n,t,i,o,c,p,m,y){return!(n===m&&t===y)&&Gm(n,t,i,o,c,p,m,y)}function m2(n,t){return n.next.i!==t.i&&n.prev.i!==t.i&&!function(i,o){let c=i;do{if(c.i!==i.i&&c.next.i!==i.i&&c.i!==o.i&&c.next.i!==o.i&&Jm(c,c.next,i,o))return!0;c=c.next}while(c!==i);return!1}(n,t)&&(Jl(n,t)&&Jl(t,n)&&function(i,o){let c=i,p=!1;const m=(i.x+o.x)/2,y=(i.y+o.y)/2;do c.y>y!=c.next.y>y&&c.next.y!==c.y&&m<(c.next.x-c.x)*(y-c.y)/(c.next.y-c.y)+c.x&&(p=!p),c=c.next;while(c!==i);return p}(n,t)&&(Ir(n.prev,n,t.prev)||Ir(n,t.prev,t))||Ea(n,t)&&Ir(n.prev,n,n.next)>0&&Ir(t.prev,t,t.next)>0)}function Ir(n,t,i){return(t.y-n.y)*(i.x-t.x)-(t.x-n.x)*(i.y-t.y)}function Ea(n,t){return n.x===t.x&&n.y===t.y}function Jm(n,t,i,o){const c=th(Ir(n,t,i)),p=th(Ir(n,t,o)),m=th(Ir(i,o,n)),y=th(Ir(i,o,t));return c!==p&&m!==y||!(c!==0||!eh(n,i,t))||!(p!==0||!eh(n,o,t))||!(m!==0||!eh(i,n,o))||!(y!==0||!eh(i,t,o))}function eh(n,t,i){return t.x<=Math.max(n.x,i.x)&&t.x>=Math.min(n.x,i.x)&&t.y<=Math.max(n.y,i.y)&&t.y>=Math.min(n.y,i.y)}function th(n){return n>0?1:n<0?-1:0}function Jl(n,t){return Ir(n.prev,n,n.next)<0?Ir(n,t,n.next)>=0&&Ir(n,n.prev,t)>=0:Ir(n,t,n.prev)<0||Ir(n,n.next,t)<0}function Xm(n,t){const i=Dp(n.i,n.x,n.y),o=Dp(t.i,t.x,t.y),c=n.next,p=t.prev;return n.next=t,t.prev=n,i.next=c,c.prev=i,o.next=i,i.prev=o,p.next=o,o.prev=p,o}function Qm(n,t,i,o){const c=Dp(n,t,i);return o?(c.next=o.next,c.prev=o,o.next.prev=c,o.next=c):(c.prev=c,c.next=c),c}function Xl(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function Dp(n,t,i){return{i:n,x:t,y:i,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}class Pa{constructor(t,i){if(i>t)throw new Error("Min granularity must not be greater than base granularity.");this._baseZoomGranularity=t,this._minGranularity=i}getGranularityForZoomLevel(t){return Math.max(Math.floor(this._baseZoomGranularity/(1<<t)),this._minGranularity,1)}}class rh{constructor(t){this.fill=t.fill,this.line=t.line,this.tile=t.tile,this.stencil=t.stencil,this.circle=t.circle}}rh.noSubdivision=new rh({fill:new Pa(0,0),line:new Pa(0,0),tile:new Pa(0,0),stencil:new Pa(0,0),circle:1}),st("SubdivisionGranularityExpression",Pa),st("SubdivisionGranularitySetting",rh);const Ia=-32768,Ql=32767;class g2{constructor(t,i){this._vertexBuffer=[],this._vertexDictionary=new Map,this._used=!1,this._granularity=t,this._granularityCellSize=Ft/t,this._canonical=i}_getKey(t,i){return(t+=32768)<<16|(i+=32768)<<0}_vertexToIndex(t,i){if(t<-32768||i<-32768||t>32767||i>32767)throw new Error("Vertex coordinates are out of signed 16 bit integer range.");const o=0|Math.round(t),c=0|Math.round(i),p=this._getKey(o,c);if(this._vertexDictionary.has(p))return this._vertexDictionary.get(p);const m=this._vertexBuffer.length/2;return this._vertexDictionary.set(p,m),this._vertexBuffer.push(o,c),m}_subdivideTrianglesScanline(t){if(this._granularity<2)return function(c,p){const m=[];for(let y=0;y<p.length;y+=3){const w=p[y],E=p[y+1],L=p[y+2],V=c[2*w],q=c[2*w+1];(c[2*E]-V)*(c[2*L+1]-q)-(c[2*E+1]-q)*(c[2*L]-V)>0?(m.push(w),m.push(L),m.push(E)):(m.push(w),m.push(E),m.push(L))}return m}(this._vertexBuffer,t);const i=[],o=t.length;for(let c=0;c<o;c+=3){const p=[t[c+0],t[c+1],t[c+2]],m=[this._vertexBuffer[2*t[c+0]+0],this._vertexBuffer[2*t[c+0]+1],this._vertexBuffer[2*t[c+1]+0],this._vertexBuffer[2*t[c+1]+1],this._vertexBuffer[2*t[c+2]+0],this._vertexBuffer[2*t[c+2]+1]];let y=1/0,w=1/0,E=-1/0,L=-1/0;for(let X=0;X<3;X++){const $=m[2*X],ae=m[2*X+1];y=Math.min(y,$),E=Math.max(E,$),w=Math.min(w,ae),L=Math.max(L,ae)}if(y===E||w===L)continue;const V=Math.floor(y/this._granularityCellSize),q=Math.ceil(E/this._granularityCellSize),j=Math.floor(w/this._granularityCellSize),W=Math.ceil(L/this._granularityCellSize);if(V!==q||j!==W)for(let X=j;X<W;X++){const $=this._scanlineGenerateVertexRingForCellRow(X,m,p);y2(this._vertexBuffer,$,i)}else i.push(...p)}return i}_scanlineGenerateVertexRingForCellRow(t,i,o){const c=t*this._granularityCellSize,p=c+this._granularityCellSize,m=[];for(let y=0;y<3;y++){const w=i[2*y],E=i[2*y+1],L=i[2*(y+1)%6],V=i[(2*(y+1)+1)%6],q=i[2*(y+2)%6],j=i[(2*(y+2)+1)%6],W=L-w,X=V-E,$=W===0,ae=X===0,_e=(c-E)/X,ue=(p-E)/X,U=Math.min(_e,ue),Y=Math.max(_e,ue);if(!ae&&(U>=1||Y<=0)||ae&&(E<c||E>p)){V>=c&&V<=p&&m.push(o[(y+1)%3]);continue}!ae&&U>0&&m.push(this._vertexToIndex(w+W*U,E+X*U));const de=w+W*Math.max(U,0),Ce=w+W*Math.min(Y,1);$||this._generateIntraEdgeVertices(m,w,E,L,V,de,Ce),!ae&&Y<1&&m.push(this._vertexToIndex(w+W*Y,E+X*Y)),(ae||V>=c&&V<=p)&&m.push(o[(y+1)%3]),!ae&&(V<=c||V>=p)&&this._generateInterEdgeVertices(m,w,E,L,V,q,j,Ce,c,p)}return m}_generateIntraEdgeVertices(t,i,o,c,p,m,y){const w=c-i,E=p-o,L=E===0,V=L?Math.min(i,c):Math.min(m,y),q=L?Math.max(i,c):Math.max(m,y),j=Math.floor(V/this._granularityCellSize)+1,W=Math.ceil(q/this._granularityCellSize)-1;if(L?i<c:m<y)for(let X=j;X<=W;X++){const $=X*this._granularityCellSize;t.push(this._vertexToIndex($,o+E*($-i)/w))}else for(let X=W;X>=j;X--){const $=X*this._granularityCellSize;t.push(this._vertexToIndex($,o+E*($-i)/w))}}_generateInterEdgeVertices(t,i,o,c,p,m,y,w,E,L){const V=p-o,q=m-c,j=y-p,W=(E-p)/j,X=(L-p)/j,$=Math.min(W,X),ae=Math.max(W,X),_e=c+q*$;let ue=Math.floor(Math.min(_e,w)/this._granularityCellSize)+1,U=Math.ceil(Math.max(_e,w)/this._granularityCellSize)-1,Y=w<_e;const de=j===0;if(de&&(y===E||y===L))return;if(de||$>=1||ae<=0){const je=o-y,Me=m+(i-m)*Math.min((E-y)/je,(L-y)/je);ue=Math.floor(Math.min(Me,w)/this._granularityCellSize)+1,U=Math.ceil(Math.max(Me,w)/this._granularityCellSize)-1,Y=w<Me}const Ce=V>0?L:E;if(Y)for(let je=ue;je<=U;je++)t.push(this._vertexToIndex(je*this._granularityCellSize,Ce));else for(let je=U;je>=ue;je--)t.push(this._vertexToIndex(je*this._granularityCellSize,Ce))}_generateOutline(t){const i=[];for(const o of t){const c=Mo(o,this._granularity,!0),p=this._pointArrayToIndices(c),m=[];for(let y=1;y<p.length;y++)m.push(p[y-1]),m.push(p[y]);i.push(m)}return i}_handlePoles(t){let i=!1,o=!1;this._canonical&&(this._canonical.y===0&&(i=!0),this._canonical.y===(1<<this._canonical.z)-1&&(o=!0)),(i||o)&&this._fillPoles(t,i,o)}_ensureNoPoleVertices(){const t=this._vertexBuffer;for(let i=0;i<t.length;i+=2){const o=t[i+1];o===Ia&&(t[i+1]=-32767),o===Ql&&(t[i+1]=32766)}}_generatePoleQuad(t,i,o,c,p,m){c>p!=(m===Ia)?(t.push(i),t.push(o),t.push(this._vertexToIndex(c,m)),t.push(o),t.push(this._vertexToIndex(p,m)),t.push(this._vertexToIndex(c,m))):(t.push(o),t.push(i),t.push(this._vertexToIndex(c,m)),t.push(this._vertexToIndex(p,m)),t.push(o),t.push(this._vertexToIndex(c,m)))}_fillPoles(t,i,o){const c=this._vertexBuffer,p=Ft,m=t.length;for(let y=2;y<m;y+=3){const w=t[y-2],E=t[y-1],L=t[y],V=c[2*w],q=c[2*w+1],j=c[2*E],W=c[2*E+1],X=c[2*L],$=c[2*L+1];i&&(q===0&&W===0&&this._generatePoleQuad(t,w,E,V,j,Ia),W===0&&$===0&&this._generatePoleQuad(t,E,L,j,X,Ia),$===0&&q===0&&this._generatePoleQuad(t,L,w,X,V,Ia)),o&&(q===p&&W===p&&this._generatePoleQuad(t,w,E,V,j,Ql),W===p&&$===p&&this._generatePoleQuad(t,E,L,j,X,Ql),$===p&&q===p&&this._generatePoleQuad(t,L,w,X,V,Ql))}}_initializeVertices(t){for(let i=0;i<t.length;i+=2)this._vertexToIndex(t[i],t[i+1])}subdividePolygonInternal(t,i){if(this._used)throw new Error("Subdivision: multiple use not allowed.");this._used=!0;const{flattened:o,holeIndices:c}=function(y){const w=[],E=[];for(const L of y)if(L.length!==0){L!==y[0]&&w.push(E.length/2);for(let V=0;V<L.length;V++)E.push(L[V].x),E.push(L[V].y)}return{flattened:E,holeIndices:w}}(t);let p;this._initializeVertices(o);try{const y=function(E,L,V=2){const q=L&&L.length,j=q?L[0]*V:E.length;let W=Km(E,0,j,V,!0);const X=[];if(!W||W.next===W.prev)return X;let $,ae,_e;if(q&&(W=function(ue,U,Y,de){const Ce=[];for(let je=0,Me=U.length;je<Me;je++){const Ve=Km(ue,U[je]*de,je<Me-1?U[je+1]*de:ue.length,de,!1);Ve===Ve.next&&(Ve.steiner=!0),Ce.push(f2(Ve))}Ce.sort(h2);for(let je=0;je<Ce.length;je++)Y=p2(Ce[je],Y);return Y}(E,L,W,V)),E.length>80*V){$=1/0,ae=1/0;let ue=-1/0,U=-1/0;for(let Y=V;Y<j;Y+=V){const de=E[Y],Ce=E[Y+1];de<$&&($=de),Ce<ae&&(ae=Ce),de>ue&&(ue=de),Ce>U&&(U=Ce)}_e=Math.max(ue-$,U-ae),_e=_e!==0?32767/_e:0}return Kl(W,X,V,$,ae,_e,0),X}(o,c),w=this._convertIndices(o,y);p=this._subdivideTrianglesScanline(w)}catch(y){console.error(y)}let m=[];return i&&(m=this._generateOutline(t)),this._ensureNoPoleVertices(),this._handlePoles(p),{verticesFlattened:this._vertexBuffer,indicesTriangles:p,indicesLineList:m}}_convertIndices(t,i){const o=[];for(let c=0;c<i.length;c++)o.push(this._vertexToIndex(t[2*i[c]],t[2*i[c]+1]));return o}_pointArrayToIndices(t){const i=[];for(let o=0;o<t.length;o++){const c=t[o];i.push(this._vertexToIndex(c.x,c.y))}return i}}function Ym(n,t,i,o=!0){return new g2(i,t).subdividePolygonInternal(n,o)}function Mo(n,t,i=!1){if(!n||n.length<1)return[];if(n.length<2)return[];const o=n[0],c=n[n.length-1],p=i&&(o.x!==c.x||o.y!==c.y);if(t<2)return p?[...n,n[0]]:[...n];const m=Math.floor(Ft/t),y=[];y.push(new T(n[0].x,n[0].y));const w=n.length,E=p?w:w-1;for(let L=0;L<E;L++){const V=n[L],q=L<w-1?n[L+1]:n[0],j=V.x,W=V.y,X=q.x,$=q.y,ae=j!==X,_e=W!==$;if(!ae&&!_e)continue;const ue=X-j,U=$-W,Y=Math.abs(ue),de=Math.abs(U);let Ce=j,je=W;for(;;){const Ve=ue>0?(Math.floor(Ce/m)+1)*m:(Math.ceil(Ce/m)-1)*m,Ke=U>0?(Math.floor(je/m)+1)*m:(Math.ceil(je/m)-1)*m,He=Math.abs(Ce-Ve),Ge=Math.abs(je-Ke),Fe=Math.abs(Ce-X),ot=Math.abs(je-$),pt=ae?He/Y:Number.POSITIVE_INFINITY,ut=_e?Ge/de:Number.POSITIVE_INFINITY;if((Fe<=He||!ae)&&(ot<=Ge||!_e))break;if(pt<ut&&ae||!_e){Ce=Ve,je+=U*pt;const lt=new T(Ce,Math.round(je));y[y.length-1].x===lt.x&&y[y.length-1].y===lt.y||y.push(lt)}else{Ce+=ue*ut,je=Ke;const lt=new T(Math.round(Ce),je);y[y.length-1].x===lt.x&&y[y.length-1].y===lt.y||y.push(lt)}}const Me=new T(X,$);y[y.length-1].x===Me.x&&y[y.length-1].y===Me.y||y.push(Me)}return y}function y2(n,t,i){if(t.length===0)throw new Error("Subdivision vertex ring is empty.");let o=0,c=n[2*t[0]];for(let w=1;w<t.length;w++){const E=n[2*t[w]];E<c&&(c=E,o=w)}const p=t.length;let m=o,y=(m+1)%p;for(;;){const w=m-1>=0?m-1:p-1,E=(y+1)%p,L=n[2*t[w]],V=n[2*t[E]],q=n[2*t[m]],j=n[2*t[m]+1],W=n[2*t[y]+1];let X=!1;if(L<V)X=!0;else if(L>V)X=!1;else{const $=W-j,ae=-(n[2*t[y]]-q),_e=j<W?1:-1;((L-q)*$+(n[2*t[w]+1]-j)*ae)*_e>((V-q)*$+(n[2*t[E]+1]-j)*ae)*_e&&(X=!0)}if(X){const $=t[w],ae=t[m],_e=t[y];$!==ae&&$!==_e&&ae!==_e&&i.push(_e,ae,$),m--,m<0&&(m=p-1)}else{const $=t[E],ae=t[m],_e=t[y];$!==ae&&$!==_e&&ae!==_e&&i.push(_e,ae,$),y++,y>=p&&(y=0)}if(w===E)break}}function $m(n,t,i,o,c,p,m,y,w){const E=c.length/2,L=m&&y&&w;if(E<jt.MAX_VERTEX_ARRAY_LENGTH){const V=t.prepareSegment(E,i,o),q=V.vertexLength;for(let X=0;X<p.length;X+=3)o.emplaceBack(q+p[X],q+p[X+1],q+p[X+2]);let j,W;V.vertexLength+=E,V.primitiveLength+=p.length/3,L&&(W=m.prepareSegment(E,i,y),j=W.vertexLength,W.vertexLength+=E);for(let X=0;X<c.length;X+=2)n(c[X],c[X+1]);if(L)for(let X=0;X<w.length;X++){const $=w[X];for(let ae=1;ae<$.length;ae+=2)y.emplaceBack(j+$[ae-1],j+$[ae]);W.primitiveLength+=$.length/2}}else(function(V,q,j,W,X,$){const ae=[];for(let de=0;de<W.length/2;de++)ae.push(-1);const _e={count:0};let ue=0,U=V.getOrCreateLatestSegment(q,j),Y=U.vertexLength;for(let de=2;de<X.length;de+=3){const Ce=X[de-2],je=X[de-1],Me=X[de];let Ve=ae[Ce]<ue,Ke=ae[je]<ue,He=ae[Me]<ue;U.vertexLength+((Ve?1:0)+(Ke?1:0)+(He?1:0))>jt.MAX_VERTEX_ARRAY_LENGTH&&(U=V.createNewSegment(q,j),ue=_e.count,Ve=!0,Ke=!0,He=!0,Y=0);const Ge=Yl(ae,W,$,_e,Ce,Ve,U),Fe=Yl(ae,W,$,_e,je,Ke,U),ot=Yl(ae,W,$,_e,Me,He,U);j.emplaceBack(Y+Ge-ue,Y+Fe-ue,Y+ot-ue),U.primitiveLength++}})(t,i,o,c,p,n),L&&function(V,q,j,W,X,$){const ae=[];for(let de=0;de<W.length/2;de++)ae.push(-1);const _e={count:0};let ue=0,U=V.getOrCreateLatestSegment(q,j),Y=U.vertexLength;for(let de=0;de<X.length;de++){const Ce=X[de];for(let je=1;je<X[de].length;je+=2){const Me=Ce[je-1],Ve=Ce[je];let Ke=ae[Me]<ue,He=ae[Ve]<ue;U.vertexLength+((Ke?1:0)+(He?1:0))>jt.MAX_VERTEX_ARRAY_LENGTH&&(U=V.createNewSegment(q,j),ue=_e.count,Ke=!0,He=!0,Y=0);const Ge=Yl(ae,W,$,_e,Me,Ke,U),Fe=Yl(ae,W,$,_e,Ve,He,U);j.emplaceBack(Y+Ge-ue,Y+Fe-ue),U.primitiveLength++}}}(m,i,y,c,w,n),t.forceNewSegmentOnNextPrepare(),m==null||m.forceNewSegmentOnNextPrepare()}function Yl(n,t,i,o,c,p,m){if(p){const y=o.count;return i(t[2*c],t[2*c+1]),n[c]=o.count,o.count++,m.vertexLength++,y}return n[c]}class Bp{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Qe,this.indexArray=new Ut,this.indexArray2=new Or,this.programConfigurations=new Dn(t.layers,t.zoom),this.segments=new jt,this.segments2=new jt,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){this.hasPattern=Lp("fill",this.layers,i);const c=this.layers[0].layout.get("fill-sort-key"),p=!c.isConstant(),m=[];for(const{feature:y,id:w,index:E,sourceLayerIndex:L}of t){const V=this.layers[0]._featureFilter.needGeometry,q=Eo(y,V);if(!this.layers[0]._featureFilter.filter(new ir(this.zoom),q,o))continue;const j=p?c.evaluate(q,{},o,i.availableImages):void 0,W={id:w,properties:y.properties,type:y.type,sourceLayerIndex:L,index:E,geometry:V?q.geometry:Co(y),patterns:{},sortKey:j};m.push(W)}p&&m.sort((y,w)=>y.sortKey-w.sortKey);for(const y of m){const{geometry:w,index:E,sourceLayerIndex:L}=y;if(this.hasPattern){const V=Rp("fill",this.layers,y,this.zoom,i);this.patternFeatures.push(V)}else this.addFeature(y,w,E,o,{},i.subdivisionGranularity);i.featureIndex.insert(t[E].feature,w,E,L,this.index)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}addFeatures(t,i,o){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,i,o,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,o2),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),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(t,i,o,c,p,m){for(const y of Yo(i,500)){const w=Ym(y,c,m.fill.getGranularityForZoomLevel(c.z)),E=this.layoutVertexArray;$m((L,V)=>{E.emplaceBack(L,V)},this.segments,this.layoutVertexArray,this.indexArray,w.verticesFlattened,w.indicesTriangles,this.segments2,this.indexArray2,w.indicesLineList)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,p,c)}}let eg,tg;st("FillBucket",Bp,{omit:["layers","patternFeatures"]});var _2={get paint(){return tg=tg||new Mr({"fill-antialias":new ct(re.paint_fill["fill-antialias"]),"fill-opacity":new ft(re.paint_fill["fill-opacity"]),"fill-color":new ft(re.paint_fill["fill-color"]),"fill-outline-color":new ft(re.paint_fill["fill-outline-color"]),"fill-translate":new ct(re.paint_fill["fill-translate"]),"fill-translate-anchor":new ct(re.paint_fill["fill-translate-anchor"]),"fill-pattern":new wo(re.paint_fill["fill-pattern"])})},get layout(){return eg=eg||new Mr({"fill-sort-key":new ft(re.layout_fill["fill-sort-key"])})}};class x2 extends qi{constructor(t){super(t,_2)}recalculate(t,i){super.recalculate(t,i);const o=this.paint._values["fill-outline-color"];o.value.kind==="constant"&&o.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(t){return new Bp(t)}queryRadius(){return Yu(this.paint.get("fill-translate"))}queryIntersectsFeature({queryGeometry:t,geometry:i,transform:o,pixelsToTileUnits:c}){return Bm($u(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),-o.bearingInRadians,c),i)}isTileClipped(){return!0}}const b2=cr([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4),v2=cr([{name:"a_centroid",components:2,type:"Int16"}],4),{members:w2}=b2;var Vp,rg,Op,ig,Fp,ng,sg,ih={};function og(){if(rg)return Vp;rg=1;var n=H();function t(c,p,m,y,w){this.properties={},this.extent=m,this.type=0,this._pbf=c,this._geometry=-1,this._keys=y,this._values=w,c.readFields(i,this,p)}function i(c,p,m){c==1?p.id=m.readVarint():c==2?function(y,w){for(var E=y.readVarint()+y.pos;y.pos<E;){var L=w._keys[y.readVarint()],V=w._values[y.readVarint()];w.properties[L]=V}}(m,p):c==3?p.type=m.readVarint():c==4&&(p._geometry=m.pos)}function o(c){for(var p,m,y=0,w=0,E=c.length,L=E-1;w<E;L=w++)y+=((m=c[L]).x-(p=c[w]).x)*(p.y+m.y);return y}return Vp=t,t.types=["Unknown","Point","LineString","Polygon"],t.prototype.loadGeometry=function(){var c=this._pbf;c.pos=this._geometry;for(var p,m=c.readVarint()+c.pos,y=1,w=0,E=0,L=0,V=[];c.pos<m;){if(w<=0){var q=c.readVarint();y=7&q,w=q>>3}if(w--,y===1||y===2)E+=c.readSVarint(),L+=c.readSVarint(),y===1&&(p&&V.push(p),p=[]),p.push(new n(E,L));else{if(y!==7)throw new Error("unknown command "+y);p&&p.push(p[0].clone())}}return p&&V.push(p),V},t.prototype.bbox=function(){var c=this._pbf;c.pos=this._geometry;for(var p=c.readVarint()+c.pos,m=1,y=0,w=0,E=0,L=1/0,V=-1/0,q=1/0,j=-1/0;c.pos<p;){if(y<=0){var W=c.readVarint();m=7&W,y=W>>3}if(y--,m===1||m===2)(w+=c.readSVarint())<L&&(L=w),w>V&&(V=w),(E+=c.readSVarint())<q&&(q=E),E>j&&(j=E);else if(m!==7)throw new Error("unknown command "+m)}return[L,q,V,j]},t.prototype.toGeoJSON=function(c,p,m){var y,w,E=this.extent*Math.pow(2,m),L=this.extent*c,V=this.extent*p,q=this.loadGeometry(),j=t.types[this.type];function W(ae){for(var _e=0;_e<ae.length;_e++){var ue=ae[_e];ae[_e]=[360*(ue.x+L)/E-180,360/Math.PI*Math.atan(Math.exp((180-360*(ue.y+V)/E)*Math.PI/180))-90]}}switch(this.type){case 1:var X=[];for(y=0;y<q.length;y++)X[y]=q[y][0];W(q=X);break;case 2:for(y=0;y<q.length;y++)W(q[y]);break;case 3:for(q=function(ae){var _e=ae.length;if(_e<=1)return[ae];for(var ue,U,Y=[],de=0;de<_e;de++){var Ce=o(ae[de]);Ce!==0&&(U===void 0&&(U=Ce<0),U===Ce<0?(ue&&Y.push(ue),ue=[ae[de]]):ue.push(ae[de]))}return ue&&Y.push(ue),Y}(q),y=0;y<q.length;y++)for(w=0;w<q[y].length;w++)W(q[y][w])}q.length===1?q=q[0]:j="Multi"+j;var $={type:"Feature",geometry:{type:j,coordinates:q},properties:this.properties};return"id"in this&&($.id=this.id),$},Vp}function ag(){if(ig)return Op;ig=1;var n=og();function t(o,c){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=o,this._keys=[],this._values=[],this._features=[],o.readFields(i,this,c),this.length=this._features.length}function i(o,c,p){o===15?c.version=p.readVarint():o===1?c.name=p.readString():o===5?c.extent=p.readVarint():o===2?c._features.push(p.pos):o===3?c._keys.push(p.readString()):o===4&&c._values.push(function(m){for(var y=null,w=m.readVarint()+m.pos;m.pos<w;){var E=m.readVarint()>>3;y=E===1?m.readString():E===2?m.readFloat():E===3?m.readDouble():E===4?m.readVarint64():E===5?m.readVarint():E===6?m.readSVarint():E===7?m.readBoolean():null}return y}(p))}return Op=t,t.prototype.feature=function(o){if(o<0||o>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[o];var c=this._pbf.readVarint()+this._pbf.pos;return new n(this._pbf,c,this.extent,this._keys,this._values)},Op}function lg(){return sg||(sg=1,ih.VectorTile=function(){if(ng)return Fp;ng=1;var n=ag();function t(i,o,c){if(i===3){var p=new n(c,c.readVarint()+c.pos);p.length&&(o[p.name]=p)}}return Fp=function(i,o){this.layers=i.readFields(t,{},o)},Fp}(),ih.VectorTileFeature=og(),ih.VectorTileLayer=ag()),ih}var $l=B(lg());const S2=$l.VectorTileFeature.types,Np=Math.pow(2,13);function ec(n,t,i,o,c,p,m,y){n.emplaceBack(t,i,2*Math.floor(o*Np)+m,c*Np*2,p*Np*2,Math.round(y))}class qp{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new We,this.centroidVertexArray=new ze,this.indexArray=new Ut,this.programConfigurations=new Dn(t.layers,t.zoom),this.segments=new jt,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){this.features=[],this.hasPattern=Lp("fill-extrusion",this.layers,i);for(const{feature:c,id:p,index:m,sourceLayerIndex:y}of t){const w=this.layers[0]._featureFilter.needGeometry,E=Eo(c,w);if(!this.layers[0]._featureFilter.filter(new ir(this.zoom),E,o))continue;const L={id:p,sourceLayerIndex:y,index:m,geometry:w?E.geometry:Co(c),properties:c.properties,type:c.type,patterns:{}};this.hasPattern?this.features.push(Rp("fill-extrusion",this.layers,L,this.zoom,i)):this.addFeature(L,L.geometry,m,o,{},i.subdivisionGranularity),i.featureIndex.insert(c,L.geometry,m,y,this.index,!0)}}addFeatures(t,i,o){for(const c of this.features){const{geometry:p}=c;this.addFeature(c,p,c.index,i,o,t.subdivisionGranularity)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,w2),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,v2.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(t,i,o,c,p,m){for(const y of Yo(i,500)){const w={x:0,y:0,sampleCount:0},E=this.layoutVertexArray.length;this.processPolygon(w,c,t,y,m);const L=this.layoutVertexArray.length-E,V=Math.floor(w.x/w.sampleCount),q=Math.floor(w.y/w.sampleCount);for(let j=0;j<L;j++)this.centroidVertexArray.emplaceBack(V,q)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,p,c)}processPolygon(t,i,o,c,p){if(c.length<1||cg(c[0]))return;for(const V of c)V.length!==0&&A2(t,V);const m={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},y=p.fill.getGranularityForZoomLevel(i.z),w=S2[o.type]==="Polygon";for(const V of c){if(V.length===0||cg(V))continue;const q=Mo(V,y,w);this._generateSideFaces(q,m)}if(!w)return;const E=Ym(c,i,y,!1),L=this.layoutVertexArray;$m((V,q)=>{ec(L,V,q,0,0,1,1,0)},this.segments,this.layoutVertexArray,this.indexArray,E.verticesFlattened,E.indicesTriangles)}_generateSideFaces(t,i){let o=0;for(let c=1;c<t.length;c++){const p=t[c],m=t[c-1];if(k2(p,m))continue;i.segment.vertexLength+4>jt.MAX_VERTEX_ARRAY_LENGTH&&(i.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const y=p.sub(m)._perp()._unit(),w=m.dist(p);o+w>32768&&(o=0),ec(this.layoutVertexArray,p.x,p.y,y.x,y.y,0,0,o),ec(this.layoutVertexArray,p.x,p.y,y.x,y.y,0,1,o),o+=w,ec(this.layoutVertexArray,m.x,m.y,y.x,y.y,0,0,o),ec(this.layoutVertexArray,m.x,m.y,y.x,y.y,0,1,o);const E=i.segment.vertexLength;this.indexArray.emplaceBack(E,E+2,E+1),this.indexArray.emplaceBack(E+1,E+2,E+3),i.segment.vertexLength+=4,i.segment.primitiveLength+=2}}}function A2(n,t){for(let i=0;i<t.length;i++){const o=t[i];i===t.length-1&&t[0].x===o.x&&t[0].y===o.y||(n.x+=o.x,n.y+=o.y,n.sampleCount++)}}function k2(n,t){return n.x===t.x&&(n.x<0||n.x>Ft)||n.y===t.y&&(n.y<0||n.y>Ft)}function cg(n){return n.every(t=>t.x<0)||n.every(t=>t.x>Ft)||n.every(t=>t.y<0)||n.every(t=>t.y>Ft)}let ug;st("FillExtrusionBucket",qp,{omit:["layers","features"]});var T2={get paint(){return ug=ug||new Mr({"fill-extrusion-opacity":new ct(re["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new ft(re["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new ct(re["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new ct(re["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new wo(re["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new ft(re["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new ft(re["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new ct(re["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class C2 extends qi{constructor(t){super(t,T2)}createBucket(t){return new qp(t)}queryRadius(){return Yu(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature({queryGeometry:t,feature:i,featureState:o,geometry:c,transform:p,pixelsToTileUnits:m,pixelPosMatrix:y}){const w=$u(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),-p.bearingInRadians,m),E=this.paint.get("fill-extrusion-height").evaluate(i,o),L=this.paint.get("fill-extrusion-base").evaluate(i,o),V=function(j,W,X){const $=[];for(const ae of j){const _e=[ae.x,ae.y,0,1];It(_e,_e,W),$.push(new T(_e[0]/_e[3],_e[1]/_e[3]))}return $}(w,y),q=function(j,W,X,$){const ae=[],_e=[],ue=$[8]*W,U=$[9]*W,Y=$[10]*W,de=$[11]*W,Ce=$[8]*X,je=$[9]*X,Me=$[10]*X,Ve=$[11]*X;for(const Ke of j){const He=[],Ge=[];for(const Fe of Ke){const ot=Fe.x,pt=Fe.y,ut=$[0]*ot+$[4]*pt+$[12],lt=$[1]*ot+$[5]*pt+$[13],Rt=$[2]*ot+$[6]*pt+$[14],wr=$[3]*ot+$[7]*pt+$[15],Nr=Rt+Y,li=wr+de,Qi=ut+Ce,Li=lt+je,ei=Rt+Me,dr=wr+Ve,Kr=new T((ut+ue)/li,(lt+U)/li);Kr.z=Nr/li,He.push(Kr);const ti=new T(Qi/dr,Li/dr);ti.z=ei/dr,Ge.push(ti)}ae.push(He),_e.push(Ge)}return[ae,_e]}(c,L,E,y);return function(j,W,X){let $=1/0;Bm(X,W)&&($=hg(X,W[0]));for(let ae=0;ae<W.length;ae++){const _e=W[ae],ue=j[ae];for(let U=0;U<_e.length-1;U++){const Y=_e[U],de=[Y,_e[U+1],ue[U+1],ue[U],Y];Dm(X,de)&&($=Math.min($,hg(X,de)))}}return $!==1/0&&$}(q[0],q[1],V)}}function tc(n,t){return n.x*t.x+n.y*t.y}function hg(n,t){if(n.length===1){let i=0;const o=t[i++];let c;for(;!c||o.equals(c);)if(c=t[i++],!c)return 1/0;for(;i<t.length;i++){const p=t[i],m=n[0],y=c.sub(o),w=p.sub(o),E=m.sub(o),L=tc(y,y),V=tc(y,w),q=tc(w,w),j=tc(E,y),W=tc(E,w),X=L*q-V*V,$=(q*j-V*W)/X,ae=(L*W-V*j)/X,_e=o.z*(1-$-ae)+c.z*$+p.z*ae;if(isFinite(_e))return _e}return 1/0}{let i=1/0;for(const o of t)i=Math.min(i,o.z);return i}}const E2=cr([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4),{members:P2}=E2,I2=cr([{name:"a_uv_x",components:1,type:"Float32"},{name:"a_split_index",components:1,type:"Float32"}]),{members:M2}=I2,L2=$l.VectorTileFeature.types,R2=Math.cos(Math.PI/180*37.5),pg=Math.pow(2,14)/.5;class Up{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(i=>i.id),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(i=>{this.gradients[i.id]={}}),this.layoutVertexArray=new at,this.layoutVertexArray2=new Et,this.indexArray=new Ut,this.programConfigurations=new Dn(t.layers,t.zoom),this.segments=new jt,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(t,i,o){this.hasPattern=Lp("line",this.layers,i);const c=this.layers[0].layout.get("line-sort-key"),p=!c.isConstant(),m=[];for(const{feature:y,id:w,index:E,sourceLayerIndex:L}of t){const V=this.layers[0]._featureFilter.needGeometry,q=Eo(y,V);if(!this.layers[0]._featureFilter.filter(new ir(this.zoom),q,o))continue;const j=p?c.evaluate(q,{},o):void 0,W={id:w,properties:y.properties,type:y.type,sourceLayerIndex:L,index:E,geometry:V?q.geometry:Co(y),patterns:{},sortKey:j};m.push(W)}p&&m.sort((y,w)=>y.sortKey-w.sortKey);for(const y of m){const{geometry:w,index:E,sourceLayerIndex:L}=y;if(this.hasPattern){const V=Rp("line",this.layers,y,this.zoom,i);this.patternFeatures.push(V)}else this.addFeature(y,w,E,o,{},i.subdivisionGranularity);i.featureIndex.insert(t[E].feature,w,E,L,this.index)}}update(t,i,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,i,this.stateDependentLayers,o)}addFeatures(t,i,o){for(const c of this.patternFeatures)this.addFeature(c,c.geometry,c.index,i,o,t.subdivisionGranularity)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,M2)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,P2),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_end"))return{start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,i,o,c,p,m){const y=this.layers[0].layout,w=y.get("line-join").evaluate(t,{}),E=y.get("line-cap"),L=y.get("line-miter-limit"),V=y.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const q of i)this.addLine(q,t,w,E,L,V,c,m);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,o,p,c)}addLine(t,i,o,c,p,m,y,w){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,t=Mo(t,y?w.line.getGranularityForZoomLevel(y.z):1),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ue=0;ue<t.length-1;ue++)this.totalDistance+=t[ue].dist(t[ue+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}const E=L2[i.type]==="Polygon";let L=t.length;for(;L>=2&&t[L-1].equals(t[L-2]);)L--;let V=0;for(;V<L-1&&t[V].equals(t[V+1]);)V++;if(L<(E?3:2))return;o==="bevel"&&(p=1.05);const q=this.overscaling<=16?15*Ft/(512*this.overscaling):0,j=this.segments.prepareSegment(10*L,this.layoutVertexArray,this.indexArray);let W,X,$,ae,_e;this.e1=this.e2=-1,E&&(W=t[L-2],_e=t[V].sub(W)._unit()._perp());for(let ue=V;ue<L;ue++){if($=ue===L-1?E?t[V+1]:void 0:t[ue+1],$&&t[ue].equals($))continue;_e&&(ae=_e),W&&(X=W),W=t[ue],_e=$?$.sub(W)._unit()._perp():ae,ae=ae||_e;let U=ae.add(_e);U.x===0&&U.y===0||U._unit();const Y=ae.x*_e.x+ae.y*_e.y,de=U.x*_e.x+U.y*_e.y,Ce=de!==0?1/de:1/0,je=2*Math.sqrt(2-2*de),Me=de<R2&&X&&$,Ve=ae.x*_e.y-ae.y*_e.x>0;if(Me&&ue>V){const Ge=W.dist(X);if(Ge>2*q){const Fe=W.sub(W.sub(X)._mult(q/Ge)._round());this.updateDistance(X,Fe),this.addCurrentVertex(Fe,ae,0,0,j),X=Fe}}const Ke=X&&$;let He=Ke?o:E?"butt":c;if(Ke&&He==="round"&&(Ce<m?He="miter":Ce<=2&&(He="fakeround")),He==="miter"&&Ce>p&&(He="bevel"),He==="bevel"&&(Ce>2&&(He="flipbevel"),Ce<p&&(He="miter")),X&&this.updateDistance(X,W),He==="miter")U._mult(Ce),this.addCurrentVertex(W,U,0,0,j);else if(He==="flipbevel"){if(Ce>100)U=_e.mult(-1);else{const Ge=Ce*ae.add(_e).mag()/ae.sub(_e).mag();U._perp()._mult(Ge*(Ve?-1:1))}this.addCurrentVertex(W,U,0,0,j),this.addCurrentVertex(W,U.mult(-1),0,0,j)}else if(He==="bevel"||He==="fakeround"){const Ge=-Math.sqrt(Ce*Ce-1),Fe=Ve?Ge:0,ot=Ve?0:Ge;if(X&&this.addCurrentVertex(W,ae,Fe,ot,j),He==="fakeround"){const pt=Math.round(180*je/Math.PI/20);for(let ut=1;ut<pt;ut++){let lt=ut/pt;if(lt!==.5){const wr=lt-.5;lt+=lt*wr*(lt-1)*((1.0904+Y*(Y*(3.55645-1.43519*Y)-3.2452))*wr*wr+(.848013+Y*(.215638*Y-1.06021)))}const Rt=_e.sub(ae)._mult(lt)._add(ae)._unit()._mult(Ve?-1:1);this.addHalfVertex(W,Rt.x,Rt.y,!1,Ve,0,j)}}$&&this.addCurrentVertex(W,_e,-Fe,-ot,j)}else if(He==="butt")this.addCurrentVertex(W,U,0,0,j);else if(He==="square"){const Ge=X?1:-1;this.addCurrentVertex(W,U,Ge,Ge,j)}else He==="round"&&(X&&(this.addCurrentVertex(W,ae,0,0,j),this.addCurrentVertex(W,ae,1,1,j,!0)),$&&(this.addCurrentVertex(W,_e,-1,-1,j,!0),this.addCurrentVertex(W,_e,0,0,j)));if(Me&&ue<L-1){const Ge=W.dist($);if(Ge>2*q){const Fe=W.add($.sub(W)._mult(q/Ge)._round());this.updateDistance(W,Fe),this.addCurrentVertex(Fe,_e,0,0,j),W=Fe}}}}addCurrentVertex(t,i,o,c,p,m=!1){const y=i.y*c-i.x,w=-i.y-i.x*c;this.addHalfVertex(t,i.x+i.y*o,i.y-i.x*o,m,!1,o,p),this.addHalfVertex(t,y,w,m,!0,-c,p),this.distance>pg/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,i,o,c,p,m))}addHalfVertex({x:t,y:i},o,c,p,m,y,w){const E=.5*(this.lineClips?this.scaledDistance*(pg-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(p?1:0),(i<<1)+(m?1:0),Math.round(63*o)+128,Math.round(63*c)+128,1+(y===0?0:y<0?-1:1)|(63&E)<<2,E>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const L=w.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,L,this.e2),w.primitiveLength++),m?this.e2=L:this.e1=L}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(t,i){this.distance+=t.dist(i),this.updateScaledDistance()}}let dg,fg;st("LineBucket",Up,{omit:["layers","patternFeatures"]});var mg={get paint(){return fg=fg||new Mr({"line-opacity":new ft(re.paint_line["line-opacity"]),"line-color":new ft(re.paint_line["line-color"]),"line-translate":new ct(re.paint_line["line-translate"]),"line-translate-anchor":new ct(re.paint_line["line-translate-anchor"]),"line-width":new ft(re.paint_line["line-width"]),"line-gap-width":new ft(re.paint_line["line-gap-width"]),"line-offset":new ft(re.paint_line["line-offset"]),"line-blur":new ft(re.paint_line["line-blur"]),"line-dasharray":new Vl(re.paint_line["line-dasharray"]),"line-pattern":new wo(re.paint_line["line-pattern"]),"line-gradient":new Ol(re.paint_line["line-gradient"])})},get layout(){return dg=dg||new Mr({"line-cap":new ct(re.layout_line["line-cap"]),"line-join":new ft(re.layout_line["line-join"]),"line-miter-limit":new ct(re.layout_line["line-miter-limit"]),"line-round-limit":new ct(re.layout_line["line-round-limit"]),"line-sort-key":new ft(re.layout_line["line-sort-key"])})}};class z2 extends ft{possiblyEvaluate(t,i){return i=new ir(Math.floor(i.zoom),{now:i.now,fadeDuration:i.fadeDuration,zoomHistory:i.zoomHistory,transition:i.transition}),super.possiblyEvaluate(t,i)}evaluate(t,i,o,c){return i=ii({},i,{zoom:Math.floor(i.zoom)}),super.evaluate(t,i,o,c)}}let nh;class D2 extends qi{constructor(t){super(t,mg),this.gradientVersion=0,nh||(nh=new z2(mg.paint.properties["line-width"].specification),nh.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(t){if(t==="line-gradient"){const i=this.gradientExpression();this.stepInterpolant=!!function(o){return o._styleExpression!==void 0}(i)&&i._styleExpression.expression instanceof Cn,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(t,i){super.recalculate(t,i),this.paint._values["line-floorwidth"]=nh.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,t)}createBucket(t){return new Up(t)}queryRadius(t){const i=t,o=gg(Wl("line-width",this,i),Wl("line-gap-width",this,i)),c=Wl("line-offset",this,i);return o/2+Math.abs(c)+Yu(this.paint.get("line-translate"))}queryIntersectsFeature({queryGeometry:t,feature:i,featureState:o,geometry:c,transform:p,pixelsToTileUnits:m}){const y=$u(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),-p.bearingInRadians,m),w=m/2*gg(this.paint.get("line-width").evaluate(i,o),this.paint.get("line-gap-width").evaluate(i,o)),E=this.paint.get("line-offset").evaluate(i,o);return E&&(c=function(L,V){const q=[];for(let j=0;j<L.length;j++){const W=L[j],X=[];for(let $=0;$<W.length;$++){const ae=W[$-1],_e=W[$],ue=W[$+1],U=$===0?new T(0,0):_e.sub(ae)._unit()._perp(),Y=$===W.length-1?new T(0,0):ue.sub(_e)._unit()._perp(),de=U._add(Y)._unit(),Ce=de.x*Y.x+de.y*Y.y;Ce!==0&&de._mult(1/Ce),X.push(de._mult(V)._add(_e))}q.push(X)}return q}(c,E*m)),function(L,V,q){for(let j=0;j<V.length;j++){const W=V[j];if(L.length>=3){for(let X=0;X<W.length;X++)if(Po(L,W[X]))return!0}if(Xw(L,W,q))return!0}return!1}(y,c,w)}isTileClipped(){return!0}}function gg(n,t){return t>0?t+2*n:n}const B2=cr([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),V2=cr([{name:"a_projected_pos",components:3,type:"Float32"}],4);cr([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const O2=cr([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);cr([{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 yg=cr([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),F2=cr([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function N2(n,t,i){return n.sections.forEach(o=>{o.text=function(c,p,m){const y=p.layout.get("text-transform").evaluate(m,{});return y==="uppercase"?c=c.toLocaleUpperCase():y==="lowercase"&&(c=c.toLocaleLowerCase()),gn.applyArabicShaping&&(c=gn.applyArabicShaping(c)),c}(o.text,t,i)}),n}cr([{name:"triangle",components:3,type:"Uint16"}]),cr([{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"}]),cr([{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"}]),cr([{type:"Float32",name:"offsetX"}]),cr([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),cr([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const rc={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var _g,jp,xg,Fr=24,Hp={};function q2(){return _g||(_g=1,Hp.read=function(n,t,i,o,c){var p,m,y=8*c-o-1,w=(1<<y)-1,E=w>>1,L=-7,V=i?c-1:0,q=i?-1:1,j=n[t+V];for(V+=q,p=j&(1<<-L)-1,j>>=-L,L+=y;L>0;p=256*p+n[t+V],V+=q,L-=8);for(m=p&(1<<-L)-1,p>>=-L,L+=o;L>0;m=256*m+n[t+V],V+=q,L-=8);if(p===0)p=1-E;else{if(p===w)return m?NaN:1/0*(j?-1:1);m+=Math.pow(2,o),p-=E}return(j?-1:1)*m*Math.pow(2,p-o)},Hp.write=function(n,t,i,o,c,p){var m,y,w,E=8*p-c-1,L=(1<<E)-1,V=L>>1,q=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,j=o?0:p-1,W=o?1:-1,X=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,m=L):(m=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-m))<1&&(m--,w*=2),(t+=m+V>=1?q/w:q*Math.pow(2,1-V))*w>=2&&(m++,w/=2),m+V>=L?(y=0,m=L):m+V>=1?(y=(t*w-1)*Math.pow(2,c),m+=V):(y=t*Math.pow(2,V-1)*Math.pow(2,c),m=0));c>=8;n[i+j]=255&y,j+=W,y/=256,c-=8);for(m=m<<c|y,E+=c;E>0;n[i+j]=255&m,j+=W,m/=256,E-=8);n[i+j-W]|=128*X}),Hp}function bg(){if(xg)return jp;xg=1,jp=t;var n=q2();function t(U){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(U)?U:new Uint8Array(U||0),this.pos=0,this.type=0,this.length=this.buf.length}t.Varint=0,t.Fixed64=1,t.Bytes=2,t.Fixed32=5;var i=4294967296,o=1/i,c=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");function p(U){return U.type===t.Bytes?U.readVarint()+U.pos:U.pos+1}function m(U,Y,de){return de?4294967296*Y+(U>>>0):4294967296*(Y>>>0)+(U>>>0)}function y(U,Y,de){var Ce=Y<=16383?1:Y<=2097151?2:Y<=268435455?3:Math.floor(Math.log(Y)/(7*Math.LN2));de.realloc(Ce);for(var je=de.pos-1;je>=U;je--)de.buf[je+Ce]=de.buf[je]}function w(U,Y){for(var de=0;de<U.length;de++)Y.writeVarint(U[de])}function E(U,Y){for(var de=0;de<U.length;de++)Y.writeSVarint(U[de])}function L(U,Y){for(var de=0;de<U.length;de++)Y.writeFloat(U[de])}function V(U,Y){for(var de=0;de<U.length;de++)Y.writeDouble(U[de])}function q(U,Y){for(var de=0;de<U.length;de++)Y.writeBoolean(U[de])}function j(U,Y){for(var de=0;de<U.length;de++)Y.writeFixed32(U[de])}function W(U,Y){for(var de=0;de<U.length;de++)Y.writeSFixed32(U[de])}function X(U,Y){for(var de=0;de<U.length;de++)Y.writeFixed64(U[de])}function $(U,Y){for(var de=0;de<U.length;de++)Y.writeSFixed64(U[de])}function ae(U,Y){return(U[Y]|U[Y+1]<<8|U[Y+2]<<16)+16777216*U[Y+3]}function _e(U,Y,de){U[de]=Y,U[de+1]=Y>>>8,U[de+2]=Y>>>16,U[de+3]=Y>>>24}function ue(U,Y){return(U[Y]|U[Y+1]<<8|U[Y+2]<<16)+(U[Y+3]<<24)}return t.prototype={destroy:function(){this.buf=null},readFields:function(U,Y,de){for(de=de||this.length;this.pos<de;){var Ce=this.readVarint(),je=Ce>>3,Me=this.pos;this.type=7&Ce,U(je,Y,this),this.pos===Me&&this.skip(Ce)}return Y},readMessage:function(U,Y){return this.readFields(U,Y,this.readVarint()+this.pos)},readFixed32:function(){var U=ae(this.buf,this.pos);return this.pos+=4,U},readSFixed32:function(){var U=ue(this.buf,this.pos);return this.pos+=4,U},readFixed64:function(){var U=ae(this.buf,this.pos)+ae(this.buf,this.pos+4)*i;return this.pos+=8,U},readSFixed64:function(){var U=ae(this.buf,this.pos)+ue(this.buf,this.pos+4)*i;return this.pos+=8,U},readFloat:function(){var U=n.read(this.buf,this.pos,!0,23,4);return this.pos+=4,U},readDouble:function(){var U=n.read(this.buf,this.pos,!0,52,8);return this.pos+=8,U},readVarint:function(U){var Y,de,Ce=this.buf;return Y=127&(de=Ce[this.pos++]),de<128?Y:(Y|=(127&(de=Ce[this.pos++]))<<7,de<128?Y:(Y|=(127&(de=Ce[this.pos++]))<<14,de<128?Y:(Y|=(127&(de=Ce[this.pos++]))<<21,de<128?Y:function(je,Me,Ve){var Ke,He,Ge=Ve.buf;if(Ke=(112&(He=Ge[Ve.pos++]))>>4,He<128||(Ke|=(127&(He=Ge[Ve.pos++]))<<3,He<128)||(Ke|=(127&(He=Ge[Ve.pos++]))<<10,He<128)||(Ke|=(127&(He=Ge[Ve.pos++]))<<17,He<128)||(Ke|=(127&(He=Ge[Ve.pos++]))<<24,He<128)||(Ke|=(1&(He=Ge[Ve.pos++]))<<31,He<128))return m(je,Ke,Me);throw new Error("Expected varint not more than 10 bytes")}(Y|=(15&(de=Ce[this.pos]))<<28,U,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var U=this.readVarint();return U%2==1?(U+1)/-2:U/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var U=this.readVarint()+this.pos,Y=this.pos;return this.pos=U,U-Y>=12&&c?function(de,Ce,je){return c.decode(de.subarray(Ce,je))}(this.buf,Y,U):function(de,Ce,je){for(var Me="",Ve=Ce;Ve<je;){var Ke,He,Ge,Fe=de[Ve],ot=null,pt=Fe>239?4:Fe>223?3:Fe>191?2:1;if(Ve+pt>je)break;pt===1?Fe<128&&(ot=Fe):pt===2?(192&(Ke=de[Ve+1]))==128&&(ot=(31&Fe)<<6|63&Ke)<=127&&(ot=null):pt===3?(He=de[Ve+2],(192&(Ke=de[Ve+1]))==128&&(192&He)==128&&((ot=(15&Fe)<<12|(63&Ke)<<6|63&He)<=2047||ot>=55296&&ot<=57343)&&(ot=null)):pt===4&&(He=de[Ve+2],Ge=de[Ve+3],(192&(Ke=de[Ve+1]))==128&&(192&He)==128&&(192&Ge)==128&&((ot=(15&Fe)<<18|(63&Ke)<<12|(63&He)<<6|63&Ge)<=65535||ot>=1114112)&&(ot=null)),ot===null?(ot=65533,pt=1):ot>65535&&(ot-=65536,Me+=String.fromCharCode(ot>>>10&1023|55296),ot=56320|1023&ot),Me+=String.fromCharCode(ot),Ve+=pt}return Me}(this.buf,Y,U)},readBytes:function(){var U=this.readVarint()+this.pos,Y=this.buf.subarray(this.pos,U);return this.pos=U,Y},readPackedVarint:function(U,Y){if(this.type!==t.Bytes)return U.push(this.readVarint(Y));var de=p(this);for(U=U||[];this.pos<de;)U.push(this.readVarint(Y));return U},readPackedSVarint:function(U){if(this.type!==t.Bytes)return U.push(this.readSVarint());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readSVarint());return U},readPackedBoolean:function(U){if(this.type!==t.Bytes)return U.push(this.readBoolean());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readBoolean());return U},readPackedFloat:function(U){if(this.type!==t.Bytes)return U.push(this.readFloat());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readFloat());return U},readPackedDouble:function(U){if(this.type!==t.Bytes)return U.push(this.readDouble());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readDouble());return U},readPackedFixed32:function(U){if(this.type!==t.Bytes)return U.push(this.readFixed32());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readFixed32());return U},readPackedSFixed32:function(U){if(this.type!==t.Bytes)return U.push(this.readSFixed32());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readSFixed32());return U},readPackedFixed64:function(U){if(this.type!==t.Bytes)return U.push(this.readFixed64());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readFixed64());return U},readPackedSFixed64:function(U){if(this.type!==t.Bytes)return U.push(this.readSFixed64());var Y=p(this);for(U=U||[];this.pos<Y;)U.push(this.readSFixed64());return U},skip:function(U){var Y=7&U;if(Y===t.Varint)for(;this.buf[this.pos++]>127;);else if(Y===t.Bytes)this.pos=this.readVarint()+this.pos;else if(Y===t.Fixed32)this.pos+=4;else{if(Y!==t.Fixed64)throw new Error("Unimplemented type: "+Y);this.pos+=8}},writeTag:function(U,Y){this.writeVarint(U<<3|Y)},realloc:function(U){for(var Y=this.length||16;Y<this.pos+U;)Y*=2;if(Y!==this.length){var de=new Uint8Array(Y);de.set(this.buf),this.buf=de,this.length=Y}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(U){this.realloc(4),_e(this.buf,U,this.pos),this.pos+=4},writeSFixed32:function(U){this.realloc(4),_e(this.buf,U,this.pos),this.pos+=4},writeFixed64:function(U){this.realloc(8),_e(this.buf,-1&U,this.pos),_e(this.buf,Math.floor(U*o),this.pos+4),this.pos+=8},writeSFixed64:function(U){this.realloc(8),_e(this.buf,-1&U,this.pos),_e(this.buf,Math.floor(U*o),this.pos+4),this.pos+=8},writeVarint:function(U){(U=+U||0)>268435455||U<0?function(Y,de){var Ce,je;if(Y>=0?(Ce=Y%4294967296|0,je=Y/4294967296|0):(je=~(-Y/4294967296),4294967295^(Ce=~(-Y%4294967296))?Ce=Ce+1|0:(Ce=0,je=je+1|0)),Y>=18446744073709552e3||Y<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");de.realloc(10),function(Me,Ve,Ke){Ke.buf[Ke.pos++]=127&Me|128,Me>>>=7,Ke.buf[Ke.pos++]=127&Me|128,Me>>>=7,Ke.buf[Ke.pos++]=127&Me|128,Me>>>=7,Ke.buf[Ke.pos++]=127&Me|128,Ke.buf[Ke.pos]=127&(Me>>>=7)}(Ce,0,de),function(Me,Ve){var Ke=(7&Me)<<4;Ve.buf[Ve.pos++]|=Ke|((Me>>>=3)?128:0),Me&&(Ve.buf[Ve.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Ve.buf[Ve.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Ve.buf[Ve.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Ve.buf[Ve.pos++]=127&Me|((Me>>>=7)?128:0),Me&&(Ve.buf[Ve.pos++]=127&Me)))))}(je,de)}(U,this):(this.realloc(4),this.buf[this.pos++]=127&U|(U>127?128:0),U<=127||(this.buf[this.pos++]=127&(U>>>=7)|(U>127?128:0),U<=127||(this.buf[this.pos++]=127&(U>>>=7)|(U>127?128:0),U<=127||(this.buf[this.pos++]=U>>>7&127))))},writeSVarint:function(U){this.writeVarint(U<0?2*-U-1:2*U)},writeBoolean:function(U){this.writeVarint(!!U)},writeString:function(U){U=String(U),this.realloc(4*U.length),this.pos++;var Y=this.pos;this.pos=function(Ce,je,Me){for(var Ve,Ke,He=0;He<je.length;He++){if((Ve=je.charCodeAt(He))>55295&&Ve<57344){if(!Ke){Ve>56319||He+1===je.length?(Ce[Me++]=239,Ce[Me++]=191,Ce[Me++]=189):Ke=Ve;continue}if(Ve<56320){Ce[Me++]=239,Ce[Me++]=191,Ce[Me++]=189,Ke=Ve;continue}Ve=Ke-55296<<10|Ve-56320|65536,Ke=null}else Ke&&(Ce[Me++]=239,Ce[Me++]=191,Ce[Me++]=189,Ke=null);Ve<128?Ce[Me++]=Ve:(Ve<2048?Ce[Me++]=Ve>>6|192:(Ve<65536?Ce[Me++]=Ve>>12|224:(Ce[Me++]=Ve>>18|240,Ce[Me++]=Ve>>12&63|128),Ce[Me++]=Ve>>6&63|128),Ce[Me++]=63&Ve|128)}return Me}(this.buf,U,this.pos);var de=this.pos-Y;de>=128&&y(Y,de,this),this.pos=Y-1,this.writeVarint(de),this.pos+=de},writeFloat:function(U){this.realloc(4),n.write(this.buf,U,this.pos,!0,23,4),this.pos+=4},writeDouble:function(U){this.realloc(8),n.write(this.buf,U,this.pos,!0,52,8),this.pos+=8},writeBytes:function(U){var Y=U.length;this.writeVarint(Y),this.realloc(Y);for(var de=0;de<Y;de++)this.buf[this.pos++]=U[de]},writeRawMessage:function(U,Y){this.pos++;var de=this.pos;U(Y,this);var Ce=this.pos-de;Ce>=128&&y(de,Ce,this),this.pos=de-1,this.writeVarint(Ce),this.pos+=Ce},writeMessage:function(U,Y,de){this.writeTag(U,t.Bytes),this.writeRawMessage(Y,de)},writePackedVarint:function(U,Y){Y.length&&this.writeMessage(U,w,Y)},writePackedSVarint:function(U,Y){Y.length&&this.writeMessage(U,E,Y)},writePackedBoolean:function(U,Y){Y.length&&this.writeMessage(U,q,Y)},writePackedFloat:function(U,Y){Y.length&&this.writeMessage(U,L,Y)},writePackedDouble:function(U,Y){Y.length&&this.writeMessage(U,V,Y)},writePackedFixed32:function(U,Y){Y.length&&this.writeMessage(U,j,Y)},writePackedSFixed32:function(U,Y){Y.length&&this.writeMessage(U,W,Y)},writePackedFixed64:function(U,Y){Y.length&&this.writeMessage(U,X,Y)},writePackedSFixed64:function(U,Y){Y.length&&this.writeMessage(U,$,Y)},writeBytesField:function(U,Y){this.writeTag(U,t.Bytes),this.writeBytes(Y)},writeFixed32Field:function(U,Y){this.writeTag(U,t.Fixed32),this.writeFixed32(Y)},writeSFixed32Field:function(U,Y){this.writeTag(U,t.Fixed32),this.writeSFixed32(Y)},writeFixed64Field:function(U,Y){this.writeTag(U,t.Fixed64),this.writeFixed64(Y)},writeSFixed64Field:function(U,Y){this.writeTag(U,t.Fixed64),this.writeSFixed64(Y)},writeVarintField:function(U,Y){this.writeTag(U,t.Varint),this.writeVarint(Y)},writeSVarintField:function(U,Y){this.writeTag(U,t.Varint),this.writeSVarint(Y)},writeStringField:function(U,Y){this.writeTag(U,t.Bytes),this.writeString(Y)},writeFloatField:function(U,Y){this.writeTag(U,t.Fixed32),this.writeFloat(Y)},writeDoubleField:function(U,Y){this.writeTag(U,t.Fixed64),this.writeDouble(Y)},writeBooleanField:function(U,Y){this.writeVarintField(U,!!Y)}},jp}var Wp=B(bg());const Zp=3;function U2(n,t,i){n===1&&i.readMessage(j2,t)}function j2(n,t,i){if(n===3){const{id:o,bitmap:c,width:p,height:m,left:y,top:w,advance:E}=i.readMessage(H2,{});t.push({id:o,bitmap:new Zl({width:p+2*Zp,height:m+2*Zp},c),metrics:{width:p,height:m,left:y,top:w,advance:E}})}}function H2(n,t,i){n===1?t.id=i.readVarint():n===2?t.bitmap=i.readBytes():n===3?t.width=i.readVarint():n===4?t.height=i.readVarint():n===5?t.left=i.readSVarint():n===6?t.top=i.readSVarint():n===7&&(t.advance=i.readVarint())}const W2=Zp;function vg(n){let t=0,i=0;for(const m of n)t+=m.w*m.h,i=Math.max(i,m.w);n.sort((m,y)=>y.h-m.h);const o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),i),h:1/0}];let c=0,p=0;for(const m of n)for(let y=o.length-1;y>=0;y--){const w=o[y];if(!(m.w>w.w||m.h>w.h)){if(m.x=w.x,m.y=w.y,p=Math.max(p,m.y+m.h),c=Math.max(c,m.x+m.w),m.w===w.w&&m.h===w.h){const E=o.pop();y<o.length&&(o[y]=E)}else m.h===w.h?(w.x+=m.w,w.w-=m.w):m.w===w.w?(w.y+=m.h,w.h-=m.h):(o.push({x:w.x+m.w,y:w.y,w:w.w-m.w,h:m.h}),w.y+=m.h,w.h-=m.h);break}}return{w:c,h:p,fill:t/(c*p)||0}}const Mi=1;class Kp{constructor(t,{pixelRatio:i,version:o,stretchX:c,stretchY:p,content:m,textFitWidth:y,textFitHeight:w}){this.paddedRect=t,this.pixelRatio=i,this.stretchX=c,this.stretchY=p,this.content=m,this.version=o,this.textFitWidth=y,this.textFitHeight=w}get tl(){return[this.paddedRect.x+Mi,this.paddedRect.y+Mi]}get br(){return[this.paddedRect.x+this.paddedRect.w-Mi,this.paddedRect.y+this.paddedRect.h-Mi]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return[(this.paddedRect.w-2*Mi)/this.pixelRatio,(this.paddedRect.h-2*Mi)/this.pixelRatio]}}class wg{constructor(t,i){const o={},c={};this.haveRenderCallbacks=[];const p=[];this.addImages(t,o,p),this.addImages(i,c,p);const{w:m,h:y}=vg(p),w=new Ji({width:m||1,height:y||1});for(const E in t){const L=t[E],V=o[E].paddedRect;Ji.copy(L.data,w,{x:0,y:0},{x:V.x+Mi,y:V.y+Mi},L.data)}for(const E in i){const L=i[E],V=c[E].paddedRect,q=V.x+Mi,j=V.y+Mi,W=L.data.width,X=L.data.height;Ji.copy(L.data,w,{x:0,y:0},{x:q,y:j},L.data),Ji.copy(L.data,w,{x:0,y:X-1},{x:q,y:j-1},{width:W,height:1}),Ji.copy(L.data,w,{x:0,y:0},{x:q,y:j+X},{width:W,height:1}),Ji.copy(L.data,w,{x:W-1,y:0},{x:q-1,y:j},{width:1,height:X}),Ji.copy(L.data,w,{x:0,y:0},{x:q+W,y:j},{width:1,height:X})}this.image=w,this.iconPositions=o,this.patternPositions=c}addImages(t,i,o){for(const c in t){const p=t[c],m={x:0,y:0,w:p.data.width+2*Mi,h:p.data.height+2*Mi};o.push(m),i[c]=new Kp(m,p),p.hasRenderCallback&&this.haveRenderCallbacks.push(c)}}patchUpdatedImages(t,i){t.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const o in t.updatedImages)this.patchUpdatedImage(this.iconPositions[o],t.getImage(o),i),this.patchUpdatedImage(this.patternPositions[o],t.getImage(o),i)}patchUpdatedImage(t,i,o){if(!t||!i||t.version===i.version)return;t.version=i.version;const[c,p]=t.tl;o.update(i.data,void 0,{x:c,y:p})}}var zs;st("ImagePosition",Kp),st("ImageAtlas",wg),x.al=void 0,(zs=x.al||(x.al={}))[zs.none=0]="none",zs[zs.horizontal=1]="horizontal",zs[zs.vertical=2]="vertical",zs[zs.horizontalOnly=3]="horizontalOnly";const sh=-17;class ic{constructor(){this.scale=1,this.fontStack="",this.imageName=null,this.verticalAlign="bottom"}static forText(t,i,o){const c=new ic;return c.scale=t||1,c.fontStack=i,c.verticalAlign=o||"bottom",c}static forImage(t,i){const o=new ic;return o.imageName=t,o.verticalAlign=i||"bottom",o}}class Ma{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(t,i){const o=new Ma;for(let c=0;c<t.sections.length;c++){const p=t.sections[c];p.image?o.addImageSection(p):o.addTextSection(p,i)}return o}length(){return this.text.length}getSection(t){return this.sections[this.sectionIndex[t]]}getSectionIndex(t){return this.sectionIndex[t]}getCharCode(t){return this.text.charCodeAt(t)}verticalizePunctuation(){this.text=function(t){let i="";for(let o=0;o<t.length;o++){const c=t.charCodeAt(o+1)||null,p=t.charCodeAt(o-1)||null;i+=c&&bo(c)&&!rc[t[o+1]]||p&&bo(p)&&!rc[t[o-1]]||!rc[t[o]]?t[o]:rc[t[o]]}return i}(this.text)}trim(){let t=0;for(let o=0;o<this.text.length&&ah[this.text.charCodeAt(o)];o++)t++;let i=this.text.length;for(let o=this.text.length-1;o>=0&&o>=t&&ah[this.text.charCodeAt(o)];o--)i--;this.text=this.text.substring(t,i),this.sectionIndex=this.sectionIndex.slice(t,i)}substring(t,i){const o=new Ma;return o.text=this.text.substring(t,i),o.sectionIndex=this.sectionIndex.slice(t,i),o.sections=this.sections,o}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((t,i)=>Math.max(t,this.sections[i].scale),0)}getMaxImageSize(t){let i=0,o=0;for(let c=0;c<this.length();c++){const p=this.getSection(c);if(p.imageName){const m=t[p.imageName];if(!m)continue;const y=m.displaySize;i=Math.max(i,y[0]),o=Math.max(o,y[1])}}return{maxImageWidth:i,maxImageHeight:o}}addTextSection(t,i){this.text+=t.text,this.sections.push(ic.forText(t.scale,t.fontStack||i,t.verticalAlign));const o=this.sections.length-1;for(let c=0;c<t.text.length;++c)this.sectionIndex.push(o)}addImageSection(t){const i=t.image?t.image.name:"";if(i.length===0)return void nt("Can't add FormattedSection with an empty image.");const o=this.getNextImageSectionCharCode();o?(this.text+=String.fromCharCode(o),this.sections.push(ic.forImage(i,t.verticalAlign)),this.sectionIndex.push(this.sections.length-1)):nt("Reached maximum number of images 6401")}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function oh(n,t,i,o,c,p,m,y,w,E,L,V,q,j,W){const X=Ma.fromFeature(n,c);let $;V===x.al.vertical&&X.verticalizePunctuation();const{processBidirectionalText:ae,processStyledBidirectionalText:_e}=gn;if(ae&&X.sections.length===1){$=[];const Y=ae(X.toString(),Gp(X,E,p,t,o,j));for(const de of Y){const Ce=new Ma;Ce.text=de,Ce.sections=X.sections;for(let je=0;je<de.length;je++)Ce.sectionIndex.push(0);$.push(Ce)}}else if(_e){$=[];const Y=_e(X.text,X.sectionIndex,Gp(X,E,p,t,o,j));for(const de of Y){const Ce=new Ma;Ce.text=de[0],Ce.sectionIndex=de[1],Ce.sections=X.sections,$.push(Ce)}}else $=function(Y,de){const Ce=[],je=Y.text;let Me=0;for(const Ve of de)Ce.push(Y.substring(Me,Ve)),Me=Ve;return Me<je.length&&Ce.push(Y.substring(Me,je.length)),Ce}(X,Gp(X,E,p,t,o,j));const ue=[],U={positionedLines:ue,text:X.toString(),top:L[1],bottom:L[1],left:L[0],right:L[0],writingMode:V,iconsInText:!1,verticalizable:!1};return function(Y,de,Ce,je,Me,Ve,Ke,He,Ge,Fe,ot,pt){let ut=0,lt=0,Rt=0,wr=0;const Nr=He==="right"?1:He==="left"?0:.5,li=Fr/pt;let Qi=0;for(const dr of Me){dr.trim();const Kr=dr.getMaxScale(),ti={positionedGlyphs:[],lineOffset:0};Y.positionedLines[Qi]=ti;const ri=ti.positionedGlyphs;let wi=0;if(!dr.length()){lt+=Ve,++Qi;continue}const Yi=J2(je,dr,li);for(let Ri=0;Ri<dr.length();Ri++){const qr=dr.getSection(Ri),Jr=dr.getSectionIndex(Ri),Xr=dr.getCharCode(Ri),zr=X2(Ge,ot,Xr);let sr;if(qr.imageName){if(Y.iconsInText=!0,qr.scale=qr.scale*li,sr=Y2(qr,zr,Kr,Yi,je),!sr)continue;wi=Math.max(wi,sr.imageOffset)}else if(sr=Q2(qr,Xr,zr,Yi,de,Ce),!sr)continue;const{rect:xn,metrics:Da,baselineOffset:bn}=sr;ri.push({glyph:Xr,imageName:qr.imageName,x:ut,y:lt+bn+sh,vertical:zr,scale:qr.scale,fontStack:qr.fontStack,sectionIndex:Jr,metrics:Da,rect:xn}),zr?(Y.verticalizable=!0,ut+=(qr.imageName?Da.advance:Fr)*qr.scale+Fe):ut+=Da.advance*qr.scale+Fe}ri.length!==0&&(Rt=Math.max(ut-Fe,Rt),$2(ri,0,ri.length-1,Nr)),ut=0,ti.lineOffset=Math.max(wi,(Kr-1)*Fr);const Gr=Ve*Kr+wi;lt+=Gr,wr=Math.max(Gr,wr),++Qi}const{horizontalAlign:Li,verticalAlign:ei}=Jp(Ke);(function(dr,Kr,ti,ri,wi,Yi,Gr,Ri,qr){const Jr=(Kr-ti)*wi;let Xr=0;Xr=Yi!==Gr?-Ri*ri-sh:-ri*qr*Gr+.5*Gr;for(const zr of dr)for(const sr of zr.positionedGlyphs)sr.x+=Jr,sr.y+=Xr})(Y.positionedLines,Nr,Li,ei,Rt,wr,Ve,lt,Me.length),Y.top+=-ei*lt,Y.bottom=Y.top+lt,Y.left+=-Li*Rt,Y.right=Y.left+Rt}(U,t,i,o,$,m,y,w,V,E,q,W),!function(Y){for(const de of Y)if(de.positionedGlyphs.length!==0)return!1;return!0}(ue)&&U}const ah={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Z2={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},K2={40:!0};function Sg(n,t,i,o,c,p){if(t.imageName){const m=o[t.imageName];return m?m.displaySize[0]*t.scale*Fr/p+c:0}{const m=i[t.fontStack],y=m&&m[n];return y?y.metrics.advance*t.scale+c:0}}function Ag(n,t,i,o){const c=Math.pow(n-t,2);return o?n<t?c/2:2*c:c+Math.abs(i)*i}function G2(n,t,i){let o=0;return n===10&&(o-=1e4),i&&(o+=150),n!==40&&n!==65288||(o+=50),t!==41&&t!==65289||(o+=50),o}function kg(n,t,i,o,c,p){let m=null,y=Ag(t,i,c,p);for(const w of o){const E=Ag(t-w.x,i,c,p)+w.badness;E<=y&&(m=w,y=E)}return{index:n,x:t,priorBreak:m,badness:y}}function Tg(n){return n?Tg(n.priorBreak).concat(n.index):[]}function Gp(n,t,i,o,c,p){if(!n)return[];const m=[],y=function(V,q,j,W,X,$){let ae=0;for(let _e=0;_e<V.length();_e++){const ue=V.getSection(_e);ae+=Sg(V.getCharCode(_e),ue,W,X,q,$)}return ae/Math.max(1,Math.ceil(ae/j))}(n,t,i,o,c,p),w=n.text.indexOf("")>=0;let E=0;for(let V=0;V<n.length();V++){const q=n.getSection(V),j=n.getCharCode(V);if(ah[j]||(E+=Sg(j,q,o,c,t,p)),V<n.length()-1){const W=!((L=j)<11904)&&(!!Lt["CJK Compatibility Forms"](L)||!!Lt["CJK Compatibility"](L)||!!Lt["CJK Strokes"](L)||!!Lt["CJK Symbols and Punctuation"](L)||!!Lt["Enclosed CJK Letters and Months"](L)||!!Lt["Halfwidth and Fullwidth Forms"](L)||!!Lt["Ideographic Description Characters"](L)||!!Lt["Vertical Forms"](L)||Dl.test(String.fromCodePoint(L)));(Z2[j]||W||q.imageName||V!==n.length()-2&&K2[n.getCharCode(V+1)])&&m.push(kg(V+1,E,y,m,G2(j,n.getCharCode(V+1),W&&w),!1))}}var L;return Tg(kg(n.length(),E,y,m,0,!0))}function Jp(n){let t=.5,i=.5;switch(n){case"right":case"top-right":case"bottom-right":t=1;break;case"left":case"top-left":case"bottom-left":t=0}switch(n){case"bottom":case"bottom-right":case"bottom-left":i=1;break;case"top":case"top-right":case"top-left":i=0}return{horizontalAlign:t,verticalAlign:i}}function J2(n,t,i){const o=t.getMaxScale()*Fr,{maxImageWidth:c,maxImageHeight:p}=t.getMaxImageSize(n),m=Math.max(o,p*i);return{verticalLineContentWidth:Math.max(o,c*i),horizontalLineContentHeight:m}}function Cg(n){switch(n){case"top":return 0;case"center":return .5;default:return 1}}function X2(n,t,i){return!(n===x.al.horizontal||!t&&!Sa(i)||t&&(ah[i]||(o=i,new RegExp("\\p{sc=Arab}","u").test(String.fromCodePoint(o)))));var o}function Q2(n,t,i,o,c,p){const m=p[n.fontStack],y=function(E,L,V,q){if(E&&E.rect)return E;const j=L[V.fontStack],W=j&&j[q];return W?{rect:null,metrics:W.metrics}:null}(m&&m[t],c,n,t);if(y===null)return null;let w;if(i)w=o.verticalLineContentWidth-n.scale*Fr;else{const E=Cg(n.verticalAlign);w=(o.horizontalLineContentHeight-n.scale*Fr)*E}return{rect:y.rect,metrics:y.metrics,baselineOffset:w}}function Y2(n,t,i,o,c){const p=c[n.imageName];if(!p)return null;const m=p.paddedRect,y=p.displaySize,w={width:y[0],height:y[1],left:Mi,top:-3,advance:t?y[1]:y[0]};let E;if(t)E=o.verticalLineContentWidth-y[1]*n.scale;else{const L=Cg(n.verticalAlign);E=(o.horizontalLineContentHeight-y[1]*n.scale)*L}return{rect:m,metrics:w,baselineOffset:E,imageOffset:(t?y[0]:y[1])*n.scale-Fr*i}}function $2(n,t,i,o){if(o===0)return;const c=n[i],p=(n[i].x+c.metrics.advance*c.scale)*o;for(let m=t;m<=i;m++)n[m].x-=p}function eS(n,t,i){const{horizontalAlign:o,verticalAlign:c}=Jp(i),p=t[0]-n.displaySize[0]*o,m=t[1]-n.displaySize[1]*c;return{image:n,top:m,bottom:m+n.displaySize[1],left:p,right:p+n.displaySize[0]}}function Eg(n){var t,i;let o=n.left,c=n.top,p=n.right-o,m=n.bottom-c;const y=(t=n.image.textFitWidth)!==null&&t!==void 0?t:"stretchOrShrink",w=(i=n.image.textFitHeight)!==null&&i!==void 0?i:"stretchOrShrink",E=(n.image.content[2]-n.image.content[0])/(n.image.content[3]-n.image.content[1]);if(w==="proportional"){if(y==="stretchOnly"&&p/m<E||y==="proportional"){const L=Math.ceil(m*E);o*=L/p,p=L}}else if(y==="proportional"&&w==="stretchOnly"&&E!==0&&p/m>E){const L=Math.ceil(p/E);c*=L/m,m=L}return{x1:o,y1:c,x2:o+p,y2:c+m}}function Pg(n,t,i,o,c,p){const m=n.image;let y;if(m.content){const $=m.content,ae=m.pixelRatio||1;y=[$[0]/ae,$[1]/ae,m.displaySize[0]-$[2]/ae,m.displaySize[1]-$[3]/ae]}const w=t.left*p,E=t.right*p;let L,V,q,j;i==="width"||i==="both"?(j=c[0]+w-o[3],V=c[0]+E+o[1]):(j=c[0]+(w+E-m.displaySize[0])/2,V=j+m.displaySize[0]);const W=t.top*p,X=t.bottom*p;return i==="height"||i==="both"?(L=c[1]+W-o[0],q=c[1]+X+o[2]):(L=c[1]+(W+X-m.displaySize[1])/2,q=L+m.displaySize[1]),{image:m,top:L,right:V,bottom:q,left:j,collisionPadding:y}}const nc=255,Bn=128,Ds=nc*Bn;function Ig(n,t){const{expression:i}=t;if(i.kind==="constant")return{kind:"constant",layoutSize:i.evaluate(new ir(n+1))};if(i.kind==="source")return{kind:"source"};{const{zoomStops:o,interpolationType:c}=i;let p=0;for(;p<o.length&&o[p]<=n;)p++;p=Math.max(0,p-1);let m=p;for(;m<o.length&&o[m]<n+1;)m++;m=Math.min(o.length-1,m);const y=o[p],w=o[m];return i.kind==="composite"?{kind:"composite",minZoom:y,maxZoom:w,interpolationType:c}:{kind:"camera",minZoom:y,maxZoom:w,minSize:i.evaluate(new ir(y)),maxSize:i.evaluate(new ir(w)),interpolationType:c}}}function Xp(n,t,i){let o="never";const c=n.get(t);return c?o=c:n.get(i)&&(o="always"),o}const tS=$l.VectorTileFeature.types,rS=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lh(n,t,i,o,c,p,m,y,w,E,L,V,q){const j=y?Math.min(Ds,Math.round(y[0])):0,W=y?Math.min(Ds,Math.round(y[1])):0;n.emplaceBack(t,i,Math.round(32*o),Math.round(32*c),p,m,(j<<1)+(w?1:0),W,16*E,16*L,256*V,256*q)}function Qp(n,t,i){n.emplaceBack(t.x,t.y,i),n.emplaceBack(t.x,t.y,i),n.emplaceBack(t.x,t.y,i),n.emplaceBack(t.x,t.y,i)}function iS(n){for(const t of n.sections)if(wp(t.text))return!0;return!1}class Yp{constructor(t){this.layoutVertexArray=new ur,this.indexArray=new Ut,this.programConfigurations=t,this.segments=new jt,this.dynamicLayoutVertexArray=new Qt,this.opacityVertexArray=new hr,this.hasVisibleVertices=!1,this.placedSymbolArray=new me}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(t,i,o,c){this.isEmpty()||(o&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,B2.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,i),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,V2.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,rS,!0),this.opacityVertexBuffer.itemSize=1),(o||c)&&this.programConfigurations.upload(t))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}st("SymbolBuffers",Yp);class $p{constructor(t,i,o){this.layoutVertexArray=new t,this.layoutAttributes=i,this.indexArray=new o,this.segments=new jt,this.collisionVertexArray=new $t}upload(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,O2.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())}}st("CollisionBuffers",$p);class La{constructor(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map(m=>m.id),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[];const i=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Ig(this.zoom,i["text-size"]),this.iconSizeData=Ig(this.zoom,i["icon-size"]);const o=this.layers[0].layout,c=o.get("symbol-sort-key"),p=o.get("symbol-z-order");this.canOverlap=Xp(o,"text-overlap","text-allow-overlap")!=="never"||Xp(o,"icon-overlap","icon-allow-overlap")!=="never"||o.get("text-ignore-placement")||o.get("icon-ignore-placement"),this.sortFeaturesByKey=p!=="viewport-y"&&!c.isConstant(),this.sortFeaturesByY=(p==="viewport-y"||p==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,o.get("symbol-placement")==="point"&&(this.writingModes=o.get("text-writing-mode").map(m=>x.al[m])),this.stateDependentLayerIds=this.layers.filter(m=>m.isStateDependent()).map(m=>m.id),this.sourceID=t.sourceID}createArrays(){this.text=new Yp(new Dn(this.layers,this.zoom,t=>/^text/.test(t))),this.icon=new Yp(new Dn(this.layers,this.zoom,t=>/^icon/.test(t))),this.glyphOffsetArray=new be,this.lineVertexArray=new ye,this.symbolInstances=new ge,this.textAnchorOffsets=new Oe}calculateGlyphDependencies(t,i,o,c,p){for(let m=0;m<t.length;m++)if(i[t.charCodeAt(m)]=!0,(o||c)&&p){const y=rc[t.charAt(m)];y&&(i[y.charCodeAt(0)]=!0)}}populate(t,i,o){const c=this.layers[0],p=c.layout,m=p.get("text-font"),y=p.get("text-field"),w=p.get("icon-image"),E=(y.value.kind!=="constant"||y.value.value instanceof bi&&!y.value.value.isEmpty()||y.value.value.toString().length>0)&&(m.value.kind!=="constant"||m.value.value.length>0),L=w.value.kind!=="constant"||!!w.value.value||Object.keys(w.parameters).length>0,V=p.get("symbol-sort-key");if(this.features=[],!E&&!L)return;const q=i.iconDependencies,j=i.glyphDependencies,W=i.availableImages,X=new ir(this.zoom);for(const{feature:$,id:ae,index:_e,sourceLayerIndex:ue}of t){const U=c._featureFilter.needGeometry,Y=Eo($,U);if(!c._featureFilter.filter(X,Y,o))continue;let de,Ce;if(U||(Y.geometry=Co($)),E){const Me=c.getValueAndResolveTokens("text-field",Y,o,W),Ve=bi.factory(Me),Ke=this.hasRTLText=this.hasRTLText||iS(Ve);(!Ke||gn.getRTLTextPluginStatus()==="unavailable"||Ke&&gn.isParsed())&&(de=N2(Ve,c,Y))}if(L){const Me=c.getValueAndResolveTokens("icon-image",Y,o,W);Ce=Me instanceof Ei?Me:Ei.fromString(Me)}if(!de&&!Ce)continue;const je=this.sortFeaturesByKey?V.evaluate(Y,{},o):void 0;if(this.features.push({id:ae,text:de,icon:Ce,index:_e,sourceLayerIndex:ue,geometry:Y.geometry,properties:$.properties,type:tS[$.type],sortKey:je}),Ce&&(q[Ce.name]=!0),de){const Me=m.evaluate(Y,{},o).join(","),Ve=p.get("text-rotation-alignment")!=="viewport"&&p.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(x.al.vertical)>=0;for(const Ke of de.sections)if(Ke.image)q[Ke.image.name]=!0;else{const He=wa(de.toString()),Ge=Ke.fontStack||Me,Fe=j[Ge]=j[Ge]||{};this.calculateGlyphDependencies(Ke.text,Fe,Ve,this.allowVerticalPlacement,He)}}}p.get("symbol-placement")==="line"&&(this.features=function($){const ae={},_e={},ue=[];let U=0;function Y(Me){ue.push($[Me]),U++}function de(Me,Ve,Ke){const He=_e[Me];return delete _e[Me],_e[Ve]=He,ue[He].geometry[0].pop(),ue[He].geometry[0]=ue[He].geometry[0].concat(Ke[0]),He}function Ce(Me,Ve,Ke){const He=ae[Ve];return delete ae[Ve],ae[Me]=He,ue[He].geometry[0].shift(),ue[He].geometry[0]=Ke[0].concat(ue[He].geometry[0]),He}function je(Me,Ve,Ke){const He=Ke?Ve[0][Ve[0].length-1]:Ve[0][0];return`${Me}:${He.x}:${He.y}`}for(let Me=0;Me<$.length;Me++){const Ve=$[Me],Ke=Ve.geometry,He=Ve.text?Ve.text.toString():null;if(!He){Y(Me);continue}const Ge=je(He,Ke),Fe=je(He,Ke,!0);if(Ge in _e&&Fe in ae&&_e[Ge]!==ae[Fe]){const ot=Ce(Ge,Fe,Ke),pt=de(Ge,Fe,ue[ot].geometry);delete ae[Ge],delete _e[Fe],_e[je(He,ue[pt].geometry,!0)]=pt,ue[ot].geometry=null}else Ge in _e?de(Ge,Fe,Ke):Fe in ae?Ce(Ge,Fe,Ke):(Y(Me),ae[Ge]=U-1,_e[Fe]=U-1)}return ue.filter(Me=>Me.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort(($,ae)=>$.sortKey-ae.sortKey)}update(t,i,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,i,this.layers,o),this.icon.programConfigurations.updatePaintArrays(t,i,this.layers,o))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,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(t,i){const o=this.lineVertexArray.length;if(t.segment!==void 0){let c=t.dist(i[t.segment+1]),p=t.dist(i[t.segment]);const m={};for(let y=t.segment+1;y<i.length;y++)m[y]={x:i[y].x,y:i[y].y,tileUnitDistanceFromAnchor:c},y<i.length-1&&(c+=i[y+1].dist(i[y]));for(let y=t.segment||0;y>=0;y--)m[y]={x:i[y].x,y:i[y].y,tileUnitDistanceFromAnchor:p},y>0&&(p+=i[y-1].dist(i[y]));for(let y=0;y<i.length;y++){const w=m[y];this.lineVertexArray.emplaceBack(w.x,w.y,w.tileUnitDistanceFromAnchor)}}return{lineStartIndex:o,lineLength:this.lineVertexArray.length-o}}addSymbols(t,i,o,c,p,m,y,w,E,L,V,q){const j=t.indexArray,W=t.layoutVertexArray,X=t.segments.prepareSegment(4*i.length,W,j,this.canOverlap?m.sortKey:void 0),$=this.glyphOffsetArray.length,ae=X.vertexLength,_e=this.allowVerticalPlacement&&y===x.al.vertical?Math.PI/2:0,ue=m.text&&m.text.sections;for(let U=0;U<i.length;U++){const{tl:Y,tr:de,bl:Ce,br:je,tex:Me,pixelOffsetTL:Ve,pixelOffsetBR:Ke,minFontScaleX:He,minFontScaleY:Ge,glyphOffset:Fe,isSDF:ot,sectionIndex:pt}=i[U],ut=X.vertexLength,lt=Fe[1];lh(W,w.x,w.y,Y.x,lt+Y.y,Me.x,Me.y,o,ot,Ve.x,Ve.y,He,Ge),lh(W,w.x,w.y,de.x,lt+de.y,Me.x+Me.w,Me.y,o,ot,Ke.x,Ve.y,He,Ge),lh(W,w.x,w.y,Ce.x,lt+Ce.y,Me.x,Me.y+Me.h,o,ot,Ve.x,Ke.y,He,Ge),lh(W,w.x,w.y,je.x,lt+je.y,Me.x+Me.w,Me.y+Me.h,o,ot,Ke.x,Ke.y,He,Ge),Qp(t.dynamicLayoutVertexArray,w,_e),j.emplaceBack(ut,ut+2,ut+1),j.emplaceBack(ut+1,ut+2,ut+3),X.vertexLength+=4,X.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(Fe[0]),U!==i.length-1&&pt===i[U+1].sectionIndex||t.programConfigurations.populatePaintArrays(W.length,m,m.index,{},q,ue&&ue[pt])}t.placedSymbolArray.emplaceBack(w.x,w.y,$,this.glyphOffsetArray.length-$,ae,E,L,w.segment,o?o[0]:0,o?o[1]:0,c[0],c[1],y,0,!1,0,V)}_addCollisionDebugVertex(t,i,o,c,p,m){return i.emplaceBack(0,0),t.emplaceBack(o.x,o.y,c,p,Math.round(m.x),Math.round(m.y))}addCollisionDebugVertices(t,i,o,c,p,m,y){const w=p.segments.prepareSegment(4,p.layoutVertexArray,p.indexArray),E=w.vertexLength,L=p.layoutVertexArray,V=p.collisionVertexArray,q=y.anchorX,j=y.anchorY;this._addCollisionDebugVertex(L,V,m,q,j,new T(t,i)),this._addCollisionDebugVertex(L,V,m,q,j,new T(o,i)),this._addCollisionDebugVertex(L,V,m,q,j,new T(o,c)),this._addCollisionDebugVertex(L,V,m,q,j,new T(t,c)),w.vertexLength+=4;const W=p.indexArray;W.emplaceBack(E,E+1),W.emplaceBack(E+1,E+2),W.emplaceBack(E+2,E+3),W.emplaceBack(E+3,E),w.primitiveLength+=4}addDebugCollisionBoxes(t,i,o,c){for(let p=t;p<i;p++){const m=this.collisionBoxArray.get(p);this.addCollisionDebugVertices(m.x1,m.y1,m.x2,m.y2,c?this.textCollisionBox:this.iconCollisionBox,m.anchorPoint,o)}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new $p(pr,yg.members,Or),this.iconCollisionBox=new $p(pr,yg.members,Or);for(let t=0;t<this.symbolInstances.length;t++){const i=this.symbolInstances.get(t);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(t,i,o,c,p,m,y,w,E){const L={};for(let V=i;V<o;V++){const q=t.get(V);L.textBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.textFeatureIndex=q.featureIndex;break}for(let V=c;V<p;V++){const q=t.get(V);L.verticalTextBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.verticalTextFeatureIndex=q.featureIndex;break}for(let V=m;V<y;V++){const q=t.get(V);L.iconBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.iconFeatureIndex=q.featureIndex;break}for(let V=w;V<E;V++){const q=t.get(V);L.verticalIconBox={x1:q.x1,y1:q.y1,x2:q.x2,y2:q.y2,anchorPointX:q.anchorPointX,anchorPointY:q.anchorPointY},L.verticalIconFeatureIndex=q.featureIndex;break}return L}deserializeCollisionBoxes(t){this.collisionArrays=[];for(let i=0;i<this.symbolInstances.length;i++){const o=this.symbolInstances.get(i);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t,o.textBoxStartIndex,o.textBoxEndIndex,o.verticalTextBoxStartIndex,o.verticalTextBoxEndIndex,o.iconBoxStartIndex,o.iconBoxEndIndex,o.verticalIconBoxStartIndex,o.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(t,i){const o=t.placedSymbolArray.get(i),c=o.vertexStartIndex+4*o.numGlyphs;for(let p=o.vertexStartIndex;p<c;p+=4)t.indexArray.emplaceBack(p,p+2,p+1),t.indexArray.emplaceBack(p+1,p+2,p+3)}getSortedSymbolIndexes(t){if(this.sortedAngle===t&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;const i=Math.sin(t),o=Math.cos(t),c=[],p=[],m=[];for(let y=0;y<this.symbolInstances.length;++y){m.push(y);const w=this.symbolInstances.get(y);c.push(0|Math.round(i*w.anchorX+o*w.anchorY)),p.push(w.featureIndex)}return m.sort((y,w)=>c[y]-c[w]||p[w]-p[y]),m}addToSortKeyRanges(t,i){const o=this.sortKeyRanges[this.sortKeyRanges.length-1];o&&o.sortKey===i?o.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:i,symbolInstanceStart:t,symbolInstanceEnd:t+1})}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const i of this.symbolInstanceIndexes){const o=this.symbolInstances.get(i);this.featureSortOrder.push(o.featureIndex),[o.rightJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.leftJustifiedTextSymbolIndex].forEach((c,p,m)=>{c>=0&&m.indexOf(c)===p&&this.addIndicesForPlacedSymbol(this.text,c)}),o.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,o.verticalPlacedTextSymbolIndex),o.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.placedIconSymbolIndex),o.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,o.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let Mg,Lg;st("SymbolBucket",La,{omit:["layers","collisionBoxArray","features","compareText"]}),La.MAX_GLYPHS=65535,La.addDynamicAttributes=Qp;var ed={get paint(){return Lg=Lg||new Mr({"icon-opacity":new ft(re.paint_symbol["icon-opacity"]),"icon-color":new ft(re.paint_symbol["icon-color"]),"icon-halo-color":new ft(re.paint_symbol["icon-halo-color"]),"icon-halo-width":new ft(re.paint_symbol["icon-halo-width"]),"icon-halo-blur":new ft(re.paint_symbol["icon-halo-blur"]),"icon-translate":new ct(re.paint_symbol["icon-translate"]),"icon-translate-anchor":new ct(re.paint_symbol["icon-translate-anchor"]),"text-opacity":new ft(re.paint_symbol["text-opacity"]),"text-color":new ft(re.paint_symbol["text-color"],{runtimeType:_r,getOverride:n=>n.textColor,hasOverride:n=>!!n.textColor}),"text-halo-color":new ft(re.paint_symbol["text-halo-color"]),"text-halo-width":new ft(re.paint_symbol["text-halo-width"]),"text-halo-blur":new ft(re.paint_symbol["text-halo-blur"]),"text-translate":new ct(re.paint_symbol["text-translate"]),"text-translate-anchor":new ct(re.paint_symbol["text-translate-anchor"])})},get layout(){return Mg=Mg||new Mr({"symbol-placement":new ct(re.layout_symbol["symbol-placement"]),"symbol-spacing":new ct(re.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new ct(re.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new ft(re.layout_symbol["symbol-sort-key"]),"symbol-z-order":new ct(re.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new ct(re.layout_symbol["icon-allow-overlap"]),"icon-overlap":new ct(re.layout_symbol["icon-overlap"]),"icon-ignore-placement":new ct(re.layout_symbol["icon-ignore-placement"]),"icon-optional":new ct(re.layout_symbol["icon-optional"]),"icon-rotation-alignment":new ct(re.layout_symbol["icon-rotation-alignment"]),"icon-size":new ft(re.layout_symbol["icon-size"]),"icon-text-fit":new ct(re.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new ct(re.layout_symbol["icon-text-fit-padding"]),"icon-image":new ft(re.layout_symbol["icon-image"]),"icon-rotate":new ft(re.layout_symbol["icon-rotate"]),"icon-padding":new ft(re.layout_symbol["icon-padding"]),"icon-keep-upright":new ct(re.layout_symbol["icon-keep-upright"]),"icon-offset":new ft(re.layout_symbol["icon-offset"]),"icon-anchor":new ft(re.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new ct(re.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new ct(re.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new ct(re.layout_symbol["text-rotation-alignment"]),"text-field":new ft(re.layout_symbol["text-field"]),"text-font":new ft(re.layout_symbol["text-font"]),"text-size":new ft(re.layout_symbol["text-size"]),"text-max-width":new ft(re.layout_symbol["text-max-width"]),"text-line-height":new ct(re.layout_symbol["text-line-height"]),"text-letter-spacing":new ft(re.layout_symbol["text-letter-spacing"]),"text-justify":new ft(re.layout_symbol["text-justify"]),"text-radial-offset":new ft(re.layout_symbol["text-radial-offset"]),"text-variable-anchor":new ct(re.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new ft(re.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new ft(re.layout_symbol["text-anchor"]),"text-max-angle":new ct(re.layout_symbol["text-max-angle"]),"text-writing-mode":new ct(re.layout_symbol["text-writing-mode"]),"text-rotate":new ft(re.layout_symbol["text-rotate"]),"text-padding":new ct(re.layout_symbol["text-padding"]),"text-keep-upright":new ct(re.layout_symbol["text-keep-upright"]),"text-transform":new ft(re.layout_symbol["text-transform"]),"text-offset":new ft(re.layout_symbol["text-offset"]),"text-allow-overlap":new ct(re.layout_symbol["text-allow-overlap"]),"text-overlap":new ct(re.layout_symbol["text-overlap"]),"text-ignore-placement":new ct(re.layout_symbol["text-ignore-placement"]),"text-optional":new ct(re.layout_symbol["text-optional"])})}};class Rg{constructor(t){if(t.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=t.property.overrides?t.property.overrides.runtimeType:mt,this.defaultValue=t}evaluate(t){if(t.formattedSection){const i=this.defaultValue.property.overrides;if(i&&i.hasOverride(t.formattedSection))return i.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}st("FormatSectionOverride",Rg,{omit:["defaultValue"]});class ch extends qi{constructor(t){super(t,ed)}recalculate(t,i){if(super.recalculate(t,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 o=this.layout.get("text-writing-mode");if(o){const c=[];for(const p of o)c.indexOf(p)<0&&c.push(p);this.layout._values["text-writing-mode"]=c}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(t,i,o,c){const p=this.layout.get(t).evaluate(i,{},o,c),m=this._unevaluatedLayout._values[t];return m.isDataDriven()||uo(m.value)||!p?p:function(y,w){return w.replace(/{([^{}]+)}/g,(E,L)=>y&&L in y?String(y[L]):"")}(i.properties,p)}createBucket(t){return new La(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const t of ed.paint.overridableProperties){if(!ch.hasPaintOverride(this.layout,t))continue;const i=this.paint.get(t),o=new Rg(i),c=new ua(o,i.property.specification);let p=null;p=i.value.kind==="constant"||i.value.kind==="source"?new vl("source",c):new pa("composite",c,i.value.zoomStops),this.paint._values[t]=new di(i.property,p,i.parameters)}}_handleOverridablePaintPropertyUpdate(t,i,o){return!(!this.layout||i.isDataDriven()||o.isDataDriven())&&ch.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,i){const o=t.get("text-field"),c=ed.paint.properties[i];let p=!1;const m=y=>{for(const w of y)if(c.overrides&&c.overrides.hasOverride(w))return void(p=!0)};if(o.value.kind==="constant"&&o.value.value instanceof bi)m(o.value.value.sections);else if(o.value.kind==="source"){const y=E=>{p||(E instanceof vt&&br(E.value)===Ws?m(E.value.sections):E instanceof Go?m(E.sections):E.eachChild(y))},w=o.value;w._styleExpression&&y(w._styleExpression.expression)}return p}}let zg;var nS={get paint(){return zg=zg||new Mr({"background-color":new ct(re.paint_background["background-color"]),"background-pattern":new Vl(re.paint_background["background-pattern"]),"background-opacity":new ct(re.paint_background["background-opacity"])})}};class sS extends qi{constructor(t){super(t,nS)}}let Dg;var oS={get paint(){return Dg=Dg||new Mr({"raster-opacity":new ct(re.paint_raster["raster-opacity"]),"raster-hue-rotate":new ct(re.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new ct(re.paint_raster["raster-brightness-min"]),"raster-brightness-max":new ct(re.paint_raster["raster-brightness-max"]),"raster-saturation":new ct(re.paint_raster["raster-saturation"]),"raster-contrast":new ct(re.paint_raster["raster-contrast"]),"raster-resampling":new ct(re.paint_raster["raster-resampling"]),"raster-fade-duration":new ct(re.paint_raster["raster-fade-duration"])})}};class aS extends qi{constructor(t){super(t,oS)}}class lS extends qi{constructor(t){super(t,{}),this.onAdd=i=>{this.implementation.onAdd&&this.implementation.onAdd(i,i.painter.context.gl)},this.onRemove=i=>{this.implementation.onRemove&&this.implementation.onRemove(i,i.painter.context.gl)},this.implementation=t}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 cS{constructor(t){this._methodToThrottle=t,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 uS={once:!0},td=63710088e-1;class Bs{constructor(t,i){if(isNaN(t)||isNaN(i))throw new Error(`Invalid LngLat object: (${t}, ${i})`);if(this.lng=+t,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 Bs(tn(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const i=Math.PI/180,o=this.lat*i,c=t.lat*i,p=Math.sin(o)*Math.sin(c)+Math.cos(o)*Math.cos(c)*Math.cos((t.lng-this.lng)*i);return td*Math.acos(Math.min(p,1))}static convert(t){if(t instanceof Bs)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new Bs(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t=="object"&&t!==null)return new Bs(Number("lng"in t?t.lng:t.lon),Number(t.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 Bg=2*Math.PI*td;function Vg(n){return Bg*Math.cos(n*Math.PI/180)}function Og(n){return(180+n)/360}function Fg(n){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+n*Math.PI/360)))/360}function Ng(n,t){return n/Vg(t)}function rd(n){return 360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90}function qg(n,t){return n*Vg(rd(t))}class sc{constructor(t,i,o=0){this.x=+t,this.y=+i,this.z=+o}static fromLngLat(t,i=0){const o=Bs.convert(t);return new sc(Og(o.lng),Fg(o.lat),Ng(i,o.lat))}toLngLat(){return new Bs(360*this.x-180,rd(this.y))}toAltitude(){return qg(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Bg*(t=rd(this.y),1/Math.cos(t*Math.PI/180));var t}}function Ug(n,t,i){var o=2*Math.PI*6378137/256/Math.pow(2,i);return[n*o-2*Math.PI*6378137/2,t*o-2*Math.PI*6378137/2]}class id{constructor(t,i,o){if(!function(c,p,m){return!(c<0||c>25||m<0||m>=Math.pow(2,c)||p<0||p>=Math.pow(2,c))}(t,i,o))throw new Error(`x=${i}, y=${o}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=i,this.y=o,this.key=Ra(0,t,t,i,o)}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,i,o){const c=(m=this.y,y=this.z,w=Ug(256*(p=this.x),256*(m=Math.pow(2,y)-m-1),y),E=Ug(256*(p+1),256*(m+1),y),w[0]+","+w[1]+","+E[0]+","+E[1]);var p,m,y,w,E;const L=function(V,q,j){let W,X="";for(let $=V;$>0;$--)W=1<<$-1,X+=(q&W?1:0)+(j&W?2:0);return X}(this.z,this.x,this.y);return t[(this.x+this.y)%t.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(o==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace(/{ratio}/g,i>1?"@2x":"").replace(/{quadkey}/g,L).replace(/{bbox-epsg-3857}/g,c)}isChildOf(t){const i=this.z-t.z;return i>0&&t.x===this.x>>i&&t.y===this.y>>i}getTilePoint(t){const i=Math.pow(2,this.z);return new T((t.x*i-this.x)*Ft,(t.y*i-this.y)*Ft)}toString(){return`${this.z}/${this.x}/${this.y}`}}class jg{constructor(t,i){this.wrap=t,this.canonical=i,this.key=Ra(t,i.z,i.z,i.x,i.y)}}class Xi{constructor(t,i,o,c,p){if(this.terrainRttPosMatrix32f=null,t<o)throw new Error(`overscaledZ should be >= z; overscaledZ = ${t}; z = ${o}`);this.overscaledZ=t,this.wrap=i,this.canonical=new id(o,+c,+p),this.key=Ra(i,t,o,c,p)}clone(){return new Xi(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const i=this.canonical.z-t;return t>this.canonical.z?new Xi(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Xi(t,this.wrap,t,this.canonical.x>>i,this.canonical.y>>i)}calculateScaledKey(t,i){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const o=this.canonical.z-t;return t>this.canonical.z?Ra(this.wrap*+i,t,this.canonical.z,this.canonical.x,this.canonical.y):Ra(this.wrap*+i,t,t,this.canonical.x>>o,this.canonical.y>>o)}isChildOf(t){if(t.wrap!==this.wrap)return!1;const i=this.canonical.z-t.canonical.z;return t.overscaledZ===0||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>i&&t.canonical.y===this.canonical.y>>i}children(t){if(this.overscaledZ>=t)return[new Xi(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const i=this.canonical.z+1,o=2*this.canonical.x,c=2*this.canonical.y;return[new Xi(i,this.wrap,i,o,c),new Xi(i,this.wrap,i,o+1,c),new Xi(i,this.wrap,i,o,c+1),new Xi(i,this.wrap,i,o+1,c+1)]}isLessThan(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))}wrapped(){return new Xi(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new Xi(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return Math.pow(2,this.overscaledZ-this.canonical.z)}toUnwrapped(){return new jg(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(t){return this.canonical.getTilePoint(new sc(t.x-this.wrap,t.y))}}function Ra(n,t,i,o,c){(n*=2)<0&&(n=-1*n-1);const p=1<<i;return(p*p*n+p*c+o).toString(36)+i.toString(36)+t.toString(36)}st("CanonicalTileID",id),st("OverscaledTileID",Xi,{omit:["terrainRttPosMatrix32f"]});class Hg{constructor(t,i,o,c=1,p=1,m=1,y=0){if(this.uid=t,i.height!==i.width)throw new RangeError("DEM tiles must be square");if(o&&!["mapbox","terrarium","custom"].includes(o))return void nt(`"${o}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);this.stride=i.height;const w=this.dim=i.height-2;switch(this.data=new Uint32Array(i.data.buffer),o){case"terrarium":this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case"custom":this.redFactor=c,this.greenFactor=p,this.blueFactor=m,this.baseShift=y;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4}for(let E=0;E<w;E++)this.data[this._idx(-1,E)]=this.data[this._idx(0,E)],this.data[this._idx(w,E)]=this.data[this._idx(w-1,E)],this.data[this._idx(E,-1)]=this.data[this._idx(E,0)],this.data[this._idx(E,w)]=this.data[this._idx(E,w-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(w,-1)]=this.data[this._idx(w-1,0)],this.data[this._idx(-1,w)]=this.data[this._idx(0,w-1)],this.data[this._idx(w,w)]=this.data[this._idx(w-1,w-1)],this.min=Number.MAX_SAFE_INTEGER,this.max=Number.MIN_SAFE_INTEGER;for(let E=0;E<w;E++)for(let L=0;L<w;L++){const V=this.get(E,L);V>this.max&&(this.max=V),V<this.min&&(this.min=V)}}get(t,i){const o=new Uint8Array(this.data.buffer),c=4*this._idx(t,i);return this.unpack(o[c],o[c+1],o[c+2])}getUnpackVector(){return[this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(t,i){if(t<-1||t>=this.dim+1||i<-1||i>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(i+1)*this.stride+(t+1)}unpack(t,i,o){return t*this.redFactor+i*this.greenFactor+o*this.blueFactor-this.baseShift}getPixels(){return new Ji({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,i,o){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let c=i*this.dim,p=i*this.dim+this.dim,m=o*this.dim,y=o*this.dim+this.dim;switch(i){case-1:c=p-1;break;case 1:p=c+1}switch(o){case-1:m=y-1;break;case 1:y=m+1}const w=-i*this.dim,E=-o*this.dim;for(let L=m;L<y;L++)for(let V=c;V<p;V++)this.data[this._idx(V,L)]=t.data[this._idx(V+w,L+E)]}}st("DEMData",Hg);class Wg{constructor(t){this._stringToNumber={},this._numberToString=[];for(let i=0;i<t.length;i++){const o=t[i];this._stringToNumber[o]=i,this._numberToString[i]=o}}encode(t){return this._stringToNumber[t]}decode(t){if(t>=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class Zg{constructor(t,i,o,c,p){this.type="Feature",this._vectorTileFeature=t,t._z=i,t._x=o,t._y=c,this.properties=t.properties,this.id=p}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(t){this._geometry=t}toJSON(){const t={geometry:this.geometry};for(const i in this)i!=="_geometry"&&i!=="_vectorTileFeature"&&(t[i]=this[i]);return t}}class Kg{constructor(t,i){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Is(Ft,16,0),this.grid3D=new Is(Ft,16,0),this.featureIndexArray=new Re,this.promoteId=i}insert(t,i,o,c,p,m){const y=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(o,c,p);const w=m?this.grid3D:this.grid;for(let E=0;E<i.length;E++){const L=i[E],V=[1/0,1/0,-1/0,-1/0];for(let q=0;q<L.length;q++){const j=L[q];V[0]=Math.min(V[0],j.x),V[1]=Math.min(V[1],j.y),V[2]=Math.max(V[2],j.x),V[3]=Math.max(V[3],j.y)}V[0]<Ft&&V[1]<Ft&&V[2]>=0&&V[3]>=0&&w.insert(y,V[0],V[1],V[2],V[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new $l.VectorTile(new Wp(this.rawTileData)).layers,this.sourceLayerCoder=new Wg(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(t,i,o,c){this.loadVTLayers();const p=t.params,m=Ft/t.tileSize/t.scale,y=mo(p.filter),w=t.queryGeometry,E=t.queryPadding*m,L=Jg(w),V=this.grid.query(L.minX-E,L.minY-E,L.maxX+E,L.maxY+E),q=Jg(t.cameraQueryGeometry),j=this.grid3D.query(q.minX-E,q.minY-E,q.maxX+E,q.maxY+E,($,ae,_e,ue)=>function(U,Y,de,Ce,je){for(const Ve of U)if(Y<=Ve.x&&de<=Ve.y&&Ce>=Ve.x&&je>=Ve.y)return!0;const Me=[new T(Y,de),new T(Y,je),new T(Ce,je),new T(Ce,de)];if(U.length>2){for(const Ve of Me)if(Po(U,Ve))return!0}for(let Ve=0;Ve<U.length-1;Ve++)if(Yw(U[Ve],U[Ve+1],Me))return!0;return!1}(t.cameraQueryGeometry,$-E,ae-E,_e+E,ue+E));for(const $ of j)V.push($);V.sort(hS);const W={};let X;for(let $=0;$<V.length;$++){const ae=V[$];if(ae===X)continue;X=ae;const _e=this.featureIndexArray.get(ae);let ue=null;this.loadMatchingFeature(W,_e.bucketIndex,_e.sourceLayerIndex,_e.featureIndex,y,p.layers,p.availableImages,i,o,c,(U,Y,de)=>(ue||(ue=Co(U)),Y.queryIntersectsFeature({queryGeometry:w,feature:U,featureState:de,geometry:ue,zoom:this.z,transform:t.transform,pixelsToTileUnits:m,pixelPosMatrix:t.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:t.getElevation})))}return W}loadMatchingFeature(t,i,o,c,p,m,y,w,E,L,V){const q=this.bucketLayerIDs[i];if(m&&!q.some($=>m.has($)))return;const j=this.sourceLayerCoder.decode(o),W=this.vtLayers[j].feature(c);if(p.needGeometry){const $=Eo(W,!0);if(!p.filter(new ir(this.tileID.overscaledZ),$,this.tileID.canonical))return}else if(!p.filter(new ir(this.tileID.overscaledZ),W))return;const X=this.getId(W,j);for(let $=0;$<q.length;$++){const ae=q[$];if(m&&!m.has(ae))continue;const _e=w[ae];if(!_e)continue;let ue={};X&&L&&(ue=L.getState(_e.sourceLayer||"_geojsonTileLayer",X));const U=ii({},E[ae]);U.paint=Gg(U.paint,_e.paint,W,ue,y),U.layout=Gg(U.layout,_e.layout,W,ue,y);const Y=!V||V(W,_e,ue);if(!Y)continue;const de=new Zg(W,this.z,this.x,this.y,X);de.layer=U;let Ce=t[ae];Ce===void 0&&(Ce=t[ae]=[]),Ce.push({featureIndex:c,feature:de,intersectionZ:Y})}}lookupSymbolFeatures(t,i,o,c,p,m,y,w){const E={};this.loadVTLayers();const L=mo(p);for(const V of t)this.loadMatchingFeature(E,o,c,V,L,m,y,w,i);return E}hasLayer(t){for(const i of this.bucketLayerIDs)for(const o of i)if(t===o)return!0;return!1}getId(t,i){var o;let c=t.id;return this.promoteId&&(c=t.properties[typeof this.promoteId=="string"?this.promoteId:this.promoteId[i]],typeof c=="boolean"&&(c=Number(c)),c===void 0&&(!((o=t.properties)===null||o===void 0)&&o.cluster)&&this.promoteId&&(c=Number(t.properties.cluster_id))),c}}function Gg(n,t,i,o,c){return Zi(n,(p,m)=>{const y=t instanceof ka?t.get(m):null;return y&&y.evaluate?y.evaluate(i,o,c):y})}function Jg(n){let t=1/0,i=1/0,o=-1/0,c=-1/0;for(const p of n)t=Math.min(t,p.x),i=Math.min(i,p.y),o=Math.max(o,p.x),c=Math.max(c,p.y);return{minX:t,minY:i,maxX:o,maxY:c}}function hS(n,t){return t-n}function Xg(n,t,i,o,c){const p=[];for(let m=0;m<n.length;m++){const y=n[m];let w;for(let E=0;E<y.length-1;E++){let L=y[E],V=y[E+1];L.x<t&&V.x<t||(L.x<t?L=new T(t,L.y+(t-L.x)/(V.x-L.x)*(V.y-L.y))._round():V.x<t&&(V=new T(t,L.y+(t-L.x)/(V.x-L.x)*(V.y-L.y))._round()),L.y<i&&V.y<i||(L.y<i?L=new T(L.x+(i-L.y)/(V.y-L.y)*(V.x-L.x),i)._round():V.y<i&&(V=new T(L.x+(i-L.y)/(V.y-L.y)*(V.x-L.x),i)._round()),L.x>=o&&V.x>=o||(L.x>=o?L=new T(o,L.y+(o-L.x)/(V.x-L.x)*(V.y-L.y))._round():V.x>=o&&(V=new T(o,L.y+(o-L.x)/(V.x-L.x)*(V.y-L.y))._round()),L.y>=c&&V.y>=c||(L.y>=c?L=new T(L.x+(c-L.y)/(V.y-L.y)*(V.x-L.x),c)._round():V.y>=c&&(V=new T(L.x+(c-L.y)/(V.y-L.y)*(V.x-L.x),c)._round()),w&&L.equals(w[w.length-1])||(w=[L],p.push(w)),w.push(V)))))}}return p}st("FeatureIndex",Kg,{omit:["rawTileData","sourceLayerCoder"]});class Vs extends T{constructor(t,i,o,c){super(t,i),this.angle=o,c!==void 0&&(this.segment=c)}clone(){return new Vs(this.x,this.y,this.angle,this.segment)}}function Qg(n,t,i,o,c){if(t.segment===void 0||i===0)return!0;let p=t,m=t.segment+1,y=0;for(;y>-i/2;){if(m--,m<0)return!1;y-=n[m].dist(p),p=n[m]}y+=n[m].dist(n[m+1]),m++;const w=[];let E=0;for(;y<i/2;){const L=n[m],V=n[m+1];if(!V)return!1;let q=n[m-1].angleTo(L)-L.angleTo(V);for(q=Math.abs((q+3*Math.PI)%(2*Math.PI)-Math.PI),w.push({distance:y,angleDelta:q}),E+=q;y-w[0].distance>o;)E-=w.shift().angleDelta;if(E>c)return!1;m++,y+=L.dist(V)}return!0}function Yg(n){let t=0;for(let i=0;i<n.length-1;i++)t+=n[i].dist(n[i+1]);return t}function $g(n,t,i){return n?.6*t*i:0}function ey(n,t){return Math.max(n?n.right-n.left:0,t?t.right-t.left:0)}function pS(n,t,i,o,c,p){const m=$g(i,c,p),y=ey(i,o)*p;let w=0;const E=Yg(n)/2;for(let L=0;L<n.length-1;L++){const V=n[L],q=n[L+1],j=V.dist(q);if(w+j>E){const W=(E-w)/j,X=nn.number(V.x,q.x,W),$=nn.number(V.y,q.y,W),ae=new Vs(X,$,q.angleTo(V),L);return ae._round(),!m||Qg(n,ae,y,m,t)?ae:void 0}w+=j}}function dS(n,t,i,o,c,p,m,y,w){const E=$g(o,p,m),L=ey(o,c),V=L*m,q=n[0].x===0||n[0].x===w||n[0].y===0||n[0].y===w;return t-V<t/4&&(t=V+t/4),ty(n,q?t/2*y%t:(L/2+2*p)*m*y%t,t,E,i,V,q,!1,w)}function ty(n,t,i,o,c,p,m,y,w){const E=p/2,L=Yg(n);let V=0,q=t-i,j=[];for(let W=0;W<n.length-1;W++){const X=n[W],$=n[W+1],ae=X.dist($),_e=$.angleTo(X);for(;q+i<V+ae;){q+=i;const ue=(q-V)/ae,U=nn.number(X.x,$.x,ue),Y=nn.number(X.y,$.y,ue);if(U>=0&&U<w&&Y>=0&&Y<w&&q-E>=0&&q+E<=L){const de=new Vs(U,Y,_e,W);de._round(),o&&!Qg(n,de,p,o,c)||j.push(de)}}V+=ae}return y||j.length||m||(j=ty(n,V/2,i,o,c,p,m,!0,w)),j}st("Anchor",Vs);const oc=Mi;function ry(n,t,i,o){const c=[],p=n.image,m=p.pixelRatio,y=p.paddedRect.w-2*oc,w=p.paddedRect.h-2*oc;let E={x1:n.left,y1:n.top,x2:n.right,y2:n.bottom};const L=p.stretchX||[[0,y]],V=p.stretchY||[[0,w]],q=(Fe,ot)=>Fe+ot[1]-ot[0],j=L.reduce(q,0),W=V.reduce(q,0),X=y-j,$=w-W;let ae=0,_e=j,ue=0,U=W,Y=0,de=X,Ce=0,je=$;if(p.content&&o){const Fe=p.content,ot=Fe[2]-Fe[0],pt=Fe[3]-Fe[1];(p.textFitWidth||p.textFitHeight)&&(E=Eg(n)),ae=uh(L,0,Fe[0]),ue=uh(V,0,Fe[1]),_e=uh(L,Fe[0],Fe[2]),U=uh(V,Fe[1],Fe[3]),Y=Fe[0]-ae,Ce=Fe[1]-ue,de=ot-_e,je=pt-U}const Me=E.x1,Ve=E.y1,Ke=E.x2-Me,He=E.y2-Ve,Ge=(Fe,ot,pt,ut)=>{const lt=hh(Fe.stretch-ae,_e,Ke,Me),Rt=ph(Fe.fixed-Y,de,Fe.stretch,j),wr=hh(ot.stretch-ue,U,He,Ve),Nr=ph(ot.fixed-Ce,je,ot.stretch,W),li=hh(pt.stretch-ae,_e,Ke,Me),Qi=ph(pt.fixed-Y,de,pt.stretch,j),Li=hh(ut.stretch-ue,U,He,Ve),ei=ph(ut.fixed-Ce,je,ut.stretch,W),dr=new T(lt,wr),Kr=new T(li,wr),ti=new T(li,Li),ri=new T(lt,Li),wi=new T(Rt/m,Nr/m),Yi=new T(Qi/m,ei/m),Gr=t*Math.PI/180;if(Gr){const Jr=Math.sin(Gr),Xr=Math.cos(Gr),zr=[Xr,-Jr,Jr,Xr];dr._matMult(zr),Kr._matMult(zr),ri._matMult(zr),ti._matMult(zr)}const Ri=Fe.stretch+Fe.fixed,qr=ot.stretch+ot.fixed;return{tl:dr,tr:Kr,bl:ri,br:ti,tex:{x:p.paddedRect.x+oc+Ri,y:p.paddedRect.y+oc+qr,w:pt.stretch+pt.fixed-Ri,h:ut.stretch+ut.fixed-qr},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:wi,pixelOffsetBR:Yi,minFontScaleX:de/m/Ke,minFontScaleY:je/m/He,isSDF:i}};if(o&&(p.stretchX||p.stretchY)){const Fe=iy(L,X,j),ot=iy(V,$,W);for(let pt=0;pt<Fe.length-1;pt++){const ut=Fe[pt],lt=Fe[pt+1];for(let Rt=0;Rt<ot.length-1;Rt++)c.push(Ge(ut,ot[Rt],lt,ot[Rt+1]))}}else c.push(Ge({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:y+1},{fixed:0,stretch:w+1}));return c}function uh(n,t,i){let o=0;for(const c of n)o+=Math.max(t,Math.min(i,c[1]))-Math.max(t,Math.min(i,c[0]));return o}function iy(n,t,i){const o=[{fixed:-1,stretch:0}];for(const[c,p]of n){const m=o[o.length-1];o.push({fixed:c-m.stretch,stretch:m.stretch}),o.push({fixed:c-m.stretch,stretch:m.stretch+(p-c)})}return o.push({fixed:t+oc,stretch:i}),o}function hh(n,t,i,o){return n/t*i+o}function ph(n,t,i,o){return n-t*i/o}class dh{constructor(t,i,o,c,p,m,y,w,E,L){var V;if(this.boxStartIndex=t.length,E){let q=m.top,j=m.bottom;const W=m.collisionPadding;W&&(q-=W[1],j+=W[3]);let X=j-q;X>0&&(X=Math.max(10,X),this.circleDiameter=X)}else{const q=!((V=m.image)===null||V===void 0)&&V.content&&(m.image.textFitWidth||m.image.textFitHeight)?Eg(m):{x1:m.left,y1:m.top,x2:m.right,y2:m.bottom};q.y1=q.y1*y-w[0],q.y2=q.y2*y+w[2],q.x1=q.x1*y-w[3],q.x2=q.x2*y+w[1];const j=m.collisionPadding;if(j&&(q.x1-=j[0]*y,q.y1-=j[1]*y,q.x2+=j[2]*y,q.y2+=j[3]*y),L){const W=new T(q.x1,q.y1),X=new T(q.x2,q.y1),$=new T(q.x1,q.y2),ae=new T(q.x2,q.y2),_e=L*Math.PI/180;W._rotate(_e),X._rotate(_e),$._rotate(_e),ae._rotate(_e),q.x1=Math.min(W.x,X.x,$.x,ae.x),q.x2=Math.max(W.x,X.x,$.x,ae.x),q.y1=Math.min(W.y,X.y,$.y,ae.y),q.y2=Math.max(W.y,X.y,$.y,ae.y)}t.emplaceBack(i.x,i.y,q.x1,q.y1,q.x2,q.y2,o,c,p)}this.boxEndIndex=t.length}}class fS{constructor(t=[],i=(o,c)=>o<c?-1:o>c?1:0){if(this.data=t,this.length=this.data.length,this.compare=i,this.length>0)for(let o=(this.length>>1)-1;o>=0;o--)this._down(o)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(this.length===0)return;const t=this.data[0],i=this.data.pop();return--this.length>0&&(this.data[0]=i,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:i,compare:o}=this,c=i[t];for(;t>0;){const p=t-1>>1,m=i[p];if(o(c,m)>=0)break;i[t]=m,t=p}i[t]=c}_down(t){const{data:i,compare:o}=this,c=this.length>>1,p=i[t];for(;t<c;){let m=1+(t<<1);const y=m+1;if(y<this.length&&o(i[y],i[m])<0&&(m=y),o(i[m],p)>=0)break;i[t]=i[m],t=m}i[t]=p}}function mS(n,t=1,i=!1){let o=1/0,c=1/0,p=-1/0,m=-1/0;const y=n[0];for(let j=0;j<y.length;j++){const W=y[j];(!j||W.x<o)&&(o=W.x),(!j||W.y<c)&&(c=W.y),(!j||W.x>p)&&(p=W.x),(!j||W.y>m)&&(m=W.y)}const w=Math.min(p-o,m-c);let E=w/2;const L=new fS([],gS);if(w===0)return new T(o,c);for(let j=o;j<p;j+=w)for(let W=c;W<m;W+=w)L.push(new za(j+E,W+E,E,n));let V=function(j){let W=0,X=0,$=0;const ae=j[0];for(let _e=0,ue=ae.length,U=ue-1;_e<ue;U=_e++){const Y=ae[_e],de=ae[U],Ce=Y.x*de.y-de.x*Y.y;X+=(Y.x+de.x)*Ce,$+=(Y.y+de.y)*Ce,W+=3*Ce}return new za(X/W,$/W,0,j)}(n),q=L.length;for(;L.length;){const j=L.pop();(j.d>V.d||!V.d)&&(V=j,i&&console.log("found best %d after %d probes",Math.round(1e4*j.d)/1e4,q)),j.max-V.d<=t||(E=j.h/2,L.push(new za(j.p.x-E,j.p.y-E,E,n)),L.push(new za(j.p.x+E,j.p.y-E,E,n)),L.push(new za(j.p.x-E,j.p.y+E,E,n)),L.push(new za(j.p.x+E,j.p.y+E,E,n)),q+=4)}return i&&(console.log(`num probes: ${q}`),console.log(`best distance: ${V.d}`)),V.p}function gS(n,t){return t.max-n.max}function za(n,t,i,o){this.p=new T(n,t),this.h=i,this.d=function(c,p){let m=!1,y=1/0;for(let w=0;w<p.length;w++){const E=p[w];for(let L=0,V=E.length,q=V-1;L<V;q=L++){const j=E[L],W=E[q];j.y>c.y!=W.y>c.y&&c.x<(W.x-j.x)*(c.y-j.y)/(W.y-j.y)+j.x&&(m=!m),y=Math.min(y,Vm(c,j,W))}}return(m?1:-1)*Math.sqrt(y)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}var ai;x.aB=void 0,(ai=x.aB||(x.aB={}))[ai.center=1]="center",ai[ai.left=2]="left",ai[ai.right=3]="right",ai[ai.top=4]="top",ai[ai.bottom=5]="bottom",ai[ai["top-left"]=6]="top-left",ai[ai["top-right"]=7]="top-right",ai[ai["bottom-left"]=8]="bottom-left",ai[ai["bottom-right"]=9]="bottom-right";const Os=7,nd=Number.POSITIVE_INFINITY;function ny(n,t){return t[1]!==nd?function(i,o,c){let p=0,m=0;switch(o=Math.abs(o),c=Math.abs(c),i){case"top-right":case"top-left":case"top":m=c-Os;break;case"bottom-right":case"bottom-left":case"bottom":m=-c+Os}switch(i){case"top-right":case"bottom-right":case"right":p=-o;break;case"top-left":case"bottom-left":case"left":p=o}return[p,m]}(n,t[0],t[1]):function(i,o){let c=0,p=0;o<0&&(o=0);const m=o/Math.SQRT2;switch(i){case"top-right":case"top-left":p=m-Os;break;case"bottom-right":case"bottom-left":p=-m+Os;break;case"bottom":p=-o+Os;break;case"top":p=o-Os}switch(i){case"top-right":case"bottom-right":c=-m;break;case"top-left":case"bottom-left":c=m;break;case"left":c=o;break;case"right":c=-o}return[c,p]}(n,t[0])}function sy(n,t,i){var o;const c=n.layout,p=(o=c.get("text-variable-anchor-offset"))===null||o===void 0?void 0:o.evaluate(t,{},i);if(p){const y=p.values,w=[];for(let E=0;E<y.length;E+=2){const L=w[E]=y[E],V=y[E+1].map(q=>q*Fr);L.startsWith("top")?V[1]-=Os:L.startsWith("bottom")&&(V[1]+=Os),w[E+1]=V}return new pi(w)}const m=c.get("text-variable-anchor");if(m){let y;y=n._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[c.get("text-radial-offset").evaluate(t,{},i)*Fr,nd]:c.get("text-offset").evaluate(t,{},i).map(E=>E*Fr);const w=[];for(const E of m)w.push(E,ny(E,y));return new pi(w)}return null}function sd(n){switch(n){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function yS(n,t,i,o,c,p,m,y,w,E,L,V){let q=p.textMaxSize.evaluate(t,{});q===void 0&&(q=m);const j=n.layers[0].layout,W=j.get("icon-offset").evaluate(t,{},L),X=ay(i.horizontal),$=m/24,ae=n.tilePixelRatio*$,_e=n.tilePixelRatio*q/24,ue=n.tilePixelRatio*y,U=n.tilePixelRatio*j.get("symbol-spacing"),Y=j.get("text-padding")*n.tilePixelRatio,de=function(pt,ut,lt,Rt=1){const wr=pt.get("icon-padding").evaluate(ut,{},lt),Nr=wr&&wr.values;return[Nr[0]*Rt,Nr[1]*Rt,Nr[2]*Rt,Nr[3]*Rt]}(j,t,L,n.tilePixelRatio),Ce=j.get("text-max-angle")/180*Math.PI,je=j.get("text-rotation-alignment")!=="viewport"&&j.get("symbol-placement")!=="point",Me=j.get("icon-rotation-alignment")==="map"&&j.get("symbol-placement")!=="point",Ve=j.get("symbol-placement"),Ke=U/2,He=j.get("icon-text-fit");let Ge;o&&He!=="none"&&(n.allowVerticalPlacement&&i.vertical&&(Ge=Pg(o,i.vertical,He,j.get("icon-text-fit-padding"),W,$)),X&&(o=Pg(o,X,He,j.get("icon-text-fit-padding"),W,$)));const Fe=L?V.line.getGranularityForZoomLevel(L.z):1,ot=(pt,ut)=>{ut.x<0||ut.x>=Ft||ut.y<0||ut.y>=Ft||function(lt,Rt,wr,Nr,li,Qi,Li,ei,dr,Kr,ti,ri,wi,Yi,Gr,Ri,qr,Jr,Xr,zr,sr,xn,Da,bn,bS){const Ba=lt.addToLineVertexArray(Rt,wr);let Lo,Va,Oa,Fa,hy=0,py=0,dy=0,fy=0,dd=-1,fd=-1;const as={};let my=yn("");if(lt.allowVerticalPlacement&&Nr.vertical){const mi=ei.layout.get("text-rotate").evaluate(sr,{},bn)+90;Oa=new dh(dr,Rt,Kr,ti,ri,Nr.vertical,wi,Yi,Gr,mi),Li&&(Fa=new dh(dr,Rt,Kr,ti,ri,Li,qr,Jr,Gr,mi))}if(li){const mi=ei.layout.get("icon-rotate").evaluate(sr,{}),$i=ei.layout.get("icon-text-fit")!=="none",Ro=ry(li,mi,Da,$i),wn=Li?ry(Li,mi,Da,$i):void 0;Va=new dh(dr,Rt,Kr,ti,ri,li,qr,Jr,!1,mi),hy=4*Ro.length;const zo=lt.iconSizeData;let Vn=null;zo.kind==="source"?(Vn=[Bn*ei.layout.get("icon-size").evaluate(sr,{})],Vn[0]>Ds&&nt(`${lt.layerIds[0]}: Value for "icon-size" is >= ${nc}. Reduce your "icon-size".`)):zo.kind==="composite"&&(Vn=[Bn*xn.compositeIconSizes[0].evaluate(sr,{},bn),Bn*xn.compositeIconSizes[1].evaluate(sr,{},bn)],(Vn[0]>Ds||Vn[1]>Ds)&&nt(`${lt.layerIds[0]}: Value for "icon-size" is >= ${nc}. Reduce your "icon-size".`)),lt.addSymbols(lt.icon,Ro,Vn,zr,Xr,sr,x.al.none,Rt,Ba.lineStartIndex,Ba.lineLength,-1,bn),dd=lt.icon.placedSymbolArray.length-1,wn&&(py=4*wn.length,lt.addSymbols(lt.icon,wn,Vn,zr,Xr,sr,x.al.vertical,Rt,Ba.lineStartIndex,Ba.lineLength,-1,bn),fd=lt.icon.placedSymbolArray.length-1)}const gy=Object.keys(Nr.horizontal);for(const mi of gy){const $i=Nr.horizontal[mi];if(!Lo){my=yn($i.text);const wn=ei.layout.get("text-rotate").evaluate(sr,{},bn);Lo=new dh(dr,Rt,Kr,ti,ri,$i,wi,Yi,Gr,wn)}const Ro=$i.positionedLines.length===1;if(dy+=oy(lt,Rt,$i,Qi,ei,Gr,sr,Ri,Ba,Nr.vertical?x.al.horizontal:x.al.horizontalOnly,Ro?gy:[mi],as,dd,xn,bn),Ro)break}Nr.vertical&&(fy+=oy(lt,Rt,Nr.vertical,Qi,ei,Gr,sr,Ri,Ba,x.al.vertical,["vertical"],as,fd,xn,bn));const vS=Lo?Lo.boxStartIndex:lt.collisionBoxArray.length,wS=Lo?Lo.boxEndIndex:lt.collisionBoxArray.length,SS=Oa?Oa.boxStartIndex:lt.collisionBoxArray.length,AS=Oa?Oa.boxEndIndex:lt.collisionBoxArray.length,kS=Va?Va.boxStartIndex:lt.collisionBoxArray.length,TS=Va?Va.boxEndIndex:lt.collisionBoxArray.length,CS=Fa?Fa.boxStartIndex:lt.collisionBoxArray.length,ES=Fa?Fa.boxEndIndex:lt.collisionBoxArray.length;let vn=-1;const mh=(mi,$i)=>mi&&mi.circleDiameter?Math.max(mi.circleDiameter,$i):$i;vn=mh(Lo,vn),vn=mh(Oa,vn),vn=mh(Va,vn),vn=mh(Fa,vn);const yy=vn>-1?1:0;yy&&(vn*=bS/Fr),lt.glyphOffsetArray.length>=La.MAX_GLYPHS&&nt("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),sr.sortKey!==void 0&<.addToSortKeyRanges(lt.symbolInstances.length,sr.sortKey);const PS=sy(ei,sr,bn),[IS,MS]=function(mi,$i){const Ro=mi.length,wn=$i==null?void 0:$i.values;if((wn==null?void 0:wn.length)>0)for(let zo=0;zo<wn.length;zo+=2){const Vn=wn[zo+1];mi.emplaceBack(x.aB[wn[zo]],Vn[0],Vn[1])}return[Ro,mi.length]}(lt.textAnchorOffsets,PS);lt.symbolInstances.emplaceBack(Rt.x,Rt.y,as.right>=0?as.right:-1,as.center>=0?as.center:-1,as.left>=0?as.left:-1,as.vertical||-1,dd,fd,my,vS,wS,SS,AS,kS,TS,CS,ES,Kr,dy,fy,hy,py,yy,0,wi,vn,IS,MS)}(n,ut,pt,i,o,c,Ge,n.layers[0],n.collisionBoxArray,t.index,t.sourceLayerIndex,n.index,ae,[Y,Y,Y,Y],je,w,ue,de,Me,W,t,p,E,L,m)};if(Ve==="line")for(const pt of Xg(t.geometry,0,0,Ft,Ft)){const ut=Mo(pt,Fe),lt=dS(ut,U,Ce,i.vertical||X,o,24,_e,n.overscaling,Ft);for(const Rt of lt)X&&_S(n,X.text,Ke,Rt)||ot(ut,Rt)}else if(Ve==="line-center"){for(const pt of t.geometry)if(pt.length>1){const ut=Mo(pt,Fe),lt=pS(ut,Ce,i.vertical||X,o,24,_e);lt&&ot(ut,lt)}}else if(t.type==="Polygon")for(const pt of Yo(t.geometry,0)){const ut=mS(pt,16);ot(Mo(pt[0],Fe,!0),new Vs(ut.x,ut.y,0))}else if(t.type==="LineString")for(const pt of t.geometry){const ut=Mo(pt,Fe);ot(ut,new Vs(ut[0].x,ut[0].y,0))}else if(t.type==="Point")for(const pt of t.geometry)for(const ut of pt)ot([ut],new Vs(ut.x,ut.y,0))}function oy(n,t,i,o,c,p,m,y,w,E,L,V,q,j,W){const X=function(_e,ue,U,Y,de,Ce,je,Me){const Ve=Y.layout.get("text-rotate").evaluate(Ce,{})*Math.PI/180,Ke=[];for(const He of ue.positionedLines)for(const Ge of He.positionedGlyphs){if(!Ge.rect)continue;const Fe=Ge.rect||{};let ot=W2+1,pt=!0,ut=1,lt=0;const Rt=(de||Me)&&Ge.vertical,wr=Ge.metrics.advance*Ge.scale/2;if(Me&&ue.verticalizable&&(lt=He.lineOffset/2-(Ge.imageName?-(Fr-Ge.metrics.width*Ge.scale)/2:(Ge.scale-1)*Fr)),Ge.imageName){const Jr=je[Ge.imageName];pt=Jr.sdf,ut=Jr.pixelRatio,ot=Mi/ut}const Nr=de?[Ge.x+wr,Ge.y]:[0,0];let li=de?[0,0]:[Ge.x+wr+U[0],Ge.y+U[1]-lt],Qi=[0,0];Rt&&(Qi=li,li=[0,0]);const Li=Ge.metrics.isDoubleResolution?2:1,ei=(Ge.metrics.left-ot)*Ge.scale-wr+li[0],dr=(-Ge.metrics.top-ot)*Ge.scale+li[1],Kr=ei+Fe.w/Li*Ge.scale/ut,ti=dr+Fe.h/Li*Ge.scale/ut,ri=new T(ei,dr),wi=new T(Kr,dr),Yi=new T(ei,ti),Gr=new T(Kr,ti);if(Rt){const Jr=new T(-wr,wr-sh),Xr=-Math.PI/2,zr=Fr/2-wr,sr=new T(5-sh-zr,-(Ge.imageName?zr:0)),xn=new T(...Qi);ri._rotateAround(Xr,Jr)._add(sr)._add(xn),wi._rotateAround(Xr,Jr)._add(sr)._add(xn),Yi._rotateAround(Xr,Jr)._add(sr)._add(xn),Gr._rotateAround(Xr,Jr)._add(sr)._add(xn)}if(Ve){const Jr=Math.sin(Ve),Xr=Math.cos(Ve),zr=[Xr,-Jr,Jr,Xr];ri._matMult(zr),wi._matMult(zr),Yi._matMult(zr),Gr._matMult(zr)}const Ri=new T(0,0),qr=new T(0,0);Ke.push({tl:ri,tr:wi,bl:Yi,br:Gr,tex:Fe,writingMode:ue.writingMode,glyphOffset:Nr,sectionIndex:Ge.sectionIndex,isSDF:pt,pixelOffsetTL:Ri,pixelOffsetBR:qr,minFontScaleX:0,minFontScaleY:0})}return Ke}(0,i,y,c,p,m,o,n.allowVerticalPlacement),$=n.textSizeData;let ae=null;$.kind==="source"?(ae=[Bn*c.layout.get("text-size").evaluate(m,{})],ae[0]>Ds&&nt(`${n.layerIds[0]}: Value for "text-size" is >= ${nc}. Reduce your "text-size".`)):$.kind==="composite"&&(ae=[Bn*j.compositeTextSizes[0].evaluate(m,{},W),Bn*j.compositeTextSizes[1].evaluate(m,{},W)],(ae[0]>Ds||ae[1]>Ds)&&nt(`${n.layerIds[0]}: Value for "text-size" is >= ${nc}. Reduce your "text-size".`)),n.addSymbols(n.text,X,ae,y,p,m,E,t,w.lineStartIndex,w.lineLength,q,W);for(const _e of L)V[_e]=n.text.placedSymbolArray.length-1;return 4*X.length}function ay(n){for(const t in n)return n[t];return null}function _S(n,t,i,o){const c=n.compareText;if(t in c){const p=c[t];for(let m=p.length-1;m>=0;m--)if(o.dist(p[m])<i)return!0}else c[t]=[];return c[t].push(o),!1}const ly=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class od{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[i,o]=new Uint8Array(t,0,2);if(i!==219)throw new Error("Data does not appear to be in a KDBush format.");const c=o>>4;if(c!==1)throw new Error(`Got v${c} data when expected v1.`);const p=ly[15&o];if(!p)throw new Error("Unrecognized array type.");const[m]=new Uint16Array(t,2,1),[y]=new Uint32Array(t,4,1);return new od(y,m,p,t)}constructor(t,i=64,o=Float64Array,c){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+i,2),65535),this.ArrayType=o,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const p=ly.indexOf(this.ArrayType),m=2*t*this.ArrayType.BYTES_PER_ELEMENT,y=t*this.IndexArrayType.BYTES_PER_ELEMENT,w=(8-y%8)%8;if(p<0)throw new Error(`Unexpected typed array class: ${o}.`);c&&c instanceof ArrayBuffer?(this.data=c,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+y+w,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+m+y+w),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+y+w,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+p]),new Uint16Array(this.data,2,1)[0]=i,new Uint32Array(this.data,4,1)[0]=t)}add(t,i){const o=this._pos>>1;return this.ids[o]=o,this.coords[this._pos++]=t,this.coords[this._pos++]=i,o}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return ad(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,i,o,c){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:p,coords:m,nodeSize:y}=this,w=[0,p.length-1,0],E=[];for(;w.length;){const L=w.pop()||0,V=w.pop()||0,q=w.pop()||0;if(V-q<=y){for(let $=q;$<=V;$++){const ae=m[2*$],_e=m[2*$+1];ae>=t&&ae<=o&&_e>=i&&_e<=c&&E.push(p[$])}continue}const j=q+V>>1,W=m[2*j],X=m[2*j+1];W>=t&&W<=o&&X>=i&&X<=c&&E.push(p[j]),(L===0?t<=W:i<=X)&&(w.push(q),w.push(j-1),w.push(1-L)),(L===0?o>=W:c>=X)&&(w.push(j+1),w.push(V),w.push(1-L))}return E}within(t,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:c,coords:p,nodeSize:m}=this,y=[0,c.length-1,0],w=[],E=o*o;for(;y.length;){const L=y.pop()||0,V=y.pop()||0,q=y.pop()||0;if(V-q<=m){for(let $=q;$<=V;$++)uy(p[2*$],p[2*$+1],t,i)<=E&&w.push(c[$]);continue}const j=q+V>>1,W=p[2*j],X=p[2*j+1];uy(W,X,t,i)<=E&&w.push(c[j]),(L===0?t-o<=W:i-o<=X)&&(y.push(q),y.push(j-1),y.push(1-L)),(L===0?t+o>=W:i+o>=X)&&(y.push(j+1),y.push(V),y.push(1-L))}return w}}function ad(n,t,i,o,c,p){if(c-o<=i)return;const m=o+c>>1;cy(n,t,m,o,c,p),ad(n,t,i,o,m-1,1-p),ad(n,t,i,m+1,c,1-p)}function cy(n,t,i,o,c,p){for(;c>o;){if(c-o>600){const E=c-o+1,L=i-o+1,V=Math.log(E),q=.5*Math.exp(2*V/3),j=.5*Math.sqrt(V*q*(E-q)/E)*(L-E/2<0?-1:1);cy(n,t,i,Math.max(o,Math.floor(i-L*q/E+j)),Math.min(c,Math.floor(i+(E-L)*q/E+j)),p)}const m=t[2*i+p];let y=o,w=c;for(ac(n,t,o,i),t[2*c+p]>m&&ac(n,t,o,c);y<w;){for(ac(n,t,y,w),y++,w--;t[2*y+p]<m;)y++;for(;t[2*w+p]>m;)w--}t[2*o+p]===m?ac(n,t,o,w):(w++,ac(n,t,w,c)),w<=i&&(o=w+1),i<=w&&(c=w-1)}}function ac(n,t,i,o){ld(n,i,o),ld(t,2*i,2*o),ld(t,2*i+1,2*o+1)}function ld(n,t,i){const o=n[t];n[t]=n[i],n[i]=o}function uy(n,t,i,o){const c=n-i,p=t-o;return c*c+p*p}var cd;x.co=void 0,(cd=x.co||(x.co={})).create="create",cd.load="load",cd.fullLoad="fullLoad";let fh=null,lc=[];const ud=1e3/60,hd="loadTime",pd="fullLoadTime",xS={mark(n){performance.mark(n)},frame(n){const t=n;fh!=null&&lc.push(t-fh),fh=t},clearMetrics(){fh=null,lc=[],performance.clearMeasures(hd),performance.clearMeasures(pd);for(const n in x.co)performance.clearMarks(x.co[n])},getPerformanceMetrics(){performance.measure(hd,x.co.create,x.co.load),performance.measure(pd,x.co.create,x.co.fullLoad);const n=performance.getEntriesByName(hd)[0].duration,t=performance.getEntriesByName(pd)[0].duration,i=lc.length,o=1/(lc.reduce((p,m)=>p+m,0)/i/1e3),c=lc.filter(p=>p>ud).reduce((p,m)=>p+(m-ud)/ud,0);return{loadTime:n,fullLoadTime:t,fps:o,percentDroppedFrames:c/(i+c)*100,totalFrames:i}}};x.$=sc,x.A=Pe,x.B=nn,x.C=ir,x.D=ct,x.E=xe,x.F=_p,x.G=function(n){if(wt==null){const t=n.navigator?n.navigator.userAgent:null;wt=!!n.safari||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match("Safari")&&!t.match("Chrome")))}return wt},x.H=class{constructor(n,t){this.target=n,this.mapId=t,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new cS(()=>this.process()),this.subscription=_i(this.target,"message",i=>this.receive(i),!1),this.globalScope=xt(self)?n:window}registerMessageHandler(n,t){this.messageHandlers[n]=t}sendAsync(n,t){return new Promise((i,o)=>{const c=Math.round(1e18*Math.random()).toString(36).substring(0,10),p=t?_i(t.signal,"abort",()=>{p==null||p.unsubscribe(),delete this.resolveRejects[c];const w={id:c,type:"<cancel>",origin:location.origin,targetMapId:n.targetMapId,sourceMapId:this.mapId};this.target.postMessage(w)},uS):null;this.resolveRejects[c]={resolve:w=>{p==null||p.unsubscribe(),i(w)},reject:w=>{p==null||p.unsubscribe(),o(w)}};const m=[],y=Object.assign(Object.assign({},n),{id:c,sourceMapId:this.mapId,origin:location.origin,data:Ms(n.data,m)});this.target.postMessage(y,{transfer:m})})}receive(n){const t=n.data,i=t.id;if(!(t.origin!=="file://"&&location.origin!=="file://"&&t.origin!=="resource://android"&&location.origin!=="resource://android"&&t.origin!==location.origin||t.targetMapId&&this.mapId!==t.targetMapId)){if(t.type==="<cancel>"){delete this.tasks[i];const o=this.abortControllers[i];return delete this.abortControllers[i],void(o&&o.abort())}if(xt(self)||t.mustQueue)return this.tasks[i]=t,this.taskQueue.push(i),void this.invoker.trigger();this.processTask(i,t)}}process(){if(this.taskQueue.length===0)return;const n=this.taskQueue.shift(),t=this.tasks[n];delete this.tasks[n],this.taskQueue.length>0&&this.invoker.trigger(),t&&this.processTask(n,t)}processTask(n,t){return s(this,void 0,void 0,function*(){if(t.type==="<response>"){const c=this.resolveRejects[n];return delete this.resolveRejects[n],c?void(t.error?c.reject(xo(t.error)):c.resolve(xo(t.data))):void 0}if(!this.messageHandlers[t.type])return void this.completeTask(n,new Error(`Could not find a registered handler for ${t.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const i=xo(t.data),o=new AbortController;this.abortControllers[n]=o;try{const c=yield this.messageHandlers[t.type](t.sourceMapId,i,o);this.completeTask(n,null,c)}catch(c){this.completeTask(n,c)}})}completeTask(n,t,i){const o=[];delete this.abortControllers[n];const c={id:n,type:"<response>",sourceMapId:this.mapId,origin:location.origin,error:t?Ms(t):null,data:Ms(i,o)};this.target.postMessage(c,{transfer:o})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},x.I=Kp,x.J=yr,x.K=function(){var n=new Pe(16);return Pe!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0),n[0]=1,n[5]=1,n[10]=1,n[15]=1,n},x.L=function(n,t,i){var o,c,p,m,y,w,E,L,V,q,j,W,X=i[0],$=i[1],ae=i[2];return t===n?(n[12]=t[0]*X+t[4]*$+t[8]*ae+t[12],n[13]=t[1]*X+t[5]*$+t[9]*ae+t[13],n[14]=t[2]*X+t[6]*$+t[10]*ae+t[14],n[15]=t[3]*X+t[7]*$+t[11]*ae+t[15]):(c=t[1],p=t[2],m=t[3],y=t[4],w=t[5],E=t[6],L=t[7],V=t[8],q=t[9],j=t[10],W=t[11],n[0]=o=t[0],n[1]=c,n[2]=p,n[3]=m,n[4]=y,n[5]=w,n[6]=E,n[7]=L,n[8]=V,n[9]=q,n[10]=j,n[11]=W,n[12]=o*X+y*$+V*ae+t[12],n[13]=c*X+w*$+q*ae+t[13],n[14]=p*X+E*$+j*ae+t[14],n[15]=m*X+L*$+W*ae+t[15]),n},x.M=function(n,t,i){var o=i[0],c=i[1],p=i[2];return n[0]=t[0]*o,n[1]=t[1]*o,n[2]=t[2]*o,n[3]=t[3]*o,n[4]=t[4]*c,n[5]=t[5]*c,n[6]=t[6]*c,n[7]=t[7]*c,n[8]=t[8]*p,n[9]=t[9]*p,n[10]=t[10]*p,n[11]=t[11]*p,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},x.N=function(n,t,i){var o=t[0],c=t[1],p=t[2],m=t[3],y=t[4],w=t[5],E=t[6],L=t[7],V=t[8],q=t[9],j=t[10],W=t[11],X=t[12],$=t[13],ae=t[14],_e=t[15],ue=i[0],U=i[1],Y=i[2],de=i[3];return n[0]=ue*o+U*y+Y*V+de*X,n[1]=ue*c+U*w+Y*q+de*$,n[2]=ue*p+U*E+Y*j+de*ae,n[3]=ue*m+U*L+Y*W+de*_e,n[4]=(ue=i[4])*o+(U=i[5])*y+(Y=i[6])*V+(de=i[7])*X,n[5]=ue*c+U*w+Y*q+de*$,n[6]=ue*p+U*E+Y*j+de*ae,n[7]=ue*m+U*L+Y*W+de*_e,n[8]=(ue=i[8])*o+(U=i[9])*y+(Y=i[10])*V+(de=i[11])*X,n[9]=ue*c+U*w+Y*q+de*$,n[10]=ue*p+U*E+Y*j+de*ae,n[11]=ue*m+U*L+Y*W+de*_e,n[12]=(ue=i[12])*o+(U=i[13])*y+(Y=i[14])*V+(de=i[15])*X,n[13]=ue*c+U*w+Y*q+de*$,n[14]=ue*p+U*E+Y*j+de*ae,n[15]=ue*m+U*L+Y*W+de*_e,n},x.O=function(n,t){const i={};for(let o=0;o<t.length;o++){const c=t[o];c in n&&(i[c]=n[c])}return i},x.P=T,x.Q=Bs,x.R=Ji,x.S=Fg,x.T=Zu,x.U=Og,x.V=Se,x.W=ee,x.X=Ht,x.Y=Xi,x.Z=Ft,x._=s,x.a=Ar,x.a$=function(n,t,i){var o=Math.sin(i),c=Math.cos(i),p=t[4],m=t[5],y=t[6],w=t[7],E=t[8],L=t[9],V=t[10],q=t[11];return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[4]=p*c+E*o,n[5]=m*c+L*o,n[6]=y*c+V*o,n[7]=w*c+q*o,n[8]=E*c-p*o,n[9]=L*c-m*o,n[10]=V*c-y*o,n[11]=q*c-w*o,n},x.a0=25,x.a1=id,x.a2=n=>{const t=window.document.createElement("video");return t.muted=!0,new Promise(i=>{t.onloadstart=()=>{i(t)};for(const o of n){const c=window.document.createElement("source");ve(o)||(t.crossOrigin="Anonymous"),c.src=o,t.appendChild(c)}})},x.a3=Be,x.a4=function(){return Tn++},x.a5=oe,x.a6=La,x.a7=mo,x.a8=Eo,x.a9=Zg,x.aA=function(n,t,i,o,c=!1){if(!i[0]&&!i[1])return[0,0];const p=c?o==="map"?-n.bearingInRadians:0:o==="viewport"?n.bearingInRadians:0;if(p){const m=Math.sin(p),y=Math.cos(p);i=[i[0]*y-i[1]*m,i[0]*m+i[1]*y]}return[c?i[0]:en(t,i[0],n.zoom),c?i[1]:en(t,i[1],n.zoom)]},x.aC=Xp,x.aD=sd,x.aE=Jp,x.aF=od,x.aG=cr,x.aH=rh,x.aI=ze,x.aJ=jt,x.aK=Ut,x.aL=tn,x.aM=Ti,x.aN=qg,x.aO=function(n,t,i){return n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i,n},x.aP=function(n,t,i){return n[0]=t[0]+i[0],n[1]=t[1]+i[1],n[2]=t[2]+i[2],n},x.aQ=function(n){var t=new Pe(3);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t},x.aR=function(n,t,i){return n[0]=t[0]*i[0],n[1]=t[1]*i[1],n[2]=t[2]*i[2],n[3]=t[3]*i[3],n},x.aS=function(n,t,i){return n[0]=t[0]-i[0],n[1]=t[1]-i[1],n[2]=t[2]-i[2],n},x.aT=function(n,t){var i=t[0],o=t[1],c=t[2],p=i*i+o*o+c*c;return p>0&&(p=1/Math.sqrt(p)),n[0]=t[0]*p,n[1]=t[1]*p,n[2]=t[2]*p,n},x.aU=function(n,t,i){var o=t[0],c=t[1],p=t[2],m=i[0],y=i[1],w=i[2];return n[0]=c*w-p*y,n[1]=p*m-o*w,n[2]=o*y-c*m,n},x.aV=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]},x.aW=jg,x.aX=Ra,x.aY=function(n,t,i,o,c){var p,m=1/Math.tan(t/2);return n[0]=m/i,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=m,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,c!=null&&c!==1/0?(n[10]=(c+o)*(p=1/(o-c)),n[14]=2*c*o*p):(n[10]=-1,n[14]=-2*o),n},x.aZ=function(n){var t=new Pe(16);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],t},x.a_=function(n,t,i){var o=Math.sin(i),c=Math.cos(i),p=t[0],m=t[1],y=t[2],w=t[3],E=t[4],L=t[5],V=t[6],q=t[7];return t!==n&&(n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=p*c+E*o,n[1]=m*c+L*o,n[2]=y*c+V*o,n[3]=w*c+q*o,n[4]=E*c-p*o,n[5]=L*c-m*o,n[6]=V*c-y*o,n[7]=q*c-w*o,n},x.aa=function(n){const t={};if(n.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(i,o,c,p)=>{const m=c||p;return t[o]=!m||m.toLowerCase(),""}),t["max-age"]){const i=parseInt(t["max-age"],10);isNaN(i)?delete t["max-age"]:t["max-age"]=i}return t},x.ab=gr,x.ac=function(n){return Math.pow(2,n)},x.ad=Ze,x.ae=Dr,x.af=85.051129,x.ag=Ng,x.ah=function(n){return Math.log(n)/Math.LN2},x.ai=function(n){var t=n[0],i=n[1];return t*t+i*i},x.aj=function(n,t){const i=[];for(const o in n)o in t||i.push(o);return i},x.ak=function(n,t){let i=0,o=0;if(n.kind==="constant")o=n.layoutSize;else if(n.kind!=="source"){const{interpolationType:c,minZoom:p,maxZoom:m}=n,y=c?Dr(si.interpolationFactor(c,t,p,m),0,1):0;n.kind==="camera"?o=nn.number(n.minSize,n.maxSize,y):i=y}return{uSizeT:i,uSize:o}},x.am=function(n,{uSize:t,uSizeT:i},{lowerSize:o,upperSize:c}){return n.kind==="source"?o/Bn:n.kind==="composite"?nn.number(o/Bn,c/Bn,i):t},x.an=function(n,t){var i=t[0],o=t[1],c=t[2],p=t[3],m=t[4],y=t[5],w=t[6],E=t[7],L=t[8],V=t[9],q=t[10],j=t[11],W=t[12],X=t[13],$=t[14],ae=t[15],_e=i*y-o*m,ue=i*w-c*m,U=i*E-p*m,Y=o*w-c*y,de=o*E-p*y,Ce=c*E-p*w,je=L*X-V*W,Me=L*$-q*W,Ve=L*ae-j*W,Ke=V*$-q*X,He=V*ae-j*X,Ge=q*ae-j*$,Fe=_e*Ge-ue*He+U*Ke+Y*Ve-de*Me+Ce*je;return Fe?(n[0]=(y*Ge-w*He+E*Ke)*(Fe=1/Fe),n[1]=(c*He-o*Ge-p*Ke)*Fe,n[2]=(X*Ce-$*de+ae*Y)*Fe,n[3]=(q*de-V*Ce-j*Y)*Fe,n[4]=(w*Ve-m*Ge-E*Me)*Fe,n[5]=(i*Ge-c*Ve+p*Me)*Fe,n[6]=($*U-W*Ce-ae*ue)*Fe,n[7]=(L*Ce-q*U+j*ue)*Fe,n[8]=(m*He-y*Ve+E*je)*Fe,n[9]=(o*Ve-i*He-p*je)*Fe,n[10]=(W*de-X*U+ae*_e)*Fe,n[11]=(V*U-L*de-j*_e)*Fe,n[12]=(y*Me-m*Ke-w*je)*Fe,n[13]=(i*Ke-o*Me+c*je)*Fe,n[14]=(X*ue-W*Y-$*_e)*Fe,n[15]=(L*Y-V*ue+q*_e)*Fe,n):null},x.ao=Sr,x.ap=function(n){return Math.hypot(n[0],n[1])},x.aq=function(n){return n[0]=0,n[1]=0,n},x.ar=function(n,t,i){return n[0]=t[0]*i,n[1]=t[1]*i,n},x.as=Qp,x.at=It,x.au=function(n,t,i,o){const c=t.y-n.y,p=t.x-n.x,m=o.y-i.y,y=o.x-i.x,w=m*p-y*c;if(w===0)return null;const E=(y*(n.y-i.y)-m*(n.x-i.x))/w;return new T(n.x+E*p,n.y+E*c)},x.av=Xg,x.aw=Dm,x.ax=function(n){let t=1/0,i=1/0,o=-1/0,c=-1/0;for(const p of n)t=Math.min(t,p.x),i=Math.min(i,p.y),o=Math.max(o,p.x),c=Math.max(c,p.y);return[t,i,o,c]},x.ay=Fr,x.az=en,x.b=kt,x.b$=class extends J{},x.b0=function(){const n=new Float32Array(16);return Ze(n),n},x.b1=function(){const n=new Float64Array(16);return Ze(n),n},x.b2=function(){return new Float64Array(16)},x.b3=function(n,t,i){const o=new Float64Array(4);return function(c,p,m,y){var w=.5*Math.PI/180;p*=w,m*=w,y*=w;var E=Math.sin(p),L=Math.cos(p),V=Math.sin(m),q=Math.cos(m),j=Math.sin(y),W=Math.cos(y);c[0]=E*q*W-L*V*j,c[1]=L*V*W+E*q*j,c[2]=L*q*j-E*V*W,c[3]=L*q*W+E*V*j}(o,n,t-90,i),o},x.b4=function(n,t,i,o){var c,p,m,y,w,E=t[0],L=t[1],V=t[2],q=t[3],j=i[0],W=i[1],X=i[2],$=i[3];return(p=E*j+L*W+V*X+q*$)<0&&(p=-p,j=-j,W=-W,X=-X,$=-$),1-p>pe?(c=Math.acos(p),m=Math.sin(c),y=Math.sin((1-o)*c)/m,w=Math.sin(o*c)/m):(y=1-o,w=o),n[0]=y*E+w*j,n[1]=y*L+w*W,n[2]=y*V+w*X,n[3]=y*q+w*$,n},x.b5=function(n){const t=new Float64Array(9);var i,o,c,p,m,y,w,E,L,V,q,j,W,X,$,ae,_e,ue;V=(c=(o=n)[0])*(w=c+c),q=(p=o[1])*w,W=(m=o[2])*w,X=m*(E=p+p),ae=(y=o[3])*w,_e=y*E,ue=y*(L=m+m),(i=t)[0]=1-(j=p*E)-($=m*L),i[3]=q-ue,i[6]=W+_e,i[1]=q+ue,i[4]=1-V-$,i[7]=X-ae,i[2]=W-_e,i[5]=X+ae,i[8]=1-V-j;const U=Ti(-Math.asin(Dr(t[2],-1,1)));let Y,de;return Math.hypot(t[5],t[8])<.001?(Y=0,de=-Ti(Math.atan2(t[3],t[4]))):(Y=Ti(t[5]===0&&t[8]===0?0:Math.atan2(t[5],t[8])),de=Ti(t[1]===0&&t[0]===0?0:Math.atan2(t[1],t[0]))),{roll:Y,pitch:U+90,bearing:de}},x.b6=function(n,t){return n.roll==t.roll&&n.pitch==t.pitch&&n.bearing==t.bearing},x.b7=Dt,x.b8=Ta,x.b9=Ia,x.bA=function(n){if(n.type==="custom")return new lS(n);switch(n.type){case"background":return new sS(n);case"circle":return new e2(n);case"fill":return new x2(n);case"fill-extrusion":return new C2(n);case"heatmap":return new r2(n);case"hillshade":return new n2(n);case"line":return new D2(n);case"raster":return new aS(n);case"symbol":return new ch(n)}},x.bB=ci,x.bC=function(n,t){if(!n)return[{command:"setStyle",args:[t]}];let i=[];try{if(!ke(n.version,t.version))return[{command:"setStyle",args:[t]}];ke(n.center,t.center)||i.push({command:"setCenter",args:[t.center]}),ke(n.state,t.state)||i.push({command:"setGlobalState",args:[t.state]}),ke(n.centerAltitude,t.centerAltitude)||i.push({command:"setCenterAltitude",args:[t.centerAltitude]}),ke(n.zoom,t.zoom)||i.push({command:"setZoom",args:[t.zoom]}),ke(n.bearing,t.bearing)||i.push({command:"setBearing",args:[t.bearing]}),ke(n.pitch,t.pitch)||i.push({command:"setPitch",args:[t.pitch]}),ke(n.roll,t.roll)||i.push({command:"setRoll",args:[t.roll]}),ke(n.sprite,t.sprite)||i.push({command:"setSprite",args:[t.sprite]}),ke(n.glyphs,t.glyphs)||i.push({command:"setGlyphs",args:[t.glyphs]}),ke(n.transition,t.transition)||i.push({command:"setTransition",args:[t.transition]}),ke(n.light,t.light)||i.push({command:"setLight",args:[t.light]}),ke(n.terrain,t.terrain)||i.push({command:"setTerrain",args:[t.terrain]}),ke(n.sky,t.sky)||i.push({command:"setSky",args:[t.sky]}),ke(n.projection,t.projection)||i.push({command:"setProjection",args:[t.projection]});const o={},c=[];(function(m,y,w,E){let L;for(L in y=y||{},m=m||{})Object.prototype.hasOwnProperty.call(m,L)&&(Object.prototype.hasOwnProperty.call(y,L)||Ue(L,w,E));for(L in y)Object.prototype.hasOwnProperty.call(y,L)&&(Object.prototype.hasOwnProperty.call(m,L)?ke(m[L],y[L])||(m[L].type==="geojson"&&y[L].type==="geojson"&&tt(m,y,L)?Ie(w,{command:"setGeoJSONSourceData",args:[L,y[L].data]}):$e(L,y,w,E)):Ae(L,y,w))})(n.sources,t.sources,c,o);const p=[];n.layers&&n.layers.forEach(m=>{"source"in m&&o[m.source]?i.push({command:"removeLayer",args:[m.id]}):p.push(m)}),i=i.concat(c),function(m,y,w){y=y||[];const E=(m=m||[]).map(St),L=y.map(St),V=m.reduce(yt,{}),q=y.reduce(yt,{}),j=E.slice(),W=Object.create(null);let X,$,ae,_e,ue;for(let U=0,Y=0;U<E.length;U++)X=E[U],Object.prototype.hasOwnProperty.call(q,X)?Y++:(Ie(w,{command:"removeLayer",args:[X]}),j.splice(j.indexOf(X,Y),1));for(let U=0,Y=0;U<L.length;U++)X=L[L.length-1-U],j[j.length-1-U]!==X&&(Object.prototype.hasOwnProperty.call(V,X)?(Ie(w,{command:"removeLayer",args:[X]}),j.splice(j.lastIndexOf(X,j.length-Y),1)):Y++,_e=j[j.length-U],Ie(w,{command:"addLayer",args:[q[X],_e]}),j.splice(j.length-U,0,X),W[X]=!0);for(let U=0;U<L.length;U++)if(X=L[U],$=V[X],ae=q[X],!W[X]&&!ke($,ae))if(ke($.source,ae.source)&&ke($["source-layer"],ae["source-layer"])&&ke($.type,ae.type)){for(ue in ht($.layout,ae.layout,w,X,null,"setLayoutProperty"),ht($.paint,ae.paint,w,X,null,"setPaintProperty"),ke($.filter,ae.filter)||Ie(w,{command:"setFilter",args:[X,ae.filter]}),ke($.minzoom,ae.minzoom)&&ke($.maxzoom,ae.maxzoom)||Ie(w,{command:"setLayerZoomRange",args:[X,ae.minzoom,ae.maxzoom]}),$)Object.prototype.hasOwnProperty.call($,ue)&&ue!=="layout"&&ue!=="paint"&&ue!=="filter"&&ue!=="metadata"&&ue!=="minzoom"&&ue!=="maxzoom"&&(ue.indexOf("paint.")===0?ht($[ue],ae[ue],w,X,ue.slice(6),"setPaintProperty"):ke($[ue],ae[ue])||Ie(w,{command:"setLayerProperty",args:[X,ue,ae[ue]]}));for(ue in ae)Object.prototype.hasOwnProperty.call(ae,ue)&&!Object.prototype.hasOwnProperty.call($,ue)&&ue!=="layout"&&ue!=="paint"&&ue!=="filter"&&ue!=="metadata"&&ue!=="minzoom"&&ue!=="maxzoom"&&(ue.indexOf("paint.")===0?ht($[ue],ae[ue],w,X,ue.slice(6),"setPaintProperty"):ke($[ue],ae[ue])||Ie(w,{command:"setLayerProperty",args:[X,ue,ae[ue]]}))}else Ie(w,{command:"removeLayer",args:[X]}),_e=j[j.lastIndexOf(X)+1],Ie(w,{command:"addLayer",args:[ae,_e]})}(p,t.layers,i)}catch(o){console.warn("Unable to compute style diff:",o),i=[{command:"setStyle",args:[t]}]}return i},x.bD=function(n){const t=[],i=n.id;return i===void 0&&t.push({message:`layers.${i}: missing required property "id"`}),n.render===void 0&&t.push({message:`layers.${i}: missing required method "render"`}),n.renderingMode&&n.renderingMode!=="2d"&&n.renderingMode!=="3d"&&t.push({message:`layers.${i}: property "renderingMode" must be either "2d" or "3d"`}),t},x.bE=function n(t,i){if(Array.isArray(t)){if(!Array.isArray(i)||t.length!==i.length)return!1;for(let o=0;o<t.length;o++)if(!n(t[o],i[o]))return!1;return!0}if(typeof t=="object"&&t!==null&&i!==null){if(typeof i!="object"||Object.keys(t).length!==Object.keys(i).length)return!1;for(const o in t)if(!n(t[o],i[o]))return!1;return!0}return t===i},x.bF=Zi,x.bG=Un,x.bH=class extends nr{constructor(n,t){super(n,t),this.current=0}set(n){this.current!==n&&(this.current=n,this.gl.uniform1i(this.location,n))}},x.bI=Qu,x.bJ=class extends nr{constructor(n,t){super(n,t),this.current=Ap}set(n){if(n[12]!==this.current[12]||n[0]!==this.current[0])return this.current=n,void this.gl.uniformMatrix4fv(this.location,!1,n);for(let t=1;t<16;t++)if(n[t]!==this.current[t]){this.current=n,this.gl.uniformMatrix4fv(this.location,!1,n);break}}},x.bK=Xu,x.bL=class extends nr{constructor(n,t){super(n,t),this.current=[0,0,0]}set(n){n[0]===this.current[0]&&n[1]===this.current[1]&&n[2]===this.current[2]||(this.current=n,this.gl.uniform3f(this.location,n[0],n[1],n[2]))}},x.bM=class extends nr{constructor(n,t){super(n,t),this.current=[0,0]}set(n){n[0]===this.current[0]&&n[1]===this.current[1]||(this.current=n,this.gl.uniform2f(this.location,n[0],n[1]))}},x.bN=De,x.bO=function(n,t){var i=Math.sin(t),o=Math.cos(t);return n[0]=o,n[1]=i,n[2]=0,n[3]=-i,n[4]=o,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n},x.bP=function(n,t,i){var o=t[0],c=t[1],p=t[2];return n[0]=o*i[0]+c*i[3]+p*i[6],n[1]=o*i[1]+c*i[4]+p*i[7],n[2]=o*i[2]+c*i[5]+p*i[8],n},x.bQ=function(n,t,i,o,c,p,m){var y=1/(t-i),w=1/(o-c),E=1/(p-m);return n[0]=-2*y,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*w,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*E,n[11]=0,n[12]=(t+i)*y,n[13]=(c+o)*w,n[14]=(m+p)*E,n[15]=1,n},x.bR=class extends nr{constructor(n,t){super(n,t),this.current=new Array}set(n){if(n!=this.current){this.current=n;const t=new Float32Array(4*n.length);for(let i=0;i<n.length;i++)t[4*i]=n[i].r,t[4*i+1]=n[i].g,t[4*i+2]=n[i].b,t[4*i+3]=n[i].a;this.gl.uniform4fv(this.location,t)}}},x.bS=class extends nr{constructor(n,t){super(n,t),this.current=new Array}set(n){if(n!=this.current){this.current=n;const t=new Float32Array(n);this.gl.uniform1fv(this.location,t)}}},x.bT=class extends h{},x.bU=F2,x.bV=class extends b{},x.bW=Mp,x.bX=function(n){return n<=1?1:Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},x.bY=Wm,x.bZ=function(n,t,i){var o=t[0],c=t[1],p=t[2],m=i[3]*o+i[7]*c+i[11]*p+i[15];return n[0]=(i[0]*o+i[4]*c+i[8]*p+i[12])/(m=m||1),n[1]=(i[1]*o+i[5]*c+i[9]*p+i[13])/m,n[2]=(i[2]*o+i[6]*c+i[10]*p+i[14])/m,n},x.b_=class extends ns{},x.ba=Ql,x.bb=Pa,x.bc=kn,x.bd=ki,x.be=vi,x.bf=function(n,t,i,o,c){return kn(o,c,Dr((n-t)/(i-t),0,1))},x.bg=Ur,x.bh=function(){return new Float64Array(3)},x.bi=function(n,t,i,o){return n[0]=t[0]+i[0]*o,n[1]=t[1]+i[1]*o,n[2]=t[2]+i[2]*o,n},x.bj=bt,x.bk=function(){return new Float64Array(4)},x.bl=function(n,t,i,o){var c=[],p=[];return c[0]=t[0]-i[0],c[1]=t[1]-i[1],c[2]=t[2]-i[2],p[0]=c[0]*Math.cos(o)-c[1]*Math.sin(o),p[1]=c[0]*Math.sin(o)+c[1]*Math.cos(o),p[2]=c[2],n[0]=p[0]+i[0],n[1]=p[1]+i[1],n[2]=p[2]+i[2],n},x.bm=function(n,t,i,o){var c=[],p=[];return c[0]=t[0]-i[0],c[1]=t[1]-i[1],c[2]=t[2]-i[2],p[0]=c[0],p[1]=c[1]*Math.cos(o)-c[2]*Math.sin(o),p[2]=c[1]*Math.sin(o)+c[2]*Math.cos(o),n[0]=p[0]+i[0],n[1]=p[1]+i[1],n[2]=p[2]+i[2],n},x.bn=function(n,t,i,o){var c=[],p=[];return c[0]=t[0]-i[0],c[1]=t[1]-i[1],c[2]=t[2]-i[2],p[0]=c[2]*Math.sin(o)+c[0]*Math.cos(o),p[1]=c[1],p[2]=c[2]*Math.cos(o)-c[0]*Math.sin(o),n[0]=p[0]+i[0],n[1]=p[1]+i[1],n[2]=p[2]+i[2],n},x.bo=rt,x.bp=function(n,t,i){var o=Math.sin(i),c=Math.cos(i),p=t[0],m=t[1],y=t[2],w=t[3],E=t[8],L=t[9],V=t[10],q=t[11];return t!==n&&(n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15]),n[0]=p*c-E*o,n[1]=m*c-L*o,n[2]=y*c-V*o,n[3]=w*c-q*o,n[8]=p*o+E*c,n[9]=m*o+L*c,n[10]=y*o+V*c,n[11]=w*o+q*c,n},x.bq=function(n,t){const i=Ur(n,360),o=Ur(t,360),c=o-i,p=o>i?c-360:c+360;return Math.abs(c)<Math.abs(p)?c:p},x.br=function(n){return n[0]=0,n[1]=0,n[2]=0,n},x.bs=function(n,t,i,o){const c=Math.sqrt(n*n+t*t),p=Math.sqrt(i*i+o*o);n/=c,t/=c,i/=p,o/=p;const m=Math.acos(n*i+t*o);return-t*i+n*o>0?m:-m},x.bt=function(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]},x.bu=td,x.bv=function(n,t){const i=Ur(n,2*Math.PI),o=Ur(t,2*Math.PI);return Math.min(Math.abs(i-o),Math.abs(i-o+2*Math.PI),Math.abs(i-o-2*Math.PI))},x.bw=function(){const n={},t=re.$version;for(const i in re.$root){const o=re.$root[i];if(o.required){let c=null;c=i==="version"?t:o.type==="array"?[]:{},c!=null&&(n[i]=c)}}return n},x.bx=Rl,x.by=Zt,x.bz=function(n){n=n.slice();const t=Object.create(null);for(let i=0;i<n.length;i++)t[n[i].id]=n[i];for(let i=0;i<n.length;i++)"ref"in n[i]&&(n[i]=we(n[i],t[n[i].ref]));return n},x.c=_t,x.c0=function(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]},x.c1=function(n,t){var i=n[0],o=n[1],c=n[2],p=n[3],m=n[4],y=n[5],w=n[6],E=n[7],L=n[8],V=n[9],q=n[10],j=n[11],W=n[12],X=n[13],$=n[14],ae=n[15],_e=t[0],ue=t[1],U=t[2],Y=t[3],de=t[4],Ce=t[5],je=t[6],Me=t[7],Ve=t[8],Ke=t[9],He=t[10],Ge=t[11],Fe=t[12],ot=t[13],pt=t[14],ut=t[15];return Math.abs(i-_e)<=pe*Math.max(1,Math.abs(i),Math.abs(_e))&&Math.abs(o-ue)<=pe*Math.max(1,Math.abs(o),Math.abs(ue))&&Math.abs(c-U)<=pe*Math.max(1,Math.abs(c),Math.abs(U))&&Math.abs(p-Y)<=pe*Math.max(1,Math.abs(p),Math.abs(Y))&&Math.abs(m-de)<=pe*Math.max(1,Math.abs(m),Math.abs(de))&&Math.abs(y-Ce)<=pe*Math.max(1,Math.abs(y),Math.abs(Ce))&&Math.abs(w-je)<=pe*Math.max(1,Math.abs(w),Math.abs(je))&&Math.abs(E-Me)<=pe*Math.max(1,Math.abs(E),Math.abs(Me))&&Math.abs(L-Ve)<=pe*Math.max(1,Math.abs(L),Math.abs(Ve))&&Math.abs(V-Ke)<=pe*Math.max(1,Math.abs(V),Math.abs(Ke))&&Math.abs(q-He)<=pe*Math.max(1,Math.abs(q),Math.abs(He))&&Math.abs(j-Ge)<=pe*Math.max(1,Math.abs(j),Math.abs(Ge))&&Math.abs(W-Fe)<=pe*Math.max(1,Math.abs(W),Math.abs(Fe))&&Math.abs(X-ot)<=pe*Math.max(1,Math.abs(X),Math.abs(ot))&&Math.abs($-pt)<=pe*Math.max(1,Math.abs($),Math.abs(pt))&&Math.abs(ae-ut)<=pe*Math.max(1,Math.abs(ae),Math.abs(ut))},x.c2=function(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},x.c3=n=>n.type==="symbol",x.c4=n=>n.type==="circle",x.c5=n=>n.type==="heatmap",x.c6=n=>n.type==="line",x.c7=n=>n.type==="fill",x.c8=n=>n.type==="fill-extrusion",x.c9=n=>n.type==="hillshade",x.cA=Bp,x.cB=qp,x.cC=$l,x.cD=Wp,x.cE=class{constructor(n){this._marks={start:[n.url,"start"].join("#"),end:[n.url,"end"].join("#"),measure:n.url.toString()},performance.mark(this._marks.start)}finish(){performance.mark(this._marks.end);let n=performance.getEntriesByName(this._marks.measure);return n.length===0&&(performance.measure(this._marks.measure,this._marks.start,this._marks.end),n=performance.getEntriesByName(this._marks.measure),performance.clearMarks(this._marks.start),performance.clearMarks(this._marks.end),performance.clearMeasures(this._marks.measure)),n}},x.cF=function(n,t,i,o,c){return s(this,void 0,void 0,function*(){if(ee())try{return yield Ht(n,t,i,o,c)}catch{}return function(p,m,y,w,E){const L=p.width,V=p.height;Jt&&Br||(Jt=new OffscreenCanvas(L,V),Br=Jt.getContext("2d",{willReadFrequently:!0})),Jt.width=L,Jt.height=V,Br.drawImage(p,0,0,L,V);const q=Br.getImageData(m,y,w,E);return Br.clearRect(0,0,L,V),q.data}(n,t,i,o,c)})},x.cG=Hg,x.cH=B,x.cI=H,x.cJ=lg,x.cK=bg,x.cL=ha,x.cM=gn,x.ca=n=>n.type==="raster",x.cb=n=>n.type==="background",x.cc=n=>n.type==="custom",x.cd=cs,x.ce=function(n,t,i){const o=Ai(t.x-i.x,t.y-i.y),c=Ai(n.x-i.x,n.y-i.y);var p,m;return Ti(Math.atan2(o[0]*c[1]-o[1]*c[0],(p=o)[0]*(m=c)[0]+p[1]*m[1]))},x.cf=yi,x.cg=function(n,t){return or[t]&&(n instanceof MouseEvent||n instanceof WheelEvent)},x.ch=function(n,t){return rn[t]&&"touches"in n},x.ci=function(n){return rn[n]||or[n]},x.cj=function(n,t,i){var o=t[0],c=t[1];return n[0]=i[0]*o+i[4]*c+i[12],n[1]=i[1]*o+i[5]*c+i[13],n},x.ck=function(n,t){const{x:i,y:o}=sc.fromLngLat(t);return!(n<0||n>25||o<0||o>=1||i<0||i>=1)},x.cl=function(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t[1],n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=t[2],n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n},x.cm=class extends Ao{},x.cn=xS,x.cp=function(n){return n.message===Xt},x.cq=Cr,x.cr=function(n,t){Ar.REGISTERED_PROTOCOLS[n]=t},x.cs=function(n){delete Ar.REGISTERED_PROTOCOLS[n]},x.ct=function(n,t){const i={};for(let c=0;c<n.length;c++){const p=t&&t[n[c].id]||Du(n[c]);t&&(t[n[c].id]=p);let m=i[p];m||(m=i[p]=[]),m.push(n[c])}const o=[];for(const c in i)o.push(i[c]);return o},x.cu=st,x.cv=Wg,x.cw=Kg,x.cx=wg,x.cy=function(n){n.bucket.createArrays(),n.bucket.tilePixelRatio=Ft/(512*n.bucket.overscaling),n.bucket.compareText={},n.bucket.iconsNeedLinear=!1;const t=n.bucket.layers[0],i=t.layout,o=t._unevaluatedLayout._values,c={layoutIconSize:o["icon-size"].possiblyEvaluate(new ir(n.bucket.zoom+1),n.canonical),layoutTextSize:o["text-size"].possiblyEvaluate(new ir(n.bucket.zoom+1),n.canonical),textMaxSize:o["text-size"].possiblyEvaluate(new ir(18))};if(n.bucket.textSizeData.kind==="composite"){const{minZoom:E,maxZoom:L}=n.bucket.textSizeData;c.compositeTextSizes=[o["text-size"].possiblyEvaluate(new ir(E),n.canonical),o["text-size"].possiblyEvaluate(new ir(L),n.canonical)]}if(n.bucket.iconSizeData.kind==="composite"){const{minZoom:E,maxZoom:L}=n.bucket.iconSizeData;c.compositeIconSizes=[o["icon-size"].possiblyEvaluate(new ir(E),n.canonical),o["icon-size"].possiblyEvaluate(new ir(L),n.canonical)]}const p=i.get("text-line-height")*Fr,m=i.get("text-rotation-alignment")!=="viewport"&&i.get("symbol-placement")!=="point",y=i.get("text-keep-upright"),w=i.get("text-size");for(const E of n.bucket.features){const L=i.get("text-font").evaluate(E,{},n.canonical).join(","),V=w.evaluate(E,{},n.canonical),q=c.layoutTextSize.evaluate(E,{},n.canonical),j=c.layoutIconSize.evaluate(E,{},n.canonical),W={horizontal:{},vertical:void 0},X=E.text;let $,ae=[0,0];if(X){const U=X.toString(),Y=i.get("text-letter-spacing").evaluate(E,{},n.canonical)*Fr,de=xp(U)?Y:0,Ce=i.get("text-anchor").evaluate(E,{},n.canonical),je=sy(t,E,n.canonical);if(!je){const He=i.get("text-radial-offset").evaluate(E,{},n.canonical);ae=He?ny(Ce,[He*Fr,nd]):i.get("text-offset").evaluate(E,{},n.canonical).map(Ge=>Ge*Fr)}let Me=m?"center":i.get("text-justify").evaluate(E,{},n.canonical);const Ve=i.get("symbol-placement")==="point"?i.get("text-max-width").evaluate(E,{},n.canonical)*Fr:1/0,Ke=()=>{n.bucket.allowVerticalPlacement&&wa(U)&&(W.vertical=oh(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Ve,p,Ce,"left",de,ae,x.al.vertical,!0,q,V))};if(!m&&je){const He=new Set;if(Me==="auto")for(let Fe=0;Fe<je.values.length;Fe+=2)He.add(sd(je.values[Fe]));else He.add(Me);let Ge=!1;for(const Fe of He)if(!W.horizontal[Fe])if(Ge)W.horizontal[Fe]=W.horizontal[0];else{const ot=oh(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Ve,p,"center",Fe,de,ae,x.al.horizontal,!1,q,V);ot&&(W.horizontal[Fe]=ot,Ge=ot.positionedLines.length===1)}Ke()}else{Me==="auto"&&(Me=sd(Ce));const He=oh(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Ve,p,Ce,Me,de,ae,x.al.horizontal,!1,q,V);He&&(W.horizontal[Me]=He),Ke(),wa(U)&&m&&y&&(W.vertical=oh(X,n.glyphMap,n.glyphPositions,n.imagePositions,L,Ve,p,Ce,Me,de,ae,x.al.vertical,!1,q,V))}}let _e=!1;if(E.icon&&E.icon.name){const U=n.imageMap[E.icon.name];U&&($=eS(n.imagePositions[E.icon.name],i.get("icon-offset").evaluate(E,{},n.canonical),i.get("icon-anchor").evaluate(E,{},n.canonical)),_e=!!U.sdf,n.bucket.sdfIcons===void 0?n.bucket.sdfIcons=_e:n.bucket.sdfIcons!==_e&&nt("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(U.pixelRatio!==n.bucket.pixelRatio||i.get("icon-rotate").constantOr(1)!==0)&&(n.bucket.iconsNeedLinear=!0))}const ue=ay(W.horizontal)||W.vertical;n.bucket.iconsInText=!!ue&&ue.iconsInText,(ue||$)&&yS(n.bucket,E,W,$,n.imageMap,c,q,j,ae,_e,n.canonical,n.subdivisionGranularity)}n.showCollisionBoxes&&n.bucket.generateCollisionDebugBuffers()},x.cz=Up,x.d=ve,x.e=ii,x.f=n=>s(void 0,void 0,void 0,function*(){if(n.byteLength===0)return createImageBitmap(new ImageData(1,1));const t=new Blob([new Uint8Array(n)],{type:"image/png"});try{return createImageBitmap(t)}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.`)}}),x.g=tr,x.h=n=>new Promise((t,i)=>{const o=new Image;o.onload=()=>{t(o),URL.revokeObjectURL(o.src),o.onload=null,window.requestAnimationFrame(()=>{o.src=er})},o.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 c=new Blob([new Uint8Array(n)],{type:"image/png"});o.src=n.byteLength?URL.createObjectURL(c):er}),x.i=xt,x.j=(n,t)=>jr(ii(n,{type:"json"}),t),x.k=he,x.l=te,x.m=jr,x.n=(n,t)=>jr(ii(n,{type:"arrayBuffer"}),t),x.o=function(n){return new Wp(n).readFields(U2,[])},x.p=vg,x.q=Zl,x.r=Mr,x.s=_i,x.t=_a,x.u=Lt,x.v=re,x.w=nt,x.x=Ll,x.y=Ps,x.z=function([n,t,i]){return t+=90,t*=Math.PI/180,i*=Math.PI/180,{x:n*Math.cos(t)*Math.sin(i),y:n*Math.sin(t)*Math.sin(i),z:n*Math.cos(i)}}}),k("worker",["./shared"],function(x){class s{constructor(G){this.keyCache={},G&&this.replace(G)}replace(G){this._layerConfigs={},this._layers={},this.update(G,[])}update(G,Q){for(const he of G){this._layerConfigs[he.id]=he;const xe=this._layers[he.id]=x.bA(he);xe._featureFilter=x.a7(xe.filter),this.keyCache[he.id]&&delete this.keyCache[he.id]}for(const he of Q)delete this.keyCache[he],delete this._layerConfigs[he],delete this._layers[he];this.familiesBySource={};const te=x.ct(Object.values(this._layerConfigs),this.keyCache);for(const he of te){const xe=he.map(Ae=>this._layers[Ae.id]),re=xe[0];if(re.visibility==="none")continue;const Ee=re.source||"";let we=this.familiesBySource[Ee];we||(we=this.familiesBySource[Ee]={});const ke=re.sourceLayer||"_geojsonTileLayer";let Ie=we[ke];Ie||(Ie=we[ke]=[]),Ie.push(xe)}}}class B{constructor(G){const Q={},te=[];for(const Ee in G){const we=G[Ee],ke=Q[Ee]={};for(const Ie in we){const Ae=we[+Ie];if(!Ae||Ae.bitmap.width===0||Ae.bitmap.height===0)continue;const Ue={x:0,y:0,w:Ae.bitmap.width+2,h:Ae.bitmap.height+2};te.push(Ue),ke[Ie]={rect:Ue,metrics:Ae.metrics}}}const{w:he,h:xe}=x.p(te),re=new x.q({width:he||1,height:xe||1});for(const Ee in G){const we=G[Ee];for(const ke in we){const Ie=we[+ke];if(!Ie||Ie.bitmap.width===0||Ie.bitmap.height===0)continue;const Ae=Q[Ee][ke].rect;x.q.copy(Ie.bitmap,re,{x:0,y:0},{x:Ae.x+1,y:Ae.y+1},Ie.bitmap)}}this.image=re,this.positions=Q}}x.cu("GlyphAtlas",B);class z{constructor(G){this.tileID=new x.Y(G.tileID.overscaledZ,G.tileID.wrap,G.tileID.canonical.z,G.tileID.canonical.x,G.tileID.canonical.y),this.uid=G.uid,this.zoom=G.zoom,this.pixelRatio=G.pixelRatio,this.tileSize=G.tileSize,this.source=G.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=G.showCollisionBoxes,this.collectResourceTiming=!!G.collectResourceTiming,this.returnDependencies=!!G.returnDependencies,this.promoteId=G.promoteId,this.inFlightDependencies=[]}parse(G,Q,te,he,xe){return x._(this,void 0,void 0,function*(){this.status="parsing",this.data=G,this.collisionBoxArray=new x.a5;const re=new x.cv(Object.keys(G.layers).sort()),Ee=new x.cw(this.tileID,this.promoteId);Ee.bucketLayerIDs=[];const we={},ke={featureIndex:Ee,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:te,subdivisionGranularity:xe},Ie=Q.familiesBySource[this.source];for(const mt in Ie){const qe=G.layers[mt];if(!qe)continue;qe.version===1&&x.w(`Vector tile source "${this.source}" layer "${mt}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const dt=re.encode(mt),At=[];for(let _r=0;_r<qe.length;_r++){const xr=qe.feature(_r),xi=Ee.getId(xr,mt);At.push({feature:xr,id:xi,index:_r,sourceLayerIndex:dt})}for(const _r of Ie[mt]){const xr=_r[0];xr.source!==this.source&&x.w(`layer.source = ${xr.source} does not equal this.source = ${this.source}`),xr.minzoom&&this.zoom<Math.floor(xr.minzoom)||xr.maxzoom&&this.zoom>=xr.maxzoom||xr.visibility!=="none"&&(R(_r,this.zoom,te),(we[xr.id]=xr.createBucket({index:Ee.bucketLayerIDs.length,layers:_r,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:dt,sourceID:this.source})).populate(At,ke,this.tileID.canonical),Ee.bucketLayerIDs.push(_r.map(xi=>xi.id)))}}const Ae=x.bF(ke.glyphDependencies,mt=>Object.keys(mt).map(Number));this.inFlightDependencies.forEach(mt=>mt==null?void 0:mt.abort()),this.inFlightDependencies=[];let Ue=Promise.resolve({});if(Object.keys(Ae).length){const mt=new AbortController;this.inFlightDependencies.push(mt),Ue=he.sendAsync({type:"GG",data:{stacks:Ae,source:this.source,tileID:this.tileID,type:"glyphs"}},mt)}const $e=Object.keys(ke.iconDependencies);let tt=Promise.resolve({});if($e.length){const mt=new AbortController;this.inFlightDependencies.push(mt),tt=he.sendAsync({type:"GI",data:{icons:$e,source:this.source,tileID:this.tileID,type:"icons"}},mt)}const ht=Object.keys(ke.patternDependencies);let St=Promise.resolve({});if(ht.length){const mt=new AbortController;this.inFlightDependencies.push(mt),St=he.sendAsync({type:"GI",data:{icons:ht,source:this.source,tileID:this.tileID,type:"patterns"}},mt)}const[yt,Be,Wt]=yield Promise.all([Ue,tt,St]),zt=new B(yt),qt=new x.cx(Be,Wt);for(const mt in we){const qe=we[mt];qe instanceof x.a6?(R(qe.layers,this.zoom,te),x.cy({bucket:qe,glyphMap:yt,glyphPositions:zt.positions,imageMap:Be,imagePositions:qt.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical,subdivisionGranularity:ke.subdivisionGranularity})):qe.hasPattern&&(qe instanceof x.cz||qe instanceof x.cA||qe instanceof x.cB)&&(R(qe.layers,this.zoom,te),qe.addFeatures(ke,this.tileID.canonical,qt.patternPositions))}return this.status="done",{buckets:Object.values(we).filter(mt=>!mt.isEmpty()),featureIndex:Ee,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:zt.image,imageAtlas:qt,glyphMap:this.returnDependencies?yt:null,iconMap:this.returnDependencies?Be:null,glyphPositions:this.returnDependencies?zt.positions:null}})}}function R(ve,G,Q){const te=new x.C(G);for(const he of ve)he.recalculate(te,Q)}class H{constructor(G,Q,te){this.actor=G,this.layerIndex=Q,this.availableImages=te,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(G,Q){return x._(this,void 0,void 0,function*(){const te=yield x.n(G.request,Q);try{return{vectorTile:new x.cC.VectorTile(new x.cD(te.data)),rawData:te.data,cacheControl:te.cacheControl,expires:te.expires}}catch(he){const xe=new Uint8Array(te.data);let re=`Unable to parse the tile at ${G.request.url}, `;throw re+=xe[0]===31&&xe[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${he.message}`,new Error(re)}})}loadTile(G){return x._(this,void 0,void 0,function*(){const Q=G.uid,te=!!(G&&G.request&&G.request.collectResourceTiming)&&new x.cE(G.request),he=new z(G);this.loading[Q]=he;const xe=new AbortController;he.abort=xe;try{const re=yield this.loadVectorTile(G,xe);if(delete this.loading[Q],!re)return null;const Ee=re.rawData,we={};re.expires&&(we.expires=re.expires),re.cacheControl&&(we.cacheControl=re.cacheControl);const ke={};if(te){const Ae=te.finish();Ae&&(ke.resourceTiming=JSON.parse(JSON.stringify(Ae)))}he.vectorTile=re.vectorTile;const Ie=he.parse(re.vectorTile,this.layerIndex,this.availableImages,this.actor,G.subdivisionGranularity);this.loaded[Q]=he,this.fetching[Q]={rawTileData:Ee,cacheControl:we,resourceTiming:ke};try{const Ae=yield Ie;return x.e({rawTileData:Ee.slice(0)},Ae,we,ke)}finally{delete this.fetching[Q]}}catch(re){throw delete this.loading[Q],he.status="done",this.loaded[Q]=he,re}})}reloadTile(G){return x._(this,void 0,void 0,function*(){const Q=G.uid;if(!this.loaded||!this.loaded[Q])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const te=this.loaded[Q];if(te.showCollisionBoxes=G.showCollisionBoxes,te.status==="parsing"){const he=yield te.parse(te.vectorTile,this.layerIndex,this.availableImages,this.actor,G.subdivisionGranularity);let xe;if(this.fetching[Q]){const{rawTileData:re,cacheControl:Ee,resourceTiming:we}=this.fetching[Q];delete this.fetching[Q],xe=x.e({rawTileData:re.slice(0)},he,Ee,we)}else xe=he;return xe}if(te.status==="done"&&te.vectorTile)return te.parse(te.vectorTile,this.layerIndex,this.availableImages,this.actor,G.subdivisionGranularity)})}abortTile(G){return x._(this,void 0,void 0,function*(){const Q=this.loading,te=G.uid;Q&&Q[te]&&Q[te].abort&&(Q[te].abort.abort(),delete Q[te])})}removeTile(G){return x._(this,void 0,void 0,function*(){this.loaded&&this.loaded[G.uid]&&delete this.loaded[G.uid]})}}class M{constructor(){this.loaded={}}loadTile(G){return x._(this,void 0,void 0,function*(){const{uid:Q,encoding:te,rawImageData:he,redFactor:xe,greenFactor:re,blueFactor:Ee,baseShift:we}=G,ke=he.width+2,Ie=he.height+2,Ae=x.b(he)?new x.R({width:ke,height:Ie},yield x.cF(he,-1,-1,ke,Ie)):he,Ue=new x.cG(Q,Ae,te,xe,re,Ee,we);return this.loaded=this.loaded||{},this.loaded[Q]=Ue,Ue})}removeTile(G){const Q=this.loaded,te=G.uid;Q&&Q[te]&&delete Q[te]}}var C,T,N=function(){if(T)return C;function ve(Q,te){if(Q.length!==0){G(Q[0],te);for(var he=1;he<Q.length;he++)G(Q[he],!te)}}function G(Q,te){for(var he=0,xe=0,re=0,Ee=Q.length,we=Ee-1;re<Ee;we=re++){var ke=(Q[re][0]-Q[we][0])*(Q[we][1]+Q[re][1]),Ie=he+ke;xe+=Math.abs(he)>=Math.abs(ke)?he-Ie+ke:ke-Ie+he,he=Ie}he+xe>=0!=!!te&&Q.reverse()}return T=1,C=function Q(te,he){var xe,re=te&&te.type;if(re==="FeatureCollection")for(xe=0;xe<te.features.length;xe++)Q(te.features[xe],he);else if(re==="GeometryCollection")for(xe=0;xe<te.geometries.length;xe++)Q(te.geometries[xe],he);else if(re==="Feature")Q(te.geometry,he);else if(re==="Polygon")ve(te.coordinates,he);else if(re==="MultiPolygon")for(xe=0;xe<te.coordinates.length;xe++)ve(te.coordinates[xe],he);return te}}(),K=x.cH(N);const ie=x.cC.VectorTileFeature.prototype.toGeoJSON;class le{constructor(G){this._feature=G,this.extent=x.Z,this.type=G.type,this.properties=G.tags,"id"in G&&!isNaN(G.id)&&(this.id=parseInt(G.id,10))}loadGeometry(){if(this._feature.type===1){const G=[];for(const Q of this._feature.geometry)G.push([new x.P(Q[0],Q[1])]);return G}{const G=[];for(const Q of this._feature.geometry){const te=[];for(const he of Q)te.push(new x.P(he[0],he[1]));G.push(te)}return G}}toGeoJSON(G,Q,te){return ie.call(this,G,Q,te)}}class Se{constructor(G){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=x.Z,this.length=G.length,this._features=G}feature(G){return new le(this._features[G])}}var ee,pe,Pe,De={exports:{}},Ze=function(){if(Pe)return De.exports;Pe=1;var ve=x.cK(),G=function(){if(pe)return ee;pe=1;var Ie=x.cI(),Ae=x.cJ().VectorTileFeature;function Ue(tt,ht){this.options=ht||{},this.features=tt,this.length=tt.length}function $e(tt,ht){this.id=typeof tt.id=="number"?tt.id:void 0,this.type=tt.type,this.rawGeometry=tt.type===1?[tt.geometry]:tt.geometry,this.properties=tt.tags,this.extent=ht||4096}return ee=Ue,Ue.prototype.feature=function(tt){return new $e(this.features[tt],this.options.extent)},$e.prototype.loadGeometry=function(){var tt=this.rawGeometry;this.geometry=[];for(var ht=0;ht<tt.length;ht++){for(var St=tt[ht],yt=[],Be=0;Be<St.length;Be++)yt.push(new Ie(St[Be][0],St[Be][1]));this.geometry.push(yt)}return this.geometry},$e.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var tt=this.geometry,ht=1/0,St=-1/0,yt=1/0,Be=-1/0,Wt=0;Wt<tt.length;Wt++)for(var zt=tt[Wt],qt=0;qt<zt.length;qt++){var mt=zt[qt];ht=Math.min(ht,mt.x),St=Math.max(St,mt.x),yt=Math.min(yt,mt.y),Be=Math.max(Be,mt.y)}return[ht,yt,St,Be]},$e.prototype.toGeoJSON=Ae.prototype.toGeoJSON,ee}();function Q(Ie){var Ae=new ve;return function(Ue,$e){for(var tt in Ue.layers)$e.writeMessage(3,te,Ue.layers[tt])}(Ie,Ae),Ae.finish()}function te(Ie,Ae){var Ue;Ae.writeVarintField(15,Ie.version||1),Ae.writeStringField(1,Ie.name||""),Ae.writeVarintField(5,Ie.extent||4096);var $e={keys:[],values:[],keycache:{},valuecache:{}};for(Ue=0;Ue<Ie.length;Ue++)$e.feature=Ie.feature(Ue),Ae.writeMessage(2,he,$e);var tt=$e.keys;for(Ue=0;Ue<tt.length;Ue++)Ae.writeStringField(3,tt[Ue]);var ht=$e.values;for(Ue=0;Ue<ht.length;Ue++)Ae.writeMessage(4,ke,ht[Ue])}function he(Ie,Ae){var Ue=Ie.feature;Ue.id!==void 0&&Ae.writeVarintField(1,Ue.id),Ae.writeMessage(2,xe,Ie),Ae.writeVarintField(3,Ue.type),Ae.writeMessage(4,we,Ue)}function xe(Ie,Ae){var Ue=Ie.feature,$e=Ie.keys,tt=Ie.values,ht=Ie.keycache,St=Ie.valuecache;for(var yt in Ue.properties){var Be=Ue.properties[yt],Wt=ht[yt];if(Be!==null){Wt===void 0&&($e.push(yt),ht[yt]=Wt=$e.length-1),Ae.writeVarint(Wt);var zt=typeof Be;zt!=="string"&&zt!=="boolean"&&zt!=="number"&&(Be=JSON.stringify(Be));var qt=zt+":"+Be,mt=St[qt];mt===void 0&&(tt.push(Be),St[qt]=mt=tt.length-1),Ae.writeVarint(mt)}}}function re(Ie,Ae){return(Ae<<3)+(7&Ie)}function Ee(Ie){return Ie<<1^Ie>>31}function we(Ie,Ae){for(var Ue=Ie.loadGeometry(),$e=Ie.type,tt=0,ht=0,St=Ue.length,yt=0;yt<St;yt++){var Be=Ue[yt],Wt=1;$e===1&&(Wt=Be.length),Ae.writeVarint(re(1,Wt));for(var zt=$e===3?Be.length-1:Be.length,qt=0;qt<zt;qt++){qt===1&&$e!==1&&Ae.writeVarint(re(2,zt-1));var mt=Be[qt].x-tt,qe=Be[qt].y-ht;Ae.writeVarint(Ee(mt)),Ae.writeVarint(Ee(qe)),tt+=mt,ht+=qe}$e===3&&Ae.writeVarint(re(7,1))}}function ke(Ie,Ae){var Ue=typeof Ie;Ue==="string"?Ae.writeStringField(1,Ie):Ue==="boolean"?Ae.writeBooleanField(7,Ie):Ue==="number"&&(Ie%1!=0?Ae.writeDoubleField(3,Ie):Ie<0?Ae.writeSVarintField(6,Ie):Ae.writeVarintField(5,Ie))}return De.exports=Q,De.exports.fromVectorTileJs=Q,De.exports.fromGeojsonVt=function(Ie,Ae){Ae=Ae||{};var Ue={};for(var $e in Ie)Ue[$e]=new G(Ie[$e].features,Ae),Ue[$e].name=$e,Ue[$e].version=Ae.version,Ue[$e].extent=Ae.extent;return Q({layers:Ue})},De.exports.GeoJSONWrapper=G,De.exports}(),gt=x.cH(Ze);const rt={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:ve=>ve},Je=Math.fround||(it=new Float32Array(1),ve=>(it[0]=+ve,it[0]));var it;const bt=3,It=5,mr=6;class Sr{constructor(G){this.options=Object.assign(Object.create(rt),G),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(G){const{log:Q,minZoom:te,maxZoom:he}=this.options;Q&&console.time("total time");const xe=`prepare ${G.length} points`;Q&&console.time(xe),this.points=G;const re=[];for(let we=0;we<G.length;we++){const ke=G[we];if(!ke.geometry)continue;const[Ie,Ae]=ke.geometry.coordinates,Ue=Je(en(Ie)),$e=Je(Ur(Ae));re.push(Ue,$e,1/0,we,-1,1),this.options.reduce&&re.push(0)}let Ee=this.trees[he+1]=this._createTree(re);Q&&console.timeEnd(xe);for(let we=he;we>=te;we--){const ke=+Date.now();Ee=this.trees[we]=this._createTree(this._cluster(Ee,we)),Q&&console.log("z%d: %d clusters in %dms",we,Ee.numItems,+Date.now()-ke)}return Q&&console.timeEnd("total time"),this}getClusters(G,Q){let te=((G[0]+180)%360+360)%360-180;const he=Math.max(-90,Math.min(90,G[1]));let xe=G[2]===180?180:((G[2]+180)%360+360)%360-180;const re=Math.max(-90,Math.min(90,G[3]));if(G[2]-G[0]>=360)te=-180,xe=180;else if(te>xe){const Ae=this.getClusters([te,he,180,re],Q),Ue=this.getClusters([-180,he,xe,re],Q);return Ae.concat(Ue)}const Ee=this.trees[this._limitZoom(Q)],we=Ee.range(en(te),Ur(re),en(xe),Ur(he)),ke=Ee.data,Ie=[];for(const Ae of we){const Ue=this.stride*Ae;Ie.push(ke[Ue+It]>1?Ai(ke,Ue,this.clusterProps):this.points[ke[Ue+bt]])}return Ie}getChildren(G){const Q=this._getOriginId(G),te=this._getOriginZoom(G),he="No cluster with the specified id.",xe=this.trees[te];if(!xe)throw new Error(he);const re=xe.data;if(Q*this.stride>=re.length)throw new Error(he);const Ee=this.options.radius/(this.options.extent*Math.pow(2,te-1)),we=xe.within(re[Q*this.stride],re[Q*this.stride+1],Ee),ke=[];for(const Ie of we){const Ae=Ie*this.stride;re[Ae+4]===G&&ke.push(re[Ae+It]>1?Ai(re,Ae,this.clusterProps):this.points[re[Ae+bt]])}if(ke.length===0)throw new Error(he);return ke}getLeaves(G,Q,te){const he=[];return this._appendLeaves(he,G,Q=Q||10,te=te||0,0),he}getTile(G,Q,te){const he=this.trees[this._limitZoom(G)],xe=Math.pow(2,G),{extent:re,radius:Ee}=this.options,we=Ee/re,ke=(te-we)/xe,Ie=(te+1+we)/xe,Ae={features:[]};return this._addTileFeatures(he.range((Q-we)/xe,ke,(Q+1+we)/xe,Ie),he.data,Q,te,xe,Ae),Q===0&&this._addTileFeatures(he.range(1-we/xe,ke,1,Ie),he.data,xe,te,xe,Ae),Q===xe-1&&this._addTileFeatures(he.range(0,ke,we/xe,Ie),he.data,-1,te,xe,Ae),Ae.features.length?Ae:null}getClusterExpansionZoom(G){let Q=this._getOriginZoom(G)-1;for(;Q<=this.options.maxZoom;){const te=this.getChildren(G);if(Q++,te.length!==1)break;G=te[0].properties.cluster_id}return Q}_appendLeaves(G,Q,te,he,xe){const re=this.getChildren(Q);for(const Ee of re){const we=Ee.properties;if(we&&we.cluster?xe+we.point_count<=he?xe+=we.point_count:xe=this._appendLeaves(G,we.cluster_id,te,he,xe):xe<he?xe++:G.push(Ee),G.length===te)break}return xe}_createTree(G){const Q=new x.aF(G.length/this.stride|0,this.options.nodeSize,Float32Array);for(let te=0;te<G.length;te+=this.stride)Q.add(G[te],G[te+1]);return Q.finish(),Q.data=G,Q}_addTileFeatures(G,Q,te,he,xe,re){for(const Ee of G){const we=Ee*this.stride,ke=Q[we+It]>1;let Ie,Ae,Ue;if(ke)Ie=Ft(Q,we,this.clusterProps),Ae=Q[we],Ue=Q[we+1];else{const ht=this.points[Q[we+bt]];Ie=ht.properties;const[St,yt]=ht.geometry.coordinates;Ae=en(St),Ue=Ur(yt)}const $e={type:1,geometry:[[Math.round(this.options.extent*(Ae*xe-te)),Math.round(this.options.extent*(Ue*xe-he))]],tags:Ie};let tt;tt=ke||this.options.generateId?Q[we+bt]:this.points[Q[we+bt]].id,tt!==void 0&&($e.id=tt),re.features.push($e)}}_limitZoom(G){return Math.max(this.options.minZoom,Math.min(Math.floor(+G),this.options.maxZoom+1))}_cluster(G,Q){const{radius:te,extent:he,reduce:xe,minPoints:re}=this.options,Ee=te/(he*Math.pow(2,Q)),we=G.data,ke=[],Ie=this.stride;for(let Ae=0;Ae<we.length;Ae+=Ie){if(we[Ae+2]<=Q)continue;we[Ae+2]=Q;const Ue=we[Ae],$e=we[Ae+1],tt=G.within(we[Ae],we[Ae+1],Ee),ht=we[Ae+It];let St=ht;for(const yt of tt){const Be=yt*Ie;we[Be+2]>Q&&(St+=we[Be+It])}if(St>ht&&St>=re){let yt,Be=Ue*ht,Wt=$e*ht,zt=-1;const qt=((Ae/Ie|0)<<5)+(Q+1)+this.points.length;for(const mt of tt){const qe=mt*Ie;if(we[qe+2]<=Q)continue;we[qe+2]=Q;const dt=we[qe+It];Be+=we[qe]*dt,Wt+=we[qe+1]*dt,we[qe+4]=qt,xe&&(yt||(yt=this._map(we,Ae,!0),zt=this.clusterProps.length,this.clusterProps.push(yt)),xe(yt,this._map(we,qe)))}we[Ae+4]=qt,ke.push(Be/St,Wt/St,1/0,qt,-1,St),xe&&ke.push(zt)}else{for(let yt=0;yt<Ie;yt++)ke.push(we[Ae+yt]);if(St>1)for(const yt of tt){const Be=yt*Ie;if(!(we[Be+2]<=Q)){we[Be+2]=Q;for(let Wt=0;Wt<Ie;Wt++)ke.push(we[Be+Wt])}}}}return ke}_getOriginId(G){return G-this.points.length>>5}_getOriginZoom(G){return(G-this.points.length)%32}_map(G,Q,te){if(G[Q+It]>1){const re=this.clusterProps[G[Q+mr]];return te?Object.assign({},re):re}const he=this.points[G[Q+bt]].properties,xe=this.options.map(he);return te&&xe===he?Object.assign({},xe):xe}}function Ai(ve,G,Q){return{type:"Feature",id:ve[G+bt],properties:Ft(ve,G,Q),geometry:{type:"Point",coordinates:[(te=ve[G],360*(te-.5)),kn(ve[G+1])]}};var te}function Ft(ve,G,Q){const te=ve[G+It],he=te>=1e4?`${Math.round(te/1e3)}k`:te>=1e3?Math.round(te/100)/10+"k":te,xe=ve[G+mr],re=xe===-1?{}:Object.assign({},Q[xe]);return Object.assign(re,{cluster:!0,cluster_id:ve[G+bt],point_count:te,point_count_abbreviated:he})}function en(ve){return ve/360+.5}function Ur(ve){const G=Math.sin(ve*Math.PI/180),Q=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return Q<0?0:Q>1?1:Q}function kn(ve){const G=(180-360*ve)*Math.PI/180;return 360*Math.atan(Math.exp(G))/Math.PI-90}function ki(ve,G,Q,te){let he=te;const xe=G+(Q-G>>1);let re,Ee=Q-G;const we=ve[G],ke=ve[G+1],Ie=ve[Q],Ae=ve[Q+1];for(let Ue=G+3;Ue<Q;Ue+=3){const $e=cs(ve[Ue],ve[Ue+1],we,ke,Ie,Ae);if($e>he)re=Ue,he=$e;else if($e===he){const tt=Math.abs(Ue-xe);tt<Ee&&(re=Ue,Ee=tt)}}he>te&&(re-G>3&&ki(ve,G,re,te),ve[re+2]=he,Q-re>3&&ki(ve,re,Q,te))}function cs(ve,G,Q,te,he,xe){let re=he-Q,Ee=xe-te;if(re!==0||Ee!==0){const we=((ve-Q)*re+(G-te)*Ee)/(re*re+Ee*Ee);we>1?(Q=he,te=xe):we>0&&(Q+=re*we,te+=Ee*we)}return re=ve-Q,Ee=G-te,re*re+Ee*Ee}function yi(ve,G,Q,te){const he={id:ve??null,type:G,geometry:Q,tags:te,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(G==="Point"||G==="MultiPoint"||G==="LineString")Dr(he,Q);else if(G==="Polygon")Dr(he,Q[0]);else if(G==="MultiLineString")for(const xe of Q)Dr(he,xe);else if(G==="MultiPolygon")for(const xe of Q)Dr(he,xe[0]);return he}function Dr(ve,G){for(let Q=0;Q<G.length;Q+=3)ve.minX=Math.min(ve.minX,G[Q]),ve.minY=Math.min(ve.minY,G[Q+1]),ve.maxX=Math.max(ve.maxX,G[Q]),ve.maxY=Math.max(ve.maxY,G[Q+1])}function tn(ve,G,Q,te){if(!G.geometry)return;const he=G.geometry.coordinates;if(he&&he.length===0)return;const xe=G.geometry.type,re=Math.pow(Q.tolerance/((1<<Q.maxZoom)*Q.extent),2);let Ee=[],we=G.id;if(Q.promoteId?we=G.properties[Q.promoteId]:Q.generateId&&(we=te||0),xe==="Point")ii(he,Ee);else if(xe==="MultiPoint")for(const ke of he)ii(ke,Ee);else if(xe==="LineString")Tn(he,Ee,re,!1);else if(xe==="MultiLineString"){if(Q.lineMetrics){for(const ke of he)Ee=[],Tn(ke,Ee,re,!1),ve.push(yi(we,"LineString",Ee,G.properties));return}Zi(he,Ee,re,!1)}else if(xe==="Polygon")Zi(he,Ee,re,!0);else{if(xe!=="MultiPolygon"){if(xe==="GeometryCollection"){for(const ke of G.geometry.geometries)tn(ve,{id:we,geometry:ke,properties:G.properties},Q,te);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const ke of he){const Ie=[];Zi(ke,Ie,re,!0),Ee.push(Ie)}}ve.push(yi(we,xe,Ee,G.properties))}function ii(ve,G){G.push(Un(ve[0]),ci(ve[1]),0)}function Tn(ve,G,Q,te){let he,xe,re=0;for(let we=0;we<ve.length;we++){const ke=Un(ve[we][0]),Ie=ci(ve[we][1]);G.push(ke,Ie,0),we>0&&(re+=te?(he*Ie-ke*xe)/2:Math.sqrt(Math.pow(ke-he,2)+Math.pow(Ie-xe,2))),he=ke,xe=Ie}const Ee=G.length-3;G[2]=1,ki(G,0,Ee,Q),G[Ee+2]=1,G.size=Math.abs(re),G.start=0,G.end=G.size}function Zi(ve,G,Q,te){for(let he=0;he<ve.length;he++){const xe=[];Tn(ve[he],xe,Q,te),G.push(xe)}}function Un(ve){return ve/360+.5}function ci(ve){const G=Math.sin(ve*Math.PI/180),Q=.5-.25*Math.log((1+G)/(1-G))/Math.PI;return Q<0?0:Q>1?1:Q}function et(ve,G,Q,te,he,xe,re,Ee){if(te/=G,xe>=(Q/=G)&&re<te)return ve;if(re<Q||xe>=te)return null;const we=[];for(const ke of ve){const Ie=ke.geometry;let Ae=ke.type;const Ue=he===0?ke.minX:ke.minY,$e=he===0?ke.maxX:ke.maxY;if(Ue>=Q&&$e<te){we.push(ke);continue}if($e<Q||Ue>=te)continue;let tt=[];if(Ae==="Point"||Ae==="MultiPoint")nt(Ie,tt,Q,te,he);else if(Ae==="LineString")Xe(Ie,tt,Q,te,he,!1,Ee.lineMetrics);else if(Ae==="MultiLineString")wt(Ie,tt,Q,te,he,!1);else if(Ae==="Polygon")wt(Ie,tt,Q,te,he,!0);else if(Ae==="MultiPolygon")for(const ht of Ie){const St=[];wt(ht,St,Q,te,he,!0),St.length&&tt.push(St)}if(tt.length){if(Ee.lineMetrics&&Ae==="LineString"){for(const ht of tt)we.push(yi(ke.id,Ae,ht,ke.tags));continue}Ae!=="LineString"&&Ae!=="MultiLineString"||(tt.length===1?(Ae="LineString",tt=tt[0]):Ae="MultiLineString"),Ae!=="Point"&&Ae!=="MultiPoint"||(Ae=tt.length===3?"Point":"MultiPoint"),we.push(yi(ke.id,Ae,tt,ke.tags))}}return we.length?we:null}function nt(ve,G,Q,te,he){for(let xe=0;xe<ve.length;xe+=3){const re=ve[xe+he];re>=Q&&re<=te&&kt(G,ve[xe],ve[xe+1],ve[xe+2])}}function Xe(ve,G,Q,te,he,xe,re){let Ee=xt(ve);const we=he===0?er:Ht;let ke,Ie,Ae=ve.start;for(let St=0;St<ve.length-3;St+=3){const yt=ve[St],Be=ve[St+1],Wt=ve[St+2],zt=ve[St+3],qt=ve[St+4],mt=he===0?yt:Be,qe=he===0?zt:qt;let dt=!1;re&&(ke=Math.sqrt(Math.pow(yt-zt,2)+Math.pow(Be-qt,2))),mt<Q?qe>Q&&(Ie=we(Ee,yt,Be,zt,qt,Q),re&&(Ee.start=Ae+ke*Ie)):mt>te?qe<te&&(Ie=we(Ee,yt,Be,zt,qt,te),re&&(Ee.start=Ae+ke*Ie)):kt(Ee,yt,Be,Wt),qe<Q&&mt>=Q&&(Ie=we(Ee,yt,Be,zt,qt,Q),dt=!0),qe>te&&mt<=te&&(Ie=we(Ee,yt,Be,zt,qt,te),dt=!0),!xe&&dt&&(re&&(Ee.end=Ae+ke*Ie),G.push(Ee),Ee=xt(ve)),re&&(Ae+=ke)}let Ue=ve.length-3;const $e=ve[Ue],tt=ve[Ue+1],ht=he===0?$e:tt;ht>=Q&&ht<=te&&kt(Ee,$e,tt,ve[Ue+2]),Ue=Ee.length-3,xe&&Ue>=3&&(Ee[Ue]!==Ee[0]||Ee[Ue+1]!==Ee[1])&&kt(Ee,Ee[0],Ee[1],Ee[2]),Ee.length&&G.push(Ee)}function xt(ve){const G=[];return G.size=ve.size,G.start=ve.start,G.end=ve.end,G}function wt(ve,G,Q,te,he,xe){for(const re of ve)Xe(re,G,Q,te,he,xe,!1)}function kt(ve,G,Q,te){ve.push(G,Q,te)}function er(ve,G,Q,te,he,xe){const re=(xe-G)/(te-G);return kt(ve,xe,Q+(he-Q)*re,1),re}function Ht(ve,G,Q,te,he,xe){const re=(xe-Q)/(he-Q);return kt(ve,G+(te-G)*re,xe,1),re}function Jt(ve,G){const Q=[];for(let te=0;te<ve.length;te++){const he=ve[te],xe=he.type;let re;if(xe==="Point"||xe==="MultiPoint"||xe==="LineString")re=Br(he.geometry,G);else if(xe==="MultiLineString"||xe==="Polygon"){re=[];for(const Ee of he.geometry)re.push(Br(Ee,G))}else if(xe==="MultiPolygon"){re=[];for(const Ee of he.geometry){const we=[];for(const ke of Ee)we.push(Br(ke,G));re.push(we)}}Q.push(yi(he.id,xe,re,he.tags))}return Q}function Br(ve,G){const Q=[];Q.size=ve.size,ve.start!==void 0&&(Q.start=ve.start,Q.end=ve.end);for(let te=0;te<ve.length;te+=3)Q.push(ve[te]+G,ve[te+1],ve[te+2]);return Q}function _i(ve,G){if(ve.transformed)return ve;const Q=1<<ve.z,te=ve.x,he=ve.y;for(const xe of ve.features){const re=xe.geometry,Ee=xe.type;if(xe.geometry=[],Ee===1)for(let we=0;we<re.length;we+=2)xe.geometry.push(gr(re[we],re[we+1],G,Q,te,he));else for(let we=0;we<re.length;we++){const ke=[];for(let Ie=0;Ie<re[we].length;Ie+=2)ke.push(gr(re[we][Ie],re[we][Ie+1],G,Q,te,he));xe.geometry.push(ke)}}return ve.transformed=!0,ve}function gr(ve,G,Q,te,he,xe){return[Math.round(Q*(ve*te-he)),Math.round(Q*(G*te-xe))]}function Ti(ve,G,Q,te,he){const xe=G===he.maxZoom?0:he.tolerance/((1<<G)*he.extent),re={features:[],numPoints:0,numSimplified:0,numFeatures:ve.length,source:null,x:Q,y:te,z:G,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const Ee of ve)rn(re,Ee,xe,he);return re}function rn(ve,G,Q,te){const he=G.geometry,xe=G.type,re=[];if(ve.minX=Math.min(ve.minX,G.minX),ve.minY=Math.min(ve.minY,G.minY),ve.maxX=Math.max(ve.maxX,G.maxX),ve.maxY=Math.max(ve.maxY,G.maxY),xe==="Point"||xe==="MultiPoint")for(let Ee=0;Ee<he.length;Ee+=3)re.push(he[Ee],he[Ee+1]),ve.numPoints++,ve.numSimplified++;else if(xe==="LineString")or(re,he,ve,Q,!1,!1);else if(xe==="MultiLineString"||xe==="Polygon")for(let Ee=0;Ee<he.length;Ee++)or(re,he[Ee],ve,Q,xe==="Polygon",Ee===0);else if(xe==="MultiPolygon")for(let Ee=0;Ee<he.length;Ee++){const we=he[Ee];for(let ke=0;ke<we.length;ke++)or(re,we[ke],ve,Q,!0,ke===0)}if(re.length){let Ee=G.tags||null;if(xe==="LineString"&&te.lineMetrics){Ee={};for(const ke in G.tags)Ee[ke]=G.tags[ke];Ee.mapbox_clip_start=he.start/he.size,Ee.mapbox_clip_end=he.end/he.size}const we={geometry:re,type:xe==="Polygon"||xe==="MultiPolygon"?3:xe==="LineString"||xe==="MultiLineString"?2:1,tags:Ee};G.id!==null&&(we.id=G.id),ve.features.push(we)}}function or(ve,G,Q,te,he,xe){const re=te*te;if(te>0&&G.size<(he?re:te))return void(Q.numPoints+=G.length/3);const Ee=[];for(let we=0;we<G.length;we+=3)(te===0||G[we+2]>re)&&(Q.numSimplified++,Ee.push(G[we],G[we+1])),Q.numPoints++;he&&function(we,ke){let Ie=0;for(let Ae=0,Ue=we.length,$e=Ue-2;Ae<Ue;$e=Ae,Ae+=2)Ie+=(we[Ae]-we[$e])*(we[Ae+1]+we[$e+1]);if(Ie>0===ke)for(let Ae=0,Ue=we.length;Ae<Ue/2;Ae+=2){const $e=we[Ae],tt=we[Ae+1];we[Ae]=we[Ue-2-Ae],we[Ae+1]=we[Ue-1-Ae],we[Ue-2-Ae]=$e,we[Ue-1-Ae]=tt}}(Ee,xe),ve.push(Ee)}const Xt={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0};class _t{constructor(G,Q){const te=(Q=this.options=function(xe,re){for(const Ee in re)xe[Ee]=re[Ee];return xe}(Object.create(Xt),Q)).debug;if(te&&console.time("preprocess data"),Q.maxZoom<0||Q.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(Q.promoteId&&Q.generateId)throw new Error("promoteId and generateId cannot be used together.");let he=function(xe,re){const Ee=[];if(xe.type==="FeatureCollection")for(let we=0;we<xe.features.length;we++)tn(Ee,xe.features[we],re,we);else tn(Ee,xe.type==="Feature"?xe:{geometry:xe},re);return Ee}(G,Q);this.tiles={},this.tileCoords=[],te&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",Q.indexMaxZoom,Q.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),he=function(xe,re){const Ee=re.buffer/re.extent;let we=xe;const ke=et(xe,1,-1-Ee,Ee,0,-1,2,re),Ie=et(xe,1,1-Ee,2+Ee,0,-1,2,re);return(ke||Ie)&&(we=et(xe,1,-Ee,1+Ee,0,-1,2,re)||[],ke&&(we=Jt(ke,1).concat(we)),Ie&&(we=we.concat(Jt(Ie,-1)))),we}(he,Q),he.length&&this.splitTile(he,0,0,0),te&&(he.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(G,Q,te,he,xe,re,Ee){const we=[G,Q,te,he],ke=this.options,Ie=ke.debug;for(;we.length;){he=we.pop(),te=we.pop(),Q=we.pop(),G=we.pop();const Ae=1<<Q,Ue=Ar(Q,te,he);let $e=this.tiles[Ue];if(!$e&&(Ie>1&&console.time("creation"),$e=this.tiles[Ue]=Ti(G,Q,te,he,ke),this.tileCoords.push({z:Q,x:te,y:he}),Ie)){Ie>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",Q,te,he,$e.numFeatures,$e.numPoints,$e.numSimplified),console.timeEnd("creation"));const dt=`z${Q}`;this.stats[dt]=(this.stats[dt]||0)+1,this.total++}if($e.source=G,xe==null){if(Q===ke.indexMaxZoom||$e.numPoints<=ke.indexMaxPoints)continue}else{if(Q===ke.maxZoom||Q===xe)continue;if(xe!=null){const dt=xe-Q;if(te!==re>>dt||he!==Ee>>dt)continue}}if($e.source=null,G.length===0)continue;Ie>1&&console.time("clipping");const tt=.5*ke.buffer/ke.extent,ht=.5-tt,St=.5+tt,yt=1+tt;let Be=null,Wt=null,zt=null,qt=null,mt=et(G,Ae,te-tt,te+St,0,$e.minX,$e.maxX,ke),qe=et(G,Ae,te+ht,te+yt,0,$e.minX,$e.maxX,ke);G=null,mt&&(Be=et(mt,Ae,he-tt,he+St,1,$e.minY,$e.maxY,ke),Wt=et(mt,Ae,he+ht,he+yt,1,$e.minY,$e.maxY,ke),mt=null),qe&&(zt=et(qe,Ae,he-tt,he+St,1,$e.minY,$e.maxY,ke),qt=et(qe,Ae,he+ht,he+yt,1,$e.minY,$e.maxY,ke),qe=null),Ie>1&&console.timeEnd("clipping"),we.push(Be||[],Q+1,2*te,2*he),we.push(Wt||[],Q+1,2*te,2*he+1),we.push(zt||[],Q+1,2*te+1,2*he),we.push(qt||[],Q+1,2*te+1,2*he+1)}}getTile(G,Q,te){G=+G,Q=+Q,te=+te;const he=this.options,{extent:xe,debug:re}=he;if(G<0||G>24)return null;const Ee=1<<G,we=Ar(G,Q=Q+Ee&Ee-1,te);if(this.tiles[we])return _i(this.tiles[we],xe);re>1&&console.log("drilling down to z%d-%d-%d",G,Q,te);let ke,Ie=G,Ae=Q,Ue=te;for(;!ke&&Ie>0;)Ie--,Ae>>=1,Ue>>=1,ke=this.tiles[Ar(Ie,Ae,Ue)];return ke&&ke.source?(re>1&&(console.log("found parent tile z%d-%d-%d",Ie,Ae,Ue),console.time("drilling down")),this.splitTile(ke.source,Ie,Ae,Ue,G,Q,te),re>1&&console.timeEnd("drilling down"),this.tiles[we]?_i(this.tiles[we],xe):null):null}}function Ar(ve,G,Q){return 32*((1<<ve)*Q+G)+ve}function tr(ve,G){return G?ve.properties[G]:ve.id}function yr(ve,G){if(ve==null)return!0;if(ve.type==="Feature")return tr(ve,G)!=null;if(ve.type==="FeatureCollection"){const Q=new Set;for(const te of ve.features){const he=tr(te,G);if(he==null||Q.has(he))return!1;Q.add(he)}return!0}return!1}function Cr(ve,G){const Q=new Map;if(ve!=null)if(ve.type==="Feature")Q.set(tr(ve,G),ve);else for(const te of ve.features)Q.set(tr(te,G),te);return Q}class Zt extends H{constructor(){super(...arguments),this._dataUpdateable=new Map}loadVectorTile(G,Q){return x._(this,void 0,void 0,function*(){const te=G.tileID.canonical;if(!this._geoJSONIndex)throw new Error("Unable to parse the data into a cluster or geojson");const he=this._geoJSONIndex.getTile(te.z,te.x,te.y);if(!he)return null;const xe=new Se(he.features);let re=gt(xe);return re.byteOffset===0&&re.byteLength===re.buffer.byteLength||(re=new Uint8Array(re)),{vectorTile:xe,rawData:re.buffer}})}loadData(G){return x._(this,void 0,void 0,function*(){var Q;(Q=this._pendingRequest)===null||Q===void 0||Q.abort();const te=!!(G&&G.request&&G.request.collectResourceTiming)&&new x.cE(G.request);this._pendingRequest=new AbortController;try{this._pendingData=this.loadAndProcessGeoJSON(G,this._pendingRequest),this._geoJSONIndex=G.cluster?new Sr(function({superclusterOptions:re,clusterProperties:Ee}){if(!Ee||!re)return re;const we={},ke={},Ie={accumulated:null,zoom:0},Ae={properties:null},Ue=Object.keys(Ee);for(const $e of Ue){const[tt,ht]=Ee[$e],St=x.cL(ht),yt=x.cL(typeof tt=="string"?[tt,["accumulated"],["get",$e]]:tt);we[$e]=St.value,ke[$e]=yt.value}return re.map=$e=>{Ae.properties=$e;const tt={};for(const ht of Ue)tt[ht]=we[ht].evaluate(Ie,Ae);return tt},re.reduce=($e,tt)=>{Ae.properties=tt;for(const ht of Ue)Ie.accumulated=$e[ht],$e[ht]=ke[ht].evaluate(Ie,Ae)},re}(G)).load((yield this._pendingData).features):(he=yield this._pendingData,new _t(he,G.geojsonVtOptions)),this.loaded={};const xe={};if(te){const re=te.finish();re&&(xe.resourceTiming={},xe.resourceTiming[G.source]=JSON.parse(JSON.stringify(re)))}return xe}catch(xe){if(delete this._pendingRequest,x.cp(xe))return{abandoned:!0};throw xe}var he})}getData(){return x._(this,void 0,void 0,function*(){return this._pendingData})}reloadTile(G){const Q=this.loaded;return Q&&Q[G.uid]?super.reloadTile(G):this.loadTile(G)}loadAndProcessGeoJSON(G,Q){return x._(this,void 0,void 0,function*(){let te=yield this.loadGeoJSON(G,Q);if(delete this._pendingRequest,typeof te!="object")throw new Error(`Input data given to '${G.source}' is not a valid GeoJSON object.`);if(K(te,!0),G.filter){const he=x.cL(G.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(he.result==="error")throw new Error(he.value.map(re=>`${re.key}: ${re.message}`).join(", "));te={type:"FeatureCollection",features:te.features.filter(re=>he.value.evaluate({zoom:0},re))}}return te})}loadGeoJSON(G,Q){return x._(this,void 0,void 0,function*(){const{promoteId:te}=G;if(G.request){const he=yield x.j(G.request,Q);return this._dataUpdateable=yr(he.data,te)?Cr(he.data,te):void 0,he.data}if(typeof G.data=="string")try{const he=JSON.parse(G.data);return this._dataUpdateable=yr(he,te)?Cr(he,te):void 0,he}catch{throw new Error(`Input data given to '${G.source}' is not a valid GeoJSON object.`)}if(!G.dataDiff)throw new Error(`Input data given to '${G.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${G.source}`);return function(he,xe,re){var Ee,we,ke,Ie;if(xe.removeAll&&he.clear(),xe.remove)for(const Ae of xe.remove)he.delete(Ae);if(xe.add)for(const Ae of xe.add){const Ue=tr(Ae,re);Ue!=null&&he.set(Ue,Ae)}if(xe.update)for(const Ae of xe.update){let Ue=he.get(Ae.id);if(Ue==null)continue;const $e=!Ae.removeAllProperties&&(((Ee=Ae.removeProperties)===null||Ee===void 0?void 0:Ee.length)>0||((we=Ae.addOrUpdateProperties)===null||we===void 0?void 0:we.length)>0);if((Ae.newGeometry||Ae.removeAllProperties||$e)&&(Ue=Object.assign({},Ue),he.set(Ae.id,Ue),$e&&(Ue.properties=Object.assign({},Ue.properties))),Ae.newGeometry&&(Ue.geometry=Ae.newGeometry),Ae.removeAllProperties)Ue.properties={};else if(((ke=Ae.removeProperties)===null||ke===void 0?void 0:ke.length)>0)for(const tt of Ae.removeProperties)Object.prototype.hasOwnProperty.call(Ue.properties,tt)&&delete Ue.properties[tt];if(((Ie=Ae.addOrUpdateProperties)===null||Ie===void 0?void 0:Ie.length)>0)for(const{key:tt,value:ht}of Ae.addOrUpdateProperties)Ue.properties[tt]=ht}}(this._dataUpdateable,G.dataDiff,te),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}})}removeSource(G){return x._(this,void 0,void 0,function*(){this._pendingRequest&&this._pendingRequest.abort()})}getClusterExpansionZoom(G){return this._geoJSONIndex.getClusterExpansionZoom(G.clusterId)}getClusterChildren(G){return this._geoJSONIndex.getChildren(G.clusterId)}getClusterLeaves(G){return this._geoJSONIndex.getLeaves(G.clusterId,G.limit,G.offset)}}class jr{constructor(G){this.self=G,this.actor=new x.H(G),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(Q,te)=>{if(this.externalWorkerSourceTypes[Q])throw new Error(`Worker source with name "${Q}" already registered.`);this.externalWorkerSourceTypes[Q]=te},this.self.addProtocol=x.cr,this.self.removeProtocol=x.cs,this.self.registerRTLTextPlugin=Q=>{x.cM.setMethods(Q)},this.actor.registerMessageHandler("LDT",(Q,te)=>this._getDEMWorkerSource(Q,te.source).loadTile(te)),this.actor.registerMessageHandler("RDT",(Q,te)=>x._(this,void 0,void 0,function*(){this._getDEMWorkerSource(Q,te.source).removeTile(te)})),this.actor.registerMessageHandler("GCEZ",(Q,te)=>x._(this,void 0,void 0,function*(){return this._getWorkerSource(Q,te.type,te.source).getClusterExpansionZoom(te)})),this.actor.registerMessageHandler("GCC",(Q,te)=>x._(this,void 0,void 0,function*(){return this._getWorkerSource(Q,te.type,te.source).getClusterChildren(te)})),this.actor.registerMessageHandler("GCL",(Q,te)=>x._(this,void 0,void 0,function*(){return this._getWorkerSource(Q,te.type,te.source).getClusterLeaves(te)})),this.actor.registerMessageHandler("LD",(Q,te)=>this._getWorkerSource(Q,te.type,te.source).loadData(te)),this.actor.registerMessageHandler("GD",(Q,te)=>this._getWorkerSource(Q,te.type,te.source).getData()),this.actor.registerMessageHandler("LT",(Q,te)=>this._getWorkerSource(Q,te.type,te.source).loadTile(te)),this.actor.registerMessageHandler("RT",(Q,te)=>this._getWorkerSource(Q,te.type,te.source).reloadTile(te)),this.actor.registerMessageHandler("AT",(Q,te)=>this._getWorkerSource(Q,te.type,te.source).abortTile(te)),this.actor.registerMessageHandler("RMT",(Q,te)=>this._getWorkerSource(Q,te.type,te.source).removeTile(te)),this.actor.registerMessageHandler("RS",(Q,te)=>x._(this,void 0,void 0,function*(){if(!this.workerSources[Q]||!this.workerSources[Q][te.type]||!this.workerSources[Q][te.type][te.source])return;const he=this.workerSources[Q][te.type][te.source];delete this.workerSources[Q][te.type][te.source],he.removeSource!==void 0&&he.removeSource(te)})),this.actor.registerMessageHandler("RM",Q=>x._(this,void 0,void 0,function*(){delete this.layerIndexes[Q],delete this.availableImages[Q],delete this.workerSources[Q],delete this.demWorkerSources[Q]})),this.actor.registerMessageHandler("SR",(Q,te)=>x._(this,void 0,void 0,function*(){this.referrer=te})),this.actor.registerMessageHandler("SRPS",(Q,te)=>this._syncRTLPluginState(Q,te)),this.actor.registerMessageHandler("IS",(Q,te)=>x._(this,void 0,void 0,function*(){this.self.importScripts(te)})),this.actor.registerMessageHandler("SI",(Q,te)=>this._setImages(Q,te)),this.actor.registerMessageHandler("UL",(Q,te)=>x._(this,void 0,void 0,function*(){this._getLayerIndex(Q).update(te.layers,te.removedIds)})),this.actor.registerMessageHandler("SL",(Q,te)=>x._(this,void 0,void 0,function*(){this._getLayerIndex(Q).replace(te)}))}_setImages(G,Q){return x._(this,void 0,void 0,function*(){this.availableImages[G]=Q;for(const te in this.workerSources[G]){const he=this.workerSources[G][te];for(const xe in he)he[xe].availableImages=Q}})}_syncRTLPluginState(G,Q){return x._(this,void 0,void 0,function*(){return yield x.cM.syncState(Q,this.self.importScripts)})}_getAvailableImages(G){let Q=this.availableImages[G];return Q||(Q=[]),Q}_getLayerIndex(G){let Q=this.layerIndexes[G];return Q||(Q=this.layerIndexes[G]=new s),Q}_getWorkerSource(G,Q,te){if(this.workerSources[G]||(this.workerSources[G]={}),this.workerSources[G][Q]||(this.workerSources[G][Q]={}),!this.workerSources[G][Q][te]){const he={sendAsync:(xe,re)=>(xe.targetMapId=G,this.actor.sendAsync(xe,re))};switch(Q){case"vector":this.workerSources[G][Q][te]=new H(he,this._getLayerIndex(G),this._getAvailableImages(G));break;case"geojson":this.workerSources[G][Q][te]=new Zt(he,this._getLayerIndex(G),this._getAvailableImages(G));break;default:this.workerSources[G][Q][te]=new this.externalWorkerSourceTypes[Q](he,this._getLayerIndex(G),this._getAvailableImages(G))}}return this.workerSources[G][Q][te]}_getDEMWorkerSource(G,Q){return this.demWorkerSources[G]||(this.demWorkerSources[G]={}),this.demWorkerSources[G][Q]||(this.demWorkerSources[G][Q]=new M),this.demWorkerSources[G][Q]}}return x.i(self)&&(self.worker=new jr(self)),jr}),k("index",["exports","./shared"],function(x,s){var B="5.5.0";function z(){var u=new s.A(4);return s.A!=Float32Array&&(u[1]=0,u[2]=0),u[0]=1,u[3]=1,u}let R,H;const M={now:typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frame(u,e,r){const a=requestAnimationFrame(h=>{l(),e(h)}),{unsubscribe:l}=s.s(u.signal,"abort",()=>{l(),cancelAnimationFrame(a),r(s.c())},!1)},frameAsync(u){return new Promise((e,r)=>{this.frame(u,e,r)})},getImageData(u,e=0){return this.getImageCanvasContext(u).getImageData(-e,-e,u.width+2*e,u.height+2*e)},getImageCanvasContext(u){const e=window.document.createElement("canvas"),r=e.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("failed to create canvas 2d context");return e.width=u.width,e.height=u.height,r.drawImage(u,0,0,u.width,u.height),r},resolveURL:u=>(R||(R=document.createElement("a")),R.href=u,R.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(H==null&&(H=matchMedia("(prefers-reduced-motion: reduce)")),H.matches)}};class C{static testProp(e){if(!C.docStyle)return e[0];for(let r=0;r<e.length;r++)if(e[r]in C.docStyle)return e[r];return e[0]}static create(e,r,a){const l=window.document.createElement(e);return r!==void 0&&(l.className=r),a&&a.appendChild(l),l}static createNS(e,r){return window.document.createElementNS(e,r)}static disableDrag(){C.docStyle&&C.selectProp&&(C.userSelect=C.docStyle[C.selectProp],C.docStyle[C.selectProp]="none")}static enableDrag(){C.docStyle&&C.selectProp&&(C.docStyle[C.selectProp]=C.userSelect)}static setTransform(e,r){e.style[C.transformProp]=r}static addEventListener(e,r,a,l={}){e.addEventListener(r,a,"passive"in l?l:l.capture)}static removeEventListener(e,r,a,l={}){e.removeEventListener(r,a,"passive"in l?l:l.capture)}static suppressClickInternal(e){e.preventDefault(),e.stopPropagation(),window.removeEventListener("click",C.suppressClickInternal,!0)}static suppressClick(){window.addEventListener("click",C.suppressClickInternal,!0),window.setTimeout(()=>{window.removeEventListener("click",C.suppressClickInternal,!0)},0)}static getScale(e){const r=e.getBoundingClientRect();return{x:r.width/e.offsetWidth||1,y:r.height/e.offsetHeight||1,boundingClientRect:r}}static getPoint(e,r,a){const l=r.boundingClientRect;return new s.P((a.clientX-l.left)/r.x-e.clientLeft,(a.clientY-l.top)/r.y-e.clientTop)}static mousePos(e,r){const a=C.getScale(e);return C.getPoint(e,a,r)}static touchPos(e,r){const a=[],l=C.getScale(e);for(let h=0;h<r.length;h++)a.push(C.getPoint(e,l,r[h]));return a}static mouseButton(e){return e.button}static remove(e){e.parentNode&&e.parentNode.removeChild(e)}static sanitize(e){const r=new DOMParser().parseFromString(e,"text/html").body||document.createElement("body"),a=r.querySelectorAll("script");for(const l of a)l.remove();return C.clean(r),r.innerHTML}static isPossiblyDangerous(e,r){const a=r.replace(/\s+/g,"").toLowerCase();return!(!["src","href","xlink:href"].includes(e)||!a.includes("javascript:")&&!a.includes("data:"))||!!e.startsWith("on")||void 0}static clean(e){const r=e.children;for(const a of r)C.removeAttributes(a),C.clean(a)}static removeAttributes(e){for(const{name:r,value:a}of e.attributes)C.isPossiblyDangerous(r,a)&&e.removeAttribute(r)}}C.docStyle=typeof window<"u"&&window.document&&window.document.documentElement.style,C.selectProp=C.testProp(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]),C.transformProp=C.testProp(["transform","WebkitTransform"]);const T={supported:!1,testSupport:function(u){!ie&&K&&(le?Se(u):N=u)}};let N,K,ie=!1,le=!1;function Se(u){const e=u.createTexture();u.bindTexture(u.TEXTURE_2D,e);try{if(u.texImage2D(u.TEXTURE_2D,0,u.RGBA,u.RGBA,u.UNSIGNED_BYTE,K),u.isContextLost())return;T.supported=!0}catch{}u.deleteTexture(e),ie=!0}var ee;typeof document<"u"&&(K=document.createElement("img"),K.onload=()=>{N&&Se(N),N=null,le=!0},K.onerror=()=>{ie=!0,N=null},K.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),function(u){let e,r,a,l;u.resetRequestQueue=()=>{e=[],r=0,a=0,l={}},u.addThrottleControl=A=>{const I=a++;return l[I]=A,I},u.removeThrottleControl=A=>{delete l[A],g()},u.getImage=(A,I,D=!0)=>new Promise((F,O)=>{T.supported&&(A.headers||(A.headers={}),A.headers.accept="image/webp,*/*"),s.e(A,{type:"image"}),e.push({abortController:I,requestParameters:A,supportImageRefresh:D,state:"queued",onError:Z=>{O(Z)},onSuccess:Z=>{F(Z)}}),g()});const h=A=>s._(this,void 0,void 0,function*(){A.state="running";const{requestParameters:I,supportImageRefresh:D,onError:F,onSuccess:O,abortController:Z}=A,J=D===!1&&!s.i(self)&&!s.g(I.url)&&(!I.headers||Object.keys(I.headers).reduce((oe,ce)=>oe&&ce==="accept",!0));r++;const se=J?b(I,Z):s.m(I,Z);try{const oe=yield se;delete A.abortController,A.state="completed",oe.data instanceof HTMLImageElement||s.b(oe.data)?O(oe):oe.data&&O({data:yield(ne=oe.data,typeof createImageBitmap=="function"?s.f(ne):s.h(ne)),cacheControl:oe.cacheControl,expires:oe.expires})}catch(oe){delete A.abortController,F(oe)}finally{r--,g()}var ne}),g=()=>{const A=(()=>{for(const I of Object.keys(l))if(l[I]())return!0;return!1})()?s.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:s.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let I=r;I<A&&e.length>0;I++){const D=e.shift();D.abortController.signal.aborted?I--:h(D)}},b=(A,I)=>new Promise((D,F)=>{const O=new Image,Z=A.url,J=A.credentials;J&&J==="include"?O.crossOrigin="use-credentials":(J&&J==="same-origin"||!s.d(Z))&&(O.crossOrigin="anonymous"),I.signal.addEventListener("abort",()=>{O.src="",F(s.c())}),O.fetchPriority="high",O.onload=()=>{O.onerror=O.onload=null,D({data:O})},O.onerror=()=>{O.onerror=O.onload=null,I.signal.aborted||F(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."))},O.src=Z})}(ee||(ee={})),ee.resetRequestQueue();class pe{constructor(e){this._transformRequestFn=e}transformRequest(e,r){return this._transformRequestFn&&this._transformRequestFn(e,r)||{url:e}}setTransformRequest(e){this._transformRequestFn=e}}function Pe(u){const e=[];if(typeof u=="string")e.push({id:"default",url:u});else if(u&&u.length>0){const r=[];for(const{id:a,url:l}of u){const h=`${a}${l}`;r.indexOf(h)===-1&&(r.push(h),e.push({id:a,url:l}))}}return e}function De(u,e,r){try{const a=new URL(u);return a.pathname+=`${e}${r}`,a.toString()}catch{throw new Error(`Invalid sprite URL "${u}", must be absolute. Modify style specification directly or use TransformStyleFunction to correct the issue dynamically`)}}class Ze{constructor(e,r,a,l){this.context=e,this.format=a,this.texture=e.gl.createTexture(),this.update(r,l)}update(e,r,a){const{width:l,height:h}=e,g=!(this.size&&this.size[0]===l&&this.size[1]===h||a),{context:b}=this,{gl:A}=b;if(this.useMipmap=!!(r&&r.useMipmap),A.bindTexture(A.TEXTURE_2D,this.texture),b.pixelStoreUnpackFlipY.set(!1),b.pixelStoreUnpack.set(1),b.pixelStoreUnpackPremultiplyAlpha.set(this.format===A.RGBA&&(!r||r.premultiply!==!1)),g)this.size=[l,h],e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||s.b(e)?A.texImage2D(A.TEXTURE_2D,0,this.format,this.format,A.UNSIGNED_BYTE,e):A.texImage2D(A.TEXTURE_2D,0,this.format,l,h,0,this.format,A.UNSIGNED_BYTE,e.data);else{const{x:I,y:D}=a||{x:0,y:0};e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||s.b(e)?A.texSubImage2D(A.TEXTURE_2D,0,I,D,A.RGBA,A.UNSIGNED_BYTE,e):A.texSubImage2D(A.TEXTURE_2D,0,I,D,l,h,A.RGBA,A.UNSIGNED_BYTE,e.data)}this.useMipmap&&this.isSizePowerOfTwo()&&A.generateMipmap(A.TEXTURE_2D),b.pixelStoreUnpackFlipY.setDefault(),b.pixelStoreUnpack.setDefault(),b.pixelStoreUnpackPremultiplyAlpha.setDefault()}bind(e,r,a){const{context:l}=this,{gl:h}=l;h.bindTexture(h.TEXTURE_2D,this.texture),a!==h.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(a=h.LINEAR),e!==this.filter&&(h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,e),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,a||e),this.filter=e),r!==this.wrap&&(h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,r),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,r),this.wrap=r)}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}}function gt(u){const{userImage:e}=u;return!!(e&&e.render&&e.render())&&(u.data.replace(new Uint8Array(e.data.buffer)),!0)}class rt extends s.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new s.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(const{ids:r,promiseResolve:a}of this.requestors)a(this._getImagesForIds(r));this.requestors=[]}}getImage(e){const r=this.images[e];if(r&&!r.data&&r.spriteData){const a=r.spriteData;r.data=new s.R({width:a.width,height:a.height},a.context.getImageData(a.x,a.y,a.width,a.height).data),r.spriteData=null}return r}addImage(e,r){if(this.images[e])throw new Error(`Image id ${e} already exist, use updateImage instead`);this._validate(e,r)&&(this.images[e]=r)}_validate(e,r){let a=!0;const l=r.data||r.spriteData;return this._validateStretch(r.stretchX,l&&l.width)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchX" value`))),a=!1),this._validateStretch(r.stretchY,l&&l.height)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "stretchY" value`))),a=!1),this._validateContent(r.content,r)||(this.fire(new s.k(new Error(`Image "${e}" has invalid "content" value`))),a=!1),a}_validateStretch(e,r){if(!e)return!0;let a=0;for(const l of e){if(l[0]<a||l[1]<l[0]||r<l[1])return!1;a=l[1]}return!0}_validateContent(e,r){if(!e)return!0;if(e.length!==4)return!1;const a=r.spriteData,l=a&&a.width||r.data.width,h=a&&a.height||r.data.height;return!(e[0]<0||l<e[0]||e[1]<0||h<e[1]||e[2]<0||l<e[2]||e[3]<0||h<e[3]||e[2]<e[0]||e[3]<e[1])}updateImage(e,r,a=!0){const l=this.getImage(e);if(a&&(l.data.width!==r.data.width||l.data.height!==r.data.height))throw new Error(`size mismatch between old image (${l.data.width}x${l.data.height}) and new image (${r.data.width}x${r.data.height}).`);r.version=l.version+1,this.images[e]=r,this.updatedImages[e]=!0}removeImage(e){const r=this.images[e];delete this.images[e],delete this.patterns[e],r.userImage&&r.userImage.onRemove&&r.userImage.onRemove()}listImages(){return Object.keys(this.images)}getImages(e){return new Promise((r,a)=>{let l=!0;if(!this.isLoaded())for(const h of e)this.images[h]||(l=!1);this.isLoaded()||l?r(this._getImagesForIds(e)):this.requestors.push({ids:e,promiseResolve:r})})}_getImagesForIds(e){const r={};for(const a of e){let l=this.getImage(a);l||(this.fire(new s.l("styleimagemissing",{id:a})),l=this.getImage(a)),l?r[a]={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)}:s.w(`Image "${a}" 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 r}getPixelSize(){const{width:e,height:r}=this.atlasImage;return{width:e,height:r}}getPattern(e){const r=this.patterns[e],a=this.getImage(e);if(!a)return null;if(r&&r.position.version===a.version)return r.position;if(r)r.position.version=a.version;else{const l={w:a.data.width+2,h:a.data.height+2,x:0,y:0},h=new s.I(l,a);this.patterns[e]={bin:l,position:h}}return this._updatePatternAtlas(),this.patterns[e].position}bind(e){const r=e.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new Ze(e,this.atlasImage,r.RGBA),this.atlasTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE)}_updatePatternAtlas(){const e=[];for(const h in this.patterns)e.push(this.patterns[h].bin);const{w:r,h:a}=s.p(e),l=this.atlasImage;l.resize({width:r||1,height:a||1});for(const h in this.patterns){const{bin:g}=this.patterns[h],b=g.x+1,A=g.y+1,I=this.getImage(h).data,D=I.width,F=I.height;s.R.copy(I,l,{x:0,y:0},{x:b,y:A},{width:D,height:F}),s.R.copy(I,l,{x:0,y:F-1},{x:b,y:A-1},{width:D,height:1}),s.R.copy(I,l,{x:0,y:0},{x:b,y:A+F},{width:D,height:1}),s.R.copy(I,l,{x:D-1,y:0},{x:b-1,y:A},{width:1,height:F}),s.R.copy(I,l,{x:0,y:0},{x:b+D,y:A},{width:1,height:F})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(e){for(const r of e){if(this.callbackDispatchedThisFrame[r])continue;this.callbackDispatchedThisFrame[r]=!0;const a=this.getImage(r);a||s.w(`Image with ID: "${r}" was not found`),gt(a)&&this.updateImage(r,a)}}}const Je=1e20;function it(u,e,r,a,l,h,g,b,A){for(let I=e;I<e+a;I++)bt(u,r*h+I,h,l,g,b,A);for(let I=r;I<r+l;I++)bt(u,I*h+e,1,a,g,b,A)}function bt(u,e,r,a,l,h,g){h[0]=0,g[0]=-1e20,g[1]=Je,l[0]=u[e];for(let b=1,A=0,I=0;b<a;b++){l[b]=u[e+b*r];const D=b*b;do{const F=h[A];I=(l[b]-l[F]+D-F*F)/(b-F)/2}while(I<=g[A]&&--A>-1);A++,h[A]=b,g[A]=I,g[A+1]=Je}for(let b=0,A=0;b<a;b++){for(;g[A+1]<b;)A++;const I=h[A],D=b-I;u[e+b*r]=l[I]+D*D}}class It{constructor(e,r){this.requestManager=e,this.localIdeographFontFamily=r,this.entries={}}setURL(e){this.url=e}getGlyphs(e){return s._(this,void 0,void 0,function*(){const r=[];for(const h in e)for(const g of e[h])r.push(this._getAndCacheGlyphsPromise(h,g));const a=yield Promise.all(r),l={};for(const{stack:h,id:g,glyph:b}of a)l[h]||(l[h]={}),l[h][g]=b&&{id:b.id,bitmap:b.bitmap.clone(),metrics:b.metrics};return l})}_getAndCacheGlyphsPromise(e,r){return s._(this,void 0,void 0,function*(){let a=this.entries[e];a||(a=this.entries[e]={glyphs:{},requests:{},ranges:{}});let l=a.glyphs[r];if(l!==void 0)return{stack:e,id:r,glyph:l};if(l=this._tinySDF(a,e,r),l)return a.glyphs[r]=l,{stack:e,id:r,glyph:l};const h=Math.floor(r/256);if(256*h>65535)throw new Error("glyphs > 65535 not supported");if(a.ranges[h])return{stack:e,id:r,glyph:l};if(!this.url)throw new Error("glyphsUrl is not set");if(!a.requests[h]){const b=It.loadGlyphRange(e,h,this.url,this.requestManager);a.requests[h]=b}const g=yield a.requests[h];for(const b in g)this._doesCharSupportLocalGlyph(+b)||(a.glyphs[+b]=g[+b]);return a.ranges[h]=!0,{stack:e,id:r,glyph:g[r]||null}})}_doesCharSupportLocalGlyph(e){return!!this.localIdeographFontFamily&&(new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}","u").test(String.fromCodePoint(e))||s.u["CJK Unified Ideographs"](e)||s.u["Hangul Syllables"](e)||s.u.Hiragana(e)||s.u.Katakana(e)||s.u["CJK Symbols and Punctuation"](e)||s.u["Halfwidth and Fullwidth Forms"](e))}_tinySDF(e,r,a){const l=this.localIdeographFontFamily;if(!l||!this._doesCharSupportLocalGlyph(a))return;let h=e.tinySDF;if(!h){let b="400";/bold/i.test(r)?b="900":/medium/i.test(r)?b="500":/light/i.test(r)&&(b="200"),h=e.tinySDF=new It.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:l,fontWeight:b})}const g=h.draw(String.fromCharCode(a));return{id:a,bitmap:new s.q({width:g.width||60,height:g.height||60},g.data),metrics:{width:g.glyphWidth/2||24,height:g.glyphHeight/2||24,left:g.glyphLeft/2+.5||0,top:g.glyphTop/2-27.5||-8,advance:g.glyphAdvance/2||24,isDoubleResolution:!0}}}}It.loadGlyphRange=function(u,e,r,a){return s._(this,void 0,void 0,function*(){const l=256*e,h=l+255,g=a.transformRequest(r.replace("{fontstack}",u).replace("{range}",`${l}-${h}`),"Glyphs"),b=yield s.n(g,new AbortController);if(!b||!b.data)throw new Error(`Could not load glyph range. range: ${e}, ${l}-${h}`);const A={};for(const I of s.o(b.data))A[I.id]=I;return A})},It.TinySDF=class{constructor({fontSize:u=24,buffer:e=3,radius:r=8,cutoff:a=.25,fontFamily:l="sans-serif",fontWeight:h="normal",fontStyle:g="normal"}={}){this.buffer=e,this.cutoff=a,this.radius=r;const b=this.size=u+4*e,A=this._createCanvas(b),I=this.ctx=A.getContext("2d",{willReadFrequently:!0});I.font=`${g} ${h} ${u}px ${l}`,I.textBaseline="alphabetic",I.textAlign="left",I.fillStyle="black",this.gridOuter=new Float64Array(b*b),this.gridInner=new Float64Array(b*b),this.f=new Float64Array(b),this.z=new Float64Array(b+1),this.v=new Uint16Array(b)}_createCanvas(u){const e=document.createElement("canvas");return e.width=e.height=u,e}draw(u){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:a,actualBoundingBoxLeft:l,actualBoundingBoxRight:h}=this.ctx.measureText(u),g=Math.ceil(r),b=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(h-l))),A=Math.min(this.size-this.buffer,g+Math.ceil(a)),I=b+2*this.buffer,D=A+2*this.buffer,F=Math.max(I*D,0),O=new Uint8ClampedArray(F),Z={data:O,width:I,height:D,glyphWidth:b,glyphHeight:A,glyphTop:g,glyphLeft:0,glyphAdvance:e};if(b===0||A===0)return Z;const{ctx:J,buffer:se,gridInner:ne,gridOuter:oe}=this;J.clearRect(se,se,b,A),J.fillText(u,se,se+g);const ce=J.getImageData(se,se,b,A);oe.fill(Je,0,F),ne.fill(0,0,F);for(let me=0;me<A;me++)for(let fe=0;fe<b;fe++){const ge=ce.data[4*(me*b+fe)+3]/255;if(ge===0)continue;const be=(me+se)*I+fe+se;if(ge===1)oe[be]=0,ne[be]=Je;else{const ye=.5-ge;oe[be]=ye>0?ye*ye:0,ne[be]=ye<0?ye*ye:0}}it(oe,0,0,I,D,I,this.f,this.v,this.z),it(ne,se,se,b,A,I,this.f,this.v,this.z);for(let me=0;me<F;me++){const fe=Math.sqrt(oe[me])-Math.sqrt(ne[me]);O[me]=Math.round(255-255*(fe/this.radius+this.cutoff))}return Z}};class mr{constructor(){this.specification=s.v.light.position}possiblyEvaluate(e,r){return s.z(e.expression.evaluate(r))}interpolate(e,r,a){return{x:s.B.number(e.x,r.x,a),y:s.B.number(e.y,r.y,a),z:s.B.number(e.z,r.z,a)}}}let Sr;class Ai extends s.E{constructor(e){super(),Sr=Sr||new s.r({anchor:new s.D(s.v.light.anchor),position:new mr,color:new s.D(s.v.light.color),intensity:new s.D(s.v.light.intensity)}),this._transitionable=new s.T(Sr),this.setLight(e),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(e,r={}){if(!this._validate(s.t,e,r))for(const a in e){const l=e[a];a.endsWith("-transition")?this._transitionable.setTransition(a.slice(0,-11),l):this._transitionable.setValue(a,l)}}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(e,r,a){return(!a||a.validate!==!1)&&s.x(this,e.call(s.y,{value:r,style:{glyphs:!0,sprite:!0},styleSpec:s.v}))}}const Ft=new s.r({"sky-color":new s.D(s.v.sky["sky-color"]),"horizon-color":new s.D(s.v.sky["horizon-color"]),"fog-color":new s.D(s.v.sky["fog-color"]),"fog-ground-blend":new s.D(s.v.sky["fog-ground-blend"]),"horizon-fog-blend":new s.D(s.v.sky["horizon-fog-blend"]),"sky-horizon-blend":new s.D(s.v.sky["sky-horizon-blend"]),"atmosphere-blend":new s.D(s.v.sky["atmosphere-blend"])});class en extends s.E{constructor(e){super(),this._transitionable=new s.T(Ft),this.setSky(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new s.C(0))}setSky(e,r={}){if(!this._validate(s.F,e,r)){e||(e={"sky-color":"transparent","horizon-color":"transparent","fog-color":"transparent","fog-ground-blend":1,"atmosphere-blend":0});for(const a in e){const l=e[a];a.endsWith("-transition")?this._transitionable.setTransition(a.slice(0,-11),l):this._transitionable.setValue(a,l)}}}getSky(){return this._transitionable.serialize()}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(e,r,a={}){return(a==null?void 0:a.validate)!==!1&&s.x(this,e.call(s.y,s.e({value:r,style:{glyphs:!0,sprite:!0},styleSpec:s.v})))}calculateFogBlendOpacity(e){return e<60?0:e<70?(e-60)/10:1}}class Ur{constructor(e,r){this.width=e,this.height=r,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}}getDash(e,r){const a=e.join(",")+String(r);return this.dashEntry[a]||(this.dashEntry[a]=this.addDash(e,r)),this.dashEntry[a]}getDashRanges(e,r,a){const l=[];let h=e.length%2==1?-e[e.length-1]*a:0,g=e[0]*a,b=!0;l.push({left:h,right:g,isDash:b,zeroLength:e[0]===0});let A=e[0];for(let I=1;I<e.length;I++){b=!b;const D=e[I];h=A*a,A+=D,g=A*a,l.push({left:h,right:g,isDash:b,zeroLength:D===0})}return l}addRoundDash(e,r,a){const l=r/2;for(let h=-a;h<=a;h++){const g=this.width*(this.nextRow+a+h);let b=0,A=e[b];for(let I=0;I<this.width;I++){I/A.right>1&&(A=e[++b]);const D=Math.abs(I-A.left),F=Math.abs(I-A.right),O=Math.min(D,F);let Z;const J=h/a*(l+1);if(A.isDash){const se=l-Math.abs(J);Z=Math.sqrt(O*O+se*se)}else Z=l-Math.sqrt(O*O+J*J);this.data[g+I]=Math.max(0,Math.min(255,Z+128))}}}addRegularDash(e){for(let b=e.length-1;b>=0;--b){const A=e[b],I=e[b+1];A.zeroLength?e.splice(b,1):I&&I.isDash===A.isDash&&(I.left=A.left,e.splice(b,1))}const r=e[0],a=e[e.length-1];r.isDash===a.isDash&&(r.left=a.left-this.width,a.right=r.right+this.width);const l=this.width*this.nextRow;let h=0,g=e[h];for(let b=0;b<this.width;b++){b/g.right>1&&(g=e[++h]);const A=Math.abs(b-g.left),I=Math.abs(b-g.right),D=Math.min(A,I);this.data[l+b]=Math.max(0,Math.min(255,(g.isDash?D:-D)+128))}}addDash(e,r){const a=r?7:0,l=2*a+1;if(this.nextRow+l>this.height)return s.w("LineAtlas out of space"),null;let h=0;for(let b=0;b<e.length;b++)h+=e[b];if(h!==0){const b=this.width/h,A=this.getDashRanges(e,this.width,b);r?this.addRoundDash(A,b,a):this.addRegularDash(A)}const g={y:(this.nextRow+a+.5)/this.height,height:2*a/this.height,width:h};return this.nextRow+=l,this.dirty=!0,g}bind(e){const r=e.gl;this.texture?(r.bindTexture(r.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,r.texSubImage2D(r.TEXTURE_2D,0,0,0,this.width,this.height,r.ALPHA,r.UNSIGNED_BYTE,this.data))):(this.texture=r.createTexture(),r.bindTexture(r.TEXTURE_2D,this.texture),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.REPEAT),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.REPEAT),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texImage2D(r.TEXTURE_2D,0,r.ALPHA,this.width,this.height,0,r.ALPHA,r.UNSIGNED_BYTE,this.data))}}const kn="maplibre_preloaded_worker_pool";class ki{constructor(){this.active={}}acquire(e){if(!this.workers)for(this.workers=[];this.workers.length<ki.workerCount;)this.workers.push(new Worker(s.a.WORKER_URL));return this.active[e]=!0,this.workers.slice()}release(e){delete this.active[e],this.numActive()===0&&(this.workers.forEach(r=>{r.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[kn]}numActive(){return Object.keys(this.active).length}}const cs=Math.floor(M.hardwareConcurrency/2);let yi,Dr;function tn(){return yi||(yi=new ki),yi}ki.workerCount=s.G(globalThis)?Math.max(Math.min(cs,3),1):1;class ii{constructor(e,r){this.workerPool=e,this.actors=[],this.currentActor=0,this.id=r;const a=this.workerPool.acquire(r);for(let l=0;l<a.length;l++){const h=new s.H(a[l],r);h.name=`Worker ${l}`,this.actors.push(h)}if(!this.actors.length)throw new Error("No actors found")}broadcast(e,r){const a=[];for(const l of this.actors)a.push(l.sendAsync({type:e,data:r}));return Promise.all(a)}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(e=!0){this.actors.forEach(r=>{r.remove()}),this.actors=[],e&&this.workerPool.release(this.id)}registerMessageHandler(e,r){for(const a of this.actors)a.registerMessageHandler(e,r)}}function Tn(){return Dr||(Dr=new ii(tn(),s.J),Dr.registerMessageHandler("GR",(u,e,r)=>s.m(e,r))),Dr}function Zi(u,e){const r=s.K();return s.L(r,r,[1,1,0]),s.M(r,r,[.5*u.width,.5*u.height,1]),u.calculatePosMatrix?s.N(r,r,u.calculatePosMatrix(e.toUnwrapped())):r}function Un(u,e,r,a,l,h,g){var b;const A=function(O,Z,J){if(O)for(const se of O){const ne=Z[se];if(ne&&ne.source===J&&ne.type==="fill-extrusion")return!0}else for(const se in Z){const ne=Z[se];if(ne.source===J&&ne.type==="fill-extrusion")return!0}return!1}((b=l==null?void 0:l.layers)!==null&&b!==void 0?b:null,e,u.id),I=h.maxPitchScaleFactor(),D=u.tilesIn(a,I,A);D.sort(ci);const F=[];for(const O of D)F.push({wrappedTileID:O.tileID.wrapped().key,queryResults:O.tile.queryRenderedFeatures(e,r,u._state,O.queryGeometry,O.cameraQueryGeometry,O.scale,l,h,I,Zi(u.transform,O.tileID),g?(Z,J)=>g(O.tileID,Z,J):void 0)});return function(O,Z){for(const J in O)for(const se of O[J])et(se,Z);return O}(function(O){const Z={},J={};for(const se of O){const ne=se.queryResults,oe=se.wrappedTileID,ce=J[oe]=J[oe]||{};for(const me in ne){const fe=ne[me],ge=ce[me]=ce[me]||{},be=Z[me]=Z[me]||[];for(const ye of fe)ge[ye.featureIndex]||(ge[ye.featureIndex]=!0,be.push(ye))}}return Z}(F),u)}function ci(u,e){const r=u.tileID,a=e.tileID;return r.overscaledZ-a.overscaledZ||r.canonical.y-a.canonical.y||r.wrap-a.wrap||r.canonical.x-a.canonical.x}function et(u,e){const r=u.feature,a=e.getFeatureState(r.layer["source-layer"],r.id);r.source=r.layer.source,r.layer["source-layer"]&&(r.sourceLayer=r.layer["source-layer"]),r.state=a}function nt(u,e,r){return s._(this,void 0,void 0,function*(){let a=u;if(u.url?a=(yield s.j(e.transformRequest(u.url,"Source"),r)).data:yield M.frameAsync(r),!a)return null;const l=s.O(s.e(a,u),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in a&&a.vector_layers&&(l.vectorLayerIds=a.vector_layers.map(h=>h.id)),l})}class Xe{constructor(e,r){e&&(r?this.setSouthWest(e).setNorthEast(r):Array.isArray(e)&&(e.length===4?this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]):this.setSouthWest(e[0]).setNorthEast(e[1])))}setNorthEast(e){return this._ne=e instanceof s.Q?new s.Q(e.lng,e.lat):s.Q.convert(e),this}setSouthWest(e){return this._sw=e instanceof s.Q?new s.Q(e.lng,e.lat):s.Q.convert(e),this}extend(e){const r=this._sw,a=this._ne;let l,h;if(e instanceof s.Q)l=e,h=e;else{if(!(e instanceof Xe))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(Xe.convert(e)):this.extend(s.Q.convert(e)):e&&("lng"in e||"lon"in e)&&"lat"in e?this.extend(s.Q.convert(e)):this;if(l=e._sw,h=e._ne,!l||!h)return this}return r||a?(r.lng=Math.min(l.lng,r.lng),r.lat=Math.min(l.lat,r.lat),a.lng=Math.max(h.lng,a.lng),a.lat=Math.max(h.lat,a.lat)):(this._sw=new s.Q(l.lng,l.lat),this._ne=new s.Q(h.lng,h.lat)),this}getCenter(){return new s.Q((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 s.Q(this.getWest(),this.getNorth())}getSouthEast(){return new s.Q(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(e){const{lng:r,lat:a}=s.Q.convert(e);let l=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(l=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=a&&a<=this._ne.lat&&l}static convert(e){return e instanceof Xe?e:e&&new Xe(e)}static fromLngLat(e,r=0){const a=360*r/40075017,l=a/Math.cos(Math.PI/180*e.lat);return new Xe(new s.Q(e.lng-l,e.lat-a),new s.Q(e.lng+l,e.lat+a))}adjustAntiMeridian(){const e=new s.Q(this._sw.lng,this._sw.lat),r=new s.Q(this._ne.lng,this._ne.lat);return new Xe(e,e.lng>r.lng?new s.Q(r.lng+360,r.lat):r)}}class xt{constructor(e,r,a){this.bounds=Xe.convert(this.validateBounds(e)),this.minzoom=r||0,this.maxzoom=a||24}validateBounds(e){return Array.isArray(e)&&e.length===4?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(e){const r=Math.pow(2,e.z),a=Math.floor(s.U(this.bounds.getWest())*r),l=Math.floor(s.S(this.bounds.getNorth())*r),h=Math.ceil(s.U(this.bounds.getEast())*r),g=Math.ceil(s.S(this.bounds.getSouth())*r);return e.x>=a&&e.x<h&&e.y>=l&&e.y<g}}class wt extends s.E{constructor(e,r,a,l){if(super(),this.id=e,this.dispatcher=a,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,s.e(this,s.O(r,["url","scheme","tileSize","promoteId"])),this._options=s.e({type:"vector"},r),this._collectResourceTiming=r.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(l)}load(){return s._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const e=yield nt(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),e&&(s.e(this,e),e.bounds&&(this.tileBounds=new xt(e.bounds,this.minzoom,this.maxzoom)),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.l("data",{dataType:"source",sourceDataType:"content"})))}catch(e){this._tileJSONRequest=null,this.fire(new s.k(e))}})}loaded(){return this._loaded}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load()}setSourceProperty(e){this._tileJSONRequest&&this._tileJSONRequest.abort(),e(),this.load()}setTiles(e){return this.setSourceProperty(()=>{this._options.tiles=e}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return s.e({},this._options)}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a={request:this.map._requestManager.transformRequest(r,"Tile"),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.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};a.request.collectResourceTiming=this._collectResourceTiming;let l="RT";if(e.actor&&e.state!=="expired"){if(e.state==="loading")return new Promise((h,g)=>{e.reloadPromise={resolve:h,reject:g}})}else e.actor=this.dispatcher.getActor(),l="LT";e.abortController=new AbortController;try{const h=yield e.actor.sendAsync({type:l,data:a},e.abortController);if(delete e.abortController,e.aborted)return;this._afterTileLoadWorkerResponse(e,h)}catch(h){if(delete e.abortController,e.aborted)return;if(h&&h.status!==404)throw h;this._afterTileLoadWorkerResponse(e,null)}})}_afterTileLoadWorkerResponse(e,r){if(r&&r.resourceTiming&&(e.resourceTiming=r.resourceTiming),r&&this.map._refreshExpiredTiles&&e.setExpiryData(r),e.loadVectorData(r,this.map.painter),e.reloadPromise){const a=e.reloadPromise;e.reloadPromise=null,this.loadTile(e).then(a.resolve).catch(a.reject)}}abortTile(e){return s._(this,void 0,void 0,function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.actor&&(yield e.actor.sendAsync({type:"AT",data:{uid:e.uid,type:this.type,source:this.id}}))})}unloadTile(e){return s._(this,void 0,void 0,function*(){e.unloadVectorData(),e.actor&&(yield e.actor.sendAsync({type:"RMT",data:{uid:e.uid,type:this.type,source:this.id}}))})}hasTransition(){return!1}}class kt extends s.E{constructor(e,r,a,l){super(),this.id=e,this.dispatcher=a,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=s.e({type:"raster"},r),s.e(this,s.O(r,["url","scheme","tileSize"]))}load(){return s._(this,arguments,void 0,function*(e=!1){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const r=yield nt(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,r&&(s.e(this,r),r.bounds&&(this.tileBounds=new xt(r.bounds,this.minzoom,this.maxzoom)),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new s.l("data",{dataType:"source",sourceDataType:"content",sourceDataChanged:e})))}catch(r){this._tileJSONRequest=null,this.fire(new s.k(r))}})}loaded(){return this._loaded}onAdd(e){this.map=e,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(e){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),e(),this.load(!0)}setTiles(e){return this.setSourceProperty(()=>{this._options.tiles=e}),this}setUrl(e){return this.setSourceProperty(()=>{this.url=e,this._options.url=e}),this}serialize(){return s.e({},this._options)}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);e.abortController=new AbortController;try{const a=yield ee.getImage(this.map._requestManager.transformRequest(r,"Tile"),e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(a&&a.data){this.map._refreshExpiredTiles&&(a.cacheControl||a.expires)&&e.setExpiryData({cacheControl:a.cacheControl,expires:a.expires});const l=this.map.painter.context,h=l.gl,g=a.data;e.texture=this.map.painter.getTileTexture(g.width),e.texture?e.texture.update(g,{useMipmap:!0}):(e.texture=new Ze(l,g,h.RGBA,{useMipmap:!0}),e.texture.bind(h.LINEAR,h.CLAMP_TO_EDGE,h.LINEAR_MIPMAP_NEAREST)),e.state="loaded"}}catch(a){if(delete e.abortController,e.aborted)e.state="unloaded";else if(a)throw e.state="errored",a}})}abortTile(e){return s._(this,void 0,void 0,function*(){e.abortController&&(e.abortController.abort(),delete e.abortController)})}unloadTile(e){return s._(this,void 0,void 0,function*(){e.texture&&this.map.painter.saveTileTexture(e.texture)})}hasTransition(){return!1}}class er extends kt{constructor(e,r,a,l){super(e,r,a,l),this.type="raster-dem",this.maxzoom=22,this._options=s.e({type:"raster-dem"},r),this.encoding=r.encoding||"mapbox",this.redFactor=r.redFactor,this.greenFactor=r.greenFactor,this.blueFactor=r.blueFactor,this.baseShift=r.baseShift}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a=this.map._requestManager.transformRequest(r,"Tile");e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.abortController=new AbortController;try{const l=yield ee.getImage(a,e.abortController,this.map._refreshExpiredTiles);if(delete e.abortController,e.aborted)return void(e.state="unloaded");if(l&&l.data){const h=l.data;this.map._refreshExpiredTiles&&(l.cacheControl||l.expires)&&e.setExpiryData({cacheControl:l.cacheControl,expires:l.expires});const g=s.b(h)&&s.V()?h:yield this.readImageNow(h),b={type:this.type,uid:e.uid,source:this.id,rawImageData:g,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!e.actor||e.state==="expired"){e.actor=this.dispatcher.getActor();const A=yield e.actor.sendAsync({type:"LDT",data:b});e.dem=A,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state="loaded"}}}catch(l){if(delete e.abortController,e.aborted)e.state="unloaded";else if(l)throw e.state="errored",l}})}readImageNow(e){return s._(this,void 0,void 0,function*(){if(typeof VideoFrame<"u"&&s.W()){const r=e.width+2,a=e.height+2;try{return new s.R({width:r,height:a},yield s.X(e,-1,-1,r,a))}catch{}}return M.getImageData(e,1)})}_getNeighboringTiles(e){const r=e.canonical,a=Math.pow(2,r.z),l=(r.x-1+a)%a,h=r.x===0?e.wrap-1:e.wrap,g=(r.x+1+a)%a,b=r.x+1===a?e.wrap+1:e.wrap,A={};return A[new s.Y(e.overscaledZ,h,r.z,l,r.y).key]={backfilled:!1},A[new s.Y(e.overscaledZ,b,r.z,g,r.y).key]={backfilled:!1},r.y>0&&(A[new s.Y(e.overscaledZ,h,r.z,l,r.y-1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,b,r.z,g,r.y-1).key]={backfilled:!1}),r.y+1<a&&(A[new s.Y(e.overscaledZ,h,r.z,l,r.y+1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,e.wrap,r.z,r.x,r.y+1).key]={backfilled:!1},A[new s.Y(e.overscaledZ,b,r.z,g,r.y+1).key]={backfilled:!1}),A}unloadTile(e){return s._(this,void 0,void 0,function*(){e.demTexture&&this.map.painter.saveTileTexture(e.demTexture),e.fbo&&(e.fbo.destroy(),delete e.fbo),e.dem&&delete e.dem,delete e.neighboringTiles,e.state="unloaded",e.actor&&(yield e.actor.sendAsync({type:"RDT",data:{type:this.type,uid:e.uid,source:this.id}}))})}}class Ht extends s.E{constructor(e,r,a,l){super(),this.id=e,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=a.getActor(),this.setEventedParent(l),this._data=r.data,this._options=s.e({},r),this._collectResourceTiming=r.collectResourceTiming,r.maxzoom!==void 0&&(this.maxzoom=r.maxzoom),r.type&&(this.type=r.type),r.attribution&&(this.attribution=r.attribution),this.promoteId=r.promoteId,r.clusterMaxZoom!==void 0&&this.maxzoom<=r.clusterMaxZoom&&s.w(`The maxzoom value "${this.maxzoom}" is expected to be greater than the clusterMaxZoom value "${r.clusterMaxZoom}".`),this.workerOptions=s.e({source:this.id,cluster:r.cluster||!1,geojsonVtOptions:{buffer:this._pixelsToTileUnits(r.buffer!==void 0?r.buffer:128),tolerance:this._pixelsToTileUnits(r.tolerance!==void 0?r.tolerance:.375),extent:s.Z,maxZoom:this.maxzoom,lineMetrics:r.lineMetrics||!1,generateId:r.generateId||!1},superclusterOptions:{maxZoom:r.clusterMaxZoom!==void 0?r.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,r.clusterMinPoints||2),extent:s.Z,radius:this._pixelsToTileUnits(r.clusterRadius||50),log:!1,generateId:r.generateId||!1},clusterProperties:r.clusterProperties,filter:r.filter},r.workerOptions),typeof this.promoteId=="string"&&(this.workerOptions.promoteId=this.promoteId)}_pixelsToTileUnits(e){return e*(s.Z/this.tileSize)}load(){return s._(this,void 0,void 0,function*(){yield this._updateWorkerData()})}onAdd(e){this.map=e,this.load()}setData(e){return this._data=e,this._updateWorkerData(),this}updateData(e){return this._updateWorkerData(e),this}getData(){return s._(this,void 0,void 0,function*(){const e=s.e({type:this.type},this.workerOptions);return this.actor.sendAsync({type:"GD",data:e})})}getCoordinatesFromGeometry(e){return e.type==="GeometryCollection"?e.geometries.map(r=>r.coordinates).flat(1/0):e.coordinates.flat(1/0)}getBounds(){return s._(this,void 0,void 0,function*(){const e=new Xe,r=yield this.getData();let a;switch(r.type){case"FeatureCollection":a=r.features.map(l=>this.getCoordinatesFromGeometry(l.geometry)).flat(1/0);break;case"Feature":a=this.getCoordinatesFromGeometry(r.geometry);break;default:a=this.getCoordinatesFromGeometry(r)}if(a.length==0)return e;for(let l=0;l<a.length-1;l+=2)e.extend([a[l],a[l+1]]);return e})}setClusterOptions(e){return this.workerOptions.cluster=e.cluster,e&&(e.clusterRadius!==void 0&&(this.workerOptions.superclusterOptions.radius=this._pixelsToTileUnits(e.clusterRadius)),e.clusterMaxZoom!==void 0&&(this.workerOptions.superclusterOptions.maxZoom=e.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(e){return this.actor.sendAsync({type:"GCEZ",data:{type:this.type,clusterId:e,source:this.id}})}getClusterChildren(e){return this.actor.sendAsync({type:"GCC",data:{type:this.type,clusterId:e,source:this.id}})}getClusterLeaves(e,r,a){return this.actor.sendAsync({type:"GCL",data:{type:this.type,source:this.id,clusterId:e,limit:r,offset:a}})}_updateWorkerData(e){return s._(this,void 0,void 0,function*(){const r=s.e({type:this.type},this.workerOptions);e?r.dataDiff=e:typeof this._data=="string"?(r.request=this.map._requestManager.transformRequest(M.resolveURL(this._data),"Source"),r.request.collectResourceTiming=this._collectResourceTiming):r.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new s.l("dataloading",{dataType:"source"}));try{const a=yield this.actor.sendAsync({type:"LD",data:r});if(this._pendingLoads--,this._removed||a.abandoned)return void this.fire(new s.l("dataabort",{dataType:"source"}));let l=null;a.resourceTiming&&a.resourceTiming[this.id]&&(l=a.resourceTiming[this.id].slice(0));const h={dataType:"source"};this._collectResourceTiming&&l&&l.length>0&&s.e(h,{resourceTiming:l}),this.fire(new s.l("data",Object.assign(Object.assign({},h),{sourceDataType:"metadata"}))),this.fire(new s.l("data",Object.assign(Object.assign({},h),{sourceDataType:"content"})))}catch(a){if(this._pendingLoads--,this._removed)return void this.fire(new s.l("dataabort",{dataType:"source"}));this.fire(new s.k(a))}})}loaded(){return this._pendingLoads===0}loadTile(e){return s._(this,void 0,void 0,function*(){const r=e.actor?"RT":"LT";e.actor=this.actor;const a={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.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};e.abortController=new AbortController;const l=yield this.actor.sendAsync({type:r,data:a},e.abortController);delete e.abortController,e.unloadVectorData(),e.aborted||e.loadVectorData(l,this.map.painter,r==="RT")})}abortTile(e){return s._(this,void 0,void 0,function*(){e.abortController&&(e.abortController.abort(),delete e.abortController),e.aborted=!0})}unloadTile(e){return s._(this,void 0,void 0,function*(){e.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:e.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 s.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}class Jt extends s.E{constructor(e,r,a,l){super(),this.flippedWindingOrder=!1,this.id=e,this.dispatcher=a,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(l),this.options=r}load(e){return s._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new s.l("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const r=yield ee.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,r&&r.data&&(this.image=r.data,e&&(this.coordinates=e),this._finishLoading())}catch(r){this._request=null,this._loaded=!0,this.fire(new s.k(r))}})}loaded(){return this._loaded}updateImage(e){return e.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=e.url,this.load(e.coordinates).finally(()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new s.l("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(e){this.map=e,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(e){this.coordinates=e;const r=e.map(s.$.fromLngLat);var a;return this.tileID=function(l){let h=1/0,g=1/0,b=-1/0,A=-1/0;for(const O of l)h=Math.min(h,O.x),g=Math.min(g,O.y),b=Math.max(b,O.x),A=Math.max(A,O.y);const I=Math.max(b-h,A-g),D=Math.max(0,Math.floor(-Math.log(I)/Math.LN2)),F=Math.pow(2,D);return new s.a1(D,Math.floor((h+b)/2*F),Math.floor((g+A)/2*F))}(r),this.terrainTileRanges=this._getOverlappingTileRanges(r),this.minzoom=this.maxzoom=this.tileID.z,this.tileCoords=r.map(l=>this.tileID.getTilePoint(l)._round()),this.flippedWindingOrder=((a=this.tileCoords)[1].x-a[0].x)*(a[2].y-a[0].y)-(a[1].y-a[0].y)*(a[2].x-a[0].x)<0,this.fire(new s.l("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const e=this.map.painter.context,r=e.gl;this.texture||(this.texture=new Ze(e,this.image,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE));let a=!1;for(const l in this.tiles){const h=this.tiles[l];h.state!=="loaded"&&(h.state="loaded",h.texture=this.texture,a=!0)}a&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(e){return s._(this,void 0,void 0,function*(){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={}):e.state="errored"})}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}_getOverlappingTileRanges(e){let r=1/0,a=1/0,l=-1/0,h=-1/0;for(const b of e)r=Math.min(r,b.x),a=Math.min(a,b.y),l=Math.max(l,b.x),h=Math.max(h,b.y);const g={};for(let b=0;b<=s.a0;b++){const A=Math.pow(2,b),I=Math.floor(r*A),D=Math.floor(a*A),F=Math.floor(l*A),O=Math.floor(h*A);g[b]={minTileX:I,minTileY:D,maxTileX:F,maxTileY:O}}return g}}class Br extends Jt{constructor(e,r,a,l){super(e,r,a,l),this.roundZoom=!0,this.type="video",this.options=r}load(){return s._(this,void 0,void 0,function*(){this._loaded=!1;const e=this.options;this.urls=[];for(const r of e.urls)this.urls.push(this.map._requestManager.transformRequest(r,"Source").url);try{const r=yield s.a2(this.urls);if(this._loaded=!0,!r)return;this.video=r,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading()}catch(r){this.fire(new s.k(r))}})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(e){if(this.video){const r=this.video.seekable;e<r.start(0)||e>r.end(0)?this.fire(new s.k(new s.a3(`sources.${this.id}`,null,`Playback for this video can be set only between the ${r.start(0)} and ${r.end(0)}-second mark.`))):this.video.currentTime=e}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,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 e=this.map.painter.context,r=e.gl;this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new Ze(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE));let a=!1;for(const l in this.tiles){const h=this.tiles[l];h.state!=="loaded"&&(h.state="loaded",h.texture=this.texture,a=!0)}a&&this.fire(new s.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 _i extends Jt{constructor(e,r,a,l){super(e,r,a,l),r.coordinates?Array.isArray(r.coordinates)&&r.coordinates.length===4&&!r.coordinates.some(h=>!Array.isArray(h)||h.length!==2||h.some(g=>typeof g!="number"))||this.fire(new s.k(new s.a3(`sources.${e}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new s.k(new s.a3(`sources.${e}`,null,'missing required property "coordinates"'))),r.animate&&typeof r.animate!="boolean"&&this.fire(new s.k(new s.a3(`sources.${e}`,null,'optional "animate" property must be a boolean value'))),r.canvas?typeof r.canvas=="string"||r.canvas instanceof HTMLCanvasElement||this.fire(new s.k(new s.a3(`sources.${e}`,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 s.k(new s.a3(`sources.${e}`,null,'missing required property "canvas"'))),this.options=r,this.animate=r.animate===void 0||r.animate}load(){return s._(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 s.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(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const r=this.map.painter.context,a=r.gl;this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new Ze(r,this.canvas,a.RGBA,{premultiply:!0});let l=!1;for(const h in this.tiles){const g=this.tiles[h];g.state!=="loaded"&&(g.state="loaded",g.texture=this.texture,l=!0)}l&&this.fire(new s.l("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of[this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return!0;return!1}}const gr={},Ti=u=>{switch(u){case"geojson":return Ht;case"image":return Jt;case"raster":return kt;case"raster-dem":return er;case"vector":return wt;case"video":return Br;case"canvas":return _i}return gr[u]},rn="RTLPluginLoaded";class or extends s.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=Tn()}_syncState(e){return this.status=e,this.dispatcher.broadcast("SRPS",{pluginStatus:e,pluginURL:this.url}).catch(r=>{throw this.status="error",r})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(e){return s._(this,arguments,void 0,function*(r,a=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=M.resolveURL(r),!this.url)throw new Error(`requested url ${r} is invalid`);if(this.status==="unavailable"){if(!a)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()})}_requestImport(){return s._(this,void 0,void 0,function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new s.l(rn))})}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let Xt=null;function _t(){return Xt||(Xt=new or),Xt}class Ar{constructor(e,r){this.timeAdded=0,this.fadeEndTime=0,this.tileID=e,this.uid=s.a4(),this.uses=0,this.tileSize=r,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(e){const r=e+this.timeAdded;r<this.fadeEndTime||(this.fadeEndTime=r)}wasRequested(){return this.state==="errored"||this.state==="loaded"||this.state==="reloading"}clearTextures(e){this.demTexture&&e.saveTileTexture(this.demTexture),this.demTexture=null}loadVectorData(e,r,a){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",e){e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestFeatureIndex.rawTileData=e.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=function(l,h){const g={};if(!h)return g;for(const b of l){const A=b.layerIds.map(I=>h.getLayer(I)).filter(Boolean);if(A.length!==0){b.layers=A,b.stateDependentLayerIds&&(b.stateDependentLayers=b.stateDependentLayerIds.map(I=>A.filter(D=>D.id===I)[0]));for(const I of A)g[I.id]=b}}return g}(e.buckets,r==null?void 0:r.style),this.hasSymbolBuckets=!1;for(const l in this.buckets){const h=this.buckets[l];if(h instanceof s.a6){if(this.hasSymbolBuckets=!0,!a)break;h.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const l in this.buckets){const h=this.buckets[l];if(h instanceof s.a6&&h.hasRTLText){this.hasRTLText=!0,_t().lazyLoad();break}}this.queryPadding=0;for(const l in this.buckets){const h=this.buckets[l];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(l).queryRadius(h))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage)}else this.collisionBoxArray=new s.a5}unloadVectorData(){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(e){return this.buckets[e.id]}upload(e){for(const a in this.buckets){const l=this.buckets[a];l.uploadPending()&&l.upload(e)}const r=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Ze(e,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Ze(e,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,r,a,l,h,g,b,A,I,D,F){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:l,cameraQueryGeometry:h,scale:g,tileSize:this.tileSize,pixelPosMatrix:D,transform:A,params:b,queryPadding:this.queryPadding*I,getElevation:F},e,r,a):{}}querySourceFeatures(e,r){const a=this.latestFeatureIndex;if(!a||!a.rawTileData)return;const l=a.loadVTLayers(),h=r&&r.sourceLayer?r.sourceLayer:"",g=l._geojsonTileLayer||l[h];if(!g)return;const b=s.a7(r&&r.filter),{z:A,x:I,y:D}=this.tileID.canonical,F={z:A,x:I,y:D};for(let O=0;O<g.length;O++){const Z=g.feature(O);if(b.needGeometry){const ne=s.a8(Z,!0);if(!b.filter(new s.C(this.tileID.overscaledZ),ne,this.tileID.canonical))continue}else if(!b.filter(new s.C(this.tileID.overscaledZ),Z))continue;const J=a.getId(Z,h),se=new s.a9(Z,A,I,D,J);se.tile=F,e.push(se)}}hasData(){return this.state==="loaded"||this.state==="reloading"||this.state==="expired"}patternsLoaded(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(e){const r=this.expirationTime;if(e.cacheControl){const a=s.aa(e.cacheControl);a["max-age"]&&(this.expirationTime=Date.now()+1e3*a["max-age"])}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){const a=Date.now();let l=!1;if(this.expirationTime>a)l=!1;else if(r)if(this.expirationTime<r)l=!0;else{const h=this.expirationTime-r;h?this.expirationTime=a+Math.max(h,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(e,r){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData||Object.keys(e).length===0)return;const a=this.latestFeatureIndex.loadVTLayers();for(const l in this.buckets){if(!r.style.hasLayer(l))continue;const h=this.buckets[l],g=h.layers[0].sourceLayer||"_geojsonTileLayer",b=a[g],A=e[g];if(!b||!A||Object.keys(A).length===0)continue;h.update(A,b,this.imageAtlas&&this.imageAtlas.patternPositions||{});const I=r&&r.style&&r.style.getLayer(l);I&&(this.queryPadding=Math.max(this.queryPadding,I.queryRadius(h)))}}holdingForFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<M.now()}clearFadeHold(){this.symbolFadeHoldUntil=void 0}setHoldDuration(e){this.symbolFadeHoldUntil=M.now()+e}setDependencies(e,r){const a={};for(const l of r)a[l]=!0;this.dependencies[e]=a}hasDependency(e,r){for(const a of e){const l=this.dependencies[a];if(l){for(const h of r)if(l[h])return!0}}return!1}}class tr{constructor(e,r){this.max=e,this.onRemove=r,this.reset()}reset(){for(const e in this.data)for(const r of this.data[e])r.timeout&&clearTimeout(r.timeout),this.onRemove(r.value);return this.data={},this.order=[],this}add(e,r,a){const l=e.wrapped().key;this.data[l]===void 0&&(this.data[l]=[]);const h={value:r,timeout:void 0};if(a!==void 0&&(h.timeout=setTimeout(()=>{this.remove(e,h)},a)),this.data[l].push(h),this.order.push(l),this.order.length>this.max){const g=this._getAndRemoveByKey(this.order[0]);g&&this.onRemove(g)}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){const r=this.data[e].shift();return r.timeout&&clearTimeout(r.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),r.value}getByKey(e){const r=this.data[e];return r?r[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,r){if(!this.has(e))return this;const a=e.wrapped().key,l=r===void 0?0:this.data[a].indexOf(r),h=this.data[a][l];return this.data[a].splice(l,1),h.timeout&&clearTimeout(h.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(h.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(e){const r=[];for(const a in this.data)for(const l of this.data[a])e(l.value)||r.push(l);for(const a of r)this.remove(a.value.tileID,a)}}class yr{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(e,r,a){const l=String(r);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][l]=this.stateChanges[e][l]||{},s.e(this.stateChanges[e][l],a),this.deletedStates[e]===null){this.deletedStates[e]={};for(const h in this.state[e])h!==l&&(this.deletedStates[e][h]=null)}else if(this.deletedStates[e]&&this.deletedStates[e][l]===null){this.deletedStates[e][l]={};for(const h in this.state[e][l])a[h]||(this.deletedStates[e][l][h]=null)}else for(const h in a)this.deletedStates[e]&&this.deletedStates[e][l]&&this.deletedStates[e][l][h]===null&&delete this.deletedStates[e][l][h]}removeFeatureState(e,r,a){if(this.deletedStates[e]===null)return;const l=String(r);if(this.deletedStates[e]=this.deletedStates[e]||{},a&&r!==void 0)this.deletedStates[e][l]!==null&&(this.deletedStates[e][l]=this.deletedStates[e][l]||{},this.deletedStates[e][l][a]=null);else if(r!==void 0)if(this.stateChanges[e]&&this.stateChanges[e][l])for(a in this.deletedStates[e][l]={},this.stateChanges[e][l])this.deletedStates[e][l][a]=null;else this.deletedStates[e][l]=null;else this.deletedStates[e]=null}getState(e,r){const a=String(r),l=s.e({},(this.state[e]||{})[a],(this.stateChanges[e]||{})[a]);if(this.deletedStates[e]===null)return{};if(this.deletedStates[e]){const h=this.deletedStates[e][r];if(h===null)return{};for(const g in h)delete l[g]}return l}initializeTileState(e,r){e.setFeatureState(this.state,r)}coalesceChanges(e,r){const a={};for(const l in this.stateChanges){this.state[l]=this.state[l]||{};const h={};for(const g in this.stateChanges[l])this.state[l][g]||(this.state[l][g]={}),s.e(this.state[l][g],this.stateChanges[l][g]),h[g]=this.state[l][g];a[l]=h}for(const l in this.deletedStates){this.state[l]=this.state[l]||{};const h={};if(this.deletedStates[l]===null)for(const g in this.state[l])h[g]={},this.state[l][g]={};else for(const g in this.deletedStates[l]){if(this.deletedStates[l][g]===null)this.state[l][g]={};else for(const b of Object.keys(this.deletedStates[l][g]))delete this.state[l][g][b];h[g]=this.state[l][g]}a[l]=a[l]||{},s.e(a[l],h)}if(this.stateChanges={},this.deletedStates={},Object.keys(a).length!==0)for(const l in e)e[l].setFeatureState(a,r)}}const Cr=89.25;function Zt(u,e){const r=s.ae(e.lat,-85.051129,s.af);return new s.P(s.U(e.lng)*u,s.S(r)*u)}function jr(u,e){return new s.$(e.x/u,e.y/u).toLngLat()}function ve(u){return u.cameraToCenterDistance*Math.min(.85*Math.tan(s.ab(90-u.pitch)),Math.tan(s.ab(Cr-u.pitch)))}function G(u,e){const r=u.canonical,a=e/s.ac(r.z),l=r.x+Math.pow(2,r.z)*u.wrap,h=s.ad(new Float64Array(16));return s.L(h,h,[l*a,r.y*a,0]),s.M(h,h,[a/s.Z,a/s.Z,1]),h}function Q(u,e,r,a,l){const h=s.$.fromLngLat(u,e),g=l*s.ag(1,u.lat),b=g*Math.cos(s.ab(r)),A=Math.sqrt(g*g-b*b),I=A*Math.sin(s.ab(-a)),D=A*Math.cos(s.ab(-a));return new s.$(h.x+I,h.y+D,h.z+b)}function te(u,e,r){const a=e.intersectsFrustum(u);if(!r)return a;const l=e.intersectsPlane(r);return a===0||l===0?0:a===2&&l===2?2:1}function he(u,e,r){let a=0;const l=(r-e)/10;for(let h=0;h<10;h++)a+=l*Math.pow(Math.cos(e+(h+.5)/10*(r-e)),u);return a}function xe(u,e){return function(r,a,l,h,g){const b=2*((u-1)/s.ah(Math.cos(s.ab(Cr-g))/Math.cos(s.ab(Cr)))-1),A=Math.acos(l/h),I=2*he(b-1,0,s.ab(g/2)),D=Math.min(s.ab(Cr),A+s.ab(g/2)),F=he(b-1,Math.min(D,A-s.ab(g/2)),D),O=Math.atan(a/l),Z=Math.hypot(a,l);let J=r;return J+=s.ah(h/Z/Math.max(.5,Math.cos(s.ab(g/2)))),J+=b*s.ah(Math.cos(O))/2,J-=s.ah(Math.max(1,F/I/e))/2,J}}const re=xe(9.314,3);function Ee(u,e){const r=(e.roundZoom?Math.round:Math.floor)(u.zoom+s.ah(u.tileSize/e.tileSize));return Math.max(0,r)}function we(u,e){const r=u.getCameraFrustum(),a=u.getClippingPlane(),l=u.screenPointToMercatorCoordinate(u.getCameraPoint()),h=s.$.fromLngLat(u.center,u.elevation);l.z=h.z+Math.cos(u.pitchInRadians)*u.cameraToCenterDistance/u.worldSize;const g=u.getCoveringTilesDetailsProvider(),b=g.allowVariableZoom(u,e),A=Ee(u,e),I=e.minzoom||0,D=e.maxzoom!==void 0?e.maxzoom:u.maxZoom,F=Math.min(Math.max(0,A),D),O=Math.pow(2,F),Z=[O*l.x,O*l.y,0],J=[O*h.x,O*h.y,0],se=Math.hypot(h.x-l.x,h.y-l.y),ne=Math.abs(h.z-l.z),oe=Math.hypot(se,ne),ce=ge=>({zoom:0,x:0,y:0,wrap:ge,fullyVisible:!1}),me=[],fe=[];if(u.renderWorldCopies&&g.allowWorldCopies())for(let ge=1;ge<=3;ge++)me.push(ce(-ge)),me.push(ce(ge));for(me.push(ce(0));me.length>0;){const ge=me.pop(),be=ge.x,ye=ge.y;let Te=ge.fullyVisible;const Oe={x:be,y:ye,z:ge.zoom},Le=g.getTileAABB(Oe,ge.wrap,u.elevation,e);if(!Te){const Qe=te(r,Le,a);if(Qe===0)continue;Te=Qe===2}const Re=g.distanceToTile2d(l.x,l.y,Oe,Le);let ze=A;b&&(ze=(e.calculateTileZoom||re)(u.zoom+s.ah(u.tileSize/e.tileSize),Re,ne,oe,u.fov)),ze=(e.roundZoom?Math.round:Math.floor)(ze),ze=Math.max(0,ze);const Ye=Math.min(ze,D);if(ge.wrap=g.getWrap(h,Oe,ge.wrap),ge.zoom>=Ye){if(ge.zoom<I)continue;const Qe=F-ge.zoom,We=Z[0]-.5-(be<<Qe),at=Z[1]-.5-(ye<<Qe),Et=e.reparseOverscaled?Math.max(ge.zoom,ze):ge.zoom;fe.push({tileID:new s.Y(ge.zoom===D?Et:ge.zoom,ge.wrap,ge.zoom,be,ye),distanceSq:s.ai([J[0]-.5-be,J[1]-.5-ye]),tileDistanceToCamera:Math.sqrt(We*We+at*at)})}else for(let Qe=0;Qe<4;Qe++)me.push({zoom:ge.zoom+1,x:(be<<1)+Qe%2,y:(ye<<1)+(Qe>>1),wrap:ge.wrap,fullyVisible:Te})}return fe.sort((ge,be)=>ge.distanceSq-be.distanceSq).map(ge=>ge.tileID)}class ke extends s.E{constructor(e,r,a){super(),this.id=e,this.dispatcher=a,this.on("data",l=>this._dataHandler(l)),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((l,h,g,b)=>{const A=new(Ti(h.type))(l,h,g,b);if(A.id!==l)throw new Error(`Expected Source id to be ${l} instead of ${A.id}`);return A})(e,r,a,this),this._tiles={},this._cache=new tr(0,l=>this._unloadTile(l)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new yr,this._didEmitContent=!1,this._updated=!1}onAdd(e){this.map=e,this._maxTileCacheSize=e?e._maxTileCacheSize:null,this._maxTileCacheZoomLevels=e?e._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(e)}onRemove(e){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(e)}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 e in this._tiles){const r=this._tiles[e];if(r.state!=="loaded"&&r.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(e,r,a){return s._(this,void 0,void 0,function*(){try{yield this._source.loadTile(e),this._tileLoaded(e,r,a)}catch(l){e.state="errored",l.status!==404?this._source.fire(new s.k(l,{tile:e})):this.update(this.transform,this.terrain)}})}_unloadTile(e){this._source.unloadTile&&this._source.unloadTile(e)}_abortTile(e){this._source.abortTile&&this._source.abortTile(e),this._source.fire(new s.l("dataabort",{tile:e,coord:e.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const r in this._tiles){const a=this._tiles[r];a.upload(e),a.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(e=>e.tileID).sort(Ie).map(e=>e.key)}getRenderableIds(e){const r=[];for(const a in this._tiles)this._isIdRenderable(a,e)&&r.push(this._tiles[a]);return e?r.sort((a,l)=>{const h=a.tileID,g=l.tileID,b=new s.P(h.canonical.x,h.canonical.y)._rotate(-this.transform.bearingInRadians),A=new s.P(g.canonical.x,g.canonical.y)._rotate(-this.transform.bearingInRadians);return h.overscaledZ-g.overscaledZ||A.y-b.y||A.x-b.x}).map(a=>a.tileID.key):r.map(a=>a.tileID).sort(Ie).map(a=>a.key)}hasRenderableParent(e){const r=this.findLoadedParent(e,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(e,r){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(r||!this._tiles[e].holdingForFade())}reload(e){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const r in this._tiles)(e||this._tiles[r].state!=="errored")&&this._reloadTile(r,"reloading")}}_reloadTile(e,r){return s._(this,void 0,void 0,function*(){const a=this._tiles[e];a&&(a.state!=="loading"&&(a.state=r),yield this._loadTile(a,e,r))})}_tileLoaded(e,r,a){e.timeAdded=M.now(),a==="expired"&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(r,e),this.getSource().type==="raster-dem"&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new s.l("data",{dataType:"source",tile:e,coord:e.tileID}))}_backfillDEM(e){const r=this.getRenderableIds();for(let l=0;l<r.length;l++){const h=r[l];if(e.neighboringTiles&&e.neighboringTiles[h]){const g=this.getTileByID(h);a(e,g),a(g,e)}}function a(l,h){l.needsHillshadePrepare=!0,l.needsTerrainPrepare=!0;let g=h.tileID.canonical.x-l.tileID.canonical.x;const b=h.tileID.canonical.y-l.tileID.canonical.y,A=Math.pow(2,l.tileID.canonical.z),I=h.tileID.key;g===0&&b===0||Math.abs(b)>1||(Math.abs(g)>1&&(Math.abs(g+A)===1?g+=A:Math.abs(g-A)===1&&(g-=A)),h.dem&&l.dem&&(l.dem.backfillBorder(h.dem,g,b),l.neighboringTiles&&l.neighboringTiles[I]&&(l.neighboringTiles[I].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,r,a,l){for(const h in this._tiles){let g=this._tiles[h];if(l[h]||!g.hasData()||g.tileID.overscaledZ<=r||g.tileID.overscaledZ>a)continue;let b=g.tileID;for(;g&&g.tileID.overscaledZ>r+1;){const I=g.tileID.scaledTo(g.tileID.overscaledZ-1);g=this._tiles[I.key],g&&g.hasData()&&(b=I)}let A=b;for(;A.overscaledZ>r;)if(A=A.scaledTo(A.overscaledZ-1),e[A.key]||e[A.canonical.key]){l[b.key]=b;break}}}findLoadedParent(e,r){if(e.key in this._loadedParentTiles){const a=this._loadedParentTiles[e.key];return a&&a.tileID.overscaledZ>=r?a:null}for(let a=e.overscaledZ-1;a>=r;a--){const l=e.scaledTo(a),h=this._getLoadedTile(l);if(h)return h}}findLoadedSibling(e){return this._getLoadedTile(e)}_getLoadedTile(e){const r=this._tiles[e.key];return r&&r.hasData()?r:this._cache.getByKey(e.wrapped().key)}updateCacheSize(e){const r=Math.ceil(e.width/this._source.tileSize)+1,a=Math.ceil(e.height/this._source.tileSize)+1,l=Math.floor(r*a*(this._maxTileCacheZoomLevels===null?s.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),h=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,l):l;this._cache.setMaxSize(h)}handleWrapJump(e){const r=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,r){const a={};for(const l in this._tiles){const h=this._tiles[l];h.tileID=h.tileID.unwrapTo(h.tileID.wrap+r),a[h.tileID.key]=h}this._tiles=a;for(const l in this._timers)clearTimeout(this._timers[l]),delete this._timers[l];for(const l in this._tiles)this._setTileReloadTimer(l,this._tiles[l])}}_updateCoveredAndRetainedTiles(e,r,a,l,h,g){const b={},A={},I=Object.keys(e),D=M.now();for(const F of I){const O=e[F],Z=this._tiles[F];if(!Z||Z.fadeEndTime!==0&&Z.fadeEndTime<=D)continue;const J=this.findLoadedParent(O,r),se=this.findLoadedSibling(O),ne=J||se||null;ne&&(this._addTile(ne.tileID),b[ne.tileID.key]=ne.tileID),A[F]=O}this._retainLoadedChildren(A,l,a,e);for(const F in b)e[F]||(this._coveredTiles[F]=!0,e[F]=b[F]);if(g){const F={},O={};for(const Z of h)this._tiles[Z.key].hasData()?F[Z.key]=Z:O[Z.key]=Z;for(const Z in O){const J=O[Z].children(this._source.maxzoom);this._tiles[J[0].key]&&this._tiles[J[1].key]&&this._tiles[J[2].key]&&this._tiles[J[3].key]&&(F[J[0].key]=e[J[0].key]=J[0],F[J[1].key]=e[J[1].key]=J[1],F[J[2].key]=e[J[2].key]=J[2],F[J[3].key]=e[J[3].key]=J[3],delete O[Z])}for(const Z in O){const J=O[Z],se=this.findLoadedParent(J,this._source.minzoom),ne=this.findLoadedSibling(J),oe=se||ne||null;if(oe){F[oe.tileID.key]=e[oe.tileID.key]=oe.tileID;for(const ce in F)F[ce].isChildOf(oe.tileID)&&delete F[ce]}}for(const Z in this._tiles)F[Z]||(this._coveredTiles[Z]=!0)}}update(e,r){if(!this._sourceLoaded||this._paused)return;let a;this.transform=e,this.terrain=r,this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?a=e.getVisibleUnwrappedCoordinates(this._source.tileID).map(D=>new s.Y(D.canonical.z,D.wrap,D.canonical.z,D.canonical.x,D.canonical.y)):(a=we(e,{tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:r,calculateTileZoom:this._source.calculateTileZoom}),this._source.hasTile&&(a=a.filter(D=>this._source.hasTile(D)))):a=[];const l=Ee(e,this._source),h=Math.max(l-ke.maxOverzooming,this._source.minzoom),g=Math.max(l+ke.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const D={};for(const F of a)if(F.canonical.z>this._source.minzoom){const O=F.scaledTo(F.canonical.z-1);D[O.key]=O;const Z=F.scaledTo(Math.max(this._source.minzoom,Math.min(F.canonical.z,5)));D[Z.key]=Z}a=a.concat(Object.values(D))}const b=a.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,b&&this.fire(new s.l("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const A=this._updateRetainedTiles(a,l);Ae(this._source.type)&&this._updateCoveredAndRetainedTiles(A,h,g,l,a,r);for(const D in A)this._tiles[D].clearFadeHold();const I=s.aj(this._tiles,A);for(const D of I){const F=this._tiles[D];F.hasSymbolBuckets&&!F.holdingForFade()?F.setHoldDuration(this.map._fadeDuration):F.hasSymbolBuckets&&!F.symbolFadeFinished()||this._removeTile(D)}this._updateLoadedParentTileCache(),this._updateLoadedSiblingTileCache()}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(e)}_updateRetainedTiles(e,r){var a;const l={},h={},g=Math.max(r-ke.maxOverzooming,this._source.minzoom),b=Math.max(r+ke.maxUnderzooming,this._source.minzoom),A={};for(const I of e){const D=this._addTile(I);l[I.key]=I,D.hasData()||r<this._source.maxzoom&&(A[I.key]=I)}this._retainLoadedChildren(A,r,b,l);for(const I of e){let D=this._tiles[I.key];if(D.hasData())continue;if(r+1>this._source.maxzoom){const O=I.children(this._source.maxzoom)[0],Z=this.getTile(O);if(Z&&Z.hasData()){l[O.key]=O;continue}}else{const O=I.children(this._source.maxzoom);if(l[O[0].key]&&l[O[1].key]&&l[O[2].key]&&l[O[3].key])continue}let F=D.wasRequested();for(let O=I.overscaledZ-1;O>=g;--O){const Z=I.scaledTo(O);if(h[Z.key])break;if(h[Z.key]=!0,D=this.getTile(Z),!D&&F&&(D=this._addTile(Z)),D){const J=D.hasData();if((J||!(!((a=this.map)===null||a===void 0)&&a.cancelPendingTileRequestsWhileZooming)||F)&&(l[Z.key]=Z),F=D.wasRequested(),J)break}}}return l}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const r=[];let a,l=this._tiles[e].tileID;for(;l.overscaledZ>0;){if(l.key in this._loadedParentTiles){a=this._loadedParentTiles[l.key];break}r.push(l.key);const h=l.scaledTo(l.overscaledZ-1);if(a=this._getLoadedTile(h),a)break;l=h}for(const h of r)this._loadedParentTiles[h]=a}}_updateLoadedSiblingTileCache(){this._loadedSiblingTiles={};for(const e in this._tiles){const r=this._tiles[e].tileID,a=this._getLoadedTile(r);this._loadedSiblingTiles[r.key]=a}}_addTile(e){let r=this._tiles[e.key];if(r)return r;r=this._cache.getAndRemove(e),r&&(this._setTileReloadTimer(e.key,r),r.tileID=e,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,r)));const a=r;return r||(r=new Ar(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(r,e.key,r.state)),r.uses++,this._tiles[e.key]=r,a||this._source.fire(new s.l("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r}_setTileReloadTimer(e,r){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const a=r.getExpiryTimeout();a&&(this._timers[e]=setTimeout(()=>{this._reloadTile(e,"expired"),delete this._timers[e]},a))}refreshTiles(e){for(const r in this._tiles)this._isIdRenderable(r)&&e.some(a=>a.equals(this._tiles[r].tileID.canonical))&&this._reloadTile(r,"expired")}_removeTile(e){const r=this._tiles[e];r&&(r.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),r.uses>0||(r.hasData()&&r.state!=="reloading"?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}_dataHandler(e){const r=e.sourceDataType;e.dataType==="source"&&r==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&e.dataType==="source"&&r==="content"&&(this.reload(e.sourceDataChanged),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(e);this._cache.reset()}tilesIn(e,r,a){const l=[],h=this.transform;if(!h)return l;const g=a?h.getCameraQueryGeometry(e):e,b=e.map(J=>h.screenPointToMercatorCoordinate(J,this.terrain)),A=g.map(J=>h.screenPointToMercatorCoordinate(J,this.terrain)),I=this.getIds();let D=1/0,F=1/0,O=-1/0,Z=-1/0;for(const J of A)D=Math.min(D,J.x),F=Math.min(F,J.y),O=Math.max(O,J.x),Z=Math.max(Z,J.y);for(let J=0;J<I.length;J++){const se=this._tiles[I[J]];if(se.holdingForFade())continue;const ne=h.getCoveringTilesDetailsProvider().allowWorldCopies()?se.tileID:se.tileID.unwrapTo(0),oe=Math.pow(2,h.zoom-se.tileID.overscaledZ),ce=r*se.queryPadding*s.Z/se.tileSize/oe,me=[ne.getTilePoint(new s.$(D,F)),ne.getTilePoint(new s.$(O,Z))];if(me[0].x-ce<s.Z&&me[0].y-ce<s.Z&&me[1].x+ce>=0&&me[1].y+ce>=0){const fe=b.map(be=>ne.getTilePoint(be)),ge=A.map(be=>ne.getTilePoint(be));l.push({tile:se,tileID:ne,queryGeometry:fe,cameraQueryGeometry:ge,scale:oe})}}return l}getVisibleCoordinates(e){const r=this.getRenderableIds(e).map(a=>this._tiles[a].tileID);return this.transform&&this.transform.populateCache(r),r}hasTransition(){if(this._source.hasTransition())return!0;if(Ae(this._source.type)){const e=M.now();for(const r in this._tiles)if(this._tiles[r].fadeEndTime>=e)return!0}return!1}setFeatureState(e,r,a){this._state.updateState(e=e||"_geojsonTileLayer",r,a)}removeFeatureState(e,r,a){this._state.removeFeatureState(e=e||"_geojsonTileLayer",r,a)}getFeatureState(e,r){return this._state.getState(e=e||"_geojsonTileLayer",r)}setDependencies(e,r,a){const l=this._tiles[e];l&&l.setDependencies(r,a)}reloadTilesForDependencies(e,r){for(const a in this._tiles)this._tiles[a].hasDependency(e,r)&&this._reloadTile(a,"reloading");this._cache.filter(a=>!a.hasDependency(e,r))}}function Ie(u,e){const r=Math.abs(2*u.wrap)-+(u.wrap<0),a=Math.abs(2*e.wrap)-+(e.wrap<0);return u.overscaledZ-e.overscaledZ||a-r||e.canonical.y-u.canonical.y||e.canonical.x-u.canonical.x}function Ae(u){return u==="raster"||u==="image"||u==="video"}ke.maxOverzooming=10,ke.maxUnderzooming=3;class Ue{constructor(e,r){this.reset(e,r)}reset(e,r){this.points=e||[],this._distances=[0];for(let a=1;a<this.points.length;a++)this._distances[a]=this._distances[a-1]+this.points[a].dist(this.points[a-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(r||0,.5*this.length),this.paddedLength=this.length-2*this.padding}lerp(e){if(this.points.length===1)return this.points[0];e=s.ae(e,0,1);let r=1,a=this._distances[r];const l=e*this.paddedLength+this.padding;for(;a<l&&r<this._distances.length;)a=this._distances[++r];const h=r-1,g=this._distances[h],b=a-g,A=b>0?(l-g)/b:0;return this.points[h].mult(1-A).add(this.points[r].mult(A))}}function $e(u,e){let r=!0;return u==="always"||u!=="never"&&e!=="never"||(r=!1),r}class tt{constructor(e,r,a){const l=this.boxCells=[],h=this.circleCells=[];this.xCellCount=Math.ceil(e/a),this.yCellCount=Math.ceil(r/a);for(let g=0;g<this.xCellCount*this.yCellCount;g++)l.push([]),h.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=e,this.height=r,this.xScale=this.xCellCount/e,this.yScale=this.yCellCount/r,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(e,r,a,l,h){this._forEachCell(r,a,l,h,this._insertBoxCell,this.boxUid++),this.boxKeys.push(e),this.bboxes.push(r),this.bboxes.push(a),this.bboxes.push(l),this.bboxes.push(h)}insertCircle(e,r,a,l){this._forEachCell(r-l,a-l,r+l,a+l,this._insertCircleCell,this.circleUid++),this.circleKeys.push(e),this.circles.push(r),this.circles.push(a),this.circles.push(l)}_insertBoxCell(e,r,a,l,h,g){this.boxCells[h].push(g)}_insertCircleCell(e,r,a,l,h,g){this.circleCells[h].push(g)}_query(e,r,a,l,h,g,b){if(a<0||e>this.width||l<0||r>this.height)return[];const A=[];if(e<=0&&r<=0&&this.width<=a&&this.height<=l){if(h)return[{key:null,x1:e,y1:r,x2:a,y2:l}];for(let I=0;I<this.boxKeys.length;I++)A.push({key:this.boxKeys[I],x1:this.bboxes[4*I],y1:this.bboxes[4*I+1],x2:this.bboxes[4*I+2],y2:this.bboxes[4*I+3]});for(let I=0;I<this.circleKeys.length;I++){const D=this.circles[3*I],F=this.circles[3*I+1],O=this.circles[3*I+2];A.push({key:this.circleKeys[I],x1:D-O,y1:F-O,x2:D+O,y2:F+O})}}else this._forEachCell(e,r,a,l,this._queryCell,A,{hitTest:h,overlapMode:g,seenUids:{box:{},circle:{}}},b);return A}query(e,r,a,l){return this._query(e,r,a,l,!1,null)}hitTest(e,r,a,l,h,g){return this._query(e,r,a,l,!0,h,g).length>0}hitTestCircle(e,r,a,l,h){const g=e-a,b=e+a,A=r-a,I=r+a;if(b<0||g>this.width||I<0||A>this.height)return!1;const D=[];return this._forEachCell(g,A,b,I,this._queryCellCircle,D,{hitTest:!0,overlapMode:l,circle:{x:e,y:r,radius:a},seenUids:{box:{},circle:{}}},h),D.length>0}_queryCell(e,r,a,l,h,g,b,A){const{seenUids:I,hitTest:D,overlapMode:F}=b,O=this.boxCells[h];if(O!==null){const J=this.bboxes;for(const se of O)if(!I.box[se]){I.box[se]=!0;const ne=4*se,oe=this.boxKeys[se];if(e<=J[ne+2]&&r<=J[ne+3]&&a>=J[ne+0]&&l>=J[ne+1]&&(!A||A(oe))&&(!D||!$e(F,oe.overlapMode))&&(g.push({key:oe,x1:J[ne],y1:J[ne+1],x2:J[ne+2],y2:J[ne+3]}),D))return!0}}const Z=this.circleCells[h];if(Z!==null){const J=this.circles;for(const se of Z)if(!I.circle[se]){I.circle[se]=!0;const ne=3*se,oe=this.circleKeys[se];if(this._circleAndRectCollide(J[ne],J[ne+1],J[ne+2],e,r,a,l)&&(!A||A(oe))&&(!D||!$e(F,oe.overlapMode))){const ce=J[ne],me=J[ne+1],fe=J[ne+2];if(g.push({key:oe,x1:ce-fe,y1:me-fe,x2:ce+fe,y2:me+fe}),D)return!0}}}return!1}_queryCellCircle(e,r,a,l,h,g,b,A){const{circle:I,seenUids:D,overlapMode:F}=b,O=this.boxCells[h];if(O!==null){const J=this.bboxes;for(const se of O)if(!D.box[se]){D.box[se]=!0;const ne=4*se,oe=this.boxKeys[se];if(this._circleAndRectCollide(I.x,I.y,I.radius,J[ne+0],J[ne+1],J[ne+2],J[ne+3])&&(!A||A(oe))&&!$e(F,oe.overlapMode))return g.push(!0),!0}}const Z=this.circleCells[h];if(Z!==null){const J=this.circles;for(const se of Z)if(!D.circle[se]){D.circle[se]=!0;const ne=3*se,oe=this.circleKeys[se];if(this._circlesCollide(J[ne],J[ne+1],J[ne+2],I.x,I.y,I.radius)&&(!A||A(oe))&&!$e(F,oe.overlapMode))return g.push(!0),!0}}}_forEachCell(e,r,a,l,h,g,b,A){const I=this._convertToXCellCoord(e),D=this._convertToYCellCoord(r),F=this._convertToXCellCoord(a),O=this._convertToYCellCoord(l);for(let Z=I;Z<=F;Z++)for(let J=D;J<=O;J++)if(h.call(this,e,r,a,l,this.xCellCount*J+Z,g,b,A))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,r,a,l,h,g){const b=l-e,A=h-r,I=a+g;return I*I>b*b+A*A}_circleAndRectCollide(e,r,a,l,h,g,b){const A=(g-l)/2,I=Math.abs(e-(l+A));if(I>A+a)return!1;const D=(b-h)/2,F=Math.abs(r-(h+D));if(F>D+a)return!1;if(I<=A||F<=D)return!0;const O=I-A,Z=F-D;return O*O+Z*Z<=a*a}}function ht(u,e,r){const a=s.K();if(!u){const{vecSouth:F,vecEast:O}=yt(e),Z=z();Z[0]=O[0],Z[1]=O[1],Z[2]=F[0],Z[3]=F[1],l=Z,(D=(g=(h=Z)[0])*(I=h[3])-(A=h[2])*(b=h[1]))&&(l[0]=I*(D=1/D),l[1]=-b*D,l[2]=-A*D,l[3]=g*D),a[0]=Z[0],a[1]=Z[1],a[4]=Z[2],a[5]=Z[3]}var l,h,g,b,A,I,D;return s.M(a,a,[1/r,1/r,1]),a}function St(u,e,r,a){if(u){const l=s.K();if(!e){const{vecSouth:h,vecEast:g}=yt(r);l[0]=g[0],l[1]=g[1],l[4]=h[0],l[5]=h[1]}return s.M(l,l,[a,a,1]),l}return r.pixelsToClipSpaceMatrix}function yt(u){const e=Math.cos(u.rollInRadians),r=Math.sin(u.rollInRadians),a=Math.cos(u.pitchInRadians),l=Math.cos(u.bearingInRadians),h=Math.sin(u.bearingInRadians),g=s.ao();g[0]=-l*a*r-h*e,g[1]=-h*a*r+l*e;const b=s.ap(g);b<1e-9?s.aq(g):s.ar(g,g,1/b);const A=s.ao();A[0]=l*a*e-h*r,A[1]=h*a*e+l*r;const I=s.ap(A);return I<1e-9?s.aq(A):s.ar(A,A,1/I),{vecEast:A,vecSouth:g}}function Be(u,e,r,a){let l;a?(l=[u,e,a(u,e),1],s.at(l,l,r)):(l=[u,e,0,1],Hn(l,l,r));const h=l[3];return{point:new s.P(l[0]/h,l[1]/h),signedDistanceFromCamera:h,isOccluded:!1}}function Wt(u,e){return .5+u/e*.5}function zt(u,e){return u.x>=-e[0]&&u.x<=e[0]&&u.y>=-e[1]&&u.y<=e[1]}function qt(u,e,r,a,l,h,g,b,A,I,D,F,O){const Z=r?u.textSizeData:u.iconSizeData,J=s.ak(Z,e.transform.zoom),se=[256/e.width*2+1,256/e.height*2+1],ne=r?u.text.dynamicLayoutVertexArray:u.icon.dynamicLayoutVertexArray;ne.clear();const oe=u.lineVertexArray,ce=r?u.text.placedSymbolArray:u.icon.placedSymbolArray,me=e.transform.width/e.transform.height;let fe=!1;for(let ge=0;ge<ce.length;ge++){const be=ce.get(ge);if(be.hidden||be.writingMode===s.al.vertical&&!fe){dn(be.numGlyphs,ne);continue}fe=!1;const ye=new s.P(be.anchorX,be.anchorY),Te={getElevation:O,pitchedLabelPlaneMatrix:a,lineVertexArray:oe,pitchWithMap:h,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:e.transform,tileAnchorPoint:ye,unwrappedTileID:A,width:I,height:D,translation:F},Oe=Tt(be.anchorX,be.anchorY,Te);if(!zt(Oe.point,se)){dn(be.numGlyphs,ne);continue}const Le=Wt(e.transform.cameraToCenterDistance,Oe.signedDistanceFromCamera),Re=s.am(Z,J,be),ze=h?Re*e.transform.getPitchedTextCorrection(be.anchorX,be.anchorY,A)/Le:Re*Le,Ye=dt({projectionContext:Te,pitchedLabelPlaneMatrixInverse:l,symbol:be,fontSize:ze,flip:!1,keepUpright:g,glyphOffsetArray:u.glyphOffsetArray,dynamicLayoutVertexArray:ne,aspectRatio:me,rotateToLine:b});fe=Ye.useVertical,(Ye.notEnoughRoom||fe||Ye.needsFlipping&&dt({projectionContext:Te,pitchedLabelPlaneMatrixInverse:l,symbol:be,fontSize:ze,flip:!0,keepUpright:g,glyphOffsetArray:u.glyphOffsetArray,dynamicLayoutVertexArray:ne,aspectRatio:me,rotateToLine:b}).notEnoughRoom)&&dn(be.numGlyphs,ne)}r?u.text.dynamicLayoutVertexBuffer.updateData(ne):u.icon.dynamicLayoutVertexBuffer.updateData(ne)}function mt(u,e,r,a,l,h,g,b){const A=h.glyphStartIndex+h.numGlyphs,I=h.lineStartIndex,D=h.lineStartIndex+h.lineLength,F=e.getoffsetX(h.glyphStartIndex),O=e.getoffsetX(A-1),Z=jn(u*F,r,a,l,h.segment,I,D,b,g);if(!Z)return null;const J=jn(u*O,r,a,l,h.segment,I,D,b,g);return J?b.projectionCache.anyProjectionOccluded?null:{first:Z,last:J}:null}function qe(u,e,r,a){return u===s.al.horizontal&&Math.abs(r.y-e.y)>Math.abs(r.x-e.x)*a?{useVertical:!0}:(u===s.al.vertical?e.y<r.y:e.x>r.x)?{needsFlipping:!0}:null}function dt(u){const{projectionContext:e,pitchedLabelPlaneMatrixInverse:r,symbol:a,fontSize:l,flip:h,keepUpright:g,glyphOffsetArray:b,dynamicLayoutVertexArray:A,aspectRatio:I,rotateToLine:D}=u,F=l/24,O=a.lineOffsetX*F,Z=a.lineOffsetY*F;let J;if(a.numGlyphs>1){const se=a.glyphStartIndex+a.numGlyphs,ne=a.lineStartIndex,oe=a.lineStartIndex+a.lineLength,ce=mt(F,b,O,Z,h,a,D,e);if(!ce)return{notEnoughRoom:!0};const me=xi(ce.first.point.x,ce.first.point.y,e,r),fe=xi(ce.last.point.x,ce.last.point.y,e,r);if(g&&!h){const ge=qe(a.writingMode,me,fe,I);if(ge)return ge}J=[ce.first];for(let ge=a.glyphStartIndex+1;ge<se-1;ge++)J.push(jn(F*b.getoffsetX(ge),O,Z,h,a.segment,ne,oe,e,D));J.push(ce.last)}else{if(g&&!h){const ne=xr(e.tileAnchorPoint.x,e.tileAnchorPoint.y,e).point,oe=a.lineStartIndex+a.segment+1,ce=new s.P(e.lineVertexArray.getx(oe),e.lineVertexArray.gety(oe)),me=xr(ce.x,ce.y,e),fe=me.signedDistanceFromCamera>0?me.point:At(e.tileAnchorPoint,ce,ne,1,e),ge=xi(ne.x,ne.y,e,r),be=xi(fe.x,fe.y,e,r),ye=qe(a.writingMode,ge,be,I);if(ye)return ye}const se=jn(F*b.getoffsetX(a.glyphStartIndex),O,Z,h,a.segment,a.lineStartIndex,a.lineStartIndex+a.lineLength,e,D);if(!se||e.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};J=[se]}for(const se of J)s.as(A,se.point,se.angle);return{}}function At(u,e,r,a,l){const h=u.add(u.sub(e)._unit()),g=xr(h.x,h.y,l).point,b=r.sub(g);return r.add(b._mult(a/b.mag()))}function _r(u,e,r){const a=e.projectionCache;if(a.projections[u])return a.projections[u];const l=new s.P(e.lineVertexArray.getx(u),e.lineVertexArray.gety(u)),h=xr(l.x,l.y,e);if(h.signedDistanceFromCamera>0)return a.projections[u]=h.point,a.anyProjectionOccluded=a.anyProjectionOccluded||h.isOccluded,h.point;const g=u-r.direction;return At(r.distanceFromAnchor===0?e.tileAnchorPoint:new s.P(e.lineVertexArray.getx(g),e.lineVertexArray.gety(g)),l,r.previousVertex,r.absOffsetX-r.distanceFromAnchor+1,e)}function xr(u,e,r){const a=u+r.translation[0],l=e+r.translation[1];let h;return r.pitchWithMap?(h=Be(a,l,r.pitchedLabelPlaneMatrix,r.getElevation),h.isOccluded=!1):(h=r.transform.projectTileCoordinates(a,l,r.unwrappedTileID,r.getElevation),h.point.x=(.5*h.point.x+.5)*r.width,h.point.y=(.5*-h.point.y+.5)*r.height),h}function xi(u,e,r,a){if(r.pitchWithMap){const l=[u,e,0,1];return s.at(l,l,a),r.transform.projectTileCoordinates(l[0]/l[3],l[1]/l[3],r.unwrappedTileID,r.getElevation).point}return{x:u/r.width*2-1,y:e/r.height*2-1}}function Tt(u,e,r){return r.transform.projectTileCoordinates(u,e,r.unwrappedTileID,r.getElevation)}function us(u,e,r){return u._unit()._perp()._mult(e*r)}function Ws(u,e,r,a,l,h,g,b,A){if(b.projectionCache.offsets[u])return b.projectionCache.offsets[u];const I=r.add(e);if(u+A.direction<a||u+A.direction>=l)return b.projectionCache.offsets[u]=I,I;const D=_r(u+A.direction,b,A),F=us(D.sub(r),g,A.direction),O=r.add(F),Z=D.add(F);return b.projectionCache.offsets[u]=s.au(h,I,O,Z)||I,b.projectionCache.offsets[u]}function jn(u,e,r,a,l,h,g,b,A){const I=a?u-e:u+e;let D=I>0?1:-1,F=0;a&&(D*=-1,F=Math.PI),D<0&&(F+=Math.PI);let O,Z=D>0?h+l:h+l+1;b.projectionCache.cachedAnchorPoint?O=b.projectionCache.cachedAnchorPoint:(O=xr(b.tileAnchorPoint.x,b.tileAnchorPoint.y,b).point,b.projectionCache.cachedAnchorPoint=O);let J,se,ne=O,oe=O,ce=0,me=0;const fe=Math.abs(I),ge=[];let be;for(;ce+me<=fe;){if(Z+=D,Z<h||Z>=g)return null;ce+=me,oe=ne,se=J;const Oe={absOffsetX:fe,direction:D,distanceFromAnchor:ce,previousVertex:oe};if(ne=_r(Z,b,Oe),r===0)ge.push(oe),be=ne.sub(oe);else{let Le;const Re=ne.sub(oe);Le=Re.mag()===0?us(_r(Z+D,b,Oe).sub(ne),r,D):us(Re,r,D),se||(se=oe.add(Le)),J=Ws(Z,Le,ne,h,g,se,r,b,Oe),ge.push(se),be=J.sub(se)}me=be.mag()}const ye=be._mult((fe-ce)/me)._add(se||oe),Te=F+Math.atan2(ne.y-oe.y,ne.x-oe.x);return ge.push(ye),{point:ye,angle:A?Te:0,path:ge}}const Zs=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function dn(u,e){for(let r=0;r<u;r++){const a=e.length;e.resize(a+4),e.float32.set(Zs,3*a)}}function Hn(u,e,r){const a=e[0],l=e[1];return u[0]=r[0]*a+r[4]*l+r[12],u[1]=r[1]*a+r[5]*l+r[13],u[3]=r[3]*a+r[7]*l+r[15],u}const Er=100;class Ci{constructor(e,r=new tt(e.width+200,e.height+200,25),a=new tt(e.width+200,e.height+200,25)){this.transform=e,this.grid=r,this.ignoredGrid=a,this.pitchFactor=Math.cos(e.pitch*Math.PI/180)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+Er,this.screenBottomBoundary=e.height+Er,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.perspectiveRatioCutoff=.6}placeCollisionBox(e,r,a,l,h,g,b,A,I,D,F,O){const Z=this.projectAndGetPerspectiveRatio(e.anchorPointX+A[0],e.anchorPointY+A[1],h,D,O),J=a*Z.perspectiveRatio;let se;if(g||b)se=this._projectCollisionBox(e,J,l,h,g,b,A,Z,D,F,O);else{const be=Z.x+(F?F.x*J:0),ye=Z.y+(F?F.y*J:0);se={allPointsOccluded:!1,box:[be+e.x1*J,ye+e.y1*J,be+e.x2*J,ye+e.y2*J]}}const[ne,oe,ce,me]=se.box,fe=g?se.allPointsOccluded:Z.isOccluded;let ge=fe;return ge||(ge=Z.perspectiveRatio<this.perspectiveRatioCutoff),ge||(ge=!this.isInsideGrid(ne,oe,ce,me)),ge||r!=="always"&&this.grid.hitTest(ne,oe,ce,me,r,I)?{box:[ne,oe,ce,me],placeable:!1,offscreen:!1,occluded:fe}:{box:[ne,oe,ce,me],placeable:!0,offscreen:this.isOffscreen(ne,oe,ce,me),occluded:fe}}placeCollisionCircles(e,r,a,l,h,g,b,A,I,D,F,O,Z,J){const se=[],ne=new s.P(r.anchorX,r.anchorY),oe=this.getPerspectiveRatio(ne.x,ne.y,g,J),ce=(I?h*this.transform.getPitchedTextCorrection(r.anchorX,r.anchorY,g)/oe:h*oe)/s.ay,me={getElevation:J,pitchedLabelPlaneMatrix:b,lineVertexArray:a,pitchWithMap:I,projectionCache:{projections:{},offsets:{},cachedAnchorPoint:void 0,anyProjectionOccluded:!1},transform:this.transform,tileAnchorPoint:ne,unwrappedTileID:g,width:this.transform.width,height:this.transform.height,translation:Z},fe=mt(ce,l,r.lineOffsetX*ce,r.lineOffsetY*ce,!1,r,!1,me);let ge=!1,be=!1,ye=!0;if(fe){const Te=.5*F*oe+O,Oe=new s.P(-100,-100),Le=new s.P(this.screenRightBoundary,this.screenBottomBoundary),Re=new Ue,ze=fe.first,Ye=fe.last;let Qe=[];for(let Et=ze.path.length-1;Et>=1;Et--)Qe.push(ze.path[Et]);for(let Et=1;Et<Ye.path.length;Et++)Qe.push(Ye.path[Et]);const We=2.5*Te;if(I){const Et=this.projectPathToScreenSpace(Qe,me);Qe=Et.some(Vt=>Vt.signedDistanceFromCamera<=0)?[]:Et.map(Vt=>Vt.point)}let at=[];if(Qe.length>0){const Et=Qe[0].clone(),Vt=Qe[0].clone();for(let ur=1;ur<Qe.length;ur++)Et.x=Math.min(Et.x,Qe[ur].x),Et.y=Math.min(Et.y,Qe[ur].y),Vt.x=Math.max(Vt.x,Qe[ur].x),Vt.y=Math.max(Vt.y,Qe[ur].y);at=Et.x>=Oe.x&&Vt.x<=Le.x&&Et.y>=Oe.y&&Vt.y<=Le.y?[Qe]:Vt.x<Oe.x||Et.x>Le.x||Vt.y<Oe.y||Et.y>Le.y?[]:s.av([Qe],Oe.x,Oe.y,Le.x,Le.y)}for(const Et of at){Re.reset(Et,.25*Te);let Vt=0;Vt=Re.length<=.5*Te?1:Math.ceil(Re.paddedLength/We)+1;for(let ur=0;ur<Vt;ur++){const Qt=ur/Math.max(Vt-1,1),hr=Re.lerp(Qt),pr=hr.x+Er,$t=hr.y+Er;se.push(pr,$t,Te,0);const Ut=pr-Te,Or=$t-Te,Zr=pr+Te,$r=$t+Te;if(ye=ye&&this.isOffscreen(Ut,Or,Zr,$r),be=be||this.isInsideGrid(Ut,Or,Zr,$r),e!=="always"&&this.grid.hitTestCircle(pr,$t,Te,e,D)&&(ge=!0,!A))return{circles:[],offscreen:!1,collisionDetected:ge}}}}return{circles:!A&&ge||!be||oe<this.perspectiveRatioCutoff?[]:se,offscreen:ye,collisionDetected:ge}}projectPathToScreenSpace(e,r){const a=function(l,h){const g=s.K();return s.an(g,h.pitchedLabelPlaneMatrix),l.map(b=>{const A=Be(b.x,b.y,g,h.getElevation),I=h.transform.projectTileCoordinates(A.point.x,A.point.y,h.unwrappedTileID,h.getElevation);return I.point.x=(.5*I.point.x+.5)*h.width,I.point.y=(.5*-I.point.y+.5)*h.height,I})}(e,r);return function(l){let h=0,g=0,b=0,A=0;for(let I=0;I<l.length;I++)l[I].isOccluded?(b=I+1,A=0):(A++,A>g&&(g=A,h=b));return l.slice(h,h+g)}(a)}queryRenderedSymbols(e){if(e.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};const r=[];let a=1/0,l=1/0,h=-1/0,g=-1/0;for(const D of e){const F=new s.P(D.x+Er,D.y+Er);a=Math.min(a,F.x),l=Math.min(l,F.y),h=Math.max(h,F.x),g=Math.max(g,F.y),r.push(F)}const b=this.grid.query(a,l,h,g).concat(this.ignoredGrid.query(a,l,h,g)),A={},I={};for(const D of b){const F=D.key;if(A[F.bucketInstanceId]===void 0&&(A[F.bucketInstanceId]={}),A[F.bucketInstanceId][F.featureIndex])continue;const O=[new s.P(D.x1,D.y1),new s.P(D.x2,D.y1),new s.P(D.x2,D.y2),new s.P(D.x1,D.y2)];s.aw(r,O)&&(A[F.bucketInstanceId][F.featureIndex]=!0,I[F.bucketInstanceId]===void 0&&(I[F.bucketInstanceId]=[]),I[F.bucketInstanceId].push(F.featureIndex))}return I}insertCollisionBox(e,r,a,l,h,g){(a?this.ignoredGrid:this.grid).insert({bucketInstanceId:l,featureIndex:h,collisionGroupID:g,overlapMode:r},e[0],e[1],e[2],e[3])}insertCollisionCircles(e,r,a,l,h,g){const b=a?this.ignoredGrid:this.grid,A={bucketInstanceId:l,featureIndex:h,collisionGroupID:g,overlapMode:r};for(let I=0;I<e.length;I+=4)b.insertCircle(A,e[I],e[I+1],e[I+2])}projectAndGetPerspectiveRatio(e,r,a,l,h){if(h){let g;l?(g=[e,r,l(e,r),1],s.at(g,g,h)):(g=[e,r,0,1],Hn(g,g,h));const b=g[3];return{x:(g[0]/b+1)/2*this.transform.width+Er,y:(-g[1]/b+1)/2*this.transform.height+Er,perspectiveRatio:.5+this.transform.cameraToCenterDistance/b*.5,isOccluded:!1,signedDistanceFromCamera:b}}{const g=this.transform.projectTileCoordinates(e,r,a,l);return{x:(g.point.x+1)/2*this.transform.width+Er,y:(1-g.point.y)/2*this.transform.height+Er,perspectiveRatio:.5+this.transform.cameraToCenterDistance/g.signedDistanceFromCamera*.5,isOccluded:g.isOccluded,signedDistanceFromCamera:g.signedDistanceFromCamera}}}getPerspectiveRatio(e,r,a,l){const h=this.transform.projectTileCoordinates(e,r,a,l);return .5+this.transform.cameraToCenterDistance/h.signedDistanceFromCamera*.5}isOffscreen(e,r,a,l){return a<Er||e>=this.screenRightBoundary||l<Er||r>this.screenBottomBoundary}isInsideGrid(e,r,a,l){return a>=0&&e<this.gridRightBoundary&&l>=0&&r<this.gridBottomBoundary}getViewportMatrix(){const e=s.ad([]);return s.L(e,e,[-100,-100,0]),e}_projectCollisionBox(e,r,a,l,h,g,b,A,I,D,F){let O=1,Z=0,J=0,se=1;const ne=e.anchorPointX+b[0],oe=e.anchorPointY+b[1];if(g&&!h){const Qe=this.projectAndGetPerspectiveRatio(ne+1,oe,l,I,F),We=Qe.x-A.x,at=Math.atan((Qe.y-A.y)/We)+(We<0?Math.PI:0),Et=Math.sin(at),Vt=Math.cos(at);O=Vt,Z=Et,J=-Et,se=Vt}else if(!g&&h){const Qe=yt(this.transform);O=Qe.vecEast[0],Z=Qe.vecEast[1],J=Qe.vecSouth[0],se=Qe.vecSouth[1]}let ce=A.x,me=A.y,fe=r;h&&(ce=ne,me=oe,fe=Math.pow(2,-(this.transform.zoom-a.overscaledZ)),fe*=this.transform.getPitchedTextCorrection(ne,oe,l),D||(fe*=s.ae(.5+A.signedDistanceFromCamera/this.transform.cameraToCenterDistance*.5,0,4))),D&&(ce+=O*D.x*fe+J*D.y*fe,me+=Z*D.x*fe+se*D.y*fe);const ge=e.x1*fe,be=e.x2*fe,ye=(ge+be)/2,Te=e.y1*fe,Oe=e.y2*fe,Le=(Te+Oe)/2,Re=[{offsetX:ge,offsetY:Te},{offsetX:ye,offsetY:Te},{offsetX:be,offsetY:Te},{offsetX:be,offsetY:Le},{offsetX:be,offsetY:Oe},{offsetX:ye,offsetY:Oe},{offsetX:ge,offsetY:Oe},{offsetX:ge,offsetY:Le}];let ze=[];for(const{offsetX:Qe,offsetY:We}of Re)ze.push(new s.P(ce+O*Qe+J*We,me+Z*Qe+se*We));let Ye=!1;if(h){const Qe=ze.map(We=>this.projectAndGetPerspectiveRatio(We.x,We.y,l,I,F));Ye=Qe.some(We=>!We.isOccluded),ze=Qe.map(We=>new s.P(We.x,We.y))}else Ye=!0;return{box:s.ax(ze),allPointsOccluded:!Ye}}}class ar{constructor(e,r,a,l){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?r:-r))):l&&a?1:0,this.placed=a}isHidden(){return this.opacity===0&&!this.placed}}class Ks{constructor(e,r,a,l,h){this.text=new ar(e?e.text:null,r,a,h),this.icon=new ar(e?e.icon:null,r,l,h)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class hs{constructor(e,r,a){this.text=e,this.icon=r,this.skipFade=a}}class $a{constructor(e,r,a,l,h){this.bucketInstanceId=e,this.featureIndex=r,this.sourceLayerIndex=a,this.bucketIndex=l,this.tileID=h}}class Wn{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={}}get(e){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[e]){const r=++this.maxGroupID;this.collisionGroups[e]={ID:r,predicate:a=>a.collisionGroupID===r}}return this.collisionGroups[e]}}function fn(u,e,r,a,l){const{horizontalAlign:h,verticalAlign:g}=s.aE(u);return new s.P(-(h-.5)*e+a[0]*l,-(g-.5)*r+a[1]*l)}class su{constructor(e,r,a,l,h){this.transform=e.clone(),this.terrain=r,this.collisionIndex=new Ci(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=a,this.retainedQueryData={},this.collisionGroups=new Wn(l),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=h,h&&(h.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(e){const r=this.terrain;return r?(a,l)=>r.getElevation(e,a,l):null}getBucketParts(e,r,a,l){const h=a.getBucket(r),g=a.latestFeatureIndex;if(!h||!g||r.id!==h.layerIds[0])return;const b=a.collisionBoxArray,A=h.layers[0].layout,I=h.layers[0].paint,D=Math.pow(2,this.transform.zoom-a.tileID.overscaledZ),F=a.tileSize/s.Z,O=a.tileID.toUnwrapped(),Z=A.get("text-rotation-alignment")==="map",J=s.az(a,1,this.transform.zoom),se=s.aA(this.collisionIndex.transform,a,I.get("text-translate"),I.get("text-translate-anchor")),ne=s.aA(this.collisionIndex.transform,a,I.get("icon-translate"),I.get("icon-translate-anchor")),oe=ht(Z,this.transform,J);this.retainedQueryData[h.bucketInstanceId]=new $a(h.bucketInstanceId,g,h.sourceLayerIndex,h.index,a.tileID);const ce={bucket:h,layout:A,translationText:se,translationIcon:ne,unwrappedTileID:O,pitchedLabelPlaneMatrix:oe,scale:D,textPixelRatio:F,holdingForFade:a.holdingForFade(),collisionBoxArray:b,partiallyEvaluatedTextSize:s.ak(h.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(h.sourceID)};if(l)for(const me of h.sortKeyRanges){const{sortKey:fe,symbolInstanceStart:ge,symbolInstanceEnd:be}=me;e.push({sortKey:fe,symbolInstanceStart:ge,symbolInstanceEnd:be,parameters:ce})}else e.push({symbolInstanceStart:0,symbolInstanceEnd:h.symbolInstances.length,parameters:ce})}attemptAnchorPlacement(e,r,a,l,h,g,b,A,I,D,F,O,Z,J,se,ne,oe,ce,me,fe){const ge=s.aB[e.textAnchor],be=[e.textOffset0,e.textOffset1],ye=fn(ge,a,l,be,h),Te=this.collisionIndex.placeCollisionBox(r,O,A,I,D,b,g,ne,F.predicate,me,ye,fe);if((!ce||this.collisionIndex.placeCollisionBox(ce,O,A,I,D,b,g,oe,F.predicate,me,ye,fe).placeable)&&Te.placeable){let Oe;if(this.prevPlacement&&this.prevPlacement.variableOffsets[Z.crossTileID]&&this.prevPlacement.placements[Z.crossTileID]&&this.prevPlacement.placements[Z.crossTileID].text&&(Oe=this.prevPlacement.variableOffsets[Z.crossTileID].anchor),Z.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[Z.crossTileID]={textOffset:be,width:a,height:l,anchor:ge,textBoxScale:h,prevAnchor:Oe},this.markUsedJustification(J,ge,Z,se),J.allowVerticalPlacement&&(this.markUsedOrientation(J,se,Z),this.placedOrientations[Z.crossTileID]=se),{shift:ye,placedGlyphBoxes:Te}}}placeLayerBucketPart(e,r,a){const{bucket:l,layout:h,translationText:g,translationIcon:b,unwrappedTileID:A,pitchedLabelPlaneMatrix:I,textPixelRatio:D,holdingForFade:F,collisionBoxArray:O,partiallyEvaluatedTextSize:Z,collisionGroup:J}=e.parameters,se=h.get("text-optional"),ne=h.get("icon-optional"),oe=s.aC(h,"text-overlap","text-allow-overlap"),ce=oe==="always",me=s.aC(h,"icon-overlap","icon-allow-overlap"),fe=me==="always",ge=h.get("text-rotation-alignment")==="map",be=h.get("text-pitch-alignment")==="map",ye=h.get("icon-text-fit")!=="none",Te=h.get("symbol-z-order")==="viewport-y",Oe=ce&&(fe||!l.hasIconData()||ne),Le=fe&&(ce||!l.hasTextData()||se);!l.collisionArrays&&O&&l.deserializeCollisionBoxes(O);const Re=this.retainedQueryData[l.bucketInstanceId].tileID,ze=this._getTerrainElevationFunc(Re),Ye=this.transform.getFastPathSimpleProjectionMatrix(Re),Qe=(We,at,Et)=>{var Vt,ur;if(r[We.crossTileID])return;if(F)return void(this.placements[We.crossTileID]=new hs(!1,!1,!1));let Qt=!1,hr=!1,pr=!0,$t=null,Ut={box:null,placeable:!1,offscreen:null,occluded:!1},Or={placeable:!1},Zr=null,$r=null,jt=null,In=0,ln=0,Mn=0;at.textFeatureIndex?In=at.textFeatureIndex:We.useRuntimeCollisionCircles&&(In=We.featureIndex),at.verticalTextFeatureIndex&&(ln=at.verticalTextFeatureIndex);const ss=at.textBox;if(ss){const Ii=Lr=>{let Rr=s.al.horizontal;if(l.allowVerticalPlacement&&!Lr&&this.prevPlacement){const fi=this.prevPlacement.placedOrientations[We.crossTileID];fi&&(this.placedOrientations[We.crossTileID]=fi,Rr=fi,this.markUsedOrientation(l,Rr,We))}return Rr},Rn=(Lr,Rr)=>{if(l.allowVerticalPlacement&&We.numVerticalGlyphVertices>0&&at.verticalTextBox){for(const fi of l.writingModes)if(fi===s.al.vertical?(Ut=Rr(),Or=Ut):Ut=Lr(),Ut&&Ut.placeable)break}else Ut=Lr()},yn=We.textAnchorOffsetStartIndex,zn=We.textAnchorOffsetEndIndex;if(zn===yn){const Lr=(Rr,fi)=>{const nr=this.collisionIndex.placeCollisionBox(Rr,oe,D,Re,A,be,ge,g,J.predicate,ze,void 0,Ye);return nr&&nr.placeable&&(this.markUsedOrientation(l,fi,We),this.placedOrientations[We.crossTileID]=fi),nr};Rn(()=>Lr(ss,s.al.horizontal),()=>{const Rr=at.verticalTextBox;return l.allowVerticalPlacement&&We.numVerticalGlyphVertices>0&&Rr?Lr(Rr,s.al.vertical):{box:null,offscreen:null}}),Ii(Ut&&Ut.placeable)}else{let Lr=s.aB[(ur=(Vt=this.prevPlacement)===null||Vt===void 0?void 0:Vt.variableOffsets[We.crossTileID])===null||ur===void 0?void 0:ur.anchor];const Rr=(nr,Ta,Xu)=>{const Qu=nr.x2-nr.x1,Ap=nr.y2-nr.y1,jl=We.textBoxScale,To=ye&&me==="never"?Ta:null;let Ui=null,cn=oe==="never"?1:2,ji="never";Lr&&cn++;for(let _n=0;_n<cn;_n++){for(let Ca=yn;Ca<zn;Ca++){const Dn=l.textAnchorOffsets.get(Ca);if(Lr&&Dn.textAnchor!==Lr)continue;const Hl=this.attemptAnchorPlacement(Dn,nr,Qu,Ap,jl,ge,be,D,Re,A,J,ji,We,l,Xu,g,b,To,ze);if(Hl&&(Ui=Hl.placedGlyphBoxes,Ui&&Ui.placeable))return Qt=!0,$t=Hl.shift,Ui}Lr?Lr=null:ji=oe}return a&&!Ui&&(Ui={box:this.collisionIndex.placeCollisionBox(ss,"always",D,Re,A,be,ge,g,J.predicate,ze,void 0,Ye).box,offscreen:!1,placeable:!1,occluded:!1}),Ui};Rn(()=>Rr(ss,at.iconBox,s.al.horizontal),()=>{const nr=at.verticalTextBox;return l.allowVerticalPlacement&&(!Ut||!Ut.placeable)&&We.numVerticalGlyphVertices>0&&nr?Rr(nr,at.verticalIconBox,s.al.vertical):{box:null,occluded:!0,offscreen:null}}),Ut&&(Qt=Ut.placeable,pr=Ut.offscreen);const fi=Ii(Ut&&Ut.placeable);if(!Qt&&this.prevPlacement){const nr=this.prevPlacement.variableOffsets[We.crossTileID];nr&&(this.variableOffsets[We.crossTileID]=nr,this.markUsedJustification(l,nr.anchor,We,fi))}}}if(Zr=Ut,Qt=Zr&&Zr.placeable,pr=Zr&&Zr.offscreen,We.useRuntimeCollisionCircles){const Ii=l.text.placedSymbolArray.get(We.centerJustifiedTextSymbolIndex),Rn=s.am(l.textSizeData,Z,Ii),yn=h.get("text-padding");$r=this.collisionIndex.placeCollisionCircles(oe,Ii,l.lineVertexArray,l.glyphOffsetArray,Rn,A,I,a,be,J.predicate,We.collisionCircleDiameter,yn,g,ze),$r.circles.length&&$r.collisionDetected&&!a&&s.w("Collisions detected, but collision boxes are not shown"),Qt=ce||$r.circles.length>0&&!$r.collisionDetected,pr=pr&&$r.offscreen}if(at.iconFeatureIndex&&(Mn=at.iconFeatureIndex),at.iconBox){const Ii=Rn=>this.collisionIndex.placeCollisionBox(Rn,me,D,Re,A,be,ge,b,J.predicate,ze,ye&&$t?$t:void 0,Ye);Or&&Or.placeable&&at.verticalIconBox?(jt=Ii(at.verticalIconBox),hr=jt.placeable):(jt=Ii(at.iconBox),hr=jt.placeable),pr=pr&&jt.offscreen}const ko=se||We.numHorizontalGlyphVertices===0&&We.numVerticalGlyphVertices===0,Ln=ne||We.numIconVertices===0;ko||Ln?Ln?ko||(hr=hr&&Qt):Qt=hr&&Qt:hr=Qt=hr&&Qt;const os=hr&&jt.placeable;if(Qt&&Zr.placeable&&this.collisionIndex.insertCollisionBox(Zr.box,oe,h.get("text-ignore-placement"),l.bucketInstanceId,Or&&Or.placeable&&ln?ln:In,J.ID),os&&this.collisionIndex.insertCollisionBox(jt.box,me,h.get("icon-ignore-placement"),l.bucketInstanceId,Mn,J.ID),$r&&Qt&&this.collisionIndex.insertCollisionCircles($r.circles,oe,h.get("text-ignore-placement"),l.bucketInstanceId,In,J.ID),a&&this.storeCollisionData(l.bucketInstanceId,Et,at,Zr,jt,$r),We.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[We.crossTileID]=new hs((Qt||Oe)&&!(Zr!=null&&Zr.occluded),(hr||Le)&&!(jt!=null&&jt.occluded),pr||l.justReloaded),r[We.crossTileID]=!0};if(Te){if(e.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");const We=l.getSortedSymbolIndexes(-this.transform.bearingInRadians);for(let at=We.length-1;at>=0;--at){const Et=We[at];Qe(l.symbolInstances.get(Et),l.collisionArrays[Et],Et)}}else for(let We=e.symbolInstanceStart;We<e.symbolInstanceEnd;We++)Qe(l.symbolInstances.get(We),l.collisionArrays[We],We);l.justReloaded=!1}storeCollisionData(e,r,a,l,h,g){if(a.textBox||a.iconBox){let b,A;this.collisionBoxArrays.has(e)?b=this.collisionBoxArrays.get(e):(b=new Map,this.collisionBoxArrays.set(e,b)),b.has(r)?A=b.get(r):(A={text:null,icon:null},b.set(r,A)),a.textBox&&(A.text=l.box),a.iconBox&&(A.icon=h.box)}if(g){let b=this.collisionCircleArrays[e];b===void 0&&(b=this.collisionCircleArrays[e]=[]);for(let A=0;A<g.circles.length;A+=4)b.push(g.circles[A+0]-Er),b.push(g.circles[A+1]-Er),b.push(g.circles[A+2]),b.push(g.collisionDetected?1:0)}}markUsedJustification(e,r,a,l){let h;h=l===s.al.vertical?a.verticalPlacedTextSymbolIndex:{left:a.leftJustifiedTextSymbolIndex,center:a.centerJustifiedTextSymbolIndex,right:a.rightJustifiedTextSymbolIndex}[s.aD(r)];const g=[a.leftJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.rightJustifiedTextSymbolIndex,a.verticalPlacedTextSymbolIndex];for(const b of g)b>=0&&(e.text.placedSymbolArray.get(b).crossTileID=h>=0&&b!==h?0:a.crossTileID)}markUsedOrientation(e,r,a){const l=r===s.al.horizontal||r===s.al.horizontalOnly?r:0,h=r===s.al.vertical?r:0,g=[a.leftJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.rightJustifiedTextSymbolIndex];for(const b of g)e.text.placedSymbolArray.get(b).placedOrientation=l;a.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).placedOrientation=h)}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const r=this.prevPlacement;let a=!1;this.prevZoomAdjustment=r?r.zoomAdjustment(this.transform.zoom):0;const l=r?r.symbolFadeChange(e):1,h=r?r.opacities:{},g=r?r.variableOffsets:{},b=r?r.placedOrientations:{};for(const A in this.placements){const I=this.placements[A],D=h[A];D?(this.opacities[A]=new Ks(D,l,I.text,I.icon),a=a||I.text!==D.text.placed||I.icon!==D.icon.placed):(this.opacities[A]=new Ks(null,l,I.text,I.icon,I.skipFade),a=a||I.text||I.icon)}for(const A in h){const I=h[A];if(!this.opacities[A]){const D=new Ks(I,l,!1,!1);D.isHidden()||(this.opacities[A]=D,a=a||I.text.placed||I.icon.placed)}}for(const A in g)this.variableOffsets[A]||!this.opacities[A]||this.opacities[A].isHidden()||(this.variableOffsets[A]=g[A]);for(const A in b)this.placedOrientations[A]||!this.opacities[A]||this.opacities[A].isHidden()||(this.placedOrientations[A]=b[A]);if(r&&r.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");a?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=r?r.lastPlacementChangeTime:e)}updateLayerOpacities(e,r){const a={};for(const l of r){const h=l.getBucket(e);h&&l.latestFeatureIndex&&e.id===h.layerIds[0]&&this.updateBucketOpacities(h,l.tileID,a,l.collisionBoxArray)}}updateBucketOpacities(e,r,a,l){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const h=e.layers[0],g=h.layout,b=new Ks(null,0,!1,!1,!0),A=g.get("text-allow-overlap"),I=g.get("icon-allow-overlap"),D=h._unevaluatedLayout.hasValue("text-variable-anchor")||h._unevaluatedLayout.hasValue("text-variable-anchor-offset"),F=g.get("text-rotation-alignment")==="map",O=g.get("text-pitch-alignment")==="map",Z=g.get("icon-text-fit")!=="none",J=new Ks(null,0,A&&(I||!e.hasIconData()||g.get("icon-optional")),I&&(A||!e.hasTextData()||g.get("text-optional")),!0);!e.collisionArrays&&l&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(l);const se=(oe,ce,me)=>{for(let fe=0;fe<ce/4;fe++)oe.opacityVertexArray.emplaceBack(me);oe.hasVisibleVertices=oe.hasVisibleVertices||me!==Zn},ne=this.collisionBoxArrays.get(e.bucketInstanceId);for(let oe=0;oe<e.symbolInstances.length;oe++){const ce=e.symbolInstances.get(oe),{numHorizontalGlyphVertices:me,numVerticalGlyphVertices:fe,crossTileID:ge}=ce;let be=this.opacities[ge];a[ge]?be=b:be||(be=J,this.opacities[ge]=be),a[ge]=!0;const ye=ce.numIconVertices>0,Te=this.placedOrientations[ce.crossTileID],Oe=Te===s.al.vertical,Le=Te===s.al.horizontal||Te===s.al.horizontalOnly;if(me>0||fe>0){const ze=tl(be.text);se(e.text,me,Oe?Zn:ze),se(e.text,fe,Le?Zn:ze);const Ye=be.text.isHidden();[ce.rightJustifiedTextSymbolIndex,ce.centerJustifiedTextSymbolIndex,ce.leftJustifiedTextSymbolIndex].forEach(at=>{at>=0&&(e.text.placedSymbolArray.get(at).hidden=Ye||Oe?1:0)}),ce.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(ce.verticalPlacedTextSymbolIndex).hidden=Ye||Le?1:0);const Qe=this.variableOffsets[ce.crossTileID];Qe&&this.markUsedJustification(e,Qe.anchor,ce,Te);const We=this.placedOrientations[ce.crossTileID];We&&(this.markUsedJustification(e,"left",ce,We),this.markUsedOrientation(e,We,ce))}if(ye){const ze=tl(be.icon),Ye=!(Z&&ce.verticalPlacedIconSymbolIndex&&Oe);ce.placedIconSymbolIndex>=0&&(se(e.icon,ce.numIconVertices,Ye?ze:Zn),e.icon.placedSymbolArray.get(ce.placedIconSymbolIndex).hidden=be.icon.isHidden()),ce.verticalPlacedIconSymbolIndex>=0&&(se(e.icon,ce.numVerticalIconVertices,Ye?Zn:ze),e.icon.placedSymbolArray.get(ce.verticalPlacedIconSymbolIndex).hidden=be.icon.isHidden())}const Re=ne&&ne.has(oe)?ne.get(oe):{text:null,icon:null};if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const ze=e.collisionArrays[oe];if(ze){let Ye=new s.P(0,0);if(ze.textBox||ze.verticalTextBox){let Qe=!0;if(D){const We=this.variableOffsets[ge];We?(Ye=fn(We.anchor,We.width,We.height,We.textOffset,We.textBoxScale),F&&Ye._rotate(O?-this.transform.bearingInRadians:this.transform.bearingInRadians)):Qe=!1}if(ze.textBox||ze.verticalTextBox){let We;ze.textBox&&(We=Oe),ze.verticalTextBox&&(We=Le),el(e.textCollisionBox.collisionVertexArray,be.text.placed,!Qe||We,Re.text,Ye.x,Ye.y)}}if(ze.iconBox||ze.verticalIconBox){const Qe=!!(!Le&&ze.verticalIconBox);let We;ze.iconBox&&(We=Qe),ze.verticalIconBox&&(We=!Qe),el(e.iconCollisionBox.collisionVertexArray,be.icon.placed,We,Re.icon,Z?Ye.x:0,Z?Ye.y:0)}}}}if(e.sortFeatures(-this.transform.bearingInRadians),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);e.bucketInstanceId in this.collisionCircleArrays&&(e.collisionCircleArray=this.collisionCircleArrays[e.bucketInstanceId],delete this.collisionCircleArrays[e.bucketInstanceId])}symbolFadeChange(e){return this.fadeDuration===0?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(e,r){const a=this.zoomAtLastRecencyCheck===r?1-this.zoomAdjustment(r):1;return this.zoomAtLastRecencyCheck=r,this.commitTime+this.fadeDuration*a>e}setStale(){this.stale=!0}}function el(u,e,r,a,l,h){a&&a.length!==0||(a=[0,0,0,0]);const g=a[0]-Er,b=a[1]-Er,A=a[2]-Er,I=a[3]-Er;u.emplaceBack(e?1:0,r?1:0,l||0,h||0,g,b),u.emplaceBack(e?1:0,r?1:0,l||0,h||0,A,b),u.emplaceBack(e?1:0,r?1:0,l||0,h||0,A,I),u.emplaceBack(e?1:0,r?1:0,l||0,h||0,g,I)}const ou=Math.pow(2,25),ps=Math.pow(2,24),au=Math.pow(2,17),Qh=Math.pow(2,16),Yh=Math.pow(2,9),$h=Math.pow(2,8),lu=Math.pow(2,1);function tl(u){if(u.opacity===0&&!u.placed)return 0;if(u.opacity===1&&u.placed)return 4294967295;const e=u.placed?1:0,r=Math.floor(127*u.opacity);return r*ou+e*ps+r*au+e*Qh+r*Yh+e*$h+r*lu+e}const Zn=0;class rl{constructor(e){this._sortAcrossTiles=e.layout.get("symbol-z-order")!=="viewport-y"&&!e.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(e,r,a,l,h){const g=this._bucketParts;for(;this._currentTileIndex<e.length;)if(r.getBucketParts(g,l,e[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,h())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,g.sort((b,A)=>b.sortKey-A.sortKey));this._currentPartIndex<g.length;)if(r.placeLayerBucketPart(g[this._currentPartIndex],this._seenCrossTileIDs,a),this._currentPartIndex++,h())return!0;return!1}}class cu{constructor(e,r,a,l,h,g,b,A){this.placement=new su(e,r,g,b,A),this._currentPlacementIndex=a.length-1,this._forceFullPlacement=l,this._showCollisionBoxes=h,this._done=!1}isDone(){return this._done}continuePlacement(e,r,a){const l=M.now(),h=()=>!this._forceFullPlacement&&M.now()-l>2;for(;this._currentPlacementIndex>=0;){const g=r[e[this._currentPlacementIndex]],b=this.placement.collisionIndex.transform.zoom;if(g.type==="symbol"&&(!g.minzoom||g.minzoom<=b)&&(!g.maxzoom||g.maxzoom>b)){if(this._inProgressLayer||(this._inProgressLayer=new rl(g)),this._inProgressLayer.continuePlacement(a[g.source],this.placement,this._showCollisionBoxes,g,h))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(e){return this.placement.commit(e),this.placement}}const Kn=512/s.Z/2;class il{constructor(e,r,a){this.tileID=e,this.bucketInstanceId=a,this._symbolsByKey={};const l=new Map;for(let h=0;h<r.length;h++){const g=r.get(h),b=g.key,A=l.get(b);A?A.push(g):l.set(b,[g])}for(const[h,g]of l){const b={positions:g.map(A=>({x:Math.floor(A.anchorX*Kn),y:Math.floor(A.anchorY*Kn)})),crossTileIDs:g.map(A=>A.crossTileID)};if(b.positions.length>128){const A=new s.aF(b.positions.length,16,Uint16Array);for(const{x:I,y:D}of b.positions)A.add(I,D);A.finish(),delete b.positions,b.index=A}this._symbolsByKey[h]=b}}getScaledCoordinates(e,r){const{x:a,y:l,z:h}=this.tileID.canonical,{x:g,y:b,z:A}=r.canonical,I=Kn/Math.pow(2,A-h),D=(b*s.Z+e.anchorY)*I,F=l*s.Z*Kn;return{x:Math.floor((g*s.Z+e.anchorX)*I-a*s.Z*Kn),y:Math.floor(D-F)}}findMatches(e,r,a){const l=this.tileID.canonical.z<r.canonical.z?1:Math.pow(2,this.tileID.canonical.z-r.canonical.z);for(let h=0;h<e.length;h++){const g=e.get(h);if(g.crossTileID)continue;const b=this._symbolsByKey[g.key];if(!b)continue;const A=this.getScaledCoordinates(g,r);if(b.index){const I=b.index.range(A.x-l,A.y-l,A.x+l,A.y+l).sort();for(const D of I){const F=b.crossTileIDs[D];if(!a[F]){a[F]=!0,g.crossTileID=F;break}}}else if(b.positions)for(let I=0;I<b.positions.length;I++){const D=b.positions[I],F=b.crossTileIDs[I];if(Math.abs(D.x-A.x)<=l&&Math.abs(D.y-A.y)<=l&&!a[F]){a[F]=!0,g.crossTileID=F;break}}}}getCrossTileIDsLists(){return Object.values(this._symbolsByKey).map(({crossTileIDs:e})=>e)}}class ep{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Gs{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(e){const r=Math.round((e-this.lng)/360);if(r!==0)for(const a in this.indexes){const l=this.indexes[a],h={};for(const g in l){const b=l[g];b.tileID=b.tileID.unwrapTo(b.tileID.wrap+r),h[b.tileID.key]=b}this.indexes[a]=h}this.lng=e}addBucket(e,r,a){if(this.indexes[e.overscaledZ]&&this.indexes[e.overscaledZ][e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===r.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key])}for(let h=0;h<r.symbolInstances.length;h++)r.symbolInstances.get(h).crossTileID=0;this.usedCrossTileIDs[e.overscaledZ]||(this.usedCrossTileIDs[e.overscaledZ]={});const l=this.usedCrossTileIDs[e.overscaledZ];for(const h in this.indexes){const g=this.indexes[h];if(Number(h)>e.overscaledZ)for(const b in g){const A=g[b];A.tileID.isChildOf(e)&&A.findMatches(r.symbolInstances,e,l)}else{const b=g[e.scaledTo(Number(h)).key];b&&b.findMatches(r.symbolInstances,e,l)}}for(let h=0;h<r.symbolInstances.length;h++){const g=r.symbolInstances.get(h);g.crossTileID||(g.crossTileID=a.generate(),l[g.crossTileID]=!0)}return this.indexes[e.overscaledZ]===void 0&&(this.indexes[e.overscaledZ]={}),this.indexes[e.overscaledZ][e.key]=new il(e,r.symbolInstances,r.bucketInstanceId),!0}removeBucketCrossTileIDs(e,r){for(const a of r.getCrossTileIDsLists())for(const l of a)delete this.usedCrossTileIDs[e][l]}removeStaleBuckets(e){let r=!1;for(const a in this.indexes){const l=this.indexes[a];for(const h in l)e[l[h].bucketInstanceId]||(this.removeBucketCrossTileIDs(a,l[h]),delete l[h],r=!0)}return r}}class Js{constructor(){this.layerIndexes={},this.crossTileIDs=new ep,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(e,r,a){let l=this.layerIndexes[e.id];l===void 0&&(l=this.layerIndexes[e.id]=new Gs);let h=!1;const g={};l.handleWrapJump(a);for(const b of r){const A=b.getBucket(e);A&&e.id===A.layerIds[0]&&(A.bucketInstanceId||(A.bucketInstanceId=++this.maxBucketInstanceId),l.addBucket(b.tileID,A,this.crossTileIDs)&&(h=!0),g[A.bucketInstanceId]=!0)}return l.removeStaleBuckets(g)&&(h=!0),h}pruneUnusedLayers(e){const r={};e.forEach(a=>{r[a]=!0});for(const a in this.layerIndexes)r[a]||delete this.layerIndexes[a]}}var nl="void main() {fragColor=vec4(1.0);}";const ui={prelude:Ot(`#ifdef GL_ES
|
|
6
|
-
precision mediump float;
|
|
7
|
-
#else
|
|
8
|
-
#if !defined(lowp)
|
|
9
|
-
#define lowp
|
|
10
|
-
#endif
|
|
11
|
-
#if !defined(mediump)
|
|
12
|
-
#define mediump
|
|
13
|
-
#endif
|
|
14
|
-
#if !defined(highp)
|
|
15
|
-
#define highp
|
|
16
|
-
#endif
|
|
17
|
-
#endif
|
|
18
|
-
out highp vec4 fragColor;`,`#ifdef GL_ES
|
|
19
|
-
precision highp float;
|
|
20
|
-
#else
|
|
21
|
-
#if !defined(lowp)
|
|
22
|
-
#define lowp
|
|
23
|
-
#endif
|
|
24
|
-
#if !defined(mediump)
|
|
25
|
-
#define mediump
|
|
26
|
-
#endif
|
|
27
|
-
#if !defined(highp)
|
|
28
|
-
#define highp
|
|
29
|
-
#endif
|
|
30
|
-
#endif
|
|
31
|
-
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
|
|
32
|
-
);}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
|
|
33
|
-
);}
|
|
34
|
-
#ifdef TERRAIN3D
|
|
35
|
-
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;
|
|
36
|
-
#endif
|
|
37
|
-
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) {
|
|
38
|
-
#ifdef TERRAIN3D
|
|
39
|
-
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));
|
|
40
|
-
#else
|
|
41
|
-
return 1.0;
|
|
42
|
-
#endif
|
|
43
|
-
}float calculate_visibility(vec4 pos) {
|
|
44
|
-
#ifdef TERRAIN3D
|
|
45
|
-
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;
|
|
46
|
-
#else
|
|
47
|
-
return 1.0;
|
|
48
|
-
#endif
|
|
49
|
-
}float ele(vec2 pos) {
|
|
50
|
-
#ifdef TERRAIN3D
|
|
51
|
-
vec4 rgb=(texture(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
|
|
52
|
-
#else
|
|
53
|
-
return 0.0;
|
|
54
|
-
#endif
|
|
55
|
-
}float get_elevation(vec2 pos) {
|
|
56
|
-
#ifdef TERRAIN3D
|
|
57
|
-
#ifdef GLOBE
|
|
58
|
-
if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
|
|
59
|
-
#endif
|
|
60
|
-
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;
|
|
61
|
-
#else
|
|
62
|
-
return 0.0;
|
|
63
|
-
#endif
|
|
64
|
-
}const float PI=3.141592653589793;uniform mat4 u_projection_matrix;`),projectionMercator:Ot("","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:Ot("",`#define GLOBE_RADIUS 6371008.8
|
|
65
|
-
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
|
|
66
|
-
);}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);
|
|
67
|
-
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
|
|
68
|
-
);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:Ot(`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
|
|
69
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
70
|
-
fragColor=vec4(1.0);
|
|
71
|
-
#endif
|
|
72
|
-
}`,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),backgroundPattern:Ot(`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;
|
|
73
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
74
|
-
fragColor=vec4(1.0);
|
|
75
|
-
#endif
|
|
76
|
-
}`,"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:Ot(`in vec3 v_data;in float v_visibility;
|
|
77
|
-
#pragma mapbox: define highp vec4 color
|
|
78
|
-
#pragma mapbox: define mediump float radius
|
|
79
|
-
#pragma mapbox: define lowp float blur
|
|
80
|
-
#pragma mapbox: define lowp float opacity
|
|
81
|
-
#pragma mapbox: define highp vec4 stroke_color
|
|
82
|
-
#pragma mapbox: define mediump float stroke_width
|
|
83
|
-
#pragma mapbox: define lowp float stroke_opacity
|
|
84
|
-
void main() {
|
|
85
|
-
#pragma mapbox: initialize highp vec4 color
|
|
86
|
-
#pragma mapbox: initialize mediump float radius
|
|
87
|
-
#pragma mapbox: initialize lowp float blur
|
|
88
|
-
#pragma mapbox: initialize lowp float opacity
|
|
89
|
-
#pragma mapbox: initialize highp vec4 stroke_color
|
|
90
|
-
#pragma mapbox: initialize mediump float stroke_width
|
|
91
|
-
#pragma mapbox: initialize lowp float stroke_opacity
|
|
92
|
-
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;}
|
|
93
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
94
|
-
fragColor=vec4(1.0);
|
|
95
|
-
#endif
|
|
96
|
-
}`,`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;
|
|
97
|
-
#pragma mapbox: define highp vec4 color
|
|
98
|
-
#pragma mapbox: define mediump float radius
|
|
99
|
-
#pragma mapbox: define lowp float blur
|
|
100
|
-
#pragma mapbox: define lowp float opacity
|
|
101
|
-
#pragma mapbox: define highp vec4 stroke_color
|
|
102
|
-
#pragma mapbox: define mediump float stroke_width
|
|
103
|
-
#pragma mapbox: define lowp float stroke_opacity
|
|
104
|
-
void main(void) {
|
|
105
|
-
#pragma mapbox: initialize highp vec4 color
|
|
106
|
-
#pragma mapbox: initialize mediump float radius
|
|
107
|
-
#pragma mapbox: initialize lowp float blur
|
|
108
|
-
#pragma mapbox: initialize lowp float opacity
|
|
109
|
-
#pragma mapbox: initialize highp vec4 stroke_color
|
|
110
|
-
#pragma mapbox: initialize mediump float stroke_width
|
|
111
|
-
#pragma mapbox: initialize lowp float stroke_opacity
|
|
112
|
-
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) {
|
|
113
|
-
#ifdef GLOBE
|
|
114
|
-
vec3 center_vector=projectToSphere(circle_center);
|
|
115
|
-
#endif
|
|
116
|
-
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 {
|
|
117
|
-
#ifdef GLOBE
|
|
118
|
-
vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
|
|
119
|
-
#else
|
|
120
|
-
vec4 projected_center=projectTileWithElevation(circle_center,ele);
|
|
121
|
-
#endif
|
|
122
|
-
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);}
|
|
123
|
-
#ifdef GLOBE
|
|
124
|
-
vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
|
|
125
|
-
#else
|
|
126
|
-
gl_Position=projectTileWithElevation(corner_position,ele);
|
|
127
|
-
#endif
|
|
128
|
-
} 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:Ot(nl,"in vec2 a_pos;void main() {gl_Position=projectTile(a_pos);}"),heatmap:Ot(`uniform highp float u_intensity;in vec2 v_extrude;
|
|
129
|
-
#pragma mapbox: define highp float weight
|
|
130
|
-
#define GAUSS_COEF 0.3989422804014327
|
|
131
|
-
void main() {
|
|
132
|
-
#pragma mapbox: initialize highp float weight
|
|
133
|
-
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);
|
|
134
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
135
|
-
fragColor=vec4(1.0);
|
|
136
|
-
#endif
|
|
137
|
-
}`,`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;
|
|
138
|
-
#pragma mapbox: define highp float weight
|
|
139
|
-
#pragma mapbox: define mediump float radius
|
|
140
|
-
const highp float ZERO=1.0/255.0/16.0;
|
|
141
|
-
#define GAUSS_COEF 0.3989422804014327
|
|
142
|
-
void main(void) {
|
|
143
|
-
#pragma mapbox: initialize highp float weight
|
|
144
|
-
#pragma mapbox: initialize mediump float radius
|
|
145
|
-
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);
|
|
146
|
-
#ifdef GLOBE
|
|
147
|
-
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);
|
|
148
|
-
#else
|
|
149
|
-
gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
|
|
150
|
-
#endif
|
|
151
|
-
}`),heatmapTexture:Ot(`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;
|
|
152
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
153
|
-
fragColor=vec4(0.0);
|
|
154
|
-
#endif
|
|
155
|
-
}`,"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:Ot("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:Ot("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);}"),debug:Ot("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:Ot(nl,`in vec2 a_pos;void main() {
|
|
156
|
-
#ifdef GLOBE
|
|
157
|
-
gl_Position=projectTileFor3D(a_pos,0.0);
|
|
158
|
-
#else
|
|
159
|
-
gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
|
|
160
|
-
#endif
|
|
161
|
-
}`),fill:Ot(`#pragma mapbox: define highp vec4 color
|
|
162
|
-
#pragma mapbox: define lowp float opacity
|
|
163
|
-
void main() {
|
|
164
|
-
#pragma mapbox: initialize highp vec4 color
|
|
165
|
-
#pragma mapbox: initialize lowp float opacity
|
|
166
|
-
fragColor=color*opacity;
|
|
167
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
168
|
-
fragColor=vec4(1.0);
|
|
169
|
-
#endif
|
|
170
|
-
}`,`uniform vec2 u_fill_translate;in vec2 a_pos;
|
|
171
|
-
#pragma mapbox: define highp vec4 color
|
|
172
|
-
#pragma mapbox: define lowp float opacity
|
|
173
|
-
void main() {
|
|
174
|
-
#pragma mapbox: initialize highp vec4 color
|
|
175
|
-
#pragma mapbox: initialize lowp float opacity
|
|
176
|
-
gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:Ot(`in vec2 v_pos;
|
|
177
|
-
#ifdef GLOBE
|
|
178
|
-
in float v_depth;
|
|
179
|
-
#endif
|
|
180
|
-
#pragma mapbox: define highp vec4 outline_color
|
|
181
|
-
#pragma mapbox: define lowp float opacity
|
|
182
|
-
void main() {
|
|
183
|
-
#pragma mapbox: initialize highp vec4 outline_color
|
|
184
|
-
#pragma mapbox: initialize lowp float opacity
|
|
185
|
-
float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
|
|
186
|
-
#ifdef GLOBE
|
|
187
|
-
if (v_depth > 1.0) {discard;}
|
|
188
|
-
#endif
|
|
189
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
190
|
-
fragColor=vec4(1.0);
|
|
191
|
-
#endif
|
|
192
|
-
}`,`uniform vec2 u_world;uniform vec2 u_fill_translate;in vec2 a_pos;out vec2 v_pos;
|
|
193
|
-
#ifdef GLOBE
|
|
194
|
-
out float v_depth;
|
|
195
|
-
#endif
|
|
196
|
-
#pragma mapbox: define highp vec4 outline_color
|
|
197
|
-
#pragma mapbox: define lowp float opacity
|
|
198
|
-
void main() {
|
|
199
|
-
#pragma mapbox: initialize highp vec4 outline_color
|
|
200
|
-
#pragma mapbox: initialize lowp float opacity
|
|
201
|
-
gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;
|
|
202
|
-
#ifdef GLOBE
|
|
203
|
-
v_depth=gl_Position.z/gl_Position.w;
|
|
204
|
-
#endif
|
|
205
|
-
}`),fillOutlinePattern:Ot(`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;
|
|
206
|
-
#ifdef GLOBE
|
|
207
|
-
in float v_depth;
|
|
208
|
-
#endif
|
|
209
|
-
#pragma mapbox: define lowp float opacity
|
|
210
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
211
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
212
|
-
void main() {
|
|
213
|
-
#pragma mapbox: initialize lowp float opacity
|
|
214
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
215
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
216
|
-
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;
|
|
217
|
-
#ifdef GLOBE
|
|
218
|
-
if (v_depth > 1.0) {discard;}
|
|
219
|
-
#endif
|
|
220
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
221
|
-
fragColor=vec4(1.0);
|
|
222
|
-
#endif
|
|
223
|
-
}`,`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;
|
|
224
|
-
#ifdef GLOBE
|
|
225
|
-
out float v_depth;
|
|
226
|
-
#endif
|
|
227
|
-
#pragma mapbox: define lowp float opacity
|
|
228
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
229
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
230
|
-
#pragma mapbox: define lowp float pixel_ratio_from
|
|
231
|
-
#pragma mapbox: define lowp float pixel_ratio_to
|
|
232
|
-
void main() {
|
|
233
|
-
#pragma mapbox: initialize lowp float opacity
|
|
234
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
235
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
236
|
-
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
237
|
-
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
238
|
-
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;
|
|
239
|
-
#ifdef GLOBE
|
|
240
|
-
v_depth=gl_Position.z/gl_Position.w;
|
|
241
|
-
#endif
|
|
242
|
-
}`),fillPattern:Ot(`#ifdef GL_ES
|
|
243
|
-
precision highp float;
|
|
244
|
-
#endif
|
|
245
|
-
uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
|
|
246
|
-
#pragma mapbox: define lowp float opacity
|
|
247
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
248
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
249
|
-
void main() {
|
|
250
|
-
#pragma mapbox: initialize lowp float opacity
|
|
251
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
252
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
253
|
-
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;
|
|
254
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
255
|
-
fragColor=vec4(1.0);
|
|
256
|
-
#endif
|
|
257
|
-
}`,`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;
|
|
258
|
-
#pragma mapbox: define lowp float opacity
|
|
259
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
260
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
261
|
-
#pragma mapbox: define lowp float pixel_ratio_from
|
|
262
|
-
#pragma mapbox: define lowp float pixel_ratio_to
|
|
263
|
-
void main() {
|
|
264
|
-
#pragma mapbox: initialize lowp float opacity
|
|
265
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
266
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
267
|
-
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
268
|
-
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
269
|
-
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:Ot(`in vec4 v_color;void main() {fragColor=v_color;
|
|
270
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
271
|
-
fragColor=vec4(1.0);
|
|
272
|
-
#endif
|
|
273
|
-
}`,`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;
|
|
274
|
-
#ifdef TERRAIN3D
|
|
275
|
-
in vec2 a_centroid;
|
|
276
|
-
#endif
|
|
277
|
-
out vec4 v_color;
|
|
278
|
-
#pragma mapbox: define highp float base
|
|
279
|
-
#pragma mapbox: define highp float height
|
|
280
|
-
#pragma mapbox: define highp vec4 color
|
|
281
|
-
void main() {
|
|
282
|
-
#pragma mapbox: initialize highp float base
|
|
283
|
-
#pragma mapbox: initialize highp float height
|
|
284
|
-
#pragma mapbox: initialize highp vec4 color
|
|
285
|
-
vec3 normal=a_normal_ed.xyz;
|
|
286
|
-
#ifdef TERRAIN3D
|
|
287
|
-
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
|
|
288
|
-
#else
|
|
289
|
-
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
|
|
290
|
-
#endif
|
|
291
|
-
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;
|
|
292
|
-
#ifdef GLOBE
|
|
293
|
-
vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
|
|
294
|
-
#else
|
|
295
|
-
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
|
|
296
|
-
#endif
|
|
297
|
-
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);
|
|
298
|
-
#ifdef GLOBE
|
|
299
|
-
mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
|
|
300
|
-
#endif
|
|
301
|
-
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:Ot(`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;
|
|
302
|
-
#pragma mapbox: define lowp float base
|
|
303
|
-
#pragma mapbox: define lowp float height
|
|
304
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
305
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
306
|
-
#pragma mapbox: define lowp float pixel_ratio_from
|
|
307
|
-
#pragma mapbox: define lowp float pixel_ratio_to
|
|
308
|
-
void main() {
|
|
309
|
-
#pragma mapbox: initialize lowp float base
|
|
310
|
-
#pragma mapbox: initialize lowp float height
|
|
311
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
312
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
313
|
-
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
314
|
-
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
315
|
-
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;
|
|
316
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
317
|
-
fragColor=vec4(1.0);
|
|
318
|
-
#endif
|
|
319
|
-
}`,`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;
|
|
320
|
-
#ifdef TERRAIN3D
|
|
321
|
-
in vec2 a_centroid;
|
|
322
|
-
#endif
|
|
323
|
-
#ifdef GLOBE
|
|
324
|
-
out vec3 v_sphere_pos;
|
|
325
|
-
#endif
|
|
326
|
-
out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
|
|
327
|
-
#pragma mapbox: define lowp float base
|
|
328
|
-
#pragma mapbox: define lowp float height
|
|
329
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
330
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
331
|
-
#pragma mapbox: define lowp float pixel_ratio_from
|
|
332
|
-
#pragma mapbox: define lowp float pixel_ratio_to
|
|
333
|
-
void main() {
|
|
334
|
-
#pragma mapbox: initialize lowp float base
|
|
335
|
-
#pragma mapbox: initialize lowp float height
|
|
336
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
337
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
338
|
-
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
339
|
-
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
340
|
-
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;
|
|
341
|
-
#ifdef TERRAIN3D
|
|
342
|
-
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
|
|
343
|
-
#else
|
|
344
|
-
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
|
|
345
|
-
#endif
|
|
346
|
-
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;
|
|
347
|
-
#ifdef GLOBE
|
|
348
|
-
vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
|
|
349
|
-
#else
|
|
350
|
-
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
|
|
351
|
-
#endif
|
|
352
|
-
vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0
|
|
353
|
-
? a_pos
|
|
354
|
-
: 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:Ot(`#ifdef GL_ES
|
|
355
|
-
precision highp float;
|
|
356
|
-
#endif
|
|
357
|
-
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);
|
|
358
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
359
|
-
fragColor=vec4(1.0);
|
|
360
|
-
#endif
|
|
361
|
-
}`,"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:Ot(`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];
|
|
362
|
-
#define PI 3.141592653589793
|
|
363
|
-
#define STANDARD 0
|
|
364
|
-
#define COMBINED 1
|
|
365
|
-
#define IGOR 2
|
|
366
|
-
#define MULTIDIRECTIONAL 3
|
|
367
|
-
#define BASIC 4
|
|
368
|
-
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
|
|
369
|
-
{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
|
|
370
|
-
{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;switch(u_method){case BASIC:
|
|
371
|
-
basic_hillshade(deriv);break;case COMBINED:
|
|
372
|
-
combined_hillshade(deriv);break;case IGOR:
|
|
373
|
-
igor_hillshade(deriv);break;case MULTIDIRECTIONAL:
|
|
374
|
-
multidirectional_hillshade(deriv);break;case STANDARD:
|
|
375
|
-
default:
|
|
376
|
-
standard_hillshade(deriv);break;}
|
|
377
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
378
|
-
fragColor=vec4(1.0);
|
|
379
|
-
#endif
|
|
380
|
-
}`,"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:Ot(`uniform lowp float u_device_pixel_ratio;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
|
|
381
|
-
#ifdef GLOBE
|
|
382
|
-
in float v_depth;
|
|
383
|
-
#endif
|
|
384
|
-
#pragma mapbox: define highp vec4 color
|
|
385
|
-
#pragma mapbox: define lowp float blur
|
|
386
|
-
#pragma mapbox: define lowp float opacity
|
|
387
|
-
void main() {
|
|
388
|
-
#pragma mapbox: initialize highp vec4 color
|
|
389
|
-
#pragma mapbox: initialize lowp float blur
|
|
390
|
-
#pragma mapbox: initialize lowp float opacity
|
|
391
|
-
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);
|
|
392
|
-
#ifdef GLOBE
|
|
393
|
-
if (v_depth > 1.0) {discard;}
|
|
394
|
-
#endif
|
|
395
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
396
|
-
fragColor=vec4(1.0);
|
|
397
|
-
#endif
|
|
398
|
-
}`,`
|
|
399
|
-
#define scale 0.015873016
|
|
400
|
-
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;
|
|
401
|
-
#ifdef GLOBE
|
|
402
|
-
out float v_depth;
|
|
403
|
-
#endif
|
|
404
|
-
#pragma mapbox: define highp vec4 color
|
|
405
|
-
#pragma mapbox: define lowp float blur
|
|
406
|
-
#pragma mapbox: define lowp float opacity
|
|
407
|
-
#pragma mapbox: define mediump float gapwidth
|
|
408
|
-
#pragma mapbox: define lowp float offset
|
|
409
|
-
#pragma mapbox: define mediump float width
|
|
410
|
-
void main() {
|
|
411
|
-
#pragma mapbox: initialize highp vec4 color
|
|
412
|
-
#pragma mapbox: initialize lowp float blur
|
|
413
|
-
#pragma mapbox: initialize lowp float opacity
|
|
414
|
-
#pragma mapbox: initialize mediump float gapwidth
|
|
415
|
-
#pragma mapbox: initialize lowp float offset
|
|
416
|
-
#pragma mapbox: initialize mediump float width
|
|
417
|
-
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;
|
|
418
|
-
#ifdef GLOBE
|
|
419
|
-
v_depth=gl_Position.z/gl_Position.w;
|
|
420
|
-
#endif
|
|
421
|
-
#ifdef TERRAIN3D
|
|
422
|
-
v_gamma_scale=1.0;
|
|
423
|
-
#else
|
|
424
|
-
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;
|
|
425
|
-
#endif
|
|
426
|
-
v_width2=vec2(outset,inset);}`),lineGradient:Ot(`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;
|
|
427
|
-
#ifdef GLOBE
|
|
428
|
-
in float v_depth;
|
|
429
|
-
#endif
|
|
430
|
-
#pragma mapbox: define lowp float blur
|
|
431
|
-
#pragma mapbox: define lowp float opacity
|
|
432
|
-
void main() {
|
|
433
|
-
#pragma mapbox: initialize lowp float blur
|
|
434
|
-
#pragma mapbox: initialize lowp float opacity
|
|
435
|
-
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);
|
|
436
|
-
#ifdef GLOBE
|
|
437
|
-
if (v_depth > 1.0) {discard;}
|
|
438
|
-
#endif
|
|
439
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
440
|
-
fragColor=vec4(1.0);
|
|
441
|
-
#endif
|
|
442
|
-
}`,`
|
|
443
|
-
#define scale 0.015873016
|
|
444
|
-
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;
|
|
445
|
-
#ifdef GLOBE
|
|
446
|
-
out float v_depth;
|
|
447
|
-
#endif
|
|
448
|
-
#pragma mapbox: define lowp float blur
|
|
449
|
-
#pragma mapbox: define lowp float opacity
|
|
450
|
-
#pragma mapbox: define mediump float gapwidth
|
|
451
|
-
#pragma mapbox: define lowp float offset
|
|
452
|
-
#pragma mapbox: define mediump float width
|
|
453
|
-
void main() {
|
|
454
|
-
#pragma mapbox: initialize lowp float blur
|
|
455
|
-
#pragma mapbox: initialize lowp float opacity
|
|
456
|
-
#pragma mapbox: initialize mediump float gapwidth
|
|
457
|
-
#pragma mapbox: initialize lowp float offset
|
|
458
|
-
#pragma mapbox: initialize mediump float width
|
|
459
|
-
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;
|
|
460
|
-
#ifdef GLOBE
|
|
461
|
-
v_depth=gl_Position.z/gl_Position.w;
|
|
462
|
-
#endif
|
|
463
|
-
#ifdef TERRAIN3D
|
|
464
|
-
v_gamma_scale=1.0;
|
|
465
|
-
#else
|
|
466
|
-
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;
|
|
467
|
-
#endif
|
|
468
|
-
v_width2=vec2(outset,inset);}`),linePattern:Ot(`#ifdef GL_ES
|
|
469
|
-
precision highp float;
|
|
470
|
-
#endif
|
|
471
|
-
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;
|
|
472
|
-
#ifdef GLOBE
|
|
473
|
-
in float v_depth;
|
|
474
|
-
#endif
|
|
475
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
476
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
477
|
-
#pragma mapbox: define lowp float pixel_ratio_from
|
|
478
|
-
#pragma mapbox: define lowp float pixel_ratio_to
|
|
479
|
-
#pragma mapbox: define lowp float blur
|
|
480
|
-
#pragma mapbox: define lowp float opacity
|
|
481
|
-
void main() {
|
|
482
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
483
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
484
|
-
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
485
|
-
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
486
|
-
#pragma mapbox: initialize lowp float blur
|
|
487
|
-
#pragma mapbox: initialize lowp float opacity
|
|
488
|
-
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;
|
|
489
|
-
#ifdef GLOBE
|
|
490
|
-
if (v_depth > 1.0) {discard;}
|
|
491
|
-
#endif
|
|
492
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
493
|
-
fragColor=vec4(1.0);
|
|
494
|
-
#endif
|
|
495
|
-
}`,`
|
|
496
|
-
#define scale 0.015873016
|
|
497
|
-
#define LINE_DISTANCE_SCALE 2.0
|
|
498
|
-
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;
|
|
499
|
-
#ifdef GLOBE
|
|
500
|
-
out float v_depth;
|
|
501
|
-
#endif
|
|
502
|
-
#pragma mapbox: define lowp float blur
|
|
503
|
-
#pragma mapbox: define lowp float opacity
|
|
504
|
-
#pragma mapbox: define lowp float offset
|
|
505
|
-
#pragma mapbox: define mediump float gapwidth
|
|
506
|
-
#pragma mapbox: define mediump float width
|
|
507
|
-
#pragma mapbox: define lowp float floorwidth
|
|
508
|
-
#pragma mapbox: define lowp vec4 pattern_from
|
|
509
|
-
#pragma mapbox: define lowp vec4 pattern_to
|
|
510
|
-
#pragma mapbox: define lowp float pixel_ratio_from
|
|
511
|
-
#pragma mapbox: define lowp float pixel_ratio_to
|
|
512
|
-
void main() {
|
|
513
|
-
#pragma mapbox: initialize lowp float blur
|
|
514
|
-
#pragma mapbox: initialize lowp float opacity
|
|
515
|
-
#pragma mapbox: initialize lowp float offset
|
|
516
|
-
#pragma mapbox: initialize mediump float gapwidth
|
|
517
|
-
#pragma mapbox: initialize mediump float width
|
|
518
|
-
#pragma mapbox: initialize lowp float floorwidth
|
|
519
|
-
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
520
|
-
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
521
|
-
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
522
|
-
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
523
|
-
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;
|
|
524
|
-
#ifdef GLOBE
|
|
525
|
-
v_depth=gl_Position.z/gl_Position.w;
|
|
526
|
-
#endif
|
|
527
|
-
#ifdef TERRAIN3D
|
|
528
|
-
v_gamma_scale=1.0;
|
|
529
|
-
#else
|
|
530
|
-
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;
|
|
531
|
-
#endif
|
|
532
|
-
v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:Ot(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;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;
|
|
533
|
-
#ifdef GLOBE
|
|
534
|
-
in float v_depth;
|
|
535
|
-
#endif
|
|
536
|
-
#pragma mapbox: define highp vec4 color
|
|
537
|
-
#pragma mapbox: define lowp float blur
|
|
538
|
-
#pragma mapbox: define lowp float opacity
|
|
539
|
-
#pragma mapbox: define mediump float width
|
|
540
|
-
#pragma mapbox: define lowp float floorwidth
|
|
541
|
-
void main() {
|
|
542
|
-
#pragma mapbox: initialize highp vec4 color
|
|
543
|
-
#pragma mapbox: initialize lowp float blur
|
|
544
|
-
#pragma mapbox: initialize lowp float opacity
|
|
545
|
-
#pragma mapbox: initialize mediump float width
|
|
546
|
-
#pragma mapbox: initialize lowp float floorwidth
|
|
547
|
-
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);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
|
|
548
|
-
#ifdef GLOBE
|
|
549
|
-
if (v_depth > 1.0) {discard;}
|
|
550
|
-
#endif
|
|
551
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
552
|
-
fragColor=vec4(1.0);
|
|
553
|
-
#endif
|
|
554
|
-
}`,`
|
|
555
|
-
#define scale 0.015873016
|
|
556
|
-
#define LINE_DISTANCE_SCALE 2.0
|
|
557
|
-
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_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
|
|
558
|
-
#ifdef GLOBE
|
|
559
|
-
out float v_depth;
|
|
560
|
-
#endif
|
|
561
|
-
#pragma mapbox: define highp vec4 color
|
|
562
|
-
#pragma mapbox: define lowp float blur
|
|
563
|
-
#pragma mapbox: define lowp float opacity
|
|
564
|
-
#pragma mapbox: define mediump float gapwidth
|
|
565
|
-
#pragma mapbox: define lowp float offset
|
|
566
|
-
#pragma mapbox: define mediump float width
|
|
567
|
-
#pragma mapbox: define lowp float floorwidth
|
|
568
|
-
void main() {
|
|
569
|
-
#pragma mapbox: initialize highp vec4 color
|
|
570
|
-
#pragma mapbox: initialize lowp float blur
|
|
571
|
-
#pragma mapbox: initialize lowp float opacity
|
|
572
|
-
#pragma mapbox: initialize mediump float gapwidth
|
|
573
|
-
#pragma mapbox: initialize lowp float offset
|
|
574
|
-
#pragma mapbox: initialize mediump float width
|
|
575
|
-
#pragma mapbox: initialize lowp float floorwidth
|
|
576
|
-
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;
|
|
577
|
-
#ifdef GLOBE
|
|
578
|
-
v_depth=gl_Position.z/gl_Position.w;
|
|
579
|
-
#endif
|
|
580
|
-
#ifdef TERRAIN3D
|
|
581
|
-
v_gamma_scale=1.0;
|
|
582
|
-
#else
|
|
583
|
-
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;
|
|
584
|
-
#endif
|
|
585
|
-
v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:Ot(`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);
|
|
586
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
587
|
-
fragColor=vec4(1.0);
|
|
588
|
-
#endif
|
|
589
|
-
}`,`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;
|
|
590
|
-
#ifdef GLOBE
|
|
591
|
-
if (a_pos.y <-32767.5) {v_pos0.y=0.0;}if (a_pos.y > 32766.5) {v_pos0.y=1.0;}
|
|
592
|
-
#endif
|
|
593
|
-
v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}`),symbolIcon:Ot(`uniform sampler2D u_texture;in vec2 v_tex;in float v_fade_opacity;
|
|
594
|
-
#pragma mapbox: define lowp float opacity
|
|
595
|
-
void main() {
|
|
596
|
-
#pragma mapbox: initialize lowp float opacity
|
|
597
|
-
lowp float alpha=opacity*v_fade_opacity;fragColor=texture(u_texture,v_tex)*alpha;
|
|
598
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
599
|
-
fragColor=vec4(1.0);
|
|
600
|
-
#endif
|
|
601
|
-
}`,`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;
|
|
602
|
-
#pragma mapbox: define lowp float opacity
|
|
603
|
-
void main() {
|
|
604
|
-
#pragma mapbox: initialize lowp float opacity
|
|
605
|
-
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 ?
|
|
606
|
-
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
607
|
-
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;
|
|
608
|
-
#ifdef GLOBE
|
|
609
|
-
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);}
|
|
610
|
-
#endif
|
|
611
|
-
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:Ot(`#define SDF_PX 8.0
|
|
612
|
-
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;
|
|
613
|
-
#pragma mapbox: define highp vec4 fill_color
|
|
614
|
-
#pragma mapbox: define highp vec4 halo_color
|
|
615
|
-
#pragma mapbox: define lowp float opacity
|
|
616
|
-
#pragma mapbox: define lowp float halo_width
|
|
617
|
-
#pragma mapbox: define lowp float halo_blur
|
|
618
|
-
void main() {
|
|
619
|
-
#pragma mapbox: initialize highp vec4 fill_color
|
|
620
|
-
#pragma mapbox: initialize highp vec4 halo_color
|
|
621
|
-
#pragma mapbox: initialize lowp float opacity
|
|
622
|
-
#pragma mapbox: initialize lowp float halo_width
|
|
623
|
-
#pragma mapbox: initialize lowp float halo_blur
|
|
624
|
-
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);
|
|
625
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
626
|
-
fragColor=vec4(1.0);
|
|
627
|
-
#endif
|
|
628
|
-
}`,`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;
|
|
629
|
-
#pragma mapbox: define highp vec4 fill_color
|
|
630
|
-
#pragma mapbox: define highp vec4 halo_color
|
|
631
|
-
#pragma mapbox: define lowp float opacity
|
|
632
|
-
#pragma mapbox: define lowp float halo_width
|
|
633
|
-
#pragma mapbox: define lowp float halo_blur
|
|
634
|
-
void main() {
|
|
635
|
-
#pragma mapbox: initialize highp vec4 fill_color
|
|
636
|
-
#pragma mapbox: initialize highp vec4 halo_color
|
|
637
|
-
#pragma mapbox: initialize lowp float opacity
|
|
638
|
-
#pragma mapbox: initialize lowp float halo_width
|
|
639
|
-
#pragma mapbox: initialize lowp float halo_blur
|
|
640
|
-
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;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 ?
|
|
641
|
-
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
642
|
-
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;
|
|
643
|
-
#ifdef GLOBE
|
|
644
|
-
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);}
|
|
645
|
-
#endif
|
|
646
|
-
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*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:Ot(`#define SDF_PX 8.0
|
|
647
|
-
#define SDF 1.0
|
|
648
|
-
#define ICON 0.0
|
|
649
|
-
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;
|
|
650
|
-
#pragma mapbox: define highp vec4 fill_color
|
|
651
|
-
#pragma mapbox: define highp vec4 halo_color
|
|
652
|
-
#pragma mapbox: define lowp float opacity
|
|
653
|
-
#pragma mapbox: define lowp float halo_width
|
|
654
|
-
#pragma mapbox: define lowp float halo_blur
|
|
655
|
-
void main() {
|
|
656
|
-
#pragma mapbox: initialize highp vec4 fill_color
|
|
657
|
-
#pragma mapbox: initialize highp vec4 halo_color
|
|
658
|
-
#pragma mapbox: initialize lowp float opacity
|
|
659
|
-
#pragma mapbox: initialize lowp float halo_width
|
|
660
|
-
#pragma mapbox: initialize lowp float halo_blur
|
|
661
|
-
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;
|
|
662
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
663
|
-
fragColor=vec4(1.0);
|
|
664
|
-
#endif
|
|
665
|
-
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);
|
|
666
|
-
#ifdef OVERDRAW_INSPECTOR
|
|
667
|
-
fragColor=vec4(1.0);
|
|
668
|
-
#endif
|
|
669
|
-
}`,`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;
|
|
670
|
-
#pragma mapbox: define highp vec4 fill_color
|
|
671
|
-
#pragma mapbox: define highp vec4 halo_color
|
|
672
|
-
#pragma mapbox: define lowp float opacity
|
|
673
|
-
#pragma mapbox: define lowp float halo_width
|
|
674
|
-
#pragma mapbox: define lowp float halo_blur
|
|
675
|
-
void main() {
|
|
676
|
-
#pragma mapbox: initialize highp vec4 fill_color
|
|
677
|
-
#pragma mapbox: initialize highp vec4 halo_color
|
|
678
|
-
#pragma mapbox: initialize lowp float opacity
|
|
679
|
-
#pragma mapbox: initialize lowp float halo_width
|
|
680
|
-
#pragma mapbox: initialize lowp float halo_blur
|
|
681
|
-
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 ?
|
|
682
|
-
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
683
|
-
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;
|
|
684
|
-
#ifdef GLOBE
|
|
685
|
-
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);}
|
|
686
|
-
#endif
|
|
687
|
-
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:Ot("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:Ot("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:Ot("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:Ot("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:Ot(`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
|
|
688
|
-
);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:Ot("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 Ot(u,e){const r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,a=e.match(/in ([\w]+) ([\w]+)/g),l=u.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),h=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),g=h?h.concat(l):l,b={};return{fragmentSource:u=u.replace(r,(A,I,D,F,O)=>(b[O]=!0,I==="define"?`
|
|
689
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
690
|
-
in ${D} ${F} ${O};
|
|
691
|
-
#else
|
|
692
|
-
uniform ${D} ${F} u_${O};
|
|
693
|
-
#endif
|
|
694
|
-
`:`
|
|
695
|
-
#ifdef HAS_UNIFORM_u_${O}
|
|
696
|
-
${D} ${F} ${O} = u_${O};
|
|
697
|
-
#endif
|
|
698
|
-
`)),vertexSource:e=e.replace(r,(A,I,D,F,O)=>{const Z=F==="float"?"vec2":"vec4",J=O.match(/color/)?"color":Z;return b[O]?I==="define"?`
|
|
699
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
700
|
-
uniform lowp float u_${O}_t;
|
|
701
|
-
in ${D} ${Z} a_${O};
|
|
702
|
-
out ${D} ${F} ${O};
|
|
703
|
-
#else
|
|
704
|
-
uniform ${D} ${F} u_${O};
|
|
705
|
-
#endif
|
|
706
|
-
`:J==="vec4"?`
|
|
707
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
708
|
-
${O} = a_${O};
|
|
709
|
-
#else
|
|
710
|
-
${D} ${F} ${O} = u_${O};
|
|
711
|
-
#endif
|
|
712
|
-
`:`
|
|
713
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
714
|
-
${O} = unpack_mix_${J}(a_${O}, u_${O}_t);
|
|
715
|
-
#else
|
|
716
|
-
${D} ${F} ${O} = u_${O};
|
|
717
|
-
#endif
|
|
718
|
-
`:I==="define"?`
|
|
719
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
720
|
-
uniform lowp float u_${O}_t;
|
|
721
|
-
in ${D} ${Z} a_${O};
|
|
722
|
-
#else
|
|
723
|
-
uniform ${D} ${F} u_${O};
|
|
724
|
-
#endif
|
|
725
|
-
`:J==="vec4"?`
|
|
726
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
727
|
-
${D} ${F} ${O} = a_${O};
|
|
728
|
-
#else
|
|
729
|
-
${D} ${F} ${O} = u_${O};
|
|
730
|
-
#endif
|
|
731
|
-
`:`
|
|
732
|
-
#ifndef HAS_UNIFORM_u_${O}
|
|
733
|
-
${D} ${F} ${O} = unpack_mix_${J}(a_${O}, u_${O}_t);
|
|
734
|
-
#else
|
|
735
|
-
${D} ${F} ${O} = u_${O};
|
|
736
|
-
#endif
|
|
737
|
-
`}),staticAttributes:a,staticUniforms:g}}class ds{constructor(e,r,a){this.vertexBuffer=e,this.indexBuffer=r,this.segments=a}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}var hi=s.aG([{name:"a_pos",type:"Int16",components:2}]);const Gn="#define PROJECTION_MERCATOR",Dt="mercator";class Xs{constructor(){this._cachedMesh=null}get name(){return"mercator"}get useSubdivision(){return!1}get shaderVariantName(){return Dt}get shaderDefine(){return Gn}get shaderPreludeCode(){return ui.projectionMercator}get vertexShaderPreludeCode(){return ui.projectionMercator.vertexSource}get subdivisionGranularity(){return s.aH.noSubdivision}get useGlobeControls(){return!1}get transitionState(){return 0}get latitudeErrorCorrectionRadians(){return 0}destroy(){}updateGPUdependent(e){}getMeshFromTileID(e,r,a,l,h){if(this._cachedMesh)return this._cachedMesh;const g=new s.aI;g.emplaceBack(0,0),g.emplaceBack(s.Z,0),g.emplaceBack(0,s.Z),g.emplaceBack(s.Z,s.Z);const b=e.createVertexBuffer(g,hi.members),A=s.aJ.simpleSegment(0,0,4,2),I=new s.aK;I.emplaceBack(1,0,2),I.emplaceBack(1,2,3);const D=e.createIndexBuffer(I);return this._cachedMesh=new ds(b,D,A),this._cachedMesh}recalculate(){}hasTransition(){return!1}setErrorQueryLatitudeDegrees(e){}}class Qs{constructor(e=0,r=0,a=0,l=0){if(isNaN(e)||e<0||isNaN(r)||r<0||isNaN(a)||a<0||isNaN(l)||l<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=e,this.bottom=r,this.left=a,this.right=l}interpolate(e,r,a){return r.top!=null&&e.top!=null&&(this.top=s.B.number(e.top,r.top,a)),r.bottom!=null&&e.bottom!=null&&(this.bottom=s.B.number(e.bottom,r.bottom,a)),r.left!=null&&e.left!=null&&(this.left=s.B.number(e.left,r.left,a)),r.right!=null&&e.right!=null&&(this.right=s.B.number(e.right,r.right,a)),this}getCenter(e,r){const a=s.ae((this.left+e-this.right)/2,0,e),l=s.ae((this.top+r-this.bottom)/2,0,r);return new s.P(a,l)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new Qs(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function fs(u,e){if(!u.renderWorldCopies||u.lngRange)return;const r=e.lng-u.center.lng;e.lng+=r>180?-360:r<-180?360:0}function bi(u){return Math.max(0,Math.floor(u))}class Qr{constructor(e,r,a,l,h,g){this._callbacks=e,this._tileSize=512,this._renderWorldCopies=g===void 0||!!g,this._minZoom=r||0,this._maxZoom=a||22,this._minPitch=l??0,this._maxPitch=h??60,this.setMaxBounds(),this._width=0,this._height=0,this._center=new s.Q(0,0),this._elevation=0,this._zoom=0,this._tileZoom=bi(this._zoom),this._scale=s.ac(this._zoom),this._bearingInRadians=0,this._fovInRadians=.6435011087932844,this._pitchInRadians=0,this._rollInRadians=0,this._unmodified=!0,this._edgeInsets=new Qs,this._minElevationForCurrentTile=0,this._autoCalculateNearFarZ=!0}apply(e,r,a){this._latRange=e.latRange,this._lngRange=e.lngRange,this._width=e.width,this._height=e.height,this._center=e.center,this._elevation=e.elevation,this._minElevationForCurrentTile=e.minElevationForCurrentTile,this._zoom=e.zoom,this._tileZoom=bi(this._zoom),this._scale=s.ac(this._zoom),this._bearingInRadians=e.bearingInRadians,this._fovInRadians=e.fovInRadians,this._pitchInRadians=e.pitchInRadians,this._rollInRadians=e.rollInRadians,this._unmodified=e.unmodified,this._edgeInsets=new Qs(e.padding.top,e.padding.bottom,e.padding.left,e.padding.right),this._minZoom=e.minZoom,this._maxZoom=e.maxZoom,this._minPitch=e.minPitch,this._maxPitch=e.maxPitch,this._renderWorldCopies=e.renderWorldCopies,this._cameraToCenterDistance=e.cameraToCenterDistance,this._nearZ=e.nearZ,this._farZ=e.farZ,this._autoCalculateNearFarZ=!a&&e.autoCalculateNearFarZ,r&&this._constrain(),this._calcMatrices()}get pixelsToClipSpaceMatrix(){return this._pixelsToClipSpaceMatrix}get clipSpaceToPixelsMatrix(){return this._clipSpaceToPixelsMatrix}get minElevationForCurrentTile(){return this._minElevationForCurrentTile}setMinElevationForCurrentTile(e){this._minElevationForCurrentTile=e}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(e){this._minZoom!==e&&(this._minZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get maxZoom(){return this._maxZoom}setMaxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.setZoom(this.getConstrained(this._center,this.zoom).zoom))}get minPitch(){return this._minPitch}setMinPitch(e){this._minPitch!==e&&(this._minPitch=e,this.setPitch(Math.max(this.pitch,e)))}get maxPitch(){return this._maxPitch}setMaxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.setPitch(Math.min(this.pitch,e)))}get renderWorldCopies(){return this._renderWorldCopies}setRenderWorldCopies(e){e===void 0?e=!0:e===null&&(e=!1),this._renderWorldCopies=e}get worldSize(){return this._tileSize*this._scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new s.P(this._width,this._height)}get bearing(){return this._bearingInRadians/Math.PI*180}setBearing(e){const r=s.aL(e,-180,180)*Math.PI/180;var a,l,h,g,b,A,I,D,F;this._bearingInRadians!==r&&(this._unmodified=!1,this._bearingInRadians=r,this._calcMatrices(),this._rotationMatrix=z(),a=this._rotationMatrix,h=-this._bearingInRadians,g=(l=this._rotationMatrix)[0],b=l[1],A=l[2],I=l[3],D=Math.sin(h),F=Math.cos(h),a[0]=g*F+A*D,a[1]=b*F+I*D,a[2]=g*-D+A*F,a[3]=b*-D+I*F)}get rotationMatrix(){return this._rotationMatrix}get pitchInRadians(){return this._pitchInRadians}get pitch(){return this._pitchInRadians/Math.PI*180}setPitch(e){const r=s.ae(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitchInRadians!==r&&(this._unmodified=!1,this._pitchInRadians=r,this._calcMatrices())}get rollInRadians(){return this._rollInRadians}get roll(){return this._rollInRadians/Math.PI*180}setRoll(e){const r=e/180*Math.PI;this._rollInRadians!==r&&(this._unmodified=!1,this._rollInRadians=r,this._calcMatrices())}get fovInRadians(){return this._fovInRadians}get fov(){return s.aM(this._fovInRadians)}setFov(e){e=s.ae(e,.1,150),this.fov!==e&&(this._unmodified=!1,this._fovInRadians=s.ab(e),this._calcMatrices())}get zoom(){return this._zoom}setZoom(e){const r=this.getConstrained(this._center,e).zoom;this._zoom!==r&&(this._unmodified=!1,this._zoom=r,this._tileZoom=Math.max(0,Math.floor(r)),this._scale=s.ac(r),this._constrain(),this._calcMatrices())}get center(){return this._center}setCenter(e){e.lat===this._center.lat&&e.lng===this._center.lng||(this._unmodified=!1,this._center=e,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}setElevation(e){e!==this._elevation&&(this._elevation=e,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}setPadding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,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(e,r){this._autoCalculateNearFarZ=!1,this._nearZ=e,this._farZ=r,this._calcMatrices()}clearNearFarZOverride(){this._autoCalculateNearFarZ=!0,this._calcMatrices()}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,r,a){this._unmodified=!1,this._edgeInsets.interpolate(e,r,a),this._constrain(),this._calcMatrices()}resize(e,r,a=!0){this._width=e,this._height=r,a&&this._constrain(),this._calcMatrices()}getMaxBounds(){return this._latRange&&this._latRange.length===2&&this._lngRange&&this._lngRange.length===2?new Xe([this._lngRange[0],this._latRange[0]],[this._lngRange[1],this._latRange[1]]):null}setMaxBounds(e){e?(this._lngRange=[e.getWest(),e.getEast()],this._latRange=[e.getSouth(),e.getNorth()],this._constrain()):(this._lngRange=null,this._latRange=[-85.051129,s.af])}getConstrained(e,r){return this._callbacks.getConstrained(e,r)}getCameraQueryGeometry(e,r){if(r.length===1)return[r[0],e];{let a=e.x,l=e.y,h=e.x,g=e.y;for(const b of r)a=Math.min(a,b.x),l=Math.min(l,b.y),h=Math.max(h,b.x),g=Math.max(g,b.y);return[new s.P(a,l),new s.P(h,l),new s.P(h,g),new s.P(a,g),new s.P(a,l)]}}_constrain(){if(!this.center||!this._width||!this._height||this._constraining)return;this._constraining=!0;const e=this._unmodified,{center:r,zoom:a}=this.getConstrained(this.center,this.zoom);this.setCenter(r),this.setZoom(a),this._unmodified=e,this._constraining=!1}_calcMatrices(){if(this._width&&this._height){this._pixelsToGLUnits=[2/this._width,-2/this._height];let e=s.ad(new Float64Array(16));s.M(e,e,[this._width/2,-this._height/2,1]),s.L(e,e,[1,-1,0]),this._clipSpaceToPixelsMatrix=e,e=s.ad(new Float64Array(16)),s.M(e,e,[1,-1,1]),s.L(e,e,[-1,-1,0]),s.M(e,e,[2/this._width,2/this._height,1]),this._pixelsToClipSpaceMatrix=e,this._cameraToCenterDistance=.5/Math.tan(this.fovInRadians/2)*this._height}this._callbacks.calcMatrices()}calculateCenterFromCameraLngLatAlt(e,r,a,l){const h=a!==void 0?a:this.bearing,g=l=l!==void 0?l:this.pitch,b=s.$.fromLngLat(e,r),A=-Math.cos(s.ab(g)),I=Math.sin(s.ab(g)),D=I*Math.sin(s.ab(h)),F=-I*Math.cos(s.ab(h));let O=this.elevation;const Z=r-O;let J;A*Z>=0||Math.abs(A)<.1?(J=1e4,O=r+J*A):J=-Z/A;let se,ne,oe=s.aN(1,b.y),ce=0;do{if(ce+=1,ce>10)break;ne=J/oe,se=new s.$(b.x+D*ne,b.y+F*ne),oe=1/se.meterInMercatorCoordinateUnits()}while(Math.abs(J-ne*oe)>1e-12);return{center:se.toLngLat(),elevation:O,zoom:s.ah(this.height/2/Math.tan(this.fovInRadians/2)/ne/this.tileSize)}}recalculateZoomAndCenter(e){if(this.elevation-e==0)return;const r=s.ag(1,this.center.lat)*this.worldSize,a=this.cameraToCenterDistance/r,l=s.$.fromLngLat(this.center,this.elevation),h=Q(this.center,this.elevation,this.pitch,this.bearing,a);this._elevation=e;const g=this.calculateCenterFromCameraLngLatAlt(h.toLngLat(),s.aN(h.z,l.y),this.bearing,this.pitch);this._elevation=g.elevation,this._center=g.center,this.setZoom(g.zoom)}getCameraPoint(){const e=Math.tan(this.pitchInRadians)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new s.P(e*Math.sin(this.rollInRadians),e*Math.cos(this.rollInRadians)))}getCameraAltitude(){return Math.cos(this.pitchInRadians)*this._cameraToCenterDistance/this._pixelPerMeter+this.elevation}getCameraLngLat(){const e=s.ag(1,this.center.lat)*this.worldSize;return Q(this.center,this.elevation,this.pitch,this.bearing,this.cameraToCenterDistance/e).toLngLat()}getMercatorTileCoordinates(e){if(!e)return[0,0,1,1];const r=e.canonical.z>=0?1<<e.canonical.z:Math.pow(2,e.canonical.z);return[e.canonical.x/r,e.canonical.y/r,1/r/s.Z,1/r/s.Z]}}class Pr{constructor(e,r){this.min=e,this.max=r,this.center=s.aO([],s.aP([],this.min,this.max),.5)}quadrant(e){const r=[e%2==0,e<2],a=s.aQ(this.min),l=s.aQ(this.max);for(let h=0;h<r.length;h++)a[h]=r[h]?this.min[h]:this.center[h],l[h]=r[h]?this.center[h]:this.max[h];return l[2]=this.max[2],new Pr(a,l)}distanceX(e){return Math.max(Math.min(this.max[0],e[0]),this.min[0])-e[0]}distanceY(e){return Math.max(Math.min(this.max[1],e[1]),this.min[1])-e[1]}intersectsFrustum(e){let r=!0;for(let a=0;a<e.planes.length;a++){const l=this.intersectsPlane(e.planes[a]);if(l===0)return 0;l===1&&(r=!1)}return r?2:e.aabb.min[0]>this.max[0]||e.aabb.min[1]>this.max[1]||e.aabb.min[2]>this.max[2]||e.aabb.max[0]<this.min[0]||e.aabb.max[1]<this.min[1]||e.aabb.max[2]<this.min[2]?0:1}intersectsPlane(e){let r=e[3],a=e[3];for(let l=0;l<3;l++)e[l]>0?(r+=e[l]*this.min[l],a+=e[l]*this.max[l]):(a+=e[l]*this.min[l],r+=e[l]*this.max[l]);return r>=0?2:a<0?0:1}}class Yr{distanceToTile2d(e,r,a,l){const h=l.distanceX([e,r]),g=l.distanceY([e,r]);return Math.hypot(h,g)}getWrap(e,r,a){return a}getTileAABB(e,r,a,l){var h,g;let b=a,A=a;if(l.terrain){const D=new s.Y(e.z,r,e.z,e.x,e.y),F=l.terrain.getMinMaxElevation(D);b=(h=F.minElevation)!==null&&h!==void 0?h:a,A=(g=F.maxElevation)!==null&&g!==void 0?g:a}const I=1<<e.z;return new Pr([r+e.x/I,e.y/I,b],[r+(e.x+1)/I,(e.y+1)/I,A])}allowVariableZoom(e,r){const a=e.fov*(Math.abs(Math.cos(e.rollInRadians))*e.height+Math.abs(Math.sin(e.rollInRadians))*e.width)/e.height,l=s.ae(78.5-a/2,0,60);return!!r.terrain||e.pitch>l}allowWorldCopies(){return!0}recalculateCache(){}}class rr{constructor(e,r,a){this.points=e,this.planes=r,this.aabb=a}static fromInvProjectionMatrix(e,r=1,a=0){const l=Math.pow(2,a),h=[[-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(I=>{const D=1/(I=s.at([],I,e))[3]/r*l;return s.aR(I,I,[D,D,1/I[3],D])}),g=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(I=>{const D=s.aS([],h[I[0]],h[I[1]]),F=s.aS([],h[I[2]],h[I[1]]),O=s.aT([],s.aU([],D,F)),Z=-s.aV(O,h[I[1]]);return O.concat(Z)}),b=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY],A=[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];for(const I of h)for(let D=0;D<3;D++)b[D]=Math.min(b[D],I[D]),A[D]=Math.max(A[D],I[D]);return new rr(h,g,new Pr(b,A))}}class ms{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(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,r,a){return this._helper.interpolatePadding(e,r,a)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,r,a=!0){this._helper.resize(e,r,a)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,r){this._helper.overrideNearFarZ(e,r)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}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 nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e,r){}constructor(e,r,a,l,h){this._posMatrixCache=new Map,this._alignedPosMatrixCache=new Map,this._fogMatrixCacheF32=new Map,this._helper=new Qr({calcMatrices:()=>{this._calcMatrices()},getConstrained:(g,b)=>this.getConstrained(g,b)},e,r,a,l,h),this._coveringTilesDetailsProvider=new Yr}clone(){const e=new ms;return e.apply(this),e}apply(e,r,a){this._helper.apply(e,r,a)}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(e){const r=[new s.aW(0,e)];if(this._helper._renderWorldCopies){const a=this.screenPointToMercatorCoordinate(new s.P(0,0)),l=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,0)),h=this.screenPointToMercatorCoordinate(new s.P(this._helper._width,this._helper._height)),g=this.screenPointToMercatorCoordinate(new s.P(0,this._helper._height)),b=Math.floor(Math.min(a.x,l.x,h.x,g.x)),A=Math.floor(Math.max(a.x,l.x,h.x,g.x)),I=1;for(let D=b-I;D<=A+I;D++)D!==0&&r.push(new s.aW(D,e))}return r}getCameraFrustum(){return rr.fromInvProjectionMatrix(this._invViewProjMatrix,this.worldSize)}getClippingPlane(){return null}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){const r=this.screenPointToLocation(this.centerPoint,e),a=e?e.getElevationForLngLatZoom(r,this._helper._tileZoom):0;this._helper.recalculateZoomAndCenter(a)}setLocationAtPoint(e,r){const a=s.ag(this.elevation,this.center.lat),l=this.screenPointToMercatorCoordinateAtZ(r,a),h=this.screenPointToMercatorCoordinateAtZ(this.centerPoint,a),g=s.$.fromLngLat(e),b=new s.$(g.x-(l.x-h.x),g.y-(l.y-h.y));this.setCenter(b==null?void 0:b.toLngLat()),this._helper._renderWorldCopies&&this.setCenter(this.center.wrap())}locationToScreenPoint(e,r){return r?this.coordinatePoint(s.$.fromLngLat(e),r.getElevationForLngLatZoom(e,this._helper._tileZoom),this._pixelMatrix3D):this.coordinatePoint(s.$.fromLngLat(e))}screenPointToLocation(e,r){var a;return(a=this.screenPointToMercatorCoordinate(e,r))===null||a===void 0?void 0:a.toLngLat()}screenPointToMercatorCoordinate(e,r){if(r){const a=r.pointCoordinate(e);if(a!=null)return a}return this.screenPointToMercatorCoordinateAtZ(e)}screenPointToMercatorCoordinateAtZ(e,r){const a=r||0,l=[e.x,e.y,0,1],h=[e.x,e.y,1,1];s.at(l,l,this._pixelMatrixInverse),s.at(h,h,this._pixelMatrixInverse);const g=l[3],b=h[3],A=l[1]/g,I=h[1]/b,D=l[2]/g,F=h[2]/b,O=D===F?0:(a-D)/(F-D);return new s.$(s.B.number(l[0]/g,h[0]/b,O)/this.worldSize,s.B.number(A,I,O)/this.worldSize,a)}coordinatePoint(e,r=0,a=this._pixelMatrix){const l=[e.x*this.worldSize,e.y*this.worldSize,r,1];return s.at(l,l,a),new s.P(l[0]/l[3],l[1]/l[3])}getBounds(){const e=Math.max(0,this._helper._height/2-ve(this));return new Xe().extend(this.screenPointToLocation(new s.P(0,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,e))).extend(this.screenPointToLocation(new s.P(this._helper._width,this._helper._height))).extend(this.screenPointToLocation(new s.P(0,this._helper._height)))}isPointOnMapSurface(e,r){return r?r.pointCoordinate(e)!=null:e.y>this.height/2-ve(this)}calculatePosMatrix(e,r=!1,a){var l;const h=(l=e.key)!==null&&l!==void 0?l:s.aX(e.wrap,e.canonical.z,e.canonical.z,e.canonical.x,e.canonical.y),g=r?this._alignedPosMatrixCache:this._posMatrixCache;if(g.has(h)){const I=g.get(h);return a?I.f32:I.f64}const b=G(e,this.worldSize);s.N(b,r?this._alignedProjMatrix:this._viewProjMatrix,b);const A={f64:b,f32:new Float32Array(b)};return g.set(h,A),a?A.f32:A.f64}calculateFogMatrix(e){const r=e.key,a=this._fogMatrixCacheF32;if(a.has(r))return a.get(r);const l=G(e,this.worldSize);return s.N(l,this._fogMatrix,l),a.set(r,new Float32Array(l)),a.get(r)}getConstrained(e,r){r=s.ae(+r,this.minZoom,this.maxZoom);const a={center:new s.Q(e.lng,e.lat),zoom:r};let l=this._helper._lngRange;this._helper._renderWorldCopies||l!==null||(l=[-179.9999999999,180-1e-10]);const h=this.tileSize*s.ac(a.zoom);let g=0,b=h,A=0,I=h,D=0,F=0;const{x:O,y:Z}=this.size;if(this._helper._latRange){const me=this._helper._latRange;g=s.S(me[1])*h,b=s.S(me[0])*h,b-g<Z&&(D=Z/(b-g))}l&&(A=s.aL(s.U(l[0])*h,0,h),I=s.aL(s.U(l[1])*h,0,h),I<A&&(I+=h),I-A<O&&(F=O/(I-A)));const{x:J,y:se}=Zt(h,e);let ne,oe;const ce=Math.max(F||0,D||0);if(ce){const me=new s.P(F?(I+A)/2:J,D?(b+g)/2:se);return a.center=jr(h,me).wrap(),a.zoom+=s.ah(ce),a}if(this._helper._latRange){const me=Z/2;se-me<g&&(oe=g+me),se+me>b&&(oe=b-me)}if(l){const me=(A+I)/2;let fe=J;this._helper._renderWorldCopies&&(fe=s.aL(J,me-h/2,me+h/2));const ge=O/2;fe-ge<A&&(ne=A+ge),fe+ge>I&&(ne=I-ge)}if(ne!==void 0||oe!==void 0){const me=new s.P(ne??J,oe??se);a.center=jr(h,me).wrap()}return a}calculateCenterFromCameraLngLatAlt(e,r,a,l){return this._helper.calculateCenterFromCameraLngLatAlt(e,r,a,l)}_calculateNearFarZIfNeeded(e,r,a){if(!this._helper.autoCalculateNearFarZ)return;const l=Math.min(this.elevation,this.minElevationForCurrentTile,this.getCameraAltitude()-100),h=e-l*this._helper._pixelPerMeter/Math.cos(r),g=l<0?h:e,b=Math.PI/2+this.pitchInRadians,A=s.ab(this.fov)*(Math.abs(Math.cos(s.ab(this.roll)))*this.height+Math.abs(Math.sin(s.ab(this.roll)))*this.width)/this.height*(.5+a.y/this.height),I=Math.sin(A)*g/Math.sin(s.ae(Math.PI-b-A,.01,Math.PI-.01)),D=ve(this),F=Math.atan(D/this._helper.cameraToCenterDistance),O=s.ab(.75),Z=F>O?2*F*(.5+a.y/(2*D)):O,J=Math.sin(Z)*g/Math.sin(s.ae(Math.PI-b-Z,.01,Math.PI-.01)),se=Math.min(I,J);this._helper._farZ=1.01*(Math.cos(Math.PI/2-r)*se+g),this._helper._nearZ=this._helper._height/50}_calcMatrices(){if(!this._helper._height)return;const e=this.centerOffset,r=Zt(this.worldSize,this.center),a=r.x,l=r.y;this._helper._pixelPerMeter=s.ag(1,this.center.lat)*this.worldSize;const h=s.ab(Math.min(this.pitch,Cr)),g=Math.max(this._helper.cameraToCenterDistance/2,this._helper.cameraToCenterDistance+this._helper._elevation*this._helper._pixelPerMeter/Math.cos(h));let b;this._calculateNearFarZIfNeeded(g,h,e),b=new Float64Array(16),s.aY(b,this.fovInRadians,this._helper._width/this._helper._height,this._helper._nearZ,this._helper._farZ),this._invProjMatrix=new Float64Array(16),s.an(this._invProjMatrix,b),b[8]=2*-e.x/this._helper._width,b[9]=2*e.y/this._helper._height,this._projectionMatrix=s.aZ(b),s.M(b,b,[1,-1,1]),s.L(b,b,[0,0,-this._helper.cameraToCenterDistance]),s.a_(b,b,-this.rollInRadians),s.a$(b,b,this.pitchInRadians),s.a_(b,b,-this.bearingInRadians),s.L(b,b,[-a,-l,0]),this._mercatorMatrix=s.M([],b,[this.worldSize,this.worldSize,this.worldSize]),s.M(b,b,[1,1,this._helper._pixelPerMeter]),this._pixelMatrix=s.N(new Float64Array(16),this.clipSpaceToPixelsMatrix,b),s.L(b,b,[0,0,-this.elevation]),this._viewProjMatrix=b,this._invViewProjMatrix=s.an([],b);const A=[0,0,-1,1];s.at(A,A,this._invViewProjMatrix),this._cameraPosition=[A[0]/A[3],A[1]/A[3],A[2]/A[3]],this._fogMatrix=new Float64Array(16),s.aY(this._fogMatrix,this.fovInRadians,this.width/this.height,g,this._helper._farZ),this._fogMatrix[8]=2*-e.x/this.width,this._fogMatrix[9]=2*e.y/this.height,s.M(this._fogMatrix,this._fogMatrix,[1,-1,1]),s.L(this._fogMatrix,this._fogMatrix,[0,0,-this.cameraToCenterDistance]),s.a_(this._fogMatrix,this._fogMatrix,-this.rollInRadians),s.a$(this._fogMatrix,this._fogMatrix,this.pitchInRadians),s.a_(this._fogMatrix,this._fogMatrix,-this.bearingInRadians),s.L(this._fogMatrix,this._fogMatrix,[-a,-l,0]),s.M(this._fogMatrix,this._fogMatrix,[1,1,this._helper._pixelPerMeter]),s.L(this._fogMatrix,this._fogMatrix,[0,0,-this.elevation]),this._pixelMatrix3D=s.N(new Float64Array(16),this.clipSpaceToPixelsMatrix,b);const I=this._helper._width%2/2,D=this._helper._height%2/2,F=Math.cos(this.bearingInRadians),O=Math.sin(-this.bearingInRadians),Z=a-Math.round(a)+F*I+O*D,J=l-Math.round(l)+F*D+O*I,se=new Float64Array(b);if(s.L(se,se,[Z>.5?Z-1:Z,J>.5?J-1:J,0]),this._alignedProjMatrix=se,b=s.an(new Float64Array(16),this._pixelMatrix),!b)throw new Error("failed to invert matrix");this._pixelMatrixInverse=b,this._clearMatrixCaches()}_clearMatrixCaches(){this._posMatrixCache.clear(),this._alignedPosMatrixCache.clear(),this._fogMatrixCacheF32.clear()}maxPitchScaleFactor(){if(!this._pixelMatrixInverse)return 1;const e=this.screenPointToMercatorCoordinate(new s.P(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return s.at(r,r,this._pixelMatrix)[3]/this._helper.cameraToCenterDistance}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){const e=s.ag(1,this.center.lat)*this.worldSize;return Q(this.center,this.elevation,this.pitch,this.bearing,this._helper.cameraToCenterDistance/e).toLngLat()}lngLatToCameraDepth(e,r){const a=s.$.fromLngLat(e),l=[a.x*this.worldSize,a.y*this.worldSize,r,1];return s.at(l,l,this._viewProjMatrix),l[2]/l[3]}getProjectionData(e){const{overscaledTileID:r,aligned:a,applyTerrainMatrix:l}=e,h=this._helper.getMercatorTileCoordinates(r),g=r?this.calculatePosMatrix(r,a,!0):null;let b;return b=r&&r.terrainRttPosMatrix32f&&l?r.terrainRttPosMatrix32f:g||s.b0(),{mainMatrix:b,tileMercatorCoords:h,clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:b}}isLocationOccluded(e){return!1}getPixelScale(){return 1}getCircleRadiusCorrection(){return 1}getPitchedTextCorrection(e,r,a){return 1}transformLightDirection(e){return s.aQ(e)}getRayDirectionFromPixel(e){throw new Error("Not implemented.")}projectTileCoordinates(e,r,a,l){const h=this.calculatePosMatrix(a);let g;l?(g=[e,r,l(e,r),1],s.at(g,g,h)):(g=[e,r,0,1],Hn(g,g,h));const b=g[3];return{point:new s.P(g[0]/b,g[1]/b),signedDistanceFromCamera:b,isOccluded:!1}}populateCache(e){for(const r of e)this.calculatePosMatrix(r)}getMatrixForModel(e,r){const a=s.$.fromLngLat(e,r),l=a.meterInMercatorCoordinateUnits(),h=s.b1();return s.L(h,h,[a.x,a.y,a.z]),s.a_(h,h,Math.PI),s.a$(h,h,Math.PI/2),s.M(h,h,[-l,l,l]),h}getProjectionDataForCustomLayer(e=!0){const r=new s.Y(0,0,0,0,0),a=this.getProjectionData({overscaledTileID:r,applyGlobeMatrix:e}),l=G(r,this.worldSize);s.N(l,this._viewProjMatrix,l),a.tileMercatorCoords=[0,0,1,1];const h=[s.Z,s.Z,this.worldSize/this._helper.pixelsPerMeter],g=s.b2();return s.M(g,l,h),a.fallbackMatrix=g,a.mainMatrix=g,a}getFastPathSimpleProjectionMatrix(e){return this.calculatePosMatrix(e)}}function pi(){s.w("Map cannot fit within canvas with the given bounds, padding, and/or offset.")}function Ei(u){if(u.useSlerp)if(u.k<1){const e=s.b3(u.startEulerAngles.roll,u.startEulerAngles.pitch,u.startEulerAngles.bearing),r=s.b3(u.endEulerAngles.roll,u.endEulerAngles.pitch,u.endEulerAngles.bearing),a=new Float64Array(4);s.b4(a,e,r,u.k);const l=s.b5(a);u.tr.setRoll(l.roll),u.tr.setPitch(l.pitch),u.tr.setBearing(l.bearing)}else u.tr.setRoll(u.endEulerAngles.roll),u.tr.setPitch(u.endEulerAngles.pitch),u.tr.setBearing(u.endEulerAngles.bearing);else u.tr.setRoll(s.B.number(u.startEulerAngles.roll,u.endEulerAngles.roll,u.k)),u.tr.setPitch(s.B.number(u.startEulerAngles.pitch,u.endEulerAngles.pitch,u.k)),u.tr.setBearing(s.B.number(u.startEulerAngles.bearing,u.endEulerAngles.bearing,u.k))}function vi(u,e,r,a,l){const h=l.padding,g=Zt(l.worldSize,r.getNorthWest()),b=Zt(l.worldSize,r.getNorthEast()),A=Zt(l.worldSize,r.getSouthEast()),I=Zt(l.worldSize,r.getSouthWest()),D=s.ab(-a),F=g.rotate(D),O=b.rotate(D),Z=A.rotate(D),J=I.rotate(D),se=new s.P(Math.max(F.x,O.x,J.x,Z.x),Math.max(F.y,O.y,J.y,Z.y)),ne=new s.P(Math.min(F.x,O.x,J.x,Z.x),Math.min(F.y,O.y,J.y,Z.y)),oe=se.sub(ne),ce=(l.width-(h.left+h.right+e.left+e.right))/oe.x,me=(l.height-(h.top+h.bottom+e.top+e.bottom))/oe.y;if(me<0||ce<0)return void pi();const fe=Math.min(s.ah(l.scale*Math.min(ce,me)),u.maxZoom),ge=s.P.convert(u.offset),be=new s.P((e.left-e.right)/2,(e.top-e.bottom)/2).rotate(s.ab(a)),ye=ge.add(be).mult(l.scale/s.ac(fe));return{center:jr(l.worldSize,g.add(A).div(2).sub(ye)),zoom:fe,bearing:a}}class Ys{get useGlobeControls(){return!1}handlePanInertia(e,r){return{easingOffset:e,easingCenter:r.center}}handleMapControlsRollPitchBearingZoom(e,r){e.bearingDelta&&r.setBearing(r.bearing+e.bearingDelta),e.pitchDelta&&r.setPitch(r.pitch+e.pitchDelta),e.rollDelta&&r.setRoll(r.roll+e.rollDelta),e.zoomDelta&&r.setZoom(r.zoom+e.zoomDelta)}handleMapControlsPan(e,r,a){e.around.distSqr(r.centerPoint)<.01||r.setLocationAtPoint(a,e.around)}cameraForBoxAndBearing(e,r,a,l,h){return vi(e,r,a,l,h)}handleJumpToCenterZoom(e,r){e.zoom!==(r.zoom!==void 0?+r.zoom:e.zoom)&&e.setZoom(+r.zoom),r.center!==void 0&&e.setCenter(s.Q.convert(r.center))}handleEaseTo(e,r){const a=e.zoom,l=e.padding,h={roll:e.roll,pitch:e.pitch,bearing:e.bearing},g={roll:r.roll===void 0?e.roll:r.roll,pitch:r.pitch===void 0?e.pitch:r.pitch,bearing:r.bearing===void 0?e.bearing:r.bearing},b=r.zoom!==void 0,A=!e.isPaddingEqual(r.padding);let I=!1;const D=b?+r.zoom:e.zoom;let F=e.centerPoint.add(r.offsetAsPoint);const O=e.screenPointToLocation(F),{center:Z,zoom:J}=e.getConstrained(s.Q.convert(r.center||O),D??a);fs(e,Z);const se=Zt(e.worldSize,O),ne=Zt(e.worldSize,Z).sub(se),oe=s.ac(J-a);return I=J!==a,{easeFunc:ce=>{if(I&&e.setZoom(s.B.number(a,J,ce)),s.b6(h,g)||Ei({startEulerAngles:h,endEulerAngles:g,tr:e,k:ce,useSlerp:h.roll!=g.roll}),A&&(e.interpolatePadding(l,r.padding,ce),F=e.centerPoint.add(r.offsetAsPoint)),r.around)e.setLocationAtPoint(r.around,r.aroundPoint);else{const me=s.ac(e.zoom-a),fe=J>a?Math.min(2,oe):Math.max(.5,oe),ge=Math.pow(fe,1-ce),be=jr(e.worldSize,se.add(ne.mult(ce*ge)).mult(me));e.setLocationAtPoint(e.renderWorldCopies?be.wrap():be,F)}},isZooming:I,elevationCenter:Z}}handleFlyTo(e,r){const a=r.zoom!==void 0,l=e.zoom,h=e.getConstrained(s.Q.convert(r.center||r.locationAtOffset),a?+r.zoom:l),g=h.center,b=h.zoom;fs(e,g);const A=Zt(e.worldSize,r.locationAtOffset),I=Zt(e.worldSize,g).sub(A),D=I.mag(),F=s.ac(b-l);let O;if(r.minZoom!==void 0){const Z=Math.min(+r.minZoom,l,b),J=e.getConstrained(g,Z).zoom;O=s.ac(J-l)}return{easeFunc:(Z,J,se,ne)=>{e.setZoom(Z===1?b:l+s.ah(J));const oe=Z===1?g:jr(e.worldSize,A.add(I.mult(se)).mult(J));e.setLocationAtPoint(e.renderWorldCopies?oe.wrap():oe,ne)},scaleOfZoom:F,targetCenter:g,scaleOfMinZoom:O,pixelPathLength:D}}}class Kt{constructor(e,r,a){this.blendFunction=e,this.blendColor=r,this.mask=a}}Kt.Replace=[1,0],Kt.disabled=new Kt(Kt.Replace,s.b7.transparent,[!1,!1,!1,!1]),Kt.unblended=new Kt(Kt.Replace,s.b7.transparent,[!0,!0,!0,!0]),Kt.alphaBlended=new Kt([1,771],s.b7.transparent,[!0,!0,!0,!0]);const br=2305;class Bt{constructor(e,r,a){this.enable=e,this.mode=r,this.frontFace=a}}Bt.disabled=new Bt(!1,1029,br),Bt.backCCW=new Bt(!0,1029,br),Bt.frontCCW=new Bt(!0,1028,br);class vt{constructor(e,r,a){this.func=e,this.mask=r,this.range=a}}vt.ReadOnly=!1,vt.ReadWrite=!0,vt.disabled=new vt(519,vt.ReadOnly,[0,1]);const gs=7680;class Ct{constructor(e,r,a,l,h,g){this.test=e,this.ref=r,this.mask=a,this.fail=l,this.depthFail=h,this.pass=g}}Ct.disabled=new Ct({func:519,mask:0},0,0,gs,gs,gs);const Uo=new WeakMap;function ni(u){var e;if(Uo.has(u))return Uo.get(u);{const r=(e=u.getParameter(u.VERSION))===null||e===void 0?void 0:e.startsWith("WebGL 2.0");return Uo.set(u,r),r}}class sl{get awaitingQuery(){return!!this._readbackQueue}constructor(e){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=e;const r=e.context,a=r.gl;this._texFormat=a.RGBA,this._texType=a.UNSIGNED_BYTE;const l=new s.aI;l.emplaceBack(-1,-1),l.emplaceBack(2,-1),l.emplaceBack(-1,2);const h=new s.aK;h.emplaceBack(0,1,2),this._fullscreenTriangle=new ds(r.createVertexBuffer(l,hi.members),r.createIndexBuffer(h),s.aJ.simpleSegment(0,0,l.length,h.length)),this._resultBuffer=new Uint8Array(4),r.activeTexture.set(a.TEXTURE1);const g=a.createTexture();a.bindTexture(a.TEXTURE_2D,g),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,this._texFormat,this._texWidth,this._texHeight,0,this._texFormat,this._texType,null),this._fbo=r.createFramebuffer(this._texWidth,this._texHeight,!1,!1),this._fbo.colorAttachment.set(g),ni(a)&&(this._pbo=a.createBuffer(),a.bindBuffer(a.PIXEL_PACK_BUFFER,this._pbo),a.bufferData(a.PIXEL_PACK_BUFFER,4,a.STREAM_READ),a.bindBuffer(a.PIXEL_PACK_BUFFER,null))}destroy(){const e=this._cachedRenderContext.context.gl;this._fullscreenTriangle.destroy(),this._fbo.destroy(),e.deleteBuffer(this._pbo),this._fullscreenTriangle=null,this._fbo=null,this._pbo=null,this._resultBuffer=null}updateErrorLoop(e,r){const a=this._updateCount;return this._readbackQueue?a>=this._readbackQueue.frameNumberIssued+this._readbackWaitFrames&&this._tryReadback():a>=this._lastReadbackFrame+this._measureWaitFrames&&this._renderErrorTexture(e,r),this._updateCount++,this._measuredError}_bindFramebuffer(){const e=this._cachedRenderContext.context,r=e.gl;e.activeTexture.set(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this._fbo.colorAttachment.get()),e.bindFramebuffer.set(this._fbo.framebuffer)}_renderErrorTexture(e,r){const a=this._cachedRenderContext.context,l=a.gl;if(this._bindFramebuffer(),a.viewport.set([0,0,this._texWidth,this._texHeight]),a.clear({color:s.b7.transparent}),this._cachedRenderContext.useProgram("projectionErrorMeasurement").draw(a,l.TRIANGLES,vt.disabled,Ct.disabled,Kt.unblended,Bt.disabled,((h,g)=>({u_input:h,u_output_expected:g}))(e,r),null,null,"$clipping",this._fullscreenTriangle.vertexBuffer,this._fullscreenTriangle.indexBuffer,this._fullscreenTriangle.segments),this._pbo&&ni(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 h=l.fenceSync(l.SYNC_GPU_COMMANDS_COMPLETE,0);l.flush(),this._readbackQueue={frameNumberIssued:this._updateCount,sync:h}}else this._readbackQueue={frameNumberIssued:this._updateCount,sync:null}}_tryReadback(){const e=this._cachedRenderContext.context.gl;if(this._pbo&&this._readbackQueue&&ni(e)){const r=e.clientWaitSync(this._readbackQueue.sync,0,0);if(r===e.WAIT_FAILED)return s.w("WebGL2 clientWaitSync failed."),this._readbackQueue=null,void(this._lastReadbackFrame=this._updateCount);if(r===e.TIMEOUT_EXPIRED)return;e.bindBuffer(e.PIXEL_PACK_BUFFER,this._pbo),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,this._resultBuffer,0,4),e.bindBuffer(e.PIXEL_PACK_BUFFER,null)}else this._bindFramebuffer(),e.readPixels(0,0,this._texWidth,this._texHeight,this._texFormat,this._texType,this._resultBuffer);this._readbackQueue=null,this._measuredError=sl._parseRGBA8float(this._resultBuffer),this._lastReadbackFrame=this._updateCount}static _parseRGBA8float(e){let r=0;return r+=e[0]/256,r+=e[1]/65536,r+=e[2]/16777216,e[3]<127&&(r=-r),r/128}}const ol=s.Z/128;function $s(u,e){const r=u.granularity!==void 0?Math.max(u.granularity,1):1,a=r+(u.generateBorders?2:0),l=r+(u.extendToNorthPole||u.generateBorders?1:0)+(u.extendToSouthPole||u.generateBorders?1:0),h=a+1,g=l+1,b=u.generateBorders?-1:0,A=u.generateBorders||u.extendToNorthPole?-1:0,I=r+(u.generateBorders?1:0),D=r+(u.generateBorders||u.extendToSouthPole?1:0),F=h*g,O=a*l*6,Z=h*g>65536;if(Z&&e==="16bit")throw new Error("Granularity is too large and meshes would not fit inside 16 bit vertex indices.");const J=Z||e==="32bit",se=new Int16Array(2*F);let ne=0;for(let me=A;me<=D;me++)for(let fe=b;fe<=I;fe++){let ge=fe/r*s.Z;fe===-1&&(ge=-64),fe===r+1&&(ge=s.Z+ol);let be=me/r*s.Z;me===-1&&(be=u.extendToNorthPole?s.b9:-64),me===r+1&&(be=u.extendToSouthPole?s.ba:s.Z+ol),se[ne++]=ge,se[ne++]=be}const oe=J?new Uint32Array(O):new Uint16Array(O);let ce=0;for(let me=0;me<l;me++)for(let fe=0;fe<a;fe++){const ge=fe+1+me*h,be=fe+(me+1)*h,ye=fe+1+(me+1)*h;oe[ce++]=fe+me*h,oe[ce++]=be,oe[ce++]=ge,oe[ce++]=ge,oe[ce++]=be,oe[ce++]=ye}return{vertices:se.buffer.slice(0),indices:oe.buffer.slice(0),uses32bitIndices:J}}const ys=new s.aH({fill:new s.bb(128,2),line:new s.bb(512,0),tile:new s.bb(128,32),stencil:new s.bb(128,1),circle:3});class eo{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 ui.projectionGlobe}get vertexShaderPreludeCode(){return ui.projectionMercator.vertexSource}get subdivisionGranularity(){return ys}get useGlobeControls(){return!0}get latitudeErrorCorrectionRadians(){return this._errorCorrectionUsable}destroy(){this._errorMeasurement&&this._errorMeasurement.destroy()}updateGPUdependent(e){this._errorMeasurement||(this._errorMeasurement=new sl(e));const r=s.S(this._errorQueryLatitudeDegrees),a=2*Math.atan(Math.exp(Math.PI-r*Math.PI*2))-.5*Math.PI,l=this._errorMeasurement.updateErrorLoop(r,a),h=M.now();l!==this._errorMeasurementLastValue&&(this._errorCorrectionPreviousValue=this._errorCorrectionUsable,this._errorMeasurementLastValue=l,this._errorMeasurementLastChangeTime=h);const g=Math.min(Math.max((h-this._errorMeasurementLastChangeTime)/1e3/.5,0),1);this._errorCorrectionUsable=s.bc(this._errorCorrectionPreviousValue,-this._errorMeasurementLastValue,s.bd(g))}_getMeshKey(e){return`${e.granularity.toString(36)}_${e.generateBorders?"b":""}${e.extendToNorthPole?"n":""}${e.extendToSouthPole?"s":""}`}getMeshFromTileID(e,r,a,l,h){const g=(h==="stencil"?ys.stencil:ys.tile).getGranularityForZoomLevel(r.z);return this._getMesh(e,{granularity:g,generateBorders:a,extendToNorthPole:r.y===0&&l,extendToSouthPole:r.y===(1<<r.z)-1&&l})}_getMesh(e,r){const a=this._getMeshKey(r);if(a in this._tileMeshCache)return this._tileMeshCache[a];const l=function(h,g){const b=$s(g,"16bit"),A=s.aI.deserialize({arrayBuffer:b.vertices,length:b.vertices.byteLength/2/2}),I=s.aK.deserialize({arrayBuffer:b.indices,length:b.indices.byteLength/2/3});return new ds(h.createVertexBuffer(A,hi.members),h.createIndexBuffer(I),s.aJ.simpleSegment(0,0,A.length,I.length))}(e,r);return this._tileMeshCache[a]=l,l}recalculate(e){}hasTransition(){const e=M.now();let r=!1;return r=r||(e-this._errorMeasurementLastChangeTime)/1e3<.7,r=r||this._errorMeasurement&&this._errorMeasurement.awaitingQuery,r}setErrorQueryLatitudeDegrees(e){this._errorQueryLatitudeDegrees=e}}const al=new s.r({type:new s.D(s.v.projection.type)});class jo extends s.E{constructor(e){super(),this._transitionable=new s.T(al),this.setProjection(e),this._transitioning=this._transitionable.untransitioned(),this.recalculate(new s.C(0)),this._mercatorProjection=new Xs,this._verticalPerspectiveProjection=new eo}get transitionState(){const e=this.properties.get("type");if(typeof e=="string"&&e==="mercator")return 0;if(typeof e=="string"&&e==="vertical-perspective")return 1;if(e instanceof s.be){if(e.from==="vertical-perspective"&&e.to==="mercator")return 1-e.transition;if(e.from==="mercator"&&e.to==="vertical-perspective")return e.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(e){this._mercatorProjection.updateGPUdependent(e),this._verticalPerspectiveProjection.updateGPUdependent(e)}getMeshFromTileID(e,r,a,l,h){return this.currentProjection.getMeshFromTileID(e,r,a,l,h)}setProjection(e){this._transitionable.setValue("type",(e==null?void 0:e.type)||"mercator")}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()||this.currentProjection.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}setErrorQueryLatitudeDegrees(e){this._verticalPerspectiveProjection.setErrorQueryLatitudeDegrees(e),this._mercatorProjection.setErrorQueryLatitudeDegrees(e)}}function to(u){const e=Xn(u.worldSize,u.center.lat);return 2*Math.PI*e}function Jn(u,e,r,a,l){const h=1/(1<<l),g=e/s.Z*h+a*h,b=s.bg((u/s.Z*h+r*h)*Math.PI*2+Math.PI,2*Math.PI),A=2*Math.atan(Math.exp(Math.PI-g*Math.PI*2))-.5*Math.PI,I=Math.cos(A),D=new Float64Array(3);return D[0]=Math.sin(b)*I,D[1]=Math.sin(A),D[2]=Math.cos(b)*I,D}function Hr(u){return function(e,r){const a=Math.cos(r),l=new Float64Array(3);return l[0]=Math.sin(e)*a,l[1]=Math.sin(r),l[2]=Math.cos(e)*a,l}(u.lng*Math.PI/180,u.lat*Math.PI/180)}function Xn(u,e){return u/(2*Math.PI)/Math.cos(e*Math.PI/180)}function ro(u){const e=Math.asin(u[1])/Math.PI*180,r=Math.sqrt(u[0]*u[0]+u[2]*u[2]);if(r>1e-6){const a=u[0]/r,l=Math.acos(u[2]/r),h=(a>0?l:-l)/Math.PI*180;return new s.Q(s.aL(h,-180,180),e)}return new s.Q(0,e)}function Cn(u){return Math.cos(u*Math.PI/180)}function Wr(u,e){const r=Cn(u),a=Cn(e);return s.ah(a/r)}function Ho(u,e){const r=u.rotate(e.bearingInRadians),a=e.zoom+Wr(e.center.lat,0),l=s.bc(1/Cn(e.center.lat),1/Cn(Math.min(Math.abs(e.center.lat),60)),s.bf(a,7,3,0,1)),h=360/to({worldSize:e.worldSize,center:{lat:e.center.lat}});return new s.Q(e.center.lng-r.x*h*l,s.ae(e.center.lat+r.y*h,-85.051129,s.af))}function Wo(u){const e=.5*u,r=Math.sin(e),a=Math.cos(e);return Math.log(r+a)-Math.log(a-r)}function uu(u,e,r,a){const l=u.lat+r*a;if(Math.abs(r)>1){const h=(Math.sign(u.lat+r)!==Math.sign(u.lat)?-Math.abs(u.lat):Math.abs(u.lat))*Math.PI/180,g=Math.abs(u.lat+r)*Math.PI/180,b=Wo(h+a*(g-h)),A=Wo(h),I=Wo(g);return new s.Q(u.lng+e*((b-A)/(I-A)),l)}return new s.Q(u.lng+e*a,l)}class tp{constructor(e){this._cachePrevious=new Map,this._cache=new Map,this._hadAnyChanges=!1,this._aabbFactory=e}recalculateCache(){if(!this._hadAnyChanges)return;const e=this._cachePrevious;this._cachePrevious=this._cache,this._cache=e,this._cache.clear(),this._hadAnyChanges=!1}getTileAABB(e,r,a,l){const h=`${e.z}_${e.x}_${e.y}`,g=this._cache.get(h);if(g)return g;const b=this._cachePrevious.get(h);if(b)return this._cache.set(h,b),b;const A=this._aabbFactory(e,r,a,l);return this._cache.set(h,A),this._hadAnyChanges=!0,A}}function si(u,e,r){const a=u-e;return a<0?-a:Math.max(0,a-r)}function io(u,e,r,a,l){const h=u-r;let g;return g=h<0?Math.min(-h,1+h-l):h>1?Math.min(Math.max(h-l,0),1-h):0,Math.max(g,si(e,a,l))}class nn{constructor(){this._aabbCache=new tp(this._computeTileAABB)}recalculateCache(){this._aabbCache.recalculateCache()}distanceToTile2d(e,r,a,l){const h=1<<a.z,g=1/h,b=a.x/h,A=a.y/h;let I=2;return I=Math.min(I,io(e,r,b,A,g)),I=Math.min(I,io(e,r,b+.5,-A-g,g)),I=Math.min(I,io(e,r,b+.5,2-A-g,g)),I}getWrap(e,r,a){const l=1<<r.z,h=1/l,g=r.x/l,b=si(e.x,g,h),A=si(e.x,g-1,h),I=si(e.x,g+1,h),D=Math.min(b,A,I);return D===I?1:D===A?-1:0}allowVariableZoom(e,r){return Ee(e,r)>4}allowWorldCopies(){return!1}getTileAABB(e,r,a,l){return this._aabbCache.getTileAABB(e,r,a,l)}_computeTileAABB(e,r,a,l){if(e.z<=0)return new Pr([-1,-1,-1],[1,1,1]);if(e.z===1)return new Pr([e.x===0?-1:0,e.y===0?0:-1,-1],[e.x===0?0:1,e.y===0?1:0,1]);{const h=[Jn(0,0,e.x,e.y,e.z),Jn(s.Z,0,e.x,e.y,e.z),Jn(s.Z,s.Z,e.x,e.y,e.z),Jn(0,s.Z,e.x,e.y,e.z)],g=[1,1,1],b=[-1,-1,-1];for(const A of h)for(let I=0;I<3;I++)g[I]=Math.min(g[I],A[I]),b[I]=Math.max(b[I],A[I]);if(e.y===0||e.y===(1<<e.z)-1){const A=[0,e.y===0?1:-1,0];for(let I=0;I<3;I++)g[I]=Math.min(g[I],A[I]),b[I]=Math.max(b[I],A[I])}return new Pr(g,b)}}}class Qn{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(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,r,a){return this._helper.interpolatePadding(e,r,a)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,r){this._helper.resize(e,r)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,r){this._helper.overrideNearFarZ(e,r)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}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 nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}setTransitionState(e){}constructor(){this._cachedClippingPlane=s.bk(),this._projectionMatrix=s.b1(),this._globeViewProjMatrix32f=s.b0(),this._globeViewProjMatrixNoCorrection=s.b1(),this._globeViewProjMatrixNoCorrectionInverted=s.b1(),this._globeProjMatrixInverted=s.b1(),this._cameraPosition=s.bh(),this._globeLatitudeErrorCorrectionRadians=0,this._helper=new Qr({calcMatrices:()=>{this._calcMatrices()},getConstrained:(e,r)=>this.getConstrained(e,r)}),this._coveringTilesDetailsProvider=new nn}clone(){const e=new Qn;return e.apply(this),e}apply(e,r){this._globeLatitudeErrorCorrectionRadians=r||0,this._helper.apply(e)}get projectionMatrix(){return this._projectionMatrix}get modelViewProjectionMatrix(){return this._globeViewProjMatrixNoCorrection}get inverseProjectionMatrix(){return this._globeProjMatrixInverted}get cameraPosition(){const e=s.bh();return e[0]=this._cameraPosition[0],e[1]=this._cameraPosition[1],e[2]=this._cameraPosition[2],e}get cameraToCenterDistance(){return this._helper.cameraToCenterDistance}getProjectionData(e){const{overscaledTileID:r,applyGlobeMatrix:a}=e,l=this._helper.getMercatorTileCoordinates(r);return{mainMatrix:this._globeViewProjMatrix32f,tileMercatorCoords:l,clippingPlane:this._cachedClippingPlane,projectionTransition:a?1:0,fallbackMatrix:this._globeViewProjMatrix32f}}_computeClippingPlane(e){const r=this.pitchInRadians,a=this.cameraToCenterDistance/e,l=Math.sin(r)*a,h=Math.cos(r)*a+1,g=1/Math.sqrt(l*l+h*h)*1;let b=-l,A=h;const I=Math.sqrt(b*b+A*A);b/=I,A/=I;const D=[0,b,A];s.bl(D,D,[0,0,0],-this.bearingInRadians),s.bm(D,D,[0,0,0],-1*this.center.lat*Math.PI/180),s.bn(D,D,[0,0,0],this.center.lng*Math.PI/180);const F=1/s.bo(D);return s.aO(D,D,F),[...D,-g*F]}isLocationOccluded(e){return!this.isSurfacePointVisible(Hr(e))}transformLightDirection(e){const r=this._helper._center.lng*Math.PI/180,a=this._helper._center.lat*Math.PI/180,l=Math.cos(a),h=[Math.sin(r)*l,Math.sin(a),Math.cos(r)*l],g=[h[2],0,-h[0]],b=[0,0,0];s.aU(b,g,h),s.aT(g,g),s.aT(b,b);const A=[0,0,0];return s.aT(A,[g[0]*e[0]+b[0]*e[1]+h[0]*e[2],g[1]*e[0]+b[1]*e[1]+h[1]*e[2],g[2]*e[0]+b[2]*e[1]+h[2]*e[2]]),A}getPixelScale(){return 1/Math.cos(this._helper._center.lat*Math.PI/180)}getCircleRadiusCorrection(){return Math.cos(this._helper._center.lat*Math.PI/180)}getPitchedTextCorrection(e,r,a){const l=function(b,A,I){const D=1/(1<<I.z);return new s.$(b/s.Z*D+I.x*D,A/s.Z*D+I.y*D)}(e,r,a.canonical),h=(g=l.y,[s.bg(l.x*Math.PI*2+Math.PI,2*Math.PI),2*Math.atan(Math.exp(Math.PI-g*Math.PI*2))-.5*Math.PI]);var g;return this.getCircleRadiusCorrection()/Math.cos(h[1])}projectTileCoordinates(e,r,a,l){const h=a.canonical,g=Jn(e,r,h.x,h.y,h.z),b=1+(l?l(e,r):0)/s.bu,A=[g[0]*b,g[1]*b,g[2]*b,1];s.at(A,A,this._globeViewProjMatrixNoCorrection);const I=this._cachedClippingPlane,D=I[0]*g[0]+I[1]*g[1]+I[2]*g[2]+I[3]<0;return{point:new s.P(A[0]/A[3],A[1]/A[3]),signedDistanceFromCamera:A[3],isOccluded:D}}_calcMatrices(){if(!this._helper._width||!this._helper._height)return;const e=Xn(this.worldSize,this.center.lat),r=s.b2(),a=s.b2();this._helper.autoCalculateNearFarZ&&(this._helper._nearZ=.5,this._helper._farZ=this.cameraToCenterDistance+2*e),s.aY(r,this.fovInRadians,this.width/this.height,this._helper._nearZ,this._helper._farZ);const l=this.centerOffset;r[8]=2*-l.x/this._helper._width,r[9]=2*l.y/this._helper._height,this._projectionMatrix=s.aZ(r),this._globeProjMatrixInverted=s.b2(),s.an(this._globeProjMatrixInverted,r),s.L(r,r,[0,0,-this.cameraToCenterDistance]),s.a_(r,r,this.rollInRadians),s.a$(r,r,-this.pitchInRadians),s.a_(r,r,this.bearingInRadians),s.L(r,r,[0,0,-e]);const h=s.bh();h[0]=e,h[1]=e,h[2]=e,s.a$(a,r,this.center.lat*Math.PI/180),s.bp(a,a,-this.center.lng*Math.PI/180),s.M(a,a,h),this._globeViewProjMatrixNoCorrection=a,s.a$(r,r,this.center.lat*Math.PI/180-this._globeLatitudeErrorCorrectionRadians),s.bp(r,r,-this.center.lng*Math.PI/180),s.M(r,r,h),this._globeViewProjMatrix32f=new Float32Array(r),this._globeViewProjMatrixNoCorrectionInverted=s.b2(),s.an(this._globeViewProjMatrixNoCorrectionInverted,a);const g=s.bh();this._cameraPosition=s.bh(),this._cameraPosition[2]=this.cameraToCenterDistance/e,s.bl(this._cameraPosition,this._cameraPosition,g,-this.rollInRadians),s.bm(this._cameraPosition,this._cameraPosition,g,this.pitchInRadians),s.bl(this._cameraPosition,this._cameraPosition,g,-this.bearingInRadians),s.aP(this._cameraPosition,this._cameraPosition,[0,0,1]),s.bm(this._cameraPosition,this._cameraPosition,g,-this.center.lat*Math.PI/180),s.bn(this._cameraPosition,this._cameraPosition,g,this.center.lng*Math.PI/180),this._cachedClippingPlane=this._computeClippingPlane(e);const b=s.aZ(this._globeViewProjMatrixNoCorrectionInverted);s.M(b,b,[1,1,-1]),this._cachedFrustum=rr.fromInvProjectionMatrix(b)}calculateFogMatrix(e){s.w("calculateFogMatrix is not supported on globe projection.");const r=s.b2();return s.ad(r),r}getVisibleUnwrappedCoordinates(e){return[new s.aW(0,e)]}getCameraFrustum(){return this._cachedFrustum}getClippingPlane(){return this._cachedClippingPlane}getCoveringTilesDetailsProvider(){return this._coveringTilesDetailsProvider}recalculateZoomAndCenter(e){e&&s.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(e,r){if(!this._globeViewProjMatrixNoCorrection)return 1;const a=Hr(e);s.aO(a,a,1+r/s.bu);const l=s.bk();return s.at(l,[a[0],a[1],a[2],1],this._globeViewProjMatrixNoCorrection),l[2]/l[3]}populateCache(e){}getBounds(){const e=.5*this.width,r=.5*this.height,a=[new s.P(0,0),new s.P(e,0),new s.P(this.width,0),new s.P(this.width,r),new s.P(this.width,this.height),new s.P(e,this.height),new s.P(0,this.height),new s.P(0,r)],l=[];for(const F of a)l.push(this.unprojectScreenPoint(F));let h=0,g=0,b=0,A=0;const I=this.center;for(const F of l){const O=s.bq(I.lng,F.lng),Z=s.bq(I.lat,F.lat);O<g&&(g=O),O>h&&(h=O),Z<A&&(A=Z),Z>b&&(b=Z)}const D=[I.lng+g,I.lat+A,I.lng+h,I.lat+b];return this.isSurfacePointOnScreen([0,1,0])&&(D[3]=90,D[0]=-180,D[2]=180),this.isSurfacePointOnScreen([0,-1,0])&&(D[1]=-90,D[0]=-180,D[2]=180),new Xe(D)}getConstrained(e,r){const a=s.ae(e.lat,-85.051129,s.af),l=s.ae(+r,this.minZoom+Wr(0,a),this.maxZoom);return{center:new s.Q(e.lng,a),zoom:l}}calculateCenterFromCameraLngLatAlt(e,r,a,l){return this._helper.calculateCenterFromCameraLngLatAlt(e,r,a,l)}setLocationAtPoint(e,r){const a=Hr(this.unprojectScreenPoint(r)),l=Hr(e),h=s.bh();s.br(h);const g=s.bh();s.bn(g,a,h,-this.center.lng*Math.PI/180),s.bm(g,g,h,this.center.lat*Math.PI/180);const b=l[0]*l[0]+l[2]*l[2],A=g[0]*g[0];if(b<A)return;const I=Math.sqrt(b-A),D=-I,F=s.bs(l[0],l[2],g[0],I),O=s.bs(l[0],l[2],g[0],D),Z=s.bh();s.bn(Z,l,h,-F);const J=s.bs(Z[1],Z[2],g[1],g[2]),se=s.bh();s.bn(se,l,h,-O);const ne=s.bs(se[1],se[2],g[1],g[2]),oe=.5*Math.PI,ce=J>=-oe&&J<=oe,me=ne>=-oe&&ne<=oe;let fe,ge;if(ce&&me){const Oe=this.center.lng*Math.PI/180,Le=this.center.lat*Math.PI/180;s.bv(F,Oe)+s.bv(J,Le)<s.bv(O,Oe)+s.bv(ne,Le)?(fe=F,ge=J):(fe=O,ge=ne)}else if(ce)fe=F,ge=J;else{if(!me)return;fe=O,ge=ne}const be=fe/Math.PI*180,ye=ge/Math.PI*180,Te=this.center.lat;this.setCenter(new s.Q(be,s.ae(ye,-90,90))),this.setZoom(this.zoom+Wr(Te,this.center.lat))}locationToScreenPoint(e,r){const a=Hr(e);if(r){const l=r.getElevationForLngLatZoom(e,this._helper._tileZoom);s.aO(a,a,1+l/s.bu)}return this._projectSurfacePointToScreen(a)}_projectSurfacePointToScreen(e){const r=s.bk();return s.at(r,[...e,1],this._globeViewProjMatrixNoCorrection),r[0]/=r[3],r[1]/=r[3],new s.P((.5*r[0]+.5)*this.width,(.5*-r[1]+.5)*this.height)}screenPointToMercatorCoordinate(e,r){if(r){const a=r.pointCoordinate(e);if(a)return a}return s.$.fromLngLat(this.unprojectScreenPoint(e))}screenPointToLocation(e,r){var a;return(a=this.screenPointToMercatorCoordinate(e,r))===null||a===void 0?void 0:a.toLngLat()}isPointOnMapSurface(e,r){const a=this._cameraPosition,l=this.getRayDirectionFromPixel(e);return!!this.rayPlanetIntersection(a,l)}getRayDirectionFromPixel(e){const r=s.bk();r[0]=e.x/this.width*2-1,r[1]=-1*(e.y/this.height*2-1),r[2]=1,r[3]=1,s.at(r,r,this._globeViewProjMatrixNoCorrectionInverted),r[0]/=r[3],r[1]/=r[3],r[2]/=r[3];const a=s.bh();a[0]=r[0]-this._cameraPosition[0],a[1]=r[1]-this._cameraPosition[1],a[2]=r[2]-this._cameraPosition[2];const l=s.bh();return s.aT(l,a),l}isSurfacePointVisible(e){const r=this._cachedClippingPlane;return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]>=0}isSurfacePointOnScreen(e){if(!this.isSurfacePointVisible(e))return!1;const r=s.bk();return s.at(r,[...e,1],this._globeViewProjMatrixNoCorrection),r[0]/=r[3],r[1]/=r[3],r[2]/=r[3],r[0]>-1&&r[0]<1&&r[1]>-1&&r[1]<1&&r[2]>-1&&r[2]<1}rayPlanetIntersection(e,r){const a=s.aV(e,r),l=s.bh(),h=s.bh();s.aO(h,r,a),s.aS(l,e,h);const g=1-s.aV(l,l);if(g<0)return null;const b=s.aV(e,e)-1,A=-a+(a<0?1:-1)*Math.sqrt(g),I=b/A,D=A;return{tMin:Math.min(I,D),tMax:Math.max(I,D)}}unprojectScreenPoint(e){const r=this._cameraPosition,a=this.getRayDirectionFromPixel(e),l=this.rayPlanetIntersection(r,a);if(l){const D=s.bh();s.aP(D,r,[a[0]*l.tMin,a[1]*l.tMin,a[2]*l.tMin]);const F=s.bh();return s.aT(F,D),ro(F)}const h=this._cachedClippingPlane,g=h[0]*a[0]+h[1]*a[1]+h[2]*a[2],b=-s.bt(h,r)/g,A=s.bh();if(b>0)s.aP(A,r,[a[0]*b,a[1]*b,a[2]*b]);else{const D=s.bh();s.aP(D,r,[2*a[0],2*a[1],2*a[2]]);const F=s.bt(this._cachedClippingPlane,D);s.aS(A,D,[this._cachedClippingPlane[0]*F,this._cachedClippingPlane[1]*F,this._cachedClippingPlane[2]*F])}const I=function(D){const F=s.bh();return F[0]=D[0]*-D[3],F[1]=D[1]*-D[3],F[2]=D[2]*-D[3],{center:F,radius:Math.sqrt(1-D[3]*D[3])}}(h);return ro(function(D,F,O){const Z=s.bh();s.aS(Z,O,D);const J=s.bh();return s.bi(J,D,Z,F/s.bj(Z)),J}(I.center,I.radius,A))}getMatrixForModel(e,r){const a=s.Q.convert(e),l=1/s.bu,h=s.b1();return s.bp(h,h,a.lng/180*Math.PI),s.a$(h,h,-a.lat/180*Math.PI),s.L(h,h,[0,0,1+r/s.bu]),s.a$(h,h,.5*Math.PI),s.M(h,h,[l,l,l]),h}getProjectionDataForCustomLayer(e=!0){const r=this.getProjectionData({overscaledTileID:new s.Y(0,0,0,0,0),applyGlobeMatrix:e});return r.tileMercatorCoords=[0,0,1,1],r}getFastPathSimpleProjectionMatrix(e){}}class no{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(e){this._helper.setMinZoom(e)}setMaxZoom(e){this._helper.setMaxZoom(e)}setMinPitch(e){this._helper.setMinPitch(e)}setMaxPitch(e){this._helper.setMaxPitch(e)}setRenderWorldCopies(e){this._helper.setRenderWorldCopies(e)}setBearing(e){this._helper.setBearing(e)}setPitch(e){this._helper.setPitch(e)}setRoll(e){this._helper.setRoll(e)}setFov(e){this._helper.setFov(e)}setZoom(e){this._helper.setZoom(e)}setCenter(e){this._helper.setCenter(e)}setElevation(e){this._helper.setElevation(e)}setMinElevationForCurrentTile(e){this._helper.setMinElevationForCurrentTile(e)}setPadding(e){this._helper.setPadding(e)}interpolatePadding(e,r,a){return this._helper.interpolatePadding(e,r,a)}isPaddingEqual(e){return this._helper.isPaddingEqual(e)}resize(e,r,a=!0){this._helper.resize(e,r,a)}getMaxBounds(){return this._helper.getMaxBounds()}setMaxBounds(e){this._helper.setMaxBounds(e)}overrideNearFarZ(e,r){this._helper.overrideNearFarZ(e,r)}clearNearFarZOverride(){this._helper.clearNearFarZOverride()}getCameraQueryGeometry(e){return this._helper.getCameraQueryGeometry(this.getCameraPoint(),e)}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 nearZ(){return this._helper.nearZ}get farZ(){return this._helper.farZ}get autoCalculateNearFarZ(){return this._helper.autoCalculateNearFarZ}get isGlobeRendering(){return this._globeness>0}setTransitionState(e,r){this._globeness=e,this._globeLatitudeErrorCorrectionRadians=r,this._calcMatrices(),this._verticalPerspectiveTransform.getCoveringTilesDetailsProvider().recalculateCache(),this._mercatorTransform.getCoveringTilesDetailsProvider().recalculateCache()}get currentTransform(){return this.isGlobeRendering?this._verticalPerspectiveTransform:this._mercatorTransform}constructor(){this._globeLatitudeErrorCorrectionRadians=0,this._globeness=1,this._helper=new Qr({calcMatrices:()=>{this._calcMatrices()},getConstrained:(e,r)=>this.getConstrained(e,r)}),this._globeness=1,this._mercatorTransform=new ms,this._verticalPerspectiveTransform=new Qn}clone(){const e=new no;return e._globeness=this._globeness,e._globeLatitudeErrorCorrectionRadians=this._globeLatitudeErrorCorrectionRadians,e.apply(this),e}apply(e){this._helper.apply(e),this._mercatorTransform.apply(this),this._verticalPerspectiveTransform.apply(this,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(e){const r=this._mercatorTransform.getProjectionData(e),a=this._verticalPerspectiveTransform.getProjectionData(e);return{mainMatrix:this.isGlobeRendering?a.mainMatrix:r.mainMatrix,clippingPlane:a.clippingPlane,tileMercatorCoords:a.tileMercatorCoords,projectionTransition:e.applyGlobeMatrix?this._globeness:0,fallbackMatrix:r.fallbackMatrix}}isLocationOccluded(e){return this.currentTransform.isLocationOccluded(e)}transformLightDirection(e){return this.currentTransform.transformLightDirection(e)}getPixelScale(){return s.bc(this._mercatorTransform.getPixelScale(),this._verticalPerspectiveTransform.getPixelScale(),this._globeness)}getCircleRadiusCorrection(){return s.bc(this._mercatorTransform.getCircleRadiusCorrection(),this._verticalPerspectiveTransform.getCircleRadiusCorrection(),this._globeness)}getPitchedTextCorrection(e,r,a){const l=this._mercatorTransform.getPitchedTextCorrection(e,r,a),h=this._verticalPerspectiveTransform.getPitchedTextCorrection(e,r,a);return s.bc(l,h,this._globeness)}projectTileCoordinates(e,r,a,l){return this.currentTransform.projectTileCoordinates(e,r,a,l)}_calcMatrices(){this._helper._width&&this._helper._height&&(this._verticalPerspectiveTransform.apply(this,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(e){return this.currentTransform.calculateFogMatrix(e)}getVisibleUnwrappedCoordinates(e){return this.currentTransform.getVisibleUnwrappedCoordinates(e)}getCameraFrustum(){return this.currentTransform.getCameraFrustum()}getClippingPlane(){return this.currentTransform.getClippingPlane()}getCoveringTilesDetailsProvider(){return this.currentTransform.getCoveringTilesDetailsProvider()}recalculateZoomAndCenter(e){this._mercatorTransform.recalculateZoomAndCenter(e),this._verticalPerspectiveTransform.recalculateZoomAndCenter(e)}maxPitchScaleFactor(){return this._mercatorTransform.maxPitchScaleFactor()}getCameraPoint(){return this._helper.getCameraPoint()}getCameraAltitude(){return this._helper.getCameraAltitude()}getCameraLngLat(){return this._helper.getCameraLngLat()}lngLatToCameraDepth(e,r){return this.currentTransform.lngLatToCameraDepth(e,r)}populateCache(e){this._mercatorTransform.populateCache(e),this._verticalPerspectiveTransform.populateCache(e)}getBounds(){return this.currentTransform.getBounds()}getConstrained(e,r){return this.currentTransform.getConstrained(e,r)}calculateCenterFromCameraLngLatAlt(e,r,a,l){return this._helper.calculateCenterFromCameraLngLatAlt(e,r,a,l)}setLocationAtPoint(e,r){if(!this.isGlobeRendering)return this._mercatorTransform.setLocationAtPoint(e,r),void this.apply(this._mercatorTransform);this._verticalPerspectiveTransform.setLocationAtPoint(e,r),this.apply(this._verticalPerspectiveTransform)}locationToScreenPoint(e,r){return this.currentTransform.locationToScreenPoint(e,r)}screenPointToMercatorCoordinate(e,r){return this.currentTransform.screenPointToMercatorCoordinate(e,r)}screenPointToLocation(e,r){return this.currentTransform.screenPointToLocation(e,r)}isPointOnMapSurface(e,r){return this.currentTransform.isPointOnMapSurface(e,r)}getRayDirectionFromPixel(e){return this._verticalPerspectiveTransform.getRayDirectionFromPixel(e)}getMatrixForModel(e,r){return this.currentTransform.getMatrixForModel(e,r)}getProjectionDataForCustomLayer(e=!0){const r=this._mercatorTransform.getProjectionDataForCustomLayer(e);if(!this.isGlobeRendering)return r;const a=this._verticalPerspectiveTransform.getProjectionDataForCustomLayer(e);return a.fallbackMatrix=r.mainMatrix,a}getFastPathSimpleProjectionMatrix(e){return this.currentTransform.getFastPathSimpleProjectionMatrix(e)}}class Fi{get useGlobeControls(){return!0}handlePanInertia(e,r){const a=Ho(e,r);return Math.abs(a.lng-r.center.lng)>180&&(a.lng=r.center.lng+179.5*Math.sign(a.lng-r.center.lng)),{easingCenter:a,easingOffset:new s.P(0,0)}}handleMapControlsRollPitchBearingZoom(e,r){const a=e.around,l=r.screenPointToLocation(a);e.bearingDelta&&r.setBearing(r.bearing+e.bearingDelta),e.pitchDelta&&r.setPitch(r.pitch+e.pitchDelta),e.rollDelta&&r.setRoll(r.roll+e.rollDelta);const h=r.zoom;e.zoomDelta&&r.setZoom(r.zoom+e.zoomDelta);const g=r.zoom-h;if(g===0)return;const b=s.bq(r.center.lng,l.lng),A=b/(Math.abs(b/180)+1),I=s.bq(r.center.lat,l.lat),D=r.getRayDirectionFromPixel(a),F=r.cameraPosition,O=-1*s.aV(F,D),Z=s.bh();s.aP(Z,F,[D[0]*O,D[1]*O,D[2]*O]);const J=s.bo(Z)-1,se=Math.exp(.5*-Math.max(J-.3,0)),ne=Xn(r.worldSize,r.center.lat)/Math.min(r.width,r.height),oe=s.bf(ne,.9,.5,1,.25),ce=(1-s.ac(-g))*Math.min(se,oe),me=r.center.lat,fe=r.zoom,ge=new s.Q(r.center.lng+A*ce,s.ae(r.center.lat+I*ce,-85.051129,s.af));r.setLocationAtPoint(l,a);const be=r.center,ye=s.bf(Math.abs(b),45,85,0,1),Te=s.bf(ne,.75,.35,0,1),Oe=Math.pow(Math.max(ye,Te),.25),Le=s.bq(be.lng,ge.lng),Re=s.bq(be.lat,ge.lat);r.setCenter(new s.Q(be.lng+Le*Oe,be.lat+Re*Oe).wrap()),r.setZoom(fe+Wr(me,r.center.lat))}handleMapControlsPan(e,r,a){if(!e.panDelta)return;const l=r.center.lat,h=r.zoom;r.setCenter(Ho(e.panDelta,r).wrap()),r.setZoom(h+Wr(l,r.center.lat))}cameraForBoxAndBearing(e,r,a,l,h){const g=vi(e,r,a,l,h),b=r.left/h.width*2-1,A=(h.width-r.right)/h.width*2-1,I=r.top/h.height*-2+1,D=(h.height-r.bottom)/h.height*-2+1,F=s.bq(a.getWest(),a.getEast())<0,O=F?a.getEast():a.getWest(),Z=F?a.getWest():a.getEast(),J=Math.max(a.getNorth(),a.getSouth()),se=Math.min(a.getNorth(),a.getSouth()),ne=O+.5*s.bq(O,Z),oe=J+.5*s.bq(J,se),ce=h.clone();ce.setCenter(g.center),ce.setBearing(g.bearing),ce.setPitch(0),ce.setRoll(0),ce.setZoom(g.zoom);const me=ce.modelViewProjectionMatrix,fe=[Hr(a.getNorthWest()),Hr(a.getNorthEast()),Hr(a.getSouthWest()),Hr(a.getSouthEast()),Hr(new s.Q(Z,oe)),Hr(new s.Q(O,oe)),Hr(new s.Q(ne,J)),Hr(new s.Q(ne,se))],ge=Hr(g.center);let be=Number.POSITIVE_INFINITY;for(const ye of fe)b<0&&(be=Fi.getLesserNonNegativeNonNull(be,Fi.solveVectorScale(ye,ge,me,"x",b))),A>0&&(be=Fi.getLesserNonNegativeNonNull(be,Fi.solveVectorScale(ye,ge,me,"x",A))),I>0&&(be=Fi.getLesserNonNegativeNonNull(be,Fi.solveVectorScale(ye,ge,me,"y",I))),D<0&&(be=Fi.getLesserNonNegativeNonNull(be,Fi.solveVectorScale(ye,ge,me,"y",D)));if(Number.isFinite(be)&&be!==0)return g.zoom=ce.zoom+s.ah(be),g;pi()}handleJumpToCenterZoom(e,r){const a=e.center.lat,l=e.getConstrained(r.center?s.Q.convert(r.center):e.center,e.zoom).center;e.setCenter(l.wrap());const h=r.zoom!==void 0?+r.zoom:e.zoom+Wr(a,l.lat);e.zoom!==h&&e.setZoom(h)}handleEaseTo(e,r){const a=e.zoom,l=e.center,h=e.padding,g={roll:e.roll,pitch:e.pitch,bearing:e.bearing},b={roll:r.roll===void 0?e.roll:r.roll,pitch:r.pitch===void 0?e.pitch:r.pitch,bearing:r.bearing===void 0?e.bearing:r.bearing},A=r.zoom!==void 0,I=!e.isPaddingEqual(r.padding);let D=!1;const F=r.center?s.Q.convert(r.center):l,O=e.getConstrained(F,a).center;fs(e,O);const Z=e.clone();Z.setCenter(O),Z.setZoom(A?+r.zoom:a+Wr(l.lat,F.lat)),Z.setBearing(r.bearing);const J=new s.P(s.ae(e.centerPoint.x+r.offsetAsPoint.x,0,e.width),s.ae(e.centerPoint.y+r.offsetAsPoint.y,0,e.height));Z.setLocationAtPoint(O,J);const se=(r.offset&&r.offsetAsPoint.mag())>0?Z.center:O,ne=A?+r.zoom:a+Wr(l.lat,se.lat),oe=a+Wr(l.lat,0),ce=ne+Wr(se.lat,0),me=s.bq(l.lng,se.lng),fe=s.bq(l.lat,se.lat),ge=s.ac(ce-oe);return D=ne!==a,{easeFunc:be=>{if(s.b6(g,b)||Ei({startEulerAngles:g,endEulerAngles:b,tr:e,k:be,useSlerp:g.roll!=b.roll}),I&&e.interpolatePadding(h,r.padding,be),r.around)s.w("Easing around a point is not supported under globe projection."),e.setLocationAtPoint(r.around,r.aroundPoint);else{const ye=ce>oe?Math.min(2,ge):Math.max(.5,ge),Te=Math.pow(ye,1-be),Oe=uu(l,me,fe,be*Te);e.setCenter(Oe.wrap())}if(D){const ye=s.B.number(oe,ce,be)+Wr(0,e.center.lat);e.setZoom(ye)}},isZooming:D,elevationCenter:se}}handleFlyTo(e,r){const a=r.zoom!==void 0,l=e.center,h=e.zoom,g=e.padding,b=!e.isPaddingEqual(r.padding),A=e.getConstrained(s.Q.convert(r.center||r.locationAtOffset),h).center,I=a?+r.zoom:e.zoom+Wr(e.center.lat,A.lat),D=e.clone();D.setCenter(A),D.setZoom(I),D.setBearing(r.bearing);const F=new s.P(s.ae(e.centerPoint.x+r.offsetAsPoint.x,0,e.width),s.ae(e.centerPoint.y+r.offsetAsPoint.y,0,e.height));D.setLocationAtPoint(A,F);const O=D.center;fs(e,O);const Z=function(fe,ge,be){const ye=Hr(ge),Te=Hr(be),Oe=s.aV(ye,Te),Le=Math.acos(Oe),Re=to(fe);return Le/(2*Math.PI)*Re}(e,l,O),J=h+Wr(l.lat,0),se=I+Wr(O.lat,0),ne=s.ac(se-J);let oe;if(typeof r.minZoom=="number"){const fe=+r.minZoom+Wr(O.lat,0),ge=Math.min(fe,J,se)+Wr(0,O.lat),be=e.getConstrained(O,ge).zoom+Wr(O.lat,0);oe=s.ac(be-J)}const ce=s.bq(l.lng,O.lng),me=s.bq(l.lat,O.lat);return{easeFunc:(fe,ge,be,ye)=>{const Te=uu(l,ce,me,be);b&&e.interpolatePadding(g,r.padding,fe);const Oe=fe===1?O:Te;e.setCenter(Oe.wrap());const Le=J+s.ah(ge);e.setZoom(fe===1?I:Le+Wr(0,Oe.lat))},scaleOfZoom:ne,targetCenter:O,scaleOfMinZoom:oe,pixelPathLength:Z}}static solveVectorScale(e,r,a,l,h){const g=l==="x"?[a[0],a[4],a[8],a[12]]:[a[1],a[5],a[9],a[13]],b=[a[3],a[7],a[11],a[15]],A=e[0]*g[0]+e[1]*g[1]+e[2]*g[2],I=e[0]*b[0]+e[1]*b[1]+e[2]*b[2],D=r[0]*g[0]+r[1]*g[1]+r[2]*g[2],F=r[0]*b[0]+r[1]*b[1]+r[2]*b[2];return D+h*I===A+h*F||b[3]*(A-D)+g[3]*(F-I)+A*F==D*I?null:(D+g[3]-h*F-h*b[3])/(D-A-h*F+h*I)}static getLesserNonNegativeNonNull(e,r){return r!==null&&r>=0&&r<e?r:e}}class Yn{constructor(e){this._globe=e,this._mercatorCameraHelper=new Ys,this._verticalPerspectiveCameraHelper=new Fi}get useGlobeControls(){return this._globe.useGlobeRendering}get currentHelper(){return this.useGlobeControls?this._verticalPerspectiveCameraHelper:this._mercatorCameraHelper}handlePanInertia(e,r){return this.currentHelper.handlePanInertia(e,r)}handleMapControlsRollPitchBearingZoom(e,r){return this.currentHelper.handleMapControlsRollPitchBearingZoom(e,r)}handleMapControlsPan(e,r,a){this.currentHelper.handleMapControlsPan(e,r,a)}cameraForBoxAndBearing(e,r,a,l,h){return this.currentHelper.cameraForBoxAndBearing(e,r,a,l,h)}handleJumpToCenterZoom(e,r){this.currentHelper.handleJumpToCenterZoom(e,r)}handleEaseTo(e,r){return this.currentHelper.handleEaseTo(e,r)}handleFlyTo(e,r){return this.currentHelper.handleFlyTo(e,r)}}const Zo=(u,e)=>s.x(u,e&&e.filter(r=>r.identifier!=="source.canvas")),rp=s.bw();class ll extends s.E{constructor(e,r={}){super(),this._rtlPluginLoaded=()=>{for(const a in this.sourceCaches){const l=this.sourceCaches[a].getSource().type;l!=="vector"&&l!=="geojson"||this.sourceCaches[a].reload()}},this.map=e,this.dispatcher=new ii(tn(),e._getMapId()),this.dispatcher.registerMessageHandler("GG",(a,l)=>this.getGlyphs(a,l)),this.dispatcher.registerMessageHandler("GI",(a,l)=>this.getImages(a,l)),this.imageManager=new rt,this.imageManager.setEventedParent(this),this.glyphManager=new It(e._requestManager,r.localIdeographFontFamily),this.lineAtlas=new Ur(256,512),this.crossTileSymbolIndex=new Js,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new s.bx,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("SR",s.by()),_t().on(rn,this._rtlPluginLoaded),this.on("data",a=>{if(a.dataType!=="source"||a.sourceDataType!=="metadata")return;const l=this.sourceCaches[a.sourceId];if(!l)return;const h=l.getSource();if(h&&h.vectorLayerIds)for(const g in this._layers){const b=this._layers[g];b.source===h.id&&this._validateLayer(b)}})}loadURL(e,r={},a){this.fire(new s.l("dataloading",{dataType:"style"})),r.validate=typeof r.validate!="boolean"||r.validate;const l=this.map._requestManager.transformRequest(e,"Style");this._loadStyleRequest=new AbortController;const h=this._loadStyleRequest;s.j(l,this._loadStyleRequest).then(g=>{this._loadStyleRequest=null,this._load(g.data,r,a)}).catch(g=>{this._loadStyleRequest=null,g&&!h.signal.aborted&&this.fire(new s.k(g))})}loadJSON(e,r={},a){this.fire(new s.l("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,M.frameAsync(this._frameRequest).then(()=>{this._frameRequest=null,r.validate=r.validate!==!1,this._load(e,r,a)}).catch(()=>{})}loadEmpty(){this.fire(new s.l("dataloading",{dataType:"style"})),this._load(rp,{validate:!1})}_load(e,r,a){var l,h;const g=r.transformStyle?r.transformStyle(a,e):e;if(!r.validate||!Zo(this,s.y(g))){this._loaded=!0,this.stylesheet=g;for(const b in g.sources)this.addSource(b,g.sources[b],{validate:!1});g.sprite?this._loadSprite(g.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(g.glyphs),this._createLayers(),this.light=new Ai(this.stylesheet.light),this._setProjectionInternal(((l=this.stylesheet.projection)===null||l===void 0?void 0:l.type)||"mercator"),this.sky=new en(this.stylesheet.sky),this.map.setTerrain((h=this.stylesheet.terrain)!==null&&h!==void 0?h:null),this.fire(new s.l("data",{dataType:"style"})),this.fire(new s.l("style.load"))}}_createLayers(){const e=s.bz(this.stylesheet.layers);this.dispatcher.broadcast("SL",e),this._order=e.map(r=>r.id),this._layers={},this._serializedLayers=null;for(const r of e){const a=s.bA(r);a.setEventedParent(this,{layer:{id:r.id}}),this._layers[r.id]=a}}_loadSprite(e,r=!1,a=void 0){let l;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(h,g,b,A){return s._(this,void 0,void 0,function*(){const I=Pe(h),D=b>1?"@2x":"",F={},O={};for(const{id:Z,url:J}of I){const se=g.transformRequest(De(J,D,".json"),"SpriteJSON");F[Z]=s.j(se,A);const ne=g.transformRequest(De(J,D,".png"),"SpriteImage");O[Z]=ee.getImage(ne,A)}return yield Promise.all([...Object.values(F),...Object.values(O)]),function(Z,J){return s._(this,void 0,void 0,function*(){const se={};for(const ne in Z){se[ne]={};const oe=M.getImageCanvasContext((yield J[ne]).data),ce=(yield Z[ne]).data;for(const me in ce){const{width:fe,height:ge,x:be,y:ye,sdf:Te,pixelRatio:Oe,stretchX:Le,stretchY:Re,content:ze,textFitWidth:Ye,textFitHeight:Qe}=ce[me];se[ne][me]={data:null,pixelRatio:Oe,sdf:Te,stretchX:Le,stretchY:Re,content:ze,textFitWidth:Ye,textFitHeight:Qe,spriteData:{width:fe,height:ge,x:be,y:ye,context:oe}}}}return se})}(F,O)})}(e,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(h=>{if(this._spriteRequest=null,h)for(const g in h){this._spritesImagesIds[g]=[];const b=this._spritesImagesIds[g]?this._spritesImagesIds[g].filter(A=>!(A in h)):[];for(const A of b)this.imageManager.removeImage(A),this._changedImages[A]=!0;for(const A in h[g]){const I=g==="default"?A:`${g}:${A}`;this._spritesImagesIds[g].push(I),I in this.imageManager.images?this.imageManager.updateImage(I,h[g][A],!1):this.imageManager.addImage(I,h[g][A]),r&&(this._changedImages[I]=!0)}}}).catch(h=>{this._spriteRequest=null,l=h,this.fire(new s.k(l))}).finally(()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),r&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"})),a&&a(l)})}_unloadSprite(){for(const e of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(e),this._changedImages[e]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}_validateLayer(e){const r=this.sourceCaches[e.source];if(!r)return;const a=e.sourceLayer;if(!a)return;const l=r.getSource();(l.type==="geojson"||l.vectorLayerIds&&l.vectorLayerIds.indexOf(a)===-1)&&this.fire(new s.k(new Error(`Source layer "${a}" does not exist on source "${l.id}" as specified by style layer "${e.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const e in this.sourceCaches)if(!this.sourceCaches[e].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(e,r=!1){const a=this._serializedAllLayers();if(!e||e.length===0)return Object.values(r?s.bB(a):a);const l=[];for(const h of e)if(a[h]){const g=r?s.bB(a[h]):a[h];l.push(g)}return l}_serializedAllLayers(){let e=this._serializedLayers;if(e)return e;e=this._serializedLayers={};const r=Object.keys(this._layers);for(const a of r){const l=this._layers[a];l.type!=="custom"&&(e[a]=l.serialize())}return e}hasTransitions(){var e,r,a;if(!((e=this.light)===null||e===void 0)&&e.hasTransition()||!((r=this.sky)===null||r===void 0)&&r.hasTransition()||!((a=this.projection)===null||a===void 0)&&a.hasTransition())return!0;for(const l in this.sourceCaches)if(this.sourceCaches[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(e){if(!this._loaded)return;const r=this._changed;if(r){const l=Object.keys(this._updatedLayers),h=Object.keys(this._removedLayers);(l.length||h.length)&&this._updateWorkerLayers(l,h);for(const g in this._updatedSources){const b=this._updatedSources[g];if(b==="reload")this._reloadSource(g);else{if(b!=="clear")throw new Error(`Invalid action ${b}`);this._clearSource(g)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const g in this._updatedPaintProps)this._layers[g].updateTransitions(e);this.light.updateTransitions(e),this.sky.updateTransitions(e),this._resetUpdates()}const a={};for(const l in this.sourceCaches){const h=this.sourceCaches[l];a[l]=h.used,h.used=!1}for(const l of this._order){const h=this._layers[l];h.recalculate(e,this._availableImages),!h.isHidden(e.zoom)&&h.source&&(this.sourceCaches[h.source].used=!0)}for(const l in a){const h=this.sourceCaches[l];!!a[l]!=!!h.used&&h.fire(new s.l("data",{sourceDataType:"visibility",dataType:"source",sourceId:l}))}this.light.recalculate(e),this.sky.recalculate(e),this.projection.recalculate(e),this.z=e.zoom,r&&this.fire(new s.l("data",{dataType:"style"}))}_updateTilesForChangedImages(){const e=Object.keys(this._changedImages);if(e.length){for(const r in this.sourceCaches)this.sourceCaches[r].reloadTilesForDependencies(["icons","patterns"],e);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(e,r){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(e,!1),removedIds:r})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(e,r={}){var a;this._checkLoaded();const l=this.serialize();if(e=r.transformStyle?r.transformStyle(l,e):e,((a=r.validate)===null||a===void 0||a)&&Zo(this,s.y(e)))return!1;(e=s.bB(e)).layers=s.bz(e.layers);const h=s.bC(l,e),g=this._getOperationsToPerform(h);if(g.unimplemented.length>0)throw new Error(`Unimplemented: ${g.unimplemented.join(", ")}.`);if(g.operations.length===0)return!1;for(const b of g.operations)b();return this.stylesheet=e,this._serializedLayers=null,!0}_getOperationsToPerform(e){const r=[],a=[];for(const l of e)switch(l.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":case"setRoll":continue;case"addLayer":r.push(()=>this.addLayer.apply(this,l.args));break;case"removeLayer":r.push(()=>this.removeLayer.apply(this,l.args));break;case"setPaintProperty":r.push(()=>this.setPaintProperty.apply(this,l.args));break;case"setLayoutProperty":r.push(()=>this.setLayoutProperty.apply(this,l.args));break;case"setFilter":r.push(()=>this.setFilter.apply(this,l.args));break;case"addSource":r.push(()=>this.addSource.apply(this,l.args));break;case"removeSource":r.push(()=>this.removeSource.apply(this,l.args));break;case"setLayerZoomRange":r.push(()=>this.setLayerZoomRange.apply(this,l.args));break;case"setLight":r.push(()=>this.setLight.apply(this,l.args));break;case"setGeoJSONSourceData":r.push(()=>this.setGeoJSONSourceData.apply(this,l.args));break;case"setGlyphs":r.push(()=>this.setGlyphs.apply(this,l.args));break;case"setSprite":r.push(()=>this.setSprite.apply(this,l.args));break;case"setTerrain":r.push(()=>this.map.setTerrain.apply(this,l.args));break;case"setSky":r.push(()=>this.setSky.apply(this,l.args));break;case"setProjection":this.setProjection.apply(this,l.args);break;case"setTransition":r.push(()=>{});break;default:a.push(l.command)}return{operations:r,unimplemented:a}}addImage(e,r){if(this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" already exists.`)));this.imageManager.addImage(e,r),this._afterImageUpdated(e)}updateImage(e,r){this.imageManager.updateImage(e,r)}getImage(e){return this.imageManager.getImage(e)}removeImage(e){if(!this.getImage(e))return this.fire(new s.k(new Error(`An image named "${e}" does not exist.`)));this.imageManager.removeImage(e),this._afterImageUpdated(e)}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,r,a={}){if(this._checkLoaded(),this.sourceCaches[e]!==void 0)throw new Error(`Source "${e}" already exists.`);if(!r.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(r).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(s.y.source,`sources.${e}`,r,null,a))return;this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);const l=this.sourceCaches[e]=new ke(e,r,this.dispatcher);l.style=this,l.setEventedParent(this,()=>({isSourceLoaded:l.loaded(),source:l.serialize(),sourceId:e})),l.onAdd(this.map),this._changed=!0}removeSource(e){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error("There is no source with this ID");for(const a in this._layers)if(this._layers[a].source===e)return this.fire(new s.k(new Error(`Source "${e}" cannot be removed while layer "${a}" is using it.`)));const r=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],r.fire(new s.l("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),r.setEventedParent(null),r.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(e,r){if(this._checkLoaded(),this.sourceCaches[e]===void 0)throw new Error(`There is no source with this ID=${e}`);const a=this.sourceCaches[e].getSource();if(a.type!=="geojson")throw new Error(`geojsonSource.type is ${a.type}, which is !== 'geojson`);a.setData(r),this._changed=!0}getSource(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()}addLayer(e,r,a={}){this._checkLoaded();const l=e.id;if(this.getLayer(l))return void this.fire(new s.k(new Error(`Layer "${l}" already exists on this map.`)));let h;if(e.type==="custom"){if(Zo(this,s.bD(e)))return;h=s.bA(e)}else{if("source"in e&&typeof e.source=="object"&&(this.addSource(l,e.source),e=s.bB(e),e=s.e(e,{source:l})),this._validate(s.y.layer,`layers.${l}`,e,{arrayIndex:-1},a))return;h=s.bA(e),this._validateLayer(h),h.setEventedParent(this,{layer:{id:l}})}const g=r?this._order.indexOf(r):this._order.length;if(r&&g===-1)this.fire(new s.k(new Error(`Cannot add layer "${l}" before non-existing layer "${r}".`)));else{if(this._order.splice(g,0,l),this._layerOrderChanged=!0,this._layers[l]=h,this._removedLayers[l]&&h.source&&h.type!=="custom"){const b=this._removedLayers[l];delete this._removedLayers[l],b.type!==h.type?this._updatedSources[h.source]="clear":(this._updatedSources[h.source]="reload",this.sourceCaches[h.source].pause())}this._updateLayer(h),h.onAdd&&h.onAdd(this.map)}}moveLayer(e,r){if(this._checkLoaded(),this._changed=!0,!this._layers[e])return void this.fire(new s.k(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));if(e===r)return;const a=this._order.indexOf(e);this._order.splice(a,1);const l=r?this._order.indexOf(r):this._order.length;r&&l===-1?this.fire(new s.k(new Error(`Cannot move layer "${e}" before non-existing layer "${r}".`))):(this._order.splice(l,0,e),this._layerOrderChanged=!0)}removeLayer(e){this._checkLoaded();const r=this._layers[e];if(!r)return void this.fire(new s.k(new Error(`Cannot remove non-existing layer "${e}".`)));r.setEventedParent(null);const a=this._order.indexOf(e);this._order.splice(a,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}getLayer(e){return this._layers[e]}getLayersOrder(){return[...this._order]}hasLayer(e){return e in this._layers}setLayerZoomRange(e,r,a){this._checkLoaded();const l=this.getLayer(e);l?l.minzoom===r&&l.maxzoom===a||(r!=null&&(l.minzoom=r),a!=null&&(l.maxzoom=a),this._updateLayer(l)):this.fire(new s.k(new Error(`Cannot set the zoom range of non-existing layer "${e}".`)))}setFilter(e,r,a={}){this._checkLoaded();const l=this.getLayer(e);if(l){if(!s.bE(l.filter,r))return r==null?(l.filter=void 0,void this._updateLayer(l)):void(this._validate(s.y.filter,`layers.${l.id}.filter`,r,null,a)||(l.filter=s.bB(r),this._updateLayer(l)))}else this.fire(new s.k(new Error(`Cannot filter non-existing layer "${e}".`)))}getFilter(e){return s.bB(this.getLayer(e).filter)}setLayoutProperty(e,r,a,l={}){this._checkLoaded();const h=this.getLayer(e);h?s.bE(h.getLayoutProperty(r),a)||(h.setLayoutProperty(r,a,l),this._updateLayer(h)):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getLayoutProperty(e,r){const a=this.getLayer(e);if(a)return a.getLayoutProperty(r);this.fire(new s.k(new Error(`Cannot get style of non-existing layer "${e}".`)))}setPaintProperty(e,r,a,l={}){this._checkLoaded();const h=this.getLayer(e);h?s.bE(h.getPaintProperty(r),a)||(h.setPaintProperty(r,a,l)&&this._updateLayer(h),this._changed=!0,this._updatedPaintProps[e]=!0,this._serializedLayers=null):this.fire(new s.k(new Error(`Cannot style non-existing layer "${e}".`)))}getPaintProperty(e,r){return this.getLayer(e).getPaintProperty(r)}setFeatureState(e,r){this._checkLoaded();const a=e.source,l=e.sourceLayer,h=this.sourceCaches[a];if(h===void 0)return void this.fire(new s.k(new Error(`The source '${a}' does not exist in the map's style.`)));const g=h.getSource().type;g==="geojson"&&l?this.fire(new s.k(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):g!=="vector"||l?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),h.setFeatureState(l,e.id,r)):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(e,r){this._checkLoaded();const a=e.source,l=this.sourceCaches[a];if(l===void 0)return void this.fire(new s.k(new Error(`The source '${a}' does not exist in the map's style.`)));const h=l.getSource().type,g=h==="vector"?e.sourceLayer:void 0;h!=="vector"||g?r&&typeof e.id!="string"&&typeof e.id!="number"?this.fire(new s.k(new Error("A feature id is required to remove its specific state property."))):l.removeFeatureState(g,e.id,r):this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(e){this._checkLoaded();const r=e.source,a=e.sourceLayer,l=this.sourceCaches[r];if(l!==void 0)return l.getSource().type!=="vector"||a?(e.id===void 0&&this.fire(new s.k(new Error("The feature id parameter must be provided."))),l.getFeatureState(a,e.id)):void this.fire(new s.k(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new s.k(new Error(`The source '${r}' does not exist in the map's style.`)))}getTransition(){return s.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const e=s.bF(this.sourceCaches,h=>h.serialize()),r=this._serializeByIds(this._order,!0),a=this.map.getTerrain()||void 0,l=this.stylesheet;return s.bG({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:e,layers:r,terrain:a},h=>h!==void 0)}_updateLayer(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&this.sourceCaches[e.source].getSource().type!=="raster"&&(this._updatedSources[e.source]="reload",this.sourceCaches[e.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(e){const r=g=>this._layers[g].type==="fill-extrusion",a={},l=[];for(let g=this._order.length-1;g>=0;g--){const b=this._order[g];if(r(b)){a[b]=g;for(const A of e){const I=A[b];if(I)for(const D of I)l.push(D)}}}l.sort((g,b)=>b.intersectionZ-g.intersectionZ);const h=[];for(let g=this._order.length-1;g>=0;g--){const b=this._order[g];if(r(b))for(let A=l.length-1;A>=0;A--){const I=l[A].feature;if(a[I.layer.id]<g)break;h.push(I),l.pop()}else for(const A of e){const I=A[b];if(I)for(const D of I)h.push(D.feature)}}return h}queryRenderedFeatures(e,r,a){r&&r.filter&&this._validate(s.y.filter,"queryRenderedFeatures.filter",r.filter,null,r);const l={};if(r&&r.layers){if(!(Array.isArray(r.layers)||r.layers instanceof Set))return this.fire(new s.k(new Error("parameters.layers must be an Array or a Set of strings"))),[];for(const I of r.layers){const D=this._layers[I];if(!D)return this.fire(new s.k(new Error(`The layer '${I}' does not exist in the map's style and cannot be queried for features.`))),[];l[D.source]=!0}}const h=[];r.availableImages=this._availableImages;const g=this._serializedAllLayers(),b=r.layers instanceof Set?r.layers:Array.isArray(r.layers)?new Set(r.layers):null,A=Object.assign(Object.assign({},r),{layers:b});for(const I in this.sourceCaches)r.layers&&!l[I]||h.push(Un(this.sourceCaches[I],this._layers,g,e,A,a,this.map.terrain?(D,F,O)=>this.map.terrain.getElevation(D,F,O):void 0));return this.placement&&h.push(function(I,D,F,O,Z,J,se){const ne={},oe=J.queryRenderedSymbols(O),ce=[];for(const me of Object.keys(oe).map(Number))ce.push(se[me]);ce.sort(ci);for(const me of ce){const fe=me.featureIndex.lookupSymbolFeatures(oe[me.bucketInstanceId],D,me.bucketIndex,me.sourceLayerIndex,Z.filter,Z.layers,Z.availableImages,I);for(const ge in fe){const be=ne[ge]=ne[ge]||[],ye=fe[ge];ye.sort((Te,Oe)=>{const Le=me.featureSortOrder;if(Le){const Re=Le.indexOf(Te.featureIndex);return Le.indexOf(Oe.featureIndex)-Re}return Oe.featureIndex-Te.featureIndex});for(const Te of ye)be.push(Te)}}return function(me,fe,ge){for(const be in me)for(const ye of me[be])et(ye,ge[fe[be].source]);return me}(ne,I,F)}(this._layers,g,this.sourceCaches,e,A,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(h)}querySourceFeatures(e,r){r&&r.filter&&this._validate(s.y.filter,"querySourceFeatures.filter",r.filter,null,r);const a=this.sourceCaches[e];return a?function(l,h){const g=l.getRenderableIds().map(I=>l.getTileByID(I)),b=[],A={};for(let I=0;I<g.length;I++){const D=g[I],F=D.tileID.canonical.key;A[F]||(A[F]=!0,D.querySourceFeatures(b,h))}return b}(a,r):[]}getLight(){return this.light.getLight()}setLight(e,r={}){this._checkLoaded();const a=this.light.getLight();let l=!1;for(const g in e)if(!s.bE(e[g],a[g])){l=!0;break}if(!l)return;const h={now:M.now(),transition:s.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,r),this.light.updateTransitions(h)}getProjection(){var e;return(e=this.stylesheet)===null||e===void 0?void 0:e.projection}setProjection(e){if(this._checkLoaded(),this.projection){if(this.projection.name===e.type)return;this.projection.destroy(),delete this.projection}this.stylesheet.projection=e,this._setProjectionInternal(e.type)}getSky(){var e;return(e=this.stylesheet)===null||e===void 0?void 0:e.sky}setSky(e,r={}){this._checkLoaded();const a=this.getSky();let l=!1;if(!e&&!a)return;if(e&&!a)l=!0;else if(!e&&a)l=!0;else for(const g in e)if(!s.bE(e[g],a[g])){l=!0;break}if(!l)return;const h={now:M.now(),transition:s.e({duration:300,delay:0},this.stylesheet.transition)};this.stylesheet.sky=e,this.sky.setSky(e,r),this.sky.updateTransitions(h)}_setProjectionInternal(e){const r=function(a){if(Array.isArray(a)){const l=new jo({type:a});return{projection:l,transform:new no,cameraHelper:new Yn(l)}}switch(a){case"mercator":return{projection:new Xs,transform:new ms,cameraHelper:new Ys};case"globe":{const l=new jo({type:["interpolate",["linear"],["zoom"],11,"vertical-perspective",12,"mercator"]});return{projection:l,transform:new no,cameraHelper:new Yn(l)}}case"vertical-perspective":return{projection:new eo,transform:new Qn,cameraHelper:new Fi};default:return s.w(`Unknown projection name: ${a}. Falling back to mercator projection.`),{projection:new Xs,transform:new ms,cameraHelper:new Ys}}}(e);this.projection=r.projection,this.map.migrateProjection(r.transform,r.cameraHelper);for(const a in this.sourceCaches)this.sourceCaches[a].reload()}_validate(e,r,a,l,h={}){return(!h||h.validate!==!1)&&Zo(this,e.call(s.y,s.e({key:r,style:this.serialize(),value:a,styleSpec:s.v},l)))}_remove(e=!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),_t().off(rn,this._rtlPluginLoaded);for(const r in this._layers)this._layers[r].setEventedParent(null);for(const r in this.sourceCaches){const a=this.sourceCaches[r];a.setEventedParent(null),a.onRemove(this.map)}this.imageManager.setEventedParent(null),this.setEventedParent(null),e&&this.dispatcher.broadcast("RM",void 0),this.dispatcher.remove(e)}_clearSource(e){this.sourceCaches[e].clearTiles()}_reloadSource(e){this.sourceCaches[e].resume(),this.sourceCaches[e].reload()}_updateSources(e){for(const r in this.sourceCaches)this.sourceCaches[r].update(e,this.map.terrain)}_generateCollisionBoxes(){for(const e in this.sourceCaches)this._reloadSource(e)}_updatePlacement(e,r,a,l,h=!1){let g=!1,b=!1;const A={};for(const I of this._order){const D=this._layers[I];if(D.type!=="symbol")continue;if(!A[D.source]){const O=this.sourceCaches[D.source];A[D.source]=O.getRenderableIds(!0).map(Z=>O.getTileByID(Z)).sort((Z,J)=>J.tileID.overscaledZ-Z.tileID.overscaledZ||(Z.tileID.isLessThan(J.tileID)?-1:1))}const F=this.crossTileSymbolIndex.addLayer(D,A[D.source],e.center.lng);g=g||F}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((h=h||this._layerOrderChanged||a===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(M.now(),e.zoom))&&(this.pauseablePlacement=new cu(e,this.map.terrain,this._order,h,r,a,l,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,A),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(M.now()),b=!0),g&&this.pauseablePlacement.placement.setStale()),b||g)for(const I of this._order){const D=this._layers[I];D.type==="symbol"&&this.placement.updateLayerOpacities(D,A[D.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(M.now())}_releaseSymbolFadeTiles(){for(const e in this.sourceCaches)this.sourceCaches[e].releaseSymbolFadeTiles()}getImages(e,r){return s._(this,void 0,void 0,function*(){const a=yield this.imageManager.getImages(r.icons);this._updateTilesForChangedImages();const l=this.sourceCaches[r.source];return l&&l.setDependencies(r.tileID.key,r.type,r.icons),a})}getGlyphs(e,r){return s._(this,void 0,void 0,function*(){const a=yield this.glyphManager.getGlyphs(r.stacks),l=this.sourceCaches[r.source];return l&&l.setDependencies(r.tileID.key,r.type,[""]),a})}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,r={}){this._checkLoaded(),e&&this._validate(s.y.glyphs,"glyphs",e,null,r)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e))}addSprite(e,r,a={},l){this._checkLoaded();const h=[{id:e,url:r}],g=[...Pe(this.stylesheet.sprite),...h];this._validate(s.y.sprite,"sprite",g,null,a)||(this.stylesheet.sprite=g,this._loadSprite(h,!0,l))}removeSprite(e){this._checkLoaded();const r=Pe(this.stylesheet.sprite);if(r.find(a=>a.id===e)){if(this._spritesImagesIds[e])for(const a of this._spritesImagesIds[e])this.imageManager.removeImage(a),this._changedImages[a]=!0;r.splice(r.findIndex(a=>a.id===e),1),this.stylesheet.sprite=r.length>0?r:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new s.l("data",{dataType:"style"}))}else this.fire(new s.k(new Error(`Sprite "${e}" doesn't exists on this map.`)))}getSprite(){return Pe(this.stylesheet.sprite)}setSprite(e,r={},a){this._checkLoaded(),e&&this._validate(s.y.sprite,"sprite",e,null,r)||(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,a):(this._unloadSprite(),a&&a(null)))}}var ip=s.aG([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class np{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(e,r,a,l,h,g,b,A,I){this.context=e;let D=this.boundPaintVertexBuffers.length!==l.length;for(let F=0;!D&&F<l.length;F++)this.boundPaintVertexBuffers[F]!==l[F]&&(D=!0);!this.vao||this.boundProgram!==r||this.boundLayoutVertexBuffer!==a||D||this.boundIndexBuffer!==h||this.boundVertexOffset!==g||this.boundDynamicVertexBuffer!==b||this.boundDynamicVertexBuffer2!==A||this.boundDynamicVertexBuffer3!==I?this.freshBind(r,a,l,h,g,b,A,I):(e.bindVertexArray.set(this.vao),b&&b.bind(),h&&h.dynamicDraw&&h.bind(),A&&A.bind(),I&&I.bind())}freshBind(e,r,a,l,h,g,b,A){const I=e.numAttributes,D=this.context,F=D.gl;this.vao&&this.destroy(),this.vao=D.createVertexArray(),D.bindVertexArray.set(this.vao),this.boundProgram=e,this.boundLayoutVertexBuffer=r,this.boundPaintVertexBuffers=a,this.boundIndexBuffer=l,this.boundVertexOffset=h,this.boundDynamicVertexBuffer=g,this.boundDynamicVertexBuffer2=b,this.boundDynamicVertexBuffer3=A,r.enableAttributes(F,e);for(const O of a)O.enableAttributes(F,e);g&&g.enableAttributes(F,e),b&&b.enableAttributes(F,e),A&&A.enableAttributes(F,e),r.bind(),r.setVertexAttribPointers(F,e,h);for(const O of a)O.bind(),O.setVertexAttribPointers(F,e,h);g&&(g.bind(),g.setVertexAttribPointers(F,e,h)),l&&l.bind(),b&&(b.bind(),b.setVertexAttribPointers(F,e,h)),A&&(A.bind(),A.setVertexAttribPointers(F,e,h)),D.currentNumAttributes=I}destroy(){this.vao&&(this.context.deleteVertexArray(this.vao),this.vao=null)}}const sp=(u,e,r,a,l)=>({u_texture:0,u_ele_delta:u,u_fog_matrix:e,u_fog_color:r?r.properties.get("fog-color"):s.b7.white,u_fog_ground_blend:r?r.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:l?0:r?r.calculateFogBlendOpacity(a):0,u_horizon_color:r?r.properties.get("horizon-color"):s.b7.white,u_horizon_fog_blend:r?r.properties.get("horizon-fog-blend"):1,u_is_globe_mode:l?1:0}),Ko={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 _s(u){const e=[];for(let r=0;r<u.length;r++){if(u[r]===null)continue;const a=u[r].split(" ");e.push(a.pop())}return e}class Go{constructor(e,r,a,l,h,g,b,A,I=[]){const D=e.gl;this.program=D.createProgram();const F=_s(r.staticAttributes),O=a?a.getBinderAttributes():[],Z=F.concat(O),J=ui.prelude.staticUniforms?_s(ui.prelude.staticUniforms):[],se=b.staticUniforms?_s(b.staticUniforms):[],ne=r.staticUniforms?_s(r.staticUniforms):[],oe=a?a.getBinderUniforms():[],ce=J.concat(se).concat(ne).concat(oe),me=[];for(const Le of ce)me.indexOf(Le)<0&&me.push(Le);const fe=a?a.defines():[];ni(D)&&fe.unshift("#version 300 es"),h&&fe.push("#define OVERDRAW_INSPECTOR;"),g&&fe.push("#define TERRAIN3D;"),A&&fe.push(A),I&&fe.push(...I);let ge=fe.concat(ui.prelude.fragmentSource,b.fragmentSource,r.fragmentSource).join(`
|
|
738
|
-
`),be=fe.concat(ui.prelude.vertexSource,b.vertexSource,r.vertexSource).join(`
|
|
739
|
-
`);ni(D)||(ge=function(Le){return Le.replace(/\bin\s/g,"varying ").replace("out highp vec4 fragColor;","").replace(/fragColor/g,"gl_FragColor").replace(/texture\(/g,"texture2D(")}(ge),be=function(Le){return Le.replace(/\bin\s/g,"attribute ").replace(/\bout\s/g,"varying ").replace(/texture\(/g,"texture2D(")}(be));const ye=D.createShader(D.FRAGMENT_SHADER);if(D.isContextLost())return void(this.failedToCreate=!0);if(D.shaderSource(ye,ge),D.compileShader(ye),!D.getShaderParameter(ye,D.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${D.getShaderInfoLog(ye)}`);D.attachShader(this.program,ye);const Te=D.createShader(D.VERTEX_SHADER);if(D.isContextLost())return void(this.failedToCreate=!0);if(D.shaderSource(Te,be),D.compileShader(Te),!D.getShaderParameter(Te,D.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${D.getShaderInfoLog(Te)}`);D.attachShader(this.program,Te),this.attributes={};const Oe={};this.numAttributes=Z.length;for(let Le=0;Le<this.numAttributes;Le++)Z[Le]&&(D.bindAttribLocation(this.program,Le,Z[Le]),this.attributes[Z[Le]]=Le);if(D.linkProgram(this.program),!D.getProgramParameter(this.program,D.LINK_STATUS))throw new Error(`Program failed to link: ${D.getProgramInfoLog(this.program)}`);D.deleteShader(Te),D.deleteShader(ye);for(let Le=0;Le<me.length;Le++){const Re=me[Le];if(Re&&!Oe[Re]){const ze=D.getUniformLocation(this.program,Re);ze&&(Oe[Re]=ze)}}this.fixedUniforms=l(e,Oe),this.terrainUniforms=((Le,Re)=>({u_depth:new s.bH(Le,Re.u_depth),u_terrain:new s.bH(Le,Re.u_terrain),u_terrain_dim:new s.b8(Le,Re.u_terrain_dim),u_terrain_matrix:new s.bJ(Le,Re.u_terrain_matrix),u_terrain_unpack:new s.bK(Le,Re.u_terrain_unpack),u_terrain_exaggeration:new s.b8(Le,Re.u_terrain_exaggeration)}))(e,Oe),this.projectionUniforms=((Le,Re)=>({u_projection_matrix:new s.bJ(Le,Re.u_projection_matrix),u_projection_tile_mercator_coords:new s.bK(Le,Re.u_projection_tile_mercator_coords),u_projection_clipping_plane:new s.bK(Le,Re.u_projection_clipping_plane),u_projection_transition:new s.b8(Le,Re.u_projection_transition),u_projection_fallback_matrix:new s.bJ(Le,Re.u_projection_fallback_matrix)}))(e,Oe),this.binderUniforms=a?a.getUniforms(e,Oe):[]}draw(e,r,a,l,h,g,b,A,I,D,F,O,Z,J,se,ne,oe,ce,me){const fe=e.gl;if(this.failedToCreate)return;if(e.program.set(this.program),e.setDepthMode(a),e.setStencilMode(l),e.setColorMode(h),e.setCullFace(g),A){e.activeTexture.set(fe.TEXTURE2),fe.bindTexture(fe.TEXTURE_2D,A.depthTexture),e.activeTexture.set(fe.TEXTURE3),fe.bindTexture(fe.TEXTURE_2D,A.texture);for(const be in this.terrainUniforms)this.terrainUniforms[be].set(A[be])}if(I)for(const be in I)this.projectionUniforms[Ko[be]].set(I[be]);if(b)for(const be in this.fixedUniforms)this.fixedUniforms[be].set(b[be]);ne&&ne.setUniforms(e,this.binderUniforms,J,{zoom:se});let ge=0;switch(r){case fe.LINES:ge=2;break;case fe.TRIANGLES:ge=3;break;case fe.LINE_STRIP:ge=1}for(const be of Z.get()){const ye=be.vaos||(be.vaos={});(ye[D]||(ye[D]=new np)).bind(e,this,F,ne?ne.getPaintVertexBuffers():[],O,be.vertexOffset,oe,ce,me),fe.drawElements(r,be.primitiveLength*ge,fe.UNSIGNED_SHORT,be.primitiveOffset*ge*2)}}}function Jo(u,e,r){const a=1/s.az(r,1,e.transform.tileZoom),l=Math.pow(2,r.tileID.overscaledZ),h=r.tileSize*Math.pow(2,e.transform.tileZoom)/l,g=h*(r.tileID.canonical.x+r.tileID.wrap*l),b=h*r.tileID.canonical.y;return{u_image:0,u_texsize:r.imageAtlasTexture.size,u_scale:[a,u.fromScale,u.toScale],u_fade:u.t,u_pixel_coord_upper:[g>>16,b>>16],u_pixel_coord_lower:[65535&g,65535&b]}}const Xo=(u,e,r,a)=>{const l=u.style.light,h=l.properties.get("position"),g=[h.x,h.y,h.z],b=s.bN();l.properties.get("anchor")==="viewport"&&s.bO(b,u.transform.bearingInRadians),s.bP(g,g,b);const A=u.transform.transformLightDirection(g),I=l.properties.get("color");return{u_lightpos:g,u_lightpos_globe:A,u_lightintensity:l.properties.get("intensity"),u_lightcolor:[I.r,I.g,I.b],u_vertical_gradient:+e,u_opacity:r,u_fill_translate:a}},sn=(u,e,r,a,l,h,g)=>s.e(Xo(u,e,r,a),Jo(h,u,g),{u_height_factor:-Math.pow(2,l.overscaledZ)/g.tileSize/8}),hu=(u,e,r,a)=>s.e(Jo(e,u,r),{u_fill_translate:a}),cl=(u,e)=>({u_world:u,u_fill_translate:e}),so=(u,e,r,a,l)=>s.e(hu(u,e,r,l),{u_world:a}),oo=(u,e,r,a,l)=>{const h=u.transform;let g,b,A=0;if(r.paint.get("circle-pitch-alignment")==="map"){const I=s.az(e,1,h.zoom);g=!0,b=[I,I],A=I/(s.Z*Math.pow(2,e.tileID.overscaledZ))*2*Math.PI*l}else g=!1,b=h.pixelsToGLUnits;return{u_camera_to_center_distance:h.cameraToCenterDistance,u_scale_with_map:+(r.paint.get("circle-pitch-scale")==="map"),u_pitch_with_map:+g,u_device_pixel_ratio:u.pixelRatio,u_extrude_scale:b,u_globe_extrude_scale:A,u_translate:a}},op=u=>({u_pixel_extrude_scale:[1/u.width,1/u.height]}),Qo=u=>({u_viewport_size:[u.width,u.height]}),pu=(u,e=1)=>({u_color:u,u_overlay:0,u_overlay_scale:e}),$n=(u,e,r,a)=>{const l=s.az(u,1,e)/(s.Z*Math.pow(2,u.tileID.overscaledZ))*2*Math.PI*a;return{u_extrude_scale:s.az(u,1,e),u_intensity:r,u_globe_extrude_scale:l}},du=(u,e,r,a)=>{const l=s.K();s.bQ(l,0,u.width,u.height,0,0,1);const h=u.context.gl;return{u_matrix:l,u_world:[h.drawingBufferWidth,h.drawingBufferHeight],u_image:r,u_color_ramp:a,u_opacity:e.paint.get("heatmap-opacity")}},fu=(u,e,r)=>{const a=r.paint.get("hillshade-accent-color");let l;switch(r.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 h=r.getIlluminationProperties();for(let g=0;g<h.directionRadians.length;g++)r.paint.get("hillshade-illumination-anchor")==="viewport"&&(h.directionRadians[g]+=u.transform.bearingInRadians);return{u_image:0,u_latrange:mu(0,e.tileID),u_exaggeration:r.paint.get("hillshade-exaggeration"),u_altitudes:h.altitudeRadians,u_azimuths:h.directionRadians,u_accent:a,u_method:l,u_highlights:h.highlightColor,u_shadows:h.shadowColor}},ap=(u,e)=>{const r=e.stride,a=s.K();return s.bQ(a,0,s.Z,-8192,0,0,1),s.L(a,a,[0,-8192,0]),{u_matrix:a,u_image:1,u_dimension:[r,r],u_zoom:u.overscaledZ,u_unpack:e.getUnpackVector()}};function mu(u,e){const r=Math.pow(2,e.canonical.z),a=e.canonical.y;return[new s.$(0,a/r).toLngLat().lat,new s.$(0,(a+1)/r).toLngLat().lat]}const ao=(u,e,r,a)=>{const l=u.transform;return{u_translation:En(u,e,r),u_ratio:a/s.az(e,1,l.zoom),u_device_pixel_ratio:u.pixelRatio,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]]}},gu=(u,e,r,a,l)=>s.e(ao(u,e,r,a),{u_image:0,u_image_height:l}),yu=(u,e,r,a,l)=>{const h=u.transform,g=ul(e,h);return{u_translation:En(u,e,r),u_texsize:e.imageAtlasTexture.size,u_ratio:a/s.az(e,1,h.zoom),u_device_pixel_ratio:u.pixelRatio,u_image:0,u_scale:[g,l.fromScale,l.toScale],u_fade:l.t,u_units_to_pixels:[1/h.pixelsToGLUnits[0],1/h.pixelsToGLUnits[1]]}},_u=(u,e,r,a,l,h)=>{const g=u.lineAtlas,b=ul(e,u.transform),A=r.layout.get("line-cap")==="round",I=g.getDash(l.from,A),D=g.getDash(l.to,A),F=I.width*h.fromScale,O=D.width*h.toScale;return s.e(ao(u,e,r,a),{u_patternscale_a:[b/F,-I.height/2],u_patternscale_b:[b/O,-D.height/2],u_sdfgamma:g.width/(256*Math.min(F,O)*u.pixelRatio)/2,u_image:0,u_tex_y_a:I.y,u_tex_y_b:D.y,u_mix:h.t})};function ul(u,e){return 1/s.az(u,1,e.tileZoom)}function En(u,e,r){return s.aA(u.transform,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}const xu=(u,e,r,a,l)=>{return{u_tl_parent:u,u_scale_parent:e,u_buffer_scale:1,u_fade_t:r.mix,u_opacity:r.opacity*a.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:a.paint.get("raster-brightness-min"),u_brightness_high:a.paint.get("raster-brightness-max"),u_saturation_factor:(g=a.paint.get("raster-saturation"),g>0?1-1/(1.001-g):-g),u_contrast_factor:(h=a.paint.get("raster-contrast"),h>0?1/(1-h):1+h),u_spin_weights:bu(a.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 h,g};function bu(u){u*=Math.PI/180;const e=Math.sin(u),r=Math.cos(u);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}const xs=(u,e,r,a,l,h,g,b,A,I,D,F,O)=>{const Z=g.transform;return{u_is_size_zoom_constant:+(u==="constant"||u==="source"),u_is_size_feature_constant:+(u==="constant"||u==="camera"),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:Z.cameraToCenterDistance,u_pitch:Z.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:Z.width/Z.height,u_fade_change:g.options.fadeDuration?g.symbolFadeChange:1,u_label_plane_matrix:b,u_coord_matrix:A,u_is_text:+D,u_pitch_with_map:+a,u_is_along_line:l,u_is_variable_anchor:h,u_texsize:F,u_texture:0,u_translation:I,u_pitched_scale:O}},vu=(u,e,r,a,l,h,g,b,A,I,D,F,O,Z)=>{const J=g.transform;return s.e(xs(u,e,r,a,l,h,g,b,A,I,D,F,Z),{u_gamma_scale:a?Math.cos(J.pitch*Math.PI/180)*J.cameraToCenterDistance:1,u_device_pixel_ratio:g.pixelRatio,u_is_halo:1})},Yo=(u,e,r,a,l,h,g,b,A,I,D,F,O)=>s.e(vu(u,e,r,a,l,h,g,b,A,I,!0,D,0,O),{u_texsize_icon:F,u_texture_icon:1}),lp=(u,e)=>({u_opacity:u,u_color:e}),cp=(u,e,r,a,l)=>s.e(function(h,g,b,A){const I=b.imageManager.getPattern(h.from.toString()),D=b.imageManager.getPattern(h.to.toString()),{width:F,height:O}=b.imageManager.getPixelSize(),Z=Math.pow(2,A.tileID.overscaledZ),J=A.tileSize*Math.pow(2,b.transform.tileZoom)/Z,se=J*(A.tileID.canonical.x+A.tileID.wrap*Z),ne=J*A.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:I.tl,u_pattern_br_a:I.br,u_pattern_tl_b:D.tl,u_pattern_br_b:D.br,u_texsize:[F,O],u_mix:g.t,u_pattern_size_a:I.displaySize,u_pattern_size_b:D.displaySize,u_scale_a:g.fromScale,u_scale_b:g.toScale,u_tile_units_to_pixels:1/s.az(A,1,b.transform.tileZoom),u_pixel_coord_upper:[se>>16,ne>>16],u_pixel_coord_lower:[65535&se,65535&ne]}}(r,l,e,a),{u_opacity:u}),hl=(u,e)=>{},wu={fillExtrusion:(u,e)=>({u_lightpos:new s.bL(u,e.u_lightpos),u_lightpos_globe:new s.bL(u,e.u_lightpos_globe),u_lightintensity:new s.b8(u,e.u_lightintensity),u_lightcolor:new s.bL(u,e.u_lightcolor),u_vertical_gradient:new s.b8(u,e.u_vertical_gradient),u_opacity:new s.b8(u,e.u_opacity),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillExtrusionPattern:(u,e)=>({u_lightpos:new s.bL(u,e.u_lightpos),u_lightpos_globe:new s.bL(u,e.u_lightpos_globe),u_lightintensity:new s.b8(u,e.u_lightintensity),u_lightcolor:new s.bL(u,e.u_lightcolor),u_vertical_gradient:new s.b8(u,e.u_vertical_gradient),u_height_factor:new s.b8(u,e.u_height_factor),u_opacity:new s.b8(u,e.u_opacity),u_fill_translate:new s.bM(u,e.u_fill_translate),u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade)}),fill:(u,e)=>({u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillPattern:(u,e)=>({u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillOutline:(u,e)=>({u_world:new s.bM(u,e.u_world),u_fill_translate:new s.bM(u,e.u_fill_translate)}),fillOutlinePattern:(u,e)=>({u_world:new s.bM(u,e.u_world),u_image:new s.bH(u,e.u_image),u_texsize:new s.bM(u,e.u_texsize),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade),u_fill_translate:new s.bM(u,e.u_fill_translate)}),circle:(u,e)=>({u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_scale_with_map:new s.bH(u,e.u_scale_with_map),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_extrude_scale:new s.bM(u,e.u_extrude_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_globe_extrude_scale:new s.b8(u,e.u_globe_extrude_scale),u_translate:new s.bM(u,e.u_translate)}),collisionBox:(u,e)=>({u_pixel_extrude_scale:new s.bM(u,e.u_pixel_extrude_scale)}),collisionCircle:(u,e)=>({u_viewport_size:new s.bM(u,e.u_viewport_size)}),debug:(u,e)=>({u_color:new s.bI(u,e.u_color),u_overlay:new s.bH(u,e.u_overlay),u_overlay_scale:new s.b8(u,e.u_overlay_scale)}),depth:hl,clippingMask:hl,heatmap:(u,e)=>({u_extrude_scale:new s.b8(u,e.u_extrude_scale),u_intensity:new s.b8(u,e.u_intensity),u_globe_extrude_scale:new s.b8(u,e.u_globe_extrude_scale)}),heatmapTexture:(u,e)=>({u_matrix:new s.bJ(u,e.u_matrix),u_world:new s.bM(u,e.u_world),u_image:new s.bH(u,e.u_image),u_color_ramp:new s.bH(u,e.u_color_ramp),u_opacity:new s.b8(u,e.u_opacity)}),hillshade:(u,e)=>({u_image:new s.bH(u,e.u_image),u_latrange:new s.bM(u,e.u_latrange),u_exaggeration:new s.b8(u,e.u_exaggeration),u_altitudes:new s.bS(u,e.u_altitudes),u_azimuths:new s.bS(u,e.u_azimuths),u_accent:new s.bI(u,e.u_accent),u_method:new s.bH(u,e.u_method),u_shadows:new s.bR(u,e.u_shadows),u_highlights:new s.bR(u,e.u_highlights)}),hillshadePrepare:(u,e)=>({u_matrix:new s.bJ(u,e.u_matrix),u_image:new s.bH(u,e.u_image),u_dimension:new s.bM(u,e.u_dimension),u_zoom:new s.b8(u,e.u_zoom),u_unpack:new s.bK(u,e.u_unpack)}),line:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels)}),lineGradient:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_image:new s.bH(u,e.u_image),u_image_height:new s.b8(u,e.u_image_height)}),linePattern:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_texsize:new s.bM(u,e.u_texsize),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_image:new s.bH(u,e.u_image),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_scale:new s.bL(u,e.u_scale),u_fade:new s.b8(u,e.u_fade)}),lineSDF:(u,e)=>({u_translation:new s.bM(u,e.u_translation),u_ratio:new s.b8(u,e.u_ratio),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_units_to_pixels:new s.bM(u,e.u_units_to_pixels),u_patternscale_a:new s.bM(u,e.u_patternscale_a),u_patternscale_b:new s.bM(u,e.u_patternscale_b),u_sdfgamma:new s.b8(u,e.u_sdfgamma),u_image:new s.bH(u,e.u_image),u_tex_y_a:new s.b8(u,e.u_tex_y_a),u_tex_y_b:new s.b8(u,e.u_tex_y_b),u_mix:new s.b8(u,e.u_mix)}),raster:(u,e)=>({u_tl_parent:new s.bM(u,e.u_tl_parent),u_scale_parent:new s.b8(u,e.u_scale_parent),u_buffer_scale:new s.b8(u,e.u_buffer_scale),u_fade_t:new s.b8(u,e.u_fade_t),u_opacity:new s.b8(u,e.u_opacity),u_image0:new s.bH(u,e.u_image0),u_image1:new s.bH(u,e.u_image1),u_brightness_low:new s.b8(u,e.u_brightness_low),u_brightness_high:new s.b8(u,e.u_brightness_high),u_saturation_factor:new s.b8(u,e.u_saturation_factor),u_contrast_factor:new s.b8(u,e.u_contrast_factor),u_spin_weights:new s.bL(u,e.u_spin_weights),u_coords_top:new s.bK(u,e.u_coords_top),u_coords_bottom:new s.bK(u,e.u_coords_bottom)}),symbolIcon:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texture:new s.bH(u,e.u_texture),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),symbolSDF:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texture:new s.bH(u,e.u_texture),u_gamma_scale:new s.b8(u,e.u_gamma_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_is_halo:new s.bH(u,e.u_is_halo),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),symbolTextAndIcon:(u,e)=>({u_is_size_zoom_constant:new s.bH(u,e.u_is_size_zoom_constant),u_is_size_feature_constant:new s.bH(u,e.u_is_size_feature_constant),u_size_t:new s.b8(u,e.u_size_t),u_size:new s.b8(u,e.u_size),u_camera_to_center_distance:new s.b8(u,e.u_camera_to_center_distance),u_pitch:new s.b8(u,e.u_pitch),u_rotate_symbol:new s.bH(u,e.u_rotate_symbol),u_aspect_ratio:new s.b8(u,e.u_aspect_ratio),u_fade_change:new s.b8(u,e.u_fade_change),u_label_plane_matrix:new s.bJ(u,e.u_label_plane_matrix),u_coord_matrix:new s.bJ(u,e.u_coord_matrix),u_is_text:new s.bH(u,e.u_is_text),u_pitch_with_map:new s.bH(u,e.u_pitch_with_map),u_is_along_line:new s.bH(u,e.u_is_along_line),u_is_variable_anchor:new s.bH(u,e.u_is_variable_anchor),u_texsize:new s.bM(u,e.u_texsize),u_texsize_icon:new s.bM(u,e.u_texsize_icon),u_texture:new s.bH(u,e.u_texture),u_texture_icon:new s.bH(u,e.u_texture_icon),u_gamma_scale:new s.b8(u,e.u_gamma_scale),u_device_pixel_ratio:new s.b8(u,e.u_device_pixel_ratio),u_is_halo:new s.bH(u,e.u_is_halo),u_translation:new s.bM(u,e.u_translation),u_pitched_scale:new s.b8(u,e.u_pitched_scale)}),background:(u,e)=>({u_opacity:new s.b8(u,e.u_opacity),u_color:new s.bI(u,e.u_color)}),backgroundPattern:(u,e)=>({u_opacity:new s.b8(u,e.u_opacity),u_image:new s.bH(u,e.u_image),u_pattern_tl_a:new s.bM(u,e.u_pattern_tl_a),u_pattern_br_a:new s.bM(u,e.u_pattern_br_a),u_pattern_tl_b:new s.bM(u,e.u_pattern_tl_b),u_pattern_br_b:new s.bM(u,e.u_pattern_br_b),u_texsize:new s.bM(u,e.u_texsize),u_mix:new s.b8(u,e.u_mix),u_pattern_size_a:new s.bM(u,e.u_pattern_size_a),u_pattern_size_b:new s.bM(u,e.u_pattern_size_b),u_scale_a:new s.b8(u,e.u_scale_a),u_scale_b:new s.b8(u,e.u_scale_b),u_pixel_coord_upper:new s.bM(u,e.u_pixel_coord_upper),u_pixel_coord_lower:new s.bM(u,e.u_pixel_coord_lower),u_tile_units_to_pixels:new s.b8(u,e.u_tile_units_to_pixels)}),terrain:(u,e)=>({u_texture:new s.bH(u,e.u_texture),u_ele_delta:new s.b8(u,e.u_ele_delta),u_fog_matrix:new s.bJ(u,e.u_fog_matrix),u_fog_color:new s.bI(u,e.u_fog_color),u_fog_ground_blend:new s.b8(u,e.u_fog_ground_blend),u_fog_ground_blend_opacity:new s.b8(u,e.u_fog_ground_blend_opacity),u_horizon_color:new s.bI(u,e.u_horizon_color),u_horizon_fog_blend:new s.b8(u,e.u_horizon_fog_blend),u_is_globe_mode:new s.b8(u,e.u_is_globe_mode)}),terrainDepth:(u,e)=>({u_ele_delta:new s.b8(u,e.u_ele_delta)}),terrainCoords:(u,e)=>({u_texture:new s.bH(u,e.u_texture),u_terrain_coords_id:new s.b8(u,e.u_terrain_coords_id),u_ele_delta:new s.b8(u,e.u_ele_delta)}),projectionErrorMeasurement:(u,e)=>({u_input:new s.b8(u,e.u_input),u_output_expected:new s.b8(u,e.u_output_expected)}),atmosphere:(u,e)=>({u_sun_pos:new s.bL(u,e.u_sun_pos),u_atmosphere_blend:new s.b8(u,e.u_atmosphere_blend),u_globe_position:new s.bL(u,e.u_globe_position),u_globe_radius:new s.b8(u,e.u_globe_radius),u_inv_proj_matrix:new s.bJ(u,e.u_inv_proj_matrix)}),sky:(u,e)=>({u_sky_color:new s.bI(u,e.u_sky_color),u_horizon_color:new s.bI(u,e.u_horizon_color),u_horizon:new s.bM(u,e.u_horizon),u_horizon_normal:new s.bM(u,e.u_horizon_normal),u_sky_horizon_blend:new s.b8(u,e.u_sky_horizon_blend),u_sky_blend:new s.b8(u,e.u_sky_blend)})};class Su{constructor(e,r,a){this.context=e;const l=e.gl;this.buffer=l.createBuffer(),this.dynamicDraw=!!a,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),l.bufferData(l.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?l.DYNAMIC_DRAW:l.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){const r=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const pl={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class Au{constructor(e,r,a,l){this.length=r.length,this.attributes=a,this.itemSize=r.bytesPerElement,this.dynamicDraw=l,this.context=e;const h=e.gl;this.buffer=h.createBuffer(),e.bindVertexBuffer.set(this.buffer),h.bufferData(h.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?h.DYNAMIC_DRAW:h.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){if(e.length!==this.length)throw new Error(`Length of new data is ${e.length}, which doesn't match current length of ${this.length}`);const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,e.arrayBuffer)}enableAttributes(e,r){for(let a=0;a<this.attributes.length;a++){const l=r.attributes[this.attributes[a].name];l!==void 0&&e.enableVertexAttribArray(l)}}setVertexAttribPointers(e,r,a){for(let l=0;l<this.attributes.length;l++){const h=this.attributes[l],g=r.attributes[h.name];g!==void 0&&e.vertexAttribPointer(g,h.components,e[pl[h.type]],!1,this.itemSize,h.offset+this.itemSize*(a||0))}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}class Nt{constructor(e){this.gl=e.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1}get(){return this.current}set(e){}getDefault(){return this.default}setDefault(){this.set(this.default)}}class mn extends Nt{getDefault(){return s.b7.transparent}set(e){const r=this.current;(e.r!==r.r||e.g!==r.g||e.b!==r.b||e.a!==r.a||this.dirty)&&(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class dl extends Nt{getDefault(){return 1}set(e){(e!==this.current||this.dirty)&&(this.gl.clearDepth(e),this.current=e,this.dirty=!1)}}class fl extends Nt{getDefault(){return 0}set(e){(e!==this.current||this.dirty)&&(this.gl.clearStencil(e),this.current=e,this.dirty=!1)}}class ml extends Nt{getDefault(){return[!0,!0,!0,!0]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3]||this.dirty)&&(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class ku extends Nt{getDefault(){return!0}set(e){(e!==this.current||this.dirty)&&(this.gl.depthMask(e),this.current=e,this.dirty=!1)}}class gl extends Nt{getDefault(){return 255}set(e){(e!==this.current||this.dirty)&&(this.gl.stencilMask(e),this.current=e,this.dirty=!1)}}class es extends Nt{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(e){const r=this.current;(e.func!==r.func||e.ref!==r.ref||e.mask!==r.mask||this.dirty)&&(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=!1)}}class yl extends Nt{getDefault(){const e=this.gl;return[e.KEEP,e.KEEP,e.KEEP]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||this.dirty)&&(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=!1)}}class up extends Nt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.STENCIL_TEST):r.disable(r.STENCIL_TEST),this.current=e,this.dirty=!1}}class hp extends Nt{getDefault(){return[0,1]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||this.dirty)&&(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=!1)}}class pp extends Nt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.DEPTH_TEST):r.disable(r.DEPTH_TEST),this.current=e,this.dirty=!1}}class dp extends Nt{getDefault(){return this.gl.LESS}set(e){(e!==this.current||this.dirty)&&(this.gl.depthFunc(e),this.current=e,this.dirty=!1)}}class Tu extends Nt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.BLEND):r.disable(r.BLEND),this.current=e,this.dirty=!1}}class fp extends Nt{getDefault(){const e=this.gl;return[e.ONE,e.ZERO]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||this.dirty)&&(this.gl.blendFunc(e[0],e[1]),this.current=e,this.dirty=!1)}}class Cu extends Nt{getDefault(){return s.b7.transparent}set(e){const r=this.current;(e.r!==r.r||e.g!==r.g||e.b!==r.b||e.a!==r.a||this.dirty)&&(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class $o extends Nt{getDefault(){return this.gl.FUNC_ADD}set(e){(e!==this.current||this.dirty)&&(this.gl.blendEquation(e),this.current=e,this.dirty=!1)}}class ea extends Nt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;e?r.enable(r.CULL_FACE):r.disable(r.CULL_FACE),this.current=e,this.dirty=!1}}class ta extends Nt{getDefault(){return this.gl.BACK}set(e){(e!==this.current||this.dirty)&&(this.gl.cullFace(e),this.current=e,this.dirty=!1)}}class _l extends Nt{getDefault(){return this.gl.CCW}set(e){(e!==this.current||this.dirty)&&(this.gl.frontFace(e),this.current=e,this.dirty=!1)}}class ts extends Nt{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.useProgram(e),this.current=e,this.dirty=!1)}}class ra extends Nt{getDefault(){return this.gl.TEXTURE0}set(e){(e!==this.current||this.dirty)&&(this.gl.activeTexture(e),this.current=e,this.dirty=!1)}}class bs extends Nt{getDefault(){const e=this.gl;return[0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){const r=this.current;(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3]||this.dirty)&&(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class Ni extends Nt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindFramebuffer(r.FRAMEBUFFER,e),this.current=e,this.dirty=!1}}class Eu extends Nt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindRenderbuffer(r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Pu extends Nt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindTexture(r.TEXTURE_2D,e),this.current=e,this.dirty=!1}}class xl extends Nt{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.bindBuffer(r.ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class rs extends Nt{getDefault(){return null}set(e){const r=this.gl;r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class ia extends Nt{getDefault(){return null}set(e){var r;if(e===this.current&&!this.dirty)return;const a=this.gl;ni(a)?a.bindVertexArray(e):(r=a.getExtension("OES_vertex_array_object"))===null||r===void 0||r.bindVertexArrayOES(e),this.current=e,this.dirty=!1}}class na extends Nt{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=!1}}class lo extends Nt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=!1}}class sa extends Nt{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;const r=this.gl;r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=!1}}class oa extends Nt{constructor(e,r){super(e),this.context=e,this.parent=r}getDefault(){return null}}class vs extends oa{setDirty(){this.dirty=!0}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),this.current=e,this.dirty=!1}}class ws extends oa{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Iu extends oa{set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const r=this.gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,e),this.current=e,this.dirty=!1}}const aa="Framebuffer is not complete";class Mt{constructor(e,r,a,l,h){this.context=e,this.width=r,this.height=a;const g=e.gl,b=this.framebuffer=g.createFramebuffer();if(this.colorAttachment=new vs(e,b),l)this.depthAttachment=h?new Iu(e,b):new ws(e,b);else if(h)throw new Error("Stencil cannot be set without depth");if(g.checkFramebufferStatus(g.FRAMEBUFFER)!==g.FRAMEBUFFER_COMPLETE)throw new Error(aa)}destroy(){const e=this.context.gl,r=this.colorAttachment.get();if(r&&e.deleteTexture(r),this.depthAttachment){const a=this.depthAttachment.get();a&&e.deleteRenderbuffer(a)}e.deleteFramebuffer(this.framebuffer)}}class la{constructor(e){var r,a;if(this.gl=e,this.clearColor=new mn(this),this.clearDepth=new dl(this),this.clearStencil=new fl(this),this.colorMask=new ml(this),this.depthMask=new ku(this),this.stencilMask=new gl(this),this.stencilFunc=new es(this),this.stencilOp=new yl(this),this.stencilTest=new up(this),this.depthRange=new hp(this),this.depthTest=new pp(this),this.depthFunc=new dp(this),this.blend=new Tu(this),this.blendFunc=new fp(this),this.blendColor=new Cu(this),this.blendEquation=new $o(this),this.cullFace=new ea(this),this.cullFaceSide=new ta(this),this.frontFace=new _l(this),this.program=new ts(this),this.activeTexture=new ra(this),this.viewport=new bs(this),this.bindFramebuffer=new Ni(this),this.bindRenderbuffer=new Eu(this),this.bindTexture=new Pu(this),this.bindVertexBuffer=new xl(this),this.bindElementBuffer=new rs(this),this.bindVertexArray=new ia(this),this.pixelStoreUnpack=new na(this),this.pixelStoreUnpackPremultiplyAlpha=new lo(this),this.pixelStoreUnpackFlipY=new sa(this),this.extTextureFilterAnisotropic=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),ni(e)){this.HALF_FLOAT=e.HALF_FLOAT;const l=e.getExtension("EXT_color_buffer_half_float");this.RGBA16F=(r=e.RGBA16F)!==null&&r!==void 0?r:l==null?void 0:l.RGBA16F_EXT,this.RGB16F=(a=e.RGB16F)!==null&&a!==void 0?a:l==null?void 0:l.RGB16F_EXT,e.getExtension("EXT_color_buffer_float")}else{e.getExtension("EXT_color_buffer_half_float"),e.getExtension("OES_texture_half_float_linear");const l=e.getExtension("OES_texture_half_float");this.HALF_FLOAT=l==null?void 0: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(e,r){return new Su(this,e,r)}createVertexBuffer(e,r,a){return new Au(this,e,r,a)}createRenderbuffer(e,r,a){const l=this.gl,h=l.createRenderbuffer();return this.bindRenderbuffer.set(h),l.renderbufferStorage(l.RENDERBUFFER,e,r,a),this.bindRenderbuffer.set(null),h}createFramebuffer(e,r,a,l){return new Mt(this,e,r,a,l)}clear({color:e,depth:r,stencil:a}){const l=this.gl;let h=0;e&&(h|=l.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),r!==void 0&&(h|=l.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(r),this.depthMask.set(!0)),a!==void 0&&(h|=l.STENCIL_BUFFER_BIT,this.clearStencil.set(a),this.stencilMask.set(255)),l.clear(h)}setCullFace(e){e.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(e.mode),this.frontFace.set(e.frontFace))}setDepthMode(e){e.func!==this.gl.ALWAYS||e.mask?(this.depthTest.set(!0),this.depthFunc.set(e.func),this.depthMask.set(e.mask),this.depthRange.set(e.range)):this.depthTest.set(!1)}setStencilMode(e){e.test.func!==this.gl.ALWAYS||e.mask?(this.stencilTest.set(!0),this.stencilMask.set(e.mask),this.stencilOp.set([e.fail,e.depthFail,e.pass]),this.stencilFunc.set({func:e.test.func,ref:e.ref,mask:e.test.mask})):this.stencilTest.set(!1)}setColorMode(e){s.bE(e.blendFunction,Kt.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask)}createVertexArray(){var e;return ni(this.gl)?this.gl.createVertexArray():(e=this.gl.getExtension("OES_vertex_array_object"))===null||e===void 0?void 0:e.createVertexArrayOES()}deleteVertexArray(e){var r;return ni(this.gl)?this.gl.deleteVertexArray(e):(r=this.gl.getExtension("OES_vertex_array_object"))===null||r===void 0?void 0:r.deleteVertexArrayOES(e)}unbindVAO(){this.bindVertexArray.set(null)}}let ca;function bl(u,e,r,a,l){const h=u.context,g=u.transform,b=h.gl,A=u.useProgram("collisionBox"),I=[];let D=0,F=0;for(let oe=0;oe<a.length;oe++){const ce=a[oe],me=e.getTile(ce).getBucket(r);if(!me)continue;const fe=l?me.textCollisionBox:me.iconCollisionBox,ge=me.collisionCircleArray;ge.length>0&&(I.push({circleArray:ge,circleOffset:F,coord:ce}),D+=ge.length/4,F=D),fe&&A.draw(h,b.LINES,vt.disabled,Ct.disabled,u.colorModeForRenderPass(),Bt.disabled,op(u.transform),u.style.map.terrain&&u.style.map.terrain.getTerrainData(ce),g.getProjectionData({overscaledTileID:ce,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),r.id,fe.layoutVertexBuffer,fe.indexBuffer,fe.segments,null,u.transform.zoom,null,null,fe.collisionVertexBuffer)}if(!l||!I.length)return;const O=u.useProgram("collisionCircle"),Z=new s.bT;Z.resize(4*D),Z._trim();let J=0;for(const oe of I)for(let ce=0;ce<oe.circleArray.length/4;ce++){const me=4*ce,fe=oe.circleArray[me+0],ge=oe.circleArray[me+1],be=oe.circleArray[me+2],ye=oe.circleArray[me+3];Z.emplace(J++,fe,ge,be,ye,0),Z.emplace(J++,fe,ge,be,ye,1),Z.emplace(J++,fe,ge,be,ye,2),Z.emplace(J++,fe,ge,be,ye,3)}(!ca||ca.length<2*D)&&(ca=function(oe){const ce=2*oe,me=new s.bV;me.resize(ce),me._trim();for(let fe=0;fe<ce;fe++){const ge=6*fe;me.uint16[ge+0]=4*fe+0,me.uint16[ge+1]=4*fe+1,me.uint16[ge+2]=4*fe+2,me.uint16[ge+3]=4*fe+2,me.uint16[ge+4]=4*fe+3,me.uint16[ge+5]=4*fe+0}return me}(D));const se=h.createIndexBuffer(ca,!0),ne=h.createVertexBuffer(Z,s.bU.members,!0);for(const oe of I){const ce=Qo(u.transform);O.draw(h,b.TRIANGLES,vt.disabled,Ct.disabled,u.colorModeForRenderPass(),Bt.disabled,ce,u.style.map.terrain&&u.style.map.terrain.getTerrainData(oe.coord),null,r.id,ne,se,s.aJ.simpleSegment(0,2*oe.circleOffset,oe.circleArray.length,oe.circleArray.length/2),null,u.transform.zoom,null,null,null)}ne.destroy(),se.destroy()}const co=s.ad(new Float32Array(16));function mp(u,e,r,a,l,h){const{horizontalAlign:g,verticalAlign:b}=s.aE(u);return new s.P((-(g-.5)*e/l+a[0])*h,(-(b-.5)*r/l+a[1])*h)}function gp(u,e,r,a,l,h){const g=e.tileAnchorPoint.add(new s.P(e.translation[0],e.translation[1]));if(e.pitchWithMap){let b=a.mult(h);r||(b=b.rotate(-l));const A=g.add(b);return Be(A.x,A.y,e.pitchedLabelPlaneMatrix,e.getElevation).point}if(r){const b=xr(e.tileAnchorPoint.x+1,e.tileAnchorPoint.y,e).point.sub(u),A=Math.atan(b.y/b.x)+(b.x<0?Math.PI:0);return u.add(a.rotate(A))}return u.add(a)}function Mu(u,e,r,a,l,h,g,b,A,I,D,F){const O=u.text.placedSymbolArray,Z=u.text.dynamicLayoutVertexArray,J=u.icon.dynamicLayoutVertexArray,se={};Z.clear();for(let ne=0;ne<O.length;ne++){const oe=O.get(ne),ce=oe.hidden||!oe.crossTileID||u.allowVerticalPlacement&&!oe.placedOrientation?null:a[oe.crossTileID];if(ce){const me=new s.P(oe.anchorX,oe.anchorY),fe={getElevation:F,width:l.width,height:l.height,pitchedLabelPlaneMatrix:h,pitchWithMap:r,transform:l,tileAnchorPoint:me,translation:I,unwrappedTileID:D},ge=r?Tt(me.x,me.y,fe):xr(me.x,me.y,fe),be=Wt(l.cameraToCenterDistance,ge.signedDistanceFromCamera);let ye=s.am(u.textSizeData,b,oe)*be/s.ay;r&&(ye*=u.tilePixelRatio/g);const{width:Te,height:Oe,anchor:Le,textOffset:Re,textBoxScale:ze}=ce,Ye=mp(Le,Te,Oe,Re,ze,ye),Qe=l.getPitchedTextCorrection(me.x+I[0],me.y+I[1],D),We=gp(ge.point,fe,e,Ye,-l.bearingInRadians,Qe),at=u.allowVerticalPlacement&&oe.placedOrientation===s.al.vertical?Math.PI/2:0;for(let Et=0;Et<oe.numGlyphs;Et++)s.as(Z,We,at);A&&oe.associatedIconIndex>=0&&(se[oe.associatedIconIndex]={shiftedAnchor:We,angle:at})}else dn(oe.numGlyphs,Z)}if(A){J.clear();const ne=u.icon.placedSymbolArray;for(let oe=0;oe<ne.length;oe++){const ce=ne.get(oe);if(ce.hidden)dn(ce.numGlyphs,J);else{const me=se[oe];if(me)for(let fe=0;fe<ce.numGlyphs;fe++)s.as(J,me.shiftedAnchor,me.angle);else dn(ce.numGlyphs,J)}}u.icon.dynamicLayoutVertexBuffer.updateData(J)}u.text.dynamicLayoutVertexBuffer.updateData(Z)}function yp(u,e,r){return r.iconsInText&&e?"symbolTextAndIcon":u?"symbolSDF":"symbolIcon"}function ua(u,e,r,a,l,h,g,b,A,I,D,F,O){const Z=u.context,J=Z.gl,se=u.transform,ne=b==="map",oe=A==="map",ce=b!=="viewport"&&r.layout.get("symbol-placement")!=="point",me=ne&&!oe&&!ce,fe=!r.layout.get("symbol-sort-key").isConstant();let ge=!1;const be=u.getDepthModeForSublayer(0,vt.ReadOnly),ye=r._unevaluatedLayout.hasValue("text-variable-anchor")||r._unevaluatedLayout.hasValue("text-variable-anchor-offset"),Te=[],Oe=se.getCircleRadiusCorrection();for(const Le of a){const Re=e.getTile(Le),ze=Re.getBucket(r);if(!ze)continue;const Ye=l?ze.text:ze.icon;if(!Ye||!Ye.segments.get().length||!Ye.hasVisibleVertices)continue;const Qe=Ye.programConfigurations.get(r.id),We=l||ze.sdfIcons,at=l?ze.textSizeData:ze.iconSizeData,Et=oe||se.pitch!==0,Vt=u.useProgram(yp(We,l,ze),Qe),ur=s.ak(at,se.zoom),Qt=u.style.map.terrain&&u.style.map.terrain.getTerrainData(Le);let hr,pr,$t,Ut,Or=[0,0],Zr=null;if(l)pr=Re.glyphAtlasTexture,$t=J.LINEAR,hr=Re.glyphAtlasTexture.size,ze.iconsInText&&(Or=Re.imageAtlasTexture.size,Zr=Re.imageAtlasTexture,Ut=Et||u.options.rotating||u.options.zooming||at.kind==="composite"||at.kind==="camera"?J.LINEAR:J.NEAREST);else{const Lr=r.layout.get("icon-size").constantOr(0)!==1||ze.iconsNeedLinear;pr=Re.imageAtlasTexture,$t=We||u.options.rotating||u.options.zooming||Lr||Et?J.LINEAR:J.NEAREST,hr=Re.imageAtlasTexture.size}const $r=s.az(Re,1,u.transform.zoom),jt=ht(ne,u.transform,$r),In=s.K();s.an(In,jt);const ln=St(oe,ne,u.transform,$r),Mn=s.aA(se,Re,h,g),ss=se.getProjectionData({overscaledTileID:Le,applyGlobeMatrix:!O,applyTerrainMatrix:!0}),ko=ye&&ze.hasTextData(),Ln=r.layout.get("icon-text-fit")!=="none"&&ko&&ze.hasIconData();if(ce){const Lr=u.style.map.terrain?(fi,nr)=>u.style.map.terrain.getElevation(Le,fi,nr):null,Rr=r.layout.get("text-rotation-alignment")==="map";qt(ze,u,l,jt,In,oe,I,Rr,Le.toUnwrapped(),se.width,se.height,Mn,Lr)}const os=l&&ye||Ln,Ii=ce||os?co:oe?jt:u.transform.clipSpaceToPixelsMatrix,Rn=We&&r.paint.get(l?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let yn;yn=We?ze.iconsInText?Yo(at.kind,ur,me,oe,ce,os,u,Ii,ln,Mn,hr,Or,Oe):vu(at.kind,ur,me,oe,ce,os,u,Ii,ln,Mn,l,hr,0,Oe):xs(at.kind,ur,me,oe,ce,os,u,Ii,ln,Mn,l,hr,Oe);const zn={program:Vt,buffers:Ye,uniformValues:yn,projectionData:ss,atlasTexture:pr,atlasTextureIcon:Zr,atlasInterpolation:$t,atlasInterpolationIcon:Ut,isSDF:We,hasHalo:Rn};if(fe&&ze.canOverlap){ge=!0;const Lr=Ye.segments.get();for(const Rr of Lr)Te.push({segments:new s.aJ([Rr]),sortKey:Rr.sortKey,state:zn,terrainData:Qt})}else Te.push({segments:Ye.segments,sortKey:0,state:zn,terrainData:Qt})}ge&&Te.sort((Le,Re)=>Le.sortKey-Re.sortKey);for(const Le of Te){const Re=Le.state;if(Z.activeTexture.set(J.TEXTURE0),Re.atlasTexture.bind(Re.atlasInterpolation,J.CLAMP_TO_EDGE),Re.atlasTextureIcon&&(Z.activeTexture.set(J.TEXTURE1),Re.atlasTextureIcon&&Re.atlasTextureIcon.bind(Re.atlasInterpolationIcon,J.CLAMP_TO_EDGE)),Re.isSDF){const ze=Re.uniformValues;Re.hasHalo&&(ze.u_is_halo=1,uo(Re.buffers,Le.segments,r,u,Re.program,be,D,F,ze,Re.projectionData,Le.terrainData)),ze.u_is_halo=0}uo(Re.buffers,Le.segments,r,u,Re.program,be,D,F,Re.uniformValues,Re.projectionData,Le.terrainData)}}function uo(u,e,r,a,l,h,g,b,A,I,D){const F=a.context;l.draw(F,F.gl.TRIANGLES,h,g,b,Bt.backCCW,A,D,I,r.id,u.layoutVertexBuffer,u.indexBuffer,e,r.paint,a.transform.zoom,u.programConfigurations.get(r.id),u.dynamicLayoutVertexBuffer,u.opacityVertexBuffer)}function ha(u,e,r,a,l){const h=u.context,g=h.gl,b=Ct.disabled,A=new Kt([g.ONE,g.ONE],s.b7.transparent,[!0,!0,!0,!0]),I=e.getBucket(r);if(!I)return;const D=a.key;let F=r.heatmapFbos.get(D);F||(F=pa(h,e.tileSize,e.tileSize),r.heatmapFbos.set(D,F)),h.bindFramebuffer.set(F.framebuffer),h.viewport.set([0,0,e.tileSize,e.tileSize]),h.clear({color:s.b7.transparent});const O=I.programConfigurations.get(r.id),Z=u.useProgram("heatmap",O,!l),J=u.transform.getProjectionData({overscaledTileID:e.tileID,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),se=u.style.map.terrain.getTerrainData(a);Z.draw(h,g.TRIANGLES,vt.disabled,b,A,Bt.disabled,$n(e,u.transform.zoom,r.paint.get("heatmap-intensity"),1),se,J,r.id,I.layoutVertexBuffer,I.indexBuffer,I.segments,r.paint,u.transform.zoom,O)}function vl(u,e,r,a,l){const h=u.context,g=h.gl,b=u.transform;h.setColorMode(u.colorModeForRenderPass());const A=wl(h,e),I=r.key,D=e.heatmapFbos.get(I);if(!D)return;h.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,D.colorAttachment.get()),h.activeTexture.set(g.TEXTURE1),A.bind(g.LINEAR,g.CLAMP_TO_EDGE);const F=b.getProjectionData({overscaledTileID:r,applyTerrainMatrix:l,applyGlobeMatrix:!a});u.useProgram("heatmapTexture").draw(h,g.TRIANGLES,vt.disabled,Ct.disabled,u.colorModeForRenderPass(),Bt.disabled,du(u,e,0,1),null,F,e.id,u.rasterBoundsBuffer,u.quadTriangleIndexBuffer,u.rasterBoundsSegments,e.paint,b.zoom),D.destroy(),e.heatmapFbos.delete(I)}function pa(u,e,r){var a,l;const h=u.gl,g=h.createTexture();h.bindTexture(h.TEXTURE_2D,g),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.LINEAR),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,h.LINEAR);const b=(a=u.HALF_FLOAT)!==null&&a!==void 0?a:h.UNSIGNED_BYTE,A=(l=u.RGBA16F)!==null&&l!==void 0?l:h.RGBA;h.texImage2D(h.TEXTURE_2D,0,A,e,r,0,h.RGBA,b,null);const I=u.createFramebuffer(e,r,!1,!1);return I.colorAttachment.set(g),I}function wl(u,e){return e.colorRampTexture||(e.colorRampTexture=new Ze(u,e.colorRamp,u.gl.RGBA)),e.colorRampTexture}function ho(u,e,r,a,l){if(!r||!a||!a.imageAtlas)return;const h=a.imageAtlas.patternPositions;let g=h[r.to.toString()],b=h[r.from.toString()];if(!g&&b&&(g=b),!b&&g&&(b=g),!g||!b){const A=l.getPaintProperty(e);g=h[A],b=h[A]}g&&b&&u.setConstantPatternPositions(g,b)}function po(u,e,r,a,l,h,g,b){const A=u.context.gl,I="fill-pattern",D=r.paint.get(I),F=D&&D.constantOr(1),O=r.getCrossfadeParameters();let Z,J,se,ne,oe;const ce=u.transform,me=r.paint.get("fill-translate"),fe=r.paint.get("fill-translate-anchor");g?(J=F&&!r.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",Z=A.LINES):(J=F?"fillPattern":"fill",Z=A.TRIANGLES);const ge=D.constantOr(null);for(const be of a){const ye=e.getTile(be);if(F&&!ye.patternsLoaded())continue;const Te=ye.getBucket(r);if(!Te)continue;const Oe=Te.programConfigurations.get(r.id),Le=u.useProgram(J,Oe),Re=u.style.map.terrain&&u.style.map.terrain.getTerrainData(be);F&&(u.context.activeTexture.set(A.TEXTURE0),ye.imageAtlasTexture.bind(A.LINEAR,A.CLAMP_TO_EDGE),Oe.updatePaintBuffers(O)),ho(Oe,I,ge,ye,r);const ze=ce.getProjectionData({overscaledTileID:be,applyGlobeMatrix:!b,applyTerrainMatrix:!0}),Ye=s.aA(ce,ye,me,fe);if(g){ne=Te.indexBuffer2,oe=Te.segments2;const We=[A.drawingBufferWidth,A.drawingBufferHeight];se=J==="fillOutlinePattern"&&F?so(u,O,ye,We,Ye):cl(We,Ye)}else ne=Te.indexBuffer,oe=Te.segments,se=F?hu(u,O,ye,Ye):{u_fill_translate:Ye};const Qe=u.stencilModeForClipping(be);Le.draw(u.context,Z,l,Qe,h,Bt.backCCW,se,Re,ze,r.id,Te.layoutVertexBuffer,ne,oe,r.paint,u.transform.zoom,Oe)}}function fo(u,e,r,a,l,h,g,b){const A=u.context,I=A.gl,D="fill-extrusion-pattern",F=r.paint.get(D),O=F.constantOr(1),Z=r.getCrossfadeParameters(),J=r.paint.get("fill-extrusion-opacity"),se=F.constantOr(null),ne=u.transform;for(const oe of a){const ce=e.getTile(oe),me=ce.getBucket(r);if(!me)continue;const fe=u.style.map.terrain&&u.style.map.terrain.getTerrainData(oe),ge=me.programConfigurations.get(r.id),be=u.useProgram(O?"fillExtrusionPattern":"fillExtrusion",ge);O&&(u.context.activeTexture.set(I.TEXTURE0),ce.imageAtlasTexture.bind(I.LINEAR,I.CLAMP_TO_EDGE),ge.updatePaintBuffers(Z));const ye=ne.getProjectionData({overscaledTileID:oe,applyGlobeMatrix:!b,applyTerrainMatrix:!0});ho(ge,D,se,ce,r);const Te=s.aA(ne,ce,r.paint.get("fill-extrusion-translate"),r.paint.get("fill-extrusion-translate-anchor")),Oe=r.paint.get("fill-extrusion-vertical-gradient"),Le=O?sn(u,Oe,J,Te,oe,Z,ce):Xo(u,Oe,J,Te);be.draw(A,A.gl.TRIANGLES,l,h,g,Bt.backCCW,Le,fe,ye,r.id,me.layoutVertexBuffer,me.indexBuffer,me.segments,r.paint,u.transform.zoom,ge,u.style.map.terrain&&me.centroidVertexBuffer)}}function Sl(u,e,r,a,l,h,g,b,A){var I;const D=u.style.projection,F=u.context,O=u.transform,Z=F.gl,J=[`#define NUM_ILLUMINATION_SOURCES ${r.paint.get("hillshade-highlight-color").values.length}`],se=u.useProgram("hillshade",null,!1,J),ne=!u.options.moving;for(const oe of a){const ce=e.getTile(oe),me=ce.fbo;if(!me)continue;const fe=D.getMeshFromTileID(F,oe.canonical,b,!0,"raster"),ge=(I=u.style.map.terrain)===null||I===void 0?void 0:I.getTerrainData(oe);F.activeTexture.set(Z.TEXTURE0),Z.bindTexture(Z.TEXTURE_2D,me.colorAttachment.get());const be=O.getProjectionData({overscaledTileID:oe,aligned:ne,applyGlobeMatrix:!A,applyTerrainMatrix:!0});se.draw(F,Z.TRIANGLES,h,l[oe.overscaledZ],g,Bt.backCCW,fu(u,ce,r),ge,be,r.id,fe.vertexBuffer,fe.indexBuffer,fe.segments)}}const mo=[new s.P(0,0),new s.P(s.Z,0),new s.P(s.Z,s.Z),new s.P(0,s.Z)];function da(u,e,r,a,l,h,g,b,A=!1,I=!1){const D=a[a.length-1].overscaledZ,F=u.context,O=F.gl,Z=u.useProgram("raster"),J=u.transform,se=u.style.projection,ne=u.colorModeForRenderPass(),oe=!u.options.moving;for(const ce of a){const me=u.getDepthModeForSublayer(ce.overscaledZ-D,r.paint.get("raster-opacity")===1?vt.ReadWrite:vt.ReadOnly,O.LESS),fe=e.getTile(ce);fe.registerFadeDuration(r.paint.get("raster-fade-duration"));const ge=e.findLoadedParent(ce,0),be=e.findLoadedSibling(ce),ye=Lu(fe,ge||be||null,e,r,u.transform,u.style.map.terrain);let Te,Oe;const Le=r.paint.get("raster-resampling")==="nearest"?O.NEAREST:O.LINEAR;F.activeTexture.set(O.TEXTURE0),fe.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),F.activeTexture.set(O.TEXTURE1),ge?(ge.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),Te=Math.pow(2,ge.tileID.overscaledZ-fe.tileID.overscaledZ),Oe=[fe.tileID.canonical.x*Te%1,fe.tileID.canonical.y*Te%1]):fe.texture.bind(Le,O.CLAMP_TO_EDGE,O.LINEAR_MIPMAP_NEAREST),fe.texture.useMipmap&&F.extTextureFilterAnisotropic&&u.transform.pitch>20&&O.texParameterf(O.TEXTURE_2D,F.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,F.extTextureFilterAnisotropicMax);const Re=u.style.map.terrain&&u.style.map.terrain.getTerrainData(ce),ze=J.getProjectionData({overscaledTileID:ce,aligned:oe,applyGlobeMatrix:!I,applyTerrainMatrix:!0}),Ye=xu(Oe||[0,0],Te||1,ye,r,b),Qe=se.getMeshFromTileID(F,ce.canonical,h,g,"raster");Z.draw(F,O.TRIANGLES,me,l?l[ce.overscaledZ]:Ct.disabled,ne,A?Bt.frontCCW:Bt.backCCW,Ye,Re,ze,r.id,Qe.vertexBuffer,Qe.indexBuffer,Qe.segments)}}function Lu(u,e,r,a,l,h){const g=a.paint.get("raster-fade-duration");if(!h&&g>0){const b=M.now(),A=(b-u.timeAdded)/g,I=e?(b-e.timeAdded)/g:-1,D=r.getSource(),F=Ee(l,{tileSize:D.tileSize,roundZoom:D.roundZoom}),O=!e||Math.abs(e.tileID.overscaledZ-F)>Math.abs(u.tileID.overscaledZ-F),Z=O&&u.refreshedUponExpiration?1:s.ae(O?A:1-I,0,1);return u.refreshedUponExpiration&&A>=1&&(u.refreshedUponExpiration=!1),e?{opacity:1,mix:1-Z}:{opacity:Z,mix:0}}return{opacity:1,mix:0}}const fa=new s.b7(1,0,0,1),Al=new s.b7(0,1,0,1),Ru=new s.b7(0,0,1,1),zu=new s.b7(1,0,1,1),ma=new s.b7(0,1,1,1);function ga(u,e,r,a){go(u,0,e+r/2,u.transform.width,r,a)}function Du(u,e,r,a){go(u,e-r/2,0,r,u.transform.height,a)}function go(u,e,r,a,l,h){const g=u.context,b=g.gl;b.enable(b.SCISSOR_TEST),b.scissor(e*u.pixelRatio,r*u.pixelRatio,a*u.pixelRatio,l*u.pixelRatio),g.clear({color:h}),b.disable(b.SCISSOR_TEST)}function kr(u,e,r){const a=u.context,l=a.gl,h=u.useProgram("debug"),g=vt.disabled,b=Ct.disabled,A=u.colorModeForRenderPass(),I="$debug",D=u.style.map.terrain&&u.style.map.terrain.getTerrainData(r);a.activeTexture.set(l.TEXTURE0);const F=e.getTileByID(r.key).latestRawTileData,O=Math.floor((F&&F.byteLength||0)/1024),Z=e.getTile(r).tileSize,J=512/Math.min(Z,512)*(r.overscaledZ/u.transform.zoom)*.5;let se=r.canonical.toString();r.overscaledZ!==r.canonical.z&&(se+=` => ${r.overscaledZ}`),function(oe,ce){oe.initDebugOverlayCanvas();const me=oe.debugOverlayCanvas,fe=oe.context.gl,ge=oe.debugOverlayCanvas.getContext("2d");ge.clearRect(0,0,me.width,me.height),ge.shadowColor="white",ge.shadowBlur=2,ge.lineWidth=1.5,ge.strokeStyle="white",ge.textBaseline="top",ge.font="bold 36px Open Sans, sans-serif",ge.fillText(ce,5,5),ge.strokeText(ce,5,5),oe.debugOverlayTexture.update(me),oe.debugOverlayTexture.bind(fe.LINEAR,fe.CLAMP_TO_EDGE)}(u,`${se} ${O}kB`);const ne=u.transform.getProjectionData({overscaledTileID:r,applyGlobeMatrix:!0,applyTerrainMatrix:!0});h.draw(a,l.TRIANGLES,g,b,Kt.alphaBlended,Bt.disabled,pu(s.b7.transparent,J),null,ne,I,u.debugBuffer,u.quadTriangleIndexBuffer,u.debugSegments),h.draw(a,l.LINE_STRIP,g,b,A,Bt.disabled,pu(s.b7.red),D,ne,I,u.debugBuffer,u.tileBorderIndexBuffer,u.debugSegments)}function Pn(u,e,r,a){const{isRenderingGlobe:l}=a,h=u.context,g=h.gl,b=u.transform,A=u.colorModeForRenderPass(),I=u.getDepthModeFor3D(),D=u.useProgram("terrain");h.bindFramebuffer.set(null),h.viewport.set([0,0,u.width,u.height]);for(const F of r){const O=e.getTerrainMesh(F.tileID),Z=u.renderToTexture.getTexture(F),J=e.getTerrainData(F.tileID);h.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,Z.texture);const se=e.getMeshFrameDelta(b.zoom),ne=b.calculateFogMatrix(F.tileID.toUnwrapped()),oe=sp(se,ne,u.style.sky,b.pitch,l),ce=b.getProjectionData({overscaledTileID:F.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});D.draw(h,g.TRIANGLES,I,Ct.disabled,A,Bt.backCCW,oe,J,ce,"terrain",O.vertexBuffer,O.indexBuffer,O.segments)}}function Pi(u,e){if(!e.mesh){const r=new s.aI;r.emplaceBack(-1,-1),r.emplaceBack(1,-1),r.emplaceBack(1,1),r.emplaceBack(-1,1);const a=new s.aK;a.emplaceBack(0,1,2),a.emplaceBack(0,2,3),e.mesh=new ds(u.createVertexBuffer(r,hi.members),u.createIndexBuffer(a),s.aJ.simpleSegment(0,0,r.length,a.length))}return e.mesh}class kl{constructor(e,r){this.context=new la(e),this.transform=r,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:s.ad(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=ke.maxUnderzooming+ke.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Js}resize(e,r,a){if(this.width=Math.floor(e*a),this.height=Math.floor(r*a),this.pixelRatio=a,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 e=this.context,r=new s.aI;r.emplaceBack(0,0),r.emplaceBack(s.Z,0),r.emplaceBack(0,s.Z),r.emplaceBack(s.Z,s.Z),this.tileExtentBuffer=e.createVertexBuffer(r,hi.members),this.tileExtentSegments=s.aJ.simpleSegment(0,0,4,2);const a=new s.aI;a.emplaceBack(0,0),a.emplaceBack(s.Z,0),a.emplaceBack(0,s.Z),a.emplaceBack(s.Z,s.Z),this.debugBuffer=e.createVertexBuffer(a,hi.members),this.debugSegments=s.aJ.simpleSegment(0,0,4,5);const l=new s.b_;l.emplaceBack(0,0,0,0),l.emplaceBack(s.Z,0,s.Z,0),l.emplaceBack(0,s.Z,0,s.Z),l.emplaceBack(s.Z,s.Z,s.Z,s.Z),this.rasterBoundsBuffer=e.createVertexBuffer(l,ip.members),this.rasterBoundsSegments=s.aJ.simpleSegment(0,0,4,2);const h=new s.aI;h.emplaceBack(0,0),h.emplaceBack(s.Z,0),h.emplaceBack(0,s.Z),h.emplaceBack(s.Z,s.Z),this.rasterBoundsBufferPosOnly=e.createVertexBuffer(h,hi.members),this.rasterBoundsSegmentsPosOnly=s.aJ.simpleSegment(0,0,4,5);const g=new s.aI;g.emplaceBack(0,0),g.emplaceBack(1,0),g.emplaceBack(0,1),g.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(g,hi.members),this.viewportSegments=s.aJ.simpleSegment(0,0,4,2);const b=new s.b$;b.emplaceBack(0),b.emplaceBack(1),b.emplaceBack(3),b.emplaceBack(2),b.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(b);const A=new s.aK;A.emplaceBack(1,0,2),A.emplaceBack(1,2,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(A);const I=this.context.gl;this.stencilClearMode=new Ct({func:I.ALWAYS,mask:0},0,255,I.ZERO,I.ZERO,I.ZERO),this.tileExtentMesh=new ds(this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}clearStencil(){const e=this.context,r=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const a=s.K();s.bQ(a,0,this.width,this.height,0,0,1),s.M(a,a,[r.drawingBufferWidth,r.drawingBufferHeight,0]);const l={mainMatrix:a,tileMercatorCoords:[0,0,1,1],clippingPlane:[0,0,0,0],projectionTransition:0,fallbackMatrix:a};this.useProgram("clippingMask",null,!0).draw(e,r.TRIANGLES,vt.disabled,this.stencilClearMode,Kt.disabled,Bt.disabled,null,null,l,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(e,r,a){if(this.currentStencilSource===e.source||!e.isTileClipped()||!r||!r.length)return;this.currentStencilSource=e.source,this.nextStencilID+r.length>256&&this.clearStencil();const l=this.context;l.setColorMode(Kt.disabled),l.setDepthMode(vt.disabled);const h={};for(const g of r)h[g.key]=this.nextStencilID++;this._renderTileMasks(h,r,a,!0),this._renderTileMasks(h,r,a,!1),this._tileClippingMaskIDs=h}_renderTileMasks(e,r,a,l){const h=this.context,g=h.gl,b=this.style.projection,A=this.transform,I=this.useProgram("clippingMask");for(const D of r){const F=e[D.key],O=this.style.map.terrain&&this.style.map.terrain.getTerrainData(D),Z=b.getMeshFromTileID(this.context,D.canonical,l,!0,"stencil"),J=A.getProjectionData({overscaledTileID:D,applyGlobeMatrix:!a,applyTerrainMatrix:!0});I.draw(h,g.TRIANGLES,vt.disabled,new Ct({func:g.ALWAYS,mask:0},F,255,g.KEEP,g.KEEP,g.REPLACE),Kt.disabled,a?Bt.disabled:Bt.backCCW,null,O,J,"$clipping",Z.vertexBuffer,Z.indexBuffer,Z.segments)}}_renderTilesDepthBuffer(){const e=this.context,r=e.gl,a=this.style.projection,l=this.transform,h=this.useProgram("depth"),g=this.getDepthModeFor3D(),b=we(l,{tileSize:l.tileSize});for(const A of b){const I=this.style.map.terrain&&this.style.map.terrain.getTerrainData(A),D=a.getMeshFromTileID(this.context,A.canonical,!0,!0,"raster"),F=l.getProjectionData({overscaledTileID:A,applyGlobeMatrix:!0,applyTerrainMatrix:!0});h.draw(e,r.TRIANGLES,g,Ct.disabled,Kt.disabled,Bt.backCCW,null,I,F,"$clipping",D.vertexBuffer,D.indexBuffer,D.segments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const e=this.nextStencilID++,r=this.context.gl;return new Ct({func:r.NOTEQUAL,mask:255},e,255,r.KEEP,r.KEEP,r.REPLACE)}stencilModeForClipping(e){const r=this.context.gl;return new Ct({func:r.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,r.KEEP,r.KEEP,r.REPLACE)}getStencilConfigForOverlapAndUpdateStencilID(e){const r=this.context.gl,a=e.sort((g,b)=>b.overscaledZ-g.overscaledZ),l=a[a.length-1].overscaledZ,h=a[0].overscaledZ-l+1;if(h>1){this.currentStencilSource=void 0,this.nextStencilID+h>256&&this.clearStencil();const g={};for(let b=0;b<h;b++)g[b+l]=new Ct({func:r.GEQUAL,mask:255},b+this.nextStencilID,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID+=h,[g,a]}return[{[l]:Ct.disabled},a]}stencilConfigForOverlapTwoPass(e){const r=this.context.gl,a=e.sort((g,b)=>b.overscaledZ-g.overscaledZ),l=a[a.length-1].overscaledZ,h=a[0].overscaledZ-l+1;if(this.clearStencil(),h>1){const g={},b={};for(let A=0;A<h;A++)g[A+l]=new Ct({func:r.GREATER,mask:255},h+1+A,255,r.KEEP,r.KEEP,r.REPLACE),b[A+l]=new Ct({func:r.GREATER,mask:255},1+A,255,r.KEEP,r.KEEP,r.REPLACE);return this.nextStencilID=2*h+1,[g,b,a]}return this.nextStencilID=3,[{[l]:new Ct({func:r.GREATER,mask:255},2,255,r.KEEP,r.KEEP,r.REPLACE)},{[l]:new Ct({func:r.GREATER,mask:255},1,255,r.KEEP,r.KEEP,r.REPLACE)},a]}colorModeForRenderPass(){const e=this.context.gl;return this._showOverdrawInspector?new Kt([e.CONSTANT_COLOR,e.ONE],new s.b7(.125,.125,.125,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?Kt.unblended:Kt.alphaBlended}getDepthModeForSublayer(e,r,a){if(!this.opaquePassEnabledForLayer())return vt.disabled;const l=1-((1+this.currentLayer)*this.numSublayers+e)*this.depthEpsilon;return new vt(a||this.context.gl.LEQUAL,r,[l,l])}getDepthModeFor3D(){return new vt(this.context.gl.LEQUAL,vt.ReadWrite,this.depthRangeFor3D)}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(e,r){var a,l;this.style=e,this.options=r,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(M.now()),this.imageManager.beginFrame();const h=this.style._order,g=this.style.sourceCaches,b={},A={},I={},D={isRenderingToTexture:!1,isRenderingGlobe:((a=e.projection)===null||a===void 0?void 0:a.transitionState)>0};for(const O in g){const Z=g[O];Z.used&&Z.prepare(this.context),b[O]=Z.getVisibleCoordinates(!1),A[O]=b[O].slice().reverse(),I[O]=Z.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let O=0;O<h.length;O++)if(this.style._layers[h[O]].is3D()){this.opaquePassCutoff=O;break}this.maybeDrawDepthAndCoords(!1),this.renderToTexture&&(this.renderToTexture.prepareForRender(this.style,this.transform.zoom),this.opaquePassCutoff=0),this.renderPass="offscreen";for(const O of h){const Z=this.style._layers[O];if(!Z.hasOffscreenPass()||Z.isHidden(this.transform.zoom))continue;const J=A[Z.source];(Z.type==="custom"||J.length)&&this.renderLayer(this,g[Z.source],Z,J,D)}if((l=this.style.projection)===null||l===void 0||l.updateGPUdependent({context:this.context,useProgram:O=>this.useProgram(O)}),this.context.viewport.set([0,0,this.width,this.height]),this.context.bindFramebuffer.set(null),this.context.clear({color:r.showOverdrawInspector?s.b7.black:s.b7.transparent,depth:1}),this.clearStencil(),this.style.sky&&function(O,Z){const J=O.context,se=J.gl,ne=((be,ye,Te)=>{const Oe=Math.cos(ye.rollInRadians),Le=Math.sin(ye.rollInRadians),Re=ve(ye),ze=ye.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}).projectionTransition;return{u_sky_color:be.properties.get("sky-color"),u_horizon_color:be.properties.get("horizon-color"),u_horizon:[(ye.width/2-Re*Le)*Te,(ye.height/2+Re*Oe)*Te],u_horizon_normal:[-Le,Oe],u_sky_horizon_blend:be.properties.get("sky-horizon-blend")*ye.height/2*Te,u_sky_blend:ze}})(Z,O.style.map.transform,O.pixelRatio),oe=new vt(se.LEQUAL,vt.ReadWrite,[0,1]),ce=Ct.disabled,me=O.colorModeForRenderPass(),fe=O.useProgram("sky"),ge=Pi(J,Z);fe.draw(J,se.TRIANGLES,oe,ce,me,Bt.disabled,ne,null,void 0,"sky",ge.vertexBuffer,ge.indexBuffer,ge.segments)}(this,this.style.sky),this._showOverdrawInspector=r.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=h.length-1;this.currentLayer>=0;this.currentLayer--){const O=this.style._layers[h[this.currentLayer]],Z=g[O.source],J=b[O.source];this._renderTileClippingMasks(O,J,!1),this.renderLayer(this,Z,O,J,D)}this.renderPass="translucent";let F=!1;for(this.currentLayer=0;this.currentLayer<h.length;this.currentLayer++){const O=this.style._layers[h[this.currentLayer]],Z=g[O.source];if(this.renderToTexture&&this.renderToTexture.renderLayer(O,D))continue;this.opaquePassEnabledForLayer()||F||(F=!0,D.isRenderingGlobe&&!this.style.map.terrain&&this._renderTilesDepthBuffer());const J=(O.type==="symbol"?I:A)[O.source];this._renderTileClippingMasks(O,b[O.source],!!this.renderToTexture),this.renderLayer(this,Z,O,J,D)}if(D.isRenderingGlobe&&function(O,Z,J){const se=O.context,ne=se.gl,oe=O.useProgram("atmosphere"),ce=new vt(ne.LEQUAL,vt.ReadOnly,[0,1]),me=O.transform,fe=function(ze,Ye){const Qe=ze.properties.get("position"),We=[-Qe.x,-Qe.y,-Qe.z],at=s.ad(new Float64Array(16));return ze.properties.get("anchor")==="map"&&(s.a_(at,at,Ye.rollInRadians),s.a$(at,at,-Ye.pitchInRadians),s.a_(at,at,Ye.bearingInRadians),s.a$(at,at,Ye.center.lat*Math.PI/180),s.bp(at,at,-Ye.center.lng*Math.PI/180)),s.bZ(We,We,at),We}(J,O.transform),ge=me.getProjectionData({overscaledTileID:null,applyGlobeMatrix:!0,applyTerrainMatrix:!0}),be=Z.properties.get("atmosphere-blend")*ge.projectionTransition;if(be===0)return;const ye=Xn(me.worldSize,me.center.lat),Te=me.inverseProjectionMatrix,Oe=new Float64Array(4);Oe[3]=1,s.at(Oe,Oe,me.modelViewProjectionMatrix),Oe[0]/=Oe[3],Oe[1]/=Oe[3],Oe[2]/=Oe[3],Oe[3]=1,s.at(Oe,Oe,Te),Oe[0]/=Oe[3],Oe[1]/=Oe[3],Oe[2]/=Oe[3],Oe[3]=1;const Le=((ze,Ye,Qe,We,at)=>({u_sun_pos:ze,u_atmosphere_blend:Ye,u_globe_position:Qe,u_globe_radius:We,u_inv_proj_matrix:at}))(fe,be,[Oe[0],Oe[1],Oe[2]],ye,Te),Re=Pi(se,Z);oe.draw(se,ne.TRIANGLES,ce,Ct.disabled,Kt.alphaBlended,Bt.disabled,Le,null,null,"atmosphere",Re.vertexBuffer,Re.indexBuffer,Re.segments)}(this,this.style.sky,this.style.light),this.options.showTileBoundaries){const O=function(Z,J){let se=null;const ne=Object.values(Z._layers).flatMap(fe=>fe.source&&!fe.isHidden(J)?[Z.sourceCaches[fe.source]]:[]),oe=ne.filter(fe=>fe.getSource().type==="vector"),ce=ne.filter(fe=>fe.getSource().type!=="vector"),me=fe=>{(!se||se.getSource().maxzoom<fe.getSource().maxzoom)&&(se=fe)};return oe.forEach(fe=>me(fe)),se||ce.forEach(fe=>me(fe)),se}(this.style,this.transform.zoom);O&&function(Z,J,se){for(let ne=0;ne<se.length;ne++)kr(Z,J,se[ne])}(this,O,O.getVisibleCoordinates())}this.options.showPadding&&function(O){const Z=O.transform.padding;ga(O,O.transform.height-(Z.top||0),3,fa),ga(O,Z.bottom||0,3,Al),Du(O,Z.left||0,3,Ru),Du(O,O.transform.width-(Z.right||0),3,zu);const J=O.transform.centerPoint;(function(se,ne,oe,ce){go(se,ne-1,oe-10,2,20,ce),go(se,ne-10,oe-1,20,2,ce)})(O,J.x,O.transform.height-J.y,ma)}(this),this.context.setDefault()}maybeDrawDepthAndCoords(e){if(!this.style||!this.style.map||!this.style.map.terrain)return;const r=this.terrainFacilitator.matrix,a=this.transform.modelViewProjectionMatrix;let l=this.terrainFacilitator.dirty;l||(l=e?!s.c0(r,a):!s.c1(r,a)),l||(l=this.style.map.terrain.sourceCache.anyTilesAfterTime(this.terrainFacilitator.renderTime)),l&&(s.c2(r,a),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(h,g){const b=h.context,A=b.gl,I=h.transform,D=Kt.unblended,F=new vt(A.LEQUAL,vt.ReadWrite,[0,1]),O=g.sourceCache.getRenderableTiles(),Z=h.useProgram("terrainDepth");b.bindFramebuffer.set(g.getFramebuffer("depth").framebuffer),b.viewport.set([0,0,h.width/devicePixelRatio,h.height/devicePixelRatio]),b.clear({color:s.b7.transparent,depth:1});for(const J of O){const se=g.getTerrainMesh(J.tileID),ne=g.getTerrainData(J.tileID),oe=I.getProjectionData({overscaledTileID:J.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0}),ce={u_ele_delta:g.getMeshFrameDelta(I.zoom)};Z.draw(b,A.TRIANGLES,F,Ct.disabled,D,Bt.backCCW,ce,ne,oe,"terrain",se.vertexBuffer,se.indexBuffer,se.segments)}b.bindFramebuffer.set(null),b.viewport.set([0,0,h.width,h.height])}(this,this.style.map.terrain),function(h,g){const b=h.context,A=b.gl,I=h.transform,D=Kt.unblended,F=new vt(A.LEQUAL,vt.ReadWrite,[0,1]),O=g.getCoordsTexture(),Z=g.sourceCache.getRenderableTiles(),J=h.useProgram("terrainCoords");b.bindFramebuffer.set(g.getFramebuffer("coords").framebuffer),b.viewport.set([0,0,h.width/devicePixelRatio,h.height/devicePixelRatio]),b.clear({color:s.b7.transparent,depth:1}),g.coordsIndex=[];for(const se of Z){const ne=g.getTerrainMesh(se.tileID),oe=g.getTerrainData(se.tileID);b.activeTexture.set(A.TEXTURE0),A.bindTexture(A.TEXTURE_2D,O.texture);const ce={u_terrain_coords_id:(255-g.coordsIndex.length)/255,u_texture:0,u_ele_delta:g.getMeshFrameDelta(I.zoom)},me=I.getProjectionData({overscaledTileID:se.tileID,applyTerrainMatrix:!1,applyGlobeMatrix:!0});J.draw(b,A.TRIANGLES,F,Ct.disabled,D,Bt.backCCW,ce,oe,me,"terrain",ne.vertexBuffer,ne.indexBuffer,ne.segments),g.coordsIndex.push(se.tileID.key)}b.bindFramebuffer.set(null),b.viewport.set([0,0,h.width,h.height])}(this,this.style.map.terrain))}renderLayer(e,r,a,l,h){a.isHidden(this.transform.zoom)||(a.type==="background"||a.type==="custom"||(l||[]).length)&&(this.id=a.id,s.c3(a)?function(g,b,A,I,D,F){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:O}=F,Z=Ct.disabled,J=g.colorModeForRenderPass();(A._unevaluatedLayout.hasValue("text-variable-anchor")||A._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&function(se,ne,oe,ce,me,fe,ge,be,ye){const Te=ne.transform,Oe=ne.style.map.terrain,Le=me==="map",Re=fe==="map";for(const ze of se){const Ye=ce.getTile(ze),Qe=Ye.getBucket(oe);if(!Qe||!Qe.text||!Qe.text.segments.get().length)continue;const We=s.ak(Qe.textSizeData,Te.zoom),at=s.az(Ye,1,ne.transform.zoom),Et=ht(Le,ne.transform,at),Vt=oe.layout.get("icon-text-fit")!=="none"&&Qe.hasIconData();if(We){const ur=Math.pow(2,Te.zoom-Ye.tileID.overscaledZ),Qt=Oe?(hr,pr)=>Oe.getElevation(ze,hr,pr):null;Mu(Qe,Le,Re,ye,Te,Et,ur,We,Vt,s.aA(Te,Ye,ge,be),ze.toUnwrapped(),Qt)}}}(I,g,A,b,A.layout.get("text-rotation-alignment"),A.layout.get("text-pitch-alignment"),A.paint.get("text-translate"),A.paint.get("text-translate-anchor"),D),A.paint.get("icon-opacity").constantOr(1)!==0&&ua(g,b,A,I,!1,A.paint.get("icon-translate"),A.paint.get("icon-translate-anchor"),A.layout.get("icon-rotation-alignment"),A.layout.get("icon-pitch-alignment"),A.layout.get("icon-keep-upright"),Z,J,O),A.paint.get("text-opacity").constantOr(1)!==0&&ua(g,b,A,I,!0,A.paint.get("text-translate"),A.paint.get("text-translate-anchor"),A.layout.get("text-rotation-alignment"),A.layout.get("text-pitch-alignment"),A.layout.get("text-keep-upright"),Z,J,O),b.map.showCollisionBoxes&&(bl(g,b,A,I,!0),bl(g,b,A,I,!1))}(e,r,a,l,this.style.placement.variableOffsets,h):s.c4(a)?function(g,b,A,I,D){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:F}=D,O=A.paint.get("circle-opacity"),Z=A.paint.get("circle-stroke-width"),J=A.paint.get("circle-stroke-opacity"),se=!A.layout.get("circle-sort-key").isConstant();if(O.constantOr(1)===0&&(Z.constantOr(1)===0||J.constantOr(1)===0))return;const ne=g.context,oe=ne.gl,ce=g.transform,me=g.getDepthModeForSublayer(0,vt.ReadOnly),fe=Ct.disabled,ge=g.colorModeForRenderPass(),be=[],ye=ce.getCircleRadiusCorrection();for(let Te=0;Te<I.length;Te++){const Oe=I[Te],Le=b.getTile(Oe),Re=Le.getBucket(A);if(!Re)continue;const ze=A.paint.get("circle-translate"),Ye=A.paint.get("circle-translate-anchor"),Qe=s.aA(ce,Le,ze,Ye),We=Re.programConfigurations.get(A.id),at=g.useProgram("circle",We),Et=Re.layoutVertexBuffer,Vt=Re.indexBuffer,ur=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Oe),Qt={programConfiguration:We,program:at,layoutVertexBuffer:Et,indexBuffer:Vt,uniformValues:oo(g,Le,A,Qe,ye),terrainData:ur,projectionData:ce.getProjectionData({overscaledTileID:Oe,applyGlobeMatrix:!F,applyTerrainMatrix:!0})};if(se){const hr=Re.segments.get();for(const pr of hr)be.push({segments:new s.aJ([pr]),sortKey:pr.sortKey,state:Qt})}else be.push({segments:Re.segments,sortKey:0,state:Qt})}se&&be.sort((Te,Oe)=>Te.sortKey-Oe.sortKey);for(const Te of be){const{programConfiguration:Oe,program:Le,layoutVertexBuffer:Re,indexBuffer:ze,uniformValues:Ye,terrainData:Qe,projectionData:We}=Te.state;Le.draw(ne,oe.TRIANGLES,me,fe,ge,Bt.backCCW,Ye,Qe,We,A.id,Re,ze,Te.segments,A.paint,g.transform.zoom,Oe)}}(e,r,a,l,h):s.c5(a)?function(g,b,A,I,D){if(A.paint.get("heatmap-opacity")===0)return;const F=g.context,{isRenderingToTexture:O,isRenderingGlobe:Z}=D;if(g.style.map.terrain){for(const J of I){const se=b.getTile(J);b.hasRenderableParent(J)||(g.renderPass==="offscreen"?ha(g,se,A,J,Z):g.renderPass==="translucent"&&vl(g,A,J,O,Z))}F.viewport.set([0,0,g.width,g.height])}else g.renderPass==="offscreen"?function(J,se,ne,oe){const ce=J.context,me=ce.gl,fe=J.transform,ge=Ct.disabled,be=new Kt([me.ONE,me.ONE],s.b7.transparent,[!0,!0,!0,!0]);(function(ye,Te,Oe){const Le=ye.gl;ye.activeTexture.set(Le.TEXTURE1),ye.viewport.set([0,0,Te.width/4,Te.height/4]);let Re=Oe.heatmapFbos.get(s.bW);Re?(Le.bindTexture(Le.TEXTURE_2D,Re.colorAttachment.get()),ye.bindFramebuffer.set(Re.framebuffer)):(Re=pa(ye,Te.width/4,Te.height/4),Oe.heatmapFbos.set(s.bW,Re))})(ce,J,ne),ce.clear({color:s.b7.transparent});for(let ye=0;ye<oe.length;ye++){const Te=oe[ye];if(se.hasRenderableParent(Te))continue;const Oe=se.getTile(Te),Le=Oe.getBucket(ne);if(!Le)continue;const Re=Le.programConfigurations.get(ne.id),ze=J.useProgram("heatmap",Re),Ye=fe.getProjectionData({overscaledTileID:Te,applyGlobeMatrix:!0,applyTerrainMatrix:!1}),Qe=fe.getCircleRadiusCorrection();ze.draw(ce,me.TRIANGLES,vt.disabled,ge,be,Bt.backCCW,$n(Oe,fe.zoom,ne.paint.get("heatmap-intensity"),Qe),null,Ye,ne.id,Le.layoutVertexBuffer,Le.indexBuffer,Le.segments,ne.paint,fe.zoom,Re)}ce.viewport.set([0,0,J.width,J.height])}(g,b,A,I):g.renderPass==="translucent"&&function(J,se){const ne=J.context,oe=ne.gl;ne.setColorMode(J.colorModeForRenderPass());const ce=se.heatmapFbos.get(s.bW);ce&&(ne.activeTexture.set(oe.TEXTURE0),oe.bindTexture(oe.TEXTURE_2D,ce.colorAttachment.get()),ne.activeTexture.set(oe.TEXTURE1),wl(ne,se).bind(oe.LINEAR,oe.CLAMP_TO_EDGE),J.useProgram("heatmapTexture").draw(ne,oe.TRIANGLES,vt.disabled,Ct.disabled,J.colorModeForRenderPass(),Bt.disabled,du(J,se,0,1),null,null,se.id,J.viewportBuffer,J.quadTriangleIndexBuffer,J.viewportSegments,se.paint,J.transform.zoom))}(g,A)}(e,r,a,l,h):s.c6(a)?function(g,b,A,I,D){if(g.renderPass!=="translucent")return;const{isRenderingToTexture:F}=D,O=A.paint.get("line-opacity"),Z=A.paint.get("line-width");if(O.constantOr(1)===0||Z.constantOr(1)===0)return;const J=g.getDepthModeForSublayer(0,vt.ReadOnly),se=g.colorModeForRenderPass(),ne=A.paint.get("line-dasharray"),oe=A.paint.get("line-pattern"),ce=oe.constantOr(1),me=A.paint.get("line-gradient"),fe=A.getCrossfadeParameters(),ge=ce?"linePattern":ne?"lineSDF":me?"lineGradient":"line",be=g.context,ye=be.gl,Te=g.transform;let Oe=!0;for(const Le of I){const Re=b.getTile(Le);if(ce&&!Re.patternsLoaded())continue;const ze=Re.getBucket(A);if(!ze)continue;const Ye=ze.programConfigurations.get(A.id),Qe=g.context.program.get(),We=g.useProgram(ge,Ye),at=Oe||We.program!==Qe,Et=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Le),Vt=oe.constantOr(null);if(Vt&&Re.imageAtlas){const $t=Re.imageAtlas,Ut=$t.patternPositions[Vt.to.toString()],Or=$t.patternPositions[Vt.from.toString()];Ut&&Or&&Ye.setConstantPatternPositions(Ut,Or)}const ur=Te.getProjectionData({overscaledTileID:Le,applyGlobeMatrix:!F,applyTerrainMatrix:!0}),Qt=Te.getPixelScale(),hr=ce?yu(g,Re,A,Qt,fe):ne?_u(g,Re,A,Qt,ne,fe):me?gu(g,Re,A,Qt,ze.lineClipsArray.length):ao(g,Re,A,Qt);if(ce)be.activeTexture.set(ye.TEXTURE0),Re.imageAtlasTexture.bind(ye.LINEAR,ye.CLAMP_TO_EDGE),Ye.updatePaintBuffers(fe);else if(ne&&(at||g.lineAtlas.dirty))be.activeTexture.set(ye.TEXTURE0),g.lineAtlas.bind(be);else if(me){const $t=ze.gradients[A.id];let Ut=$t.texture;if(A.gradientVersion!==$t.version){let Or=256;if(A.stepInterpolant){const Zr=b.getSource().maxzoom,$r=Le.canonical.z===Zr?Math.ceil(1<<g.transform.maxZoom-Le.canonical.z):1;Or=s.ae(s.bX(ze.maxLineLength/s.Z*1024*$r),256,be.maxTextureSize)}$t.gradient=s.bY({expression:A.gradientExpression(),evaluationKey:"lineProgress",resolution:Or,image:$t.gradient||void 0,clips:ze.lineClipsArray}),$t.texture?$t.texture.update($t.gradient):$t.texture=new Ze(be,$t.gradient,ye.RGBA),$t.version=A.gradientVersion,Ut=$t.texture}be.activeTexture.set(ye.TEXTURE0),Ut.bind(A.stepInterpolant?ye.NEAREST:ye.LINEAR,ye.CLAMP_TO_EDGE)}const pr=g.stencilModeForClipping(Le);We.draw(be,ye.TRIANGLES,J,pr,se,Bt.disabled,hr,Et,ur,A.id,ze.layoutVertexBuffer,ze.indexBuffer,ze.segments,A.paint,g.transform.zoom,Ye,ze.layoutVertexBuffer2),Oe=!1}}(e,r,a,l,h):s.c7(a)?function(g,b,A,I,D){const F=A.paint.get("fill-color"),O=A.paint.get("fill-opacity");if(O.constantOr(1)===0)return;const{isRenderingToTexture:Z}=D,J=g.colorModeForRenderPass(),se=A.paint.get("fill-pattern"),ne=g.opaquePassEnabledForLayer()&&!se.constantOr(1)&&F.constantOr(s.b7.transparent).a===1&&O.constantOr(0)===1?"opaque":"translucent";if(g.renderPass===ne){const oe=g.getDepthModeForSublayer(1,g.renderPass==="opaque"?vt.ReadWrite:vt.ReadOnly);po(g,b,A,I,oe,J,!1,Z)}if(g.renderPass==="translucent"&&A.paint.get("fill-antialias")){const oe=g.getDepthModeForSublayer(A.getPaintProperty("fill-outline-color")?2:0,vt.ReadOnly);po(g,b,A,I,oe,J,!0,Z)}}(e,r,a,l,h):s.c8(a)?function(g,b,A,I,D){const F=A.paint.get("fill-extrusion-opacity");if(F===0)return;const{isRenderingToTexture:O}=D;if(g.renderPass==="translucent"){const Z=new vt(g.context.gl.LEQUAL,vt.ReadWrite,g.depthRangeFor3D);if(F!==1||A.paint.get("fill-extrusion-pattern").constantOr(1))fo(g,b,A,I,Z,Ct.disabled,Kt.disabled,O),fo(g,b,A,I,Z,g.stencilModeFor3D(),g.colorModeForRenderPass(),O);else{const J=g.colorModeForRenderPass();fo(g,b,A,I,Z,Ct.disabled,J,O)}}}(e,r,a,l,h):s.c9(a)?function(g,b,A,I,D){if(g.renderPass!=="offscreen"&&g.renderPass!=="translucent")return;const{isRenderingToTexture:F}=D,O=g.context,Z=g.style.projection.useSubdivision,J=g.getDepthModeForSublayer(0,vt.ReadOnly),se=g.colorModeForRenderPass();if(g.renderPass==="offscreen")(function(ne,oe,ce,me,fe,ge,be){const ye=ne.context,Te=ye.gl;for(const Oe of ce){const Le=oe.getTile(Oe),Re=Le.dem;if(!Re||!Re.data||!Le.needsHillshadePrepare)continue;const ze=Re.dim,Ye=Re.stride,Qe=Re.getPixels();if(ye.activeTexture.set(Te.TEXTURE1),ye.pixelStoreUnpackPremultiplyAlpha.set(!1),Le.demTexture=Le.demTexture||ne.getTileTexture(Ye),Le.demTexture){const at=Le.demTexture;at.update(Qe,{premultiply:!1}),at.bind(Te.NEAREST,Te.CLAMP_TO_EDGE)}else Le.demTexture=new Ze(ye,Qe,Te.RGBA,{premultiply:!1}),Le.demTexture.bind(Te.NEAREST,Te.CLAMP_TO_EDGE);ye.activeTexture.set(Te.TEXTURE0);let We=Le.fbo;if(!We){const at=new Ze(ye,{width:ze,height:ze,data:null},Te.RGBA);at.bind(Te.LINEAR,Te.CLAMP_TO_EDGE),We=Le.fbo=ye.createFramebuffer(ze,ze,!0,!1),We.colorAttachment.set(at.texture)}ye.bindFramebuffer.set(We.framebuffer),ye.viewport.set([0,0,ze,ze]),ne.useProgram("hillshadePrepare").draw(ye,Te.TRIANGLES,fe,ge,be,Bt.disabled,ap(Le.tileID,Re),null,null,me.id,ne.rasterBoundsBuffer,ne.quadTriangleIndexBuffer,ne.rasterBoundsSegments),Le.needsHillshadePrepare=!1}})(g,b,I,A,J,Ct.disabled,se),O.viewport.set([0,0,g.width,g.height]);else if(g.renderPass==="translucent")if(Z){const[ne,oe,ce]=g.stencilConfigForOverlapTwoPass(I);Sl(g,b,A,ce,ne,J,se,!1,F),Sl(g,b,A,ce,oe,J,se,!0,F)}else{const[ne,oe]=g.getStencilConfigForOverlapAndUpdateStencilID(I);Sl(g,b,A,oe,ne,J,se,!1,F)}}(e,r,a,l,h):s.ca(a)?function(g,b,A,I,D){if(g.renderPass!=="translucent"||A.paint.get("raster-opacity")===0||!I.length)return;const{isRenderingToTexture:F}=D,O=b.getSource(),Z=g.style.projection.useSubdivision;if(O instanceof Jt)da(g,b,A,I,null,!1,!1,O.tileCoords,O.flippedWindingOrder,F);else if(Z){const[J,se,ne]=g.stencilConfigForOverlapTwoPass(I);da(g,b,A,ne,J,!1,!0,mo,!1,F),da(g,b,A,ne,se,!0,!0,mo,!1,F)}else{const[J,se]=g.getStencilConfigForOverlapAndUpdateStencilID(I);da(g,b,A,se,J,!1,!0,mo,!1,F)}}(e,r,a,l,h):s.cb(a)?function(g,b,A,I,D){const F=A.paint.get("background-color"),O=A.paint.get("background-opacity");if(O===0)return;const{isRenderingToTexture:Z}=D,J=g.context,se=J.gl,ne=g.style.projection,oe=g.transform,ce=oe.tileSize,me=A.paint.get("background-pattern");if(g.isPatternMissing(me))return;const fe=!me&&F.a===1&&O===1&&g.opaquePassEnabledForLayer()?"opaque":"translucent";if(g.renderPass!==fe)return;const ge=Ct.disabled,be=g.getDepthModeForSublayer(0,fe==="opaque"?vt.ReadWrite:vt.ReadOnly),ye=g.colorModeForRenderPass(),Te=g.useProgram(me?"backgroundPattern":"background"),Oe=I||we(oe,{tileSize:ce,terrain:g.style.map.terrain});me&&(J.activeTexture.set(se.TEXTURE0),g.imageManager.bind(g.context));const Le=A.getCrossfadeParameters();for(const Re of Oe){const ze=oe.getProjectionData({overscaledTileID:Re,applyGlobeMatrix:!Z,applyTerrainMatrix:!0}),Ye=me?cp(O,g,me,{tileID:Re,tileSize:ce},Le):lp(O,F),Qe=g.style.map.terrain&&g.style.map.terrain.getTerrainData(Re),We=ne.getMeshFromTileID(J,Re.canonical,!1,!0,"raster");Te.draw(J,se.TRIANGLES,be,ge,ye,Bt.backCCW,Ye,Qe,ze,A.id,We.vertexBuffer,We.indexBuffer,We.segments)}}(e,0,a,l,h):s.cc(a)&&function(g,b,A,I){const{isRenderingGlobe:D}=I,F=g.context,O=A.implementation,Z=g.style.projection,J=g.transform,se=J.getProjectionDataForCustomLayer(D),ne={farZ:J.farZ,nearZ:J.nearZ,fov:J.fov*Math.PI/180,modelViewProjectionMatrix:J.modelViewProjectionMatrix,projectionMatrix:J.projectionMatrix,shaderData:{variantName:Z.shaderVariantName,vertexShaderPrelude:`const float PI = 3.141592653589793;
|
|
740
|
-
uniform mat4 u_projection_matrix;
|
|
741
|
-
${Z.shaderPreludeCode.vertexSource}`,define:Z.shaderDefine},defaultProjectionData:se},oe=O.renderingMode?O.renderingMode:"2d";if(g.renderPass==="offscreen"){const ce=O.prerender;ce&&(g.setCustomLayerDefaults(),F.setColorMode(g.colorModeForRenderPass()),ce.call(O,F.gl,ne),F.setDirty(),g.setBaseState())}else if(g.renderPass==="translucent"){g.setCustomLayerDefaults(),F.setColorMode(g.colorModeForRenderPass()),F.setStencilMode(Ct.disabled);const ce=oe==="3d"?g.getDepthModeFor3D():g.getDepthModeForSublayer(0,vt.ReadOnly);F.setDepthMode(ce),O.render(F.gl,ne),F.setDirty(),g.setBaseState(),F.bindFramebuffer.set(null)}}(e,0,a,h))}saveTileTexture(e){const r=this._tileTextures[e.size[0]];r?r.push(e):this._tileTextures[e.size[0]]=[e]}getTileTexture(e){const r=this._tileTextures[e];return r&&r.length>0?r.pop():null}isPatternMissing(e){if(!e)return!1;if(!e.from||!e.to)return!0;const r=this.imageManager.getPattern(e.from.toString()),a=this.imageManager.getPattern(e.to.toString());return!r||!a}useProgram(e,r,a=!1,l=[]){this.cache=this.cache||{};const h=!!this.style.map.terrain,g=this.style.projection,b=a?ui.projectionMercator:g.shaderPreludeCode,A=a?Gn:g.shaderDefine,I=e+(r?r.cacheKey:"")+`/${a?Dt:g.shaderVariantName}`+(this._showOverdrawInspector?"/overdraw":"")+(h?"/terrain":"")+(l?`/${l.join("/")}`:"");return this.cache[I]||(this.cache[I]=new Go(this.context,ui[e],r,wu[e],this._showOverdrawInspector,h,b,A,l)),this.cache[I]}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 e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new Ze(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:e,drawingBufferHeight:r}=this.context.gl;return this.width!==e||this.height!==r}}function yo(u,e){let r,a=!1,l=null,h=null;const g=()=>{l=null,a&&(u.apply(h,r),l=setTimeout(g,e),a=!1)};return(...b)=>(a=!0,h=this,r=b,l||g(),l)}class Tl{constructor(e){this._getCurrentHash=()=>{const r=window.location.hash.replace("#","");if(this._hashName){let a;return r.split("&").map(l=>l.split("=")).forEach(l=>{l[0]===this._hashName&&(a=l)}),(a&&a[1]||"").split("/")}return r.split("/")},this._onHashChange=()=>{const r=this._getCurrentHash();if(!this._isValidHash(r))return!1;const a=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(r[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+r[2],+r[1]],zoom:+r[0],bearing:a,pitch:+(r[4]||0)}),!0},this._updateHashUnthrottled=()=>{const r=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,r)},this._removeHash=()=>{const r=this._getCurrentHash();if(r.length===0)return;const a=r.join("/");let l=a;l.split("&").length>0&&(l=l.split("&")[0]),this._hashName&&(l=`${this._hashName}=${a}`);let h=window.location.hash.replace(l,"");h.startsWith("#&")?h=h.slice(0,1)+h.slice(2):h==="#"&&(h="");let g=window.location.href.replace(/(#.+)?$/,h);g=g.replace("&&","&"),window.history.replaceState(window.history.state,null,g)},this._updateHash=yo(this._updateHashUnthrottled,300),this._hashName=e&&encodeURIComponent(e)}addTo(e){return this._map=e,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(e){const r=this._map.getCenter(),a=Math.round(100*this._map.getZoom())/100,l=Math.ceil((a*Math.LN2+Math.log(512/360/.5))/Math.LN10),h=Math.pow(10,l),g=Math.round(r.lng*h)/h,b=Math.round(r.lat*h)/h,A=this._map.getBearing(),I=this._map.getPitch();let D="";if(D+=e?`/${g}/${b}/${a}`:`${a}/${b}/${g}`,(A||I)&&(D+="/"+Math.round(10*A)/10),I&&(D+=`/${Math.round(I)}`),this._hashName){const F=this._hashName;let O=!1;const Z=window.location.hash.slice(1).split("&").map(J=>{const se=J.split("=")[0];return se===F?(O=!0,`${se}=${D}`):J}).filter(J=>J);return O||Z.push(`${F}=${D}`),`#${Z.join("&")}`}return`#${D}`}_isValidHash(e){if(e.length<3||e.some(isNaN))return!1;try{new s.Q(+e[2],+e[1])}catch{return!1}const r=+e[0],a=+(e[3]||0),l=+(e[4]||0);return r>=this._map.getMinZoom()&&r<=this._map.getMaxZoom()&&a>=-180&&a<=180&&l>=this._map.getMinPitch()&&l<=this._map.getMaxPitch()}}const on={linearity:.3,easing:s.cd(0,0,.3,1)},Cl=s.e({deceleration:2500,maxSpeed:1400},on),_o=s.e({deceleration:20,maxSpeed:1400},on),El=s.e({deceleration:1e3,maxSpeed:360},on),Bu=s.e({deceleration:1e3,maxSpeed:90},on),Vu=s.e({deceleration:1e3,maxSpeed:360},on);class Ou{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:M.now(),settings:e})}_drainInertiaBuffer(){const e=this._inertiaBuffer,r=M.now();for(;e.length>0&&r-e[0].time>160;)e.shift()}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const r={zoom:0,bearing:0,pitch:0,roll:0,pan:new s.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:h}of this._inertiaBuffer)r.zoom+=h.zoomDelta||0,r.bearing+=h.bearingDelta||0,r.pitch+=h.pitchDelta||0,r.roll+=h.rollDelta||0,h.panDelta&&r.pan._add(h.panDelta),h.around&&(r.around=h.around),h.pinchAround&&(r.pinchAround=h.pinchAround);const a=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,l={};if(r.pan.mag()){const h=As(r.pan.mag(),a,s.e({},Cl,e||{})),g=r.pan.mult(h.amount/r.pan.mag()),b=this._map.cameraHelper.handlePanInertia(g,this._map.transform);l.center=b.easingCenter,l.offset=b.easingOffset,Ss(l,h)}if(r.zoom){const h=As(r.zoom,a,_o);l.zoom=this._map.transform.zoom+h.amount,Ss(l,h)}if(r.bearing){const h=As(r.bearing,a,El);l.bearing=this._map.transform.bearing+s.ae(h.amount,-179,179),Ss(l,h)}if(r.pitch){const h=As(r.pitch,a,Bu);l.pitch=this._map.transform.pitch+h.amount,Ss(l,h)}if(r.roll){const h=As(r.roll,a,Vu);l.roll=this._map.transform.roll+s.ae(h.amount,-179,179),Ss(l,h)}if(l.zoom||l.bearing){const h=r.pinchAround===void 0?r.around:r.pinchAround;l.around=h?this._map.unproject(h):this._map.getCenter()}return this.clear(),s.e(l,{noMoveStart:!0})}}function Ss(u,e){(!u.duration||u.duration<e.duration)&&(u.duration=e.duration,u.easing=e.easing)}function As(u,e,r){const{maxSpeed:a,linearity:l,deceleration:h}=r,g=s.ae(u*l/(e/1e3),-a,a),b=Math.abs(g)/(h*l);return{easing:r.easing,duration:1e3*b,amount:g*(b/2)}}class Vr extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a,l={}){a=a instanceof MouseEvent?a:new MouseEvent(e,a);const h=C.mousePos(r.getCanvas(),a),g=r.unproject(h);super(e,s.e({point:h,lngLat:g,originalEvent:a},l)),this._defaultPrevented=!1,this.target=r}}class ks extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){const l=e==="touchend"?a.changedTouches:a.touches,h=C.touchPos(r.getCanvasContainer(),l),g=h.map(A=>r.unproject(A)),b=h.reduce((A,I,D,F)=>A.add(I.div(F.length)),new s.P(0,0));super(e,{points:h,point:b,lngLats:g,lngLat:r.unproject(b),originalEvent:a}),this._defaultPrevented=!1}}class Pl extends s.l{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,r,a){super(e,{originalEvent:a}),this._defaultPrevented=!1}}class Fu{constructor(e,r){this._map=e,this._clickTolerance=r.clickTolerance}reset(){delete this._mousedownPos}wheel(e){return this._firePreventable(new Pl(e.type,this._map,e))}mousedown(e,r){return this._mousedownPos=r,this._firePreventable(new Vr(e.type,this._map,e))}mouseup(e){this._map.fire(new Vr(e.type,this._map,e))}click(e,r){this._mousedownPos&&this._mousedownPos.dist(r)>=this._clickTolerance||this._map.fire(new Vr(e.type,this._map,e))}dblclick(e){return this._firePreventable(new Vr(e.type,this._map,e))}mouseover(e){this._map.fire(new Vr(e.type,this._map,e))}mouseout(e){this._map.fire(new Vr(e.type,this._map,e))}touchstart(e){return this._firePreventable(new ks(e.type,this._map,e))}touchmove(e){this._map.fire(new ks(e.type,this._map,e))}touchend(e){this._map.fire(new ks(e.type,this._map,e))}touchcancel(e){this._map.fire(new ks(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Nu{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(e){this._map.fire(new Vr(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Vr("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._ignoreContextMenu||this._map.fire(new Vr(e.type,this._map,e)),this._map.listens("contextmenu")&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Ts{constructor(e){this._map=e}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(e){return this.transform.screenPointToLocation(s.P.convert(e),this._map.terrain)}}class Il{constructor(e,r){this._map=e,this._tr=new Ts(e),this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=r.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,r){this.isEnabled()&&e.shiftKey&&e.button===0&&(C.disableDrag(),this._startPos=this._lastPos=r,this._active=!0)}mousemoveWindow(e,r){if(!this._active)return;const a=r;if(this._lastPos.equals(a)||!this._box&&a.dist(this._startPos)<this._clickTolerance)return;const l=this._startPos;this._lastPos=a,this._box||(this._box=C.create("div","maplibregl-boxzoom",this._container),this._container.classList.add("maplibregl-crosshair"),this._fireEvent("boxzoomstart",e));const h=Math.min(l.x,a.x),g=Math.max(l.x,a.x),b=Math.min(l.y,a.y),A=Math.max(l.y,a.y);C.setTransform(this._box,`translate(${h}px,${b}px)`),this._box.style.width=g-h+"px",this._box.style.height=A-b+"px"}mouseupWindow(e,r){if(!this._active||e.button!==0)return;const a=this._startPos,l=r;if(this.reset(),C.suppressClick(),a.x!==l.x||a.y!==l.y)return this._map.fire(new s.l("boxzoomend",{originalEvent:e})),{cameraAnimation:h=>h.fitScreenCoordinates(a,l,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e)}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",e))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(C.remove(this._box),this._box=null),C.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(e,r){return this._map.fire(new s.l(e,{originalEvent:r}))}}function ya(u,e){if(u.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${u.length}, points ${e.length}`);const r={};for(let a=0;a<u.length;a++)r[u[a].identifier]=e[a];return r}class qu{constructor(e){this.reset(),this.numTouches=e.numTouches}reset(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1}touchstart(e,r,a){(this.centroid||a.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=e.timeStamp),a.length===this.numTouches&&(this.centroid=function(l){const h=new s.P(0,0);for(const g of l)h._add(g);return h.div(l.length)}(r),this.touches=ya(a,r)))}touchmove(e,r,a){if(this.aborted||!this.centroid)return;const l=ya(a,r);for(const h in this.touches){const g=l[h];(!g||g.dist(this.touches[h])>30)&&(this.aborted=!0)}}touchend(e,r,a){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),a.length===0){const l=!this.aborted&&this.centroid;if(this.reset(),l)return l}}}class Cs{constructor(e){this.singleTap=new qu(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(e,r,a){this.singleTap.touchstart(e,r,a)}touchmove(e,r,a){this.singleTap.touchmove(e,r,a)}touchend(e,r,a){const l=this.singleTap.touchend(e,r,a);if(l){const h=e.timeStamp-this.lastTime<500,g=!this.lastTap||this.lastTap.dist(l)<30;if(h&&g||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=l,this.count===this.numTaps)return this.reset(),l}}}class Uu{constructor(e){this._tr=new Ts(e),this._zoomIn=new Cs({numTouches:1,numTaps:2}),this._zoomOut=new Cs({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,r,a){this._zoomIn.touchstart(e,r,a),this._zoomOut.touchstart(e,r,a)}touchmove(e,r,a){this._zoomIn.touchmove(e,r,a),this._zoomOut.touchmove(e,r,a)}touchend(e,r,a){const l=this._zoomIn.touchend(e,r,a),h=this._zoomOut.touchend(e,r,a),g=this._tr;return l?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom+1,around:g.unproject(l)},{originalEvent:e})}):h?(this._active=!0,e.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:b=>b.easeTo({duration:300,zoom:g.zoom-1,around:g.unproject(h)},{originalEvent:e})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class oi{constructor(e){this._enabled=!!e.enable,this._moveStateManager=e.moveStateManager,this._clickTolerance=e.clickTolerance||1,this._moveFunction=e.move,this._activateOnStart=!!e.activateOnStart,e.assignEvents(this),this.reset()}reset(e){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(e)}_move(...e){const r=this._moveFunction(...e);if(r.bearingDelta||r.pitchDelta||r.rollDelta||r.around||r.panDelta)return this._active=!0,r}dragStart(e,r){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(e)&&(this._moveStateManager.startMove(e),this._lastPoint=Array.isArray(r)?r[0]:r,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(e,r){if(!this.isEnabled())return;const a=this._lastPoint;if(!a)return;if(e.preventDefault(),!this._moveStateManager.isValidMoveEvent(e))return void this.reset(e);const l=Array.isArray(r)?r[0]:r;return!this._moved&&l.dist(a)<this._clickTolerance?void 0:(this._moved=!0,this._lastPoint=l,this._move(a,l))}dragEnd(e){this.isEnabled()&&this._lastPoint&&this._moveStateManager.isValidEndEvent(e)&&(this._moved&&C.suppressClick(),this.reset(e))}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}getClickTolerance(){return this._clickTolerance}}const Ki={0:1,2:2};class Es{constructor(e){this._correctEvent=e.checkCorrectEvent}startMove(e){const r=C.mouseButton(e);this._eventButton=r}endMove(e){delete this._eventButton}isValidStartEvent(e){return this._correctEvent(e)}isValidMoveEvent(e){return!function(r,a){const l=Ki[a];return r.buttons===void 0||(r.buttons&l)!==l}(e,this._eventButton)}isValidEndEvent(e){return C.mouseButton(e)===this._eventButton}}class Gi{constructor(){this._firstTouch=void 0}_isOneFingerTouch(e){return e.targetTouches.length===1}_isSameTouchEvent(e){return e.targetTouches[0].identifier===this._firstTouch}startMove(e){this._firstTouch=e.targetTouches[0].identifier}endMove(e){delete this._firstTouch}isValidStartEvent(e){return this._isOneFingerTouch(e)}isValidMoveEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}isValidEndEvent(e){return this._isOneFingerTouch(e)&&this._isSameTouchEvent(e)}}class Ps{constructor(e=new Es({checkCorrectEvent:()=>!0}),r=new Gi){this.mouseMoveStateManager=e,this.oneFingerTouchMoveStateManager=r}_executeRelevantHandler(e,r,a){return e instanceof MouseEvent?r(e):typeof TouchEvent<"u"&&e instanceof TouchEvent?a(e):void 0}startMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.startMove(r),r=>this.oneFingerTouchMoveStateManager.startMove(r))}endMove(e){this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.endMove(r),r=>this.oneFingerTouchMoveStateManager.endMove(r))}isValidStartEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidStartEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidStartEvent(r))}isValidMoveEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidMoveEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidMoveEvent(r))}isValidEndEvent(e){return this._executeRelevantHandler(e,r=>this.mouseMoveStateManager.isValidEndEvent(r),r=>this.oneFingerTouchMoveStateManager.isValidEndEvent(r))}}const _a=u=>{u.mousedown=u.dragStart,u.mousemoveWindow=u.dragMove,u.mouseup=u.dragEnd,u.contextmenu=e=>{e.preventDefault()}};class _p{constructor(e,r){this._clickTolerance=e.clickTolerance||1,this._map=r,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new s.P(0,0)}_shouldBePrevented(e){return e<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(e,r,a){return this._calculateTransform(e,r,a)}touchmove(e,r,a){if(this._active){if(!this._shouldBePrevented(a.length))return e.preventDefault(),this._calculateTransform(e,r,a);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",e)}}touchend(e,r,a){this._calculateTransform(e,r,a),this._active&&this._shouldBePrevented(a.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(e,r,a){a.length>0&&(this._active=!0);const l=ya(a,r),h=new s.P(0,0),g=new s.P(0,0);let b=0;for(const I in l){const D=l[I],F=this._touches[I];F&&(h._add(D),g._add(D.sub(F)),b++,l[I]=D)}if(this._touches=l,this._shouldBePrevented(b)||!g.mag())return;const A=g.div(b);return this._sum._add(A),this._sum.mag()<this._clickTolerance?void 0:{around:h.div(b),panDelta:A}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Ml{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}touchstart(e,r,a){this._firstTwoTouches||a.length<2||(this._firstTwoTouches=[a[0].identifier,a[1].identifier],this._start([r[0],r[1]]))}touchmove(e,r,a){if(!this._firstTwoTouches)return;e.preventDefault();const[l,h]=this._firstTwoTouches,g=xa(a,r,l),b=xa(a,r,h);if(!g||!b)return;const A=this._aroundCenter?null:g.add(b).div(2);return this._move([g,b],A,e)}touchend(e,r,a){if(!this._firstTwoTouches)return;const[l,h]=this._firstTwoTouches,g=xa(a,r,l),b=xa(a,r,h);g&&b||(this._active&&C.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(e){this._enabled=!0,this._aroundCenter=!!e&&e.around==="center"}disable(){this._enabled=!1,this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}}function xa(u,e,r){for(let a=0;a<u.length;a++)if(u[a].identifier===r)return e[a]}function Ll(u,e){return Math.log(u/e)/Math.LN2}class Is extends Ml{reset(){super.reset(),delete this._distance,delete this._startDistance}_start(e){this._startDistance=this._distance=e[0].dist(e[1])}_move(e,r){const a=this._distance;if(this._distance=e[0].dist(e[1]),this._active||!(Math.abs(Ll(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:Ll(this._distance,a),pinchAround:r}}}function an(u,e){return 180*u.angleWith(e)/Math.PI}class st extends Ml{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1])}_move(e,r,a){const l=this._vector;if(this._vector=e[0].sub(e[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:an(this._vector,l),pinchAround:r}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());const r=25/(Math.PI*this._minDiameter)*360,a=an(e,this._startVector);return Math.abs(a)<r}}function ba(u){return Math.abs(u.y)>Math.abs(u.x)}class va extends Ml{constructor(e){super(),this._currentTouchCount=0,this._map=e}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(e,r,a){super.touchstart(e,r,a),this._currentTouchCount=a.length}_start(e){this._lastPoints=e,ba(e[0].sub(e[1]))&&(this._valid=!1)}_move(e,r,a){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const l=e[0].sub(this._lastPoints[0]),h=e[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(l,h,a.timeStamp),this._valid?(this._lastPoints=e,this._active=!0,{pitchDelta:(l.y+h.y)/2*-.5}):void 0}gestureBeginsVertically(e,r,a){if(this._valid!==void 0)return this._valid;const l=e.mag()>=2,h=r.mag()>=2;if(!l&&!h)return;if(!l||!h)return this._firstMove===void 0&&(this._firstMove=a),a-this._firstMove<100&&void 0;const g=e.y>0==r.y>0;return ba(e)&&ba(r)&&g}}const ju={panStep:100,bearingStep:15,pitchStep:10};class Ms{constructor(e){this._tr=new Ts(e);const r=ju;this._panStep=r.panStep,this._bearingStep=r.bearingStep,this._pitchStep=r.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let r=0,a=0,l=0,h=0,g=0;switch(e.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:e.shiftKey?a=-1:(e.preventDefault(),h=-1);break;case 39:e.shiftKey?a=1:(e.preventDefault(),h=1);break;case 38:e.shiftKey?l=1:(e.preventDefault(),g=-1);break;case 40:e.shiftKey?l=-1:(e.preventDefault(),g=1);break;default:return}return this._rotationDisabled&&(a=0,l=0),{cameraAnimation:b=>{const A=this._tr;b.easeTo({duration:300,easeId:"keyboardHandler",easing:xo,zoom:r?Math.round(A.zoom)+r*(e.shiftKey?2:1):A.zoom,bearing:A.bearing+a*this._bearingStep,pitch:A.pitch+l*this._pitchStep,offset:[-h*this._panStep,-g*this._panStep],center:A.center},{originalEvent:e})}}}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 xo(u){return u*(2-u)}const Rl=4.000244140625;class Lt{constructor(e,r){this._onTimeout=a=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(a)},this._map=e,this._tr=new Ts(e),this._triggerRenderFrame=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(e){this._defaultZoomRate=e}setWheelZoomRate(e){this._wheelZoomRate=e}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&e.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(e){return!!this._map.cooperativeGestures.isEnabled()&&!(e.ctrlKey||this._map.cooperativeGestures.isBypassed(e))}wheel(e){if(!this.isEnabled())return;if(this._shouldBePrevented(e))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",e);let r=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const a=M.now(),l=a-(this._lastWheelEventTime||0);this._lastWheelEventTime=a,r!==0&&r%Rl==0?this._type="wheel":r!==0&&Math.abs(r)<4?this._type="trackpad":l>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(l*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}_start(e){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 r=C.mousePos(this._map.getCanvas(),e),a=this._tr;this._aroundPoint=this._aroundCenter?a.transform.locationToScreenPoint(s.Q.convert(a.center)):r,this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const e=this._tr.transform;if(typeof this._lastExpectedZoom=="number"){const b=e.zoom-this._lastExpectedZoom;typeof this._startZoom=="number"&&(this._startZoom+=b),typeof this._targetZoom=="number"&&(this._targetZoom+=b)}if(this._delta!==0){const b=this._type==="wheel"&&Math.abs(this._delta)>Rl?this._wheelZoomRate:this._defaultZoomRate;let A=2/(1+Math.exp(-Math.abs(this._delta*b)));this._delta<0&&A!==0&&(A=1/A);const I=typeof this._targetZoom!="number"?e.scale:s.ac(this._targetZoom);this._targetZoom=e.getConstrained(e.getCameraLngLat(),s.ah(I*A)).zoom,this._type==="wheel"&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const r=typeof this._targetZoom!="number"?e.zoom:this._targetZoom,a=this._startZoom,l=this._easing;let h,g=!1;if(this._type==="wheel"&&a&&l){const b=M.now()-this._lastWheelEventTime,A=Math.min((b+5)/200,1),I=l(A);h=s.B.number(a,r,I),A<1?this._frameId||(this._frameId=!0):g=!0}else h=r,g=!0;return this._active=!0,g&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._lastExpectedZoom,delete this._finishTimeout},200)),this._lastExpectedZoom=h,{noInertia:!0,needsRenderFrame:!g,zoomDelta:h-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let r=s.cf;if(this._prevEase){const a=this._prevEase,l=(M.now()-a.start)/a.duration,h=a.easing(l+.01)-a.easing(l),g=.27/Math.sqrt(h*h+1e-4)*.01,b=Math.sqrt(.0729-g*g);r=s.cd(g,b,.25,1)}return this._prevEase={start:M.now(),duration:e,easing:r},r}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,delete this._lastExpectedZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class wa{constructor(e,r){this._clickZoom=e,this._tapZoom=r}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 xp{constructor(e){this._tr=new Ts(e),this.reset()}reset(){this._active=!1}dblclick(e,r){return e.preventDefault(),{cameraAnimation:a=>{a.easeTo({duration:300,zoom:this._tr.zoom+(e.shiftKey?-1:1),around:this._tr.unproject(r)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class zl{constructor(){this._tap=new Cs({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(e,r,a){if(!this._swipePoint)if(this._tapTime){const l=r[0],h=e.timeStamp-this._tapTime<500,g=this._tapPoint.dist(l)<30;h&&g?a.length>0&&(this._swipePoint=l,this._swipeTouch=a[0].identifier):this.reset()}else this._tap.touchstart(e,r,a)}touchmove(e,r,a){if(this._tapTime){if(this._swipePoint){if(a[0].identifier!==this._swipeTouch)return;const l=r[0],h=l.y-this._swipePoint.y;return this._swipePoint=l,e.preventDefault(),this._active=!0,{zoomDelta:h/128}}}else this._tap.touchmove(e,r,a)}touchend(e,r,a){if(this._tapTime)this._swipePoint&&a.length===0&&this.reset();else{const l=this._tap.touchend(e,r,a);l&&(this._tapTime=e.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 Hu{constructor(e,r,a){this._el=e,this._mousePan=r,this._touchPan=a}enable(e){this._inertiaOptions=e||{},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 Wu{constructor(e,r,a,l){this._pitchWithRotate=e.pitchWithRotate,this._rollEnabled=e.rollEnabled,this._mouseRotate=r,this._mousePitch=a,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 Dl{constructor(e,r,a,l){this._el=e,this._touchZoom=r,this._touchRotate=a,this._tapDragZoom=l,this._rotationDisabled=!1,this._enabled=!0}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),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 Sa{constructor(e,r){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=e,this._options=r,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const e=this._map.getCanvasContainer();e.classList.add("maplibregl-cooperative-gestures"),this._container=C.create("div","maplibregl-cooperative-gesture-screen",e);let r=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(r=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const a=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),l=document.createElement("div");l.className="maplibregl-desktop-message",l.textContent=r,this._container.appendChild(l);const h=document.createElement("div");h.className="maplibregl-mobile-message",h.textContent=a,this._container.appendChild(h),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(C.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(e){return e[this._bypassKey]}notifyGestureBlocked(e,r){this._enabled&&(this._map.fire(new s.l("cooperativegestureprevented",{gestureType:e,originalEvent:r})),this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}const bo=u=>u.zoom||u.drag||u.roll||u.pitch||u.rotate;class bp extends s.l{}function Aa(u){return u.panDelta&&u.panDelta.mag()||u.zoomDelta||u.bearingDelta||u.pitchDelta||u.rollDelta}class vp{constructor(e,r){this.handleWindowEvent=l=>{this.handleEvent(l,`${l.type}Window`)},this.handleEvent=(l,h)=>{if(l.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const g=l.type==="renderFrame"?void 0:l,b={needsRenderFrame:!1},A={},I={};for(const{handlerName:O,handler:Z,allowed:J}of this._handlers){if(!Z.isEnabled())continue;let se;if(this._blockedByActive(I,J,O))Z.reset();else if(Z[h||l.type]){if(s.cg(l,h||l.type)){const ne=C.mousePos(this._map.getCanvas(),l);se=Z[h||l.type](l,ne)}else if(s.ch(l,h||l.type)){const ne=this._getMapTouches(l.touches),oe=C.touchPos(this._map.getCanvas(),ne);se=Z[h||l.type](l,oe,ne)}else s.ci(h||l.type)||(se=Z[h||l.type](l));this.mergeHandlerResult(b,A,se,O,g),se&&se.needsRenderFrame&&this._triggerRenderFrame()}(se||Z.isActive())&&(I[O]=Z)}const D={};for(const O in this._previousActiveHandlers)I[O]||(D[O]=g);this._previousActiveHandlers=I,(Object.keys(D).length||Aa(b))&&(this._changes.push([b,A,D]),this._triggerRenderFrame()),(Object.keys(I).length||Aa(b))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:F}=b;F&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],F(this._map))},this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Ou(e),this._bearingSnap=r.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(r);const a=this._el;this._listeners=[[a,"touchstart",{passive:!0}],[a,"touchmove",{passive:!1}],[a,"touchend",void 0],[a,"touchcancel",void 0],[a,"mousedown",void 0],[a,"mousemove",void 0],[a,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[a,"mouseover",void 0],[a,"mouseout",void 0],[a,"dblclick",void 0],[a,"click",void 0],[a,"keydown",{capture:!1}],[a,"keyup",void 0],[a,"wheel",{passive:!1}],[a,"contextmenu",void 0],[window,"blur",void 0]];for(const[l,h,g]of this._listeners)C.addEventListener(l,h,l===document?this.handleWindowEvent:this.handleEvent,g)}destroy(){for(const[e,r,a]of this._listeners)C.removeEventListener(e,r,e===document?this.handleWindowEvent:this.handleEvent,a)}_addDefaultHandlers(e){const r=this._map,a=r.getCanvasContainer();this._add("mapEvent",new Fu(r,e));const l=r.boxZoom=new Il(r,e);this._add("boxZoom",l),e.interactive&&e.boxZoom&&l.enable();const h=r.cooperativeGestures=new Sa(r,e.cooperativeGestures);this._add("cooperativeGestures",h),e.cooperativeGestures&&h.enable();const g=new Uu(r),b=new xp(r);r.doubleClickZoom=new wa(b,g),this._add("tapZoom",g),this._add("clickZoom",b),e.interactive&&e.doubleClickZoom&&r.doubleClickZoom.enable();const A=new zl;this._add("tapDragZoom",A);const I=r.touchPitch=new va(r);this._add("touchPitch",I),e.interactive&&e.touchPitch&&r.touchPitch.enable(e.touchPitch);const D=()=>r.project(r.getCenter()),F=function({enable:fe,clickTolerance:ge,aroundCenter:be=!0,minPixelCenterThreshold:ye=100,rotateDegreesPerPixelMoved:Te=.8},Oe){const Le=new Es({checkCorrectEvent:Re=>C.mouseButton(Re)===0&&Re.ctrlKey||C.mouseButton(Re)===2&&!Re.ctrlKey});return new oi({clickTolerance:ge,move:(Re,ze)=>{const Ye=Oe();if(be&&Math.abs(Ye.y-Re.y)>ye)return{bearingDelta:s.ce(new s.P(Re.x,ze.y),ze,Ye)};let Qe=(ze.x-Re.x)*Te;return be&&ze.y<Ye.y&&(Qe=-Qe),{bearingDelta:Qe}},moveStateManager:Le,enable:fe,assignEvents:_a})}(e,D),O=function({enable:fe,clickTolerance:ge,pitchDegreesPerPixelMoved:be=-.5}){const ye=new Es({checkCorrectEvent:Te=>C.mouseButton(Te)===0&&Te.ctrlKey||C.mouseButton(Te)===2});return new oi({clickTolerance:ge,move:(Te,Oe)=>({pitchDelta:(Oe.y-Te.y)*be}),moveStateManager:ye,enable:fe,assignEvents:_a})}(e),Z=function({enable:fe,clickTolerance:ge,rollDegreesPerPixelMoved:be=.3},ye){const Te=new Es({checkCorrectEvent:Oe=>C.mouseButton(Oe)===2&&Oe.ctrlKey});return new oi({clickTolerance:ge,move:(Oe,Le)=>{const Re=ye();let ze=(Le.x-Oe.x)*be;return Le.y<Re.y&&(ze=-ze),{rollDelta:ze}},moveStateManager:Te,enable:fe,assignEvents:_a})}(e,D);r.dragRotate=new Wu(e,F,O,Z),this._add("mouseRotate",F,["mousePitch"]),this._add("mousePitch",O,["mouseRotate","mouseRoll"]),this._add("mouseRoll",Z,["mousePitch"]),e.interactive&&e.dragRotate&&r.dragRotate.enable();const J=function({enable:fe,clickTolerance:ge}){const be=new Es({checkCorrectEvent:ye=>C.mouseButton(ye)===0&&!ye.ctrlKey});return new oi({clickTolerance:ge,move:(ye,Te)=>({around:Te,panDelta:Te.sub(ye)}),activateOnStart:!0,moveStateManager:be,enable:fe,assignEvents:_a})}(e),se=new _p(e,r);r.dragPan=new Hu(a,J,se),this._add("mousePan",J),this._add("touchPan",se,["touchZoom","touchRotate"]),e.interactive&&e.dragPan&&r.dragPan.enable(e.dragPan);const ne=new st,oe=new Is;r.touchZoomRotate=new Dl(a,oe,ne,A),this._add("touchRotate",ne,["touchPan","touchZoom"]),this._add("touchZoom",oe,["touchPan","touchRotate"]),e.interactive&&e.touchZoomRotate&&r.touchZoomRotate.enable(e.touchZoomRotate);const ce=r.scrollZoom=new Lt(r,()=>this._triggerRenderFrame());this._add("scrollZoom",ce,["mousePan"]),e.interactive&&e.scrollZoom&&r.scrollZoom.enable(e.scrollZoom);const me=r.keyboard=new Ms(r);this._add("keyboard",me),e.interactive&&e.keyboard&&r.keyboard.enable(),this._add("blockableMapEvent",new Nu(r))}_add(e,r,a){this._handlers.push({handlerName:e,handler:r,allowed:a}),this._handlersById[e]=r}stop(e){if(!this._updatingCamera){for(const{handler:r}of this._handlers)r.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!bo(this._eventsInProgress)||this.isZooming()}_blockedByActive(e,r,a){for(const l in e)if(l!==a&&(!r||r.indexOf(l)<0))return!0;return!1}_getMapTouches(e){const r=[];for(const a of e)this._el.contains(a.target)&&r.push(a);return r}mergeHandlerResult(e,r,a,l,h){if(!a)return;s.e(e,a);const g={handlerName:l,originalEvent:a.originalEvent||h};a.zoomDelta!==void 0&&(r.zoom=g),a.panDelta!==void 0&&(r.drag=g),a.rollDelta!==void 0&&(r.roll=g),a.pitchDelta!==void 0&&(r.pitch=g),a.bearingDelta!==void 0&&(r.rotate=g)}_applyChanges(){const e={},r={},a={};for(const[l,h,g]of this._changes)l.panDelta&&(e.panDelta=(e.panDelta||new s.P(0,0))._add(l.panDelta)),l.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+l.zoomDelta),l.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+l.bearingDelta),l.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+l.pitchDelta),l.rollDelta&&(e.rollDelta=(e.rollDelta||0)+l.rollDelta),l.around!==void 0&&(e.around=l.around),l.pinchAround!==void 0&&(e.pinchAround=l.pinchAround),l.noInertia&&(e.noInertia=l.noInertia),s.e(r,h),s.e(a,g);this._updateMapTransform(e,r,a),this._changes=[]}_updateMapTransform(e,r,a){const l=this._map,h=l._getTransformForUpdate(),g=l.terrain;if(!(Aa(e)||g&&this._terrainMovement))return this._fireEvents(r,a,!0);l._stop(!0);let{panDelta:b,zoomDelta:A,bearingDelta:I,pitchDelta:D,rollDelta:F,around:O,pinchAround:Z}=e;Z!==void 0&&(O=Z),O=O||l.transform.centerPoint,g&&!h.isPointOnMapSurface(O)&&(O=h.centerPoint);const J={panDelta:b,zoomDelta:A,rollDelta:F,pitchDelta:D,bearingDelta:I,around:O};this._map.cameraHelper.useGlobeControls&&!h.isPointOnMapSurface(O)&&(O=h.centerPoint);const se=O.distSqr(h.centerPoint)<.01?h.center:h.screenPointToLocation(b?O.sub(b):O);g?(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,h),this._terrainMovement||!r.drag&&!r.zoom?r.drag&&this._terrainMovement?h.setCenter(h.screenPointToLocation(h.centerPoint.sub(b))):this._map.cameraHelper.handleMapControlsPan(J,h,se):(this._terrainMovement=!0,this._map._elevationFreeze=!0,this._map.cameraHelper.handleMapControlsPan(J,h,se))):(this._map.cameraHelper.handleMapControlsRollPitchBearingZoom(J,h),this._map.cameraHelper.handleMapControlsPan(J,h,se)),l._applyUpdatedTransform(h),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(r,a,!0)}_fireEvents(e,r,a){const l=bo(this._eventsInProgress),h=bo(e),g={};for(const F in e){const{originalEvent:O}=e[F];this._eventsInProgress[F]||(g[`${F}start`]=O),this._eventsInProgress[F]=e[F]}!l&&h&&this._fireEvent("movestart",h.originalEvent);for(const F in g)this._fireEvent(F,g[F]);h&&this._fireEvent("move",h.originalEvent);for(const F in e){const{originalEvent:O}=e[F];this._fireEvent(F,O)}const b={};let A;for(const F in this._eventsInProgress){const{handlerName:O,originalEvent:Z}=this._eventsInProgress[F];this._handlersById[O].isActive()||(delete this._eventsInProgress[F],A=r[O]||Z,b[`${F}end`]=A)}for(const F in b)this._fireEvent(F,b[F]);const I=bo(this._eventsInProgress),D=(l||h)&&!I;if(D&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;const F=this._map._getTransformForUpdate();this._map.getCenterClampedToGround()&&F.recalculateZoomAndCenter(this._map.terrain),this._map._applyUpdatedTransform(F)}if(a&&D){this._updatingCamera=!0;const F=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),O=Z=>Z!==0&&-this._bearingSnap<Z&&Z<this._bearingSnap;!F||!F.essential&&M.prefersReducedMotion?(this._map.fire(new s.l("moveend",{originalEvent:A})),O(this._map.getBearing())&&this._map.resetNorth()):(O(F.bearing||this._map.getBearing())&&(F.bearing=0),F.freezeElevation=!0,this._map.easeTo(F,{originalEvent:A})),this._updatingCamera=!1}}_fireEvent(e,r){this._map.fire(new s.l(e,r?{originalEvent:r}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add(e=>{delete this._frameId,this.handleEvent(new bp("renderFrame",{timeStamp:e})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class wp extends s.E{constructor(e,r,a){super(),this._renderFrameCallback=()=>{const l=Math.min((M.now()-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=e,this._bearingSnap=a.bearingSnap,this.cameraHelper=r,this.on("moveend",()=>{delete this._requestedCameraState})}migrateProjection(e,r){e.apply(this.transform),this.transform=e,this.cameraHelper=r}getCenter(){return new s.Q(this.transform.center.lng,this.transform.center.lat)}setCenter(e,r){return this.jumpTo({center:e},r)}getCenterElevation(){return this.transform.elevation}setCenterElevation(e,r){return this.jumpTo({elevation:e},r),this}getCenterClampedToGround(){return this._centerClampedToGround}setCenterClampedToGround(e){this._centerClampedToGround=e}panBy(e,r,a){return e=s.P.convert(e).mult(-1),this.panTo(this.transform.center,s.e({offset:e},r),a)}panTo(e,r,a){return this.easeTo(s.e({center:e},r),a)}getZoom(){return this.transform.zoom}setZoom(e,r){return this.jumpTo({zoom:e},r),this}zoomTo(e,r,a){return this.easeTo(s.e({zoom:e},r),a)}zoomIn(e,r){return this.zoomTo(this.getZoom()+1,e,r),this}zoomOut(e,r){return this.zoomTo(this.getZoom()-1,e,r),this}getVerticalFieldOfView(){return this.transform.fov}setVerticalFieldOfView(e,r){return e!=this.transform.fov&&(this.transform.setFov(e),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)).fire(new s.l("moveend",r))),this}getBearing(){return this.transform.bearing}setBearing(e,r){return this.jumpTo({bearing:e},r),this}getPadding(){return this.transform.padding}setPadding(e,r){return this.jumpTo({padding:e},r),this}rotateTo(e,r,a){return this.easeTo(s.e({bearing:e},r),a)}resetNorth(e,r){return this.rotateTo(0,s.e({duration:1e3},e),r),this}resetNorthPitch(e,r){return this.easeTo(s.e({bearing:0,pitch:0,roll:0,duration:1e3},e),r),this}snapToNorth(e,r){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,r):this}getPitch(){return this.transform.pitch}setPitch(e,r){return this.jumpTo({pitch:e},r),this}getRoll(){return this.transform.roll}setRoll(e,r){return this.jumpTo({roll:e},r),this}cameraForBounds(e,r){e=Xe.convert(e).adjustAntiMeridian();const a=r&&r.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),a,r)}_cameraForBoxAndBearing(e,r,a,l){const h={top:0,bottom:0,right:0,left:0};if(typeof(l=s.e({padding:h,offset:[0,0],maxZoom:this.transform.maxZoom},l)).padding=="number"){const I=l.padding;l.padding={top:I,bottom:I,right:I,left:I}}const g=s.e(h,l.padding);l.padding=g;const b=this.transform,A=new Xe(e,r);return this.cameraHelper.cameraForBoxAndBearing(l,g,A,a,b)}fitBounds(e,r,a){return this._fitInternal(this.cameraForBounds(e,r),r,a)}fitScreenCoordinates(e,r,a,l,h){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.screenPointToLocation(s.P.convert(e)),this.transform.screenPointToLocation(s.P.convert(r)),a,l),l,h)}_fitInternal(e,r,a){return e?(delete(r=s.e(e,r)).padding,r.linear?this.easeTo(r,a):this.flyTo(r,a)):this}jumpTo(e,r){this.stop();const a=this._getTransformForUpdate();let l=!1,h=!1,g=!1;const b=a.zoom;this.cameraHelper.handleJumpToCenterZoom(a,e);const A=a.zoom!==b;return"elevation"in e&&a.elevation!==+e.elevation&&a.setElevation(+e.elevation),"bearing"in e&&a.bearing!==+e.bearing&&(l=!0,a.setBearing(+e.bearing)),"pitch"in e&&a.pitch!==+e.pitch&&(h=!0,a.setPitch(+e.pitch)),"roll"in e&&a.roll!==+e.roll&&(g=!0,a.setRoll(+e.roll)),e.padding==null||a.isPaddingEqual(e.padding)||a.setPadding(e.padding),this._applyUpdatedTransform(a),this.fire(new s.l("movestart",r)).fire(new s.l("move",r)),A&&this.fire(new s.l("zoomstart",r)).fire(new s.l("zoom",r)).fire(new s.l("zoomend",r)),l&&this.fire(new s.l("rotatestart",r)).fire(new s.l("rotate",r)).fire(new s.l("rotateend",r)),h&&this.fire(new s.l("pitchstart",r)).fire(new s.l("pitch",r)).fire(new s.l("pitchend",r)),g&&this.fire(new s.l("rollstart",r)).fire(new s.l("roll",r)).fire(new s.l("rollend",r)),this.fire(new s.l("moveend",r))}calculateCameraOptionsFromTo(e,r,a,l=0){const h=s.$.fromLngLat(e,r),g=s.$.fromLngLat(a,l),b=g.x-h.x,A=g.y-h.y,I=g.z-h.z,D=Math.hypot(b,A,I);if(D===0)throw new Error("Can't calculate camera options with same From and To");const F=Math.hypot(b,A),O=s.ah(this.transform.cameraToCenterDistance/D/this.transform.tileSize),Z=180*Math.atan2(b,-A)/Math.PI;let J=180*Math.acos(F/D)/Math.PI;return J=I<0?90-J:90+J,{center:g.toLngLat(),elevation:l,zoom:O,pitch:J,bearing:Z}}calculateCameraOptionsFromCameraLngLatAltRotation(e,r,a,l,h){const g=this.transform.calculateCenterFromCameraLngLatAlt(e,r,a,l);return{center:g.center,elevation:g.elevation,zoom:g.zoom,bearing:a,pitch:l,roll:h}}easeTo(e,r){this._stop(!1,e.easeId),((e=s.e({offset:[0,0],duration:500,easing:s.cf},e)).animate===!1||!e.essential&&M.prefersReducedMotion)&&(e.duration=0);const a=this._getTransformForUpdate(),l=this.getBearing(),h=a.pitch,g=a.roll,b="bearing"in e?this._normalizeBearing(e.bearing,l):l,A="pitch"in e?+e.pitch:h,I="roll"in e?this._normalizeBearing(e.roll,g):g,D="padding"in e?e.padding:a.padding,F=s.P.convert(e.offset);let O,Z;e.around&&(O=s.Q.convert(e.around),Z=a.locationToScreenPoint(O));const J={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching,rolling:this._rolling},se=this.cameraHelper.handleEaseTo(a,{bearing:b,pitch:A,roll:I,padding:D,around:O,aroundPoint:Z,offsetAsPoint:F,offset:e.offset,zoom:e.zoom,center:e.center});return this._rotating=this._rotating||l!==b,this._pitching=this._pitching||A!==h,this._rolling=this._rolling||I!==g,this._padding=!a.isPaddingEqual(D),this._zooming=this._zooming||se.isZooming,this._easeId=e.easeId,this._prepareEase(r,e.noMoveStart,J),this.terrain&&this._prepareElevation(se.elevationCenter),this._ease(ne=>{se.easeFunc(ne),this.terrain&&!e.freezeElevation&&this._updateElevation(ne),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},ne=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r,ne)},e),this}_prepareEase(e,r,a={}){this._moving=!0,r||a.moving||this.fire(new s.l("movestart",e)),this._zooming&&!a.zooming&&this.fire(new s.l("zoomstart",e)),this._rotating&&!a.rotating&&this.fire(new s.l("rotatestart",e)),this._pitching&&!a.pitching&&this.fire(new s.l("pitchstart",e)),this._rolling&&!a.rolling&&this.fire(new s.l("rollstart",e))}_prepareElevation(e){this._elevationCenter=e,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(e,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(e){this.transform.setMinElevationForCurrentTile(this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom));const r=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&r!==this._elevationTarget){const a=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(a-(r-(a*e+this._elevationStart))/(1-e)),this._elevationTarget=r}this.transform.setElevation(s.B.number(this._elevationStart,this._elevationTarget,e))}_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(e){if(!this.terrain&&e.elevation>=0&&e.pitch<=90)return{};const r=e.getCameraLngLat(),a=e.getCameraAltitude(),l=this.terrain?this.terrain.getElevationForLngLatZoom(r,e.zoom):0;if(a<l){const h=this.calculateCameraOptionsFromTo(r,l,e.center,e.elevation);return{pitch:h.pitch,zoom:h.zoom}}return{}}_applyUpdatedTransform(e){const r=[];if(r.push(l=>this._elevateCameraIfInsideTerrain(l)),this.transformCameraUpdate&&r.push(l=>this.transformCameraUpdate(l)),!r.length)return;const a=e.clone();for(const l of r){const h=a.clone(),{center:g,zoom:b,roll:A,pitch:I,bearing:D,elevation:F}=l(h);g&&h.setCenter(g),F!==void 0&&h.setElevation(F),b!==void 0&&h.setZoom(b),A!==void 0&&h.setRoll(A),I!==void 0&&h.setPitch(I),D!==void 0&&h.setBearing(D),a.apply(h)}this.transform.apply(a)}_fireMoveEvents(e){this.fire(new s.l("move",e)),this._zooming&&this.fire(new s.l("zoom",e)),this._rotating&&this.fire(new s.l("rotate",e)),this._pitching&&this.fire(new s.l("pitch",e)),this._rolling&&this.fire(new s.l("roll",e))}_afterEase(e,r){if(this._easeId&&r&&this._easeId===r)return;delete this._easeId;const a=this._zooming,l=this._rotating,h=this._pitching,g=this._rolling;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._rolling=!1,this._padding=!1,a&&this.fire(new s.l("zoomend",e)),l&&this.fire(new s.l("rotateend",e)),h&&this.fire(new s.l("pitchend",e)),g&&this.fire(new s.l("rollend",e)),this.fire(new s.l("moveend",e))}flyTo(e,r){if(!e.essential&&M.prefersReducedMotion){const ze=s.O(e,["center","zoom","bearing","pitch","roll","elevation"]);return this.jumpTo(ze,r)}this.stop(),e=s.e({offset:[0,0],speed:1.2,curve:1.42,easing:s.cf},e);const a=this._getTransformForUpdate(),l=a.bearing,h=a.pitch,g=a.roll,b=a.padding,A="bearing"in e?this._normalizeBearing(e.bearing,l):l,I="pitch"in e?+e.pitch:h,D="roll"in e?this._normalizeBearing(e.roll,g):g,F="padding"in e?e.padding:a.padding,O=s.P.convert(e.offset);let Z=a.centerPoint.add(O);const J=a.screenPointToLocation(Z),se=this.cameraHelper.handleFlyTo(a,{bearing:A,pitch:I,roll:D,padding:F,locationAtOffset:J,offsetAsPoint:O,center:e.center,minZoom:e.minZoom,zoom:e.zoom});let ne=e.curve;const oe=Math.max(a.width,a.height),ce=oe/se.scaleOfZoom,me=se.pixelPathLength;typeof se.scaleOfMinZoom=="number"&&(ne=Math.sqrt(oe/se.scaleOfMinZoom/me*2));const fe=ne*ne;function ge(ze){const Ye=(ce*ce-oe*oe+(ze?-1:1)*fe*fe*me*me)/(2*(ze?ce:oe)*fe*me);return Math.log(Math.sqrt(Ye*Ye+1)-Ye)}function be(ze){return(Math.exp(ze)-Math.exp(-ze))/2}function ye(ze){return(Math.exp(ze)+Math.exp(-ze))/2}const Te=ge(!1);let Oe=function(ze){return ye(Te)/ye(Te+ne*ze)},Le=function(ze){return oe*((ye(Te)*(be(Ye=Te+ne*ze)/ye(Ye))-be(Te))/fe)/me;var Ye},Re=(ge(!0)-Te)/ne;if(Math.abs(me)<2e-6||!isFinite(Re)){if(Math.abs(oe-ce)<1e-6)return this.easeTo(e,r);const ze=ce<oe?-1:1;Re=Math.abs(Math.log(ce/oe))/ne,Le=()=>0,Oe=Ye=>Math.exp(ze*ne*Ye)}return e.duration="duration"in e?+e.duration:1e3*Re/("screenSpeed"in e?+e.screenSpeed/ne:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=l!==A,this._pitching=I!==h,this._rolling=D!==g,this._padding=!a.isPaddingEqual(F),this._prepareEase(r,!1),this.terrain&&this._prepareElevation(se.targetCenter),this._ease(ze=>{const Ye=ze*Re,Qe=1/Oe(Ye),We=Le(Ye);this._rotating&&a.setBearing(s.B.number(l,A,ze)),this._pitching&&a.setPitch(s.B.number(h,I,ze)),this._rolling&&a.setRoll(s.B.number(g,D,ze)),this._padding&&(a.interpolatePadding(b,F,ze),Z=a.centerPoint.add(O)),se.easeFunc(ze,Qe,We,Z),this.terrain&&!e.freezeElevation&&this._updateElevation(ze),this._applyUpdatedTransform(a),this._fireMoveEvents(r)},()=>{this.terrain&&e.freezeElevation&&this._finalizeElevation(),this._afterEase(r)},e),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,r){var a;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,r)}return e||(a=this.handlers)===null||a===void 0||a.stop(!1),this}_ease(e,r,a){a.animate===!1||a.duration===0?(e(1),r()):(this._easeStart=M.now(),this._easeOptions=a,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(e,r){e=s.aL(e,-180,180);const a=Math.abs(e-r);return Math.abs(e-360-r)<a&&(e-=360),Math.abs(e+360-r)<a&&(e+=360),e}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLatZoom(s.Q.convert(e),this.transform.tileZoom):null}}const gn={compact:!0,customAttribution:'<a href="https://maplibre.org/" target="_blank">MapLibre</a>'};class ir{constructor(e=gn){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=r=>{!r||r.sourceDataType!=="metadata"&&r.sourceDataType!=="visibility"&&r.dataType!=="style"&&r.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=e}getDefaultPosition(){return"bottom-right"}onAdd(e){return this._map=e,this._compact=this.options.compact,this._container=C.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=C.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=C.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(){C.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(e,r){const a=this._map._getUIString(`AttributionControl.${r}`);e.title=a,e.setAttribute("aria-label",a)}_updateAttributions(){if(!this._map.style)return;let e=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=e.concat(this.options.customAttribution.map(l=>typeof l!="string"?"":l)):typeof this.options.customAttribution=="string"&&e.push(this.options.customAttribution)),this._map.style.stylesheet){const l=this._map.style.stylesheet;this.styleOwner=l.owner,this.styleId=l.id}const r=this._map.style.sourceCaches;for(const l in r){const h=r[l];if(h.used||h.usedForTerrain){const g=h.getSource();g.attribution&&e.indexOf(g.attribution)<0&&e.push(g.attribution)}}e=e.filter(l=>String(l).trim()),e.sort((l,h)=>l.length-h.length),e=e.filter((l,h)=>{for(let g=h+1;g<e.length;g++)if(e[g].indexOf(l)>=0)return!1;return!0});const a=e.join(" | ");a!==this._attribHTML&&(this._attribHTML=a,e.length?(this._innerContainer.innerHTML=C.sanitize(a),this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class vo{constructor(e={}){this._updateCompact=()=>{const r=this._container.children;if(r.length){const a=r[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&a.classList.add("maplibregl-compact"):a.classList.remove("maplibregl-compact")}},this.options=e}getDefaultPosition(){return"bottom-left"}onAdd(e){this._map=e,this._compact=this.options&&this.options.compact,this._container=C.create("div","maplibregl-ctrl");const r=C.create("a","maplibregl-ctrl-logo");return r.target="_blank",r.rel="noopener nofollow",r.href="https://maplibre.org/",r.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),r.setAttribute("rel","noopener nofollow"),this._container.appendChild(r),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){C.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class Bl{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){const r=++this._id;return this._queue.push({callback:e,id:r,cancelled:!1}),r}remove(e){const r=this._currentlyRunning,a=r?this._queue.concat(r):this._queue;for(const l of a)if(l.id===e)return void(l.cancelled=!0)}run(e=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const r=this._currentlyRunning=this._queue;this._queue=[];for(const a of r)if(!a.cancelled&&(a.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Zu=s.aG([{name:"a_pos3d",type:"Int16",components:3}]);class Ku extends s.E{constructor(e){super(),this._lastTilesetChange=M.now(),this.sourceCache=e,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.deltaZoom=1,this.tileSize=e._source.tileSize*2**this.deltaZoom,e.usedForTerrain=!0,e.tileSize=this.tileSize}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(e,r){this.sourceCache.update(e,r),this._renderableTilesKeys=[];const a={};for(const l of we(e,{tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:r,calculateTileZoom:this.sourceCache._source.calculateTileZoom}))a[l.key]=!0,this._renderableTilesKeys.push(l.key),this._tiles[l.key]||(l.terrainRttPosMatrix32f=new Float64Array(16),s.bQ(l.terrainRttPosMatrix32f,0,s.Z,s.Z,0,0,1),this._tiles[l.key]=new Ar(l,this.tileSize),this._lastTilesetChange=M.now());for(const l in this._tiles)a[l]||delete this._tiles[l]}freeRtt(e){for(const r in this._tiles){const a=this._tiles[r];(!e||a.tileID.equals(e)||a.tileID.isChildOf(e)||e.isChildOf(a.tileID))&&(a.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(e=>this.getTileByID(e))}getTileByID(e){return this._tiles[e]}getTerrainCoords(e,r){return r?this._getTerrainCoordsForTileRanges(e,r):this._getTerrainCoordsForRegularTile(e)}_getTerrainCoordsForRegularTile(e){const r={};for(const a of this._renderableTilesKeys){const l=this._tiles[a].tileID,h=e.clone(),g=s.b2();if(l.canonical.equals(e.canonical))s.bQ(g,0,s.Z,s.Z,0,0,1);else if(l.canonical.isChildOf(e.canonical)){const b=l.canonical.z-e.canonical.z,A=l.canonical.x-(l.canonical.x>>b<<b),I=l.canonical.y-(l.canonical.y>>b<<b),D=s.Z>>b;s.bQ(g,0,D,D,0,0,1),s.L(g,g,[-A*D,-I*D,0])}else{if(!e.canonical.isChildOf(l.canonical))continue;{const b=e.canonical.z-l.canonical.z,A=e.canonical.x-(e.canonical.x>>b<<b),I=e.canonical.y-(e.canonical.y>>b<<b),D=s.Z>>b;s.bQ(g,0,s.Z,s.Z,0,0,1),s.L(g,g,[A*D,I*D,0]),s.M(g,g,[1/2**b,1/2**b,0])}}h.terrainRttPosMatrix32f=new Float32Array(g),r[a]=h}return r}_getTerrainCoordsForTileRanges(e,r){const a={};for(const l of this._renderableTilesKeys){const h=this._tiles[l].tileID;if(!this._isWithinTileRanges(h,r))continue;const g=e.clone(),b=s.b2();if(h.canonical.z===e.canonical.z){const A=e.canonical.x-h.canonical.x,I=e.canonical.y-h.canonical.y;s.bQ(b,0,s.Z,s.Z,0,0,1),s.L(b,b,[A*s.Z,I*s.Z,0])}else if(h.canonical.z>e.canonical.z){const A=h.canonical.z-e.canonical.z,I=h.canonical.x-(h.canonical.x>>A<<A),D=h.canonical.y-(h.canonical.y>>A<<A),F=e.canonical.x-(h.canonical.x>>A),O=e.canonical.y-(h.canonical.y>>A),Z=s.Z>>A;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[-I*Z+F*s.Z,-D*Z+O*s.Z,0])}else{const A=e.canonical.z-h.canonical.z,I=e.canonical.x-(e.canonical.x>>A<<A),D=e.canonical.y-(e.canonical.y>>A<<A),F=(e.canonical.x>>A)-h.canonical.x,O=(e.canonical.y>>A)-h.canonical.y,Z=s.Z<<A;s.bQ(b,0,Z,Z,0,0,1),s.L(b,b,[I*s.Z+F*Z,D*s.Z+O*Z,0])}g.terrainRttPosMatrix32f=new Float32Array(b),a[l]=g}return a}getSourceTile(e,r){const a=this.sourceCache._source;let l=e.overscaledZ-this.deltaZoom;if(l>a.maxzoom&&(l=a.maxzoom),l<a.minzoom)return null;this._sourceTileCache[e.key]||(this._sourceTileCache[e.key]=e.scaledTo(l).key);let h=this.sourceCache.getTileByID(this._sourceTileCache[e.key]);if((!h||!h.dem)&&r)for(;l>=a.minzoom&&(!h||!h.dem);)h=this.sourceCache.getTileByID(e.scaledTo(l--).key);return h}anyTilesAfterTime(e=Date.now()){return this._lastTilesetChange>=e}_isWithinTileRanges(e,r){return r[e.canonical.z]&&e.canonical.x>=r[e.canonical.z].minTileX&&e.canonical.x<=r[e.canonical.z].maxTileX&&e.canonical.y>=r[e.canonical.z].minTileY&&e.canonical.y<=r[e.canonical.z].maxTileY}}class Gu{constructor(e,r,a){this._meshCache={},this.painter=e,this.sourceCache=new Ku(r),this.options=a,this.exaggeration=typeof a.exaggeration=="number"?a.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(e,r,a,l=s.Z){var h;if(!(r>=0&&r<l&&a>=0&&a<l))return 0;const g=this.getTerrainData(e),b=(h=g.tile)===null||h===void 0?void 0:h.dem;if(!b)return 0;const A=s.cj([],[r/l*s.Z,a/l*s.Z],g.u_terrain_matrix),I=[A[0]*b.dim,A[1]*b.dim],D=Math.floor(I[0]),F=Math.floor(I[1]),O=I[0]-D,Z=I[1]-F;return b.get(D,F)*(1-O)*(1-Z)+b.get(D+1,F)*O*(1-Z)+b.get(D,F+1)*(1-O)*Z+b.get(D+1,F+1)*O*Z}getElevationForLngLatZoom(e,r){if(!s.ck(r,e.wrap()))return 0;const{tileID:a,mercatorX:l,mercatorY:h}=this._getOverscaledTileIDFromLngLatZoom(e,r);return this.getElevation(a,l%s.Z,h%s.Z,s.Z)}getElevation(e,r,a,l=s.Z){return this.getDEMElevation(e,r,a,l)*this.exaggeration}getTerrainData(e){if(!this._emptyDemTexture){const l=this.painter.context,h=new s.R({width:1,height:1},new Uint8Array(4));this._emptyDepthTexture=new Ze(l,h,l.gl.RGBA,{premultiply:!1}),this._emptyDemUnpack=[0,0,0,0],this._emptyDemTexture=new Ze(l,new s.R({width:1,height:1}),l.gl.RGBA,{premultiply:!1}),this._emptyDemTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),this._emptyDemMatrix=s.ad([])}const r=this.sourceCache.getSourceTile(e,!0);if(r&&r.dem&&(!r.demTexture||r.needsTerrainPrepare)){const l=this.painter.context;r.demTexture=this.painter.getTileTexture(r.dem.stride),r.demTexture?r.demTexture.update(r.dem.getPixels(),{premultiply:!1}):r.demTexture=new Ze(l,r.dem.getPixels(),l.gl.RGBA,{premultiply:!1}),r.demTexture.bind(l.gl.NEAREST,l.gl.CLAMP_TO_EDGE),r.needsTerrainPrepare=!1}const a=r&&r+r.tileID.key+e.key;if(a&&!this._demMatrixCache[a]){const l=this.sourceCache.sourceCache._source.maxzoom;let h=e.canonical.z-r.tileID.canonical.z;e.overscaledZ>e.canonical.z&&(e.canonical.z>=l?h=e.canonical.z-l:s.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const g=e.canonical.x-(e.canonical.x>>h<<h),b=e.canonical.y-(e.canonical.y>>h<<h),A=s.cl(new Float64Array(16),[1/(s.Z<<h),1/(s.Z<<h),0]);s.L(A,A,[g*s.Z,b*s.Z,0]),this._demMatrixCache[e.key]={matrix:A,coord:e}}return{u_depth:2,u_terrain:3,u_terrain_dim:r&&r.dem&&r.dem.dim||1,u_terrain_matrix:a?this._demMatrixCache[e.key].matrix:this._emptyDemMatrix,u_terrain_unpack:r&&r.dem&&r.dem.getUnpackVector()||this._emptyDemUnpack,u_terrain_exaggeration:this.exaggeration,texture:(r&&r.demTexture||this._emptyDemTexture).texture,depthTexture:(this._fboDepthTexture||this._emptyDepthTexture).texture,tile:r}}getFramebuffer(e){const r=this.painter,a=r.width/devicePixelRatio,l=r.height/devicePixelRatio;return!this._fbo||this._fbo.width===a&&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 Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboCoordsTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fboDepthTexture||(this._fboDepthTexture=new Ze(r.context,{width:a,height:l,data:null},r.context.gl.RGBA,{premultiply:!1}),this._fboDepthTexture.bind(r.context.gl.NEAREST,r.context.gl.CLAMP_TO_EDGE)),this._fbo||(this._fbo=r.context.createFramebuffer(a,l,!0,!1),this._fbo.depthAttachment.set(r.context.createRenderbuffer(r.context.gl.DEPTH_COMPONENT16,a,l))),this._fbo.colorAttachment.set(e==="coords"?this._fboCoordsTexture.texture:this._fboDepthTexture.texture),this._fbo}getCoordsTexture(){const e=this.painter.context;if(this._coordsTexture)return this._coordsTexture;const r=new Uint8Array(this._coordsTextureSize*this._coordsTextureSize*4);for(let h=0,g=0;h<this._coordsTextureSize;h++)for(let b=0;b<this._coordsTextureSize;b++,g+=4)r[g+0]=255&b,r[g+1]=255&h,r[g+2]=b>>8<<4|h>>8,r[g+3]=0;const a=new s.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(r.buffer)),l=new Ze(e,a,e.gl.RGBA,{premultiply:!1});return l.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=l,l}pointCoordinate(e){this.painter.maybeDrawDepthAndCoords(!0);const r=new Uint8Array(4),a=this.painter.context,l=a.gl,h=Math.round(e.x*this.painter.pixelRatio/devicePixelRatio),g=Math.round(e.y*this.painter.pixelRatio/devicePixelRatio),b=Math.round(this.painter.height/devicePixelRatio);a.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),l.readPixels(h,b-g-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null);const A=r[0]+(r[2]>>4<<8),I=r[1]+((15&r[2])<<8),D=this.coordsIndex[255-r[3]],F=D&&this.sourceCache.getTileByID(D);if(!F)return null;const O=this._coordsTextureSize,Z=(1<<F.tileID.canonical.z)*O;return new s.$((F.tileID.canonical.x*O+A)/Z+F.tileID.wrap,(F.tileID.canonical.y*O+I)/Z,this.getElevation(F.tileID,A,I,O))}depthAtPoint(e){const r=new Uint8Array(4),a=this.painter.context,l=a.gl;return a.bindFramebuffer.set(this.getFramebuffer("depth").framebuffer),l.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,l.RGBA,l.UNSIGNED_BYTE,r),a.bindFramebuffer.set(null),(r[0]/16777216+r[1]/65536+r[2]/256+r[3])/256}getTerrainMesh(e){var r;const a=((r=this.painter.style.projection)===null||r===void 0?void 0:r.transitionState)>0,l=a&&e.canonical.y===0,h=a&&e.canonical.y===(1<<e.canonical.z)-1,g=`m_${l?"n":""}_${h?"s":""}`;if(this._meshCache[g])return this._meshCache[g];const b=this.painter.context,A=new s.cm,I=new s.aK,D=this.meshSize,F=s.Z/D,O=D*D;for(let ye=0;ye<=D;ye++)for(let Te=0;Te<=D;Te++)A.emplaceBack(Te*F,ye*F,0);for(let ye=0;ye<O;ye+=D+1)for(let Te=0;Te<D;Te++)I.emplaceBack(Te+ye,D+Te+ye+1,D+Te+ye+2),I.emplaceBack(Te+ye,D+Te+ye+2,Te+ye+1);const Z=A.length,J=Z+(D+1),se=(D+1)*D,ne=l?s.b9:0,oe=l?0:1,ce=h?s.ba:s.Z,me=h?0:1;for(let ye=0;ye<=D;ye++)A.emplaceBack(ye*F,ne,oe);for(let ye=0;ye<=D;ye++)A.emplaceBack(ye*F,ce,me);for(let ye=0;ye<D;ye++)I.emplaceBack(se+ye,J+ye,J+ye+1),I.emplaceBack(se+ye,J+ye+1,se+ye+1),I.emplaceBack(0+ye,Z+ye+1,Z+ye),I.emplaceBack(0+ye,0+ye+1,Z+ye+1);const fe=A.length,ge=fe+2*(D+1);for(const ye of[0,1])for(let Te=0;Te<=D;Te++)for(const Oe of[0,1])A.emplaceBack(ye*s.Z,Te*F,Oe);for(let ye=0;ye<2*D;ye+=2)I.emplaceBack(fe+ye,fe+ye+1,fe+ye+3),I.emplaceBack(fe+ye,fe+ye+3,fe+ye+2),I.emplaceBack(ge+ye,ge+ye+3,ge+ye+1),I.emplaceBack(ge+ye,ge+ye+2,ge+ye+3);const be=new ds(b.createVertexBuffer(A,Zu.members),b.createIndexBuffer(I),s.aJ.simpleSegment(0,0,A.length,I.length));return this._meshCache[g]=be,be}getMeshFrameDelta(e){return 2*Math.PI*s.bu/Math.pow(2,Math.max(e,0))/5}getMinTileElevationForLngLatZoom(e,r){var a;const{tileID:l}=this._getOverscaledTileIDFromLngLatZoom(e,r);return(a=this.getMinMaxElevation(l).minElevation)!==null&&a!==void 0?a:0}getMinMaxElevation(e){const r=this.getTerrainData(e).tile,a={minElevation:null,maxElevation:null};return r&&r.dem&&(a.minElevation=r.dem.min*this.exaggeration,a.maxElevation=r.dem.max*this.exaggeration),a}_getOverscaledTileIDFromLngLatZoom(e,r){const a=s.$.fromLngLat(e.wrap()),l=(1<<r)*s.Z,h=a.x*l,g=a.y*l,b=Math.floor(h/s.Z),A=Math.floor(g/s.Z);return{tileID:new s.Y(r,0,r,b,A),mercatorX:h,mercatorY:g}}}class Sp{constructor(e,r,a){this._context=e,this._size=r,this._tileSize=a,this._objects=[],this._recentlyUsed=[],this._stamp=0}destruct(){for(const e of this._objects)e.texture.destroy(),e.fbo.destroy()}_createObject(e){const r=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),a=new Ze(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return a.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),r.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),r.colorAttachment.set(a.texture),{id:e,fbo:r,texture:a,stamp:-1,inUse:!1}}getObjectForId(e){return this._objects[e]}useObject(e){e.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter(r=>e.id!==r),this._recentlyUsed.push(e.id)}stampObject(e){e.stamp=++this._stamp}getOrCreateFreeObject(){for(const r of this._recentlyUsed)if(!this._objects[r].inUse)return this._objects[r];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const e=this._createObject(this._objects.length);return this._objects.push(e),e}freeObject(e){e.inUse=!1}freeAllObjects(){for(const e of this._objects)this.freeObject(e)}isFull(){return!(this._objects.length<this._size)&&this._objects.some(e=>!e.inUse)===!1}}const di={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ka{constructor(e,r){this.painter=e,this.terrain=r,this.pool=new Sp(e.context,30,r.sourceCache.tileSize*r.qualityFactor)}destruct(){this.pool.destruct()}getTexture(e){return this.pool.getObjectForId(e.rtt[this._stacks.length-1].id).texture}prepareForRender(e,r){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=e._order.filter(a=>!e._layers[a].isHidden(r)),this._coordsAscending={};for(const a in e.sourceCaches){this._coordsAscending[a]={};const l=e.sourceCaches[a].getVisibleCoordinates(),h=e.sourceCaches[a].getSource(),g=h instanceof Jt?h.terrainTileRanges:null;for(const b of l){const A=this.terrain.sourceCache.getTerrainCoords(b,g);for(const I in A)this._coordsAscending[a][I]||(this._coordsAscending[a][I]=[]),this._coordsAscending[a][I].push(A[I])}}this._coordsAscendingStr={};for(const a of e._order){const l=e._layers[a],h=l.source;if(di[l.type]&&!this._coordsAscendingStr[h]){this._coordsAscendingStr[h]={};for(const g in this._coordsAscending[h])this._coordsAscendingStr[h][g]=this._coordsAscending[h][g].map(b=>b.key).sort().join()}}for(const a of this._renderableTiles)for(const l in this._coordsAscendingStr){const h=this._coordsAscendingStr[l][a.tileID.key];h&&h!==a.rttCoords[l]&&(a.rtt=[])}}renderLayer(e,r){if(e.isHidden(this.painter.transform.zoom))return!1;const a=Object.assign(Object.assign({},r),{isRenderingToTexture:!0}),l=e.type,h=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(di[l]&&(this._prevType&&di[this._prevType]||this._stacks.push([]),this._prevType=l,this._stacks[this._stacks.length-1].push(e.id),!g))return!0;if(di[this._prevType]||di[l]&&g){this._prevType=l;const b=this._stacks.length-1,A=this._stacks[b]||[];for(const I of this._renderableTiles){if(this.pool.isFull()&&(Pn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(I),I.rtt[b]){const F=this.pool.getObjectForId(I.rtt[b].id);if(F.stamp===I.rtt[b].stamp){this.pool.useObject(F);continue}}const D=this.pool.getOrCreateFreeObject();this.pool.useObject(D),this.pool.stampObject(D),I.rtt[b]={id:D.id,stamp:D.stamp},h.context.bindFramebuffer.set(D.fbo.framebuffer),h.context.clear({color:s.b7.transparent,stencil:0}),h.currentStencilSource=void 0;for(let F=0;F<A.length;F++){const O=h.style._layers[A[F]],Z=O.source?this._coordsAscending[O.source][I.tileID.key]:[I.tileID];h.context.viewport.set([0,0,D.fbo.width,D.fbo.height]),h._renderTileClippingMasks(O,Z,!0),h.renderLayer(h,h.style.sourceCaches[O.source],O,Z,a),O.source&&(I.rttCoords[O.source]=this._coordsAscendingStr[O.source][I.tileID.key])}}return Pn(this.painter,this.terrain,this._rttTiles,a),this._rttTiles=[],this.pool.freeAllObjects(),di[l]}return!1}}const ct={"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":"Reset bearing to 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"},ft=B,wo={hash:!1,interactive:!0,bearingSnap:7,attributionControl:gn,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:s.a.MAX_TILE_CACHE_ZOOM_LEVELS,transformRequest:null,transformCameraUpdate:null,fadeDuration:300,crossSourceCollisions:!0,clickTolerance:3,localIdeographFontFamily:"sans-serif",pitchWithRotate:!0,rollEnabled:!1,validateStyle:!0,maxCanvasSize:[4096,4096],cancelPendingTileRequestsWhileZooming:!0,centerClampedToGround:!0},Vl={showCompass:!0,showZoom:!0,visualizePitch:!1,visualizeRoll:!0};class Ol{constructor(e,r,a=!1){this.mousedown=h=>{this.startMove(h,C.mousePos(this.element,h)),C.addEventListener(window,"mousemove",this.mousemove),C.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=h=>{this.move(h,C.mousePos(this.element,h))},this.mouseup=h=>{this._rotatePitchHanlder.dragEnd(h),this.offTemp()},this.touchstart=h=>{h.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=C.touchPos(this.element,h.targetTouches)[0],this.startMove(h,this._startPos),C.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),C.addEventListener(window,"touchend",this.touchend))},this.touchmove=h=>{h.targetTouches.length!==1?this.reset():(this._lastPos=C.touchPos(this.element,h.targetTouches)[0],this.move(h,this._lastPos))},this.touchend=h=>{h.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._rotatePitchHanlder.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10,this.element=r;const l=new Ps;this._rotatePitchHanlder=new oi({clickTolerance:3,move:(h,g)=>{const b=r.getBoundingClientRect(),A=new s.P((b.bottom-b.top)/2,(b.right-b.left)/2);return{bearingDelta:s.ce(new s.P(h.x,g.y),g,A),pitchDelta:a?-.5*(g.y-h.y):void 0}},moveStateManager:l,enable:!0,assignEvents:()=>{}}),this.map=e,C.addEventListener(r,"mousedown",this.mousedown),C.addEventListener(r,"touchstart",this.touchstart,{passive:!1}),C.addEventListener(r,"touchcancel",this.reset)}startMove(e,r){this._rotatePitchHanlder.dragStart(e,r),C.disableDrag()}move(e,r){const a=this.map,{bearingDelta:l,pitchDelta:h}=this._rotatePitchHanlder.dragMove(e,r)||{};l&&a.setBearing(a.getBearing()+l),h&&a.setPitch(a.getPitch()+h)}off(){const e=this.element;C.removeEventListener(e,"mousedown",this.mousedown),C.removeEventListener(e,"touchstart",this.touchstart,{passive:!1}),C.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),C.removeEventListener(window,"touchend",this.touchend),C.removeEventListener(e,"touchcancel",this.reset),this.offTemp()}offTemp(){C.enableDrag(),C.removeEventListener(window,"mousemove",this.mousemove),C.removeEventListener(window,"mouseup",this.mouseup),C.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),C.removeEventListener(window,"touchend",this.touchend)}}let Mr;function Fl(u,e,r,a=!1){if(a||!r.getCoveringTilesDetailsProvider().allowWorldCopies())return u==null?void 0:u.wrap();const l=new s.Q(u.lng,u.lat);if(u=new s.Q(u.lng,u.lat),e){const h=new s.Q(u.lng-360,u.lat),g=new s.Q(u.lng+360,u.lat),b=r.locationToScreenPoint(u).distSqr(e);r.locationToScreenPoint(h).distSqr(e)<b?u=h:r.locationToScreenPoint(g).distSqr(e)<b&&(u=g)}for(;Math.abs(u.lng-r.center.lng)>180;){const h=r.locationToScreenPoint(u);if(h.x>=0&&h.y>=0&&h.x<=r.width&&h.y<=r.height)break;u.lng>r.center.lng?u.lng-=360:u.lng+=360}return u.lng!==l.lng&&r.isPointOnMapSurface(r.locationToScreenPoint(u))?u:l}const qi={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 Ju(u,e,r){const a=u.classList;for(const l in qi)a.remove(`maplibregl-${r}-anchor-${l}`);a.add(`maplibregl-${r}-anchor-${e}`)}class is extends s.E{constructor(e){if(super(),this._onKeyPress=r=>{const a=r.code,l=r.charCode||r.keyCode;a!=="Space"&&a!=="Enter"&&l!==32&&l!==13||this.togglePopup()},this._onMapClick=r=>{const a=r.originalEvent.target,l=this._element;this._popup&&(a===l||l.contains(a))&&this.togglePopup()},this._update=r=>{if(!this._map)return;const a=this._map.loaded()&&!this._map.isMoving();((r==null?void 0:r.type)==="terrain"||(r==null?void 0:r.type)==="render"&&!a)&&this._map.once("render",this._update),this._lngLat=Fl(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 h="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?h="rotateX(0deg)":this._pitchAlignment==="map"&&(h=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||r&&r.type!=="moveend"||(this._pos=this._pos.round()),C.setTransform(this._element,`${qi[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${h} ${l}`),M.frameAsync(new AbortController).then(()=>{this._updateOpacity(r&&r.type==="moveend")}).catch(()=>{})},this._onMove=r=>{if(!this._isDragging){const a=this._clickTolerance||this._map._clickTolerance;this._isDragging=r.point.dist(this._pointerdownPos)>=a}this._isDragging&&(this._pos=r.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 s.l("dragstart"))),this.fire(new s.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 s.l("dragend")),this._state="inactive"},this._addDragHandler=r=>{this._element.contains(r.originalEvent.target)&&(r.preventDefault(),this._positionDelta=r.point.sub(this._pos).add(this._offset),this._pointerdownPos=r.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=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._subpixelPositioning=e&&e.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&e.pitchAlignment!=="auto"?e.pitchAlignment:this._rotationAlignment,this.setOpacity(e==null?void 0:e.opacity,e==null?void 0:e.opacityWhenCovered),e&&e.element)this._element=e.element,this._offset=s.P.convert(e&&e.offset||[0,0]);else{this._defaultMarker=!0,this._element=C.create("div");const r=C.createNS("http://www.w3.org/2000/svg","svg"),a=41,l=27;r.setAttributeNS(null,"display","block"),r.setAttributeNS(null,"height",`${a}px`),r.setAttributeNS(null,"width",`${l}px`),r.setAttributeNS(null,"viewBox",`0 0 ${l} ${a}`);const h=C.createNS("http://www.w3.org/2000/svg","g");h.setAttributeNS(null,"stroke","none"),h.setAttributeNS(null,"stroke-width","1"),h.setAttributeNS(null,"fill","none"),h.setAttributeNS(null,"fill-rule","evenodd");const g=C.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"fill-rule","nonzero");const b=C.createNS("http://www.w3.org/2000/svg","g");b.setAttributeNS(null,"transform","translate(3.0, 29.0)"),b.setAttributeNS(null,"fill","#000000");const A=[{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 oe of A){const ce=C.createNS("http://www.w3.org/2000/svg","ellipse");ce.setAttributeNS(null,"opacity","0.04"),ce.setAttributeNS(null,"cx","10.5"),ce.setAttributeNS(null,"cy","5.80029008"),ce.setAttributeNS(null,"rx",oe.rx),ce.setAttributeNS(null,"ry",oe.ry),b.appendChild(ce)}const I=C.createNS("http://www.w3.org/2000/svg","g");I.setAttributeNS(null,"fill",this._color);const D=C.createNS("http://www.w3.org/2000/svg","path");D.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"),I.appendChild(D);const F=C.createNS("http://www.w3.org/2000/svg","g");F.setAttributeNS(null,"opacity","0.25"),F.setAttributeNS(null,"fill","#000000");const O=C.createNS("http://www.w3.org/2000/svg","path");O.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"),F.appendChild(O);const Z=C.createNS("http://www.w3.org/2000/svg","g");Z.setAttributeNS(null,"transform","translate(6.0, 7.0)"),Z.setAttributeNS(null,"fill","#FFFFFF");const J=C.createNS("http://www.w3.org/2000/svg","g");J.setAttributeNS(null,"transform","translate(8.0, 8.0)");const se=C.createNS("http://www.w3.org/2000/svg","circle");se.setAttributeNS(null,"fill","#000000"),se.setAttributeNS(null,"opacity","0.25"),se.setAttributeNS(null,"cx","5.5"),se.setAttributeNS(null,"cy","5.5"),se.setAttributeNS(null,"r","5.4999962");const ne=C.createNS("http://www.w3.org/2000/svg","circle");ne.setAttributeNS(null,"fill","#FFFFFF"),ne.setAttributeNS(null,"cx","5.5"),ne.setAttributeNS(null,"cy","5.5"),ne.setAttributeNS(null,"r","5.4999962"),J.appendChild(se),J.appendChild(ne),g.appendChild(b),g.appendChild(I),g.appendChild(F),g.appendChild(Z),g.appendChild(J),r.appendChild(g),r.setAttributeNS(null,"height",a*this._scale+"px"),r.setAttributeNS(null,"width",l*this._scale+"px"),this._element.appendChild(r),this._offset=s.P.convert(e&&e.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",r=>{r.preventDefault()}),this._element.addEventListener("mousedown",r=>{r.preventDefault()}),Ju(this._element,this._anchor,"marker"),e&&e.className)for(const r of e.className.split(" "))this._element.classList.add(r);this._popup=null}addTo(e){return this.remove(),this._map=e,this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label",e._getUIString("Marker.Title")),e.getCanvasContainer().appendChild(this._element),e.on("move",this._update),e.on("moveend",this._update),e.on("terrain",this._update),e.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),C.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=s.Q.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),e){if(!("offset"in e.options)){const l=Math.abs(13.5)/Math.SQRT2;e.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=e,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(e){return this._subpixelPositioning=e,this}getPopup(){return this._popup}togglePopup(){const e=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:e?(e.isOpen()?e.remove():(e.setLngLat(this._lngLat),e.addTo(this._map)),this):this}_updateOpacity(e=!1){var r,a;const l=(r=this._map)===null||r===void 0?void 0:r.terrain,h=this._map.transform.isLocationOccluded(this._lngLat);if(!l||h){const Z=h?this._opacityWhenCovered:this._opacity;return void(this._element.style.opacity!==Z&&(this._element.style.opacity=Z))}if(e)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}const g=this._map,b=g.terrain.depthAtPoint(this._pos),A=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,A)-b<.006)return void(this._element.style.opacity=this._opacity);const I=-this._offset.y/g.transform.pixelsPerMeter,D=Math.sin(g.getPitch()*Math.PI/180)*I,F=g.terrain.depthAtPoint(new s.P(this._pos.x,this._pos.y-this._offset.y)),O=g.transform.lngLatToCameraDepth(this._lngLat,A+D)-F>.006;!((a=this._popup)===null||a===void 0)&&a.isOpen()&&O&&this._popup.remove(),this._element.style.opacity=O?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(e){return this._offset=s.P.convert(e),this._update(),this}addClassName(e){this._element.classList.add(e)}removeClassName(e){this._element.classList.remove(e)}toggleClassName(e){return this._element.classList.toggle(e)}setDraggable(e){return this._draggable=!!e,this._map&&(e?(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(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e&&e!=="auto"?e:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(e,r){return(this._opacity===void 0||e===void 0&&r===void 0)&&(this._opacity="1",this._opacityWhenCovered="0.2"),e!==void 0&&(this._opacity=e),r!==void 0&&(this._opacityWhenCovered=r),this._map&&this._updateOpacity(!0),this}}const vr={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let cr=0,Ls=!1;const So={maxWidth:100,unit:"metric"};function Ao(u,e,r){const a=r&&r.maxWidth||100,l=u._container.clientHeight/2,h=u._container.clientWidth/2,g=u.unproject([h-a/2,l]),b=u.unproject([h+a/2,l]),A=Math.round(u.project(b).x-u.project(g).x),I=Math.min(a,A,u._container.clientWidth),D=g.distanceTo(b);if(r&&r.unit==="imperial"){const F=3.2808*D;F>5280?ns(e,I,F/5280,u._getUIString("ScaleControl.Miles")):ns(e,I,F,u._getUIString("ScaleControl.Feet"))}else r&&r.unit==="nautical"?ns(e,I,D/1852,u._getUIString("ScaleControl.NauticalMiles")):D>=1e3?ns(e,I,D/1e3,u._getUIString("ScaleControl.Kilometers")):ns(e,I,D,u._getUIString("ScaleControl.Meters"))}function ns(u,e,r,a){const l=function(h){const g=Math.pow(10,`${Math.floor(h)}`.length-1);let b=h/g;return b=b>=10?10:b>=5?5:b>=3?3:b>=2?2:b>=1?1:function(A){const I=Math.pow(10,Math.ceil(-Math.log(A)/Math.LN10));return Math.round(A*I)/I}(b),g*b}(r);u.style.width=e*(l/r)+"px",u.innerHTML=`${l} ${a}`}const Nl={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1,locationOccludedOpacity:void 0},ql=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Rs(u){if(u){if(typeof u=="number"){const e=Math.round(Math.abs(u)/Math.SQRT2);return{center:new s.P(0,0),top:new s.P(0,u),"top-left":new s.P(e,e),"top-right":new s.P(-e,e),bottom:new s.P(0,-u),"bottom-left":new s.P(e,-e),"bottom-right":new s.P(-e,-e),left:new s.P(u,0),right:new s.P(-u,0)}}if(u instanceof s.P||Array.isArray(u)){const e=s.P.convert(u);return{center:e,top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{center:s.P.convert(u.center||[0,0]),top:s.P.convert(u.top||[0,0]),"top-left":s.P.convert(u["top-left"]||[0,0]),"top-right":s.P.convert(u["top-right"]||[0,0]),bottom:s.P.convert(u.bottom||[0,0]),"bottom-left":s.P.convert(u["bottom-left"]||[0,0]),"bottom-right":s.P.convert(u["bottom-right"]||[0,0]),left:s.P.convert(u.left||[0,0]),right:s.P.convert(u.right||[0,0])}}return Rs(new s.P(0,0))}const Ul=B;x.AJAXError=s.cq,x.Event=s.l,x.Evented=s.E,x.LngLat=s.Q,x.MercatorCoordinate=s.$,x.Point=s.P,x.addProtocol=s.cr,x.config=s.a,x.removeProtocol=s.cs,x.AttributionControl=ir,x.BoxZoomHandler=Il,x.CanvasSource=_i,x.CooperativeGesturesHandler=Sa,x.DoubleClickZoomHandler=wa,x.DragPanHandler=Hu,x.DragRotateHandler=Wu,x.EdgeInsets=Qs,x.FullscreenControl=class extends s.E{constructor(u={}){super(),this._onFullscreenChange=()=>{var e;let r=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((e=r==null?void 0:r.shadowRoot)===null||e===void 0)&&e.fullscreenElement;)r=r.shadowRoot.fullscreenElement;r===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,u&&u.container&&(u.container instanceof HTMLElement?this._container=u.container:s.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(u){return this._map=u,this._container||(this._container=this._map.getContainer()),this._controlContainer=C.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){C.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const u=this._fullscreenButton=C.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);C.create("span","maplibregl-ctrl-icon",u).setAttribute("aria-hidden","true"),u.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const u=this._getTitle();this._fullscreenButton.setAttribute("aria-label",u),this._fullscreenButton.title=u}_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 s.l("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new s.l("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},x.GeoJSONSource=Ht,x.GeolocateControl=class extends s.E{constructor(u){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new s.l("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,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(e),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new s.l("geolocate",e)),this._finish()}},this._updateCamera=e=>{const r=new s.Q(e.coords.longitude,e.coords.latitude),a=e.coords.accuracy,l=this._map.getBearing(),h=s.e({bearing:l},this.options.fitBoundsOptions),g=Xe.fromLngLat(r,a);this._map.fitBounds(g,h,{geolocateSource:!0})},this._updateMarker=e=>{if(e){const r=new s.Q(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=e=>{if(this._map){if(e.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 r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(e.code===3&&Ls)return;this.options.trackUserLocation&&this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new s.l("error",e)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",e=>e.preventDefault()),this._geolocateButton=C.create("button","maplibregl-ctrl-geolocate",this._container),C.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=e=>{if(this._map){if(e===!1){s.w("Geolocation support is not available so the GeolocateControl will be disabled.");const r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}else{const r=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=C.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new is({element:this._dotElement}),this._circleElement=C.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new is({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",r=>{r.geolocateSource||this._watchState!=="ACTIVE_LOCK"||r.originalEvent&&r.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new s.l("trackuserlocationend")),this.fire(new s.l("userlocationlostfocus")))})}},this.options=s.e({},vr,u)}onAdd(u){return this._map=u,this._container=C.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),function(){return s._(this,arguments,void 0,function*(e=!1){if(Mr!==void 0&&!e)return Mr;if(window.navigator.permissions===void 0)return Mr=!!window.navigator.geolocation,Mr;try{Mr=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{Mr=!!window.navigator.geolocation}return Mr})}().then(e=>this._finishSetupUI(e)),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(),C.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,cr=0,Ls=!1}_isOutOfMapMaxBounds(u){const e=this._map.getMaxBounds(),r=u.coords;return e&&(r.longitude<e.getWest()||r.longitude>e.getEast()||r.latitude<e.getSouth()||r.latitude>e.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":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const u=this._map.getBounds(),e=u.getSouthEast(),r=u.getNorthEast(),a=e.distanceTo(r),l=Math.ceil(this._accuracy/(a/this._map._container.clientHeight)*2);this._circleElement.style.width=`${l}px`,this._circleElement.style.height=`${l}px`}trigger(){if(!this._setup)return s.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 s.l("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":cr--,Ls=!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 s.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 s.l("trackuserlocationstart")),this.fire(new s.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 u;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),cr++,cr>1?(u={maximumAge:6e5,timeout:0},Ls=!0):(u=this.options.positionOptions,Ls=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,u)}}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)}},x.GlobeControl=class{constructor(){this._toggleProjection=()=>{var u;const e=(u=this._map.getProjection())===null||u===void 0?void 0:u.type;this._map.setProjection(e!=="mercator"&&e?{type:"mercator"}:{type:"globe"}),this._updateGlobeIcon()},this._updateGlobeIcon=()=>{var u;this._globeButton.classList.remove("maplibregl-ctrl-globe"),this._globeButton.classList.remove("maplibregl-ctrl-globe-enabled"),((u=this._map.getProjection())===null||u===void 0?void 0:u.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(u){return this._map=u,this._container=C.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._globeButton=C.create("button","maplibregl-ctrl-globe",this._container),C.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._container}onRemove(){C.remove(this._container),this._map.off("styledata",this._updateGlobeIcon),this._globeButton.removeEventListener("click",this._toggleProjection),this._map=void 0}},x.Hash=Tl,x.ImageSource=Jt,x.KeyboardHandler=Ms,x.LngLatBounds=Xe,x.LogoControl=vo,x.Map=class extends wp{constructor(u){var e,r;s.cn.mark(s.co.create);const a=Object.assign(Object.assign(Object.assign({},wo),u),{canvasContextAttributes:Object.assign(Object.assign({},wo.canvasContextAttributes),u.canvasContextAttributes)});if(a.minZoom!=null&&a.maxZoom!=null&&a.minZoom>a.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(a.minPitch!=null&&a.maxPitch!=null&&a.minPitch>a.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(a.minPitch!=null&&a.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(a.maxPitch!=null&&a.maxPitch>180)throw new Error("maxPitch must be less than or equal to 180");const l=new ms,h=new Ys;if(a.minZoom!==void 0&&l.setMinZoom(a.minZoom),a.maxZoom!==void 0&&l.setMaxZoom(a.maxZoom),a.minPitch!==void 0&&l.setMinPitch(a.minPitch),a.maxPitch!==void 0&&l.setMaxPitch(a.maxPitch),a.renderWorldCopies!==void 0&&l.setRenderWorldCopies(a.renderWorldCopies),super(l,h,{bearingSnap:a.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new Bl,this._controls=[],this._mapId=s.a4(),this._contextLost=b=>{b.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new s.l("webglcontextlost",{originalEvent:b}))},this._contextRestored=b=>{this._setupPainter(),this.resize(),this._update(),this.fire(new s.l("webglcontextrestored",{originalEvent:b}))},this._onMapScroll=b=>{if(b.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=a.interactive,this._maxTileCacheSize=a.maxTileCacheSize,this._maxTileCacheZoomLevels=a.maxTileCacheZoomLevels,this._canvasContextAttributes=Object.assign({},a.canvasContextAttributes),this._trackResize=a.trackResize===!0,this._bearingSnap=a.bearingSnap,this._centerClampedToGround=a.centerClampedToGround,this._refreshExpiredTiles=a.refreshExpiredTiles===!0,this._fadeDuration=a.fadeDuration,this._crossSourceCollisions=a.crossSourceCollisions===!0,this._collectResourceTiming=a.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},ct),a.locale),this._clickTolerance=a.clickTolerance,this._overridePixelRatio=a.pixelRatio,this._maxCanvasSize=a.maxCanvasSize,this.transformCameraUpdate=a.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=a.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=ee.addThrottleControl(()=>this.isMoving()),this._requestManager=new pe(a.transformRequest),typeof a.container=="string"){if(this._container=document.getElementById(a.container),!this._container)throw new Error(`Container '${a.container}' not found.`)}else{if(!(a.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=a.container}if(a.maxBounds&&this.setMaxBounds(a.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"){addEventListener("online",this._onWindowOnline,!1);let b=!1;const A=yo(I=>{this._trackResize&&!this._removed&&(this.resize(I),this.redraw())},50);this._resizeObserver=new ResizeObserver(I=>{b?A(I):b=!0}),this._resizeObserver.observe(this._container)}this.handlers=new vp(this,a),this._hash=a.hash&&new Tl(typeof a.hash=="string"&&a.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:a.center,elevation:a.elevation,zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,roll:a.roll}),a.bounds&&(this.resize(),this.fitBounds(a.bounds,s.e({},a.fitBoundsOptions,{duration:0}))));const g=typeof a.style=="string"||((r=(e=a.style)===null||e===void 0?void 0:e.projection)===null||r===void 0?void 0:r.type)!=="globe";this.resize(null,g),this._localIdeographFontFamily=a.localIdeographFontFamily,this._validateStyle=a.validateStyle,a.style&&this.setStyle(a.style,{localIdeographFontFamily:a.localIdeographFontFamily}),a.attributionControl&&this.addControl(new ir(typeof a.attributionControl=="boolean"?void 0:a.attributionControl)),a.maplibreLogo&&this.addControl(new vo,a.logoPosition),this.on("style.load",()=>{if(g||this._resizeTransform(),this.transform.unmodified){const b=s.O(this.style.stylesheet,["center","zoom","bearing","pitch","roll"]);this.jumpTo(b)}}),this.on("data",b=>{this._update(b.dataType==="style"),this.fire(new s.l(`${b.dataType}data`,b))}),this.on("dataloading",b=>{this.fire(new s.l(`${b.dataType}dataloading`,b))}),this.on("dataabort",b=>{this.fire(new s.l("sourcedataabort",b))})}_getMapId(){return this._mapId}addControl(u,e){if(e===void 0&&(e=u.getDefaultPosition?u.getDefaultPosition():"top-right"),!u||!u.onAdd)return this.fire(new s.k(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const r=u.onAdd(this);this._controls.push(u);const a=this._controlPositions[e];return e.indexOf("bottom")!==-1?a.insertBefore(r,a.firstChild):a.appendChild(r),this}removeControl(u){if(!u||!u.onRemove)return this.fire(new s.k(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const e=this._controls.indexOf(u);return e>-1&&this._controls.splice(e,1),u.onRemove(this),this}hasControl(u){return this._controls.indexOf(u)>-1}calculateCameraOptionsFromTo(u,e,r,a){return a==null&&this.terrain&&(a=this.terrain.getElevationForLngLatZoom(r,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(u,e,r,a)}resize(u,e=!0){const[r,a]=this._containerDimensions(),l=this._getClampedPixelRatio(r,a);if(this._resizeCanvas(r,a,l),this.painter.resize(r,a,l),this.painter.overLimit()){const g=this.painter.context.gl;this._maxCanvasSize=[g.drawingBufferWidth,g.drawingBufferHeight];const b=this._getClampedPixelRatio(r,a);this._resizeCanvas(r,a,b),this.painter.resize(r,a,b)}this._resizeTransform(e);const h=!this._moving;return h&&(this.stop(),this.fire(new s.l("movestart",u)).fire(new s.l("move",u))),this.fire(new s.l("resize",u)),h&&this.fire(new s.l("moveend",u)),this}_resizeTransform(u=!0){var e;const[r,a]=this._containerDimensions();this.transform.resize(r,a,u),(e=this._requestedCameraState)===null||e===void 0||e.resize(r,a,u)}_getClampedPixelRatio(u,e){const{0:r,1:a}=this._maxCanvasSize,l=this.getPixelRatio(),h=u*l,g=e*l;return Math.min(h>r?r/h:1,g>a?a/g:1)*l}getPixelRatio(){var u;return(u=this._overridePixelRatio)!==null&&u!==void 0?u:devicePixelRatio}setPixelRatio(u){this._overridePixelRatio=u,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(u){return this.transform.setMaxBounds(Xe.convert(u)),this._update()}setMinZoom(u){if((u=u??-2)>=-2&&u<=this.transform.maxZoom)return this.transform.setMinZoom(u),this._update(),this.getZoom()<u&&this.setZoom(u),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")}getMinZoom(){return this.transform.minZoom}setMaxZoom(u){if((u=u??22)>=this.transform.minZoom)return this.transform.setMaxZoom(u),this._update(),this.getZoom()>u&&this.setZoom(u),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(u){if((u=u??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(u>=0&&u<=this.transform.maxPitch)return this.transform.setMinPitch(u),this._update(),this.getPitch()<u&&this.setPitch(u),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")}getMinPitch(){return this.transform.minPitch}setMaxPitch(u){if((u=u??60)>180)throw new Error("maxPitch must be less than or equal to 180");if(u>=this.transform.minPitch)return this.transform.setMaxPitch(u),this._update(),this.getPitch()>u&&this.setPitch(u),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(u){return this.transform.setRenderWorldCopies(u),this._update()}project(u){return this.transform.locationToScreenPoint(s.Q.convert(u),this.style&&this.terrain)}unproject(u){return this.transform.screenPointToLocation(s.P.convert(u),this.terrain)}isMoving(){var u;return this._moving||((u=this.handlers)===null||u===void 0?void 0:u.isMoving())}isZooming(){var u;return this._zooming||((u=this.handlers)===null||u===void 0?void 0:u.isZooming())}isRotating(){var u;return this._rotating||((u=this.handlers)===null||u===void 0?void 0:u.isRotating())}_createDelegatedListener(u,e,r){if(u==="mouseenter"||u==="mouseover"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:h=>{const g=e.filter(A=>this.getLayer(A)),b=g.length!==0?this.queryRenderedFeatures(h.point,{layers:g}):[];b.length?a||(a=!0,r.call(this,new Vr(u,this,h.originalEvent,{features:b}))):a=!1},mouseout:()=>{a=!1}}}}if(u==="mouseleave"||u==="mouseout"){let a=!1;return{layers:e,listener:r,delegates:{mousemove:g=>{const b=e.filter(A=>this.getLayer(A));(b.length!==0?this.queryRenderedFeatures(g.point,{layers:b}):[]).length?a=!0:a&&(a=!1,r.call(this,new Vr(u,this,g.originalEvent)))},mouseout:g=>{a&&(a=!1,r.call(this,new Vr(u,this,g.originalEvent)))}}}}{const a=l=>{const h=e.filter(b=>this.getLayer(b)),g=h.length!==0?this.queryRenderedFeatures(l.point,{layers:h}):[];g.length&&(l.features=g,r.call(this,l),delete l.features)};return{layers:e,listener:r,delegates:{[u]:a}}}}_saveDelegatedListener(u,e){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[u]=this._delegatedListeners[u]||[],this._delegatedListeners[u].push(e)}_removeDelegatedListener(u,e,r){if(!this._delegatedListeners||!this._delegatedListeners[u])return;const a=this._delegatedListeners[u];for(let l=0;l<a.length;l++){const h=a[l];if(h.listener===r&&h.layers.length===e.length&&h.layers.every(g=>e.includes(g))){for(const g in h.delegates)this.off(g,h.delegates[g]);return void a.splice(l,1)}}}on(u,e,r){if(r===void 0)return super.on(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);this._saveDelegatedListener(u,l);for(const h in l.delegates)this.on(h,l.delegates[h]);return{unsubscribe:()=>{this._removeDelegatedListener(u,a,r)}}}once(u,e,r){if(r===void 0)return super.once(u,e);const a=typeof e=="string"?[e]:e,l=this._createDelegatedListener(u,a,r);for(const h in l.delegates){const g=l.delegates[h];l.delegates[h]=(...b)=>{this._removeDelegatedListener(u,a,r),g(...b)}}this._saveDelegatedListener(u,l);for(const h in l.delegates)this.once(h,l.delegates[h]);return this}off(u,e,r){return r===void 0?super.off(u,e):(this._removeDelegatedListener(u,typeof e=="string"?[e]:e,r),this)}queryRenderedFeatures(u,e){if(!this.style)return[];let r;const a=u instanceof s.P||Array.isArray(u),l=a?u:[[0,0],[this.transform.width,this.transform.height]];if(e=e||(a?{}:u)||{},l instanceof s.P||typeof l[0]=="number")r=[s.P.convert(l)];else{const h=s.P.convert(l[0]),g=s.P.convert(l[1]);r=[h,new s.P(g.x,h.y),g,new s.P(h.x,g.y),h]}return this.style.queryRenderedFeatures(r,e,this.transform)}querySourceFeatures(u,e){return this.style.querySourceFeatures(u,e)}setStyle(u,e){return(e=s.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},e)).diff!==!1&&e.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&u?(this._diffStyle(u,e),this):(this._localIdeographFontFamily=e.localIdeographFontFamily,this._updateStyle(u,e))}setTransformRequest(u){return this._requestManager.setTransformRequest(u),this}_getUIString(u){const e=this._locale[u];if(e==null)throw new Error(`Missing UI string '${u}'`);return e}_updateStyle(u,e){var r,a;if(e.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",()=>this._updateStyle(u,e));const l=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!u)),u?(this.style=new ll(this,e||{}),this.style.setEventedParent(this,{style:this.style}),typeof u=="string"?this.style.loadURL(u,e,l):this.style.loadJSON(u,e,l),this):((a=(r=this.style)===null||r===void 0?void 0:r.projection)===null||a===void 0||a.destroy(),delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new ll(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(u,e){if(typeof u=="string"){const r=this._requestManager.transformRequest(u,"Style");s.j(r,new AbortController).then(a=>{this._updateDiff(a.data,e)}).catch(a=>{a&&this.fire(new s.k(a))})}else typeof u=="object"&&this._updateDiff(u,e)}_updateDiff(u,e){try{this.style.setState(u,e)&&this._update(!0)}catch(r){s.w(`Unable to perform style diff: ${r.message||r.error||r}. Rebuilding the style from scratch.`),this._updateStyle(u,e)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():s.w("There is no style added to the map.")}addSource(u,e){return this._lazyInitEmptyStyle(),this.style.addSource(u,e),this._update(!0)}isSourceLoaded(u){const e=this.style&&this.style.sourceCaches[u];if(e!==void 0)return e.loaded();this.fire(new s.k(new Error(`There is no source with ID '${u}'`)))}setTerrain(u){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),u){const e=this.style.sourceCaches[u.source];if(!e)throw new Error(`cannot load terrain, because there exists no source with ID: ${u.source}`);this.terrain===null&&e.reload();for(const r in this.style._layers){const a=this.style._layers[r];a.type==="hillshade"&&a.source===u.source&&s.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.")}this.terrain=new Gu(this.painter,e,u),this.painter.renderToTexture=new ka(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=r=>{var a;r.dataType==="style"?this.terrain.sourceCache.freeRtt():r.dataType==="source"&&r.tile&&(r.sourceId!==u.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))),((a=r.source)===null||a===void 0?void 0:a.type)==="image"?this.terrain.sourceCache.freeRtt():this.terrain.sourceCache.freeRtt(r.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.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 s.l("terrain",{terrain:u})),this}getTerrain(){var u,e;return(e=(u=this.terrain)===null||u===void 0?void 0:u.options)!==null&&e!==void 0?e:null}areTilesLoaded(){const u=this.style&&this.style.sourceCaches;for(const e in u){const r=u[e]._tiles;for(const a in r){const l=r[a];if(l.state!=="loaded"&&l.state!=="errored")return!1}}return!0}removeSource(u){return this.style.removeSource(u),this._update(!0)}getSource(u){return this.style.getSource(u)}setSourceTileLodParams(u,e,r){if(r){const a=this.getSource(r);if(!a)throw new Error(`There is no source with ID "${r}", cannot set LOD parameters`);a.calculateTileZoom=xe(Math.max(1,u),Math.max(1,e))}else for(const a in this.style.sourceCaches)this.style.sourceCaches[a].getSource().calculateTileZoom=xe(Math.max(1,u),Math.max(1,e));return this._update(!0),this}refreshTiles(u,e){const r=this.style.sourceCaches[u];if(!r)throw new Error(`There is no source cache with ID "${u}", cannot refresh tile`);e===void 0?r.reload():r.refreshTiles(e.map(a=>new s.a1(a.z,a.x,a.y)))}addImage(u,e,r={}){const{pixelRatio:a=1,sdf:l=!1,stretchX:h,stretchY:g,content:b,textFitWidth:A,textFitHeight:I}=r;if(this._lazyInitEmptyStyle(),!(e instanceof HTMLImageElement||s.b(e))){if(e.width===void 0||e.height===void 0)return this.fire(new s.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:D,height:F,data:O}=e,Z=e;return this.style.addImage(u,{data:new s.R({width:D,height:F},new Uint8Array(O)),pixelRatio:a,stretchX:h,stretchY:g,content:b,textFitWidth:A,textFitHeight:I,sdf:l,version:0,userImage:Z}),Z.onAdd&&Z.onAdd(this,u),this}}{const{width:D,height:F,data:O}=M.getImageData(e);this.style.addImage(u,{data:new s.R({width:D,height:F},O),pixelRatio:a,stretchX:h,stretchY:g,content:b,textFitWidth:A,textFitHeight:I,sdf:l,version:0})}}updateImage(u,e){const r=this.style.getImage(u);if(!r)return this.fire(new s.k(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const a=e instanceof HTMLImageElement||s.b(e)?M.getImageData(e):e,{width:l,height:h,data:g}=a;if(l===void 0||h===void 0)return this.fire(new s.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!==r.data.width||h!==r.data.height)return this.fire(new s.k(new Error("The width and height of the updated image must be that same as the previous version of the image")));const b=!(e instanceof HTMLImageElement||s.b(e));return r.data.replace(g,b),this.style.updateImage(u,r),this}getImage(u){return this.style.getImage(u)}hasImage(u){return u?!!this.style.getImage(u):(this.fire(new s.k(new Error("Missing required image id"))),!1)}removeImage(u){this.style.removeImage(u)}loadImage(u){return ee.getImage(this._requestManager.transformRequest(u,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(u,e){return this._lazyInitEmptyStyle(),this.style.addLayer(u,e),this._update(!0)}moveLayer(u,e){return this.style.moveLayer(u,e),this._update(!0)}removeLayer(u){return this.style.removeLayer(u),this._update(!0)}getLayer(u){return this.style.getLayer(u)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(u,e,r){return this.style.setLayerZoomRange(u,e,r),this._update(!0)}setFilter(u,e,r={}){return this.style.setFilter(u,e,r),this._update(!0)}getFilter(u){return this.style.getFilter(u)}setPaintProperty(u,e,r,a={}){return this.style.setPaintProperty(u,e,r,a),this._update(!0)}getPaintProperty(u,e){return this.style.getPaintProperty(u,e)}setLayoutProperty(u,e,r,a={}){return this.style.setLayoutProperty(u,e,r,a),this._update(!0)}getLayoutProperty(u,e){return this.style.getLayoutProperty(u,e)}setGlyphs(u,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(u,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(u,e,r={}){return this._lazyInitEmptyStyle(),this.style.addSprite(u,e,r,a=>{a||this._update(!0)}),this}removeSprite(u){return this._lazyInitEmptyStyle(),this.style.removeSprite(u),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(u,e,r=>{r||this._update(!0)}),this}setLight(u,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(u,e),this._update(!0)}getLight(){return this.style.getLight()}setSky(u,e={}){return this._lazyInitEmptyStyle(),this.style.setSky(u,e),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(u,e){return this.style.setFeatureState(u,e),this._update()}removeFeatureState(u,e){return this.style.removeFeatureState(u,e),this._update()}getFeatureState(u){return this.style.getFeatureState(u)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let u=0,e=0;return this._container&&(u=this._container.clientWidth||400,e=this._container.clientHeight||300),[u,e]}_setupContainer(){const u=this._container;u.classList.add("maplibregl-map");const e=this._canvasContainer=C.create("div","maplibregl-canvas-container",u);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=C.create("canvas","maplibregl-canvas",e),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 r=this._containerDimensions(),a=this._getClampedPixelRatio(r[0],r[1]);this._resizeCanvas(r[0],r[1],a);const l=this._controlContainer=C.create("div","maplibregl-control-container",u),h=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(g=>{h[g]=C.create("div",`maplibregl-ctrl-${g} `,l)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(u,e,r){this._canvas.width=Math.floor(r*u),this._canvas.height=Math.floor(r*e),this._canvas.style.width=`${u}px`,this._canvas.style.height=`${e}px`}_setupPainter(){const u=Object.assign(Object.assign({},this._canvasContextAttributes),{alpha:!0,depth:!0,stencil:!0,premultipliedAlpha:!0});let e=null;this._canvas.addEventListener("webglcontextcreationerror",a=>{e={requestedAttributes:u},a&&(e.statusMessage=a.statusMessage,e.type=a.type)},{once:!0});let r=null;if(r=this._canvasContextAttributes.contextType?this._canvas.getContext(this._canvasContextAttributes.contextType,u):this._canvas.getContext("webgl2",u)||this._canvas.getContext("webgl",u),!r){const a="Failed to initialize WebGL";throw e?(e.message=a,new Error(JSON.stringify(e))):new Error(a)}this.painter=new kl(r,this.transform),T.testSupport(r)}migrateProjection(u,e){super.migrateProjection(u,e),this.painter.transform=u,this.fire(new s.l("projectiontransition",{newProjection:this.style.projection.name}))}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(u){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||u,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(u){return this._update(),this._renderTaskQueue.add(u)}_cancelRenderFrame(u){this._renderTaskQueue.remove(u)}_render(u){var e,r,a,l,h;const g=this._idleTriggered?this._fadeDuration:0,b=((e=this.style.projection)===null||e===void 0?void 0:e.transitionState)>0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(u),this._removed)return;let A=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const F=this.transform.zoom,O=M.now();this.style.zoomHistory.update(F,O);const Z=new s.C(F,{now:O,fadeDuration:g,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),J=Z.crossFadingFactor();J===1&&J===this._crossFadingFactor||(A=!0,this._crossFadingFactor=J),this.style.update(Z)}const I=((r=this.style.projection)===null||r===void 0?void 0:r.transitionState)>0!==b;(a=this.style.projection)===null||a===void 0||a.setErrorQueryLatitudeDegrees(this.transform.center.lat),this.transform.setTransitionState((l=this.style.projection)===null||l===void 0?void 0:l.transitionState,(h=this.style.projection)===null||h===void 0?void 0:h.latitudeErrorCorrectionRadians),this.style&&(this._sourcesDirty||I)&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.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,g,this._crossSourceCollisions,I),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:g,showPadding:this.showPadding}),this.fire(new s.l("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,s.cn.mark(s.co.load),this.fire(new s.l("load"))),this.style&&(this.style.hasTransitions()||A)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const D=this._sourcesDirty||this._styleDirty||this._placementDirty;return D||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new s.l("idle")),!this._loaded||this._fullyLoaded||D||(this._fullyLoaded=!0,s.cn.mark(s.co.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var u;this._hash&&this._hash.remove();for(const r of this._controls)r.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"&&removeEventListener("online",this._onWindowOnline,!1),ee.removeThrottleControl(this._imageQueueHandle),(u=this._resizeObserver)===null||u===void 0||u.disconnect();const e=this.painter.context.gl.getExtension("WEBGL_lose_context");e!=null&&e.loseContext&&e.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),C.remove(this._canvasContainer),C.remove(this._controlContainer),this._container.removeEventListener("scroll",this._onMapScroll,!1),this._container.classList.remove("maplibregl-map"),s.cn.clearMetrics(),this._removed=!0,this.fire(new s.l("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,M.frame(this._frameRequest,u=>{s.cn.frame(u),this._frameRequest=null;try{this._render(u)}catch(e){if(!s.cp(e)&&!function(r){return r.message===aa}(e))throw e}},()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(u){this._showTileBoundaries!==u&&(this._showTileBoundaries=u,this._update())}get showPadding(){return!!this._showPadding}set showPadding(u){this._showPadding!==u&&(this._showPadding=u,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(u){this._showCollisionBoxes!==u&&(this._showCollisionBoxes=u,u?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(u){this._showOverdrawInspector!==u&&(this._showOverdrawInspector=u,this._update())}get repaint(){return!!this._repaint}set repaint(u){this._repaint!==u&&(this._repaint=u,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(u){this._vertices=u,this._update()}get version(){return ft}getCameraTargetElevation(){return this.transform.elevation}getProjection(){return this.style.getProjection()}setProjection(u){return this._lazyInitEmptyStyle(),this.style.setProjection(u),this._update(!0)}},x.MapMouseEvent=Vr,x.MapTouchEvent=ks,x.MapWheelEvent=Pl,x.Marker=is,x.NavigationControl=class{constructor(u){this._updateZoomButtons=()=>{const e=this._map.getZoom(),r=e===this._map.getMaxZoom(),a=e===this._map.getMinZoom();this._zoomInButton.disabled=r,this._zoomOutButton.disabled=a,this._zoomInButton.setAttribute("aria-disabled",r.toString()),this._zoomOutButton.setAttribute("aria-disabled",a.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=(e,r)=>{const a=this._map._getUIString(`NavigationControl.${r}`);e.title=a,e.setAttribute("aria-label",a)},this.options=s.e({},Vl,u),this._container=C.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",e=>e.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",e=>this._map.zoomIn({},{originalEvent:e})),C.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",e=>this._map.zoomOut({},{originalEvent:e})),C.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",e=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:e}):this._map.resetNorth({},{originalEvent:e})}),this._compassIcon=C.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(u){return this._map=u,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 Ol(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){C.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(u,e){const r=C.create("button",u,this._container);return r.type="button",r.addEventListener("click",e),r}},x.Popup=class extends s.E{constructor(u){super(),this._updateOpacity=()=>{this.options.locationOccludedOpacity!==void 0&&(this._container.style.opacity=this._map.transform.isLocationOccluded(this.getLngLat())?`${this.options.locationOccludedOpacity}`:void 0)},this.remove=()=>(this._content&&C.remove(this._content),this._container&&(C.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 s.l("close"))),this),this._onMouseUp=e=>{this._update(e.point)},this._onMouseMove=e=>{this._update(e.point)},this._onDrag=e=>{this._update(e.point)},this._update=e=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=C.create("div","maplibregl-popup",this._map.getContainer()),this._tip=C.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const g of this.options.className.split(" "))this._container.classList.add(g);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=Fl(this._lngLat,this._flatPos,this._map.transform,this._trackPointer),this._trackPointer&&!e)return;const r=this._flatPos=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&e?e:this._map.transform.locationToScreenPoint(this._lngLat));let a=this.options.anchor;const l=Rs(this.options.offset);if(!a){const g=this._container.offsetWidth,b=this._container.offsetHeight;let A;A=r.y+l.bottom.y<b?["top"]:r.y>this._map.transform.height-b?["bottom"]:[],r.x<g/2?A.push("left"):r.x>this._map.transform.width-g/2&&A.push("right"),a=A.length===0?"bottom":A.join("-")}let h=r.add(l[a]);this.options.subpixelPositioning||(h=h.round()),C.setTransform(this._container,`${qi[a]} translate(${h.x}px,${h.y}px)`),Ju(this._container,a,"popup"),this._updateOpacity()},this._onClose=()=>{this.remove()},this.options=s.e(Object.create(Nl),u)}addTo(u){return this._map&&this.remove(),this._map=u,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 s.l("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(u){return this._lngLat=s.Q.convert(u),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(u){return this.setDOMContent(document.createTextNode(u))}setHTML(u){const e=document.createDocumentFragment(),r=document.createElement("body");let a;for(r.innerHTML=u;a=r.firstChild,a;)e.appendChild(a);return this.setDOMContent(e)}getMaxWidth(){var u;return(u=this._container)===null||u===void 0?void 0:u.style.maxWidth}setMaxWidth(u){return this.options.maxWidth=u,this._update(),this}setDOMContent(u){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=C.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(u),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(u){return this._container&&this._container.classList.add(u),this}removeClassName(u){return this._container&&this._container.classList.remove(u),this}setOffset(u){return this.options.offset=u,this._update(),this}toggleClassName(u){if(this._container)return this._container.classList.toggle(u)}setSubpixelPositioning(u){this.options.subpixelPositioning=u}_createCloseButton(){this.options.closeButton&&(this._closeButton=C.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const u=this._container.querySelector(ql);u&&u.focus()}},x.RasterDEMTileSource=er,x.RasterTileSource=kt,x.ScaleControl=class{constructor(u){this._onMove=()=>{Ao(this._map,this._container,this.options)},this.setUnit=e=>{this.options.unit=e,Ao(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},So),u)}getDefaultPosition(){return"bottom-left"}onAdd(u){return this._map=u,this._container=C.create("div","maplibregl-ctrl maplibregl-ctrl-scale",u.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){C.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},x.ScrollZoomHandler=Lt,x.Style=ll,x.TerrainControl=class{constructor(u){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=u}onAdd(u){return this._map=u,this._container=C.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=C.create("button","maplibregl-ctrl-terrain",this._container),C.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(){C.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},x.TwoFingersTouchPitchHandler=va,x.TwoFingersTouchRotateHandler=st,x.TwoFingersTouchZoomHandler=Is,x.TwoFingersTouchZoomRotateHandler=Dl,x.VectorTileSource=wt,x.VideoSource=Br,x.addSourceType=(u,e)=>s._(void 0,void 0,void 0,function*(){if(Ti(u))throw new Error(`A source type called "${u}" already exists.`);((r,a)=>{gr[r]=a})(u,e)}),x.clearPrewarmedResources=function(){const u=yi;u&&(u.isPreloaded()&&u.numActive()===1?(u.release(kn),yi=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()"))},x.createTileMesh=$s,x.getMaxParallelImageRequests=function(){return s.a.MAX_PARALLEL_IMAGE_REQUESTS},x.getRTLTextPluginStatus=function(){return _t().getRTLTextPluginStatus()},x.getVersion=function(){return Ul},x.getWorkerCount=function(){return ki.workerCount},x.getWorkerUrl=function(){return s.a.WORKER_URL},x.importScriptInWorkers=function(u){return Tn().broadcast("IS",u)},x.prewarm=function(){tn().acquire(kn)},x.setMaxParallelImageRequests=function(u){s.a.MAX_PARALLEL_IMAGE_REQUESTS=u},x.setRTLTextPlugin=function(u,e){return _t().setRTLTextPlugin(u,e)},x.setWorkerCount=function(u){ki.workerCount=u},x.setWorkerUrl=function(u){s.a.WORKER_URL=u}});var P=_;return P})}(cc)),cc.exports}var wy=vy();const gh=yd(wy);function xd(d){const f={"bottom-left":"bottom-[20px] left-[20px]","bottom-right":"bottom-[20px] right-[20px]","bottom-center":"bottom-[20px] left-1/2 -translate-x-1/2","top-left":"top-[20px] left-[20px]","top-right":"top-[20px] right-[20px]","top-center":"top-[20px] left-1/2 -translate-x-1/2",center:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"};return f[d]||f["bottom-left"]}const fr=(d,f)=>{const _=d.__vccOpts||d;for(const[v,k]of f)_[v]=k;return _},Sy={key:0,class:"p-5 pb-0 flex justify-between items-center"},Ay={class:"inline-block font-semibold text-lg text-gray-800"},ky={class:"flex flex-col gap-1 p-5"},Ty={class:"flex items-center justify-between w-full text-sm text-gray-800"},Cy={key:0,class:"ms-2 text-xs text-gray-500"},Ey=fr({__name:"vs-legend-widget",props:{config:{type:Object,required:!0}},setup(d){const f=d,_=S.computed(()=>{var k;return((k=f.config)==null?void 0:k.items)||[]}),v=S.computed(()=>{var k;return((k=f.config)==null?void 0:k.title)||""});return(k,P)=>(S.openBlock(),S.createElementBlock("div",{class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative",style:S.normalizeStyle({width:d.config.width||"100%"})},[v.value?(S.openBlock(),S.createElementBlock("div",Sy,[S.createElementVNode("h2",Ay,S.toDisplayString(v.value),1)])):S.createCommentVNode("",!0),S.createElementVNode("div",ky,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(_.value,x=>(S.openBlock(),S.createElementBlock("div",{class:"flex items-center",key:x.label},[S.createElementVNode("span",{class:S.normalizeClass(["shrink-0 size-2.5 inline-block me-2.5",[x.shape==="square"?"rounded-sm":"",x.shape==="circle"?"rounded-full":"",x.shape==="line"?"w-6 h-0.5":"",x.shape==="dashed-line"?"w-6 h-0.5 dashed-line":""]]),style:S.normalizeStyle({backgroundColor:x.color})},null,6),S.createElementVNode("span",Ty,[S.createElementVNode("span",null,S.toDisplayString(x.label),1),x.count!==void 0?(S.openBlock(),S.createElementBlock("span",Cy," ("+S.toDisplayString(x.count)+") ",1)):S.createCommentVNode("",!0)])]))),128))])],4))}},[["__scopeId","data-v-6dafc777"]]),Py="data:image/png;base64,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",Iy={class:"flex flex-row gap-x-3 z-10 relative"},My=["onClick"],Ly=["src","alt"],Ry={__name:"vs-basemaps-widget",props:{map:{type:Object,required:!0},config:{type:Object,default:()=>({})},position:{type:String,default:"bottom-left"}},setup(d){const f=d,_=S.ref("voyager"),v=S.computed(()=>{var B;if(!((B=f.config)!=null&&B.layers))return[];const s=f.config.layers.map(z=>({id:z.id,title:z.label||z.title,url:z.url,service:z.type,category:"Базові карти",attribution:z.attribution,image:z.image,enabled:!0,owner:z.owner||"Unknown"}));return s.push({id:"__none__",title:"Без підложки",url:"",service:"",category:"Базові карти",attribution:"",image:Py,enabled:!0,owner:""}),s});function k(s){return{version:8,sources:{[s.id]:{type:"raster",tiles:[s.url],tileSize:256,attribution:s.attribution||""}},layers:[{id:s.id,type:"raster",source:s.id}]}}const P=s=>{if(!f.map)return;const B=f.map.getStyle(),z=v.value.map(C=>C.id),R=B.layers.filter(C=>!z.includes(C.id)),H={};for(const C in B.sources)z.includes(C)||(H[C]=B.sources[C]);if(s.id==="__none__"){const C={version:8,sources:{...H},layers:[...R]};f.map.setStyle(C);return}const M=k(s);f.map.setStyle(M),f.map.once("styledata",()=>{for(const[C,T]of Object.entries(H))f.map.getSource(C)||f.map.addSource(C,T);for(const C of R)f.map.getLayer(C.id)||f.map.addLayer(C)})},x=s=>{_.value=s;const B=v.value.find(z=>z.id===s);B&&f.map&&P(B)};return S.onMounted(()=>{var s;(s=f.config)!=null&&s.default&&(_.value=f.config.default)}),(s,B)=>{const z=S.resolveComponent("VsPopover");return S.openBlock(),S.createElementBlock("div",Iy,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(v.value,R=>(S.openBlock(),S.createBlock(z,{trigger:"hover",placement:"top",key:R.id},{reference:S.withCtx(()=>[S.createElementVNode("div",{class:S.normalizeClass(["w-14 h-14 flex items-center justify-center bg-white rounded-xl shadow-2xs cursor-pointer transition-all border-4",_.value===R.id?"border-blue-400":"border-transparent"]),onClick:H=>x(R.id)},[S.createElementVNode("img",{src:R.image,alt:R.title,class:S.normalizeClass(["object-cover rounded-lg",R.id==="__none__"?"w-10 h-10":"w-12 h-12"])},null,10,Ly)],10,My)]),default:S.withCtx(()=>[S.createTextVNode(S.toDisplayString(R.title)+" ",1)]),_:2},1024))),128))])}}};function Do(d){if(!d.attrType||!d.attribute||!d.rules)return d.color||"#ccc";const f=d.rules.map(_=>[["==",["get",d.attribute],_.id||_.value],_.color]);return f.push(d.color||"#ccc"),["case",...f.flat()]}function zy(d){if(!d.attrType||d.attrType!=="icon-by-attribute"||!d.attribute||!d.rules)return d.default_icon||null;const f=d.rules.map(_=>[["==",["get",d.attribute],_.value],_.icon]);return f.push(d.default_icon||"marker.svg"),["case",...f.flat()]}function bd(d){if(!d.attrType||d.attrType!=="attribute-pattern"||!d.attribute||!d.rules)return d.fillPattern||"";const f=d.rules.map(_=>[["==",["get",d.attribute],_.value],_.fillPattern||""]);return f.push(d.fillPattern||""),["case",...f.flat()]}function On(d,f="stroke",_="#ccc"){return["case",["boolean",["feature-state","hovered"],!1],"#ff0000",["boolean",["feature-state","selected"],!1],"#ff0000",d[f]||_]}function Dy(d){const f=[{type:"fill",minzoom:d.pointZoom||0,paint:{"fill-color":Do(d),"fill-outline-color":On(d,"stroke","#ccc"),"fill-opacity":d.opacity||1,...d.attrType==="attribute-pattern"&&{"fill-pattern":bd(d)},...d.fillPattern&&!d.attrType&&{"fill-pattern":d.fillPattern}}},{type:"line",paint:{"line-color":On(d,"stroke","#ccc"),"line-width":d.width||2,"line-opacity":d.lineOpacity||d.opacity||1}}];return d.pointZoom&&f.push({type:"circle",maxzoom:d.pointZoom,paint:{"circle-color":d.color||"#ccc","circle-stroke-color":On(d,"stroke","#ccc"),"circle-stroke-width":d.width||2,"circle-opacity":d.opacity||1}}),f}function By(d){return[{type:"line",paint:{"line-color":On(d,"color",Do(d)),"line-width":d.width||2,"line-opacity":d.opacity||1,...d.dashArray&&{"line-dasharray":d.dashArray}},layout:{...d.lineCap&&{"line-cap":d.lineCap},...d.lineJoin&&{"line-join":d.lineJoin}}}]}function Vy(d){const f=[{type:"circle",maxzoom:d.icon&&+d.iconZoom||22,paint:{"circle-radius":d.radius||6,"circle-stroke-color":On(d,"stroke","#ccc"),"circle-stroke-width":d.width||2,"circle-color":Do(d),"circle-opacity":d.opacity||1}}];return d!=null&&d.clusterZoom?(f.push({type:"circle",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#51bbd6",100,"#f1f075",750,"#f28cb1"],"circle-radius":["step",["get","point_count"],20,100,30,750,40]}}),f.push({type:"symbol",filter:["has","point_count"],layout:{"text-field":["get","point_count"],"text-font":["Open Sans Regular"],"text-size":12}})):d.icon&&f.push({type:"symbol",minzoom:+d.iconZoom||16,layout:{"icon-image":d.icon,"icon-allow-overlap":!0}}),f}function Oy(d,f,_){const v=d.type||"point";return v==="polygon"?[{type:"fill",..._!==void 0?{maxzoom:_}:{},paint:{"fill-color":Do(d),"fill-outline-color":On(d,"stroke","#ccc"),"fill-opacity":d.opacity||1,...d.attrType==="attribute-pattern"&&{"fill-pattern":bd(d)},...d.fillPattern&&!d.attrType&&{"fill-pattern":d.fillPattern}}},{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":On(d,"stroke","#ccc"),"line-width":d.width||2,"line-opacity":d.lineOpacity||d.opacity||1}}]:v==="line"?[{type:"line",..._!==void 0?{maxzoom:_}:{},paint:{"line-color":On(d,"color",Do(d)),"line-width":d.width||2,"line-opacity":d.opacity||1,...d.dashArray&&{"line-dasharray":d.dashArray}},layout:{...d.lineCap&&{"line-cap":d.lineCap},...d.lineJoin&&{"line-join":d.lineJoin}}}]:[{type:"circle",..._!==void 0?{maxzoom:_}:{},paint:{"circle-radius":d.radius||6,"circle-stroke-color":On(d,"stroke","#ccc"),"circle-stroke-width":d.width||2,"circle-color":Do(d),"circle-opacity":d.opacity||1}}]}function vd(d){var _,v;if(!d)return null;if(d.attrType==="icon-by-attribute"&&d.iconZoom){const k=zy(d),P=Array.isArray(k)&&k[0]==="case"?k:["case",["==",["get",d.attribute],((v=(_=d.rules)==null?void 0:_[0])==null?void 0:v.value)||""],k,k],x=Oy(d,void 0,+d.iconZoom),s={type:"symbol",minzoom:+d.iconZoom,layout:{"icon-image":P,"icon-size":(d==null?void 0:d.icon_size)||1,"icon-allow-overlap":!0,"icon-anchor":(d==null?void 0:d.icon_anchor)||"bottom"},paint:{"icon-opacity":d.opacity||1}};return[...x,s]}const f=d.type||"point";return f==="polygon"?Dy(d):f==="line"?By(d):Vy(d)}function Fy(d){return d.startsWith("http")?d:`${window.location.origin}${d}`}function Ny(d){const{id:f,sourceLayer:_,url:v,bounds:k,title:P,style:x,service:s,service_type:B,source_type:z,data:R}=d,H=Fy(v),M=B||s||z||"vector";switch(M){case"vtile":case"vector":return qy(f,_,H,k,P,x);case"raster":return Uy(f,H,k,P,x);case"geojson":return jy(f,R||H,k,P,x);default:throw new Error(`Unsupported layer service type: ${M}`)}}function wd(d){switch(d){case"polygon":return{type:"polygon",color:"#3388ff",opacity:.5};case"line":return{type:"line",color:"#3388ff",opacity:1};case"point":default:return{type:"point",color:"#3388ff",radius:6,opacity:1}}}function qy(d,f,_,v,k,P){const x=f||(_.match(/\/vtile\/([^/]+)/)||[])[1],s={type:"vector",tiles:[_],...v&&{bounds:v}},B=P||wd("polygon"),R=vd(B).map((H,M)=>({...H,id:`${d}-${M}`,"source-layer":x||d,source:d}));return{id:d,title:k,source:s,layers:R,visible:!0}}function Uy(d,f,_,v,k){const P={type:"raster",tiles:[f],tileSize:256,..._&&{bounds:_}},x=k||{},s={id:d,type:"raster",source:d,layout:{visibility:"visible"},...x&&{paint:x}};return{id:d,title:v,source:P,layers:[s],visible:!0}}function jy(d,f,_,v,k){var R;const P={type:"geojson",data:f,..._&&{bounds:_}};let x="point";if(f&&f.features&&f.features.length>0){const H=(R=f.features[0].geometry)==null?void 0:R.type;H==="Polygon"||H==="MultiPolygon"?x="polygon":H==="LineString"||H==="MultiLineString"?x="line":x="point"}const s=k||wd(x),z=vd(s).map((H,M)=>({...H,id:`${d}-${M}`,source:d}));return{id:d,title:v,source:P,layers:z,visible:!0}}function Hy(d){if(!d||d.attrType!=="icon-by-attribute")return[];const f=new Set;return d.default_icon&&f.add(d.default_icon),Array.isArray(d.rules)&&d.rules.forEach(_=>{_.icon&&f.add(_.icon)}),Array.from(f).map(_=>({name:_,url:(d.icon_base_url||"")+_}))}function Wy(d){const f=new Set;function _(v){typeof v=="string"?f.add(v):Array.isArray(v)&&v.forEach(_)}return d&&d["icon-image"]&&_(d["icon-image"]),Array.from(f)}async function Sd(d,f){const _=f.map(async({name:v,url:k})=>{const P=await d.loadImage(k);return{name:v,data:P.data}});try{const v=await Promise.all(_);for(const{name:k,data:P}of v)d.hasImage(k)||d.addImage(k,P)}catch(v){console.error("Failed to load icons:",v)}}function Zy(d,f,_="/icons/"){const k=Wy(f).map(P=>({name:P,url:_+P}));return Sd(d,k)}async function ls(d,f){const _=Ny(f),v=Hy(f.style);v.length>0&&await Sd(d,v),f.layout&&f.layout["icon-image"]&&await Zy(d,f.layout),d.getSource(_.id)||d.addSource(_.id,_.source);for(const k of _.layers)f.visible!==void 0&&(k.layout={...k.layout,visibility:f.visible?"visible":"none"}),d.getLayer(k.id)?d.setLayoutProperty(k.id,"visibility",f.visible?"visible":"none"):await d.addLayer(k);return _}function Bo(d,f){d.getStyle().layers.filter(k=>k.source===f).forEach(k=>{d.removeLayer(k.id)}),d.getSource(f)&&d.removeSource(f)}const Ky={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},Gy={class:"flex flex-col justify-between h-full pb-5 px-5"},Jy={key:0,class:"relative mb-[10px]"},Xy={width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0px, -50%)"}},Qy={key:1,class:"mb-4"},Yy={class:""},$y={class:"space-y-2"},e_={class:"flex items-center gap-[10px] text-gray-500"},t_={class:"dataset-checkbox-container flex"},r_=["onUpdate:modelValue","onChange"],i_={class:"text-sm"},n_={key:0,class:"text-sm text-gray-500 text-center py-2"},s_={__name:"vs-layers-widget",props:{map:{type:Object,required:!0},history:{type:Boolean,default:!1},config:{type:Object,default:()=>({layers:[],search:!1,allow_toggle_all:!1})},position:{type:String,default:"bottom-left"},hasFilters:{type:Boolean,default:!1}},emits:["set-filter-layer","update:enabledLayerIds"],setup(d,{emit:f}){const _=d,v=f,k=S.ref("");S.computed(()=>xd(_.position));const P=S.ref([]);function x(){const T=new URLSearchParams(window.location.search).get("layers");return T?T.split(","):[]}function s(C){const T=new URLSearchParams(window.location.search);C.length>0?T.set("layers",C.join(",")):T.delete("layers");const N=`${window.location.pathname}?${T.toString()}`;window.history.replaceState({},"",N)}S.onMounted(()=>{let C=[];_.history&&(C=x()),C.length>0?P.value=_.config.layers.map(T=>({...T,visible:C.includes(String(T.id))})):P.value=_.config.layers.map(T=>({...T,visible:T.visible??!1})),P.value.forEach(T=>{T.visible&&ls(_.map,T)}),v("update:enabledLayerIds",R())});const B=S.computed(()=>{if(!k.value)return P.value;const C=k.value.toLowerCase();return P.value.filter(T=>(T.title||T.name||T.label||"").toLowerCase().includes(C))}),z=S.computed(()=>P.value.every(C=>C.visible)),R=()=>P.value.filter(C=>C.visible).map(C=>C.id),H=C=>{C.visible?ls(_.map,C):(Bo(_.map,C.id),v("set-filter-layer",null)),_.map.getStyle().layers.filter(K=>K.source===C.id).forEach(K=>{_.map.setLayoutProperty(K.id,"visibility",C.visible?"visible":"none")}),v("update:enabledLayerIds",R())},M=()=>{const C=!z.value;P.value.forEach(T=>{T.visible=C,C?ls(_.map,T):Bo(_.map,T.id)}),C||v("set-filter-layer",null),v("update:enabledLayerIds",R())};return S.watch(()=>R(),C=>{_.history&&s(C)},{deep:!0}),(C,T)=>(S.openBlock(),S.createElementBlock("div",Ky,[T[2]||(T[2]=S.createElementVNode("div",{class:"p-5 pb-3 flex justify-between items-center"},[S.createElementVNode("h2",{class:"inline-block font-semibold text-lg text-gray-800"},"Шари")],-1)),S.createElementVNode("div",Gy,[d.config.search?(S.openBlock(),S.createElementBlock("div",Jy,[S.withDirectives(S.createElementVNode("input",{type:"text","onUpdate:modelValue":T[0]||(T[0]=N=>k.value=N),placeholder:"Введіть назву шару...",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none"},null,512),[[S.vModelText,k.value]]),(S.openBlock(),S.createElementBlock("svg",Xy,T[1]||(T[1]=[S.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),S.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])))])):S.createCommentVNode("",!0),d.config.allow_toggle_all?(S.openBlock(),S.createElementBlock("div",Qy,[S.createElementVNode("button",{onClick:M,class:"w-full py-[7px] bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors"},S.toDisplayString(z.value?"Вимкнути всі":"Увімкнути всі"),1)])):S.createCommentVNode("",!0),S.createElementVNode("div",Yy,[S.createElementVNode("ul",$y,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(B.value,N=>(S.openBlock(),S.createElementBlock("li",{key:N.id,class:"flex flex-wrap justify-between items-center gap-x-2"},[S.createElementVNode("label",e_,[S.createElementVNode("span",t_,[S.withDirectives(S.createElementVNode("input",{class:"dataset-checkbox",type:"checkbox","onUpdate:modelValue":K=>N.visible=K,onChange:()=>H(N)},null,40,r_),[[S.vModelCheckbox,N.visible]])]),S.createElementVNode("span",i_,S.toDisplayString(N.title||N.name||N.label),1)])]))),128)),k.value&&B.value.length===0?(S.openBlock(),S.createElementBlock("li",n_," Шарів не знайдено ")):S.createCommentVNode("",!0)])])])]))}},o_={class:"legend-widget flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative"},a_={key:0,class:"p-5 pb-3 flex justify-between items-start gap-[30px]"},l_={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},c_={class:"flex flex-col gap-1"},u_=["href"],h_={class:"flex flex-col gap-1 p-5 pt-0"},p_=["innerHTML"],d_=fr({__name:"vs-info-widget",props:{config:{type:Object,required:!0}},setup(d){const f=d,_=S.computed(()=>{var P;return((P=f.config)==null?void 0:P.title)||""}),v=S.computed(()=>{var P;return((P=f.config)==null?void 0:P.content)||""}),k=S.computed(()=>{var P;return((P=f.config)==null?void 0:P.goTo)||[]});return(P,x)=>{var B,z;const s=S.resolveComponent("VsPopover");return S.openBlock(),S.createElementBlock("div",o_,[_.value||(B=k.value)!=null&&B.length?(S.openBlock(),S.createElementBlock("div",a_,[S.createElementVNode("h2",l_,S.toDisplayString(_.value),1),(z=k.value)!=null&&z.length?(S.openBlock(),S.createBlock(s,{key:0,placement:"bottom"},{reference:S.withCtx(()=>[S.createVNode(s,{trigger:"hover",placement:"right"},{reference:S.withCtx(()=>x[0]||(x[0]=[S.createElementVNode("div",{class:"flex items-center justify-center h-8 w-8 transition-colors rounded-full hover:bg-gray-100 cursor-pointer"},[S.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S.createElementVNode("path",{d:"M4 12H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),S.createElementVNode("path",{d:"M4 6H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"}),S.createElementVNode("path",{d:"M4 18H20",stroke:"#000000","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)])),default:S.withCtx(()=>[x[1]||(x[1]=S.createTextVNode(" Перейти на карту "))]),_:1,__:[1]})]),default:S.withCtx(()=>[S.createElementVNode("div",c_,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(k.value,R=>(S.openBlock(),S.createElementBlock("div",{key:R.label},[S.createElementVNode("a",{href:R.url,class:"text-sm text-gray-800 dark:text-neutral-200 hover:bg-gray-100 hover:text-blue-600 transition-colors rounded px-2 py-1 block"},S.toDisplayString(R.label),9,u_)]))),128))])]),_:1})):S.createCommentVNode("",!0)])):S.createCommentVNode("",!0),S.createElementVNode("div",h_,[S.createElementVNode("div",{innerHTML:v.value},null,8,p_)])])}}},[["__scopeId","data-v-81a03615"]]);function Ad(d,f){return function(){return d.apply(f,arguments)}}const{toString:f_}=Object.prototype,{getPrototypeOf:yh}=Object,{iterator:uc,toStringTag:kd}=Symbol,hc=(d=>f=>{const _=f_.call(f);return d[_]||(d[_]=_.slice(8,-1).toLowerCase())})(Object.create(null)),un=d=>(d=d.toLowerCase(),f=>hc(f)===d),pc=d=>f=>typeof f===d,{isArray:Vo}=Array,Na=pc("undefined");function m_(d){return d!==null&&!Na(d)&&d.constructor!==null&&!Na(d.constructor)&&Di(d.constructor.isBuffer)&&d.constructor.isBuffer(d)}const Td=un("ArrayBuffer");function g_(d){let f;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?f=ArrayBuffer.isView(d):f=d&&d.buffer&&Td(d.buffer),f}const y_=pc("string"),Di=pc("function"),Cd=pc("number"),dc=d=>d!==null&&typeof d=="object",__=d=>d===!0||d===!1,fc=d=>{if(hc(d)!=="object")return!1;const f=yh(d);return(f===null||f===Object.prototype||Object.getPrototypeOf(f)===null)&&!(kd in d)&&!(uc in d)},x_=un("Date"),b_=un("File"),v_=un("Blob"),w_=un("FileList"),S_=d=>dc(d)&&Di(d.pipe),A_=d=>{let f;return d&&(typeof FormData=="function"&&d instanceof FormData||Di(d.append)&&((f=hc(d))==="formdata"||f==="object"&&Di(d.toString)&&d.toString()==="[object FormData]"))},k_=un("URLSearchParams"),[T_,C_,E_,P_]=["ReadableStream","Request","Response","Headers"].map(un),I_=d=>d.trim?d.trim():d.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function qa(d,f,{allOwnKeys:_=!1}={}){if(d===null||typeof d>"u")return;let v,k;if(typeof d!="object"&&(d=[d]),Vo(d))for(v=0,k=d.length;v<k;v++)f.call(null,d[v],v,d);else{const P=_?Object.getOwnPropertyNames(d):Object.keys(d),x=P.length;let s;for(v=0;v<x;v++)s=P[v],f.call(null,d[s],s,d)}}function Ed(d,f){f=f.toLowerCase();const _=Object.keys(d);let v=_.length,k;for(;v-- >0;)if(k=_[v],f===k.toLowerCase())return k;return null}const Ns=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Pd=d=>!Na(d)&&d!==Ns;function _h(){const{caseless:d}=Pd(this)&&this||{},f={},_=(v,k)=>{const P=d&&Ed(f,k)||k;fc(f[P])&&fc(v)?f[P]=_h(f[P],v):fc(v)?f[P]=_h({},v):Vo(v)?f[P]=v.slice():f[P]=v};for(let v=0,k=arguments.length;v<k;v++)arguments[v]&&qa(arguments[v],_);return f}const M_=(d,f,_,{allOwnKeys:v}={})=>(qa(f,(k,P)=>{_&&Di(k)?d[P]=Ad(k,_):d[P]=k},{allOwnKeys:v}),d),L_=d=>(d.charCodeAt(0)===65279&&(d=d.slice(1)),d),R_=(d,f,_,v)=>{d.prototype=Object.create(f.prototype,v),d.prototype.constructor=d,Object.defineProperty(d,"super",{value:f.prototype}),_&&Object.assign(d.prototype,_)},z_=(d,f,_,v)=>{let k,P,x;const s={};if(f=f||{},d==null)return f;do{for(k=Object.getOwnPropertyNames(d),P=k.length;P-- >0;)x=k[P],(!v||v(x,d,f))&&!s[x]&&(f[x]=d[x],s[x]=!0);d=_!==!1&&yh(d)}while(d&&(!_||_(d,f))&&d!==Object.prototype);return f},D_=(d,f,_)=>{d=String(d),(_===void 0||_>d.length)&&(_=d.length),_-=f.length;const v=d.indexOf(f,_);return v!==-1&&v===_},B_=d=>{if(!d)return null;if(Vo(d))return d;let f=d.length;if(!Cd(f))return null;const _=new Array(f);for(;f-- >0;)_[f]=d[f];return _},V_=(d=>f=>d&&f instanceof d)(typeof Uint8Array<"u"&&yh(Uint8Array)),O_=(d,f)=>{const v=(d&&d[uc]).call(d);let k;for(;(k=v.next())&&!k.done;){const P=k.value;f.call(d,P[0],P[1])}},F_=(d,f)=>{let _;const v=[];for(;(_=d.exec(f))!==null;)v.push(_);return v},N_=un("HTMLFormElement"),q_=d=>d.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(_,v,k){return v.toUpperCase()+k}),Id=(({hasOwnProperty:d})=>(f,_)=>d.call(f,_))(Object.prototype),U_=un("RegExp"),Md=(d,f)=>{const _=Object.getOwnPropertyDescriptors(d),v={};qa(_,(k,P)=>{let x;(x=f(k,P,d))!==!1&&(v[P]=x||k)}),Object.defineProperties(d,v)},j_=d=>{Md(d,(f,_)=>{if(Di(d)&&["arguments","caller","callee"].indexOf(_)!==-1)return!1;const v=d[_];if(Di(v)){if(f.enumerable=!1,"writable"in f){f.writable=!1;return}f.set||(f.set=()=>{throw Error("Can not rewrite read-only method '"+_+"'")})}})},H_=(d,f)=>{const _={},v=k=>{k.forEach(P=>{_[P]=!0})};return Vo(d)?v(d):v(String(d).split(f)),_},W_=()=>{},Z_=(d,f)=>d!=null&&Number.isFinite(d=+d)?d:f;function K_(d){return!!(d&&Di(d.append)&&d[kd]==="FormData"&&d[uc])}const G_=d=>{const f=new Array(10),_=(v,k)=>{if(dc(v)){if(f.indexOf(v)>=0)return;if(!("toJSON"in v)){f[k]=v;const P=Vo(v)?[]:{};return qa(v,(x,s)=>{const B=_(x,k+1);!Na(B)&&(P[s]=B)}),f[k]=void 0,P}}return v};return _(d,0)},J_=un("AsyncFunction"),X_=d=>d&&(dc(d)||Di(d))&&Di(d.then)&&Di(d.catch),Ld=((d,f)=>d?setImmediate:f?((_,v)=>(Ns.addEventListener("message",({source:k,data:P})=>{k===Ns&&P===_&&v.length&&v.shift()()},!1),k=>{v.push(k),Ns.postMessage(_,"*")}))(`axios@${Math.random()}`,[]):_=>setTimeout(_))(typeof setImmediate=="function",Di(Ns.postMessage)),Q_=typeof queueMicrotask<"u"?queueMicrotask.bind(Ns):typeof process<"u"&&process.nextTick||Ld,Ne={isArray:Vo,isArrayBuffer:Td,isBuffer:m_,isFormData:A_,isArrayBufferView:g_,isString:y_,isNumber:Cd,isBoolean:__,isObject:dc,isPlainObject:fc,isReadableStream:T_,isRequest:C_,isResponse:E_,isHeaders:P_,isUndefined:Na,isDate:x_,isFile:b_,isBlob:v_,isRegExp:U_,isFunction:Di,isStream:S_,isURLSearchParams:k_,isTypedArray:V_,isFileList:w_,forEach:qa,merge:_h,extend:M_,trim:I_,stripBOM:L_,inherits:R_,toFlatObject:z_,kindOf:hc,kindOfTest:un,endsWith:D_,toArray:B_,forEachEntry:O_,matchAll:F_,isHTMLForm:N_,hasOwnProperty:Id,hasOwnProp:Id,reduceDescriptors:Md,freezeMethods:j_,toObjectSet:H_,toCamelCase:q_,noop:W_,toFiniteNumber:Z_,findKey:Ed,global:Ns,isContextDefined:Pd,isSpecCompliantForm:K_,toJSONObject:G_,isAsyncFn:J_,isThenable:X_,setImmediate:Ld,asap:Q_,isIterable:d=>d!=null&&Di(d[uc])};function Pt(d,f,_,v,k){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=d,this.name="AxiosError",f&&(this.code=f),_&&(this.config=_),v&&(this.request=v),k&&(this.response=k,this.status=k.status?k.status:null)}Ne.inherits(Pt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ne.toJSONObject(this.config),code:this.code,status:this.status}}});const Rd=Pt.prototype,zd={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(d=>{zd[d]={value:d}}),Object.defineProperties(Pt,zd),Object.defineProperty(Rd,"isAxiosError",{value:!0}),Pt.from=(d,f,_,v,k,P)=>{const x=Object.create(Rd);return Ne.toFlatObject(d,x,function(B){return B!==Error.prototype},s=>s!=="isAxiosError"),Pt.call(x,d.message,f,_,v,k),x.cause=d,x.name=d.name,P&&Object.assign(x,P),x};const Y_=null;function xh(d){return Ne.isPlainObject(d)||Ne.isArray(d)}function Dd(d){return Ne.endsWith(d,"[]")?d.slice(0,-2):d}function Bd(d,f,_){return d?d.concat(f).map(function(k,P){return k=Dd(k),!_&&P?"["+k+"]":k}).join(_?".":""):f}function $_(d){return Ne.isArray(d)&&!d.some(xh)}const e0=Ne.toFlatObject(Ne,{},null,function(f){return/^is[A-Z]/.test(f)});function mc(d,f,_){if(!Ne.isObject(d))throw new TypeError("target must be an object");f=f||new FormData,_=Ne.toFlatObject(_,{metaTokens:!0,dots:!1,indexes:!1},!1,function(N,K){return!Ne.isUndefined(K[N])});const v=_.metaTokens,k=_.visitor||R,P=_.dots,x=_.indexes,B=(_.Blob||typeof Blob<"u"&&Blob)&&Ne.isSpecCompliantForm(f);if(!Ne.isFunction(k))throw new TypeError("visitor must be a function");function z(T){if(T===null)return"";if(Ne.isDate(T))return T.toISOString();if(!B&&Ne.isBlob(T))throw new Pt("Blob is not supported. Use a Buffer instead.");return Ne.isArrayBuffer(T)||Ne.isTypedArray(T)?B&&typeof Blob=="function"?new Blob([T]):Buffer.from(T):T}function R(T,N,K){let ie=T;if(T&&!K&&typeof T=="object"){if(Ne.endsWith(N,"{}"))N=v?N:N.slice(0,-2),T=JSON.stringify(T);else if(Ne.isArray(T)&&$_(T)||(Ne.isFileList(T)||Ne.endsWith(N,"[]"))&&(ie=Ne.toArray(T)))return N=Dd(N),ie.forEach(function(Se,ee){!(Ne.isUndefined(Se)||Se===null)&&f.append(x===!0?Bd([N],ee,P):x===null?N:N+"[]",z(Se))}),!1}return xh(T)?!0:(f.append(Bd(K,N,P),z(T)),!1)}const H=[],M=Object.assign(e0,{defaultVisitor:R,convertValue:z,isVisitable:xh});function C(T,N){if(!Ne.isUndefined(T)){if(H.indexOf(T)!==-1)throw Error("Circular reference detected in "+N.join("."));H.push(T),Ne.forEach(T,function(ie,le){(!(Ne.isUndefined(ie)||ie===null)&&k.call(f,ie,Ne.isString(le)?le.trim():le,N,M))===!0&&C(ie,N?N.concat(le):[le])}),H.pop()}}if(!Ne.isObject(d))throw new TypeError("data must be an object");return C(d),f}function Vd(d){const f={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(d).replace(/[!'()~]|%20|%00/g,function(v){return f[v]})}function bh(d,f){this._pairs=[],d&&mc(d,this,f)}const Od=bh.prototype;Od.append=function(f,_){this._pairs.push([f,_])},Od.toString=function(f){const _=f?function(v){return f.call(this,v,Vd)}:Vd;return this._pairs.map(function(k){return _(k[0])+"="+_(k[1])},"").join("&")};function t0(d){return encodeURIComponent(d).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Fd(d,f,_){if(!f)return d;const v=_&&_.encode||t0;Ne.isFunction(_)&&(_={serialize:_});const k=_&&_.serialize;let P;if(k?P=k(f,_):P=Ne.isURLSearchParams(f)?f.toString():new bh(f,_).toString(v),P){const x=d.indexOf("#");x!==-1&&(d=d.slice(0,x)),d+=(d.indexOf("?")===-1?"?":"&")+P}return d}class Nd{constructor(){this.handlers=[]}use(f,_,v){return this.handlers.push({fulfilled:f,rejected:_,synchronous:v?v.synchronous:!1,runWhen:v?v.runWhen:null}),this.handlers.length-1}eject(f){this.handlers[f]&&(this.handlers[f]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(f){Ne.forEach(this.handlers,function(v){v!==null&&f(v)})}}const qd={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},r0={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:bh,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},vh=typeof window<"u"&&typeof document<"u",wh=typeof navigator=="object"&&navigator||void 0,i0=vh&&(!wh||["ReactNative","NativeScript","NS"].indexOf(wh.product)<0),n0=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",s0=vh&&window.location.href||"http://localhost",gi={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:vh,hasStandardBrowserEnv:i0,hasStandardBrowserWebWorkerEnv:n0,navigator:wh,origin:s0},Symbol.toStringTag,{value:"Module"})),...r0};function o0(d,f){return mc(d,new gi.classes.URLSearchParams,Object.assign({visitor:function(_,v,k,P){return gi.isNode&&Ne.isBuffer(_)?(this.append(v,_.toString("base64")),!1):P.defaultVisitor.apply(this,arguments)}},f))}function a0(d){return Ne.matchAll(/\w+|\[(\w*)]/g,d).map(f=>f[0]==="[]"?"":f[1]||f[0])}function l0(d){const f={},_=Object.keys(d);let v;const k=_.length;let P;for(v=0;v<k;v++)P=_[v],f[P]=d[P];return f}function Ud(d){function f(_,v,k,P){let x=_[P++];if(x==="__proto__")return!0;const s=Number.isFinite(+x),B=P>=_.length;return x=!x&&Ne.isArray(k)?k.length:x,B?(Ne.hasOwnProp(k,x)?k[x]=[k[x],v]:k[x]=v,!s):((!k[x]||!Ne.isObject(k[x]))&&(k[x]=[]),f(_,v,k[x],P)&&Ne.isArray(k[x])&&(k[x]=l0(k[x])),!s)}if(Ne.isFormData(d)&&Ne.isFunction(d.entries)){const _={};return Ne.forEachEntry(d,(v,k)=>{f(a0(v),k,_,0)}),_}return null}function c0(d,f,_){if(Ne.isString(d))try{return(f||JSON.parse)(d),Ne.trim(d)}catch(v){if(v.name!=="SyntaxError")throw v}return(_||JSON.stringify)(d)}const Ua={transitional:qd,adapter:["xhr","http","fetch"],transformRequest:[function(f,_){const v=_.getContentType()||"",k=v.indexOf("application/json")>-1,P=Ne.isObject(f);if(P&&Ne.isHTMLForm(f)&&(f=new FormData(f)),Ne.isFormData(f))return k?JSON.stringify(Ud(f)):f;if(Ne.isArrayBuffer(f)||Ne.isBuffer(f)||Ne.isStream(f)||Ne.isFile(f)||Ne.isBlob(f)||Ne.isReadableStream(f))return f;if(Ne.isArrayBufferView(f))return f.buffer;if(Ne.isURLSearchParams(f))return _.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),f.toString();let s;if(P){if(v.indexOf("application/x-www-form-urlencoded")>-1)return o0(f,this.formSerializer).toString();if((s=Ne.isFileList(f))||v.indexOf("multipart/form-data")>-1){const B=this.env&&this.env.FormData;return mc(s?{"files[]":f}:f,B&&new B,this.formSerializer)}}return P||k?(_.setContentType("application/json",!1),c0(f)):f}],transformResponse:[function(f){const _=this.transitional||Ua.transitional,v=_&&_.forcedJSONParsing,k=this.responseType==="json";if(Ne.isResponse(f)||Ne.isReadableStream(f))return f;if(f&&Ne.isString(f)&&(v&&!this.responseType||k)){const x=!(_&&_.silentJSONParsing)&&k;try{return JSON.parse(f)}catch(s){if(x)throw s.name==="SyntaxError"?Pt.from(s,Pt.ERR_BAD_RESPONSE,this,null,this.response):s}}return f}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:gi.classes.FormData,Blob:gi.classes.Blob},validateStatus:function(f){return f>=200&&f<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ne.forEach(["delete","get","head","post","put","patch"],d=>{Ua.headers[d]={}});const u0=Ne.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),h0=d=>{const f={};let _,v,k;return d&&d.split(`
|
|
742
|
-
`).forEach(function(x){k=x.indexOf(":"),_=x.substring(0,k).trim().toLowerCase(),v=x.substring(k+1).trim(),!(!_||f[_]&&u0[_])&&(_==="set-cookie"?f[_]?f[_].push(v):f[_]=[v]:f[_]=f[_]?f[_]+", "+v:v)}),f},jd=Symbol("internals");function ja(d){return d&&String(d).trim().toLowerCase()}function gc(d){return d===!1||d==null?d:Ne.isArray(d)?d.map(gc):String(d)}function p0(d){const f=Object.create(null),_=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let v;for(;v=_.exec(d);)f[v[1]]=v[2];return f}const d0=d=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(d.trim());function Sh(d,f,_,v,k){if(Ne.isFunction(v))return v.call(this,f,_);if(k&&(f=_),!!Ne.isString(f)){if(Ne.isString(v))return f.indexOf(v)!==-1;if(Ne.isRegExp(v))return v.test(f)}}function f0(d){return d.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(f,_,v)=>_.toUpperCase()+v)}function m0(d,f){const _=Ne.toCamelCase(" "+f);["get","set","has"].forEach(v=>{Object.defineProperty(d,v+_,{value:function(k,P,x){return this[v].call(this,f,k,P,x)},configurable:!0})})}let Bi=class{constructor(f){f&&this.set(f)}set(f,_,v){const k=this;function P(s,B,z){const R=ja(B);if(!R)throw new Error("header name must be a non-empty string");const H=Ne.findKey(k,R);(!H||k[H]===void 0||z===!0||z===void 0&&k[H]!==!1)&&(k[H||B]=gc(s))}const x=(s,B)=>Ne.forEach(s,(z,R)=>P(z,R,B));if(Ne.isPlainObject(f)||f instanceof this.constructor)x(f,_);else if(Ne.isString(f)&&(f=f.trim())&&!d0(f))x(h0(f),_);else if(Ne.isObject(f)&&Ne.isIterable(f)){let s={},B,z;for(const R of f){if(!Ne.isArray(R))throw TypeError("Object iterator must return a key-value pair");s[z=R[0]]=(B=s[z])?Ne.isArray(B)?[...B,R[1]]:[B,R[1]]:R[1]}x(s,_)}else f!=null&&P(_,f,v);return this}get(f,_){if(f=ja(f),f){const v=Ne.findKey(this,f);if(v){const k=this[v];if(!_)return k;if(_===!0)return p0(k);if(Ne.isFunction(_))return _.call(this,k,v);if(Ne.isRegExp(_))return _.exec(k);throw new TypeError("parser must be boolean|regexp|function")}}}has(f,_){if(f=ja(f),f){const v=Ne.findKey(this,f);return!!(v&&this[v]!==void 0&&(!_||Sh(this,this[v],v,_)))}return!1}delete(f,_){const v=this;let k=!1;function P(x){if(x=ja(x),x){const s=Ne.findKey(v,x);s&&(!_||Sh(v,v[s],s,_))&&(delete v[s],k=!0)}}return Ne.isArray(f)?f.forEach(P):P(f),k}clear(f){const _=Object.keys(this);let v=_.length,k=!1;for(;v--;){const P=_[v];(!f||Sh(this,this[P],P,f,!0))&&(delete this[P],k=!0)}return k}normalize(f){const _=this,v={};return Ne.forEach(this,(k,P)=>{const x=Ne.findKey(v,P);if(x){_[x]=gc(k),delete _[P];return}const s=f?f0(P):String(P).trim();s!==P&&delete _[P],_[s]=gc(k),v[s]=!0}),this}concat(...f){return this.constructor.concat(this,...f)}toJSON(f){const _=Object.create(null);return Ne.forEach(this,(v,k)=>{v!=null&&v!==!1&&(_[k]=f&&Ne.isArray(v)?v.join(", "):v)}),_}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([f,_])=>f+": "+_).join(`
|
|
743
|
-
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(f){return f instanceof this?f:new this(f)}static concat(f,..._){const v=new this(f);return _.forEach(k=>v.set(k)),v}static accessor(f){const v=(this[jd]=this[jd]={accessors:{}}).accessors,k=this.prototype;function P(x){const s=ja(x);v[s]||(m0(k,x),v[s]=!0)}return Ne.isArray(f)?f.forEach(P):P(f),this}};Bi.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Ne.reduceDescriptors(Bi.prototype,({value:d},f)=>{let _=f[0].toUpperCase()+f.slice(1);return{get:()=>d,set(v){this[_]=v}}}),Ne.freezeMethods(Bi);function Ah(d,f){const _=this||Ua,v=f||_,k=Bi.from(v.headers);let P=v.data;return Ne.forEach(d,function(s){P=s.call(_,P,k.normalize(),f?f.status:void 0)}),k.normalize(),P}function Hd(d){return!!(d&&d.__CANCEL__)}function Oo(d,f,_){Pt.call(this,d??"canceled",Pt.ERR_CANCELED,f,_),this.name="CanceledError"}Ne.inherits(Oo,Pt,{__CANCEL__:!0});function Wd(d,f,_){const v=_.config.validateStatus;!_.status||!v||v(_.status)?d(_):f(new Pt("Request failed with status code "+_.status,[Pt.ERR_BAD_REQUEST,Pt.ERR_BAD_RESPONSE][Math.floor(_.status/100)-4],_.config,_.request,_))}function g0(d){const f=/^([-+\w]{1,25})(:?\/\/|:)/.exec(d);return f&&f[1]||""}function y0(d,f){d=d||10;const _=new Array(d),v=new Array(d);let k=0,P=0,x;return f=f!==void 0?f:1e3,function(B){const z=Date.now(),R=v[P];x||(x=z),_[k]=B,v[k]=z;let H=P,M=0;for(;H!==k;)M+=_[H++],H=H%d;if(k=(k+1)%d,k===P&&(P=(P+1)%d),z-x<f)return;const C=R&&z-R;return C?Math.round(M*1e3/C):void 0}}function _0(d,f){let _=0,v=1e3/f,k,P;const x=(z,R=Date.now())=>{_=R,k=null,P&&(clearTimeout(P),P=null),d.apply(null,z)};return[(...z)=>{const R=Date.now(),H=R-_;H>=v?x(z,R):(k=z,P||(P=setTimeout(()=>{P=null,x(k)},v-H)))},()=>k&&x(k)]}const yc=(d,f,_=3)=>{let v=0;const k=y0(50,250);return _0(P=>{const x=P.loaded,s=P.lengthComputable?P.total:void 0,B=x-v,z=k(B),R=x<=s;v=x;const H={loaded:x,total:s,progress:s?x/s:void 0,bytes:B,rate:z||void 0,estimated:z&&s&&R?(s-x)/z:void 0,event:P,lengthComputable:s!=null,[f?"download":"upload"]:!0};d(H)},_)},Zd=(d,f)=>{const _=d!=null;return[v=>f[0]({lengthComputable:_,total:d,loaded:v}),f[1]]},Kd=d=>(...f)=>Ne.asap(()=>d(...f)),x0=gi.hasStandardBrowserEnv?((d,f)=>_=>(_=new URL(_,gi.origin),d.protocol===_.protocol&&d.host===_.host&&(f||d.port===_.port)))(new URL(gi.origin),gi.navigator&&/(msie|trident)/i.test(gi.navigator.userAgent)):()=>!0,b0=gi.hasStandardBrowserEnv?{write(d,f,_,v,k,P){const x=[d+"="+encodeURIComponent(f)];Ne.isNumber(_)&&x.push("expires="+new Date(_).toGMTString()),Ne.isString(v)&&x.push("path="+v),Ne.isString(k)&&x.push("domain="+k),P===!0&&x.push("secure"),document.cookie=x.join("; ")},read(d){const f=document.cookie.match(new RegExp("(^|;\\s*)("+d+")=([^;]*)"));return f?decodeURIComponent(f[3]):null},remove(d){this.write(d,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function v0(d){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(d)}function w0(d,f){return f?d.replace(/\/?\/$/,"")+"/"+f.replace(/^\/+/,""):d}function Gd(d,f,_){let v=!v0(f);return d&&(v||_==!1)?w0(d,f):f}const Jd=d=>d instanceof Bi?{...d}:d;function qs(d,f){f=f||{};const _={};function v(z,R,H,M){return Ne.isPlainObject(z)&&Ne.isPlainObject(R)?Ne.merge.call({caseless:M},z,R):Ne.isPlainObject(R)?Ne.merge({},R):Ne.isArray(R)?R.slice():R}function k(z,R,H,M){if(Ne.isUndefined(R)){if(!Ne.isUndefined(z))return v(void 0,z,H,M)}else return v(z,R,H,M)}function P(z,R){if(!Ne.isUndefined(R))return v(void 0,R)}function x(z,R){if(Ne.isUndefined(R)){if(!Ne.isUndefined(z))return v(void 0,z)}else return v(void 0,R)}function s(z,R,H){if(H in f)return v(z,R);if(H in d)return v(void 0,z)}const B={url:P,method:P,data:P,baseURL:x,transformRequest:x,transformResponse:x,paramsSerializer:x,timeout:x,timeoutMessage:x,withCredentials:x,withXSRFToken:x,adapter:x,responseType:x,xsrfCookieName:x,xsrfHeaderName:x,onUploadProgress:x,onDownloadProgress:x,decompress:x,maxContentLength:x,maxBodyLength:x,beforeRedirect:x,transport:x,httpAgent:x,httpsAgent:x,cancelToken:x,socketPath:x,responseEncoding:x,validateStatus:s,headers:(z,R,H)=>k(Jd(z),Jd(R),H,!0)};return Ne.forEach(Object.keys(Object.assign({},d,f)),function(R){const H=B[R]||k,M=H(d[R],f[R],R);Ne.isUndefined(M)&&H!==s||(_[R]=M)}),_}const Xd=d=>{const f=qs({},d);let{data:_,withXSRFToken:v,xsrfHeaderName:k,xsrfCookieName:P,headers:x,auth:s}=f;f.headers=x=Bi.from(x),f.url=Fd(Gd(f.baseURL,f.url,f.allowAbsoluteUrls),d.params,d.paramsSerializer),s&&x.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let B;if(Ne.isFormData(_)){if(gi.hasStandardBrowserEnv||gi.hasStandardBrowserWebWorkerEnv)x.setContentType(void 0);else if((B=x.getContentType())!==!1){const[z,...R]=B?B.split(";").map(H=>H.trim()).filter(Boolean):[];x.setContentType([z||"multipart/form-data",...R].join("; "))}}if(gi.hasStandardBrowserEnv&&(v&&Ne.isFunction(v)&&(v=v(f)),v||v!==!1&&x0(f.url))){const z=k&&P&&b0.read(P);z&&x.set(k,z)}return f},S0=typeof XMLHttpRequest<"u"&&function(d){return new Promise(function(_,v){const k=Xd(d);let P=k.data;const x=Bi.from(k.headers).normalize();let{responseType:s,onUploadProgress:B,onDownloadProgress:z}=k,R,H,M,C,T;function N(){C&&C(),T&&T(),k.cancelToken&&k.cancelToken.unsubscribe(R),k.signal&&k.signal.removeEventListener("abort",R)}let K=new XMLHttpRequest;K.open(k.method.toUpperCase(),k.url,!0),K.timeout=k.timeout;function ie(){if(!K)return;const Se=Bi.from("getAllResponseHeaders"in K&&K.getAllResponseHeaders()),pe={data:!s||s==="text"||s==="json"?K.responseText:K.response,status:K.status,statusText:K.statusText,headers:Se,config:d,request:K};Wd(function(De){_(De),N()},function(De){v(De),N()},pe),K=null}"onloadend"in K?K.onloadend=ie:K.onreadystatechange=function(){!K||K.readyState!==4||K.status===0&&!(K.responseURL&&K.responseURL.indexOf("file:")===0)||setTimeout(ie)},K.onabort=function(){K&&(v(new Pt("Request aborted",Pt.ECONNABORTED,d,K)),K=null)},K.onerror=function(){v(new Pt("Network Error",Pt.ERR_NETWORK,d,K)),K=null},K.ontimeout=function(){let ee=k.timeout?"timeout of "+k.timeout+"ms exceeded":"timeout exceeded";const pe=k.transitional||qd;k.timeoutErrorMessage&&(ee=k.timeoutErrorMessage),v(new Pt(ee,pe.clarifyTimeoutError?Pt.ETIMEDOUT:Pt.ECONNABORTED,d,K)),K=null},P===void 0&&x.setContentType(null),"setRequestHeader"in K&&Ne.forEach(x.toJSON(),function(ee,pe){K.setRequestHeader(pe,ee)}),Ne.isUndefined(k.withCredentials)||(K.withCredentials=!!k.withCredentials),s&&s!=="json"&&(K.responseType=k.responseType),z&&([M,T]=yc(z,!0),K.addEventListener("progress",M)),B&&K.upload&&([H,C]=yc(B),K.upload.addEventListener("progress",H),K.upload.addEventListener("loadend",C)),(k.cancelToken||k.signal)&&(R=Se=>{K&&(v(!Se||Se.type?new Oo(null,d,K):Se),K.abort(),K=null)},k.cancelToken&&k.cancelToken.subscribe(R),k.signal&&(k.signal.aborted?R():k.signal.addEventListener("abort",R)));const le=g0(k.url);if(le&&gi.protocols.indexOf(le)===-1){v(new Pt("Unsupported protocol "+le+":",Pt.ERR_BAD_REQUEST,d));return}K.send(P||null)})},A0=(d,f)=>{const{length:_}=d=d?d.filter(Boolean):[];if(f||_){let v=new AbortController,k;const P=function(z){if(!k){k=!0,s();const R=z instanceof Error?z:this.reason;v.abort(R instanceof Pt?R:new Oo(R instanceof Error?R.message:R))}};let x=f&&setTimeout(()=>{x=null,P(new Pt(`timeout ${f} of ms exceeded`,Pt.ETIMEDOUT))},f);const s=()=>{d&&(x&&clearTimeout(x),x=null,d.forEach(z=>{z.unsubscribe?z.unsubscribe(P):z.removeEventListener("abort",P)}),d=null)};d.forEach(z=>z.addEventListener("abort",P));const{signal:B}=v;return B.unsubscribe=()=>Ne.asap(s),B}},k0=function*(d,f){let _=d.byteLength;if(_<f){yield d;return}let v=0,k;for(;v<_;)k=v+f,yield d.slice(v,k),v=k},T0=async function*(d,f){for await(const _ of C0(d))yield*k0(_,f)},C0=async function*(d){if(d[Symbol.asyncIterator]){yield*d;return}const f=d.getReader();try{for(;;){const{done:_,value:v}=await f.read();if(_)break;yield v}}finally{await f.cancel()}},Qd=(d,f,_,v)=>{const k=T0(d,f);let P=0,x,s=B=>{x||(x=!0,v&&v(B))};return new ReadableStream({async pull(B){try{const{done:z,value:R}=await k.next();if(z){s(),B.close();return}let H=R.byteLength;if(_){let M=P+=H;_(M)}B.enqueue(new Uint8Array(R))}catch(z){throw s(z),z}},cancel(B){return s(B),k.return()}},{highWaterMark:2})},_c=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Yd=_c&&typeof ReadableStream=="function",E0=_c&&(typeof TextEncoder=="function"?(d=>f=>d.encode(f))(new TextEncoder):async d=>new Uint8Array(await new Response(d).arrayBuffer())),$d=(d,...f)=>{try{return!!d(...f)}catch{return!1}},P0=Yd&&$d(()=>{let d=!1;const f=new Request(gi.origin,{body:new ReadableStream,method:"POST",get duplex(){return d=!0,"half"}}).headers.has("Content-Type");return d&&!f}),ef=64*1024,kh=Yd&&$d(()=>Ne.isReadableStream(new Response("").body)),xc={stream:kh&&(d=>d.body)};_c&&(d=>{["text","arrayBuffer","blob","formData","stream"].forEach(f=>{!xc[f]&&(xc[f]=Ne.isFunction(d[f])?_=>_[f]():(_,v)=>{throw new Pt(`Response type '${f}' is not supported`,Pt.ERR_NOT_SUPPORT,v)})})})(new Response);const I0=async d=>{if(d==null)return 0;if(Ne.isBlob(d))return d.size;if(Ne.isSpecCompliantForm(d))return(await new Request(gi.origin,{method:"POST",body:d}).arrayBuffer()).byteLength;if(Ne.isArrayBufferView(d)||Ne.isArrayBuffer(d))return d.byteLength;if(Ne.isURLSearchParams(d)&&(d=d+""),Ne.isString(d))return(await E0(d)).byteLength},M0=async(d,f)=>{const _=Ne.toFiniteNumber(d.getContentLength());return _??I0(f)},Th={http:Y_,xhr:S0,fetch:_c&&(async d=>{let{url:f,method:_,data:v,signal:k,cancelToken:P,timeout:x,onDownloadProgress:s,onUploadProgress:B,responseType:z,headers:R,withCredentials:H="same-origin",fetchOptions:M}=Xd(d);z=z?(z+"").toLowerCase():"text";let C=A0([k,P&&P.toAbortSignal()],x),T;const N=C&&C.unsubscribe&&(()=>{C.unsubscribe()});let K;try{if(B&&P0&&_!=="get"&&_!=="head"&&(K=await M0(R,v))!==0){let pe=new Request(f,{method:"POST",body:v,duplex:"half"}),Pe;if(Ne.isFormData(v)&&(Pe=pe.headers.get("content-type"))&&R.setContentType(Pe),pe.body){const[De,Ze]=Zd(K,yc(Kd(B)));v=Qd(pe.body,ef,De,Ze)}}Ne.isString(H)||(H=H?"include":"omit");const ie="credentials"in Request.prototype;T=new Request(f,{...M,signal:C,method:_.toUpperCase(),headers:R.normalize().toJSON(),body:v,duplex:"half",credentials:ie?H:void 0});let le=await fetch(T);const Se=kh&&(z==="stream"||z==="response");if(kh&&(s||Se&&N)){const pe={};["status","statusText","headers"].forEach(gt=>{pe[gt]=le[gt]});const Pe=Ne.toFiniteNumber(le.headers.get("content-length")),[De,Ze]=s&&Zd(Pe,yc(Kd(s),!0))||[];le=new Response(Qd(le.body,ef,De,()=>{Ze&&Ze(),N&&N()}),pe)}z=z||"text";let ee=await xc[Ne.findKey(xc,z)||"text"](le,d);return!Se&&N&&N(),await new Promise((pe,Pe)=>{Wd(pe,Pe,{data:ee,headers:Bi.from(le.headers),status:le.status,statusText:le.statusText,config:d,request:T})})}catch(ie){throw N&&N(),ie&&ie.name==="TypeError"&&/Load failed|fetch/i.test(ie.message)?Object.assign(new Pt("Network Error",Pt.ERR_NETWORK,d,T),{cause:ie.cause||ie}):Pt.from(ie,ie&&ie.code,d,T)}})};Ne.forEach(Th,(d,f)=>{if(d){try{Object.defineProperty(d,"name",{value:f})}catch{}Object.defineProperty(d,"adapterName",{value:f})}});const tf=d=>`- ${d}`,L0=d=>Ne.isFunction(d)||d===null||d===!1,rf={getAdapter:d=>{d=Ne.isArray(d)?d:[d];const{length:f}=d;let _,v;const k={};for(let P=0;P<f;P++){_=d[P];let x;if(v=_,!L0(_)&&(v=Th[(x=String(_)).toLowerCase()],v===void 0))throw new Pt(`Unknown adapter '${x}'`);if(v)break;k[x||"#"+P]=v}if(!v){const P=Object.entries(k).map(([s,B])=>`adapter ${s} `+(B===!1?"is not supported by the environment":"is not available in the build"));let x=f?P.length>1?`since :
|
|
744
|
-
`+P.map(tf).join(`
|
|
745
|
-
`):" "+tf(P[0]):"as no adapter specified";throw new Pt("There is no suitable adapter to dispatch the request "+x,"ERR_NOT_SUPPORT")}return v},adapters:Th};function Ch(d){if(d.cancelToken&&d.cancelToken.throwIfRequested(),d.signal&&d.signal.aborted)throw new Oo(null,d)}function nf(d){return Ch(d),d.headers=Bi.from(d.headers),d.data=Ah.call(d,d.transformRequest),["post","put","patch"].indexOf(d.method)!==-1&&d.headers.setContentType("application/x-www-form-urlencoded",!1),rf.getAdapter(d.adapter||Ua.adapter)(d).then(function(v){return Ch(d),v.data=Ah.call(d,d.transformResponse,v),v.headers=Bi.from(v.headers),v},function(v){return Hd(v)||(Ch(d),v&&v.response&&(v.response.data=Ah.call(d,d.transformResponse,v.response),v.response.headers=Bi.from(v.response.headers))),Promise.reject(v)})}const sf="1.9.0",bc={};["object","boolean","number","function","string","symbol"].forEach((d,f)=>{bc[d]=function(v){return typeof v===d||"a"+(f<1?"n ":" ")+d}});const of={};bc.transitional=function(f,_,v){function k(P,x){return"[Axios v"+sf+"] Transitional option '"+P+"'"+x+(v?". "+v:"")}return(P,x,s)=>{if(f===!1)throw new Pt(k(x," has been removed"+(_?" in "+_:"")),Pt.ERR_DEPRECATED);return _&&!of[x]&&(of[x]=!0,console.warn(k(x," has been deprecated since v"+_+" and will be removed in the near future"))),f?f(P,x,s):!0}},bc.spelling=function(f){return(_,v)=>(console.warn(`${v} is likely a misspelling of ${f}`),!0)};function R0(d,f,_){if(typeof d!="object")throw new Pt("options must be an object",Pt.ERR_BAD_OPTION_VALUE);const v=Object.keys(d);let k=v.length;for(;k-- >0;){const P=v[k],x=f[P];if(x){const s=d[P],B=s===void 0||x(s,P,d);if(B!==!0)throw new Pt("option "+P+" must be "+B,Pt.ERR_BAD_OPTION_VALUE);continue}if(_!==!0)throw new Pt("Unknown option "+P,Pt.ERR_BAD_OPTION)}}const vc={assertOptions:R0,validators:bc},Sn=vc.validators;let Us=class{constructor(f){this.defaults=f||{},this.interceptors={request:new Nd,response:new Nd}}async request(f,_){try{return await this._request(f,_)}catch(v){if(v instanceof Error){let k={};Error.captureStackTrace?Error.captureStackTrace(k):k=new Error;const P=k.stack?k.stack.replace(/^.+\n/,""):"";try{v.stack?P&&!String(v.stack).endsWith(P.replace(/^.+\n.+\n/,""))&&(v.stack+=`
|
|
746
|
-
`+P):v.stack=P}catch{}}throw v}}_request(f,_){typeof f=="string"?(_=_||{},_.url=f):_=f||{},_=qs(this.defaults,_);const{transitional:v,paramsSerializer:k,headers:P}=_;v!==void 0&&vc.assertOptions(v,{silentJSONParsing:Sn.transitional(Sn.boolean),forcedJSONParsing:Sn.transitional(Sn.boolean),clarifyTimeoutError:Sn.transitional(Sn.boolean)},!1),k!=null&&(Ne.isFunction(k)?_.paramsSerializer={serialize:k}:vc.assertOptions(k,{encode:Sn.function,serialize:Sn.function},!0)),_.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?_.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:_.allowAbsoluteUrls=!0),vc.assertOptions(_,{baseUrl:Sn.spelling("baseURL"),withXsrfToken:Sn.spelling("withXSRFToken")},!0),_.method=(_.method||this.defaults.method||"get").toLowerCase();let x=P&&Ne.merge(P.common,P[_.method]);P&&Ne.forEach(["delete","get","head","post","put","patch","common"],T=>{delete P[T]}),_.headers=Bi.concat(x,P);const s=[];let B=!0;this.interceptors.request.forEach(function(N){typeof N.runWhen=="function"&&N.runWhen(_)===!1||(B=B&&N.synchronous,s.unshift(N.fulfilled,N.rejected))});const z=[];this.interceptors.response.forEach(function(N){z.push(N.fulfilled,N.rejected)});let R,H=0,M;if(!B){const T=[nf.bind(this),void 0];for(T.unshift.apply(T,s),T.push.apply(T,z),M=T.length,R=Promise.resolve(_);H<M;)R=R.then(T[H++],T[H++]);return R}M=s.length;let C=_;for(H=0;H<M;){const T=s[H++],N=s[H++];try{C=T(C)}catch(K){N.call(this,K);break}}try{R=nf.call(this,C)}catch(T){return Promise.reject(T)}for(H=0,M=z.length;H<M;)R=R.then(z[H++],z[H++]);return R}getUri(f){f=qs(this.defaults,f);const _=Gd(f.baseURL,f.url,f.allowAbsoluteUrls);return Fd(_,f.params,f.paramsSerializer)}};Ne.forEach(["delete","get","head","options"],function(f){Us.prototype[f]=function(_,v){return this.request(qs(v||{},{method:f,url:_,data:(v||{}).data}))}}),Ne.forEach(["post","put","patch"],function(f){function _(v){return function(P,x,s){return this.request(qs(s||{},{method:f,headers:v?{"Content-Type":"multipart/form-data"}:{},url:P,data:x}))}}Us.prototype[f]=_(),Us.prototype[f+"Form"]=_(!0)});let z0=class xy{constructor(f){if(typeof f!="function")throw new TypeError("executor must be a function.");let _;this.promise=new Promise(function(P){_=P});const v=this;this.promise.then(k=>{if(!v._listeners)return;let P=v._listeners.length;for(;P-- >0;)v._listeners[P](k);v._listeners=null}),this.promise.then=k=>{let P;const x=new Promise(s=>{v.subscribe(s),P=s}).then(k);return x.cancel=function(){v.unsubscribe(P)},x},f(function(P,x,s){v.reason||(v.reason=new Oo(P,x,s),_(v.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(f){if(this.reason){f(this.reason);return}this._listeners?this._listeners.push(f):this._listeners=[f]}unsubscribe(f){if(!this._listeners)return;const _=this._listeners.indexOf(f);_!==-1&&this._listeners.splice(_,1)}toAbortSignal(){const f=new AbortController,_=v=>{f.abort(v)};return this.subscribe(_),f.signal.unsubscribe=()=>this.unsubscribe(_),f.signal}static source(){let f;return{token:new xy(function(k){f=k}),cancel:f}}};function D0(d){return function(_){return d.apply(null,_)}}function B0(d){return Ne.isObject(d)&&d.isAxiosError===!0}const Eh={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Eh).forEach(([d,f])=>{Eh[f]=d});function af(d){const f=new Us(d),_=Ad(Us.prototype.request,f);return Ne.extend(_,Us.prototype,f,{allOwnKeys:!0}),Ne.extend(_,f,null,{allOwnKeys:!0}),_.create=function(k){return af(qs(d,k))},_}const Tr=af(Ua);Tr.Axios=Us,Tr.CanceledError=Oo,Tr.CancelToken=z0,Tr.isCancel=Hd,Tr.VERSION=sf,Tr.toFormData=mc,Tr.AxiosError=Pt,Tr.Cancel=Tr.CanceledError,Tr.all=function(f){return Promise.all(f)},Tr.spread=D0,Tr.isAxiosError=B0,Tr.mergeConfig=qs,Tr.AxiosHeaders=Bi,Tr.formToJSON=d=>Ud(Ne.isHTMLForm(d)?new FormData(d):d),Tr.getAdapter=rf.getAdapter,Tr.HttpStatusCode=Eh,Tr.default=Tr;const{Axios:jS,AxiosError:HS,CanceledError:WS,isCancel:ZS,CancelToken:KS,VERSION:GS,all:JS,Cancel:XS,isAxiosError:QS,spread:YS,toFormData:$S,AxiosHeaders:eA,HttpStatusCode:tA,formToJSON:rA,getAdapter:iA,mergeConfig:nA}=Tr,V0={class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative overflow-hidden"},O0={key:0,class:"p-5 pb-3 flex justify-between items-center"},F0={class:"inline-block font-semibold text-lg text-gray-800"},N0={key:1,class:"flex"},q0={class:"flex items-center mx-[8px]"},U0={class:"min-h-[34px] max-h-[34px] overflow-hidden min-w-[34px] flex justify-center items-center bg-stone-100 text-stone-800 py-2 px-3 text-sm rounded-lg"},j0={class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},H0={class:"flex flex-col justify-between pb-5 px-5 h-full overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},W0={key:0,class:"text-center"},Z0={key:1,class:"text-red-500"},K0={key:2},G0=["innerHTML"],J0={key:1,class:"flow-root"},X0={class:"-my-3 divide-y divide-gray-100 text-sm"},Q0={class:"font-medium text-gray-900"},Y0={class:"text-gray-700 sm:col-span-2"},$0={key:2,class:"vs-map-card-info__nodata"},lf={__name:"vs-card-widget",props:{config:{type:Object,required:!0},cardValues:{type:Object,required:!0}},emits:["close","content-resize"],setup(d,{emit:f}){const _=d,v=f,k=S.computed(()=>{var K;return((K=_.config)==null?void 0:K.title)||""}),P=S.ref([]),x=S.ref(!1),s=S.ref(null),B=S.ref(0),z=S.computed(()=>B.value+1),R=S.computed(()=>{var K;return((K=_.info)==null?void 0:K.length)||0}),H=S.computed(()=>P.value[B.value]),M=S.computed(()=>{if(!H.value)return{};const{rows:K,columns:ie}=H.value;return!K||!ie?{}:ie.reduce((le,Se)=>(!Se.hide&&!["geom","geodata","id"].includes(Se.name)&&(le[Se.ua]=K[Se.name]??"-"),le),{})});async function C(){var K,ie,le;x.value=!0,s.value=null;try{const Se={id:(K=_.cardValues)==null?void 0:K.id,layer:(ie=_.cardValues)==null?void 0:ie.layer,map:(le=_.cardValues)==null?void 0:le.map},ee=await Tr.get("/api/map-format",{params:Se});P.value[B.value]=ee.data}catch(Se){s.value=(Se==null?void 0:Se.message)||"Помилка запиту"}finally{x.value=!1,await S.nextTick(),v("content-resize")}}function T(){B.value<_.info.length-1&&(B.value+=1,P.value[B.value]||C())}function N(){B.value>0&&(B.value-=1,P.value[B.value]||C())}return S.onMounted(async()=>{await S.nextTick(),C()}),S.watch(()=>_.info,()=>{B.value=0,C(),v("content-resize")},{deep:!0}),S.watch([()=>_.cardValues,()=>_.config],async()=>{await S.nextTick(),C(),v("content-resize")}),(K,ie)=>{var le;return S.openBlock(),S.createElementBlock("div",V0,[k.value?(S.openBlock(),S.createElementBlock("div",O0,[S.createElementVNode("h2",F0,S.toDisplayString(k.value),1),S.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600 ml-2",onClick:ie[0]||(ie[0]=Se=>v("close"))},ie[1]||(ie[1]=[S.createElementVNode("svg",{class:"shrink-0 size-4 cursor-pointer",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[S.createElementVNode("path",{d:"M18 6 6 18"}),S.createElementVNode("path",{d:"m6 6 12 12"})],-1)]))])):S.createCommentVNode("",!0),R.value>1?(S.openBlock(),S.createElementBlock("div",N0,[S.createElementVNode("button",{type:"button",class:S.normalizeClass([{"opacity-flex items-center justify-between border-b px-[16px] py-[8px]50 pointer-events-none":z.value===1},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"]),onClick:N}," ◀ ",2),S.createElementVNode("div",q0,[S.createElementVNode("span",U0,S.toDisplayString(z.value),1),ie[2]||(ie[2]=S.createElementVNode("span",{class:"min-h-[34px] flex justify-center items-center text-stone-500 py-2 px-1.5 text-sm"},"з",-1)),S.createElementVNode("span",j0,S.toDisplayString(R.value),1)]),S.createElementVNode("button",{type:"button",onClick:T,class:S.normalizeClass([{"opacity-50 pointer-events-none":z.value===R.value},"min-h-[34px] min-w-[34px] py-2 px-2.5 inline-flex justify-center items-center gap-x-2 text-sm rounded-lg text-stone-800 hover:bg-stone-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-stone-100"])}," ▶ ",2)])):S.createCommentVNode("",!0),S.createElementVNode("div",H0,[x.value?(S.openBlock(),S.createElementBlock("div",W0,"Завантаження даних...")):s.value?(S.openBlock(),S.createElementBlock("div",Z0,"Помилка завантаження даних")):(S.openBlock(),S.createElementBlock("div",K0,[(le=H.value)!=null&&le.html?(S.openBlock(),S.createElementBlock("div",{key:0,innerHTML:H.value.html,class:"custom-table-html border-b"},null,8,G0)):Object.keys(M.value).length?(S.openBlock(),S.createElementBlock("div",J0,[S.createElementVNode("dl",X0,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(M.value,(Se,ee)=>(S.openBlock(),S.createElementBlock("div",{key:ee,class:"grid grid-cols-1 gap-1 py-3 even:bg-gray-50 sm:grid-cols-3 sm:gap-4"},[S.createElementVNode("dt",Q0,S.toDisplayString(ee),1),S.createElementVNode("dd",Y0,S.toDisplayString(Se),1)]))),128))])])):(S.openBlock(),S.createElementBlock("div",$0,"Даних не знайдено."))]))])])}}},ex={class:"size-full flex flex-col bg-white border border-gray-200 shadow-2xs rounded-xl dark:bg-neutral-800 dark:border-neutral-700"},tx={key:0,class:"p-5 pb-0 items-center"},rx={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},ix={class:"h-full p-5"},nx={class:"h-full flex flex-col justify-between space-y-4"},sx={class:"space-y-4"},ox={key:0,class:"flex gap-x-1 w-full h-2.5 rounded-full overflow-hidden"},ax=["aria-valuenow"],lx={class:"text-sm text-gray-500 px-2 w-full py-2 cursor-pointer !flex flex-row items-center rounded-lg group hover:bg-gray-100"},cx=["for"],ux={key:0,width:"16",height:"auto",src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PScwIDAgMTYgMTYnIGZpbGw9J3doaXRlJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxwYXRoIGQ9J00xMi4yMDcgNC43OTNhMSAxIDAgMDEwIDEuNDE0bC01IDVhMSAxIDAgMDEtMS40MTQgMGwtMi0yYTEgMSAwIDAxMS40MTQtMS40MTRMNi41IDkuMDg2bDQuMjkzLTQuMjkzYTEgMSAwIDAxMS40MTQgMHonLz48L3N2Zz4="},hx=["id","onUpdate:modelValue"],px={class:"ms-2 text-gray-800 dark:text-neutral-200"},dx={key:0,class:"ms-auto text-xs text-gray-500 dark:text-neutral-500"},fx={__name:"vs-attributre-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0}},setup(d){const f=d,_=S.computed(()=>{var B;return((B=f.config)==null?void 0:B.title)||""}),v=S.ref([]),k=S.computed(()=>f.config.layer.style.rules.some(B=>B.count!==void 0)),P=S.computed(()=>f.config.layer.style.rules.reduce((B,z)=>B+(z.count||0),0)),x=B=>!B||P.value===0?0:Math.round(B/P.value*100),s=()=>{const z=f.config.layer.style.rules.filter((R,H)=>v.value[H]).map(R=>R.id||R.value).join(",");if(f.config.layer.id){const R=f.map.getSource(f.config.layer.id);if(R){const M=R.tiles[0].split("?filter=")[0],C=z?`${M}?filter=${f.config.layer.style.attribute}=${z}`:M;R.setTiles([C])}}};return S.onMounted(()=>{var B;(B=f.config)!=null&&B.layer&&(ls(f.map,f.config.layer),v.value=new Array(f.config.layer.style.rules.length).fill(!1))}),(B,z)=>(S.openBlock(),S.createElementBlock("div",ex,[_.value?(S.openBlock(),S.createElementBlock("div",tx,[S.createElementVNode("div",null,[S.createElementVNode("h2",rx,S.toDisplayString(_.value),1)])])):S.createCommentVNode("",!0),S.createElementVNode("div",ix,[S.createElementVNode("div",nx,[S.createElementVNode("div",sx,[k.value?(S.openBlock(),S.createElementBlock("div",ox,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(d.config.layer.style.rules,(R,H)=>(S.openBlock(),S.createElementBlock("div",{key:H,class:"flex flex-col justify-center overflow-hidden text-xs text-white text-center whitespace-nowrap",style:S.normalizeStyle({width:`${x(R.count)}%`,backgroundColor:R.color}),role:"progressbar","aria-valuenow":x(R.count),"aria-valuemin":"0","aria-valuemax":"100"},null,12,ax))),128))])):S.createCommentVNode("",!0),S.createElementVNode("ul",null,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(d.config.layer.style.rules,(R,H)=>(S.openBlock(),S.createElementBlock("li",{key:H},[S.createElementVNode("div",lx,[S.createElementVNode("label",{for:`filter-${H}`,class:"flex items-center w-full cursor-pointer"},[S.createElementVNode("div",{class:"w-[18px] h-[18px] border rounded-[4px] flex items-center justify-center",style:S.normalizeStyle({background:v.value[H]?R.color||"#2563eb":"#fff",borderColor:v.value[H]?R.color||"#2563eb":R.color||"#d9d9d9"})},[v.value[H]?(S.openBlock(),S.createElementBlock("img",ux)):S.createCommentVNode("",!0)],4),S.withDirectives(S.createElementVNode("input",{type:"checkbox",id:`filter-${H}`,"onUpdate:modelValue":M=>v.value[H]=M,onChange:s,class:"hidden",disabled:!1},null,40,hx),[[S.vModelCheckbox,v.value[H]]]),S.createElementVNode("span",px,S.toDisplayString(R.label||R.text),1),k.value?(S.openBlock(),S.createElementBlock("span",dx,"("+S.toDisplayString(R.count)+")",1)):S.createCommentVNode("",!0)],8,cx)])]))),128))])])])])]))}},mx={class:"hover:bg-gray-100 rounded-lg flex items-center ml-[20px] py-[8px] px-[8px]"},gx=["for"],yx={class:"custom-checkbox-wrapper"},_x=["id","checked"],xx={class:"custom-checkbox"},bx={key:0,xmlns:"http://www.w3.org/2000/svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none"},vx={class:"flex items-center justify-between ml-2 w-full"},wx=["title"],Sx={key:0,class:"text-xs opacity-60 text-[#4b5563]"},Ax=fr({__name:"vs-map-catalog-item",props:{layer:{type:Object,required:!0},map:{type:Object,default:()=>null},selectedLayers:{type:Array,default:()=>[]}},emits:["select","remove"],setup(d,{emit:f}){const _=d,v=f,k=S.computed(()=>_.selectedLayers.some(s=>s.id===_.layer.id)),P=s=>Intl.NumberFormat("uk",{notation:"compact"}).format(s),x=s=>{v(s?"select":"remove",_.layer)};return(s,B)=>{var z,R,H,M,C;return S.openBlock(),S.createElementBlock("div",mx,[S.createElementVNode("label",{class:"flex items-center w-full cursor-pointer",for:d.layer.id},[S.createElementVNode("div",yx,[S.createElementVNode("input",{id:d.layer.id,type:"checkbox",checked:k.value,onChange:B[0]||(B[0]=T=>x(T.target.checked)),class:"custom-checkbox-input"},null,40,_x),S.createElementVNode("div",xx,[k.value?(S.openBlock(),S.createElementBlock("svg",bx,B[1]||(B[1]=[S.createElementVNode("path",{d:"M10.6663 1L4.24967 7.41667L1.33301 4.5",stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))):S.createCommentVNode("",!0)])]),S.createElementVNode("div",vx,[S.createElementVNode("div",{class:"whitespace-nowrap text text-ellipsis max-w-[260px] overflow-hidden text-[13px] text-[#4b5563]",title:(z=d.layer)==null?void 0:z.name},S.toDisplayString(((R=d.layer)==null?void 0:R.name)||((H=d.layer)==null?void 0:H.title)),9,wx),isNaN(P((M=d.layer)==null?void 0:M.count))?S.createCommentVNode("",!0):(S.openBlock(),S.createElementBlock("div",Sx,S.toDisplayString(P((C=d.layer)==null?void 0:C.count)),1))])],8,gx)])}}},[["__scopeId","data-v-b96f3537"]]),kx={},Tx={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-zoom-in"};function Cx(d,f){return S.openBlock(),S.createElementBlock("svg",Tx,f[0]||(f[0]=[S.createElementVNode("circle",{cx:"11",cy:"11",r:"8"},null,-1),S.createElementVNode("line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"},null,-1),S.createElementVNode("line",{x1:"11",x2:"11",y1:"8",y2:"14"},null,-1),S.createElementVNode("line",{x1:"8",x2:"14",y1:"11",y2:"11"},null,-1)]))}const Ex=fr(kx,[["render",Cx]]),Px={},Ix={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-info"};function Mx(d,f){return S.openBlock(),S.createElementBlock("svg",Ix,f[0]||(f[0]=[S.createElementVNode("circle",{cx:"12",cy:"12",r:"10"},null,-1),S.createElementVNode("path",{d:"M12 16v-4"},null,-1),S.createElementVNode("path",{d:"M12 8h.01"},null,-1)]))}const Lx=fr(Px,[["render",Mx]]),Rx={},zx={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-table"};function Dx(d,f){return S.openBlock(),S.createElementBlock("svg",zx,f[0]||(f[0]=[S.createElementVNode("path",{d:"M12 3v18"},null,-1),S.createElementVNode("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"},null,-1),S.createElementVNode("path",{d:"M3 9h18"},null,-1),S.createElementVNode("path",{d:"M3 15h18"},null,-1)]))}const Bx=fr(Rx,[["render",Dx]]),Vx={},Ox={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-trash2"};function Fx(d,f){return S.openBlock(),S.createElementBlock("svg",Ox,f[0]||(f[0]=[S.createStaticVNode('<path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line>',5)]))}const Nx=fr(Vx,[["render",Fx]]),qx={},Ux={xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-more-vertical text-gray-600"};function jx(d,f){return S.openBlock(),S.createElementBlock("svg",Ux,f[0]||(f[0]=[S.createElementVNode("circle",{cx:"12",cy:"12",r:"1"},null,-1),S.createElementVNode("circle",{cx:"12",cy:"5",r:"1"},null,-1),S.createElementVNode("circle",{cx:"12",cy:"19",r:"1"},null,-1)]))}const Hx=fr(qx,[["render",jx]]),Wx={},Zx={width:"6",height:"10",viewBox:"0 0 6 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Kx(d,f){return S.openBlock(),S.createElementBlock("svg",Zx,f[0]||(f[0]=[S.createElementVNode("path",{d:"M1 9L5 5L1 1",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Gx=fr(Wx,[["render",Kx]]);function Jx(){const f=new URLSearchParams(window.location.search).get("layers");return f?f.split(","):[]}function Xx(d){const f=new URLSearchParams(window.location.search);d.length>0?f.set("layers",d.join(",")):f.delete("layers");const _=`${window.location.pathname}?${f.toString()}`;window.history.replaceState({},"",_)}const Qx={components:{VsLayersItem:Ax,ZoomInIcon:Ex,InfoIcon:Lx,TableIcon:Bx,TrashIcon:Nx,DotsIcon:Hx,ChevronRightIcon:Gx,Container:Fs.Container,Draggable:Fs.Draggable},props:{center:{type:Array,default:()=>[26.2516,50.6199]},zoom:{type:Number,default:12},map:{type:Object,default:()=>null},history:{type:Boolean,default:!1}},emits:["content-resize"],data(){return{layers:null,rawCatalog:null,categories:null,selectedCategory:"",search:"",activeView:"catalog",selectedLayers:[]}},computed:{searchedLayers(){return this.layers.filter(({name:d})=>d==null?void 0:d.toLowerCase().match(this.search.toLowerCase()))}},async mounted(){if(await this.getLayers(),this.categories=this.layersCategories(),this.history){const d=Jx();d.length>0&&this.layers&&(d.forEach(f=>{const _=this.layers.find(v=>String(v.id)===f);if(_&&!this.selectedLayers.find(v=>v.id===_.id)){const v={..._,visible:!0,opacity:100};this.selectedLayers.push(v),ls(this.map,v)}}),this.activeView="selected")}this._resizeObserver=new window.ResizeObserver(()=>{this.$emit("content-resize")}),this.$nextTick(()=>{const d=this.$el;d&&this._resizeObserver.observe(d)})},beforeUnmount(){this._resizeObserver&&this._resizeObserver.disconnect()},watch:{selectedLayers:{handler(d){this.history&&Xx(d.map(f=>f.id))},deep:!0}},methods:{async getLayers(){try{const d=await Tr.get("/api/map-catalog"),f=(d.data.services||[]).filter(_=>_.service_type!=="other");this.layers=[...f,...d.data.rasters||[]],this.rawCatalog={...d.data,services:f}}catch(d){console.error("Помилка завантаження шарів:",d)}},layersCategories(){return this.rawCatalog?{Сервіси:this.rawCatalog.services||[],Растри:this.rawCatalog.rasters||[]}:{}},selectCategory(d){this.selectedCategory=this.selectedCategory===d?"":d},formatNumber(d){return Intl.NumberFormat("uk",{notation:"compact"}).format(d)},onEnter(){this.layers.filter(({name:d})=>d==null?void 0:d.toLowerCase().match(this.search.toLowerCase()))},clearSearch(){this.search=""},addToSelected(d){if(!this.selectedLayers.find(f=>f.id===d.id)){const f={...d,visible:!0,opacity:100};this.selectedLayers.unshift(f),ls(this.map,f)}},deleteLayer(d){const f=this.selectedLayers.findIndex(_=>_.id===d.id);f!==-1&&this.selectedLayers.splice(f,1),Bo(this.map,d.id)},async toggleLayerVisibility(d){try{d.visible?await ls(this.map,d):await Bo(this.map,d.id)}catch(f){console.error("Error toggling layer visibility:",f),d.visible=!d.visible}},onLayerOpacityChange(d){this.updateLayerOpacity(d)},updateLayerOpacity(d){if(this.map){const f=this.map.getStyle().layers.filter(v=>v.id.includes(d.id)),_=d.opacity/100;f.forEach(v=>{v.type==="fill"?(d.originalFillOpacity||(d.originalFillOpacity=this.map.getPaintProperty(v.id,"fill-opacity")||1),this.map.setPaintProperty(v.id,"fill-opacity",d.originalFillOpacity*_)):v.type==="raster"?this.map.setPaintProperty(v.id,"raster-opacity",_):v.type==="line"?this.map.setPaintProperty(v.id,"line-opacity",_):v.type==="circle"?(this.map.setPaintProperty(v.id,"circle-opacity",_),this.map.setPaintProperty(v.id,"circle-stroke-opacity",_)):v.type==="symbol"&&(this.map.setPaintProperty(v.id,"icon-opacity",_),this.map.setPaintProperty(v.id,"text-opacity",_))})}},async handleRemoveFromCatalog(d){const f=this.selectedLayers.find(_=>_.id===d.id);f!=null&&f.visible&&await Bo(this.map,d.id),this.deleteLayer(d)},clearSelectedLayers(){this.selectedLayers.forEach(async d=>{d.visible&&await Bo(this.map,d.id)}),this.selectedLayers=[]},zoomToLayer(d){this.fitBoundsByLayer(d)},showLayerInfo(d){},showLayerTable(d){},fitBoundsByLayer(d){d&&d.bbox&&Array.isArray(d.bbox)&&d.bbox.length===4&&this.map&&this.map.fitBounds([[d.bbox[0],d.bbox[1]],[d.bbox[2],d.bbox[3]]],{padding:50,duration:0})},popoverActions(d){return[{label:"Збільшити до шару",icon:"ZoomInIcon",class:d&&d.bbox&&Array.isArray(d.bbox)&&d.bbox.length===4?"text-gray-700 hover:bg-gray-100":"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"zoomToLayer",disabled:!(d&&d.bbox&&Array.isArray(d.bbox)&&d.bbox.length===4)},{label:"Інформація про шар",icon:"InfoIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerInfo",disabled:!0},{label:"Таблиця шару",icon:"TableIcon",class:"text-gray-700 hover:bg-gray-100 opacity-50 cursor-not-allowed",handler:"showLayerTable",disabled:!0},{divider:!0},{label:"Видалити шар",icon:"TrashIcon",class:"text-red-600 hover:bg-red-50",handler:"deleteLayer",disabled:!1}]},onDrop(d){const{removedIndex:f,addedIndex:_,payload:v}=d;if(f===null&&_===null)return;const k=[...this.selectedLayers];let P=v;if(f!==null&&(P=k.splice(f,1)[0]),_!==null&&k.splice(_,0,P),this.selectedLayers=k,this.map&&this.selectedLayers.length>1)for(let x=this.selectedLayers.length-1;x>=0;x--){const s=this.selectedLayers[x];s.visible&&this.map.getStyle().layers.find(B=>B.id.includes(s.id))&&this.map.getStyle().layers.forEach(B=>{B.id.includes(s.id)&&this.map.moveLayer(B.id)})}}}},Yx={class:"w-full max-w-md mx-auto p-4 bg-white border border-gray-200 rounded-lg shadow-sm"},$x={class:"flex items-center justify-between mb-4"},eb={class:"flex items-center gap-2"},tb={class:"text-lg font-semibold text-gray-800"},rb={key:0},ib={key:1},nb={class:"flex mb-4 border-b border-gray-200"},sb={key:0},ob={class:"mb-4"},ab={class:"border border-gray-200 rounded-md p-3 mb-2 bg-white shadow-sm"},lb={class:"flex items-center justify-between"},cb={class:"flex items-center gap-2 cursor-move"},ub=["onUpdate:modelValue","onChange"],hb={class:"text-gray-800 font-medium"},pb={class:"flex items-center gap-2"},db={class:"relative"},fb={class:"flex items-center gap-2"},mb=["onUpdate:modelValue","onInput"],gb={class:"text-xs text-gray-600 whitespace-nowrap"},yb=["onClick"],_b={class:"relative"},xb={class:"w-48"},bb={key:0,class:"my-1 border-gray-200"},vb=["disabled","onClick"],wb={class:"p-1 rounded-full hover:bg-gray-100 transition-colors","aria-label":"Layer actions"},Sb={key:0,class:"text-center text-[14px] text-[#4b5563]"},Ab={class:"relative mt-[10px]"},kb={class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"},width:"16",height:"17",viewBox:"0 0 16 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Tb={key:0,class:"vs-layers-catalog__list flex-1 scrollable-container overflow-auto mt-2 catalog-list"},Cb={key:0,class:"text-center text-[14px] text-[#4b5563]"},Eb={key:0,class:"text-center text-[14px] text-[#4b5563]"},Pb=["onClick"],Ib={class:"flex items-center gap-x-3"},Mb=["title"],Lb={class:"text-xs opacity-60 text-[#4b5563]"};function Rb(d,f,_,v,k,P){var T;const x=S.resolveComponent("VsPopover"),s=S.resolveComponent("DotsIcon"),B=S.resolveComponent("Draggable"),z=S.resolveComponent("Container"),R=S.resolveComponent("searchIcon"),H=S.resolveComponent("closeIcon"),M=S.resolveComponent("VsLayersItem"),C=S.resolveComponent("chevronRightIcon");return S.openBlock(),S.createElementBlock("div",Yx,[S.createElementVNode("div",$x,[S.createElementVNode("div",eb,[f[6]||(f[6]=S.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-layers text-blue-600"},[S.createElementVNode("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),S.createElementVNode("path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"}),S.createElementVNode("path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"})],-1)),S.createElementVNode("h2",tb,[S.createTextVNode(S.toDisplayString(k.activeView==="catalog"?"Каталог":"Вибрані шари")+" ",1),k.activeView==="catalog"?(S.openBlock(),S.createElementBlock("span",rb,"("+S.toDisplayString(((T=k.layers)==null?void 0:T.length)||0)+")",1)):(S.openBlock(),S.createElementBlock("span",ib,"("+S.toDisplayString(k.selectedLayers.length)+")",1))])]),S.createElementVNode("button",{class:"p-1 rounded-full hover:bg-gray-200 transition-colors","aria-label":"Reset layers",onClick:f[0]||(f[0]=(...N)=>P.clearSelectedLayers&&P.clearSelectedLayers(...N))},f[7]||(f[7]=[S.createStaticVNode('<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw text-gray-600" data-v-40ac73af><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" data-v-40ac73af></path><path d="M21 3v5h-5" data-v-40ac73af></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" data-v-40ac73af></path><path d="M8 16H3v5" data-v-40ac73af></path></svg>',1)]))]),S.createElementVNode("div",nb,[S.createElementVNode("button",{class:S.normalizeClass(["px-4 py-2 text-sm font-medium",k.activeView==="catalog"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:f[1]||(f[1]=N=>k.activeView="catalog")}," Каталог ",2),S.createElementVNode("button",{class:S.normalizeClass(["px-4 py-2 text-sm font-medium",k.activeView==="selected"?"text-blue-600 border-b-2 border-blue-600":"text-gray-600 hover:text-gray-800"]),onClick:f[2]||(f[2]=N=>k.activeView="selected")}," Вибрані шари ",2)]),k.activeView==="selected"?(S.openBlock(),S.createElementBlock("div",sb,[S.createElementVNode("div",ob,[S.createElementVNode("button",{class:"flex items-center gap-2 text-blue-600 hover:text-blue-700 transition-colors px-3 py-2 rounded-md bg-blue-50 hover:bg-blue-100 w-full justify-center",onClick:f[3]||(f[3]=N=>k.activeView="catalog")},f[8]||(f[8]=[S.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-plus"},[S.createElementVNode("path",{d:"M5 12h14"}),S.createElementVNode("path",{d:"M12 5v14"})],-1),S.createElementVNode("span",null,"Вибрати шар",-1)]))]),(S.openBlock(),S.createBlock(z,{onDrop:P.onDrop,lockAxis:"y","drag-class":"dragging",key:k.selectedLayers.length,class:"space-y-2 max-h-[400px] overflow-y-auto pr-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},{default:S.withCtx(()=>[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(k.selectedLayers,(N,K)=>(S.openBlock(),S.createBlock(B,{key:N.id||K,payload:N},{default:S.withCtx(()=>[S.createElementVNode("div",ab,[S.createElementVNode("div",lb,[S.createElementVNode("div",cb,[f[9]||(f[9]=S.createElementVNode("svg",{width:"16",height:"16",fill:"none",stroke:"#9ca3af","stroke-width":"2",viewBox:"0 0 24 24",class:"mr-1 shrink-0"},[S.createElementVNode("circle",{cx:"5",cy:"5",r:"1.5"}),S.createElementVNode("circle",{cx:"5",cy:"12",r:"1.5"}),S.createElementVNode("circle",{cx:"5",cy:"19",r:"1.5"}),S.createElementVNode("circle",{cx:"12",cy:"5",r:"1.5"}),S.createElementVNode("circle",{cx:"12",cy:"12",r:"1.5"}),S.createElementVNode("circle",{cx:"12",cy:"19",r:"1.5"}),S.createElementVNode("circle",{cx:"19",cy:"5",r:"1.5"}),S.createElementVNode("circle",{cx:"19",cy:"12",r:"1.5"}),S.createElementVNode("circle",{cx:"19",cy:"19",r:"1.5"})],-1)),S.withDirectives(S.createElementVNode("input",{type:"checkbox",class:"w-4 h-4 text-blue-600 rounded focus:ring-blue-500","onUpdate:modelValue":ie=>N.visible=ie,onChange:ie=>P.toggleLayerVisibility(N)},null,40,ub),[[S.vModelCheckbox,N.visible]]),S.createElementVNode("span",hb,S.toDisplayString(N.name||N.title||N.label),1)]),S.createElementVNode("div",pb,[S.createElementVNode("div",db,[S.createVNode(x,{placement:"bottom"},{reference:S.withCtx(()=>[S.createElementVNode("div",{class:"text-sm text-gray-600 hover:text-gray-800 transition-colors px-2 py-1 rounded hover:bg-gray-100 cursor-pointer",onClick:ie=>P.updateLayerOpacity(N)},S.toDisplayString(N.opacity||100)+"% ",9,yb)]),default:S.withCtx(()=>[S.createElementVNode("div",fb,[f[10]||(f[10]=S.createElementVNode("label",{class:"text-gray-600 whitespace-nowrap"},"Прозорість:",-1)),S.withDirectives(S.createElementVNode("input",{type:"range",min:"0",max:"100",step:"1","onUpdate:modelValue":ie=>N.opacity=ie,onInput:ie=>P.onLayerOpacityChange(N),class:"h-2 w-full accent-blue-600 rounded-lg cursor-pointer bg-gray-200"},null,40,mb),[[S.vModelText,N.opacity]]),S.createElementVNode("span",gb,S.toDisplayString(Math.round(N.opacity))+"% ",1)])]),_:2},1024)]),S.createElementVNode("div",_b,[S.createVNode(x,{placement:"bottom"},{reference:S.withCtx(()=>[S.createElementVNode("div",wb,[S.createVNode(s)])]),default:S.withCtx(()=>[S.createElementVNode("div",xb,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(P.popoverActions(N),(ie,le)=>(S.openBlock(),S.createElementBlock(S.Fragment,{key:le},[ie.divider?(S.openBlock(),S.createElementBlock("hr",bb)):(S.openBlock(),S.createElementBlock("button",{key:1,class:S.normalizeClass("w-full p-2 text-left text-sm flex items-center gap-2 "+(ie.class||"")),disabled:ie.disabled,onClick:Se=>!ie.disabled&&d.$options.methods[ie.handler].call(this,N)},[(S.openBlock(),S.createBlock(S.resolveDynamicComponent(ie.icon),{class:"lucide"})),S.createTextVNode(" "+S.toDisplayString(ie.label),1)],10,vb))],64))),128))])]),_:2},1024)])])])])]),_:2},1032,["payload"]))),128)),k.selectedLayers.length===0?(S.openBlock(),S.createElementBlock("div",Sb,f[11]||(f[11]=[S.createElementVNode("p",null,'Щоб додати шар, натисніть на кнопку "Вибрати шар".',-1)]))):S.createCommentVNode("",!0)]),_:1},8,["onDrop"]))])):(S.openBlock(),S.createElementBlock(S.Fragment,{key:1},[S.createElementVNode("div",Ab,[(S.openBlock(),S.createElementBlock("svg",kb,f[12]||(f[12]=[S.createElementVNode("path",{d:"M7.33333 13.1667C10.2789 13.1667 12.6667 10.7789 12.6667 7.83333C12.6667 4.88781 10.2789 2.5 7.33333 2.5C4.38781 2.5 2 4.88781 2 7.83333C2 10.7789 4.38781 13.1667 7.33333 13.1667Z",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),S.createElementVNode("path",{d:"M13.9995 14.5L11.1328 11.6333",stroke:"#6B7280","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))),S.withDirectives(S.createElementVNode("input",{title:"value",placeholder:"Введіть назву шару...","onUpdate:modelValue":f[4]||(f[4]=N=>k.search=N),type:"text",class:"py-[7px] ps-8 pe-8 block w-full bg-gray-100 border-transparent rounded-lg text-sm focus:bg-white focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:bg-neutral-800 dark:focus:ring-neutral-600",onKeyup:f[5]||(f[5]=S.withKeys((...N)=>P.onEnter&&P.onEnter(...N),["enter"]))},null,544),[[S.vModelText,k.search]]),S.createVNode(R,{class:"absolute top-1/2 left-[8px] w-[16px] h-[16px]",style:{transform:"translate(0, -50%)"}}),k.search?(S.openBlock(),S.createBlock(H,{key:0,class:"absolute top-1/2 right-[10px] w-[16px] h-[16px] cursor-pointer",style:{transform:"translate(0, -50%)"},onClick:P.clearSearch},null,8,["onClick"])):S.createCommentVNode("",!0)]),k.categories?(S.openBlock(),S.createElementBlock("div",Tb,[k.search?(S.openBlock(),S.createElementBlock(S.Fragment,{key:0},[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(P.searchedLayers,(N,K)=>(S.openBlock(),S.createBlock(M,{key:K,layer:N,map:_.map,selectedLayers:k.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128)),P.searchedLayers.length===0?(S.openBlock(),S.createElementBlock("div",Cb," Нічого не знайдено ")):S.createCommentVNode("",!0)],64)):(S.openBlock(),S.createElementBlock(S.Fragment,{key:1},[!k.categories||Object.keys(k.categories).length===0?(S.openBlock(),S.createElementBlock("div",Eb," Каталог порожній ")):(S.openBlock(!0),S.createElementBlock(S.Fragment,{key:1},S.renderList(Object.keys(k.categories),N=>(S.openBlock(),S.createElementBlock("div",{key:N},[S.createElementVNode("div",{class:"hover:bg-gray-100 focus:bg-gray-100 px-2.5 cursor-pointer p-[8px] rounded-lg flex justify-between items-center",onClick:K=>P.selectCategory(N)},[S.createElementVNode("div",Ib,[S.createVNode(C,{class:S.normalizeClass({"rotate-up":N===k.selectedCategory,"rotate-down":N!==k.selectedCategory})},null,8,["class"]),S.createElementVNode("div",{class:"max-w-[260px] text-[14px] text-[#4b5563]",title:N},S.toDisplayString(N),9,Mb)]),S.createElementVNode("div",Lb,S.toDisplayString(P.formatNumber(k.categories[N].length)),1)],8,Pb),S.withDirectives(S.createElementVNode("div",null,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(k.categories[N],(K,ie)=>(S.openBlock(),S.createBlock(M,{key:ie,layer:K,map:_.map,selectedLayers:k.selectedLayers,onSelect:P.addToSelected,onRemove:P.handleRemoveFromCatalog},null,8,["layer","map","selectedLayers","onSelect","onRemove"]))),128))],512),[[S.vShow,N===k.selectedCategory]])]))),128))],64))])):S.createCommentVNode("",!0)],64))])}const zb=fr(Qx,[["render",Rb],["__scopeId","data-v-40ac73af"]]);function Ph(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var js=Ph();function cf(d){js=d}var Ha={exec:()=>null};function Gt(d,f=""){let _=typeof d=="string"?d:d.source;const v={replace:(k,P)=>{let x=typeof P=="string"?P:P.source;return x=x.replace(Si.caret,"$1"),_=_.replace(k,x),v},getRegex:()=>new RegExp(_,f)};return v}var Si={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:d=>new RegExp(`^( {0,3}${d})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:d=>new RegExp(`^ {0,${Math.min(3,d-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:d=>new RegExp(`^ {0,${Math.min(3,d-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:d=>new RegExp(`^ {0,${Math.min(3,d-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:d=>new RegExp(`^ {0,${Math.min(3,d-1)}}#`),htmlBeginRegex:d=>new RegExp(`^ {0,${Math.min(3,d-1)}}<(?:[a-z].*>|!--)`,"i")},Db=/^(?:[ \t]*(?:\n|$))+/,Bb=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Vb=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Wa=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ob=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ih=/(?:[*+-]|\d{1,9}[.)])/,uf=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,hf=Gt(uf).replace(/bull/g,Ih).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Fb=Gt(uf).replace(/bull/g,Ih).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Mh=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Nb=/^[^\n]+/,Lh=/(?!\s*\])(?:\\.|[^\[\]\\])+/,qb=Gt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Lh).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ub=Gt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ih).getRegex(),wc="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Rh=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,jb=Gt("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Rh).replace("tag",wc).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),pf=Gt(Mh).replace("hr",Wa).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",wc).getRegex(),Hb=Gt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",pf).getRegex(),zh={blockquote:Hb,code:Bb,def:qb,fences:Vb,heading:Ob,hr:Wa,html:jb,lheading:hf,list:Ub,newline:Db,paragraph:pf,table:Ha,text:Nb},df=Gt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Wa).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",wc).getRegex(),Wb={...zh,lheading:Fb,table:df,paragraph:Gt(Mh).replace("hr",Wa).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",df).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",wc).getRegex()},Zb={...zh,html:Gt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Rh).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ha,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Gt(Mh).replace("hr",Wa).replace("heading",` *#{1,6} *[^
|
|
747
|
-
]`).replace("lheading",hf).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Kb=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Gb=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ff=/^( {2,}|\\)\n(?!\s*$)/,Jb=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Sc=/[\p{P}\p{S}]/u,Dh=/[\s\p{P}\p{S}]/u,mf=/[^\s\p{P}\p{S}]/u,Xb=Gt(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Dh).getRegex(),gf=/(?!~)[\p{P}\p{S}]/u,Qb=/(?!~)[\s\p{P}\p{S}]/u,Yb=/(?:[^\s\p{P}\p{S}]|~)/u,$b=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,yf=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,e1=Gt(yf,"u").replace(/punct/g,Sc).getRegex(),t1=Gt(yf,"u").replace(/punct/g,gf).getRegex(),_f="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",r1=Gt(_f,"gu").replace(/notPunctSpace/g,mf).replace(/punctSpace/g,Dh).replace(/punct/g,Sc).getRegex(),i1=Gt(_f,"gu").replace(/notPunctSpace/g,Yb).replace(/punctSpace/g,Qb).replace(/punct/g,gf).getRegex(),n1=Gt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,mf).replace(/punctSpace/g,Dh).replace(/punct/g,Sc).getRegex(),s1=Gt(/\\(punct)/,"gu").replace(/punct/g,Sc).getRegex(),o1=Gt(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),a1=Gt(Rh).replace("(?:-->|$)","-->").getRegex(),l1=Gt("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",a1).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ac=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,c1=Gt(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Ac).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),xf=Gt(/^!?\[(label)\]\[(ref)\]/).replace("label",Ac).replace("ref",Lh).getRegex(),bf=Gt(/^!?\[(ref)\](?:\[\])?/).replace("ref",Lh).getRegex(),u1=Gt("reflink|nolink(?!\\()","g").replace("reflink",xf).replace("nolink",bf).getRegex(),Bh={_backpedal:Ha,anyPunctuation:s1,autolink:o1,blockSkip:$b,br:ff,code:Gb,del:Ha,emStrongLDelim:e1,emStrongRDelimAst:r1,emStrongRDelimUnd:n1,escape:Kb,link:c1,nolink:bf,punctuation:Xb,reflink:xf,reflinkSearch:u1,tag:l1,text:Jb,url:Ha},h1={...Bh,link:Gt(/^!?\[(label)\]\((.*?)\)/).replace("label",Ac).getRegex(),reflink:Gt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ac).getRegex()},Vh={...Bh,emStrongRDelimAst:i1,emStrongLDelim:t1,url:Gt(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},p1={...Vh,br:Gt(ff).replace("{2,}","*").getRegex(),text:Gt(Vh.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},kc={normal:zh,gfm:Wb,pedantic:Zb},Za={normal:Bh,gfm:Vh,breaks:p1,pedantic:h1},d1={"&":"&","<":"<",">":">",'"':""","'":"'"},vf=d=>d1[d];function An(d,f){if(f){if(Si.escapeTest.test(d))return d.replace(Si.escapeReplace,vf)}else if(Si.escapeTestNoEncode.test(d))return d.replace(Si.escapeReplaceNoEncode,vf);return d}function wf(d){try{d=encodeURI(d).replace(Si.percentDecode,"%")}catch{return null}return d}function Sf(d,f){var P;const _=d.replace(Si.findPipe,(x,s,B)=>{let z=!1,R=s;for(;--R>=0&&B[R]==="\\";)z=!z;return z?"|":" |"}),v=_.split(Si.splitPipe);let k=0;if(v[0].trim()||v.shift(),v.length>0&&!((P=v.at(-1))!=null&&P.trim())&&v.pop(),f)if(v.length>f)v.splice(f);else for(;v.length<f;)v.push("");for(;k<v.length;k++)v[k]=v[k].trim().replace(Si.slashPipe,"|");return v}function Ka(d,f,_){const v=d.length;if(v===0)return"";let k=0;for(;k<v&&d.charAt(v-k-1)===f;)k++;return d.slice(0,v-k)}function f1(d,f){if(d.indexOf(f[1])===-1)return-1;let _=0;for(let v=0;v<d.length;v++)if(d[v]==="\\")v++;else if(d[v]===f[0])_++;else if(d[v]===f[1]&&(_--,_<0))return v;return _>0?-2:-1}function Af(d,f,_,v,k){const P=f.href,x=f.title||null,s=d[1].replace(k.other.outputLinkReplace,"$1");v.state.inLink=!0;const B={type:d[0].charAt(0)==="!"?"image":"link",raw:_,href:P,title:x,text:s,tokens:v.inlineTokens(s)};return v.state.inLink=!1,B}function m1(d,f,_){const v=d.match(_.other.indentCodeCompensation);if(v===null)return f;const k=v[1];return f.split(`
|
|
748
|
-
`).map(P=>{const x=P.match(_.other.beginningSpace);if(x===null)return P;const[s]=x;return s.length>=k.length?P.slice(k.length):P}).join(`
|
|
749
|
-
`)}var Tc=class{constructor(d){lr(this,"options");lr(this,"rules");lr(this,"lexer");this.options=d||js}space(d){const f=this.rules.block.newline.exec(d);if(f&&f[0].length>0)return{type:"space",raw:f[0]}}code(d){const f=this.rules.block.code.exec(d);if(f){const _=f[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:f[0],codeBlockStyle:"indented",text:this.options.pedantic?_:Ka(_,`
|
|
750
|
-
`)}}}fences(d){const f=this.rules.block.fences.exec(d);if(f){const _=f[0],v=m1(_,f[3]||"",this.rules);return{type:"code",raw:_,lang:f[2]?f[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):f[2],text:v}}}heading(d){const f=this.rules.block.heading.exec(d);if(f){let _=f[2].trim();if(this.rules.other.endingHash.test(_)){const v=Ka(_,"#");(this.options.pedantic||!v||this.rules.other.endingSpaceChar.test(v))&&(_=v.trim())}return{type:"heading",raw:f[0],depth:f[1].length,text:_,tokens:this.lexer.inline(_)}}}hr(d){const f=this.rules.block.hr.exec(d);if(f)return{type:"hr",raw:Ka(f[0],`
|
|
751
|
-
`)}}blockquote(d){const f=this.rules.block.blockquote.exec(d);if(f){let _=Ka(f[0],`
|
|
752
|
-
`).split(`
|
|
753
|
-
`),v="",k="";const P=[];for(;_.length>0;){let x=!1;const s=[];let B;for(B=0;B<_.length;B++)if(this.rules.other.blockquoteStart.test(_[B]))s.push(_[B]),x=!0;else if(!x)s.push(_[B]);else break;_=_.slice(B);const z=s.join(`
|
|
754
|
-
`),R=z.replace(this.rules.other.blockquoteSetextReplace,`
|
|
755
|
-
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");v=v?`${v}
|
|
756
|
-
${z}`:z,k=k?`${k}
|
|
757
|
-
${R}`:R;const H=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(R,P,!0),this.lexer.state.top=H,_.length===0)break;const M=P.at(-1);if((M==null?void 0:M.type)==="code")break;if((M==null?void 0:M.type)==="blockquote"){const C=M,T=C.raw+`
|
|
758
|
-
`+_.join(`
|
|
759
|
-
`),N=this.blockquote(T);P[P.length-1]=N,v=v.substring(0,v.length-C.raw.length)+N.raw,k=k.substring(0,k.length-C.text.length)+N.text;break}else if((M==null?void 0:M.type)==="list"){const C=M,T=C.raw+`
|
|
760
|
-
`+_.join(`
|
|
761
|
-
`),N=this.list(T);P[P.length-1]=N,v=v.substring(0,v.length-M.raw.length)+N.raw,k=k.substring(0,k.length-C.raw.length)+N.raw,_=T.substring(P.at(-1).raw.length).split(`
|
|
762
|
-
`);continue}}return{type:"blockquote",raw:v,tokens:P,text:k}}}list(d){let f=this.rules.block.list.exec(d);if(f){let _=f[1].trim();const v=_.length>1,k={type:"list",raw:"",ordered:v,start:v?+_.slice(0,-1):"",loose:!1,items:[]};_=v?`\\d{1,9}\\${_.slice(-1)}`:`\\${_}`,this.options.pedantic&&(_=v?_:"[*+-]");const P=this.rules.other.listItemRegex(_);let x=!1;for(;d;){let B=!1,z="",R="";if(!(f=P.exec(d))||this.rules.block.hr.test(d))break;z=f[0],d=d.substring(z.length);let H=f[2].split(`
|
|
763
|
-
`,1)[0].replace(this.rules.other.listReplaceTabs,ie=>" ".repeat(3*ie.length)),M=d.split(`
|
|
764
|
-
`,1)[0],C=!H.trim(),T=0;if(this.options.pedantic?(T=2,R=H.trimStart()):C?T=f[1].length+1:(T=f[2].search(this.rules.other.nonSpaceChar),T=T>4?1:T,R=H.slice(T),T+=f[1].length),C&&this.rules.other.blankLine.test(M)&&(z+=M+`
|
|
765
|
-
`,d=d.substring(M.length+1),B=!0),!B){const ie=this.rules.other.nextBulletRegex(T),le=this.rules.other.hrRegex(T),Se=this.rules.other.fencesBeginRegex(T),ee=this.rules.other.headingBeginRegex(T),pe=this.rules.other.htmlBeginRegex(T);for(;d;){const Pe=d.split(`
|
|
766
|
-
`,1)[0];let De;if(M=Pe,this.options.pedantic?(M=M.replace(this.rules.other.listReplaceNesting," "),De=M):De=M.replace(this.rules.other.tabCharGlobal," "),Se.test(M)||ee.test(M)||pe.test(M)||ie.test(M)||le.test(M))break;if(De.search(this.rules.other.nonSpaceChar)>=T||!M.trim())R+=`
|
|
767
|
-
`+De.slice(T);else{if(C||H.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||Se.test(H)||ee.test(H)||le.test(H))break;R+=`
|
|
768
|
-
`+M}!C&&!M.trim()&&(C=!0),z+=Pe+`
|
|
769
|
-
`,d=d.substring(Pe.length+1),H=De.slice(T)}}k.loose||(x?k.loose=!0:this.rules.other.doubleBlankLine.test(z)&&(x=!0));let N=null,K;this.options.gfm&&(N=this.rules.other.listIsTask.exec(R),N&&(K=N[0]!=="[ ] ",R=R.replace(this.rules.other.listReplaceTask,""))),k.items.push({type:"list_item",raw:z,task:!!N,checked:K,loose:!1,text:R,tokens:[]}),k.raw+=z}const s=k.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;k.raw=k.raw.trimEnd();for(let B=0;B<k.items.length;B++)if(this.lexer.state.top=!1,k.items[B].tokens=this.lexer.blockTokens(k.items[B].text,[]),!k.loose){const z=k.items[B].tokens.filter(H=>H.type==="space"),R=z.length>0&&z.some(H=>this.rules.other.anyLine.test(H.raw));k.loose=R}if(k.loose)for(let B=0;B<k.items.length;B++)k.items[B].loose=!0;return k}}html(d){const f=this.rules.block.html.exec(d);if(f)return{type:"html",block:!0,raw:f[0],pre:f[1]==="pre"||f[1]==="script"||f[1]==="style",text:f[0]}}def(d){const f=this.rules.block.def.exec(d);if(f){const _=f[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),v=f[2]?f[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",k=f[3]?f[3].substring(1,f[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):f[3];return{type:"def",tag:_,raw:f[0],href:v,title:k}}}table(d){var x;const f=this.rules.block.table.exec(d);if(!f||!this.rules.other.tableDelimiter.test(f[2]))return;const _=Sf(f[1]),v=f[2].replace(this.rules.other.tableAlignChars,"").split("|"),k=(x=f[3])!=null&&x.trim()?f[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
770
|
-
`):[],P={type:"table",raw:f[0],header:[],align:[],rows:[]};if(_.length===v.length){for(const s of v)this.rules.other.tableAlignRight.test(s)?P.align.push("right"):this.rules.other.tableAlignCenter.test(s)?P.align.push("center"):this.rules.other.tableAlignLeft.test(s)?P.align.push("left"):P.align.push(null);for(let s=0;s<_.length;s++)P.header.push({text:_[s],tokens:this.lexer.inline(_[s]),header:!0,align:P.align[s]});for(const s of k)P.rows.push(Sf(s,P.header.length).map((B,z)=>({text:B,tokens:this.lexer.inline(B),header:!1,align:P.align[z]})));return P}}lheading(d){const f=this.rules.block.lheading.exec(d);if(f)return{type:"heading",raw:f[0],depth:f[2].charAt(0)==="="?1:2,text:f[1],tokens:this.lexer.inline(f[1])}}paragraph(d){const f=this.rules.block.paragraph.exec(d);if(f){const _=f[1].charAt(f[1].length-1)===`
|
|
771
|
-
`?f[1].slice(0,-1):f[1];return{type:"paragraph",raw:f[0],text:_,tokens:this.lexer.inline(_)}}}text(d){const f=this.rules.block.text.exec(d);if(f)return{type:"text",raw:f[0],text:f[0],tokens:this.lexer.inline(f[0])}}escape(d){const f=this.rules.inline.escape.exec(d);if(f)return{type:"escape",raw:f[0],text:f[1]}}tag(d){const f=this.rules.inline.tag.exec(d);if(f)return!this.lexer.state.inLink&&this.rules.other.startATag.test(f[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(f[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(f[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(f[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:f[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:f[0]}}link(d){const f=this.rules.inline.link.exec(d);if(f){const _=f[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(_)){if(!this.rules.other.endAngleBracket.test(_))return;const P=Ka(_.slice(0,-1),"\\");if((_.length-P.length)%2===0)return}else{const P=f1(f[2],"()");if(P===-2)return;if(P>-1){const s=(f[0].indexOf("!")===0?5:4)+f[1].length+P;f[2]=f[2].substring(0,P),f[0]=f[0].substring(0,s).trim(),f[3]=""}}let v=f[2],k="";if(this.options.pedantic){const P=this.rules.other.pedanticHrefTitle.exec(v);P&&(v=P[1],k=P[3])}else k=f[3]?f[3].slice(1,-1):"";return v=v.trim(),this.rules.other.startAngleBracket.test(v)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(_)?v=v.slice(1):v=v.slice(1,-1)),Af(f,{href:v&&v.replace(this.rules.inline.anyPunctuation,"$1"),title:k&&k.replace(this.rules.inline.anyPunctuation,"$1")},f[0],this.lexer,this.rules)}}reflink(d,f){let _;if((_=this.rules.inline.reflink.exec(d))||(_=this.rules.inline.nolink.exec(d))){const v=(_[2]||_[1]).replace(this.rules.other.multipleSpaceGlobal," "),k=f[v.toLowerCase()];if(!k){const P=_[0].charAt(0);return{type:"text",raw:P,text:P}}return Af(_,k,_[0],this.lexer,this.rules)}}emStrong(d,f,_=""){let v=this.rules.inline.emStrongLDelim.exec(d);if(!v||v[3]&&_.match(this.rules.other.unicodeAlphaNumeric))return;if(!(v[1]||v[2]||"")||!_||this.rules.inline.punctuation.exec(_)){const P=[...v[0]].length-1;let x,s,B=P,z=0;const R=v[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(R.lastIndex=0,f=f.slice(-1*d.length+P);(v=R.exec(f))!=null;){if(x=v[1]||v[2]||v[3]||v[4]||v[5]||v[6],!x)continue;if(s=[...x].length,v[3]||v[4]){B+=s;continue}else if((v[5]||v[6])&&P%3&&!((P+s)%3)){z+=s;continue}if(B-=s,B>0)continue;s=Math.min(s,s+B+z);const H=[...v[0]][0].length,M=d.slice(0,P+v.index+H+s);if(Math.min(P,s)%2){const T=M.slice(1,-1);return{type:"em",raw:M,text:T,tokens:this.lexer.inlineTokens(T)}}const C=M.slice(2,-2);return{type:"strong",raw:M,text:C,tokens:this.lexer.inlineTokens(C)}}}}codespan(d){const f=this.rules.inline.code.exec(d);if(f){let _=f[2].replace(this.rules.other.newLineCharGlobal," ");const v=this.rules.other.nonSpaceChar.test(_),k=this.rules.other.startingSpaceChar.test(_)&&this.rules.other.endingSpaceChar.test(_);return v&&k&&(_=_.substring(1,_.length-1)),{type:"codespan",raw:f[0],text:_}}}br(d){const f=this.rules.inline.br.exec(d);if(f)return{type:"br",raw:f[0]}}del(d){const f=this.rules.inline.del.exec(d);if(f)return{type:"del",raw:f[0],text:f[2],tokens:this.lexer.inlineTokens(f[2])}}autolink(d){const f=this.rules.inline.autolink.exec(d);if(f){let _,v;return f[2]==="@"?(_=f[1],v="mailto:"+_):(_=f[1],v=_),{type:"link",raw:f[0],text:_,href:v,tokens:[{type:"text",raw:_,text:_}]}}}url(d){var _;let f;if(f=this.rules.inline.url.exec(d)){let v,k;if(f[2]==="@")v=f[0],k="mailto:"+v;else{let P;do P=f[0],f[0]=((_=this.rules.inline._backpedal.exec(f[0]))==null?void 0:_[0])??"";while(P!==f[0]);v=f[0],f[1]==="www."?k="http://"+f[0]:k=f[0]}return{type:"link",raw:f[0],text:v,href:k,tokens:[{type:"text",raw:v,text:v}]}}}inlineText(d){const f=this.rules.inline.text.exec(d);if(f){const _=this.lexer.state.inRawBlock;return{type:"text",raw:f[0],text:f[0],escaped:_}}}},Fn=class md{constructor(f){lr(this,"tokens");lr(this,"options");lr(this,"state");lr(this,"tokenizer");lr(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=f||js,this.options.tokenizer=this.options.tokenizer||new Tc,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const _={other:Si,block:kc.normal,inline:Za.normal};this.options.pedantic?(_.block=kc.pedantic,_.inline=Za.pedantic):this.options.gfm&&(_.block=kc.gfm,this.options.breaks?_.inline=Za.breaks:_.inline=Za.gfm),this.tokenizer.rules=_}static get rules(){return{block:kc,inline:Za}}static lex(f,_){return new md(_).lex(f)}static lexInline(f,_){return new md(_).inlineTokens(f)}lex(f){f=f.replace(Si.carriageReturn,`
|
|
772
|
-
`),this.blockTokens(f,this.tokens);for(let _=0;_<this.inlineQueue.length;_++){const v=this.inlineQueue[_];this.inlineTokens(v.src,v.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(f,_=[],v=!1){var k,P,x;for(this.options.pedantic&&(f=f.replace(Si.tabCharGlobal," ").replace(Si.spaceLine,""));f;){let s;if((P=(k=this.options.extensions)==null?void 0:k.block)!=null&&P.some(z=>(s=z.call({lexer:this},f,_))?(f=f.substring(s.raw.length),_.push(s),!0):!1))continue;if(s=this.tokenizer.space(f)){f=f.substring(s.raw.length);const z=_.at(-1);s.raw.length===1&&z!==void 0?z.raw+=`
|
|
773
|
-
`:_.push(s);continue}if(s=this.tokenizer.code(f)){f=f.substring(s.raw.length);const z=_.at(-1);(z==null?void 0:z.type)==="paragraph"||(z==null?void 0:z.type)==="text"?(z.raw+=`
|
|
774
|
-
`+s.raw,z.text+=`
|
|
775
|
-
`+s.text,this.inlineQueue.at(-1).src=z.text):_.push(s);continue}if(s=this.tokenizer.fences(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.heading(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.hr(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.blockquote(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.list(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.html(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.def(f)){f=f.substring(s.raw.length);const z=_.at(-1);(z==null?void 0:z.type)==="paragraph"||(z==null?void 0:z.type)==="text"?(z.raw+=`
|
|
776
|
-
`+s.raw,z.text+=`
|
|
777
|
-
`+s.raw,this.inlineQueue.at(-1).src=z.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(f)){f=f.substring(s.raw.length),_.push(s);continue}if(s=this.tokenizer.lheading(f)){f=f.substring(s.raw.length),_.push(s);continue}let B=f;if((x=this.options.extensions)!=null&&x.startBlock){let z=1/0;const R=f.slice(1);let H;this.options.extensions.startBlock.forEach(M=>{H=M.call({lexer:this},R),typeof H=="number"&&H>=0&&(z=Math.min(z,H))}),z<1/0&&z>=0&&(B=f.substring(0,z+1))}if(this.state.top&&(s=this.tokenizer.paragraph(B))){const z=_.at(-1);v&&(z==null?void 0:z.type)==="paragraph"?(z.raw+=`
|
|
778
|
-
`+s.raw,z.text+=`
|
|
779
|
-
`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=z.text):_.push(s),v=B.length!==f.length,f=f.substring(s.raw.length);continue}if(s=this.tokenizer.text(f)){f=f.substring(s.raw.length);const z=_.at(-1);(z==null?void 0:z.type)==="text"?(z.raw+=`
|
|
780
|
-
`+s.raw,z.text+=`
|
|
781
|
-
`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=z.text):_.push(s);continue}if(f){const z="Infinite loop on byte: "+f.charCodeAt(0);if(this.options.silent){console.error(z);break}else throw new Error(z)}}return this.state.top=!0,_}inline(f,_=[]){return this.inlineQueue.push({src:f,tokens:_}),_}inlineTokens(f,_=[]){var s,B,z;let v=f,k=null;if(this.tokens.links){const R=Object.keys(this.tokens.links);if(R.length>0)for(;(k=this.tokenizer.rules.inline.reflinkSearch.exec(v))!=null;)R.includes(k[0].slice(k[0].lastIndexOf("[")+1,-1))&&(v=v.slice(0,k.index)+"["+"a".repeat(k[0].length-2)+"]"+v.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(k=this.tokenizer.rules.inline.anyPunctuation.exec(v))!=null;)v=v.slice(0,k.index)+"++"+v.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(k=this.tokenizer.rules.inline.blockSkip.exec(v))!=null;)v=v.slice(0,k.index)+"["+"a".repeat(k[0].length-2)+"]"+v.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let P=!1,x="";for(;f;){P||(x=""),P=!1;let R;if((B=(s=this.options.extensions)==null?void 0:s.inline)!=null&&B.some(M=>(R=M.call({lexer:this},f,_))?(f=f.substring(R.raw.length),_.push(R),!0):!1))continue;if(R=this.tokenizer.escape(f)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.tag(f)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.link(f)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.reflink(f,this.tokens.links)){f=f.substring(R.raw.length);const M=_.at(-1);R.type==="text"&&(M==null?void 0:M.type)==="text"?(M.raw+=R.raw,M.text+=R.text):_.push(R);continue}if(R=this.tokenizer.emStrong(f,v,x)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.codespan(f)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.br(f)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.del(f)){f=f.substring(R.raw.length),_.push(R);continue}if(R=this.tokenizer.autolink(f)){f=f.substring(R.raw.length),_.push(R);continue}if(!this.state.inLink&&(R=this.tokenizer.url(f))){f=f.substring(R.raw.length),_.push(R);continue}let H=f;if((z=this.options.extensions)!=null&&z.startInline){let M=1/0;const C=f.slice(1);let T;this.options.extensions.startInline.forEach(N=>{T=N.call({lexer:this},C),typeof T=="number"&&T>=0&&(M=Math.min(M,T))}),M<1/0&&M>=0&&(H=f.substring(0,M+1))}if(R=this.tokenizer.inlineText(H)){f=f.substring(R.raw.length),R.raw.slice(-1)!=="_"&&(x=R.raw.slice(-1)),P=!0;const M=_.at(-1);(M==null?void 0:M.type)==="text"?(M.raw+=R.raw,M.text+=R.text):_.push(R);continue}if(f){const M="Infinite loop on byte: "+f.charCodeAt(0);if(this.options.silent){console.error(M);break}else throw new Error(M)}}return _}},Cc=class{constructor(d){lr(this,"options");lr(this,"parser");this.options=d||js}space(d){return""}code({text:d,lang:f,escaped:_}){var P;const v=(P=(f||"").match(Si.notSpaceStart))==null?void 0:P[0],k=d.replace(Si.endingNewline,"")+`
|
|
782
|
-
`;return v?'<pre><code class="language-'+An(v)+'">'+(_?k:An(k,!0))+`</code></pre>
|
|
783
|
-
`:"<pre><code>"+(_?k:An(k,!0))+`</code></pre>
|
|
784
|
-
`}blockquote({tokens:d}){return`<blockquote>
|
|
785
|
-
${this.parser.parse(d)}</blockquote>
|
|
786
|
-
`}html({text:d}){return d}heading({tokens:d,depth:f}){return`<h${f}>${this.parser.parseInline(d)}</h${f}>
|
|
787
|
-
`}hr(d){return`<hr>
|
|
788
|
-
`}list(d){const f=d.ordered,_=d.start;let v="";for(let x=0;x<d.items.length;x++){const s=d.items[x];v+=this.listitem(s)}const k=f?"ol":"ul",P=f&&_!==1?' start="'+_+'"':"";return"<"+k+P+`>
|
|
789
|
-
`+v+"</"+k+`>
|
|
790
|
-
`}listitem(d){var _;let f="";if(d.task){const v=this.checkbox({checked:!!d.checked});d.loose?((_=d.tokens[0])==null?void 0:_.type)==="paragraph"?(d.tokens[0].text=v+" "+d.tokens[0].text,d.tokens[0].tokens&&d.tokens[0].tokens.length>0&&d.tokens[0].tokens[0].type==="text"&&(d.tokens[0].tokens[0].text=v+" "+An(d.tokens[0].tokens[0].text),d.tokens[0].tokens[0].escaped=!0)):d.tokens.unshift({type:"text",raw:v+" ",text:v+" ",escaped:!0}):f+=v+" "}return f+=this.parser.parse(d.tokens,!!d.loose),`<li>${f}</li>
|
|
791
|
-
`}checkbox({checked:d}){return"<input "+(d?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:d}){return`<p>${this.parser.parseInline(d)}</p>
|
|
792
|
-
`}table(d){let f="",_="";for(let k=0;k<d.header.length;k++)_+=this.tablecell(d.header[k]);f+=this.tablerow({text:_});let v="";for(let k=0;k<d.rows.length;k++){const P=d.rows[k];_="";for(let x=0;x<P.length;x++)_+=this.tablecell(P[x]);v+=this.tablerow({text:_})}return v&&(v=`<tbody>${v}</tbody>`),`<table>
|
|
793
|
-
<thead>
|
|
794
|
-
`+f+`</thead>
|
|
795
|
-
`+v+`</table>
|
|
796
|
-
`}tablerow({text:d}){return`<tr>
|
|
797
|
-
${d}</tr>
|
|
798
|
-
`}tablecell(d){const f=this.parser.parseInline(d.tokens),_=d.header?"th":"td";return(d.align?`<${_} align="${d.align}">`:`<${_}>`)+f+`</${_}>
|
|
799
|
-
`}strong({tokens:d}){return`<strong>${this.parser.parseInline(d)}</strong>`}em({tokens:d}){return`<em>${this.parser.parseInline(d)}</em>`}codespan({text:d}){return`<code>${An(d,!0)}</code>`}br(d){return"<br>"}del({tokens:d}){return`<del>${this.parser.parseInline(d)}</del>`}link({href:d,title:f,tokens:_}){const v=this.parser.parseInline(_),k=wf(d);if(k===null)return v;d=k;let P='<a href="'+d+'"';return f&&(P+=' title="'+An(f)+'"'),P+=">"+v+"</a>",P}image({href:d,title:f,text:_,tokens:v}){v&&(_=this.parser.parseInline(v,this.parser.textRenderer));const k=wf(d);if(k===null)return An(_);d=k;let P=`<img src="${d}" alt="${_}"`;return f&&(P+=` title="${An(f)}"`),P+=">",P}text(d){return"tokens"in d&&d.tokens?this.parser.parseInline(d.tokens):"escaped"in d&&d.escaped?d.text:An(d.text)}},Oh=class{strong({text:d}){return d}em({text:d}){return d}codespan({text:d}){return d}del({text:d}){return d}html({text:d}){return d}text({text:d}){return d}link({text:d}){return""+d}image({text:d}){return""+d}br(){return""}},Nn=class gd{constructor(f){lr(this,"options");lr(this,"renderer");lr(this,"textRenderer");this.options=f||js,this.options.renderer=this.options.renderer||new Cc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Oh}static parse(f,_){return new gd(_).parse(f)}static parseInline(f,_){return new gd(_).parseInline(f)}parse(f,_=!0){var k,P;let v="";for(let x=0;x<f.length;x++){const s=f[x];if((P=(k=this.options.extensions)==null?void 0:k.renderers)!=null&&P[s.type]){const z=s,R=this.options.extensions.renderers[z.type].call({parser:this},z);if(R!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(z.type)){v+=R||"";continue}}const B=s;switch(B.type){case"space":{v+=this.renderer.space(B);continue}case"hr":{v+=this.renderer.hr(B);continue}case"heading":{v+=this.renderer.heading(B);continue}case"code":{v+=this.renderer.code(B);continue}case"table":{v+=this.renderer.table(B);continue}case"blockquote":{v+=this.renderer.blockquote(B);continue}case"list":{v+=this.renderer.list(B);continue}case"html":{v+=this.renderer.html(B);continue}case"paragraph":{v+=this.renderer.paragraph(B);continue}case"text":{let z=B,R=this.renderer.text(z);for(;x+1<f.length&&f[x+1].type==="text";)z=f[++x],R+=`
|
|
800
|
-
`+this.renderer.text(z);_?v+=this.renderer.paragraph({type:"paragraph",raw:R,text:R,tokens:[{type:"text",raw:R,text:R,escaped:!0}]}):v+=R;continue}default:{const z='Token with "'+B.type+'" type was not found.';if(this.options.silent)return console.error(z),"";throw new Error(z)}}}return v}parseInline(f,_=this.renderer){var k,P;let v="";for(let x=0;x<f.length;x++){const s=f[x];if((P=(k=this.options.extensions)==null?void 0:k.renderers)!=null&&P[s.type]){const z=this.options.extensions.renderers[s.type].call({parser:this},s);if(z!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(s.type)){v+=z||"";continue}}const B=s;switch(B.type){case"escape":{v+=_.text(B);break}case"html":{v+=_.html(B);break}case"link":{v+=_.link(B);break}case"image":{v+=_.image(B);break}case"strong":{v+=_.strong(B);break}case"em":{v+=_.em(B);break}case"codespan":{v+=_.codespan(B);break}case"br":{v+=_.br(B);break}case"del":{v+=_.del(B);break}case"text":{v+=_.text(B);break}default:{const z='Token with "'+B.type+'" type was not found.';if(this.options.silent)return console.error(z),"";throw new Error(z)}}}return v}},Ec=(Xh=class{constructor(d){lr(this,"options");lr(this,"block");this.options=d||js}preprocess(d){return d}postprocess(d){return d}processAllTokens(d){return d}provideLexer(){return this.block?Fn.lex:Fn.lexInline}provideParser(){return this.block?Nn.parse:Nn.parseInline}},lr(Xh,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"])),Xh),g1=class{constructor(...d){lr(this,"defaults",Ph());lr(this,"options",this.setOptions);lr(this,"parse",this.parseMarkdown(!0));lr(this,"parseInline",this.parseMarkdown(!1));lr(this,"Parser",Nn);lr(this,"Renderer",Cc);lr(this,"TextRenderer",Oh);lr(this,"Lexer",Fn);lr(this,"Tokenizer",Tc);lr(this,"Hooks",Ec);this.use(...d)}walkTokens(d,f){var v,k;let _=[];for(const P of d)switch(_=_.concat(f.call(this,P)),P.type){case"table":{const x=P;for(const s of x.header)_=_.concat(this.walkTokens(s.tokens,f));for(const s of x.rows)for(const B of s)_=_.concat(this.walkTokens(B.tokens,f));break}case"list":{const x=P;_=_.concat(this.walkTokens(x.items,f));break}default:{const x=P;(k=(v=this.defaults.extensions)==null?void 0:v.childTokens)!=null&&k[x.type]?this.defaults.extensions.childTokens[x.type].forEach(s=>{const B=x[s].flat(1/0);_=_.concat(this.walkTokens(B,f))}):x.tokens&&(_=_.concat(this.walkTokens(x.tokens,f)))}}return _}use(...d){const f=this.defaults.extensions||{renderers:{},childTokens:{}};return d.forEach(_=>{const v={..._};if(v.async=this.defaults.async||v.async||!1,_.extensions&&(_.extensions.forEach(k=>{if(!k.name)throw new Error("extension name required");if("renderer"in k){const P=f.renderers[k.name];P?f.renderers[k.name]=function(...x){let s=k.renderer.apply(this,x);return s===!1&&(s=P.apply(this,x)),s}:f.renderers[k.name]=k.renderer}if("tokenizer"in k){if(!k.level||k.level!=="block"&&k.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const P=f[k.level];P?P.unshift(k.tokenizer):f[k.level]=[k.tokenizer],k.start&&(k.level==="block"?f.startBlock?f.startBlock.push(k.start):f.startBlock=[k.start]:k.level==="inline"&&(f.startInline?f.startInline.push(k.start):f.startInline=[k.start]))}"childTokens"in k&&k.childTokens&&(f.childTokens[k.name]=k.childTokens)}),v.extensions=f),_.renderer){const k=this.defaults.renderer||new Cc(this.defaults);for(const P in _.renderer){if(!(P in k))throw new Error(`renderer '${P}' does not exist`);if(["options","parser"].includes(P))continue;const x=P,s=_.renderer[x],B=k[x];k[x]=(...z)=>{let R=s.apply(k,z);return R===!1&&(R=B.apply(k,z)),R||""}}v.renderer=k}if(_.tokenizer){const k=this.defaults.tokenizer||new Tc(this.defaults);for(const P in _.tokenizer){if(!(P in k))throw new Error(`tokenizer '${P}' does not exist`);if(["options","rules","lexer"].includes(P))continue;const x=P,s=_.tokenizer[x],B=k[x];k[x]=(...z)=>{let R=s.apply(k,z);return R===!1&&(R=B.apply(k,z)),R}}v.tokenizer=k}if(_.hooks){const k=this.defaults.hooks||new Ec;for(const P in _.hooks){if(!(P in k))throw new Error(`hook '${P}' does not exist`);if(["options","block"].includes(P))continue;const x=P,s=_.hooks[x],B=k[x];Ec.passThroughHooks.has(P)?k[x]=z=>{if(this.defaults.async)return Promise.resolve(s.call(k,z)).then(H=>B.call(k,H));const R=s.call(k,z);return B.call(k,R)}:k[x]=(...z)=>{let R=s.apply(k,z);return R===!1&&(R=B.apply(k,z)),R}}v.hooks=k}if(_.walkTokens){const k=this.defaults.walkTokens,P=_.walkTokens;v.walkTokens=function(x){let s=[];return s.push(P.call(this,x)),k&&(s=s.concat(k.call(this,x))),s}}this.defaults={...this.defaults,...v}}),this}setOptions(d){return this.defaults={...this.defaults,...d},this}lexer(d,f){return Fn.lex(d,f??this.defaults)}parser(d,f){return Nn.parse(d,f??this.defaults)}parseMarkdown(d){return(_,v)=>{const k={...v},P={...this.defaults,...k},x=this.onError(!!P.silent,!!P.async);if(this.defaults.async===!0&&k.async===!1)return x(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof _>"u"||_===null)return x(new Error("marked(): input parameter is undefined or null"));if(typeof _!="string")return x(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(_)+", string expected"));P.hooks&&(P.hooks.options=P,P.hooks.block=d);const s=P.hooks?P.hooks.provideLexer():d?Fn.lex:Fn.lexInline,B=P.hooks?P.hooks.provideParser():d?Nn.parse:Nn.parseInline;if(P.async)return Promise.resolve(P.hooks?P.hooks.preprocess(_):_).then(z=>s(z,P)).then(z=>P.hooks?P.hooks.processAllTokens(z):z).then(z=>P.walkTokens?Promise.all(this.walkTokens(z,P.walkTokens)).then(()=>z):z).then(z=>B(z,P)).then(z=>P.hooks?P.hooks.postprocess(z):z).catch(x);try{P.hooks&&(_=P.hooks.preprocess(_));let z=s(_,P);P.hooks&&(z=P.hooks.processAllTokens(z)),P.walkTokens&&this.walkTokens(z,P.walkTokens);let R=B(z,P);return P.hooks&&(R=P.hooks.postprocess(R)),R}catch(z){return x(z)}}}onError(d,f){return _=>{if(_.message+=`
|
|
801
|
-
Please report this to https://github.com/markedjs/marked.`,d){const v="<p>An error occurred:</p><pre>"+An(_.message+"",!0)+"</pre>";return f?Promise.resolve(v):v}if(f)return Promise.reject(_);throw _}}},Hs=new g1;function Yt(d,f){return Hs.parse(d,f)}Yt.options=Yt.setOptions=function(d){return Hs.setOptions(d),Yt.defaults=Hs.defaults,cf(Yt.defaults),Yt},Yt.getDefaults=Ph,Yt.defaults=js,Yt.use=function(...d){return Hs.use(...d),Yt.defaults=Hs.defaults,cf(Yt.defaults),Yt},Yt.walkTokens=function(d,f){return Hs.walkTokens(d,f)},Yt.parseInline=Hs.parseInline,Yt.Parser=Nn,Yt.parser=Nn.parse,Yt.Renderer=Cc,Yt.TextRenderer=Oh,Yt.Lexer=Fn,Yt.lexer=Fn.lex,Yt.Tokenizer=Tc,Yt.Hooks=Ec,Yt.parse=Yt,Yt.options,Yt.setOptions,Yt.use,Yt.walkTokens,Yt.parseInline,Nn.parse,Fn.lex;var Pc={exports:{}},Ic={exports:{}},hn={},Vi={},kf;function Oi(){if(kf)return Vi;kf=1,Vi.__esModule=!0,Vi.extend=k,Vi.indexOf=B,Vi.escapeExpression=z,Vi.isEmpty=R,Vi.createFrame=H,Vi.blockParams=M,Vi.appendContextPath=C;var d={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},f=/[&<>"'`=]/g,_=/[&<>"'`=]/;function v(T){return d[T]}function k(T){for(var N=1;N<arguments.length;N++)for(var K in arguments[N])Object.prototype.hasOwnProperty.call(arguments[N],K)&&(T[K]=arguments[N][K]);return T}var P=Object.prototype.toString;Vi.toString=P;var x=function(N){return typeof N=="function"};x(/x/)&&(Vi.isFunction=x=function(T){return typeof T=="function"&&P.call(T)==="[object Function]"}),Vi.isFunction=x;var s=Array.isArray||function(T){return T&&typeof T=="object"?P.call(T)==="[object Array]":!1};Vi.isArray=s;function B(T,N){for(var K=0,ie=T.length;K<ie;K++)if(T[K]===N)return K;return-1}function z(T){if(typeof T!="string"){if(T&&T.toHTML)return T.toHTML();if(T==null)return"";if(!T)return T+"";T=""+T}return _.test(T)?T.replace(f,v):T}function R(T){return!T&&T!==0?!0:!!(s(T)&&T.length===0)}function H(T){var N=k({},T);return N._parent=T,N}function M(T,N){return T.path=N,T}function C(T,N){return(T?T+".":"")+N}return Vi}var Mc={exports:{}},Tf;function pn(){return Tf||(Tf=1,function(d,f){f.__esModule=!0;var _=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function v(k,P){var x=P&&P.loc,s=void 0,B=void 0,z=void 0,R=void 0;x&&(s=x.start.line,B=x.end.line,z=x.start.column,R=x.end.column,k+=" - "+s+":"+z);for(var H=Error.prototype.constructor.call(this,k),M=0;M<_.length;M++)this[_[M]]=H[_[M]];Error.captureStackTrace&&Error.captureStackTrace(this,v);try{x&&(this.lineNumber=s,this.endLineNumber=B,Object.defineProperty?(Object.defineProperty(this,"column",{value:z,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:R,enumerable:!0})):(this.column=z,this.endColumn=R))}catch{}}v.prototype=new Error,f.default=v,d.exports=f.default}(Mc,Mc.exports)),Mc.exports}var Ga={},Lc={exports:{}},Cf;function y1(){return Cf||(Cf=1,function(d,f){f.__esModule=!0;var _=Oi();f.default=function(v){v.registerHelper("blockHelperMissing",function(k,P){var x=P.inverse,s=P.fn;if(k===!0)return s(this);if(k===!1||k==null)return x(this);if(_.isArray(k))return k.length>0?(P.ids&&(P.ids=[P.name]),v.helpers.each(k,P)):x(this);if(P.data&&P.ids){var B=_.createFrame(P.data);B.contextPath=_.appendContextPath(P.data.contextPath,P.name),P={data:B}}return s(k,P)})},d.exports=f.default}(Lc,Lc.exports)),Lc.exports}var Rc={exports:{}},Ef;function _1(){return Ef||(Ef=1,function(d,f){f.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var v=Oi(),k=pn(),P=_(k);f.default=function(x){x.registerHelper("each",function(s,B){if(!B)throw new P.default("Must pass iterator to #each");var z=B.fn,R=B.inverse,H=0,M="",C=void 0,T=void 0;B.data&&B.ids&&(T=v.appendContextPath(B.data.contextPath,B.ids[0])+"."),v.isFunction(s)&&(s=s.call(this)),B.data&&(C=v.createFrame(B.data));function N(ee,pe,Pe){C&&(C.key=ee,C.index=pe,C.first=pe===0,C.last=!!Pe,T&&(C.contextPath=T+ee)),M=M+z(s[ee],{data:C,blockParams:v.blockParams([s[ee],ee],[T+ee,null])})}if(s&&typeof s=="object")if(v.isArray(s))for(var K=s.length;H<K;H++)H in s&&N(H,H,H===s.length-1);else if(typeof Symbol=="function"&&s[Symbol.iterator]){for(var ie=[],le=s[Symbol.iterator](),Se=le.next();!Se.done;Se=le.next())ie.push(Se.value);s=ie;for(var K=s.length;H<K;H++)N(H,H,H===s.length-1)}else(function(){var ee=void 0;Object.keys(s).forEach(function(pe){ee!==void 0&&N(ee,H-1),ee=pe,H++}),ee!==void 0&&N(ee,H-1,!0)})();return H===0&&(M=R(this)),M})},d.exports=f.default}(Rc,Rc.exports)),Rc.exports}var zc={exports:{}},Pf;function x1(){return Pf||(Pf=1,function(d,f){f.__esModule=!0;function _(P){return P&&P.__esModule?P:{default:P}}var v=pn(),k=_(v);f.default=function(P){P.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new k.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},d.exports=f.default}(zc,zc.exports)),zc.exports}var Dc={exports:{}},If;function b1(){return If||(If=1,function(d,f){f.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var v=Oi(),k=pn(),P=_(k);f.default=function(x){x.registerHelper("if",function(s,B){if(arguments.length!=2)throw new P.default("#if requires exactly one argument");return v.isFunction(s)&&(s=s.call(this)),!B.hash.includeZero&&!s||v.isEmpty(s)?B.inverse(this):B.fn(this)}),x.registerHelper("unless",function(s,B){if(arguments.length!=2)throw new P.default("#unless requires exactly one argument");return x.helpers.if.call(this,s,{fn:B.inverse,inverse:B.fn,hash:B.hash})})},d.exports=f.default}(Dc,Dc.exports)),Dc.exports}var Bc={exports:{}},Mf;function v1(){return Mf||(Mf=1,function(d,f){f.__esModule=!0,f.default=function(_){_.registerHelper("log",function(){for(var v=[void 0],k=arguments[arguments.length-1],P=0;P<arguments.length-1;P++)v.push(arguments[P]);var x=1;k.hash.level!=null?x=k.hash.level:k.data&&k.data.level!=null&&(x=k.data.level),v[0]=x,_.log.apply(_,v)})},d.exports=f.default}(Bc,Bc.exports)),Bc.exports}var Vc={exports:{}},Lf;function w1(){return Lf||(Lf=1,function(d,f){f.__esModule=!0,f.default=function(_){_.registerHelper("lookup",function(v,k,P){return v&&P.lookupProperty(v,k)})},d.exports=f.default}(Vc,Vc.exports)),Vc.exports}var Oc={exports:{}},Rf;function S1(){return Rf||(Rf=1,function(d,f){f.__esModule=!0;function _(x){return x&&x.__esModule?x:{default:x}}var v=Oi(),k=pn(),P=_(k);f.default=function(x){x.registerHelper("with",function(s,B){if(arguments.length!=2)throw new P.default("#with requires exactly one argument");v.isFunction(s)&&(s=s.call(this));var z=B.fn;if(v.isEmpty(s))return B.inverse(this);var R=B.data;return B.data&&B.ids&&(R=v.createFrame(B.data),R.contextPath=v.appendContextPath(B.data.contextPath,B.ids[0])),z(s,{data:R,blockParams:v.blockParams([s],[R&&R.contextPath])})})},d.exports=f.default}(Oc,Oc.exports)),Oc.exports}var zf;function Df(){if(zf)return Ga;zf=1,Ga.__esModule=!0,Ga.registerDefaultHelpers=N,Ga.moveHelperToHooks=K;function d(ie){return ie&&ie.__esModule?ie:{default:ie}}var f=y1(),_=d(f),v=_1(),k=d(v),P=x1(),x=d(P),s=b1(),B=d(s),z=v1(),R=d(z),H=w1(),M=d(H),C=S1(),T=d(C);function N(ie){_.default(ie),k.default(ie),x.default(ie),B.default(ie),R.default(ie),M.default(ie),T.default(ie)}function K(ie,le,Se){ie.helpers[le]&&(ie.hooks[le]=ie.helpers[le],Se||delete ie.helpers[le])}return Ga}var Fc={},Nc={exports:{}},Bf;function A1(){return Bf||(Bf=1,function(d,f){f.__esModule=!0;var _=Oi();f.default=function(v){v.registerDecorator("inline",function(k,P,x,s){var B=k;return P.partials||(P.partials={},B=function(z,R){var H=x.partials;x.partials=_.extend({},H,P.partials);var M=k(z,R);return x.partials=H,M}),P.partials[s.args[0]]=s.fn,B})},d.exports=f.default}(Nc,Nc.exports)),Nc.exports}var Vf;function k1(){if(Vf)return Fc;Vf=1,Fc.__esModule=!0,Fc.registerDefaultDecorators=v;function d(k){return k&&k.__esModule?k:{default:k}}var f=A1(),_=d(f);function v(k){_.default(k)}return Fc}var qc={exports:{}},Of;function Ff(){return Of||(Of=1,function(d,f){f.__esModule=!0;var _=Oi(),v={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(P){if(typeof P=="string"){var x=_.indexOf(v.methodMap,P.toLowerCase());x>=0?P=x:P=parseInt(P,10)}return P},log:function(P){if(P=v.lookupLevel(P),typeof console<"u"&&v.lookupLevel(v.level)<=P){var x=v.methodMap[P];console[x]||(x="log");for(var s=arguments.length,B=Array(s>1?s-1:0),z=1;z<s;z++)B[z-1]=arguments[z];console[x].apply(console,B)}}};f.default=v,d.exports=f.default}(qc,qc.exports)),qc.exports}var Fo={},Uc={},Nf;function T1(){if(Nf)return Uc;Nf=1,Uc.__esModule=!0,Uc.createNewLookupObject=f;var d=Oi();function f(){for(var _=arguments.length,v=Array(_),k=0;k<_;k++)v[k]=arguments[k];return d.extend.apply(void 0,[Object.create(null)].concat(v))}return Uc}var qf;function Uf(){if(qf)return Fo;qf=1,Fo.__esModule=!0,Fo.createProtoAccessControl=P,Fo.resultIsAllowed=x,Fo.resetLoggedProperties=z;function d(R){return R&&R.__esModule?R:{default:R}}var f=T1(),_=Ff(),v=d(_),k=Object.create(null);function P(R){var H=Object.create(null);H.constructor=!1,H.__defineGetter__=!1,H.__defineSetter__=!1,H.__lookupGetter__=!1;var M=Object.create(null);return M.__proto__=!1,{properties:{whitelist:f.createNewLookupObject(M,R.allowedProtoProperties),defaultValue:R.allowProtoPropertiesByDefault},methods:{whitelist:f.createNewLookupObject(H,R.allowedProtoMethods),defaultValue:R.allowProtoMethodsByDefault}}}function x(R,H,M){return s(typeof R=="function"?H.methods:H.properties,M)}function s(R,H){return R.whitelist[H]!==void 0?R.whitelist[H]===!0:R.defaultValue!==void 0?R.defaultValue:(B(H),!1)}function B(R){k[R]!==!0&&(k[R]=!0,v.default.log("error",'Handlebars: Access has been denied to resolve the property "'+R+`" because it is not an "own property" of its parent.
|
|
802
|
-
You can add a runtime option to disable the check or this warning:
|
|
803
|
-
See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}function z(){Object.keys(k).forEach(function(R){delete k[R]})}return Fo}var jf;function Fh(){if(jf)return hn;jf=1,hn.__esModule=!0,hn.HandlebarsEnvironment=T;function d(K){return K&&K.__esModule?K:{default:K}}var f=Oi(),_=pn(),v=d(_),k=Df(),P=k1(),x=Ff(),s=d(x),B=Uf(),z="4.7.8";hn.VERSION=z;var R=8;hn.COMPILER_REVISION=R;var H=7;hn.LAST_COMPATIBLE_COMPILER_REVISION=H;var M={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};hn.REVISION_CHANGES=M;var C="[object Object]";function T(K,ie,le){this.helpers=K||{},this.partials=ie||{},this.decorators=le||{},k.registerDefaultHelpers(this),P.registerDefaultDecorators(this)}T.prototype={constructor:T,logger:s.default,log:s.default.log,registerHelper:function(ie,le){if(f.toString.call(ie)===C){if(le)throw new v.default("Arg not supported with multiple helpers");f.extend(this.helpers,ie)}else this.helpers[ie]=le},unregisterHelper:function(ie){delete this.helpers[ie]},registerPartial:function(ie,le){if(f.toString.call(ie)===C)f.extend(this.partials,ie);else{if(typeof le>"u")throw new v.default('Attempting to register a partial called "'+ie+'" as undefined');this.partials[ie]=le}},unregisterPartial:function(ie){delete this.partials[ie]},registerDecorator:function(ie,le){if(f.toString.call(ie)===C){if(le)throw new v.default("Arg not supported with multiple decorators");f.extend(this.decorators,ie)}else this.decorators[ie]=le},unregisterDecorator:function(ie){delete this.decorators[ie]},resetLoggedPropertyAccesses:function(){B.resetLoggedProperties()}};var N=s.default.log;return hn.log=N,hn.createFrame=f.createFrame,hn.logger=s.default,hn}var jc={exports:{}},Hf;function C1(){return Hf||(Hf=1,function(d,f){f.__esModule=!0;function _(v){this.string=v}_.prototype.toString=_.prototype.toHTML=function(){return""+this.string},f.default=_,d.exports=f.default}(jc,jc.exports)),jc.exports}var qn={},Hc={},Wf;function E1(){if(Wf)return Hc;Wf=1,Hc.__esModule=!0,Hc.wrapHelper=d;function d(f,_){if(typeof f!="function")return f;var v=function(){var P=arguments[arguments.length-1];return arguments[arguments.length-1]=_(P),f.apply(this,arguments)};return v}return Hc}var Zf;function P1(){if(Zf)return qn;Zf=1,qn.__esModule=!0,qn.checkRevision=R,qn.template=H,qn.wrapProgram=M,qn.resolvePartial=C,qn.invokePartial=T,qn.noop=N;function d(ee){return ee&&ee.__esModule?ee:{default:ee}}function f(ee){if(ee&&ee.__esModule)return ee;var pe={};if(ee!=null)for(var Pe in ee)Object.prototype.hasOwnProperty.call(ee,Pe)&&(pe[Pe]=ee[Pe]);return pe.default=ee,pe}var _=Oi(),v=f(_),k=pn(),P=d(k),x=Fh(),s=Df(),B=E1(),z=Uf();function R(ee){var pe=ee&&ee[0]||1,Pe=x.COMPILER_REVISION;if(!(pe>=x.LAST_COMPATIBLE_COMPILER_REVISION&&pe<=x.COMPILER_REVISION))if(pe<x.LAST_COMPATIBLE_COMPILER_REVISION){var De=x.REVISION_CHANGES[Pe],Ze=x.REVISION_CHANGES[pe];throw new P.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+De+") or downgrade your runtime to an older version ("+Ze+").")}else throw new P.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+ee[1]+").")}function H(ee,pe){if(!pe)throw new P.default("No environment passed to template");if(!ee||!ee.main)throw new P.default("Unknown template object: "+typeof ee);ee.main.decorator=ee.main_d,pe.VM.checkRevision(ee.compiler);var Pe=ee.compiler&&ee.compiler[0]===7;function De(rt,Je,it){it.hash&&(Je=v.extend({},Je,it.hash),it.ids&&(it.ids[0]=!0)),rt=pe.VM.resolvePartial.call(this,rt,Je,it);var bt=v.extend({},it,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),It=pe.VM.invokePartial.call(this,rt,Je,bt);if(It==null&&pe.compile&&(it.partials[it.name]=pe.compile(rt,ee.compilerOptions,pe),It=it.partials[it.name](Je,bt)),It!=null){if(it.indent){for(var mr=It.split(`
|
|
804
|
-
`),Sr=0,Ai=mr.length;Sr<Ai&&!(!mr[Sr]&&Sr+1===Ai);Sr++)mr[Sr]=it.indent+mr[Sr];It=mr.join(`
|
|
805
|
-
`)}return It}else throw new P.default("The partial "+it.name+" could not be compiled when running in runtime-only mode")}var Ze={strict:function(Je,it,bt){if(!Je||!(it in Je))throw new P.default('"'+it+'" not defined in '+Je,{loc:bt});return Ze.lookupProperty(Je,it)},lookupProperty:function(Je,it){var bt=Je[it];if(bt==null||Object.prototype.hasOwnProperty.call(Je,it)||z.resultIsAllowed(bt,Ze.protoAccessControl,it))return bt},lookup:function(Je,it){for(var bt=Je.length,It=0;It<bt;It++){var mr=Je[It]&&Ze.lookupProperty(Je[It],it);if(mr!=null)return Je[It][it]}},lambda:function(Je,it){return typeof Je=="function"?Je.call(it):Je},escapeExpression:v.escapeExpression,invokePartial:De,fn:function(Je){var it=ee[Je];return it.decorator=ee[Je+"_d"],it},programs:[],program:function(Je,it,bt,It,mr){var Sr=this.programs[Je],Ai=this.fn(Je);return it||mr||It||bt?Sr=M(this,Je,Ai,it,bt,It,mr):Sr||(Sr=this.programs[Je]=M(this,Je,Ai)),Sr},data:function(Je,it){for(;Je&&it--;)Je=Je._parent;return Je},mergeIfNeeded:function(Je,it){var bt=Je||it;return Je&&it&&Je!==it&&(bt=v.extend({},it,Je)),bt},nullContext:Object.seal({}),noop:pe.VM.noop,compilerInfo:ee.compiler};function gt(rt){var Je=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],it=Je.data;gt._setup(Je),!Je.partial&&ee.useData&&(it=K(rt,it));var bt=void 0,It=ee.useBlockParams?[]:void 0;ee.useDepths&&(Je.depths?bt=rt!=Je.depths[0]?[rt].concat(Je.depths):Je.depths:bt=[rt]);function mr(Sr){return""+ee.main(Ze,Sr,Ze.helpers,Ze.partials,it,It,bt)}return mr=ie(ee.main,mr,Ze,Je.depths||[],it,It),mr(rt,Je)}return gt.isTop=!0,gt._setup=function(rt){if(rt.partial)Ze.protoAccessControl=rt.protoAccessControl,Ze.helpers=rt.helpers,Ze.partials=rt.partials,Ze.decorators=rt.decorators,Ze.hooks=rt.hooks;else{var Je=v.extend({},pe.helpers,rt.helpers);le(Je,Ze),Ze.helpers=Je,ee.usePartial&&(Ze.partials=Ze.mergeIfNeeded(rt.partials,pe.partials)),(ee.usePartial||ee.useDecorators)&&(Ze.decorators=v.extend({},pe.decorators,rt.decorators)),Ze.hooks={},Ze.protoAccessControl=z.createProtoAccessControl(rt);var it=rt.allowCallsToHelperMissing||Pe;s.moveHelperToHooks(Ze,"helperMissing",it),s.moveHelperToHooks(Ze,"blockHelperMissing",it)}},gt._child=function(rt,Je,it,bt){if(ee.useBlockParams&&!it)throw new P.default("must pass block params");if(ee.useDepths&&!bt)throw new P.default("must pass parent depths");return M(Ze,rt,ee[rt],Je,0,it,bt)},gt}function M(ee,pe,Pe,De,Ze,gt,rt){function Je(it){var bt=arguments.length<=1||arguments[1]===void 0?{}:arguments[1],It=rt;return rt&&it!=rt[0]&&!(it===ee.nullContext&&rt[0]===null)&&(It=[it].concat(rt)),Pe(ee,it,ee.helpers,ee.partials,bt.data||De,gt&&[bt.blockParams].concat(gt),It)}return Je=ie(Pe,Je,ee,rt,De,gt),Je.program=pe,Je.depth=rt?rt.length:0,Je.blockParams=Ze||0,Je}function C(ee,pe,Pe){return ee?!ee.call&&!Pe.name&&(Pe.name=ee,ee=Pe.partials[ee]):Pe.name==="@partial-block"?ee=Pe.data["partial-block"]:ee=Pe.partials[Pe.name],ee}function T(ee,pe,Pe){var De=Pe.data&&Pe.data["partial-block"];Pe.partial=!0,Pe.ids&&(Pe.data.contextPath=Pe.ids[0]||Pe.data.contextPath);var Ze=void 0;if(Pe.fn&&Pe.fn!==N&&function(){Pe.data=x.createFrame(Pe.data);var gt=Pe.fn;Ze=Pe.data["partial-block"]=function(Je){var it=arguments.length<=1||arguments[1]===void 0?{}:arguments[1];return it.data=x.createFrame(it.data),it.data["partial-block"]=De,gt(Je,it)},gt.partials&&(Pe.partials=v.extend({},Pe.partials,gt.partials))}(),ee===void 0&&Ze&&(ee=Ze),ee===void 0)throw new P.default("The partial "+Pe.name+" could not be found");if(ee instanceof Function)return ee(pe,Pe)}function N(){return""}function K(ee,pe){return(!pe||!("root"in pe))&&(pe=pe?x.createFrame(pe):{},pe.root=ee),pe}function ie(ee,pe,Pe,De,Ze,gt){if(ee.decorator){var rt={};pe=ee.decorator(pe,rt,Pe,De&&De[0],Ze,gt,De),v.extend(pe,rt)}return pe}function le(ee,pe){Object.keys(ee).forEach(function(Pe){var De=ee[Pe];ee[Pe]=Se(De,pe)})}function Se(ee,pe){var Pe=pe.lookupProperty;return B.wrapHelper(ee,function(De){return v.extend({lookupProperty:Pe},De)})}return qn}var Wc={exports:{}},Kf;function Gf(){return Kf||(Kf=1,function(d,f){f.__esModule=!0,f.default=function(_){(function(){typeof globalThis!="object"&&(Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__)})();var v=globalThis.Handlebars;_.noConflict=function(){return globalThis.Handlebars===_&&(globalThis.Handlebars=v),_}},d.exports=f.default}(Wc,Wc.exports)),Wc.exports}var Jf;function I1(){return Jf||(Jf=1,function(d,f){f.__esModule=!0;function _(le){return le&&le.__esModule?le:{default:le}}function v(le){if(le&&le.__esModule)return le;var Se={};if(le!=null)for(var ee in le)Object.prototype.hasOwnProperty.call(le,ee)&&(Se[ee]=le[ee]);return Se.default=le,Se}var k=Fh(),P=v(k),x=C1(),s=_(x),B=pn(),z=_(B),R=Oi(),H=v(R),M=P1(),C=v(M),T=Gf(),N=_(T);function K(){var le=new P.HandlebarsEnvironment;return H.extend(le,P),le.SafeString=s.default,le.Exception=z.default,le.Utils=H,le.escapeExpression=H.escapeExpression,le.VM=C,le.template=function(Se){return C.template(Se,le)},le}var ie=K();ie.create=K,N.default(ie),ie.default=ie,f.default=ie,d.exports=f.default}(Ic,Ic.exports)),Ic.exports}var Zc={exports:{}},Xf;function Qf(){return Xf||(Xf=1,function(d,f){f.__esModule=!0;var _={helpers:{helperExpression:function(k){return k.type==="SubExpression"||(k.type==="MustacheStatement"||k.type==="BlockStatement")&&!!(k.params&&k.params.length||k.hash)},scopedId:function(k){return/^\.|this\b/.test(k.original)},simpleId:function(k){return k.parts.length===1&&!_.helpers.scopedId(k)&&!k.depth}}};f.default=_,d.exports=f.default}(Zc,Zc.exports)),Zc.exports}var No={},Kc={exports:{}},Yf;function M1(){return Yf||(Yf=1,function(d,f){f.__esModule=!0;var _=function(){var v={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,0],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(s,B,z,R,H,M,C){var T=M.length-1;switch(H){case 1:return M[T-1];case 2:this.$=R.prepareProgram(M[T]);break;case 3:this.$=M[T];break;case 4:this.$=M[T];break;case 5:this.$=M[T];break;case 6:this.$=M[T];break;case 7:this.$=M[T];break;case 8:this.$=M[T];break;case 9:this.$={type:"CommentStatement",value:R.stripComment(M[T]),strip:R.stripFlags(M[T],M[T]),loc:R.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:M[T],value:M[T],loc:R.locInfo(this._$)};break;case 11:this.$=R.prepareRawBlock(M[T-2],M[T-1],M[T],this._$);break;case 12:this.$={path:M[T-3],params:M[T-2],hash:M[T-1]};break;case 13:this.$=R.prepareBlock(M[T-3],M[T-2],M[T-1],M[T],!1,this._$);break;case 14:this.$=R.prepareBlock(M[T-3],M[T-2],M[T-1],M[T],!0,this._$);break;case 15:this.$={open:M[T-5],path:M[T-4],params:M[T-3],hash:M[T-2],blockParams:M[T-1],strip:R.stripFlags(M[T-5],M[T])};break;case 16:this.$={path:M[T-4],params:M[T-3],hash:M[T-2],blockParams:M[T-1],strip:R.stripFlags(M[T-5],M[T])};break;case 17:this.$={path:M[T-4],params:M[T-3],hash:M[T-2],blockParams:M[T-1],strip:R.stripFlags(M[T-5],M[T])};break;case 18:this.$={strip:R.stripFlags(M[T-1],M[T-1]),program:M[T]};break;case 19:var N=R.prepareBlock(M[T-2],M[T-1],M[T],M[T],!1,this._$),K=R.prepareProgram([N],M[T-1].loc);K.chained=!0,this.$={strip:M[T-2].strip,program:K,chain:!0};break;case 20:this.$=M[T];break;case 21:this.$={path:M[T-1],strip:R.stripFlags(M[T-2],M[T])};break;case 22:this.$=R.prepareMustache(M[T-3],M[T-2],M[T-1],M[T-4],R.stripFlags(M[T-4],M[T]),this._$);break;case 23:this.$=R.prepareMustache(M[T-3],M[T-2],M[T-1],M[T-4],R.stripFlags(M[T-4],M[T]),this._$);break;case 24:this.$={type:"PartialStatement",name:M[T-3],params:M[T-2],hash:M[T-1],indent:"",strip:R.stripFlags(M[T-4],M[T]),loc:R.locInfo(this._$)};break;case 25:this.$=R.preparePartialBlock(M[T-2],M[T-1],M[T],this._$);break;case 26:this.$={path:M[T-3],params:M[T-2],hash:M[T-1],strip:R.stripFlags(M[T-4],M[T])};break;case 27:this.$=M[T];break;case 28:this.$=M[T];break;case 29:this.$={type:"SubExpression",path:M[T-3],params:M[T-2],hash:M[T-1],loc:R.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:M[T],loc:R.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:R.id(M[T-2]),value:M[T],loc:R.locInfo(this._$)};break;case 32:this.$=R.id(M[T-1]);break;case 33:this.$=M[T];break;case 34:this.$=M[T];break;case 35:this.$={type:"StringLiteral",value:M[T],original:M[T],loc:R.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(M[T]),original:Number(M[T]),loc:R.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:M[T]==="true",original:M[T]==="true",loc:R.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:R.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:R.locInfo(this._$)};break;case 40:this.$=M[T];break;case 41:this.$=M[T];break;case 42:this.$=R.preparePath(!0,M[T],this._$);break;case 43:this.$=R.preparePath(!1,M[T],this._$);break;case 44:M[T-2].push({part:R.id(M[T]),original:M[T],separator:M[T-1]}),this.$=M[T-2];break;case 45:this.$=[{part:R.id(M[T]),original:M[T]}];break;case 46:this.$=[];break;case 47:M[T-1].push(M[T]);break;case 48:this.$=[];break;case 49:M[T-1].push(M[T]);break;case 50:this.$=[];break;case 51:M[T-1].push(M[T]);break;case 58:this.$=[];break;case 59:M[T-1].push(M[T]);break;case 64:this.$=[];break;case 65:M[T-1].push(M[T]);break;case 70:this.$=[];break;case 71:M[T-1].push(M[T]);break;case 78:this.$=[];break;case 79:M[T-1].push(M[T]);break;case 82:this.$=[];break;case 83:M[T-1].push(M[T]);break;case 86:this.$=[];break;case 87:M[T-1].push(M[T]);break;case 90:this.$=[];break;case 91:M[T-1].push(M[T]);break;case 94:this.$=[];break;case 95:M[T-1].push(M[T]);break;case 98:this.$=[M[T]];break;case 99:M[T-1].push(M[T]);break;case 100:this.$=[M[T]];break;case 101:M[T-1].push(M[T]);break}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{15:[2,48],17:39,18:[2,48]},{20:41,56:40,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:44,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:45,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:41,56:48,64:42,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:49,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,50]},{72:[1,35],86:51},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:52,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:53,38:55,39:[1,57],43:56,44:[1,58],45:54,47:[2,54]},{28:59,43:60,44:[1,58],47:[2,56]},{13:62,15:[1,20],18:[1,61]},{33:[2,86],57:63,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:64,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:65,47:[1,66]},{30:67,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:68,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:69,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:70,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:74,33:[2,80],50:71,63:72,64:75,65:[1,43],69:73,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,79]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,50]},{20:74,53:80,54:[2,84],63:81,64:75,65:[1,43],69:82,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:83,47:[1,66]},{47:[2,55]},{4:84,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:85,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:86,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:87,47:[1,66]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:74,33:[2,88],58:88,63:89,64:75,65:[1,43],69:90,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:91,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:92,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,31:93,33:[2,60],63:94,64:75,65:[1,43],69:95,70:76,71:77,72:[1,78],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,66],36:96,63:97,64:75,65:[1,43],69:98,70:76,71:77,72:[1,78],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,22:99,23:[2,52],63:100,64:75,65:[1,43],69:101,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:74,33:[2,92],62:102,63:103,64:75,65:[1,43],69:104,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,105]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:106,72:[1,107],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,108],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,109]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:55,39:[1,57],43:56,44:[1,58],45:111,46:110,47:[2,76]},{33:[2,70],40:112,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,113]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:74,63:115,64:75,65:[1,43],67:114,68:[2,96],69:116,70:76,71:77,72:[1,78],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,117]},{32:118,33:[2,62],74:119,75:[1,120]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:121,74:122,75:[1,120]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,123]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,124]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,108]},{20:74,63:125,64:75,65:[1,43],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:74,33:[2,72],41:126,63:127,64:75,65:[1,43],69:128,70:76,71:77,72:[1,78],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,129]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,130]},{33:[2,63]},{72:[1,132],76:131},{33:[1,133]},{33:[2,69]},{15:[2,12],18:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:134,74:135,75:[1,120]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,137],77:[1,136]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,138]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],54:[2,55],56:[2,20],60:[2,57],73:[2,81],82:[2,85],86:[2,18],90:[2,89],101:[2,53],104:[2,93],110:[2,19],111:[2,77],116:[2,97],119:[2,63],122:[2,69],135:[2,75],136:[2,32]},parseError:function(s,B){throw new Error(s)},parse:function(s){var B=this,z=[0],R=[null],H=[],M=this.table,C="",T=0,N=0;this.lexer.setInput(s),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,typeof this.lexer.yylloc>"u"&&(this.lexer.yylloc={});var K=this.lexer.yylloc;H.push(K);var ie=this.lexer.options&&this.lexer.options.ranges;typeof this.yy.parseError=="function"&&(this.parseError=this.yy.parseError);function le(){var bt;return bt=B.lexer.lex()||1,typeof bt!="number"&&(bt=B.symbols_[bt]||bt),bt}for(var Se,ee,pe,Pe,De={},Ze,gt,rt,Je;;){if(ee=z[z.length-1],this.defaultActions[ee]?pe=this.defaultActions[ee]:((Se===null||typeof Se>"u")&&(Se=le()),pe=M[ee]&&M[ee][Se]),typeof pe>"u"||!pe.length||!pe[0]){var it="";{Je=[];for(Ze in M[ee])this.terminals_[Ze]&&Ze>2&&Je.push("'"+this.terminals_[Ze]+"'");this.lexer.showPosition?it="Parse error on line "+(T+1)+`:
|
|
806
|
-
`+this.lexer.showPosition()+`
|
|
807
|
-
Expecting `+Je.join(", ")+", got '"+(this.terminals_[Se]||Se)+"'":it="Parse error on line "+(T+1)+": Unexpected "+(Se==1?"end of input":"'"+(this.terminals_[Se]||Se)+"'"),this.parseError(it,{text:this.lexer.match,token:this.terminals_[Se]||Se,line:this.lexer.yylineno,loc:K,expected:Je})}}if(pe[0]instanceof Array&&pe.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ee+", token: "+Se);switch(pe[0]){case 1:z.push(Se),R.push(this.lexer.yytext),H.push(this.lexer.yylloc),z.push(pe[1]),Se=null,N=this.lexer.yyleng,C=this.lexer.yytext,T=this.lexer.yylineno,K=this.lexer.yylloc;break;case 2:if(gt=this.productions_[pe[1]][1],De.$=R[R.length-gt],De._$={first_line:H[H.length-(gt||1)].first_line,last_line:H[H.length-1].last_line,first_column:H[H.length-(gt||1)].first_column,last_column:H[H.length-1].last_column},ie&&(De._$.range=[H[H.length-(gt||1)].range[0],H[H.length-1].range[1]]),Pe=this.performAction.call(De,C,N,T,this.yy,pe[1],R,H),typeof Pe<"u")return Pe;gt&&(z=z.slice(0,-1*gt*2),R=R.slice(0,-1*gt),H=H.slice(0,-1*gt)),z.push(this.productions_[pe[1]][0]),R.push(De.$),H.push(De._$),rt=M[z[z.length-2]][z[z.length-1]],z.push(rt);break;case 3:return!0}}return!0}},k=function(){var x={EOF:1,parseError:function(B,z){if(this.yy.parser)this.yy.parser.parseError(B,z);else throw new Error(B)},setInput:function(B){return this._input=B,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var z=B.match(/(?:\r\n?|\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},unput:function(B){var z=B.length,R=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z-1),this.offset-=z;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),R.length-1&&(this.yylineno-=R.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:R?(R.length===H.length?this.yylloc.first_column:0)+H[H.length-R.length].length-R[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-z]),this},more:function(){return this._more=!0,this},less:function(B){this.unput(this.match.slice(B))},pastInput:function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var B=this.pastInput(),z=new Array(B.length+1).join("-");return B+this.upcomingInput()+`
|
|
808
|
-
`+z+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,z,R,H,M;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),T=0;T<C.length&&(R=this._input.match(this.rules[C[T]]),!(R&&(!z||R[0].length>z[0].length)&&(z=R,H=T,!this.options.flex)));T++);return z?(M=z[0].match(/(?:\r\n?|\n).*/g),M&&(this.yylineno+=M.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:M?M[M.length-1].length-M[M.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+z[0].length},this.yytext+=z[0],this.match+=z[0],this.matches=z,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(z[0].length),this.matched+=z[0],B=this.performAction.call(this,this.yy,this,C[H],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),B||void 0):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
809
|
-
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var B=this.next();return typeof B<"u"?B:this.lex()},begin:function(B){this.conditionStack.push(B)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(B){this.begin(B)}};return x.options={},x.performAction=function(B,z,R,H){function M(C,T){return z.yytext=z.yytext.substring(C,z.yyleng-T+C)}switch(R){case 0:if(z.yytext.slice(-2)==="\\\\"?(M(0,1),this.begin("mu")):z.yytext.slice(-1)==="\\"?(M(0,1),this.begin("emu")):this.begin("mu"),z.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),this.conditionStack[this.conditionStack.length-1]==="raw"?15:(M(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(z.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return z.yytext=M(1,2).replace(/\\"/g,'"'),80;case 32:return z.yytext=M(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return z.yytext=z.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},x.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],x.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},x}();v.lexer=k;function P(){this.yy={}}return P.prototype=v,v.Parser=P,new P}();f.default=_,d.exports=f.default}(Kc,Kc.exports)),Kc.exports}var Gc={exports:{}},Jc={exports:{}},$f;function em(){return $f||($f=1,function(d,f){f.__esModule=!0;function _(z){return z&&z.__esModule?z:{default:z}}var v=pn(),k=_(v);function P(){this.parents=[]}P.prototype={constructor:P,mutating:!1,acceptKey:function(R,H){var M=this.accept(R[H]);if(this.mutating){if(M&&!P.prototype[M.type])throw new k.default('Unexpected node type "'+M.type+'" found when accepting '+H+" on "+R.type);R[H]=M}},acceptRequired:function(R,H){if(this.acceptKey(R,H),!R[H])throw new k.default(R.type+" requires "+H)},acceptArray:function(R){for(var H=0,M=R.length;H<M;H++)this.acceptKey(R,H),R[H]||(R.splice(H,1),H--,M--)},accept:function(R){if(R){if(!this[R.type])throw new k.default("Unknown type: "+R.type,R);this.current&&this.parents.unshift(this.current),this.current=R;var H=this[R.type](R);if(this.current=this.parents.shift(),!this.mutating||H)return H;if(H!==!1)return R}},Program:function(R){this.acceptArray(R.body)},MustacheStatement:x,Decorator:x,BlockStatement:s,DecoratorBlock:s,PartialStatement:B,PartialBlockStatement:function(R){B.call(this,R),this.acceptKey(R,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:x,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(R){this.acceptArray(R.pairs)},HashPair:function(R){this.acceptRequired(R,"value")}};function x(z){this.acceptRequired(z,"path"),this.acceptArray(z.params),this.acceptKey(z,"hash")}function s(z){x.call(this,z),this.acceptKey(z,"program"),this.acceptKey(z,"inverse")}function B(z){this.acceptRequired(z,"name"),this.acceptArray(z.params),this.acceptKey(z,"hash")}f.default=P,d.exports=f.default}(Jc,Jc.exports)),Jc.exports}var tm;function L1(){return tm||(tm=1,function(d,f){f.__esModule=!0;function _(R){return R&&R.__esModule?R:{default:R}}var v=em(),k=_(v);function P(){var R=arguments.length<=0||arguments[0]===void 0?{}:arguments[0];this.options=R}P.prototype=new k.default,P.prototype.Program=function(R){var H=!this.options.ignoreStandalone,M=!this.isRootSeen;this.isRootSeen=!0;for(var C=R.body,T=0,N=C.length;T<N;T++){var K=C[T],ie=this.accept(K);if(ie){var le=x(C,T,M),Se=s(C,T,M),ee=ie.openStandalone&&le,pe=ie.closeStandalone&&Se,Pe=ie.inlineStandalone&&le&&Se;ie.close&&B(C,T,!0),ie.open&&z(C,T,!0),H&&Pe&&(B(C,T),z(C,T)&&K.type==="PartialStatement"&&(K.indent=/([ \t]+$)/.exec(C[T-1].original)[1])),H&&ee&&(B((K.program||K.inverse).body),z(C,T)),H&&pe&&(B(C,T),z((K.inverse||K.program).body))}}return R},P.prototype.BlockStatement=P.prototype.DecoratorBlock=P.prototype.PartialBlockStatement=function(R){this.accept(R.program),this.accept(R.inverse);var H=R.program||R.inverse,M=R.program&&R.inverse,C=M,T=M;if(M&&M.chained)for(C=M.body[0].program;T.chained;)T=T.body[T.body.length-1].program;var N={open:R.openStrip.open,close:R.closeStrip.close,openStandalone:s(H.body),closeStandalone:x((C||H).body)};if(R.openStrip.close&&B(H.body,null,!0),M){var K=R.inverseStrip;K.open&&z(H.body,null,!0),K.close&&B(C.body,null,!0),R.closeStrip.open&&z(T.body,null,!0),!this.options.ignoreStandalone&&x(H.body)&&s(C.body)&&(z(H.body),B(C.body))}else R.closeStrip.open&&z(H.body,null,!0);return N},P.prototype.Decorator=P.prototype.MustacheStatement=function(R){return R.strip},P.prototype.PartialStatement=P.prototype.CommentStatement=function(R){var H=R.strip||{};return{inlineStandalone:!0,open:H.open,close:H.close}};function x(R,H,M){H===void 0&&(H=R.length);var C=R[H-1],T=R[H-2];if(!C)return M;if(C.type==="ContentStatement")return(T||!M?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(C.original)}function s(R,H,M){H===void 0&&(H=-1);var C=R[H+1],T=R[H+2];if(!C)return M;if(C.type==="ContentStatement")return(T||!M?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(C.original)}function B(R,H,M){var C=R[H==null?0:H+1];if(!(!C||C.type!=="ContentStatement"||!M&&C.rightStripped)){var T=C.value;C.value=C.value.replace(M?/^\s+/:/^[ \t]*\r?\n?/,""),C.rightStripped=C.value!==T}}function z(R,H,M){var C=R[H==null?R.length-1:H-1];if(!(!C||C.type!=="ContentStatement"||!M&&C.leftStripped)){var T=C.value;return C.value=C.value.replace(M?/\s+$/:/[ \t]+$/,""),C.leftStripped=C.value!==T,C.leftStripped}}f.default=P,d.exports=f.default}(Gc,Gc.exports)),Gc.exports}var Hi={},rm;function R1(){if(rm)return Hi;rm=1,Hi.__esModule=!0,Hi.SourceLocation=k,Hi.id=P,Hi.stripFlags=x,Hi.stripComment=s,Hi.preparePath=B,Hi.prepareMustache=z,Hi.prepareRawBlock=R,Hi.prepareBlock=H,Hi.prepareProgram=M,Hi.preparePartialBlock=C;function d(T){return T&&T.__esModule?T:{default:T}}var f=pn(),_=d(f);function v(T,N){if(N=N.path?N.path.original:N,T.path.original!==N){var K={loc:T.path.loc};throw new _.default(T.path.original+" doesn't match "+N,K)}}function k(T,N){this.source=T,this.start={line:N.first_line,column:N.first_column},this.end={line:N.last_line,column:N.last_column}}function P(T){return/^\[.*\]$/.test(T)?T.substring(1,T.length-1):T}function x(T,N){return{open:T.charAt(2)==="~",close:N.charAt(N.length-3)==="~"}}function s(T){return T.replace(/^\{\{~?!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function B(T,N,K){K=this.locInfo(K);for(var ie=T?"@":"",le=[],Se=0,ee=0,pe=N.length;ee<pe;ee++){var Pe=N[ee].part,De=N[ee].original!==Pe;if(ie+=(N[ee].separator||"")+Pe,!De&&(Pe===".."||Pe==="."||Pe==="this")){if(le.length>0)throw new _.default("Invalid path: "+ie,{loc:K});Pe===".."&&Se++}else le.push(Pe)}return{type:"PathExpression",data:T,depth:Se,parts:le,original:ie,loc:K}}function z(T,N,K,ie,le,Se){var ee=ie.charAt(3)||ie.charAt(2),pe=ee!=="{"&&ee!=="&",Pe=/\*/.test(ie);return{type:Pe?"Decorator":"MustacheStatement",path:T,params:N,hash:K,escaped:pe,strip:le,loc:this.locInfo(Se)}}function R(T,N,K,ie){v(T,K),ie=this.locInfo(ie);var le={type:"Program",body:N,strip:{},loc:ie};return{type:"BlockStatement",path:T.path,params:T.params,hash:T.hash,program:le,openStrip:{},inverseStrip:{},closeStrip:{},loc:ie}}function H(T,N,K,ie,le,Se){ie&&ie.path&&v(T,ie);var ee=/\*/.test(T.open);N.blockParams=T.blockParams;var pe=void 0,Pe=void 0;if(K){if(ee)throw new _.default("Unexpected inverse block on decorator",K);K.chain&&(K.program.body[0].closeStrip=ie.strip),Pe=K.strip,pe=K.program}return le&&(le=pe,pe=N,N=le),{type:ee?"DecoratorBlock":"BlockStatement",path:T.path,params:T.params,hash:T.hash,program:N,inverse:pe,openStrip:T.strip,inverseStrip:Pe,closeStrip:ie&&ie.strip,loc:this.locInfo(Se)}}function M(T,N){if(!N&&T.length){var K=T[0].loc,ie=T[T.length-1].loc;K&&ie&&(N={source:K.source,start:{line:K.start.line,column:K.start.column},end:{line:ie.end.line,column:ie.end.column}})}return{type:"Program",body:T,strip:{},loc:N}}function C(T,N,K,ie){return v(T,K),{type:"PartialBlockStatement",name:T.path,params:T.params,hash:T.hash,program:N,openStrip:T.strip,closeStrip:K&&K.strip,loc:this.locInfo(ie)}}return Hi}var im;function z1(){if(im)return No;im=1,No.__esModule=!0,No.parseWithoutProcessing=R,No.parse=H;function d(M){if(M&&M.__esModule)return M;var C={};if(M!=null)for(var T in M)Object.prototype.hasOwnProperty.call(M,T)&&(C[T]=M[T]);return C.default=M,C}function f(M){return M&&M.__esModule?M:{default:M}}var _=M1(),v=f(_),k=L1(),P=f(k),x=R1(),s=d(x),B=Oi();No.parser=v.default;var z={};B.extend(z,s);function R(M,C){if(M.type==="Program")return M;v.default.yy=z,z.locInfo=function(N){return new z.SourceLocation(C&&C.srcName,N)};var T=v.default.parse(M);return T}function H(M,C){var T=R(M,C),N=new P.default(C);return N.accept(T)}return No}var qo={},nm;function D1(){if(nm)return qo;nm=1,qo.__esModule=!0,qo.Compiler=s,qo.precompile=B,qo.compile=z;function d(M){return M&&M.__esModule?M:{default:M}}var f=pn(),_=d(f),v=Oi(),k=Qf(),P=d(k),x=[].slice;function s(){}s.prototype={compiler:s,equals:function(C){var T=this.opcodes.length;if(C.opcodes.length!==T)return!1;for(var N=0;N<T;N++){var K=this.opcodes[N],ie=C.opcodes[N];if(K.opcode!==ie.opcode||!R(K.args,ie.args))return!1}T=this.children.length;for(var N=0;N<T;N++)if(!this.children[N].equals(C.children[N]))return!1;return!0},guid:0,compile:function(C,T){return this.sourceNode=[],this.opcodes=[],this.children=[],this.options=T,this.stringParams=T.stringParams,this.trackIds=T.trackIds,T.blockParams=T.blockParams||[],T.knownHelpers=v.extend(Object.create(null),{helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},T.knownHelpers),this.accept(C)},compileProgram:function(C){var T=new this.compiler,N=T.compile(C,this.options),K=this.guid++;return this.usePartial=this.usePartial||N.usePartial,this.children[K]=N,this.useDepths=this.useDepths||N.useDepths,K},accept:function(C){if(!this[C.type])throw new _.default("Unknown type: "+C.type,C);this.sourceNode.unshift(C);var T=this[C.type](C);return this.sourceNode.shift(),T},Program:function(C){this.options.blockParams.unshift(C.blockParams);for(var T=C.body,N=T.length,K=0;K<N;K++)this.accept(T[K]);return this.options.blockParams.shift(),this.isSimple=N===1,this.blockParams=C.blockParams?C.blockParams.length:0,this},BlockStatement:function(C){H(C);var T=C.program,N=C.inverse;T=T&&this.compileProgram(T),N=N&&this.compileProgram(N);var K=this.classifySexpr(C);K==="helper"?this.helperSexpr(C,T,N):K==="simple"?(this.simpleSexpr(C),this.opcode("pushProgram",T),this.opcode("pushProgram",N),this.opcode("emptyHash"),this.opcode("blockValue",C.path.original)):(this.ambiguousSexpr(C,T,N),this.opcode("pushProgram",T),this.opcode("pushProgram",N),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(C){var T=C.program&&this.compileProgram(C.program),N=this.setupFullMustacheParams(C,T,void 0),K=C.path;this.useDecorators=!0,this.opcode("registerDecorator",N.length,K.original)},PartialStatement:function(C){this.usePartial=!0;var T=C.program;T&&(T=this.compileProgram(C.program));var N=C.params;if(N.length>1)throw new _.default("Unsupported number of partial arguments: "+N.length,C);N.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):N.push({type:"PathExpression",parts:[],depth:0}));var K=C.name.original,ie=C.name.type==="SubExpression";ie&&this.accept(C.name),this.setupFullMustacheParams(C,T,void 0,!0);var le=C.indent||"";this.options.preventIndent&&le&&(this.opcode("appendContent",le),le=""),this.opcode("invokePartial",ie,K,le),this.opcode("append")},PartialBlockStatement:function(C){this.PartialStatement(C)},MustacheStatement:function(C){this.SubExpression(C),C.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(C){this.DecoratorBlock(C)},ContentStatement:function(C){C.value&&this.opcode("appendContent",C.value)},CommentStatement:function(){},SubExpression:function(C){H(C);var T=this.classifySexpr(C);T==="simple"?this.simpleSexpr(C):T==="helper"?this.helperSexpr(C):this.ambiguousSexpr(C)},ambiguousSexpr:function(C,T,N){var K=C.path,ie=K.parts[0],le=T!=null||N!=null;this.opcode("getContext",K.depth),this.opcode("pushProgram",T),this.opcode("pushProgram",N),K.strict=!0,this.accept(K),this.opcode("invokeAmbiguous",ie,le)},simpleSexpr:function(C){var T=C.path;T.strict=!0,this.accept(T),this.opcode("resolvePossibleLambda")},helperSexpr:function(C,T,N){var K=this.setupFullMustacheParams(C,T,N),ie=C.path,le=ie.parts[0];if(this.options.knownHelpers[le])this.opcode("invokeKnownHelper",K.length,le);else{if(this.options.knownHelpersOnly)throw new _.default("You specified knownHelpersOnly, but used the unknown helper "+le,C);ie.strict=!0,ie.falsy=!0,this.accept(ie),this.opcode("invokeHelper",K.length,ie.original,P.default.helpers.simpleId(ie))}},PathExpression:function(C){this.addDepth(C.depth),this.opcode("getContext",C.depth);var T=C.parts[0],N=P.default.helpers.scopedId(C),K=!C.depth&&!N&&this.blockParamIndex(T);K?this.opcode("lookupBlockParam",K,C.parts):T?C.data?(this.options.data=!0,this.opcode("lookupData",C.depth,C.parts,C.strict)):this.opcode("lookupOnContext",C.parts,C.falsy,C.strict,N):this.opcode("pushContext")},StringLiteral:function(C){this.opcode("pushString",C.value)},NumberLiteral:function(C){this.opcode("pushLiteral",C.value)},BooleanLiteral:function(C){this.opcode("pushLiteral",C.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(C){var T=C.pairs,N=0,K=T.length;for(this.opcode("pushHash");N<K;N++)this.pushParam(T[N].value);for(;N--;)this.opcode("assignToHash",T[N].key);this.opcode("popHash")},opcode:function(C){this.opcodes.push({opcode:C,args:x.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(C){C&&(this.useDepths=!0)},classifySexpr:function(C){var T=P.default.helpers.simpleId(C.path),N=T&&!!this.blockParamIndex(C.path.parts[0]),K=!N&&P.default.helpers.helperExpression(C),ie=!N&&(K||T);if(ie&&!K){var le=C.path.parts[0],Se=this.options;Se.knownHelpers[le]?K=!0:Se.knownHelpersOnly&&(ie=!1)}return K?"helper":ie?"ambiguous":"simple"},pushParams:function(C){for(var T=0,N=C.length;T<N;T++)this.pushParam(C[T])},pushParam:function(C){var T=C.value!=null?C.value:C.original||"";if(this.stringParams)T.replace&&(T=T.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),C.depth&&this.addDepth(C.depth),this.opcode("getContext",C.depth||0),this.opcode("pushStringParam",T,C.type),C.type==="SubExpression"&&this.accept(C);else{if(this.trackIds){var N=void 0;if(C.parts&&!P.default.helpers.scopedId(C)&&!C.depth&&(N=this.blockParamIndex(C.parts[0])),N){var K=C.parts.slice(1).join(".");this.opcode("pushId","BlockParam",N,K)}else T=C.original||T,T.replace&&(T=T.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",C.type,T)}this.accept(C)}},setupFullMustacheParams:function(C,T,N,K){var ie=C.params;return this.pushParams(ie),this.opcode("pushProgram",T),this.opcode("pushProgram",N),C.hash?this.accept(C.hash):this.opcode("emptyHash",K),ie},blockParamIndex:function(C){for(var T=0,N=this.options.blockParams.length;T<N;T++){var K=this.options.blockParams[T],ie=K&&v.indexOf(K,C);if(K&&ie>=0)return[T,ie]}}};function B(M,C,T){if(M==null||typeof M!="string"&&M.type!=="Program")throw new _.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+M);C=C||{},"data"in C||(C.data=!0),C.compat&&(C.useDepths=!0);var N=T.parse(M,C),K=new T.Compiler().compile(N,C);return new T.JavaScriptCompiler().compile(K,C)}function z(M,C,T){if(C===void 0&&(C={}),M==null||typeof M!="string"&&M.type!=="Program")throw new _.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+M);C=v.extend({},C),"data"in C||(C.data=!0),C.compat&&(C.useDepths=!0);var N=void 0;function K(){var le=T.parse(M,C),Se=new T.Compiler().compile(le,C),ee=new T.JavaScriptCompiler().compile(Se,C,void 0,!0);return T.template(ee)}function ie(le,Se){return N||(N=K()),N.call(this,le,Se)}return ie._setup=function(le){return N||(N=K()),N._setup(le)},ie._child=function(le,Se,ee,pe){return N||(N=K()),N._child(le,Se,ee,pe)},ie}function R(M,C){if(M===C)return!0;if(v.isArray(M)&&v.isArray(C)&&M.length===C.length){for(var T=0;T<M.length;T++)if(!R(M[T],C[T]))return!1;return!0}}function H(M){if(!M.path.parts){var C=M.path;M.path={type:"PathExpression",data:!1,depth:0,parts:[C.original+""],original:C.original+"",loc:C.loc}}}return qo}var Xc={exports:{}},Qc={exports:{}},Ja={},Nh={},Yc={},$c={},sm;function B1(){if(sm)return $c;sm=1;var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");return $c.encode=function(f){if(0<=f&&f<d.length)return d[f];throw new TypeError("Must be between 0 and 63: "+f)},$c.decode=function(f){var _=65,v=90,k=97,P=122,x=48,s=57,B=43,z=47,R=26,H=52;return _<=f&&f<=v?f-_:k<=f&&f<=P?f-k+R:x<=f&&f<=s?f-x+H:f==B?62:f==z?63:-1},$c}var om;function am(){if(om)return Yc;om=1;var d=B1(),f=5,_=1<<f,v=_-1,k=_;function P(s){return s<0?(-s<<1)+1:(s<<1)+0}function x(s){var B=(s&1)===1,z=s>>1;return B?-z:z}return Yc.encode=function(B){var z="",R,H=P(B);do R=H&v,H>>>=f,H>0&&(R|=k),z+=d.encode(R);while(H>0);return z},Yc.decode=function(B,z,R){var H=B.length,M=0,C=0,T,N;do{if(z>=H)throw new Error("Expected more digits in base 64 VLQ value.");if(N=d.decode(B.charCodeAt(z++)),N===-1)throw new Error("Invalid base64 digit: "+B.charAt(z-1));T=!!(N&k),N&=v,M=M+(N<<C),C+=f}while(T);R.value=x(M),R.rest=z},Yc}var qh={},lm;function Xa(){return lm||(lm=1,function(d){function f(ee,pe,Pe){if(pe in ee)return ee[pe];if(arguments.length===3)return Pe;throw new Error('"'+pe+'" is a required argument.')}d.getArg=f;var _=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,v=/^data:.+\,.+$/;function k(ee){var pe=ee.match(_);return pe?{scheme:pe[1],auth:pe[2],host:pe[3],port:pe[4],path:pe[5]}:null}d.urlParse=k;function P(ee){var pe="";return ee.scheme&&(pe+=ee.scheme+":"),pe+="//",ee.auth&&(pe+=ee.auth+"@"),ee.host&&(pe+=ee.host),ee.port&&(pe+=":"+ee.port),ee.path&&(pe+=ee.path),pe}d.urlGenerate=P;function x(ee){var pe=ee,Pe=k(ee);if(Pe){if(!Pe.path)return ee;pe=Pe.path}for(var De=d.isAbsolute(pe),Ze=pe.split(/\/+/),gt,rt=0,Je=Ze.length-1;Je>=0;Je--)gt=Ze[Je],gt==="."?Ze.splice(Je,1):gt===".."?rt++:rt>0&&(gt===""?(Ze.splice(Je+1,rt),rt=0):(Ze.splice(Je,2),rt--));return pe=Ze.join("/"),pe===""&&(pe=De?"/":"."),Pe?(Pe.path=pe,P(Pe)):pe}d.normalize=x;function s(ee,pe){ee===""&&(ee="."),pe===""&&(pe=".");var Pe=k(pe),De=k(ee);if(De&&(ee=De.path||"/"),Pe&&!Pe.scheme)return De&&(Pe.scheme=De.scheme),P(Pe);if(Pe||pe.match(v))return pe;if(De&&!De.host&&!De.path)return De.host=pe,P(De);var Ze=pe.charAt(0)==="/"?pe:x(ee.replace(/\/+$/,"")+"/"+pe);return De?(De.path=Ze,P(De)):Ze}d.join=s,d.isAbsolute=function(ee){return ee.charAt(0)==="/"||_.test(ee)};function B(ee,pe){ee===""&&(ee="."),ee=ee.replace(/\/$/,"");for(var Pe=0;pe.indexOf(ee+"/")!==0;){var De=ee.lastIndexOf("/");if(De<0||(ee=ee.slice(0,De),ee.match(/^([^\/]+:\/)?\/*$/)))return pe;++Pe}return Array(Pe+1).join("../")+pe.substr(ee.length+1)}d.relative=B;var z=function(){var ee=Object.create(null);return!("__proto__"in ee)}();function R(ee){return ee}function H(ee){return C(ee)?"$"+ee:ee}d.toSetString=z?R:H;function M(ee){return C(ee)?ee.slice(1):ee}d.fromSetString=z?R:M;function C(ee){if(!ee)return!1;var pe=ee.length;if(pe<9||ee.charCodeAt(pe-1)!==95||ee.charCodeAt(pe-2)!==95||ee.charCodeAt(pe-3)!==111||ee.charCodeAt(pe-4)!==116||ee.charCodeAt(pe-5)!==111||ee.charCodeAt(pe-6)!==114||ee.charCodeAt(pe-7)!==112||ee.charCodeAt(pe-8)!==95||ee.charCodeAt(pe-9)!==95)return!1;for(var Pe=pe-10;Pe>=0;Pe--)if(ee.charCodeAt(Pe)!==36)return!1;return!0}function T(ee,pe,Pe){var De=K(ee.source,pe.source);return De!==0||(De=ee.originalLine-pe.originalLine,De!==0)||(De=ee.originalColumn-pe.originalColumn,De!==0||Pe)||(De=ee.generatedColumn-pe.generatedColumn,De!==0)||(De=ee.generatedLine-pe.generatedLine,De!==0)?De:K(ee.name,pe.name)}d.compareByOriginalPositions=T;function N(ee,pe,Pe){var De=ee.generatedLine-pe.generatedLine;return De!==0||(De=ee.generatedColumn-pe.generatedColumn,De!==0||Pe)||(De=K(ee.source,pe.source),De!==0)||(De=ee.originalLine-pe.originalLine,De!==0)||(De=ee.originalColumn-pe.originalColumn,De!==0)?De:K(ee.name,pe.name)}d.compareByGeneratedPositionsDeflated=N;function K(ee,pe){return ee===pe?0:ee===null?1:pe===null?-1:ee>pe?1:-1}function ie(ee,pe){var Pe=ee.generatedLine-pe.generatedLine;return Pe!==0||(Pe=ee.generatedColumn-pe.generatedColumn,Pe!==0)||(Pe=K(ee.source,pe.source),Pe!==0)||(Pe=ee.originalLine-pe.originalLine,Pe!==0)||(Pe=ee.originalColumn-pe.originalColumn,Pe!==0)?Pe:K(ee.name,pe.name)}d.compareByGeneratedPositionsInflated=ie;function le(ee){return JSON.parse(ee.replace(/^\)]}'[^\n]*\n/,""))}d.parseSourceMapInput=le;function Se(ee,pe,Pe){if(pe=pe||"",ee&&(ee[ee.length-1]!=="/"&&pe[0]!=="/"&&(ee+="/"),pe=ee+pe),Pe){var De=k(Pe);if(!De)throw new Error("sourceMapURL could not be parsed");if(De.path){var Ze=De.path.lastIndexOf("/");Ze>=0&&(De.path=De.path.substring(0,Ze+1))}pe=s(P(De),pe)}return x(pe)}d.computeSourceURL=Se}(qh)),qh}var Uh={},cm;function um(){if(cm)return Uh;cm=1;var d=Xa(),f=Object.prototype.hasOwnProperty,_=typeof Map<"u";function v(){this._array=[],this._set=_?new Map:Object.create(null)}return v.fromArray=function(P,x){for(var s=new v,B=0,z=P.length;B<z;B++)s.add(P[B],x);return s},v.prototype.size=function(){return _?this._set.size:Object.getOwnPropertyNames(this._set).length},v.prototype.add=function(P,x){var s=_?P:d.toSetString(P),B=_?this.has(P):f.call(this._set,s),z=this._array.length;(!B||x)&&this._array.push(P),B||(_?this._set.set(P,z):this._set[s]=z)},v.prototype.has=function(P){if(_)return this._set.has(P);var x=d.toSetString(P);return f.call(this._set,x)},v.prototype.indexOf=function(P){if(_){var x=this._set.get(P);if(x>=0)return x}else{var s=d.toSetString(P);if(f.call(this._set,s))return this._set[s]}throw new Error('"'+P+'" is not in the set.')},v.prototype.at=function(P){if(P>=0&&P<this._array.length)return this._array[P];throw new Error("No element indexed by "+P)},v.prototype.toArray=function(){return this._array.slice()},Uh.ArraySet=v,Uh}var jh={},hm;function V1(){if(hm)return jh;hm=1;var d=Xa();function f(v,k){var P=v.generatedLine,x=k.generatedLine,s=v.generatedColumn,B=k.generatedColumn;return x>P||x==P&&B>=s||d.compareByGeneratedPositionsInflated(v,k)<=0}function _(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}return _.prototype.unsortedForEach=function(k,P){this._array.forEach(k,P)},_.prototype.add=function(k){f(this._last,k)?(this._last=k,this._array.push(k)):(this._sorted=!1,this._array.push(k))},_.prototype.toArray=function(){return this._sorted||(this._array.sort(d.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},jh.MappingList=_,jh}var pm;function dm(){if(pm)return Nh;pm=1;var d=am(),f=Xa(),_=um().ArraySet,v=V1().MappingList;function k(P){P||(P={}),this._file=f.getArg(P,"file",null),this._sourceRoot=f.getArg(P,"sourceRoot",null),this._skipValidation=f.getArg(P,"skipValidation",!1),this._sources=new _,this._names=new _,this._mappings=new v,this._sourcesContents=null}return k.prototype._version=3,k.fromSourceMap=function(x){var s=x.sourceRoot,B=new k({file:x.file,sourceRoot:s});return x.eachMapping(function(z){var R={generated:{line:z.generatedLine,column:z.generatedColumn}};z.source!=null&&(R.source=z.source,s!=null&&(R.source=f.relative(s,R.source)),R.original={line:z.originalLine,column:z.originalColumn},z.name!=null&&(R.name=z.name)),B.addMapping(R)}),x.sources.forEach(function(z){var R=z;s!==null&&(R=f.relative(s,z)),B._sources.has(R)||B._sources.add(R);var H=x.sourceContentFor(z);H!=null&&B.setSourceContent(z,H)}),B},k.prototype.addMapping=function(x){var s=f.getArg(x,"generated"),B=f.getArg(x,"original",null),z=f.getArg(x,"source",null),R=f.getArg(x,"name",null);this._skipValidation||this._validateMapping(s,B,z,R),z!=null&&(z=String(z),this._sources.has(z)||this._sources.add(z)),R!=null&&(R=String(R),this._names.has(R)||this._names.add(R)),this._mappings.add({generatedLine:s.line,generatedColumn:s.column,originalLine:B!=null&&B.line,originalColumn:B!=null&&B.column,source:z,name:R})},k.prototype.setSourceContent=function(x,s){var B=x;this._sourceRoot!=null&&(B=f.relative(this._sourceRoot,B)),s!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[f.toSetString(B)]=s):this._sourcesContents&&(delete this._sourcesContents[f.toSetString(B)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))},k.prototype.applySourceMap=function(x,s,B){var z=s;if(s==null){if(x.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);z=x.file}var R=this._sourceRoot;R!=null&&(z=f.relative(R,z));var H=new _,M=new _;this._mappings.unsortedForEach(function(C){if(C.source===z&&C.originalLine!=null){var T=x.originalPositionFor({line:C.originalLine,column:C.originalColumn});T.source!=null&&(C.source=T.source,B!=null&&(C.source=f.join(B,C.source)),R!=null&&(C.source=f.relative(R,C.source)),C.originalLine=T.line,C.originalColumn=T.column,T.name!=null&&(C.name=T.name))}var N=C.source;N!=null&&!H.has(N)&&H.add(N);var K=C.name;K!=null&&!M.has(K)&&M.add(K)},this),this._sources=H,this._names=M,x.sources.forEach(function(C){var T=x.sourceContentFor(C);T!=null&&(B!=null&&(C=f.join(B,C)),R!=null&&(C=f.relative(R,C)),this.setSourceContent(C,T))},this)},k.prototype._validateMapping=function(x,s,B,z){if(s&&typeof s.line!="number"&&typeof s.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(x&&"line"in x&&"column"in x&&x.line>0&&x.column>=0&&!s&&!B&&!z)){if(x&&"line"in x&&"column"in x&&s&&"line"in s&&"column"in s&&x.line>0&&x.column>=0&&s.line>0&&s.column>=0&&B)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:x,source:B,original:s,name:z}))}},k.prototype._serializeMappings=function(){for(var x=0,s=1,B=0,z=0,R=0,H=0,M="",C,T,N,K,ie=this._mappings.toArray(),le=0,Se=ie.length;le<Se;le++){if(T=ie[le],C="",T.generatedLine!==s)for(x=0;T.generatedLine!==s;)C+=";",s++;else if(le>0){if(!f.compareByGeneratedPositionsInflated(T,ie[le-1]))continue;C+=","}C+=d.encode(T.generatedColumn-x),x=T.generatedColumn,T.source!=null&&(K=this._sources.indexOf(T.source),C+=d.encode(K-H),H=K,C+=d.encode(T.originalLine-1-z),z=T.originalLine-1,C+=d.encode(T.originalColumn-B),B=T.originalColumn,T.name!=null&&(N=this._names.indexOf(T.name),C+=d.encode(N-R),R=N)),M+=C}return M},k.prototype._generateSourcesContent=function(x,s){return x.map(function(B){if(!this._sourcesContents)return null;s!=null&&(B=f.relative(s,B));var z=f.toSetString(B);return Object.prototype.hasOwnProperty.call(this._sourcesContents,z)?this._sourcesContents[z]:null},this)},k.prototype.toJSON=function(){var x={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(x.file=this._file),this._sourceRoot!=null&&(x.sourceRoot=this._sourceRoot),this._sourcesContents&&(x.sourcesContent=this._generateSourcesContent(x.sources,x.sourceRoot)),x},k.prototype.toString=function(){return JSON.stringify(this.toJSON())},Nh.SourceMapGenerator=k,Nh}var Qa={},Hh={},fm;function O1(){return fm||(fm=1,function(d){d.GREATEST_LOWER_BOUND=1,d.LEAST_UPPER_BOUND=2;function f(_,v,k,P,x,s){var B=Math.floor((v-_)/2)+_,z=x(k,P[B],!0);return z===0?B:z>0?v-B>1?f(B,v,k,P,x,s):s==d.LEAST_UPPER_BOUND?v<P.length?v:-1:B:B-_>1?f(_,B,k,P,x,s):s==d.LEAST_UPPER_BOUND?B:_<0?-1:_}d.search=function(v,k,P,x){if(k.length===0)return-1;var s=f(-1,k.length,v,k,P,x||d.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&P(k[s],k[s-1],!0)===0;)--s;return s}}(Hh)),Hh}var Wh={},mm;function F1(){if(mm)return Wh;mm=1;function d(v,k,P){var x=v[k];v[k]=v[P],v[P]=x}function f(v,k){return Math.round(v+Math.random()*(k-v))}function _(v,k,P,x){if(P<x){var s=f(P,x),B=P-1;d(v,s,x);for(var z=v[x],R=P;R<x;R++)k(v[R],z)<=0&&(B+=1,d(v,B,R));d(v,B+1,R);var H=B+1;_(v,k,P,H-1),_(v,k,H+1,x)}}return Wh.quickSort=function(v,k){_(v,k,0,v.length-1)},Wh}var gm;function N1(){if(gm)return Qa;gm=1;var d=Xa(),f=O1(),_=um().ArraySet,v=am(),k=F1().quickSort;function P(z,R){var H=z;return typeof z=="string"&&(H=d.parseSourceMapInput(z)),H.sections!=null?new B(H,R):new x(H,R)}P.fromSourceMap=function(z,R){return x.fromSourceMap(z,R)},P.prototype._version=3,P.prototype.__generatedMappings=null,Object.defineProperty(P.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),P.prototype.__originalMappings=null,Object.defineProperty(P.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),P.prototype._charIsMappingSeparator=function(R,H){var M=R.charAt(H);return M===";"||M===","},P.prototype._parseMappings=function(R,H){throw new Error("Subclasses must implement _parseMappings")},P.GENERATED_ORDER=1,P.ORIGINAL_ORDER=2,P.GREATEST_LOWER_BOUND=1,P.LEAST_UPPER_BOUND=2,P.prototype.eachMapping=function(R,H,M){var C=H||null,T=M||P.GENERATED_ORDER,N;switch(T){case P.GENERATED_ORDER:N=this._generatedMappings;break;case P.ORIGINAL_ORDER:N=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var K=this.sourceRoot;N.map(function(ie){var le=ie.source===null?null:this._sources.at(ie.source);return le=d.computeSourceURL(K,le,this._sourceMapURL),{source:le,generatedLine:ie.generatedLine,generatedColumn:ie.generatedColumn,originalLine:ie.originalLine,originalColumn:ie.originalColumn,name:ie.name===null?null:this._names.at(ie.name)}},this).forEach(R,C)},P.prototype.allGeneratedPositionsFor=function(R){var H=d.getArg(R,"line"),M={source:d.getArg(R,"source"),originalLine:H,originalColumn:d.getArg(R,"column",0)};if(M.source=this._findSourceIndex(M.source),M.source<0)return[];var C=[],T=this._findMapping(M,this._originalMappings,"originalLine","originalColumn",d.compareByOriginalPositions,f.LEAST_UPPER_BOUND);if(T>=0){var N=this._originalMappings[T];if(R.column===void 0)for(var K=N.originalLine;N&&N.originalLine===K;)C.push({line:d.getArg(N,"generatedLine",null),column:d.getArg(N,"generatedColumn",null),lastColumn:d.getArg(N,"lastGeneratedColumn",null)}),N=this._originalMappings[++T];else for(var ie=N.originalColumn;N&&N.originalLine===H&&N.originalColumn==ie;)C.push({line:d.getArg(N,"generatedLine",null),column:d.getArg(N,"generatedColumn",null),lastColumn:d.getArg(N,"lastGeneratedColumn",null)}),N=this._originalMappings[++T]}return C},Qa.SourceMapConsumer=P;function x(z,R){var H=z;typeof z=="string"&&(H=d.parseSourceMapInput(z));var M=d.getArg(H,"version"),C=d.getArg(H,"sources"),T=d.getArg(H,"names",[]),N=d.getArg(H,"sourceRoot",null),K=d.getArg(H,"sourcesContent",null),ie=d.getArg(H,"mappings"),le=d.getArg(H,"file",null);if(M!=this._version)throw new Error("Unsupported version: "+M);N&&(N=d.normalize(N)),C=C.map(String).map(d.normalize).map(function(Se){return N&&d.isAbsolute(N)&&d.isAbsolute(Se)?d.relative(N,Se):Se}),this._names=_.fromArray(T.map(String),!0),this._sources=_.fromArray(C,!0),this._absoluteSources=this._sources.toArray().map(function(Se){return d.computeSourceURL(N,Se,R)}),this.sourceRoot=N,this.sourcesContent=K,this._mappings=ie,this._sourceMapURL=R,this.file=le}x.prototype=Object.create(P.prototype),x.prototype.consumer=P,x.prototype._findSourceIndex=function(z){var R=z;if(this.sourceRoot!=null&&(R=d.relative(this.sourceRoot,R)),this._sources.has(R))return this._sources.indexOf(R);var H;for(H=0;H<this._absoluteSources.length;++H)if(this._absoluteSources[H]==z)return H;return-1},x.fromSourceMap=function(R,H){var M=Object.create(x.prototype),C=M._names=_.fromArray(R._names.toArray(),!0),T=M._sources=_.fromArray(R._sources.toArray(),!0);M.sourceRoot=R._sourceRoot,M.sourcesContent=R._generateSourcesContent(M._sources.toArray(),M.sourceRoot),M.file=R._file,M._sourceMapURL=H,M._absoluteSources=M._sources.toArray().map(function(Pe){return d.computeSourceURL(M.sourceRoot,Pe,H)});for(var N=R._mappings.toArray().slice(),K=M.__generatedMappings=[],ie=M.__originalMappings=[],le=0,Se=N.length;le<Se;le++){var ee=N[le],pe=new s;pe.generatedLine=ee.generatedLine,pe.generatedColumn=ee.generatedColumn,ee.source&&(pe.source=T.indexOf(ee.source),pe.originalLine=ee.originalLine,pe.originalColumn=ee.originalColumn,ee.name&&(pe.name=C.indexOf(ee.name)),ie.push(pe)),K.push(pe)}return k(M.__originalMappings,d.compareByOriginalPositions),M},x.prototype._version=3,Object.defineProperty(x.prototype,"sources",{get:function(){return this._absoluteSources.slice()}});function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}x.prototype._parseMappings=function(R,H){for(var M=1,C=0,T=0,N=0,K=0,ie=0,le=R.length,Se=0,ee={},pe={},Pe=[],De=[],Ze,gt,rt,Je,it;Se<le;)if(R.charAt(Se)===";")M++,Se++,C=0;else if(R.charAt(Se)===",")Se++;else{for(Ze=new s,Ze.generatedLine=M,Je=Se;Je<le&&!this._charIsMappingSeparator(R,Je);Je++);if(gt=R.slice(Se,Je),rt=ee[gt],rt)Se+=gt.length;else{for(rt=[];Se<Je;)v.decode(R,Se,pe),it=pe.value,Se=pe.rest,rt.push(it);if(rt.length===2)throw new Error("Found a source, but no line and column");if(rt.length===3)throw new Error("Found a source and line, but no column");ee[gt]=rt}Ze.generatedColumn=C+rt[0],C=Ze.generatedColumn,rt.length>1&&(Ze.source=K+rt[1],K+=rt[1],Ze.originalLine=T+rt[2],T=Ze.originalLine,Ze.originalLine+=1,Ze.originalColumn=N+rt[3],N=Ze.originalColumn,rt.length>4&&(Ze.name=ie+rt[4],ie+=rt[4])),De.push(Ze),typeof Ze.originalLine=="number"&&Pe.push(Ze)}k(De,d.compareByGeneratedPositionsDeflated),this.__generatedMappings=De,k(Pe,d.compareByOriginalPositions),this.__originalMappings=Pe},x.prototype._findMapping=function(R,H,M,C,T,N){if(R[M]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+R[M]);if(R[C]<0)throw new TypeError("Column must be greater than or equal to 0, got "+R[C]);return f.search(R,H,T,N)},x.prototype.computeColumnSpans=function(){for(var R=0;R<this._generatedMappings.length;++R){var H=this._generatedMappings[R];if(R+1<this._generatedMappings.length){var M=this._generatedMappings[R+1];if(H.generatedLine===M.generatedLine){H.lastGeneratedColumn=M.generatedColumn-1;continue}}H.lastGeneratedColumn=1/0}},x.prototype.originalPositionFor=function(R){var H={generatedLine:d.getArg(R,"line"),generatedColumn:d.getArg(R,"column")},M=this._findMapping(H,this._generatedMappings,"generatedLine","generatedColumn",d.compareByGeneratedPositionsDeflated,d.getArg(R,"bias",P.GREATEST_LOWER_BOUND));if(M>=0){var C=this._generatedMappings[M];if(C.generatedLine===H.generatedLine){var T=d.getArg(C,"source",null);T!==null&&(T=this._sources.at(T),T=d.computeSourceURL(this.sourceRoot,T,this._sourceMapURL));var N=d.getArg(C,"name",null);return N!==null&&(N=this._names.at(N)),{source:T,line:d.getArg(C,"originalLine",null),column:d.getArg(C,"originalColumn",null),name:N}}}return{source:null,line:null,column:null,name:null}},x.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(R){return R==null}):!1},x.prototype.sourceContentFor=function(R,H){if(!this.sourcesContent)return null;var M=this._findSourceIndex(R);if(M>=0)return this.sourcesContent[M];var C=R;this.sourceRoot!=null&&(C=d.relative(this.sourceRoot,C));var T;if(this.sourceRoot!=null&&(T=d.urlParse(this.sourceRoot))){var N=C.replace(/^file:\/\//,"");if(T.scheme=="file"&&this._sources.has(N))return this.sourcesContent[this._sources.indexOf(N)];if((!T.path||T.path=="/")&&this._sources.has("/"+C))return this.sourcesContent[this._sources.indexOf("/"+C)]}if(H)return null;throw new Error('"'+C+'" is not in the SourceMap.')},x.prototype.generatedPositionFor=function(R){var H=d.getArg(R,"source");if(H=this._findSourceIndex(H),H<0)return{line:null,column:null,lastColumn:null};var M={source:H,originalLine:d.getArg(R,"line"),originalColumn:d.getArg(R,"column")},C=this._findMapping(M,this._originalMappings,"originalLine","originalColumn",d.compareByOriginalPositions,d.getArg(R,"bias",P.GREATEST_LOWER_BOUND));if(C>=0){var T=this._originalMappings[C];if(T.source===M.source)return{line:d.getArg(T,"generatedLine",null),column:d.getArg(T,"generatedColumn",null),lastColumn:d.getArg(T,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},Qa.BasicSourceMapConsumer=x;function B(z,R){var H=z;typeof z=="string"&&(H=d.parseSourceMapInput(z));var M=d.getArg(H,"version"),C=d.getArg(H,"sections");if(M!=this._version)throw new Error("Unsupported version: "+M);this._sources=new _,this._names=new _;var T={line:-1,column:0};this._sections=C.map(function(N){if(N.url)throw new Error("Support for url field in sections not implemented.");var K=d.getArg(N,"offset"),ie=d.getArg(K,"line"),le=d.getArg(K,"column");if(ie<T.line||ie===T.line&&le<T.column)throw new Error("Section offsets must be ordered and non-overlapping.");return T=K,{generatedOffset:{generatedLine:ie+1,generatedColumn:le+1},consumer:new P(d.getArg(N,"map"),R)}})}return B.prototype=Object.create(P.prototype),B.prototype.constructor=P,B.prototype._version=3,Object.defineProperty(B.prototype,"sources",{get:function(){for(var z=[],R=0;R<this._sections.length;R++)for(var H=0;H<this._sections[R].consumer.sources.length;H++)z.push(this._sections[R].consumer.sources[H]);return z}}),B.prototype.originalPositionFor=function(R){var H={generatedLine:d.getArg(R,"line"),generatedColumn:d.getArg(R,"column")},M=f.search(H,this._sections,function(T,N){var K=T.generatedLine-N.generatedOffset.generatedLine;return K||T.generatedColumn-N.generatedOffset.generatedColumn}),C=this._sections[M];return C?C.consumer.originalPositionFor({line:H.generatedLine-(C.generatedOffset.generatedLine-1),column:H.generatedColumn-(C.generatedOffset.generatedLine===H.generatedLine?C.generatedOffset.generatedColumn-1:0),bias:R.bias}):{source:null,line:null,column:null,name:null}},B.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(R){return R.consumer.hasContentsOfAllSources()})},B.prototype.sourceContentFor=function(R,H){for(var M=0;M<this._sections.length;M++){var C=this._sections[M],T=C.consumer.sourceContentFor(R,!0);if(T)return T}if(H)return null;throw new Error('"'+R+'" is not in the SourceMap.')},B.prototype.generatedPositionFor=function(R){for(var H=0;H<this._sections.length;H++){var M=this._sections[H];if(M.consumer._findSourceIndex(d.getArg(R,"source"))!==-1){var C=M.consumer.generatedPositionFor(R);if(C){var T={line:C.line+(M.generatedOffset.generatedLine-1),column:C.column+(M.generatedOffset.generatedLine===C.line?M.generatedOffset.generatedColumn-1:0)};return T}}}return{line:null,column:null}},B.prototype._parseMappings=function(R,H){this.__generatedMappings=[],this.__originalMappings=[];for(var M=0;M<this._sections.length;M++)for(var C=this._sections[M],T=C.consumer._generatedMappings,N=0;N<T.length;N++){var K=T[N],ie=C.consumer._sources.at(K.source);ie=d.computeSourceURL(C.consumer.sourceRoot,ie,this._sourceMapURL),this._sources.add(ie),ie=this._sources.indexOf(ie);var le=null;K.name&&(le=C.consumer._names.at(K.name),this._names.add(le),le=this._names.indexOf(le));var Se={source:ie,generatedLine:K.generatedLine+(C.generatedOffset.generatedLine-1),generatedColumn:K.generatedColumn+(C.generatedOffset.generatedLine===K.generatedLine?C.generatedOffset.generatedColumn-1:0),originalLine:K.originalLine,originalColumn:K.originalColumn,name:le};this.__generatedMappings.push(Se),typeof Se.originalLine=="number"&&this.__originalMappings.push(Se)}k(this.__generatedMappings,d.compareByGeneratedPositionsDeflated),k(this.__originalMappings,d.compareByOriginalPositions)},Qa.IndexedSourceMapConsumer=B,Qa}var Zh={},ym;function q1(){if(ym)return Zh;ym=1;var d=dm().SourceMapGenerator,f=Xa(),_=/(\r?\n)/,v=10,k="$$$isSourceNode$$$";function P(x,s,B,z,R){this.children=[],this.sourceContents={},this.line=x??null,this.column=s??null,this.source=B??null,this.name=R??null,this[k]=!0,z!=null&&this.add(z)}return P.fromStringWithSourceMap=function(s,B,z){var R=new P,H=s.split(_),M=0,C=function(){var le=ee(),Se=ee()||"";return le+Se;function ee(){return M<H.length?H[M++]:void 0}},T=1,N=0,K=null;return B.eachMapping(function(le){if(K!==null)if(T<le.generatedLine)ie(K,C()),T++,N=0;else{var Se=H[M]||"",ee=Se.substr(0,le.generatedColumn-N);H[M]=Se.substr(le.generatedColumn-N),N=le.generatedColumn,ie(K,ee),K=le;return}for(;T<le.generatedLine;)R.add(C()),T++;if(N<le.generatedColumn){var Se=H[M]||"";R.add(Se.substr(0,le.generatedColumn)),H[M]=Se.substr(le.generatedColumn),N=le.generatedColumn}K=le},this),M<H.length&&(K&&ie(K,C()),R.add(H.splice(M).join(""))),B.sources.forEach(function(le){var Se=B.sourceContentFor(le);Se!=null&&(z!=null&&(le=f.join(z,le)),R.setSourceContent(le,Se))}),R;function ie(le,Se){if(le===null||le.source===void 0)R.add(Se);else{var ee=z?f.join(z,le.source):le.source;R.add(new P(le.originalLine,le.originalColumn,ee,Se,le.name))}}},P.prototype.add=function(s){if(Array.isArray(s))s.forEach(function(B){this.add(B)},this);else if(s[k]||typeof s=="string")s&&this.children.push(s);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+s);return this},P.prototype.prepend=function(s){if(Array.isArray(s))for(var B=s.length-1;B>=0;B--)this.prepend(s[B]);else if(s[k]||typeof s=="string")this.children.unshift(s);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+s);return this},P.prototype.walk=function(s){for(var B,z=0,R=this.children.length;z<R;z++)B=this.children[z],B[k]?B.walk(s):B!==""&&s(B,{source:this.source,line:this.line,column:this.column,name:this.name})},P.prototype.join=function(s){var B,z,R=this.children.length;if(R>0){for(B=[],z=0;z<R-1;z++)B.push(this.children[z]),B.push(s);B.push(this.children[z]),this.children=B}return this},P.prototype.replaceRight=function(s,B){var z=this.children[this.children.length-1];return z[k]?z.replaceRight(s,B):typeof z=="string"?this.children[this.children.length-1]=z.replace(s,B):this.children.push("".replace(s,B)),this},P.prototype.setSourceContent=function(s,B){this.sourceContents[f.toSetString(s)]=B},P.prototype.walkSourceContents=function(s){for(var B=0,z=this.children.length;B<z;B++)this.children[B][k]&&this.children[B].walkSourceContents(s);for(var R=Object.keys(this.sourceContents),B=0,z=R.length;B<z;B++)s(f.fromSetString(R[B]),this.sourceContents[R[B]])},P.prototype.toString=function(){var s="";return this.walk(function(B){s+=B}),s},P.prototype.toStringWithSourceMap=function(s){var B={code:"",line:1,column:0},z=new d(s),R=!1,H=null,M=null,C=null,T=null;return this.walk(function(N,K){B.code+=N,K.source!==null&&K.line!==null&&K.column!==null?((H!==K.source||M!==K.line||C!==K.column||T!==K.name)&&z.addMapping({source:K.source,original:{line:K.line,column:K.column},generated:{line:B.line,column:B.column},name:K.name}),H=K.source,M=K.line,C=K.column,T=K.name,R=!0):R&&(z.addMapping({generated:{line:B.line,column:B.column}}),H=null,R=!1);for(var ie=0,le=N.length;ie<le;ie++)N.charCodeAt(ie)===v?(B.line++,B.column=0,ie+1===le?(H=null,R=!1):R&&z.addMapping({source:K.source,original:{line:K.line,column:K.column},generated:{line:B.line,column:B.column},name:K.name})):B.column++}),this.walkSourceContents(function(N,K){z.setSourceContent(N,K)}),{code:B.code,map:z}},Zh.SourceNode=P,Zh}var _m;function U1(){return _m||(_m=1,Ja.SourceMapGenerator=dm().SourceMapGenerator,Ja.SourceMapConsumer=N1().SourceMapConsumer,Ja.SourceNode=q1().SourceNode),Ja}var xm;function j1(){return xm||(xm=1,function(d,f){f.__esModule=!0;var _=Oi(),v=void 0;try{var k=U1();v=k.SourceNode}catch{}v||(v=function(s,B,z,R){this.src="",R&&this.add(R)},v.prototype={add:function(B){_.isArray(B)&&(B=B.join("")),this.src+=B},prepend:function(B){_.isArray(B)&&(B=B.join("")),this.src=B+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}});function P(s,B,z){if(_.isArray(s)){for(var R=[],H=0,M=s.length;H<M;H++)R.push(B.wrap(s[H],z));return R}else if(typeof s=="boolean"||typeof s=="number")return s+"";return s}function x(s){this.srcFile=s,this.source=[]}x.prototype={isEmpty:function(){return!this.source.length},prepend:function(B,z){this.source.unshift(this.wrap(B,z))},push:function(B,z){this.source.push(this.wrap(B,z))},merge:function(){var B=this.empty();return this.each(function(z){B.add([" ",z,`
|
|
810
|
-
`])}),B},each:function(B){for(var z=0,R=this.source.length;z<R;z++)B(this.source[z])},empty:function(){var B=this.currentLocation||{start:{}};return new v(B.start.line,B.start.column,this.srcFile)},wrap:function(B){var z=arguments.length<=1||arguments[1]===void 0?this.currentLocation||{start:{}}:arguments[1];return B instanceof v?B:(B=P(B,this,z),new v(z.start.line,z.start.column,this.srcFile,B))},functionCall:function(B,z,R){return R=this.generateList(R),this.wrap([B,z?"."+z+"(":"(",R,")"])},quotedString:function(B){return'"'+(B+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(B){var z=this,R=[];Object.keys(B).forEach(function(M){var C=P(B[M],z);C!=="undefined"&&R.push([z.quotedString(M),":",C])});var H=this.generateList(R);return H.prepend("{"),H.add("}"),H},generateList:function(B){for(var z=this.empty(),R=0,H=B.length;R<H;R++)R&&z.add(","),z.add(P(B[R],this));return z},generateArray:function(B){var z=this.generateList(B);return z.prepend("["),z.add("]"),z}},f.default=x,d.exports=f.default}(Qc,Qc.exports)),Qc.exports}var bm;function H1(){return bm||(bm=1,function(d,f){f.__esModule=!0;function _(M){return M&&M.__esModule?M:{default:M}}var v=Fh(),k=pn(),P=_(k),x=Oi(),s=j1(),B=_(s);function z(M){this.value=M}function R(){}R.prototype={nameLookup:function(C,T){return this.internalNameLookup(C,T)},depthedLookup:function(C){return[this.aliasable("container.lookup"),"(depths, ",JSON.stringify(C),")"]},compilerInfo:function(){var C=v.COMPILER_REVISION,T=v.REVISION_CHANGES[C];return[C,T]},appendToBuffer:function(C,T,N){return x.isArray(C)||(C=[C]),C=this.source.wrap(C,T),this.environment.isSimple?["return ",C,";"]:N?["buffer += ",C,";"]:(C.appendToBuffer=!0,C)},initializeBuffer:function(){return this.quotedString("")},internalNameLookup:function(C,T){return this.lookupPropertyFunctionIsUsed=!0,["lookupProperty(",C,",",JSON.stringify(T),")"]},lookupPropertyFunctionIsUsed:!1,compile:function(C,T,N,K){this.environment=C,this.options=T,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!K,this.name=this.environment.name,this.isChild=!!N,this.context=N||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(C,T),this.useDepths=this.useDepths||C.useDepths||C.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||C.useBlockParams;var ie=C.opcodes,le=void 0,Se=void 0,ee=void 0,pe=void 0;for(ee=0,pe=ie.length;ee<pe;ee++)le=ie[ee],this.source.currentLocation=le.loc,Se=Se||le.loc,this[le.opcode].apply(this,le.args);if(this.source.currentLocation=Se,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new P.default("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend(["var decorators = container.decorators, ",this.lookupPropertyFunctionVarDeclaration(),`;
|
|
811
|
-
`]),this.decorators.push("return fn;"),K?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend(`function(fn, props, container, depth0, data, blockParams, depths) {
|
|
812
|
-
`),this.decorators.push(`}
|
|
813
|
-
`),this.decorators=this.decorators.merge()));var Pe=this.createFunctionContext(K);if(this.isChild)return Pe;var De={compiler:this.compilerInfo(),main:Pe};this.decorators&&(De.main_d=this.decorators,De.useDecorators=!0);var Ze=this.context,gt=Ze.programs,rt=Ze.decorators;for(ee=0,pe=gt.length;ee<pe;ee++)gt[ee]&&(De[ee]=gt[ee],rt[ee]&&(De[ee+"_d"]=rt[ee],De.useDecorators=!0));return this.environment.usePartial&&(De.usePartial=!0),this.options.data&&(De.useData=!0),this.useDepths&&(De.useDepths=!0),this.useBlockParams&&(De.useBlockParams=!0),this.options.compat&&(De.compat=!0),K?De.compilerOptions=this.options:(De.compiler=JSON.stringify(De.compiler),this.source.currentLocation={start:{line:1,column:0}},De=this.objectLiteral(De),T.srcName?(De=De.toStringWithSourceMap({file:T.destName}),De.map=De.map&&De.map.toString()):De=De.toString()),De},preamble:function(){this.lastContext=0,this.source=new B.default(this.options.srcName),this.decorators=new B.default(this.options.srcName)},createFunctionContext:function(C){var T=this,N="",K=this.stackVars.concat(this.registers.list);K.length>0&&(N+=", "+K.join(", "));var ie=0;Object.keys(this.aliases).forEach(function(ee){var pe=T.aliases[ee];pe.children&&pe.referenceCount>1&&(N+=", alias"+ ++ie+"="+ee,pe.children[0]="alias"+ie)}),this.lookupPropertyFunctionIsUsed&&(N+=", "+this.lookupPropertyFunctionVarDeclaration());var le=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&le.push("blockParams"),this.useDepths&&le.push("depths");var Se=this.mergeSource(N);return C?(le.push(Se),Function.apply(this,le)):this.source.wrap(["function(",le.join(","),`) {
|
|
814
|
-
`,Se,"}"])},mergeSource:function(C){var T=this.environment.isSimple,N=!this.forceBuffer,K=void 0,ie=void 0,le=void 0,Se=void 0;return this.source.each(function(ee){ee.appendToBuffer?(le?ee.prepend(" + "):le=ee,Se=ee):(le&&(ie?le.prepend("buffer += "):K=!0,Se.add(";"),le=Se=void 0),ie=!0,T||(N=!1))}),N?le?(le.prepend("return "),Se.add(";")):ie||this.source.push('return "";'):(C+=", buffer = "+(K?"":this.initializeBuffer()),le?(le.prepend("return buffer + "),Se.add(";")):this.source.push("return buffer;")),C&&this.source.prepend("var "+C.substring(2)+(K?"":`;
|
|
815
|
-
`)),this.source.merge()},lookupPropertyFunctionVarDeclaration:function(){return`
|
|
816
|
-
lookupProperty = container.lookupProperty || function(parent, propertyName) {
|
|
817
|
-
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
|
|
818
|
-
return parent[propertyName];
|
|
819
|
-
}
|
|
820
|
-
return undefined
|
|
821
|
-
}
|
|
822
|
-
`.trim()},blockValue:function(C){var T=this.aliasable("container.hooks.blockHelperMissing"),N=[this.contextName(0)];this.setupHelperArgs(C,0,N);var K=this.popStack();N.splice(1,0,K),this.push(this.source.functionCall(T,"call",N))},ambiguousBlockValue:function(){var C=this.aliasable("container.hooks.blockHelperMissing"),T=[this.contextName(0)];this.setupHelperArgs("",0,T,!0),this.flushInline();var N=this.topStack();T.splice(1,0,N),this.pushSource(["if (!",this.lastHelper,") { ",N," = ",this.source.functionCall(C,"call",T),"}"])},appendContent:function(C){this.pendingContent?C=this.pendingContent+C:this.pendingLocation=this.source.currentLocation,this.pendingContent=C},append:function(){if(this.isInline())this.replaceStack(function(T){return[" != null ? ",T,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var C=this.popStack();this.pushSource(["if (",C," != null) { ",this.appendToBuffer(C,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(C){this.lastContext=C},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(C,T,N,K){var ie=0;!K&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(C[ie++])):this.pushContext(),this.resolvePath("context",C,ie,T,N)},lookupBlockParam:function(C,T){this.useBlockParams=!0,this.push(["blockParams[",C[0],"][",C[1],"]"]),this.resolvePath("context",T,1)},lookupData:function(C,T,N){C?this.pushStackLiteral("container.data(data, "+C+")"):this.pushStackLiteral("data"),this.resolvePath("data",T,0,!0,N)},resolvePath:function(C,T,N,K,ie){var le=this;if(this.options.strict||this.options.assumeObjects){this.push(H(this.options.strict&&ie,this,T,N,C));return}for(var Se=T.length;N<Se;N++)this.replaceStack(function(ee){var pe=le.nameLookup(ee,T[N],C);return K?[" && ",pe]:[" != null ? ",pe," : ",ee]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(C,T){this.pushContext(),this.pushString(T),T!=="SubExpression"&&(typeof C=="string"?this.pushString(C):this.pushStackLiteral(C))},emptyHash:function(C){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(C?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:{},types:[],contexts:[],ids:[]}},popHash:function(){var C=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(C.ids)),this.stringParams&&(this.push(this.objectLiteral(C.contexts)),this.push(this.objectLiteral(C.types))),this.push(this.objectLiteral(C.values))},pushString:function(C){this.pushStackLiteral(this.quotedString(C))},pushLiteral:function(C){this.pushStackLiteral(C)},pushProgram:function(C){C!=null?this.pushStackLiteral(this.programExpression(C)):this.pushStackLiteral(null)},registerDecorator:function(C,T){var N=this.nameLookup("decorators",T,"decorator"),K=this.setupHelperArgs(T,C);this.decorators.push(["fn = ",this.decorators.functionCall(N,"",["fn","props","container",K])," || fn;"])},invokeHelper:function(C,T,N){var K=this.popStack(),ie=this.setupHelper(C,T),le=[];N&&le.push(ie.name),le.push(K),this.options.strict||le.push(this.aliasable("container.hooks.helperMissing"));var Se=["(",this.itemsSeparatedBy(le,"||"),")"],ee=this.source.functionCall(Se,"call",ie.callParams);this.push(ee)},itemsSeparatedBy:function(C,T){var N=[];N.push(C[0]);for(var K=1;K<C.length;K++)N.push(T,C[K]);return N},invokeKnownHelper:function(C,T){var N=this.setupHelper(C,T);this.push(this.source.functionCall(N.name,"call",N.callParams))},invokeAmbiguous:function(C,T){this.useRegister("helper");var N=this.popStack();this.emptyHash();var K=this.setupHelper(0,C,T),ie=this.lastHelper=this.nameLookup("helpers",C,"helper"),le=["(","(helper = ",ie," || ",N,")"];this.options.strict||(le[0]="(helper = ",le.push(" != null ? helper : ",this.aliasable("container.hooks.helperMissing"))),this.push(["(",le,K.paramsInit?["),(",K.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",K.callParams)," : helper))"])},invokePartial:function(C,T,N){var K=[],ie=this.setupParams(T,1,K);C&&(T=this.popStack(),delete ie.name),N&&(ie.indent=JSON.stringify(N)),ie.helpers="helpers",ie.partials="partials",ie.decorators="container.decorators",C?K.unshift(T):K.unshift(this.nameLookup("partials",T,"partial")),this.options.compat&&(ie.depths="depths"),ie=this.objectLiteral(ie),K.push(ie),this.push(this.source.functionCall("container.invokePartial","",K))},assignToHash:function(C){var T=this.popStack(),N=void 0,K=void 0,ie=void 0;this.trackIds&&(ie=this.popStack()),this.stringParams&&(K=this.popStack(),N=this.popStack());var le=this.hash;N&&(le.contexts[C]=N),K&&(le.types[C]=K),ie&&(le.ids[C]=ie),le.values[C]=T},pushId:function(C,T,N){C==="BlockParam"?this.pushStackLiteral("blockParams["+T[0]+"].path["+T[1]+"]"+(N?" + "+JSON.stringify("."+N):"")):C==="PathExpression"?this.pushString(T):C==="SubExpression"?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:R,compileChildren:function(C,T){for(var N=C.children,K=void 0,ie=void 0,le=0,Se=N.length;le<Se;le++){K=N[le],ie=new this.compiler;var ee=this.matchExistingProgram(K);if(ee==null){this.context.programs.push("");var pe=this.context.programs.length;K.index=pe,K.name="program"+pe,this.context.programs[pe]=ie.compile(K,T,this.context,!this.precompile),this.context.decorators[pe]=ie.decorators,this.context.environments[pe]=K,this.useDepths=this.useDepths||ie.useDepths,this.useBlockParams=this.useBlockParams||ie.useBlockParams,K.useDepths=this.useDepths,K.useBlockParams=this.useBlockParams}else K.index=ee.index,K.name="program"+ee.index,this.useDepths=this.useDepths||ee.useDepths,this.useBlockParams=this.useBlockParams||ee.useBlockParams}},matchExistingProgram:function(C){for(var T=0,N=this.context.environments.length;T<N;T++){var K=this.context.environments[T];if(K&&K.equals(C))return K}},programExpression:function(C){var T=this.environment.children[C],N=[T.index,"data",T.blockParams];return(this.useBlockParams||this.useDepths)&&N.push("blockParams"),this.useDepths&&N.push("depths"),"container.program("+N.join(", ")+")"},useRegister:function(C){this.registers[C]||(this.registers[C]=!0,this.registers.list.push(C))},push:function(C){return C instanceof z||(C=this.source.wrap(C)),this.inlineStack.push(C),C},pushStackLiteral:function(C){this.push(new z(C))},pushSource:function(C){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),C&&this.source.push(C)},replaceStack:function(C){var T=["("],N=void 0,K=void 0,ie=void 0;if(!this.isInline())throw new P.default("replaceStack on non-inline");var le=this.popStack(!0);if(le instanceof z)N=[le.value],T=["(",N],ie=!0;else{K=!0;var Se=this.incrStack();T=["((",this.push(Se)," = ",le,")"],N=this.topStack()}var ee=C.call(this,N);ie||this.popStack(),K&&this.stackSlot--,this.push(T.concat(ee,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var C=this.inlineStack;this.inlineStack=[];for(var T=0,N=C.length;T<N;T++){var K=C[T];if(K instanceof z)this.compileStack.push(K);else{var ie=this.incrStack();this.pushSource([ie," = ",K,";"]),this.compileStack.push(ie)}}},isInline:function(){return this.inlineStack.length},popStack:function(C){var T=this.isInline(),N=(T?this.inlineStack:this.compileStack).pop();if(!C&&N instanceof z)return N.value;if(!T){if(!this.stackSlot)throw new P.default("Invalid stack pop");this.stackSlot--}return N},topStack:function(){var C=this.isInline()?this.inlineStack:this.compileStack,T=C[C.length-1];return T instanceof z?T.value:T},contextName:function(C){return this.useDepths&&C?"depths["+C+"]":"depth"+C},quotedString:function(C){return this.source.quotedString(C)},objectLiteral:function(C){return this.source.objectLiteral(C)},aliasable:function(C){var T=this.aliases[C];return T?(T.referenceCount++,T):(T=this.aliases[C]=this.source.wrap(C),T.aliasable=!0,T.referenceCount=1,T)},setupHelper:function(C,T,N){var K=[],ie=this.setupHelperArgs(T,C,K,N),le=this.nameLookup("helpers",T,"helper"),Se=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:K,paramsInit:ie,name:le,callParams:[Se].concat(K)}},setupParams:function(C,T,N){var K={},ie=[],le=[],Se=[],ee=!N,pe=void 0;ee&&(N=[]),K.name=this.quotedString(C),K.hash=this.popStack(),this.trackIds&&(K.hashIds=this.popStack()),this.stringParams&&(K.hashTypes=this.popStack(),K.hashContexts=this.popStack());var Pe=this.popStack(),De=this.popStack();(De||Pe)&&(K.fn=De||"container.noop",K.inverse=Pe||"container.noop");for(var Ze=T;Ze--;)pe=this.popStack(),N[Ze]=pe,this.trackIds&&(Se[Ze]=this.popStack()),this.stringParams&&(le[Ze]=this.popStack(),ie[Ze]=this.popStack());return ee&&(K.args=this.source.generateArray(N)),this.trackIds&&(K.ids=this.source.generateArray(Se)),this.stringParams&&(K.types=this.source.generateArray(le),K.contexts=this.source.generateArray(ie)),this.options.data&&(K.data="data"),this.useBlockParams&&(K.blockParams="blockParams"),K},setupHelperArgs:function(C,T,N,K){var ie=this.setupParams(C,T,N);return ie.loc=JSON.stringify(this.source.currentLocation),ie=this.objectLiteral(ie),K?(this.useRegister("options"),N.push("options"),["options=",ie]):N?(N.push(ie),""):ie}},function(){for(var M="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),C=R.RESERVED_WORDS={},T=0,N=M.length;T<N;T++)C[M[T]]=!0}(),R.isValidJavaScriptVariableName=function(M){return!R.RESERVED_WORDS[M]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(M)};function H(M,C,T,N,K){var ie=C.popStack(),le=T.length;for(M&&le--;N<le;N++)ie=C.nameLookup(ie,T[N],K);return M?[C.aliasable("container.strict"),"(",ie,", ",C.quotedString(T[N]),", ",JSON.stringify(C.source.currentLocation)," )"]:ie}f.default=R,d.exports=f.default}(Xc,Xc.exports)),Xc.exports}var vm;function W1(){return vm||(vm=1,function(d,f){f.__esModule=!0;function _(le){return le&&le.__esModule?le:{default:le}}var v=I1(),k=_(v),P=Qf(),x=_(P),s=z1(),B=D1(),z=H1(),R=_(z),H=em(),M=_(H),C=Gf(),T=_(C),N=k.default.create;function K(){var le=N();return le.compile=function(Se,ee){return B.compile(Se,ee,le)},le.precompile=function(Se,ee){return B.precompile(Se,ee,le)},le.AST=x.default,le.Compiler=B.Compiler,le.JavaScriptCompiler=R.default,le.Parser=s.parser,le.parse=s.parse,le.parseWithoutProcessing=s.parseWithoutProcessing,le}var ie=K();ie.create=K,T.default(ie),ie.Visitor=M.default,ie.default=ie,f.default=ie,d.exports=f.default}(Pc,Pc.exports)),Pc.exports}var Z1=W1();const eu=yd(Z1);function wm(d,f,_,v){const k=d+f;let P=0,x=0;if(k<=_)P=d,x=f;else{const s=_/2;if(d>s&&f>s)P=s-v,x=s-v;else{const B=Math.min(d,f),z=_-B;d>f?(P=Math.max(z,100)-v,x=B):(P=B,x=Math.max(z,100)-v)}}return{topMaxHeight:P,bottomMaxHeight:x}}function tu(d,f,_,v){if(!d)return!1;const k=_-v*2-((f==null?void 0:f.scrollHeight)||0);return d.scrollHeight>k}function K1(d,f,_){const v=f-_*2;return Math.min(d,v)}function Sm(d,f,_){const v=(f-_*3)/2;return Math.min(d,v)}function Am(d,f){var Se,ee,pe,Pe,De,Ze,gt;const v=f-80,k=((Se=d.topLeft)==null?void 0:Se.scrollHeight)||0,P=((ee=d.bottomLeft)==null?void 0:ee.scrollHeight)||0,{topMaxHeight:x,bottomMaxHeight:s}=wm(k,P,v,40),B=((pe=d.topRight)==null?void 0:pe.scrollHeight)||0,z=((Pe=d.bottomRight)==null?void 0:Pe.scrollHeight)||0,{topMaxHeight:R,bottomMaxHeight:H}=wm(B,z,v,40),M=((De=d.center)==null?void 0:De.scrollHeight)||0,C=K1(M,f,40),T=((Ze=d.topCenter)==null?void 0:Ze.scrollHeight)||0,N=Sm(T,f,40),K=((gt=d.bottomCenter)==null?void 0:gt.scrollHeight)||0,ie=Sm(K,f,40),le={topLeft:tu(d.topLeft,d.bottomLeft,f,40),topRight:tu(d.topRight,d.bottomRight,f,40),topCenter:T>N,center:M>C,bottomLeft:tu(d.bottomLeft,d.topLeft,f,40),bottomRight:tu(d.bottomRight,d.topRight,f,40),bottomCenter:K>ie};return{heights:{topLeft:x,topRight:R,topCenter:N,center:C,bottomLeft:s,bottomRight:H,bottomCenter:ie},hasScroll:le}}const G1={"diagonal-stripes":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQACWAJYAAD/4gogSUNDX1BST0ZJTEUAAQEAAAoQAAAAAAIQAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApkZXNjAAAA/AAAAHxjcHJ0AAABeAAAACh3dHB0AAABoAAAABRia3B0AAABtAAAABRyWFlaAAAByAAAABRnWFlaAAAB3AAAABRiWFlaAAAB8AAAABRyVFJDAAACBAAACAxnVFJDAAACBAAACAxiVFJDAAACBAAACAxkZXNjAAAAAAAAACJBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUAAAAAAAAAAAAAACJBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQgQXJ0aWZleCBTb2Z0d2FyZSAyMDExAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9jdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/AAAsIAMgBLAEBEQD/xAAcAAEBAQADAQEBAAAAAAAAAAAGBQQAAwcCCAH/xAA5EAABAwMCBQMCBAYDAAIDAQABAgMEBQcRBggJEiEiMRMjMhQVM0FCYQAXJVGCklJxokNyFhihsf/aAAgBAQAAPwA7uT3JyroyqVsF2C6fCdMpH2qZMpWUomoB91tDv6Y46qdeUe/r15fk0q9ZtBwmLOq0zppcDVt+9Xw0qkyCOZMZJ8LUPLcZCvgjop1QyenxMba9ttN0lT6lxAt/lacK1uCsUql1Ucz8l9XVp91o9VLUQAzHA6YBIAAALxIV7+LZfE1SpmXpOzekpBCfzbiNHylJPa9McSBlXxQD/YAKRbldyTdSZpfD82BUJSqaCaPUahSjlUxXUPMtO/8ADPMXpBPd3AHlyStSbP8ACVs4e6n6tv5rCFggHKIyT/8A1uKhQ/ZTqk/kB2kdte2xuoJqnEC3/V1SKdzisU6n1Ud8xfQsvOtf8eiQzHA7u0kcuAT0+be/i23yTTaaiXpSzekpOStSctxGj+tX6XZjifCfCAf7AlSncpuSpulKVTeH7sDorrqlrNIqlTpR9R6Q8ro8y06PktR5i8+TgdQCACQmolHtBwmLO/8A5LqX6DVl+9XwiiPFQvKYyT5Qk+W4yFY53OinVDA6DoK23bb5dy51V3+b+a96OnGz92hQqoOQTgn8Ja2vyjjtS0yBlzp05flF1RqW9fFjvc1onRDErS9ndKSAtbi0e1Ga8B94Do5KWnIbaBwgH+3MosNx246gWY07A2DbC6U9Jq77n2ur1ame7JckudrrTTifnIWc+o74QMpTjHbd0Zo+0fCjtB/Mu5X0Wqb7ariLbp9ObcCvpgodzTZ8oZSceq95WRyp6fwG26bdK3uErtW3477q8mJouMDUosWokstz2mz7fZ+iGjolDY6uHAGQSVTdf69vJxU7zR7SWlhyNNWf0w+hxx1xooZaZT2iVIA6KdUkENMA9o/yUGu4bcPpPbBpCHsW2N096dqyY4IFarMAetK+rcwlaEKT85a/ClDo0O0YI7adtrc2o4W9pv533tMXUd7dSxnEUmkIeC1RlLHc02rrgDI9Z/8AxTnPcD2+7fNV7udXVXe9vbriadb2AFTY8eaox2JrDRJS2hJ/DhI8dOrhyBnJJy3VuldridXciWAsDTndP2j0462p15TRaYSw2eVMuUE9AMDDLA/b88lLm/d/ND7LNCR9ley+K5Utf1FaYtcrcVAflNy3QEqwU555a8gBI6NDAAzjGm0VpbX8NO1ytyO45bVdvDX2nPslEDwcejOrTlTaCc5c7vefOQkEpTknuB2KsTrvfPr6pbxd4VZFItlSueQyzIcMePJjMkqDDOT7cRHXmX5WcgEkqI+LzXkubxGbnwNr22GlKolqaCptLz4aLMdcdohKZUkJHYykD2mfJOOmfi7vbe+3mwC3DW0baS0axdCr8jVdrjTYekMSnAE8ygnPNKVnDbQyGgR0J88sjZS3HD2tw5uy3XPirXTrAccoVCW6HZLEhwFRQnOeaSrmy46chsEjJJ6g7M2YuVxELmz91G6aqmhWqoZWtlpbpjx3IzRKjFjlWORhOD6r3lRzg82SntvtfPX+/HX9N2gbQ6L9qthR/TYfkMtFiO/HZISJD2B7cVGByN+VnBIJIAd3du/bLht2uTtm20BuvXeryGxW60loOvR31jAcWkZy6ebDTAyEAgnJPdmsFYXQmyLQj+8/eVLXULhVJS5VCoUhwOy25boKh0Ue+WvJKlHo0CSTnOA1q7VXX4mV2pm4jcNUHNO2j06twNN+qWWBGbPMqJGUrACQBl58/v8AngJ1bgtwGr94mr6Xsm2VUIQLdU0IhSJERBZYmR2SAXFqA9qE3gEZ6uHBOSUgvLk3LtVwvrTfyIsUY2pL1alZbVV6sWg4uM4oYS64kZxjmPosfvzKznumbeNvekNqmkZW+Te/UXZWsJjiqhRKJNV6ssS3MrStSFfiS1k5CT0aGVKwR2ibf2+vDxTbyyLyXilv6Ys9ph1aG0Jc9NlphJ5lRYylYCnCAC8+fj/qkU9xm4mvbka7StiOxagCPoeIBTZUqngtMzmWzhff/wDHDR8lLPVw9TkEBTnWmtrScKi0JtXa1cPVV9dVxULqVRU2F/TFQ7XXE+UNJJPpM+VnuV08+YW24Ut99wemheS79zE6d1Hqt9yovRKpDXJmLQ5gpdeIUORask8mO0cvjwPUazV7O8Ji0CtNaZVT9X371bEBfkqRlMZJ8LUPk3GQfg30U6oZPQdpjbbttpulqbUuIBxAK24tS1irUqlVYc70l5XVp51o/JaugZjgYAAJAAABeJEvhxa74GpVJUvSdmdJyCAAfaitf8U/pemOJ8q8IB/sAFItye5Juc3TOH9w/qEoU4KNIqNRpB75i/DzTTo/T8i9IJ7u4A8uSVgFneEvZ3mV9u1df3V0L/7JipP/AKbioV/0p5SfyA7SW2zbaipoqnEB4gFdUKaFCr06nVcd0xXlp1xk/o+IZjgd3aSOXAJ6dOvhxar4JpVKTL0nZnScgEkj2orX/JX6XpjifCfCAf7AlSncjuRpmkaZTdgGwCiuOOOLNJqtVpJ535L6ujrLTo+S1dS9IJwBkAgAkJaLRbPcJqzw1PqcU/V1/NXQymNGSrmTFSfKEny3GQr5udFOqGB08DNuG3Cbc2bVd/e/uv8Apaba/qsGDVexM5KerS1NH4xx0S0wke506cvyiam1NeziwXsa0LoViVpWzelX0qWtSMMxmR0D7wHa5JWkENtDogftzKLDcbuN0/ZXT8DYTsJpL0isyHPtlYrFM92U7KX2uNNOJ+chXX1HfCBlKcY7bujdHWi4U1ohc25og6qvvqqKtFOpyHAv6XmHc22ryhpJI9V7ys9qen8B9uu3aubhq5Vd9+++viLoqKDUokSpEtNTmmzlHtn4Q0dEobHV09BkElUzXuvbycVC8ke0VoocjTFndMPIU44pooYaYSeVMqSlOAp0gENMD4/7KDTcLuF0lte0lE2M7Gac7N1dNcECtVuAn1pf1bmErQhafxJa/ClDo0O1OCO2pbi3Fp+F3af+eF8DF1Le3UsdaaTSUuhxcZahlTTajnABPvSP8U5z3BNv237Vu7rVtU3ub3K8KfbunhU2NGmrLDExhokpbQkn24SPHTq4egzkk5LpXSu1xNrtRNvu32nO6ctDpxxsuulosxxHbPKmXKSnAAwMMxx+355KXN+796F2V6Fj7Ltl0NdSuDUlJi12uxWw9LbluAJIykHnlqzgJHRkEADm8abS2ltfw17Xq3J7kltV+8NfbcNFopeDr0d5YyW0E5y53ZefOQkEpTknuB2LsXr3fRr2pbw94da+0WxpHPIYYkOGPHkR2iVegzzH24iMHnX5WcgEkkj4vHeO5vEUubA2ubXKSqhWooSm0PPIaLEZcZohIlSQnHIynHtM+ScdM/F3e69tutgFumtpG0hj7xdGscjNdrrLQeksyXAE8yuXPNJVnDbQyGgR0yevLKWUtxw+rcObst2bwrN1KyFu0KhOuh6SxJcBUUp5s80lWcuOnIaBIBJPUJZmzNzOIhcyfum3TVZVCtTQlOLZZW6WIzkZolRixiojkYTj3XvKjkZzkp7L53z19vt19Ttn+z+i/aLYUjkjvvx2jHjSI7RCfXe5R7cVGByN+VnBIJIAd3du7bDht2wTtp20oar136822K3Ww0HXo7yxgOLAzl082GmBkIBCjknuzWFsLoTZPoSRvP3ny11K4dSUuVQqFKcD0tuW4CodFE88tWcqUejQJJOfAe1dq7s8TK7MzcNuGqTunLRacW56TXqlmOI7Z5lRIqlYASAMvSD+/wCeAnTuA3Aav3gavpeybZNQhTrdU4JhSJEJBYYmMNEBTjigPbhI89erhwTkkAu7k3JtRwvrUfyKsV9NqS9mpGGzV6uWg4uMtYwl1xIzjGfZj/vzKznum7e9vekNrOkZe+TfJUXZusJrhn0SiT1etL+rcypC1oV+JLX5CT0aHccEdoq39v7x8U28ci8V4pr+mLO6YeWlttLpbYaYSeZUWMpWApwgAuvn4/6pFLcTuJr24yv0rYlsSoAiaIiAU6VKpySy1OabOFkrH4cNHVS1nq6epyCApxrTWlouFRaI2utcYWqr7aqioVUaipsL+l5h2uOJ8oaSSfSY8rPcrp5ibc9uenbH6dnb9N+lWek1yS59zo9HqfuynJS+5t1xtXzkK6em14QO5WMdvi+vd12/jcvq6p3Ls3C19SdJKfVBp8HTbDq40dDfUJWtCcOPYWCtX9yAMAAfx6/tt210/SVOqW/ziBVp5a+f7rS6VWBzvyXz1aeeaPyWSAGY4HTAJAAABeJEvhxar4Go1FUvSdmdJyCAAfaitf8AFP6XpjifKvCAfyAAUi3J7km5zdM4f3D+oShTwo0io1GkHvmL8PNNOjyn5F6QT3dwB5ckrALO8JezvMr7dq6/uroX/wBkxUn/ANNxUK/6U8pP5AdpLbbttRVEVTiAcQCuqFNChV6dTquO6Yry0660f0fEMxwO7tOOXAJ6bOvhxar4JpVKTL0nZnScgEkj2orX/JX6XpjifCfCAf7ZKlO5HcjTNIUynbANgFFccccWaTVarSTzvyX1dHWWnR8lq6l6QTgAEAgAkJaLRbPcJqzw1PqcU/V1/NXQymNGSrmTFSfKEny3GQr5udFOqGB08C9uG3CZc6bVd/e/uv8Apaba/qsGDVexM5KerS1NH4xx0S0wke506cvyi6m1NeziwXsa0LoViVpWzelX0qWtSMMxmR0D7wHa5JWkENtDogftzKLDcbuN0/ZXT0DYTsKpL0isyHPtdYrFL92U7KX2uNNOJ+chRz6jvhA7U4x23NG6NtFwprRC5tzRB1VffVUVaKdTkOBf0vMO5ttXlDSSR6r3lZ7U9P4Ebddutc3DVyq77999fEXRUUGpRIlSJaanNNnKPbPwhp6JQ2Orp6DIJKpmvde3k4qF5I9orRQ5GmLO6YeQpxxTRQw0wk8qZUlKcBThAIaYHxH+Sg03C7hdJbXtJRNjOxmnOzdXTXBArdagJ9aX9W5hK0IWn8SWvwpQ6NDtGCO2pbi3FqOF3aj+eN8fpdS3t1LHWmk0lLocXGWoZU02o5wBn3pH+Kc57gm37b9q3d1q2qb3N7ddFPt3TwqbGjzVlhiYw0SUtoST7cJHjp1cPQZyScl0rpXa4m12om33b7TndOWh04436rpaLMcR2zyplykpwAMDDMcft+eSlzfu/ehdlehY+y7ZdDXUrg1JSYtdrsVsPS25bgCSMpB55as4CR0ZBAA5vGm0tpLX8Ne16tye5NbNfvDX23DRaKXg69HeWMltBOcud2XnzkJBKU5J7glirFa930a9qW8PeHWvtFsaRzyGGJDhjx5EdolXoM8x9uIjB51+VnIBJJI67yXkubxFLmwdrm1ykqoVqKEptDzyGSxGXGaISJUkJxyMpx7TPlRx0z8XV7b2264f9umtpO0lj7xdKscjNdrrLQeksyXAE8yuXPNJVnDbQyGgR0z5/tk7KW54fVuXN2e7N8Vi6lZC3aFQnXQ9JYkuAq5U82eaSrOXHTkNAkA5PUJZmzNzOIhcyfum3TVZVDtTQlOLZZW6WIy4zRKjFjFRHIwnHuveVHPXmyU/d8756+32a+p2z/Z/RftFsKRyR3347Rjx5EdohPrv8o9uKjA5G/KzgkEkAO7u3dthw27YJ207aUNV68FebbFbrYZDr0d5YwHFgZy6ebDTAyEAhRyT3Z7C2F0Jsn0I/vP3ny11K4VSUuVQqFKcD0tuW4CodFE88tWcqUejQJJOfAe1dq7s8TO7MzcLuFqLunbRadW56TXqlmOI7Z5lRIqlYASAMvSD+/54CdW4DcBq/eBq+l7Jtk1CFOt1TgmFIkQkFiPMYaICnHFAe3CR569XDgnJIBdXJuTajhfWo/kXYsRdSXs1Iw2avVy0HFxlrGEuuJGcYz7Mf9+ZWc903b3t70jtZ0hL3yb5Ki7N1hNcM+iUSer1pf1bmVIWtCvxJa/ISejQ7jgjtFaA0BePim3jkXhvDMf0xZ3TDy0ttpdLbDTCTzKixlKwFOEAF18/H/VIpbidxNe3GV6lbEtiVAETREQCmy5dOBZanNNnCzzj8OGjqVrPV09TkEBTjWmtLRcKi0Rtda4wdVX21VFQqo1FTYX9LzDtccT5Q0kk+kx5We5XTzE257c9O2P07O36b9Ks9Irkhz7nR6PU/dlOSl9zbrjavnIV09NrwgdysY7R+ltL3r4r963dfa+flaVs3pV9SUISvDMdkdSwyT2uSVpALjp6IH7cqT63rLin2O211dNkrAWlZr2kNKMpgMzok4Ro7jySfU9PsUXE5xl0nK1cx6jBPkcOLfHi2XvNSqZl6Ss3pOR4CstRG/JSk/F6Y4nyrwhJ/IYCkW5Lck3NbpnD+4f1CUKeFGkVGo0g5XMX4daaeHlPyL0gnr3AHlySsAs7wl7O8yvt2rr+6uhf/ZMVJ/8ATcVCv+lPKT+QHaS227bUVRFU4gHEArqhTQoVenU6rjumK8tOutH9HxDMcDu7TjlwCenTr4cWq+CaVSky9J2Z0nIBJI9qK1/zV+l6Y4nwnwgH+wJUp3I7kaZpCmU3YBsAorjjjizSarVaSed+S+ro6y06PktXUvSCcAZAIAJCWi0Wz3Cas8NUanFP1dfzV0NSY0ZKuZMVJ8oSfLcZCvm50U6oYHTwL24bcJtzptV397+q/wClptr+qwYVV7Ezkp6tLU1+mOOiWmEj3Djpy/KLqbU16+LBexrQuhWJWlbN6VfSpa1IwzGZHQPvAdrklaQQ20OiB+3MosNxu4zT1ldPQNhOwqkvSK1Ic+11isUz3ZTspfa4004n5yFHPqO+EDKU4x23dG6NtFwprRC51zRB1VffVUVaadTkuBf0vMO5ttXlDSSR6r3lZ7U9P4D7ddutd3D12q77999fEXRUUGpRIlSJaanNNnKOw/CGjolDY6unoMgkqma+17eTin3kj2htDDkaYs7ph5CnHFNFDDTCTyplSUpwFOEAhpgfH/ZQabhdwuktr2komxrYzTnZurprggVqtQE+tL+rcwlaELT+JLX4UodGh2jBHbTtxbi1HC7tP/PG+P0upb26lYWmk0kOhxcZahlTTajnAGfekf4pznuC7ftv2rd3erapvb3t14U63dOCpsaNNWWGJjDRJS2hJPtwkeOnVw5Azkk5LpXSu1xNrtRNvu32nO6ctDpxxsuulosxxHbPKmXKSnAAwMMxx+355KXN+796F2V6Fj7Ltl0NdSuDUlJi12uxWw9LbluAJPVIPPLVnASOjIIAGfGm0lpbX8Ni16tye5NbVfvDX23DRaKXg69HeWMltBOcud2XnzkJBKU5J7gdirF6930a9qW8PeFWvtFsaRzyGGJDhjx5EdolXoM8x9uIjB51+VnIBJJI+LyXkubxFLmwdrm1ykqoVqKEptDzyGixGXGaISJUkJA5GU49pnyo46Z+Lq9t7bdcP+3TW0naSwKxdKscjVdrrTQeksyXAE8yuXPNJVnDbQyGgR0yev8AbJ2Ttzw+7cubs92b4rF06wFu0KhOuh6SxJcBVyp5s80lWcuOnIaBIySeoSzVmrmcRC5k/dNumqyqFamhFxxllx0sRlxmiVGLGKiORhOPde8qORnOSn7vnfPX2+zX1O2f7P6L9othSOSO+/HaMeNIjNEJ9d/lHtxUYHI35WcEgkgB3d27tsOG3bBO2nbShqvXgrzbYrdbDIdejvLGA4sDOXTzYaYGQgEKOSe7PYWwuhNlGhJG8/efLXUrhVJS5VCoUpwPS25bgKh0UTzy1ZypR6NAkk83gPau1l2eJndmXuF3C1F3TtodOOOek16pZjiO2eZUSKpWAEgDL0g/v+eAnVuA3Aau3gaupeybZNQhTrdU4JhSJEJBYYmMNEBTi1Ae3CR569XDgnJIBdXJuTajhfWo/kXYsRtSXs1Kw2avVy0HFxlrGEuuJGcYz7Mf/JWc903b1t70htZ0hL3yb5Ki7N1hNcM+iUSer1pf1bmVIWtCvxJa/ISejQ7jgjtFaA0BePim3jkXhvDMkaYs7ph5aW20ulthphJ5lRYylYCnCAC8+fj/AKpFLcTuJr24yvUrYlsSoAiaIiAU6XLpqSy1OabOFnnH4cNHUrWerp6nIICnGtNaWi4VFov5XWuMLVV9tVRULqNRW2F/S8w7XHE+UNJJPpMeVnuV08w9ue3PTtj9Ozt+m/SrPSK5Ic+50ej1P3ZTkpfc2642r5yFHHpteGx3KxjtIaX0veviv3rd19r5+VpWzelX1JQhK8Mx2R1LDJPa5JWkAuOnogftypNncfuPnXTnUrYNsF0/6WmWv6VNm0rsTOSno6hLo+MYdVOvKOXDnqQe71/RWzbh97dNK023u5LVOkarr5TCahUpFVqao68u9AlptKhytDkITzDJ6qPnA8o3J7lWai3TNgXD8oJFNUo0qoVGjnKpij+K008PKPJekE93UA8uSVgTZ3hLWd5lfbtXX91dC6fqTFSf/TcVCv8ApTyk/kB2kttu21FURVOIDxAa6oU0KFXp1Oq47pivLTrrR/R8QzHA7u045cAnp06+HFqvgmlUpEvSdmdJyASSPaitfktX6XpjifCfCAf7ZKlO5HcjTNIUym7ANgFFccdcWaTVarSTzvyX1dHWWnR8lq6l6QTgAEAgAkJaLRbPcJqzw1RqgU/V1/NXQ1JjRkq5hFSfKEny3GQr5udFOqGB08C9uG3Cbc6bVd/W/qv+lptr+qwoNV7Ezkp6tLU0fjHHRLTCRlzp05flF1Nqa9fFgvW1oXQrErStm9KyEqWtSMMx2R0D7wHa5JWkENtDogftzKLDcbuN09ZTT0DYVsKpL0itSHPtdYrFL92U7KX2uNNOJ+chRz6jvhAylOMdt3RujbRcKe0Qudc4QdVX31VFWmnU5LgX9LzDubbV5Q0kkeq95We1PT+A+3XbrXdw9dqu+/ffXxF0TFBqUSJUiWmpzTZyjsPwhp6JQ2Orp6DIJKpmvtfXk4p95I9obQw5GmLO6YeQpxxTRQw0wk8qZUlKcBThAIaYHx/2UGu4XcLpLa7pKHsa2M052bq6a4IFbrcBPrS/q3MJWhC0/iS1+CodGh2jBHbTtxbi0/C8tR/PG+P0upb26lYWKTSQ6HFxlqGVNNqOcAZ96R/inOe4Jt+2/at3d6tqm9ve3XhTrd08Kmxo01ZYYmMNElLaEk+3CR46dXDkDOSTkuldK7XE2u1E2+7fac7py0OnHG/Vd9IsxxHbPKmXKSnAAAGGY4/b88lLm/d+9C7K9Cx9l2y6GupXBqSkxa7XYrYelty3AEnqkHnlqzgJHRoEADPjTaS0lr+Gxa9W5Pcmtqv3hr7bhotFLwdejvLGS2gnOXO7Lz5yEglKck9wSxdi9e76de1LeFvCrX2i2NI55DDEhwx48iO0Sr0GeY+3ERg87nlZyASSSOu8l5Lm8RS5sDa3tcpKqFaihKbQ88hosRlxmiEiVJCQORlOPaZ8qOOmfi6vbe23XD/t01tJ2ksCsXSrHI1Xa600HpLMlwBPMrlzzSVZw20MhoEdM+f7ZOydueH3blzdnuzfFYunWAt2hUJ10PSWJLgKuVPNnmkqzlx05DQJGST1CWas1cziI3Mn7pt01WVQrU0JTi2WVuliMuM0SoxYxURyMJx7r3lRyM82Sn7vnfPX2+zX1O2f7P6L9othSOSO+/HaMePIjtEJ9d/lHtxUYHI35WcEgkgB5d27tsOG3bBO2nbShqvXgrzbYrdbDIdejvLGA4sDOXTzYaYGQgEKOSe7NYWwuhNlGhJG8/efLXUrhVJS5VCoUpwPS25bgKh0UTzy1ZypR6NAkk83gPay1l2eJndmZuF3C1F3TlodOOOek16pZjiO2eZUSKpWAEgDL0g/v+eAnVuA3Aau3f6upeybZNQhTrdU4JhSJEJBYYmMNEBTjigPbhI89erhwTkkAurk3JtRwvrUfyLsWIupb2akYQavVy0HFxlrGEuuJGcYz7Mf/JWc903b1t70jta0jL3yb5Ki7N1fNcM+iUSer1pf1bmVIWtCvxJa/ISejQ7jgjtFaA0BePim3jkXhvDMkaYs7ph5aW20ulthphJ5lRYylYCnCAC6+fj/AKpFLcTuJr24uvUrYlsSoAiaIiAU6XLpwLLU5ps4Wecfhw0dStZ6unqcggKca01paLhUWiNrrXGFqq+2qoqFVGorbC/peYdrjifKGkk+0x5We5XT+Ie3Pbnp2yGnZ2/XfpVnpFckOfc6PR6n7spyUvubdcbV85CunpteEDuVjHaP0vpe9fFfvW7r3XsiVpWzelX1JQhK8Mx2R1LDJPa5JWkAuOnogftypNrcfuPnXTnUrYLsGoHpaZa/pU2bSuxM5KejqUuj4xh1U68o5cOepB7mlbrdn+E1Z86V0qafq6/mroaVSpSk8wig+FqHluOg/Bvop1Q5j08eP6D4Ye5jc/QzfW6dwYlDrurX1z1MVxl1ya60oAodcCfwwoZ5W+nKkJ6DoB7DyWc4StnySqnawv5q2GQD5TGQf/TcVCv+lOqH5AdpHbbttTVEVPiA8QGvKFMChV6dTquO6Yryy640f0fEMxwO7tOOXAJ6dOvhxar4JpVJTL0nZnScgEkj2orX/NX6XpjifCfCAf7ZKlO5HcjTNH0ynbANgFFccdcX9pqtVpJ535L6ujrLTo+S1dS9IJwACAQASEtFotnuE1Z4ao1QKfq6/mroakxoyVcyYqT5Qk+W4yFfNzop1QwOngXtw24TbnTarv639V/0tNtf1WFCqvYmclPVpamj8Y46JaYSMuHHTl+UXU2pr18WC9jWhNCsStK2b0q+lS1qRhmOyOgfeA7XJK0ghtodED9uZRYbjdxunrKaegbCthVJekVqQ59rrFYpfuynZS+1xppxPzkKOfUd8IHanGO27o3RtouFPaIXOucIOqr7aqirRTqchwL+l5h3Ntq8oaSSPVe8rPanp/Afbrt1ru4eu1Xffvvr4i6Jig1KJEqRLTU5ps5R2H4Q09EobHV09BkElUzX2vrycU+8ke0NoYcjTFndMPIU44pooYaYSeVMqSlOApwgENMD4/7KDTcLuF0jtd0jE2M7Gqc7N1dNcECt1uAn1pf1bmErQhafxJa/BUOjQ7RgjtqW4txajheWn/njfH6XUt7dSsLFJpIdDi4y1DKmm1HOAM+9I/xTnPcE2/bftW7u9W1Te3vbrwp9u6eFTY0aassMTGGiSltCSfbhI8dOrhyBnJJyXSuldria3aibfdvtOd05aHTjjfqu+kWY4jtnlTLlJTgAADDMcft+eSlzfu/ehdlehY+y7ZdDXUrg1JSYtdrsVsPS25bgCSMpB55as4CR0aBAA5vGm0lpLX8Ni16tye5NbVfvDX23DRaKXg69HeWMltBOcu92XnzkJBKU5J7gli7F693069qW8LeFWvtFsaRzyGGJDhjx5EdolXoM8x9uIjB53PKzkAkkkdd5LyXN4idzYG1va5SVUK1FCU2h55DRYjLjNEJEqSE45GU49pnyo46Z+Lu9t7bdcP8Aty1tJ2ksfeLpVjkartdaaD0lmS4AnmVy55pKs4baGQ0COmT15ZOydueH3blzdnuzfFYunWQt2hUJ10PSWJLgKuVPNnmkqzlx05DQJGST1CWaszcziI3Mn7pt0tWVQrU0JTi2WVuliM5GaJUYsYqI5GE4917yo5GebJT2Xzvnr7fZr6nbP9n1F+0WwpHJHffjtGPHkRmiE+u9yj24qMDkb8rOCQSQA7u7d22HDbtgnbTtpQ1XrwV5tsVuthkOvR3ljAcWBnLp5sNMDIQCFKyT3ZrC2F0Jso0JI3n7z5a6lcKpKXKoVClOB6W3LcBUOiieeWrOVKPRoEknm8B7WWsuzxNLszNwm4Wou6ctDpxxz0mvVLMcR2zzKiRVKwAkAZekH9/zwE6twG4DV27/AFdS9kuyWhCnW6pwTCkyISCwxMYaICnFqA9uEjz16uHBOcgF1cm5NqOF9aj+Rdi/pdS3s1Iwg1erloOLjLWMJdcSM4xn2Y/+Ss57pu3rb1pHa1pGXvk3yVF2bq+a4Z9Eok9XrS/q3MqQtaFfiS1+Qk9Gh3HBHaK0BoC8fFNvJIvDeGZI0xZ3TDy0ttpdLbDTCTzKixlKwFOEAF18/H/VIpbidxNe3F16lbEtiVAETREQCnS5VNBZanNNnCzzj8OGjqVrPV09TkEBTjWmtLRcKi0Rtda8wdVX21VFQuo1FTYX9LzDtccT5Q0kk+kx5We5XTzD257c9O2Q07O36b9Ks9Irchz7nR6PU/dlOSl9zbrjavnIUcem14QO5WMdo/S+l718V+9buvdevytK2b0q+pKEJXhmOyOpYZJ7XJK0gFx09ED9uVJs7kNx866c6lbBdgtA9LTLX9KmzaV2JnJT0dSl0fGMOqnXlHLhz1IPc1rdbs/wmrPnSulTT9W381bDSqVKUnmEUHwtQ8tx0H4N9FOqHMeng3tu23UvRVLqO/8A3/1pxx5xf3alUqrDnfkPq6tPOtH5OK6BmOBgDBIAAA8luTvr3w341rU9c2QZ1jQdHpeMGnwKHT1SGmkI6j1XEoUFPELBV1wMgAYA/j1HbZtrFRRU9/vECry/tqCKrT6dWB3zF/8AxOusn9HgMxwO7occuAT06dfDi1XwTSaSmXpOzOk5AJJHtRWv+av0vTHE+E+EA/2yVKdyO5GmaPplO2AbAKK4464s0mq1Wknnfkvq6OstOj5LV1L0gnAAIBABIS0Wi2e4TVnhqjVAp+rr+auhqTGjJVzJipPlCT5bjIV83OinVDA6eBe3DbhNudNqu/rf1X/S021/VYUKq9iZyU9WlqaPxjjolphIy4cdOX5RdTamvXxYL1taE0IxK0rZvSr6VLWpGGY7I6B94DtckrSCG2h0QP25lFhuN3G6espp6BsK2FUl6RWpDn2ysVime7KdlL7XGmnE9VyFHPqO+EDtTjHbd0bo20XCntELnXOEHVV9tVRVpp1OQ4F/S8w7m21eUNJJHqveVntT0/gPt22613cPXarvv3318RdExQalEiVIlpqc02co7D+HDR0ShsdXT0GQSVTNfa+vJxT7yR7Q2hhyNMWd0w8hTjimihhphJ5UypKU4CnCAQ0wPj/soNNwu4XSW13SMTY1sapzs3V01wQK3W4CfWl/VuYStCFp/Elr8FQ6NDtTgjtp23txajheWn/njfH6XUt7dSsLFJpAdDi4y1DKmm1HOAM+9I/xTnPcF2/bftW7u9W1Te3vbrwp9u6eFTY0aassMTGGiSltCSfbhI8dOrhyBnJJyXSuldria3aibfdvtOd05aHTjjfqu+kWY4jtnlTLlJTgAADDMcft+eSlzfu/ehdlehY+y7ZdDXUrg1JSYtdrsVsPS25bgCSMpB55as4CR0aBAAz402ktJa/hsWvVuT3Jrar94a+24aLRS8HXo7yxktoJzl3uy8+chIJSnJPcEsXYvXu+nXtR3hbwq19otjSOeQwxIdMePIjtEq9BnmPtxEYPO55WcgEkkjrvJeS5vETubB2t7W6SqhWooSm0PPIaLEZcZohIlSQkDkYTj2mfKjjpn4u723tt1w/rctbSdpTH3i6VY5Gq7XWmg9JZkuAJ5lcueaSrOG2hkNAjoSevLJ2Ttzw+7cubs92b4rF06wFu0KhOuh6SxJcBVyp5s80lWcuOnIaBIBJPUJZqzVzOIjcyful3TVZVCtTQlOLZZW6WIy4zRKjFjFRHIwnHuveVHIzzZKey+d89fb69fU7Z9s+ov2i2FI5I778dox48iO0Qn13uUe3ERgcjflZwSCSAHV3buWw4bVsE7adtKGq9eCvNtit1sMh16O8sYDiwM5dPNhpgZCAQpWSe7PYWwuhNlGhJG9DefMXUrhVJS5VCoUpwPS25bgKh0UTzy1ZypR6NAkk58B7WWsuzxNLszNwu4Wou6ctDpxxz0mvVLMcR2zzKiRVKwAABl6Qf3/PATq3AbgNXbv8AV1L2S7JaEKdbqnBMKRIhILDExhogKcWoD24SPPXq4cE5JALq5NybUcL61H8i7FiLqW9mpWGzV6uWg4uMtYwl1xIzjGfZj/5Kznum7etvWkdrWkZe+TfJUXZur5rhn0SiT1etL+rcypC1oV+JLX5CT0aHccEdorQGgLx8U68ki8N4JkjTFndMPLS22l0tsNMJPMqLGUrAU4QAXXz8f9UiluJ3FV7cVXqVsR2I0ARNExAKbLl04Flqc02cL7x+HDR1K1nq6epyCApxrPWdo+FRaI2vteYWqr7aqioXUaipsL+l5h2uOJ8oaSSfSY8rPcrp/EPbntz07ZDTs/fpv0qz0ityHPudHo9T92U5KX3NuuNq+chRx6bXhA7lYx2kNL6XvXxX71u6916/K0rZvSr6koQleGY7I6lhkntckrSAXHT0QP25UmzuQ3HzrpTqVsF2C0D0tMtf0qbNpXYmclPR1CXf0xh1U68o5cOeuPk0rdbs/wAJqz50rpU0/V1/NXQ0qlSlJ5hFB8LUPLcdB+DfRTqhzHp4N7btt1L0XS6jv/3/ANadcecWKtSqVVhzvyH1dWnnWj8nFdAzHAwBgkAAAFafT74cWq+CqxWFy9J2Z0nIIAB9qK15KEk9r0xxPyV4QD/bAV7ZqXiaba9p9QTYOx9r39Qaa0m0If11NmNtR3JIJ9XlUoEvHOOZ3PcoqxkAE+JzqhfLi2XvTS6YiZpKzelJAUsnq1EbP6lY7Xpjic4T4QD+QyVKdyO5GmaPplO2AbAKK4464s0mq1Wknnfkvq6OstOj5LV1L0gnAAIBABIS0Wi2e4TVnhqjVAp+rb+athqTGjJVzCKD5Qk+W4yFfNzop1QwOngXtw24Tbnzarv639V/0tNNf1WDCqvYmclPVpamj8Y46JaZSMuHHTl+UXU2pr18WC9bWhNCMStK2b0q+lS1qRhmOyOgfeA7XJK0ghtodED9uZRYbjdxunrKaegbCthVJekVqQ59srFYpnuynZS+1xppxPzkKOfUd8IHanGO27o3RtouFPaIXOucIOqr7aqirRTqclwL+l5h3Ntq8oaSSPVe8rPanp/Afbrt1ru4eu1Xffvvr4i6Jig1KJEqRLTU5ps5R2H8OGjolDY6unoMgkqma+19eTin3kj2htDDkaYs7ph5CnHFNFDDTCTyplSUpwFOEAhpgfH/AGUGu4XcLpHa7pGJsa2NU52bq+a4IFbrcBPrS/q3MJWhC0/iS1+CodGh2jBHbStxbi1HC8tR/PK+X0upb26lYWKTSQ6HFxlrGVNNqOcAZ96R/inOe4Lt+2/at3eatqm9ve3XRTrd04Kmxo81ZYYmMNElLaEk+3CR46dXDkDOSTkuldK7XE1u1E2+bfKc7py0OnHG/Vd9EsxxHbPKmXKSnAAAGGY4/b88lLi/d+9C7KtCx9l2y+GupXBqSkxa7XYrYelty3AEkZSDzy1ZwEjo0CABnxqtJaS1/DYtercpuTW1X7w19tw0Wil4OvR3ljJbQTnLvdl585CQSlOSe4JYuxevd9OvajvC3hVr7RbGkc8hhiQ6Y8eRHaJV6DPMfbiIwedzys5AJJJHXeS8lzeInc2Dtb2t0lVCtRQlNoeeQ0WIy4zRCRKkhIHIwnHtM+VHHTPxd3tvbbnh/W5a2lbSmBWLpVgIartdaaD0liS4AnmVy55pKs4baGQ0COmT15ZOydueH5bl3dpu0eFYunWAt2hUJ10PSWJLgKuVPNnmkqzlx05DQJGcnqEs1Zq5nESuZP3S7pasqhWpoSnFssrdLEZcZolRixiojkYTj3XvKjnrzZKey+d89fb69fU7Z9s+ov2i2FI5I778dox48iO0Qn13uUe3ERgcjflZwSCSAHV3LuWw4bVsE7attSGq9eCvNtit1sMh16O8sYDiwM5dPNhpgZCAQpWSe7PYSwuhNlGhH96G8+YupXCqSlSqFQpTgelty3AVDoonnlqzlSj0aBJJ5vAe1lrLs8TS7MzcJuFqLunLQ6ccc9Jr1SzHEds8yokVSsAAAZekH9/zwE6twG4DV27/AFdS9kuyWhCnW6pwTCkSISCwxMYaICnFqA9uEjz16uHBOSQC6uTcm1HC9tR/Iuxf0upb2alYbNXq5aDi4y1jCXXEjOMZ9mP/AJKznum7etvWkdrekZe+TfJUXZur5rhn0SiT1etL+rcypC1oV+JLX5CT0aHccEdorQGgLx8U68ci8F4JkjTFndMPLS22l0oYaYSeZUWMpWApwgAuvn4/6pFLcVuJr24qvUrYjsSoAiaJiAU2XLpoLLU5ps4X3j8OGjqVrPV09TkEBTjWes7RcKi0Rtfa8wtVX21VFQqo1FTYX9LzDtccT5Q0kk+kx5We5XT+Ie3Pbnp2yOnZ+/XfpVnpFbkOfc6PR6n7spyUvubdcbV85CunpteEDuVjHaQ0vpe9fFfvW7r3Xr8rStm9KvqShCV4ZjsjqWGSe1yStIBcdPRA/blSbO4/cfOulOpWwXYLQPS001/Sps2ldiZyU9HUJdHxjjqp15Ry4c9cHuaVut2f4TVnjpXSpp+rr+athpVKlKTzCKD4WoeW46D8G+inVDmPTwb23bbqXoul1Hf/AL/606484sValUqrDnfkPq6tPOtH5OK6BmOBgAAkAAAFafT74cWm+CqxWFy9J2Z0nJIAB9qK15KEk9rsxxPyV4QD/bAUh3Jbkk1gUvh/8P8AoShSwo0io1GkHumK8OtNuj9HyL0gnu7uvLkn1G33D/2O2U0fTNIbmNYadn6+eZE+oOTK8YQQHOgbZbC0n0klCgFEZUeY9MgDzfcluTpWkaZTtgfD9oi1recNKqlVpB9R6Q8vo6yy8Oq1q6l6QTgAEAgAkJKLRbPcJqzw1RqgU/Vt/NWw1JjRkq5kxQfKEny3GQfm50U6oYHTwL24bcJt0JtV39b+q/6Wmmv6rChVXsTOSnq0tTR+McdEtMpGXDjpy/KLqfU16+LBexrQmhGJWlbN6VfSpa1IwzHZHQPvAdrklaQQ20OiB+3MosNxu4zT1k9PQNhWwqkuyK1Ic+2VisUz3ZTspfa4024n5yFdfUd8IHanGO25o3RtouFPaIXOucIWqr7aqirTTqclwL+l5h3Ntq8oaSSPVe8rPanp/Ajbrt1ru4eu1Xffvvr4i6Jig1KJEqRLTU5ps5R2H8OGjolDY6unoMgkqma+19eTin3kj2gtDDkaYs7ph5CnHFNFDDTCTyplSUpwFOEAhpgfH/ZQa7hdwukdrmkYmxrY1TnZur5rggVutwE+tL+rcwlaELT+JLX4Kh0aHaMEdtO29t7UcLy1H88r5fS6lvbqVhYpNJDocXGWsZU02o5wBn3pH+Kc57gm37b9q3d5q2qb297deFOt3TgqbGjTVlhiYw0SUtoST7cJHjp1cOQM5JOS6d07tcTW7UTb5t8pzunLQ6ccb9V30SzHEds8qZcpKcAAAYZjj9vzyUuL9X60Lsq0LH2X7L4a6lcGpKTFrtdith6W3LcASeqQeeWrOEpHRoEADPjVaS0lr+Gza9W5Tcotqv3hr7bholFLwdejvLGS2gnOXe7Lz5yEAlKck9wOxdi9e76de1LeFvCrX2i2NI55DDEhwx48iO0Sr0GeY+3ERg87nlZyASSSPi8l5Lm8RO5sDa3tbpKqFaihKbQ88hosRlxmiEiVJCQORhOPaZ8qOOmfi7vbe23PD+ty1tK2lMCsXSrHI1Xa600HpLElwBPMrlzzSVZw20MhoEdCT15ZOydueH5blzdpu0fFYunWAt2hUJ10PSWJLgKuVPNnmkqzlx05DQJ6knqEs1Zq5nESuZP3S7pasqhWooSnFssrdLEZcZolRixiojkYTj3XvKjkZzkp7L53z19vr19Ttn2z6i/aLYUjkjvvx2jHjyI7RCfXe5R7cRGByN+VnBIJIAd3cu5bDhtWwTtq21Iar14K822K3WwyHXo7yxgOLAzl3uw0wMhAIUrJPdmsLYXQmynQkjehvQlrqVwqkpUqhUKU4HpbctwFQ6KJ55as5Uo9GgSSc+A9rLWXZ4ml2Zm4XcJUXdOWh04456TXqlmOI7Z5lRIqlYAAAy9IP7/ngJ1bgNwGrt32rqXsl2S0IU63VOCYUiRCQWGJjDRAU4tQHtwkeevVw4JzkAurk3JtRwvbUfyLsZ9LqW9mpWGzV6uWg4uMtYwl1xIzjGfZj/5Kznum7etvWkdrekZe+TfJUXZur5rhn0SiT1etL+rcypC1oV+JLX5CT0aHccEdorQGgLx8U68ci8F4JkjTFndMPLS22l0oYaYSeZUWMpWApwgAuvn4/wCqRS3Fbiq9uKr1K2I7EqAImiYgFNly6aCy1OabOF94/Dho6qWs9XT1OQQFONZ6ztFwp7RG19rzB1VfbVUVC6jUVthf0vMO1xxPlDSST6THlZ7ldP4h7c9uenbI6en79N+tWekVuQ59zo9HqfuynJS+5t1xtXzkK6em14QO5WMdpDS+l718V+9buvdevytK2b0q+pKEJXhmOyOpYZJ7XJK0gFx09ED9uVJs7kNyE66U6lbBdgtA9LTTX9KmzaV2JnJT0dQl0fGMOqnXlHLhz1we5pW63Z7hNWeOldKmn6uv5q6GlUqUpPMIoPhah5bjoPwb6KdUOY9PBvbdtupei6XUd/8Av/rTjjzixVqVSqsOd+Q+rq0860fk4roGY4GAMEgAAArAgXw4tV8FVirrl6TszpOSQAD7UVryUJPxemOJ+SvCAf7YCkO5LckmrppfD/4f9BUKYCaTUajST3TFeHWm3R+j5F6QT3d3XlyStWuzvCWs76bf27V1/dXQup+SYqT/AOm4qFf9KeUn8gO3w/SPDl3abuKWvcDcLV9OpdU1a+qYlFfLwlvMED03eRCSGmyOiEdMJSOgBH8e40ah2d4TFn//AMn1P9u1ffvVkRSIsZCuZMZJ8pQfk3GQfm50U6oco6DoK24bcJt0J1V39b+q/wClppr+qwoVV7Ezkp6tLU1+mOOiWmUj3Djpy/KLqfU96+LBetrQmhGJWlbN6VkJUtakYZjsjoH3gO1yStIIbaHRA/bmUWG43cbp6yenoGwrYVSXZFakOfbKxWKZ7sp2UvtcaacT85CuvqO+EDtTjHbc0Zo20XCntELnXPEHVV9tVRVpp1OS4F/S8w7m21eUNJJHqveVntT0/gRt227V3cRXarvu3318RdExAalEiVIllqc02co7D+HDR0CGx1dPQZBJVM19r68nFPvJHtBaCHI0xZ3TDyFOOKaKGGmEnlTKkpTgKcIBDTA+P+yg13C7hdI7XNIxNjWxqnOzdXzXBArdbgJ9aX9W5hK0IWn8SWvwVDo0O0YI7adt7b2o4XlqP55Xy+l1Le3UrCxSaSHQ4uMtYypptRzgDPvSP8U5z3BNv+3/AFbu81bVN7e9uvCnW7pwVNjRpqywxMYaJKW0JJ9uEjx06uHIGcknJdO6d2uJrdqJt82+U53TlodOON+q76RZjiO2eVMuUlOAAAMMxx+355KXF+r9aF2VaFj7L9l8RdSuDUlJi12uxWw9LbluAJPVIPPLVnCUjo0CABnxqtJaS1/DZtercpuUW1X7w19tw0Wil4OvR3ljJbQTnLvdl585CASlOSe4HYuxevd9WvqlvC3g1r7RbCkc8hhiQ6Y8eRHaJV6DPMfbiIwedzys5AJJJHxeS8lzOInc2Btb2t0lVCtRQlNoeeQ0WIy4zRCRKkhIHIwnHtM+VHHTPxd3tvbbnh/W5a2lbSmBWLpVgIartdaaD0liS4AnmVy55pKs4baGQ0COmT15ZOydueH5blzdpu0fFYunWAt2hUJ10PSWJLgKuVPNnmkqzlx05DQJ6knqEs1Zq5nESuZP3S7pasqhWpoSnFssrdLEZcZolRixiojkYTj3XvKjkZ5slPZfO+evt9evqds+2fUX7RbCkckd9+O0Y8aRHaIT673KPbiIwORvys4JBJADu7l3LX8Nq16dtW2pDVevBXm2xW62GQ69HeWMBxYGcu92GmBkIBClZJ7s1hbC6E2U6Ekb0N6ExdSuFUlLlUKhSnA9LbluAqHRRPPLVnKlHo0CSTnwHtZay7PE0uzL3CbhKi7py0OnHHPSa9UsxxHbPMqJFUrAAAGXpB/f88BOrcBuA1du+1dS9kuyWginW6pwTCkyISCwxMYaICnFqA9uEjz16uHBOcgF1cm5NqOF7aj+RljPpdS3t1Kwg1erloOLjLWMJdcSM4xn2Y/+Ss57pm3rb1pHa3pGXvl3yVF2bq+a4Z9Eok9XrS/q3MqQtaFfiS1+Qk9Gh3HBHaL0BoC8nFOvJIvBeCZI0xZ3TDy0ttpdLbDTCTzKixlKwFOEAF18/H/VIpbitxVe3FV6lbEdiNAETRMQCmy5dNBZanNNnC+8fhw0dVLWerp6nIICnGs9Z2i4U9oja+15g6qvtqqKhdRqKmwv6XmHa44nyhpJJ9Jnys9yun8Q9uW3PT1kdPT9+u/SrPSK3Ic+50ej1P3ZTkpfc2642r5yFHHpteEDuVjHaQ0vpe9fFfvW7rzXj8rStm9KvqShCV4ZjsjqWGSe1yStIBcdPRA/blSbO5DchOujOpWwXYLQPS001/Sps2ldiZyU9HUJdHxjjqp15Ry4c9cHuaVut2f4TVnzpXSxp+rr+auhpVKlKTzCKD4WoeW46D8G+inVDmPTwb23bbqXoyl1Hf8A7/604484v7tSqVVhzvyX1dWnnWj8nFdAzHAwBgkAAAFYEC+HFqvgqr1hcvSdmdJyCAAfaiteeRJPa9McT8leEA/2wFIdyW5JNXTS+H9w/qCoUwKNIqNRpB7pivDrTbo/R8i9IJ7u7ry5JWrXZ3hLWd9Nv7dq6/uroXU/JMVJ/wDTcVCv+lPKT+QHaT227bWpLVT4gPEBrq/oOYVem02rjK5i/LLrrJ8p+IZjgde0kcoAPm11eJDvAuvrmpamsQ1XdO6LZc+ip0GnUoSuVCOvM856ah6qgoFQBwAUgeMn0HbftvnXOm1Tfxv81AW9Nsf1SFCq3YJwT+EtbX6Y46JaYSPcOOnL8oup9T3r4r962tB6DYlaVs3pV9KlrUjDMdkdA+8B2uSVpBDbQ6IH7cyiw3GbjNPWS09A2FbCqS9IrUhz7ZWKxTPdlOyl9rjTbifnIUc+o74QO1OMdtzRujLRcKe0Qufc8QtVX21VFWmnU5LgX9LzDubbV5Q0kkeq95We1P8AAjbtt2ru4iu1Xffvur4i6JiA1KJEqRLTU5ps5R2H4Q0dEobHV09BkElUvX2vrycU+8ke0FoIcjTFndMPIU44pooYaYSeVMqSlOApwgENMD4/7KDXcLuF0jtc0jE2NbGqc7N1fNcECt1uAn1pf1bmErQhafxJa/BUOjQ7RgjtqW3tvajheWo/nlfL6XUt7dSsLFJpIdDi4y1DKmm1HOAM+9I/xTnPcE2/bftW7vNW1Te3vbrop1u6cFTY0aassMTGGiSltCSfbhI8dOrhyBnJJyXTundria3aibfNvlOd05aHTjjfqu+kWY4jtnlTLlJTgAADDMcft+eSlzfq/WhdlWhY+y/ZfDXUrhVJSYtdrsVsPS25bgCT1SDzy1ZwlI6NAgAZ8abSWktfw2bXq3KblFtV+8NfbcNFopeDr0d5YyW0E5y73ZefOQgEpTknuB2LsXr7fVr2pbwd4Na+0WwpHPIYYkOmPHkR2iVegzzH24iMHnc8rOQCSSR8XkvJc3iJ3NgbW9rdJVQrUUJTaHnkNFiMuM0QkSpISByMJx7TPlRx05scru9t7Lc8P23Le0raUwKxdKscjVdrrTQeksSXAE8yuXPNJVnDbQyGgR0yevLJ2Ttzw/bcu7tN2j4rF06wFu0KhOuh6SxJcBVyp5s80lWcuOnIaBPXJ6hLNWaubxErmT90u6WrKoVqaEpxbLK3SxGXGaJUYsYqI5GE4917yo5682SnsvnfPX2+vX1O2fbPqL9othSOSO+/HaMePIjtEJ9d7lHtxEYHI35WcEgkgB3dy7lr+G1a9O2rbUhqvXgrzbYrdbDIdejvLGA4sDOXe7DTAyEAhSsk92awlhdC7KdCSN6G9CWupXBqSlSqFQpTgelty3AVDoonnlqzlSj0aBJJz4DWstZdniaXZl7hNwlRd05aHTjjnpNeqWY4jtnmVEiqVgAADL0g/v8AngJ17gNwGrt32rqXsl2S0IU63VOCYUiRCQWGJjDRAU4tQHtwkeevVw4JzkAurk3ItRwvbUfyMsZ9LqW9upWEGr1ctBxcZaxhLriRnGM+zH/yVnPdM29betI7XNIy98u+WouzdXzXDPolEnq9aX9W5lSFrQr8SWvyEno0O44I7RegNA3j4p15JF4LwTJGmLO6YeWlttLpQw0wk8yosZSsBThABdfPx/1SKW4rcTXtxNepWxHYjQBF0TEApsuXTQWmpzTZwvvH4cNHVS3D1dPU5BAU41nrK0XCntEbYWwMHVV9tVRUKqNRU2F/S8w7XHE+UNJJPpM+VnuV0/iHty25aeslp6fv1361Z6RW5Dn3Oj0ep+7KclL7m3XW1fOQo49NrwgdysY7SGl9L3r4r963dea8flaVs3pV9SUISvDMdkdSwyT2uSVpALjp6IH7cqTZ3IbkJ10Z1K2C7BaB6Wmmv6VNm0rsTOSno6hLo+MYdVOvKOXDnrg9zSt1uz/Cas+dLaWNP1dfzV0NKpUpSeZMVJ8LUPLcdB+DfRTqhzHp4N7btt1L0ZS6jv8A9/8AWnHHnF/dqVSqsOd+Q+rq0860fk4roGY4GAACQAAAVgQL38Wq+CqvV1S9J2Z0nIIAB9qK15KEk9r0xxPyV4QD/bAUh3Jbkk1dNL4f3D+oKhTAo0io1GkHumK8OtNuj9HyL0gnu7uvLklatdneEtZ302/t2rr+6uhdT8kxUn/03FQr/pTyk/kB2k9tm21qU1U+IDxAa6r6DmFXptNq4yuYvyy66yfKfiGY4HXtJHLgE7KlXw4td8BAgJl6TszpOSCSR7URr/kr9L0xxPgeEA/2yVe9VfiI7S9m0lO3i0lvqhX6NpRsR351JeZ9FyZk+tzOL6vOZA53PBUSB0T/AB4LqfVN7eLHetrQ2ho8vStndLvpW4tacNRmvAfeA7XJK05DbQOED9uZRYbjdxmnrJaegbCthVJekVuQ59srFYpnuynZS+1xptxPzkKOfUd8IHanGO25ozRlouFPaIXPueIOqr7aqirRTqclwL+l5h3Ntq8oaSSPVe8rPanp/Afbtt2ru4mu1Xfdvur4i6JiA1KJEqRLLU5ps5R2H4Q0dEobHV09BkElUzX2vrycU+8ke0FoIcjTFndMPIU44pooYaYSeVMqSlOApwgENMD4/wCyg23C7hNI7XNIxNjWxqnOzdXzXBArdbgJ9aX9W5hK0IWn8SWvwVDo0O0YI7aVt7b2o4XlqP55Xy+l1Le3UrDgpFIDocXGWoZU02o5xjPvSP8AFOc9wXb9t/1du91dVN7W9quinW7pwVNjRpqywxMYaJKW0JJ9uEjx06uHIGcknJdO6d2eJpdqJt82+U53TlotOON+q76RZjiO2eVMuUlOAAAMMxx+355KXN+r9aF2U6Fj7L9l8RdSuFUlJi12uxWw9LbluAJPVIPPLVnCUjo0CABnxptHaS1/DZtercpuUW1X7wV9tw0Wil0OvR3ljJbQTnLvdl585CASlOSe4JYuxevt9WvqjvB3g1r7RbCkc8hhiQ4Y8eRHaJV6DPMfbiIwedzys5AJJJHXeW8tzOIlcyBta2tUlVCtRQlNoeeQ0WIy4zRCRKkhIHIwnHtM+VHBxnAS7vZe23PD9ty1tK2lMCsXSrAQ1Xa600HpLElwBPMrlzzSVZw20MhoEdCT15ZOydueH7blzdpu0eFYunWOd2hUJ10PSWJLgKuVPNnmkqzlx05DQJ6knqEs1Zq5nESubP3S7pasqhWooSnFssrdLEZcZolRixiojkYTj3XvKjkZ5slPZfS+evt9Wvqds+2e0X7RbCkckd9+O0Y8aRHaIT673KPbiIwORvys4JBJADu7l3LX8Nq16dtW2pDVevBXm2xW62GQ69HeWMBxYGcu92GmBkIBClZJ7s1hLCaF2U6Fkb0N6EtdSuDUlKlUKhSnA9LbluAqHRRPPLVnKlHo0CSTnwHtZay7PE0uzL3CbhKi7py0OnHHPSa9UsxxHbPMqJFUrAAAGXpB/f8APATq3AbgNXbvtXUvZLsloIp1u6cEwpEiEgsMTGGiApxagPbhI89erhwTnIBdXIuRajhe2o/kZYz6XUt7dSsNmr1ctBxcZaxhLriRnGM+zH/yVnPdM29betI7XNIy98u+WouzdXzXDPolEnq9aX9W5lSFrQr8SWvyEno0O44I7RegNA3k4p15JF4LwTJGmLO6YeWlttLpQw0wk8yosZSsBThABdfPx/1SKW4ncTXdxNdpWxHYjp8RNExAKbLl00Flqc02cL7x+HDR1Utw9XT1OQQFONZ6ztFwp7RG2FsDB1VfbVUVCqjUVNhf0vMO1xxPlDSST6TPlZ7ldP4h7c9uenrJaen79d+tWekVuQ59zo9HqfuynJS+5t1xtXzkKOPTa8IHcrGO0fpjTF6+K/et3XmvH5WlbN6VfUlCErwzHZHUsMk9rklaQC46eiB+3Kk2tyG5CddGbStguwWgelppr+lTZtK7EzkpPuoS6PjHHVTryjlw564+TSt1uz/Cas+dLaWNP1dfzV0NKpUpSeZMVJ8LUPLcdCvg30U6ocx6eDe27bdS9G0ypb/9/wDWnHHXFirUqlVYc78h9XVp51o/JxXQMxwMAYJAAABWBAvhxar4Kq9XXL0nZnScggAH2orXkoSfi9McT8leEA/2ACkO5LckmrJpfD/4f9CUKYCaRUajST3TFeHWm3R+j5F6QT3d3XlyStWuzvCXs76bf27V1/dXQup+SYqT/wCm4qFf9KeUn8gO0nts22NS2qnxAeIDXViBzCr02m1cZXMX5ZddaPlPxDMcDr2kjlABOypV8OLXfAQICZek7M6Tkgkke1Ea/wCSv0vTHE+B4QD/AGBKlG5LclTtM06m8P8A4f8ARHFlazSapVKSed6S8ro6y06Pks9S9IJwBkAgAkeh2x4Zu0e2uiKZQ9zOtadJ17KaE6eDqFMFtkL6BppBUCtCSlQ9QjuVzeBgALuO3Hacspp+DsM2D0h1+synfttXq9L96S5Jc7XGmnU9XJCv/ke8IA5U4x229GaMtFwp7RC59zxB1VfbVUVaadTkuBf0vMO5ttXlDSSR6r3lZ7U9P4D7dtu1d3E12q77t91fETRMQGpRIlSJZanNNnKOw/hw0dAhsdXT0GQSVTdfa+vJxTryR7QWghyNMWd0w8hTjimihhphJ5UypKU4CnCAQ0wPj/soNdwu4TSO1vSMTY1sapzs3V81wQK3W4CfWl/VuYStCFp/Elr8FQ6NDtGCO2lbe29qOF7aj+ed8/pdS3t1KwsUikB0OLjLWMqabUc4xn3pH+Kc57gu3/b9q7d7q2p72t7VeFOt3TgqbGjzVlhiYw0SUtoST7cJHjp1cOQM5UTkundO7PE0uzD297e6c7py0OnHG/Vd9IsxxHbPKmXKSnAAAGGY4/b88lLm/V+tC7KdCx9l+y+IupXCqSkxa7XYrYelty3AEnqkHnlqzhKR0aBAA5vGm0do7YcNm16tyu5RbVevBX23DRKIXg69HeWMltBOcu92XXzkIBKU5J7gli7F6+31a+qO8HeDWvtFsKRzyGGJDpjx5EdolXoM8x9uIjB53PKzkAkkkdd5by3M4iVzIG1ra1SVUK1FCU2h55DRYjLjNEJEqSEgcjCce0z5UcHGcBLu9l7bc8P23Le0raUwKxdOscjVdrrTQeksSXAE8yuXPNJVnDbQyGgR0yevLJWTtzw/bcu7td2r4rF06wFu0KhOuh6SxJcBVyp5s80lWcuOnIaBPUk9QlmrN3N4idzZ+6TdJVlUK1FCU4tllbpYjLjNEqMWMVEcjCce695Uc9ebJT2X0vpr3fVr2nbPdntF+0WwpHJHffjtGPHkR2iE+u9yj24iMDkb8rOCQSQA7u5dy2HDZtenbVtqQ1XrwV9tsVuthkOvR3ljAcWBnLvdhlgZCAQpWSe7NYWwuhdlWhZG9DehMXUrg1JSpVCoUpwPS25bgKh0UTzy1ZypR6NAkk58B7WWsuzxNbtS9wm4Oou6ctDpxxz0mvVLMcR2zzKiRVKwAABl6Qf3/PATq3A7gNXbvdXUvZLsloQp1u6cEwpMiEgsMTGGiApxah+HCR569XDgnOQC6uRci1HC9tR/Iyxv0upb26lYQavVy0HFxlrGEuuJGcYz7Mf/ACVnPdN29betI7XNIy98u+WouzdXzXDPolEnq9aX9W5lSFrQr8SWvyEno0O44I7RWgdA3k4p15JF37vzJGmLO6YeWlttLpQw0wk8yosZSsBThABdfPx/1SKW4rcVXdxNdpWxHYjQBE0TEApsuXTQWWpzTZwvvH4cNHVS3D1dPU5BAU41nrO0XCntEbYWwMHVV9tVRUKqNRW2F/S8w7XHE+UNJJPpM+VnuV0/iHty25aeslp6fv1361Z6RW5Dn3Oj0ep+7KclL7m3XG1fOQo49NrwgdysY7SGmNMXr4r963dea8flaVs3pV9SUISvDMdkdSwyT2uSVpALjp6IH7cqTZ3Ibj5t0JtK2C7BaB6Wmmv6VNm0rsTOSno6hLo+McdVOvKOXDnrg9zStVqz3Cas8dL6XNP1dfzV0NKpMlSeYRQfC1Dy3HQfg30U6oZPTwb23bbqZo2mVLf/AL/604464v7tSqVVhzvyH1dWnnWj8nFdAzHAwAASAAACsCDfDi1XwVV6uuXpOzOk5BAAPtRWvPIkntemOJ+SvCAf7ABSHcluSTVk0vh/8P8AoShTAo0mo1GknumK8OtNvD9HyL0gnu7hnlyStWqzvCWs76bf27V1/dXQup+SYqT/AOm4qFf9KeUn8gO0nts22tSmqnxAeIDXVinhQq9NptXGVzF+WXXWT5T8QzHA69pI5cAnZUq+HFrvgIEBMvSdmdJyASSPaiNf8lfpemOJ8DwgH+wJUo3JbkadpmnU3h/8P+iOLK1mk1SqUk870l5XR1lp0fJZ6l6QTgDIBABITUmk2e4TNnhqHUQp+rr+6uhlMeOlXMmKk+UpPluMhXyX0U6oYHQdv5/oOwreVvOiObitY1imxpmq3lSGTXZDjL7sfA9NbbSUENs4JCE9O1OQMEE+/wCjdE2h4Ulo/wCZtzvoNV311RFW3Tac24FiNkdW21eUMpOPVe8rPanp/Abbtt2ru4qvVXfdvur4iaJiA1KJEqRLLU5ps5R2H8OGjolDY6uHoMgkqm6+19eTinXkj2fs/DkaYs7ph5CnHFNFDDTCTyplSUpwFOEAhpgfH/ZQa7hdwukdrekYmxrY1TnZur5rggVutwE+tL+rcwlaELT+JLX4Kh0aHaMEdtO29t7UcL21H8875mLqW9upWHBSKQHQ4uMtQypptRzjGfekf4pznuCbf9v+rt3urqpva3tV0U63dOCpsaNNWWGJjDRJS2hJPtwkeOnVw5AySVHJdO6d2eJpdmHt729053TlotOON+q76RZjiO2eVMuUlOAAAMMxx+355KXN+r9aF2UaFj7L9l8RdSuFUlJi12uxWw9LbluAJPVIPPLVnCUjo0CABnxotHaO1/DZtercruVW1XrwV5tw0SiF4OvR3ljJbQTnLvdl185CASlOSe4JYuxevt9evqjvB3g1r7RbCkc8hhiQ4Y8eRHaJV6DPMfbiIwedzys5AJJJHxeW8tzOIlc2Bta2tUlVCtRQlNoeeQ0WIy4zRCRKkhIHIwnHtM+VHHTOAl3ey9lueH5blvaVtLYFYunWAhqu11poPSWJLgCeZXLnmkqzhtoZDQIOCT15ZOydueH7blzdru1fFYunWAt2hUJ10PSWJLgKuVPNnmkqzlx05DQJ6knqEs1Zq5vETubP3SbpKsqhWooSnFssrdLEZcZolRixiojkYTj3XvKjnrnJT2X0vpr3fVr2nbPdntF+0WwpHJHffjtGPHkR2iE+u9yj24iMDkb8rOCQSQA7u5dy2HDZtenbXtrQ1XrwV9tsVuthkOvR3ljAcWBnLvdhpgZCAQpWSe7NYSwmhdlWhZG9DehMXUrg1JSpVCoUpwPS25bgKh0UTzy1ZypR6NAkk58B7WWtuzxNbtS9we4Oou6ctDpxxz0mvVLMcR2zzKiRVKwAABl6Qf3/ADwE6twO4HVu73VtL2SbJKEKdbunBMKTJhILDExhogKcWoD24SPPXq4cE5yAXVyLkWo4XtqP5G2N+l1Le3UrCDV6uWg4uMtYwl1xIzjGfZj/AOSs57pm3rb1pHa5pGXvl3y1F2bq6a4Z9Eok9XrS/q3MqQtaFfiS1+Qk9Gh3HBHaL0DoG8nFOvJIvBd+ZI0xZ3TDy0ttpdKGGmEnmVFjqVgKcIALr5+P+qRS3E7ia7uJrtK2I7EaAImiYoFNly6aC01OabOF94/Dho6qW4erp6nIICnOs9ZWi4U9ojbC2Bg6qvtqqKhVRqKmwv6XmHa44nyhpJJ9Jnys9yun8QtuW3PT1k9PT9+u/WrOyK1Ic+50ej1P3ZTspfc2642r5yFdPTa8IHcrGO0fpjTF6+LBet3Xeu35WlbN6VfUlCErwzHZHUsMk9rklaQC46eiB+3Kk2tyG5CbdCbStguwWgelppr+lTZtK7Ezkp6OoS6PjHHVTryjlw564+TStVqz3Cas8dL6XNP1dfzV0NKpMlSeYRQfC1Dy3HQfg30U6oZPTwb23bbqZo6mVHf/AL/604464sValUqrDnfkvq6tPOtH5OK6BmOBgAAkAAAFYEC+HFqvgqrVZcvSdmdJyCAAfaiteShJPa9McT8leEA/2ACkO5LckmrJpfD+4f8AQVCmBRpFRqNJPdMV4dabdH6PkXpBPd3deXJK1SrO8JazvIj7dq6/uroXU/JMVJ/9NxUK/wClPKT+QHaT227bWpbVT4gPEBrqxT+YVem02rjK5i/LLrrJ8p+IZjgde0kcuATsqVfDi13wFPp6Zek7M6TkAkke1Ea/5K/S9McT4HhAP9gSpRuR3I07TFOpvD/4f9EcWVrNJqlUpJ53pLyujrLTo+Sz1L0gnAGQCACQmpNJs9wmbPDUWohT9XX91dDKY8dKuZMVJ8pSfLcZCvkvop1QwOnxGbb9t8q40qq7+9/lfLenW/6rBg1XtE4Dq0tbR8Rx0S0wkd/Tpy/IRdzimbm9ba8qNSsHHf07omMoQ6bERSESnFIR/wDI6opUErUCDyDokco6+Sw267da/uIrlU32b8NQiLoqGDUYsWpEstT2mz2e3/8AHDT4Q2nq4egyCSqbr/X95OKdeSPZ+z8ORpizumHkKccU0W2GmEnlTKkpTgKcIBDTA+P+yg13CbhNI7W9IxNjWxunOzdXzXBArdbgJ9aX9W5hK0IWn8SWvwVDo0O0YI7aVt7b2o4XtqP553z+l1Le3UrDgpFIDocXGWsZU02o5xjPvSP8U5z3Bdv+3/V277V1U3tb2q6KdbunBU2PGmrLDExhokpbQkn24SPHTq4cgZyScl07p3Z4ml2Ym3vb3TndOWi04436rvpFmOI7Z5Uy5SU4AAAwzHH7fnkpc36v1oXZRoWPsv2Xw11K4VSUiLXa7FbD0tuW4Ak9Ug88tWcJSOjQIAHN402jtHa/htWwVuV3Krar14K824aJRC8HXo7yxktoJzl3uy8+chAJSnJPcDsXYvX2+vX1S3g7wa19othSOeQwxIcMePIjtEq9BnmPtxEYPO55WcgEkkj4vLeW5nESuZA2tbWqSqhWooSm0PPIaLEZcZohIlSQkDkYTj2mfKjjpzYCXd7L2W54fluW9pe0tgVi6dYCGq7XWmg9JYkuAJ5lcueaSrOG2hkNAg4JPXlk7J254ftund2u7V8Vi6dY53aFQnXQ9JYkuAq5U82eaSrOXHTkNAnqSeoSzVmrm8RO5s/dJukqyqFaihKcWyyt0sRlxmiVGLGKiORhOPde8qOeuclPZfS+mvd9Wvabs92e0X7RbCkckd9+O0Y8eRHaIT673KPbiIwORvys4JBJADu7l3LX8Nm16dte2tDVfvBX22xW62Gg69HeWMBxYGcu92GmBkIBClZJ7s1hLCaF2VaFkb0N6ExdSuDUlKlUKhSnA9LbluAqHRRPPLVnKlHo0CSTnwHtba27XE1u1L3B7g6i7py0OnHHPSa9UsxxHbPMqJGUrAAAGXpB/f8APATq3A7gdW7vNW0vZJskoQp1u6cEwpMmEgsMTGGiApxagPbhI89erhwTnIBdXIuRajheWo/kbY36XUt7dSsINXq5aDi4y1DCXXEjOAM+zH/yVnPdM29betI7XNIy98u+WouzdXTXDPolEnq9aX9W5lSFrQr8SWvyEno0O5WCO0XoHQN5OKdeSRd+78yRpizumHlpbbS6UMNMJPMqLGUrAU4QAXXz8f8AVIpbidxNd3E12lbEdiNAEXRMQCmy5dNBZanNNnC+8fhw0dStw9XT1OQQFOdZaytFwp7RG2NsTB1VfbVUVC6jUVNhf0vMO1xxPlDSST6TPlZ7ldP4hbc9uWnrJ6en79d+tWekVqQ59zo9HqfuynZS+5t1xtXzkKOPTa8IHcrGO0hpjTF6+LBet3Xeu35WlbN6VfUlCErwzHZHUsMk9rklaQC46eiB+3Kk2dyG5CbdCbStguwWgelppr+lTZtK7Ezkp6OoS6PjHHVTryjlw564+TStVqz3Cas8dL6XNP1dfzV0NKpMlSeYRQfC1Dy3HQfg30U6oZPTwb23bbqZo6mVHf8A7/604464sValUqrDnfkvq6tPOtH5OK6BmOBgAAkAAAFYEC+HFqvgqrVZcvSdmdJyCAAfaiteShJPa9McT8leEA/2ACkO5LckmrJpfD/4f9BUKYFGkVGo0g90xXh1pt0fo+RekE93d15ckrVKs7wlrO8iPt2rr+6uhdT8kxUn/wBNxUK/6U8pP5AdpPbbttamNVPiA8QGur+38wq9NptXGVzF+WXXWT5T8QzHA69pI5cAnZUq+HFrvgKfT0y9J2Z0nIBJI9qI1/yV+l6Y4nwPCAf7AlSjcluSp2mKdTeH/wAP+iOLK1mk1SqUk870l5XR1lp0fJZ6l6QTgDIBABITUmk2e4TNnhqLUQp+rr+6uhlMeOlXMmKk+UpPluMhXyX0U6oYHT4jNt+2+XcaXVd/e/yvlvTrf9Vgwar2icE9WlraPiOOiWmEjv6dOX5RNR6jvZxYr2N6K0UzK0pZrSkhKlrUjDMZkdA86B2uSlpBCGh0QP25lH9CTN8my3ZItG3G3+kalXYml0BubNpTbDyHJp6Peo6tQLr2QOdQ6A9o+OB+fdf3BvNxUbyR7RWihydMWf006hx1xbfIy0yk4EqSE9FOEAhpgHA/2UGu4TcJpHa1pGJsb2N052bq+a4IFbrcBPrS/q3MJWhC0/iS1+CodGh2jBHbTtvba1HC9tR/PO+f0upb26lYWKRSA6HFxlrGVNNqOcYz70j/ABTnPcE2/wC3/V277V1U3tb2q6KdbunBU2PGmrLDExhokpbQkn24SPHTq4cgZJJOS6d07s8TS7MTb3t7pzunLRadcb9V30izHEds8qZcpKcAAAYZjj9vzyUub9X60Lso0LH2X7L4i6lcKpKTFrtdith6W3LcASeqQeeWrOEpHRoEADPjTaO0dr+G1bBW5XcqtqvXgrzbhotELwdejvLGS2gnOXTzZdfOQgEpTknuB2MsZr7fXr6o7wd4Fa+0WwpHPIYYkOmPHkR2iVegzzH24iMHnc8rOQCSSR8XlvLcziI3MgbWtrVJVQrUUJTaHnkNFiMuM0QkSpISByMJx7TPlRwcc2Al3ey9lueH5blvaXtLYFYunWAhqu11poPSWJLgCeZXLnmkqzhtoZDQI6EnryyVkrc8P23Lm7Xdq+KxdKsc7tCoTroeksSXAVcqebPNJVnLjpyGgT1yeoSzdm7m8RO5s/dJukqyqFaihKcWyyt0sRlxmiVGLGKiORlOPde8qORnPVPZfS+mvd9Ovads92e0X7RbGkckd9+O0Y8eRHaIT673KPbiIwORvys4JBJADu7l27X8Nm16dte2tDVevDX22xWq0GQ69HeWMBxYGcu92GWBkIBClZJ7s1hLCaF2V6Fkb0d6MxdSuDUlKlUKhSnA9LbluAqBwonnlqzkqPRoEknm8B7W2tu1xNbtS9we4Oou6ctDpxxz0mvVLMcR2zzKiRlKwAABl6Qf3/PATq3A7gdW7vNW0vZJskoIp9u6cEwpMmEgsMTGGiApxagPbhI89erhwTnIBdXIuRajheWo/kbY36XUt7dSsINXq5aDi4y1DCXXEjOAM+zH/wAlZz3TNvW3rSO13SMvfLvlqLs3V01wz6JRJ6vWl/VuZUha0K/Elr8hJ6NDuOCO0XoHQN5OKfeSRd+78yRpizumHlpbbS6UMNMJPMqLGUrAU4QAXXz8f9UinuK3FV3cRXaVsR2I0ARdExQKbLl00Fpqc02cL7x8IaeqluHq6epyCApxrLWVouFPaI2xtiYOqr7aqioXUaitsL+l5h2uOJ8oaSSfSZ8rPcrp/ELblty09ZPT0/frv1qz0itSHPudHo9T92U7KX3Nuutq+chRx6bXhA7lYx2kNMaYvXxYL1u6712/K0rZrSr6koQleGY7I6lhkntckrSAXHT0QP25UmzuQ3ITboTaVsF2C0D0tNNf0qbNpXYmclPR1CXR8Y46qdeUcuHPXHyaVqtWf4TVnzpfS5p+rr+auhpVJkqTzJipPhah5bjIV8G+inVDJ6eDe27bdTNHUypb/wDf/WnHHXFirUqlVYc78l9XVp51o/JxXQMxwMAAEgAAArBg3w4tV8FVarLl6TszpOSQAD7UVr/gn9L0xxPlXhAP9gApDuS3JJqyaXw/+H/QlCmBRpFRqNIPdMV4dabdH6PkXpBPd3deXJK1SrO8JazvIj7dq6/uroXU/JMVJ/8ATcVCv+lPKT+QHaT22bbGpjVT4gPEBrqhTwoVem02rjK5i/LLrrJ8p+IZjgde0kcuATsuVfDi13wFPp6Zek7M6TkAkke1Fa/5K/S9McT4HhAP9gSpRuS3JU7TFOpvD/4f9EcWpazSapVKSed6S8ro6y06Pks9S9IJwBkAgAkJqTSbPcJmzw1FqIU/V1/dXQymPHSrmTFSfKUny3GQr5r6KdUMDoO0Ztv23y7jS6rv8391/wBPTrf9Vgwar2icB1aWto+I46JaYSO/p05flE1HqO9nFivY3orRTMrSlmtKSEqWtSMMxmR0DzoHa5KWkEIaHRA/bmUV+47cdQLO0CBsH2EUh1+rvufa6xV6X7sl2SvtdaacT85Cjn1HvCBlKcY7Wdp+FLt30toSmx9yuuFK13NR9bOaj1xuIzHSv4tICurgSUqBc/Urmx0A/gpuG3C6P2uaSi7HNjFNdmaunOCDWq1AHry/qnMJUhC0j3JavBUOjQ6DBHbSttbe1HC9tR/PO+f02pb26lYcFIpAdDi4y1jKmm1HOMZ96R+/KnOe4Lt/2/6u3fauqm9re1XRTrdU4Kmxo81ZYYmMNElLaEk+3CR46dXDkDOSTkupdS7PE0uzD297e6c7p20WnHG/Vd9IsxxHbPKmXKSnAAAGGY4/b88lLm/V+tCbKNCR9mGzCGupXCqSkxa7XYrYelty3AEnqkHnlqzhKR0aBAA5vGm0do7X8Nq16tyu5VbVevBXm3DRaIXQ69HeWMltBOcunmy6+chAJSnJPcDsZYvX2+vX1R3g7wa19othSOeQwxIdMePIjtEq9BnmPtxEYPO55WcgEkkj4vLeW5nERuZA2tbWqSqhWooSm0PPIaLEZcZohIlSQkDkYTj2mfKjg45sBLu9l7Lc8Py3Le0vaWwKxdOsBDVdrrTQeksSXAE8yuXPNJVnDbQyGgR0JPXlkrJW54f1uXd2u7V8Vi6VY53aFQnXQ9JYkuAq5U82eaSrOXHTkNAnrk9Qlm7N3N4ilzZ+6PdHVlUK1FCU4tllbpYjLjNEqMWMVEcjKce695Uc9eb49l9L6a93069p2z3Z7RftFsaRyR3347Rjx5EdohPrvco9uIjA5G/KzgkEkAO7t3ctfw2bXp217a0NV+8NebbFarQZDr0d5YwHFgZy73YZYGQgEKVknuzWEsJoXZXoWRvR3ozF1K4NSUqVQqFKcD0tuW4CoHCieeWrOSo9GgSSc+A9rbW3a4mt2pe4PcHUXdOWh04456TXqlmOI7Z5lRIqlYAAAy9IP7/ngJ1bgdwOrd3mraXsk2SUIU63dOCYUmTCQWGJjDRAU4tQHtwkeevVw4JzkAurkXItRwvLUfyNsb9LqW9upWEGr1ctBxcZahhLriRnAGfZj/5KznumbetvWkdrukZe+XfLUXZurprhn0SiT1etL+rcypC1oV+JLX5CT0aHcrBHaL0DoG8nFPvJIu/d+ZI0xZ3TDy0ttpdKGGmEnmVFjKVgKcIALr5+P+qRS3Fbia7uIrtK2I7EaAIuiYoFNly6aC01OabOF94/Dho6qW4erp6nIICnOstZWi4U9ojbG2Jg6qvvqqKhVRqKmwv6XmHa44nyhpJJ9Jnys9yun8QtuW3LT1lNPT9+u/WrPSK1Ic+50ej1P3ZTspfc2662r5yFHHpteEDuVjHaP0zpm9fFgvW7rvXb8rStm9KvqShCV4ZjsjqWGSe1yStIBcdPRA/blSbW5DcfNufNpWwXYLQPS001/Sps2ldiZyU9HUJdHxjjqp15Ry4c9eX5NK1WrPcJqzx0vpc0/V1/NXQ0qkyVJ5kxUnwtQ8txkK+DfRTqhk9PBvbdtupmjqZUd/8Av/rTjjrixVqVSqsOd+S+rq0860fk4roGY4GAACQAAAVgwb38Wq+CqtVlS9J2Z0nIIAB9qK1+aEn4vTHE+VeEA/2ACkO5LckmqppfD+4f1CUKYFGkVGo0g90xXh5pt0fo+RekE93cM8uSVqlWd4S1neRH27V1/dXQup+SYqT/AOm4qFf9KeUn8gO0nts22NTGqnxAeIDXVCnhQq9NptXGVzF+WXXWT5T8QzHA69pI5cAnZcu+HFrvgKfT0y9J2Z0nJBJI9qK1/wAlfpemOJ8DwgH+wJUo3JbkadpenU3h/wDD/ori1LWaTVapSTzvSXldHWWnR8lnqXpBOAMgEAEhNSKRZ7hM2eGo9Rin6uv7q6GUx46VcyYqT5Sk+W4yFfNfRTqhgdPiM237b5dx5dV3+b/K/wCnp1v+qwYNV7ROCfwlra/KOOiWmEjv6dOX5RNR6jvZxYr2N6J0SzK0pZrSkhKlrUjDMZkdA86B2uSlpBDbQ6IH7cyiv3HbjaBZygQNg+wekPP1d9z7XWKxS/dkuyV9rrTTqfnIUc+o94QAUpxjtvaR0haHhSWhFyLkCDqu/Gq4i00+npcC/peYdzbavKGUnHqveVkcqen8fnWBs13u730vbj6+uFz6neUuKqrzTEUuMnHplhrB5I4yUo8ZCSeucn9D23tpafhc2pN8L5GJqW9eo2HEUekIdDioy1DuaaV1wBketI/flTnPcE2/7f8AV27/AFdVN7W9quinW6pwVNjx5qywxMYaJKW0JJ9uEjx06uHIGcknJdS6l2eJndmHt629U53TtotOuN+q76RZjiO2eVMuUlOAEgDDMcft+eSlzfq/WhNlGhI+zDZhEXUrhVJSYtdrsVsPS25bgCT1SDzy1ZwlI6NAgAZ8abR2jthw2rYK3K7lVtV68FebcNEoing69HeWMltBOcunmy6+chAJSnJPcDsXYzX2+zX1R3gbwK19othSOeQwxIdMeNIjtEq9BnmPtxEYPO55WcgEkkj4vLeW5nERuZA2tbWaSqhWpoSm0PPIaLEZcZohIlSQkDkYTj2mfKjg45sBLu9l7Lc8Py3Le0vaWwKxdOsBDVdrrTQeksSXAE8yuXPNJVnDbQyGgR0JPXlkrJW54f1uXd2u7V8Vi6VY53aFQnXQ9JYkuAq5U82eaSrOXHTkNAnrk9Qlm7N3N4ilzZ+6PdHVlUK1FCU4tllbpYjLjNEqMWMVEcjKce695Uc9eb49l9L6a93069puz3Z7RftFsKRyR3347Zjx5EdohPrvco9uIjA5G/KzgkEkAO7t3btfw2LXp217bENV68NfbbFbrYaDr0d5YwHFgZy73YZYGQkEKVknuy2EsJoXZXoWRvR3oTF1K4NSUqVQqFKcD0tuW4CoHCieeWrOSo9GgSSc+BFrbW3a4mt2pe4PcHUXdOWh04456TXqlmOI7Z5lRIqlYAAAy9IP7/ngJ1bgdwOrd3mraXsk2SUIU63dPCYUmTCQWGJjDRAU4tQHtwkeevVw4JzkAurkXItRwvLUfyOsb9LqW9upWEKq9XU0HFxlqGEuuJGcAZ9mP/krOe6Zt629aR2vaSl75t8tRdm6umuGfRKJPV60v6tzKkLWhX4ktfkJPRodysEdovQWgbycU+8ki793pkjTFndMPLS22l0oYaYSeZUWMpWApwgAuvn4/wCqRS3Fbiq7uIrtK2I7EdPiLomKBTZcumgtNTmmzhfePw4aOpW4erh6nIICnOstZWi4U9ojbG2Jg6qvvqqKhVRqK2wv6XmHa44nyhpJPtM+VnuV0/iFty25aespp6fv2361Z2RWpDn3Sj0ep+7KdlL7m3XW1fOQrp6bXhA7lYx2j9MaZvXxYL1u6712/K0rZvSr6koQleGY7I6lhkntckrSAXHT0QP25Um1uQ3HzbnzaVsF2C0D0tNtf0qbNpXYmclPR1CXR8Y46qdfUfc69eU9zStVqz3Cas8dL6XNP1dfzV0NKpMlSeZMVJ8LUPLcZB+DfRTqhk9PBrbdtupmj6ZUd/8Av/rTrjri/u1KpVWHO/JfV1aedaPyWroGY4GAMEgAAAtBg3w4tV8FVarKl6TszpOQQAD7UVr/AIJ/S9McT5V4QD/bAUh3Jbkk1RNL4f3D+oShTQo0mo1GkHumK8PNNvD9HyL0gnu7hnlyStUqzvCWs7yI+3auv7q6F1PyTFSf/TcVCv8ApTyk/kB2k9tm21qY1VOIDxAa6sU8KFXptOq4yuYvy066yfKfiGY4HXtJHLgE7Ll3w4td8BT6emXpOzOk5IJJHtRGv+Sv0vTHE+B4QD/YEqUbktyVO0vTqbw/+H/RHFqWs0mqVWknnekvK6OstOj5LPUvSCcAZAIAJCakUiz3CZs8NR6jFP1dfzV0Mpjx0q5kxUnylJ8txkK+a+inVDA6fEZtv23y7jy6rv8AN/lf9PTrf9Vgwar2icE9WlraPiOOiWmEjv6dOX5RNR6jvZxYr2N6J0SzK0pZrSkhKlrUjDMZkdA86B2uSlpBDbQ6IH7cyiv3G7jaBZygQNg+wekOv1d9z7XWKxS/dkuyV9rrTTqfnIUc+o94QMpTjHbe0jpC0PCktCLkXIEHVd+NVxFop9PQ4F/S8w7m21eUMpOPVe8rI5U9P4EbdNulav8A1uq78d+FfEbRkYGpRIlSJaanNIOW/bPwiJ6JQ2OrhwBkElRu8HFrvxWNdzv/ANfKbBoOhoITCpkeRSEPvOobyPVX+TZUCMNjolISPOT/ABc2+7ftYbvtW1Pexvcrwp9vKalUyPHmrMdiYw0SQ2hJPtQkeOnVw5Azkk5bqXUuzxM7sw9vW3qnO6dtFp1bfqu+kWY4jtnlTLlJTgBIAwzHH7fnkpc36v1oTZPoSPsw2YRF1K4VSUmLXa7FbD0tuW4Ak9Ug88tWcJSOjQIAGfGm0do7YcNq2Ctyu5ZbVevBXm3DRKIXQ69HeWMltBOcu92XXzkIBKU5J7gdjLGa+32a+qO8DeBWvtFsKRzyGGJDhjx5EdolXoMcx9uIjB53PKzkAkkkfF5by3M4iNzIG1nazSVUK1NCU2h55DRYjLjNEJEqSEgcjCce0z5UcdObAS7vZey3PD7ty3tL2lsCsXTrAQ1Xa600HpLElwBPMrlzzSVZw20MhoEEgk9eWSslbnh/W5d3bbtnxWLpVjndoVCddD0liS4CrlTzZ5pKs5cdOQ0CeuT1CWbs3c3iKXNn7o90dWVQrUUJTi2WVuliMuM0SoxYxURyMpx7r3lRz15vj2X0vpr3fTr2nbPNntF+0WxpHJHffjtmPHkR2iE+u9yj24iMDkb8rOCQSQA7u3du1/DYtenbXtsQ1X7w19tsVqthoOvR3ljAcWBnLvdhlgZCQQpWSe7LYSwmhdlehZG9HejLXUrg1JSpVCoUpwPS25bgKhkKJ55as5Kj0aBJJz4D2ttbdria3al7gtwVRd05aHTjjnpNeqWY4jtnmVEiqVgAADL0g/v+eAnXuB3A6t3eatpeyTZJQhT7d08JhSZMJBYYmMNEBTi1Ae3CR569XDgnOQC6uRci1HC8tP8AyNsd9LqW9upY6DV6uWg4uMtQwl1xIzgDPsx/8lZz3TNvO3rSW17SUvfLvlqLszV01wz6JRJ6vWl/VuZUha0K/Elr8pSejQ7lYI7RegtBXk4p95JF3rvTJGmLO6YeWlttLpQw0wk8yosZSsBThABdfPx/1SKe4rcTXdw9dpWxHYjQBF0TEApsuXTQWmpzTZwvvHwho6qW4erh6nIICnGstZWi4U1ojbG2Jg6qvvqqKhVRqKmwv6XmHa44nyhpJJ9Jnys9yun8QtuW3LT1lNPT9+2/WrPSK1Ic+50ej1P3ZTspfc2662r5yFHHpteEDuVjHaP0zpm9fFgvY7rvXT8rStm9KvqShCV4ZjsjqWGSe1yStIBcdPRA/blSbW5DcfNudNpWwXYLQPS021/Sps2lZQmclPR1CXR8Y46qdfUcuHPXHyaVqtWe4TVnjpfS5p+rr+auhpVJkqTzJipPhah5bjIPwb6KdUMnp4Nbbtt1M0fTKlv/AN/9accdcWKtSqVVhzvyX1dWnnWj8lq6BmOBgAAkAAAFoMG+HFqvgqrVZUvSdmdJySAAfaitf8E/pemOJ8q8IB/sAFIdyW5JFUTS+H9w/qEoU0KNIqNRpB7pivDrTTo/R8i9IJ7u4Z5ckrVKs7wlrO8qft2rr+6uhdT8kxUn/wBNxUK/6U8pP5AdpPbbttbmt1PiA8QGuqFPChV6dTquMrmL8suusnyn4hmOB17SRy4BOy5d8OLXfAU6nJl6TszpOSCSR7URr/kr9L0xxPgeEA/2BKlG5LcjTtL06m8P/h/0RxalrNJqtVpJ53pLyujrLTo+Sz1L0gnAGQCACQmpFIs9wmbPDUeoxT9XX81dDKY8dKuZMVJ8pSfLcZCvmvop1QwOnxGbb9t8u48uq7+9/df9PTrf9Vgwar2icE9WlraPiOOiWmEjv6dOX5RNR6jvZxYr2N6J0SzK0pZrSkhKlrUjDMZkdA86B2uSlpBDbQ6IH7cyiv3G7jaBZygQNhGwikOv1d9z7XV6vS/dkuyV9rjTTifnIUc+o94QMpTjHbe0hpC0PCktCLkXIEHVd99VxFop9PS4F/S8w7m21eUMpJ917ysjlT0/gPt026VvcBW6rvw34agEXRkUGpRIlSJaanNIOW/bPwiJ6JQ2Orh6DIJKpmu9d3l4qN5WLTWliSNL2c0u8hTjim+RhphJ5UyZCU4CnVAENMDokf5KH6IO7HYjsbSjbjQKFMrbmm0D7lNgQGZnqTlfi+s8pQ5nu1PMB0T0SMcuB+ebqXXu3xN7sxNv23ymvactHp9xtTzpZLLAYQeUS5SU4AAAwzHH54/PJS5v1frQmyfQkfZhswiLqVwqkpMWu12K2HpbctwBJ6pB55as4SkdGgQAM+NFo7R2w4bdsFbltyy2q9eCvNuGiUQvB16O8sZLaCc5dPNl185CASlOSe4JYyxmvt9mvqlvA3gVr7RbCkc8hhiQ6Y8eRHaJV6DHMfbiowedzys5AJJJHxeW8tzOIjcyBtZ2s0lVCtTQi2h55DRYjLjNEJEqSEgcjCce0z5UcdM4CXd7L2W54fduW9pm0xgVi6dYCGq7XWmg9JYkuAJ5lcueaSrOG2hkNAgkEnryyVkrdcP63Lu7bds/94ulWOd2hUJ10PSWJLgKuVPNnmkqzlx05DQJ65PUJZuzdzeIpc2duj3R1ZVCtRQlOLZZW6WIy4zRKjFjFRHIynHuv+VHPXPx7L6X017vo17Ttnmzyi/aLY0jkjyH47Rjx5EdohPrvco9uIjA5G/KzgkEkAO7t3btfw2LXp22bbENV+8NfbbFarQZDr0d5YwHFgZy73YZYGQkEKVknuy2EsJoXZZoWRvR3ozF1K4FSUqVQqFKcD0tuW4CoEhRPPLVnJUejQJJOfAe1trbtcTa7UvcFuCqLunLQ6ccc9Jr1SzHEds8yokVSsAAAZekH9/zwE69wO4HVu7vVtL2SbJKCKfbunhMKTJhILDExhogKcWoD24SPPXq4cE5yAXdx7j2n4Xlp/5HWO+l1Le3UrCDVqsWg4uMtQwl1xIzgDPsx/8AJWc90vb1t60lte0lL3zb5qi7N1dNcM+iUSer1pf1bmVIWtCvxJa/KUno0O5WCO0XoLQV5OKfeSRd670yRpizumHlpbbS6UMNMJPMqLGUrAU4QAXXz8f9UinuK3FV3cPXaVsQ2IUARdFRQKbLl00Fpqc02cL7x8IaeqluHq6epyCApvrLWVouFNaI2ytkYOqr76qioVUaipsL+l5h2uOJ8oaSSfSZ8rPcrp/EPblty09ZXT0/ftv2qz0itSHPulHo9U92U7KX3Nuutq+chRx6bXhA7lYx2kNM6ZvXxYL1u6610/K0rZvSr6koQleGY7I6lhkntckrSAXHT0QP25UmzuQ3ITbnTaVsF2C0D0tNtf0qbNpXYmclPR1CXR8Y46qdfUfcOevL8mlZrNn+E1Z46Y0wafq6/mroaVSZKk8wig+FqHluMhXwb6KdUMnp4Nbbtt1M0fTKlv8A9/8AWnHHXFirUqlVYc78l9XVp51o/JaugZjgYAwSAAAC0GDfDi1XwVVaqqXpOzOk5BAAPtRWv+Kf0vTHE+VeEA/2wFIdyW5JFURS+H9w/qEoU0KNIqNRpB7pivDrTbo/R8i9IJ7u4Z5ckrVKs7wlrO8qft2rr+6uhdT8kxUn/wBNxUK/6U8pP5AdpPbbttbmt1TiA8QGurFPChV6dTquMrmL8suusnyn4hmOB17SRy4BOy5d8OLXfAU6nJl6TszpOQCSR7URr/kr9L0xxPgeEA/2yVKNyO5GnaXp1N4f/D/ori1LWaTVarSTzvSXldHWWnR8lnqXpBOAMgEAEhNSKRZ7hM2eGo9Rin6uv5q6GUx46VcyYqT5Sk+W4yFfNfRTqhgdPiM237b5dx5dV397+6/6enWv6rBg1XtE4J6tLW0fEcdEtMJHf06cvyiak1JezixXsb0TolmVpWzelZCVLWpGGYzI6B50DtclLSCG2h0QP25lFfuO3HUCzdAgbCNhFIdfq77n2ur1el+7Jdkr7XGmnE/OQo59R7wgZSnGO29pDSFoeFLaEXJuSIOq776riLRT6elwL+l5h3Ntq8oZSceq95WRyp6fwH26bdK3uBrdV34b8K+Iui4oNSiRKkS01OaQct+2fhDT0ShsdXTgDIJKpmu9d3l4qN5Y9pbSxJGl7OaXeQpxxTfIy0wk8qZMhKcBTqgCGmB0SP8AJQZ7h9w+k9smk4exjYxTXZmq5jgp9arVPT60sy3MJWhC0/iS1+FKHRodqcEdqC0HCItSxoOny9xuvaizriogzZsaDU2mmoqV4w1lYJcUCFcy/BUSB0GTIv3frQWyjQzOzHZdDXUrg1NaY1crkZAfltynAEkZSPclqzhKR0aGABnoNFo7R2w4bdsFbltyy2q9eCvNuGiUQvB16O8sZLaCc5dPNl185CASlOSe4HYyxmvt9mvqjvA3gVr7RbCkc8hhiQ6Y8eRHaJV6DPMfbiowedzys5AJJJHxeW8tzOIhcyBtZ2s0lVCtTQlNoeebaMeMuM0QkSpISByMJx7TPlRx05sBLu9l7Lc8Pu3Le0zaYwKxdOsBDVdrrTQeksSXAE8yuXPNJVnDbQyGgQSCT15ZKyVuuH9bp3dtu2f+8XSrHO7QqE66HpLElwFXKnmzzSVZy46choE9c+Qlm7N3N4ilzZ26PdHVlUK1FCU4tllbpYjLjNEqMWMVEcjKce6/5Jz1z8ey+l9Ne76Ne03Z5s8ov2i2NI5I778dsx48iO0Qn13uUe3ERgcjflZwSCSAHd27t2v4bFr07bNtiGq/eGvttitVoMh16O8sYDiwM5d7sMsDISCFKyT3ZbCWE0Lss0LI3o70Zi6lcCpKVKoVClOB6WiW4CoEhRPPLVnJUejQJJOfAe1trbtcTa7UvcFuCqLunLQ6ccc9Jr1SzHEds8yokVSsADAy9IP7/ngJ17gdwOrd3eraXsk2SUEU+3dOCYUmRCQWGJjDRAU4tQHtwkeevVw4JzkAurj3HtPwvLT/AMjrHfS6lvbqVhBq1XU0HFxlqGEuuJGcAZ9mP/krOe6Zt629aS2vaSl75t81Rdm6umuGfRKJPV60v6tzKkLWhX4ktflKT0aHcrBHaL0FoK8nFPvJIu9d6ZI0xZ3TDy0ttpdKGGmEnmVFjKVgKcIALr5+P+qRT3Fbiq7uHrtK2IbEKAIuiooFNly6aC01OabOF94+ENPVS3D1dPU5BAU31lrK0XCmtEbZWyMHVV99VRUKqNRU2F/S8w7XHE+UNJJPpM+VnuV0/iHty25aesrp6fv237VZ6RWpDn3Sj0eqe7KdlL7m3XW1fOQo49NrwgdysY7SGmdM3r4sF63dda6flaVs1pV9SUISvDMdkdSwyT2uSVpALjp6IH7cqTZ3IbkJtzptK2C7BaB6Wm2v6VNm0rsTOSno6hLo+McdVOvqOXDnrj5NKzWbPcJqzx0xpg0/V1/NXQwqTJUnmTFSfC1Dy3GQr4N9FOqGT08Gtt226maQplR3/wDEArTjjjixVqVSqsOd+S+rq0860fktXQMxwMAYJAAABaDBvhxar4KqtVVL0nZnScggAH2orX/FP6XpjifKvCAf7YCkO5LckipppfD+4f1BUKaFGk1Go0g90xXh1pt0fo+RekE93cM8uSVqlWd4S1neVP27V1/dXQup+SYqT/6bioV/0p5SfyA7Se23ba3NbqnEB4gNdUKeFCr06nVcZXMX5ZddZPlPxDMcDr2kjlwCdly74cWu+Ap1OTL0nZnScgEkj2ojX/JX6XpjifCfCEn+wJUp3JbkadpanU3h/wDD/oji1LWaTVapSTzvSXldHWWnR8lq6l6QTgDIBABIS0ikWe4TNnhqPUYp+rr+6uhlMeOlXMmKk+UpPluMhXzX0U6oYHT4jNt+2+XciXVd/m/uv+np1v8AqsGDVe0Tgnq0tbR8Rx0S0wkd/Tpy/KJqTUl7OLDexvROiWZWlbN6VkJUtakYZjMjoHnQO1yUtIIbaHRA/bmUV+43cbQLN0CBsI2EUl1+ryHPtdYrFL92S7JX2uNNOJ+chXX1HvCAClOMdt7SGkLQ8KW0IuTckQdV331XFWmn09LgV9LzDubbV5Qyk49V7ysjlT0/gPt026VvcDW6rvw34V8RdFxQalEiVIlpqc0g5b9s/CGnolDY6unAGQSVTNd67vLxUbysWltLEkaXs5pd5CnHFNFDDTCTypkyEpwFOqAIaYHRI/yUGe4bcNpPbJpOHsX2MU52ZquY4KfWq1T0+tLMtzCVoQtP4ktfhSh0aHanBHbVt1bq0/C5tP8Aztvd9Lqa92po600mkpdDi4y1DKmm1dcAE+9I/P4pznu/OP8A+tO+3fO/I3GyYHrMaheWiEqZURCbEZB7ExmlHowMkJP5kKPUkk/oq0doLX8Ne2CtyW5VbNeu/XG3PslE9ZLrsd5YyW21HOXDnLr/AFCASlOSe4HYyxmvt9uvqjvA3gVr7RbCkc8hhiQ6Y8eRHaJV6DHMfbiowedzys5AJJJHxeW8tzOIhcyBtZ2s0lVCtTQlNtvPNtFiM5GaISJUkJA5GE49pnyo4JHNgJd3svZbnh925b2mbTGRWLp1gIartdaaD0liS4AnmVy55pKs4baGQ0CCQSevLJWSt1w/7cu7tt2z/wB4ulWOd2hUJ10PSWZLgKuVPNnmkqzlx05DQJ6k+Qlm7N3O4itzp26PdFVVUK1FCU4tllbpYjLjNEqMWMVY5GU491/yTnrn49l9L6a930a9puzzZ5RftFsaRyR3347Rjx5EdohPrvco9uIjA5G/KzgkElKQ7u3du1/DYtenbZtsQ1X7w19tsVqtBkOvR3ljAcWBnLvdhlgZCQQpWSe7LYSwmhdlmhZG9HejMXUrg1JSpVCoUpwPS25bgKgSFE88tWclR6NAkk58B7W2tu1xNrtS9wW4Kou6ctDpxxz0mg6WY4jtnmVEiqVgAYGXpB/f88BOvcDuB1bu71bS9keySgin27p4TCkyYSCwxMYaICnFqA9uEjz16uHBOcgF1ce49qOF3af+R1jvpdS3t1Kwg1arFoOLjLUMJdcSM4Az7Mf/ACVnPdM29betJbXtJS982+aouzdXTXDPolEnq9aX9W5lSFrQr8SWvylJ6NDuVgjtF6C0FeTin3kkXeu9MkaYs7ph5aW20ulDDTCTzKixlKwFOkAF18/H/VIp7itxVd3D12lbENiFAEXRUUCmy5dNBaanNNnC+8fCGnqpbh6uHqcggKcax1laLhTWiNsrZGDqq++qoqFVGoqbC/peYdrjifKGkkn0mfKz3K6fxC25bctPWV09P37b9qs9IrUhz7nR6PVPdlOyl9zbrravnIUcem14QO5WMdpDTOmb18WC9buutdPytK2b0q+pKEJXhmOyOpYZJ7XJK0gFx09ED9uVJs7kNyE25s2lbBdgtA9LTbX9KmzaV2JnJT0dQl39McdVOvqOXDnrj5NKzWbPcJqzx0xpg0/V1/NXQwqTJUnmTFSfC1Dy3GQfg30U6oZPTwa23bbqZpCmVLf/AMQCtOOOOLFWpVKqw535L6urTzrR+S1dAzHAwBgkAAAFoMG+HFqvgqq1VUvSdmdJyCAAfaitf8U/pemOJ8q8IB/tgKQ7ktySKmil8P7h/UFQpoUaRUajST3TFeHmm3R+j5F6QT3dwzy5JWqVZ3hLWd5U/btXX91dC6n5JipP/puKhX/SnlJ/IDtJ7bdtrc5up8QHiA11Qp4UKvTqdVxlcxfll11k+U/EMxwOvaSOXAJ2XLvhxar4Cm05MvSdmdJyQSSPaiNf8lfpemOJ8J8IB/sCVKdyO5Gm6VptN4f/AA/6I4tS1mk1WqUk870l5XR1lp0fJaupekE4AyAQASEtIpFnuEzZ4aj1GKfq6/mroZTHjpVzJipPlKT5bjIV819FOqGB0+Izbftvl3Il1Xf3v7r/AKWnG/6rBg1XtE4J6tLW0fjHHRLTCR39OnL8ompNSXs4sN7G9E6JZlaVs3pWQlS1qRhmMyOgedA7XJS0ghtodED9uZRX7jdxtAs1QIGwjYRSHZFYfc+11isUv3ZLslfa4004n5yFHPqPeEDKU4x23tIaQtDwpbQi5NyRB1XfjVcRaafT0OBf0vMO5ttXlDKTj1XvKyOVPT+A+3TbpW9wNbqu/DfhqARdFxQalEiVIlpqc0g5b9s/CGnolDY6unAGQSVTNd67vLxUbyx7S2liSNL2c0u8hTjim+RhphJ5UyZCU4CnSkENMDokf5KDPcPuG0ntk0nD2L7GKa7M1ZMcFPrVap6fWlmW5hK0IWn8SWvwpQ6NDtTgjtq25tzafhc2n/nde76XU17tTR1ppNJS6HFxlqHc02rrgAn3pH+Kc57gu33b7qvdtquqb3t7teFPt5TwqdGjTllhiYw0SUoQk/hwkeOnVw9BnJJw3g4v10WNcy6Zt107Q6VoOmIRBpaJ9M9R15DeR6vKCA0kjAS2B2pAz1J/jvsVYy4G+zXtQ3f7wq39ptjRwuQyy+4Y0aRHaJV6DHMfbiIwedzOVnIBJJI+by3luXxELlwNrO1mkqoVqaEptt55tosRnIzRCRKkhIHIwnHtM+VHBI5sBLu9l7Lc8Pu3Le0zaYyKzdOshDVdrrTQeksSXAE8yuXPNJVnDbQyGgQSCT15ZKyVuuH/AG6d3bbtnxWLo1jndoVCddD0lmS4CrlTzZ5pKs5cdOQ0CeuT1CWbs3c3iK3Nn7o90VWVQrUUJTi2WVuliMuM0SoxYxURyMpx7r/knPXPx7L6X017vo17Tdnmzyi/aLY0jkjyH47Zjx5EdohPrvco9uIjA5EeVnBIJIAd3bu3a/hsWvTts22Iar94a+22K1Wg0HXo7yxgOLAzlzuwywMhIIUrJPdlsJYTQuyzQsjelvRmLqVwKkpUqhUKU4HpaJbgKgSFE88tWclR6NAkk58B7W2tu1xNrtS9wW4Kou6ctDpxxwNNB0sxxHbPMqJFUrAAwMvSD+/54Cde4HcDq3d1q2l7I9kdCFPt3TwmDJkwUFhiYw0QFOLUB7cJHnr1cOCc5ALq49x7T8Lu0/8AI6x30upb26ljoNWq6mg4uMtQwl1xIzgDPsx/8lZz3TNvO3rSW1/SUvfNvmqLszVs1wz6JRZ6vWl/VuZUha0K/Elr8pSejQ7lYI7RegtBXk4qF5JF3buzJGmLO6YeWlttLpQw0wk8yosdSsBTpABdfPx/1SKe4rcVXNw1cpWxDYhQBF0VFApsuXTQWmpzTZwvvHwhp6qW4erp6nIICnGsdY2i4U1ojbK2Rg6qvvqqKhdRqKmwv6XmHa44nyhpJJ9Jnys9yun8QtuW3PT9ldPz9+2/arPSKzIc+6Uej1T3ZTspfc2662r5yFdPTa8IAClYx2j9M6ZvZxYL2O6610/K0rZvSr6koQleGYzI6llkntckrSAXHT0QP25Um1uQ3ITbmzKVsE2C0D0tNtf0qbNpXYmclPR1CHR8Y46qdfUfc69eX5NKzWbPcJqzx0xpg0/V1/NXQwqTJUnmTFSfC1Dy3GQfg30U6oZPTwa23bbqZpCmVLf/AMQCtOOOOLFWpVKqw535L6urTzrR+S1dAzHAwBgkAAAFoMG+HFqvgqq1VUvSdmdJyCAAfaitf8U/pemOJ8q8IB/tgKQ7ktySKmimcP7h/UFQpoUaRUajSD3TFeHmmnh+j5F6QT3dwB5ckribO8JazvKn7dq6/uroX/2TFSf/AE3FQr/pTyk/kB2kttu21uc3VOIDxAa6oU7mFXp1Oq4yuYvyy66yfKfiGY4HXtJHLgE7Ml3w4tV8BTaamXpOzOk5IJJHtRGv+Sv0vTHE+E+EA/2yVKdyO5Gm6VptN4f/AA/6I4ta1mk1Wq0k870l5XR1lp0fJaupekE4AyAQASEtIpFnuEzZ4ak1IKfq6/uroZTHjpVzJipPlKT5bjIV819FOqGB0+Izbftvl3Il1Xf3v7r/AKenGv6rBg1XtE4J6tLW0fjHHRLTCR7nTpy/KJqTUl7OLFexvROiWZWlbN6UkJUtakYZjMjoHnQO1yUtIIbaHRA/bmUV+43cbQLNUCBsI2EUh6RWH3PtdYrFL92S7JX2uNNOJ+chXX1HvCBlKcY7b2kNH2h4UtoRcq5Qg6rvvquKtNPp6XAv6XmHc22ryhlJI9V7ys9qen8B9um3St7ga3Vd+G/CviLouKDUokSpEtNTmkHLftn4Q09EobHV04AyCSqZrvXd5eKjeVi0tpIkjS9nNLvIU44psoYaYT2pkyEpwFOkAhpgdEj/ACUGm4bcNpPbHpOHsY2MU12ZqyY4KfWq1T0+tLMtztWhC0/iS1+FKHRodqcEdtS3NubT8Lm0/wDO6930upr3amjrTSaSl0OLjLUO5ptXXABPvSP8U5z3Bdvu33Ve7bVdU3vb3q8KfbynhU6NGnLLDExhokpQhJ/DhI8dOrh6DOSTiujdG7fE4u3EsBYCnO6ctDpxxsuulotR0x2zyplykpwAMDDMcft+eSn9EMX14e2xhhrbo9ThXanQUJcq05qjN1Bx2ase567p6B3tTlA6IHKn8iP4/Pd5r03N4ilzIG13a1SF0K1VFU2l95DJjx1x2yAJUkJA5GE49pnyo46ZwEu713rtzw+rcN7TNpjIrN06yENV2utNB6SxJcATzK5c80lWcNtDIaBBIJPXlkrJW64f9und227d/wC8XSrHO7QqE86HpLMlwFXKnmzzSVZy46choE9c+Qlm7N3O4itzp26LdFVlUK1FBU4tllbpYjLjNEqMWMVEcjKce6/5JyM5+PZfW+mvN8+vKbs82eUX7RbGkckd9+O0Y8eRHaIT673KPbiIwORHlZwSCSAHd27t2v4a9r07bdtqGa/eGvttitVoMh16O8sYDiwM5c7sMsDISCFKyT3ZbCWE0Nst0LI3pb0pi6lcCpKVKoVClOB6W3LcBUCQonnlqzkqPRoEknPgRa21t2uJtdqXuC3A1F3TlodOOOBpoOlmOI7Z5lRIqlYAGBl6Qf3/ADwE6twO4HVu7rVtL2R7I6CKfbunhMKTJhILDExhogKcWofhwkeevVw9TnIBd3HuPafhd2n/AJHWP+l1Le3UsdCqtVlNBxcZahhLriRnAGfZj/5Kznul7edvOktsGkpe+bfNUXZmrZjhn0WiT1etL+rcypC1oV+JLX5Sk9Gh3KwR2i9BaCvJxULySLu3dmSNMWc0w8tLbaXShhphJ5lRY6lYCnSAC6+fj/qkU9xW4qubhq5StiGxDT4i6KigU2XLpoLTU5ps4X7g+ENPVS3D1dPU5BAU31jrG0XCmtEbZWyMHVV99VRULqNRU2F/S8w7XHE+UNJJPpM+VnuV0/iHty25afstp+fv237VZ6RWZDn3Sj0eqe7KdlL7m3XW1fOQo49NnwgdysY7R+mdM3s4sF7Hdda6flaVs3pV9SUISvDMZkdSyyT2uSVpALjp6IH7cqTa3IbkJlzJlK2CbBKB6Wm2v6VNm0rsTOSno6hLo+McdVOvqPudevL8mlZrNn+E1Z46Y0yafq6/mroYVJkqTzJipPhah5bjIV8G+inVDJ6eDW27bdTNI0yo8QDf/WnHHHFirUqlVYc78l9XVp51o/JaugZjgYAAJAAABaDBvhxar4KqtVVL0nZrScggAH2orX/FP6XpjifKvCAf7ABSHcluSRUkUvh/cP6hKFNCjSKjUaQe6Yrw6006P0fIvSCe7uAPLklaTZ3hLWdwPt2rr+6uhf8A2TFSf/TcVCv+lPKT+QHaT227bW57dU4gPEBrqhTgoVenU6rjvmL8suusn9PxDMcDu7SRy4BOzJl8OLVfAU2mpl6TszpOQCSR7URr/kr9L0xxPhPhAP8AYEqU7kdyNN0rTabw/wDh/wBEcWtazSarVaSed6S8ro6y06PktXUvSCcAZAIAJCWkUiz3CZs8NSakFP1df3V0Mpjx0q5kxUnylJ8txkK+a+inVDA6fEZtv23y7ky6rv7391/09ONf1WDBqvaJwT1aWto/GOOiWmEjv6dOX5RNSakvZxYb2N6I0QzK0pZrSkhKlrUjDMZkdA88B2uSlpBDbQ6IH7cyiv3G7jaBZqgQNhGwikuyKw+59rrFYpfuyXZK+1xppxPzkKOfUe8IGUpxjtvaP0faHhS2hFyrlCDqu++q4q00+nocC/peYdzbavKGUnHqveVkcqen8B9um3Wt7gq3Vd+G/CviLouKDUokSpEtNTmkHLftn4Q09EobHV09BkElUzXeu7y8VG8se0lpYkjS9nNLvIU44psoYaYSeVMmQlOAp0gENMDokf5KDTcNuG0ntj0nD2MbGKc7M1ZMcFPrVap6fWlmW5hK0IWn8SWvwpQ6NDtTgjtqW6t1afhc2n/nde76XU17tTR1ppNJS6HFxlqGVNNqOcAE+9I/P4pznuC7fdvuq922q6pve3u14U+3lPCp0aNOWWGJjDRJShCT+HCR46dXD0GcknFdG6N2+JxduJYCwFOd05aHTjjZddLRajpjtnlTLlJTgAYGGY4/b88lLe/l+9D7MNDx9leyyG5Udf1FSYldrsRsPS0S3AEkApB55as4CR0ZBAA5vGyzvB30zWNCQq9uFuJWqfrSqlU2ZCgSGSmMleCG3FuBRcdzzFagcZJAzjJ+L4Xrtvw9rdI2m7TmPu10axyN1yupaDsliQ4AkKVyg80lXMA20MhsEHBJ6/yyVkLebALcO7ud2zprF0Kvzu0KhuuB6SxKcBVygqzzSlZy46choE9c+QdmbN3O4jNz5+6Hc9VlUS1NBU4plgvFmOuO0SpUWMVHsZSB7r3knPXPx7L63313vm19TdnWzyjCkWypXJHffjtmPHkxmSEl97A9uIjpyo8rOCQSUgPLu3atfw07XDbdtwQ1XbwV9pv73W/RDj0d1acJcWBnLnd7LAyEghSsk92awdgtD7LdCSN6m9GW5Utf1FapVDocpYflNy3QVJyFE88xeSSo9Ghkk5zgNau1t2uJ1dyXf+/1Rd09aLTbriWmUvFphLDZ5lRIxVgAYGXnz/8A7gJ17gtweq93OrqVsh2SUNNOt7ACYUiRCSY7E1hogKcWofhwkeevVw4JzkAu7lXHtRwt7TfyQskIuo72aljIXVqutoLVGUodrrieuAMn0WP8lZz3TNvO3jSe2HSEzfTvlqD03Vkxwz6LRp59aV9W5lSFrSr8SWvylJ6NDuOCO0VoDQV5OKneaRdq7UyRpqz2l31obaQ7yMtMp7jFjk9FOqSAXXyO0f4pFLcXuLre4Su0nYdsSoKYmi4wFNlSqcCy3PabPud/6IaOqluHq4ck5BAU51nrC0fCjtD/AC0tr9Fqm+2q4iHKhUXGwr6YKHR1weUMpOfSZ8rI5ldP4hbcduNAsxp2fv536VV6TV33PulIpFT92S5Jc7mnXW1fOQs49NrwgYUrGO0fpfTV6+LHe53W2t35WlrO6UkKQhtC/ajNeSwyT2uSlpwXHSMIB/typNrcjuRl3Lm0rYHsGoPo6cbP2mbNpZ5BOCfxUId/THHcp14nLnXry/JpWqxZ/hMWd/8AxrTf0Grb96vhBciUtHMmMk+FqHluMhWeRvop1Qyeg6Gttm26m6UpdS4ge/2tOuqWsVelUyqj1HpLyurLzrR+S1HlDLAGB0JAAABWBDvfxbL5KqVSXL0pZvSUnASlWW4jR/Sn9LsxxPlXhAP9gApFuU3Jtz00vh+bAaEpFO5zR6jUKUe+Yvw8y07/AMeii9IJ7sKAPLklcoWf4StnB20/V1/NYQuhIyiMk/8A9bioUP2U8pP5AdpLbVttbqTNU4ge/wCrqlU0EVinU+qjKpiuhZeda/4fEMxwO7tJHLgE5Lm3v4tl8hSqYJelLN6SkAq/NuI0fClAdr0xxIOE/FAP9gSpTuU3JU3SNOpvD+2B0VwuLcNHqtUpR5n5L6ujrDTo6qWogl58npggEAEhPSKNaDhMWdTqbUqIGrb96vhqTGjg8yYyT5Sk+W4yFfNfRTqhgdPiL22bb5dzZVV3/b96/wAum2h92hQqn0TOSk+04tr9McdqWmEjv6dOX5RNSamvVxYr2t6G0O1J0rZzSj6VrUpOGozPUB95I7XJK0ghtodED9gpRX7kNxun7LUGBsH2GUl12svu/aqxV6b7kp2UvtcZbcHVchRz6jvhA7U4x23tIaOtHwpLQC5ly0QtVX21ZFWinQErChGyO5ttXlDKSR6r3lZ7U9P4D7ctutb3DVqq78t9lfDGioqTU4kWoEttTmmzlHZ+iGjolDY6uHoMgkql6717ePio3nYtFaSK/pez2l3ULcWpvkZaYSeVMqQlOAp1QBDTA6J/2UGu4ncNpPa/pOJsX2OU12Tq2W6mnVutQU+rL+rcwhbaFp+ctZ6KUOjQ7U4I7alubb2p4XNpf543vTG1Le3UzDiKRSkuBxUZahlTTajnAHMPWf8A35U5z3BdvW33Ve7rVdU3vb2a8IVvKeFzo0aYsssTGGiSEISfw4TeMdOrhyBnKicV0bp3Z4nF3Ym32wEBzTlo9OLQp1wtFlgR2zyplykpwAMDDLA/b88lLi/1+9DbK9DMbLNmENc+4FRWiJXq7GbDstuW6AkgFI75a8gBI6NAgDu8bLTWkthw1bWHcnuQLVfvDqBtz7LRi6HXY7yxlTaFHPud2XnzkJBKU5J7vzhNtNv53zz5e4en0aov06svrjweSppgx2mGj2tx21LBLSSogK68ygskk5/j/9k=",dots:"data:image/jpeg;base64,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",crosshatch:"data:image/jpeg;base64,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"};async function J1(d){for(const[f,_]of Object.entries(G1))if(!d.hasImage(f))try{const v=await d.loadImage(_);d.addImage(f,v.data)}catch(v){console.error(`Failed to load pattern image: ${f}`,v)}}const X1={key:0,class:"w-full flex flex-col bg-white border border-stone-200 shadow-2xs rounded-xl z-10 relative widget"},Q1={key:0,class:"p-5 pb-3 flex justify-between items-center"},Y1={class:"inline-block font-semibold text-lg text-gray-800 dark:text-neutral-200"},$1={class:"flex flex-col justify-between h-full"},ev={__name:"vs-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(d){const f=d,_=S.ref(0),v=S.ref(null),k=S.computed(()=>{var B;return((B=f.config)==null?void 0:B.filters)||[]}),P=S.computed(()=>k.value.map(B=>({...B,id:B.name}))),x=S.computed(()=>{var z;const B=(z=f.config)==null?void 0:z.conditions;return!B||!B.layers?!0:f.enabledLayerIds.some(R=>B.layers.includes(R))}),s=async({url:B})=>{var M;const z=(M=f.config)==null?void 0:M.conditions,R=(z==null?void 0:z.layers)||[],H=f.enabledLayerIds.filter(C=>R.includes(C));H.length&&H.forEach(C=>{const T=f.map.getSource(C);if(T){const K=T.tiles[0].split("?filter=")[0],ie=B?`${K}?filter=${B}`:K;T.setTiles([ie])}})};return S.watch(()=>f.enabledLayerIds,B=>{(!B||!B.length)&&v.value&&(v.value.activeFilters={},_.value=0)}),S.watch(()=>{var B;return(B=v.value)==null?void 0:B.activeFilters},B=>{_.value=Object.keys(B||{}).length},{deep:!0}),(B,z)=>{const R=S.resolveComponent("VsFilter");return x.value?(S.openBlock(),S.createElementBlock("div",X1,[d.config.title?(S.openBlock(),S.createElementBlock("div",Q1,[S.createElementVNode("h2",Y1,S.toDisplayString(d.config.title),1)])):S.createCommentVNode("",!0),S.createElementVNode("div",$1,[S.createVNode(R,{ref_key:"filter",ref:v,scheme:P.value,header:!1,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:s},null,8,["scheme"])])])):S.createCommentVNode("",!0)}}},tv={type:"button",class:"py-2 px-2.5 inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg bg-white text-gray-800 hover:bg-gray-50 focus:outline-none focus:bg-gray-49 h-[38px] shadow-md"},rv={class:"flex gap-[5px] items-center"},iv={class:"text-gray-600"},nv={key:0,class:"w-[16px] h-[16px] font-medium bg-gray-800 text-white rounded-full flex items-center justify-center text-[10px]"},sv={__name:"vs-inline-filters-widget",props:{config:{type:Object,required:!0},map:{type:Object,required:!0},enabledLayerIds:{type:Array,default:()=>[]}},setup(d){const f=d,_=S.ref(0),v=S.ref(null),k=S.computed(()=>{var z;return((z=f.config)==null?void 0:z.filters)||[]}),P=S.computed(()=>k.value.map(z=>({...z,id:z.name}))),x=S.computed(()=>{var R;const z=(R=f.config)==null?void 0:R.conditions;return!z||!z.layers?!0:f.enabledLayerIds.some(H=>z.layers.includes(H))}),s=S.computed(()=>{var z;if(f.enabledLayerIds&&f.enabledLayerIds.length){const H=(((z=f.config)==null?void 0:z.layers)||[]).find(M=>M.id===f.enabledLayerIds[0]);return(H==null?void 0:H.title)||(H==null?void 0:H.name)||(H==null?void 0:H.label)||f.enabledLayerIds[0]}return""}),B=async({url:z})=>{var C,T;const R=(C=f.config)==null?void 0:C.conditions;if(!R){const N=(T=f.config)==null?void 0:T.layer_id;if(!N)return;const K=f.map.getSource(N);if(K){const le=K.tiles[0].split("?filter=")[0],Se=z?`${le}?filter=${z}`:le;K.setTiles([Se])}return}const H=(R==null?void 0:R.layers)||[],M=f.enabledLayerIds.filter(N=>H.includes(N));M.length&&M.forEach(N=>{const K=f.map.getSource(N);if(K){const le=K.tiles[0].split("?filter=")[0],Se=z?`${le}?filter=${z}`:le;K.setTiles([Se])}})};return S.watch(()=>f.enabledLayerIds,z=>{(!z||!z.length)&&v.value&&(v.value.activeFilters={},_.value=0)}),S.watch(()=>{var z;return(z=v.value)==null?void 0:z.activeFilters},z=>{_.value=Object.keys(z||{}).length},{deep:!0}),(z,R)=>{const H=S.resolveComponent("VsPopover"),M=S.resolveComponent("VsFilterList");return x.value&&P.value.length?(S.openBlock(),S.createBlock(M,{key:0,ref_key:"filter",ref:v,isDialog:d.config.dialog??!0,scheme:P.value,urlSeparator:"true",view:"plain",name:"filter",onFilterChange:B},{button:S.withCtx(({visible:C})=>[S.createVNode(H,{teleport:"body",trigger:"hover",placement:"bottom"},{reference:S.withCtx(()=>[S.createElementVNode("button",tv,[S.createElementVNode("div",rv,[R[0]||(R[0]=S.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[S.createElementVNode("path",{d:"M12 20L9 21V12.5L4.52 7.572C4.18545 7.20393 4.00005 6.7244 4 6.227V4H20V6.172C19.9999 6.70239 19.7891 7.21101 19.414 7.586L15 12",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),S.createElementVNode("path",{d:"M21.121 20.1209C21.5406 19.7014 21.8265 19.1668 21.9423 18.5849C22.0581 18.0029 21.9988 17.3997 21.7717 16.8514C21.5447 16.3032 21.1602 15.8346 20.6668 15.5049C20.1734 15.1752 19.5934 14.9993 19 14.9993C18.4066 14.9993 17.8266 15.1752 17.3332 15.5049C16.8398 15.8346 16.4553 16.3032 16.2283 16.8514C16.0012 17.3997 15.9419 18.0029 16.0577 18.5849C16.1735 19.1668 16.4594 19.7014 16.879 20.1209C17.297 20.5399 18.004 21.1659 19 21.9999C20.051 21.1099 20.759 20.4839 21.121 20.1209Z",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"}),S.createElementVNode("path",{d:"M19 18V18.01",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"})],-1)),S.createElementVNode("span",iv,S.toDisplayString(s.value),1),_.value?(S.openBlock(),S.createElementBlock("span",nv,S.toDisplayString(_.value),1)):S.createCommentVNode("",!0)])])]),default:S.withCtx(()=>[R[1]||(R[1]=S.createTextVNode(" Відкрити бокову панель "))]),_:1,__:[1]})]),_:1},8,["isDialog","scheme"])):S.createCommentVNode("",!0)}}},ov={class:"bg-white p-4 rounded-lg h-full flex flex-col overflow-hidden"},av={key:0,class:"flex flex-col flex-1 overflow-hidden"},lv={class:"space-y-0 overflow-y-auto flex-1 [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-gray-300 [&::-webkit-scrollbar-track]:bg-transparent"},cv=["onClick"],uv={class:"text-base font-medium"},hv={class:"mt-2 flex flex-wrap gap-2"},pv={key:1,class:"px-2 py-1 text-sm bg-gray-100 rounded-full"},dv={key:0,class:"my-5 pr-2"},fv={class:"paginationWrapper relative flex justify-center"},mv={key:1,class:"text-center text-slate-400"},gv={__name:"vs-list-widget",props:{config:{type:Object,required:!0}},emits:["cardValues"],setup(d,{emit:f}){const _=d,v=f,k=S.ref([]),P=S.ref(0),x=S.ref(1),s=S.ref(10),B=async()=>{try{const H=await Tr.get(_.config.api,{params:{page:x.value,limit:s.value}});k.value=H.data.rows,P.value=H.data.total}catch(H){console.error("Error fetching data:",H)}},z=H=>{x.value=H,B()},R=H=>{s.value=H,x.value=1,B()};return S.onMounted(()=>{B()}),(H,M)=>{var T;const C=S.resolveComponent("VsPagination");return S.openBlock(),S.createElementBlock("div",ov,[M[0]||(M[0]=S.createElementVNode("h2",{class:"text-xl font-semibold mb-4"},"Список",-1)),((T=k.value)==null?void 0:T.length)>0?(S.openBlock(),S.createElementBlock("div",av,[S.createElementVNode("div",lv,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(k.value,N=>(S.openBlock(),S.createElementBlock("div",{key:N.id,class:"py-4 border-b last:border-b-0 hover:bg-gray-50",onClick:K=>v("cardValuesId",N.id)},[S.createElementVNode("h3",uv,S.toDisplayString(N.name),1),S.createElementVNode("div",hv,[N.status_data?(S.openBlock(),S.createElementBlock("span",{key:0,class:S.normalizeClass(["px-2 py-1 text-sm rounded-full",{"bg-green-100 text-green-800":N.status_data.color==="green","bg-red-100 text-red-800":N.status_data.color==="red"}])},S.toDisplayString(N.status_data.text),3)):S.createCommentVNode("",!0),N.class_mbd_id_data?(S.openBlock(),S.createElementBlock("span",pv,S.toDisplayString(N.class_mbd_id_data.text),1)):S.createCommentVNode("",!0)])],8,cv))),128))]),P.value>s.value?(S.openBlock(),S.createElementBlock("div",dv,[S.createElementVNode("div",fv,[S.createVNode(C,{total:P.value,maxPages:4,defaultPage:x.value,pageSize:s.value,goTo:!1,size:"medium",onPageChange:z,backgroundColor:"#e5e7eb",borderedCellSelected:!0,pageSizes:[5,10,20,50],onPageSizeChange:R},null,8,["total","defaultPage","pageSize"])])])):S.createCommentVNode("",!0)])):(S.openBlock(),S.createElementBlock("div",mv,"Немає даних"))])}}},yv={class:"map-skeleton-loader"},_v=fr({__name:"vs-skeleton-loader",setup(d){return(f,_)=>(S.openBlock(),S.createElementBlock("div",yv,_[0]||(_[0]=[S.createElementVNode("div",{class:"dot-pulse"},null,-1)])))}},[["__scopeId","data-v-954c1e03"]]),xv={},bv={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function vv(d,f){return S.openBlock(),S.createElementBlock("svg",bv,f[0]||(f[0]=[S.createElementVNode("title",null,"Globe Icon",-1),S.createElementVNode("desc",null," A circular representation of a globe with horizontal and vertical lines ",-1),S.createElementVNode("path",{d:"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),S.createElementVNode("path",{d:"M2 12H22",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),S.createElementVNode("path",{d:"M12 2C14.5013 4.73835 15.9228 8.29203 16 12C15.9228 15.708 14.5013 19.2616 12 22C9.49872 19.2616 8.07725 15.708 8 12C8.07725 8.29203 9.49872 4.73835 12 2Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const wv={components:{homeIcon:fr(xv,[["render",vv]])},name:"vs-homezoom",props:{map:{type:Object},initialView:{type:Object,default:()=>({})}},methods:{homeZoom(){!this.map||!this.initialView||(this.initialView.bbox?this.map.fitBounds(this.initialView.bbox,{duration:0,padding:10}):this.initialView.center&&this.initialView.zoom!==void 0&&(this.map.setCenter(this.initialView.center),this.map.setZoom(this.initialView.zoom)),this.initialView.pitch!==void 0&&this.map.setPitch(this.initialView.pitch),this.initialView.bearing!==void 0&&this.map.setBearing(this.initialView.bearing))}},computed:{}};function Sv(d,f,_,v,k,P){const x=S.resolveComponent("homeIcon"),s=S.resolveComponent("VsPopover");return S.openBlock(),S.createElementBlock("div",null,[S.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:S.withCtx(()=>[S.createVNode(x,{onClick:P.homeZoom,class:"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"},null,8,["onClick"])]),default:S.withCtx(()=>[f[0]||(f[0]=S.createElementVNode("div",null,"Повернутися до початкових налаштувань",-1))]),_:1,__:[0]})])}const Av=fr(wv,[["render",Sv]]),kv={},Tv={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Cv(d,f){return S.openBlock(),S.createElementBlock("svg",Tv,f[0]||(f[0]=[S.createElementVNode("title",null,"Document with Two Sections Icon",-1),S.createElementVNode("desc",null,"A document icon with a split design indicating two sections",-1),S.createElementVNode("path",{d:"M6 9V2H18V9",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),S.createElementVNode("path",{d:"M6 18H4C3.46957 18 2.96086 17.7893 2.58579 17.4142C2.21071 17.0391 2 16.5304 2 16V11C2 10.4696 2.21071 9.96086 2.58579 9.58579C2.96086 9.21071 3.46957 9 4 9H20C20.5304 9 21.0391 9.21071 21.4142 9.58579C21.7893 9.96086 22 10.4696 22 11V16C22 16.5304 21.7893 17.0391 21.4142 17.4142C21.0391 17.7893 20.5304 18 20 18H18",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),S.createElementVNode("path",{d:"M18 14H6V22H18V14Z",stroke:"#1E40AF","stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))}const Ev={components:{printIcon:fr(kv,[["render",Cv]])},props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{printVisible:!1,scriptElements:[],styleElements:[],resourcesLoaded:!1}},watch:{activeTool(d){d!=="print"?this.printVisible=!1:this.init()},async printVisible(d){!this.resourcesLoaded&&d?(await this.loadResources(),this.init(),this.simulateClick()):this.removeResources()},activeTool(d,f){d!=="print"&&f==="print"&&(this.closePrint&&this.closePrint(),this.printVisible=!1),d==="print"&&!this.printVisible&&(this.printVisible=!0,this.init())}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.printVisible,"bg-white":!this.printVisible}}},mounted(){document.addEventListener("click",d=>{const f=document.querySelector(".mapboxgl-export-list");if(f&&f.contains(d.target)){d.stopPropagation();return}!d.target.classList.contains("mapboxgl-export-list")&&!d.target.classList.contains("print-button")&&!d.target.classList.contains("mapboxgl-export-control")&&!d.target.id.includes("mapbox-gl-export")&&(this.printVisible=!1)})},methods:{addScript(d){return new Promise((f,_)=>{const v=document.createElement("script");v.src=d,v.async=!0,v.onload=f,v.onerror=_,document.head.appendChild(v),this.scriptElements.push(v)})},addStyle(d){return new Promise((f,_)=>{const v=document.createElement("link");v.href=d,v.rel="stylesheet",v.type="text/css",v.onload=f,v.onerror=_,document.head.appendChild(v),this.styleElements.push(v)})},async loadResources(){try{await this.addStyle("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.min.css"),await this.addScript("https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/3.8.0/mapbox-gl.js"),await this.addStyle("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.min.css"),await this.addScript("https://cdn.jsdelivr.net/npm/@watergis/mapbox-gl-export@3.5.4/dist/mapbox-gl-export.umd.min.js"),this.resourcesLoaded=!0}catch(d){console.error("Failed to load resources:",d)}},removeResources(){this.scriptElements.forEach(d=>{d.parentNode&&d.parentNode.removeChild(d)}),this.scriptElements=[],this.styleElements.forEach(d=>{d.parentNode&&d.parentNode.removeChild(d)}),this.styleElements=[],this.resourcesLoaded=!1},async toggleResources(){this.printVisible=!this.printVisible},init(){if(!window.MapboxExportControl){console.error("MapboxExportControl is not loaded.");return}window.mapboxgl.accessToken="pk.eyJ1Ijoia3Jpemhhbm92c2t5IiwiYSI6ImNsemkxNWtkODA5dDcycnNhMWZzYWM0MTAifQ.6fEpgfd_2mA4UYuflDewpQ";const{MapboxExportControl:d,Size:f,PageOrientation:_,Format:v,DPI:k}=window.MapboxExportControl;this.map.addControl(new d({PageSize:f.A3,PageOrientation:_.Portrait,Format:v.PNG,DPI:k[96],Crosshair:!0,PrintableArea:!0,Local:"uk"}))},simulateClick(){new Promise(f=>{const _=setTimeout(()=>{const v=document.querySelector(".mapboxgl-export-control");v&&(clearInterval(_),f(v))},100)}).then(f=>{f.click()}).catch(()=>{console.error("Print button not found.")})},togglePrint(){!this.activeTool||this.activeTool!=="print"?this.setActiveTool&&this.setActiveTool("print"):this.setActiveTool&&this.setActiveTool(null),this.printVisible=!this.printVisible,this.printVisible?this.init():this.removeResources()}}};function Pv(d,f,_,v,k,P){const x=S.resolveComponent("printIcon"),s=S.resolveComponent("VsPopover");return S.openBlock(),S.createBlock(s,{trigger:"hover",placement:"left",teleport:"body"},{reference:S.withCtx(()=>[S.createVNode(x,{onClick:P.togglePrint,class:S.normalizeClass([P.modalButtonClasses,"print-button w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:S.withCtx(()=>[f[0]||(f[0]=S.createElementVNode("div",null,"Надрукувати",-1))]),_:1,__:[0]})}const Iv=fr(Ev,[["render",Pv]]),Mv={props:{map:{type:Object,required:!0}},data(){return{is3D:!1}},mounted(){this.map.on("move",this.updateViewStatus),this.updateViewStatus()},beforeUnmount(){this.map.off("move",this.updateViewStatus)},methods:{toggleView(){this.is3D?this.map.easeTo({pitch:0,bearing:0,duration:1e3}):this.map.easeTo({pitch:60,bearing:-29.6,duration:1e3})},updateViewStatus(){this.is3D=this.map.getPitch()!==0}}};function Lv(d,f,_,v,k,P){const x=S.resolveComponent("VsPopover");return S.openBlock(),S.createBlock(x,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:S.withCtx(()=>[S.createElementVNode("div",{class:"font-light w-full h-[44px] p-[9px] [transition:.3s] hover:[transition:.3s] text-[19px] hover:bg-[#DBEAFE] flex cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]",onClick:f[0]||(f[0]=(...s)=>P.toggleView&&P.toggleView(...s))},S.toDisplayString(k.is3D?"2D":"3D"),1)]),default:S.withCtx(()=>[f[1]||(f[1]=S.createElementVNode("div",null,"Перемикач виду",-1))]),_:1,__:[1]})}const Rv=fr(Mv,[["render",Lv]]),zv={},Dv={class:"shrink-0 size-4",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"};function Bv(d,f){return S.openBlock(),S.createElementBlock("svg",Dv,f[0]||(f[0]=[S.createElementVNode("path",{d:"M18 6 6 18"},null,-1),S.createElementVNode("path",{d:"m6 6 12 12"},null,-1)]))}const Kh=fr(zv,[["render",Bv]]),Vv={props:{bgColor:{type:String,default:"#1E40AF"}}},Ov={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Fv=["stroke"],Nv=["stroke"],qv=["stroke"],Uv=["stroke"],jv=["stroke"],Hv=["stroke"];function Wv(d,f,_,v,k,P){return S.openBlock(),S.createElementBlock("svg",Ov,[f[0]||(f[0]=S.createElementVNode("title",null,"Target Icon",-1)),f[1]||(f[1]=S.createElementVNode("desc",null,"A target icon with a circular pattern inside a rounded square",-1)),S.createElementVNode("path",{d:"M2 12H5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Fv),S.createElementVNode("path",{d:"M19 12H22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Nv),S.createElementVNode("path",{d:"M12 2V5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,qv),S.createElementVNode("path",{d:"M12 19V22",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Uv),S.createElementVNode("path",{d:"M12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,jv),S.createElementVNode("path",{d:"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Hv)])}const Zv=fr(Vv,[["render",Wv]]),{Marker:Kv}=gh,Gv={components:{geoIcon:Zv,closeIcon:Kh},data(){return{location:null,data:null,marker:null,showLocation:!1}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.showLocation,"bg-white":!this.showLocation}}},props:{map:{type:Object}},beforeUnmount(){var d;(d=this.marker)==null||d.remove()},watch:{activeControl(d,f){d!=="geolocation"&&f==="geolocation"&&(this.showLocation=!1,this.closeGeolocation())}},methods:{togleGeolocation(){this.showLocation=!this.showLocation,this.showLocation?this.getUserLocation():(this.closeGeolocation(),this.activeControl="no")},getUserLocation(){navigator.geolocation?navigator.geolocation.getCurrentPosition(this.onGeolocationSuccess,this.onGeolocationError):(this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Цей браузер не підтримує геолокацію"}),this.$emit("close"))},async onGeolocationSuccess(d){this.location={latitude:d.coords.latitude,longitude:d.coords.longitude};const _=await(await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${this.location.latitude}&lon=${this.location.longitude}`)).json();this.data=_.address;const v=[this.location.longitude,this.location.latitude],k=[[parseFloat(_.boundingbox[2]),parseFloat(_.boundingbox[0])],[parseFloat(_.boundingbox[3]),parseFloat(_.boundingbox[1])]];this.map.fitBounds(k,{padding:200,maxZoom:16}),this.marker||(this.marker=new Kv({color:"var(--primary)"})),this.marker.setLngLat(v).addTo(this.map),this.activeControl="geolocation"},closeGeolocation(){this.showLocation=!1,this.marker&&(this.marker.remove(),this.marker=null),this.location=null,this.data=null},onGeolocationError(){this.showLocation=!1,this.activeControl="no",this.$notify({type:"error",title:"Помилка",message:"Для визначення геолокації потрібен HTTPS протокол"}),this.$emit("close")}}},Jv={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[70px] bg-white border rounded-[15px] p-4 z-10"},Xv={class:"flex justify-between items-center border-b pb-[16px]"},Qv={class:"d-flex"},Yv={class:"pt-[16px]"};function $v(d,f,_,v,k,P){var z,R,H,M,C,T;const x=S.resolveComponent("closeIcon"),s=S.resolveComponent("geoIcon"),B=S.resolveComponent("VsPopover");return S.openBlock(),S.createElementBlock("div",null,[(S.openBlock(),S.createBlock(S.Teleport,{to:"#maplibre-demo-map"},[k.location?(S.openBlock(),S.createElementBlock("div",Jv,[S.createElementVNode("div",Xv,[f[0]||(f[0]=S.createElementVNode("div",{class:"text-lg font-semibold"},"Ваша геолокація",-1)),S.createElementVNode("div",Qv,[S.createVNode(x,{onClick:P.closeGeolocation},null,8,["onClick"])])]),S.createElementVNode("div",Yv,[S.createElementVNode("div",null,[f[1]||(f[1]=S.createElementVNode("strong",null,"Широта:",-1)),S.createTextVNode(" "+S.toDisplayString((z=k.location)==null?void 0:z.latitude),1)]),S.createElementVNode("div",null,[f[2]||(f[2]=S.createElementVNode("strong",null,"Довгота:",-1)),S.createTextVNode(" "+S.toDisplayString((R=k.location)==null?void 0:R.longitude),1)]),S.createElementVNode("div",null,[f[3]||(f[3]=S.createElementVNode("strong",null,"КраЇна:",-1)),S.createTextVNode(" "+S.toDisplayString((H=k.data)==null?void 0:H.country),1)]),S.createElementVNode("div",null,[f[4]||(f[4]=S.createElementVNode("strong",null,"Код країни:",-1)),S.createTextVNode(" "+S.toDisplayString((M=k.data)==null?void 0:M.country_code),1)]),S.createElementVNode("div",null,[f[5]||(f[5]=S.createElementVNode("strong",null,"Місто:",-1)),S.createTextVNode(" "+S.toDisplayString((C=k.data)==null?void 0:C.city),1)]),S.createElementVNode("div",null,[f[6]||(f[6]=S.createElementVNode("strong",null,"Поштовий індекс:",-1)),S.createTextVNode(" "+S.toDisplayString((T=k.data)==null?void 0:T.postcode),1)])])])):S.createCommentVNode("",!0)])),S.createVNode(B,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:S.withCtx(()=>[S.createVNode(s,{onClick:P.togleGeolocation,class:S.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:S.withCtx(()=>[f[7]||(f[7]=S.createElementVNode("div",null,"Дізнатися геолокацію",-1))]),_:1,__:[7]})])}const ew=fr(Gv,[["render",$v]]);var km=63710088e-1;function tw(d,f){var _,v,k,P,x,s,B,z,R,H,M=0,C=d.type==="FeatureCollection",T=d.type==="Feature",N=C?d.features.length:1;for(_=0;_<N;_++){for(s=C?d.features[_].geometry:T?d.geometry:d,z=C?d.features[_].properties:T?d.properties:{},R=C?d.features[_].bbox:T?d.bbox:void 0,H=C?d.features[_].id:T?d.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,k=0;k<x;k++){if(P=B?s.geometries[k]:s,P===null){if(f(null,M,z,R,H)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(f(P,M,z,R,H)===!1)return!1;break}case"GeometryCollection":{for(v=0;v<P.geometries.length;v++)if(f(P.geometries[v],M,z,R,H)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}M++}}function rw(d,f,_){var v=_;return tw(d,function(k,P,x,s,B){P===0&&_===void 0?v=k:v=f(v,k,P,x,s,B)}),v}function iw(d){return rw(d,(f,_)=>f+nw(_),0)}function nw(d){let f=0,_;switch(d.type){case"Polygon":return Tm(d.coordinates);case"MultiPolygon":for(_=0;_<d.coordinates.length;_++)f+=Tm(d.coordinates[_]);return f;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0}return 0}function Tm(d){let f=0;if(d&&d.length>0){f+=Math.abs(Cm(d[0]));for(let _=1;_<d.length;_++)f-=Math.abs(Cm(d[_]))}return f}var sw=km*km/2,Gh=Math.PI/180;function Cm(d){const f=d.length-1;if(f<=2)return 0;let _=0,v=0;for(;v<f;){const k=d[v],P=d[v+1===f?0:v+1],x=d[v+2>=f?(v+2)%f:v+2],s=k[0]*Gh,B=P[1]*Gh,z=x[0]*Gh;_+=(z-s)*Math.sin(B),v++}return _*sw}var Wi=63710088e-1,ow={centimeters:Wi*100,centimetres:Wi*100,degrees:360/(2*Math.PI),feet:Wi*3.28084,inches:Wi*39.37,kilometers:Wi/1e3,kilometres:Wi/1e3,meters:Wi,metres:Wi,miles:Wi/1609.344,millimeters:Wi*1e3,millimetres:Wi*1e3,nauticalmiles:Wi/1852,radians:1,yards:Wi*1.0936};function ru(d,f,_={}){const v={type:"Feature"};return(_.id===0||_.id)&&(v.id=_.id),_.bbox&&(v.bbox=_.bbox),v.properties=f||{},v.geometry=d,v}function Em(d,f,_={}){for(const k of d){if(k.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(k[k.length-1].length!==k[0].length)throw new Error("First and last Position are not equivalent.");for(let P=0;P<k[k.length-1].length;P++)if(k[k.length-1][P]!==k[0][P])throw new Error("First and last Position are not equivalent.")}return ru({type:"Polygon",coordinates:d},f,_)}function iu(d,f,_={}){if(d.length<2)throw new Error("coordinates must be an array of two or more positions");return ru({type:"LineString",coordinates:d},f,_)}function Ya(d,f={}){const _={type:"FeatureCollection"};return f.id&&(_.id=f.id),f.bbox&&(_.bbox=f.bbox),_.features=d,_}function aw(d,f="kilometers"){const _=ow[f];if(!_)throw new Error(f+" units is invalid");return d*_}function nu(d){return d%360*Math.PI/180}function Pm(d){if(!d)throw new Error("coord is required");if(!Array.isArray(d)){if(d.type==="Feature"&&d.geometry!==null&&d.geometry.type==="Point")return[...d.geometry.coordinates];if(d.type==="Point")return[...d.coordinates]}if(Array.isArray(d)&&d.length>=2&&!Array.isArray(d[0])&&!Array.isArray(d[1]))return[...d];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Jh(d,f,_={}){var v=Pm(d),k=Pm(f),P=nu(k[1]-v[1]),x=nu(k[0]-v[0]),s=nu(v[1]),B=nu(k[1]),z=Math.pow(Math.sin(P/2),2)+Math.pow(Math.sin(x/2),2)*Math.cos(s)*Math.cos(B);return aw(2*Math.atan2(Math.sqrt(z),Math.sqrt(1-z)),_.units)}function Im(d,f,_){if(d!==null)for(var v,k,P,x,s,B,z,R=0,H=0,M,C=d.type,T=C==="FeatureCollection",N=C==="Feature",K=T?d.features.length:1,ie=0;ie<K;ie++){z=T?d.features[ie].geometry:N?d.geometry:d,M=z?z.type==="GeometryCollection":!1,s=M?z.geometries.length:1;for(var le=0;le<s;le++){var Se=0,ee=0;if(x=M?z.geometries[le]:z,x!==null){B=x.coordinates;var pe=x.type;switch(R=0,pe){case null:break;case"Point":if(f(B,H,ie,Se,ee)===!1)return!1;H++,Se++;break;case"LineString":case"MultiPoint":for(v=0;v<B.length;v++){if(f(B[v],H,ie,Se,ee)===!1)return!1;H++,pe==="MultiPoint"&&Se++}pe==="LineString"&&Se++;break;case"Polygon":case"MultiLineString":for(v=0;v<B.length;v++){for(k=0;k<B[v].length-R;k++){if(f(B[v][k],H,ie,Se,ee)===!1)return!1;H++}pe==="MultiLineString"&&Se++,pe==="Polygon"&&ee++}pe==="Polygon"&&Se++;break;case"MultiPolygon":for(v=0;v<B.length;v++){for(ee=0,k=0;k<B[v].length;k++){for(P=0;P<B[v][k].length-R;P++){if(f(B[v][k][P],H,ie,Se,ee)===!1)return!1;H++}ee++}Se++}break;case"GeometryCollection":for(v=0;v<x.geometries.length;v++)if(Im(x.geometries[v],f)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function lw(d,f){var _,v,k,P,x,s,B,z,R,H,M=0,C=d.type==="FeatureCollection",T=d.type==="Feature",N=C?d.features.length:1;for(_=0;_<N;_++){for(s=C?d.features[_].geometry:T?d.geometry:d,z=C?d.features[_].properties:T?d.properties:{},R=C?d.features[_].bbox:T?d.bbox:void 0,H=C?d.features[_].id:T?d.id:void 0,B=s?s.type==="GeometryCollection":!1,x=B?s.geometries.length:1,k=0;k<x;k++){if(P=B?s.geometries[k]:s,P===null){if(f(null,M,z,R,H)===!1)return!1;continue}switch(P.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(f(P,M,z,R,H)===!1)return!1;break}case"GeometryCollection":{for(v=0;v<P.geometries.length;v++)if(f(P.geometries[v],M,z,R,H)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}M++}}function cw(d,f){lw(d,function(_,v,k,P,x){var s=_===null?null:_.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return f(ru(_,k,{bbox:P,id:x}),v,0)===!1?!1:void 0}var B;switch(s){case"MultiPoint":B="Point";break;case"MultiLineString":B="LineString";break;case"MultiPolygon":B="Polygon";break}for(var z=0;z<_.coordinates.length;z++){var R=_.coordinates[z],H={type:B,coordinates:R};if(f(ru(H,k),v,z)===!1)return!1}})}function uw(d,f){cw(d,function(_,v,k){var P=0;if(_.geometry){var x=_.geometry.type;if(!(x==="Point"||x==="MultiPoint")){var s,B=0,z=0,R=0;if(Im(_,function(H,M,C,T,N){if(s===void 0||v>B||T>z||N>R){s=H,B=v,z=T,R=N,P=0;return}var K=iu([s,H],_.properties);if(f(K,v,k,N,P)===!1)return!1;P++,s=H})===!1)return!1}}})}function hw(d,f,_){var v=_,k=!1;return uw(d,function(P,x,s,B,z){k===!1&&_===void 0?v=P:v=f(v,P,x,s,B,z),k=!0}),v}function pw(d,f={}){return hw(d,(_,v)=>{const k=v.geometry.coordinates;return _+Jh(k[0],k[1],f)},0)}const dw={props:{bgColor:{type:String,default:"#1E40AF"}}},fw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},mw=["stroke"],gw=["stroke"],yw=["stroke"],_w=["stroke"],xw=["stroke"];function bw(d,f,_,v,k,P){return S.openBlock(),S.createElementBlock("svg",fw,[f[0]||(f[0]=S.createElementVNode("title",null,"Pencil Icon",-1)),f[1]||(f[1]=S.createElementVNode("desc",null,"A pencil icon with strokes and detailed lines",-1)),S.createElementVNode("path",{d:"M21.3 15.3C21.5238 15.523 21.7013 15.7879 21.8225 16.0796C21.9436 16.3714 22.0059 16.6841 22.0059 17C22.0059 17.3159 21.9436 17.6286 21.8225 17.9204C21.7013 18.2121 21.5238 18.477 21.3 18.7L18.7 21.3C18.4771 21.5237 18.2121 21.7013 17.9204 21.8224C17.6287 21.9435 17.3159 22.0059 17 22.0059C16.6842 22.0059 16.3714 21.9435 16.0797 21.8224C15.788 21.7013 15.523 21.5237 15.3 21.3L2.70005 8.7C2.2506 8.24838 1.99829 7.63715 1.99829 7C1.99829 6.36285 2.2506 5.75162 2.70005 5.3L5.30005 2.7C5.75167 2.25056 6.36289 1.99825 7.00005 1.99825C7.6372 1.99825 8.24842 2.25056 8.70005 2.7L21.3 15.3Z",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,mw),S.createElementVNode("path",{d:"M14.5 12.5L16.5 10.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,gw),S.createElementVNode("path",{d:"M11.5 9.5L13.5 7.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,yw),S.createElementVNode("path",{d:"M8.5 6.5L10.5 4.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,_w),S.createElementVNode("path",{d:"M17.5 15.5L19.5 13.5",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,xw)])}const vw={name:"vs-measure",components:{rulerIcon:fr(dw,[["render",bw]]),closeIcon:Kh},data(){return{points:[],inputPoint:[],distance:0,distanceType:!1,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(d=>{var f,_;return{id:d.properties.id,value:((_=(f=d==null?void 0:d.geometry)==null?void 0:f.coordinates)==null?void 0:_.reduceRight((v,k)=>[...v,typeof k=="string"?k:k.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(d,f){d!=="length"&&f==="length"&&(this.closeMeasure(),this.modalVisible=!1),d==="length"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},props:{map:{type:Object},activeTool:String,setActiveTool:Function},methods:{measureMapClick(d){const f=this.map.queryRenderedFeatures(d.point,{layers:["measure-points"]});if(f.length)this.points=this.points.filter(_=>{var v,k;return _.properties.id!==((k=(v=f[0])==null?void 0:v.properties)==null?void 0:k.id)});else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(d.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const d=this.points.filter(k=>k==null?void 0:k.geometry),f=d.map((k,P)=>{var B,z;const x=Jh(d[P?P-1:0],k),s=this.distanceType?x:x+ +((z=(B=d[P-1])==null?void 0:B.properties)==null?void 0:z.distance)||0;return k.properties.distance=s,k.properties.title=`${s.toLocaleString()}км`,k}),_=await Ya(f);if(f.length>2){const k=Em([[...f.map(P=>P.geometry.coordinates),f[0].geometry.coordinates]]);this.map.getSource("linear-area").setData(Ya([k]))}else{const k=this.map.getSource("measure");k&&k.setData(_)}f.length>1&&(_.features=_.features.concat(iu(f.map(k=>k.geometry.coordinates))),this.distance=pw(iu(f.map(k=>k.geometry.coordinates))));const v=this.map.getSource("measure");v&&v.setData(_)},handleDelete(d){this.points=this.points.filter(f=>f.properties.id!==d)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(d=>{if(/^([^,]*,[^,]*)$/.test(d.value)){const f=d.value.split(",").reverse();if(f[0]<-90||f[0]>90||f[1]>180||f[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"});else return{type:"Feature",geometry:{type:"Point",coordinates:f},properties:{id:d.id}}}else this.$notify({type:"error",title:"Помилка",message:"Координати неправильні"})})},removeLinearLayer(){this.map.getLayer("measure-lines")&&this.map.removeLayer("measure-lines"),this.map.getLayer("measure-points")&&this.map.removeLayer("measure-points"),this.map.getLayer("measure-symbol")&&this.map.removeLayer("measure-symbol"),this.map.getSource("measure")&&this.map.removeSource("measure"),this.map.getLayer("linear-area-fill")&&this.map.removeLayer("linear-area-fill"),this.map.getSource("linear-area")&&this.map.removeSource("linear-area"),this.distance=0},createLinearLayer(){this.map.addSource("measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"measure-lines",type:"line",source:"measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"measure-points",type:"circle",source:"measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.map.addLayer({id:"measure-symbol",source:"measure",type:"symbol",paint:{"text-color":"#111","text-halo-color":"#fff","text-halo-width":2},layout:{"symbol-placement":"point","text-letter-spacing":.2,"text-field":"{title}","text-font":["Open Sans Regular"],"text-size":15,"text-anchor":"bottom-left"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove),this.map.on("mousemove",this.mouseMove)},mouseMove(d){const f=this.map.queryRenderedFeatures(d.point,{layers:["measure-points"]});this.map.getCanvas().style.cursor=f.length?"move":"crosshair"},createAreaLayer(){const{map:d}=this;d.addSource("linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}})},distanceFormat(){const d=this.points.filter(f=>f.geometry).map(f=>f.geometry);d.forEach((f,_)=>{const v=Jh(d[_?_-1:0],f);distance.push(v);const k=this.distanceType?v:v+ +this.points[_?_-1:0].properties.distance||0;this.points[_].properties.distance=k,this.points[_].properties.title=`${k.toLocaleString()}km`})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(d){const f=d.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[f.lng,f.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(d){d.preventDefault();const f=this.map.queryRenderedFeatures(d.point,{layers:["measure-points"]});if(f.length){const _=f[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="length"?this.setActiveTool&&this.setActiveTool("length"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{buttonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},ww={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},Sw={class:"flex justify-between items-center border-b pb-[16px]"},Aw={class:"pt-[16px]"},kw={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},Tw={key:0,class:"flex items-center mb-4"},Cw={key:1,class:"text-[14px] font-bold",ref:"distanceContainer"};function Ew(d,f,_,v,k,P){const x=S.resolveComponent("closeIcon"),s=S.resolveComponent("VsPopover"),B=S.resolveComponent("VsSwitch"),z=S.resolveComponent("rulerIcon");return S.openBlock(),S.createElementBlock("div",null,[(S.openBlock(),S.createBlock(S.Teleport,{to:"#maplibre-demo-map"},[k.modalVisible&&_.activeTool==="length"?(S.openBlock(),S.createElementBlock("div",ww,[S.createElementVNode("div",Sw,[f[3]||(f[3]=S.createElementVNode("div",{class:"text-[20px]"},"Лінійка",-1)),S.createVNode(s,{trigger:"hover",teleport:"body"},{reference:S.withCtx(()=>[S.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:f[0]||(f[0]=(...R)=>P.toggleMeasure&&P.toggleMeasure(...R))},[S.createVNode(x,{class:"cursor-pointer"})])]),default:S.withCtx(()=>[f[2]||(f[2]=S.createTextVNode(" Приховати панель "))]),_:1,__:[2]})]),S.createElementVNode("div",Aw,[S.createElementVNode("p",kw,[k.points.length?S.createCommentVNode("",!0):(S.openBlock(),S.createElementBlock(S.Fragment,{key:0},[S.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),k.points.length==1?(S.openBlock(),S.createElementBlock(S.Fragment,{key:1},[S.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):S.createCommentVNode("",!0),k.points.length>1?(S.openBlock(),S.createElementBlock(S.Fragment,{key:2},[S.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):S.createCommentVNode("",!0)]),k.points.length>=3?(S.openBlock(),S.createElementBlock("div",Tw,[S.createVNode(B,{modelValue:k.distanceType,"onUpdate:modelValue":f[1]||(f[1]=R=>k.distanceType=R),onChange:P.setPoints},null,8,["modelValue","onChange"]),f[4]||(f[4]=S.createElementVNode("span",{class:"text-[14px] font-medium text-[#6B7280] ml-2"},"загальна | до точки",-1))])):S.createCommentVNode("",!0),k.points.length>=2?(S.openBlock(),S.createElementBlock("div",Cw,[f[5]||(f[5]=S.createTextVNode(" Загальна відстань: ")),S.createElementVNode("span",null,S.toDisplayString(k.distance.toLocaleString())+" км",1)],512)):S.createCommentVNode("",!0)])])):S.createCommentVNode("",!0)])),S.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:S.withCtx(()=>[S.createVNode(z,{class:S.normalizeClass([P.buttonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"]),onClick:P.toggleMeasure},null,8,["class","onClick"])]),default:S.withCtx(()=>[f[6]||(f[6]=S.createElementVNode("div",null,"Виміряти довжину",-1))]),_:1,__:[6]})])}const Pw=fr(vw,[["render",Ew],["__scopeId","data-v-401b2f16"]]),Iw={props:{bgColor:{type:String,default:"#1E40AF"}}},Mw={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Lw=["stroke"],Rw=["stroke"],zw=["stroke"];function Dw(d,f,_,v,k,P){return S.openBlock(),S.createElementBlock("svg",Mw,[f[0]||(f[0]=S.createElementVNode("title",null,"Crossed Arrows with Curved Line Icon",-1)),f[1]||(f[1]=S.createElementVNode("desc",null,"Two crossed arrows with a curved line to the right",-1)),S.createElementVNode("path",{d:"M4 19L12 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Lw),S.createElementVNode("path",{d:"M12 19L4 11",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,Rw),S.createElementVNode("path",{d:"M20 12H16C16 10.5 16.442 10 17.5 9.5C18.558 9 20 8.334 20 7.002C20 6.53 19.83 6.072 19.516 5.712C19.196 5.35007 18.7613 5.1092 18.2848 5.02981C17.8083 4.95043 17.319 5.03735 16.899 5.276C16.479 5.515 16.161 5.89 16 6.336",stroke:_.bgColor,"stroke-width":"1","stroke-linecap":"round","stroke-linejoin":"round"},null,8,zw)])}const Bw={components:{areaIcon:fr(Iw,[["render",Dw]]),closeIcon:Kh},name:"vs-area-measure",props:{map:{type:Object},activeTool:String,setActiveTool:Function},data(){return{points:[],inputPoint:[],area:0,modalVisible:!1,draggingPointId:null}},watch:{async points(){this.inputPoint=this.points.map(d=>{var f,_;return{id:d.properties.id,value:((_=(f=d==null?void 0:d.geometry)==null?void 0:f.coordinates)==null?void 0:_.reduceRight((v,k)=>[...v,typeof k=="string"?k:k.toFixed(5)],[]).join(","))||""}}),this.setPoints()},activeTool(d,f){d!=="area"&&f==="area"&&(this.closeMeasure(),this.modalVisible=!1),d==="area"&&!this.modalVisible&&(this.modalVisible=!0,this.initMeasureLayer())}},methods:{measureMapClick(d){const f=this.map.queryRenderedFeatures(d.point,{layers:["area-measure-points"]});if(f.length)this.points=this.points.filter(_=>_.properties.id!==f[0].properties.id);else{const _={type:"Feature",geometry:{type:"Point",coordinates:Object.values(d.lngLat)},properties:{id:Math.floor(Math.random()*1e3)}};this.points=this.points.concat(_)}},async setPoints(){const d=this.points.filter(v=>v==null?void 0:v.geometry),f=await Ya(d);if(d.length>2){const v=Em([[...d.map(P=>P.geometry.coordinates),d[0].geometry.coordinates]]);this.area=iw(v)/1e6;const k=this.map.getSource("area-linear-area");k&&k.setData(Ya([v]))}else{const v=this.map.getSource("area-linear-area");v&&v.setData(Ya([]))}d.length>1&&(f.features=f.features.concat(iu(d.map(v=>v.geometry.coordinates))));const _=this.map.getSource("area-measure");_&&_.setData(f)},handleDelete(d){this.points=this.points.filter(f=>f.properties.id!==d)},addCoords(){this.points=this.points.concat({type:"Feature",properties:{id:Math.floor(Math.random()*1e3)},geometry:null})},handleChange(){this.points=this.inputPoint.map(d=>{if(/^([^,]*,[^,]*)$/.test(d.value)){const f=d.value.split(",").reverse();if(f[0]<-90||f[0]>90||f[1]>180||f[1]<-180)this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"});else return{type:"Feature",geometry:{type:"Point",coordinates:f},properties:{id:d.id}}}else this.$notify({type:"error",title:"Помилка",message:"Недійсні координати!"})})},removeLinearLayer(){["area-measure-lines","area-measure-points","area-linear-area-fill","center-symbol"].forEach(_=>{this.map.getLayer(_)&&this.map.removeLayer(_)}),["area-measure","area-linear-area"].forEach(_=>{this.map.getSource(_)&&this.map.removeSource(_)}),this.area=0},createLinearLayer(){this.map.addSource("area-measure",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-measure-lines",type:"line",source:"area-measure",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#000","line-width":2.5},filter:["in","$type","LineString"]}),this.map.addLayer({id:"area-measure-points",type:"circle",source:"area-measure",paint:{"circle-radius":4.5,"circle-color":"#fff","circle-stroke-width":2,"circle-stroke-color":"#000"},filter:["in","$type","Point"]}),this.createAreaLayer(),this.map.on("mousemove",this.mouseMove)},mouseMove(d){const f=this.map.queryRenderedFeatures(d.point,{layers:["area-measure-points"]});this.map.getCanvas().style.cursor=f.length?"move":"crosshair"},createAreaLayer(){this.map.addSource("area-linear-area",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),this.map.addLayer({id:"area-linear-area-fill",type:"fill",source:"area-linear-area",layout:{},paint:{"fill-color":"#000","fill-opacity":.06}})},initMeasureLayer(){this.createLinearLayer(),this.map.on("mousedown","area-measure-points",this.handleDrag),this.map.on("click",this.measureMapClick),this.map.on("touchend",this.measureMapClick)},onMove(d){const f=d.lngLat;this.points=this.points.map(_=>_.properties.id===this.draggingPointId?{..._,geometry:{..._.geometry,coordinates:[f.lng,f.lat]}}:_),this.setPoints()},onUp(){this.map.off("mousemove",this.onMove),this.draggingPointId=null},handleDrag(d){d.preventDefault();const f=this.map.queryRenderedFeatures(d.point,{layers:["area-measure-points"]});if(f.length){const _=f[0].properties.id;this.draggingPointId=_,this.map.on("mousemove",this.onMove),this.map.once("mouseup",this.onUp)}},closeMeasure(){this.points=[],this.map.off("touchend",this.measureMapClick),this.map.off("click",this.measureMapClick),this.map.off("mousemove",this.mouseMove),this.map.getCanvas().style.cursor="grab",this.modalVisible=!1,this.removeLinearLayer()},toggleMeasure(){!this.activeTool||this.activeTool!=="area"?this.setActiveTool&&this.setActiveTool("area"):this.setActiveTool&&this.setActiveTool(null),this.modalVisible=!this.modalVisible,this.modalVisible?this.initMeasureLayer():this.closeMeasure()}},computed:{modalButtonClasses(){return{"!bg-[#DBEAFE]":this.modalVisible,"bg-white":!this.modalVisible}}}},Vw={key:0,class:"max-w-[412px] absolute w-full top-[20px] right-[60px] bg-white border rounded-[15px] p-4 z-10"},Ow={class:"flex justify-between items-center border-b pb-[16px]"},Fw={class:"pt-[16px]"},Nw={class:"text-[14px] font-medium text-[#6B7280] mb-[16px]"},qw={key:0,ref:"distanceContainer",class:"text-[14px] font-bold"};function Uw(d,f,_,v,k,P){const x=S.resolveComponent("closeIcon"),s=S.resolveComponent("VsPopover"),B=S.resolveComponent("areaIcon");return S.openBlock(),S.createElementBlock("div",null,[(S.openBlock(),S.createBlock(S.Teleport,{to:"#maplibre-demo-map"},[k.modalVisible&&_.activeTool==="area"?(S.openBlock(),S.createElementBlock("div",Vw,[S.createElementVNode("div",Ow,[f[2]||(f[2]=S.createElementVNode("div",{class:"text-lg"},"Площа",-1)),S.createVNode(s,{trigger:"hover",teleport:"body"},{reference:S.withCtx(()=>[S.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:f[0]||(f[0]=(...z)=>P.toggleMeasure&&P.toggleMeasure(...z))},[S.createVNode(x,{class:"cursor-pointer"})])]),default:S.withCtx(()=>[f[1]||(f[1]=S.createTextVNode(" Приховати панель "))]),_:1,__:[1]})]),S.createElementVNode("div",Fw,[S.createElementVNode("p",Nw,[k.points.length?S.createCommentVNode("",!0):(S.openBlock(),S.createElementBlock(S.Fragment,{key:0},[S.createTextVNode(" Натисніть на мапу, щоб додати першу точку. ")],64)),k.points.length==1?(S.openBlock(),S.createElementBlock(S.Fragment,{key:1},[S.createTextVNode(" Натисніть на мапу, щоб додати другу точку. ")],64)):S.createCommentVNode("",!0),k.points.length>1?(S.openBlock(),S.createElementBlock(S.Fragment,{key:2},[S.createTextVNode(" Продовжуйте натискати для додавання нових точок. Точки можна рухати. ")],64)):S.createCommentVNode("",!0)]),k.points.length>2?(S.openBlock(),S.createElementBlock("div",qw,[f[3]||(f[3]=S.createTextVNode(" Загальна площа: ")),S.createElementVNode("span",null,S.toDisplayString(k.area.toLocaleString())+" км²",1)],512)):S.createCommentVNode("",!0)])])):S.createCommentVNode("",!0)])),S.createVNode(s,{trigger:"hover",placement:"left",teleport:"body",class:"flex"},{reference:S.withCtx(()=>[S.createVNode(B,{onClick:P.toggleMeasure,class:S.normalizeClass([P.modalButtonClasses,"w-full h-auto p-[9px] [transition:.3s] hover:[transition:.3s] text-[24px] hover:bg-[#DBEAFE] flex font-normal cursor-pointer text-[#1E40AF] bg-[#fff] rounded-[4px] border-[1px] border-solid border-[#E5E7EB]"])},null,8,["onClick","class"])]),default:S.withCtx(()=>[f[4]||(f[4]=S.createElementVNode("div",null,"Виміряти площу",-1))]),_:1,__:[4]})])}const jw=fr(Bw,[["render",Uw],["__scopeId","data-v-024154e1"]]),Hw=fr({__name:"vs-map-widget-column",props:{position:String,widgets:Array,map:Object,mapLoaded:Boolean,cardValues:Object,hasFilters:Boolean,currentFilterLayer:Object,enabledLayerIds:Array,getWidgetComponent:Function,getColumnWidth:Function,rightColumnOffset:[String,Number],maxHeight:Number,history:Boolean},emits:["set-filter-layer","update:enabledLayerIds","cardValuesId","closeCard","content-resize"],setup(d,{expose:f,emit:_}){const v=_,k=S.ref(null);f({columnRef:k});let P=null;return S.onMounted(()=>{P=new MutationObserver(()=>{var x;clearTimeout((x=k.value)==null?void 0:x._resizeTimeout),k.value._resizeTimeout=setTimeout(()=>{v("content-resize")},30)}),k.value&&P.observe(k.value,{childList:!0,subtree:!0,characterData:!0})}),S.onUnmounted(()=>{P&&P.disconnect()}),(x,s)=>d.mapLoaded?(S.openBlock(),S.createElementBlock("div",{key:0,class:S.normalizeClass(["widget-column",[S.unref(xd)(d.position)]]),ref_key:"columnRef",ref:k,style:S.normalizeStyle({maxHeight:d.maxHeight?d.maxHeight+"px":void 0,width:d.getColumnWidth(d.position),...d.rightColumnOffset?{right:d.rightColumnOffset}:{}})},[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(d.widgets,B=>(S.openBlock(),S.createElementBlock(S.Fragment,{key:B.id||B.type},[B.type!=="card"?(S.openBlock(),S.createBlock(S.resolveDynamicComponent(d.getWidgetComponent(B.type)),{key:0,map:d.map,config:B.config,hasFilters:d.hasFilters,currentLayer:d.currentFilterLayer,enabledLayerIds:d.enabledLayerIds,history:d.history,onSetFilterLayer:s[0]||(s[0]=z=>x.$emit("set-filter-layer",z)),"onUpdate:enabledLayerIds":s[1]||(s[1]=z=>x.$emit("update:enabledLayerIds",z)),onCardValuesId:s[2]||(s[2]=z=>x.$emit("cardValuesId",z)),onContentResize:s[3]||(s[3]=z=>x.$emit("content-resize")),class:"widget"},null,40,["map","config","hasFilters","currentLayer","enabledLayerIds","history"])):S.createCommentVNode("",!0),d.cardValues&&B.type==="card"?(S.openBlock(),S.createBlock(lf,{key:1,config:B.config,cardValues:d.cardValues,class:"widget",onClose:s[4]||(s[4]=z=>x.$emit("closeCard")),onContentResize:s[5]||(s[5]=z=>x.$emit("content-resize"))},null,8,["config","cardValues"])):S.createCommentVNode("",!0)],64))),128))],6)):S.createCommentVNode("",!0)}},[["__scopeId","data-v-b777fbc8"]]),Ww={class:"map-widgets"},Zw={class:"absolute top-[180px] right-2 z-10 flex flex-col gap-[5px]"},Mm=fr({__name:"vs-map",props:{config:{type:Object,required:!0}},setup(d){const f=d,_=S.ref(null),v=S.ref(!1);let k=null;const P=S.ref(null),x=S.ref(null),s=S.ref([]),B=S.ref([]),z=S.ref(null),R=S.ref(null),H=["top-left","top-right","top-center","center","bottom-left","bottom-center","bottom-right"],M={"top-left":S.ref(null),"top-right":S.ref(null),"top-center":S.ref(null),center:S.ref(null),"bottom-left":S.ref(null),"bottom-center":S.ref(null),"bottom-right":S.ref(null)};function C(et,nt){M[et].value=nt==null?void 0:nt.columnRef}const T=S.ref(0),N=S.ref(0),K=S.ref(0),ie=S.ref(0),le=S.ref(0),Se=S.ref(0),ee=S.ref(0);function pe(et){if(!et){const kt={topLeft:M["top-left"].value,topRight:M["top-right"].value,topCenter:M["top-center"].value,center:M.center.value,bottomLeft:M["bottom-left"].value,bottomRight:M["bottom-right"].value,bottomCenter:M["bottom-center"].value};Object.values(kt).forEach(Ht=>{Ht&&(Ht.style.maxHeight="")});const{heights:er}=Am(kt,window.innerHeight);T.value=er.topLeft,N.value=er.topRight,K.value=er.topCenter,ie.value=er.center,le.value=er.bottomLeft,Se.value=er.bottomRight,ee.value=er.bottomCenter;return}const Xe={"top-left":["top-left","bottom-left"],"bottom-left":["top-left","bottom-left"],"top-right":["top-right","bottom-right"],"bottom-right":["top-right","bottom-right"],"top-center":["top-center","bottom-center"],"bottom-center":["top-center","bottom-center"],center:["center"]}[et]||[],xt={topLeft:M["top-left"].value,topRight:M["top-right"].value,topCenter:M["top-center"].value,center:M.center.value,bottomLeft:M["bottom-left"].value,bottomRight:M["bottom-right"].value,bottomCenter:M["bottom-center"].value};Xe.forEach(kt=>{xt[kt]&&(xt[kt].style.maxHeight="")});const{heights:wt}=Am(xt,window.innerHeight);Xe.forEach(kt=>{xt[kt]&&wt[kt]&&(xt[kt].style.maxHeight=wt[kt]+"px")}),Xe.includes("top-left")&&(T.value=wt.topLeft),Xe.includes("bottom-left")&&(le.value=wt.bottomLeft),Xe.includes("top-right")&&(N.value=wt.topRight),Xe.includes("bottom-right")&&(Se.value=wt.bottomRight),Xe.includes("top-center")&&(K.value=wt.topCenter),Xe.includes("bottom-center")&&(ee.value=wt.bottomCenter),Xe.includes("center")&&(ie.value=wt.center)}function Pe(et){var nt,Xe;return et==="center"?[...((nt=f.config.widgets)==null?void 0:nt.filter(wt=>(wt.position||{})==="center"))||[],...B.value.filter(wt=>wt.position==="center")]:((Xe=f.config.widgets)==null?void 0:Xe.filter(xt=>(xt.position||{})===et))||[]}eu.registerHelper("eq",(et,nt)=>et===nt),eu.registerHelper("formatDate",et=>et?new Date(et).toLocaleDateString():"Немає дати"),eu.registerHelper("get",(et,nt)=>(et==null?void 0:et[nt])??"");const De=(et,nt,Xe)=>{try{if(et)if(Xe==="markdown"){const xt=et.replace(/\{\{([^}]+)\}\}/g,(wt,kt)=>{try{return new Function("data",`with(data) { return ${kt} }`)(nt)}catch{return""}});return Yt(xt)}else return eu.compile(et)(nt)}catch(xt){return console.error("Error processing template:",xt),et}},Ze=(et,nt,Xe,xt,wt,kt)=>{const er=De(et,xt,wt),Ht=nt?De(nt,xt,wt):"";let Jt="";return Xe!=null&&Xe.length&&(Jt=Xe.map(Br=>{const _i=De(Br.value,xt,wt);return`
|
|
823
|
-
<tr class="flex justify-between items-center">
|
|
824
|
-
<td class="font-medium mr-1.5 flex items-center">${Br.label}</td>
|
|
825
|
-
<td class="text-right">${_i}</td>
|
|
826
|
-
</tr>
|
|
827
|
-
`}).join("")),`
|
|
828
|
-
<div class="absolute min-w-28 max-w-[300px] bg-white/70 border border-gray-200 rounded-lg shadow-md text-gray-800 pointer-events-none" style="left: ${kt.x+10}px; top: ${kt.y}px">
|
|
829
|
-
${er?`
|
|
830
|
-
<div class="font-semibold text-sm border-b border-solid border-gray-200 text-gray-800 rounded-t-lg px-2 py-1">
|
|
831
|
-
<h3>${er}</h3>
|
|
832
|
-
</div>
|
|
833
|
-
`:""}
|
|
834
|
-
${nt?`<div class="text-sm px-2 py-1 break-words">${Ht}</div>`:""}
|
|
835
|
-
${Xe!=null&&Xe.length&&!nt?`
|
|
836
|
-
<div class="text-xs px-2 py-0.5 text-gray-500">
|
|
837
|
-
<table class="w-full">
|
|
838
|
-
<tbody>${Jt}</tbody>
|
|
839
|
-
</table>
|
|
840
|
-
</div>
|
|
841
|
-
`:""}
|
|
842
|
-
</div>
|
|
843
|
-
`},gt=et=>({legend:Ey,basemaps:Ry,layers:s_,info:d_,attribute:fx,catalog:zb,filters:ev,"inline-filters":sv,list:gv,card:lf})[et],rt=S.computed(()=>{var et;return(et=f.config.widgets)==null?void 0:et.some(nt=>nt.type==="filters")}),Je=et=>{P.value=et};function it(){const et=new URLSearchParams(window.location.search),nt=parseFloat(et.get("x")),Xe=parseFloat(et.get("y")),xt=parseFloat(et.get("z")),wt=parseFloat(et.get("bearing")),kt=parseFloat(et.get("pitch"));return{center:isFinite(nt)&&isFinite(Xe)?[nt,Xe]:null,zoom:isFinite(xt)?xt:null,bearing:isFinite(wt)?wt:null,pitch:isFinite(kt)?kt:null}}function bt({center:et,zoom:nt,bearing:Xe,pitch:xt}){const wt=new URLSearchParams(window.location.search);wt.set("x",et[0].toFixed(5)),wt.set("y",et[1].toFixed(5)),wt.set("z",nt.toFixed(2)),wt.set("bearing",Xe.toFixed(2)),wt.set("pitch",xt.toFixed(2));const kt=`${window.location.pathname}?${wt.toString()}`;window.history.replaceState({},"",kt)}const It=()=>{var kt,er;const et={version:8,glyphs:"https://cdn.softpro.ua/data/fonts/{fontstack}/{range}.pbf",sources:{},layers:[]};let nt=f.config.map.center,Xe=f.config.map.zoom,xt=f.config.map.bearing||0,wt=f.config.map.pitch||0;if(f.config.history){const Ht=it();Ht.center&&(nt=Ht.center),Ht.zoom!==null&&(Xe=Ht.zoom),Ht.bearing!==null&&(xt=Ht.bearing),Ht.pitch!==null&&(wt=Ht.pitch)}if(_.value=new gh.Map({container:"maplibre-demo-map",style:et,center:nt,zoom:Xe,bearing:xt,pitch:wt,maxBounds:[18.0856083513,40.3614785833,58.0807890155,56.3350745713]}),(er=(kt=f.config.interactions)==null?void 0:kt.navigation)!=null&&er.enabled){const Ht=new gh.NavigationControl({showCompass:!0,showZoom:!0,visualizePitch:!0});_.value.addControl(Ht,"top-right")}_.value.on("load",async()=>{var Ht,Jt,Br,_i;try{await J1(_.value);const gr=it(),Ti=gr.center&&gr.zoom!==null;if((Ht=f.config.map)!=null&&Ht.bbox&&!Ti){const[or,Xt,_t,Ar]=f.config.map.bbox;_.value.fitBounds([[or,Xt],[_t,Ar]],{padding:50,duration:0})}if(await(async()=>{var Xt,_t,Ar;const or=((Ar=(_t=(Xt=f.config.widgets.find(tr=>tr.type==="layers"))==null?void 0:Xt.config)==null?void 0:_t.layers)==null?void 0:Ar.filter(tr=>{var yr;return((yr=tr.style)==null?void 0:yr.attrType)==="icon-by-attribute"}))||[];for(const tr of or){const{rules:yr,default_icon:Cr,icon_base_url:Zt}=tr.style,jr=[...yr.map(ve=>ve.icon),Cr].filter(Boolean);for(const ve of jr)try{const G=`${Zt}${ve}`,Q=await _.value.loadImage(G);_.value.hasImage(ve)||_.value.addImage(ve,Q.data)}catch(G){console.error(`Failed to load icon: ${ve}`,G)}}})(),ls(_.value,{id:"voyager",url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",title:"Базова карта (voyager)",service:"raster",attribution:"© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a>, © <a href='https://carto.com/attributions'>CARTO</a>"}),(_i=(Br=(Jt=f.config)==null?void 0:Jt.interactions)==null?void 0:Br.hover)!=null&&_i.enabled&&(_.value.on("mousemove",or=>{var Cr,Zt,jr,ve;const Xt=_.value.queryRenderedFeatures(or.point);if(_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor=Xt.length?"pointer":""),!Xt.length){if(x.value){const G=(Cr=_.value.getSource(x.value.source))==null?void 0:Cr.type,Q={source:x.value.source,id:x.value.id};G==="vector"&&(Q.sourceLayer=x.value.source),Ur(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}k&&(k.remove(),k=null);return}const _t=Xt[0];if(!x.value||x.value.id!==_t.id||x.value.source!==_t.layer.source){if(x.value){const te=(Zt=_.value.getSource(x.value.source))==null?void 0:Zt.type,he={source:x.value.source,id:x.value.id};te==="vector"&&(he.sourceLayer=x.value.source),Ur(_.value,x.value.source,x.value.id,{hovered:!1})}const G=(jr=_.value.getSource(_t.layer.source))==null?void 0:jr.type,Q={source:_t.layer.source,id:_t.id};G==="vector"&&(Q.sourceLayer=_t.layer.source),Ur(_.value,_t.layer.source,_t.id,{hovered:!0}),x.value={source:_t.layer.source,id:_t.id}}const Ar=f.config.widgets.find(G=>G.type==="layers"),tr=f.config.widgets.find(G=>G.type==="attribute");let yr=null;if(Ar&&(yr=Ar.config.layers.find(G=>G.id===_t.layer.source)),!yr&&tr&&tr.config.layer.id===_t.layer.source&&(yr=tr.config.layer),(ve=yr==null?void 0:yr.style)!=null&&ve.popup){const G=yr.style.popup;let Q=G.title,te="";G.mode==="markdown"?te=Array.isArray(G.content)?G.content.join(`
|
|
844
|
-
|
|
845
|
-
`):"":te=Array.isArray(G.content)?G.content.join(""):"",k||(k=document.createElement("div"),_.value.getContainer().appendChild(k));const he=_.value.project(or.lngLat);k.innerHTML=Ze(Q,te,G.fields,_t.properties,G.mode,he)}}),_.value.on("mouseleave",()=>{var or;if(k&&(k.remove(),k=null),x.value){const Xt=(or=_.value.getSource(x.value.source))==null?void 0:or.type,_t={source:x.value.source,id:x.value.id};Xt==="vector"&&(_t.sourceLayer=x.value.source),Ur(_.value,x.value.source,x.value.id,{hovered:!1}),x.value=null}_.value&&_.value.getCanvas&&(_.value.getCanvas().style.cursor="")})),_.value.on("click",async or=>{var jr;if(["length","area","print"].includes(R.value))return;const Xt=_.value.queryRenderedFeatures(or.point);if(!Xt.length)return;s.value.forEach(ve=>{var te;const G=(te=_.value.getSource(ve.source))==null?void 0:te.type,Q={source:ve.source,id:ve.id};G==="vector"&&(Q.sourceLayer=ve.source),Ur(_.value,ve.source,ve.id,{selected:!1})}),s.value=[];const _t=Xt[0],Ar=(jr=_.value.getSource(_t.layer.source))==null?void 0:jr.type,tr={source:_t.layer.source,id:_t.id};Ar==="vector"&&(tr.sourceLayer=_t.layer.source),Ur(_.value,_t.layer.source,_t.id,{selected:!0}),s.value.push({source:_t.layer.source,id:_t.id});const yr=f.config.widgets.find(ve=>ve.type==="layers"),Cr=f.config.widgets.find(ve=>ve.type==="attribute");let Zt=(Cr==null?void 0:Cr.config.layer)||(yr==null?void 0:yr.config.layers.find(ve=>ve.id===_t.layer.source));z.value={layer:(Zt==null?void 0:Zt.service_key)||"",map:(Zt==null?void 0:Zt.map_key)||"",id:_t.properties.id,title:(Zt==null?void 0:Zt.title)||""}}),_.value.on("dblclick",or=>{var Ar;if(["length","area","print"].includes(R.value))return;Dr([or.lngLat.lng,or.lngLat.lat]);const Xt=f.config.widgets.find(tr=>tr.type==="layers");let _t=null;(Ar=Xt==null?void 0:Xt.config)!=null&&Ar.layers&&(_t=Xt.config.layers.find(tr=>tr.visible!==!1&&["tms","wms","raster"].includes((tr.service_type||tr.service||"").toLowerCase()))),z.value={layer:(_t==null?void 0:_t.map_key)||"",map:(_t==null?void 0:_t.service_key)||"",id:"",title:(_t==null?void 0:_t.title)||""}}),_.value.resize(),v.value=!0,f.config.history){const or=()=>{const Xt=_.value.getCenter();bt({center:[Xt.lng,Xt.lat],zoom:_.value.getZoom(),bearing:_.value.getBearing(),pitch:_.value.getPitch()})};_.value.on("moveend",or),_.value.on("rotate",or),_.value.on("pitch",or)}}catch(gr){console.error("Error loading map:",gr)}})},mr=()=>{yi(),s.value.forEach(et=>{_.value&&Ur(_.value,et.source,et.id,{selected:!1})}),s.value=[],z.value=null};S.onMounted(async()=>{await S.nextTick(),It(),pe(),window.addEventListener("resize",()=>{pe()}),S.watch([M["top-left"],M["top-right"],M["top-center"],M.center,M["bottom-left"],M["bottom-right"],M["bottom-center"],()=>f.config.widgets,B],async()=>{await S.nextTick(),pe(),setTimeout(pe,0)},{deep:!0}),S.watch(v,et=>{et&&S.nextTick().then(()=>{pe()})})}),S.onUnmounted(()=>{window.removeEventListener("resize",pe)});const Sr=S.computed(()=>{var nt;return{height:f.config.height||((nt=f.config.map)==null?void 0:nt.height)||"100vh",width:"100%"}}),Ai=et=>{var Xe;const nt=(Xe=f.config.widgets)==null?void 0:Xe.find(xt=>xt.position===et);return(nt==null?void 0:nt.width)||"400px"},Ft=S.ref([]),en=()=>{var nt;const et=f.config.widgets.find(Xe=>Xe.type==="layers");return(nt=et==null?void 0:et.config)!=null&&nt.layers?et.config.layers.map(Xe=>({...Xe,visible:Xe.visible??!1})).filter(Xe=>Xe.visible).map(Xe=>Xe.id):[]};Ft.value=en();function Ur(et,nt,Xe,xt){et.getStyle().layers.filter(kt=>kt.source===nt).forEach(kt=>{var Ht;const er={source:nt,id:Xe};((Ht=et.getSource(nt))==null?void 0:Ht.type)==="vector"&&kt["source-layer"]&&(er.sourceLayer=kt["source-layer"]),et.setFeatureState(er,xt)})}const kn=S.computed(()=>{var et,nt;return!!((nt=(et=f.config.interactions)==null?void 0:et.navigation)!=null&&nt.enabled)}),ki=S.computed(()=>Array.isArray(f.config.tools)&&f.config.tools.length>0),cs=S.computed(()=>kn.value||ki.value?"70px":"20px");function yi(){_.value&&(_.value.getLayer("layer-with-pulsing-dot")&&_.value.removeLayer("layer-with-pulsing-dot"),_.value.getSource("dot-point")&&_.value.removeSource("dot-point"),_.value.hasImage&&_.value.hasImage("pulsing-dot")&&_.value.removeImage("pulsing-dot"))}function Dr(et){var xt,wt,kt,er;yi();const nt=80,Xe={width:nt,height:nt,data:new Uint8Array(nt*nt*4),onAdd(){const Ht=document.createElement("canvas");Ht.width=this.width,Ht.height=this.height,this.context=Ht.getContext("2d",{willReadFrequently:!0})},render(){var rn;const Jt=performance.now()%2e3/2e3,Br=nt/2*.3,_i=nt/2*.7*Jt+Br,{context:gr}=this;gr.clearRect(0,0,this.width,this.height),gr.beginPath(),gr.arc(this.width/2,this.height/2,_i,0,Math.PI*2),gr.fillStyle=`rgba(255, 100, 100, ${1-Jt})`,gr.fill();const Ti=nt/2*.7*(Jt-.5<0?Jt-.5+1:Jt-.5)+Br;return gr.beginPath(),gr.arc(this.width/2,this.height/2,Ti,0,Math.PI*2),gr.fillStyle=`rgba(255, 100, 100, ${1-(Jt-.5<0?Jt-.5+1:Jt-.5)})`,gr.fill(),this.data=gr.getImageData(0,0,this.width,this.height).data,(rn=_.value)==null||rn.triggerRepaint(),!0}};(xt=_.value)!=null&&xt.hasImage("pulsing-dot")||(wt=_.value)==null||wt.addImage("pulsing-dot",Xe,{pixelRatio:2}),(kt=_.value)==null||kt.addSource("dot-point",{type:"geojson",data:{type:"Feature",geometry:{type:"Point",coordinates:et}}}),(er=_.value)==null||er.addLayer({id:"layer-with-pulsing-dot",type:"symbol",source:"dot-point",layout:{"icon-image":"pulsing-dot"},paint:{"icon-opacity":.6}})}const tn=S.computed(()=>({center:f.config.map.center,zoom:f.config.map.zoom,pitch:f.config.map.pitch||0,bearing:f.config.map.bearing||0,bbox:f.config.map.bbox||null})),ii={home:Av,print:Iv,geolocation:ew,pitch:Rv,length:Pw,area:jw},Tn=et=>{R.value=et};function Zi(et){const{map_key:nt,service_key:Xe}=f.config.widgets.find(xt=>xt.type==="list").config;nt&&Xe&&(z.value={id:et,map:nt,layer:Xe})}function Un(et){switch(et){case"top-left":return T.value;case"top-right":return N.value;case"top-center":return K.value;case"center":return ie.value;case"bottom-left":return le.value;case"bottom-right":return Se.value;case"bottom-center":return ee.value;default:return 0}}const ci=S.computed(()=>{var et;return((et=f.config.widgets)==null?void 0:et.filter(nt=>nt.position==="absolute"))||[]});return(et,nt)=>(S.openBlock(),S.createElementBlock("div",{id:"maplibre-demo-map",style:S.normalizeStyle(Sr.value)},[v.value?S.createCommentVNode("",!0):(S.openBlock(),S.createBlock(_v,{key:0})),S.withDirectives(S.createElementVNode("div",Ww,[(S.openBlock(),S.createElementBlock(S.Fragment,null,S.renderList(H,Xe=>S.createVNode(Hw,{key:Xe,position:Xe,widgets:Pe(Xe),map:_.value,mapLoaded:v.value,cardValues:z.value,hasFilters:rt.value,history:f.config.history,currentFilterLayer:P.value,enabledLayerIds:Ft.value,getWidgetComponent:gt,getColumnWidth:Ai,rightColumnOffset:Xe==="top-right"?cs.value:void 0,maxHeight:Un(Xe),ref_for:!0,ref:xt=>C(Xe,xt),onSetFilterLayer:Je,"onUpdate:enabledLayerIds":nt[0]||(nt[0]=xt=>Ft.value=xt),onCardValuesId:Zi,onCloseCard:mr,onContentResize:()=>pe(Xe)},null,8,["position","widgets","map","mapLoaded","cardValues","hasFilters","history","currentFilterLayer","enabledLayerIds","rightColumnOffset","maxHeight","onContentResize"])),64)),S.createElementVNode("div",Zw,[(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(d.config.tools,Xe=>(S.openBlock(),S.createElementBlock(S.Fragment,{key:Xe},[v.value&&ii[Xe]?(S.openBlock(),S.createBlock(S.resolveDynamicComponent(ii[Xe]),S.mergeProps({key:0,map:_.value,activeTool:R.value,setActiveTool:Tn},{ref_for:!0},Xe==="home"?{initialView:tn.value}:{},{onCardValuesId:Zi}),null,16,["map","activeTool"])):S.createCommentVNode("",!0)],64))),128))])],512),[[S.vShow,v.value]]),(S.openBlock(!0),S.createElementBlock(S.Fragment,null,S.renderList(ci.value,(Xe,xt)=>(S.openBlock(),S.createElementBlock("div",{key:"abs-"+(Xe.id||Xe.type||xt),class:"absolute z-20",style:S.normalizeStyle(Xe.style)},[(S.openBlock(),S.createBlock(S.resolveDynamicComponent(gt(Xe.type)),{map:_.value,config:Xe.config,hasFilters:rt.value,currentFilterLayer:P.value,enabledLayerIds:Ft.value,cardValues:z.value,onSetFilterLayer:Je,"onUpdate:enabledLayerIds":nt[1]||(nt[1]=wt=>Ft.value=wt),onCardValuesId:Zi,onCloseCard:mr},null,40,["map","config","hasFilters","currentFilterLayer","enabledLayerIds","cardValues"]))],4))),128))],4))}},[["__scopeId","data-v-610e8e15"]]),Kw={install(d){d.component("MapCustom",Mm)},MapCustom:Mm};zi.gis=Kw,Object.defineProperty(zi,Symbol.toStringTag,{value:"Module"})});
|