1import{t as e}from"./chunk-QTnfLwEv.js";var t=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self,n.mapboxgl=r())})(e,(function(){var e,t,n;function r(r,i){if(!e)e=i;else if(!t)t=i;else{var a=`self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; (`+e+`)(sharedChunk); (`+t+`)(sharedChunk); self.onerror = null;`,o={};e(o),n=i(o),typeof window<`u`&&window&&window.URL&&window.URL.createObjectURL&&(n.workerUrl=window.URL.createObjectURL(new Blob([a],{type:`text/javascript`})))}}return r([`exports`],(function(e){var t=typeof self<`u`?self:{},n=`2.12.0`;let r,i={API_URL:`https://api.mapbox.com`,get API_URL_REGEX(){if(r==null){let e=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;try{r={}.API_URL_REGEX==null?e:new RegExp({}.API_URL_REGEX)}catch{r=e}}return r},get API_TILEJSON_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/v[0-9]*\/.*\.json.*$)/i},get API_SPRITE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*\/sprite.*\..*$)/i},get API_FONTS_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/fonts\/v[0-9]*\/)(.*\.pbf.*$)/i},get API_STYLE_REGEX(){return/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/styles\/v[0-9]*\/)(.*$)/i},get API_CDN_URL_REGEX(){return/^((https?:)?\/\/)?api\.mapbox\.c(n|om)(\/mapbox-gl-js\/)(.*$)/i},get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf(`https://api.mapbox.cn`)===0?`https://events.mapbox.cn/events/v2`:this.API_URL.indexOf(`https://api.mapbox.com`)===0?`https://events.mapbox.com/events/v2`:null:null},SESSION_PATH:`/map-sessions/v1`,FEEDBACK_URL:`https://apps.mapbox.com/feedback`,TILE_URL_VERSION:`v4`,RASTER_URL_PREFIX:`raster/v1`,REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},a={supported:!1,testSupport:function(e){!c&&s&&(l?u(e):o=e)}},o,s,c=!1,l=!1;function u(e){let t=e.createTexture();e.bindTexture(e.TEXTURE_2D,t);try{if(e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s),e.
1isContextLost())return;a.supported=!0}catch{}e.deleteTexture(t),c=!0}t.document&&(s=t.document.createElement(`img`),s.onload=function(){o&&u(o),o=null,l=!0},s.onerror=function(){c=!0,o=null},s.src=`data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=`);var d=f;function f(e,t,n,r){this.cx=3*e,this.bx=3*(n-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*t,this.by=3*(r-t)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=t,this.p2x=n,this.p2y=r}f.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,t){if(t===void 0&&(t=1e-6),e<0)return 0;if(e>1)return 1;for(var n=e,r=0;r<8;r++){var i=this.sampleCurveX(n)-e;if(Math.abs(i)<t)return n;var a=this.sampleCurveDerivativeX(n);if(Math.abs(a)<1e-6)break;n-=i/a}var o=0,s=1;for(n=e,r=0;r<20&&(i=this.sampleCurveX(n),!(Math.abs(i-e)<t));r++)e>i?o=n:s=n,n=.5*(s-o)+o;return n},solve:function(e,t){return this.sampleCurveY(this.solveCurveX(e,t))}};var p=m;function m(e,t){this.x=e,this.y=t}m.prototype={clone:function(){return new m(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},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(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[2]*this.x+e[3]*this.y;return this.x=e[0]*this.x+e[1]*this.y,this.y=t,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),n=Math.sin(e),r=n*this.x+t*this.y;return this.x=t*this.x-n*this.y,this.y=r,this},_rotateAround:function(e,t){var n=Math.cos(e),r=Math.sin(e),i=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=t.x+n*(this.x-t.x)-r*(this.y-t.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},m.convert=function(e){return e instanceof m?e:Array.isArray(e)?new m(e[0],e[1]):e};let h=Math.PI/180,g=180/Math.PI;function _(e){return e*h}function v(e){return e*g}let y=[[0,0],[1,0],[1,1],[0,1]];function b(e){if(e<=0)return 0;if(e>=1)return 1;let t=e*e,n=t*e;return 4*(e<.5?n:3*(e-t)+n-.75)}function x(e,t,n,r){let i=new d(e,t,n,r);return function(e){return i.solve(e)}}let S=x(.25,.1,.25,1);function C(e,t,n){return Math.min(n,Math.max(t,e))}function w(e,t,n){return(n=C((n-e)/(t-e),0,1))*n*(3-2*n)}function T(e,t,n){let r=n-t,i=((e-t)%r+r)%r+t;return i===t?n:i}function E(e,t,n){if(!e.length)return n(null,[]);let r=e.length,i=Array(e.length),a=null;e.forEach(((e,o)=>{t(e,((e,t)=>{e&&(a=e),i[o]=t,--r==0&&n(a,i)}))}))}function D(e){let t=[];for(let n in e)t.push(e[n]);return t}function O(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}let k=1;function A(){return k++}function j(){return function e(t){return t?(t^Math.random()*(16>>t/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,e)}()}function M(e){return e<=1?1:2**Math.ceil(Math.log(e)/Math.LN2)}function ee(e){return!!e&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function N(e,t){e.forEach((e=>{t[e]&&(t[e]=t[e].bind(t))}))}function te(e,t){return e.indexOf(t,e.length-t.length)!==-1}function P(e,t,n){let r={};for(let i in e)r[i]=t.call(n||this,e[i],i,e);return r}function F(e,t,n){let r={};for(let i in e)t.call(n||this,e[i],i,e)&&(r[i]=e[i]);return r}function I(e){return Array.isArray(e)?e.map(I):typeof e==`object`&&e?P(e,I):e}let ne={};function L(e){ne[e]||(typeof console<`u`&&console.warn(e),ne[e]=!0)}function re(e,t,n){return(n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function ie(e){let t=0;for(let n,r,i=0,a=e.length,o=a-1;i<a;o=i++)n=e[i],r=e[o],t+=(r.x-n.x)*(n.y+r.y);return t}function ae(){return typeof WorkerGlobalScope<`u`&&typeof self<`u`&&self instanceof WorkerGlobalScope}function oe(e){let t={};if(e.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((e,n,r,i)=>{let a=r||i;return t[n]=!a||a.toLowerCase(),``})),t[`max-age`]){let e=parseInt(t[`max-age`],10);isNaN(e)?delete t[`max-age`]:t[`max-age`]=e}return t}let se=null;function ce(e){if(se==null){let t=e.navigator?e.navigator.userAgent:null;se=!!e.safari||!(!t||!(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match(`Safari`)&&!t.match(`Chrome`)))}return se}function le(e){try{let n=t[e];return n.setItem(`_mapbox_test_`,1),n.removeItem(`_mapbox_test_`),!0}catch{return!1}}function ue(e,t){return[e[4*t],e[4*t+1],e[4*t+2],e[4*t+3]]}let de=`mapbox-tiles`,fe,pe,me=500,he=50;function ge(){try{return t.caches}catch{}}function _e(){ge()&&!fe&&(fe=t.caches.open(de))}function ve(e){let t=e.indexOf(`?`);if(t<0)return e;let n=function(e){let t=e.indexOf(`?`);return t>0?e.slice(t+1).split(`&`):[]}(e).filter((e=>{let t=e.split(`=`);return t[0]===`language`||t[0]===`worldview`}));return n.length?`${e.slice(0,t)}?${n.join(`&`)}`:e.slice(0,t)}
1let ye=1/0,be={Unknown:`Unknown`,Style:`Style`,Source:`Source`,Tile:`Tile`,Glyphs:`Glyphs`,SpriteImage:`SpriteImage`,SpriteJSON:`SpriteJSON`,Image:`Image`};typeof Object.freeze==`function`&&Object.freeze(be);class xe extends Error{constructor(e,t,n){t===401&&Me(n)&&(e+=`: you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes`),super(e),this.status=t,this.url=n}toString(){return`${this.name}: ${this.message} (${this.status}): ${this.url}`}}let Se=ae()?()=>self.worker&&self.worker.referrer:()=>(t.location.protocol===`blob:`?t.parent:t).location.href,Ce=function(e,n){if(!(/^file:/.test(r=e.url)||/^file:/.test(Se())&&!/^\w+:/.test(r))){if(t.fetch&&t.Request&&t.AbortController&&t.Request.prototype.hasOwnProperty(`signal`))return function(e,n){let r=new t.AbortController,i=new t.Request(e.url,{method:e.method||`GET`,body:e.body,credentials:e.credentials,headers:e.headers,referrer:Se(),signal:r.signal}),a=!1,o=!1,s=(c=i.url).indexOf(`sku=`)>0&&Me(c);var c;e.type===`json`&&i.headers.set(`Accept`,`application/json`);let l=(r,a,c)=>{if(o)return;if(r&&r.message!==`SecurityError`&&L(r),a&&c)return u(a);let l=Date.now();t.fetch(i).then((t=>t.ok?u(t,s?t.clone():null,l):n(new xe(t.statusText,t.status,e.url)))).catch((e=>{e.code!==20&&n(Error(e.message))}))},u=(r,s,c)=>{(e.type===`arrayBuffer`?r.arrayBuffer():e.type===`json`?r.json():r.text()).then((e=>{o||(s&&c&&function(e,n,r){if(_e(),!fe)return;let i={status:n.status,statusText:n.statusText,headers:new t.Headers};n.headers.forEach(((e,t)=>i.headers.set(t,e)));let a=oe(n.headers.get(`Cache-Control`)||``);if(a[`no-store`])return;a[`max-age`]&&i.headers.set(`Expires`,new Date(r+1e3*a[`max-age`]).toUTCString());let o=i.headers.get(`Expires`);o&&(new Date(o).getTime()-r<42e4||function(e,t){if(pe===void 0)try{new Response(new ReadableStream),pe=!0}catch{pe=!1}pe?t(e.body):e.blob().then(t)}(n,(n=>{let r=new t.Response(n,i);_e(),fe&&fe.then((t=>t.put(ve(e.url),r))).catch((e=>L(e.message)))})))}(i,s,c),a=!0,n(null,e,r.headers.get(`Cache-Control`),r.headers.get(`Expires`)))})).catch((e=>{o||n(Error(e.message))}))};return s?function(e,t){if(_e(),!fe)return t(null);let n=ve(e.url);fe.then((e=>{e.match(n).then((r=>{let i=function(e){if(!e)return!1;let t=new Date(e.headers.get(`Expires`)||0),n=oe(e.headers.get(`Cache-Control`)||``);return t>Date.now()&&!n[`no-cache`]}(r);e.delete(n),i&&e.put(n,r.clone()),t(null,r,i)})).catch(t)})).catch(t)}(i,l):l(null,null),{cancel:()=>{o=!0,a||r.abort()}}}(e,n);if(ae()&&self.worker&&self.worker.actor)return self.worker.actor.send(`getResource`,e,n,void 0,!0)}var r;return function(e,n){let r=new t.XMLHttpRequest;r.open(e.method||`GET`,e.url,!0),e.type===`arrayBuffer`&&(r.responseType=`arraybuffer`);for(let t in e.headers)r.setRequestHeader(t,e.headers[t]);return e.type===`json`&&(r.responseType=`text`,r.setRequestHeader(`Accept`,`application/json`)),r.withCredentials=e.credentials===`include`,r.onerror=()=>{n(Error(r.statusText))},r.onload=()=>{if((r.status>=200&&r.status<300||r.status===0)&&r.response!==null){let t=r.response;if(e.type===`json`)try{t=JSON.parse(r.response)}catch(e){return n(e)}n(null,t,r.getResponseHeader(`Cache-Control`),r.getResponseHeader(`Expires`))}else n(new xe(r.statusText,r.status,e.url))},r.send(e.body),{cancel:()=>r.abort()}}(e,n)},we=function(e,t){return Ce(O(e,{type:`arrayBuffer`}),t)};function Te(e){let n=t.document.createElement(`a`);return n.href=e,n.protocol===t.document.location.protocol&&n.host===t.document.location.host}let Ee=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=`,De,Oe;De=[],Oe=0;let ke=function(e,n){if(a.supported&&(e.headers||={},e.headers.accept=`image/webp,*/*`),Oe>=i.MAX_PARALLEL_IMAGE_REQUESTS){let t={requestParameters:e,callback:n,cancelled:!1,cancel(){this.cancelled=!0}};return De.push(t),t}Oe++;let r=!1,o=()=>{if(!r)for(r=!0,Oe--;De.length&&Oe<i.MAX_PARALLEL_IMAGE_REQUESTS;){let e=De.shift(),{requestParameters:t,callback:n,cancelled:r}=e;r||(e.cancel=ke(t,n).cancel)}},s=we(e,((e,r,i,a)=>{o(),e?n(e):r&&(t.createImageBitmap?function(e,n){let r=new t.Blob([new Uint8Array(e)],{type:`image/png`});t.createImageBitmap(r).then((e=>{n(null,e)}
1)).catch((e=>{n(Error(`Could not load image because of ${e.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`))}))}(r,((e,t)=>n(e,t,i,a))):function(e,n){let r=new t.Image,i=t.URL;r.onload=()=>{n(null,r),i.revokeObjectURL(r.src),r.onload=null,t.requestAnimationFrame((()=>{r.src=Ee}))},r.onerror=()=>n(Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));let a=new t.Blob([new Uint8Array(e)],{type:`image/png`});r.src=e.byteLength?i.createObjectURL(a):Ee}(r,((e,t)=>n(e,t,i,a))))}));return{cancel:()=>{s.cancel(),o()}}},Ae=`NO_ACCESS_TOKEN`;function je(e){return e.indexOf(`mapbox:`)===0}function Me(e){return i.API_URL_REGEX.test(e)}function Ne(e){return i.API_CDN_URL_REGEX.test(e)}function Pe(e){return i.API_STYLE_REGEX.test(e)&&!Fe(e)}function Fe(e){return i.API_SPRITE_REGEX.test(e)}let Ie=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function Le(e){let t=e.match(Ie);if(!t)throw Error(`Unable to parse URL object`);return{protocol:t[1],authority:t[2],path:t[3]||`/`,params:t[4]?t[4].split(`&`):[]}}function Re(e){let t=e.params.length?`?${e.params.join(`&`)}`:``;return`${e.protocol}://${e.authority}${e.path}${t}`}function ze(e){if(!e)return null;let n=e.split(`.`);if(!n||n.length!==3)return null;try{return JSON.parse(decodeURIComponent(t.atob(n[1]).split(``).map((e=>`%`+(`00`+e.charCodeAt(0).toString(16)).slice(-2))).join(``)))}catch{return null}}class Be{constructor(e){this.type=e,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null}getStorageKey(e){let n=ze(i.ACCESS_TOKEN),r=``;return r=n&&n.u?t.btoa(encodeURIComponent(n.u).replace(/%([0-9A-F]{2})/g,((e,t)=>String.fromCharCode(Number(`0x`+t))))):i.ACCESS_TOKEN||``,e?`mapbox.eventData.${e}:${r}`:`mapbox.eventData:${r}`}fetchEventData(){let e=le(`localStorage`),n=this.getStorageKey(),r=this.getStorageKey(`uuid`);if(e)try{let e=t.localStorage.getItem(n);e&&(this.eventData=JSON.parse(e));let i=t.localStorage.getItem(r);i&&(this.anonId=i)}catch{L(`Unable to read from LocalStorage`)}}saveEventData(){let e=le(`localStorage`),n=this.getStorageKey(),r=this.getStorageKey(`uuid`);if(e)try{t.localStorage.setItem(r,this.anonId),Object.keys(this.eventData).length>=1&&t.localStorage.setItem(n,JSON.stringify(this.eventData))}catch{L(`Unable to write to LocalStorage`)}}processRequests(e){}postEvent(e,t,n,r){if(!i.EVENTS_URL)return;let a=Le(i.EVENTS_URL);a.params.push(`access_token=${r||i.ACCESS_TOKEN||``}`);let o={event:this.type,created:new Date(e).toISOString()},s=t?O(o,t):o,c={url:Re(a),headers:{"Content-Type":`text/plain`},body:JSON.stringify([s])};this.pendingRequest=function(e,t){return Ce(O(e,{method:`POST`}),t)}(c,(e=>{this.pendingRequest=null,n(e),this.saveEventData(),this.processRequests(r)}))}queueRequest(e,t){this.queue.push(e),this.processRequests(t)}}let Ve=new class extends Be{constructor(e){super(`appUserTurnstile`),this._customAccessToken=e}postTurnstileEvent(e,t){i.EVENTS_URL&&i.ACCESS_TOKEN&&Array.isArray(e)&&e.some((e=>je(e)||Me(e)))&&this.queueRequest(Date.now(),t)}processRequests(e){if(this.pendingRequest||this.queue.length===0)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();let t=ze(i.ACCESS_TOKEN),r=t?t.u:i.ACCESS_TOKEN,a=r!==this.eventData.tokenU;ee(this.anonId)||(this.anonId=j(),a=!0);let o=this.queue.shift();if(this.eventData.lastSuccess){let e=new Date(this.eventData.lastSuccess),t=new Date(o),n=(o-this.eventData.lastSuccess)/864e5;a=a||n>=1||n<-1||e.getDate()!==t.getDate()}else a=!0;a?this.postEvent(o,{sdkIdentifier:`mapbox-gl-js`,sdkVersion:n,skuId:`01`,"enabled.telemetry":!1,userId:this.anonId},(e=>{e||(this.eventData.lastSuccess=o,this.eventData.tokenU=r)}),e):this.processRequests()}},He=Ve.postTurnstileEvent.bind(Ve),Ue=new class extends Be{constructor(){super(`map.load`),this.success={},this.skuToken=``}postMapLoadEvent(e,t,n,r){this.skuToken=t,this.errorCb=r,i.EVENTS_URL&&(n||i.ACCESS_TOKEN?this.queueRequest({id:e,timestamp:Date.now()},n):this.errorCb(Error(Ae)))}processRequests(e){if(this.pendingRequest||this.queue.length===0)return;let{id:t,timestamp:r}=this.queue.shift();t&&this.success[t]||(this.anonId||this.fetchEventData(),ee(this.anonId)||(this.anonId=j()),this.postEvent(r,{sdkIdentifier:`mapbox-gl-js`,sdkVersion:n,skuId:`01`,skuToken:this.skuToken,userId:this.anonId},(e=>{e?this.errorCb(e):t&&(this.success[t]=!0)}),e))}},We=Ue.postMapLoadEvent.bind(Ue),Ge=new class extends Be{constructor(){super(`gljs.performance`)}
1postPerformanceEvent(e,t){i.EVENTS_URL&&(e||i.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:t},e)}processRequests(e){if(this.pendingRequest||this.queue.length===0)return;let{timestamp:r,performanceData:i}=this.queue.shift(),a=function(e){let r=t.performance.getEntriesByType(`resource`),i=t.performance.getEntriesByType(`mark`),a=function(e){let t={};if(e){for(let n in e)if(n!==`other`)for(let r of e[n]){let e=`${n}ResolveRangeMin`,i=`${n}ResolveRangeMax`,a=`${n}RequestCount`,o=`${n}RequestCachedCount`;t[e]=Math.min(t[e]||1/0,r.startTime),t[i]=Math.max(t[i]||-1/0,r.responseEnd);let s=e=>{t[e]===void 0&&(t[e]=0),++t[e]};r.transferSize!==void 0&&r.transferSize===0&&s(o),s(a)}}return t}(function(e,t){let n={};if(e)for(let r of e){let e=t(r);n[e]===void 0&&(n[e]=[]),n[e].push(r)}return n}(r,Qe)),o=t.devicePixelRatio,s=t.navigator.connection||t.navigator.mozConnection||t.navigator.webkitConnection,c={counters:[],metadata:[],attributes:[]},l=(e,t,n)=>{n!=null&&e.push({name:t,value:n.toString()})};for(let e in a)l(c.counters,e,a[e]);if(e.interactionRange[0]!==1/0&&e.interactionRange[1]!==-1/0&&(l(c.counters,`interactionRangeMin`,e.interactionRange[0]),l(c.counters,`interactionRangeMax`,e.interactionRange[1])),i)for(let e of Object.keys(Xe)){let t=Xe[e],n=i.find((e=>e.name===t));n&&l(c.counters,t,n.startTime)}return l(c.counters,`visibilityHidden`,e.visibilityHidden),l(c.attributes,`style`,function(e){if(e)for(let t of e){let e=t.name.split(`?`)[0];if(Pe(e)){let t=e.split(`/`).slice(-2);if(t.length===2)return`mapbox://styles/${t[0]}/${t[1]}`}}}(r)),l(c.attributes,`terrainEnabled`,e.terrainEnabled?`true`:`false`),l(c.attributes,`fogEnabled`,e.fogEnabled?`true`:`false`),l(c.attributes,`projection`,e.projection),l(c.attributes,`zoom`,e.zoom),l(c.metadata,`devicePixelRatio`,o),l(c.metadata,`connectionEffectiveType`,s?s.effectiveType:void 0),l(c.metadata,`navigatorUserAgent`,t.navigator.userAgent),l(c.metadata,`screenWidth`,t.screen.width),l(c.metadata,`screenHeight`,t.screen.height),l(c.metadata,`windowWidth`,t.innerWidth),l(c.metadata,`windowHeight`,t.innerHeight),l(c.metadata,`mapWidth`,e.width/o),l(c.metadata,`mapHeight`,e.height/o),l(c.metadata,`webglRenderer`,e.renderer),l(c.metadata,`webglVendor`,e.vendor),l(c.metadata,`sdkVersion`,n),l(c.metadata,`sdkIdentifier`,`mapbox-gl-js`),c}(i);for(let e of a.metadata);for(let e of a.counters);for(let e of a.attributes);this.postEvent(r,a,(()=>{}),e)}},Ke=Ge.postPerformanceEvent.bind(Ge),qe=new class extends Be{constructor(){super(`map.auth`),this.success={},this.skuToken=``}getSession(e,t,n,r){if(!i.API_URL||!i.SESSION_PATH)return;let a=Le(i.API_URL+i.SESSION_PATH);a.params.push(`sku=${t||``}`),a.params.push(`access_token=${r||i.ACCESS_TOKEN||``}`);let o={url:Re(a),headers:{"Content-Type":`text/plain`}};this.pendingRequest=function(e,t){return Ce(O(e,{method:`GET`}),t)}(o,(e=>{this.pendingRequest=null,n(e),this.saveEventData(),this.processRequests(r)}))}getSessionAPI(e,t,n,r){this.skuToken=t,this.errorCb=r,i.SESSION_PATH&&i.API_URL&&(n||i.ACCESS_TOKEN?this.queueRequest({id:e,timestamp:Date.now()},n):this.errorCb(Error(Ae)))}processRequests(e){if(this.pendingRequest||this.queue.length===0)return;let{id:t,timestamp:n}=this.queue.shift();t&&this.success[t]||this.getSession(n,this.skuToken,(e=>{e?this.errorCb(e):t&&(this.success[t]=!0)}),e)}},Je=qe.getSessionAPI.bind(qe),Ye=new Set,Xe={create:`create`,load:`load`,fullLoad:`fullLoad`},Ze={mark(e){t.performance.mark(e)},measure(e,n,r){t.performance.measure(e,n,r)}};function Qe(e){let t=e.name.split(`?`)[0];return Ne(t)&&t.includes(`mapbox-gl.js`)?`javascript`:Ne(t)&&t.includes(`mapbox-gl.css`)?`css`:function(e){return i.API_FONTS_REGEX.test(e)}(t)?`fontRange`:Fe(t)?`sprite`:Pe(t)?`style`:function(e){return i.API_TILEJSON_REGEX.test(e)}(t)?`tilejson`:`other`}let $e=t.performance;function et(e){let t=e?e.url.toString():void 0;return $e.getEntriesByName(t)}let tt,nt,R,rt,it={now:()=>R===void 0?t.performance.now():R,setNow(e){R=e},restoreNow(){R=void 0},frame(e){let n=t.requestAnimationFrame(e);return{cancel:()=>t.cancelAnimationFrame(n)}},getImageData(e,n=0){let{width:r,height:i}=e;rt||=t.document.createElement(`canvas`);let a=rt.getContext(`2d`,{willReadFrequently:!0});if(!a)throw Error(`failed to create canvas 2d context`);return(r>rt.width||i>rt.height)&&(rt.width=r,rt.height=i),a.clearRect(-n,-n,r+2*n,i+2*n),a.drawImage(e,0,0,r,i),a.getImageData(-n,-n,r+2*n,i+2*n)},resolveURL:e=>(tt||=t.document.createElement(`a`),tt.href=e,tt.href),get devicePixelRatio(){return t.devicePixelRatio},get prefersReducedMotion(){return!!t.matchMedia&&(nt??=t.matchMedia(`(prefers-reduced-motion: reduce)`),nt.matches)}};function at(e,t,n){n[e]&&n[e].indexOf(t)!==-1||(n[e]=n[e]||[],n[e].push(t))}function ot(e,t,n){if(n&&n[e]){let r=n[e].indexOf(t);r!==-1&&n[e].splice(r,1)}}class st{constructor(e,t={}){O(this,t),this.type=e}}class ct extends st{constructor(e,t={}){super(`error`,O({error:e},t))}}class lt{on(e,t){return this._listeners=this._listeners||{},at(e,t,this._listeners),this}off(e,t){return ot(e,t,this._listeners),ot(e,t,this._oneTimeListeners),this}once(e,t){return t?(this._oneTimeListeners=this._oneTimeListeners||{},at(e,t,this._oneTimeListeners),this):new Promise((t=>this.once(e,t)))}fire(e,t){typeof e==`string`&&(e=new st(e,t||{}));let n=e.type;if(this.listens(n)){e.target=this;let t=this._listeners&&this._listeners[n]?this._listeners[n].slice():[];for(let n of t)n.call(this,e);let r=this._oneTimeListeners&&this._oneTimeListeners[n]?this._oneTimeListeners[n].slice():[];for(let t of r)ot(n,t,this._oneTimeListeners),t.call(this,e);let i=this._eventedParent;i&&(O(e,typeof this._eventedParentData==`function`?this._eventedParentData():this._eventedParentData),i.fire(e))}else e instanceof ct&&console.error(e.error);return this}listens(e){return!!(this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e))}setEventedParent(e,t){return this._eventedParent=e,this._eventedParentData=t,this}}var z=JSON.parse(`{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8]},"name":{"type":"string"},"metadata":{"type":"*"},"center":{"type":"array","value":"number"},"zoom":{"type":"number"},"bearing":{"type":"number","default":0,"period":360,"units":"degrees"},"pitch":{"type":"number","default":0,"units":"degrees"},"light":{"type":"light"},"terrain":{"type":"terrain"},"fog":{"type":"fog"},"sources":{"required":true,"type":"sources"},"sprite":{"type":"string"},"glyphs":{"type":"string"},"transition":{"type":"transition"},"projection":{"type":"projection"},"layers":{"required":true,"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":true,"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":false},"*":{"type":"*"}},"source_raster":{"type":{"required":true,"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":false},"*":{"type":"*"}},"source_raster_dem":{"type":{"required":true,"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":{}},"default":"mapbox"},"volatile":{"type":"boolean","default":false},"*":{"type":"*"}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{}}},"data":{"type":"*"},"maxzoom":{"type":"number","default":18},"attribution":{"type":"string"},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0},"filter":{"type":"*"},"tolerance":{"type":"number","default":0.375},"cluster":{"type":"boolean","default":false},"clusterRadius":{"type":"number","default":50,"minimum":0}
1,"clusterMaxZoom":{"type":"number"},"clusterMinPoints":{"type":"number"},"clusterProperties":{"type":"*"},"lineMetrics":{"type":"boolean","default":false},"generateId":{"type":"boolean","default":false},"promoteId":{"type":"promoteId"}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{}}},"urls":{"required":true,"type":"array","value":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{}}},"url":{"required":true,"type":"string"},"coordinates":{"required":true,"type":"array","length":4,"value":{"type":"array","length":2,"value":"number"}}},"layer":{"id":{"type":"string","required":true},"type":{"type":"enum","values":{"fill":{},"line":{},"symbol":{},"circle":{},"heatmap":{},"fill-extrusion":{},"raster":{},"hillshade":{},"background":{},"sky":{}},"required":true},"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_sky"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{},"none":{}},"default":"visible","property-type":"constant"}},"layout_fill":{"fill-sort-key":{"type":"number","expression":{"interpolated":false,"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":false,"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"},"fill-extrusion-edge-radius":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1
vendor: 16,128 bytes, line 1
1,"property-type":"constant"}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{},"round":{},"square":{}},"default":"butt","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{},"round":{},"miter":{}},"default":"miter","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"requires":[{"line-join":"miter"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"requires":[{"line-join":"round"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","expression":{"interpolated":false,"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":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","requires":[{"symbol-placement":"line"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{},"viewport-y":{},"source":{}},"default":"auto","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"requires":["icon-image","text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"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":true,"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":false,"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":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image":{"type":"resolvedImage","tokens":true,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"requires":["icon-image"],"expression":{"interpolated":true,"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":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["icon-image"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{},"viewport":{},"auto":{}},"default":"auto","requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"expression":{"interpolated":false,"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":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","requires":["text-field",{"symbol-placement":["point"]}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{},"left":{},"center":{},"right":{}},"default":"center","requires":["text-field"],"expression":{"interpolated":false,"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":true,"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":false,"parameters":["zoom"]},"property-type":"data-constant"},"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":false,"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":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{},"vertical":{}},"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{},"uppercase":{},"lowercase":{}},"default":"none","requires":["text-field"],"expression":{"interpolated":false,"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":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"requires":["text-field"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"requires":["text-field","icon-image"],"expression":{"interpolated":false,"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_symbol":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{},"within":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"expression":{"type":"expression"},"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2},"expression":{"type":"array","value":"*","minimum":1},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true}},"projection":{"name":{"type":"enum","values":{"albers":{},"equalEarth":{},"equirectangular":{},"lambertConformalConic":{},"mercator":{},"naturalEarth":{},"winkelTripel":{},"globe":{}},"default":"mercator","required":true},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"requires":[{"name":["albers","lambertConformalConic"]}]}},"terrain":{"source":{"type":"string","required":true},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["source"]}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":
vendor: 16,829 bytes, line 1
1false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"requires":["fill-extrusion-edge-radius"]}},"paint_line":{"line-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"line-pattern"}],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{"type":"color","transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"property-type":"constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"transition":false,"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["icon-image"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{"type":"color","default":"#000000","transition":true,"overridable":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","transition":true,"requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","requires":["text-field"],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","default":0,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","values":{"linear":{},"nearest":{}},"default":"linear","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{},"viewport":{}},"default":"viewport","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","default":0.5,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_background":{"background-color":{"type":"color","default":"#000000","transition":true,"requires":[{"!":"background-pattern"}],"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{},"atmosphere":{}},"default":"atmosphere","expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"transition":false,"requires":[{"sky-type":"gradient"}],"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","transition":false,"requires":[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"expression":{"interpolated":true,"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"},"color-ramp":{"type":"property-type"},"data-constant":{"type":"property-type"},"constant":{"type":"property-type"}},"promoteId":{"*":{"type":"string"}}}`);function ut(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function dt(e){return e instanceof Number||e instanceof String||e instanceof Boolean?e.valueOf():e}function ft(e){if(Array.isArray(e))return e.map(ft);
1if(e instanceof Object&&!(e instanceof Number||e instanceof String||e instanceof Boolean)){let t={};for(let n in e)t[n]=ft(e[n]);return t}return dt(e)}class pt extends Error{constructor(e,t){super(t),this.message=t,this.key=e}}var mt=pt;class ht{constructor(e,t=[]){this.parent=e,this.bindings={};for(let[e,n]of t)this.bindings[e]=n}concat(e){return new ht(this,e)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw Error(`${e} not found in scope.`)}has(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}var gt=ht;let _t={kind:`null`},B={kind:`number`},V={kind:`string`},H={kind:`boolean`},vt={kind:`color`},yt={kind:`object`},U={kind:`value`},bt={kind:`collator`},xt={kind:`formatted`},St={kind:`resolvedImage`};function Ct(e,t){return{kind:`array`,itemType:e,N:t}}function wt(e){if(e.kind===`array`){let t=wt(e.itemType);return typeof e.N==`number`?`array<${t}, ${e.N}>`:e.itemType.kind===`value`?`array`:`array<${t}>`}return e.kind}let Tt=[_t,B,V,H,vt,xt,yt,Ct(U),St];function Et(e,t){if(t.kind===`error`)return null;if(e.kind===`array`){if(t.kind===`array`&&(t.N===0&&t.itemType.kind===`value`||!Et(e.itemType,t.itemType))&&(typeof e.N!=`number`||e.N===t.N))return null}else{if(e.kind===t.kind)return null;if(e.kind===`value`){for(let e of Tt)if(!Et(e,t))return null}}return`Expected ${wt(e)} but found ${wt(t)} instead.`}function Dt(e,t){return t.some((t=>t.kind===e.kind))}function Ot(e,t){return t.some((t=>t===`null`?e===null:t===`array`?Array.isArray(e):t===`object`?e&&!Array.isArray(e)&&typeof e==`object`:t===typeof e))}var kt,At={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function jt(e){return(e=Math.round(e))<0?0:e>255?255:e}function Mt(e){return jt(e[e.length-1]===`%`?parseFloat(e)/100*255:parseInt(e))}function Nt(e){return(t=e[e.length-1]===`%`?parseFloat(e)/100:parseFloat(e))<0?0:t>1?1:t;var t}function Pt(e,t,n){return n<0?n+=1:n>1&&--n,6*n<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}try{kt={}.parseCSSColor=function(e){var t,n=e.replace(/ /g,``).toLowerCase();if(n in At)return At[n].slice();if(n[0]===`#`)return n.length===4?(t=parseInt(n.substr(1),16))>=0&&t<=4095?[(3840&t)>>4|(3840&t)>>8,240&t|(240&t)>>4,15&t|(15&t)<<4,1]:null:n.length===7&&(t=parseInt(n.substr(1),16))>=0&&t<=16777215?[(16711680&t)>>16,(65280&t)>>8,255&t,1]:null;var r=n.indexOf(`(`),i=n.indexOf(`)`);if(r!==-1&&i+1===n.length){var a=n.substr(0,r),o=n.substr(r+1,i-(r+1)).split(`,`),s=1;switch(a){case`rgba`:if(o.length!==4)return null;s=Nt(o.pop());case`rgb`:return o.length===3?[Mt(o[0]),Mt(o[1]),Mt(o[2]),s]:null;case`hsla`:if(o.length!==4)return null;s=Nt(o.pop());case`hsl`:if(o.length!==3)return null;var c=(parseFloat(o[0])%360+360)%360/360,l=Nt(o[1]),u=Nt(o[2]),d=u<=.5?u*(l+1):u+l-u*l,f=2*u-d;return[jt(255*Pt(f,d,c+1/3)),jt(255*Pt(f,d,c)),jt(255*Pt(f,d,c-1/3)),s];default:return null}}return null}}catch{}class Ft{constructor(e,t,n,r=1){this.r=e,this.g=t,this.b=n,this.a=r}static parse(e){if(!e)return;if(e instanceof Ft)return e;if(typeof e!=`string`)return;let t=kt(e);return t?new Ft(t[0]/255*t[3],t[1]/255*t[3],t[2]/255*t[3],t[3]):void 0}toString(){let[e,t,n,r]=this.toArray();return`rgba(${Math.round(e)},${Math.round(t)},${Math.round(n)},${r})`}toArray(){let{r:e,g:t,b:n,a:r}=this;return r===0?[0,0,0,0]:[255*e/r,255*t/r,255*n/r,r]}toArray01(){let{r:e,g:t,b:n,a:r}=this;return r===0?[0,0,0,0]:[e/r,t/r,n/r,r]}toArray01PremultipliedAlpha(){let{r:e,g:t,b:n,a:r}=this;return[e,t,n,r]}}Ft.black=new Ft(0,0,0,1),Ft.white=new Ft(1,1,1,1),Ft.transparent=new Ft(0,0,0,0),Ft.red=new Ft(1,0,0,1),Ft.blue=new Ft(0,0,1,1);var It=Ft;class Lt{constructor(e,t,n){this.sensitivity=e?t?`variant`:`case`:t?`accent`:`base`,this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:`search`})}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Rt{constructor(e,t,n,r,i){this.text=e.normalize?e.normalize():e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i}}class zt{constructor(e){this.sections=e}static fromString(e){return new zt([new Rt(e,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some((e=>e.text.length!==0||e.image&&e.image.name.length!==0))}static factory(e){return e instanceof zt?e:zt.fromString(e)}toString(){return this.sections.length===0?``:this.sections.map((e=>e.text)).join(``)}serialize(){let e=[`format`];for(let t of this.sections){if(t.image){e.push([`image`,t.image.name]);continue}e.push(t.text);let n={};t.fontStack&&(n[`text-font`]=[`literal`,t.fontStack.split(`,`)]),t.scale&&(n[`font-scale`]=t.scale),t.textColor&&(n[`text-color`]=[`rgba`].concat(t.textColor.toArray())),e.push(n)}return e}}class Bt{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new Bt({name:e,available:!1}):null}serialize(){return[`image`,this.name]}}function Vt(e,t,n,r){return typeof e==`number`&&e>=0&&e<=255&&typeof t==`number`&&t>
vendor: 5,747 bytes, line 1
1=0&&t<=255&&typeof n==`number`&&n>=0&&n<=255?r===void 0||typeof r==`number`&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(`, `)}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof r==`number`?[e,t,n,r]:[e,t,n]).join(`, `)}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Ht(e){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||e instanceof It||e instanceof Lt||e instanceof zt||e instanceof Bt)return!0;if(Array.isArray(e)){for(let t of e)if(!Ht(t))return!1;return!0}if(typeof e==`object`){for(let t in e)if(!Ht(e[t]))return!1;return!0}return!1}function Ut(e){if(e===null)return _t;if(typeof e==`string`)return V;if(typeof e==`boolean`)return H;if(typeof e==`number`)return B;if(e instanceof It)return vt;if(e instanceof Lt)return bt;if(e instanceof zt)return xt;if(e instanceof Bt)return St;if(Array.isArray(e)){let t=e.length,n;for(let t of e){let e=Ut(t);if(n){if(n===e)continue;n=U;break}n=e}return Ct(n||U,t)}return yt}function Wt(e){let t=typeof e;return e===null?``:t===`string`||t===`number`||t===`boolean`?String(e):e instanceof It||e instanceof zt||e instanceof Bt?e.toString():JSON.stringify(e)}class Gt{constructor(e,t){this.type=e,this.value=t}static parse(e,t){if(e.length!==2)return t.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!Ht(e[1]))return t.error(`invalid value`);let n=e[1],r=Ut(n),i=t.expectedType;return r.kind!==`array`||r.N!==0||!i||i.kind!==`array`||typeof i.N==`number`&&i.N!==0||(r=i),new Gt(r,n)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return this.type.kind===`array`||this.type.kind===`object`?[`literal`,this.value]:this.value instanceof It?[`rgba`].concat(this.value.toArray()):this.value instanceof zt?this.value.serialize():this.value}}var Kt=Gt,qt=class{constructor(e){this.name=`ExpressionEvaluationError`,this.message=e}toJSON(){return this.message}};let Jt={string:V,number:B,boolean:H,object:yt};class Yt{constructor(e,t){this.type=e,this.args=t}static parse(e,t){if(e.length<2)return t.error(`Expected at least one argument.`);let n,r=1,i=e[0];if(i===`array`){let i,a;if(e.length>2){let n=e[1];if(typeof n!=`string`||!(n in Jt)||n===`object`)return t.error(`The item type argument of "array" must be one of string, number, boolean`,1);i=Jt[n],r++}else i=U;if(e.length>3){if(e[2]!==null&&(typeof e[2]!=`number`||e[2]<0||e[2]!==Math.floor(e[2])))return t.error(`The length argument to "array" must be a positive integer literal`,2);a=e[2],r++}n=Ct(i,a)}else n=Jt[i];let a=[];for(;r<e.length;r++){let n=t.parse(e[r],r,U);if(!n)return null;a.push(n)}return new Yt(n,a)}evaluate(e){for(let t=0;t<this.args.length;t++){let n=this.args[t].evaluate(e);if(!Et(this.type,Ut(n)))return n;if(t===this.args.length-1)throw new qt(`Expected value to be of type ${wt(this.type)}, but found ${wt(Ut(n))} instead.`)}return null}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}serialize(){let e=this.type,t=[e.kind];if(e.kind===`array`){let n=e.itemType;if(n.kind===`string`||n.kind===`number`||n.kind===`boolean`){t.push(n.kind);let r=e.N;(typeof r==`number`||this.args.length>1)&&t.push(r)}}return t.concat(this.args.map((e=>e.serialize())))}}var Xt=Yt;class Zt{constructor(e){this.type=xt,this.sections=e}static parse(e,t){if(e.length<2)return t.error(`Expected at least one argument.`);let n=e[1];if(!Array.isArray(n)&&typeof n==`object`)return t.error(`First argument must be an image or text section.`);let r=[],i=!1;for(let n=1;n<=e.length-1;++n){let a=e[n];if(i&&typeof a==`object`&&!Array.isArray(a)){i=!1;let e=null;if(a[`font-scale`]&&(e=t.parse(a[`font-scale`],1,B),!e))return null;let n=null;if(a[`text-font`]&&(n=t.parse(a[`text-font`],1,Ct(V)),!n))return null;let o=null;if(a[`text-color`]&&(o=t.parse(a[`text-color`],1,vt),!o))return null;let s=r[r.length-1];s.scale=e,s.font=n,s.textColor=o}else{let a=t.parse(e[n],1,U);if(!a)return null;let o=a.type.kind;if(o!==`string`&&o!==`value`&&o!==`null`&&o!==`resolvedImage`)return t.error(`Formatted text type must be 'string', 'value', 'image' or 'null'.`);i=!0,r.push({content:a,scale:null,font:null,textColor:null})}}return new Zt(r)}evaluate(e){return new zt(this.sections.map((t=>{let n=t.content.evaluate(e);return Ut(n)===St?new Rt(``,n,null,null,null):new Rt(Wt(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(`,`):null,t.textColor?t.textColor.evaluate(e):null)})))}eachChild(e){for(let t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor)}outputDefined(){return!1}serialize(){let e=[`format`];for(let t of this.sections){e.push(t.content.serialize());let n={};t.scale&&(n[`font-scale`]=t.scale.serialize()),t.font&&(n[`text-font`]=t.font.serialize()),t.textColor&&(n[`text-color`]=t.textColor.serialize()),e.push(n)}return e}}class Qt{constructor(e){this.type=St,this.input=e}static parse(e,t){if(e.length!==2)return t.error(`Expected two arguments.`);let n=t.parse(e[1],1,V);return n?new Qt(n):t.error(`No image name provided.`)}evaluate(e){let t=this.input.evaluate(e),n=Bt.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){return[`image`,this.input.serialize()]}}let $t={"to-boolean":H,"to-color":vt,"to-number":B,"to-string":V};class en{constructor(e,t){this.type=e,this.args=t}static parse(e,t){if(e.length<2)return t.error(`Expected at least one argument.`);let n=e[0];if((n===`to-boolean`||n===`to-string`)&&e.length!==2)return t.error(`Expected one argument.`);let r=$t[n],i=[];for(let n=1;n<e.length;n++){let r=t.parse(e[n],n,U);if(!r)return null;i.push(r)}return new en(r,i)}
1evaluate(e){if(this.type.kind===`boolean`)return!!this.args[0].evaluate(e);if(this.type.kind===`color`){let t,n;for(let r of this.args){if(t=r.evaluate(e),n=null,t instanceof It)return t;if(typeof t==`string`){let n=e.parseColor(t);if(n)return n}else if(Array.isArray(t)&&(n=t.length<3||t.length>4?`Invalid rbga value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:Vt(t[0],t[1],t[2],t[3]),!n))return new It(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new qt(n||`Could not parse color from value '${typeof t==`string`?t:String(JSON.stringify(t))}'`)}if(this.type.kind===`number`){let t=null;for(let n of this.args){if(t=n.evaluate(e),t===null)return 0;let r=Number(t);if(!isNaN(r))return r}throw new qt(`Could not convert ${JSON.stringify(t)} to number.`)}return this.type.kind===`formatted`?zt.fromString(Wt(this.args[0].evaluate(e))):this.type.kind===`resolvedImage`?Bt.fromString(Wt(this.args[0].evaluate(e))):Wt(this.args[0].evaluate(e))}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}serialize(){if(this.type.kind===`formatted`)return new Zt([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind===`resolvedImage`)return new Qt(this.args[0]).serialize();let e=[`to-${this.type.kind}`];return this.eachChild((t=>{e.push(t.serialize())})),e}}var tn=en;let nn=[`Unknown`,`Point`,`LineString`,`Polygon`];var rn=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&this.feature.id!==void 0?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==`number`?nn[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||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){let e=this.featureDistanceData.center,t=this.featureDistanceData.scale,{x:n,y:r}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(n*t-e[0])+this.featureDistanceData.bearing[1]*(r*t-e[1])}return 0}parseColor(e){let t=this._parseColorCache[e];return t||=this._parseColorCache[e]=It.parse(e),t}};class an{constructor(e,t,n,r){this.name=e,this.type=t,this._evaluate=n,this.args=r}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map((e=>e.serialize())))}static parse(e,t){let n=e[0],r=an.definitions[n];if(!r)return t.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0);let i=Array.isArray(r)?r[0]:r.type,a=Array.isArray(r)?[[r[1],r[2]]]:r.overloads,o=a.filter((([t])=>!Array.isArray(t)||t.length===e.length-1)),s=null;for(let[r,a]of o){s=new jn(t.registry,t.path,null,t.scope);let o=[],c=!1;for(let t=1;t<e.length;t++){let n=e[t],i=Array.isArray(r)?r[t-1]:r.type,a=s.parse(n,1+o.length,i);if(!a){c=!0;break}o.push(a)}if(!c)if(Array.isArray(r)&&r.length!==o.length)s.error(`Expected ${r.length} arguments, but found ${o.length} instead.`);else{for(let e=0;e<o.length;e++){let t=Array.isArray(r)?r[e]:r.type,n=o[e];s.concat(e+1).checkSubtype(t,n.type)}if(s.errors.length===0)return new an(n,i,a,o)}}if(o.length===1)t.errors.push(...s.errors);else{let n=(o.length?o:a).map((([e])=>{return t=e,Array.isArray(t)?`(${t.map(wt).join(`, `)})`:`(${wt(t.type)}...)`;var t})).join(` | `),r=[];for(let n=1;n<e.length;n++){let i=t.parse(e[n],1+r.length);if(!i)return null;r.push(wt(i.type))}t.error(`Expected arguments of type ${n}, but found (${r.join(`, `)}) instead.`)}return null}static register(e,t){an.definitions=t;for(let n in t)e[n]=an}}var on=an;class sn{constructor(e,t,n){this.type=bt,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t}static parse(e,t){if(e.length!==2)return t.error(`Expected one argument.`);let n=e[1];if(typeof n!=`object`||Array.isArray(n))return t.error(`Collator options argument must be an object.`);let r=t.parse(n[`case-sensitive`]!==void 0&&n[`case-sensitive`],1,H);if(!r)return null;let i=t.parse(n[`diacritic-sensitive`]!==void 0&&n[`diacritic-sensitive`],1,H);if(!i)return null;let a=null;return n.locale&&(a=t.parse(n.locale,1,V),!a)?null:new sn(r,i,a)}evaluate(e){return new Lt(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}serialize(){let e={};return e[`case-sensitive`]=this.caseSensitive.serialize(),e[`diacritic-sensitive`]=this.diacriticSensitive.serialize(),this.locale&&(e.locale=this.locale.serialize()),[`collator`,e]}}let cn=8192;function ln(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1])}function un(e,t){return!(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function dn(e,t){let n=(180+e[0])/360,r=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e[1]*Math.PI/360)))/360,i=2**t.z;return[Math.round(n*i*cn),Math.round(r*i*cn)]}function fn(e,t,n){let r=e[0]-t[0],i=e[1]-t[1],a=e[0]-n[0],o=e[1]-n[1];return r*o-a*i==0&&r*a<=0&&i*o<=0}function pn(e,t){let n=!1;for(let o=0,s=t.length;o<s;o++){let s=t[o];for(let t=0,o=s.length;t<o-1;t++){if(fn(e,s[t],s[t+1]))return!1;(i=s[t])[1]>(r=e)[1]!=(a=s[t+1])[1]>r[1]&&r[0]<(a[0]-i[0])*(r[1]-i[1])/(a[1]-i[1])+i[0]&&(n=!n)}}var r,i,a;return n}function mn(e,t){for(let n=0;n<t.length;n++)if(pn(e,t[n]))return!0;return!1}function hn(e,t,n,r){let i=r[0]-n[0],a=r[1]-n[1],o=(e[0]-n[0])*a-i*(e[1]-n[1]),s=(t[0]-n[0])*a-i*(t[1]-n[1]);return o>0&&s<0||o<0&&s>0}function W(e,t,n){for(let l of n)for(let n=0;n<l.length-1;++n)if((s=[(o=l[n+1])[0]-(a=l[n])[0],o[1]-a[1]])[0]*(c=[(i=t)[0]-(r=e)[0],i[1]-r[1]])[1]-s[1]*c[0]!=0&&hn(r,i,a,o)&&hn(a,o,r,i))return!0;var r,i,a,o,s,c;return!1}function gn(e,t){for(let n=0;n<e.length;++n)if(!pn(e[n],t))return!1;for(let n=0;n<e.length-1;++n)if(W(e[n],e[n+1],t))return!1;return!0}function _n(e,t){for(let n=0;n<t.length;n++)if(gn(e,t[n]))return!0;return!1}
vendor: 4,787 bytes, line 1
1function vn(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=[];for(let r=0;r<e[i].length;r++){let o=dn(e[i][r],n);ln(t,o),a.push(o)}r.push(a)}return r}function yn(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=vn(e[i],t,n);r.push(a)}return r}function bn(e,t,n,r){if(e[0]<n[0]||e[0]>n[2]){let t=.5*r,i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;i===0&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i}ln(t,e)}function xn(e,t,n,r){let i=2**r.z*cn,a=[r.x*cn,r.y*cn],o=[];if(!e)return o;for(let r of e)for(let e of r){let r=[e.x+a[0],e.y+a[1]];bn(r,t,n,i),o.push(r)}return o}function Sn(e,t,n,r){let i=2**r.z*cn,a=[r.x*cn,r.y*cn],o=[];if(!e)return o;for(let n of e){let e=[];for(let r of n){let n=[r.x+a[0],r.y+a[1]];ln(t,n),e.push(n)}o.push(e)}if(t[2]-t[0]<=i/2){(s=t)[0]=s[1]=1/0,s[2]=s[3]=-1/0;for(let e of o)for(let r of e)bn(r,t,n,i)}var s;return o}class Cn{constructor(e,t){this.type=H,this.geojson=e,this.geometries=t}static parse(e,t){if(e.length!==2)return t.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(Ht(e[1])){let t=e[1];if(t.type===`FeatureCollection`)for(let e=0;e<t.features.length;++e){let n=t.features[e].geometry.type;if(n===`Polygon`||n===`MultiPolygon`)return new Cn(t,t.features[e].geometry)}else if(t.type===`Feature`){let e=t.geometry.type;if(e===`Polygon`||e===`MultiPolygon`)return new Cn(t,t.geometry)}else if(t.type===`Polygon`||t.type===`MultiPolygon`)return new Cn(t,t)}return t.error(`'within' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return function(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(!i)return!1;if(t.type===`Polygon`){let a=vn(t.coordinates,r,i),o=xn(e.geometry(),n,r,i);if(!un(n,r))return!1;for(let e of o)if(!pn(e,a))return!1}if(t.type===`MultiPolygon`){let a=yn(t.coordinates,r,i),o=xn(e.geometry(),n,r,i);if(!un(n,r))return!1;for(let e of o)if(!mn(e,a))return!1}return!0}(e,this.geometries);if(e.geometryType()===`LineString`)return function(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(!i)return!1;if(t.type===`Polygon`){let a=vn(t.coordinates,r,i),o=Sn(e.geometry(),n,r,i);if(!un(n,r))return!1;for(let e of o)if(!gn(e,a))return!1}if(t.type===`MultiPolygon`){let a=yn(t.coordinates,r,i),o=Sn(e.geometry(),n,r,i);if(!un(n,r))return!1;for(let e of o)if(!_n(e,a))return!1}return!0}(e,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return[`within`,this.geojson]}}var wn=Cn;function Tn(e){if(e instanceof on&&(e.name===`get`&&e.args.length===1||e.name===`feature-state`||e.name===`has`&&e.args.length===1||e.name===`properties`||e.name===`geometry-type`||e.name===`id`||/^filter-/.test(e.name))||e instanceof wn)return!1;let t=!0;return e.eachChild((e=>{t&&!Tn(e)&&(t=!1)})),t}function En(e){if(e instanceof on&&e.name===`feature-state`)return!1;let t=!0;return e.eachChild((e=>{t&&!En(e)&&(t=!1)})),t}function Dn(e,t){if(e instanceof on&&t.indexOf(e.name)>=0)return!1;let n=!0;return e.eachChild((e=>{n&&!Dn(e,t)&&(n=!1)})),n}class On{constructor(e,t){this.type=t.type,this.name=e,this.boundExpression=t}static parse(e,t){if(e.length!==2||typeof e[1]!=`string`)return t.error(`'var' expression requires exactly one string literal argument.`);let n=e[1];return t.scope.has(n)?new On(n,t.scope.get(n)):t.error(`Unknown variable "${n}". Make sure "${n}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}serialize(){return[`var`,this.name]}}var kn=On;class An{constructor(e,t=[],n,r=new gt,i=[]){this.registry=e,this.path=t,this.key=t.map((e=>`[${e}]`)).join(``),this.scope=r,this.errors=i,this.expectedType=n}parse(e,t,n,r,i={}){return t?this.concat(t,n,r)._parse(e,i):this._parse(e,i)}_parse(e,t){function n(e,t,n){return n===`assert`?new Xt(t,[e]):n===`coerce`?new tn(t,[e]):e}if(e!==null&&typeof e!=`string`&&typeof e!=`boolean`&&typeof e!=`number`||(e=[`literal`,e]),Array.isArray(e)){if(e.length===0)return this.error(`Expected an array with at least one element. If you wanted a literal array, use ["literal", []].`);let r=e[0];if(typeof r!=`string`)return this.error(`Expression name must be a string, but found ${typeof r} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let i=this.registry[r];if(i){let r=i.parse(e,this);if(!r)return null;if(this.expectedType){let e=this.expectedType,i=r.type;if(e.kind!==`string`&&e.kind!==`number`&&e.kind!==`boolean`&&e.kind!==`object`&&e.kind!==`array`||i.kind!==`value`)if(e.kind!==`color`&&e.kind!==`formatted`&&e.kind!==`resolvedImage`||i.kind!==`value`&&i.kind!==`string`){if(this.checkSubtype(e,i))return null}
1else r=n(r,e,t.typeAnnotation||`coerce`);else r=n(r,e,t.typeAnnotation||`assert`)}if(!(r instanceof Kt)&&r.type.kind!==`resolvedImage`&&Mn(r)){let e=new rn;try{r=new Kt(r.type,r.evaluate(e))}catch(e){return this.error(e.message),null}}return r}return this.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?`'undefined' value invalid. Use null instead.`:typeof e==`object`?`Bare objects invalid. Use ["literal", {...}] instead.`:`Expected an array, but found ${typeof e} instead.`)}concat(e,t,n){let r=typeof e==`number`?this.path.concat(e):this.path,i=n?this.scope.concat(n):this.scope;return new An(this.registry,r,t||null,i,this.errors)}error(e,...t){let n=`${this.key}${t.map((e=>`[${e}]`)).join(``)}`;this.errors.push(new mt(n,e))}checkSubtype(e,t){let n=Et(e,t);return n&&this.error(n),n}}var jn=An;function Mn(e){if(e instanceof kn)return Mn(e.boundExpression);if(e instanceof on&&e.name===`error`||e instanceof sn||e instanceof wn)return!1;let t=e instanceof tn||e instanceof Xt,n=!0;return e.eachChild((e=>{n=t?n&&Mn(e):n&&e instanceof Kt})),!!n&&Tn(e)&&Dn(e,[`zoom`,`heatmap-density`,`line-progress`,`sky-radial-progress`,`accumulated`,`is-supported-script`,`pitch`,`distance-from-center`])}function Nn(e,t){let n=e.length-1,r,i,a=0,o=n,s=0;for(;a<=o;)if(s=Math.floor((a+o)/2),r=e[s],i=e[s+1],r<=t){if(s===n||t<i)return s;a=s+1}else{if(!(r>t))throw new qt(`Input is not a number.`);o=s-1}return 0}class Pn{constructor(e,t,n){this.type=e,this.input=t,this.labels=[],this.outputs=[];for(let[e,t]of n)this.labels.push(e),this.outputs.push(t)}static parse(e,t){if(e.length-1<4)return t.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return t.error(`Expected an even number of arguments.`);let n=t.parse(e[1],1,B);if(!n)return null;let r=[],i=null;t.expectedType&&t.expectedType.kind!==`value`&&(i=t.expectedType);for(let n=1;n<e.length;n+=2){let a=n===1?-1/0:e[n],o=e[n+1],s=n,c=n+1;if(typeof a!=`number`)return t.error(`Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,s);if(r.length&&r[r.length-1][0]>=a)return t.error(`Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.`,s);let l=t.parse(o,c,i);if(!l)return null;i||=l.type,r.push([a,l])}return new Pn(i,n,r)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[Nn(t,r)].evaluate(e)}eachChild(e){e(this.input);for(let t of this.outputs)e(t)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))}serialize(){let e=[`step`,this.input.serialize()];for(let t=0;t<this.labels.length;t++)t>0&&e.push(this.labels[t]),e.push(this.outputs[t].serialize());return e}}var Fn=Pn;function G(e,t,n){return e*(1-n)+t*n}var In=Object.freeze({__proto__:null,number:G,color:function(e,t,n){return new It(G(e.r,t.r,n),G(e.g,t.g,n),G(e.b,t.b,n),G(e.a,t.a,n))},array:function(e,t,n){return e.map(((e,r)=>G(e,t[r],n)))}});let Ln=.95047,Rn=1.08883,zn=4/29,Bn=6/29,Vn=3*Bn*Bn,Hn=Math.PI/180,Un=180/Math.PI;function Wn(e){return e>.008856451679035631?e**(1/3):e/Vn+zn}function Gn(e){return e>Bn?e*e*e:Vn*(e-zn)}function Kn(e){return 255*(e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055)}function qn(e){return(e/=255)<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Jn(e){let t=qn(e.r),n=qn(e.g),r=qn(e.b),i=Wn((.4124564*t+.3575761*n+.1804375*r)/Ln),a=Wn((.2126729*t+.7151522*n+.072175*r)/1);return{l:116*a-16,a:500*(i-a),b:200*(a-Wn((.0193339*t+.119192*n+.9503041*r)/Rn)),alpha:e.a}}function Yn(e){let t=(e.l+16)/116,n=isNaN(e.a)?t:t+e.a/500,r=isNaN(e.b)?t:t-e.b/200;return t=1*Gn(t),n=Ln*Gn(n),r=Rn*Gn(r),new It(Kn(3.2404542*n-1.5371385*t-.4985314*r),Kn(-.969266*n+1.8760108*t+.041556*r),Kn(.0556434*n-.2040259*t+1.0572252*r),e.alpha)}function Xn(e,t,n){let r=t-e;return e+n*(r>180||r<-180?r-360*Math.round(r/360):r)}let Zn={forward:Jn,reverse:Yn,interpolate:function(e,t,n){return{l:G(e.l,t.l,n),a:G(e.a,t.a,n),b:G(e.b,t.b,n),alpha:G(e.alpha,t.alpha,n)}}},Qn={forward:function(e){let{l:t,a:n,b:r}=Jn(e),i=Math.atan2(r,n)*Un;return{h:i<0?i+360:i,c:Math.sqrt(n*n+r*r),l:t,alpha:e.a}},reverse:function(e){let t=e.h*Hn,n=e.c;return Yn({l:e.l,a:Math.cos(t)*n,b:Math.sin(t)*n,alpha:e.alpha})},interpolate:function(e,t,n){return{h:Xn(e.h,t.h,n),c:G(e.c,t.c,n),l:G(e.l,t.l,n),alpha:G(e.alpha,t.alpha,n)}}};var $n=Object.freeze({__proto__:null,lab:Zn,hcl:Qn});class er{constructor(e,t,n,r,i){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.labels=[],this.outputs=[];for(let[e,t]of i)this.labels.push(e),this.outputs.push(t)}static interpolationFactor(e,t,n,r){let i=0;if(e.name===`exponential`)i=tr(t,e.base,n,r);else if(e.name===`linear`)i=tr(t,1,n,r);else if(e.name===`cubic-bezier`){let a=e.controlPoints;i=new d(a[0],a[1],a[2],a[3]).solve(tr(t,1,n,r))}return i}static parse(e,t){let[n,r,i,...a]=e;if(!Array.isArray(r)||r.length===0)return t.error(`Expected an interpolation type expression.`,1);if(r[0]===`linear`)r={name:`linear`};else if(r[0]===`exponential`){let e=r[1];if(typeof e!=`number`)return t.error(`Exponential interpolation requires a numeric base.`,1,1);
1r={name:`exponential`,base:e}}else{if(r[0]!==`cubic-bezier`)return t.error(`Unknown interpolation type ${String(r[0])}`,1,0);{let e=r.slice(1);if(e.length!==4||e.some((e=>typeof e!=`number`||e<0||e>1)))return t.error(`Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.`,1);r={name:`cubic-bezier`,controlPoints:e}}}if(e.length-1<4)return t.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return t.error(`Expected an even number of arguments.`);if(i=t.parse(i,2,B),!i)return null;let o=[],s=null;n===`interpolate-hcl`||n===`interpolate-lab`?s=vt:t.expectedType&&t.expectedType.kind!==`value`&&(s=t.expectedType);for(let e=0;e<a.length;e+=2){let n=a[e],r=a[e+1],i=e+3,c=e+4;if(typeof n!=`number`)return t.error(`Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,i);if(o.length&&o[o.length-1][0]>=n)return t.error(`Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.`,i);let l=t.parse(r,c,s);if(!l)return null;s||=l.type,o.push([n,l])}return s.kind===`number`||s.kind===`color`||s.kind===`array`&&s.itemType.kind===`number`&&typeof s.N==`number`?new er(s,n,r,i,o):t.error(`Type ${wt(s)} is not interpolatable.`)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;if(r>=t[i-1])return n[i-1].evaluate(e);let a=Nn(t,r),o=er.interpolationFactor(this.interpolation,r,t[a],t[a+1]),s=n[a].evaluate(e),c=n[a+1].evaluate(e);return this.operator===`interpolate`?In[this.type.kind.toLowerCase()](s,c,o):this.operator===`interpolate-hcl`?Qn.reverse(Qn.interpolate(Qn.forward(s),Qn.forward(c),o)):Zn.reverse(Zn.interpolate(Zn.forward(s),Zn.forward(c),o))}eachChild(e){e(this.input);for(let t of this.outputs)e(t)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))}serialize(){let e;e=this.interpolation.name===`linear`?[`linear`]:this.interpolation.name===`exponential`?this.interpolation.base===1?[`linear`]:[`exponential`,this.interpolation.base]:[`cubic-bezier`].concat(this.interpolation.controlPoints);let t=[this.operator,e,this.input.serialize()];for(let e=0;e<this.labels.length;e++)t.push(this.labels[e],this.outputs[e].serialize());return t}}function tr(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}var nr=er;class rr{constructor(e,t){this.type=e,this.args=t}static parse(e,t){if(e.length<2)return t.error(`Expectected at least one argument.`);let n=null,r=t.expectedType;r&&r.kind!==`value`&&(n=r);let i=[];for(let r of e.slice(1)){let e=t.parse(r,1+i.length,n,void 0,{typeAnnotation:`omit`});if(!e)return null;n||=e.type,i.push(e)}return new rr(r&&i.some((e=>Et(r,e.type)))?U:n,i)}evaluate(e){let t,n=null,r=0;for(let i of this.args){if(r++,n=i.evaluate(e),n&&n instanceof Bt&&!n.available&&(t||=n,n=null,r===this.args.length))return t;if(n!==null)break}return n}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every((e=>e.outputDefined()))}serialize(){let e=[`coalesce`];return this.eachChild((t=>{e.push(t.serialize())})),e}}var ir=rr;class ar{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(let t of this.bindings)e(t[1]);e(this.result)}static parse(e,t){if(e.length<4)return t.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);let n=[];for(let r=1;r<e.length-1;r+=2){let i=e[r];if(typeof i!=`string`)return t.error(`Expected string, but found ${typeof i} instead.`,r);if(/[^a-zA-Z0-9_]/.test(i))return t.error(`Variable names must contain only alphanumeric characters or '_'.`,r);let a=t.parse(e[r+1],r+1);if(!a)return null;n.push([i,a])}let r=t.parse(e[e.length-1],e.length-1,t.expectedType,n);return r?new ar(n,r):null}outputDefined(){return this.result.outputDefined()}serialize(){let e=[`let`];for(let[t,n]of this.bindings)e.push(t,n.serialize());return e.push(this.result.serialize()),e}}var or=ar;class sr{constructor(e,t,n){this.type=e,this.index=t,this.input=n}static parse(e,t){if(e.length!==3)return t.error(`Expected 2 arguments, but found ${e.length-1} instead.`);let n=t.parse(e[1],1,B),r=t.parse(e[2],2,Ct(t.expectedType||U));return n&&r?new sr(r.type.itemType,n,r):null}evaluate(e){let t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new qt(`Array index out of bounds: ${t} < 0.`);if(t>=n.length)throw new qt(`Array index out of bounds: ${t} > ${n.length-1}.`);if(t!==Math.floor(t))throw new qt(`Array index must be an integer, but found ${t} instead.`);return n[t]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}serialize(){return[`at`,this.index.serialize(),this.input.serialize()]}}var cr=sr;class lr{constructor(e,t){this.type=H,this.needle=e,this.haystack=t}static parse(e,t){if(e.length!==3)return t.error(`Expected 2 arguments, but found ${e.length-1} instead.`);let n=t.parse(e[1],1,U),r=t.parse(e[2],2,U);return n&&r?Dt(n.type,[H,V,B,_t,U])?new lr(n,r):t.error(`Expected first argument to be of type boolean, string, number or null, but found ${wt(n.type)} instead`):null}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(n==null)return!1;if(!Ot(t,[`boolean`,`string`,`number`,`null`]))throw new qt(`Expected first argument to be of type boolean, string, number or null, but found ${wt(Ut(t))} instead.`);if(!Ot(n,[`string`,`array`]))throw new qt(`Expected second argument to be of type array or string, but found ${wt(Ut(n))} instead.`);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}serialize(){return[`in`,this.needle.serialize(),this.haystack.serialize()]}}var ur=lr;class dr{constructor(e,t,n){this.type=B,this.needle=e,this.haystack=t,this.fromIndex=n}static parse(e,t){if(e.length<=2||e.length>=5)return t.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);let n=t.parse(e[1],1,U),r=t.parse(e[2],2,U);if(!n||!r)return null;if(!Dt(n.type,[H,V,B,_t,U]))return t.error(`Expected first argument to be of type boolean, string, number or null, but found ${wt(n.type)} instead`);if(e.length===4){let i=t.parse(e[3],3,B);return i?new dr(n,r,i):null}return new dr(n,r)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!Ot(t,[`boolean`,`string`,`number`,`null`]))throw new qt(`Expected first argument to be of type boolean, string, number or null, but found ${wt(Ut(t))} instead.`);if(!Ot(n,[`string`,`array`]))throw new qt(`Expected second argument to be of type array or string, but found ${wt(Ut(n))} instead.`);if(this.fromIndex){let r=this.fromIndex.evaluate(e);return n.indexOf(t,r)}return n.indexOf(t)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){let e=this.fromIndex.serialize();return[`index-of`,this.needle.serialize(),this.haystack.serialize(),e]}return[`index-of`,this.needle.serialize(),this.haystack.serialize()]}}var fr=dr;class pr{constructor(e,t,n,r,i,a){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=a}static parse(e,t){if(e.length<5)return t.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return t.error(`Expected an even number of arguments.`);let n,r;t.expectedType&&t.expectedType.kind!==`value`&&(r=t.expectedType);let i={},a=[];for(let o=2;o<e.length-1;o+=2){let s=e[o],c=e[o+1];Array.isArray(s)||(s=[s]);let l=t.concat(o);if(s.length===0)return l.error(`Expected at least one branch label.`);for(let e of s){if(typeof e!=`number`&&typeof e!=`string`)return l.error(`Branch labels must be numbers or strings.`);if(typeof e==`number`&&Math.abs(e)>2**53-1)return l.error(`Branch labels must be integers no larger than ${2**53-1}.`);if(typeof e==`number`&&Math.floor(e)!==e)return l.error(`Numeric branch labels must be integer values.`);if(n){if(l.checkSubtype(n,Ut(e)))return null}else n=Ut(e);if(i[String(e)]!==void 0)return l.error(`Branch labels must be unique.`);
1i[String(e)]=a.length}let u=t.parse(c,o,r);if(!u)return null;r||=u.type,a.push(u)}let o=t.parse(e[1],1,U);if(!o)return null;let s=t.parse(e[e.length-1],e.length-1,r);return s?o.type.kind!==`value`&&t.concat(1).checkSubtype(n,o.type)?null:new pr(n,r,o,i,a,s):null}evaluate(e){let t=this.input.evaluate(e);return(Ut(t)===this.inputType&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every((e=>e.outputDefined()))&&this.otherwise.outputDefined()}serialize(){let e=[`match`,this.input.serialize()],t=Object.keys(this.cases).sort(),n=[],r={};for(let e of t){let t=r[this.cases[e]];t===void 0?(r[this.cases[e]]=n.length,n.push([this.cases[e],[e]])):n[t][1].push(e)}let i=e=>this.inputType.kind===`number`?Number(e):e;for(let[t,r]of n)e.push(r.length===1?i(r[0]):r.map(i)),e.push(this.outputs[t].serialize());return e.push(this.otherwise.serialize()),e}}var mr=pr;class hr{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n}static parse(e,t){if(e.length<4)return t.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return t.error(`Expected an odd number of arguments.`);let n;t.expectedType&&t.expectedType.kind!==`value`&&(n=t.expectedType);let r=[];for(let i=1;i<e.length-1;i+=2){let a=t.parse(e[i],i,H);if(!a)return null;let o=t.parse(e[i+1],i+1,n);if(!o)return null;r.push([a,o]),n||=o.type}let i=t.parse(e[e.length-1],e.length-1,n);return i?new hr(n,r,i):null}evaluate(e){for(let[t,n]of this.branches)if(t.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(let[t,n]of this.branches)e(t),e(n);e(this.otherwise)}outputDefined(){return this.branches.every((([e,t])=>t.outputDefined()))&&this.otherwise.outputDefined()}serialize(){let e=[`case`];return this.eachChild((t=>{e.push(t.serialize())})),e}}var gr=hr;class _r{constructor(e,t,n,r){this.type=e,this.input=t,this.beginIndex=n,this.endIndex=r}static parse(e,t){if(e.length<=2||e.length>=5)return t.error(`Expected 3 or 4 arguments, but found ${e.length-1} instead.`);let n=t.parse(e[1],1,U),r=t.parse(e[2],2,B);if(!n||!r)return null;if(!Dt(n.type,[Ct(U),V,U]))return t.error(`Expected first argument to be of type array or string, but found ${wt(n.type)} instead`);if(e.length===4){let i=t.parse(e[3],3,B);return i?new _r(n.type,n,r,i):null}return new _r(n.type,n,r)}evaluate(e){let t=this.input.evaluate(e),n=this.beginIndex.evaluate(e);if(!Ot(t,[`string`,`array`]))throw new qt(`Expected first argument to be of type array or string, but found ${wt(Ut(t))} instead.`);if(this.endIndex){let r=this.endIndex.evaluate(e);return t.slice(n,r)}return t.slice(n)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}serialize(){if(this.endIndex!=null&&this.endIndex!==void 0){let e=this.endIndex.serialize();return[`slice`,this.input.serialize(),this.beginIndex.serialize(),e]}return[`slice`,this.input.serialize(),this.beginIndex.serialize()]}}var vr=_r;function yr(e,t){return e===`==`||e===`!=`?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 br(e,t,n,r){return r.compare(t,n)===0}function xr(e,t,n){let r=e!==`==`&&e!==`!=`;return class i{constructor(e,t,n){this.type=H,this.lhs=e,this.rhs=t,this.collator=n,this.hasUntypedArgument=e.type.kind===`value`||t.type.kind===`value`}static parse(e,t){if(e.length!==3&&e.length!==4)return t.error(`Expected two or three arguments.`);let n=e[0],a=t.parse(e[1],1,U);if(!a)return null;if(!yr(n,a.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${wt(a.type)}'.`);let o=t.parse(e[2],2,U);if(!o)return null;if(!yr(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${wt(o.type)}'.`);if(a.type.kind!==o.type.kind&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot compare types '${wt(a.type)}' and '${wt(o.type)}'.`);r&&(a.type.kind===`value`&&o.type.kind!==`value`?a=new Xt(o.type,[a]):a.type.kind!==`value`&&o.type.kind===`value`&&(o=new Xt(a.type,[o])));let s=null;if(e.length===4){if(a.type.kind!==`string`&&o.type.kind!==`string`&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot use collator to compare non-string types.`);if(s=t.parse(e[3],3,bt),!s)return null}return new i(a,o,s)}evaluate(i){let a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){let t=Ut(a),n=Ut(o);if(t.kind!==n.kind||t.kind!==`string`&&t.kind!==`number`)throw new qt(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){let e=Ut(a),n=Ut(o);if(e.kind!==`string`||n.kind!==`string`)return t(i,a,o)}return this.collator?n(i,a,o,this.collator.evaluate(i)):t(i,a,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator)}outputDefined(){return!0}serialize(){let t=[e];return this.eachChild((e=>{t.push(e.serialize())})),t}}
vendor: 14,796 bytes, line 1
1}let Sr=xr(`==`,(function(e,t,n){return t===n}),br),Cr=xr(`!=`,(function(e,t,n){return t!==n}),(function(e,t,n,r){return!br(0,t,n,r)})),wr=xr(`<`,(function(e,t,n){return t<n}),(function(e,t,n,r){return r.compare(t,n)<0})),Tr=xr(`>`,(function(e,t,n){return t>n}),(function(e,t,n,r){return r.compare(t,n)>0})),Er=xr(`<=`,(function(e,t,n){return t<=n}),(function(e,t,n,r){return r.compare(t,n)<=0})),Dr=xr(`>=`,(function(e,t,n){return t>=n}),(function(e,t,n,r){return r.compare(t,n)>=0}));class Or{constructor(e,t,n,r,i,a){this.type=V,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=a}static parse(e,t){if(e.length!==3)return t.error(`Expected two arguments.`);let n=t.parse(e[1],1,B);if(!n)return null;let r=e[2];if(typeof r!=`object`||Array.isArray(r))return t.error(`NumberFormat options argument must be an object.`);let i=null;if(r.locale&&(i=t.parse(r.locale,1,V),!i))return null;let a=null;if(r.currency&&(a=t.parse(r.currency,1,V),!a))return null;let o=null;if(r.unit&&(o=t.parse(r.unit,1,V),!o))return null;let s=null;if(r[`min-fraction-digits`]&&(s=t.parse(r[`min-fraction-digits`],1,B),!s))return null;let c=null;return r[`max-fraction-digits`]&&(c=t.parse(r[`max-fraction-digits`],1,B),!c)?null:new Or(n,i,a,o,s,c)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:(this.currency?`currency`:this.unit&&`unit`)||`decimal`,currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}serialize(){let e={};return this.locale&&(e.locale=this.locale.serialize()),this.currency&&(e.currency=this.currency.serialize()),this.unit&&(e.unit=this.unit.serialize()),this.minFractionDigits&&(e[`min-fraction-digits`]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(e[`max-fraction-digits`]=this.maxFractionDigits.serialize()),[`number-format`,this.number.serialize(),e]}}class kr{constructor(e){this.type=B,this.input=e}static parse(e,t){if(e.length!==2)return t.error(`Expected 1 argument, but found ${e.length-1} instead.`);let n=t.parse(e[1],1);return n?n.type.kind!==`array`&&n.type.kind!==`string`&&n.type.kind!==`value`?t.error(`Expected argument of type string or array, but found ${wt(n.type)} instead.`):new kr(n):null}evaluate(e){let t=this.input.evaluate(e);if(typeof t==`string`||Array.isArray(t))return t.length;throw new qt(`Expected value to be of type string or array, but found ${wt(Ut(t))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}serialize(){let e=[`length`];return this.eachChild((t=>{e.push(t.serialize())})),e}}let Ar={"==":Sr,"!=":Cr,">":Tr,"<":wr,">=":Dr,"<=":Er,array:Xt,at:cr,boolean:Xt,case:gr,coalesce:ir,collator:sn,format:Zt,image:Qt,in:ur,"index-of":fr,interpolate:nr,"interpolate-hcl":nr,"interpolate-lab":nr,length:kr,let:or,literal:Kt,match:mr,number:Xt,"number-format":Or,object:Xt,slice:vr,step:Fn,string:Xt,"to-boolean":tn,"to-color":tn,"to-number":tn,"to-string":tn,var:kn,within:wn};function jr(e,[t,n,r,i]){t=t.evaluate(e),n=n.evaluate(e),r=r.evaluate(e);let a=i?i.evaluate(e):1,o=Vt(t,n,r,a);if(o)throw new qt(o);return new It(t/255*a,n/255*a,r/255*a,a)}function Mr(e,t){return e in t}function Nr(e,t){let n=t[e];return n===void 0?null:n}function Pr(e){return{type:e}}on.register(Ar,{error:[{kind:`error`},[V],(e,[t])=>{throw new qt(t.evaluate(e))}],typeof:[V,[U],(e,[t])=>wt(Ut(t.evaluate(e)))],"to-rgba":[Ct(B,4),[vt],(e,[t])=>t.evaluate(e).toArray()],rgb:[vt,[B,B,B],jr],rgba:[vt,[B,B,B,B],jr],has:{type:H,overloads:[[[V],(e,[t])=>Mr(t.evaluate(e),e.properties())],[[V,yt],(e,[t,n])=>Mr(t.evaluate(e),n.evaluate(e))]]},get:{type:U,overloads:[[[V],(e,[t])=>Nr(t.evaluate(e),e.properties())],[[V,yt],(e,[t,n])=>Nr(t.evaluate(e),n.evaluate(e))]]},"feature-state":[U,[V],(e,[t])=>Nr(t.evaluate(e),e.featureState||{})],properties:[yt,[],e=>e.properties()],"geometry-type":[V,[],e=>e.geometryType()],id:[U,[],e=>e.id()],zoom:[B,[],e=>e.globals.zoom],pitch:[B,[],e=>e.globals.pitch||0],"distance-from-center":[B,[],e=>e.distanceFromCenter()],"heatmap-density":[B,[],e=>e.globals.heatmapDensity||0],"line-progress":[B,[],e=>e.globals.lineProgress||0],"sky-radial-progress":[B,[],e=>e.globals.skyRadialProgress||0],accumulated:[U,[],e=>e.globals.accumulated===void 0?null:e.globals.accumulated],"+":[B,Pr(B),(e,t)=>{let n=0;for(let r of t)n+=r.evaluate(e);return n}],"*":[B,Pr(B),(e,t)=>{let n=1;for(let r of t)n*=r.evaluate(e);return n}],"-":{type:B,overloads:[[[B,B],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[B],(e,[t])=>-t.evaluate(e)]]},"/":[B,[B,B],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[B,[B,B],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[B,[],()=>Math.LN2],pi:[B,[],()=>Math.PI],e:[B,[],()=>Math.E],"^":[B,[B,B],(e,[t,n])=>t.evaluate(e)**+n.evaluate(e)],sqrt:[B,[B],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[B,[B],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[B,[B],(e,[t])=>Math.log(t.evaluate(e))],log2:[B,[B],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[B,[B],(e,[t])=>Math.sin(t.evaluate(e))],cos:[B,[B],(e,[t])=>Math.cos(t.evaluate(e))],tan:[B,[B],(e,[t])=>Math.tan(t.evaluate(e))],asin:[B,[B],(e,[t])=>Math.asin(t.evaluate(e))],acos:[B,[B],(e,[t])=>Math.acos(t.evaluate(e))],atan:[B,[B],(e,[t])=>Math.atan(t.evaluate(e))],min:[B,Pr(B),(e,t)=>Math.min(...t.map((t=>t.evaluate(e))))],max:[B,Pr(B),(e,t)=>Math.max(...t.map((t=>t.evaluate(e))))],abs:[B,[B],(e,[t])=>Math.abs(t.evaluate(e))],round:[B,[B],(e,[t])=>{let n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[B,[B],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[B,[B],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[H,[V,U],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[H,[U],(e,[t])=>e.id()===t.value],"filter-type-==":[H,[V],(e,[t])=>e.geometryType()===t.value],"filter-<":[H,[V,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<i}],"filter-id-<":[H,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<r}],"filter->":[H,[V,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[H,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[H,[V,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[H,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[H,[V,U],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[H,[U],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[H,[U],(e,[t])=>t.value in e.properties()],"filter-has-id":[H,[],e=>e.id()!==null&&e.id()!==void 0],"filter-type-in":[H,[Ct(V)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[H,[Ct(U)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[H,[V,Ct(U)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[H,[V,Ct(U)],(e,[t,n])=>function(e,t,n,r){for(;n<=r;){let i=n+r>>1;if(t[i]===e)return!0;t[i]>e?r=i-1:n=i+1}return!1}(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:H,overloads:[[[H,H],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[Pr(H),(e,t)=>{for(let n of t)if(!n.evaluate(e))return!1;return!0}]]},any:{type:H,overloads:[[[H,H],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[Pr(H),(e,t)=>{for(let n of t)if(n.evaluate(e))return!0;return!1}]]},"!":[H,[H],(e,[t])=>!t.evaluate(e)],"is-supported-script":[H,[V],(e,[t])=>{let n=e.globals&&e.globals.isSupportedScript;return!n||n(t.evaluate(e))}],upcase:[V,[V],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[V,[V],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[V,Pr(U),(e,t)=>t.map((t=>Wt(t.evaluate(e)))).join(``)],"resolved-locale":[V,[bt],(e,[t])=>t.evaluate(e).resolvedLocale()]});var Fr=Ar;function Ir(e){return{result:`success`,value:e}}function Lr(e){return{result:`error`,value:e}}function Rr(e){return e[`property-type`]===`data-driven`}function zr(e){return!!e.expression&&e.expression.parameters.indexOf(`zoom`)>-1}function Br(e){return!!e.expression&&e.expression.interpolated}function K(e){return e instanceof Number?`number`:e instanceof String?`string`:e instanceof Boolean?`boolean`:Array.isArray(e)?`array`:e===null?`null`:typeof e}function Vr(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Hr(e){return e}function Ur(e,t){let n=t.type===`color`,r=e.stops&&typeof e.stops[0][0]==`object`,i=r||!(r||e.property!==void 0),a=e.type||(Br(t)?`exponential`:`interval`);if(n&&((e=ut({},e)).stops&&(e.stops=e.stops.map((e=>[e[0],It.parse(e[1])]))),e.default=It.parse(e.default?e.default:t.default)),e.colorSpace&&e.colorSpace!==`rgb`&&!$n[e.colorSpace])throw Error(`Unknown color space: ${e.colorSpace}`);let o,s,c;if(a===`exponential`)o=qr;else if(a===`interval`)o=Kr;else if(a===`categorical`){o=Gr,s=Object.create(null);for(let t of e.stops)s[t[0]]=t[1];c=typeof e.stops[0][0]}else{if(a!==`identity`)throw Error(`Unknown function type "${a}"`);o=Jr}if(r){let n={},r=[];for(let t=0;t<e.stops.length;t++){let i=e.stops[t],a=i[0].zoom;n[a]===void 0&&(n[a]={zoom:a,type:e.type,property:e.property,default:e.default,stops:[]},r.push(a)),n[a].stops.push([i[0].value,i[1]])}let i=[];for(let e of r)i.push([n[e].zoom,Ur(n[e],t)]);let a={name:`linear`};return{kind:`composite`,interpolationType:a,interpolationFactor:nr.interpolationFactor.bind(void 0,a),zoomStops:i.map((e=>e[0])),evaluate:({zoom:n},r)=>qr({stops:i,base:e.base},t,n).evaluate(n,r)}}if(i){let n=a===`exponential`?{name:`exponential`,base:e.base===void 0?1:e.base}:null;return{kind:`camera`,interpolationType:n,interpolationFactor:nr.interpolationFactor.bind(void 0,n),zoomStops:e.stops.map((e=>e[0])),evaluate:({zoom:n})=>o(e,t,n,s,c)}}return{kind:`source`,evaluate(n,r){let i=r&&r.properties?r.properties[e.property]:void 0;return i===void 0?Wr(e.default,t.default):o(e,t,i,s,c)}}}function Wr(e,t,n){return e===void 0?t===void 0?n===void 0?void 0:n:t:e}function Gr(e,t,n,r,i){return Wr(typeof n===i?r[n]:void 0,e.default,t.default)}function Kr(e,t,n){if(K(n)!==`number`)return Wr(e.default,t.default);let r=e.stops.length;if(r===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[r-1][0])return e.stops[r-1][1];let i=Nn(e.stops.map((e=>e[0])),n);return e.stops[i][1]}function qr(e,t,n){let r=e.base===void 0?1:e.base;if(K(n)!==`number`)return Wr(e.default,t.default);let i=e.stops.length;if(i===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[i-1][0])return e.stops[i-1][1];let a=Nn(e.stops.map((e=>e[0])),n),o=function(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}(n,r,e.stops[a][0],e.stops[a+1][0]),s=e.stops[a][1],c=e.stops[a+1][1],l=In[t.type]||Hr;if(e.colorSpace&&e.colorSpace!==`rgb`){let t=$n[e.colorSpace];l=(e,n)=>t.reverse(t.interpolate(t.forward(e),t.forward(n),o))}return typeof s.evaluate==`function`?{evaluate(...e){let t=s.evaluate.apply(void 0,e),n=c.evaluate.apply(void 0,e);if(t!==void 0&&n!==void 0)return l(t,n,o)}}:l(s,c,o)}function Jr(e,t,n){return t.type===`color`?n=It.parse(n):t.type===`formatted`?n=zt.fromString(n.toString()):t.type===`resolvedImage`?n=Bt.fromString(n.toString()):K(n)===t.type||t.type===`enum`&&t.values[n]||(n=void 0),Wr(n,e.default,t.default)}class Yr{constructor(e,t){this.expression=e,this._warningHistory={},this._evaluator=new rn,this._defaultValue=t?function(e){return e.type===`color`&&(Vr(e.default)||Array.isArray(e.default))?new It(0,0,0,0):e.type===`color`?It.parse(e.default)||null:e.default===void 0?null:e.default}(t):null,this._enumValues=t&&t.type===`enum`?t.values:null}evaluateWithoutErrorHandling(e,t,n,r,i,a,o,s){return this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this._evaluator.featureTileCoord=o||null,this._evaluator.featureDistanceData=s||null,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,a,o,s){this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null,this._evaluator.featureTileCoord=o||null,this._evaluator.featureDistanceData=s||null;try{let e=this.expression.evaluate(this._evaluator);if(e==null||typeof e==`number`&&e!=e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new qt(`Expected value to be one of ${Object.keys(this._enumValues).map((e=>JSON.stringify(e))).join(`, `)}, but found ${JSON.stringify(e)} instead.`);return e}catch(e){return this._warningHistory[e.message]||(this._warningHistory[e.message]=!0,typeof console<`u`&&console.warn(e.message)),this._defaultValue}}}function Xr(e){return Array.isArray(e)&&e.length>0&&typeof e[0]==`string`&&e[0]in Fr}function Zr(e,t){let n=new jn(Fr,[],t?function(e){let t={color:vt,string:V,number:B,enum:V,boolean:H,formatted:xt,resolvedImage:St};return e.type===`array`?Ct(t[e.value]||U,e.length):t[e.type]}(t):void 0),r=n.parse(e,void 0,void 0,void 0,t&&t.type===`string`?{typeAnnotation:`coerce`}:void 0);return r?Ir(new Yr(r,t)):Lr(n.errors)}class Qr{constructor(e,t){this.kind=e,this._styleExpression=t,this.isStateDependent=e!==`constant`&&!En(t.expression)}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._styleExpression.evaluate(e,t,n,r,i,a)}}class $r{constructor(e,t,n,r){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent=e!==`camera`&&!En(t.expression),this.interpolationType=r}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._styleExpression.evaluate(e,t,n,r,i,a)}interpolationFactor(e,t,n){return this.interpolationType?nr.interpolationFactor(this.interpolationType,e,t,n):0}}function ei(e,t){if((e=Zr(e,t)).result===`error`)return e;let n=e.value.expression,r=Tn(n);if(!r&&!Rr(t))return Lr([new mt(``,`data expressions not supported`)]);let i=Dn(n,[`zoom`,`pitch`,`distance-from-center`]);if(!i&&!zr(t))return Lr([new mt(``,`zoom expressions not supported`)]);let a=ni(n);return a||i?a instanceof mt?Lr([a]):a instanceof nr&&!Br(t)?Lr([new mt(``,`"interpolate" expressions cannot be used with this property`)]):Ir(a?new $r(r?`camera`:`composite`,e.value,a.labels,a
1instanceof nr?a.interpolation:void 0):new Qr(r?`constant`:`source`,e.value)):Lr([new mt(``,`"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.`)])}class ti{constructor(e,t){this._parameters=e,this._specification=t,ut(this,Ur(this._parameters,this._specification))}static deserialize(e){return new ti(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function ni(e){let t=null;if(e instanceof or)t=ni(e.result);else if(e instanceof ir){for(let n of e.args)if(t=ni(n),t)break}else (e instanceof Fn||e instanceof nr)&&e.input instanceof on&&e.input.name===`zoom`&&(t=e);return t instanceof mt||e.eachChild((e=>{let n=ni(e);n instanceof mt?t=n:!t&&n?t=new mt(``,`"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.`):t&&n&&t!==n&&(t=new mt(``,`Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.`))})),t}class q{constructor(e,t,n,r){this.message=(e?`${e}: `:``)+n,r&&(this.identifier=r),t!=null&&t.__line__&&(this.line=t.__line__)}}function ri(e){let t=e.key,n=e.value,r=e.valueSpec||{},i=e.objectElementValidators||{},a=e.style,o=e.styleSpec,s=[],c=K(n);if(c!==`object`)return[new q(t,n,`object expected, ${c} found`)];for(let e in n){let c=e.split(`.`)[0],l=r[c]||r[`*`],u;i[c]?u=i[c]:r[c]?u=Li:i[`*`]?u=i[`*`]:r[`*`]&&(u=Li),u?s=s.concat(u({key:(t&&`${t}.`)+e,value:n[e],valueSpec:l,style:a,styleSpec:o,object:n,objectKey:e},n)):s.push(new q(t,n[e],`unknown property "${e}"`))}for(let e in r)i[e]||r[e].required&&r[e].default===void 0&&n[e]===void 0&&s.push(new q(t,n,`missing required property "${e}"`));return s}function ii(e){let t=e.value,n=e.valueSpec,r=e.style,i=e.styleSpec,a=e.key,o=e.arrayElementValidator||Li;if(K(t)!==`array`)return[new q(a,t,`array expected, ${K(t)} found`)];if(n.length&&t.length!==n.length)return[new q(a,t,`array length ${n.length} expected, length ${t.length} found`)];if(n[`min-length`]&&t.length<n[`min-length`])return[new q(a,t,`array length at least ${n[`min-length`]} expected, length ${t.length} found`)];let s={type:n.value,values:n.values,minimum:n.minimum,maximum:n.maximum,function:void 0};i.$version<7&&(s.function=n.function),K(n.value)===`object`&&(s=n.value);let c=[];for(let e=0;e<t.length;e++)c=c.concat(o({array:t,arrayIndex:e,value:t[e],valueSpec:s,style:r,styleSpec:i,key:`${a}[${e}]`}));return c}function ai(e){let t=e.key,n=e.value,r=e.valueSpec,i=K(n);if(i===`number`&&n!=n&&(i=`NaN`),i!==`number`)return[new q(t,n,`number expected, ${i} found`)];if(`minimum`in r){let i=r.minimum;if(K(r.minimum)===`array`&&(i=r.minimum[e.arrayIndex]),n<i)return[new q(t,n,`${n} is less than the minimum value ${i}`)]}if(`maximum`in r){let i=r.maximum;if(K(r.maximum)===`array`&&(i=r.maximum[e.arrayIndex]),n>i)return[new q(t,n,`${n} is greater than the maximum value ${i}`)]}return[]}function oi(e){let t=e.valueSpec,n=dt(e.value.type),r,i,a,o={},s=n!==`categorical`&&e.value.property===void 0,c=!s,l=K(e.value.stops)===`array`&&K(e.value.stops[0])===`array`&&K(e.value.stops[0][0])===`object`,u=ri({key:e.key,value:e.value,valueSpec:e.styleSpec.function,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{stops:function(e){if(n===`identity`)return[new q(e.key,e.value,`identity function may not have a "stops" property`)];let t=[],r=e.value;return t=t.concat(ii({key:e.key,value:r,valueSpec:e.valueSpec,style:e.style,styleSpec:e.styleSpec,arrayElementValidator:d})),K(r)===`array`&&r.length===0&&t.push(new q(e.key,r,`array must have at least one stop`)),t},default:function(e){return Li({key:e.key,value:e.value,valueSpec:t,style:e.style,styleSpec:e.styleSpec})}}});return n===`identity`&&s&&u.push(new q(e.key,e.value,`missing required property "property"`)),n===`identity`||e.value.stops||u.push(new q(e.key,e.value,`missing required property "stops"`)),n===`exponential`&&e.valueSpec.expression&&!Br(e.valueSpec)&&u.push(new q(e.key,e.value,`exponential functions not supported`)),e.styleSpec.$version>=8&&(c&&!Rr(e.valueSpec)?u.push(new q(e.key,e.value,`property functions not supported`)):s&&!zr(e.valueSpec)&&u.push(new q(e.key,e.value,`zoom functions not supported`))),n!==`categorical`&&!l||e.value.property!==void 0||u.push(new q(e.key,e.value,`"property" property is required`)),u;function d(e){let n=[],r=e.value,s=e.key;if(K(r)!==`array`)return[new q(s,r,`array expected, ${K(r)} found`)];if(r.length!==2)return[new q(s,r,`array length 2 expected, length ${r.length} found`)];if(l){if(K(r[0])!==`object`)return[new q(s,r,`object expected, ${K(r[0])} found`)];if(r[0].zoom===void 0)return[new q(s,r,`object stop key must have zoom`)];if(r[0].value===void 0)return[new q(s,r,`object stop key must have value`)];let t=dt(r[0].zoom);if(typeof t!=`number`)return[new q(s,r[0].zoom,`stop zoom values must be numbers`)];if(a&&a>t)return[new q(s,r[0].zoom,`stop zoom values must appear in ascending order`)];t!==a&&(a=t,i=void 0,o={}),n=n.concat(ri({key:`${s}[0]`,value:r[0],valueSpec:{zoom:{}},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:ai,value:f}}))}else n=n.concat(f({key:`${s}[0]`,value:r[0],valueSpec:{},style:e.style,styleSpec:e.styleSpec},r));return Xr(ft(r[1]))?n.concat([new q(`${s}[1]`,r[1],`expressions are not allowed in function stops.`)]):n.concat(Li({key:`${s}[1]`,value:r[1],valueSpec:t,style:e.style,styleSpec:e.styleSpec}))}function f(e,a){let s=K(e.value),c=dt(e.value),l=e.value===null?a:e.value;if(r){if(s!==r)return[new q(e.key,l,`${s} stop domain type must match previous stop domain type ${r}`)]}else r=s;if(s!==`number`&&s!==`string`&&s!==`boolean`&&typeof c!=`number`&&typeof c!=`string`&&typeof c!=`boolean`)return[new q(e.key,l,`stop domain value must be a number, string, or boolean`)];if(s!==`number`&&n!==`categorical`){let r=`number expected, ${s} found`;return Rr(t)&&n===void 0&&(r+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new q(e.key,l,r)]}return n!==`categorical`||s!==`number`||typeof c==`number`&&isFinite(c)&&Math.floor(c)===c?n!==`categorical`&&s===`number`&&typeof c==`number`&&typeof i==`number`&&i!==void 0&&c<i?[new q(e.key,l,`stop domain values must appear in ascending order`)]:(i=c,n===`categorical`&&c in o?[new q(e.key,l,`stop domain values must be unique`)]:(o[c]=!0,[])):[new q(e.key,l,`integer expected, found ${String(c)}`)]}}function si(e){let t=(e.expressionContext===`property`?ei:Zr)(ft(e.value),e.valueSpec);if(t.result===`error`)return t.value.map((t=>new q(`${e.key}${t.key}`,e.value,t.message)));let n=t.value.expression||t.value._styleExpression.expression;if(e.expressionContext===`property`&&e.propertyKey===`text-font`&&!n.outputDefined())return[new q(e.key,e.value,`Invalid data expression for "${e.propertyKey}". Output values must be contained as literals within the expression.`)];if(e.expressionContext===`property`&&e.propertyType===`layout`&&!En(n))return[new q(e.key,e.value,`"feature-state" data expressions are not supported with layout properties.`)];if(e.expressionContext===`filter`)return ci(n,e);if(e.expressionContext&&e.expressionContext.indexOf(`cluster`)===0){if(!Dn(n,[`zoom`,`feature-state`]))return[new q(e.key,e.value,`"zoom" and "feature-state" expressions are not supported with cluster properties.`)];if(e.expressionContext===`cluster-initial`&&!Tn(n))return[new q(e.key,e.value,`Feature data expressions are not supported with initial expression part of cluster properties.`)]}return[]}function ci(e,t){let n=new Set([`zoom`,`feature-state`,`pitch`,`distance-from-center`]);if(t.valueSpec&&t.valueSpec.expression)for(let e of t.valueSpec.expression.parameters)n.delete(e);
1if(n.size===0)return[];let r=[];return e instanceof on&&n.has(e.name)?[new q(t.key,t.value,`["${e.name}"] expression is not supported in a filter for a ${t.object.type} layer with id: ${t.object.id}`)]:(e.eachChild((e=>{r.push(...ci(e,t))})),r)}function li(e){let t=e.key,n=e.value,r=e.valueSpec,i=[];return Array.isArray(r.values)?r.values.indexOf(dt(n))===-1&&i.push(new q(t,n,`expected one of [${r.values.join(`, `)}], ${JSON.stringify(n)} found`)):Object.keys(r.values).indexOf(dt(n))===-1&&i.push(new q(t,n,`expected one of [${Object.keys(r.values).join(`, `)}], ${JSON.stringify(n)} found`)),i}function ui(e){if(!0===e||!1===e)return!0;if(!Array.isArray(e)||e.length===0)return!1;switch(e[0]){case`has`:return e.length>=2&&e[1]!==`$id`&&e[1]!==`$type`;case`in`:return e.length>=3&&(typeof e[1]!=`string`||Array.isArray(e[2]));case`!in`:case`!has`:case`none`:return!1;case`==`:case`!=`:case`>`:case`>=`:case`<`:case`<=`:return e.length!==3||Array.isArray(e[1])||Array.isArray(e[2]);case`any`:case`all`:for(let t of e.slice(1))if(!ui(t)&&typeof t!=`boolean`)return!1;return!0;default:return!0}}function di(e,t=`fill`){if(e==null)return{filter:()=>!0,needGeometry:!1,needFeature:!1};ui(e)||(e=vi(e));let n=e,r=!0;try{r=function(e){if(!mi(e))return e;let t=ft(e);return pi(t),t=fi(t),t}(n)}catch{console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\nand paste the contents of this message in the report.\nThank you!\nFilter Expression:\n${JSON.stringify(n,null,2)}\n `)}let i=z[`filter_${t}`],a=Zr(r,i),o=null;if(a.result===`error`)throw Error(a.value.map((e=>`${e.key}: ${e.message}`)).join(`, `));o=(e,t,n)=>a.value.evaluate(e,t,{},n);let s=null,c=null;if(r!==n){let e=Zr(n,i);if(e.result===`error`)throw Error(e.value.map((e=>`${e.key}: ${e.message}`)).join(`, `));s=(t,n,r,i,a)=>e.value.evaluate(t,n,{},r,void 0,void 0,i,a),c=!Tn(e.value.expression)}return{filter:o,dynamicFilter:s||void 0,needGeometry:_i(r),needFeature:!!c}}function fi(e){if(!Array.isArray(e))return e;let t=function(e){if(hi.has(e[0])){for(let t=1;t<e.length;t++)if(mi(e[t]))return!0}return e}(e);return!0===t?t:t.map((e=>fi(e)))}function pi(e){let t=!1,n=[];if(e[0]===`case`){for(let r=1;r<e.length-1;r+=2)t||=mi(e[r]),n.push(e[r+1]);n.push(e[e.length-1])}else if(e[0]===`match`){t||=mi(e[1]);for(let t=2;t<e.length-1;t+=2)n.push(e[t+1]);n.push(e[e.length-1])}else if(e[0]===`step`){t||=mi(e[1]);for(let t=1;t<e.length-1;t+=2)n.push(e[t+1])}t&&(e.length=0,e.push(`any`,...n));for(let t=1;t<e.length;t++)pi(e[t])}function mi(e){if(!Array.isArray(e))return!1;if((t=e[0])===`pitch`||t===`distance-from-center`)return!0;var t;for(let t=1;t<e.length;t++)if(mi(e[t]))return!0;return!1}let hi=new Set([`in`,`==`,`!=`,`>`,`>=`,`<`,`<=`,`to-boolean`]);function gi(e,t){return e<t?-1:+(e>t)}function _i(e){if(!Array.isArray(e))return!1;if(e[0]===`within`)return!0;for(let t=1;t<e.length;t++)if(_i(e[t]))return!0;return!1}function vi(e){if(!e)return!0;let t=e[0];return e.length<=1?t!==`any`:t===`==`?yi(e[1],e[2],`==`):t===`!=`?Si(yi(e[1],e[2],`==`)):t===`<`||t===`>`||t===`<=`||t===`>=`?yi(e[1],e[2],t):t===`any`?(n=e.slice(1),[`any`].concat(n.map(vi))):t===`all`?[`all`].concat(e.slice(1).map(vi)):t===`none`?[`all`].concat(e.slice(1).map(vi).map(Si)):t===`in`?bi(e[1],e.slice(2)):t===`!in`?Si(bi(e[1],e.slice(2))):t===`has`?xi(e[1]):t===`!has`?Si(xi(e[1])):t!==`within`||e;var n}function yi(e,t,n){switch(e){case`$type`:return[`filter-type-${n}`,t];case`$id`:return[`filter-id-${n}`,t];default:return[`filter-${n}`,e,t]}}function bi(e,t){if(t.length===0)return!1;switch(e){case`$type`:return[`filter-type-in`,[`literal`,t]];case`$id`:return[`filter-id-in`,[`literal`,t]];default:return t.length>200&&!t.some((e=>typeof e!=typeof t[0]))?[`filter-in-large`,e,[`literal`,t.sort(gi)]]:[`filter-in-small`,e,[`literal`,t]]}}function xi(e){switch(e){case`$type`:return!0;case`$id`:return[`filter-has-id`];default:return[`filter-has`,e]}}function Si(e){return[`!`,e]}function Ci(e){return ui(ft(e.value))?si(ut({},e,{expressionContext:`filter`,valueSpec:e.styleSpec[`filter_${e.layerType||`fill`}`]})):wi(e)}function wi(e){let t=e.value,n=e.key;if(K(t)!==`array`)return[new q(n,t,`array expected, ${K(t)} found`)];let r=e.styleSpec,i,a=[];if(t.length<1)return[new q(n,t,`filter array must have at least 1 element`)];switch(a=a.concat(li({key:`${n}[0]`,value:t[0],valueSpec:r.filter_operator,style:e.style,styleSpec:e.styleSpec}
vendor: 2,709 bytes, line 1
1)),dt(t[0])){case`<`:case`<=`:case`>`:case`>=`:t.length>=2&&dt(t[1])===`$type`&&a.push(new q(n,t,`"$type" cannot be use with operator "${t[0]}"`));case`==`:case`!=`:t.length!==3&&a.push(new q(n,t,`filter array for operator "${t[0]}" must have 3 elements`));case`in`:case`!in`:t.length>=2&&(i=K(t[1]),i!==`string`&&a.push(new q(`${n}[1]`,t[1],`string expected, ${i} found`)));for(let o=2;o<t.length;o++)i=K(t[o]),dt(t[1])===`$type`?a=a.concat(li({key:`${n}[${o}]`,value:t[o],valueSpec:r.geometry_type,style:e.style,styleSpec:e.styleSpec})):i!==`string`&&i!==`number`&&i!==`boolean`&&a.push(new q(`${n}[${o}]`,t[o],`string, number, or boolean expected, ${i} found`));break;case`any`:case`all`:case`none`:for(let r=1;r<t.length;r++)a=a.concat(wi({key:`${n}[${r}]`,value:t[r],style:e.style,styleSpec:e.styleSpec}));break;case`has`:case`!has`:i=K(t[1]),t.length===2?i!==`string`&&a.push(new q(`${n}[1]`,t[1],`string expected, ${i} found`)):a.push(new q(n,t,`filter array for "${t[0]}" operator must have 2 elements`));break;case`within`:i=K(t[1]),t.length===2?i!==`object`&&a.push(new q(`${n}[1]`,t[1],`object expected, ${i} found`)):a.push(new q(n,t,`filter array for "${t[0]}" operator must have 2 elements`))}return a}function Ti(e,t){let n=e.key,r=e.style,i=e.styleSpec,a=e.value,o=e.objectKey,s=i[`${t}_${e.layerType}`];if(!s)return[];let c=o.match(/^(.*)-transition$/);if(t===`paint`&&c&&s[c[1]]&&s[c[1]].transition)return Li({key:n,value:a,valueSpec:i.transition,style:r,styleSpec:i});let l=e.valueSpec||s[o];if(!l)return[new q(n,a,`unknown property "${o}"`)];let u;if(K(a)===`string`&&Rr(l)&&!l.tokens&&(u=/^{([^}]+)}$/.exec(a)))return[new q(n,a,`"${o}" does not support interpolation syntax\nUse an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(u[1])} }\`.`)];let d=[];return e.layerType===`symbol`&&(o===`text-field`&&r&&!r.glyphs&&d.push(new q(n,a,`use of "text-field" requires a style "glyphs" property`)),o===`text-font`&&Vr(ft(a))&&dt(a.type)===`identity`&&d.push(new q(n,a,`"text-font" does not support identity functions`))),d.concat(Li({key:e.key,value:a,valueSpec:l,style:r,styleSpec:i,expressionContext:`property`,propertyType:t,propertyKey:o}))}function Ei(e){return Ti(e,`paint`)}function Di(e){return Ti(e,`layout`)}function Oi(e){let t=[],n=e.value,r=e.key,i=e.style,a=e.styleSpec;n.type||n.ref||t.push(new q(r,n,`either "type" or "ref" is required`));let o=dt(n.type),s=dt(n.ref);if(n.id){let a=dt(n.id);for(let o=0;o<e.arrayIndex;o++){let e=i.layers[o];dt(e.id)===a&&t.push(new q(r,n.id,`duplicate layer id "${n.id}", previously used at line ${e.id.__line__}`))}}if(`ref`in n){let e;[`type`,`source`,`source-layer`,`filter`,`layout`].forEach((e=>
1{e in n&&t.push(new q(r,n[e],`"${e}" is prohibited for ref layers`))})),i.layers.forEach((t=>{dt(t.id)===s&&(e=t)})),e?e.ref?t.push(new q(r,n.ref,`ref cannot reference another ref layer`)):o=dt(e.type):typeof s==`string`&&t.push(new q(r,n.ref,`ref layer "${s}" not found`))}else if(o!==`background`&&o!==`sky`)if(n.source){let e=i.sources&&i.sources[n.source],a=e&&dt(e.type);e?a===`vector`&&o===`raster`?t.push(new q(r,n.source,`layer "${n.id}" requires a raster source`)):a===`raster`&&o!==`raster`?t.push(new q(r,n.source,`layer "${n.id}" requires a vector source`)):a!==`vector`||n[`source-layer`]?a===`raster-dem`&&o!==`hillshade`?t.push(new q(r,n.source,`raster-dem source can only be used with layer type 'hillshade'.`)):o!==`line`||!n.paint||!n.paint[`line-gradient`]&&!n.paint[`line-trim-offset`]||a===`geojson`&&e.lineMetrics||t.push(new q(r,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):t.push(new q(r,n,`layer "${n.id}" must specify a "source-layer"`)):t.push(new q(r,n.source,`source "${n.source}" not found`))}else t.push(new q(r,n,`missing required property "source"`));return t=t.concat(ri({key:r,value:n,valueSpec:a.layer,style:e.style,styleSpec:e.styleSpec,objectElementValidators:{"*":()=>[],type:()=>Li({key:`${r}.type`,value:n.type,valueSpec:a.layer.type,style:e.style,styleSpec:e.styleSpec,object:n,objectKey:`type`}),filter:e=>Ci(ut({layerType:o},e)),layout:e=>ri({layer:n,key:e.key,value:e.value,valueSpec:{},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{"*":e=>Di(ut({layerType:o},e))}}),paint:e=>ri({layer:n,key:e.key,value:e.value,valueSpec:{},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{"*":e=>Ei(ut({layerType:o},e))}})}})),t}function ki(e){let t=e.value,n=e.key,r=K(t);return r===`string`?[]:[new q(n,t,`string expected, ${r} found`)]}let Ai={promoteId:function({key:e,value:t}){if(K(t)===`string`)return ki({key:e,value:t});{let n=[];for(let r in t)n.push(...ki({key:`${e}.${r}`,value:t[r]}));return n}}};function ji(e){let t=e.value,n=e.key,r=e.styleSpec,i=e.style;if(!t.type)return[new q(n,t,`"type" is required`)];let a=dt(t.type),o;switch(a){case`vector`:case`raster`:case`raster-dem`:return o=ri({key:n,value:t,valueSpec:r[`source_${a.replace(`-`,`_`)}`],style:e.style,styleSpec:r,objectElementValidators:Ai}),o;case`geojson`:if(o=ri({key:n,value:t,valueSpec:r.source_geojson,style:i,styleSpec:r,objectElementValidators:Ai}),t.cluster)for(let e in t.clusterProperties){let[r,i]=t.clusterProperties[e],a=typeof r==`string`?[r,[`accumulated`],[`get`,e]]:r;o.push(...si({key:`${n}.${e}.map`,value:i,expressionContext:`cluster-map`})),o.push(...si({key:`${n}.${e}.reduce`,value:a,expressionContext:`cluster-reduce`}))}return o;case`video`:return ri({key:n,value:t,valueSpec:r.source_video,style:i,styleSpec:r});case`image`:return ri({key:n,value:t,valueSpec:r.source_image,style:i,styleSpec:r});case`canvas`:return[new q(n,null,`Please use runtime APIs to add canvas sources, rather than including them in stylesheets.`,`source.canvas`)];default:return li({key:`${n}.type`,value:t.type,valueSpec:{values:Mi(r)},style:i,styleSpec:r})}}function Mi(e){return e.source.reduce(((t,n)=>{let r=e[n];return r.type.type===`enum`&&(t=t.concat(Object.keys(r.type.values))),t}),[])}function Ni(e){let t=e.value,n=e.styleSpec,r=n.light,i=e.style,a=[],o=K(t);if(t===void 0)return a;if(o!==`object`)return a=a.concat([new q(`light`,t,`object expected, ${o} found`)]),a;for(let e in t){let o=e.match(/^(.*)-transition$/);a=a.concat(o&&r[o[1]]&&r[o[1]].transition?Li({key:e,value:t[e],valueSpec:n.transition,style:i,styleSpec:n}):r[e]?Li({key:e,value:t[e],valueSpec:r[e],style:i,styleSpec:n}):[new q(e,t[e],`unknown property "${e}"`)])}return a}function Pi(e){let t=e.value,n=e.key,r=e.style,i=e.styleSpec,a=i.terrain,o=[],s=K(t);if(t===void 0)return o;if(s!==`object`)return o=o.concat([new q(`terrain`,t,`object expected, ${s} found`)]),o;for(let e in t){let n=e.match(/^(.*)-transition$/);o=o.concat(n&&a[n[1]]&&a[n[1]].transition?Li({key:e,value:t[e],valueSpec:i.transition,style:r,styleSpec:i}
1):a[e]?Li({key:e,value:t[e],valueSpec:a[e],style:r,styleSpec:i}):[new q(e,t[e],`unknown property "${e}"`)])}if(t.source){let e=r.sources&&r.sources[t.source],i=e&&dt(e.type);e?i!==`raster-dem`&&o.push(new q(n,t.source,`terrain cannot be used with a source of type ${String(i)}, it only be used with a "raster-dem" source type`)):o.push(new q(n,t.source,`source "${t.source}" not found`))}else o.push(new q(n,t,`terrain is missing required property "source"`));return o}function Fi(e){let t=e.value,n=e.style,r=e.styleSpec,i=r.fog,a=[],o=K(t);if(t===void 0)return a;if(o!==`object`)return a=a.concat([new q(`fog`,t,`object expected, ${o} found`)]),a;for(let e in t){let o=e.match(/^(.*)-transition$/);a=a.concat(o&&i[o[1]]&&i[o[1]].transition?Li({key:e,value:t[e],valueSpec:r.transition,style:n,styleSpec:r}):i[e]?Li({key:e,value:t[e],valueSpec:i[e],style:n,styleSpec:r}):[new q(e,t[e],`unknown property "${e}"`)])}return a}let Ii={"*":()=>[],array:ii,boolean:function(e){let t=e.value,n=e.key,r=K(t);return r===`boolean`?[]:[new q(n,t,`boolean expected, ${r} found`)]},number:ai,color:function(e){let t=e.key,n=e.value,r=K(n);return r===`string`?kt(n)===null?[new q(t,n,`color expected, "${n}" found`)]:[]:[new q(t,n,`color expected, ${r} found`)]},enum:li,filter:Ci,function:oi,layer:Oi,object:ri,source:ji,light:Ni,terrain:Pi,fog:Fi,string:ki,formatted:function(e){return ki(e).length===0?[]:si(e)},resolvedImage:function(e){return ki(e).length===0?[]:si(e)},projection:function(e){let t=e.value,n=e.styleSpec,r=n.projection,i=e.style,a=[],o=K(t);if(o===`object`)for(let e in t)a=a.concat(Li({key:e,value:t[e],valueSpec:r[e],style:i,styleSpec:n}));else o!==`string`&&(a=a.concat([new q(`projection`,t,`object or string expected, ${o} found`)]));return a}};function Li(e){let t=e.value,n=e.valueSpec,r=e.styleSpec;return n.expression&&Vr(dt(t))?oi(e):n.expression&&Xr(ft(t))?si(e):n.type&&Ii[n.type]?Ii[n.type](e):ri(ut({},e,{valueSpec:n.type?r[n.type]:n}))}function Ri(e){let t=e.value,n=e.key,r=ki(e);return r.length||(t.indexOf(`{fontstack}`)===-1&&r.push(new q(n,t,`"glyphs" url must include a "{fontstack}" token`)),t.indexOf(`{range}`)===-1&&r.push(new q(n,t,`"glyphs" url must include a "{range}" token`))),r}function zi(e,t=z){return Hi(Li({key:``,value:e,valueSpec:t.$root,styleSpec:t,style:e,objectElementValidators:{glyphs:Ri,"*":()=>[]}}))}let Bi=e=>Hi(Ei(e)),Vi=e=>Hi(Di(e));function Hi(e){return e.slice().sort(((e,t)=>e.line&&t.line?e.line-t.line:0))}function Ui(e,t){let n=!1;if(t&&t.length)for(let r of t)e.fire(new ct(Error(r.message))),n=!0;return n}var Wi=Gi;function Gi(e,t,n){var r=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;var i=new Int32Array(this.arrayBuffer);e=i[0],this.d=(t=i[1])+2*(n=i[2]);for(var a=0;a<this.d*this.d;a++){var o=i[3+a],s=i[3+a+1];r.push(o===s?null:i.subarray(o,s))}var c=i[3+r.length+1];this.keys=i.subarray(i[3+r.length],c),this.bboxes=i.subarray(c),this.insert=this._insertReadonly}else{this.d=t+2*n;for(var l=0;l<this.d*this.d;l++)r.push([]);this.keys=[],this.bboxes=[]}this.n=t,this.extent=e,this.padding=n,this.scale=t/e,this.uid=0;var u=n/t*e;this.min=-u,this.max=e+u}Gi.prototype.insert=function(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertCell,this.uid++),this.keys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i)},Gi.prototype._insertReadonly=function(){throw`Cannot insert into a GridIndex created from an ArrayBuffer.`},Gi.prototype._insertCell=function(e,t,n,r,i,a){this.cells[i].push(a)},Gi.prototype.query=function(e,t,n,r,i){var a=this.min,o=this.max;if(e<=a&&t<=a&&o<=n&&o<=r&&!i)return Array.prototype.slice.call(this.keys);var s=[];return this._forEachCell(e,t,n,r,this._queryCell,s,{},i),s},Gi.prototype._queryCell=function(e,t,n,r,i,a,o,s){var c=this.cells[i];if(c!==null)for(var l=this.keys,u=this.bboxes,d=0;d<c.length;d++){var f=c[d];if(o[f]===void 0){var p=4*f;(s?s(u[p+0],u[p+1],u[p+2],u[p+3]):e<=u[p+2]&&t<=u[p+3]&&n>=u[p+0]&&r>=u[p+1])?(o[f]=!0,a.push(l[f])):o[f]=!1}}},Gi.prototype._forEachCell=function(e,t,n,r,i,a,o,s){for(var c=this._convertToCellCoord(e),l=this._convertToCellCoord(t),u=this._convertToCellCoord(n),d=this._convertToCellCoord(r),f=c;f<=u;f++)for(var p=l;p<=d;p++){var m=this.d*p+f;if((!s||s(this._convertFromCellCoord(f),this._convertFromCellCoord(p),this._convertFromCellCoord(f+1),this._convertFromCellCoord(p+1)))&&i.call(this,e,t,n,r,m,a,o,s))return}},Gi.prototype._convertFromCellCoord=function(e){return(e-this.padding)/this.scale},Gi.prototype._convertToCellCoord=function(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))},Gi.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var e=this.cells,t=3+this.cells.length+1+1,n=0,r=0;r<this.cells.length;r++)n+=this.cells[r].length;var i=new Int32Array(t+n+this.keys.length+this.bboxes.length);i[0]=this.extent,i[1]=this.n,i[2]=this.padding;
1for(var a=t,o=0;o<e.length;o++){var s=e[o];i[3+o]=a,i.set(s,a),a+=s.length}return i[3+e.length]=a,i.set(this.keys,a),i[3+e.length+1]=a+=this.keys.length,i.set(this.bboxes,a),a+=this.bboxes.length,i.buffer};let Ki={};function J(e,t,n={}){Object.defineProperty(e,"_classRegistryKey",{value:t,writeable:!1}),Ki[t]={klass:e,omit:n.omit||[]}}J(Object,`Object`),Wi.serialize=function(e,t){let n=e.toArrayBuffer();return t&&t.push(n),{buffer:n}},Wi.deserialize=function(e){return new Wi(e.buffer)},Object.defineProperty(Wi,"name",{value:`Grid`}),J(Wi,`Grid`),J(It,`Color`),J(Error,`Error`),J(xe,`AJAXError`),J(Bt,`ResolvedImage`),J(ti,`StylePropertyFunction`),J(Yr,`StyleExpression`,{omit:[`_evaluator`]}),J($r,`ZoomDependentExpression`),J(Qr,`ZoomConstantExpression`),J(on,`CompoundExpression`,{omit:[`_evaluate`]});for(let e in Fr)Ki[Fr[e]._classRegistryKey]||J(Fr[e],`Expression${e}`);function qi(e){return e&&typeof ArrayBuffer<`u`&&(e instanceof ArrayBuffer||e.constructor&&e.constructor.name===`ArrayBuffer`)}function Ji(e){return t.ImageBitmap&&e instanceof t.ImageBitmap}function Yi(e,n){if(e==null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof Date||e instanceof RegExp)return e;if(qi(e)||Ji(e))return n&&n.push(e),e;if(ArrayBuffer.isView(e)){let t=e;return n&&n.push(t.buffer),t}if(e instanceof t.ImageData)return n&&n.push(e.data.buffer),e;if(Array.isArray(e)){let t=[];for(let r of e)t.push(Yi(r,n));return t}if(typeof e==`object`){let t=e.constructor,r=t._classRegistryKey;if(!r)throw Error(`can't serialize object of unregistered class ${r}`);let i=t.serialize?t.serialize(e,n):{};if(!t.serialize){for(let t in e)e.hasOwnProperty(t)&&(Ki[r].omit.indexOf(t)>=0||(i[t]=Yi(e[t],n)));e instanceof Error&&(i.message=e.message)}if(i.$name)throw Error(`$name property is reserved for worker serialization logic.`);return r!==`Object`&&(i.$name=r),i}throw Error(`can't serialize object of type `+typeof e)}function Xi(e){if(e==null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||e instanceof Boolean||e instanceof Number||e instanceof String||e instanceof Date||e instanceof RegExp||qi(e)||Ji(e)||ArrayBuffer.isView(e)||e instanceof t.ImageData)return e;if(Array.isArray(e))return e.map(Xi);if(typeof e==`object`){let t=e.$name||`Object`,{klass:n}=Ki[t];if(!n)throw Error(`can't deserialize unregistered class ${t}`);if(n.deserialize)return n.deserialize(e);let r=Object.create(n.prototype);for(let t of Object.keys(e))t!==`$name`&&(r[t]=Xi(e[t]));return r}throw Error(`can't deserialize object of type `+typeof e)}let Zi=e=>e>=1536&&e<=1791,Qi=e=>e>=1872&&e<=1919,$i=e=>e>=2208&&e<=2303,ea=e=>e>=11904&&e<=12031,ta=e=>e>=12032&&e<=12255,na=e=>e>=12272&&e<=12287,ra=e=>e>=12288&&e<=12351,ia=e=>e>=12352&&e<=12447,aa=e=>e>=12448&&e<=12543,oa=e=>e>=12544&&e<=12591,sa=e=>e>=12704&&e<=12735,ca=e=>e>=12736&&e<=12783,la=e=>e>=12784&&e<=12799,ua=e=>e>=12800&&e<=13055,da=e=>e>=13056&&e<=13311,fa=e=>e>=13312&&e<=19903,pa=e=>e>=19968&&e<=40959,ma=e=>e>=40960&&e<=42127,ha=e=>e>=42128&&e<=42191,ga=e=>e>=44032&&e<=55215,_a=e=>e>=63744&&e<=64255,va=e=>e>=64336&&e<=65023,ya=e=>e>=65040&&e<=65055,ba=e=>e>=65072&&e<=65103,xa=e=>e>=65104&&e<=65135,Sa=e=>e>=65136&&e<=65279,Ca=e=>e>=65280&&e<=65519;function wa(e){for(let t of e)if(Da(t.charCodeAt(0)))return!0;return!1}function Ta(e){for(let t of e)if(!Ea(t.charCodeAt(0)))return!1;return!0}function Ea(e){return!(Zi(e)||Qi(e)||$i(e)||va(e)||Sa(e))}function Da(e){return!(e!==746&&e!==747&&(e<4352||!(sa(e)||oa(e)||ba(e)&&!(e>=65097&&e<=65103)||_a(e)||da(e)||ea(e)||ca(e)||!(!ra(e)||e>=12296&&e<=12305||e>=12308&&e<=12319||e===12336)||fa(e)||pa(e)||ua(e)||(e=>e>=12592&&e<=12687)(e)||(e=>e>=43360&&e<=43391)(e)||(e=>e>=55216&&e<=55295)(e)||(e=>e>=4352&&e<=4607)(e)||ga(e)||ia(e)||na(e)||(e=>e>=12688&&e<=12703)(e)||ta(e)||la(e)||aa(e)&&e!==12540||!(!Ca(e)||e===65288||e===65289||e===65293||e>=65306&&e<=65310||e===65339||e===65341||e===65343||e>=65371&&e<=65503||e===65507||e>=65512&&e<=65519)||!(!xa(e)||e>=65112&&e<=65118||e>=65123&&e<=65126)||(e=>e>=5120&&e<=5759)(e)||(e=>e>=6320&&e<=6399)(e)||ya(e)||(e=>e>=19904&&e<=19967)(e)||ma(e)||ha(e))))}function Oa(e){return!(Da(e)||function(e){return!!((e=>e>=128&&e<=255)(e)&&(e===167||e===169||e===174||e===177||e===188||e===189||e===190||e===215||e===247)||(e=>e>=8192&&e<=8303)(e)&&(e===8214||e===8224||e===8225||e===8240||e===8241||e===8251||e===8252||e===8258||e===8263||e===8264||e===8265||e===8273)||(e=>e>=8448&&e<=8527)(e)||(e=>e>=8528&&e<=8591)(e)||(e=>e>=8960&&e<=9215)(e)&&(e>=8960&&e<=8967||e>=8972&&e<=8991||e>=8996&&e<=9e3||e===9003||e>=9085&&e<=9114||e>=9150&&e<=9165||e===9167||e>=9169&&e<=9179||e>=9186&&e<=9215)||(e=>e>=9216&&e<=9279)(e)&&e!==9251||(e=>e>=9280&&e<=9311)(e)||(e=>e>=9312&&e<=9471)(e)||(e=>e>=9632&&e<=9727)(e)||(e=>e>=9728&&e<=9983)(e)&&!(e>=9754&&e<=9759)||(e=>e>=11008&&e<=11263)(e)&&(e>=11026&&e<=11055||e>=11088&&e<=11097||e>=11192&&e<=11243)||ra(e)||aa(e)||(e=>e>=57344&&e<=63743)(e)||ba(e)||xa(e)||Ca(e)||e===8734||e===8756||e===8757||e>=9984&&e<=10087||e>=10102&&e<=10131||e===65532||e===65533)}(e))}function ka(e){return e>=1424&&e<=2303||va(e)||Sa(e)}function Aa(e,t){return!(!t&&ka(e)||e>=2304&&e<=3583||e>=3840&&e<=4255||(e=>e>=6016&&e<=6143)(e))}function ja(e){for(let t of e)if(ka(t.charCodeAt(0)))return!0;return!1}let Ma=`deferred`,Na=`loading`,Pa=`loaded`,Fa=null,Ia=`unavailable`,La=null,Ra=function(e){e&&typeof e==`string`&&e.indexOf(`NetworkError`)>-1&&(Ia=`error`),Fa&&Fa(e)};function za(){Ba.fire(new st(`pluginStateChange`,{pluginStatus:Ia,pluginURL:La}))}let Ba=new lt,Va=function(){return Ia},Ha=function(){if(Ia!==Ma||!La)throw Error(`rtl-text-plugin cannot be downloaded unless a pluginURL is specified`);Ia=Na,za(),La&&we({url:La},(e=>{e?Ra(e):(Ia=Pa,za())}))},Ua={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>Ia===Pa||Ua.applyArabicShaping!=null,isLoading:()=>Ia===Na,setState(e){Ia=e.pluginStatus,La=e.pluginURL},isParsed:()=>Ua.applyArabicShaping!=null&&Ua.processBidirectionalText!=null&&Ua.processStyledBidirectionalText!=null,getPluginURL:()=>La};class Wa{constructor(e,t){this.zoom=e,t?(this.now=t.now,this.fadeDuration=t.fadeDuration,this.transition=t.transition,this.pitch=t.pitch):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0)}isSupportedScript(e){return function(e,t){for(let n of e)if(!Aa(n.charCodeAt(0),t))return!1;return!0}(e,Ua.isLoaded())}}class Ga{constructor(e,t){this.property=e,this.value=t,this.expression=function(e,t){if(Vr(e))return new ti(e,t);if(Xr(e)){let n=ei(e,t);if(n.result===`error`)throw Error(n.value.map((e=>`${e.key}: ${e.message}`)).join(`, `));return n.value}{let n=e;return typeof e==`string`&&t.type===`color`&&(n=It.parse(e)),{kind:`constant`,evaluate:()=>n}}}(t===void 0?e.specification.default:t,e.specification)}isDataDriven(){return this.expression.kind===`source`||this.expression.kind===`composite`}possiblyEvaluate(e,t,n){return this.property.possiblyEvaluate(this,e,t,n)}}class Ka{constructor(e){this.property=e,this.value=new Ga(e,void 0)}transitioned(e,t){return new Ja(this.property,this.value,t,O({},e.transition,this.transition),e.now)}
vendor: 16,994 bytes, line 1
1untransitioned(){return new Ja(this.property,this.value,null,{},0)}}class qa{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitionablePropertyValues)}getValue(e){return I(this._values[e].value.value)}setValue(e,t){this._values.hasOwnProperty(e)||(this._values[e]=new Ka(this._values[e].property)),this._values[e].value=new Ga(this._values[e].property,t===null?void 0:I(t))}getTransition(e){return I(this._values[e].transition)}setTransition(e,t){this._values.hasOwnProperty(e)||(this._values[e]=new Ka(this._values[e].property)),this._values[e].transition=I(t)||void 0}serialize(){let e={};for(let t of Object.keys(this._values)){let n=this.getValue(t);n!==void 0&&(e[t]=n);let r=this.getTransition(t);r!==void 0&&(e[`${t}-transition`]=r)}return e}transitioned(e,t){let n=new Ya(this._properties);for(let r of Object.keys(this._values))n._values[r]=this._values[r].transitioned(e,t._values[r]);return n}untransitioned(){let e=new Ya(this._properties);for(let t of Object.keys(this._values))e._values[t]=this._values[t].untransitioned();return e}}class Ja{constructor(e,t,n,r,i){let a=r.delay||0,o=r.duration||0;i||=0,this.property=e,this.value=t,this.begin=i+a,this.end=this.begin+o,e.specification.transition&&(r.delay||r.duration)&&(this.prior=n)}possiblyEvaluate(e,t,n){let r=e.now||0,i=this.value.possiblyEvaluate(e,t,n),a=this.prior;if(a){if(r>this.end||this.value.isDataDriven())return this.prior=null,i;if(r<this.begin)return a.possiblyEvaluate(e,t,n);{let o=(r-this.begin)/(this.end-this.begin);return this.property.interpolate(a.possiblyEvaluate(e,t,n),i,b(o))}}return i}}class Ya{constructor(e){this._properties=e,this._values=Object.create(e.defaultTransitioningPropertyValues)}possiblyEvaluate(e,t,n){let r=new Qa(this._properties);for(let i of Object.keys(this._values))r._values[i]=this._values[i].possiblyEvaluate(e,t,n);return r}hasTransition(){for(let e of Object.keys(this._values))if(this._values[e].prior)return!0;return!1}}class Xa{constructor(e){this._properties=e,this._values=Object.create(e.defaultPropertyValues)}getValue(e){return I(this._values[e].value)}setValue(e,t){this._values[e]=new Ga(this._values[e].property,t===null?void 0:I(t))}serialize(){let e={};for(let t of Object.keys(this._values)){let n=this.getValue(t);n!==void 0&&(e[t]=n)}return e}possiblyEvaluate(e,t,n){let r=new Qa(this._properties);for(let i of Object.keys(this._values))r._values[i]=this._values[i].possiblyEvaluate(e,t,n);return r}}class Za{constructor(e,t,n){this.property=e,this.value=t,this.parameters=n}isConstant(){return this.value.kind===`constant`}constantOr(e){return this.value.kind===`constant`?this.value.value:e}evaluate(e,t,n,r){return this.property.evaluate(this.value,this.parameters,e,t,n,r)}}class Qa{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues)}get(e){return this._values[e]}}class Y{constructor(e){this.specification=e}possiblyEvaluate(e,t){return e.expression.evaluate(t)}interpolate(e,t,n){let r=In[this.specification.type];return r?r(e,t,n):e}}class X{constructor(e,t){this.specification=e,this.overrides=t}possiblyEvaluate(e,t,n,r){return new Za(this,e.expression.kind===`constant`||e.expression.kind===`camera`?{kind:`constant`,value:e.expression.evaluate(t,null,{},n,r)}:e.expression,t)}interpolate(e,t,n){if(e.value.kind!==`constant`||t.value.kind!==`constant`)return e;if(e.value.value===void 0||t.value.value===void 0)return new Za(this,{kind:`constant`,value:void 0},e.parameters);let r=In[this.specification.type];return r?new Za(this,{kind:`constant`,value:r(e.value.value,t.value.value,n)},e.parameters):e}evaluate(e,t,n,r,i,a){return e.kind===`constant`?e.value:e.evaluate(t,n,r,i,a)}}class $a{constructor(e){this.specification=e}possiblyEvaluate(e,t,n,r){return!!e.expression.evaluate(t,null,{},n,r)}interpolate(){return!1}}class eo{constructor(e){this.properties=e,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];let t=new Wa(0,{});for(let n in e){let r=e[n];r.specification.overridable&&this.overridableProperties.push(n);let i=this.defaultPropertyValues[n]=new Ga(r,void 0),a=this.defaultTransitionablePropertyValues[n]=new Ka(r);this.defaultTransitioningPropertyValues[n]=a.untransitioned(),this.defaultPossiblyEvaluatedValues[n]=i.possiblyEvaluate(t)}}}function to(e,t){return 256*(e=C(Math.floor(e),0,255))+C(Math.floor(t),0,255)}J(X,`DataDrivenProperty`),J(Y,`DataConstantProperty`),J($a,`ColorRampProperty`);let no={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ro{constructor(e,t){this._structArray=e,this._pos1=t*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class io{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(e,t){return e._trim(),t&&(e.isTransferred=!0,t.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){let t=Object.create(this.prototype);return t.arrayBuffer=e.arrayBuffer,t.length=e.length,t.capacity=e.arrayBuffer.byteLength/t.bytesPerElement,t._refreshViews(),t}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(e){this.reserve(e),this.length=e}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let t=this.uint8;this._refreshViews(),t&&this.uint8.set(t)}}_refreshViews(){throw Error(`_refreshViews() must be implemented by each concrete StructArray layout`)}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null}}function ao(e,t=1){let n=0,r=0;return{members:e.map((e=>{let i=no[e.type].BYTES_PER_ELEMENT,a=n=oo(n,Math.max(t,i)),o=e.components||1;return r=Math.max(r,i),n+=i*o,{name:e.name,type:e.type,components:o,offset:a}})),size:oo(n,Math.max(r,t)),alignment:t}}function oo(e,t){return Math.ceil(e/t)*t}class so extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=2*e;return this.int16[r+0]=t,this.int16[r+1]=n,e}}so.prototype.bytesPerElement=4,J(so,`StructArrayLayout2i4`);class co extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=3*e;return this.int16[i+0]=t,this.int16[i+1]=n,this.int16[i+2]=r,e}}co.prototype.bytesPerElement=6,J(co,`StructArrayLayout3i6`);class lo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=4*e;return this.int16[a+0]=t,this.int16[a+1]=n,this.int16[a+2]=r,this.int16[a+3]=i,e}}lo.prototype.bytesPerElement=8,J(lo,`StructArrayLayout4i8`);class uo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o){let s=this.length;return this.resize(s+1),this.emplace(s,e,t,n,r,i,a,o)}emplace(e,t,n,r,i,a,o,s){let c=6*e,l=12*e,u=3*e;return this.int16[c+0]=t,this.int16[c+1]=n,this.uint8[l+4]=r,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,this.float32[u+2]=s,e}}uo.prototype.bytesPerElement=12,J(uo,`StructArrayLayout2i4ub1f12`);class fo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=4*e;return this.float32[a+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,this.float32[a+3]=i,e}}fo.prototype.bytesPerElement=16,J(fo,`StructArrayLayout4f16`);class po extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=6*e,s=3*e;return this.uint16[o+0]=t,this.uint16[o+1]=n,this.uint16[o+2]=r,this.uint16[o+3]=i,this.float32[s+2]=a,e}}po.prototype.bytesPerElement=12,J(po,`StructArrayLayout4ui1f12`);class mo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=4*e;return this.uint16[a+0]=t,this.uint16[a+1]=n,this.uint16[a+2]=r,this.uint16[a+3]=i,e}}mo.prototype.bytesPerElement=8,J(mo,`StructArrayLayout4ui8`);class ho extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=6*e;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}}ho.prototype.bytesPerElement=12,J(ho,`StructArrayLayout6i12`);class go extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d){let f=this.length;return this.resize(f+1),this.emplace(f,e,t,n,r,i,a,o,s,c,l,u,d)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=12*e;return this.int16[p+0]=t,this.int16[p+1]=n,this.int16[p+2]=r,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=c,this.int16[p+8]=l,this.int16[p+9]=u,this.int16[p+10]=d,this.int16[p+11]=f,e}}go.prototype.bytesPerElement=24,J(go,`StructArrayLayout4i4ui4i24`);class _o extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=10*e,c=5*e;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.float32[c+2]=i,this.float32[c+3]=a,this.float32[c+4]=o,e}}_o.prototype.bytesPerElement=20,J(_o,`StructArrayLayout3i3f20`);class vo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){return this.uint32[1*e+0]=t,e}}vo.prototype.bytesPerElement=4,J(vo,`StructArrayLayout1ul4`);class yo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=this.length;return this.resize(p+1),this.emplace(p,e,t,n,r,i,a,o,s,c,l,u,d,f)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=20*e,h=10*e;return this.int16[m+0]=t,this.int16[m+1]=n,this.int16[m+2]=r,this.int16[m+3]=i,this.int16[m+4]=a,this.float32[h+3]=o,this.float32[h+4]=s,this.float32[h+5]=c,this.float32[h+6]=l,this.int16[m+14]=u,this.uint32[h+8]=d,this.uint16[m+18]=f,this.uint16[m+19]=p,e}}yo.prototype.bytesPerElement=40,J(yo,`StructArrayLayout5i4f1i1ul2ui40`);class bo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o){let s=this.length;return this.resize(s+1),this.emplace(s,e,t,n,r,i,a,o)}emplace(e,t,n,r,i,a,o,s){let c=8*e;return this.int16[c+0]=t,this.int16[c+1]=n,this.int16[c+2]=r,this.int16[c+4]=i,this.int16[c+5]=a,this.int16[c+6]=o,this.int16[c+7]=s,e}}bo.prototype.bytesPerElement=16,J(bo,`StructArrayLayout3i2i2i16`);class xo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=4*e,s=8*e;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.int16[s+6]=i,this.int16[s+7]=a,e}}xo.prototype.bytesPerElement=16,J(xo,`StructArrayLayout2f1f2i16`);class So extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=12*e,o=3*e;return this.uint8[a+0]=t,this.uint8[a+1]=n,this.float32[o+1]=r,this.float32[o+2]=i,e}}So.prototype.bytesPerElement=12,J(So,`StructArrayLayout2ub2f12`);class Co extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=3*e;return this.float32[i+0]=t,this.float32[i+1]=n,this.float32[i+2]=r,e}}Co.prototype.bytesPerElement=12,J(Co,`StructArrayLayout3f12`);class wo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=3*e;return this.uint16[i+0]=t,this.uint16[i+1]=n,this.uint16[i+2]=r,e}}wo.prototype.bytesPerElement=6,J(wo,`StructArrayLayout3ui6`);class To extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b){let x=this.length;return this.resize(x+1),this.emplace(x,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x){let S=30*e,C=15*e,w=60*e;return this.int16[S+0]=t,this.int16[S+1]=n,this.int16[S+2]=r,this.float32[C+2]=i,this.float32[C+3]=a,this.uint16[S+8]=o,this.uint16[S+9]=s,this.uint32[C+5]=c,this.uint32[C+6]=l,this.uint32[C+7]=u,this.uint16[S+16]=d,this.uint16[S+17]=f,this.uint16[S+18]=p,this.float32[C+10]=m,this.float32[C+11]=h,this.uint8[w+48]=g,this.uint8[w+49]=_,this.uint8[w+50]=v,this.uint32[C+13]=y,this.int16[S+28]=b,this.uint8[w+58]=x,e}}To.prototype.bytesPerElement=60,J(To,`StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60`);class Eo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k){let A=this.length;return this.resize(A+1),this.emplace(A,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A){let j=38*e,M=19*e;return this.int16[j+0]=t,this.int16[j+1]=n,this.int16[j+2]=r,this.float32[M+2]=i,this.float32[M+3]=a,this.int16[j+8]=o,this.int16[j+9]=s,this.int16[j+10]=c,this.int16[j+11]=l,this.int16[j+12]=u,this.int16[j+13]=d,this.uint16[j+14]=f,this.uint16[j+15]=p,this.uint16[j+16]=m,this.uint16[j+17]=h,this.uint16[j+18]=g,this.uint16[j+19]=_,this.uint16[j+20]=v,this.uint16[j+21]=y,this.uint16[j+22]=b,this.uint16[j+23]=x,this.uint16[j+24]=S,this.uint16[j+25]=C,this.uint16[j+26]=w,this.uint16[j+27]=T,this.uint16[j+28]=E,this.uint32[M+15]=D,this.float32[M+16]=O,this.float32[M+17]=k,this.float32[M+18]=A,e}}Eo.prototype.bytesPerElement=76,J(Eo,`StructArrayLayout3i2f6i15ui1ul3f76`);class Do extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){return this.float32[1*e+0]=t,e}}Do.prototype.bytesPerElement=4,J(Do,`StructArrayLayout1f4`);class Oo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=5*e;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.float32[o+3]=i,this.float32[o+4]=a,e}}Oo.prototype.bytesPerElement=20,J(Oo,`StructArrayLayout5f20`);class ko extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=6*e;
vendor: 4,322 bytes, line 1
1return this.uint32[3*e+0]=t,this.uint16[a+2]=n,this.uint16[a+3]=r,this.uint16[a+4]=i,e}}ko.prototype.bytesPerElement=12,J(ko,`StructArrayLayout1ul3ui12`);class Ao extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=2*e;return this.uint16[r+0]=t,this.uint16[r+1]=n,e}}Ao.prototype.bytesPerElement=4,J(Ao,`StructArrayLayout2ui4`);class jo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){return this.uint16[1*e+0]=t,e}}jo.prototype.bytesPerElement=2,J(jo,`StructArrayLayout1ui2`);class Mo extends io{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=2*e;return this.float32[r+0]=t,this.float32[r+1]=n,e}}Mo.prototype.bytesPerElement=8,J(Mo,`StructArrayLayout2f8`);class No extends ro{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}No.prototype.size=40;class Po extends yo{get(e){return new No(this,e)}}J(Po,`CollisionBoxArray`);class Fo extends ro{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(e){this._structArray.uint8[this._pos1+49]=e}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(e){this._structArray.uint8[this._pos1+50]=e}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(e){this._structArray.uint32[this._pos4+13]=e}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(e){this._structArray.uint8[this._pos1+58]=e}}Fo.prototype.size=60;class Io extends To{get(e){return new Fo(this,e)}}J(Io,`PlacedSymbolArray`);class Lo extends ro{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}
vendor: 4,355 bytes, line 1
1get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(e){this._structArray.uint32[this._pos4+15]=e}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}Lo.prototype.size=76;class Ro extends Eo{get(e){return new Lo(this,e)}}J(Ro,`SymbolInstanceArray`);class zo extends Do{getoffsetX(e){return this.float32[1*e+0]}}J(zo,`GlyphOffsetArray`);class Bo extends so{getx(e){return this.int16[2*e+0]}gety(e){return this.int16[2*e+1]}}J(Bo,`SymbolLineVertexArray`);class Vo extends ro{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]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}Vo.prototype.size=12;class Ho extends ko{get(e){return new Vo(this,e)}}J(Ho,`FeatureIndexArray`);class Uo extends Ao{geta_centroid_pos0(e){return this.uint16[2*e+0]}geta_centroid_pos1(e){return this.uint16[2*e+1]}}J(Uo,`FillExtrusionCentroidArray`);let Wo=ao([{name:`a_pattern`,components:4,type:`Uint16`},{name:`a_pixel_ratio`,components:1,type:`Float32`}]),Go=ao([{name:`a_dash`,components:4,type:`Uint16`}]);var Ko={exports:{}},qo={exports:{}};qo.exports=function(e,t){var n,r,i,a,o,s,c,l;for(r=e.length-(n=3&e.length),i=t,o=3432918353,s=461845907,l=0;l<r;)c=255&e.charCodeAt(l)|(255&e.charCodeAt(++l))<<8|(255&e.charCodeAt(++l))<<16|(255&e.charCodeAt(++l))<<24,++l,i=27492+(65535&(a=5*(65535&(i=(i^=c=(65535&(c=(c=(65535&c)*o+(((c>>>16)*o&65535)<<16)&4294967295)<<15|c>>>17))*s+(((c>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(c=0,n){case 3:c^=(255&e.charCodeAt(l+2))<<16;case 2:c^=(255&e.charCodeAt(l+1))<<8;case 1:i^=c=(65535&(c=(c=(65535&(c^=255&e.charCodeAt(l)))*o+(((c>>>16)*o&65535)<<16)&4294967295)<<15|c>>>17))*s+(((c>>>16)*s&65535)<<16)&4294967295}return i^=e.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0};var Jo={exports:{}};Jo.exports=function(e,t){for(var n,r=e.length,i=t^r,a=0;r>=4;)n=1540483477*(65535&(n=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+((1540483477*(n>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),r-=4,++a;switch(r){case 3:i^=(255&e.charCodeAt(a+2))<<16;case 2:i^=(255&e.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&e.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0};var Yo=qo.exports,Xo=Jo.exports;
1Ko.exports=Yo,Ko.exports.murmur3=Yo,Ko.exports.murmur2=Xo;class Zo{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(e,t,n,r){this.ids.push(Qo(e)),this.positions.push(t,n,r)}getPositions(e){let t=Qo(e),n=0,r=this.ids.length-1;for(;n<r;){let e=n+r>>1;this.ids[e]>=t?r=e:n=e+1}let i=[];for(;this.ids[n]===t;)i.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return i}static serialize(e,t){let n=new Float64Array(e.ids),r=new Uint32Array(e.positions);return $o(n,r,0,n.length-1),t&&t.push(n.buffer,r.buffer),{ids:n,positions:r}}static deserialize(e){let t=new Zo;return t.ids=e.ids,t.positions=e.positions,t.indexed=!0,t}}function Qo(e){let t=+e;return!isNaN(t)&&-(2**53-1)<=t&&t<=2**53-1?t:Ko.exports(String(e))}function $o(e,t,n,r){for(;n<r;){let i=e[n+r>>1],a=n-1,o=r+1;for(;;){do a++;while(e[a]<i);do o--;while(e[o]>i);if(a>=o)break;es(e,a,o),es(t,3*a,3*o),es(t,3*a+1,3*o+1),es(t,3*a+2,3*o+2)}o-n<r-o?($o(e,t,n,o),n=o+1):($o(e,t,o+1,r),r=o)}}function es(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}J(Zo,`FeaturePositionMap`);class ts{constructor(e){this.gl=e.gl,this.initialized=!1}fetchUniformLocation(e,t){return this.location||this.initialized||(this.location=this.gl.getUniformLocation(e,t),this.initialized=!0),!!this.location}}class ns extends ts{constructor(e){super(e),this.current=0}set(e,t,n){this.fetchUniformLocation(e,t)&&this.current!==n&&(this.current=n,this.gl.uniform1f(this.location,n))}}class rs extends ts{constructor(e){super(e),this.current=[0,0,0,0]}set(e,t,n){this.fetchUniformLocation(e,t)&&(n[0]===this.current[0]&&n[1]===this.current[1]&&n[2]===this.current[2]&&n[3]===this.current[3]||(this.current=n,this.gl.uniform4f(this.location,n[0],n[1],n[2],n[3])))}}class is extends ts{constructor(e){super(e),this.current=It.transparent}set(e,t,n){this.fetchUniformLocation(e,t)&&(n.r===this.current.r&&n.g===this.current.g&&n.b===this.current.b&&n.a===this.current.a||(this.current=n,this.gl.uniform4f(this.location,n.r,n.g,n.b,n.a)))}}let as=new Float32Array(16),os=new Float32Array(9),ss=new Float32Array(4);function cs(e){return[to(255*e.r,255*e.g),to(255*e.b,255*e.a)]}class ls{constructor(e,t,n){this.value=e,this.uniformNames=t.map((e=>`u_${e}`)),this.type=n}setUniform(e,t,n,r,i){t.set(e,i,r.constantOr(this.value))}getBinding(e,t){return this.type===`color`?new is(e):new ns(e)}}class us{constructor(e,t){this.uniformNames=t.map((e=>`u_${e}`)),this.pattern=null,this.pixelRatio=1}setConstantPatternPositions(e){this.pixelRatio=e.pixelRatio||1,this.pattern=e.tl.concat(e.br)}setUniform(e,t,n,r,i){let a=i===`u_pattern`||i===`u_dash`?this.pattern:i===`u_pixel_ratio`?this.pixelRatio:null;a&&t.set(e,i,a)}getBinding(e,t){return t===`u_pattern`||t===`u_dash`?new rs(e):new ns(e)}}class ds{constructor(e,t,n,r){this.expression=e,this.type=n,this.maxValue=0,this.paintVertexAttributes=t.map((e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?2:1,offset:0}))),this.paintVertexArray=new r}populatePaintArray(e,t,n,r,i,a){let o=this.paintVertexArray.length,s=this.expression.evaluate(new Wa(0),t,{},i,r,a);this.paintVertexArray.resize(e),this._setPaintValue(o,e,s)}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate({zoom:0},n,r,void 0,i);this._setPaintValue(e,t,a)}_setPaintValue(e,t,n){if(this.type===`color`){let r=cs(n);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,r[0],r[1])}else{for(let r=e;r<t;r++)this.paintVertexArray.emplace(r,n);this.maxValue=Math.max(this.maxValue,Math.abs(n))}}upload(e){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}}class fs{constructor(e,t,n,r,i,a){this.expression=e,this.uniformNames=t.map((e=>`u_${e}_t`)),this.type=n,this.useIntegerZoom=r,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=t.map((e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?4:2,offset:0}))),this.paintVertexArray=new a}populatePaintArray(e,t,n,r,i,a){let o=this.expression.evaluate(new Wa(this.zoom),t,{},i,r,a),s=this.expression.evaluate(new Wa(this.zoom+1),t,{},i,r,a),c=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(c,e,o,s)}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate({zoom:this.zoom},n,r,void 0,i),o=this.expression.evaluate({zoom:this.zoom+1},n,r,void 0,i);this._setPaintValue(e,t,a,o)}
1_setPaintValue(e,t,n,r){if(this.type===`color`){let i=cs(n),a=cs(r);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,i[0],i[1],a[0],a[1])}else{for(let i=e;i<t;i++)this.paintVertexArray.emplace(i,n,r);this.maxValue=Math.max(this.maxValue,Math.abs(n),Math.abs(r))}}upload(e){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}setUniform(e,t,n,r,i){let a=this.useIntegerZoom?Math.floor(n.zoom):n.zoom,o=C(this.expression.interpolationFactor(a,this.zoom,this.zoom+1),0,1);t.set(e,i,o)}getBinding(e,t){return new ns(e)}}class ps{constructor(e,t,n,r,i){this.expression=e,this.layerId=i,this.paintVertexAttributes=(n===`array`?Go:Wo).members;for(let e=0;e<t.length;++e);this.paintVertexArray=new r}populatePaintArray(e,t,n){let r=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValues(r,e,t.patterns&&t.patterns[this.layerId],n)}updatePaintArray(e,t,n,r,i,a){this._setPaintValues(e,t,n.patterns&&n.patterns[this.layerId],a)}_setPaintValues(e,t,n,r){if(!r||!n)return;let i=r[n];if(!i)return;let{tl:a,br:o,pixelRatio:s}=i;for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,a[0],a[1],o[0],o[1],s)}upload(e){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()}}class ms{constructor(e,t,n=(()=>!0)){this.binders={},this._buffers=[];let r=[];for(let i in e.paint._values){if(!n(i))continue;let a=e.paint.get(i);if(!(a instanceof Za&&Rr(a.property.specification)))continue;let o=_s(i,e.type),s=a.value,c=a.property.specification.type,l=a.property.useIntegerZoom,u=i===`line-dasharray`||i.endsWith(`pattern`),d=i===`line-dasharray`&&e.layout.get(`line-cap`).value.kind!==`constant`;if(s.kind!==`constant`||d)if(s.kind===`source`||d||u){let t=bs(i,c,`source`);this.binders[i]=u?new ps(s,o,c,t,e.id):new ds(s,o,c,t),r.push(`/a_${i}`)}else{let e=bs(i,c,`composite`);this.binders[i]=new fs(s,o,c,l,t,e),r.push(`/z_${i}`)}else this.binders[i]=u?new us(s.value,o):new ls(s.value,o,c),r.push(`/u_${i}`)}this.cacheKey=r.sort().join(``)}getMaxValue(e){let t=this.binders[e];return t instanceof ds||t instanceof fs?t.maxValue:0}populatePaintArrays(e,t,n,r,i,a){for(let o in this.binders){let s=this.binders[o];(s instanceof ds||s instanceof fs||s instanceof ps)&&s.populatePaintArray(e,t,n,r,i,a)}}setConstantPatternPositions(e){for(let t in this.binders){let n=this.binders[t];n instanceof us&&n.setConstantPatternPositions(e)}}updatePaintArrays(e,t,n,r,i,a){let o=!1;for(let s in e){let c=t.getPositions(s);for(let t of c){let c=n.feature(t.index);for(let n in this.binders){let l=this.binders[n];(l instanceof ds||l instanceof fs||l instanceof ps)&&!0===l.expression.isStateDependent&&(l.expression=r.paint.get(n).value,l.updatePaintArray(t.start,t.end,c,e[s],i,a),o=!0)}}}return o}defines(){let e=[];for(let t in this.binders){let n=this.binders[t];(n instanceof ls||n instanceof us)&&e.push(...n.uniformNames.map((e=>`#define HAS_UNIFORM_${e}`)))}return e}getBinderAttributes(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof ds||n instanceof fs||n instanceof ps)for(let t=0;t<n.paintVertexAttributes.length;t++)e.push(n.paintVertexAttributes[t].name)}return e}getBinderUniforms(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof ls||n instanceof us||n instanceof fs)for(let t of n.uniformNames)e.push(t)}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e){let t=[];for(let n in this.binders){let r=this.binders[n];if(r instanceof ls||r instanceof us||r instanceof fs)for(let i of r.uniformNames)t.push({name:i,property:n,binding:r.getBinding(e,i)})}return t}setUniforms(e,t,n,r,i){for(let{name:t,property:a,binding:o}of n)this.binders[a].setUniform(e,o,i,r.get(a),t)}updatePaintBuffers(){this._buffers=[];for(let e in this.binders){let t=this.binders[e];(t instanceof ds||t instanceof fs||t instanceof ps)&&t.paintVertexBuffer&&this._buffers.push(t.paintVertexBuffer)}}upload(e){for(let t in this.binders){let n=this.binders[t];(n instanceof ds||n instanceof fs||n instanceof ps)&&n.upload(e)}this.updatePaintBuffers()}destroy(){for(let e in this.binders){let t=this.binders[e];(t instanceof ds||t instanceof fs||t instanceof ps)&&t.destroy()}}}class hs{constructor(e,t,n=(()=>!0)){this.programConfigurations={};for(let r of e)this.programConfigurations[r.id]=new ms(r,t,n);this.needsUpload=!1,this._featureMap=new Zo,this._bufferOffset=0}populatePaintArrays(e,t,n,r,i,a,o){for(let n in this.programConfigurations)this.programConfigurations[n].populatePaintArrays(e,t,r,i,a,o);t.id!==void 0&&this._featureMap.add(t.id,n,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=!0}updatePaintArrays(e,t,n,r,i){for(let a of n)this.needsUpload=this.programConfigurations[a.id].updatePaintArrays(e,this._featureMap,t,a,r,i)||this.needsUpload}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(let t in this.programConfigurations)this.programConfigurations[t].upload(e);this.needsUpload=!1}}destroy(){for(let e in this.programConfigurations)this.programConfigurations[e].destroy()}}let gs={"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`,`pixel_ratio`],"fill-pattern":[`pattern`,`pixel_ratio`],"fill-extrusion-pattern":[`pattern`,`pixel_ratio`],"line-dasharray":[`dash`]};function _s(e,t){return gs[e]||[e.replace(`${t}-`,``).replace(/-/g,`_`)]}let vs={"line-pattern":{source:po,composite:po},"fill-pattern":{source:po,composite:po},"fill-extrusion-pattern":{source:po,composite:po},"line-dasharray":{source:mo,composite:mo}},ys={color:{source:Mo,composite:fo},number:{source:Do,composite:Mo}};function bs(e,t,n){let r=vs[e];return r&&r[n]||ys[t][n]}J(ls,`ConstantBinder`),J(us,`PatternConstantBinder`),J(ds,`SourceExpressionBinder`),J(ps,`PatternCompositeBinder`),J(fs,`CompositeExpressionBinder`),J(ms,`ProgramConfiguration`,{omit:[`_buffers`]}),J(hs,`ProgramConfigurationSet`);let xs=`-transition`;class Ss extends lt{constructor(e,t){if(super(),this.id=e.id,this.type=e.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,e.type!==`custom`&&(this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,e.type!==`background`&&e.type!==`sky`&&(this.source=e.source,this.sourceLayer=e[`source-layer`],this.filter=e.filter),t.layout&&(this._unevaluatedLayout=new Xa(t.layout)),t.paint)){this._transitionablePaint=new qa(t.paint);for(let t in e.paint)this.setPaintProperty(t,e.paint[t],{validate:!1});for(let t in e.layout)this.setLayoutProperty(t,e.layout[t],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Qa(t.paint)}}getLayoutProperty(e){return e===`visibility`?this.visibility:this._unevaluatedLayout.getValue(e)}setLayoutProperty(e,t,n={}
1){t!=null&&this._validate(Vi,`layers.${this.id}.layout.${e}`,e,t,n)||(e===`visibility`?this.visibility=t:this._unevaluatedLayout.setValue(e,t))}getPaintProperty(e){return te(e,xs)?this._transitionablePaint.getTransition(e.slice(0,-11)):this._transitionablePaint.getValue(e)}setPaintProperty(e,t,n={}){if(t!=null&&this._validate(Bi,`layers.${this.id}.paint.${e}`,e,t,n))return!1;if(te(e,xs))return this._transitionablePaint.setTransition(e.slice(0,-11),t||void 0),!1;{let n=this._transitionablePaint._values[e],r=n.value.isDataDriven(),i=n.value;this._transitionablePaint.setValue(e,t),this._handleSpecialPaintPropertyUpdate(e);let a=this._transitionablePaint._values[e].value,o=a.isDataDriven(),s=te(e,`pattern`)||e===`line-dasharray`;return o||r||s||this._handleOverridablePaintPropertyUpdate(e,i,a)}}_handleSpecialPaintPropertyUpdate(e){}getProgramIds(){return null}getProgramConfiguration(e){return null}_handleOverridablePaintPropertyUpdate(e,t,n){return!1}isHidden(e){return!!(this.minzoom&&e<this.minzoom)||!!(this.maxzoom&&e>=this.maxzoom)||this.visibility===`none`}updateTransitions(e){this._transitioningPaint=this._transitionablePaint.transitioned(e,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(e,t){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(e,void 0,t)),this.paint=this._transitioningPaint.possiblyEvaluate(e,void 0,t)}
1serialize(){let e={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(e.layout=e.layout||{},e.layout.visibility=this.visibility),F(e,((e,t)=>!(e===void 0||t===`layout`&&!Object.keys(e).length||t===`paint`&&!Object.keys(e).length)))}_validate(e,t,n,r,i={}){return(!i||!1!==i.validate)&&Ui(this,e.call(zi,{key:t,layerType:this.type,objectKey:n,value:r,styleSpec:z,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let e in this.paint._values){let t=this.paint.get(e);if(t instanceof Za&&Rr(t.property.specification)&&(t.value.kind===`source`||t.value.kind===`composite`)&&t.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||=(this._featureFilter=di(this.filter),!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}let Cs=ao([{name:`a_pos`,components:2,type:`Int16`}],4),ws=ao([{name:`a_pos_3`,components:3,type:`Int16`},{name:`a_pos_normal_3`,components:3,type:`Int16`}]);class Ts{constructor(e=[]){this.segments=e}prepareSegment(e,t,n,r){let i=this.segments[this.segments.length-1];return e>Ts.MAX_VERTEX_ARRAY_LENGTH&&L(`Max vertices per segment is ${Ts.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${e}`),(!i||i.vertexLength+e>Ts.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==r)&&(i={vertexOffset:t.length,primitiveOffset:n.length,vertexLength:0,primitiveLength:0},r!==void 0&&(i.sortKey=r),this.segments.push(i)),i}get(){return this.segments}destroy(){for(let e of this.segments)for(let t in e.vaos)e.vaos[t].destroy()}static simpleSegment(e,t,n,r){return new Ts([{vertexOffset:e,primitiveOffset:t,vertexLength:n,primitiveLength:r,vaos:{},sortKey:0}])}}Ts.MAX_VERTEX_ARRAY_LENGTH=2**16-1,J(Ts,`SegmentVector`);var Z=8192;class Es{constructor(e,t){e&&(t?this.setSouthWest(e).setNorthEast(t):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 Q?new Q(e.lng,e.lat):Q.convert(e),this}setSouthWest(e){return this._sw=e instanceof Q?new Q(e.lng,e.lat):Q.convert(e),this}extend(e){let t=this._sw,n=this._ne,r,i;if(e instanceof Q)r=e,i=e;else{if(!(e instanceof Es))return Array.isArray(e)?e.length===4||e.every(Array.isArray)?this.extend(Es.convert(e)):this.extend(Q.convert(e)):typeof e==`object`&&e&&e.hasOwnProperty(`lat`)&&e.hasOwnProperty(`lon`)?this.extend(Q.convert(e)):this;if(r=e._sw,i=e._ne,!r||!i)return this}return t||n?(t.lng=Math.min(r.lng,t.lng),t.lat=Math.min(r.lat,t.lat),n.lng=Math.max(i.lng,n.lng),n.lat=Math.max(i.lat,n.lat)):(this._sw=new Q(r.lng,r.lat),this._ne=new Q(i.lng,i.lat)),this}getCenter(){return new 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 Q(this.getWest(),this.getNorth())}getSouthEast(){return new 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){let{lng:t,lat:n}=Q.convert(e),r=this._sw.lng<=t&&t<=this._ne.lng;return this._sw.lng>this._ne.lng&&(r=this._sw.lng>=t&&t>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&r}static convert(e){return!e||e instanceof Es?e:new Es(e)}}let Ds=6371008.8;class Q{constructor(e,t){if(isNaN(e)||isNaN(t))throw Error(`Invalid LngLat object: (${e}, ${t})`);if(this.lng=+e,this.lat=+t,this.lat>90||this.lat<-90)throw Error(`Invalid LngLat latitude value: must be between -90 and 90`)}wrap(){return new Q(T(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(e){let t=Math.PI/180,n=this.lat*t,r=e.lat*t,i=Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos((e.lng-this.lng)*t);return Ds*Math.acos(Math.min(i,1))}toBounds(e=0){let t=360*e/40075017,n=t/Math.cos(Math.PI/180*this.lat);return new Es(new Q(this.lng-n,this.lat-t),new Q(this.lng+n,this.lat+t))}static convert(e){if(e instanceof Q)return e;if(Array.isArray(e)&&(e.length===2||e.length===3))return new Q(Number(e[0]),Number(e[1]));if(!Array.isArray(e)&&typeof e==`object`&&e)return new Q(Number(`lng`in e?e.lng:e.lon),Number(e.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}}let Os=2*Math.PI*Ds;function ks(e){return Os*Math.cos(e*Math.PI/180)}function As(e){return(180+e)/360}function js(e){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function Ms(e,t){return e/ks(t)}function Ns(e){return 360*e-180}function Ps(e){return 360/Math.PI*Math.atan(Math.exp((180-360*e)*Math.PI/180)
1)-90}function Fs(e,t){return e*ks(Ps(t))}let Is=85.051129;function Ls(e){return 1/Math.cos(e*Math.PI/180)}class Rs{constructor(e,t,n=0){this.x=+e,this.y=+t,this.z=+n}static fromLngLat(e,t=0){let n=Q.convert(e);return new Rs(As(n.lng),js(n.lat),Ms(t,n.lat))}toLngLat(){return new Q(Ns(this.x),Ps(this.y))}toAltitude(){return Fs(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Os*Ls(Ps(this.y))}}function zs(e,t,n,r,i,a,o,s,c){let l=(t+r)/2,u=(n+i)/2,d=new p(l,u);s(d),function(e,t,n,r,i,a){let o=n-i,s=r-a;return Math.abs((r-t)*o-(n-e)*s)/Math.hypot(o,s)}(d.x,d.y,a.x,a.y,o.x,o.y)>=c?(zs(e,t,n,l,u,a,d,s,c),zs(e,l,u,r,i,d,o,s,c)):e.push(o)}function Bs(e,t,n){let r=e[0],i=r.x,a=r.y;t(r);let o=[r];for(let s=1;s<e.length;s++){let c=e[s],{x:l,y:u}=c;t(c),zs(o,i,a,l,u,r,c,t,n),i=l,a=u,r=c}return o}function Vs(e,t,n,r){if(r(t,n)){let i=t.add(n)._mult(.5);Vs(e,t,i,r),Vs(e,i,n,r)}else e.push(n)}function Hs(e,t){let n=e[0],r=[n];for(let i=1;i<e.length;i++){let a=e[i];Vs(r,n,a,t),n=a}return r}let Us=2**14-1,Ws=-Us-1;function Gs(e,t){let n=Math.round(e.x*t),r=Math.round(e.y*t);return e.x=C(n,Ws,Us),e.y=C(r,Ws,Us),(n<e.x||n>e.x+1||r<e.y||r>e.y+1)&&L(`Geometry exceeds allowed extent, reduce your vector tile buffer size`),e}function Ks(e,t,n){let r=e.loadGeometry(),i=e.extent,a=Z/i;if(t&&n&&n.projection.isReprojectedInTileSpace){let a=1<<t.z,{scale:o,x:s,y:c,projection:l}=n,u=e=>{let n=Ns((t.x+e.x/i)/a),r=Ps((t.y+e.y/i)/a),u=l.project(n,r);e.x=(u.x*o-s)*i,e.y=(u.y*o-c)*i};for(let t=0;t<r.length;t++)if(e.type!==1)r[t]=Bs(r[t],u,1);else{let e=[];for(let n of r[t])n.x<0||n.x>=i||n.y<0||n.y>=i||(u(n),e.push(n));r[t]=e}}for(let e of r)for(let t of e)Gs(t,a);return r}function qs(e,t){return{type:e.type,id:e.id,properties:e.properties,geometry:t?Ks(e):[]}}function Js(e,t,n,r,i){e.emplaceBack(2*t+(r+1)/2,2*n+(i+1)/2)}function Ys(e,t,n){let r=16384;e.emplaceBack(t.x,t.y,t.z,n[0]*r,n[1]*r,n[2]*r)}class Xs{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((e=>e.id)),this.index=e.index,this.hasPattern=!1,this.projection=e.projection,this.layoutVertexArray=new so,this.indexArray=new wo,this.segments=new Ts,this.programConfigurations=new hs(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter((e=>e.isStateDependent())).map((e=>e.id))}populate(e,t,n,r){let i=this.layers[0],a=[],o=null;i.type===`circle`&&(o=i.layout.get(`circle-sort-key`));for(let{feature:t,id:i,index:s,sourceLayerIndex:c}of e){let e=this.layers[0]._featureFilter.needGeometry,l=qs(t,e);if(!this.layers[0]._featureFilter.filter(new Wa(this.zoom),l,n))continue;let u=o?o.evaluate(l,{},n):void 0,d={id:i,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:e?l.geometry:Ks(t,n,r),patterns:{},sortKey:u};a.push(d)}o&&a.sort(((e,t)=>
1e.sortKey-t.sortKey));let s=null;r.projection.name===`globe`&&(this.globeExtVertexArray=new ho,s=r.projection);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r,c=e[a].feature;this.addFeature(r,i,a,t.availableImages,n,s),t.featureIndex.insert(c,i,a,o,this.index)}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,n,r)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Cs.members),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,ws.members))),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}addFeature(e,t,n,r,i,a){for(let n of t)for(let t of n){let n=t.x,r=t.y;if(n<0||n>=Z||r<0||r>=Z)continue;if(a){let e=a.projectTilePoint(n,r,i),t=a.upVector(i,n,r),o=this.globeExtVertexArray;Ys(o,e,t),Ys(o,e,t),Ys(o,e,t),Ys(o,e,t)}let o=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,e.sortKey),s=o.vertexLength;Js(this.layoutVertexArray,n,r,-1,-1),Js(this.layoutVertexArray,n,r,1,-1),Js(this.layoutVertexArray,n,r,1,1),Js(this.layoutVertexArray,n,r,-1,1),this.indexArray.emplaceBack(s,s+1,s+2),this.indexArray.emplaceBack(s,s+2,s+3),o.vertexLength+=4,o.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{},r,i)}}function Zs(e,t){for(let n=0;n<e.length;n++)if(oc(t,e[n]))return!0;for(let n=0;n<t.length;n++)if(oc(e,t[n]))return!0;return!!tc(e,t)}function Qs(e,t,n){return!!oc(e,t)||!!rc(t,e,n)}function $s(e,t){if(e.length===1)return ac(t,e[0]);for(let n=0;n<t.length;n++){let r=t[n];for(let t=0;t<r.length;t++)if(oc(e,r[t]))return!0}for(let n=0;n<e.length;n++)if(ac(t,e[n]))return!0;for(let n=0;n<t.length;n++)if(tc(e,t[n]))return!0;return!1}function ec(e,t,n){if(e.length>1){if(tc(e,t))return!0;for(let r=0;r<t.length;r++)if(rc(t[r],e,n))return!0}for(let r=0;r<e.length;r++)if(rc(e[r],t,n))return!0;return!1}function tc(e,t){if(e.length===0||t.length===0)return!1;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1];for(let e=0;e<t.length-1;e++)if(nc(r,i,t[e],t[e+1]))return!0}return!1}function nc(e,t,n,r){return re(e,n,r)!==re(t,n,r)&&re(e,t,n)!==re(e,t,r)}function rc(e,t,n){let r=n*n;if(t.length===1)return e.distSqr(t[0])<r;for(let n=1;n<t.length;n++)if(ic(e,t[n-1],t[n])<r)return!0;return!1}function ic(e,t,n){let r=t.distSqr(n);if(r===0)return e.distSqr(t);let i=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/r;return e.distSqr(i<0?t:i>1?n:n.sub(t)._mult(i)._add(t))}function ac(e,t){let n,r,i,a=!1;for(let o=0;o<e.length;o++){n=e[o];for(let e=0,o=n.length-1;e<n.length;o=e++)r=n[e],i=n[o],r.y>t.y!=i.y>t.y&&t.x<(i.x-r.x)*(t.y-r.y)/(i.y-r.y)+r.x&&(a=!a)}return a}function oc(e,t){let n=!1;for(let r=0,i=e.length-1;r<e.length;i=r++){let a=e[r],o=e[i];a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n)}return n}function sc(e,t,n,r,i){for(let a of e)if(t<=a.x&&n<=a.y&&r>=a.x&&i>=a.y)return!0;let a=[new p(t,n),new p(t,i),new p(r,i),new p(r,n)];if(e.length>2){for(let t of a)if(oc(e,t))return!0}for(let t=0;t<e.length-1;t++)if(cc(e[t],e[t+1],a))return!0;return!1}function cc(e,t,n){let r=n[0],i=n[2];if(e.x<r.x&&t.x<r.x||e.x>i.x&&t.x>i.x||e.y<r.y&&t.y<r.y||e.y>i.y&&t.y>i.y)return!1;let a=re(e,t,n[0]);return a!==re(e,t,n[1])||a!==re(e,t,n[2])||a!==re(e,t,n[3])}function lc(e,t,n){let r=t.paint.get(e).value;return r.kind===`constant`?r.value:n.programConfigurations.get(t.id).getMaxValue(e)}function uc(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function dc(e,t,n,r,i){if(!t[0]&&!t[1])return e;let a=p.convert(t)._mult(i);n===`viewport`&&a._rotate(-r);let o=[];for(let t=0;t<e.length;t++)o.push(e[t].sub(a));return o}function fc(e,t,n,r){let i=p.convert(e)._mult(r);return t===`viewport`&&i._rotate(-n),i}J(Xs,`CircleBucket`,{omit:[`layers`]});let pc=new eo({"circle-sort-key":new X(z.layout_circle[`circle-sort-key`])});var mc={paint:new eo({"circle-radius":new X(z.paint_circle[`circle-radius`]),"circle-color":new X(z.paint_circle[`circle-color`]),"circle-blur":new X(z.paint_circle[`circle-blur`]),"circle-opacity":new X(z.paint_circle[`circle-opacity`]),"circle-translate":new Y(z.paint_circle[`circle-translate`]),"circle-translate-anchor":new Y(z.paint_circle[`circle-translate-anchor`]),"circle-pitch-scale":new Y(z.paint_circle[`circle-pitch-scale`]),"circle-pitch-alignment":new Y(z.paint_circle[`circle-pitch-alignment`]),"circle-stroke-width":new X(z.paint_circle[`circle-stroke-width`]),"circle-stroke-color":new X(z.paint_circle[`circle-stroke-color`]),"circle-stroke-opacity":new X(z.paint_circle[`circle-stroke-opacity`])}),layout:pc},hc=1e-6,gc=typeof Float32Array<`u`?Float32Array:Array;function _c(){var e=new gc(9);return gc!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function vc(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=n[0],p=n[1],m=n[2],h=n[3],g=n[4],_=n[5],v=n[6],y=n[7],b=n[8];
vendor: 14,964 bytes, line 1
1return e[0]=f*r+p*o+m*l,e[1]=f*i+p*s+m*u,e[2]=f*a+p*c+m*d,e[3]=h*r+g*o+_*l,e[4]=h*i+g*s+_*u,e[5]=h*a+g*c+_*d,e[6]=v*r+y*o+b*l,e[7]=v*i+y*s+b*u,e[8]=v*a+y*c+b*d,e}function yc(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function bc(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8],d=t[9],f=t[10],p=t[11],m=t[12],h=t[13],g=t[14],_=t[15],v=n*s-r*o,y=n*c-i*o,b=n*l-a*o,x=r*c-i*s,S=r*l-a*s,C=i*l-a*c,w=u*h-d*m,T=u*g-f*m,E=u*_-p*m,D=d*g-f*h,O=d*_-p*h,k=f*_-p*g,A=v*k-y*O+b*D+x*E-S*T+C*w;return A?(e[0]=(s*k-c*O+l*D)*(A=1/A),e[1]=(i*O-r*k-a*D)*A,e[2]=(h*C-g*S+_*x)*A,e[3]=(f*S-d*C-p*x)*A,e[4]=(c*E-o*k-l*T)*A,e[5]=(n*k-i*E+a*T)*A,e[6]=(g*b-m*C-_*y)*A,e[7]=(u*C-f*b+p*y)*A,e[8]=(o*O-s*E+l*w)*A,e[9]=(r*E-n*O-a*w)*A,e[10]=(m*S-h*b+_*v)*A,e[11]=(d*b-u*S-p*v)*A,e[12]=(s*T-o*D-c*w)*A,e[13]=(n*D-r*T+i*w)*A,e[14]=(h*y-m*x-g*v)*A,e[15]=(u*x-d*y+f*v)*A,e):null}function xc(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=t[9],p=t[10],m=t[11],h=t[12],g=t[13],_=t[14],v=t[15],y=n[0],b=n[1],x=n[2],S=n[3];return e[0]=y*r+b*s+x*d+S*h,e[1]=y*i+b*c+x*f+S*g,e[2]=y*a+b*l+x*p+S*_,e[3]=y*o+b*u+x*m+S*v,e[4]=(y=n[4])*r+(b=n[5])*s+(x=n[6])*d+(S=n[7])*h,e[5]=y*i+b*c+x*f+S*g,e[6]=y*a+b*l+x*p+S*_,e[7]=y*o+b*u+x*m+S*v,e[8]=(y=n[8])*r+(b=n[9])*s+(x=n[10])*d+(S=n[11])*h,e[9]=y*i+b*c+x*f+S*g,e[10]=y*a+b*l+x*p+S*_,e[11]=y*o+b*u+x*m+S*v,e[12]=(y=n[12])*r+(b=n[13])*s+(x=n[14])*d+(S=n[15])*h,e[13]=y*i+b*c+x*f+S*g,e[14]=y*a+b*l+x*p+S*_,e[15]=y*o+b*u+x*m+S*v,e}function Sc(e,t,n){var r,i,a,o,s,c,l,u,d,f,p,m,h=n[0],g=n[1],_=n[2];return t===e?(e[12]=t[0]*h+t[4]*g+t[8]*_+t[12],e[13]=t[1]*h+t[5]*g+t[9]*_+t[13],e[14]=t[2]*h+t[6]*g+t[10]*_+t[14],e[15]=t[3]*h+t[7]*g+t[11]*_+t[15]):(i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=t[9],p=t[10],m=t[11],e[0]=r=t[0],e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=c,e[6]=l,e[7]=u,e[8]=d,e[9]=f,e[10]=p,e[11]=m,e[12]=r*h+s*g+d*_+t[12],e[13]=i*h+c*g+f*_+t[13],e[14]=a*h+l*g+p*_+t[14],e[15]=o*h+u*g+m*_+t[15]),e}function Cc(e,t,n){var r=n[0],i=n[1],a=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function wc(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[4],o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*i+l*r,e[5]=o*i+u*r,e[6]=s*i+d*r,e[7]=c*i+f*r,e[8]=l*i-a*r,e[9]=u*i-o*r,e[10]=d*i-s*r,e[11]=f*i-c*r,e}function Tc(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[0],o=t[1],s=t[2],c=t[3],l=t[8],u=t[9],d=t[10],f=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i-l*r,e[1]=o*i-u*r,e[2]=s*i-d*r,e[3]=c*i-f*r,e[8]=a*r+l*i,e[9]=o*r+u*i,e[10]=s*r+d*i,e[11]=c*r+f*i,e}function Ec(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Dc(e,t,n){var r,i,a,o=n[0],s=n[1],c=n[2],l=Math.hypot(o,s,c);return l<hc?null:(o*=l=1/l,s*=l,c*=l,r=Math.sin(t),i=Math.cos(t),e[0]=o*o*(a=1-i)+i,e[1]=s*o*a+c*r,e[2]=c*o*a-s*r,e[3]=0,e[4]=o*s*a-c*r,e[5]=s*s*a+i,e[6]=c*s*a+o*r,e[7]=0,e[8]=o*c*a+s*r,e[9]=s*c*a-o*r,e[10]=c*c*a+i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var Oc=xc;function kc(){var e=new gc(3);return gc!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Ac(e){var t=new gc(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function jc(e){return Math.hypot(e[0],e[1],e[2])}function Mc(e,t,n){var r=new gc(3);return r[0]=e,r[1]=t,r[2]=n,r}function Nc(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function Pc(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Fc(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function Ic(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function Lc(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function Rc(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function zc(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Bc(e,t){var n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function Vc(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Hc(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}function Uc(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[3]*r+n[7]*i+n[11]*a+n[15];return e[0]=(n[0]*r+n[4]*i+n[8]*a+n[12])/(o||=1),e[1]=(n[1]*r+n[5]*i+n[9]*a+n[13])/o,e[2]=(n[2]*r+n[6]*i+n[10]*a+n[14])/o,e}function Wc(e,t,n){var r=n[0],i=n[1],a=n[2],o=t[0],s=t[1],c=t[2],l=i*c-a*s,u=a*o-r*c,d=r*s-i*o,f=i*d-a*u,p=a*l-r*d,m=r*u-i*l,h=2*n[3];return u*=h,d*=h,p*=2,m*=2,e[0]=o+(l*=h)+(f*=2),e[1]=s+u+p,e[2]=c+d+m,e}var Gc,Kc=Pc,qc=Fc,Jc=jc;function Yc(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function Xc(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*n+r*r+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=i*o,e[3]=a*o,e}function Zc(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3];return e[0]=n[0]*r+n[4]*i+n[8]*a+n[12]*o,e[1]=n[1]*r+n[5]*i+n[9]*a+n[13]*o,e[2]=n[2]*r+n[6]*i+n[10]*a+n[14]*o,e[3]=n[3]*r+n[7]*i+n[11]*a+n[15]*o,e}function Qc(){var e=new gc(4);return gc!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function $c(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function el(e,t,n){n*=.5;var r=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(n),c=Math.cos(n);return e[0]=r*c+o*s,e[1]=i*c+a*s,e[2]=a*c-i*s,e[3]=o*c-r*s,e}function tl(e,t,n){n*=.5;var r=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(n),c=Math.cos(n);return e[0]=r*c-a*s,e[1]=i*c+o*s,e[2]=a*c+r*s,e[3]=o*c-i*s,e}kc(),Gc=new gc(4),gc!=Float32Array&&(Gc[0]=0,Gc[1]=0,Gc[2]=0,Gc[3]=0);var nl=Xc;kc(),Mc(1,0,0),Mc(0,1,0),Qc(),Qc(),_c();class rl{constructor(e,t){this.pos=e,this.dir=t}intersectsPlane(e,t,n){let r=Vc(t,this.dir);if(Math.abs(r)<1e-6)return!1;let i=((e[0]-this.pos[0])*t[0]+(e[1]-this.pos[1])*t[1]+(e[2]-this.pos[2])*t[2])/r;return n[0]=this.pos[0]+this.dir[0]*i,n[1]=this.pos[1]+this.dir[1]*i,n[2]=this.pos[2]+this.dir[2]*i,!0}closestPointOnSphere(e,t,n){if(function(e,t){var n=e[0],r=e[1],i=e[2],a=t[0],o=t[1],s=t[2];return Math.abs(n-a)<=hc*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(r-o)<=hc*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=hc*Math.max(1,Math.abs(i),Math.abs(s))}(this.pos,e)||t===0)return n[0]=n[1]=n[2]=0,!1;let[r,i,a]=this.dir,o=this.pos[0]-e[0],s=this.pos[1]-e[1],c=this.pos[2]-e[2],l=r*r+i*i+a*a,u=2*(o*r+s*i+c*a),d=u*u-4*l*(o*o+s*s+c*c-t*t);if(d<0){let e=Math.max(-u/2,0),l=o+r*e,d=s+i*e,f=c+a*e,p=Math.hypot(l,d,f);return n[0]=l*t/p,n[1]=d*t/p,n[2]=f*t/p,!1}{let e=(-u-Math.sqrt(d))/(2*l);if(e<0){let e=Math.hypot(o,s,c);return n[0]=o*t/e,n[1]=s*t/e,n[2]=c*t/e,!1}return n[0]=o+r*e,n[1]=s+i*e,n[2]=c+a*e,!0}}}class il{constructor(e,t,n,r,i){this.TL=e,this.TR=t,this.BR=n,this.BL=r,this.horizon=i}static fromInvProjectionMatrix(e,t,n){let r=[-1,1,1],i=[1,1,1],a=[1,-1,1],o=[-1,-1,1];return new il(Uc(r,r,e),Uc(i,i,e),Uc(a,a,e),Uc(o,o,e),t/n)}}class al{constructor(e,t){this.points=e,this.planes=t}static fromInvProjectionMatrix(e,t,n,r){let i=2**n,a=[[-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((n=>{let a=Zc([],n,e),o=1/a[3]/t*i;return function(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e[3]=t[3]*n[3],e}(a,a,[o,o,r?1/a[3]:o,o])}));return new al(a,[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((e=>{let t=Bc([],Hc([],Kc([],a[e[0]],a[e[1]]),Kc([],a[e[2]],a[e[1]]))),n=-Vc(t,a[e[1]]);return t.concat(n)})))}}class ol{static fromPoints(e){let t=[1/0,1/0,1/0],n=[-1/0,-1/0,-1/0];for(let r of e)Ic(t,t,r),Lc(n,n,r);return new ol(t,n)}static applyTransform(e,t){let n=e.getCorners();for(let e=0;e<n.length;++e)Uc(n[e],n[e],t);return ol.fromPoints(n)}constructor(e,t){this.min=e,this.max=t,this.center=Rc([],Nc([],this.min,this.max),.5)}quadrant(e){let t=[e%2==0,e<2],n=Ac(this.min),r=Ac(this.max);for(let e=0;e<t.length;e++)n[e]=t[e]?this.min[e]:this.center[e],r[e]=t[e]?this.center[e]:this.max[e];return r[2]=this.max[2],new ol(n,r)}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]}distanceZ(e){return Math.max(Math.min(this.max[2],e[2]),this.min[2])-e[2]}getCorners(){let e=this.min,t=this.max;return[[e[0],e[1],e[2]],[t[0],e[1],e[2]],[t[0],t[1],e[2]],[e[0],t[1],e[2]],[e[0],e[1],t[2]],[t[0],e[1],t[2]],[t[0],t[1],t[2]],[e[0],t[1],t[2]]]}intersects(e){let t=this.getCorners(),n=!0;for(let r=0;r<e.planes.length;r++){let i=e.planes[r],a=0;for(let e=0;e<t.length;e++)a+=Vc(i,t[e])+i[3]>=0;if(a===0)return 0;a!==t.length&&(n=!1)}if(n)return 2;for(let t=0;t<3;t++){let n=Number.MAX_VALUE,r=-Number.MAX_VALUE;for(let i=0;i<e.points.length;i++){let a=e.points[i][t]-this.min[t];n=Math.min(n,a),r=Math.max(r,a)}if(r<0||n>this.max[t]-this.min[t])return 0}return 1}}function sl(e,t,n,r,i,a,o,s,c){if(a&&e.queryGeometry.isAboveHorizon)return!1;a&&(c*=e.pixelToTileUnitsFactor);let l=e.tileID.canonical,u=n.projection.upVectorScale(l,n.center.lat,n.worldSize).metersToTile;for(let d of t)for(let t of d){let d=t.add(s),f=i&&n.elevation?n.elevation.exaggeration()*i.getElevationAt(d.x,d.y,!0):0,p=n.projection.projectTilePoint(d.x,d.y,l);if(f>0){let e=n.projection.upVector(l,d.x,d.y);p.x+=e[0]*u*f,p.y+=e[1]*u*f,p.z+=e[2]*u*f}let m=a?d:cl(p.x,p.y,p.z,r),h=a?e.tilespaceRays.map((e=>dl(e,f))):e.queryGeometry.screenGeometry,g=Zc([],[p.x,p.y,p.z,1],r);if(!o&&a?c*=g[3]/n.cameraToCenterDistance:o&&!a&&(c*=n.cameraToCenterDistance/g[3]),a){let e=Ps((t.y/Z+l.y)/(1<<l.z));c/=n.projection.pixelsPerMeter(e,1)/Ms(1,e)}if(Qs(h,m,c))return!0}return!1}function cl(e,t,n,r){let i=Zc([],[e,t,n,1],r);return new p(i[0]/i[3],i[1]/i[3])}let ll=Mc(0,0,0),ul=Mc(0,0,1);function dl(e,t){let n=kc();return ll[2]=t,e.intersectsPlane(ll,ul,n),new p(n[0],n[1])}class fl extends Xs{}function pl(e,{width:t,height:n},r,i){if(i){if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==t*n*r)throw RangeError(`mismatched image size`)}else i=new Uint8Array(t*n*r);return e.width=t,e.height=n,e.data=i,e}function ml(e,t,n){let{width:r,height:i}=t;r===e.width&&i===e.height||(hl(e,t,{x:0,y:0},{x:0,y:0},{width:Math.min(e.width,r),height:Math.min(e.height,i)},n),e.width=r,e.height=i,e.data=t.data)}function hl(e,t,n,r,i,a){if(i.width===0||i.height===0)return t;if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw RangeError(`out of range source coordinates for image copy`);if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw RangeError(`out of range destination coordinates for image copy`);let o=e.data,s=t.data;for(let c=0;c<i.height;c++){let l=((n.y+c)*e.width+n.x)*a,u=((r.y+c)*t.width+r.x)*a;for(let e=0;e<i.width*a;e++)s[u+e]=o[l+e]}return t}J(fl,`HeatmapBucket`,{omit:[`layers`]});class gl{constructor(e,t){pl(this,e,1,t)}resize(e){ml(this,new gl(e),1)}clone(){return new gl({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){hl(e,t,n,r,i,1)}}class _l{constructor(e,t){pl(this,e,4,t)}resize(e){ml(this,new _l(e),4)}replace(e,t){t?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e}clone(){return new _l({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){hl(e,t,n,r,i,4)}}J(gl,`AlphaImage`),J(_l,`RGBAImage`);var vl={paint:new eo({"heatmap-radius":new X(z.paint_heatmap[`heatmap-radius`]),"heatmap-weight":new X(z.paint_heatmap[`heatmap-weight`]),"heatmap-intensity":new Y(z.paint_heatmap[`heatmap-intensity`]),"heatmap-color":new $a(z.paint_heatmap[`heatmap-color`]),"heatmap-opacity":new Y(z.paint_heatmap[`heatmap-opacity`])})};function yl(e){let t={},n=e.resolution||256,r=e.clips?e.clips.length:1,i=e.image||new _l({width:n,height:r}),a=(n,r,a)=>{t[e.evaluationKey]=a;let o=e.expression.evaluate(t);i.data[n+r+0]=Math.floor(255*o.r/o.a),i.data[n+r+1]=Math.floor(255*o.g/o.a),i.data[n+r+2]=Math.floor(255*o.b/o.a),i.data[n+r+3]=Math.floor(255*o.a)};if(e.clips)for(let t=0,i=0;t<r;++t,i+=4*n)for(let r=0,o=0;r<n;r++,o+=4){let s=r/(n-1),{start:c,end:l}=e.clips[t];a(i,o,c*(1-s)+l*s)}else for(let e=0,t=0;e<n;e++,t+=4)a(0,t,e/(n-1));return i}var bl={paint:new eo({"hillshade-illumination-direction":new Y(z.paint_hillshade[`hillshade-illumination-direction`]),"hillshade-illumination-anchor":new Y(z.paint_hillshade[`hillshade-illumination-anchor`]),"hillshade-exaggeration":new Y(z.paint_hillshade[`hillshade-exaggeration`]),"hillshade-shadow-color":new Y(z.paint_hillshade[`hillshade-shadow-color`]),"hillshade-highlight-color":new Y(z.paint_hillshade[`hillshade-highlight-color`]),"hillshade-accent-color":new Y(z.paint_hillshade[`hillshade-accent-color`])})};let{members:xl}=ao([{name:`a_pos`,components:2,type:`Int16`}],4);var Sl={exports:{}};function Cl(e,t,n){n||=2;var r,i,a,o,s,c,l,u=t&&t.length,d=u?t[0]*n:e.length,f=wl(e,0,d,n,!0),p=[];if(!f||f.next===f.prev)return p;if(u&&(f=function(e,t,n,r){var i,a,o,s=[];for(i=0,a=t.length;i<a;i++)(o=wl(e,t[i]*r,i<a-1?t[i+1]*r:e.length,r,!1))===o.next&&(o.steiner=!0),s.push(Fl(o));for(s.sort(jl),i=0;i<s.length;i++)n=Ml(s[i],n);return n}(e,t,f,n)),e.length>80*n){r=a=e[0],i=o=e[1];for(var m=n;m<d;m+=n)(s=e[m])<r&&(r=s),(c=e[m+1])<i&&(i=c),s>a&&(a=s),c>o&&(o=c);l=(l=Math.max(a-r,o-i))===0?0:32767/l}return El(f,p,n,r,i,l,0),p}function wl(e,t,n,r,i){var a,o;if(i===Jl(e,t,n,r)>0)for(a=t;a<n;a+=r)o=Gl(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=Gl(a,e[a],e[a+1],o);return o&&zl(o,o.next)&&(Kl(o),o=o.next),o}function Tl(e,t){if(!e)return e;t||=e;var n,r=e;do if(n=!1,r.steiner||!zl(r,r.next)&&Rl(r.prev,r,r.next)!==0)r=r.next;else{if(Kl(r),(r=t=r.prev)===r.next)break;n=!0}while(n||r!==t);return t}function El(e,t,n,r,i,a,o){if(e){!o&&a&&function(e,t,n,r){var i=e;do i.z===0&&(i.z=Pl(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,n,r,i,a,o,s,c,l=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,s=0,t=0;t<l&&(s++,r=r.nextZ);t++);for(c=l;s>0||c>0&&r;)s!==0&&(c===0||!r||n.z<=r.z)?(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,c--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,l*=2}while(o>1)}(i)}(e,r,i,a);for(var s,c,l=e;e.prev!==e.next;)if(s=e.prev,c=e.next,a?Ol(e,r,i,a):Dl(e))t.push(s.i/n|0),t.push(e.i/n|0),t.push(c.i/n|0),Kl(e),e=c.next,l=c.next;else if((e=c)===l){o?o===1?El(e=kl(Tl(e),t,n),t,n,r,i,a,2):o===2&&Al(e,t,n,r,i,a):El(Tl(e),t,n,r,i,a,1);break}}}function Dl(e){var t=e.prev,n=e,r=e.next;if(Rl(t,n,r)>=0)return!1;for(var i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=i<a?i<o?i:o:a<o?a:o,d=s<c?s<l?s:l:c<l?c:l,f=i>
vendor: 1,554 bytes, line 1
1a?i>o?i:o:a>o?a:o,p=s>c?s>l?s:l:c>l?c:l,m=r.next;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&Il(i,s,a,c,o,l,m.x,m.y)&&Rl(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Ol(e,t,n,r){var i=e.prev,a=e,o=e.next;if(Rl(i,a,o)>=0)return!1;for(var s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=s<c?s<l?s:l:c<l?c:l,m=u<d?u<f?u:f:d<f?d:f,h=s>c?s>l?s:l:c>l?c:l,g=u>d?u>f?u:f:d>f?d:f,_=Pl(p,m,t,n,r),v=Pl(h,g,t,n,r),y=e.prevZ,b=e.nextZ;y&&y.z>=_&&b&&b.z<=v;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==i&&y!==o&&Il(s,u,c,d,l,f,y.x,y.y)&&Rl(y.prev,y,y.next)>=0||(y=y.prevZ,b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==i&&b!==o&&Il(s,u,c,d,l,f,b.x,b.y)&&Rl(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==i&&y!==o&&Il(s,u,c,d,l,f,y.x,y.y)&&Rl(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==i&&b!==o&&Il(s,u,c,d,l,f,b.x,b.y)&&Rl(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function kl(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!zl(i,a)&&Bl(i,r,r.next,a)&&Ul(i,a)&&Ul(a,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(a.i/n|0),Kl(r),Kl(r.next),r=e=a),r=r.next}while(r!==e);return Tl(r)}function Al(e,t,n,r,i,a){var o=e;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Ll(o,s)){var c=Wl(o,s);o=Tl(o,o.next),c=Tl(c,c.next),El(o,t,n,r,i,a,0),El(c,t,n,r,i,a,0);return}s=s.next}o=o.next}while(o!==e)}function jl(e,t){return e.x-t.x}function Ml(e,t){var n=function(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y&&r.next.y!==r.y){var s=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y
vendor: 5,555 bytes, line 1
1);if(s<=i&&s>o&&(o=s,n=r.x<r.next.x?r:r.next,s===i))return n}r=r.next}while(r!==t);if(!n)return null;var c,l=n,u=n.x,d=n.y,f=1/0;r=n;do i>=r.x&&r.x>=u&&i!==r.x&&Il(a<d?i:o,a,u,d,a<d?o:i,a,r.x,r.y)&&(c=Math.abs(a-r.y)/(i-r.x),Ul(r,e)&&(c<f||c===f&&(r.x>n.x||r.x===n.x&&Nl(n,r)))&&(n=r,f=c)),r=r.next;while(r!==l);return n}(e,t);if(!n)return t;var r=Wl(n,e);return Tl(r,r.next),Tl(n,n.next)}function Nl(e,t){return Rl(e.prev,e,t.prev)<0&&Rl(t.next,e,e.next)<0}function Pl(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Fl(e){var t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function Il(e,t,n,r,i,a,o,s){return(i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function Ll(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Bl(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(Ul(e,t)&&Ul(t,e)&&function(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==e);return r}(e,t)&&(Rl(e.prev,e,t.prev)||Rl(e,t.prev,t))||zl(e,t)&&Rl(e.prev,e,e.next)>0&&Rl(t.prev,t,t.next)>0)}function Rl(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function zl(e,t){return e.x===t.x&&e.y===t.y}function Bl(e,t,n,r){var i=Hl(Rl(e,t,n)),a=Hl(Rl(e,t,r)),o=Hl(Rl(n,r,e)),s=Hl(Rl(n,r,t));return i!==a&&o!==s||!(i!==0||!Vl(e,n,t))||!(a!==0||!Vl(e,r,t))||!(o!==0||!Vl(n,e,r))||!(s!==0||!Vl(n,t,r))}function Vl(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Hl(e){return e>0?1:e<0?-1:0}function Ul(e,t){return Rl(e.prev,e,e.next)<0?Rl(e,t,e.next)>=0&&Rl(e,e.prev,t)>=0:Rl(e,t,e.prev)<0||Rl(e,e.next,t)<0}function Wl(e,t){var n=new ql(e.i,e.x,e.y),r=new ql(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function Gl(e,t,n,r){var i=new ql(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Kl(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function ql(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Jl(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}function Yl(e,t,n,r,i){Xl(e,t,n||0,r||e.length-1,i||Ql)}function Xl(e,t,n,r,i){for(;r>n;){if(r-n>600){var a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);Xl(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i)}var u=e[t],d=n,f=r;for(Zl(e,n,t),i(e[r],u)>0&&Zl(e,n,r);d<f;){for(Zl(e,d,f),d++,f--;i(e[d],u)<0;)d++;for(;i(e[f],u)>0;)f--}i(e[n],u)===0?Zl(e,n,f):Zl(e,++f,r),f<=t&&(n=f+1),t<=f&&(r=f-1)}}function Zl(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function Ql(e,t){return e<t?-1:+(e>t)}function $l(e,t){let n=e.length;if(n<=1)return[e];let r=[],i,a;for(let t=0;t<n;t++){let n=ie(e[t]);n!==0&&(e[t].area=Math.abs(n),a===void 0&&(a=n<0),a===n<0?(i&&r.push(i),i=[e[t]]):i.push(e[t]))}if(i&&r.push(i),t>1)for(let e=0;e<r.length;e++)r[e].length<=t||(Yl(r[e],t,1,r[e].length-1,eu),r[e]=r[e].slice(0,t));return r}function eu(e,t){return t.area-e.area}function tu(e,t,n){let r=n.patternDependencies,i=!1;for(let n of t){let t=n.paint.get(`${e}-pattern`);t.isConstant()||(i=!0);let a=t.constantOr(null);a&&(i=!0,r[a]=!0)}return i}function nu(e,t,n,r,i){let a=i.patternDependencies;for(let o of t){let t=o.paint.get(`${e}-pattern`).value;if(t.kind!==`constant`){let e=t.evaluate({zoom:r},n,{},i.availableImages);e=e&&e.name?e.name:e,a[e]=!0,n.patterns[o.id]=e}}return n}Sl.exports=Cl,Sl.exports.default=Cl,Cl.deviation=function(e,t,n,r){var i=t&&t.length,a=Math.abs(Jl(e,0,i?t[0]*n:e.length,n));if(i)for(var o=0,s=t.length;o<s;o++)a-=Math.abs(Jl(e,t[o]*n,o<s-1?t[o+1]*n:e.length,n));var c=0;for(o=0;o<r.length;o+=3){var l=r[o]*n,u=r[o+1]*n,d=r[o+2]*n;c+=Math.abs((e[l]-e[d])*(e[u+1]-e[l+1])-(e[l]-e[u])*(e[d+1]-e[l+1]))}return a===0&&c===0?0:Math.abs((c-a)/a)},Cl.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&n.holes.push(r+=e[i-1].length)}return n};class ru{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((e=>e.id)),this.index=e.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new so,this.indexArray=new wo,this.indexArray2=new Ao,this.programConfigurations=new hs(e.layers,e.zoom),this.segments=new Ts,this.segments2=new Ts,this.stateDependentLayerIds=this.layers.filter((e=>e.isStateDependent())).map((e=>e.id)),this.projection=e.projection}populate(e,t,n,r){this.hasPattern=tu(`fill`,this.layers,t);let i=this.layers[0].layout.get(`fill-sort-key`),a=[];for(let{feature:o,id:s,index:c,sourceLayerIndex:l}of e){let e=this.layers[0]._featureFilter.needGeometry,u=qs(o,e);if(!this.layers[0]._featureFilter.filter(new Wa(this.zoom),u,n))continue;let d=i?i.evaluate(u,{},n,t.availableImages):void 0,f={id:s,properties:o.properties,type:o.type,sourceLayerIndex:l,index:c,geometry:e?u.geometry:Ks(o,n,r),patterns:{},sortKey:d};a.push(f)}i&&a.sort(((e,t)=>
1e.sortKey-t.sortKey));for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;if(this.hasPattern){let e=nu(`fill`,this.layers,r,this.zoom,t);this.patternFeatures.push(e)}else this.addFeature(r,i,a,n,{},t.availableImages);t.featureIndex.insert(e[a].feature,i,a,o,this.index)}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,n,r)}addFeatures(e,t,n,r,i){for(let e of this.patternFeatures)this.addFeature(e,e.geometry,e.index,t,n,r)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,xl),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(e,t,n,r,i,a=[]){for(let e of $l(t,500)){let t=0;for(let n of e)t+=n.length;let n=this.segments.prepareSegment(t,this.layoutVertexArray,this.indexArray),r=n.vertexLength,i=[],a=[];for(let t of e){if(t.length===0)continue;t!==e[0]&&a.push(i.length/2);let n=this.segments2.prepareSegment(t.length,this.layoutVertexArray,this.indexArray2),r=n.vertexLength;this.layoutVertexArray.emplaceBack(t[0].x,t[0].y),this.indexArray2.emplaceBack(r+t.length-1,r),i.push(t[0].x),i.push(t[0].y);for(let e=1;e<t.length;e++)this.layoutVertexArray.emplaceBack(t[e].x,t[e].y),this.indexArray2.emplaceBack(r+e-1,r+e),i.push(t[e].x),i.push(t[e].y);n.vertexLength+=t.length,n.primitiveLength+=t.length}let o=Sl.exports(i,a);for(let e=0;e<o.length;
1e+=3)this.indexArray.emplaceBack(r+o[e],r+o[e+1],r+o[e+2]);n.vertexLength+=t,n.primitiveLength+=o.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,i,a,r)}}J(ru,`FillBucket`,{omit:[`layers`,`patternFeatures`]});let iu=new eo({"fill-sort-key":new X(z.layout_fill[`fill-sort-key`])});var au={paint:new eo({"fill-antialias":new Y(z.paint_fill[`fill-antialias`]),"fill-opacity":new X(z.paint_fill[`fill-opacity`]),"fill-color":new X(z.paint_fill[`fill-color`]),"fill-outline-color":new X(z.paint_fill[`fill-outline-color`]),"fill-translate":new Y(z.paint_fill[`fill-translate`]),"fill-translate-anchor":new Y(z.paint_fill[`fill-translate-anchor`]),"fill-pattern":new X(z.paint_fill[`fill-pattern`])}),layout:iu};let ou=ao([{name:`a_pos_normal_ed`,components:4,type:`Int16`}]),su=ao([{name:`a_centroid_pos`,components:2,type:`Uint16`}]),cu=ao([{name:`a_pos_3`,components:3,type:`Int16`},{name:`a_pos_normal_3`,components:3,type:`Int16`}]),{members:lu}=ou;var uu={},du=p,fu=pu;function pu(e,t,n,r,i){this.properties={},this.extent=n,this.type=0,this._pbf=e,this._geometry=-1,this._keys=r,this._values=i,e.readFields(mu,this,t)}function mu(e,t,n){e==1?t.id=n.readVarint():e==2?function(e,t){for(var n=e.readVarint()+e.pos;e.pos<n;){var r=t._keys[e.readVarint()],i=t._values[e.readVarint()];t.properties[r]=i}}(n,t):e==3?t.type=n.readVarint():e==4&&(t._geometry=n.pos)}function hu(e){for(var t,n,r=0,i=0,a=e.length,o=a-1;i<a;o=i++)r+=((n=e[o]).x-(t=e[i]).x)*(t.y+n.y);return r}pu.types=[`Unknown`,`Point`,`LineString`,`Polygon`],pu.prototype.loadGeometry=function(){var e=this._pbf;e.pos=this._geometry;for(var t,n=e.readVarint()+e.pos,r=1,i=0,a=0,o=0,s=[];e.pos<n;){if(i<=0){var c=e.readVarint();r=7&c,i=c>>3}if(i--,r===1||r===2)a+=e.readSVarint(),o+=e.readSVarint(),r===1&&(t&&s.push(t),t=[]),t.push(new du(a,o));else{if(r!==7)throw Error(`unknown command `+r);t&&t.push(t[0].clone())}}return t&&s.push(t),s},pu.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,n=1,r=0,i=0,a=0,o=1/0,s=-1/0,c=1/0,l=-1/0;e.pos<t;){if(r<=0){var u=e.readVarint();n=7&u,r=u>>3}if(r--,n===1||n===2)(i+=e.readSVarint())<o&&(o=i),i>s&&(s=i),(a+=e.readSVarint())<c&&(c=a),a>l&&(l=a);else if(n!==7)throw Error(`unknown command `+n)}return[o,c,s,l]},pu.prototype.toGeoJSON=function(e,t,n){var r,i,a=this.extent*2**n,o=this.extent*e,s=this.extent*t,c=this.loadGeometry(),l=pu.types[this.type];function u(e){for(var t=0;t<e.length;t++){var n=e[t];e[t]=[360*(n.x+o)/a-180,360/Math.PI*Math.atan(Math.exp((180-360*(n.y+s)/a)*Math.PI/180))-90]}}switch(this.type){case 1:var d=[];for(r=0;r<c.length;r++)d[r]=c[r][0];u(c=d);break;case 2:for(r=0;r<c.length;r++)u(c[r]);break;case 3:for(c=function(e){var t=e.length;if(t<=1)return[e];for(var n,r,i=[],a=0;a<t;a++){var o=hu(e[a]);o!==0&&(r===void 0&&(r=o<0),r===o<0?(n&&i.push(n),n=[e[a]]):n.push(e[a]))}return n&&i.push(n),i}(c),r=0;r<c.length;r++)for(i=0;i<c[r].length;i++)u(c[r][i])}c.length===1?c=c[0]:l=`Multi`+l;var f={type:`Feature`,geometry:{type:l,coordinates:c},properties:this.properties};return`id`in this&&(f.id=this.id),f};var gu=fu,_u=vu;function vu(e,t){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(yu,this,t),this.length=this._features.length}function yu(e,t,n){e===15?t.version=n.readVarint():e===1?t.name=n.readString():e===5?t.extent=n.readVarint():e===2?t._features.push(n.pos):e===3?t._keys.push(n.readString()):e===4&&t._values.push(function(e){for(var t=null,n=e.readVarint()+e.pos;e.pos<n;){var r=e.readVarint()>>3;t=r===1?e.readString():r===2?e.readFloat():r===3?e.readDouble():r===4?e.readVarint64():r===5?e.readVarint():r===6?e.readSVarint():r===7?e.readBoolean():null}return t}(n))}vu.prototype.feature=function(e){if(e<0||e>=this._features.length)throw Error(`feature index out of bounds`);this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new gu(this._pbf,t,this.extent,this._keys,this._values)};var bu=_u;function xu(e,t,n){if(e===3){var r=new bu(n,n.readVarint()+n.pos);r.length&&(t[r.name]=r)}}var Su=uu.VectorTile=function(e,t){this.layers=e.readFields(xu,{},t)},Cu=uu.VectorTileFeature=fu;function wu(e,t,n,r){let i=[],a=r===0?(e,t,n,r,i,a)=>{e.push(new p(a,n+(a-t)/(r-t)*(i-n)))}:(e,t,n,r,i,a)=>{e.push(new p(t+(a-n)/(i-n)*(r-t),a))};for(let o of e){let e=[];for(let i of o){if(i.length<=2)continue;let o=[];for(let e=0;e<i.length-1;e++){let s=i[e].x,c=i[e].y,l=i[e+1].x,u=i[e+1].y,d=r===0?s:c,f=r===0?l:u;d<t?f>t&&a(o,s,c,l,u,t):d>n?f<n&&a(o,s,c,l,u,n):o.push(i[e]),f<t&&d>=t&&a(o,s,c,l,u,t),f>n&&d<=n&&a(o,s,c,l,u,n)}let s=i[i.length-1],c=r===0?s.x:s.y;c>=t&&c<=n&&o.push(s),o.length&&(s=o[o.length-1],o[0].x===s.x&&o[0].y===s.y||o.push(o[0]),e.push(o))}e.length&&i.push(e)}return i}uu.VectorTileLayer=_u;let Tu=Cu.types;function Eu(e,t,n,r,i,a,o,s){e.emplaceBack((t<<1)+o,(n<<1)+a,(Math.floor(r*8192)<<1)+i,Math.round(s))}function Du(e,t,n){let r=16384;e.emplaceBack(t.x,t.y,t.z,n[0]*r,n[1]*r,n[2]*r)}class Ou{constructor(){this.acc=new p(0,0),this.polyCount=[]}startRing(e){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new p(e.x,e.y),this.max=new p(e.x,e.y))}append(e,t){this.currentPolyCount.edges++,this.acc._add(e);let n=this.min,r=this.max;e.x<n.x?n.x=e.x:e.x>r.x&&(r.x=e.x),e.y<n.y?n.y=e.y:e.y>r.y&&(r.y=e.y),((e.x===0||e.x===Z)&&e.x===t.x)!=((e.y===0||e.y===Z)&&e.y===t.y)&&this.processBorderOverlap(e,t),t.x<0!=e.x<0&&this.addBorderIntersection(0,G(t.y,e.y,(0-t.x)/(e.x-t.x))),t.x>Z!=e.x>Z&&this.addBorderIntersection(1,G(t.y,e.y,(Z-t.x)/(e.x-t.x))),t.y<0!=e.y<0&&this.addBorderIntersection(2,G(t.x,e.x,(0-t.y)/(e.y-t.y))),t.y>Z!=e.y>Z&&this.addBorderIntersection(3,G(t.x,e.x,(Z-t.y)/(e.y-t.y)))}addBorderIntersection(e,t){this.borders||=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]];let n=this.borders[e];t<n[0]&&(n[0]=t),t>n[1]&&(n[1]=t)}processBorderOverlap(e,t){if(e.x===t.x){if(e.y===t.y)return;let n=e.x===0?0:1;this.addBorderIntersection(n,t.y),this.addBorderIntersection(n,e.y)}else{let n=e.y===0?2:3;this.addBorderIntersection(n,t.x),this.addBorderIntersection(n,e.x)}}centroid(){let e=this.polyCount.reduce(((e,t)=>e+t.edges),0);return e===0?new p(0,0):this.acc.div(e)._round()}span(){return new p(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce(((e,t)=>e+ +(t[0]!==Number.MAX_VALUE)),0)}}
1class ku{constructor(e){this.zoom=e.zoom,this.canonical=e.canonical,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((e=>e.id)),this.index=e.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=e.projection,this.layoutVertexArray=new lo,this.centroidVertexArray=new Uo,this.indexArray=new wo,this.programConfigurations=new hs(e.layers,e.zoom),this.segments=new Ts,this.stateDependentLayerIds=this.layers.filter((e=>e.isStateDependent())).map((e=>e.id)),this.enableTerrain=e.enableTerrain}populate(e,t,n,r){this.features=[],this.hasPattern=tu(`fill-extrusion`,this.layers,t),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.tileToMeter=function(e){let t=Math.exp(Math.PI*(1-e.y/(1<<e.z)*2));return 80150034*t/(t*t+1)/Z/(1<<e.z)}(n),this.edgeRadius=this.layers[0].layout.get(`fill-extrusion-edge-radius`)/this.tileToMeter;for(let{feature:i,id:a,index:o,sourceLayerIndex:s}of e){let e=this.layers[0]._featureFilter.needGeometry,c=qs(i,e);if(!this.layers[0]._featureFilter.filter(new Wa(this.zoom),c,n))continue;let l={id:a,sourceLayerIndex:s,index:o,geometry:e?c.geometry:Ks(i,n,r),properties:i.properties,type:i.type,patterns:{}},u=this.layoutVertexArray.length;this.hasPattern?this.features.push(nu(`fill-extrusion`,this.layers,l,this.zoom,t)):this.addFeature(l,l.geometry,o,n,{},t.availableImages,r),t.featureIndex.insert(i,l.geometry,o,s,this.index,u)}this.sortBorders()}addFeatures(e,t,n,r,i){for(let e of this.features){let{geometry:a}=e;this.addFeature(e,a,e.index,t,n,r,i)}this.sortBorders()}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,n,r)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,lu),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.layoutVertexExtArray&&(this.layoutVertexExtBuffer=e.createVertexBuffer(this.layoutVertexExtArray,cu.members,!0))),this.programConfigurations.upload(e),this.uploaded=!0}uploadCentroid(e){this.centroidVertexArray.length!==0&&(this.centroidVertexBuffer?this.needsCentroidUpdate&&this.centroidVertexBuffer.updateData(this.centroidVertexArray):this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,su.members,!0),this.needsCentroidUpdate=!1)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.centroidVertexBuffer&&this.centroidVertexBuffer.destroy(),this.layoutVertexExtBuffer&&this.layoutVertexExtBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(e,t,n,r,i,a,o){let s=[new p(0,0),new p(Z,Z)],c=o.projection,l=c.name===`globe`,u=this.enableTerrain&&!l?new Ou:null,d=Tu[e.type]===`Polygon`;l&&!this.layoutVertexExtArray&&(this.layoutVertexExtArray=new ho);let f=$l(t,500);for(let e=f.length-1;e>=0;e--){let t=f[e];(t.length===0||(m=t[0]).every((e=>e.x<=0))||m.every((e=>e.x>=Z))||m.every((e=>e.y<=0))||m.every((e=>e.y>=Z)))&&f.splice(e,1)}var m;let h;if(l)h=Lu(f,s,r);else{h=[];for(let e of f)h.push({polygon:e,bounds:s})}let g=d?this.edgeRadius:0;for(let{polygon:e,bounds:t}of h){let n=0,i=0;for(let t of e)d&&!t[0].equals(t[t.length-1])&&t.push(t[0]),i+=d?t.length-1:t.length;let a=this.segments.prepareSegment((d?5:4)*i,this.layoutVertexArray,this.indexArray);if(d){let t=[],i=[];n=a.vertexLength;for(let n of e){let o,s;n.length&&n!==e[0]&&i.push(t.length/2),o=n[1].sub(n[0])._perp()._unit();for(let e=1;e<n.length;e++){let i=n[e],u=n[e===n.length-1?1:e+1],{x:d,y:f}=i;if(g){s=u.sub(i)._perp()._unit();let e=o.add(s)._unit(),t=g*Math.min(4,1/(o.x*e.x+o.y*e.y));d+=t*e.x,f+=t*e.y,o=s}Eu(this.layoutVertexArray,d,f,0,0,1,1,0),a.vertexLength++,t.push(i.x,i.y),l&&Du(this.layoutVertexExtArray,c.projectTilePoint(d,f,r),c.upVector(r,d,f))}}let o=Sl.exports(t,i);for(let e=0;e<o.length;e+=3)this.indexArray.emplaceBack(n+o[e],n+o[e+2],n+o[e+1]),a.primitiveLength++}for(let i of e){u&&i.length&&u.startRing(i[0]);let e,o,s,f=i.length>4&&Pu(i[i.length-2],i[0],i[1]),p=g?ju(i[i.length-2],i[0],i[1],g):0;o=i[1].sub(i[0])._perp()._unit();let m=!0;for(let h=1,_=0;h<i.length;h++){let v=i[h-1],y=i[h],b=i[h===i.length-1?1:h+1];if(u&&d&&u.currentPolyCount.top++,Nu(y,v,t)){g&&(o=b.sub(y)._perp()._unit(),m=!m);continue}u&&u.append(y,v);let x=y.sub(v)._perp(),S=x.x/(Math.abs(x.x)+Math.abs(x.y)),C=+(x.y>0),w=v.dist(y);if(_+w>32768&&(_=0),g){s=b.sub(y)._perp()._unit();let e=Mu(v,y,b,Au(o,s),g);isNaN(e)&&(e=0);let t=y.sub(v)._unit();v=v.add(t.mult(p))._round(),y=y.add(t.mult(-e))._round(),p=e,o=s}let T=a.vertexLength,E=i.length>4&&Pu(v,y,b),D=Fu(_,f,m);if(Eu(this.layoutVertexArray,v.x,v.y,S,C,0,0,D),Eu(this.layoutVertexArray,v.x,v.y,S,C,0,1,D),_+=w,D=Fu(_,E,!m),f=E,Eu(this.layoutVertexArray,y.x,y.y,S,C,0,0,D),Eu(this.layoutVertexArray,y.x,y.y,S,C,0,1,D),a.vertexLength+=4,this.indexArray.emplaceBack(T+0,T+1,T+2),this.indexArray.emplaceBack(T+1,T+3,T+2),a.primitiveLength+=2,g){let r=n+(h===1?i.length-2:h-2),o=h===1?n:r+1;if(this.indexArray.emplaceBack(T+1,r,T+3),this.indexArray.emplaceBack(r,o,T+3),a.primitiveLength+=2,e===void 0&&(e=T),!Nu(b,i[h],t)){let t=h===i.length-1?e:a.vertexLength;this.indexArray.emplaceBack(T+2,T+3,t),this.indexArray.emplaceBack(T+3,t+1,t),this.indexArray.emplaceBack(T+3,o,t+1),a.primitiveLength+=3}m=!m}if(l){let e=this.layoutVertexExtArray,t=c.projectTilePoint(v.x,v.y,r),n=c.projectTilePoint(y.x,y.y,r),i=c.upVector(r,v.x,v.y),a=c.upVector(r,y.x,y.y);Du(e,t,i),Du(e,t,i),Du(e,n,a),Du(e,n,a)}}d&&(n+=i.length-1)}}if(u&&u.polyCount.length>0){if(u.borders){u.vertexArrayOffset=this.centroidVertexArray.length;let e=u.borders,t=this.featuresOnBorder.push(u)-1;for(let n=0;n<4;n++)e[n][0]!==Number.MAX_VALUE&&this.borders[n].push(t)}this.encodeCentroid(u.borders?void 0:u.centroid(),u)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,i,a,r)}sortBorders(){for(let e=0;e<4;e++)this.borders[e].sort(((t,n)=>this.featuresOnBorder[t].borders[e][0]-this.featuresOnBorder[n].borders[e][0]))}encodeCentroid(e,t,n=!0){let r,i;if(e)if(e.y!==0){let n=t.span()._mult(this.tileToMeter);r=(Math.max(e.x,1)<<3)+Math.min(7,Math.round(n.x/10)),i=(Math.max(e.y,1)<<3)+Math.min(7,Math.round(n.y/10))}else r=Math.ceil(7*(e.x+450)),i=0;else r=0,i=+n;let a=n?this.centroidVertexArray.length:t.vertexArrayOffset;for(let e of t.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*e.edges+e.top);for(let t=0;t<e.top;t++)this.centroidVertexArray.emplace(a++,r,i);for(let t=0;t<2*e.edges;t++)this.centroidVertexArray.emplace(a++,0,i),this.centroidVertexArray.emplace(a++,r,i)}}}function Au(e,t){let n=e.add(t)._unit();return e.x*n.x+e.y*n.y}function ju(e,t,n,r){return Mu(e,t,n,Au(t.sub(e)._perp()._unit(),n.sub(t)._perp()._unit()),r)}function Mu(e,t,n,r,i){let a=Math.sqrt(1-r*r);return Math.min(e.dist(t)/3,t.dist(n)/3,i*a/r)}function Nu(e,t,n){return e.x<n[0].x&&t.x<n[0].x||e.x>n[1].x&&t.x>n[1].x||e.y<n[0].y&&t.y<n[0].y||e.y>n[1].y&&t.y>n[1].y}function Pu(e,t,n){if(e.x<0||e.x>=Z||t.x<0||t.x>=Z||n.x<0||n.x>=Z)return!1;let r=n.sub(t),i=r.perp(),a=e.sub(t);return(r.x*a.x+r.y*a.y)/Math.sqrt((r.x*r.x+r.y*r.y)*(a.x*a.x+a.y*a.y))>-.866&&i.x*a.x+i.y*a.y<0}function Fu(e,t,n){let r=t?2|e:-3&e;return n?1|r:-2&r}
1function Iu(){let e=Math.PI/32,t=Math.tan(e),n=Ds;return n*Math.sqrt(1+2*t*t)-n}function Lu(e,t,n){let r=1<<n.z,i=Ns(n.x/r),a=Ns((n.x+1)/r),o=Ps(n.y/r),s=Ps((n.y+1)/r);return function(e,t,n,r,i=0,a){let o=[];if(!e.length||!n||!r)return o;let s=(e,t)=>{for(let n of e)o.push({polygon:n,bounds:t})},c=Math.ceil(Math.log2(n)),l=Math.ceil(Math.log2(r)),u=c-l,d=[];for(let e=0;e<Math.abs(u);e++)d.push(u>0?0:1);for(let e=0;e<Math.min(c,l);e++)d.push(0),d.push(1);let f=e;if(f=wu(f,t[0].y-i,t[1].y+i,1),f=wu(f,t[0].x-i,t[1].x+i,0),!f.length)return o;let m=[];for(d.length?m.push({polygons:f,bounds:t,depth:0}):s(f,t);m.length;){let e=m.pop(),t=e.depth,n=d[t],r=e.bounds[0],o=e.bounds[1],c=n===0?r.x:r.y,l=n===0?o.x:o.y,u=a?a(n,c,l):.5*(c+l),f=wu(e.polygons,c-i,u+i,n),h=wu(e.polygons,u-i,l+i,n);if(f.length){let e=[r,new p(n===0?u:o.x,n===1?u:o.y)];d.length>t+1?m.push({polygons:f,bounds:e,depth:t+1}):s(f,e)}if(h.length){let e=[new p(n===0?u:r.x,n===1?u:r.y),o];d.length>t+1?m.push({polygons:h,bounds:e,depth:t+1}):s(h,e)}}return o}(e,t,Math.ceil((a-i)/11.25),Math.ceil((o-s)/11.25),1,((e,t,i)=>{if(e===0)return .5*(t+i);{let e=Ps((n.y+t/Z)/r);return(js(.5*(Ps((n.y+i/Z)/r)+e))*r-n.y)*Z}}))}J(ku,`FillExtrusionBucket`,{omit:[`layers`,`features`]}),J(Ou,`PartMetadata`);let Ru=new eo({"fill-extrusion-edge-radius":new Y(z[`layout_fill-extrusion`][`fill-extrusion-edge-radius`])});var zu={paint:new eo({"fill-extrusion-opacity":new Y(z[`paint_fill-extrusion`][`fill-extrusion-opacity`]),"fill-extrusion-color":new X(z[`paint_fill-extrusion`][`fill-extrusion-color`]),"fill-extrusion-translate":new Y(z[`paint_fill-extrusion`][`fill-extrusion-translate`]),"fill-extrusion-translate-anchor":new Y(z[`paint_fill-extrusion`][`fill-extrusion-translate-anchor`]),"fill-extrusion-pattern":new X(z[`paint_fill-extrusion`][`fill-extrusion-pattern`]),"fill-extrusion-height":new X(z[`paint_fill-extrusion`][`fill-extrusion-height`]),"fill-extrusion-base":new X(z[`paint_fill-extrusion`][`fill-extrusion-base`]),"fill-extrusion-vertical-gradient":new Y(z[`paint_fill-extrusion`][`fill-extrusion-vertical-gradient`]),"fill-extrusion-ambient-occlusion-intensity":new Y(z[`paint_fill-extrusion`][`fill-extrusion-ambient-occlusion-intensity`]),"fill-extrusion-ambient-occlusion-radius":new Y(z[`paint_fill-extrusion`][`fill-extrusion-ambient-occlusion-radius`])}),layout:Ru};function Bu(e,t,n){var r=2*Math.PI*6378137/256/2**n;return[e*r-2*Math.PI*6378137/2,t*r-2*Math.PI*6378137/2]}class Vu{constructor(e,t,n){this.z=e,this.x=t,this.y=n,this.key=Wu(0,e,e,t,n)}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,t){let n=function(e,t,n){var r=Bu(256*e,256*(t=2**n-t-1),n),i=Bu(256*(e+1),256*(t+1),n);return r[0]+`,`+r[1]+`,`+i[0]+`,`+i[1]}(this.x,this.y,this.z),r=function(e,t,n){let r,i=``;for(let a=e;a>0;a--)r=1<<a-1,i+=(t&r?1:0)+(n&r?2:0);return i}(this.z,this.x,this.y);return e[(this.x+this.y)%e.length].replace(`{prefix}`,(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(t===`tms`?2**this.z-this.y-1:this.y)).replace(`{quadkey}`,r).replace(`{bbox-epsg-3857}`,n)}toString(){return`${this.z}/${this.x}/${this.y}`}}class Hu{constructor(e,t){this.wrap=e,this.canonical=t,this.key=Wu(e,t.z,t.z,t.x,t.y)}}class Uu{constructor(e,t,n,r,i){this.overscaledZ=e,this.wrap=t,this.canonical=new Vu(n,+r,+i),this.key=t===0&&e===n?this.canonical.key:Wu(t,e,n,r,i)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(e){let t=this.canonical.z-e;return e>this.canonical.z?new Uu(e,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Uu(e,this.wrap,e,this.canonical.x>>t,this.canonical.y>>t)}calculateScaledKey(e,t=!0){if(this.overscaledZ===e&&t)return this.key;if(e>this.canonical.z)return Wu(this.wrap*+t,e,this.canonical.z,this.canonical.x,this.canonical.y);{let n=this.canonical.z-e;return Wu(this.wrap*+t,e,e,this.canonical.x>>n,this.canonical.y>>n)}}isChildOf(e){if(e.wrap!==this.wrap)return!1;let t=this.canonical.z-e.canonical.z;return e.overscaledZ===0||e.overscaledZ<this.overscaledZ&&e.canonical.x===this.canonical.x>>t&&e.canonical.y===this.canonical.y>>t}children(e){if(this.overscaledZ>=e)return[new Uu(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let t=this.canonical.z+1,n=2*this.canonical.x,r=2*this.canonical.y;return[new Uu(t,this.wrap,t,n,r),new Uu(t,this.wrap,t,n+1,r),new Uu(t,this.wrap,t,n,r+1),new Uu(t,this.wrap,t,n+1,r+1)]}isLessThan(e){return this.wrap<e.wrap||!(this.wrap>e.wrap)&&(this.overscaledZ<e.overscaledZ||!(this.overscaledZ>
1e.overscaledZ)&&(this.canonical.x<e.canonical.x||!(this.canonical.x>e.canonical.x)&&this.canonical.y<e.canonical.y))}wrapped(){return new Uu(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(e){return new Uu(this.overscaledZ,e,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return 2**(this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Hu(this.wrap,this.canonical)}toString(){return`${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}}function Wu(e,t,n,r,i){let a=1<<Math.min(n,22),o=i%a*a+r%a;return e&&n<22&&(o+=a*a*((e<0?-2*e-1:2*e)%(1<<2*(22-n)))),16*(32*o+n)+(t-n)}J(Vu,`CanonicalTileID`),J(Uu,`OverscaledTileID`,{omit:[`projMatrix`]});class Gu extends p{constructor(e,t,n){super(e,t),this.z=n}}function Ku(e,t){return e.x*t.x+e.y*t.y}function qu(e,t){if(e.length===1){let n=0,r=t[n++],i;for(;!i||r.equals(i);)if(i=t[n++],!i)return 1/0;for(;n<t.length;n++){let a=t[n],o=e[0],s=i.sub(r),c=a.sub(r),l=o.sub(r),u=Ku(s,s),d=Ku(s,c),f=Ku(c,c),p=Ku(l,s),m=Ku(l,c),h=u*f-d*d,g=(f*p-d*m)/h,_=(u*m-d*p)/h,v=r.z*(1-g-_)+i.z*g+a.z*_;if(isFinite(v))return v}return 1/0}{let e=1/0;for(let n of t)e=Math.min(e,n.z);return e}}function Ju(e,t,n,r,i,a,o,s){let c=o*i.getElevationAt(e,t,!0,!0),l=a[0]!==0,u=l?a[1]===0?o*(a[0]/7-450):o*function(e,t,n){let r=Math.floor(t[0]/8),i=Math.floor(t[1]/8),a=10*(t[0]-8*r),o=10*(t[1]-8*i),s=e.getElevationAt(r,i,!0,!0),c=e.getMeterToDEM(n),l=Math.floor(.5*(a*c-1)),u=Math.floor(.5*(o*c-1)),d=e.tileCoordToPixel(r,i),f=2*l+1,p=2*u+1,m=function(e,t,n,r,i){return[e.getElevationAtPixel(t,n,!0),e.getElevationAtPixel(t+i,n,!0),e.getElevationAtPixel(t,n+i,!0),e.getElevationAtPixel(t+r,n+i,!0)]}(e,d.x-l,d.y-u,f,p),h=Math.abs(m[0]-m[1]),g=Math.abs(m[2]-m[3]),_=Math.abs(m[0]-m[2])+Math.abs(m[1]-m[3]),v=Math.min(.25,.5*c*(h+g)/f),y=Math.min(.25,.5*c*_/p);return s+Math.max(v*a,y*o)}(i,a,s):c;return{base:c+(n===0)?-1:n,top:l?Math.max(u+r,c+n+2):c+r}}let{members:Yu}=ao([{name:`a_pos_normal`,components:2,type:`Int16`},{name:`a_data`,components:4,type:`Uint8`},{name:`a_linesofar`,components:1,type:`Float32`}],4),{members:Xu}=ao([{name:`a_packed`,components:4,type:`Float32`}]),Zu=Cu.types,Qu=Math.cos(Math.PI/180*37.5);class $u{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((e=>e.id)),this.index=e.index,this.projection=e.projection,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((e=>{this.gradients[e.id]={}})),this.layoutVertexArray=new uo,this.layoutVertexArray2=new fo,this.indexArray=new wo,this.programConfigurations=new hs(e.layers,e.zoom),this.segments=new Ts,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((e=>e.isStateDependent())).map((e=>e.id))}populate(e,t,n,r){this.hasPattern=tu(`line`,this.layers,t);let i=this.layers[0].layout.get(`line-sort-key`),a=[];for(let{feature:t,id:o,index:s,sourceLayerIndex:c}of e){let e=this.layers[0]._featureFilter.needGeometry,l=qs(t,e);if(!this.layers[0]._featureFilter.filter(new Wa(this.zoom),l,n))continue;let u=i?i.evaluate(l,{},n):void 0,d={id:o,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:e?l.geometry:Ks(t,n,r),patterns:{},sortKey:u};a.push(d)}i&&a.sort(((e,t)=>
vendor: 5,100 bytes, line 1
1e.sortKey-t.sortKey));let{lineAtlas:o,featureIndex:s}=t,c=this.addConstantDashes(o);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:l}=r;if(c&&this.addFeatureDashes(r,o),this.hasPattern){let e=nu(`line`,this.layers,r,this.zoom,t);this.patternFeatures.push(e)}else this.addFeature(r,i,a,n,o.positions,t.availableImages);s.insert(e[a].feature,i,a,l,this.index)}}addConstantDashes(e){let t=!1;for(let n of this.layers){let r=n.paint.get(`line-dasharray`).value,i=n.layout.get(`line-cap`).value;if(r.kind!==`constant`||i.kind!==`constant`)t=!0;else{let t=i.value,n=r.value;if(!n)continue;e.addDash(n,t)}}return t}addFeatureDashes(e,t){let n=this.zoom;for(let r of this.layers){let i=r.paint.get(`line-dasharray`).value,a=r.layout.get(`line-cap`).value;if(i.kind===`constant`&&a.kind===`constant`)continue;let o,s;if(i.kind===`constant`){if(o=i.value,!o)continue}else o=i.evaluate({zoom:n},e);s=a.kind===`constant`?a.value:a.evaluate({zoom:n},e),t.addDash(o,s),e.patterns[r.id]=t.getKey(o,s)}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,n,r)}addFeatures(e,t,n,r,i){for(let e of this.patternFeatures)this.addFeature(e,e.geometry,e.index,t,n,r)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,Xu)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Yu),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(e){if(e.properties&&e.properties.hasOwnProperty(`mapbox_clip_start`)&&e.properties.hasOwnProperty(`mapbox_clip_end`))return{start:+e.properties.mapbox_clip_start,end:+e.properties.mapbox_clip_end}}addFeature(e,t,n,r,i,a){let o=this.layers[0].layout,s=o.get(`line-join`).evaluate(e,{}),c=o.get(`line-cap`).evaluate(e,{}),l=o.get(`line-miter-limit`),u=o.get(`line-round-limit`);this.lineClips=this.lineFeatureClips(e);for(let n of t)this.addLine(n,e,s,c,l,u);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,i,a,r)}addLine(e,t,n,r,i,a){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let t=0;t<e.length-1;t++)this.totalDistance+=e[t].dist(e[t+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}let o=Zu[t.type]===`Polygon`,s=e.length;for(;s>=2&&e[s-1].equals(e[s-2]);)s--;let c=0;for(;c<s-1&&e[c].equals(e[c+1]);)c++;if(s<(o?3:2))return;n===`bevel`&&(i=1.05);let l=this.overscaling<=16?122880/(512*this.overscaling):0,u=this.segments.prepareSegment(10*s,this.layoutVertexArray,this.indexArray),d,f,p,m,h;this.e1=this.e2=-1,o&&(d=e[s-2],h=e[c].sub(d)._unit()._perp());for(let t=c;t<s;t++){if(p=t===s-1?o?e[c+1]:void 0:e[t+1],p&&e[t].equals(p))continue;h&&(m=h),d&&(f=d),d=e[t],h=p?p.sub(d)._unit()._perp():m,m||=h;let g=m.add(h);g.x===0&&g.y===0||g._unit();let _=m.x*h.x+m.y*h.y,v=g.x*h.x+g.y*h.y,y=v===0?1/0:1/v,b=2*Math.sqrt(2-2*v),x=v<Qu&&f&&p,S=m.x*h.y-m.y*h.x>0;if(x&&t>c){let e=d.dist(f);if(e>2*l){let t=d.sub(d.sub(f)._mult(l/e)._round());this.updateDistance(f,t),this.addCurrentVertex(t,m,0,0,u),f=t}}let C=f&&p,w=C?n:o?`butt`:r;if(C&&w===`round`&&(y<a?w=`miter`:y<=2&&(w=`fakeround`)),w===`miter`&&y>i&&(w=`bevel`),w===`bevel`&&(y>2&&(w=`flipbevel`),y<i&&(w=`miter`)),f&&this.updateDistance(f,d),w===`miter`)g._mult(y),this.addCurrentVertex(d,g,0,0,u);else if(w===`flipbevel`){if(y>100)g=h.mult(-1);else{let e=y*m.add(h).mag()/m.sub(h).mag();g._perp()._mult(e*(S?-1:1))}this.addCurrentVertex(d,g,0,0,u),this.addCurrentVertex(d,g.mult(-1),0,0,u)}else if(w===`bevel`||w===`fakeround`){let e=-Math.sqrt(y*y-1),t=S?e:0,n=S?0:e;if(f&&this.addCurrentVertex(d,m,t,n,u),w===`fakeround`){let e=Math.round(180*b/Math.PI/20);for(let t=1;t<e;t++){let n=t/e;if(n!==.5){let e=n-.5;n+=n*e*(n-1)*((1.0904+_*(_*(3.55645-1.43519*_)-3.2452))*e*e+(.848013+_*(.215638*_-1.06021)))}let r=h.sub(m)._mult(n)._add(m)._unit()._mult(S?-1:1);this.addHalfVertex(d,r.x,r.y,!1,S,0,u)}}p&&this.addCurrentVertex(d,h,-t,-n,u)}else if(w===`butt`)this.addCurrentVertex(d,g,0,0,u);else if(w===`square`){let e=f?1:-1;f||this.addCurrentVertex(d,g,e,e,u),this.addCurrentVertex(d,g,0,0,u),f&&this.addCurrentVertex(d,g,e,e,u)}else w===`round`&&(f&&(this.addCurrentVertex(d,m,0,0,u),this.addCurrentVertex(d,m,1,1,u,!0)),p&&(this.addCurrentVertex(d,h,-1,-1,u,!0),this.addCurrentVertex(d,h,0,0,u)));if(x&&t<s-1){let e=d.dist(p);if(e>2*l){let t=d.add(p.sub(d)._mult(l/e)._round());this.updateDistance(d,t),this.addCurrentVertex(t,h,0,0,u),d=t}}}}addCurrentVertex(e,t,n,r,i,a=!1){let o=t.y*r-t.x,s=-t.y-t.x*r;this.addHalfVertex(e,t.x+t.y*n,t.y-t.x*n,a,!1,n,i),this.addHalfVertex(e,o,s,a,!0,-r,i)}addHalfVertex({x:e,y:t}
1,n,r,i,a,o,s){this.layoutVertexArray.emplaceBack((e<<1)+ +!!i,(t<<1)+ +!!a,Math.round(63*n)+128,Math.round(63*r)+128,1+(o===0?0:o<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);let c=s.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,c),s.primitiveLength++),a?this.e2=c:this.e1=c}updateScaledDistance(){if(this.lineClips){let e=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=e*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(e,t){this.distance+=e.dist(t),this.updateScaledDistance()}}J($u,`LineBucket`,{omit:[`layers`,`patternFeatures`]});let ed=new eo({"line-cap":new X(z.layout_line[`line-cap`]),"line-join":new X(z.layout_line[`line-join`]),"line-miter-limit":new Y(z.layout_line[`line-miter-limit`]),"line-round-limit":new Y(z.layout_line[`line-round-limit`]),"line-sort-key":new X(z.layout_line[`line-sort-key`])});var td={paint:new eo({"line-opacity":new X(z.paint_line[`line-opacity`]),"line-color":new X(z.paint_line[`line-color`]),"line-translate":new Y(z.paint_line[`line-translate`]),"line-translate-anchor":new Y(z.paint_line[`line-translate-anchor`]),"line-width":new X(z.paint_line[`line-width`]),"line-gap-width":new X(z.paint_line[`line-gap-width`]),"line-offset":new X(z.paint_line[`line-offset`]),"line-blur":new X(z.paint_line[`line-blur`]),"line-dasharray":new X(z.paint_line[`line-dasharray`]),"line-pattern":new X(z.paint_line[`line-pattern`]),"line-gradient":new $a(z.paint_line[`line-gradient`]),"line-trim-offset":new Y(z.paint_line[`line-trim-offset`])}),layout:ed};let nd=new class extends X{possiblyEvaluate(e,t){return t=new Wa(Math.floor(t.zoom),{now:t.now,fadeDuration:t.fadeDuration,transition:t.transition}),super.possiblyEvaluate(e,t)}evaluate(e,t,n,r){return t=O({},t,{zoom:Math.floor(t.zoom)}),super.evaluate(e,t,n,r)}}(td.paint.properties[`line-width`].specification);function rd(e,t){return t>0?t+2*e:e}nd.useIntegerZoom=!0;let id=ao([{name:`a_pos_offset`,components:4,type:`Int16`},{name:`a_tex_size`,components:4,type:`Uint16`},{name:`a_pixeloffset`,components:4,type:`Int16`}],4),ad=ao([{name:`a_globe_anchor`,components:3,type:`Int16`},{name:`a_globe_normal`,components:3,type:`Float32`}],4),od=ao([{name:`a_projected_pos`,components:4,type:`Float32`}],4);ao([{name:`a_fade_opacity`,components:1,type:`Uint32`}],4);let sd=ao([{name:`a_placed`,components:2,type:`Uint8`},{name:`a_shift`,components:2,type:`Float32`}]),cd=ao([{name:`a_size_scale`,components:1,type:`Float32`},{name:`a_padding`,components:2,type:`Float32`}]);ao([{type:`Int16`,name:`projectedAnchorX`},{type:`Int16`,name:`projectedAnchorY`},{type:`Int16`,name:`projectedAnchorZ`},{type:`Int16`,name:`tileAnchorX`},{type:`Int16`,name:`tileAnchorY`},{type:`Float32`,name:`x1`},{type:`Float32`,name:`y1`},{type:`Float32`,name:`x2`},{type:`Float32`,name:`y2`},{type:`Int16`,name:`padding`},{type:`Uint32`,name:`featureIndex`},{type:`Uint16`,name:`sourceLayerIndex`},{type:`Uint16`,name:`bucketIndex`}]);let ld=ao([{name:`a_pos`,components:3,type:`Int16`},{name:`a_anchor_pos`,components:2,type:`Int16`},{name:`a_extrude`,components:2,type:`Int16`}],4),ud=ao([{name:`a_pos_2f`,components:2,type:`Float32`},{name:`a_radius`,components:1,type:`Float32`},{name:`a_flags`,components:2,type:`Int16`}],4);ao([{name:`triangle`,components:3,type:`Uint16`}]),ao([{type:`Int16`,name:`projectedAnchorX`},{type:`Int16`,name:`projectedAnchorY`},{type:`Int16`,name:`projectedAnchorZ`},{type:`Float32`,name:`tileAnchorX`},{type:`Float32`,name:`tileAnchorY`},{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`},{type:`Uint8`,name:`flipState`}]),ao([{type:`Int16`,name:`projectedAnchorX`},{type:`Int16`,name:`projectedAnchorY`},{type:`Int16`,name:`projectedAnchorZ`},{type:`Float32`,name:`tileAnchorX`},{type:`Float32`,name:`tileAnchorY`},{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`,components:2,name:`textOffset`},{type:`Float32`,name:`collisionCircleDiameter`}]),ao([{type:`Float32`,name:`offsetX`}]),ao([{type:`Int16`,name:`x`},{type:`Int16`,name:`y`}]);var dd=24;function fd(e,t){let{expression:n}=t;if(n.kind===`constant`)return{kind:`constant`,layoutSize:n.evaluate(new Wa(e+1))};if(n.kind===`source`)return{kind:`source`};{let{zoomStops:t,interpolationType:r}=n,i=0;for(;i<t.length&&t[i]<=e;)i++;i=Math.max(0,i-1);let a=i;for(;a<t.length&&t[a]<e+1;)a++;a=Math.min(t.length-1,a);let o=t[i],s=t[a];return n.kind===`composite`?{kind:`composite`,minZoom:o,maxZoom:s,interpolationType:r}:{kind:`camera`,minZoom:o,maxZoom:s,minSize:n.evaluate(new Wa(o)),maxSize:n.evaluate(new Wa(s)),interpolationType:r}}}function pd(e,{uSize:t,uSizeT:n},{lowerSize:r,upperSize:i}){return e.kind===`source`?r/128:e.kind===`composite`?G(r/128,i/128,n):t}function md(e,t){let n=0,r=0;if(e.kind===`constant`)r=e.layoutSize;else if(e.kind!==`source`){let{interpolationType:i,minZoom:a,maxZoom:
1o}=e,s=i?C(nr.interpolationFactor(i,t,a,o),0,1):0;e.kind===`camera`?r=G(e.minSize,e.maxSize,s):n=s}return{uSizeT:n,uSize:r}}var hd=Object.freeze({__proto__:null,getSizeData:fd,evaluateSizeForFeature:pd,evaluateSizeForZoom:md,SIZE_PACK_FACTOR:128});function gd(e,t,n){return e.sections.forEach((e=>{e.text=function(e,t,n){let r=t.layout.get(`text-transform`).evaluate(n,{});return r===`uppercase`?e=e.toLocaleUpperCase():r===`lowercase`&&(e=e.toLocaleLowerCase()),Ua.applyArabicShaping&&(e=Ua.applyArabicShaping(e)),e}(e.text,t,n)})),e}let _d={"!":`ï¸`,"#":`ï¼`,$:`ï¼`,"%":`ï¼
`,"&":`ï¼`,"(":`︵`,")":`︶`,"*":`ï¼`,"+":`ï¼`,",":`ï¸`,"-":`︲`,".":`ã»`,"/":`ï¼`,":":`ï¸`,";":`ï¸`,"<":`︿`,"=":`ï¼`,">":`ï¹`,"?":`ï¸`,"@":`ï¼ `,"[":`ï¹`,"\\":`ï¼¼`,"]":`ï¹`,"^":`ï¼¾`,_:`︳`,"`":`ï½`,"{":`︷`,"|":`â`,"}":`︸`,"~":`ï½`,"¢":`ï¿ `,"£":`ï¿¡`,"Â¥":`ï¿¥`,"¦":`¦`,"¬":`ï¿¢`,"¯":`ï¿£`,"â":`︲`,"â":`︱`,"â":`ï¹`,"â":`ï¹`,"â":`ï¹`,"â":`ï¹`,"â¦":`ï¸`,"â§":`ã»`,"â©":`₩`,"ã":`ï¸`,"ã":`ï¸`,"ã":`︿`,"ã":`ï¹`,"ã":`︽`,"ã":`︾`,"ã":`ï¹`,"ã":`ï¹`,"ã":`ï¹`,"ã":`ï¹`,"ã":`︻`,"ã":`︼`,"ã":`︹`,"ã":`︺`,"ã":`ï¸`,"ã":`ï¸`,"ï¼":`ï¸`,"ï¼":`︵`,"ï¼":`︶`,"ï¼":`ï¸`,"ï¼":`︲`,"ï¼":`ã»`,"ï¼":`ï¸`,"ï¼":`ï¸`,"ï¼":`︿`,"ï¼":`ï¹`,"ï¼":`ï¸`,"ï¼»":`ï¹`,"ï¼½":`ï¹`,"_":`︳`,"ï½":`︷`,"ï½":`â`,"ï½":`︸`,"ï½":`︵`,"ï½ ":`︶`,"。":`ï¸`,"ï½¢":`ï¹`,"ï½£":`ï¹`};function vd(e){return e===`︶`||e===`ï¹`||e===`︸`||e===`ï¹`||e===`ï¹`||e===`︾`||e===`︼`||e===`︺`||e===`ï¸`||e===`ï¹`||e===`ï¸`||e===`ï¸`||e===`ï¸`||e===`ï½`||e===`ï¿£`||e===`ï¸`||e===`ï¸`}function yd(e){return e===`︵`||e===`ï¹`||e===`︷`||e===`ï¹`||e===`ï¹`||e===`︽`||e===`︻`||e===`︹`||e===`ï¸`||e===`︿`}var bd=$,xd=function(e,t,n,r,i){var a,o,s=8*i-r-1,c=(1<<s)-1,l=c>>1,u=-7,d=n?i-1:0,f=n?-1:1,p=e[t+d];for(d+=f,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+e[t+d],d+=f,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=f,u-=8);if(a===0)a=1-l;else{if(a===c)return o?NaN:1/0*(p?-1:1);o+=2**r,a-=l}return(p?-1:1)*o*2**(a-r)},Sd=function(e,t,n,r,i,a){var o,s,c,l=8*a-i-1,u=(1<<l)-1,d=u>>1,f=i===23?2**-24-2**-77:0,p=r?0:a-1,m=r?1:-1,h=+(t<0||t===0&&1/t<0);for(t=Math.abs(t),isNaN(t)||t===1/0?(s=+!!isNaN(t),o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=2**-o)<1&&(o--,c*=2),(t+=o+d>=1?f/c:f*2**(1-d))*c>=2&&(o++,c/=2),o+d>=u?(s=0,o=u):o+d>=1?(s=(t*c-1)*2**i,o+=d):(s=t*2**(d-1)*2**i,o=0));i>=8;e[n+p]=255&s,p+=m,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+p]=255&o,p+=m,o/=256,l-=8);e[n+p-m]|=128*h};function $(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}$.Varint=0,$.Fixed64=1,$.Bytes=2,$.Fixed32=5;var Cd=4294967296,wd=1/Cd,Td=typeof TextDecoder>`u`?null:new TextDecoder(`utf8`);function Ed(e){return e.type===$.Bytes?e.readVarint()+e.pos:e.pos+1}function Dd(e,t,n){return n?4294967296*t+(e>>>0):4294967296*(t>>>0)+(e>>>0)}function Od(e,t,n){var r=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(7*Math.LN2));n.realloc(r);for(var i=n.pos-1;i>=e;i--)n.buf[i+r]=n.buf[i]}function kd(e,t){for(var n=0;n<e.length;n++)t.writeVarint(e[n])}function Ad(e,t){for(var n=0;n<e.length;n++)t.writeSVarint(e[n])}function jd(e,t){for(var n=0;n<e.length;n++)t.writeFloat(e[n])}function Md(e,t){for(var n=0;n<e.length;n++)t.writeDouble(e[n])}function Nd(e,t){for(var n=0;n<e.length;n++)t.writeBoolean(e[n])}function Pd(e,t){for(var n=0;n<e.length;n++)t.writeFixed32(e[n])}function Fd(e,t){for(var n=0;n<e.length;n++)t.writeSFixed32(e[n])}function Id(e,t){for(var n=0;n<e.length;n++)t.writeFixed64(e[n])}function Ld(e,t){for(var n=0;n<e.length;n++)t.writeSFixed64(e[n])}function Rd(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+16777216*e[t+3]}function zd(e,t,n){e[n]=t,e[n+1]=t>>>8,e[n+2]=t>>>16,e[n+3]=t>>>24}function Bd(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function Vd(e,t,n){t.glyphs=[],e===1&&n.readMessage(Hd,t)}function Hd(e,t,n){if(e===3){let{id:e,bitmap:r,width:i,height:a,left:o,top:s,advance:c}=n.readMessage(Ud,{});t.glyphs.push({id:e,bitmap:new gl({width:i+6,height:a+6},r),metrics:{width:i,height:a,left:o,top:s,advance:c}})}else e===4?t.ascender=n.readSVarint():e===5&&(t.descender=n.readSVarint())}function Ud(e,t,n){e===1?t.id=n.readVarint():e===2?t.bitmap=n.readBytes():e===3?t.width=n.readVarint():e===4?t.height=n.readVarint():e===5?t.left=n.readSVarint():e===6?t.top=n.readSVarint():e===7&&(t.advance=n.readVarint())}function Wd(e){let t=0,n=0;
1for(let r of e)t+=r.w*r.h,n=Math.max(n,r.w);e.sort(((e,t)=>t.h-e.h));let r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}],i=0,a=0;for(let t of e)for(let e=r.length-1;e>=0;e--){let n=r[e];if(!(t.w>n.w||t.h>n.h)){if(t.x=n.x,t.y=n.y,a=Math.max(a,t.y+t.h),i=Math.max(i,t.x+t.w),t.w===n.w&&t.h===n.h){let t=r.pop();e<r.length&&(r[e]=t)}else t.h===n.h?(n.x+=t.w,n.w-=t.w):t.w===n.w?(n.y+=t.h,n.h-=t.h):(r.push({x:n.x+t.w,y:n.y,w:n.w-t.w,h:t.h}),n.y+=t.h,n.h-=t.h);break}}return{w:i,h:a,fill:t/(i*a)||0}}$.prototype={destroy:function(){this.buf=null},readFields:function(e,t,n){for(n||=this.length;this.pos<n;){var r=this.readVarint(),i=r>>3,a=this.pos;this.type=7&r,e(i,t,this),this.pos===a&&this.skip(r)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=Rd(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=Bd(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=Rd(this.buf,this.pos)+Rd(this.buf,this.pos+4)*Cd;return this.pos+=8,e},readSFixed64:function(){var e=Rd(this.buf,this.pos)+Bd(this.buf,this.pos+4)*Cd;return this.pos+=8,e},readFloat:function(){var e=xd(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=xd(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t,n,r=this.buf;return t=127&(n=r[this.pos++]),n<128?t:(t|=(127&(n=r[this.pos++]))<<7,n<128?t:(t|=(127&(n=r[this.pos++]))<<14,n<128?t:(t|=(127&(n=r[this.pos++]))<<21,n<128?t:function(e,t,n){var r,i,a=n.buf;if(r=(112&(i=a[n.pos++]))>>4,i<128||(r|=(127&(i=a[n.pos++]))<<3,i<128)||(r|=(127&(i=a[n.pos++]))<<10,i<128)||(r|=(127&(i=a[n.pos++]))<<17,i<128)||(r|=(127&(i=a[n.pos++]))<<24,i<128)||(r|=(1&(i=a[n.pos++]))<<31,i<128))return Dd(e,r,t);throw Error(`Expected varint not more than 10 bytes`)}(t|=(15&(n=r[this.pos]))<<28,e,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2==1?(e+1)/-2:e/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&Td?function(e,t,n){return Td.decode(e.subarray(t,n))}(this.buf,t,e):function(e,t,n){for(var r=``,i=t;i<n;){var a,o,s,c=e[i],l=null,u=c>239?4:c>223?3:c>191?2:1;if(i+u>n)break;u===1?c<128&&(l=c):u===2?(192&(a=e[i+1]))==128&&(l=(31&c)<<6|63&a)<=127&&(l=null):u===3?(o=e[i+2],(192&(a=e[i+1]))==128&&(192&o)==128&&((l=(15&c)<<12|(63&a)<<6|63&o)<=2047||l>=55296&&l<=57343)&&(l=null)):u===4&&(o=e[i+2],s=e[i+3],(192&(a=e[i+1]))==128&&(192&o)==128&&(192&s)==128&&((l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||l>=1114112)&&(l=null)),l===null?(l=65533,u=1):l>65535&&(l-=65536,r+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),r+=String.fromCharCode(l),i+=u}return r}(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==$.Bytes)return e.push(this.readVarint(t));var n=Ed(this);for(e||=[];this.pos<n;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==$.Bytes)return e.push(this.readSVarint());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==$.Bytes)return e.push(this.readBoolean());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==$.Bytes)return e.push(this.readFloat());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==$.Bytes)return e.push(this.readDouble());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==$.Bytes)return e.push(this.readFixed32());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==$.Bytes)return e.push(this.readSFixed32());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readSFixed32());return e}
vendor: 4,462 bytes, line 1
1,readPackedFixed64:function(e){if(this.type!==$.Bytes)return e.push(this.readFixed64());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==$.Bytes)return e.push(this.readSFixed64());var t=Ed(this);for(e||=[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=7&e;if(t===$.Varint)for(;this.buf[this.pos++]>127;);else if(t===$.Bytes)this.pos=this.readVarint()+this.pos;else if(t===$.Fixed32)this.pos+=4;else{if(t!==$.Fixed64)throw Error(`Unimplemented type: `+t);this.pos+=8}},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var n=new Uint8Array(t);n.set(this.buf),this.buf=n,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),zd(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),zd(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),zd(this.buf,-1&e,this.pos),zd(this.buf,Math.floor(e*wd),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),zd(this.buf,-1&e,this.pos),zd(this.buf,Math.floor(e*wd),this.pos+4),this.pos+=8},writeVarint:function(e){(e=+e||0)>268435455||e<0?function(e,t){var n,r;if(e>=0?(n=e%4294967296|0,r=e/4294967296|0):(r=~(-e/4294967296),4294967295^(n=~(-e%4294967296))?n=n+1|0:(n=0,r=r+1|0)),e>=0x10000000000000000||e<-0x10000000000000000)throw Error(`Given varint doesn't fit into 10 bytes`);t.realloc(10),function(e,t,n){n.buf[n.pos++]=127&e|128,e>>>=7,n.buf[n.pos++]=127&e|128,e>>>=7,n.buf[n.pos++]=127&e|128,e>>>=7,n.buf[n.pos++]=127&e|128,n.buf[n.pos]=127&(e>>>=7)}(n,0,t),function(e,t){var n=(7&e)<<4;t.buf[t.pos++]|=n|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=127&e)))))}(r,t)}(e,this):(this.realloc(4),this.buf[this.pos++]=127&e|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=127&(e>>>=7)|(e>127?128:0),e<=127||(this.buf[this.pos++]=e>>>7&127))))},writeSVarint:function(e){this.writeVarint(e<0?2*-e-1:2*e)},writeBoolean:function(e){this.writeVarint(!!e)},writeString:function(e){e=String(e),this.realloc(4*e.length),this.pos++;var t=this.pos;this.pos=function(e,t,n){for(var r,i,a=0;a<t.length;a++){if((r=t.charCodeAt(a))>55295&&r<57344){if(!i){r>56319||a+1===t.length?(e[n++]=239,e[n++]=191,e[n++]=189):i=r;continue}if(r<56320){e[n++]=239,e[n++]=191,e[n++]=189,i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&=(e[n++]=239,e[n++]=191,e[n++]=189,null);r<128?e[n++]=r:(r<2048?e[n++]=r>>6|192:(r<65536?e[n++]=r>>12|224:(e[n++]=r>>18|240,e[n++]=r>>12&63|128),e[n++]=r>>6&63|128),e[n++]=63&r|128)}return n}(this.buf,e,this.pos);var n=this.pos-t;n>=128&&Od(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n},writeFloat:function(e){this.realloc(4),Sd(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),Sd(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var n=0;n<t;n++)this.buf[this.pos++]=e[n]},writeRawMessage:function(e,t){this.pos++;var n=this.pos;e(t,this);var r=this.pos-n;r>=128&&Od(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r},writeMessage:function(e,t,n){this.writeTag(e,$.Bytes),this.writeRawMessage(t,n)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,kd,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,Ad,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,Nd,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,jd,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,Md,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,Pd,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,Fd,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,Id,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,Ld,t)},writeBytesField:function(e,t){this.writeTag(e,$.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,$.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,$.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,$.Fixed64),this.writeFixed64
1(t)},writeSFixed64Field:function(e,t){this.writeTag(e,$.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,$.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,$.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,$.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,$.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,$.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,!!t)}};class Gd{constructor(e,{pixelRatio:t,version:n,stretchX:r,stretchY:i,content:a}){this.paddedRect=e,this.pixelRatio=t,this.stretchX=r,this.stretchY=i,this.content=a,this.version=n}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class Kd{constructor(e,t){let n={},r={};this.haveRenderCallbacks=[];let i=[];this.addImages(e,n,i),this.addImages(t,r,i);let{w:a,h:o}=Wd(i),s=new _l({width:a||1,height:o||1});for(let t in e){let r=e[t],i=n[t].paddedRect;_l.copy(r.data,s,{x:0,y:0},{x:i.x+1,y:i.y+1},r.data)}for(let e in t){let n=t[e],i=r[e].paddedRect,a=i.x+1,o=i.y+1,c=n.data.width,l=n.data.height;_l.copy(n.data,s,{x:0,y:0},{x:a,y:o},n.data),_l.copy(n.data,s,{x:0,y:l-1},{x:a,y:o-1},{width:c,height:1}),_l.copy(n.data,s,{x:0,y:0},{x:a,y:o+l},{width:c,height:1}),_l.copy(n.data,s,{x:c-1,y:0},{x:a-1,y:o},{width:1,height:l}),_l.copy(n.data,s,{x:0,y:0},{x:a+c,y:o},{width:1,height:l})}this.image=s,this.iconPositions=n,this.patternPositions=r}addImages(e,t,n){for(let r in e){let i=e[r],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};n.push(a),t[r]=new Gd(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(r)}}patchUpdatedImages(e,t){this.haveRenderCallbacks=this.haveRenderCallbacks.filter((t=>e.hasImage(t))),e.dispatchRenderCallbacks(this.haveRenderCallbacks);for(let n in e.updatedImages)this.patchUpdatedImage(this.iconPositions[n],e.getImage(n),t),this.patchUpdatedImage(this.patternPositions[n],e.getImage(n),t)}patchUpdatedImage(e,t,n){if(!e||!t||e.version===t.version)return;e.version=t.version;let[r,i]=e.tl;n.update(t.data,void 0,{x:r,y:i})}}J(Gd,`ImagePosition`),J(Kd,`ImageAtlas`);let qd={horizontal:1,vertical:2,horizontalOnly:3};class Jd{constructor(){this.scale=1,this.fontStack=``,this.imageName=null}static forText(e,t){let n=new Jd;return n.scale=e||1,n.fontStack=t,n}static forImage(e){let t=new Jd;return t.imageName=e,t}}class Yd{constructor(){this.text=``,this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(e,t){let n=new Yd;for(let r=0;r<e.sections.length;r++){let i=e.sections[r];i.image?n.addImageSection(i):n.addTextSection(i,t)}return n}length(){return this.text.length}getSection(e){return this.sections[this.sectionIndex[e]]}getSections(){return this.sections}getSectionIndex(e){return this.sectionIndex[e]}getCharCode(e){return this.text.charCodeAt(e)}verticalizePunctuation(e){this.text=function(e,t){let n=``;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r+1)||null,a=e.charCodeAt(r-1)||null;n+=!t&&(i&&Oa(i)&&!_d[e[r+1]]||a&&Oa(a)&&!_d[e[r-1]])||!_d[e[r]]?e[r]:_d[e[r]]}return n}(this.text,e)}trim(){let e=0;for(let t=0;t<this.text.length&&Zd[this.text.charCodeAt(t)];t++)e++;let t=this.text.length;for(let n=this.text.length-1;n>=0&&n>=e&&Zd[this.text.charCodeAt(n)];n--)t--;this.text=this.text.substring(e,t),this.sectionIndex=this.sectionIndex.slice(e,t)}substring(e,t){let n=new Yd;return n.text=this.text.substring(e,t),n.sectionIndex=this.sectionIndex.slice(e,t),n.sections=this.sections,n}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((e,t)=>Math.max(e,this.sections[t].scale)),0)}addTextSection(e,t){this.text+=e.text,this.sections.push(Jd.forText(e.scale,e.fontStack||t));let n=this.sections.length-1;for(let t=0;t<e.text.length;++t)this.sectionIndex.push(n)}addImageSection(e){let t=e.image?e.image.name:``;if(t.length===0)return void L(`Can't add FormattedSection with an empty image.`);let n=this.getNextImageSectionCharCode();n?(this.text+=String.fromCharCode(n),this.sections.push(Jd.forImage(t)),this.sectionIndex.push(this.sections.length-1)):L(`Reached maximum number of images 6401`)}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Xd(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=Yd.fromFeature(e,i);d===qd.vertical&&h.verticalizePunctuation(f);let g=[],_=function(e,t,n,r,i,a){if(!e)return[];let o=[],s=function(e,t,n,r,i,a){let o=0;for(let n=0;n<e.length();n++){let s=e.getSection(n);o+=$d(e.getCharCode(n),s,r,i,t,a)}return o/Math.max(1,Math.ceil(o/n))}(e,t,n,r,i,a),c=e.text.indexOf(`â`)>=0,l=0;for(let n=0;n<e.length();n++){let d=e.getSection(n),f=e.getCharCode(n);if(Zd[f]||(l+=$d(f,d,r,i,t,a)),n<e.length()-1){let t=!((u=f)<11904||!(sa(u)||oa(u)||ba(u)||_a(u)||da(u)||ea(u)||ca(u)||ra(u)||fa(u)||pa(u)||ua(u)||Ca(u)||ia(u)||na(u)||ta(u)||la(u)||aa(u)||ya(u)||ha(u)||ma(u)));(Qd[f]||t||d.imageName)&&o.push(nf(n+1,l,s,o,tf(f,e.getCharCode(n+1),t&&c),!1))}}var u;return rf(nf(e.length(),l,s,o,0,!0))}(h,l,a,t,r,p),{processBidirectionalText:v,processStyledBidirectionalText:y}=Ua;if(v&&h.sections.length===1){let e=v(h.toString(),_);for(let t of e){let e=new Yd;e.text=t,e.sections=h.sections;for(let n=0;n<t.length;n++)e.sectionIndex.push(0);g.push(e)}}else if(y){let e=y(h.text,h.sectionIndex,_);for(let t of e){let e=new Yd;e.text=t[0],e.sectionIndex=t[1],e.sections=h.sections,g.push(e)}}else g=function(e,t){let n=[],r=e.text,i=0;for(let r of t)n.push(e.substring(i,r)),i=r;return i<r.length&&n.push(e.substring(i,r.length)),n}(h,_);let b=[],x={positionedLines:b,text:h.toString(),top:u[1],bottom:u[1],left:u[0],right:u[0],writingMode:d,iconsInText:!1,verticalizable:!1,hasBaseline:!1};return function(e,t,n,r,i,a,o,s,c,l,u,d){let f=0,p=0,m=0,h=s===`right`?1:s===`left`?0:.5,g=!1;for(let e of i){let n=e.getSections();for(let e of n){if(e.imageName)continue;let n=t[e.fontStack];if(n&&(g=n.ascender!==void 0&&n.descender!==void 0,!g))break}if(!g)break}let _=0;for(let o of i){o.trim();let i=o.getMaxScale(),s=(i-1)*dd,y={positionedGlyphs:[],lineOffset:0};e.positionedLines[_]=y;let b=y.positionedGlyphs,x=0;if(!o.length()){p+=a,++_;continue}let S=0,C=0;for(let a=0;a<o.length();a++){let s=o.getSection(a),m=o.getSectionIndex(a),h=o.getCharCode(a),_=s.scale,y=null,w=null,T=null,E=dd,D=0,O=!(c===qd.horizontal||!u&&!Da(h)||u&&(Zd[h]||(v=h,Zi(v)||Qi(v)||$i(v)||va(v)||Sa(v))));if(s.imageName){let t=r[s.imageName];if(!t)continue;T=s.imageName,e.iconsInText=e.iconsInText||!0,w=t.paddedRect;let n=t.displaySize;_=_*dd/d,y={width:n[0],height:n[1],left:1,top:-3,advance:O?n[1]:n[0],localGlyph:!1},D=g?-y.height*_:i*dd-17-n[1]*_,E=y.advance;let a=(O?n[0]:n[1])*_-dd*i;a>0&&a>x&&(x=a)}else{let e=n[s.fontStack];if(!e)continue;e[h]&&(w=e[h]);let r=t[s.fontStack];if(!r)continue;let a=r.glyphs[h];if(!a)continue;if(y=a.metrics,E=h===8203?0:dd,g){let e=r.ascender===void 0?0:Math.abs(r.ascender),t=r.descender===void 0?0:Math.abs(r.descender),n=(e+t)*_;S<n&&(S=n,C=(e-t)/2*_),D=-e*_}else D=(i-_)*dd-17}O?(e.verticalizable=!0,b.push({glyph:h,imageName:T,x:f,y:p+D,vertical:O,scale:_,localGlyph:y.localGlyph,fontStack:s.fontStack,sectionIndex:m,metrics:y,rect:w}),f+=E*_+l):(b.push({glyph:h,imageName:T,x:f,y:p+D,vertical:O,scale:_,localGlyph:y.localGlyph,fontStack:s.fontStack,sectionIndex:m,metrics:y,rect:w}),f+=y.advance*_+l)}b.length!==0&&(m=Math.max(f-l,m),g?of(b,h,x,C,a*i/2):of(b,h,x,0,a/2)),f=0;let w=a*i+x;y.lineOffset=Math.max(x,s),p+=w,++_}var v;let y=p,{horizontalAlign:b,verticalAlign:x}=af(o);(function(e,t,n,r,i,a){let o=(t-n)*i,s=-a*r;for(let t of e)for(let e of t.positionedGlyphs)e.x+=o,e.y+=s})(e.positionedLines,h,b,x,m,y),e.top+=-x*y,e.bottom=e.top+y,e.left+=-b*m,e.right=e.left+m,e.hasBaseline=g}(x,t,n,r,g,o,s,c,d,l,f,m),!function(e){for(let t of e)if(t.positionedGlyphs.length!==0)return!1;return!0}(b)&&x}let Zd={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Qd={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function $d(e,t,n,r,i,a){if(t.imageName){let e=r[t.imageName];return e?e.displaySize[0]*t.scale*dd/a+i:0}{let r=n[t.fontStack],a=r&&r.glyphs[e];return a?a.metrics.advance*t.scale+i:0}}function ef(e,t,n,r){let i=(e-t)**2;return r?e<t?i/2:2*i:i+Math.abs(n)*n}
vendor: 5,128 bytes, line 1
1function tf(e,t,n){let r=0;return e===10&&(r-=1e4),n&&(r+=150),e!==40&&e!==65288||(r+=50),t!==41&&t!==65289||(r+=50),r}function nf(e,t,n,r,i,a){let o=null,s=ef(t,n,i,a);for(let e of r){let r=ef(t-e.x,n,i,a)+e.badness;r<=s&&(o=e,s=r)}return{index:e,x:t,priorBreak:o,badness:s}}function rf(e){return e?rf(e.priorBreak).concat(e.index):[]}function af(e){let t=.5,n=.5;switch(e){case`right`:case`top-right`:case`bottom-right`:t=1;break;case`left`:case`top-left`:case`bottom-left`:t=0}switch(e){case`bottom`:case`bottom-right`:case`bottom-left`:n=1;break;case`top`:case`top-right`:case`top-left`:n=0}return{horizontalAlign:t,verticalAlign:n}}function of(e,t,n,r,i){if(!(t||n||r||i))return;let a=e.length-1,o=e[a],s=(o.x+o.metrics.advance*o.scale)*t;for(let t=0;t<=a;t++)e[t].x-=s,e[t].y+=n+r+i}function sf(e,t,n){let{horizontalAlign:r,verticalAlign:i}=af(n),a=t[0]-e.displaySize[0]*r,o=t[1]-e.displaySize[1]*i;return{image:e,top:o,bottom:o+e.displaySize[1],left:a,right:a+e.displaySize[0]}}function cf(e,t,n,r,i,a){let o=e.image,s;if(o.content){let e=o.content,t=o.pixelRatio||1;s=[e[0]/t,e[1]/t,o.displaySize[0]-e[2]/t,o.displaySize[1]-e[3]/t]}let c=t.left*a,l=t.right*a,u,d,f,p;n===`width`||n===`both`?(p=i[0]+c-r[3],d=i[0]+l+r[1]):(p=i[0]+(c+l-o.displaySize[0])/2,d=p+o.displaySize[0]);let m=t.top*a,h=t.bottom*a;return n===`height`||n===`both`?(u=i[1]+m-r[0],f=i[1]+h+r[2]):(u=i[1]+(m+h-o.displaySize[1])/2,f=u+o.displaySize[1]),{image:o,top:u,right:d,bottom:f,left:p,collisionPadding:s}}class lf extends p{constructor(e,t,n,r,i){super(e,t),this.angle=r,this.z=n,i!==void 0&&(this.segment=i)}clone(){return new lf(this.x,this.y,this.z,this.angle,this.segment)}}function uf(e,t,n,r,i){if(t.segment===void 0)return!0;let a=t,o=t.segment+1,s=0;for(;s>-n/2;){if(o--,o<0)return!1;s-=e[o].dist(a),a=e[o]}s+=e[o].dist(e[o+1]),o++;let c=[],l=0;for(;s<n/2;){let t=e[o],n=e[o+1];if(!n)return!1;let a=e[o-1].angleTo(t)-t.angleTo(n);for(a=Math.abs((a+3*Math.PI)%(2*Math.PI)-Math.PI),c.push({distance:s,angleDelta:a}),l+=a;s-c[0].distance>r;)l-=c.shift().angleDelta;if(l>i)return!1;o++,s+=t.dist(n)}return!0}function df(e){let t=0;for(let n=0;n<e.length-1;n++)t+=e[n].dist(e[n+1]);return t}function ff(e,t,n){return e?.6*t*n:0}function pf(e,t){return Math.max(e?e.right-e.left:0,t?t.right-t.left:0)}function mf(e,t,n,r,i,a){let o=ff(n,i,a),s=pf(n,r)*a,c=0,l=df(e)/2;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1],a=r.dist(i);if(c+a>l){let u=(l-c)/a,d=new lf(G(r.x,i.x,u),G(r.y,i.y,u),0,i.angleTo(r),n);return!o||uf(e,d,s,o,t)?d:void 0}c+=a}}function hf(e,t,n,r,i,a,o,s,c){let l=ff(r,a,o),u=pf(r,i),d=u*o,f=e[0].x===0||e[0].x===c||e[0].y===0||e[0].y===c;return t-d<t/4&&(t=d+t/4),gf(e,f?t/2*s%t:(u/2+2*a)*o*s%t,t,l,n,d,f,!1,c)}function gf(e,t,n,r,i,a,o,s,c){let l=a/2,u=df(e),d=0,f=t-n,p=[];for(let t=0;t<e.length-1;t++){let o=e[t],s=e[t+1],m=o.dist(s),h=s.angleTo(o);for(;f+n<d+m;){f+=n;let g=(f-d)/m,_=G(o.x,s.x,g),v=G(o.y,s.y,g);if(_>=0&&_<c&&v>=0&&v<c&&f-l>=0&&f+l<=u){let n=new lf(_,v,0,h,t);n._round(),r&&!uf(e,n,a,r,i)||p.push(n)}}d+=m}return s||p.length||o||(p=gf(e,d/2,n,r,i,a,o,!0,c)),p}function _f(e,t,n,r,i){let a=[];for(let o=0;o<e.length;o++){let s=e[o],c;for(let e=0;e<s.length-1;e++){let o=s[e],l=s[e+1];o.x<t&&l.x<t||(o.x<t?o=new p(t,o.y+(t-o.x)/(l.x-o.x)*(l.y-o.y))._round():l.x<t&&(l=new p(t,o.y+(t-o.x)/(l.x-o.x)*(l.y-o.y))._round()),o.y<n&&l.y<n||(o.y<n?o=new p(o.x+(n-o.y)/(l.y-o.y)*(l.x-o.x),n)._round():l.y<n&&(l=new p(o.x+(n-o.y)/(l.y-o.y)*(l.x-o.x),n)._round()),o.x>=r&&l.x>=r||(o.x>=r?o=new p(r,o.y+(r-o.x)/(l.x-o.x)*(l.y-o.y))._round():l.x>=r&&(l=new p(r,o.y+(r-o.x)/(l.x-o.x)*(l.y-o.y))._round()),o.y>=i&&l.y>=i||(o.y>=i?o=new p(o.x+(i-o.y)/(l.y-o.y)*(l.x-o.x),i)._round():l.y>=i&&(l=new p(o.x+(i-o.y)/(l.y-o.y)*(l.x-o.x),i)._round()),c&&o.equals(c[c.length-1])||(c=[o],a.push(c)),c.push(l)))))}}return a}J(lf,`Anchor`);let vf=0x56bc75e2d63100000;function yf(e,t,n,r,i,a,o,s,c){for(let l=t;l<t+r;l++)bf(e,n*a+l,a,i,o,s,c);for(let l=n;l<n+i;l++)bf(e,l*a+t,1,r,o,s,c)}function bf(e,t,n,r,i,a,o){a[0]=0,o[0]=-0x56bc75e2d63100000,o[1]=vf,i[0]=e[t];for(let s=1,c=0,l=0;s<r;s++){i[s]=e[t+s*n];let r=s*s;do{let e=a[c];l=(i[s]-i[e]+r-e*e)/(s-e)/2}while(l<=o[c]&&--c>-1);c++,a[c]=s,o[c]=l,o[c+1]=vf}for(let s=0,c=0;s<r;s++){for(;o[c+1]<s;)c++;let r=a[c],l=s-r;e[t+s*n]=i[r]+l*l}}let xf={none:0,ideographs:1,all:2};class Sf{constructor(e,t,n){this.requestManager=e,this.localGlyphMode=t,this.localFontFamily=n,this.entries={},this.localGlyphs={200:{},400:{},500:{},900:{}}}setURL(e){this.url=e}getGlyphs(e,t){let n=[];for(let t in e)for(let r of e[t])n.push({stack:t,id:r});E(n,(({stack:e,id:t},n)=>{let r=this.entries[e];r||=this.entries[e]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0};let i=r.glyphs[t];if(i!==void 0)return void n(null,{stack:e,id:t,glyph:i});if(i=this._tinySDF(r,e,t),i)return r.glyphs[t]=i,void n(null,{stack:e,id:t,glyph:i});let a=Math.floor(t/256);if(256*a>65535)return void n(Error(`glyphs > 65535 not supported`));if(r.ranges[a])return void n(null,{stack:e,id:t,glyph:i});let o=r.requests[a];o||(o=r.requests[a]=[],Sf.loadGlyphRange(e,a,this.url,this.requestManager,((e,t)=>
1{if(t){r.ascender=t.ascender,r.descender=t.descender;for(let e in t.glyphs)this._doesCharSupportLocalGlyph(+e)||(r.glyphs[+e]=t.glyphs[+e]);r.ranges[a]=!0}for(let n of o)n(e,t);delete r.requests[a]}))),o.push(((r,i)=>{r?n(r):i&&n(null,{stack:e,id:t,glyph:i.glyphs[t]||null})}))}),((e,n)=>{if(e)t(e);else if(n){let e={};for(let{stack:t,id:r,glyph:i}of n)e[t]===void 0&&(e[t]={}),e[t].glyphs===void 0&&(e[t].glyphs={}),e[t].glyphs[r]=i&&{id:i.id,bitmap:i.bitmap.clone(),metrics:i.metrics},e[t].ascender=this.entries[t].ascender,e[t].descender=this.entries[t].descender;t(null,e)}}))}_doesCharSupportLocalGlyph(e){return this.localGlyphMode!==xf.none&&(this.localGlyphMode===xf.all?!!this.localFontFamily:!!this.localFontFamily&&(pa(e)||ga(e)||ia(e)||aa(e)||ra(e)))}_tinySDF(e,t,n){let r=this.localFontFamily;if(!r||!this._doesCharSupportLocalGlyph(n))return;let i=e.tinySDF;if(!i){let n=`400`;/bold/i.test(t)?n=`900`:/medium/i.test(t)?n=`500`:/light/i.test(t)&&(n=`200`),i=e.tinySDF=new Sf.TinySDF({fontFamily:r,fontWeight:n,fontSize:48,buffer:6,radius:16}),i.fontWeight=n}if(this.localGlyphs[i.fontWeight][n])return this.localGlyphs[i.fontWeight][n];let a=String.fromCharCode(n),{data:o,width:s,height:c,glyphWidth:l,glyphHeight:u,glyphLeft:d,glyphTop:f,glyphAdvance:p}=i.draw(a);return this.localGlyphs[i.fontWeight][n]={id:n,bitmap:new gl({width:s,height:c},o),metrics:{width:l/2,height:u/2,left:d/2,top:f/2-27,advance:p/2,localGlyph:!0}}}}function Cf(e,t,n,r){let i=[],a=e.image,o=a.pixelRatio,s=a.paddedRect.w-2,c=a.paddedRect.h-2,l=e.right-e.left,u=e.bottom-e.top,d=a.stretchX||[[0,s]],f=a.stretchY||[[0,c]],m=(e,t)=>e+t[1]-t[0],h=d.reduce(m,0),g=f.reduce(m,0),_=s-h,v=c-g,y=0,b=h,x=0,S=g,C=0,w=_,T=0,E=v;if(a.content&&r){let e=a.content;y=wf(d,0,e[0]),x=wf(f,0,e[1]),b=wf(d,e[0],e[2]),S=wf(f,e[1],e[3]),C=e[0]-y,T=e[1]-x,w=e[2]-e[0]-b,E=e[3]-e[1]-S}let D=(r,i,s,c)=>{let d=Ef(r.stretch-y,b,l,e.left),f=Df(r.fixed-C,w,r.stretch,h),m=Ef(i.stretch-x,S,u,e.top),_=Df(i.fixed-T,E,i.stretch,g),v=Ef(s.stretch-y,b,l,e.left),D=Df(s.fixed-C,w,s.stretch,h),O=Ef(c.stretch-x,S,u,e.top),k=Df(c.fixed-T,E,c.stretch,g),A=new p(d,m),j=new p(v,m),M=new p(v,O),ee=new p(d,O),N=new p(f/o,_/o),te=new p(D/o,k/o),P=t*Math.PI/180;if(P){let e=Math.sin(P),t=Math.cos(P),n=[t,-e,e,t];A._matMult(n),j._matMult(n),ee._matMult(n),M._matMult(n)}let F=r.stretch+r.fixed,I=i.stretch+i.fixed;return{tl:A,tr:j,bl:ee,br:M,tex:{x:a.paddedRect.x+1+F,y:a.paddedRect.y+1+I,w:s.stretch+s.fixed-F,h:c.stretch+c.fixed-I},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:N,pixelOffsetBR:te,minFontScaleX:w/o/l,minFontScaleY:E/o/u,isSDF:n}};if(r&&(a.stretchX||a.stretchY)){let e=Tf(d,_,h),t=Tf(f,v,g);for(let n=0;n<e.length-1;n++){let r=e[n],a=e[n+1];for(let e=0;e<t.length-1;e++)i.push(D(r,t[e],a,t[e+1]))}}else i.push(D({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:s+1},{fixed:0,stretch:c+1}));return i}function wf(e,t,n){let r=0;for(let i of e)r+=Math.max(t,Math.min(n,i[1]))-Math.max(t,Math.min(n,i[0]));return r}function Tf(e,t,n){let r=[{fixed:-1,stretch:0}];for(let[t,n]of e){let e=r[r.length-1];r.push({fixed:t-e.stretch,stretch:e.stretch}),r.push({fixed:t-e.stretch,stretch:e.stretch+(n-t)})}return r.push({fixed:t+1,stretch:n}),r}function Ef(e,t,n,r){return e/t*n+r}function Df(e,t,n,r){return e-t*n/r}function Of(e,t,n,r){let i=t+e.positionedLines[r].lineOffset;return r===0?n+i/2:n+(i+(t+e.positionedLines[r-1].lineOffset))/2}Sf.loadGlyphRange=function(e,t,n,r,i){let a=256*t,o=a+255;we(r.transformRequest(r.normalizeGlyphsURL(n).replace(`{fontstack}`,e).replace(`{range}`,`${a}-${o}`),be.Glyphs),((e,t)=>{if(e)i(e);else if(t){let e={},n=function(e){return new bd(e).readFields(Vd,{})}(t);for(let t of n.glyphs)e[t.id]=t;i(null,{glyphs:e,ascender:n.ascender,descender:n.descender})}}))},Sf.TinySDF=class{constructor({fontSize:e=24,buffer:t=3,radius:n=8,cutoff:r=.25,fontFamily:i=`sans-serif`,fontWeight:a=`normal`,fontStyle:o=`normal`}={}){this.buffer=t,this.cutoff=r,this.radius=n;let s=this.size=e+4*t,c=this._createCanvas(s),l=this.ctx=c.getContext(`2d`,{willReadFrequently:!0});l.font=`${o} ${a} ${e}px ${i}`,l.textBaseline=`alphabetic`,l.textAlign=`left`,l.fillStyle=`black`,this.gridOuter=new Float64Array(s*s),this.gridInner=new Float64Array(s*s),this.f=new Float64Array(s),this.z=new Float64Array(s+1),this.v=new Uint16Array(s)}_createCanvas(e){let t=document.createElement(`canvas`);return t.width=t.height=e,t}draw(e){let{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:r,actualBoundingBoxLeft:i,actualBoundingBoxRight:a}=this.ctx.measureText(e),o=Math.ceil(n),s=Math.min(this.size-this.buffer,Math.ceil(a-i)),c=Math.min(this.size-this.buffer,o+Math.ceil(r)),l=s+2*this.buffer,u=c+2*this.buffer,d=Math.max(l*u,0),f=new Uint8ClampedArray(d),p={data:f,width:l,height:u,glyphWidth:s,glyphHeight:c,glyphTop:o,glyphLeft:0,glyphAdvance:t};if(s===0||c===0)return p;let{ctx:m,buffer:h,gridInner:g,gridOuter:_}=this;m.clearRect(h,h,s,c),m.fillText(e,h,h+o);let v=m.getImageData(h,h,s,c);_.fill(vf,0,d),g.fill(0,0,d);for(let e=0;e<c;e++)for(let t=0;t<s;t++){let n=v.data[4*(e*s+t)+3]/255;if(n===0)continue;let r=(e+h)*l+t+h;if(n===1)_[r]=0,g[r]=vf;else{let e=.5-n;_[r]=e>0?e*e:0,g[r]=e<0?e*e:0}}yf(_,0,0,l,u,l,this.f,this.v,this.z),yf(g,h,h,s,c,l,this.f,this.v,this.z);for(let e=0;e<d;e++){let t=Math.sqrt(_[e])-Math.sqrt(g[e]);f[e]=Math.round(255-255*(t/this.radius+this.cutoff))}return p}};class kf{constructor(e=[],t=Af){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return this.length--,this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i}t[e]=r}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=1+(e<<1),a=t[r],o=r+1;if(o<this.length&&n(t[o],a)<0&&(r=o,a=t[o]),n(a,i)>=0)break;t[e]=a,e=r}t[e]=i}}function Af(e,t){return e<t?-1:+(e>t)}
1function jf(e,t=1,n=!1){let r=1/0,i=1/0,a=-1/0,o=-1/0,s=e[0];for(let e=0;e<s.length;e++){let t=s[e];(!e||t.x<r)&&(r=t.x),(!e||t.y<i)&&(i=t.y),(!e||t.x>a)&&(a=t.x),(!e||t.y>o)&&(o=t.y)}let c=Math.min(a-r,o-i),l=c/2,u=new kf([],Mf);if(c===0)return new p(r,i);for(let t=r;t<a;t+=c)for(let n=i;n<o;n+=c)u.push(new Nf(t+l,n+l,l,e));let d=function(e){let t=0,n=0,r=0,i=e[0];for(let e=0,a=i.length,o=a-1;e<a;o=e++){let a=i[e],s=i[o],c=a.x*s.y-s.x*a.y;n+=(a.x+s.x)*c,r+=(a.y+s.y)*c,t+=3*c}return new Nf(n/t,r/t,0,e)}(e),f=u.length;for(;u.length;){let r=u.pop();(r.d>d.d||!d.d)&&(d=r,n&&console.log(`found best %d after %d probes`,Math.round(1e4*r.d)/1e4,f)),r.max-d.d<=t||(l=r.h/2,u.push(new Nf(r.p.x-l,r.p.y-l,l,e)),u.push(new Nf(r.p.x+l,r.p.y-l,l,e)),u.push(new Nf(r.p.x-l,r.p.y+l,l,e)),u.push(new Nf(r.p.x+l,r.p.y+l,l,e)),f+=4)}return n&&(console.log(`num probes: ${f}`),console.log(`best distance: ${d.d}`)),d.p}function Mf(e,t){return t.max-e.max}function Nf(e,t,n,r){this.p=new p(e,t),this.h=n,this.d=function(e,t){let n=!1,r=1/0;for(let i=0;i<t.length;i++){let a=t[i];for(let t=0,i=a.length,o=i-1;t<i;o=t++){let i=a[t],s=a[o];i.y>e.y!=s.y>e.y&&e.x<(s.x-i.x)*(e.y-i.y)/(s.y-i.y)+i.x&&(n=!n),r=Math.min(r,ic(e,i,s))}}return(n?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}let Pf=1/0,Ff=Math.sqrt(2);function If(e,[t,n]){let r=0,i=0;if(n===Pf){t<0&&(t=0);let n=t/Ff;switch(e){case`top-right`:case`top-left`:i=n-7;break;case`bottom-right`:case`bottom-left`:i=7-n;break;case`bottom`:i=7-t;break;case`top`:i=t-7}switch(e){case`top-right`:case`bottom-right`:r=-n;break;case`top-left`:case`bottom-left`:r=n;break;case`left`:r=t;break;case`right`:r=-t}}else{switch(t=Math.abs(t),n=Math.abs(n),e){case`top-right`:case`top-left`:case`top`:i=n-7;break;case`bottom-right`:case`bottom-left`:case`bottom`:i=7-n}switch(e){case`top-right`:case`bottom-right`:case`right`:r=-t;break;case`top-left`:case`bottom-left`:case`left`:r=t}}return[r,i]}function Lf(e,t,n,r,i,a,o,s,c,l){e.createArrays(),e.tilePixelRatio=Z/(512*e.overscaling),e.compareText={},e.iconsNeedLinear=!1;let u=e.layers[0].layout,d=e.layers[0]._unevaluatedLayout._values,f={};if(e.textSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.textSizeData;f.compositeTextSizes=[d[`text-size`].possiblyEvaluate(new Wa(t),s),d[`text-size`].possiblyEvaluate(new Wa(n),s)]}if(e.iconSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.iconSizeData;f.compositeIconSizes=[d[`icon-size`].possiblyEvaluate(new Wa(t),s),d[`icon-size`].possiblyEvaluate(new Wa(n),s)]}f.layoutTextSize=d[`text-size`].possiblyEvaluate(new Wa(c+1),s),f.layoutIconSize=d[`icon-size`].possiblyEvaluate(new Wa(c+1),s),f.textMaxSize=d[`text-size`].possiblyEvaluate(new Wa(18),s);let p=u.get(`text-rotation-alignment`)===`map`&&u.get(`symbol-placement`)!==`point`,m=u.get(`text-size`);for(let a of e.features){let c=u.get(`text-font`).evaluate(a,{},s).join(`,`),d=m.evaluate(a,{},s),h=f.layoutTextSize.evaluate(a,{},s),g=(f.layoutIconSize.evaluate(a,{},s),{horizontal:{},vertical:void 0}),_=a.text,v,y=[0,0];if(_){let r=_.toString(),o=u.get(`text-letter-spacing`).evaluate(a,{},s)*dd,l=u.get(`text-line-height`).evaluate(a,{},s)*dd,f=Ta(r)?o:0,m=u.get(`text-anchor`).evaluate(a,{},s),v=u.get(`text-variable-anchor`);if(!v){let e=u.get(`text-radial-offset`).evaluate(a,{},s);y=e?If(m,[e*dd,Pf]):u.get(`text-offset`).evaluate(a,{},s).map((e=>e*dd))}let b=p?`center`:u.get(`text-justify`).evaluate(a,{},s),x=u.get(`symbol-placement`)===`point`,S=x?u.get(`text-max-width`).evaluate(a,{},s)*dd:1/0,C=a=>{e.allowVerticalPlacement&&wa(r)&&(g.vertical=Xd(_,t,n,i,c,S,l,m,a,f,y,qd.vertical,!0,h,d))};if(!p&&v){let e=b===`auto`?v.map((e=>Rf(e))):[b],r=!1;for(let a=0;a<e.length;a++){let o=e[a];if(!g.horizontal[o])if(r)g.horizontal[o]=g.horizontal[0];else{let e=Xd(_,t,n,i,c,S,l,`center`,o,f,y,qd.horizontal,!1,h,d);e&&(g.horizontal[o]=e,r=e.positionedLines.length===1)}}C(`left`)}else{if(b===`auto`&&(b=Rf(m)),x||u.get(`text-writing-mode`).indexOf(`horizontal`)>=0||!wa(r)){let e=Xd(_,t,n,i,c,S,l,m,b,f,y,qd.horizontal,!1,h,d);e&&(g.horizontal[b]=e)}C(x?`left`:b)}}let b=!1;if(a.icon&&a.icon.name){let t=r[a.icon.name];t&&(v=sf(i[a.icon.name],u.get(`icon-offset`).evaluate(a,{},s),u.get(`icon-anchor`).evaluate(a,{}
1,s)),b=t.sdf,e.sdfIcons===void 0?e.sdfIcons=t.sdf:e.sdfIcons!==t.sdf&&L(`Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer`),(t.pixelRatio!==e.pixelRatio||u.get(`icon-rotate`).constantOr(1)!==0)&&(e.iconsNeedLinear=!0))}let x=Hf(g.horizontal)||g.vertical;e.iconsInText||=!!x&&x.iconsInText,(x||v)&&zf(e,a,g,v,r,f,h,0,y,b,o,s,l)}a&&e.generateCollisionDebugBuffers(c,e.collisionBoxArray)}function Rf(e){switch(e){case`right`:case`top-right`:case`bottom-right`:return`right`;case`left`:case`top-left`:case`bottom-left`:return`left`}return`center`}function zf(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=a.textMaxSize.evaluate(t,{},d);p===void 0&&(p=o);let m=e.layers[0].layout,h=m.get(`icon-offset`).evaluate(t,{},d),g=Hf(n.horizontal)||n.vertical,v=f.name===`globe`,y=o/24,b=e.tilePixelRatio*p/24,x=(k=e.overscaling,e.zoom>18&&k>2&&(k>>=1),Math.max(Z/(512*k),1)*m.get(`symbol-spacing`)),S=m.get(`text-padding`)*e.tilePixelRatio,C=m.get(`icon-padding`)*e.tilePixelRatio,w=_(m.get(`text-max-angle`)),T=m.get(`text-rotation-alignment`)===`map`&&m.get(`symbol-placement`)!==`point`,E=m.get(`icon-rotation-alignment`)===`map`&&m.get(`symbol-placement`)!==`point`,D=m.get(`symbol-placement`),O=x/2;var k;let A=m.get(`icon-text-fit`),j;r&&A!==`none`&&(e.allowVerticalPlacement&&n.vertical&&(j=cf(r,n.vertical,A,m.get(`icon-text-fit-padding`),h,y)),g&&(r=cf(r,g,A,m.get(`icon-text-fit-padding`),h,y)));let M=(o,s,p)=>{if(s.x<0||s.x>=Z||s.y<0||s.y>=Z)return;let m=null;if(v){let{x:e,y:t,z:n}=f.projectTilePoint(s.x,s.y,p);m={anchor:new lf(e,t,n,0,void 0),up:f.upVector(p,s.x,s.y)}}(function(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w){let T=e.addToLineVertexArray(t,r),E,D,O,k,A,j,M,ee=0,N=0,te=0,P=0,F=-1,I=-1,ne={},re=Ko.exports(``),ie=n?n.anchor:t,ae=0,oe=0;if(c._unevaluatedLayout.getValue(`text-radial-offset`)===void 0?[ae,oe]=c.layout.get(`text-offset`).evaluate(b,{},w).map((e=>e*dd)):(ae=c.layout.get(`text-radial-offset`).evaluate(b,{},w)*dd,oe=Pf),e.allowVerticalPlacement&&i.vertical){let e=i.vertical;if(m)j=Wf(e),s&&(M=Wf(s));else{let n=c.layout.get(`text-rotate`).evaluate(b,{},w)+90;O=Uf(l,ie,t,u,d,f,e,p,n,h),s&&(k=Uf(l,ie,t,u,d,f,s,_,n))}}if(a){let r=c.layout.get(`icon-rotate`).evaluate(b,{},w),i=c.layout.get(`icon-text-fit`)!==`none`,o=Cf(a,r,S,i),p=s?Cf(s,r,S,i):void 0;D=Uf(l,ie,t,u,d,f,a,_,r),ee=4*o.length;let m=e.iconSizeData,h=null;m.kind===`source`?(h=[128*c.layout.get(`icon-size`).evaluate(b,{},w)],h[0]>Bf&&L(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):m.kind===`composite`&&(h=[128*x.compositeIconSizes[0].evaluate(b,{},w),128*x.compositeIconSizes[1].evaluate(b,{},w)],(h[0]>Bf||h[1]>Bf)&&L(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),e.addSymbols(e.icon,o,h,y,v,b,!1,n,t,T.lineStartIndex,T.lineLength,-1,C,w),F=e.icon.placedSymbolArray.length-1,p&&(N=4*p.length,e.addSymbols(e.icon,p,h,y,v,b,qd.vertical,n,t,T.lineStartIndex,T.lineLength,-1,C,w),I=e.icon.placedSymbolArray.length-1)}for(let r in i.horizontal){let a=i.horizontal[r];E||(re=Ko.exports(a.text),m?A=Wf(a):E=Uf(l,ie,t,u,d,f,a,p,c.layout.get(`text-rotate`).evaluate(b,{},w),h));let s=a.positionedLines.length===1;if(te+=Vf(e,n,t,a,o,c,m,b,h,T,i.vertical?qd.horizontal:qd.horizontalOnly,s?Object.keys(i.horizontal):[r],ne,F,x,C,w),s)break}i.vertical&&(P+=Vf(e,n,t,i.vertical,o,c,m,b,h,T,qd.vertical,[`vertical`],ne,I,x,C,w));let se=-1,ce=(e,t)=>e?Math.max(e,t):t;se=ce(A,se),se=ce(j,se),se=ce(M,se);let le=+(se>-1);e.glyphOffsetArray.length>=nm.MAX_GLYPHS&&L(`Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907`),b.sortKey!==void 0&&e.addToSortKeyRanges(e.symbolInstances.length,b.sortKey),e.symbolInstances.emplaceBack(ie.x,ie.y,ie.z,t.x,t.y,ne.right>=0?ne.right:-1,ne.center>=0?ne.center:-1,ne.left>=0?ne.left:-1,ne.vertical>=0?ne.vertical:-1,F,I,re,E===void 0?e.collisionBoxArray.length:E,E===void 0?e.collisionBoxArray.length:E+1,O===void 0?e.collisionBoxArray.length:O,O===void 0?e.collisionBoxArray.length:O+1,D===void 0?e.collisionBoxArray.length:D,D===void 0?e.collisionBoxArray.length:D+1,k||e.collisionBoxArray.length,k?k+1:e.collisionBoxArray.length,u,te,P,ee,N,le,0,ae,oe,se)})(e,s,m,o,n,r,i,j,e.layers[0],e.collisionBoxArray,t.index,t.sourceLayerIndex,e.index,S,T,c,0,C,E,h,t,a,l,u,d)};if(D===`line`)for(let i of _f(t.geometry,0,0,Z,Z)){let t=hf(i,x,w,n.vertical||g,r,24,b,e.overscaling,Z);for(let n of t){let t=g;t&&Gf(e,t.text,O,n)||M(i,n,d)}}else if(D===`line-center`){for(let e of t.geometry)if(e.length>1){let t=mf(e,w,n.vertical||g,r,24,b);t&&M(e,t,d)}}else if(t.type===`Polygon`)for(let e of $l(t.geometry,0)){let t=jf(e,16);M(e[0],new lf(t.x,t.y,0,0,void 0),d)}else if(t.type===`LineString`)for(let e of t.geometry)M(e,new lf(e[0].x,e[0].y,0,0,void 0),d);else if(t.type===`Point`)for(let e of t.geometry)for(let t of e)M([t],new lf(t.x,t.y,0,0,void 0),d)}let Bf=32640;function Vf(e,t,n,r,i,a,o,s,c,l,u,d,f,m,h,g,_){let v=function(e,t,n,r,i,a,o,s){let c=[];if(t.positionedLines.length===0)return c;let l=r.layout.get(`text-rotate`).evaluate(a,{})*Math.PI/180,u=function(e){let t=e[0],n=e[1],r=t*n;return r>0?[t,-n]:r<0?[-t,n]:t===0?[n,t]:[n,-t]}(n),d=Math.abs(t.top-t.bottom);for(let e of t.positionedLines)d-=e.lineOffset;
1let f=t.positionedLines.length,m=d/f,h=t.top-n[1];for(let e=0;e<f;++e){let r=t.positionedLines[e];h=Of(t,m,h,e);for(let e of r.positionedGlyphs){if(!e.rect)continue;let r=e.rect||{},a=4,d=!0,f=1,m=0;if(e.imageName){let t=o[e.imageName];if(!t)continue;if(t.sdf){L(`SDF images are not supported in formatted text and will be ignored.`);continue}d=!1,f=t.pixelRatio,a=1/f}let g=(i||s)&&e.vertical,_=e.metrics.advance*e.scale/2,v=e.metrics,y=e.rect;if(y===null)continue;s&&t.verticalizable&&(m=e.imageName?_-e.metrics.width*e.scale/2:0);let b=i?[e.x+_,e.y]:[0,0],x=[0,0],S=[0,0],C=!1;i||(g?(S=[e.x+_+u[0],e.y+u[1]-m],C=!0):x=[e.x+_+n[0],e.y+n[1]-m]);let w=y.w*e.scale/(f*(e.localGlyph?2:1)),T=y.h*e.scale/(f*(e.localGlyph?2:1)),E,D,O,k;if(g){let t=e.y-h,n=new p(-_,_-t),r=-Math.PI/2,i=new p(...S);E=new p(-_+x[0],x[1]),E._rotateAround(r,n)._add(i),E.x+=-t+_,E.y-=(v.left-a)*e.scale;let o=e.imageName?v.advance*e.scale:dd*e.scale,s=String.fromCharCode(e.glyph);vd(s)?E.x+=(1-a)*e.scale:yd(s)?E.x+=o-v.height*e.scale+(-a-1)*e.scale:E.x+=e.imageName||v.width+2*a===y.w&&v.height+2*a===y.h?(o-T)/2:(o-(v.height+2*a)*e.scale)/2,D=new p(E.x,E.y-w),O=new p(E.x+T,E.y),k=new p(E.x+T,E.y-w)}else{let t=(v.left-a)*e.scale-_+x[0],n=(-v.top-a)*e.scale+x[1],r=t+w,i=n+T;E=new p(t,n),D=new p(r,n),O=new p(t,i),k=new p(r,i)}if(l){let e;e=i?new p(0,0):C?new p(u[0],u[1]):new p(n[0],n[1]),E._rotateAround(l,e),D._rotateAround(l,e),O._rotateAround(l,e),k._rotateAround(l,e)}let A=new p(0,0),j=new p(0,0);c.push({tl:E,tr:D,bl:O,br:k,tex:r,writingMode:t.writingMode,glyphOffset:b,sectionIndex:e.sectionIndex,isSDF:d,pixelOffsetTL:A,pixelOffsetBR:j,minFontScaleX:0,minFontScaleY:0})}}return c}(0,r,c,a,o,s,i,e.allowVerticalPlacement),y=e.textSizeData,b=null;y.kind===`source`?(b=[128*a.layout.get(`text-size`).evaluate(s,{},_)],b[0]>Bf&&L(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):y.kind===`composite`&&(b=[128*h.compositeTextSizes[0].evaluate(s,{},_),128*h.compositeTextSizes[1].evaluate(s,{},_)],(b[0]>Bf||b[1]>Bf)&&L(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),e.addSymbols(e.text,v,b,c,o,s,u,t,n,l.lineStartIndex,l.lineLength,m,g,_);for(let t of d)f[t]=e.text.placedSymbolArray.length-1;return 4*v.length}function Hf(e){for(let t in e)return e[t];return null}function Uf(e,t,n,r,i,a,o,s,c,l){let u=o.top,d=o.bottom,f=o.left,m=o.right,h=o.collisionPadding;if(h&&(f-=h[0],u-=h[1],m+=h[2],d+=h[3]),c){let e=new p(f,u),t=new p(m,u),n=new p(f,d),r=new p(m,d),i=_(c),a=new p(0,0);l&&(a=new p(l[0],l[1])),e._rotateAround(i,a),t._rotateAround(i,a),n._rotateAround(i,a),r._rotateAround(i,a),f=Math.min(e.x,t.x,n.x,r.x),m=Math.max(e.x,t.x,n.x,r.x),u=Math.min(e.y,t.y,n.y,r.y),d=Math.max(e.y,t.y,n.y,r.y)}return e.emplaceBack(t.x,t.y,t.z,n.x,n.y,f,u,m,d,s,r,i,a),e.length-1}function Wf(e){e.collisionPadding&&(e.top-=e.collisionPadding[1],e.bottom+=e.collisionPadding[3]);let t=e.bottom-e.top;return t>0?Math.max(10,t):null}function Gf(e,t,n,r){let i=e.compareText;if(t in i){let e=i[t];for(let t=e.length-1;t>=0;t--)if(r.dist(e[t])<n)return!0}else i[t]=[];return i[t].push(r),!1}let{members:Kf}=ao([{type:`Float32`,name:`a_globe_pos`,components:3},{type:`Float32`,name:`a_uv`,components:2}]),qf=ao([{name:`a_pos_3`,components:3,type:`Int16`}]);var Jf=ao([{name:`a_pos`,type:`Int16`,components:2}]);let Yf=Z/Math.PI/2,Xf=2*Ms(1,0)*Yf*Math.PI,Zf=[64,32,16],Qf=-Yf,$f=Yf,ep=[new ol([Qf,Qf,Qf],[$f,$f,$f]),new ol([Qf,Qf,Qf],[0,0,$f]),new ol([0,Qf,Qf],[$f,0,$f]),new ol([Qf,0,Qf],[0,$f,$f]),new ol([0,0,Qf],[$f,$f,$f])];function tp(e,t,n,r=!0){let i=Rc([],e._camera.position,e.worldSize),a=[t,n,1,1];Zc(a,a,e.pixelMatrixInverse),Yc(a,a,1/a[3]);let o=Bc([],Kc([],a,i)),s=e.globeMatrix,c=[s[12],s[13],s[14]],l=Kc([],c,i),u=jc(l),d=Bc([],l),f=e.worldSize/(2*Math.PI),p=Vc(d,o),m=Math.asin(f/u);if(m<Math.acos(p)){if(!r)return null;let e=[],t=[];Rc(e,o,u/p),Bc(t,Kc(t,e,l)),Bc(o,Nc(o,l,Rc(o,t,Math.tan(m)*u)))}let h=[];new rl(i,o).closestPointOnSphere(c,f,h);let g=Bc([],ue(s,0)),_=Bc([],ue(s,1)),y=Bc([],ue(s,2)),b=Vc(g,h),x=Vc(_,h),S=Vc(y,h),w=v(Math.asin(-x/f)),T=v(Math.atan2(b,S));return T=e.center.lng+function(e,t){let n=(t-e+180)%360-180;return n<-180?n+360:n}(e.center.lng,T),new Rs(As(T),C(js(w),0,1))}class np{constructor(e,t,n){this.a=Kc([],e,n),this.b=Kc([],t,n),this.center=n;let r=Bc([],this.a),i=Bc([],this.b);this.angle=Math.acos(Vc(r,i))}}function rp(e,t){if(e.angle===0)return null;let n;return n=e.a[t]===0?1/e.angle*.5*Math.PI:1/e.angle*Math.atan(e.b[t]/e.a[t]/Math.sin(e.angle)-1/Math.tan(e.angle)),n<0||n>1?null:function(e,t,n,r){let i=Math.sin(n);return e*(Math.sin((1-r)*n)/i)+t*(Math.sin(r*n)/i)}(e.a[t],e.b[t],e.angle,C(n,0,1))+e.center[t]}function ip(e){if(e.z<=1)return ep[e.z+2*e.y+e.x];let t=up(lp(e));return ol.fromPoints(t)}function ap(e,t,n){return Rc(e,e,1-n),zc(e,e,t,n)}function op(e,t){let n=yp(t.zoom);if(n===0)return ip(e);let r=lp(e),i=up(r),a=As(r.getWest())*t.worldSize,o=As(r.getEast())*t.worldSize,s=js(r.getNorth())*t.worldSize,c=js(r.getSouth())*t.worldSize,l=[a,s,0],u=[o,s,0],d=[a,c,0],f=[o,c,0],p=bc([],t.globeMatrix);return Uc(l,l,p),Uc(u,u,p),Uc(d,d,p),Uc(f,f,p),i[0]=ap(i[0],d,n),i[1]=ap(i[1],f,n),i[2]=ap(i[2],u,n),i[3]=ap(i[3],l,n),ol.fromPoints(i)}
1function sp(e,t,n){for(let r of e)Uc(r,r,t),Rc(r,r,n)}function cp(e,t,n){let r=t/e.worldSize,i=e.globeMatrix;if(n.z<=1){let e=ip(n).getCorners();return sp(e,i,r),ol.fromPoints(e)}let a=lp(n),o=up(a);sp(o,i,r);let s=Number.MAX_VALUE,c=[-s,-s,-s],l=[s,s,s];if(a.contains(e.center)){for(let e of o)Ic(l,l,e),Lc(c,c,e);c[2]=0;let t=e.point,n=[t.x*r,t.y*r,0];return Ic(l,l,n),Lc(c,c,n),new ol(l,c)}let u=[i[12]*r,i[13]*r,i[14]*r],d=a.getCenter(),f=C(e.center.lat,-85.051129,Is),p=C(d.lat,-85.051129,Is),m=As(e.center.lng),h=js(f),g=m-As(d.lng),v=h-js(p);g>.5?--g:g<-.5&&(g+=1);let y=0;Math.abs(g)>Math.abs(v)?y=g>=0?1:3:(y=v>=0?0:2,zc(u,u,[i[4]*r,i[5]*r,i[6]*r],-Math.sin(_(v>=0?a.getSouth():a.getNorth()))*Yf));let b=o[y],x=o[(y+1)%4],S=new np(b,x,u),w=[rp(S,0)||b[0],rp(S,1)||b[1],rp(S,2)||b[2]],T=yp(e.zoom);if(T>0){let r=function({x:e,y:t,z:n},r,i,a,o){let s=1/(1<<n),c=e*s,l=c+s,u=t*s,d=u+s,f=0,p=(c+l)/2-a;return p>.5?f=-1:p<-.5&&(f=1),c=((c+f)*r-(a*=r))*i+a,l=((l+f)*r-a)*i+a,u=(u*r-(o*=r))*i+o,d=(d*r-o)*i+o,[[c,d,0],[l,d,0],[l,u,0],[c,u,0]]}(n,t,e._pixelsPerMercatorPixel,m,h);for(let e=0;e<o.length;e++)ap(o[e],r[e],T);let i=Nc([],r[y],r[(y+1)%4]);Rc(i,i,.5),ap(w,i,T)}for(let e of o)Ic(l,l,e),Lc(c,c,e);return l[2]=Math.min(b[2],x[2]),Ic(l,l,w),Lc(c,c,w),new ol(l,c)}function lp({x:e,y:t,z:n}){let r=1/(1<<n);return new Es(new Q(Ns(e*r),Ps((t+1)*r)),new Q(Ns((e+1)*r),Ps(t*r)))}function up(e){let t=_(e.getNorth()),n=_(e.getSouth()),r=Math.cos(t),i=Math.cos(n),a=Math.sin(t),o=Math.sin(n),s=e.getWest(),c=e.getEast();return[dp(i,o,s),dp(i,o,c),dp(r,a,c),dp(r,a,s)]}function dp(e,t,n,r=Yf){return n=_(n),[e*Math.sin(n)*r,-t*r,e*Math.cos(n)*r]}function fp(e,t,n){return dp(Math.cos(_(e)),Math.sin(_(e)),t,n)}function pp(e,t,n,r){let i=1<<n.z,a=(e/Z+n.x)/i;return fp(Ps((t/Z+n.y)/i),Ns(a),r)}function mp({min:e,max:t}){return 16383/Math.max(t[0]-e[0],t[1]-e[1],t[2]-e[2])}let hp=new Float64Array(16);function gp(e){let t=mp(e),n=Ec(hp,[t,t,t]);return Sc(n,n,((r=[])[0]=-(i=e.min)[0],r[1]=-i[1],r[2]=-i[2],r));var r,i}function _p(e){let t=(r=e.min,(n=hp)[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]=r[0],n[13]=r[1],n[14]=r[2],n[15]=1,n);var n,r;let i=1/mp(e);return Cc(t,t,[i,i,i])}function vp(e,t,n,r,i){let a=function(e){let t=Z/(2*Math.PI);return e/(2*Math.PI)/t}(n),o=[e,t,-n/(2*Math.PI)],s=yc(new Float64Array(16));return Sc(s,s,o),Cc(s,s,[a,a,a]),wc(s,s,_(-i)),Tc(s,s,_(-r)),s}function yp(e){return w(5,6,e)}function bp(e,t){let n=fp(t.lat,t.lng);return a=(r=Pc([],function(e){let t=fp(e._center.lat,e._center.lng),n=Hc([],Mc(0,1,0),t),r=Dc([],-e.angle,t);n=Uc(n,n,r),Dc(r,-e._pitch,n);let i=Bc([],t);return Rc(i,i,e.cameraToCenterDistance/e.pixelsPerMeter*Xf),Uc(i,i,r),Nc([],t,i)}(e),n))[0],o=r[1],s=r[2],c=(i=n)[0],l=i[1],u=i[2],f=(d=Math.sqrt(a*a+o*o+s*s)*Math.sqrt(c*c+l*l+u*u))&&Vc(r,i)/d,Math.acos(Math.min(Math.max(f,-1),1));var r,i,a,o,s,c,l,u,d,f}function xp(e,t){return bp(e,t)>Math.PI/2*1.01}let Sp=_(85),Cp=Math.cos(Sp),wp=Math.sin(Sp);function Tp(e,t){let n=e.fovAboveCenter,r=e.elevation?e.elevation.getMinElevationBelowMSL()*t:0,i=(e._camera.position[2]*e.worldSize-r)/Math.cos(e._pitch),a=Math.sin(n)*i/Math.sin(Math.max(Math.PI/2-e._pitch-n,.01)),o=Math.sin(e._pitch)*a+i;return Math.min(1.01*o,i*(1/e._horizonShift))}function Ep(e,t){if(!t.isReprojectedInTileSpace)return{scale:1<<e.z,x:e.x,y:e.y,x2:e.x+1,y2:e.y+1,projection:t};let n=2**-e.z,r=e.x*n,i=(e.x+1)*n,a=e.y*n,o=(e.y+1)*n,s=Ns(r),c=Ns(i),l=Ps(a),u=Ps(o),d=t.project(s,l),f=t.project(c,l),p=t.project(c,u),m=t.project(s,u),h=Math.min(d.x,f.x,p.x,m.x),g=Math.min(d.y,f.y,p.y,m.y),_=Math.max(d.x,f.x,p.x,m.x),v=Math.max(d.y,f.y,p.y,m.y),y=n/16;function b(e,n,r,i,a,o){let s=(r+a)/2,c=(i+o)/2,l=t.project(Ns(s),Ps(c)),u=Math.max(0,h-l.x,g-l.y,l.x-_,l.y-v);h=Math.min(h,l.x),_=Math.max(_,l.x),g=Math.min(g,l.y),v=Math.max(v,l.y),u>y&&(b(e,l,r,i,s,c),b(l,n,s,c,a,o))}b(d,f,r,a,i,a),b(f,p,i,a,i,o),b(p,m,i,o,r,o),b(m,d,r,o,r,a),h-=y,g-=y,_+=y,v+=y;let x=1/Math.max(_-h,v-g);return{scale:x,x:h*x,y:g*x,x2:_*x,y2:v*x,projection:t}}let Dp=yc(new Float32Array(16));class Op{constructor(e){this.spec=e,this.name=e.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit=`meters`,this.isReprojectedInTileSpace=!0,this.unsupportedLayers=[`custom`],this.center=[0,0],this.range=[3.5,7]}project(e,t){return{x:0,y:0,z:0}}unproject(e,t){return new Q(0,0)}projectTilePoint(e,t,n){return{x:e,y:t,z:0}}locationPoint(e,t,n=!0){return e._coordinatePoint(e.locationCoordinate(t),n)}pixelsPerMeter(e,t){return Ms(1,e)*t}pixelSpaceConversion(e,t,n){return 1}farthestPixelDistance(e){return Tp(e,e.pixelsPerMeter)}pointCoordinate(e,t,n,r){let i=e.horizonLineFromTop(!1),a=new p(t,Math.max(i,n));return e.rayIntersectionCoordinate(e.pointRayIntersection(a,r))}pointCoordinate3D(e,t,n){let r=new p(t,n);if(e.elevation)return e.elevation.pointCoordinate(r);{let t=this.pointCoordinate(e,r.x,r.y,0);return[t.x,t.y,t.z]}}isPointAboveHorizon(e,t){if(e.elevation)return!this.pointCoordinate3D(e,t.x,t.y);let n=e.horizonLineFromTop();return t.y<n}createInversionMatrix(e,t){return Dp}createTileMatrix(e,t,n){let r,i,a,o=n.canonical,s=yc(new Float64Array(16));if(this.isReprojectedInTileSpace){let c=Ep(o,this);r=1,i=c.x+n.wrap*c.scale,a=c.y,Cc(s,s,[r/c.scale,r/c.scale,e.pixelsPerMeter/t])}
1else r=t/e.zoomScale(o.z),i=(o.x+2**o.z*n.wrap)*r,a=o.y*r;return Sc(s,s,[i,a,0]),Cc(s,s,[r/Z,r/Z,1]),s}upVector(e,t,n){return[0,0,1]}upVectorScale(e,t,n){return{metersToTile:1}}}class kp extends Op{constructor(e){super(e),this.range=[4,7],this.center=e.center||[-96,37.5];let[t,n]=this.parallels=e.parallels||[29.5,45.5],r=Math.sin(_(t));this.n=(r+Math.sin(_(n)))/2,this.c=1+r*(2*this.n-r),this.r0=Math.sqrt(this.c)/this.n}project(e,t){let{n,c:r,r0:i}=this,a=_(e-this.center[0]),o=_(t),s=Math.sqrt(r-2*n*Math.sin(o))/n;return{x:s*Math.sin(a*n),y:s*Math.cos(a*n)-i,z:0}}unproject(e,t){let{n,c:r,r0:i}=this,a=i+t,o=Math.atan2(e,Math.abs(a))*Math.sign(a);a*n<0&&(o-=Math.PI*Math.sign(e)*Math.sign(a));let s=_(this.center[0])*n;return o=T(o,-Math.PI-s,Math.PI-s),new Q(C(v(o/n)+this.center[0],-180,180),C(v(Math.asin(C((r-(e*e+a*a)*n*n)/(2*n),-1,1))),-85.051129,Is))}}let Ap=1.340264,jp=-.081106,Mp=893e-6,Np=.003796,Pp=Math.sqrt(3)/2;class Fp extends Op{project(e,t){t=t/180*Math.PI,e=e/180*Math.PI;let n=Math.asin(Pp*Math.sin(t)),r=n*n,i=r*r*r;return{x:.5*(e*Math.cos(n)/(Pp*(Ap+3*jp*r+i*(7*Mp+9*Np*r)))/Math.PI+.5),y:1-.5*(n*(Ap+jp*r+i*(Mp+Np*r))/Math.PI+1),z:0}}unproject(e,t){e=(2*e-.5)*Math.PI;let n=t=(2*(1-t)-1)*Math.PI,r=n*n,i=r*r*r;for(let e,a,o,s=0;s<12&&(a=n*(Ap+jp*r+i*(Mp+Np*r))-t,o=Ap+3*jp*r+i*(7*Mp+9*Np*r),e=a/o,n=C(n-e,-Math.PI/3,Math.PI/3),r=n*n,i=r*r*r,!(Math.abs(e)<1e-12));++s);let a=Pp*e*(Ap+3*jp*r+i*(7*Mp+9*Np*r))/Math.cos(n),o=Math.asin(Math.sin(n)/Pp);return new Q(C(180*a/Math.PI,-180,180),C(180*o/Math.PI,-85.051129,Is))}}class Ip extends Op{constructor(e){super(e),this.wrap=!0,this.supportsWorldCopies=!0}project(e,t){return{x:.5+e/360,y:.5-t/360,z:0}}unproject(e,t){return new Q(360*(e-.5),C(360*(.5-t),-85.051129,Is))}}let Lp=Math.PI/2;function Rp(e){return Math.tan((Lp+e)/2)}class zp extends Op{constructor(e){super(e),this.center=e.center||[0,30];let[t,n]=this.parallels=e.parallels||[30,30],r=_(t),i=_(n);this.southernCenter=r+i<0,this.southernCenter&&(r=-r,i=-i);let a=Math.cos(r),o=Rp(r);this.n=r===i?Math.sin(r):Math.log(a/Math.cos(i))/Math.log(Rp(i)/o),this.f=a*Rp(r)**+this.n/this.n}project(e,t){t=_(t),this.southernCenter&&(t=-t),e=_(e-this.center[0]);let n=1e-6,{n:r,f:i}=this;i>0?t<-Lp+n&&(t=-Lp+n):t>Lp-n&&(t=Lp-n);let a=i/Rp(t)**+r,o=a*Math.sin(r*e),s=i-a*Math.cos(r*e);return o=.5*(o/Math.PI+.5),s=.5*(s/Math.PI+.5),{x:o,y:this.southernCenter?s:1-s,z:0}}unproject(e,t){e=(2*e-.5)*Math.PI,this.southernCenter&&(t=1-t),t=(2*(1-t)-.5)*Math.PI;let{n,f:r}=this,i=r-t,a=Math.sign(i),o=Math.sign(n)*Math.sqrt(e*e+i*i),s=Math.atan2(e,Math.abs(i))*a;i*n<0&&(s-=Math.PI*Math.sign(e)*a);let c=C(v(s/n)+this.center[0],-180,180),l=C(v(2*Math.atan((r/o)**(1/n))-Lp),-85.051129,Is);return new Q(c,this.southernCenter?-l:l)}}class Bp extends Op{constructor(e){super(e),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null}project(e,t){return{x:As(e),y:js(t),z:0}}unproject(e,t){return new Q(Ns(e),Ps(t))}}let Vp=_(Is);class Hp extends Op{project(e,t){let n=(t=_(t))*t,r=n*n;return{x:.5*((e=_(e))*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791))/Math.PI+.5),y:1-.5*(t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))/Math.PI+1),z:0}}unproject(e,t){e=(2*e-.5)*Math.PI;let n=t=(2*(1-t)-1)*Math.PI,r=25,i=0,a=n*n;do{a=n*n;let e=a*a;i=(n*(1.007226+a*(.015085+e*(.028874*a-.044475-.005916*e)))-t)/(1.007226+a*(.045255+e*(.259866*a-.311325-.005916*11*e))),n=C(n-i,-Vp,Vp)}while(Math.abs(i)>1e-6&&--r>0);return a=n*n,new Q(C(v(e/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))),-180,180),v(n))}}let Up=_(Is);class Wp extends Op{project(e,t){t=_(t),e=_(e);let n=Math.cos(t),r=2/Math.PI,i=Math.acos(n*Math.cos(e/2)),a=Math.sin(i)/i,o=.5*(e*r+2*n*Math.sin(e/2)/a)||0,s=.5*(t+Math.sin(t)/a)||0;return{x:.5*(o/Math.PI+.5),y:1-.5*(s/Math.PI+1),z:0}}unproject(e,t){let n=e=(2*e-.5)*Math.PI,r=t=(2*(1-t)-1)*Math.PI,i=25,a=1e-6,o=0,s=0;do{let i=Math.cos(r),a=Math.sin(r),c=2*a*i,l=a*a,u=i*i,d=Math.cos(n/2),f=Math.sin(n/2),p=2*d*f,m=f*f,h=1-u*d*d,g=h?1/h:0,_=h?Math.acos(i*d)*Math.sqrt(1/h):0,v=.5*(2*_*i*f+2*n/Math.PI)-e,y=.5*(_*a+r)-t,b=.5*g*(u*m+_*i*d*l)+1/Math.PI,x=g*(p*c/4-_*a*f),S=.125*g*(c*f-_*a*u*p),w=.5*g*(l*d+_*m*i)+.5,T=x*S-w*b;o=(y*x-v*w)/T,s=(v*S-y*b)/T,n=C(n-o,-Math.PI,Math.PI),r=C(r-s,-Up,Up)}while((Math.abs(o)>a||Math.abs(s)>a)&&--i>0);return new Q(v(n),v(r))}}class Gp extends Op{constructor(e){super(e),this.center=e.center||[0,0],this.parallels=e.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(_(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0}project(e,t){let{scale:n,cosPhi:r}=this;return{x:_(e)*r*n+.5,y:-Math.sin(_(t))/r*n+.5,z:0}}unproject(e,t){let{scale:n,cosPhi:r}=this,i=-(t-.5)/n;return new Q(C(v((e-.5)/n)/r,-180,180),C(v(Math.asin(C(i*r,-1,1))),-85.051129,Is))}}class Kp extends Bp{constructor(e){super(e),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit=`pixels`,this.unsupportedLayers=[`debug`,`custom`],this.range=[3,5]}
1projectTilePoint(e,t,n){let r=pp(e,t,n);return Uc(r,r,gp(ip(n))),{x:r[0],y:r[1],z:r[2]}}locationPoint(e,t){let n=fp(t.lat,t.lng),r=Bc([],n),i=e.elevation?e.elevation.getAtPointOrZero(e.locationCoordinate(t),e._centerAltitude):e._centerAltitude;zc(n,n,r,Ms(1,0)*Z*i);let a=yc(new Float64Array(16));return xc(a,e.pixelMatrix,e.globeMatrix),Uc(n,n,a),new p(n[0],n[1])}pixelsPerMeter(e,t){return Ms(1,0)*t}pixelSpaceConversion(e,t,n){let r=Ms(1,e)*t,i=G(Ms(1,45)*t,r,n);return this.pixelsPerMeter(e,t)/i}createTileMatrix(e,t,n){let r=_p(ip(n.canonical));return xc(new Float64Array(16),e.globeMatrix,r)}createInversionMatrix(e,t){let{center:n}=e,r=gp(ip(t));return Tc(r,r,_(n.lng)),wc(r,r,_(n.lat)),Cc(r,r,[e._pixelsPerMercatorPixel,e._pixelsPerMercatorPixel,1]),Float32Array.from(r)}pointCoordinate(e,t,n,r){return tp(e,t,n,!0)||new Rs(0,0)}pointCoordinate3D(e,t,n){let r=this.pointCoordinate(e,t,n,0);return[r.x,r.y,r.z]}isPointAboveHorizon(e,t){return!tp(e,t.x,t.y,!1)}farthestPixelDistance(e){let t=function(e,t){let n=e.cameraToCenterDistance,r=e._centerAltitude*t,i=e._camera,a=e._camera.forward(),o=Nc([],Rc([],a,-n),[0,0,r]),s=e.worldSize/(2*Math.PI),c=[0,0,-s],l=e.width/e.height,u=Math.tan(e.fovAboveCenter),d=Rc([],i.up(),u),f=Rc([],i.right(),u*l),p=Bc([],Nc([],Nc([],a,d),f)),m=[],h;if(new rl(o,p).closestPointOnSphere(c,s,m)){let t=Kc([],Nc([],m,c),o);h=Math.cos(e.fovAboveCenter)*jc(t)}else{let e=Kc([],o,c),t=Kc([],c,o);Bc(t,t);let n=jc(e)-s;h=Math.sqrt(n*(n+2*s));let r=Math.acos(h/(s+n))-Math.acos(Vc(a,t));h*=Math.cos(r)}return 1.01*h}(e,this.pixelsPerMeter(e.center.lat,e.worldSize)),n=yp(e.zoom);if(n>0){let r=Tp(e,Ms(1,e.center.lat)*e.worldSize),i=e.worldSize/(2*Math.PI),a=Math.max(e.width,e.height)/e.worldSize*Math.PI;return G(t,r+i*(1-Math.cos(a)),n**10)}return t}upVector(e,t,n){return pp(t,n,e,1)}upVectorScale(e){return{metersToTile:Xf*mp(ip(e))}}}function qp(e){let t=e.parallels,n=!!t&&Math.abs(t[0]+t[1])<.01;switch(e.name){case`mercator`:return new Bp(e);case`equirectangular`:return new Ip(e);case`naturalEarth`:return new Hp(e);case`equalEarth`:return new Fp(e);case`winkelTripel`:return new Wp(e);case`albers`:return n?new Gp(e):new kp(e);case`lambertConformalConic`:return n?new Gp(e):new zp(e);case`globe`:return new Kp(e)}throw Error(`Invalid projection name: ${e.name}`)}let Jp=Cu.types,Yp=[{name:`a_fade_opacity`,components:1,type:`Uint8`,offset:0}];function Xp(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=s?Math.min(Bf,Math.round(s[0])):0,m=s?Math.min(Bf,Math.round(s[1])):0;e.emplaceBack(t,n,Math.round(32*r),Math.round(32*i),a,o,(p<<1)+ +!!c,m,16*l,16*u,256*d,256*f)}function Zp(e,t,n,r,i,a,o){e.emplaceBack(t,n,r,i,a,o)}function Qp(e,t,n,r,i){e.emplaceBack(t,n,r,i),e.emplaceBack(t,n,r,i),e.emplaceBack(t,n,r,i),e.emplaceBack(t,n,r,i)}function $p(e){for(let t of e.sections)if(ja(t.text))return!0;return!1}class em{constructor(e){this.layoutVertexArray=new go,this.indexArray=new wo,this.programConfigurations=e,this.segments=new Ts,this.dynamicLayoutVertexArray=new fo,this.opacityVertexArray=new vo,this.placedSymbolArray=new Io,this.globeExtVertexArray=new _o}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,t,n,r){this.isEmpty()||(n&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,id.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,t),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,od.members,!0),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,Yp,!0),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=e.createVertexBuffer(this.globeExtVertexArray,ad.members,!0)),this.opacityVertexBuffer.itemSize=1),(n||r)&&this.programConfigurations.upload(e))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy())}}J(em,`SymbolBuffers`);class tm{constructor(e,t,n){this.layoutVertexArray=new e,this.layoutAttributes=t,this.indexArray=new n,this.segments=new Ts,this.collisionVertexArray=new So,this.collisionVertexArrayExt=new Co}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,sd.members,!0),this.collisionVertexBufferExt=e.createVertexBuffer(this.collisionVertexArrayExt,cd.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.de
1stroy())}}J(tm,`CollisionBuffers`);class nm{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map((e=>e.id)),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=yc([]),this.placementViewportMatrix=yc([]);let t=this.layers[0]._unevaluatedLayout._values;this.textSizeData=fd(this.zoom,t[`text-size`]),this.iconSizeData=fd(this.zoom,t[`icon-size`]);let n=this.layers[0].layout,r=n.get(`symbol-sort-key`),i=n.get(`symbol-z-order`);this.canOverlap=n.get(`text-allow-overlap`)||n.get(`icon-allow-overlap`)||n.get(`text-ignore-placement`)||n.get(`icon-ignore-placement`),this.sortFeaturesByKey=i!==`viewport-y`&&r.constantOr(1)!==void 0,this.sortFeaturesByY=(i===`viewport-y`||i===`auto`&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=n.get(`text-writing-mode`).map((e=>qd[e])),this.stateDependentLayerIds=this.layers.filter((e=>e.isStateDependent())).map((e=>e.id)),this.sourceID=e.sourceID,this.projection=e.projection}createArrays(){this.text=new em(new hs(this.layers,this.zoom,(e=>/^text/.test(e)))),this.icon=new em(new hs(this.layers,this.zoom,(e=>/^icon/.test(e)))),this.glyphOffsetArray=new zo,this.lineVertexArray=new Bo,this.symbolInstances=new Ro}calculateGlyphDependencies(e,t,n,r,i){for(let n=0;n<e.length;n++)if(t[e.charCodeAt(n)]=!0,r&&i){let r=_d[e.charAt(n)];r&&(t[r.charCodeAt(0)]=!0)}}populate(e,t,n,r){let i=this.layers[0],a=i.layout,o=this.projection.name===`globe`,s=a.get(`text-font`),c=a.get(`text-field`),l=a.get(`icon-image`),u=(c.value.kind!==`constant`||c.value.value instanceof zt&&!c.value.value.isEmpty()||c.value.value.toString().length>0)&&(s.value.kind!==`constant`||s.value.value.length>0),d=l.value.kind!==`constant`||!!l.value.value||Object.keys(l.parameters).length>0,f=a.get(`symbol-sort-key`);if(this.features=[],!u&&!d)return;let p=t.iconDependencies,m=t.glyphDependencies,h=t.availableImages,g=new Wa(this.zoom);for(let{feature:t,id:c,index:l,sourceLayerIndex:_}of e){let e=i._featureFilter.needGeometry,v=qs(t,e);if(!i._featureFilter.filter(g,v,n))continue;if(e||(v.geometry=Ks(t,n,r)),o&&t.type!==1&&n.z<=5){let e=v.geometry,t=(e,t)=>Vc(pp(e.x,e.y,n,1),pp(t.x,t.y,n,1))<.98078528056;for(let n=0;n<e.length;n++)e[n]=Hs(e[n],t)}let y,b;if(u){let e=i.getValueAndResolveTokens(`text-field`,v,n,h),t=zt.factory(e);$p(t)&&(this.hasRTLText=!0),(!this.hasRTLText||Va()===`unavailable`||this.hasRTLText&&Ua.isParsed())&&(y=gd(t,i,v))}if(d){let e=i.getValueAndResolveTokens(`icon-image`,v,n,h);b=e instanceof Bt?e:Bt.fromString(e)}if(!y&&!b)continue;let x=this.sortFeaturesByKey?f.evaluate(v,{},n):void 0;if(this.features.push({id:c,text:y,icon:b,index:l,sourceLayerIndex:_,geometry:v.geometry,properties:t.properties,type:Jp[t.type],sortKey:x}),b&&(p[b.name]=!0),y){let e=s.evaluate(v,{},n).join(`,`),t=a.get(`text-rotation-alignment`)===`map`&&a.get(`symbol-placement`)!==`point`;this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(qd.vertical)>=0;for(let n of y.sections)if(n.image)p[n.image.name]=!0;else{let r=wa(y.toString()),i=n.fontStack||e,a=m[i]=m[i]||{};this.calculateGlyphDependencies(n.text,a,t,this.allowVerticalPlacement,r)}}}a.get(`symbol-placement`)===`line`&&(this.features=function(e){let t={},n={},r=[],i=0;function a(t){r.push(e[t]),i++}function o(e,t,i){let a=n[e];return delete n[e],n[t]=a,r[a].geometry[0].pop(),r[a].geometry[0]=r[a].geometry[0].concat(i[0]),a}function s(e,n,i){let a=t[n];return delete t[n],t[e]=a,r[a].geometry[0].shift(),r[a].geometry[0]=i[0].concat(r[a].geometry[0]),a}function c(e,t,n){let r=n?t[0][t[0].length-1]:t[0][0];return`${e}:${r.x}:${r.y}`}for(let l=0;l<e.length;l++){let u=e[l],d=u.geometry,f=u.text?u.text.toString():null;if(!f){a(l);continue}let p=c(f,d),m=c(f,d,!0);if(p in n&&m in t&&n[p]!==t[m]){let e=s(p,m,d),i=o(p,m,r[e].geometry);delete t[p],delete n[m],n[c(f,r[i].geometry,!0)]=i,r[e].geometry=null}else p in n?o(p,m,d):m in t?s(p,m,d):(a(l),t[p]=i-1,n[m]=i-1)}return r.filter((e=>e.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((e,t)=>
vendor: 5,245 bytes, line 1
1e.sortKey-t.sortKey))}update(e,t,n,r){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,t,this.layers,n,r),this.icon.programConfigurations.updatePaintArrays(e,t,this.layers,n,r))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}getProjection(){return this.projectionInstance||=qp(this.projection),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(e,t){let n=this.lineVertexArray.length;if(e.segment!==void 0)for(let{x:e,y:n}of t)this.lineVertexArray.emplaceBack(e,n);return{lineStartIndex:n,lineLength:this.lineVertexArray.length-n}}addSymbols(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=e.indexArray,h=e.layoutVertexArray,g=e.globeExtVertexArray,_=e.segments.prepareSegment(4*t.length,h,m,this.canOverlap?a.sortKey:void 0),v=this.glyphOffsetArray.length,y=_.vertexLength,b=this.allowVerticalPlacement&&o===qd.vertical?Math.PI/2:0,x=a.text&&a.text.sections;for(let r=0;r<t.length;r++){let{tl:i,tr:o,bl:l,br:u,tex:d,pixelOffsetTL:v,pixelOffsetBR:y,minFontScaleX:S,minFontScaleY:C,glyphOffset:w,isSDF:T,sectionIndex:E}=t[r],D=_.vertexLength,O=w[1];if(Xp(h,c.x,c.y,i.x,O+i.y,d.x,d.y,n,T,v.x,v.y,S,C),Xp(h,c.x,c.y,o.x,O+o.y,d.x+d.w,d.y,n,T,y.x,v.y,S,C),Xp(h,c.x,c.y,l.x,O+l.y,d.x,d.y+d.h,n,T,v.x,y.y,S,C),Xp(h,c.x,c.y,u.x,O+u.y,d.x+d.w,d.y+d.h,n,T,y.x,y.y,S,C),s){let{x:t,y:n,z:r}=s.anchor,[i,a,o]=s.up;Zp(g,t,n,r,i,a,o),Zp(g,t,n,r,i,a,o),Zp(g,t,n,r,i,a,o),Zp(g,t,n,r,i,a,o),Qp(e.dynamicLayoutVertexArray,t,n,r,b)}else Qp(e.dynamicLayoutVertexArray,c.x,c.y,c.z,b);m.emplaceBack(D,D+1,D+2),m.emplaceBack(D+1,D+2,D+3),_.vertexLength+=4,_.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(w[0]),r!==t.length-1&&E===t[r+1].sectionIndex||e.programConfigurations.populatePaintArrays(h.length,a,a.index,{},f,p,x&&x[E])}let S=s?s.anchor:c;e.placedSymbolArray.emplaceBack(S.x,S.y,S.z,c.x,c.y,v,this.glyphOffsetArray.length-v,y,l,u,c.segment,n?n[0]:0,n?n[1]:0,r[0],r[1],o,0,!1,0,d,0)}_commitLayoutVertex(e,t,n,r,i,a,o){e.emplaceBack(t,n,r,i,a,Math.round(o.x),Math.round(o.y))}_addCollisionDebugVertices(e,t,n,r,i,a,o){let s=n.segments.prepareSegment(4,n.layoutVertexArray,n.indexArray),c=s.vertexLength,l=o.tileAnchorX,u=o.tileAnchorY;for(let e=0;e<4;e++)n.collisionVertexArray.emplaceBack(0,0,0,0);n.collisionVertexArrayExt.emplaceBack(t,-e.padding,-e.padding),n.collisionVertexArrayExt.emplaceBack(t,e.padding,-e.padding),n.collisionVertexArrayExt.emplaceBack(t,e.padding,e.padding),n.collisionVertexArrayExt.emplaceBack(t,-e.padding,e.padding),this._commitLayoutVertex(n.layoutVertexArray,r,i,a,l,u,new p(e.x1,e.y1)),this._commitLayoutVertex(n.layoutVertexArray,r,i,a,l,u,new p(e.x2,e.y1)),this._commitLayoutVertex(n.layoutVertexArray,r,i,a,l,u,new p(e.x2,e.y2)),this._commitLayoutVertex(n.layoutVertexArray,r,i,a,l,u,new p(e.x1,e.y2)),s.vertexLength+=4;let d=n.indexArray;d.emplaceBack(c,c+1),d.emplaceBack(c+1,c+2),d.emplaceBack(c+2,c+3),d.emplaceBack(c+3,c),s.primitiveLength+=4}_addTextDebugCollisionBoxes(e,t,n,r,i,a){for(let o=r;o<i;o++){let r=n.get(o),i=this.getSymbolInstanceTextSize(e,a,t,o);this._addCollisionDebugVertices(r,i,this.textCollisionBox,r.projectedAnchorX,r.projectedAnchorY,r.projectedAnchorZ,a)}}_addIconDebugCollisionBoxes(e,t,n,r,i,a){for(let o=r;o<i;o++){let r=n.get(o),i=this.getSymbolInstanceIconSize(e,t,a.placedIconSymbolIndex);this._addCollisionDebugVertices(r,i,this.iconCollisionBox,r.projectedAnchorX,r.projectedAnchorY,r.projectedAnchorZ,a)}}generateCollisionDebugBuffers(e,t){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new tm(bo,ld.members,Ao),this.iconCollisionBox=new tm(bo,ld.members,Ao);let n=md(this.iconSizeData,e),r=md(this.textSizeData,e);for(let i=0;i<this.symbolInstances.length;i++){let a=this.symbolInstances.get(i);this._addTextDebugCollisionBoxes(r,e,t,a.textBoxStartIndex,a.textBoxEndIndex,a),this._addTextDebugCollisionBoxes(r,e,t,a.verticalTextBoxStartIndex,a.verticalTextBoxEndIndex,a),this._addIconDebugCollisionBoxes(n,e,t,a.iconBoxStartIndex,a.iconBoxEndIndex,a),this._addIconDebugCollisionBoxes(n,e,t,a.verticalIconBoxStartIndex,a.verticalIconBoxEndIndex,a)}}getSymbolInstanceTextSize(e,t,n,r){let i=this.text.placedSymbolArray.get(t.rightJustifiedTextSymbolIndex>=0?t.rightJustifiedTextSymbolIndex:t.centerJustifiedTextSymbolIndex>=0?t.centerJustifiedTextSymbolIndex:t.leftJustifiedTextSymbolIndex>=0?t.leftJustifiedTextSymbolIndex:t.verticalPlacedTextSymbolIndex>=0?t.verticalPlacedTextSymbolIndex:r),a=pd(this.textSizeData,e,i)/dd;return this.tilePixelRatio*a}getSymbolInstanceIconSize(e,t,n){let r=this.icon.placedSymbolArray.get(n),i=pd(this.iconSizeData,e,r);return this.tilePixelRatio*i}
1_commitDebugCollisionVertexUpdate(e,t,n){e.emplaceBack(t,-n,-n),e.emplaceBack(t,n,-n),e.emplaceBack(t,n,n),e.emplaceBack(t,-n,n)}_updateTextDebugCollisionBoxes(e,t,n,r,i,a){for(let o=r;o<i;o++){let r=n.get(o),i=this.getSymbolInstanceTextSize(e,a,t,o);this._commitDebugCollisionVertexUpdate(this.textCollisionBox.collisionVertexArrayExt,i,r.padding)}}_updateIconDebugCollisionBoxes(e,t,n,r,i,a){for(let o=r;o<i;o++){let r=n.get(o),i=this.getSymbolInstanceIconSize(e,t,a);this._commitDebugCollisionVertexUpdate(this.iconCollisionBox.collisionVertexArrayExt,i,r.padding)}}updateCollisionDebugBuffers(e,t){if(!this.hasDebugData())return;this.hasTextCollisionBoxData()&&this.textCollisionBox.collisionVertexArrayExt.clear(),this.hasIconCollisionBoxData()&&this.iconCollisionBox.collisionVertexArrayExt.clear();let n=md(this.iconSizeData,e),r=md(this.textSizeData,e);for(let i=0;i<this.symbolInstances.length;i++){let a=this.symbolInstances.get(i);this._updateTextDebugCollisionBoxes(r,e,t,a.textBoxStartIndex,a.textBoxEndIndex,a),this._updateTextDebugCollisionBoxes(r,e,t,a.verticalTextBoxStartIndex,a.verticalTextBoxEndIndex,a),this._updateIconDebugCollisionBoxes(n,e,t,a.iconBoxStartIndex,a.iconBoxEndIndex,a.placedIconSymbolIndex),this._updateIconDebugCollisionBoxes(n,e,t,a.verticalIconBoxStartIndex,a.verticalIconBoxEndIndex,a.placedIconSymbolIndex)}this.hasTextCollisionBoxData()&&this.textCollisionBox.collisionVertexBufferExt&&this.textCollisionBox.collisionVertexBufferExt.updateData(this.textCollisionBox.collisionVertexArrayExt),this.hasIconCollisionBoxData()&&this.iconCollisionBox.collisionVertexBufferExt&&this.iconCollisionBox.collisionVertexBufferExt.updateData(this.iconCollisionBox.collisionVertexArrayExt)}_deserializeCollisionBoxesForSymbol(e,t,n,r,i,a,o,s,c){let l={};if(t<n){let{x1:n,y1:r,x2:i,y2:a,padding:o,projectedAnchorX:s,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f,featureIndex:p}=e.get(t);l.textBox={x1:n,y1:r,x2:i,y2:a,padding:o,projectedAnchorX:s,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f},l.textFeatureIndex=p}if(r<i){let{x1:t,y1:n,x2:i,y2:a,padding:o,projectedAnchorX:s,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f,featureIndex:p}=e.get(r);l.verticalTextBox={x1:t,y1:n,x2:i,y2:a,padding:o,projectedAnchorX:s,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f},l.verticalTextFeatureIndex=p}if(a<o){let{x1:t,y1:n,x2:r,y2:i,padding:o,projectedAnchorX:s,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f,featureIndex:p}=e.get(a);l.iconBox={x1:t,y1:n,x2:r,y2:i,padding:o,projectedAnchorX:s,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f},l.iconFeatureIndex=p}if(s<c){let{x1:t,y1:n,x2:r,y2:i,padding:a,projectedAnchorX:o,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f,featureIndex:p}=e.get(s);l.verticalIconBox={x1:t,y1:n,x2:r,y2:i,padding:a,projectedAnchorX:o,projectedAnchorY:c,projectedAnchorZ:u,tileAnchorX:d,tileAnchorY:f},l.verticalIconFeatureIndex=p}return l}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let t=0;t<this.symbolInstances.length;t++){let n=this.symbolInstances.get(t);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,n.textBoxStartIndex,n.textBoxEndIndex,n.verticalTextBoxStartIndex,n.verticalTextBoxEndIndex,n.iconBoxStartIndex,n.iconBoxEndIndex,n.verticalIconBoxStartIndex,n.verticalIconBoxEndIndex))}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(e,t){let n=e.placedSymbolArray.get(t),r=n.vertexStartIndex+4*n.numGlyphs;for(let t=n.vertexStartIndex;t<r;t+=4)e.indexArray.emplaceBack(t,t+1,t+2),e.indexArray.emplaceBack(t+1,t+2,t+3)}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexe
1s;let t=Math.sin(e),n=Math.cos(e),r=[],i=[],a=[];for(let e=0;e<this.symbolInstances.length;++e){a.push(e);let o=this.symbolInstances.get(e);r.push(0|Math.round(t*o.tileAnchorX+n*o.tileAnchorY)),i.push(o.featureIndex)}return a.sort(((e,t)=>r[e]-r[t]||i[t]-i[e])),a}addToSortKeyRanges(e,t){let n=this.sortKeyRanges[this.sortKeyRanges.length-1];n&&n.sortKey===t?n.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:t,symbolInstanceStart:e,symbolInstanceEnd:e+1})}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let e of this.symbolInstanceIndexes){let t=this.symbolInstances.get(e);this.featureSortOrder.push(t.featureIndex);let{rightJustifiedTextSymbolIndex:n,centerJustifiedTextSymbolIndex:r,leftJustifiedTextSymbolIndex:i,verticalPlacedTextSymbolIndex:a,placedIconSymbolIndex:o,verticalPlacedIconSymbolIndex:s}=t;n>=0&&this.addIndicesForPlacedSymbol(this.text,n),r>=0&&r!==n&&this.addIndicesForPlacedSymbol(this.text,r),i>=0&&i!==r&&i!==n&&this.addIndicesForPlacedSymbol(this.text,i),a>=0&&this.addIndicesForPlacedSymbol(this.text,a),o>=0&&this.addIndicesForPlacedSymbol(this.icon,o),s>=0&&this.addIndicesForPlacedSymbol(this.icon,s)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}J(nm,`SymbolBucket`,{omit:[`layers`,`collisionBoxArray`,`features`,`compareText`]}),nm.MAX_GLYPHS=65535,nm.addDynamicAttributes=Qp;let rm=new eo({"symbol-placement":new Y(z.layout_symbol[`symbol-placement`]),"symbol-spacing":new Y(z.layout_symbol[`symbol-spacing`]),"symbol-avoid-edges":new Y(z.layout_symbol[`symbol-avoid-edges`]),"symbol-sort-key":new X(z.layout_symbol[`symbol-sort-key`]),"symbol-z-order":new Y(z.layout_symbol[`symbol-z-order`]),"icon-allow-overlap":new Y(z.layout_symbol[`icon-allow-overlap`]),"icon-ignore-placement":new Y(z.layout_symbol[`icon-ignore-placement`]),"icon-optional":new Y(z.layout_symbol[`icon-optional`]),"icon-rotation-alignment":new Y(z.layout_symbol[`icon-rotation-alignment`]),"icon-size":new X(z.layout_symbol[`icon-size`]),"icon-text-fit":new Y(z.layout_symbol[`icon-text-fit`]),"icon-text-fit-padding":new Y(z.layout_symbol[`icon-text-fit-padding`]),"icon-image":new X(z.layout_symbol[`icon-image`]),"icon-rotate":new X(z.layout_symbol[`icon-rotate`]),"icon-padding":new Y(z.layout_symbol[`icon-padding`]),"icon-keep-upright":new Y(z.layout_symbol[`icon-keep-upright`]),"icon-offset":new X(z.layout_symbol[`icon-offset`]),"icon-anchor":new X(z.layout_symbol[`icon-anchor`]),"icon-pitch-alignment":new Y(z.layout_symbol[`icon-pitch-alignment`]),"text-pitch-alignment":new Y(z.layout_symbol[`text-pitch-alignment`]),"text-rotation-alignment":new Y(z.layout_symbol[`text-rotation-alignment`]),"text-field":new X(z.layout_symbol[`text-field`]),"text-font":new X(z.layout_symbol[`text-font`]),"text-size":new X(z.layout_symbol[`text-size`]),"text-max-width":new X(z.layout_symbol[`text-max-width`]),"text-line-height":new X(z.layout_symbol[`text-line-height`]),"text-letter-spacing":new X(z.layout_symbol[`text-letter-spacing`]),"text-justify":new X(z.layout_symbol[`text-justify`]),"text-radial-offset":new X(z.layout_symbol[`text-radial-offset`]),"text-variable-anchor":new Y(z.layout_symbol[`text-variable-anchor`]),"text-anchor":new X(z.layout_symbol[`text-anchor`]),"text-max-angle":new Y(z.layout_symbol[`text-max-angle`]),"text-writing-mode":new Y(z.layout_symbol[`text-writing-mode`]),"text-rotate":new X(z.layout_symbol[`text-rotate`]),"text-padding":new Y(z.layout_symbol[`text-padding`]),"text-keep-upright":new Y(z.layout_symbol[`text-keep-upright`]),"text-transform":new X(z.layout_symbol[`text-transform`]),"text-offset":new X(z.layout_symbol[`text-offset`]),"text-allow-overlap":new Y(z.layout_symbol[`text-allow-overlap`]),"text-ignore-placement":new Y(z.layout_symbol[`text-ignore-placement`]),"text-optional":new Y(z.layout_symbol[`text-optional`])});var im={paint:new eo({"icon-opacity":new X(z.paint_symbol[`icon-opacity`]),"icon-color":new X(z.paint_symbol[`icon-color`]),"icon-halo-color":new X(z.paint_symbol[`icon-halo-color`]),"icon-halo-width":new X(z.paint_symbol[`icon-halo-width`]),"icon-halo-blur":new X(z.paint_symbol[`icon-halo-blur`]),"icon-translate":new Y(z.paint_symbol[`icon-translate`]),"icon-translate-anchor":new Y(z.paint_symbol[`icon-translate-anchor`]),"text-opacity":new X(z.paint_symbol[`text-opacity`]),"text-color":new X(z.paint_symbol[`text-color`],{runtimeType:vt,getOverride:e=>e.textColor,hasOverride:e=>!!e.textColor}),"text-halo-color":new X(z.paint_symbol[`text-halo-color`]),"text-halo-width":new X(z.paint_symbol[`text-halo-width`]),"text-halo-blur":new X(z.paint_symbol[`text-halo-blur`]),"text-translate":new Y(z.paint_symbol[`text-translate`]),"text-translate-anchor":new Y(z.paint_symbol[`text-translate-anchor`])}),layout:rm};class am{constructor(e){this.type=e.property.overrides?e.property.overrides.runtimeType:_t,this.defaultValue=e}evaluate(e){if(e.formattedSection){let t=this.defaultValue.property.overrides;if(t&&t.hasOverride(e.formattedSection))return t.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){this.defaultValue.isConstant()||e(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}J(am,`FormatSectionOverride`,{omit:[`defaultValue`]});class om extends Ss{constructor(e){super(e,im)}recalculate(e,t){super.recalculate(e,t),this.layout.get(`icon-rotation-alignment`)===`auto`&&(this.layout._values[`icon-rotation-alignment`]=this.layout.get(`symbol-placement`)===`point`?`viewport`:`map`),this.layout.get(`text-rotation-alignment`)===`auto`&&(this.layout._values[`text-rotation-alignment`]=this.layout.get(`symbol-placement`)===`point`?`viewport`:`map`),this.layout.get(`text-pitch-alignment`)===`auto`&&(this.layout._values[`text-pitch-alignment`]=this.layout.get(`text-rotation-alignment`)),this.layout.get(`icon-pitch-alignment`)===`auto`&&(this.layout._values[`icon-pitch-alignment`]=this.layout.get(`icon-rotation-alignment`));let n=this.layout.get(`text-writing-mode`);if(n){let e=[];for(let t of n)e.indexOf(t)<0&&e.push(t);this.layout._values[`text-writing-mode`]=e}else this.layout._values[`text-writing-mode`]=this.layout.get(`symbol-placement`)===`point`?[`horizontal`]:[`horizontal`,`vertical`];this._setPaintOverrides()}getValueAndResolveTokens(e,t,n,r){let i=this.layout.get(e).evaluate(t,{},n,r),a=this._unevaluatedLayout._values[e];return a.isDataDriven()||Xr(a.value)||!i?i:function(e,t){return t.replace(/{([^{}]+)}
1/g,((t,n)=>n in e?String(e[n]):``))}(t.properties,i)}createBucket(e){return new nm(e)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(let e of im.paint.overridableProperties){if(!om.hasPaintOverride(this.layout,e))continue;let t=this.paint.get(e),n=new Yr(new am(t),t.property.specification),r=null;r=t.value.kind===`constant`||t.value.kind===`source`?new Qr(`source`,n):new $r(`composite`,n,t.value.zoomStops,t.value._interpolationType),this.paint._values[e]=new Za(t.property,r,t.parameters)}}_handleOverridablePaintPropertyUpdate(e,t,n){return!(!this.layout||t.isDataDriven()||n.isDataDriven())&&om.hasPaintOverride(this.layout,e)}static hasPaintOverride(e,t){let n=e.get(`text-field`),r=im.paint.properties[t],i=!1,a=e=>{for(let t of e)if(r.overrides&&r.overrides.hasOverride(t))return void(i=!0)};if(n.value.kind===`constant`&&n.value.value instanceof zt)a(n.value.value.sections);else if(n.value.kind===`source`){let e=t=>{i||(t instanceof Kt&&Ut(t.value)===xt?a(t.value.sections):t instanceof Zt?a(t.sections):t.eachChild(e))},t=n.value;t._styleExpression&&e(t._styleExpression.expression)}return i}getProgramConfiguration(e){return new ms(this,e)}}var sm={paint:new eo({"background-color":new Y(z.paint_background[`background-color`]),"background-pattern":new Y(z.paint_background[`background-pattern`]),"background-opacity":new Y(z.paint_background[`background-opacity`])})},cm={paint:new eo({"raster-opacity":new Y(z.paint_raster[`raster-opacity`]),"raster-hue-rotate":new Y(z.paint_raster[`raster-hue-rotate`]),"raster-brightness-min":new Y(z.paint_raster[`raster-brightness-min`]),"raster-brightness-max":new Y(z.paint_raster[`raster-brightness-max`]),"raster-saturation":new Y(z.paint_raster[`raster-saturation`]),"raster-contrast":new Y(z.paint_raster[`raster-contrast`]),"raster-resampling":new Y(z.paint_raster[`raster-resampling`]),"raster-fade-duration":new Y(z.paint_raster[`raster-fade-duration`])})};class lm extends Ss{constructor(e){super(e,{}),this.implementation=e}is3D(){return this.implementation.renderingMode===`3d`}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){}onAdd(e){this.implementation.onAdd&&this.implementation.onAdd(e,e.painter.context.gl)}onRemove(e){this.implementation.onRemove&&this.implementation.onRemove(e,e.painter.context.gl)}}var um={paint:new eo({"sky-type":new Y(z.paint_sky[`sky-type`]),"sky-atmosphere-sun":new Y(z.paint_sky[`sky-atmosphere-sun`]),"sky-atmosphere-sun-intensity":new Y(z.paint_sky[`sky-atmosphere-sun-intensity`]),"sky-gradient-center":new Y(z.paint_sky[`sky-gradient-center`]),"sky-gradient-radius":new Y(z.paint_sky[`sky-gradient-radius`]),"sky-gradient":new $a(z.paint_sky[`sky-gradient`]),"sky-atmosphere-halo-color":new Y(z.paint_sky[`sky-atmosphere-halo-color`]),"sky-atmosphere-color":new Y(z.paint_sky[`sky-atmosphere-color`]),"sky-opacity":new Y(z.paint_sky[`sky-opacity`])})};function dm(e,t,n){let r=[0,0,1],i=$c([]);return tl(i,i,n?-_(e)+Math.PI:_(e)),el(i,i,-_(t)),Wc(r,r,i),Bc(r,r)}let fm={circle:class extends Ss{constructor(e){super(e,mc)}createBucket(e){return new Xs(e)}queryRadius(e){let t=e;return lc(`circle-radius`,this,t)+lc(`circle-stroke-width`,this,t)+uc(this.paint.get(`circle-translate`))}queryIntersectsFeature(e,t,n,r,i,a,o,s){let c=fc(this.paint.get(`circle-translate`),this.paint.get(`circle-translate-anchor`),a.angle,e.pixelToTileUnitsFactor),l=this.paint.get(`circle-radius`).evaluate(t,n)+this.paint.get(`circle-stroke-width`).evaluate(t,n);return sl(e,r,a,o,s,this.paint.get(`circle-pitch-alignment`)===`map`,this.paint.get(`circle-pitch-scale`)===`map`,c,l)}getProgramIds(){return[`circle`]}getProgramConfiguration(e){return new ms(this,e)}},heatmap:class extends Ss{createBucket(e){return new fl(e)}constructor(e){super(e,vl),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(e){e===`heatmap-color`&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=yl({expression:this._transitionablePaint._values[`heatmap-color`].value.expression,evaluationKey:`heatmapDensity`,image:this.colorRamp}),this.colorRampTexture=null}resize(){this.heatmapFbo&&=(this.heatmapFbo.destroy(),null)}queryRadius(e){return lc(`heatmap-radius`,this,e)}queryIntersectsFeature(e,t,n,r,i,a,o,s){let c=this.paint.get(`heatmap-radius`).evaluate(t,n);return sl(e,r,a,o,s,!0,!0,new p(0,0),c)}hasOffscreenPass(){return this.paint.get(`heatmap-opacity`)!==0&&this.visibility!==`none`}getProgramIds(){return[`heatmap`,`heatmapTexture`]}getProgramConfiguration(e){return new ms(this,e)}},hillshade:class extends Ss{constructor(e){super(e,bl)}hasOffscreenPass(){return this.paint.get(`hillshade-exaggeration`)!==0&&this.visibility!==`none`}getProgramIds(){return[`hillshade`,`hillshadePrepare`]}},fill:class extends Ss{constructor(e){super(e,au)}getProgramIds(){let e=this.paint.get(`fill-pattern`),t=e&&e.constantOr(1),n=[t?`fillPattern`:`fill`];return this.paint.get(`fill-antialias`)&&n.push(t&&!this.getPaintProperty(`fill-outline-color`)?`fillOutlinePattern`:`fillOutline`),n}getProgramConfiguration(e){return new ms(this,e)}recalculate(e,t){super.recalculate(e,t);let n=this.paint._values[`fill-outline-color`];n.value.kind===`constant`&&n.value.value===void 0&&(this.paint._values[`fill-outline-color`]=this.paint._values[`fill-color`])}createBucket(e){return new ru(e)}queryRadius(){return uc(this.paint.get(`fill-translate`))}queryIntersectsFeature(e,t,n,r,i,a){return!e.queryGeometry.isAboveHorizon&&$s(dc(e.tilespaceGeometry,this.paint.get(`fill-translate`),this.paint.get(`fill-translate-anchor`),a.angle,e.pixelToTileUnitsFactor),r)}
1isTileClipped(){return!0}},"fill-extrusion":class extends Ss{constructor(e){super(e,zu)}createBucket(e){return new ku(e)}queryRadius(){return uc(this.paint.get(`fill-extrusion-translate`))}is3D(){return!0}getProgramIds(){return[this.paint.get(`fill-extrusion-pattern`).constantOr(1)?`fillExtrusionPattern`:`fillExtrusion`]}getProgramConfiguration(e){return new ms(this,e)}queryIntersectsFeature(e,t,n,r,i,a,o,s,c){let l=fc(this.paint.get(`fill-extrusion-translate`),this.paint.get(`fill-extrusion-translate-anchor`),a.angle,e.pixelToTileUnitsFactor),u=this.paint.get(`fill-extrusion-height`).evaluate(t,n),d=this.paint.get(`fill-extrusion-base`).evaluate(t,n),f=[0,0],m=s&&a.elevation,h=a.elevation?a.elevation.exaggeration():1,g=e.tile.getBucket(this);if(m&&g instanceof ku){let e=g.centroidVertexArray,t=c+1;t<e.length&&(f[0]=e.geta_centroid_pos0(t),f[1]=e.geta_centroid_pos1(t))}if(f[0]===0&&f[1]===1)return!1;a.projection.name===`globe`&&(r=Lu([r],[new p(0,0),new p(Z,Z)],e.tileID.canonical).map((e=>e.polygon)).flat());let[_,v]=function(e,t,n,r,i,a,o,s,c,l,u){return e.projection.name===`globe`?function(e,t,n,r,i,a,o,s,c,l,u){let d=[],f=[],p=e.projection.upVectorScale(u,e.center.lat,e.worldSize).metersToTile,m=[0,0,0,1],h=[0,0,0,1],g=(e,t,n,r)=>{e[0]=t,e[1]=n,e[2]=r,e[3]=1},_=Iu();n>0&&(n+=_),r+=_;for(let _ of t){let t=[],v=[];for(let d of _){let f=d.x+i.x,_=d.y+i.y,y=e.projection.projectTilePoint(f,_,u),b=e.projection.upVector(u,d.x,d.y),x=n,S=r;if(o){let e=Ju(f,_,n,r,o,s,c,l);x+=e.base,S+=e.top}n===0?g(m,y.x,y.y,y.z):g(m,y.x+b[0]*p*x,y.y+b[1]*p*x,y.z+b[2]*p*x),g(h,y.x+b[0]*p*S,y.y+b[1]*p*S,y.z+b[2]*p*S),Uc(m,m,a),Uc(h,h,a),t.push(new Gu(m[0],m[1],m[2])),v.push(new Gu(h[0],h[1],h[2]))}d.push(t),f.push(v)}return[d,f]}(e,t,n,r,i,a,o,s,c,l,u):o?function(e,t,n,r,i,a,o,s,c){let l=[],u=[],d=[0,0,0,1];for(let f of e){let e=[],p=[];for(let l of f){let u=l.x+r.x,f=l.y+r.y,m=Ju(u,f,t,n,a,o,s,c);d[0]=u,d[1]=f,d[2]=m.base,d[3]=1,Zc(d,d,i),d[3]=Math.max(d[3],1e-5);let h=new Gu(d[0]/d[3],d[1]/d[3],d[2]/d[3]);d[0]=u,d[1]=f,d[2]=m.top,d[3]=1,Zc(d,d,i),d[3]=Math.max(d[3],1e-5);let g=new Gu(d[0]/d[3],d[1]/d[3],d[2]/d[3]);e.push(h),p.push(g)}l.push(e),u.push(p)}return[l,u]}(t,n,r,i,a,o,s,c,l):function(e,t,n,r,i){let a=[],o=[],s=i[8]*t,c=i[9]*t,l=i[10]*t,u=i[11]*t,d=i[8]*n,f=i[9]*n,p=i[10]*n,m=i[11]*n;for(let t of e){let e=[],n=[];for(let a of t){let t=a.x+r.x,o=a.y+r.y,h=i[0]*t+i[4]*o+i[12],g=i[1]*t+i[5]*o+i[13],_=i[2]*t+i[6]*o+i[14],v=i[3]*t+i[7]*o+i[15],y=h+s,b=g+c,x=_+l,S=Math.max(v+u,1e-5),C=h+d,w=g+f,T=_+p,E=Math.max(v+m,1e-5);e.push(new Gu(y/S,b/S,x/S)),n.push(new Gu(C/E,w/E,T/E))}a.push(e),o.push(n)}return[a,o]}(t,n,r,i,a)}(a,r,d,u,l,o,m?s:null,f,h,a.center.lat,e.tileID.canonical),y=e.queryGeometry;return function(e,t,n){let r=1/0;$s(n,t)&&(r=qu(n,t[0]));for(let i=0;i<t.length;i++){let a=t[i],o=e[i];for(let e=0;e<a.length-1;e++){let t=a[e],i=[t,a[e+1],o[e+1],o[e],t];Zs(n,i)&&(r=Math.min(r,qu(n,i)))}}return r!==1/0&&r}(_,v,y.isPointQuery()?y.screenBounds:y.screenGeometry)}},line:class extends Ss{constructor(e){super(e,td),this.gradientVersion=0}_handleSpecialPaintPropertyUpdate(e){if(e===`line-gradient`){let e=this._transitionablePaint._values[`line-gradient`].value.expression;this.stepInterpolant=e._styleExpression&&e._styleExpression.expression instanceof Fn,this.gradientVersion=(this.gradientVersion+1)%(2**53-1)}}gradientExpression(){return this._transitionablePaint._values[`line-gradient`].value.expression}recalculate(e,t){super.recalculate(e,t),this.paint._values[`line-floorwidth`]=nd.possiblyEvaluate(this._transitioningPaint._values[`line-width`].value,e)}createBucket(e){return new $u(e)}getProgramIds(){return[this.paint.get(`line-pattern`).constantOr(1)?`linePattern`:`line`]}getProgramConfiguration(e){return new ms(this,e)}queryRadius(e){let t=e,n=rd(lc(`line-width`,this,t),lc(`line-gap-width`,this,t)),r=lc(`line-offset`,this,t);return n/2+Math.abs(r)+uc(this.paint.get(`line-translate`))}queryIntersectsFeature(e,t,n,r,i,a){if(e.queryGeometry.isAboveHorizon)return!1;let o=dc(e.tilespaceGeometry,this.paint.get(`line-translate`),this.paint.get(`line-translate-anchor`),a.angle,e.pixelToTileUnitsFactor),s=e.pixelToTileUnitsFactor/2*rd(this.paint.get(`line-width`).evaluate(t,n),this.paint.get(`line-gap-width`).evaluate(t,n)),c=this.paint.get(`line-offset`).evaluate(t,n);return c&&(r=function(e,t){let n=[],r=new p(0,0);for(let i=0;i<e.length;i++){let a=e[i],o=[];for(let e=0;e<a.length;e++){let n=a[e-1],i=a[e],s=a[e+1],c=e===0?r:i.sub(n)._unit()._perp(),l=e===a.length-1?r:s.sub(i)._unit()._perp(),u=c._add(l)._unit();u._mult(1/(u.x*l.x+u.y*l.y)),o.push(u._mult(t)._add(i))}n.push(o)}return n}(r,c*e.pixelToTileUnitsFactor)),function(e,t,n){for(let r=0;r<t.length;r++){let i=t[r];
1if(e.length>=3){for(let t=0;t<i.length;t++)if(oc(e,i[t]))return!0}if(ec(e,i,n))return!0}return!1}(o,r,s)}isTileClipped(){return!0}},symbol:om,background:class extends Ss{constructor(e){super(e,sm)}getProgramIds(){return[this.paint.get(`background-pattern`)?`backgroundPattern`:`background`]}},raster:class extends Ss{constructor(e){super(e,cm)}getProgramIds(){return[`raster`]}},sky:class extends Ss{constructor(e){super(e,um),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(e){e===`sky-gradient`?this._updateColorRamp():e!==`sky-atmosphere-sun`&&e!==`sky-atmosphere-halo-color`&&e!==`sky-atmosphere-color`&&e!==`sky-atmosphere-sun-intensity`||(this._skyboxInvalidated=!0)}_updateColorRamp(){this.colorRamp=yl({expression:this._transitionablePaint._values[`sky-gradient`].value.expression,evaluationKey:`skyRadialProgress`}),this.colorRampTexture&&=(this.colorRampTexture.destroy(),null)}needsSkyboxCapture(e){if(this._skyboxInvalidated||!this.skyboxTexture||!this.skyboxGeometry)return!0;if(!this.paint.get(`sky-atmosphere-sun`)){let t=e.style.light.properties.get(`position`);return this._lightPosition.azimuthal!==t.azimuthal||this._lightPosition.polar!==t.polar}return!1}getCenter(e,t){if(this.paint.get(`sky-type`)===`atmosphere`){let n=this.paint.get(`sky-atmosphere-sun`),r=!n,i=e.style.light,a=i.properties.get(`position`);return r&&i.properties.get(`anchor`)===`viewport`&&L(`The sun direction is attached to a light with viewport anchor, lighting may behave unexpectedly.`),r?dm(a.azimuthal,90-a.polar,t):dm(n[0],90-n[1],t)}let n=this.paint.get(`sky-gradient-center`);return dm(n[0],90-n[1],t)}is3D(){return!1}isSky(){return!0}markSkyboxValid(e){this._skyboxInvalidated=!1,this._lightPosition=e.style.light.properties.get(`position`)}hasOffscreenPass(){return!0}getProgramIds(){let e=this.paint.get(`sky-type`);return e===`atmosphere`?[`skyboxCapture`,`skybox`]:e===`gradient`?[`skyboxGradient`]:null}}};class pm{constructor(e,t,n,r){this.context=e,this.format=n,this.texture=e.gl.createTexture(),this.update(t,r)}update(e,n,r){let{width:i,height:a}=e,{context:o}=this,{gl:s}=o,{HTMLImageElement:c,HTMLCanvasElement:l,HTMLVideoElement:u,ImageData:d,ImageBitmap:f}=t;if(s.bindTexture(s.TEXTURE_2D,this.texture),o.pixelStoreUnpackFlipY.set(!1),o.pixelStoreUnpack.set(1),o.pixelStoreUnpackPremultiplyAlpha.set(this.format===s.RGBA&&(!n||!1!==n.premultiply)),r||this.size&&this.size[0]===i&&this.size[1]===a){let{x:t,y:n}=r||{x:0,y:0};e instanceof c||e instanceof l||e instanceof u||e instanceof d||f&&e instanceof f?s.texSubImage2D(s.TEXTURE_2D,0,t,n,s.RGBA,s.UNSIGNED_BYTE,e):s.texSubImage2D(s.TEXTURE_2D,0,t,n,i,a,s.RGBA,s.UNSIGNED_BYTE,e.data)}else this.size=[i,a],e instanceof c||e instanceof l||e instanceof u||e instanceof d||f&&e instanceof f?s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,s.UNSIGNED_BYTE,e):s.texImage2D(s.TEXTURE_2D,0,this.format,i,a,0,this.format,s.UNSIGNED_BYTE,e.data);this.useMipmap=!!(n&&n.useMipmap&&this.isSizePowerOfTwo()),this.useMipmap&&s.generateMipmap(s.TEXTURE_2D)}bind(e,t){let{context:n}=this,{gl:r}=n;r.bindTexture(r.TEXTURE_2D,this.texture),e!==this.filter&&(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,e),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,this.useMipmap?e===r.NEAREST?r.NEAREST_MIPMAP_NEAREST:r.LINEAR_MIPMAP_NEAREST:e),this.filter=e),t!==this.wrap&&(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,t),this.wrap=t)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:e}=this.context;e.deleteTexture(this.texture),this.texture=null}}class mm{constructor(e){this._callback=e,this._triggered=!1,typeof MessageChannel<`u`&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._callback()}),0))}remove(){this._channel=void 0,this._callback=()=>{}}}class hm{constructor(){this.tasks={},this.taskQueue=[],N([`process`],this),this.invoker=new mm(this.process),this.nextId=0}add(e,t){let n=this.nextId++,r=function({type:e,isSymbolTile:t,zoom:n}){return n||=0,e===`message`?0:e!==`maybePrepare`||t?e!==`parseTile`||t?e===`parseTile`&&t?300-n:e===`maybePrepare`&&t?400-n:500:200-n:100-n}(t);if(r===0){ae();try{e()}finally{}return{cancel:()=>{}}}return this.tasks[n]={fn:e,metadata:t,priority:r,id:n},this.taskQueue.push(n),this.invoker.trigger(),{cancel:()=>{delete this.tasks[n]}}}process(){ae();try{if(this.taskQueue=this.taskQueue.filter((e=>!!this.tasks[e])),!this.taskQueue.length)return;let e=this.pick();if(e===null)return;let t=this.tasks[e];if(delete this.tasks[e],this.taskQueue.length&&this.invoker.trigger(),!t)return;t.fn()}finally{}}pick(){let e=null,t=1/0;for(let n=0;n<this.taskQueue.length;n++){let r=this.tasks[this.taskQueue[n]];r.priority<t&&(t=r.priority,e=n)}if(e===null)return null;let n=this.taskQueue[e];return this.taskQueue.splice(e,1),n}remove(){this.invoker.remove()}}class gm{constructor(e){this._stringToNumber={},this._numberToString=[];for(let t=0;t<e.length;t++){let n=e[t];this._stringToNumber[n]=t,this._numberToString[t]=n}}encode(e){return this._stringToNumber[e]}decode(e){return this._numberToString[e]}}let _m=[`tile`,`layer`,`source`,`sourceLayer`,`state`];class vm{constructor(e,t,n,r,i){this.type=`Feature`,this._vectorTileFeature=e,this._z=t,this._x=n,this._y=r,this.properties=e.properties,this.id=i}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._x,this._y,this._z).geometry),this._geometry}set geometry(e){this._geometry=e}toJSON(){let e={type:`Feature`,geometry:this.geometry,properties:this.properties};this.id!==void 0&&(e.id=this.id);for(let t of _m)this[t]!==void 0&&(e[t]=this[t]);return e}}let ym=new Uint16Array(8184);for(let e=0;e<2046;e++){let t=e+2,n=0,r=0,i=0,a=0,o=0,s=0;for(1&t?i=a=o=32:n=r=s=32;(t>>=1)>1;){let e=n+i>>1,c=r+a>>1;1&t?(i=n,a=r,n=o,r=s):(n=i,r=a,i=o,a=s),o=e,s=c}let c=4*e;ym[c+0]=n,ym[c+1]=r,ym[c+2]=i,ym[c+3]=a}
1let bm=new Uint16Array(2178),xm=new Uint8Array(1089),Sm=new Uint16Array(1089);function Cm(e){return e===0?-.03125:e===32?.03125:0}var wm=ao([{name:`a_pos`,type:`Int16`,components:2},{name:`a_texture_pos`,type:`Int16`,components:2}]);let Tm={type:2,extent:Z,loadGeometry:()=>[[new p(0,0),new p(8193,0),new p(8193,8193),new p(0,8193),new p(0,0)]]};class Em{constructor(e,t,n,r,i){this.tileID=e,this.uid=A(),this.uses=0,this.tileSize=t,this.tileZoom=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=i,this.expiredRequestCount=0,this.state=`loading`,r&&r.transform&&(this.projection=r.transform.projection)}registerFadeDuration(e){let t=e+this.timeAdded;t<it.now()||this.fadeEndTime&&t<this.fadeEndTime||(this.fadeEndTime=t)}wasRequested(){return this.state===`errored`||this.state===`loaded`||this.state===`reloading`}get tileTransform(){return this._tileTransform||=Ep(this.tileID.canonical,this.projection),this._tileTransform}loadVectorData(e,t,n){if(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(e,t){let n={};if(!t)return n;for(let r of e){let e=r.layerIds.map((e=>t.getLayer(e))).filter(Boolean);if(e.length!==0){r.layers=e,r.stateDependentLayerIds&&(r.stateDependentLayers=r.stateDependentLayerIds.map((t=>e.filter((e=>e.id===t))[0])));for(let t of e)n[t.id]=r}}return n}(e.buckets,t.style),this.hasSymbolBuckets=!1;for(let e in this.buckets){let t=this.buckets[e];if(t instanceof nm){if(this.hasSymbolBuckets=!0,!n)break;t.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let e in this.buckets){let t=this.buckets[e];if(t instanceof nm&&t.hasRTLText){this.hasRTLText=!0,Ua.isLoading()||Ua.isLoaded()||Va()!==`deferred`||Ha();break}}this.queryPadding=0;for(let e in this.buckets){let n=this.buckets[e];this.queryPadding=Math.max(this.queryPadding,t.style.getLayer(e).queryRadius(n))}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage),e.lineAtlas&&(this.lineAtlas=e.lineAtlas)}else this.collisionBoxArray=new Po}unloadVectorData(){if(this.hasData()){for(let e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlas&&=null,this.lineAtlas&&=null,this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&=(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),null),this._tileDebugBuffer&&=(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),null),this._tileDebugIndexBuffer&&=(this._tileDebugIndexBuffer.destroy(),null),this._globeTileDebugBorderBuffer&&=(this._globeTileDebugBorderBuffer.destroy(),null),this._tileDebugTextBuffer&&=(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),null),this._globeTileDebugTextBuffer&&=(this._globeTileDebugTextBuffer.destroy(),null),this.latestFeatureIndex=null,this.state=`unloaded`}}getBucket(e){return this.buckets[e.id]}upload(e){for(let t in this.buckets){let n=this.buckets[t];n.uploadPending()&&n.upload(e)}let t=e.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new pm(e,this.imageAtlas.image,t.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&=(this.glyphAtlasTexture=new pm(e,this.glyphAtlasImage,t.ALPHA),null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new pm(e,this.lineAtlas.image,t.ALPHA),this.lineAtlas.uploaded=!0)}prepare(e){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture)}queryRenderedFeatures(e,t,n,r,i,a,o,s){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:r,pixelPosMatrix:o,transform:a,params:i,tileTransform:this.tileTransform},e,t,n):{}}querySourceFeatures(e,t){let n=this.latestFeatureIndex;if(!n||!n.rawTileData)return;let r=n.loadVTLayers(),i=t?t.sourceLayer:``,a=r._geojsonTileLayer||r[i];if(!a)return;let o=di(t&&t.filter),{z:s,x:c,y:l}=this.tileID.canonical,u={z:s,x:c,y:l};for(let t=0;t<a.length;t++){let r=a.feature(t);if(o.needGeometry){let e=qs(r,!0);
1if(!o.filter(new Wa(this.tileID.overscaledZ),e,this.tileID.canonical))continue}else if(!o.filter(new Wa(this.tileID.overscaledZ),r))continue;let d=new vm(r,s,c,l,n.getId(r,i));d.tile=u,e.push(d)}}hasData(){return this.state===`loaded`||this.state===`reloading`||this.state===`expired`}patternsLoaded(){return!!this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(e){let t=this.expirationTime;if(e.cacheControl){let t=oe(e.cacheControl);t[`max-age`]&&(this.expirationTime=Date.now()+1e3*t[`max-age`])}else e.expires&&(this.expirationTime=new Date(e.expires).getTime());if(this.expirationTime){let e=Date.now(),n=!1;if(this.expirationTime>e)n=!1;else if(t)if(this.expirationTime<t)n=!0;else{let r=this.expirationTime-t;r?this.expirationTime=e+Math.max(r,3e4):n=!0}else n=!0;n?(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(),2**31-1)}setFeatureState(e,t){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData||Object.keys(e).length===0||!t)return;let n=this.latestFeatureIndex.loadVTLayers(),r=t.style.listImages();for(let i in this.buckets){if(!t.style.hasLayer(i))continue;let a=this.buckets[i],o=a.layers[0].sourceLayer||`_geojsonTileLayer`,s=n[o],c=e[o];if(!s||!c||Object.keys(c).length===0)continue;if(a.update(c,s,r,this.imageAtlas&&this.imageAtlas.patternPositions||{}),a instanceof $u||a instanceof ru){let e=t.style._getSourceCache(a.layers[0].source);t._terrain&&t._terrain.enabled&&e&&a.programConfigurations.needsUpload&&t._terrain._clearRenderCacheForTile(e.id,this.tileID)}let l=t&&t.style&&t.style.getLayer(i);l&&(this.queryPadding=Math.max(this.queryPadding,l.queryRadius(a)))}}holdingForFade(){return this.symbolFadeHoldUntil!==void 0}symbolFadeFinished(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<it.now()}clearFadeHold(){this.symbolFadeHoldUntil=void 0}setHoldDuration(e){this.symbolFadeHoldUntil=it.now()+e}setTexture(e,t){let n=t.context,r=n.gl;this.texture=this.texture||t.getTileTexture(e.width),this.texture?this.texture.update(e,{useMipmap:!0}):(this.texture=new pm(n,e,r.RGBA,{useMipmap:!0}),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),n.extTextureFilterAnisotropic&&r.texParameterf(r.TEXTURE_2D,n.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,n.extTextureFilterAnisotropicMax))}setDependencies(e,t){let n={};for(let e of t)n[e]=!0;this.dependencies[e]=n}hasDependency(e,t){for(let n of e){let e=this.dependencies[n];if(e){for(let n of t)if(e[n])return!0}}return!1}clearQueryDebugViz(){}_makeDebugTileBoundsBuffers(e,t){if(!t||t.name===`mercator`||this._tileDebugBuffer)return;let n=Ks(Tm,this.tileID.canonical,this.tileTransform)[0],r=new so,i=new jo;for(let e=0;e<n.length;e++){let{x:t,y:a}=n[e];r.emplaceBack(t,a),i.emplaceBack(e)}i.emplaceBack(0),this._tileDebugIndexBuffer=e.createIndexBuffer(i),this._tileDebugBuffer=e.createVertexBuffer(r,Jf.members),this._tileDebugSegments=Ts.simpleSegment(0,0,r.length,i.length)}_makeTileBoundsBuffers(e,t){if(this._tileBoundsBuffer||!t||t.name===`mercator`)return;let n=Ks(Tm,this.tileID.canonical,this.tileTransform)[0],r,i;if(this.isRaster){let e=function(e,t){let n=Ep(e,t),r=2**e.z;for(let i=0;i<33;i++)for(let a=0;a<33;a++){let o=Ns((e.x+(a+Cm(a))/32)/r),s=Ps((e.y+(i+Cm(i))/32)/r),c=t.project(o,s),l=i*33+a;bm[2*l+0]=Math.round((c.x*n.scale-n.x)*Z),bm[2*l+1]=Math.round((c.y*n.scale-n.y)*Z)}xm.fill(0),Sm.fill(0);for(let e=2045;e>=0;e--){let t=4*e,n=ym[t+0],r=ym[t+1],i=ym[t+2],a=ym[t+3],o=n+i>>1,s=r+a>>1,c=o+s-r,l=s+n-o,u=r*33+n,d=a*33+i,f=s*33+o,p=Math.hypot((bm[2*u+0]+bm[2*d+0])/2-bm[2*f+0],(bm[2*u+1]+bm[2*d+1])/2-bm[2*f+1])>=16;if(xm[f]=xm[f]||+!!p,e<1022){let e=(r+l>>1)*33+(n+c>>1),t=(a+l>>1)*33+(i+c>>1);xm[f]=xm[f]||xm[e]||xm[t]}}let i=new lo,a=new wo,o=0;function s(e,t){let n=t*33+e;return Sm[n]===0&&(i.emplaceBack(bm[2*n+0],bm[2*n+1],e*Z/32,t*Z/32),Sm[n]=++o),Sm[n]-1}function c(e,t,n,r,i,o){let l=e+n>>1,u=t+r>>1;if(Math.abs(e-i)+Math.abs(t-o)>1&&xm[u*33+l])c(i,o,e,t,l,u),c(n,r,i,o,l,u);else{let c=s(e,t),l=s(n,r),u=s(i,o);a.emplaceBack(c,l,u)}}return c(0,0,32,32,32,0),c(32,32,0,0,0,32),{vertices:i,indices:a}}(this.tileID.canonical,t);r=e.vertices,i=e.indices}else{r=new lo,i=new wo;for(let{x:e,y:t}of n)r.emplaceBack(e,t,0,0);let e=Sl.exports(r.int16,void 0,4);for(let t=0;t<e.length;t+=3)i.emplaceBack(e[t],e[t+1],e[t+2])}this._tileBoundsBuffer=e.createVertexBuffer(r,wm.members),this._tileBoundsIndexBuffer=e.createIndexBuffer(i),this._tileBoundsSegments=Ts.simpleSegment(0,0,r.length,i.length)}_makeGlobeTileDebugBuffers(e,t){let n=t.projection;if(!n||n.name!==`globe`||t.freezeTileCoverage)return;let r=this.tileID.canonical,i=gp(op(r,t)),a=yp(t.zoom),o;a>0&&(o=bc(new Float64Array(16),t.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(e,r,t,i,o,a),this._makeGlobeTileDebugTextBuffer(e,r,t,i,o,a)}
1_globePoint(e,t,n,r,i,a,o){let s=pp(e,t,n);if(a){let i=1<<n.z,c=As(r.center.lng),l=js(r.center.lat),u=(n.x+.5)/i-c,d=0;u>.5?d=-1:u<-.5&&(d=1);let f=(e/Z+n.x)/i+d,p=(t/Z+n.y)/i;f=(f-c)*r._pixelsPerMercatorPixel+c,p=(p-l)*r._pixelsPerMercatorPixel+l;let m=[f*r.worldSize,p*r.worldSize,0];Uc(m,m,a),s=ap(s,m,o)}return Uc(s,s,i)}_makeGlobeTileDebugBorderBuffer(e,t,n,r,i,a){let o=new so,s=new jo,c=new co,l=(e,l,u,d,f)=>{let p=(u-e)/(f-1),m=(d-l)/(f-1),h=o.length;for(let u=0;u<f;u++){let d=e+u*p,f=l+u*m;o.emplaceBack(d,f);let g=this._globePoint(d,f,t,n,r,i,a);c.emplaceBack(g[0],g[1],g[2]),s.emplaceBack(h+u)}},u=Z;l(0,0,u,0,16),l(u,0,u,u,16),l(u,u,0,u,16),l(0,u,0,0,16),this._tileDebugIndexBuffer=e.createIndexBuffer(s),this._tileDebugBuffer=e.createVertexBuffer(o,Jf.members),this._globeTileDebugBorderBuffer=e.createVertexBuffer(c,qf.members),this._tileDebugSegments=Ts.simpleSegment(0,0,o.length,s.length)}_makeGlobeTileDebugTextBuffer(e,t,n,r,i,a){let o=new so,s=new wo,c=new co;s.reserve(32),o.reserve(25),c.reserve(25);let l=(e,t)=>25*e+t;for(let e=0;e<25;e++){let s=2048*e;for(let e=0;e<25;e++){let l=2048*e;o.emplaceBack(l,s);let u=this._globePoint(l,s,t,n,r,i,a);c.emplaceBack(u[0],u[1],u[2])}}for(let e=0;e<4;e++)for(let t=0;t<4;t++){let n=l(e,t),r=l(e,t+1),i=l(e+1,t),a=l(e+1,t+1);s.emplaceBack(n,r,i),s.emplaceBack(i,r,a)}this._tileDebugTextIndexBuffer=e.createIndexBuffer(s),this._tileDebugTextBuffer=e.createVertexBuffer(o,Jf.members),this._globeTileDebugTextBuffer=e.createVertexBuffer(c,qf.members),this._tileDebugTextSegments=Ts.simpleSegment(0,0,25,32)}}class Dm{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(e,t,n){let r=String(t);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][r]=this.stateChanges[e][r]||{},O(this.stateChanges[e][r],n),this.deletedStates[e]===null){this.deletedStates[e]={};for(let t in this.state[e])t!==r&&(this.deletedStates[e][t]=null)}else if(this.deletedStates[e]&&this.deletedStates[e][r]===null){this.deletedStates[e][r]={};for(let t in this.state[e][r])n[t]||(this.deletedStates[e][r][t]=null)}else for(let t in n)this.deletedStates[e]&&this.deletedStates[e][r]&&this.deletedStates[e][r][t]===null&&delete this.deletedStates[e][r][t]}removeFeatureState(e,t,n){if(this.deletedStates[e]===null)return;let r=String(t);if(this.deletedStates[e]=this.deletedStates[e]||{},n&&t!==void 0)this.deletedStates[e][r]!==null&&(this.deletedStates[e][r]=this.deletedStates[e][r]||{},this.deletedStates[e][r][n]=null);else if(t!==void 0)if(this.stateChanges[e]&&this.stateChanges[e][r])for(n in this.deletedStates[e][r]={},this.stateChanges[e][r])this.deletedStates[e][r][n]=null;else this.deletedStates[e][r]=null;else this.deletedStates[e]=null}getState(e,t){let n=String(t),r=O({},(this.state[e]||{})[n],(this.stateChanges[e]||{})[n]);if(this.deletedStates[e]===null)return{};if(this.deletedStates[e]){let n=this.deletedStates[e][t];if(n===null)return{};for(let e in n)delete r[e]}return r}initializeTileState(e,t){e.setFeatureState(this.state,t)}coalesceChanges(e,t){let n={};for(let e in this.stateChanges){this.state[e]=this.state[e]||{};let t={};for(let n in this.stateChanges[e])this.state[e][n]||(this.state[e][n]={}),O(this.state[e][n],this.stateChanges[e][n]),t[n]=this.state[e][n];n[e]=t}for(let e in this.deletedStates){this.state[e]=this.state[e]||{};let t={};if(this.deletedStates[e]===null)for(let n in this.state[e])t[n]={},this.state[e][n]={};else for(let n in this.deletedStates[e]){if(this.deletedStates[e][n]===null)this.state[e][n]={};else for(let t of Object.keys(this.deletedStates[e][n]))delete this.state[e][n][t];t[n]=this.state[e][n]}n[e]=n[e]||{},O(n[e],t)}if(this.stateChanges={},this.deletedStates={},Object.keys(n).length!==0)for(let r in e)e[r].setFeatureState(n,t)}}class Om{constructor(e){this.size=e,this.minimums=[],this.maximums=[],this.leaves=[]}getElevation(e,t){let n=this.toIdx(e,t);return{min:this.minimums[n],max:this.maximums[n]}}isLeaf(e,t){return this.leaves[this.toIdx(e,t)]}toIdx(e,t){return t*this.size+e}}function km(e,t,n,r){let i=0,a=Number.MAX_VALUE;for(let o=0;o<3;o++)if(Math.abs(r[o])<1e-15){if(n[o]<e[o]||n[o]>t[o])return null}else{let s=1/r[o],c=(e[o]-n[o])*s,l=(t[o]-n[o])*s;if(c>l){let e=c;c=l,l=e}if(c>i&&(i=c),l<a&&(a=l),i>a)return null}return i}function Am(e,t,n,r,i,a,o,s,c,l,u){let d=r-e,f=i-t,p=a-n,m=o-e,h=s-t,g=c-n,_=u[1]*g-u[2]*h,v=u[2]*m-u[0]*g,y=u[0]*h-u[1]*m,b=d*_+f*v+p*y;if(Math.abs(b)<1e-15)return null;
1let x=1/b,S=l[0]-e,C=l[1]-t,w=l[2]-n,T=(S*_+C*v+w*y)*x;if(T<0||T>1)return null;let E=C*p-w*f,D=w*d-S*p,O=S*f-C*d,k=(u[0]*E+u[1]*D+u[2]*O)*x;return k<0||T+k>1?null:(m*E+h*D+g*O)*x}function jm(e,t,n){return(e-t)/(n-t)}function Mm(e,t,n,r,i,a,o,s,c){let l=1<<n,u=a-r,d=o-i,f=(e+1)/l*u+r,p=(t+0)/l*d+i,m=(t+1)/l*d+i;s[0]=(e+0)/l*u+r,s[1]=p,c[0]=f,c[1]=m}class Nm{constructor(e){if(this.maximums=[],this.minimums=[],this.leaves=[],this.childOffsets=[],this.nodeCount=0,this.dem=e,this._siblingOffset=[[0,0],[1,0],[0,1],[1,1]],!this.dem)return;let t=function(e){let t=Math.ceil(Math.log2(e.dim/8)),n=[],r=Math.ceil(2**t),i=1/r,a=(e,t,n,r,i)=>{let a=+!!r,o=(e+1)*n-a,s=t*n,c=(t+1)*n-a;i[0]=e*n,i[1]=s,i[2]=o,i[3]=c},o=new Om(r),s=[];for(let t=0;t<r*r;t++){a(t%r,Math.floor(t/r),i,!1,s);let n=Fm(s[0],s[1],e),c=Fm(s[2],s[1],e),l=Fm(s[2],s[3],e),u=Fm(s[0],s[3],e);o.minimums.push(Math.min(n,c,l,u)),o.maximums.push(Math.max(n,c,l,u)),o.leaves.push(1)}for(n.push(o),r/=2;r>=1;r/=2){let e=n[n.length-1];o=new Om(r);for(let t=0;t<r*r;t++){a(t%r,Math.floor(t/r),2,!0,s);let n=e.getElevation(s[0],s[1]),i=e.getElevation(s[2],s[1]),c=e.getElevation(s[2],s[3]),l=e.getElevation(s[0],s[3]),u=e.isLeaf(s[0],s[1]),d=e.isLeaf(s[2],s[1]),f=e.isLeaf(s[2],s[3]),p=e.isLeaf(s[0],s[3]),m=Math.min(n.min,i.min,c.min,l.min),h=Math.max(n.max,i.max,c.max,l.max),g=u&&d&&f&&p;o.maximums.push(h),o.minimums.push(m),o.leaves.push(h-m<=5&&g?1:0)}n.push(o)}return n}(this.dem),n=t.length-1,r=t[n];this._addNode(r.minimums[0],r.maximums[0],r.leaves[0]),this._construct(t,0,0,n,0)}raycastRoot(e,t,n,r,i,a,o=1){return km([e,t,-100],[n,r,this.maximums[0]*o],i,a)}raycast(e,t,n,r,i,a,o=1){if(!this.nodeCount)return null;let s=this.raycastRoot(e,t,n,r,i,a,o);if(s==null)return null;let c=[],l=[],u=[],d=[],f=[{idx:0,t:s,nodex:0,nodey:0,depth:0}];for(;f.length>0;){let{idx:s,t:p,nodex:m,nodey:h,depth:g}=f.pop();if(this.leaves[s]){Mm(m,h,g,e,t,n,r,u,d);let s=1<<g,c=(m+0)/s,l=(m+1)/s,f=(h+0)/s,_=(h+1)/s,v=Fm(c,f,this.dem)*o,y=Fm(l,f,this.dem)*o,b=Fm(l,_,this.dem)*o,x=Fm(c,_,this.dem)*o,S=Am(u[0],u[1],v,d[0],u[1],y,d[0],d[1],b,i,a),C=Am(d[0],d[1],b,u[0],d[1],x,u[0],u[1],v,i,a),w=Math.min(S===null?Number.MAX_VALUE:S,C===null?Number.MAX_VALUE:C);if(w!==Number.MAX_VALUE)return w;{let e=zc([],i,a,p);if(Pm(v,y,x,b,jm(e[0],u[0],d[0]),jm(e[1],u[1],d[1]))>=e[2])return p}continue}let _=0;for(let f=0;f<this._siblingOffset.length;f++){Mm((m<<1)+this._siblingOffset[f][0],(h<<1)+this._siblingOffset[f][1],g+1,e,t,n,r,u,d),u[2]=-100,d[2]=this.maximums[this.childOffsets[s]+f]*o;let p=km(u,d,i,a);if(p!=null){let e=p;c[f]=e;let t=!1;for(let n=0;n<_&&!t;n++)e>=c[l[n]]&&(l.splice(n,0,f),t=!0);t||(l[_]=f),_++}}for(let e=0;e<_;e++){let t=l[e];f.push({idx:this.childOffsets[s]+t,t:c[t],nodex:(m<<1)+this._siblingOffset[t][0],nodey:(h<<1)+this._siblingOffset[t][1],depth:g+1})}}return null}_addNode(e,t,n){return this.minimums.push(e),this.maximums.push(t),this.leaves.push(n),this.childOffsets.push(0),this.nodeCount++}_construct(e,t,n,r,i){if(e[r].isLeaf(t,n)===1)return;this.childOffsets[i]||(this.childOffsets[i]=this.nodeCount);let a=r-1,o=e[a],s=0,c=0;for(let e=0;e<this._siblingOffset.length;e++){let r=2*t+this._siblingOffset[e][0],i=2*n+this._siblingOffset[e][1],a=o.getElevation(r,i),l=o.isLeaf(r,i),u=this._addNode(a.min,a.max,l);l&&(s|=1<<e),c||=u}for(let r=0;r<this._siblingOffset.length;r++)s&1<<r||this._construct(e,2*t+this._siblingOffset[r][0],2*n+this._siblingOffset[r][1],a,c+r)}}function Pm(e,t,n,r,i,a){return G(G(e,n,a),G(t,r,a),i)}function Fm(e,t,n){let r=n.dim,i=C(e*r-.5,0,r-1),a=C(t*r-.5,0,r-1),o=Math.floor(i),s=Math.floor(a),c=Math.min(o+1,r-1),l=Math.min(s+1,r-1);return Pm(n.get(o,s),n.get(c,s),n.get(o,l),n.get(c,l),i-o,a-s)}let Im={mapbox:[6553.6,25.6,.1,1e4],terrarium:[256,1,1/256,32768]};class Lm{get tree(){return this._tree||this._buildQuadTree(),this._tree}constructor(e,t,n,r=!1,i=!1){if(this.uid=e,t.height!==t.width)throw RangeError(`DEM tiles must be square`);if(n&&n!==`mapbox`&&n!==`terrarium`)return L(`"${n}" is not a valid encoding type. Valid types include "mapbox" and "terrarium".`);this.stride=t.height;let a=this.dim=t.height-2,o=new Uint32Array(t.data.buffer);if(this.pixels=new Uint8Array(t.data.buffer),this.encoding=n||`mapbox`,this.borderReady=r,!r){for(let e=0;e<a;e++)o[this._idx(-1,e)]=o[this._idx(0,e)],o[this._idx(a,e)]=o[this._idx(a-1,e)],o[this._idx(e,-1)]=o[this._idx(e,0)],o[this._idx(e,a)]=o[this._idx(e,a-1)];o[this._idx(-1,-1)]=o[this._idx(0,0)],o[this._idx(a,-1)]=o[this._idx(a-1,0)],o[this._idx(-1,a)]=o[this._idx(0,a-1)],o[this._idx(a,a)]=o[this._idx(a-1,a-1)],i&&this._buildQuadTree()}}_buildQuadTree(){this._tree=new Nm(this)}get(e,t,n=!1){n&&(e=C(e,-1,this.dim),t=C(t,-1,this.dim));let r=4*this._idx(e,t);return(this.encoding===`terrarium`?this._unpackTerrarium:this._unpackMapbox)(this.pixels[r],this.pixels[r+1],this.pixels[r+2])}static getUnpackVector(e){return Im[e]}get unpackVector(){return Im[this.encoding]}_idx(e,t){if(e<-1||e>=this.dim+1||t<-1||t>=this.dim+1)throw RangeError(`out of range source coordinates for DEM data`);return(t+1)*this.stride+(e+1)}
1_unpackMapbox(e,t,n){return(256*e*256+256*t+n)/10-1e4}_unpackTerrarium(e,t,n){return 256*e+t+n/256-32768}static pack(e,t){let n=[0,0,0,0],r=Lm.getUnpackVector(t),i=Math.floor((e+r[3])/r[2]);return n[2]=i%256,i=Math.floor(i/256),n[1]=i%256,i=Math.floor(i/256),n[0]=i,n}getPixels(){return new _l({width:this.stride,height:this.stride},this.pixels)}backfillBorder(e,t,n){if(this.dim!==e.dim)throw Error(`dem dimension mismatch`);let r=t*this.dim,i=t*this.dim+this.dim,a=n*this.dim,o=n*this.dim+this.dim;switch(t){case-1:r=i-1;break;case 1:i=r+1}switch(n){case-1:a=o-1;break;case 1:o=a+1}let s=-t*this.dim,c=-n*this.dim;for(let t=a;t<o;t++)for(let n=r;n<i;n++){let r=4*this._idx(n,t),i=4*this._idx(n+s,t+c);this.pixels[r+0]=e.pixels[i+0],this.pixels[r+1]=e.pixels[i+1],this.pixels[r+2]=e.pixels[i+2],this.pixels[r+3]=e.pixels[i+3]}}onDeserialize(){this._tree&&(this._tree.dem=this)}}J(Lm,`DEMData`),J(Nm,`DemMinMaxQuadTree`,{omit:[`dem`]});class Rm{constructor(e,t){this.max=e,this.onRemove=t,this.reset()}reset(){for(let e in this.data)for(let t of this.data[e])t.timeout&&clearTimeout(t.timeout),this.onRemove(t.value);return this.data={},this.order=[],this}add(e,t,n){let r=e.wrapped().key;this.data[r]===void 0&&(this.data[r]=[]);let i={value:t,timeout:void 0};if(n!==void 0&&(i.timeout=setTimeout((()=>{this.remove(e,i)}),n)),this.data[r].push(i),this.order.push(r),this.order.length>this.max){let e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}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){let t=this.data[e].shift();return t.timeout&&clearTimeout(t.timeout),this.data[e].length===0&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),t.value}getByKey(e){let t=this.data[e];return t?t[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,t){if(!this.has(e))return this;let n=e.wrapped().key,r=t===void 0?0:this.data[n].indexOf(t),i=this.data[n][r];return this.data[n].splice(r,1),i.timeout&&clearTimeout(i.timeout),this.data[n].length===0&&delete this.data[n],this.onRemove(i.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){let e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this}filter(e){let t=[];for(let n in this.data)for(let r of this.data[n])e(r.value)||t.push(r);for(let e of t)this.remove(e.value.tileID,e)}}class zm{constructor(e,t,n){this.func=e,this.mask=t,this.range=n}}zm.ReadOnly=!1,zm.ReadWrite=!0,zm.disabled=new zm(519,zm.ReadOnly,[0,1]);let Bm=7680;class Vm{constructor(e,t,n,r,i,a){this.test=e,this.ref=t,this.mask=n,this.fail=r,this.depthFail=i,this.pass=a}}Vm.disabled=new Vm({func:519,mask:0},0,0,Bm,Bm,Bm);class Hm{constructor(e,t,n){this.blendFunction=e,this.blendColor=t,this.mask=n}}Hm.Replace=[1,0],Hm.disabled=new Hm(Hm.Replace,It.transparent,[!1,!1,!1,!1]),Hm.unblended=new Hm(Hm.Replace,It.transparent,[!0,!0,!0,!0]),Hm.alphaBlended=new Hm([1,771],It.transparent,[!0,!0,!0,!0]);let Um=1029,Wm=2305;class Gm{constructor(e,t,n){this.enable=e,this.mode=t,this.frontFace=n}}Gm.disabled=new Gm(!1,Um,Wm),Gm.backCCW=new Gm(!0,Um,Wm),Gm.backCW=new Gm(!0,Um,2304),Gm.frontCW=new Gm(!0,1028,2304),Gm.frontCCW=new Gm(!0,1028,Wm);class Km extends lt{constructor(e,t,n){super(),this.id=e,this._onlySymbols=n,t.on(`data`,(e=>{e.dataType===`source`&&e.sourceDataType===`metadata`&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&e.dataType===`source`&&e.sourceDataType===`content`&&(this.reload(),this.transform&&this.update(this.transform))})),t.on(`error`,(()=>{this._sourceErrored=!0})),this._source=t,this._tiles={},this._cache=new Rm(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=t.minTileCacheSize,this._maxTileCacheSize=t.maxTileCacheSize,this._loadedParentTiles={},this._coveredTiles={},this._state=new Dm,this._isRaster=this._source.type===`raster`||this._source.type===`raster-dem`||this._source.type===`custom`&&this._source._dataType===`raster`}onAdd(e){this.map=e,this._minTileCacheSize=this._minTileCacheSize===void 0&&e?e._minTileCacheSize:this._minTileCacheSize,this._maxTileC
1acheSize=this._maxTileCacheSize===void 0&&e?e._maxTileCacheSize:this._maxTileCacheSize}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(let e in this._tiles){let t=this._tiles[e];if(t.state!==`loaded`&&t.state!==`errored`)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(e,t){return e.isSymbolTile=this._onlySymbols,this._source.loadTile(e,t)}_unloadTile(e){if(this._source.unloadTile)return this._source.unloadTile(e,(()=>{}))}_abortTile(e){if(this._source.abortTile)return this._source.abortTile(e,(()=>{}))}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(let t in this._tiles){let n=this._tiles[t];n.upload(e),n.prepare(this.map.style.imageManager)}}getIds(){return D(this._tiles).map((e=>e.tileID)).sort(qm).map((e=>e.key))}getRenderableIds(e){let t=[];for(let n in this._tiles)this._isIdRenderable(+n,e)&&t.push(this._tiles[n]);return e?t.sort(((e,t)=>{let n=e.tileID,r=t.tileID,i=new p(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new p(r.canonical.x,r.canonical.y)._rotate(this.transform.angle);return n.overscaledZ-r.overscaledZ||a.y-i.y||a.x-i.x})).map((e=>e.tileID.key)):t.map((e=>e.tileID)).sort(qm).map((e=>e.key))}hasRenderableParent(e){let t=this.findLoadedParent(e,0);return!!t&&this._isIdRenderable(t.tileID.key)}_isIdRenderable(e,t){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(t||!this._tiles[e].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(let e in this._tiles)this._tiles[e].state!==`errored`&&this._reloadTile(+e,`reloading`)}}_reloadTile(e,t){let n=this._tiles[e];n&&(n.state!==`loading`&&(n.state=t),this._loadTile(n,this._tileLoaded.bind(this,n,e,t)))}_tileLoaded(e,t,n,r){if(r)if(e.state=`errored`,r.status!==404)this._source.fire(new ct(r,{tile:e}));else if(this._source.type===`raster-dem`&&this.usedForTerrain&&this.map.painter.terrain){let e=this.map.painter.terrain;this.update(this.transform,e.getScaledDemTileSize(),!0),e.resetTileLookupCache(this.id)}else this.update(this.transform);else e.timeAdded=it.now(),n===`expired`&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(t,e),this._source.type===`raster-dem`&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),this._source.fire(new st(`data`,{dataType:`source`,tile:e,coord:e.tileID,sourceCacheId:this.id}))}_backfillDEM(e){let t=this.getRenderableIds();for(let r=0;r<t.length;r++){let i=t[r];if(e.neighboringTiles&&e.neighboringTiles[i]){let t=this.getTileByID(i);n(e,t),n(t,e)}}function n(e,t){if(!e.dem||e.dem.borderReady)return;e.needsHillshadePrepare=!0,e.needsDEMTextureUpload=!0;let n=t.tileID.canonical.x-e.tileID.canonical.x,r=t.tileID.canonical.y-e.tileID.canonical.y,i=2**e.tileID.canonical.z,a=t.tileID.key;n===0&&r===0||Math.abs(r)>1||(Math.abs(n)>1&&(Math.abs(n+i)===1?n+=i:Math.abs(n-i)===1&&(n-=i)),t.dem&&e.dem&&(e.dem.backfillBorder(t.dem,n,r),e.neighboringTiles&&e.neighboringTiles[a]&&(e.neighboringTiles[a].backfilled=!0)))}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,t,n,r){for(let i in this._tiles){let a=this._tiles[i];if(r[i]||!a.hasData()||a.tileID.overscaledZ<=t||a.tileID.overscaledZ>n)continue;let o=a.tileID;for(;a&&a.tileID.overscaledZ>t+1;){let e=a.tileID.scaledTo(a.tileID.overscaledZ-1);a=this._tiles[e.key],a&&a.hasData()&&(o=e)}let s=o;for(;s.overscaledZ>t;)if(s=s.scaledTo(s.overscaledZ-1),e[s.key]){r[o.key]=o;break}}}findLoadedParent(e,t){if(e.key in this._loadedParentTiles){let n=this._loadedParentTiles[e.key];return n&&n.tileID.overscaledZ>=t?n:null}for(let n=e.overscaledZ-1;n>=t;n--){let t=e.scaledTo(n),r=this._getLoadedTile(t);if(r)return r}}_getLoadedTile(e){let t=this._tiles[e.key];return t&&t.hasData()?t:this._cache.getByKey(this._source.reparseOverscaled?e.wrapped().key:e.canonical.key)}updateCacheSize(e,t){t||=this._source.tileSize;let n=Math.ceil(e.width/t)+1,r=Math.ceil(e.height/t)+1,i=Math.floor(n*r*5),a=typeof this._minTileCacheSize==`number`?Math.max(this._minTileCacheSize,i):i,o=typeof this._maxTileC
1acheSize==`number`?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(o)}handleWrapJump(e){let t=Math.round((e-(this._prevLng===void 0?e:this._prevLng))/360);if(this._prevLng=e,t){let e={};for(let n in this._tiles){let r=this._tiles[n];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+t),e[r.tileID.key]=r}this._tiles=e;for(let e in this._timers)clearTimeout(this._timers[e]),delete this._timers[e];for(let e in this._tiles)this._setTileReloadTimer(+e,this._tiles[e])}}update(e,t,n){if(this.transform=e,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!n)return;let r;this.updateCacheSize(e,t),this.transform.projection.name!==`globe`&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?r=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((e=>new Uu(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y))):(r=e.coveringTiles({tileSize:t||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!n,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(r=r.filter((e=>this._source.hasTile(e))))):r=[];let i=this._updateRetainedTiles(r);if(Jm(this._source.type)&&r.length!==0){let e={},t={},n=Object.keys(i);for(let r of n){let n=i[r],a=this._tiles[r];if(!a||a.fadeEndTime&&a.fadeEndTime<=it.now())continue;let o=this.findLoadedParent(n,Math.max(n.overscaledZ-Km.maxOverzooming,this._source.minzoom));o&&(this._addTile(o.tileID),e[o.tileID.key]=o.tileID),t[r]=n}let a=r[r.length-1].overscaledZ;for(let e in this._tiles){let n=this._tiles[e];if(i[e]||!n.hasData())continue;let r=n.tileID;for(;r.overscaledZ>a;){r=r.scaledTo(r.overscaledZ-1);let a=this._tiles[r.key];if(a&&a.hasData()&&t[r.key]){i[e]=n.tileID;break}}}for(let t in e)i[t]||(this._coveredTiles[t]=!0,i[t]=e[t])}for(let e in i)this._tiles[e].clearFadeHold();let a=function(e,t){let n=[];for(let r in e)r in t||n.push(r);return n}(this._tiles,i);for(let e of a){let t=this._tiles[e];t.hasSymbolBuckets&&!t.holdingForFade()?t.setHoldDuration(this.map._fadeDuration):t.hasSymbolBuckets&&!t.symbolFadeFinished()||this._removeTile(+e)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(let e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(+e)}_updateRetainedTiles(e){let t={};if(e.length===0)return t;let n={},r=e.reduce(((e,t)=>Math.min(e,t.overscaledZ)),1/0),i=e[0].overscaledZ,a=Math.max(i-Km.maxOverzooming,this._source.minzoom),o=Math.max(i+Km.maxUnderzooming,this._source.minzoom),s={};for(let n of e){let e=this._addTile(n);t[n.key]=n,e.hasData()||r<this._source.maxzoom&&(s[n.key]=n)}this._retainLoadedChildren(s,r,o,t);for(let r of e){let e=this._tiles[r.key];if(e.hasData())continue;if(r.canonical.z>=this._source.maxzoom){let e=r.children(this._source.maxzoom)[0],n=this.getTile(e);if(n&&n.hasData()){t[e.key]=e;continue}}else{let e=r.children(this._source.maxzoom);if(t[e[0].key]&&t[e[1].key]&&t[e[2].key]&&t[e[3].key])continue}let i=e.wasRequested();for(let o=r.overscaledZ-1;o>=a;--o){let a=r.scaledTo(o);if(n[a.key]||(n[a.key]=!0,e=this.getTile(a),!e&&i&&(e=this._addTile(a)),e&&(t[a.key]=a,i=e.wasRequested(),e.hasData())))break}}return t}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(let e in this._tiles){let t=[],n,r=this._tiles[e].tileID;for(;r.overscaledZ>0;){if(r.key in this._loadedParentTiles){n=this._loadedParentTiles[r.key];break}t.push(r.key);let e=r.scaledTo(r.overscaledZ-1);if(n=this._getLoadedTile(e),n)break;r=e}for(let e of t)this._loadedParentTiles[e]=n}}_addTile(e){let t=this._tiles[e.key];if(t)return t;t=this._cache.getAndRemove(e),t&&(this._setTileReloadTimer(e.key,t),t.tileID=e,this._state.initializeTileState(t,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,t)));let n=!!t;if(!n){let n=this.map?this.map.painter:null;t=new Em(e,this._source.tileSize*e.overscaleFactor(),this.transform.tileZoom,n,this._isRaster),this._loadTile(t,this._tileLoaded.bind(this,t,e.key,t.state))}return t?(t.uses++,this._tiles[e.key]=t,n||this._source.fire(new st(`dataloading`,{tile:t,coord:t.tileID,dataType:`source`})),t):null}_setTileReloadTimer(e,t){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);let n=t.getExpiryTimeout();n&&(this._timers[e]=setTimeout((()=>{this._reloadTile(e,`expired`),delete this._timers[e]}),n))}_removeTile(e){let t=this._tiles[e];t&&(t.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),t.uses>0||(t.hasData()&&t.state!==`reloading`?this._cache.add(t.tileID,t,t.getExpiryTimeout()):(t.aborted=!0,this._abortTile(t),this._unloadTile(t))))}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(let e in this._tiles)this._removeTile(+e);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id
1)}tilesIn(e,t,n){let r=[],i=this.transform;if(!i)return r;let a=i.projection.name===`globe`,o=As(i.center.lng);for(let s in this._tiles){let c=this._tiles[s];if(n&&c.clearQueryDebugViz(),c.holdingForFade())continue;let l;if(a){let e=c.tileID.canonical;if(e.z===0){let t=[Math.abs(C(o,...Ym(e,-1))-o),Math.abs(C(o,...Ym(e,1))-o)];l=[0,2*t.indexOf(Math.min(...t))-1]}else{let t=[Math.abs(C(o,...Ym(e,-1))-o),Math.abs(C(o,...Ym(e,0))-o),Math.abs(C(o,...Ym(e,1))-o)];l=[t.indexOf(Math.min(...t))-1]}}else l=[0];for(let n of l){let a=e.containsTile(c,i,t,n);a&&r.push(a)}}return r}getVisibleCoordinates(e){let t=this.getRenderableIds(e).map((e=>this._tiles[e].tileID));for(let e of t)e.projMatrix=this.transform.calculateProjMatrix(e.toUnwrapped());return t}hasTransition(){if(this._source.hasTransition())return!0;if(Jm(this._source.type))for(let e in this._tiles){let t=this._tiles[e];if(t.fadeEndTime!==void 0&&t.fadeEndTime>=it.now())return!0}return!1}setFeatureState(e,t,n){this._state.updateState(e||=`_geojsonTileLayer`,t,n)}removeFeatureState(e,t,n){this._state.removeFeatureState(e||=`_geojsonTileLayer`,t,n)}getFeatureState(e,t){return this._state.getState(e||=`_geojsonTileLayer`,t)}
1setDependencies(e,t,n){let r=this._tiles[e];r&&r.setDependencies(t,n)}reloadTilesForDependencies(e,t){for(let n in this._tiles)this._tiles[n].hasDependency(e,t)&&this._reloadTile(+n,`reloading`);this._cache.filter((n=>!n.hasDependency(e,t)))}_preloadTiles(e,t){let n=new Map,r=Array.isArray(e)?e:[e],i=this.map.painter.terrain,a=this.usedForTerrain&&i?i.getScaledDemTileSize():this._source.tileSize;for(let e of r){let t=e.coveringTiles({tileSize:a,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(let e of t)n.set(e.key,e);this.usedForTerrain&&e.updateElevation(!1)}E(Array.from(n.values()),((e,t)=>{let n=new Em(e,this._source.tileSize*e.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(n,(e=>{this._source.type===`raster-dem`&&n.dem&&this._backfillDEM(n),t(e,n)}))}),t)}}function qm(e,t){let n=Math.abs(2*e.wrap)-+(e.wrap<0),r=Math.abs(2*t.wrap)-+(t.wrap<0);return e.overscaledZ-t.overscaledZ||r-n||t.canonical.y-e.canonical.y||t.canonical.x-e.canonical.x}function Jm(e){return e===`raster`||e===`image`||e===`video`||e===`custom`}function Ym(e,t){let n=1<<e.z;return[e.x/n+t,(e.x+1)/n+t]}Km.maxOverzooming=10,Km.maxUnderzooming=3;class Xm{constructor(e,t,n){this._demTile=e,this._dem=this._demTile.dem,this._scale=t,this._offset=n}static create(e,t,n){let r=n||e.findDEMTileFor(t);if(!r||!r.dem)return;let i=r.dem,a=r.tileID,o=1<<t.canonical.z-a.canonical.z;return new Xm(r,r.tileSize/Z/o,[(t.canonical.x/o-a.canonical.x)*i.dim,(t.canonical.y/o-a.canonical.y)*i.dim])}tileCoordToPixel(e,t){let n=t*this._scale+this._offset[1];return new p(Math.floor(e*this._scale+this._offset[0]),Math.floor(n))}getElevationAt(e,t,n,r){let i=e*this._scale+this._offset[0],a=t*this._scale+this._offset[1],o=Math.floor(i),s=Math.floor(a),c=this._dem;return r=!!r,n?G(G(c.get(o,s,r),c.get(o,s+1,r),a-s),G(c.get(o+1,s,r),c.get(o+1,s+1,r),a-s),i-o):c.get(o,s,r)}getElevationAtPixel(e,t,n){return this._dem.get(e,t,!!n)}getMeterToDEM(e){return(1<<this._demTile.tileID.canonical.z)*Ms(1,e)*this._dem.stride}}class Zm{constructor(e,t){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Wi(Z,16,0),this.featureIndexArray=new Ho,this.promoteId=t}insert(e,t,n,r,i,a=0){let o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(n,r,i,a);let s=this.grid;for(let e=0;e<t.length;e++){let n=t[e],r=[1/0,1/0,-1/0,-1/0];for(let e=0;e<n.length;e++){let t=n[e];r[0]=Math.min(r[0],t.x),r[1]=Math.min(r[1],t.y),r[2]=Math.max(r[2],t.x),r[3]=Math.max(r[3],t.y)}r[0]<Z&&r[1]<Z&&r[2]>=0&&r[3]>=0&&s.insert(o,r[0],r[1],r[2],r[3])}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new Su(new bd(this.rawTileData)).layers,this.sourceLayerCoder=new gm(this.vtLayers?Object.keys(this.vtLayers).sort():[`_geojsonTileLayer`]),this.vtFeatures={};for(let e in this.vtLayers)this.vtFeatures[e]=[]}return this.vtLayers}query(e,t,n,r){this.loadVTLayers();let i=e.params||{},a=di(i.filter),o=e.tileResult,s=e.transform,c=o.bufferedTilespaceBounds,l=this.grid.query(c.min.x,c.min.y,c.max.x,c.max.y,((e,t,n,r)=>sc(o.bufferedTilespaceGeometry,e,t,n,r)));l.sort($m);let u=null;s.elevation&&l.length>0&&(u=Xm.create(s.elevation,this.tileID));let d={},f;for(let s=0;s<l.length;s++){let c=l[s];if(c===f)continue;f=c;let p=this.featureIndexArray.get(c),m=null;this.loadMatchingFeature(d,p,a,i.layers,i.availableImages,t,n,r,((t,n,r,i=0)=>(m||=Ks(t,this.tileID.canonical,e.tileTransform),n.queryIntersectsFeature(o,t,r,m,this.z,e.transform,e.pixelPosMatrix,u,i))))}return d}loadMatchingFeature(e,t,n,r,i,a,o,s,c){let{featureIndex:l,bucketIndex:u,sourceLayerIndex:d,layoutVertexArrayOffset:f}=t,p=this.bucketLayerIDs[u];if(r&&!function(e,t){for(let n=0;n<e.length;n++)if(t.indexOf(e[n])>=0)return!0;return!1}(r,p))return;let m=this.sourceLayerCoder.decode(d),h=this.vtLayers[m].feature(l);if(n.needGeometry){let e=qs(h,!0);if(!n.filter(new Wa(this.tileID.overscaledZ),e,this.tileID.canonical))return}
1else if(!n.filter(new Wa(this.tileID.overscaledZ),h))return;let g=this.getId(h,m);for(let t=0;t<p.length;t++){let n=p[t];if(r&&r.indexOf(n)<0)continue;let u=a[n];if(!u)continue;let d={};g!==void 0&&s&&(d=s.getState(u.sourceLayer||`_geojsonTileLayer`,g));let m=O({},o[n]);m.paint=Qm(m.paint,u.paint,h,d,i),m.layout=Qm(m.layout,u.layout,h,d,i);let _=!c||c(h,u,d,f);if(!_)continue;let v=new vm(h,this.z,this.x,this.y,g);v.layer=m;let y=e[n];y===void 0&&(y=e[n]=[]),y.push({featureIndex:l,feature:v,intersectionZ:_})}}lookupSymbolFeatures(e,t,n,r,i,a,o,s){let c={};this.loadVTLayers();let l=di(i);for(let i of e)this.loadMatchingFeature(c,{bucketIndex:n,sourceLayerIndex:r,featureIndex:i,layoutVertexArrayOffset:0},l,a,o,s,t);return c}loadFeature(e){let{featureIndex:t,sourceLayerIndex:n}=e;this.loadVTLayers();let r=this.sourceLayerCoder.decode(n),i=this.vtFeatures[r];if(i[t])return i[t];let a=this.vtLayers[r].feature(t);return i[t]=a,a}hasLayer(e){for(let t of this.bucketLayerIDs)for(let n of t)if(e===n)return!0;return!1}getId(e,t){let n=e.id;if(this.promoteId){let r=typeof this.promoteId==`string`?this.promoteId:this.promoteId[t];r!=null&&(n=e.properties[r]),typeof n==`boolean`&&(n=Number(n))}return n}}function Qm(e,t,n,r,i){return P(e,((e,a)=>{let o=t instanceof Qa?t.get(a):null;return o&&o.evaluate?o.evaluate(n,r,i):o}))}function $m(e,t){return t-e}J(Zm,`FeatureIndex`,{omit:[`rawTileData`,`sourceLayerCoder`]});class eh{constructor(e,t){this.width=e,this.height=t,this.nextRow=0,this.image=new gl({width:e,height:t}),this.positions={},this.uploaded=!1}getDash(e,t){let n=this.getKey(e,t);return this.positions[n]}trim(){let e=this.width,t=this.height=M(this.nextRow);this.image.resize({width:e,height:t})}getKey(e,t){return e.join(`,`)+t}getDashRanges(e,t,n){let r=[],i=e.length%2==1?-e[e.length-1]*n:0,a=e[0]*n,o=!0;r.push({left:i,right:a,isDash:o,zeroLength:e[0]===0});let s=e[0];for(let t=1;t<e.length;t++){o=!o;let c=e[t];i=s*n,s+=c,a=s*n,r.push({left:i,right:a,isDash:o,zeroLength:c===0})}return r}addRoundDash(e,t,n){let r=t/2;for(let t=-n;t<=n;t++){let i=this.width*(this.nextRow+n+t),a=0,o=e[a];for(let s=0;s<this.width;s++){s/o.right>1&&(o=e[++a]);let c=Math.abs(s-o.left),l=Math.abs(s-o.right),u=Math.min(c,l),d,f=t/n*(r+1);if(o.isDash){let e=r-Math.abs(f);d=Math.sqrt(u*u+e*e)}else d=r-Math.sqrt(u*u+f*f);this.image.data[i+s]=Math.max(0,Math.min(255,d+128))}}}addRegularDash(e,t){for(let t=e.length-1;t>=0;--t){let n=e[t],r=e[t+1];n.zeroLength?e.splice(t,1):r&&r.isDash===n.isDash&&(r.left=n.left,e.splice(t,1))}let n=e[0],r=e[e.length-1];n.isDash===r.isDash&&(n.left=r.left-this.width,r.right=n.right+this.width);let i=this.width*this.nextRow,a=0,o=e[a];for(let n=0;n<this.width;n++){n/o.right>1&&(o=e[++a]);let r=Math.abs(n-o.left),s=Math.abs(n-o.right),c=Math.min(r,s);this.image.data[i+n]=Math.max(0,Math.min(255,(o.isDash?c:-c)+t+128))}}addDash(e,t){let n=this.getKey(e,t);if(this.positions[n])return this.positions[n];let r=t===`round`,i=r?7:0,a=2*i+1;if(this.nextRow+a>this.height)return L(`LineAtlas out of space`),null;e.length===0&&e.push(1);let o=0;for(let t=0;t<e.length;t++)e[t]<0&&(L(`Negative value is found in line dasharray, replacing values with 0`),e[t]=0),o+=e[t];if(o!==0){let n=this.width/o,a=this.getDashRanges(e,this.width,n);r?this.addRoundDash(a,n,i):this.addRegularDash(a,t===`square`?.5*n:0)}let s=this.nextRow+i;this.nextRow+=a;let c={tl:[s,i],br:[o,0]};return this.positions[n]=c,c}}J(eh,`LineAtlas`);class th{constructor(e){let t={},n=[];for(let r in e){let i=e[r],a=t[r]={};for(let e in i.glyphs){let t=i.glyphs[+e];if(!t||t.bitmap.width===0||t.bitmap.height===0)continue;let r=t.metrics.localGlyph?2:1,o={x:0,y:0,w:t.bitmap.width+2*r,h:t.bitmap.height+2*r};n.push(o),a[e]=o}}let{w:r,h:i}=Wd(n),a=new gl({width:r||1,height:i||1});for(let n in e){let r=e[n];for(let e in r.glyphs){let i=r.glyphs[+e];if(!i||i.bitmap.width===0||i.bitmap.height===0)continue;let o=t[n][e],s=i.metrics.localGlyph?2:1;gl.copy(i.bitmap,a,{x:0,y:0},{x:o.x+s,y:o.y+s},i.bitmap)}}this.image=a,this.positions=t}}J(th,`GlyphAtlas`);class nh{constructor(e){this.tileID=new Uu(e.tileID.overscaledZ,e.tileID.wrap,e.tileID.canonical.z,e.tileID.canonical.x,e.tileID.canonical.y),this.tileZoom=e.tileZoom,this.uid=e.uid,this.zoom=e.zoom,this.canonical=e.tileID.canonical,this.pixelRatio=e.pixelRatio,this.tileSize=e.tileSize,this.source=e.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=e.showCollisionBoxes,this.collectResourceTiming=!!e.collectResourceTiming,this.returnDependencies=!!e.returnDependencies,this.promoteId=e.promoteId,this.enableTerrain=!!e.enableTerrain,this.isSymbolTile=e.isSymbolTile,this.tileTransform=Ep(e.tileID.canonical,e.projection),this.projection=e.projection}parse(e,t,n,r,i){this.status=`parsing`,this.data=e,this.collisionBoxArray=new Po;
1let a=new gm(Object.keys(e.layers).sort()),o=new Zm(this.tileID,this.promoteId);o.bucketLayerIDs=[];let s={},c=new eh(256,256),l={featureIndex:o,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:c,availableImages:n},u=t.familiesBySource[this.source];for(let t in u){let r=e.layers[t];if(!r)continue;let i=!1,c=!1;for(let e of u[t])e[0].type===`symbol`?i=!0:c=!0;if(!0===this.isSymbolTile&&!i||!1===this.isSymbolTile&&!c)continue;r.version===1&&L(`Vector tile source "${this.source}" layer "${t}" does not use vector tile spec v2 and therefore may have some rendering errors.`);let d=a.encode(t),f=[];for(let e=0;e<r.length;e++){let n=r.feature(e),i=o.getId(n,t);f.push({feature:n,id:i,index:e,sourceLayerIndex:d})}for(let e of u[t]){let t=e[0];this.isSymbolTile!==void 0&&t.type===`symbol`!==this.isSymbolTile||t.minzoom&&this.zoom<Math.floor(t.minzoom)||t.maxzoom&&this.zoom>=t.maxzoom||t.visibility!==`none`&&(rh(e,this.zoom,n),(s[t.id]=t.createBucket({index:o.bucketLayerIDs.length,layers:e,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:d,sourceID:this.source,enableTerrain:this.enableTerrain,projection:this.projection.spec,availableImages:n})).populate(f,l,this.tileID.canonical,this.tileTransform),o.bucketLayerIDs.push(e.map((e=>e.id))))}}let d,f,p,m;c.trim();let h={type:`maybePrepare`,isSymbolTile:this.isSymbolTile,zoom:this.zoom},g=P(l.glyphDependencies,(e=>Object.keys(e).map(Number)));Object.keys(g).length?r.send(`getGlyphs`,{uid:this.uid,stacks:g},((e,t)=>{d||(d=e,f=t,y.call(this))}),void 0,!1,h):f={};let _=Object.keys(l.iconDependencies);_.length?r.send(`getImages`,{icons:_,source:this.source,tileID:this.tileID,type:`icons`},((e,t)=>{d||(d=e,p=t,y.call(this))}),void 0,!1,h):p={};let v=Object.keys(l.patternDependencies);function y(){if(d)return i(d);if(f&&p&&m){let e=new th(f),t=new Kd(p,m);for(let r in s){let i=s[r];i instanceof nm?(rh(i.layers,this.zoom,n),Lf(i,f,e.positions,p,t.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection)):i.hasPattern&&(i instanceof $u||i instanceof ru||i instanceof ku)&&(rh(i.layers,this.zoom,n),i.addFeatures(l,this.tileID.canonical,t.patternPositions,n,this.tileTransform))}this.status=`done`,i(null,{buckets:D(s).filter((e=>!e.isEmpty())),featureIndex:o,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,lineAtlas:c,imageAtlas:t,glyphMap:this.returnDependencies?f:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}v.length?r.send(`getImages`,{icons:v,source:this.source,tileID:this.tileID,type:`patterns`},((e,t)=>{d||(d=e,m=t,y.call(this))}),void 0,!1,h):m={},y.call(this)}}function rh(e,t,n){let r=new Wa(t);for(let t of e)t.recalculate(r,n)}class ih{constructor(e){this.entries={},this.scheduler=e}request(e,t,n,r){let i=this.entries[e]=this.entries[e]||{callbacks:[]};if(i.result){let[e,n]=i.result;return this.scheduler?this.scheduler.add((()=>{r(e,n)}),t):r(e,n),()=>{}}return i.callbacks.push(r),i.cancel||=n(((n,r)=>{i.result=[n,r];for(let e of i.callbacks)this.scheduler?this.scheduler.add((()=>{e(n,r)}),t):e(n,r);setTimeout((()=>delete this.entries[e]),3e3)})),()=>{i.result||(i.callbacks=i.callbacks.filter((e=>e!==r)),i.callbacks.length||(i.cancel(),delete this.entries[e]))}}}function ah(e,t,n){let r=JSON.stringify(e.request);return e.data&&(this.deduped.entries[r]={result:[null,e.data]}),this.deduped.request(r,{type:`parseTile`,isSymbolTile:e.isSymbolTile,zoom:e.tileZoom},(t=>{let r=we(e.request,((e,r,i,a)=>{e?t(e):r&&t(null,{vectorTile:n?void 0:new Su(new bd(r)),rawData:r,cacheControl:i,expires:a})}));return()=>{r.cancel(),t()}}),t)}e.ARRAY_TYPE=gc,e.AUTH_ERR_MSG=Ae,e.Aabb=ol,e.Actor=class{constructor(e,n,r){this.target=e,this.parent=n,this.mapId=r,this.callbacks={},this.cancelCallbacks={},N([`receive`],this),this.target.addEventListener(`message`,this.receive,!1),this.globalScope=ae()?e:t,this.scheduler=new hm}send(e,t,n,r,i=!1,a){let o=Math.round(0xde0b6b3a7640000*Math.random()).toString(36).substring(0,10);n&&(n.metadata=a,this.callbacks[o]=n);let s=ce(this.globalScope)?void 0:[];return this.target.postMessage({id:o,type:e,hasCallback:!!n,targetMapId:r,mustQueue:i,sourceMapId:this.mapId,data:Yi(t,s)},s),{cancel:()=>{n&&delete this.callbacks[o],this.target.postMessage({id:o,type:`<cancel>`,targetMapId:r,sourceMapId:this.mapId})}}}receive(e){let t=e.data,n=t.id;if(n&&(!t.targetMapId||this.mapId===t.targetMapId))if(t.type===`<cancel>`){let e=this.cancelCallbacks[n];delete this.cancelCallbacks[n],e&&e.cancel()}else if(t.mustQueue||ae()){let e=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add((()=>this.processTask(n,t)),e&&e.metadata||{type:`message`})}else this.processTask(n,t)}processTask(e,t){if(t.type===`<response>`){let n=this.callbacks[e];delete this.callbacks[e],n&&(t.error?n(Xi(t.error)):n(null,Xi(t.data)))}else{let n=ce(this.globalScope)?void 0:[],r=t.hasCallback?(t,r)=>{delete this.cancelCallbacks[e],this.target.postMessage({id:e,type:`<response>`,sourceMapId:this.mapId,error:t?Yi(t):null,data:Yi(r,n)},n)}:e=>{},i=Xi(t.data);if(this.parent[t.type])this.parent[t.type](t.sourceMapId,i,r);else if(this.parent.getWorkerSource){let e=t.type.split(`.`);this.parent.getWorkerSource(t.sourceMapId,e[0],i.source)[e[1]](i,r)}else r(Error(`Could not find function ${t.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener(`message`,this.receive,!1)}},e.CanonicalTileID=Vu,e.Color=It,e.ColorMode=Hm,e.CullFaceMode=Gm,e.DEMData=Lm,e.DataConstantProperty=Y,e.DedupedRequest=ih,e.DepthMode=zm,e.EXT
1ENT=Z,e.Elevation=class{isDataAvailableAtPoint(e){let t=this._source();if(this.isUsingMockSource()||!t||e.y<0||e.y>1)return!1;let n=t.getSource().maxzoom,r=1<<n,i=Math.floor(e.x),a=Math.floor((e.x-i)*r),o=Math.floor(e.y*r),s=this.findDEMTileFor(new Uu(n,i,n,a,o));return!(!s||!s.dem)}getAtPointOrZero(e,t=0){return this.getAtPoint(e,t)||0}getAtPoint(e,t,n=!0){if(this.isUsingMockSource())return null;t??=null;let r=this._source();if(!r||e.y<0||e.y>1)return t;let i=r.getSource().maxzoom,a=1<<i,o=Math.floor(e.x),s=e.x-o,c=new Uu(i,o,i,Math.floor(s*a),Math.floor(e.y*a)),l=this.findDEMTileFor(c);if(!l||!l.dem)return t;let u=l.dem,d=1<<l.tileID.canonical.z,f=(s*d-l.tileID.canonical.x)*u.dim,p=(e.y*d-l.tileID.canonical.y)*u.dim,m=Math.floor(f),h=Math.floor(p);return(n?this.exaggeration():1)*G(G(u.get(m,h),u.get(m,h+1),p-h),G(u.get(m+1,h),u.get(m+1,h+1),p-h),f-m)}getAtTileOffset(e,t,n){let r=1<<e.canonical.z;return this.getAtPointOrZero(new Rs(e.wrap+(e.canonical.x+t/Z)/r,(e.canonical.y+n/Z)/r))}getAtTileOffsetFunc(e,t,n,r){return i=>{let a=this.getAtTileOffset(e,i.x,i.y),o=r.upVector(e.canonical,i.x,i.y);return Rc(o,o,a*r.upVectorScale(e.canonical,t,n).metersToTile),o}}getForTilePoints(e,t,n,r){if(this.isUsingMockSource())return!1;let i=Xm.create(this,e,r);return!!i&&(t.forEach((e=>{e[2]=this.exaggeration()*i.getElevationAt(e[0],e[1],n)})),!0)}getMinMaxForTile(e){if(this.isUsingMockSource())return null;let t=this.findDEMTileFor(e);if(!t||!t.dem)return null;let n=t.dem.tree,r=t.tileID,i=1<<e.canonical.z-r.canonical.z,a=e.canonical.x/i-r.canonical.x,o=e.canonical.y/i-r.canonical.y,s=0;for(let t=0;t<e.canonical.z-r.canonical.z&&!n.leaves[s];t++){a*=2,o*=2;let e=2*Math.floor(o)+Math.floor(a);s=n.childOffsets[s]+e,a%=1,o%=1}return{min:this.exaggeration()*n.minimums[s],max:this.exaggeration()*n.maximums[s]}}getMinElevationBelowMSL(){throw Error(`Pure virtual method called.`)}raycast(e,t,n){throw Error(`Pure virtual method called.`)}pointCoordinate(e){throw Error(`Pure virtual method called.`)}_source(){throw Error(`Pure virtual method called.`)}isUsingMockSource(){throw Error(`Pure virtual method called.`)}exaggeration(){throw Error(`Pure virtual method called.`)}findDEMTileFor(e){throw Error(`Pure virtual method called.`)}get visibleDemTiles(){throw Error(`Getter must be implemented in subclass.`)}},e.ErrorEvent=ct,e.EvaluationParameters=Wa,e.Event=st,e.Evented=lt,e.FillExtrusionBucket=ku,e.Frustum=al,e.FrustumCorners=il,e.GLOBE_METERS_TO_ECEF=Xf,e.GLOBE_RADIUS=Yf,e.GLOBE_SCALE_MATCH_LATITUDE=45,e.GLOBE_ZOOM_THRESHOLD_MAX=6,e.GLOBE_ZOOM_THRESHOLD_MIN=5,e.GlobeSharedBuffers=class{constructor(e){this._createGrid(e),this._createPoles(e)}destroy(){this._poleIndexBuffer.destroy(),this._gridBuffer.destroy(),this._gridIndexBuffer.destroy(),this._poleNorthVertexBuffer.destroy(),this._poleSouthVertexBuffer.destroy();for(let e of this._poleSegments)e.destroy();for(let e of this._gridSegments)e.destroy();if(this._wireframeIndexBuffer){this._wireframeIndexBuffer.destroy();for(let e of this._wireframeSegments)e.destroy()}}_createGrid(e){let t=new so,n=new wo;for(let e=0;e<65;e++)for(let n=0;n<65;n++)t.emplaceBack(n,e);this._gridSegments=[];for(let e=0,t=0;e<Zf.length;e++){let r=Zf[e];for(let e=0;e<r;e++)for(let t=0;t<64;t++){let r=e*65+t;n.emplaceBack(r+1,r,r+65),n.emplaceBack(r+65,r+65+1,r+1)}let i=64*r*2;this._gridSegments.push(Ts.simpleSegment(0,t,(r+1)*65,i)),t+=i}this._gridBuffer=e.createVertexBuffer(t,Jf.members),this._gridIndexBuffer=e.createIndexBuffer(n,!0)}_createPoles(e){let t=new wo;for(let e=0;e<=64;e++)t.emplaceBack(0,e+1,e+2);this._poleIndexBuffer=e.createIndexBuffer(t,!0);let n=new Oo,r=new Oo;this._poleSegments=[];for(let e=0,t=0;e<5;e++){let i=360/(1<<e);n.emplaceBack(0,-Yf,0,.5,0),r.emplaceBack(0,-Yf,0,.5,1);for(let e=0;e<=64;e++){let t=e/64,[a,o,s]=dp(Cp,wp,G(0,i,t),Yf);n.emplaceBack(a,o,s,t,0),r.emplaceBack(a,o,s,t,1)}this._poleSegments.push(Ts.simpleSegment(t,0,66,64)),t+=66}this._poleNorthVertexBuffer=e.createVertexBuffer(n,Kf,!1),this._poleSouthVertexBuffer=e.createVertexBuffer(r,Kf,!1)}getGridBuffers(e){return[this._gridBuffer,this._gridIndexBuffer,this._gridSegments[e]]}getPoleBuffers(e){return[this._poleNorthVertexBuffer,this._poleSouthVertexBuffer,this._poleIndexBuffer,this._poleSegments[e]]}getWirefameBuffers(e,t){if(!this._wireframeSegments){let t=new Ao;this._wireframeSegments=[];for(let e=0,n=0;e<Zf.length;e++){let r=Zf[e];for(let e=0;e<r;e++)for(let n=0;n<64;n++){let r=e*65+n;t.emplaceBack(r,r+1),t.emplaceBack(r,r+65),t.emplaceBack(r,r+65+1)}let i=r*64*3;this._wireframeSegments.push(Ts.simpleSegment(0,n,(r+1)*65,i)),n+=i}this._wireframeIndexBuffer=e.createIndexBuffer(t)}return[this._gridBuffer,this._wireframeIndexBuffer,this._wireframeSegments[t]]}},e.GlyphManager=Sf,e.ImagePosition=Gd,e.LivePerformanceUtils=Ze,e.LngLat=Q,e.LngLatBounds=Es,e.LocalGlyphMode=xf,e.MAX_MERCATOR_LATITUDE=Is,e.MercatorCoordinate=Rs,e.ONE_EM=dd,e.OverscaledTileID=Uu,e.PerformanceMarkers=Xe,e.Properties=eo,e.RGBAImage=_l,e.Ray=rl,e.RequestManager=class{constructor(e,t,n){this._transformRequestFn=e,this._customAccessToken=t,this._silenceAuthErrors=!!n,this._createSkuToken()}_createSkuToken(){let e=function(){let e=``;for(let t=0;t<10;t++)e+=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`[Math.floor(62*Math.random())];return{token:[`1`,`01`,e].join(``),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=e.token,this._skuTokenExpiresAt=e.tokenExpiresAt}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(e,t){return this._transformRequestFn&&this._transformRequestFn(e,t)||{url:e}}normalizeStyleURL(e,t){if(!je(e))return e;let n=Le(e);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||t)}normalizeGlyphsURL(e,t){if(!je(e))return e;let n=Le(e);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||t)}normalizeSourceURL(e,t,n,r){if(!je(e))return e;let i=Le(e);return i.path=`/v4/${i.authority}.json`,i.params.push(`secure`),n&&i.params.push(`language=${n}`),r&&i.params.push(`worldview=${r}`),this._makeAPIURL(i,this._customAccessToken||t)}normalizeSpriteURL(e,t,n,r){let i=Le(e);return je(e)?(i.path=`/styles/v1${i.path}/sprite${t}${n}`,this._makeAPIURL(i,this._customAccessToken||r)):(i.path+=`${t}${n}`,Re(i))}normalizeTileURL(e,t,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),e&&!je(e))return e;let r=Le(e);r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${t||n&&r.authority!==`raster`&&n===512?`@2x`:``}${a.supported?`.webp`:`$1`}`),r.authority===`raster`?r.path=`/${i.RASTER_URL_PREFIX}${r.path}`:(r.path=r.path.replace(/^.+\/v4\//,`/`),r.path=`/${i.TILE_URL_VERSION}${r.path}`);let o=this._customAccessToken||function(e){for(let t of e){let e=t.match(/^access_token=(.*)$/);if(e)return e[1]}return null}(r.params)||i.ACCESS_TOKEN;return i.REQUIRE_ACCESS_TOKEN&&o&&this._skuToken&&r.params.push(`sku=${this._skuToken}`),this._makeAPIURL(r,o)}canonicalizeTileURL(e,t){let n=Le(e);if(!n.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!n.path.match(/\.[\w]+$/))return e;let r=`mapbox://`;n.path.match(/^\/raster\/v1\//)?r+=`raster/${n.path.replace(`/${i.RASTER_URL_PREFIX}/`,``)}`:r+=`tiles/${n.path.replace(`/${i.TILE_URL_VERSION}/`,``)}`;let a=n.params;return t&&(a=a.filter((e=>!e.match(/^access_token=/)))),a.length&&(r+=`?${a.join(`&`)}`),r}canonicalizeTileset(e,t){let n=!!t&&je(t),r=[];for(let t of e.tiles||[])Me(t)?r.push(this.canonicalizeTileURL(t,n)):r.push(t);return r}_makeAPIURL(e,t){let n=`See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes`,r=Le(i.API_URL);if(e.protocol=r.protocol,e.authority=r.authority,e.protocol===`http`){let t=e.params.indexOf(`secure`);t>=0&&e.params.splice(t,1)}if(r.path!==`/`&&(e.path=`${r.path}${e.path}`),!i.REQUIRE_ACCESS_TOKEN)return Re(e);if(t||=i.ACCESS_TOKEN,!this._silenceAuthErrors){if(!t)throw Error(`An API access token is required to use Mapbox GL. ${n}`);if(t[0]===`s`)throw Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${n}`)}return e.params=e.params.filter((e=>e.indexOf(`access_token`)===-1)),e.params.push(`access_token=${t||``}`),Re(e)}},e.ResourceType=be,e.SegmentVector=Ts,e.SourceCache=Km,e.StencilMode=Vm,e.StructArrayLayout1ui2=jo,e.StructArrayLayout2f1f2i16=xo,e.StructArrayLayout2i4=so,e.StructArrayLayout2ui4=Ao,e.StructArrayLayout3f12=Co,e.StructArrayLayout3ui6=wo,e.StructArrayLayout4i8=lo,e.StructArrayLayout5f20=Oo,e.Texture=pm,e.Tile=Em,e.Transitionable=qa,e.Uniform1f=ns,e.Uniform1i=class extends ts{constructor(e){super(e),this.current=0}set(e,t,n){this.fetchUniformLocation(e,t)&&this.current!==n&&(this.current=n,this.gl.uniform1i(this.location,n))}},e.Uniform2f=class extends ts{constructor(e){super(e),this.current=[0,0]}set(e,t,n){this.fetchUniformLocation(e,t)&&(n[0]===this.current[0]&&n[1]===this.current[1]||(this.current=n,this.gl.uniform2f(this.location,n[0],n[1])))}},e.Uniform3f=class extends ts{constructor(e){super(e),this.current=[0,0,0]}set(e,t,n){this.fetchUniformLocation(e,t)&&(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])))}},e.Uniform4f=rs,e.UniformColor=is,e.UniformMatrix2f=class extends ts{constructor(e){super(e),this.current=ss}set(e,t,n){if(this.fetchUniformLocation(e,t)){for(let e=0;e<4;e++)if(n[e]!==this.current[e]){this.current=n,this.gl.uniformMatrix2fv(this.location,!1,n);break}}}},e.UniformMatrix3f=class extends ts{constructor(e){super(e),this.current=os}set(e,t,n){if(this.fetchUniformLocation(e,t)){for(let e=0;e<9;e++)if(n[e]!==this.current[e]){this.current=n,this.gl.uniformMatrix3fv(this.location,!1,n);break}}}},e.UniformMatrix4f=class extends ts{constructor(e){super(e),this.current=as}set(e,t,n){if(this.fetchUniformLocation(e,t)){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 e=1;e<16;e++)if(n[e]!==this.current[e]){this.current=n,this.gl.uniformMatrix4fv(this.location,!1,n);break}}}},e.UnwrappedTileID=Hu,e.ValidationError=q,e.VectorTileFeature=Cu,e.VectorTileWorkerSource=class extends lt{constructor(e,t,n,r,i){super(),this.actor=e,this.layerIndex=t,this.availableImages=n,this.loadVectorData=i||ah,this.loading={},this.loaded={},this.deduped=new ih(e.scheduler),this.isSpriteLoaded=r,this.scheduler
1=e.scheduler}loadTile(e,t){let n=e.uid,r=e&&e.request,i=r&&r.collectResourceTiming,a=this.loading[n]=new nh(e);a.abort=this.loadVectorData(e,((o,s)=>{let c=!this.loading[n];if(delete this.loading[n],c||o||!s)return a.status=`done`,c||(this.loaded[n]=a),t(o);let l=s.rawData,u={};s.expires&&(u.expires=s.expires),s.cacheControl&&(u.cacheControl=s.cacheControl),a.vectorTile=s.vectorTile||new Su(new bd(l));let d=()=>{a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,((e,n)=>{if(e||!n)return t(e);let a={};if(i){let e=et(r);e.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(e)))}t(null,O({rawTileData:l.slice(0)},n,u,a))}))};this.isSpriteLoaded?d():this.once(`isSpriteLoaded`,(()=>{this.scheduler?this.scheduler.add(d,{type:`parseTile`,isSymbolTile:e.isSymbolTile,zoom:e.tileZoom}):d()})),this.loaded=this.loaded||{},this.loaded[n]=a}))}reloadTile(e,t){let n=this.loaded,r=e.uid,i=this;if(n&&n[r]){let a=n[r];a.showCollisionBoxes=e.showCollisionBoxes,a.enableTerrain=!!e.enableTerrain,a.projection=e.projection,a.tileTransform=Ep(e.tileID.canonical,e.projection);let o=(e,n)=>{let r=a.reloadCallback;r&&(delete a.reloadCallback,a.parse(a.vectorTile,i.layerIndex,this.availableImages,i.actor,r)),t(e,n)};a.status===`parsing`?a.reloadCallback=o:a.status===`done`&&(a.vectorTile?a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,o):o())}}abortTile(e,t){let n=e.uid,r=this.loading[n];r&&(r.abort&&r.abort(),delete this.loading[n]),t()}removeTile(e,t){let n=this.loaded,r=e.uid;n&&n[r]&&delete n[r],t()}},e.WritingMode=qd,e.add=Nc,e.addDynamicAttributes=Qp,e.adjoint=function(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8];return e[0]=o*u-s*l,e[1]=i*l-r*u,e[2]=r*s-i*o,e[3]=s*c-a*u,e[4]=n*u-i*c,e[5]=i*a-n*s,e[6]=a*l-o*c,e[7]=r*c-n*l,e[8]=n*o-r*a,e},e.asyncAll=E,e.bezier=x,e.bindAll=N,e.boundsAttributes=wm,e.bufferConvexPolygon=function(e,t){let n=[];for(let r=0;r<e.length;r++){let i=T(r-1,-1,e.length-1),a=T(r+1,-1,e.length-1),o=e[r],s=e[a],c=e[i].sub(o).unit(),l=s.sub(o).unit(),u=l.angleWithSep(c.x,c.y),d=c.add(l).unit().mult(-1*t/Math.sin(u/2));n.push(o.add(d))}return n},e.cacheEntryPossiblyAdded=function(e){ye++,ye>he&&(e.getActor().send(`enforceCacheSizeLimit`,me),ye=0)},e.calculateGlobeLabelMatrix=function(e,t){let{x:n,y:r}=e.point,i=vp(n,r,e.worldSize/e._pixelsPerMercatorPixel,0,0);return xc(i,i,_p(ip(t)))},e.calculateGlobeMatrix=function(e){let{x:t,y:n}=e.point,{lng:r,lat:i}=e._center;return vp(t,n,e.worldSize,r,i)},e.calculateGlobeMercatorMatrix=function(e){let t=e.pixelsPerMeter,n=t/Ms(1,e.center.lat),r=yc(new Float64Array(16));return Sc(r,r,[e.point.x,e.point.y,0]),Cc(r,r,[n,n,t]),Float32Array.from(r)},e.circumferenceAtLatitude=ks,e.clamp=C,e.clearTileCache=function(e){if(!ge())return;let n=t.caches.delete(de);e&&n.catch(e).then((()=>e()))},e.clipLine=_f,e.clone=function(e){var t=new gc(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},e.clone$1=I,e.collisionCircleLayout=ud,e.config=i,e.conjugate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e},e.create=function(){var e=new gc(16);return gc!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e},e.create$1=_c,e.createExpression=Zr,e.createLayout=ao,e.createStyleLayer=function(e){return e.type===`custom`?new lm(e):new fm[e.type](e)},e.cross=Hc,e.degToRad=_,e.distance=function(e,t){return Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2])},e.div=function(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e},e.dot=Vc,e.earthRadius=Ds,e.ease=S,e.easeCubicInOut=b,e.ecefToLatLng=function([e,t,n]){let r=Math.hypot(e,t,n),i=Math.atan2(e,n),a=.5*Math.PI-Math.acos(-t/r);return new Q(v(i),v(a))},e.emitValidationErrors=Ui,e.endsWith=te,e.enforceCacheSizeLimit=function(e){_e(),fe&&fe.then((t=>{t.keys().then((n=>{for(let r=0;r<n.length-e;r++)t.delete(n[r])}))}))},e.evaluateSizeForFeature=pd,e.evaluateSizeForZoom=md,e.evaluateVariableOffset=If,e.evented=Ba,e.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},e.exactEquals$1=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},e.exported=it,e.exported$1=a,e.extend=O,e.extend$1=ut,e.fillExtrusionHeightLift=Iu,e.filterObject=F,e.fromMat4=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e},e.fromQuat=function(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n+n,s=r+r,c=i+i,l=n*o,u=r*o,d=r*s,f=i*o,p=i*s,m=i*c,h=a*o,g=a*s,_=a*c;return e[0]=1-d-m,e[1]=u+_,e[2]=f-g,e[3]=0,e[4]=u-_,e[5]=1-l-m,e[6]=p+h,e[7]=0,e[8]=f+g,e[9]=p-h,e[10]=1-l-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},e.fromRotation=function(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},e.fromScaling=Ec,e.furthestTileCorner=function(e){return y[Math.round((e+45+360)%360/90)%4]},e.getAABBPointSquareDist=function(e,t,n){let r=0;for(let i=0;i<2;
1++i){let a=n?n[i]:0;e[i]>a&&(r+=(e[i]-a)*(e[i]-a)),t[i]<a&&(r+=(a-t[i])*(a-t[i]))}return r},e.getAnchorAlignment=af,e.getAnchorJustification=Rf,e.getBounds=function(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x),i=Math.max(i,a.y);return{min:new p(t,n),max:new p(r,i)}},e.getColumn=ue,e.getGridMatrix=function(e,t,n,r){let i=t.getNorth(),a=t.getSouth(),o=t.getWest(),s=t.getEast(),c=1<<e.z,l=s-o,u=i-a,d=l/64,f=-u/Zf[n],p=[0,d,0,f,0,0,i,o,0];if(e.z>0){let e=180/r;vc(p,p,[e/l+1,0,0,0,e/u+1,0,-.5*e/d,.5*e/f,1])}return p[2]=c,p[5]=e.x,p[8]=e.y,p},e.getImage=ke,e.getJSON=function(e,t){return Ce(O(e,{type:`json`}),t)},e.getLatitudinalLod=function(e){let t=80.051129;e=C(e,-80.051129,t)/t*90;let n=Math.abs(Math.sin(_(e)))**3;return Math.round(n*(Zf.length-1))},e.getMapSessionAPI=Je,e.getPerformanceMeasurement=et,e.getProjection=qp,e.getRTLTextPluginStatus=Va,e.getReferrer=Se,e.getTilePoint=function(e,{x:t,y:n},r=0){return new p(((t-r)*e.scale-e.x)*Z,(n*e.scale-e.y)*Z)},e.getTileVec3=function(e,t,n=0){return Mc(((t.x-n)*e.scale-e.x)*Z,(t.y*e.scale-e.y)*Z,Fs(t.z,t.y))},e.getVideo=function(e,n){let r=t.document.createElement(`video`);r.muted=!0,r.onloadstart=function(){n(null,r)};for(let n=0;n<e.length;n++){let i=t.document.createElement(`source`);Te(e[n])||(r.crossOrigin=`Anonymous`),i.src=e[n],r.appendChild(i)}return{cancel:()=>{}}},e.globeCenterToScreenPoint=function(e){let t=[0,0,0],n=yc(new Float64Array(16));return xc(n,e.pixelMatrix,e.globeMatrix),Uc(t,t,n),new p(t[0],t[1])},e.globeDenormalizeECEF=_p,e.globeECEFOrigin=function(e,t){let n=[0,0,0];return Uc(n,n,gp(ip(t.canonical))),Uc(n,n,e),n},e.globeNormalizeECEF=gp,e.globePixelsToTileUnits=function(e,t){return Z/(512*2**e)*mp(ip(t))},e.globePoleMatrixForTile=function(e,t,n){let r=yc(new Float64Array(16)),i=(t/(1<<e)-.5)*Math.PI*2;return Tc(r,n.globeMatrix,i),Float32Array.from(r)},e.globeTileBounds=ip,e.globeTiltAtLngLat=bp,e.globeToMercatorTransition=yp,e.globeUseCustomAntiAliasing=function(e,t,n){let r=yp(n.zoom),i=e.style.map._antialias,a=!!t.extStandardDerivatives,o=t.extStandardDerivativesForceOff||e.terrain&&e.terrain.exaggeration()>0;return r===0&&!i&&!o&&a},e.identity=yc,e.identity$1=$c,e.invert=bc,e.isFullscreen=function(){return!!t.document.fullscreenElement||!!t.document.webkitFullscreenElement},e.isLngLatBehindGlobe=xp,e.isMapAuthenticated=function(e){return Ye.has(e)},e.isMapboxURL=je,e.isSafariWithAntialiasingBug=function(e){let t=e.navigator?e.navigator.userAgent:null;return!!ce(e)&&t&&(t.match(`Version/15.4`)||t.match(`Version/15.5`)||t.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},e.latFromMercatorY=Ps,e.latLngToECEF=fp,e.len=Jc,e.length=jc,e.length$1=function(e){return Math.hypot(e[0],e[1],e[2],e[3])},e.lngFromMercatorX=Ns,e.loadVectorTile=ah,e.makeRequest=Ce,e.mapValue=function(e,t,n,r,i){return C((e-t)/(n-t)*(i-r)+r,r,i)},e.mercatorScale=Ls,e.mercatorXfromLng=As,e.mercatorYfromLat=js,e.mercatorZfromAltitude=Ms,e.mul=Oc,e.mul$1=qc,e.multiply=xc,e.multiply$1=vc,e.multiply$2=Fc,e.nextPowerOfTwo=M,e.normalize=Bc,e.normalize$1=nl,e.normalize$2=Xc,e.number=G,e.ortho=function(e,t,n,r,i,a,o){var s=1/(t-n),c=1/(r-i),l=1/(a-o);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(t+n)*s,e[13]=(i+r)*c,e[14]=(o+a)*l,e[15]=1,e},e.pbf=bd,e.perspective=function(e,t,n,r,i){var a,o=1/Math.tan(t/2);return e[0]=o/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0?(e[10]=(i+r)*(a=1/(r-i)),e[14]=2*i*r*a):(e[10]=-1,e[14]=-2*r),e},e.pick=function(e,t){let n={};for(let r=0;r<t.length;r++){let i=t[r];i in e&&(n[i]=e[i])}return n},e.plugin=Ua,e.pointGeometry=p,e.polesInViewport=function(e){let t=yc(new Float64Array(16));xc(t,e.pixelMatrix,e.globeMatrix);let n=[0,Qf,0],r=[0,$f,0];return Uc(n,n,t),Uc(r,r,t),[n[0]>0&&n[0]<=e.width&&n[1]>0&&n[1]<=e.height&&!xp(e,new Q(e.center.lat,90)),r[0]>0&&r[0]<=e.width&&r[1]>0&&r[1]<=e.height&&!xp(e,new Q(e.center.lat,-90))]},e.polygonContainsPoint=oc,e.polygonIntersectsBox=sc,e.polygonIntersectsPolygon=Zs,e.polygonizeBounds=function(e,t,n=0,r=!0){let i=new p(n,n),a=e.sub(i),o=t.add(i),s=[a,new p(o.x,a.y),o,new p(a.x,o.y)];return r&&s.push(a.clone()),s},e.posAttributes=Jf,e.postMapLoadEvent=We,e.postPerformanceEvent=Ke,e.postTurnstileEvent=He,e.potpack=Wd,e.prevPowerOfTwo=function(e){return e<=1?1:2**Math.floor(Math.log(e)/Math.LN2)},e.radToDeg=v,e.refProperties=[`type`,`source`,`source-layer`,`minzoom`,`maxzoom`,`filter`,`layout`],e.registerForPluginStateChange=function(e){return e({pluginStatus:Ia,pluginURL:La}),Ba.on(`pluginStateChange`,e),e},e.removeAuthState=function(e){Ye.delete(e)},e.renderColorRamp=yl,e.resample=Bs,e.rotateX=wc,e.rotateX$1=el,e.rotateY=Tc,e.rotateY$1=tl,e.rotateZ=function(e,t,n){var r=Math.sin(n),i=Math.cos(n),a=t[0],o=t[1],s=t[2],c=t[3],l=t[4],u=t[5],d=t[6],f=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i+l*r,e[1]=o*i+u*r,e[2]=s*i+d*r,e[3]=c*i+f*r,e[4]=l*i-a*r,e[5]=u*i-o*r,e[6]=d*i-s*r,e[7]=f*i-c*r,e},e.rotateZ$1=function(e,t,n){n*=.5;var r=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(n),c=Math.cos(n);return e[0]=r*c+i*s,e[1]=i*c-r*s,e[2]=a*c+o*s,e[3]=o*c-a*s,e},e.scale=Cc,e.scale$1=Yc,e.scale$2=Rc,e.scaleAndAdd=zc,e.set=function(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}
1,e.setCacheLimits=function(e,t){me=e,he=t},e.setColumn=function(e,t,n){e[4*t+0]=n[0],e[4*t+1]=n[1],e[4*t+2]=n[2],e[4*t+3]=n[3]},e.setRTLTextPlugin=function(e,t,n=!1){if(Ia===Ma||Ia===Na||Ia===Pa)throw Error(`setRTLTextPlugin cannot be called multiple times.`);La=it.resolveURL(e),Ia=Ma,Fa=t,za(),n||Ha()},e.smoothstep=w,e.spec=z,e.squaredLength=function(e){var t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r},e.storeAuthState=function(e,t){t?Ye.add(e):Ye.delete(e)},e.sub=Kc,e.subtract=Pc,e.symbolSize=hd,e.tileAABB=function(e,t,n,r,i,a,o,s,c){if(c.name===`globe`)return cp(e,t,new Vu(n,r,i));let l=Ep({z:n,x:r,y:i},c);return new ol([(a+l.x/l.scale)*t,t*(l.y/l.scale),o],[(a+l.x2/l.scale)*t,t*(l.y2/l.scale),s])},e.tileCornersToBounds=lp,e.tileTransform=Ep,e.transformMat3=function(e,t,n){var r=t[0],i=t[1],a=t[2];return e[0]=r*n[0]+i*n[3]+a*n[6],e[1]=r*n[1]+i*n[4]+a*n[7],e[2]=r*n[2]+i*n[5]+a*n[8],e},e.transformMat4=Uc,e.transformMat4$1=Zc,e.transformQuat=Wc,e.transitionTileAABBinECEF=op,e.translate=Sc,e.transpose=function(e,t){if(e===t){var n=t[1],r=t[2],i=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=i}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e},e.triggerPluginCompletionEvent=Ra,e.uniqueId=A,e.updateGlobeVertexNormal=function(e,t,n,r,i){let a=5*t+2;e.float32[a+0]=n,e.float32[a+1]=r,e.float32[a+2]=i},e.validateCustomStyleLayer=function(e){let t=[],n=e.id;return n===void 0&&t.push({message:`layers.${n}: missing required property "id"`}),e.render===void 0&&t.push({message:`layers.${n}: missing required method "render"`}),e.renderingMode&&e.renderingMode!==`2d`&&e.renderingMode!==`3d`&&t.push({message:`layers.${n}: property "renderingMode" must be either "2d" or "3d"`}),t},e.validateFilter=e=>Hi(Ci(e)),e.validateFog=e=>Hi(Fi(e)),e.validateLayer=e=>Hi(Oi(e)),e.validateLight=e=>Hi(Ni(e)),e.validateSource=e=>Hi(ji(e)),e.validateStyle=zi,e.validateTerrain=e=>Hi(Pi(e)),e.values=D,e.vectorTile=uu,e.version=n,e.warnOnce=L,e.window=t,e.wrap=T})),r([`./shared`],(function(e){function t(e){if(typeof e==`number`||typeof e==`boolean`||typeof e==`string`||e==null)return JSON.stringify(e);if(Array.isArray(e)){let n=`[`;for(let r of e)n+=`${t(r)},`;return`${n}]`}let n=`{`;for(let r of Object.keys(e).sort())n+=`${r}:${t(e[r])},`;return`${n}}`}function n(n){let r=``;for(let i of e.refProperties)r+=`/${t(n[i])}`;return r}class r{constructor(e){this.keyCache={},e&&this.replace(e)}replace(e){this._layerConfigs={},this._layers={},this.update(e,[])}update(t,r){for(let n of t)this._layerConfigs[n.id]=n,(this._layers[n.id]=e.createStyleLayer(n)).compileFilter(),this.keyCache[n.id]&&delete this.keyCache[n.id];for(let e of r)delete this.keyCache[e],delete this._layerConfigs[e],delete this._layers[e];this.familiesBySource={};let i=function(e,t){let r={};for(let i=0;i<e.length;i++){let a=t&&t[e[i].id]||n(e[i]);t&&(t[e[i].id]=a);let o=r[a];o||=r[a]=[],o.push(e[i])}let i=[];for(let e in r)i.push(r[e]);return i}(e.values(this._layerConfigs),this.keyCache);for(let e of i){let t=e.map((e=>this._layers[e.id])),n=t[0];if(n.visibility===`none`)continue;let r=n.source||``,i=this.familiesBySource[r];i||=this.familiesBySource[r]={};let a=n.sourceLayer||`_geojsonTileLayer`,o=i[a];o||=i[a]=[],o.push(t)}}}class i{loadTile(t,n){let{uid:r,encoding:i,rawImageData:a,padding:o,buildQuadTree:s}
1=t,c=e.window.ImageBitmap&&a instanceof e.window.ImageBitmap?this.getImageData(a,o):a;n(null,new e.DEMData(r,c,i,o<1,s))}getImageData(e,t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext(`2d`,{willReadFrequently:!0})),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);let n=this.offscreenCanvasContext.getImageData(-t,-t,e.width+2*t,e.height+2*t);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),n}}var a=function e(t,n){var r,i=t&&t.type;if(i===`FeatureCollection`)for(r=0;r<t.features.length;r++)e(t.features[r],n);else if(i===`GeometryCollection`)for(r=0;r<t.geometries.length;r++)e(t.geometries[r],n);else if(i===`Feature`)e(t.geometry,n);else if(i===`Polygon`)o(t.coordinates,n);else if(i===`MultiPolygon`)for(r=0;r<t.coordinates.length;r++)o(t.coordinates[r],n);return t};function o(e,t){if(e.length!==0){s(e[0],t);for(var n=1;n<e.length;n++)s(e[n],!t)}}function s(e,t){for(var n=0,r=0,i=0,a=e.length,o=a-1;i<a;o=i++){var s=(e[i][0]-e[o][0])*(e[o][1]+e[i][1]),c=n+s;r+=Math.abs(n)>=Math.abs(s)?n-c+s:s-c+n,n=c}n+r>=0!=!!t&&e.reverse()}let c=e.VectorTileFeature.prototype.toGeoJSON;class l{constructor(t){this._feature=t,this.extent=e.EXTENT,this.type=t.type,this.properties=t.tags,`id`in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10))}loadGeometry(){if(this._feature.type===1){let t=[];for(let n of this._feature.geometry)t.push([new e.pointGeometry(n[0],n[1])]);return t}{let t=[];for(let n of this._feature.geometry){let r=[];for(let t of n)r.push(new e.pointGeometry(t[0],t[1]));t.push(r)}return t}}toGeoJSON(e,t,n){return c.call(this,e,t,n)}}class u{constructor(t){this.layers={_geojsonTileLayer:this},this.name=`_geojsonTileLayer`,this.extent=e.EXTENT,this.length=t.length,this._features=t}feature(e){return new l(this._features[e])}}var d={exports:{}},f=e.pointGeometry,p=e.vectorTile.VectorTileFeature,m=h;function h(e,t){this.options=t||{},this.features=e,this.length=e.length}function g(e,t){this.id=typeof e.id==`number`?e.id:void 0,this.type=e.type,this.rawGeometry=e.type===1?[e.geometry]:e.geometry,this.properties=e.tags,this.extent=t||4096}h.prototype.feature=function(e){return new g(this.features[e],this.options.extent)},g.prototype.loadGeometry=function(){var e=this.rawGeometry;this.geometry=[];for(var t=0;t<e.length;t++){for(var n=e[t],r=[],i=0;i<n.length;i++)r.push(new f(n[i][0],n[i][1]));this.geometry.push(r)}return this.geometry},g.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var e=this.geometry,t=1/0,n=-1/0,r=1/0,i=-1/0,a=0;a<e.length;a++)for(var o=e[a],s=0;s<o.length;s++){var c=o[s];t=Math.min(t,c.x),n=Math.max(n,c.x),r=Math.min(r,c.y),i=Math.max(i,c.y)}return[t,r,n,i]},g.prototype.toGeoJSON=p.prototype.toGeoJSON;var _=e.pbf,v=m;function y(e){var t=new _;return function(e,t){for(var n in e.layers)t.writeMessage(3,b,e.layers[n])}(e,t),t.finish()}function b(e,t){var n;t.writeVarintField(15,e.version||1),t.writeStringField(1,e.name||``),t.writeVarintField(5,e.extent||4096);var r={keys:[],values:[],keycache:{},valuecache:{}};for(n=0;n<e.length;n++)r.feature=e.feature(n),t.writeMessage(2,x,r);var i=r.keys;for(n=0;n<i.length;n++)t.writeStringField(3,i[n]);var a=r.values;for(n=0;n<a.length;n++)t.writeMessage(4,E,a[n])}function x(e,t){var n=e.feature;n.id!==void 0&&t.writeVarintField(1,n.id),t.writeMessage(2,S,e),t.writeVarintField(3,n.type),t.writeMessage(4,T,n)}function S(e,t){var n=e.feature,r=e.keys,i=e.values,a=e.keycache,o=e.valuecache;for(var s in n.properties){var c=n.properties[s],l=a[s];if(c!==null){l===void 0&&(r.push(s),a[s]=l=r.length-1),t.writeVarint(l);var u=typeof c;u!==`string`&&u!==`boolean`&&u!==`number`&&(c=JSON.stringify(c));var d=u+`:`+c,f=o[d];f===void 0&&(i.push(c),o[d]=f=i.length-1),t.writeVarint(f)}}}function C(e,t){return(t<<3)+(7&e)}function w(e){return e<<1^e>>31}function T(e,t){for(var n=e.loadGeometry(),r=e.type,i=0,a=0,o=n.length,s=0;s<o;s++){var c=n[s],l=1;r===1&&(l=c.length),t.writeVarint(C(1,l));for(var u=r===3?c.length-1:c.length,d=0;d<u;d++){d===1&&r!==1&&t.writeVarint(C(2,u-1));var f=c[d].x-i,p=c[d].y-a;t.writeVarint(w(f)),t.writeVarint(w(p)),i+=f,a+=p}r===3&&t.writeVarint(C(7,1))}}function E(e,t){var n=typeof e;n===`string`?t.writeStringField(1,e):n===`boolean`?t.writeBooleanField(7,e):n===`number`&&(e%1==0?e<0?t.writeSVarintField(6,e):t.writeVarintField(5,e):t.writeDoubleField(3,e))}function D(e,t,n,r,i,a){if(i-r<=n)return;let o=r+i>>1;O(e,t,o,r,i,a%2),D(e,t,n,r,o-1,a+1),D(e,t,n,o+1,i,a+1)}function O(e,t,n,r,i,a){for(;i>r;){if(i-r>600){let o=i-r+1,s=n-r+1,c=Math.log(o),l=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*l*(o-l)/o)*(s-o/2<0?-1:1);O(e,t,n,Math.max(r,Math.floor(n-s*l/o+u)),Math.min(i,Math.floor(n+(o-s)*l/o+u)),a)}let o=t[2*n+a],s=r,c=i;for(k(e,t,r,n),t[2*i+a]>o&&k(e,t,r,i);s<c;){for(k(e,t,s,c),s++,c--;t[2*s+a]<o;)s++;for(;t[2*c+a]>o;)c--}t[2*r+a]===o?k(e,t,r,c):(c++,k(e,t,c,i)),c<=n&&(r=c+1),n<=c&&(i=c-1)}}function k(e,t,n,r){A(e,n,r),A(t,2*n,2*r),A(t,2*n+1,2*r+1)}function A(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function j(e,t,n,r){let i=e-n,a=t-r;return i*i+a*a}d.exports=y,d.exports.fromVectorTileJs=y,d.exports.fromGeojsonVt=function(e,t){t||={};var n={};for(var r in e)n[r]=new v(e[r].features,t),n[r].name=r,n[r].version=t.version,n[r].extent=t.extent;return y({layers:n})},d.exports.GeoJSONWrapper=v;let M=e=>e[0],ee=e=>e[1];class N{constructor(e,t=M,n=ee,r=64,i=Float64Array){this.nodeSize=r,this.points=e;let a=e.length<65536?Uint16Array:Uint32Array,o=this.ids=new a(e.length),s=this.coords=new i(2*e.length);for(let r=0;r<e.length;r++)o[r]=r,s[2*r]=t(e[r]),s[2*r+1]=n(e[r]);D(o,s,r,0,o.length-1,0)}range(e,t,n,r){return function(e,t,n,r,i,a,o){let s=[0,e.length-1,0],c=[],l,u;for(;s.length;){let d=s.pop(),f=s.pop(),p=s.pop();if(f-p<=o){for(let o=p;o<=f;o++)l=t[2*o],u=t[2*o+1],l>=n&&l<=i&&u>=r&&u<=a&&c.push(e[o]);continue}let m=Math.floor((p+f)/2);l=t[2*m],u=t[2*m+1],l>=n&&l<=i&&u>=r&&u<=a&&c.push(e[m]);let h=(d+1)%2;(d===0?n<=l:r<=u)&&(s.push(p),s.push(m-1),s.push(h)),(d===0?i>=l:a>=u)&&(s.push(m+1),s.push(f),s.push(h))}return c}(this.ids,this.coords,e,t,n,r,this.nodeSize)}within(e,t,n){return function(e,t,n,r,i,a){let o=[0,e.length-1,0],s=[],c=i*i;for(;o.length;){let l=o.pop(),u=o.pop(),d=o.pop();if(u-d<=a){for(let i=d;i<=u;i++)j(t[2*i],t[2*i+1],n,r)<=c&&s.push(e[i]);continue}let f=Math.floor((d+u)/2),p=t[2*f],m=t[2*f+1];j(p,m,n,r)<=c&&s.push(e[f]);let h=(l+1)%2;(l===0?n-i<=p:r-i<=m)&&(o.push(d),o.push(f-1),o.push(h)),(l===0?n+i>=p:r+i>=m)&&(o.push(f+1),o.push(u),o.push(h))}return s}(this.ids,this.coords,e,t,n,this.nodeSize)}}let te={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},P=Math.fround||(F=new Float32Array(1),e=>(F[0]=+e,F[0]));var F;class I{constructor(e){this.options=ce(Object.create(te),e),this.trees=Array(this.options.maxZoom+1)}load(e){let{log:t,minZoom:n,maxZoom:r,nodeSize:i}=this.options;t&&console.time(`total time`);let a=`prepare ${e.length} points`;t&&console.time(a),this.points=e;let o=[];for(let t=0;t<e.length;t++)e[t].geometry&&o.push(L(e[t],t));this.trees[r+1]=new N(o,le,ue,i,Float32Array),t&&console.timeEnd(a);for(let e=r;e>=n;e--){let n=+Date.now();o=this._cluster(o,e),this.trees[e]=new N(o,le,ue,i,Float32Array),t&&console.log(`z%d: %d clusters in %dms`,e,o.length,+Date.now()-n)}return t&&console.timeEnd(`total time`),this}getClusters(e,t){let n=((e[0]+180)%360+360)%360-180,r=Math.max(-90,Math.min(90,e[1])),i=e[2]===180?180:((e[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)n=-180,i=180;else if(n>i){let e=this.getClusters([n,r,180,a],t),o=this.getClusters([-180,r,i,a],t);return e.concat(o)}let o=this.trees[this._limitZoom(t)],s=o.range(ae(n),oe(a),ae(i),oe(r)),c=[];
1for(let e of s){let t=o.points[e];c.push(t.numPoints?re(t):this.points[t.index])}return c}getChildren(e){let t=this._getOriginId(e),n=this._getOriginZoom(e),r=`No cluster with the specified id.`,i=this.trees[n];if(!i)throw Error(r);let a=i.points[t];if(!a)throw Error(r);let o=this.options.radius/(this.options.extent*2**(n-1)),s=i.within(a.x,a.y,o),c=[];for(let t of s){let n=i.points[t];n.parentId===e&&c.push(n.numPoints?re(n):this.points[n.index])}if(c.length===0)throw Error(r);return c}getLeaves(e,t,n){let r=[];return this._appendLeaves(r,e,t||=10,n||=0,0),r}getTile(e,t,n){let r=this.trees[this._limitZoom(e)],i=2**e,{extent:a,radius:o}=this.options,s=o/a,c=(n-s)/i,l=(n+1+s)/i,u={features:[]};return this._addTileFeatures(r.range((t-s)/i,c,(t+1+s)/i,l),r.points,t,n,i,u),t===0&&this._addTileFeatures(r.range(1-s/i,c,1,l),r.points,i,n,i,u),t===i-1&&this._addTileFeatures(r.range(0,c,s/i,l),r.points,-1,n,i,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){let n=this.getChildren(e);if(t++,n.length!==1)break;e=n[0].properties.cluster_id}return t}_appendLeaves(e,t,n,r,i){let a=this.getChildren(t);for(let t of a){let a=t.properties;if(a&&a.cluster?i+a.point_count<=r?i+=a.point_count:i=this._appendLeaves(e,a.cluster_id,n,r,i):i<r?i++:e.push(t),e.length===n)break}return i}_addTileFeatures(e,t,n,r,i,a){for(let o of e){let e=t[o],s=e.numPoints,c,l,u;if(s)c=ie(e),l=e.x,u=e.y;else{let t=this.points[e.index];c=t.properties,l=ae(t.geometry.coordinates[0]),u=oe(t.geometry.coordinates[1])}let d={type:1,geometry:[[Math.round(this.options.extent*(l*i-n)),Math.round(this.options.extent*(u*i-r))]],tags:c},f;s?f=e.id:this.options.generateId?f=e.index:this.points[e.index].id&&(f=this.points[e.index].id),f!==void 0&&(d.id=f),a.features.push(d)}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){let n=[],{radius:r,extent:i,reduce:a,minPoints:o}=this.options,s=r/(i*2**t);for(let r=0;r<e.length;r++){let i=e[r];if(i.zoom<=t)continue;i.zoom=t;let c=this.trees[t+1],l=c.within(i.x,i.y,s),u=i.numPoints||1,d=u;for(let e of l){let n=c.points[e];n.zoom>t&&(d+=n.numPoints||1)}if(d>u&&d>=o){let e=i.x*u,o=i.y*u,s=a&&u>1?this._map(i,!0):null,f=(r<<5)+(t+1)+this.points.length;for(let n of l){let r=c.points[n];if(r.zoom<=t)continue;r.zoom=t;let l=r.numPoints||1;e+=r.x*l,o+=r.y*l,r.parentId=f,a&&(s||=this._map(i,!0),a(s,this._map(r)))}
vendor: 12,813 bytes, line 1
1i.parentId=f,n.push(ne(e/d,o/d,f,d,s))}else if(n.push(i),d>1)for(let e of l){let r=c.points[e];r.zoom<=t||(r.zoom=t,n.push(r))}}return n}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return(e-this.points.length)%32}_map(e,t){if(e.numPoints)return t?ce({},e.properties):e.properties;let n=this.points[e.index].properties,r=this.options.map(n);return t&&r===n?ce({},r):r}}function ne(e,t,n,r,i){return{x:P(e),y:P(t),zoom:1/0,id:n,parentId:-1,numPoints:r,properties:i}}function L(e,t){let[n,r]=e.geometry.coordinates;return{x:P(ae(n)),y:P(oe(r)),zoom:1/0,index:t,parentId:-1}}function re(e){return{type:`Feature`,id:e.id,properties:ie(e),geometry:{type:`Point`,coordinates:[(t=e.x,360*(t-.5)),se(e.y)]}};var t}function ie(e){let t=e.numPoints,n=t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?Math.round(t/100)/10+`k`:t;return ce(ce({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:n})}function ae(e){return e/360+.5}function oe(e){let t=Math.sin(e*Math.PI/180),n=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return n<0?0:n>1?1:n}function se(e){let t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function ce(e,t){for(let n in t)e[n]=t[n];return e}function le(e){return e.x}function ue(e){return e.y}function de(e,t,n,r){for(var i,a=r,o=n-t>>1,s=n-t,c=e[t],l=e[t+1],u=e[n],d=e[n+1],f=t+3;f<n;f+=3){var p=fe(e[f],e[f+1],c,l,u,d);if(p>a)i=f,a=p;else if(p===a){var m=Math.abs(f-o);m<s&&(i=f,s=m)}}a>r&&(i-t>3&&de(e,t,i,r),e[i+2]=a,n-i>3&&de(e,i,n,r))}function fe(e,t,n,r,i,a){var o=i-n,s=a-r;if(o!==0||s!==0){var c=((e-n)*o+(t-r)*s)/(o*o+s*s);c>1?(n=i,r=a):c>0&&(n+=o*c,r+=s*c)}return(o=e-n)*o+(s=t-r)*s}function pe(e,t,n,r){var i={id:e===void 0?null:e,type:t,geometry:n,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,n=e.type;if(n===`Point`||n===`MultiPoint`||n===`LineString`)me(e,t);else if(n===`Polygon`||n===`MultiLineString`)for(var r=0;r<t.length;r++)me(e,t[r]);else if(n===`MultiPolygon`)for(r=0;r<t.length;r++)for(var i=0;i<t[r].length;i++)me(e,t[r][i])}(i),i}function me(e,t){for(var n=0;n<t.length;n+=3)e.minX=Math.min(e.minX,t[n]),e.minY=Math.min(e.minY,t[n+1]),e.maxX=Math.max(e.maxX,t[n]),e.maxY=Math.max(e.maxY,t[n+1])}function he(e,t,n,r){if(t.geometry){var i=t.geometry.coordinates,a=t.geometry.type,o=(n.tolerance/((1<<n.maxZoom)*n.extent))**2,s=[],c=t.id;if(n.promoteId?c=t.properties[n.promoteId]:n.generateId&&(c=r||0),a===`Point`)ge(i,s);else if(a===`MultiPoint`)for(var l=0;l<i.length;l++)ge(i[l],s);else if(a===`LineString`)_e(i,s,o,!1);else if(a===`MultiLineString`){if(n.lineMetrics){for(l=0;l<i.length;l++)_e(i[l],s=[],o,!1),e.push(pe(c,`LineString`,s,t.properties));return}ve(i,s,o,!1)}else if(a===`Polygon`)ve(i,s,o,!0);else{if(a!==`MultiPolygon`){if(a===`GeometryCollection`){for(l=0;l<t.geometry.geometries.length;l++)he(e,{id:c,geometry:t.geometry.geometries[l],properties:t.properties},n,r);return}throw Error(`Input data is not a valid GeoJSON object.`)}for(l=0;l<i.length;l++){var u=[];ve(i[l],u,o,!0),s.push(u)}}e.push(pe(c,a,s,t.properties))}}function ge(e,t){t.push(ye(e[0])),t.push(be(e[1])),t.push(0)}function _e(e,t,n,r){for(var i,a,o=0,s=0;s<e.length;s++){var c=ye(e[s][0]),l=be(e[s][1]);t.push(c),t.push(l),t.push(0),s>0&&(o+=r?(i*l-c*a)/2:Math.sqrt((c-i)**2+(l-a)**2)),i=c,a=l}var u=t.length-3;t[2]=1,de(t,0,u,n),t[u+2]=1,t.size=Math.abs(o),t.start=0,t.end=t.size}function ve(e,t,n,r){for(var i=0;i<e.length;i++){var a=[];_e(e[i],a,n,r),t.push(a)}}function ye(e){return e/360+.5}function be(e){var t=Math.sin(e*Math.PI/180),n=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return n<0?0:n>1?1:n}function xe(e,t,n,r,i,a,o,s){if(r/=t,a>=(n/=t)&&o<r)return e;if(o<n||a>=r)return null;for(var c=[],l=0;l<e.length;l++){var u=e[l],d=u.geometry,f=u.type,p=i===0?u.minX:u.minY,m=i===0?u.maxX:u.maxY;if(p>=n&&m<r)c.push(u);else if(!(m<n||p>=r)){var h=[];if(f===`Point`||f===`MultiPoint`)Se(d,h,n,r,i);else if(f===`LineString`)Ce(d,h,n,r,i,!1,s.lineMetrics);else if(f===`MultiLineString`)Te(d,h,n,r,i,!1);else if(f===`Polygon`)Te(d,h,n,r,i,!0);else if(f===`MultiPolygon`)for(var g=0;g<d.length;g++){var _=[];Te(d[g],_,n,r,i,!0),_.length&&h.push(_)}if(h.length){if(s.lineMetrics&&f===`LineString`){for(g=0;g<h.length;g++)c.push(pe(u.id,f,h[g],u.tags));continue}f!==`LineString`&&f!==`MultiLineString`||(h.length===1?(f=`LineString`,h=h[0]):f=`MultiLineString`),f!==`Point`&&f!==`MultiPoint`||(f=h.length===3?`Point`:`MultiPoint`),c.push(pe(u.id,f,h,u.tags))}}}return c.length?c:null}function Se(e,t,n,r,i){for(var a=0;a<e.length;a+=3){var o=e[a+i];o>=n&&o<=r&&(t.push(e[a]),t.push(e[a+1]),t.push(e[a+2]))}}function Ce(e,t,n,r,i,a,o){for(var s,c,l=we(e),u=i===0?De:Oe,d=e.start,f=0;f<e.length-3;f+=3){var p=e[f],m=e[f+1],h=e[f+2],g=e[f+3],_=e[f+4],v=i===0?p:m,y=i===0?g:_,b=!1;o&&(s=Math.sqrt((p-g)**2+(m-_)**2)),v<n?y>n&&(c=u(l,p,m,g,_,n),o&&(l.start=d+s*c)):v>r?y<r&&(c=u(l,p,m,g,_,r),o&&(l.start=d+s*c)):Ee(l,p,m,h),y<n&&v>=n&&(c=u(l,p,m,g,_,n),b=!0),y>r&&v<=r&&(c=u(l,p,m,g,_,r),b=!0),!a&&b&&(o&&(l.end=d+s*c),t.push(l),l=we(e)),o&&(d+=s)}var x=e.length-3;p=e[x],m=e[x+1],h=e[x+2],(v=i===0?p:m)>=n&&v<=r&&Ee(l,p,m,h),x=l.length-3,a&&x>=3&&(l[x]!==l[0]||l[x+1]!==l[1])&&Ee(l,l[0],l[1],l[2]),l.length&&t.push(l)}function we(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function Te(e,t,n,r,i,a){for(var o=0;o<e.length;o++)Ce(e[o],t,n,r,i,a,!1)}function Ee(e,t,n,r){e.push(t),e.push(n),e.push(r)}function De(e,t,n,r,i,a){var o=(a-t)/(r-t);return e.push(a),e.push(n+(i-n)*o),e.push(1),o}function Oe(e,t,n,r,i,a){var o=(a-n)/(i-n);return e.push(t+(r-t)*o),e.push(a),e.push(1),o}function ke(e,t){for(var n=[],r=0;r<e.length;r++){var i,a=e[r],o=a.type;if(o===`Point`||o===`MultiPoint`||o===`LineString`)i=Ae(a.geometry,t);else if(o===`MultiLineString`||o===`Polygon`){i=[];for(var s=0;s<a.geometry.length;s++)i.push(Ae(a.geometry[s],t))}else if(o===`MultiPolygon`)for(i=[],s=0;s<a.geometry.length;s++){for(var c=[],l=0;l<a.geometry[s].length;l++)c.push(Ae(a.geometry[s][l],t));i.push(c)}n.push(pe(a.id,o,i,a.tags))}return n}function Ae(e,t){var n=[];n.size=e.size,e.start!==void 0&&(n.start=e.start,n.end=e.end);for(var r=0;r<e.length;r+=3)n.push(e[r]+t,e[r+1],e[r+2]);return n}function je(e,t){if(e.transformed)return e;var n,r,i,a=1<<e.z,o=e.x,s=e.y;for(n=0;n<e.features.length;n++){var c=e.features[n],l=c.geometry,u=c.type;if(c.geometry=[],u===1)for(r=0;r<l.length;r+=2)c.geometry.push(Me(l[r],l[r+1],t,a,o,s));else for(r=0;r<l.length;r++){var d=[];for(i=0;i<l[r].length;i+=2)d.push(Me(l[r][i],l[r][i+1],t,a,o,s));c.geometry.push(d)}}return e.transformed=!0,e}function Me(e,t,n,r,i,a){return[Math.round(n*(e*r-i)),Math.round(n*(t*r-a))]}function Ne(e,t,n,r,i){for(var a=t===i.maxZoom?0:i.tolerance/((1<<t)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:n,y:r,z:t,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},s=0;s<e.length;s++){o.numFeatures++,Pe(o,e[s],a,i);var c=e[s].minX,l=e[s].minY,u=e[s].maxX,d=e[s].maxY;c<o.minX&&(o.minX=c),l<o.minY&&(o.minY=l),u>o.maxX&&(o.maxX=u),d>o.maxY&&(o.maxY=d)}return o}function Pe(e,t,n,r){var i=t.geometry,a=t.type,o=[];if(a===`Point`||a===`MultiPoint`)for(var s=0;s<i.length;s+=3)o.push(i[s]),o.push(i[s+1]),e.numPoints++,e.numSimplified++;else if(a===`LineString`)Fe(o,i,e,n,!1,!1);else if(a===`MultiLineString`||a===`Polygon`)for(s=0;s<i.length;s++)Fe(o,i[s],e,n,a===`Polygon`,s===0);else if(a===`MultiPolygon`)for(var c=0;c<i.length;c++){var l=i[c];for(s=0;s<l.length;s++)Fe(o,l[s],e,n,!0,s===0)}if(o.length){var u=t.tags||null;if(a===`LineString`&&r.lineMetrics){for(var d in u={},t.tags)u[d]=t.tags[d];u.mapbox_clip_start=i.start/i.size,u.mapbox_clip_end=i.end/i.size}var f={geometry:o,type:a===`Polygon`||a===`MultiPolygon`?3:a===`LineString`||a===`MultiLineString`?2:1,tags:u};t.id!==null&&(f.id=t.id),e.features.push(f)}}function Fe(e,t,n,r,i,a){var o=r*r;if(r>0&&t.size<(i?o:r))n.numPoints+=t.length/3;else{for(var s=[],c=0;c<t.length;c+=3)(r===0||t[c+2]>o)&&(n.numSimplified++,s.push(t[c]),s.push(t[c+1])),n.numPoints++;i&&function(e,t){for(var n=0,r=0,i=e.length,a=i-2;r<i;a=r,r+=2)n+=(e[r]-e[a])*(e[r+1]+e[a+1]);if(n>0===t)for(r=0,i=e.length;r<i/2;r+=2){var o=e[r],s=e[r+1];e[r]=e[i-2-r],e[r+1]=e[i-1-r],e[i-2-r]=o,e[i-1-r]=s}}(s,a),e.push(s)}}function Ie(e,t){var n=(t=this.options=function(e,t){for(var n in t)e[n]=t[n];return e}(Object.create(this.options),t)).debug;if(n&&console.time(`preprocess data`),t.maxZoom<0||t.maxZoom>24)throw Error(`maxZoom should be in the 0-24 range`);if(t.promoteId&&t.generateId)throw Error(`promoteId and generateId cannot be used together.`);var r=function(e,t){var n=[];if(e.type===`FeatureCollection`)for(var r=0;r<e.features.length;r++)he(n,e.features[r],t,r);else he(n,e.type===`Feature`?e:{geometry:e},t);return n}(e,t);this.tiles={},this.tileCoords=[],n&&(console.timeEnd(`preprocess data`),console.log(`index: maxZoom: %d, maxPoints: %d`,t.indexMaxZoom,t.indexMaxPoints),console.time(`generate tiles`),this.stats={},this.total=0),r=function(e,t){var n=t.buffer/t.extent,r=e,i=xe(e,1,-1-n,n,0,-1,2,t),a=xe(e,1,1-n,2+n,0,-1,2,t);return(i||a)&&(r=xe(e,1,-n,1+n,0,-1,2,t)||[],i&&(r=ke(i,1).concat(r)),a&&(r=r.concat(ke(a,-1)))),r}(r,t),r.length&&this.splitTile(r,0,0,0),n&&(r.length&&console.log(`features: %d, points: %d`,this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd(`generate tiles`),console.log(`tiles generated:`,this.total,JSON.stringify(this.stats)))}function Le(e,t,n){return 32*((1<<e)*n+t)+e}function Re(e,t){let n=e.tileID.canonical;if(!this._geoJSONIndex)return t(null,null);let r=this._geoJSONIndex.getTile(n.z,n.x,n.y);if(!r)return t(null,null);let i=new u(r.features),a=d.exports(i);a.byteOffset===0&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),t(null,{vectorTile:i,rawData:a.buffer})}Ie.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},Ie.prototype.splitTile=function(e,t,n,r,i,a,o){for(var s=[e,t,n,r],c=this.options,l=c.debug;s.length;){r=s.pop(),n=s.pop(),t=s.pop(),e=s.pop();var u=1<<t,d=Le(t,n,r),f=this.tiles[d];if(!f&&(l>1&&console.time(`creation`),f=this.tiles[d]=Ne(e,t,n,r,c),this.tileCoords.push({z:t,x:n,y:r}),l)){l>1&&(console.log(`tile z%d-%d-%d (features: %d, points: %d, simplified: %d)`,t,n,r,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd(`creation`));var p=`z`+t;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(f.source=e,i){if(t===c.maxZoom||t===i)continue;var m=1<<i-t;if(n!==Math.floor(a/m)||r!==Math.floor(o/m))continue}else if(t===c.indexMaxZoom||f.numPoints<=c.indexMaxPoints)continue;if(f.source=null,e.length!==0){l>1&&console.time(`clipping`);var h,g,_,v,y,b,x=.5*c.buffer/c.extent,S=.5-x,C=.5+x,w=1+x;h=g=_=v=null,y=xe(e,u,n-x,n+C,0,f.minX,f.maxX,c),b=xe(e,u,n+S,n+w,0,f.minX,f.maxX,c),e=null,y&&=(h=xe(y,u,r-x,r+C,1,f.minY,f.maxY,c),g=xe(y,u,r+S,r+w,1,f.minY,f.maxY,c),null),b&&=(_=xe(b,u,r-x,r+C,1,f.minY,f.maxY,c),v=xe(b,u,r+S,r+w,1,f.minY,f.maxY,c),null),l>1&&console.timeEnd(`clipping`),s.push(h||[],t+1,2*n,2*r),s.push(g||[],t+1,2*n,2*r+1),s.push(_||[],t+1,2*n+1,2*r),s.push(v||[],t+1,2*n+1,2*r+1)}}},Ie.prototype.getTile=function(e,t,n){var r=this.options,i=r.extent,a=r.debug;if(e<0||e>24)return null;var o=1<<e,s=Le(e,t=(t%o+o)%o,n);if(this.tiles[s])return je(this.tiles[s],i);a>1&&console.log(`drilling down to z%d-%d-%d`,e,t,n);for(var c,l=e,u=t,d=n;!c&&l>0;)l--,u=Math.floor(u/2),d=Math.floor(d/2),c=this.tiles[Le(l,u,d)];return c&&c.source?(a>1&&console.log(`found parent tile z%d-%d-%d`,l,u,d),a>1&&console.time(`drilling down`),this.splitTile(c.source,l,u,d,e,t,n),a>1&&console.timeEnd(`drilling down`),this.tiles[s]?je(this.tiles[s],i):null):null};class ze extends e.VectorTileWorkerSource{constructor(e,t,n,r,i){super(e,t,n,r,Re),i&&(this.loadGeoJSON=i)}loadData(t,n){let r=t&&t.request,i=r&&r.collectResourceTiming;this.loadGeoJSON(t,((o,s)=>{if(o||!s)return n(o);if(typeof s!=`object`)return n(Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));{a(s,!0);try{if(t.filter){let n=e.createExpression(t.filter,{type:`boolean`,"property-type":`data-driven`,overridable:!1,transition:!1});if(n.result===`error`)throw Error(n.value.map((e=>`${e.key}: ${e.message}`)).join(`, `));s={type:`FeatureCollection`,features:s.features.filter((e=>n.value.evaluate({zoom:0},e)))}}this._geoJSONIndex=t.cluster?new I(function({superclusterOptions:t,clusterProperties:n}){if(!n||!t)return t;let r={},i={},a={accumulated:null,zoom:0},o={properties:null},s=Object.keys(n);for(let t of s){let[a,o]=n[t],s=e.createExpression(o),c=e.createExpression(typeof a==`string`?[a,[`accumulated`],[`get`,t]]:a);r[t]=s.value,i[t]=c.value}return t.map=e=>{o.properties=e;let t={};for(let e of s)t[e]=r[e].evaluate(a,o);return t},t.reduce=(e,t)=>{o.properties=t;
1for(let t of s)a.accumulated=e[t],e[t]=i[t].evaluate(a,o)},t}(t)).load(s.features):function(e,t){return new Ie(e,t)}(s,t.geojsonVtOptions)}catch(e){return n(e)}this.loaded={};let o={};if(i){let n=e.getPerformanceMeasurement(r);n&&(o.resourceTiming={},o.resourceTiming[t.source]=JSON.parse(JSON.stringify(n)))}n(null,o)}}))}reloadTile(e,t){let n=this.loaded;return n&&n[e.uid]?super.reloadTile(e,t):this.loadTile(e,t)}loadGeoJSON(t,n){if(t.request)e.getJSON(t.request,n);else{if(typeof t.data!=`string`)return n(Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));try{return n(null,JSON.parse(t.data))}catch{return n(Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(e,t){try{t(null,this._geoJSONIndex.getClusterExpansionZoom(e.clusterId))}catch(e){t(e)}}getClusterChildren(e,t){try{t(null,this._geoJSONIndex.getChildren(e.clusterId))}catch(e){t(e)}}getClusterLeaves(e,t){try{t(null,this._geoJSONIndex.getLeaves(e.clusterId,e.limit,e.offset))}catch(e){t(e)}}}class Be{constructor(t){this.self=t,this.actor=new e.Actor(t,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=e.getProjection({name:`mercator`}),this.workerSourceTypes={vector:e.VectorTileWorkerSource,geojson:ze},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(e,t)=>{if(this.workerSourceTypes[e])throw Error(`Worker source with name "${e}" already registered.`);this.workerSourceTypes[e]=t},this.self.registerRTLTextPlugin=t=>{if(e.plugin.isParsed())throw Error(`RTL text plugin already registered.`);e.plugin.applyArabicShaping=t.applyArabicShaping,e.plugin.processBidirectionalText=t.processBidirectionalText,e.plugin.processStyledBidirectionalText=t.processStyledBidirectionalText}}clearCaches(e,t,n){delete this.layerIndexes[e],delete this.availableImages[e],delete this.workerSources[e],delete this.demWorkerSources[e],n()}checkIfReady(e,t,n){n()}setReferrer(e,t){this.referrer=t}spriteLoaded(t,n){this.isSpriteLoaded[t]=n;for(let r in this.workerSources[t]){let i=this.workerSources[t][r];for(let t in i)i[t]instanceof e.VectorTileWorkerSource&&(i[t].isSpriteLoaded=n,i[t].fire(new e.Event(`isSpriteLoaded`)))}}setImages(e,t,n){this.availableImages[e]=t;for(let n in this.workerSources[e]){let r=this.workerSources[e][n];for(let e in r)r[e].availableImages=t}n()}enableTerrain(e,t,n){this.terrain=t,n()}setProjection(t,n){this.projections[t]=e.getProjection(n)}setLayers(e,t,n){this.getLayerIndex(e).replace(t),n()}updateLayers(e,t,n){this.getLayerIndex(e).update(t.layers,t.removedIds),n()}loadTile(t,n,r){let i=this.enableTerrain?e.extend({enableTerrain:this.terrain},n):n;i.projection=this.projections[t]||this.defaultProjection,this.getWorkerSource(t,n.type,n.source).loadTile(i,r)}loadDEMTile(t,n,r){let i=this.enableTerrain?e.extend({buildQuadTree:this.terrain},n):n;this.getDEMWorkerSource(t,n.source).loadTile(i,r)}reloadTile(t,n,r){let i=this.enableTerrain?e.extend({enableTerrain:this.terrain},n):n;i.projection=this.projections[t]||this.defaultProjection,this.getWorkerSource(t,n.type,n.source).reloadTile(i,r)}abortTile(e,t,n){this.getWorkerSource(e,t.type,t.source).abortTile(t,n)}removeTile(e,t,n){this.getWorkerSource(e,t.type,t.source).removeTile(t,n)}removeSource(e,t,n){if(!this.workerSources[e]||!this.workerSources[e][t.type]||!this.workerSources[e][t.type][t.source])return;let r=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],r.removeSource===void 0?n():r.removeSource(t,n)}loadWorkerSource(e,t,n){try{this.self.importScripts(t.url),n()}catch(e){n(e.toString())}}syncRTLPluginState(t,n,r){try{e.plugin.setState(n);let t=e.plugin.getPluginURL();if(e.plugin.isLoaded()&&!e.plugin.isParsed()&&t!=null){this.self.importScripts(t);let n=e.plugin.isParsed();r(n?void 0:Error(`RTL Text Plugin failed to import scripts from ${t}`),n)}}catch(e){r(e.toString())}}getAvailableImages(e){let t=this.availableImages[e];return t||=[],t}getLayerIndex(e){let t=this.layerIndexes[e];return t||=this.layerIndexes[e]=new r,t}getWorkerSource(e,t,n){if(this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),!this.workerSources[e][t][n]){let r={send:(t,n,r,i,a,o)=>{this.actor.send(t,n,r,e,a,o)},scheduler:this.actor.scheduler};this.workerSources[e][t][n]=new this.workerSourceTypes[t](r,this.getLayerIndex(e),this.getAvailableImages(e),this.isSpriteLoaded[e])}return this.workerSources[e][t][n]}getDEMWorkerSource(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new i),this.demWorkerSources[e][t]}enforceCacheSizeLimit(t,n){e.enforceCacheSizeLimit(n)}getWorkerPerformanceMetrics(e,t,n){n(void 0,void 0)}}return typeof WorkerGlobalScope<`u`&&typeof self<`u`&&self instanceof WorkerGlobalScope&&(self.worker=new Be(self)),Be})),r([`./shared`],(function(e){function t(e,n){if(Array.isArray(e)){if(!Array.isArray(n)||e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!t(e[r],n[r]))return!1;return!0}if(typeof e==`object`&&e&&n!==null){if(typeof n!=`object`||Object.keys(e).length!==Object.keys(n).length)return!1;for(let r in e)if(!t(e[r],n[r]))return!1;return!0}return e===n}var n=r;function r(e){return!function(e){return typeof window>`u`||typeof document>`u`?`not a browser`:Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?`JSON`in window&&`parse`in JSON&&`stringify`in JSON?function(){if(!(`Worker`in window&&`Blob`in window&&`URL`in window))return!1;var e,t,n=new Blob([``],{type:`text/javascript`}),r=URL.createObjectURL(n);try{t=new Worker(r),e=!0}catch{e=!1}return t&&t.terminate(),URL.revokeObjectURL(r),e}()?`Uint8ClampedArray`in window?ArrayBuffer.isView?function(){var e=document.createElement(`canvas`);e.width=e.height=1;var t=e.getContext(`2d`);if(!t)return!1;var n=t.getImageData(0,0,1,1);return n&&n.width===e.width}()?(i[t=e&&e.failIfMajorPerformanceCaveat]===void 0&&(i[t]=function(e){var t,n=function(e){var t=document.createElement(`canvas`),n=Object.create(r.webGLContextAttributes);return n.failIfMajorPerformanceCaveat=e,t.getContext(`webgl`,n)||t.getContext(`experimental-webgl`,
1n)}(e);if(!n)return!1;try{t=n.createShader(n.VERTEX_SHADER)}catch{return!1}return!(!t||n.isContextLost())&&(n.shaderSource(t,`void main() {}`),n.compileShader(t),!0===n.getShaderParameter(t,n.COMPILE_STATUS))}(t)),i[t]?document.documentMode?`insufficient ECMAScript 6 support`:void 0:`insufficient WebGL support`):`insufficient Canvas/getImageData support`:`insufficient ArrayBuffer support`:`insufficient Uint8ClampedArray support`:`insufficient worker support`:`insufficient JSON support`:`insufficient Object support`:`insufficient Function support`:`insufficent Array support`;var t}(e)}var i={};function a(t,n,r){let i=e.window.document.createElement(t);return n!==void 0&&(i.className=n),r&&r.appendChild(i),i}function o(t,n,r){let i=e.window.document.createElementNS(`http://www.w3.org/2000/svg`,t);for(let e of Object.keys(n))i.setAttributeNS(null,e,n[e]);return r&&r.appendChild(i),i}r.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};let s=e.window.document&&e.window.document.documentElement.style,c=s&&s.userSelect!==void 0?`userSelect`:`WebkitUserSelect`,l;function u(){s&&c&&(l=s[c],s[c]=`none`)}function d(){s&&c&&(s[c]=l)}function f(t){t.preventDefault(),t.stopPropagation(),e.window.removeEventListener(`click`,f,!0)}function p(){e.window.addEventListener(`click`,f,!0),e.window.setTimeout((()=>{e.window.removeEventListener(`click`,f,!0)}),0)}function m(e,t){return _(e,e.getBoundingClientRect(),t)}function h(e,t){let n=e.getBoundingClientRect(),r=[];for(let i=0;i<t.length;i++)r.push(_(e,n,t[i]));return r}function g(t){return e.window.InstallTrigger!==void 0&&t.button===2&&t.ctrlKey&&e.window.navigator.platform.toUpperCase().indexOf(`MAC`)>=0?0:t.button}function _(t,n,r){let i=t.offsetWidth===n.width?1:t.offsetWidth/n.width;return new e.pointGeometry((r.clientX-n.left)*i,(r.clientY-n.top)*i)}function v(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*a-i*r;return o?(e[0]=a*(o=1/o),e[1]=-r*o,e[2]=-i*o,e[3]=n*o,e):null}function y(e){let{userImage:t}=e;return!!(t&&t.render&&t.render())&&(e.data.replace(new Uint8Array(t.data.buffer)),!0)}class b extends e.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new e.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(e){if(this.loaded!==e&&(this.loaded=e,e)){for(let{ids:e,callback:t}of this.requestors)this._notify(e,t);this.requestors=[]}}hasImage(e){return!!this.getImage(e)}getImage(e){return this.images[e]}addImage(e,t){this._validate(e,t)&&(this.images[e]=t)}_validate(t,n){let r=!0;return this._validateStretch(n.stretchX,n.data&&n.data.width)||(this.fire(new e.ErrorEvent(Error(`Image "${t}" has invalid "stretchX" value`))),r=!1),this._validateStretch(n.stretchY,n.data&&n.data.height)||(this.fire(new e.ErrorEvent(Error(`Image "${t}" has invalid "stretchY" value`))),r=!1),this._validateContent(n.content,n)||(this.fire(new e.ErrorEvent(Error(`Image "${t}" has invalid "content" value`))),r=!1),r}_validateStretch(e,t){if(!e)return!0;let n=0;for(let r of e){if(r[0]<n||r[1]<r[0]||t<r[1])return!1;n=r[1]}return!0}_validateContent(e,t){return!(e&&(e.length!==4||e[0]<0||t.data.width<e[0]||e[1]<0||t.data.height<e[1]||e[2]<0||t.data.width<e[2]||e[3]<0||t.data.height<e[3]||e[2]<e[0]||e[3]<e[1]))}updateImage(e,t){t.version=this.images[e].version+1,this.images[e]=t,this.updatedImages[e]=!0}removeImage(e){let t=this.images[e];delete this.images[e],delete this.patterns[e],t.userImage&&t.userImage.onRemove&&t.userImage.onRemove()}listImages(){return Object.keys(this.images)}getImages(e,t){let n=!0;if(!this.isLoaded())for(let t of e)this.images[t]||(n=!1);this.isLoaded()||n?this._notify(e,t):this.requestors.push({ids:e,callback:t})}_notify(t,n){let r={};for(let n of t){this.images[n]||this.fire(new e.Event(`styleimagemissing`,{id:n}));let t=this.images[n];t?r[n]={data:t.data.clone(),pixelRatio:t.pixelRatio,sdf:t.sdf,version:t.version,stretchX:t.stretchX,stretchY:t.stretchY,content:t.content,hasRenderCallback:!!(t.userImage&&t.userImage.render)}:e.warnOnce(`Image "${n}" 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.`)}n(null,r)}getPixelSize(){let{width:e,height:t}=this.atlasImage;return{width:e,height:t}}getPattern(t){let n=this.patterns[t],r=this.getImage(t);if(!r)return null;if(n&&n.position.version===r.version)return n.position;if(n)n.position.version=r.version;else{let n={w:r.data.width+2,h:r.data.height+2,x:0,y:0},i=new e.ImagePosition(n,r);
1this.patterns[t]={bin:n,position:i}}return this._updatePatternAtlas(),this.patterns[t].position}bind(t){let n=t.gl;this.atlasTexture?this.dirty&&=(this.atlasTexture.update(this.atlasImage),!1):this.atlasTexture=new e.Texture(t,this.atlasImage,n.RGBA),this.atlasTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}_updatePatternAtlas(){let t=[];for(let e in this.patterns)t.push(this.patterns[e].bin);let{w:n,h:r}=e.potpack(t),i=this.atlasImage;i.resize({width:n||1,height:r||1});for(let t in this.patterns){let{bin:n}=this.patterns[t],r=n.x+1,a=n.y+1,o=this.images[t].data,s=o.width,c=o.height;e.RGBAImage.copy(o,i,{x:0,y:0},{x:r,y:a},{width:s,height:c}),e.RGBAImage.copy(o,i,{x:0,y:c-1},{x:r,y:a-1},{width:s,height:1}),e.RGBAImage.copy(o,i,{x:0,y:0},{x:r,y:a+c},{width:s,height:1}),e.RGBAImage.copy(o,i,{x:s-1,y:0},{x:r-1,y:a},{width:1,height:c}),e.RGBAImage.copy(o,i,{x:0,y:0},{x:r+s,y:a},{width:1,height:c})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(e){for(let t of e){if(this.callbackDispatchedThisFrame[t])continue;this.callbackDispatchedThisFrame[t]=!0;let e=this.images[t];y(e)&&this.updateImage(t,e)}}}let x=new e.Properties({anchor:new e.DataConstantProperty(e.spec.light.anchor),position:new class{constructor(){this.specification=e.spec.light.position}possiblyEvaluate(t,n){return function([t,n,r]){let i=e.degToRad(n+90),a=e.degToRad(r);return{x:t*Math.cos(i)*Math.sin(a),y:t*Math.sin(i)*Math.sin(a),z:t*Math.cos(a),azimuthal:n,polar:r}}(t.expression.evaluate(n))}interpolate(t,n,r){return{x:e.number(t.x,n.x,r),y:e.number(t.y,n.y,r),z:e.number(t.z,n.z,r),azimuthal:e.number(t.azimuthal,n.azimuthal,r),polar:e.number(t.polar,n.polar,r)}}},color:new e.DataConstantProperty(e.spec.light.color),intensity:new e.DataConstantProperty(e.spec.light.intensity)});class S extends e.Evented{constructor(t){super(),this._transitionable=new e.Transitionable(x),this.setLight(t),this._transitioning=this._transitionable.untransitioned()}getLight(){return this._transitionable.serialize()}setLight(t,n={}){if(!this._validate(e.validateLight,t,n))for(let n in t){let r=t[n];e.endsWith(n,`-transition`)?this._transitionable.setTransition(n.slice(0,-11),r):this._transitionable.setValue(n,r)}}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(t,n,r){return(!r||!1!==r.validate)&&e.emitValidationErrors(this,t.call(e.validateStyle,e.extend({value:n,style:{glyphs:!0,sprite:!0},styleSpec:e.spec})))}}let C=new e.Properties({source:new e.DataConstantProperty(e.spec.terrain.source),exaggeration:new e.DataConstantProperty(e.spec.terrain.exaggeration)});class w extends e.Evented{constructor(t,n){super(),this._transitionable=new e.Transitionable(C),this.set(t),this._transitioning=this._transitionable.untransitioned(),this.drapeRenderMode=n}get(){return this._transitionable.serialize()}set(t){for(let n in t){let r=t[n];e.endsWith(n,`-transition`)?this._transitionable.setTransition(n.slice(0,-11),r):this._transitionable.setValue(n,r)}}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}}function T(t,n,r,i){let a=e.smoothstep(45,65,r),[o,s]=E(t,i),c=e.length(n),l=1-Math.min(1,Math.exp((c-o)/(s-o)*-6));return l*=l*l,l=Math.min(1,1.00747*l),l*a*t.alpha}function E(e,t){let n=.5/Math.tan(.5*t);return[e.range[0]+n,e.range[1]+n]}let D=new e.Properties({range:new e.DataConstantProperty(e.spec.fog.range),color:new e.DataConstantProperty(e.spec.fog.color),"high-color":new e.DataConstantProperty(e.spec.fog[`high-color`]),"space-color":new e.DataConstantProperty(e.spec.fog[`space-color`]),"horizon-blend":new e.DataConstantProperty(e.spec.fog[`horizon-blend`]),"star-intensity":new e.DataConstantProperty(e.spec.fog[`star-intensity`])});class O extends e.Evented{constructor(t,n){super(),this._transitionable=new e.Transitionable(D),this.set(t),this._transitioning=this._transitionable.untransitioned(),this._transform=n}get state(){let t=this._transform,n=t.projection.name===`globe`,r=e.globeToMercatorTransition(t.zoom),i=this.properties.get(`range`),a=[.5,3];return{range:n?[e.number(a[0],i[0],r),e.number(a[1],i[1],r)]:i,horizonBlend:this.properties.get(`horizon-blend`),alpha:this.properties.get(`color`).a}}get(){return this._transitionable.serialize()}set(t,n={}
1){if(!this._validate(e.validateFog,t,n)){for(let n of Object.keys(e.spec.fog))t&&t[n]===void 0&&(t[n]=e.spec.fog[n].default);for(let n in t){let r=t[n];e.endsWith(n,`-transition`)?this._transitionable.setTransition(n.slice(0,-11),r):this._transitionable.setValue(n,r)}}}getOpacity(t){if(!this._transform.projection.supportsFog)return 0;let n=this.properties&&this.properties.get(`color`)||1;return(this._transform.projection.name===`globe`?1:e.smoothstep(45,65,t))*n.a}getOpacityAtLatLng(t,n){return this._transform.projection.supportsFog?function(t,n,r){let i=e.MercatorCoordinate.fromLngLat(n),a=r.elevation?r.elevation.getAtPointOrZero(i):0,o=[i.x,i.y,a];return e.transformMat4(o,o,r.mercatorFogMatrix),T(t,o,r.pitch,r._fov)}(this.state,t,n):0}getFovAdjustedRange(e){return this._transform.projection.supportsFog?E(this.state,e):[0,1]}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning)}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e)}_validate(t,n,r){return(!r||!1!==r.validate)&&e.emitValidationErrors(this,t.call(e.validateStyle,e.extend({value:n,style:{glyphs:!0,sprite:!0},styleSpec:e.spec})))}}class k{constructor(t,n){this.workerPool=t,this.actors=[],this.currentActor=0,this.id=e.uniqueId();let r=this.workerPool.acquire(this.id);for(let e=0;e<r.length;e++){let t=new k.Actor(r[e],n,this.id);t.name=`Worker ${e}`,this.actors.push(t)}this.ready=!1,this.broadcast(`checkIfReady`,null,(()=>{this.ready=!0}))}broadcast(t,n,r){e.asyncAll(this.actors,((e,r)=>{e.send(t,n,r)}),r||=function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach((e=>{e.remove()})),this.actors=[],this.workerPool.release(this.id)}}function A(t,n,r){return n*(e.EXTENT/(t.tileSize*2**(r-t.tileID.overscaledZ)))}k.Actor=e.Actor;class j{constructor(e,t,n,r){this.screenBounds=e,this.cameraPoint=t,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=n,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,r)}static createFromScreenPoints(t,n){let r,i;if(t instanceof e.pointGeometry||typeof t[0]==`number`){let a=e.pointGeometry.convert(t);r=[a],i=n.isPointAboveHorizon(a)}else{let a=e.pointGeometry.convert(t[0]),o=e.pointGeometry.convert(t[1]);r=[a,o],i=e.polygonizeBounds(a,o).every((e=>n.isPointAboveHorizon(e)))}return new j(r,n.getCameraPoint(),i,n)}isPointQuery(){return this.screenBounds.length===1}bufferedScreenGeometry(t){return e.polygonizeBounds(this.screenBounds[0],this.screenBounds.length===1?this.screenBounds[0]:this.screenBounds[1],t)}bufferedCameraGeometry(t){let n=this.screenBounds[0],r=this.screenBounds.length===1?this.screenBounds[0].add(new e.pointGeometry(1,1)):this.screenBounds[1],i=e.polygonizeBounds(n,r,0,!1);return this.cameraPoint.y>r.y&&(this.cameraPoint.x>n.x&&this.cameraPoint.x<r.x?i.splice(3,0,this.cameraPoint):this.cameraPoint.x>=r.x?i[2]=this.cameraPoint:this.cameraPoint.x<=n.x&&(i[3]=this.cameraPoint)),e.bufferConvexPolygon(i,t)}bufferedCameraGeometryGlobe(t){let n=this.screenBounds[0],r=this.screenBounds.length===1?this.screenBounds[0].add(new e.pointGeometry(1,1)):this.screenBounds[1],i=e.polygonizeBounds(n,r,t),a=this.cameraPoint.clone();switch(3*((a.y>n.y)+(a.y>r.y))+((a.x>n.x)+(a.x>r.x))){case 0:i[0]=a,i[4]=a.clone();break;case 1:i.splice(1,0,a);break;case 2:i[1]=a;break;case 3:i.splice(4,0,a);break;case 5:i.splice(2,0,a);break;case 6:i[3]=a;break;case 7:i.splice(3,0,a);break;case 8:i[2]=a}return i}containsTile(t,n,r,i=0){let a=t.queryPadding/n._pixelsPerMercatorPixel+1,o=r?this._bufferedCameraMercator(a,n):this._bufferedScreenMercator(a,n),s=t.tileID.wrap+(o.unwrapped?i:0),c=o.polygon.map((n=>e.getTilePoint(t.tileTransform,n,s)));if(!e.polygonIntersectsBox(c,0,0,e.EXTENT,e.EXTENT))return;s=t.tileID.wrap+(this.screenGeometryMercator.unwrapped?i:0);let l=this.screenGeometryMercator.polygon.map((n=>e.getTileVec3(t.tileTransform,n,s))),u=l.map((t=>new e.pointGeometry(t[0],t[1]))),d=n.getFreeCameraOptions().position||new e.MercatorCoordinate(0,0,0),f=e.getTileVec3(t.tileTransform,d,s),p=l.map((t=>{let n=e.sub(t,t,f);return e.normalize(n,n),new e.Ray(f,n)})),m=A(t,1,n.zoom)*n._pixelsPerMercatorPixel;return{queryGeometry:this,tilespaceGeometry:u,tilespaceRays:p,bufferedTilespaceGeometry:c,bufferedTilespaceBounds:(h=e.getBounds(c),h.min.x=e.clamp(h.min.x,0,e.EXTENT),h.min.y=e.clamp(h.min.y,0,e.EXTENT),h.max.x=e.clamp(h.max.x,0,e.EXTENT),h.max.y=e.clamp(h.max.y,0,e.EXTENT),h),tile:t,t
1ileID:t.tileID,pixelToTileUnitsFactor:m};var h}_bufferedScreenMercator(e,t){let n=N(e);if(this._screenRaycastCache[n])return this._screenRaycastCache[n];{let r;return r=t.projection.name===`globe`?this._projectAndResample(this.bufferedScreenGeometry(e),t):{polygon:this.bufferedScreenGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._screenRaycastCache[n]=r,r}}_bufferedCameraMercator(e,t){let n=N(e);if(this._cameraRaycastCache[n])return this._cameraRaycastCache[n];{let r;return r=t.projection.name===`globe`?this._projectAndResample(this.bufferedCameraGeometryGlobe(e),t):{polygon:this.bufferedCameraGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._cameraRaycastCache[n]=r,r}}_projectAndResample(t,n){let r=function(t,n){let r=e.multiply([],n.pixelMatrix,n.globeMatrix),i=[0,-e.GLOBE_RADIUS,0,1],a=[0,e.GLOBE_RADIUS,0,1],o=[0,0,0,1];e.transformMat4$1(i,i,r),e.transformMat4$1(a,a,r),e.transformMat4$1(o,o,r);let s=new e.pointGeometry(i[0]/i[3],i[1]/i[3]),c=new e.pointGeometry(a[0]/a[3],a[1]/a[3]),l=e.polygonContainsPoint(t,s)&&i[3]<o[3],u=e.polygonContainsPoint(t,c)&&a[3]<o[3];if(!l&&!u)return null;let d=function(e,t,n){for(let r=1;r<e.length;r++){let i=ee(t.pointCoordinate3D(e[r-1]).x),a=ee(t.pointCoordinate3D(e[r]).x);if(n<0){if(i<a)return{idx:r,t:-i/(a-1-i)}}else if(a<i)return{idx:r,t:(1-i)/(a+1-i)}}return null}(t,n,l?-1:1);if(!d)return null;let{idx:f,t:p}=d,m=f>1?M(t.slice(0,f),n):[],h=f<t.length?M(t.slice(f),n):[];m=m.map((t=>new e.pointGeometry(ee(t.x),t.y))),h=h.map((t=>new e.pointGeometry(ee(t.x),t.y)));let g=[...m];g.length===0&&g.push(h[h.length-1]);let _=e.number(g[g.length-1].y,(h.length===0?m[0]:h[0]).y,p),v;return v=l?[new e.pointGeometry(0,_),new e.pointGeometry(0,0),new e.pointGeometry(1,0),new e.pointGeometry(1,_)]:[new e.pointGeometry(1,_),new e.pointGeometry(1,1),new e.pointGeometry(0,1),new e.pointGeometry(0,_)],g.push(...v),h.length===0?g.push(m[0]):g.push(...h),{polygon:g.map((t=>new e.MercatorCoordinate(t.x,t.y))),unwrapped:!1}}(t,n);if(r)return r;let i=function(t,n){let r=!1,i=-1/0,a=0;for(let e=0;e<t.length-1;e++)t[e].x>i&&(i=t[e].x,a=e);for(let e=0;e<t.length-1;e++){let n=(a+e)%(t.length-1),i=t[n],o=t[n+1];Math.abs(i.x-o.x)>.5&&(i.x<o.x?(i.x+=1,n===0&&(t[t.length-1].x+=1)):(o.x+=1,n+1===t.length-1&&(t[0].x+=1)),r=!0)}let o=e.mercatorXfromLng(n.center.lng);return r&&o<Math.abs(o-1)&&t.forEach((e=>{--e.x})),{polygon:t,unwrapped:r}}(M(t,n).map((t=>new e.pointGeometry(ee(t.x),t.y))),n);return{polygon:i.polygon.map((t=>new e.MercatorCoordinate(t.x,t.y))),unwrapped:i.unwrapped}}}function M(t,n){return e.resample(t,(e=>{let t=n.pointCoordinate3D(e);e.x=t.x,e.y=t.y}),1/256)}function ee(e){return e<0?1+e%1:e%1}function N(e){return 100*e|0}function te(t,n,r,i,a){let o=function(r,i){if(r)return a(r);if(i){t.url&&i.tiles&&t.tiles&&delete t.tiles;let r=e.pick(e.extend(i,t),[`tiles`,`minzoom`,`maxzoom`,`attribution`,`mapbox_logo`,`bounds`,`scheme`,`tileSize`,`encoding`]);i.vector_layers&&(r.vectorLayers=i.vector_layers,r.vectorLayerIds=r.vectorLayers.map((e=>e.id))),r.tiles=n.canonicalizeTileset(r,t.url),a(null,r)}};return t.url?e.getJSON(n.transformRequest(n.normalizeSourceURL(t.url,null,r,i),e.ResourceType.Source),o):e.exported.frame((()=>o(null,t)))}class P{constructor(t,n,r){this.bounds=e.LngLatBounds.convert(this.validateBounds(t)),this.minzoom=n||0,this.maxzoom=r||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(t){let n=2**t.z,r=Math.floor(e.mercatorXfromLng(this.bounds.getWest())*n),i=Math.floor(e.mercatorYfromLat(this.bounds.getNorth())*n),a=Math.ceil(e.mercatorXfromLng(this.bounds.getEast())*n),o=Math.ceil(e.mercatorYfromLat(this.bounds.getSouth())*n);return t.x>=r&&t.x<a&&t.y>=i&&t.y<o}}class F{constructor(e,t,n){this.context=e;let r=e.gl;this.buffer=r.createBuffer(),this.dynamicDraw=!!n,this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),r.bufferData(r.ELEMENT_ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?r.DYNAMIC_DRAW:r.STATIC_DRAW),this.dynamicDraw||t.destroy()}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(e){let t=this.context.gl;this.context.unbindVAO(),this.bind(),t.bufferSubData(t.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}let I={Int8:`BYTE`,Uint8:`UNSIGNED_BYTE`,Int16:`SHORT`,Uint16:`UNSIGNED_SHORT`,Int32:`INT`,Uint32:`UNSIGNED_INT`,Float32:`FLOAT`};class ne{constructor(e,t,n,r){this.length=t.length,this.attributes=n,this.itemSize=t.bytesPerElement,this.dynamicDraw=r,this.context=e;let i=e.gl;this.buffer=i.createBuffer(),e.bindVertexBuffer.set(this.buffer),i.bufferData(i.ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?i.DYNAMIC_DRAW:i.STATIC_DRAW),this.dynamicDraw||t.destroy()}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(e){let t=this.context.gl;this.bind(),t.bufferSubData(t.ARRAY_BUFFER,0,e.arrayBuffer)}
vendor: 6,899 bytes, line 1
1enableAttributes(e,t){for(let n=0;n<this.attributes.length;n++){let r=t.attributes[this.attributes[n].name];r!==void 0&&e.enableVertexAttribArray(r)}}setVertexAttribPointers(e,t,n){for(let r=0;r<this.attributes.length;r++){let i=this.attributes[r],a=t.attributes[i.name];a!==void 0&&e.vertexAttribPointer(a,i.components,e[I[i.type]],!1,this.itemSize,i.offset+this.itemSize*(n||0))}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}class L{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 re extends L{getDefault(){return e.Color.transparent}set(e){let t=this.current;(e.r!==t.r||e.g!==t.g||e.b!==t.b||e.a!==t.a||this.dirty)&&(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class ie extends L{getDefault(){return 1}set(e){(e!==this.current||this.dirty)&&(this.gl.clearDepth(e),this.current=e,this.dirty=!1)}}class ae extends L{getDefault(){return 0}set(e){(e!==this.current||this.dirty)&&(this.gl.clearStencil(e),this.current=e,this.dirty=!1)}}class oe extends L{getDefault(){return[!0,!0,!0,!0]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class se extends L{getDefault(){return!0}set(e){(e!==this.current||this.dirty)&&(this.gl.depthMask(e),this.current=e,this.dirty=!1)}}class ce extends L{getDefault(){return 255}set(e){(e!==this.current||this.dirty)&&(this.gl.stencilMask(e),this.current=e,this.dirty=!1)}}class le extends L{getDefault(){return{func:this.gl.ALWAYS,ref:0,mask:255}}set(e){let t=this.current;(e.func!==t.func||e.ref!==t.ref||e.mask!==t.mask||this.dirty)&&(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=!1)}}class ue extends L{getDefault(){let e=this.gl;return[e.KEEP,e.KEEP,e.KEEP]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||this.dirty)&&(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=!1)}}class de extends L{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),this.current=e,this.dirty=!1}}class fe extends L{getDefault(){return[0,1]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||this.dirty)&&(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=!1)}}class pe extends L{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.DEPTH_TEST):t.disable(t.DEPTH_TEST),this.current=e,this.dirty=!1}}class me extends L{getDefault(){return this.gl.LESS}set(e){(e!==this.current||this.dirty)&&(this.gl.depthFunc(e),this.current=e,this.dirty=!1)}}class he extends L{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.BLEND):t.disable(t.BLEND),this.current=e,this.dirty=!1}}class ge extends L{getDefault(){let e=this.gl;return[e.ONE,e.ZERO]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||this.dirty)&&(this.gl.blendFunc(e[0],e[1]),this.current=e,this.dirty=!1)}}class _e extends L{getDefault(){return e.Color.transparent}set(e){let t=this.current;(e.r!==t.r||e.g!==t.g||e.b!==t.b||e.a!==t.a||this.dirty)&&(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1)}}class ve extends L{getDefault(){return this.gl.FUNC_ADD}set(e){(e!==this.current||this.dirty)&&(this.gl.blendEquation(e),this.current=e,this.dirty=!1)}}class ye extends L{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;e?t.enable(t.CULL_FACE):t.disable(t.CULL_FACE),this.current=e,this.dirty=!1}}class be extends L{getDefault(){return this.gl.BACK}set(e){(e!==this.current||this.dirty)&&(this.gl.cullFace(e),this.current=e,this.dirty=!1)}}class xe extends L{getDefault(){return this.gl.CCW}set(e){(e!==this.current||this.dirty)&&(this.gl.frontFace(e),this.current=e,this.dirty=!1)}}class Se extends L{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.useProgram(e),this.current=e,this.dirty=!1)}}class Ce extends L{getDefault(){return this.gl.TEXTURE0}set(e){(e!==this.current||this.dirty)&&(this.gl.activeTexture(e),this.current=e,this.dirty=!1)}}class we extends L{getDefault(){let e=this.gl;return[0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){let t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1)}}class Te extends L{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,e),this.current=e,this.dirty=!1}}class Ee extends L{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindRenderbuffer(t.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class De extends L{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindTexture(t.TEXTURE_2D,e),this.current=e,this.dirty=!1}}class Oe extends L{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class ke extends L{getDefault(){return null}set(e){let t=this.gl;t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=!1}}class Ae extends L{constructor(e){super(e),this.vao=e.extVertexArrayObject}getDefault(){return null}set(e){this.vao&&(e!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(e),this.current=e,this.dirty=!1)}}class je extends L{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=!1}}class Me extends L{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=!1}}class Ne extends L{getDefault(){return!1}set(e){if(e===this.current&&!this.dirty)return;let t=this.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=!1}}class Pe extends L{constructor(e,t){super(e),this.context=e,this.parent=t}getDefault(){return null}}class Fe extends Pe{setDirty(){this.dirty=!0}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),this.current=e,this.dirty=!1}}class Ie extends Pe{attachment(){return this.gl.DEPTH_ATTACHMENT}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);let t=this.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,this.attachment(),t.RENDERBUFFER,e),this.current=e,this.dirty=!1}}class Le extends Ie{attachment(){return this.gl.DEPTH_STENCIL_ATTACHMENT}}class Re{constructor(e,t,n,r){this.context=e,this.width=t,this.height=n;let i=this.framebuffer=e.gl.createFramebuffer();
vendor: 7,144 bytes, line 1
1this.colorAttachment=new Fe(e,i),r&&(this.depthAttachment=new Ie(e,i))}destroy(){let e=this.context.gl,t=this.colorAttachment.get();if(t&&e.deleteTexture(t),this.depthAttachment){let t=this.depthAttachment.get();t&&e.deleteRenderbuffer(t)}e.deleteFramebuffer(this.framebuffer)}}class ze{constructor(e){this.gl=e,this.extVertexArrayObject=this.gl.getExtension(`OES_vertex_array_object`),this.clearColor=new re(this),this.clearDepth=new ie(this),this.clearStencil=new ae(this),this.colorMask=new oe(this),this.depthMask=new se(this),this.stencilMask=new ce(this),this.stencilFunc=new le(this),this.stencilOp=new ue(this),this.stencilTest=new de(this),this.depthRange=new fe(this),this.depthTest=new pe(this),this.depthFunc=new me(this),this.blend=new he(this),this.blendFunc=new ge(this),this.blendColor=new _e(this),this.blendEquation=new ve(this),this.cullFace=new ye(this),this.cullFaceSide=new be(this),this.frontFace=new xe(this),this.program=new Se(this),this.activeTexture=new Ce(this),this.viewport=new we(this),this.bindFramebuffer=new Te(this),this.bindRenderbuffer=new Ee(this),this.bindTexture=new De(this),this.bindVertexBuffer=new Oe(this),this.bindElementBuffer=new ke(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new Ae(this),this.pixelStoreUnpack=new je(this),this.pixelStoreUnpackPremultiplyAlpha=new Me(this),this.pixelStoreUnpackFlipY=new Ne(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.extTextureFilterAnisotropicForceOff=!1,this.extStandardDerivativesForceOff=!1,this.extDebugRendererInfo=e.getExtension(`WEBGL_debug_renderer_info`),this.extDebugRendererInfo&&(this.renderer=e.getParameter(this.extDebugRendererInfo.UNMASKED_RENDERER_WEBGL),this.vendor=e.getParameter(this.extDebugRendererInfo.UNMASKED_VENDOR_WEBGL)),this.extTextureHalfFloat=e.getExtension(`OES_texture_half_float`),this.extTextureHalfFloat&&(e.getExtension(`OES_texture_half_float_linear`),this.extRenderToTextureHalfFloat=e.getExtension(`EXT_color_buffer_half_float`)),this.extStandardDerivatives=e.getExtension(`OES_standard_derivatives`),this.extTimerQuery=e.getExtension(`EXT_disjoint_timer_query`),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE)}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.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0}createIndexBuffer(e,t){return new F(this,e,t)}createVertexBuffer(e,t,n){return new ne(this,e,t,n)}createRenderbuffer(e,t,n){let r=this.gl,i=r.createRenderbuffer();return this.bindRenderbuffer.set(i),r.renderbufferStorage(r.RENDERBUFFER,e,t,n),this.bindRenderbuffer.set(null),i}createFramebuffer(e,t,n){return new Re(this,e,t,n)}clear({color:e,depth:t,stencil:n}){let r=this.gl,i=0;e&&(i|=r.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),t!==void 0&&(i|=r.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(t),this.depthMask.set(!0)),n!==void 0&&(i|=r.STENCIL_BUFFER_BIT,this.clearStencil.set(n),this.stencilMask.set(255)),r.clear(i)}setCullFace(e){!1===e.enable?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(n){t(n.blendFunction,e.ColorMode.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(n.blendFunction),this.blendColor.set(n.blendColor)),this.colorMask.set(n.mask)}unbindVAO(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null)}}class Be extends e.Evented{constructor(t,n,r,i){super(),this.id=t,this.dispatcher=r,this.setEventedParent(i),this.type=`raster`,this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=`xyz`,this.tileSize=512,this._loaded=!1,this._options=e.extend({type:`raster`},n),e.extend(this,e.pick(n,[`url`,`scheme`,`tileSize`]))}load(){this._loaded=!1,this.fire(new e.Event(`dataloading`,{dataType:`source`})),this._tileJSONRequest=te(this._options,this.map._requestManager,null,null,((t,n)=>{this._tileJSONRequest=null,this._loaded=!0,t?this.fire(new e.ErrorEvent(t)):n&&(e.extend(this,n),n.bounds&&(this.tileBounds=new P(n.bounds,this.minzoom,this.maxzoom)),e.postTurnstileEvent(n.tiles),this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`metadata`})),this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`content`})))}))}loaded(){return this._loaded}onAdd(e){this.map=e,this.load()}onRemove(){this._tileJSONRequest&&=(this._tileJSONRequest.cancel(),null)}serialize(){return e.extend({},this._options)}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,n){let r=e.exported.devicePixelRatio>=2,i=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),r,this.tileSize);t.request=e.getImage(this.map._requestManager.transformRequest(i,e.ResourceType.Tile),((r,i,a,o)=>(delete t.request,t.aborted?(t.state=`unloaded`,n(null)):r?(t.state=`errored`,n(r)):i?(this.map._refreshExpiredTiles&&t.setExpiryData({cac
1heControl:a,expires:o}),t.setTexture(i,this.map.painter),t.state=`loaded`,e.cacheEntryPossiblyAdded(this.dispatcher),void n(null)):n(null))))}static loadTileData(e,t,n){e.setTexture(t,n)}static unloadTileData(e,t){e.texture&&t.saveTileTexture(e.texture)}abortTile(e,t){e.request&&(e.request.cancel(),delete e.request),t()}unloadTile(e,t){e.texture&&this.map.painter.saveTileTexture(e.texture),t()}hasTransition(){return!1}}let Ve;function He(t,n,r,i,a,o,s,c){let l=[t,r,a,n,i,o,1,1,1],u=[s,c,1],d=e.adjoint([],l),[f,p,m]=e.transformMat3(u,u,e.transpose(d,d));return e.multiply$1(l,[f,0,0,0,p,0,0,0,m],l)}class Ue extends e.Evented{constructor(e,t,n,r){super(),this.id=e,this.dispatcher=n,this.coordinates=t.coordinates,this.type=`image`,this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=t,this._dirty=!1}load(t,n){this._loaded=n||!1,this.fire(new e.Event(`dataloading`,{dataType:`source`})),this.url=this.options.url,this._imageRequest=e.getImage(this.map._requestManager.transformRequest(this.url,e.ResourceType.Image),((n,r)=>{if(this._imageRequest=null,this._loaded=!0,n)this.fire(new e.ErrorEvent(n));else if(r){let{HTMLImageElement:n}=e.window;this.image=r instanceof n?e.exported.getImageData(r):r,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,t&&(this.coordinates=t),this._finishLoading()}}))}loaded(){return this._loaded}updateImage(e){return this.image&&e.url?(this._imageRequest&&e.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=e.url,this.load(e.coordinates,this._loaded),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`metadata`})))}onAdd(e){this.map=e,this.load()}onRemove(){this._imageRequest&&=(this._imageRequest.cancel(),null),this.texture&&this.texture.destroy()}setCoordinates(t){this.coordinates=t,this._boundsArray=void 0;let n=t.map(e.MercatorCoordinate.fromLngLat);return this.tileID=function(t){let n=1/0,r=1/0,i=-1/0,a=-1/0;for(let e of t)n=Math.min(n,e.x),r=Math.min(r,e.y),i=Math.max(i,e.x),a=Math.max(a,e.y);let o=Math.max(i-n,a-r),s=Math.max(0,Math.floor(-Math.log(o)/Math.LN2)),c=2**s;return new e.CanonicalTileID(s,Math.floor((n+i)/2*c),Math.floor((r+a)/2*c))}(n),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`content`})),this}_clear(){this._boundsArray=void 0}_prepareData(t){for(let e in this.tiles){let t=this.tiles[e];t.state!==`loaded`&&(t.state=`loaded`,t.texture=this.texture)}if(this._boundsArray)return;let n=e.tileTransform(this.tileID,this.map.transform.projection),[r,i,a,o]=this.coordinates.map((t=>{let r=n.projection.project(t[0],t[1]);return e.getTilePoint(n,r)._round()}));this.perspectiveTransform=function(t,n,r,i,a,o,s,c,l,u){let d=He(0,0,t,0,0,n,t,n),f=He(r,i,a,o,s,c,l,u);return e.multiply$1(f,e.adjoint(d,d),f),[f[6]/f[8]*t/e.EXTENT,f[7]/f[8]*n/e.EXTENT]}(this.width,this.height,r.x,r.y,i.x,i.y,o.x,o.y,a.x,a.y);let s=this._boundsArray=new e.StructArrayLayout4i8;s.emplaceBack(r.x,r.y,0,0),s.emplaceBack(i.x,i.y,e.EXTENT,0),s.emplaceBack(o.x,o.y,0,e.EXTENT),s.emplaceBack(a.x,a.y,e.EXTENT,e.EXTENT),this.boundsBuffer&&this.boundsBuffer.destroy(),this.boundsBuffer=t.createVertexBuffer(s,e.boundsAttributes.members),this.boundsSegments=e.SegmentVector.simpleSegment(0,0,4,2)}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;let t=this.map.painter.context,n=t.gl;this._dirty&&=(this.texture?this.texture.update(this.image):(this.texture=new e.Texture(t,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE)),!1),this._prepareData(t)}loadTile(e,t){this.tileID&&this.tileID.equals(e.tileID.canonical)?(this.tiles[String(e.tileID.wrap)]=e,e.buckets={},t(null)):(e.state=`errored`,t(null))}serialize(){return{type:`image`,url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}let We={vector:class extends e.Evented{constructor(t,n,r,i){if(super(),this.id=t,this.dispatcher=r,this.type=`vector`,this.minzoom=0,this.maxzoom=22,this.scheme=`xyz`,this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,e.extend(this,e.pick(n,[`url`,`scheme`,`tileSize`,`promoteId`])),this._options=e.extend({type:`vector`},n),this._collectResourceTiming=n.collectResourceTiming,this.tileSize!==512)throw Error(`vector tile sources must have a tileSize of 512`);this.setEventedParent(i),this._tileWorkers={},this._deduped=new e.DedupedRequest}load(t){this._loaded=!1,this.fire(new e.Event(`dataloading`,{dataType:`source`}));let n=Array.isArray(this.map._language)?this.map._language.join():this.map._language,r=this.map._worldview;this._tileJSONRequest=te(this._options,this.map._requestManager,n,r,((i,a)=>{this._tileJSONRequest=null,this._loaded=!0,i?(n&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${n}`),r&&r.length!==2&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${r}`),this.fire(new e.ErrorEvent(i))):a&&(e.extend(this,a),a.bounds&&(this.tileBounds=new P(a.bounds,this.minzoom,this.maxzoom)),e.postTurnstileEvent(a.tiles,this.map._requestManager._customAccessToken),this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`metadata`})),this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`content`}))),t&&t(i)}))}loaded(){return this._loaded}hasTile(e){return!this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load()}reload(){this.cancelTileJSONRequest(),this.load((()=>{let e=this.map.style._getSourceCaches(this.id);for(let t of e)t.clearTiles()}))}setSourceProperty(e){e(),this.reload()}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(){this.cancelTileJSONRequest()}serialize(){return e.extend({},this._options)}loadTile(t,n){let r=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme)),i={request:this.map._requestManager.transformRequest(r,e.ResourceType.Tile),data:void 0,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.t
1ype,source:this.id,pixelRatio:e.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:t.isSymbolTile};i.request.collectResourceTiming=this._collectResourceTiming,t.actor&&t.state!==`expired`?t.state===`loading`?t.reloadCallback=n:t.request=t.actor.send(`reloadTile`,i,a.bind(this)):(t.actor=this._tileWorkers[r]=this._tileWorkers[r]||this.dispatcher.getActor(),this.dispatcher.ready?t.request=t.actor.send(`loadTile`,i,a.bind(this),void 0,!0):t.request={cancel:e.loadVectorTile.call({deduped:this._deduped},i,((e,n)=>{e||!n?a.call(this,e):(i.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},t.actor&&t.actor.send(`loadTile`,i,a.bind(this),void 0,!0))}),!0)});function a(r,i){return delete t.request,t.aborted?n(null):r&&r.status!==404?n(r):(i&&i.resourceTiming&&(t.resourceTiming=i.resourceTiming),this.map._refreshExpiredTiles&&i&&t.setExpiryData(i),t.loadVectorData(i,this.map.painter),e.cacheEntryPossiblyAdded(this.dispatcher),n(null),void(t.reloadCallback&&=(this.loadTile(t,t.reloadCallback),null)))}}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.actor&&e.actor.send(`abortTile`,{uid:e.uid,type:this.t
vendor: 1,043 bytes, line 1
1ype,source:this.id})}unloadTile(e){e.unloadVectorData(),e.actor&&e.actor.send(`removeTile`,{uid:e.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}cancelTileJSONRequest(){this._tileJSONRequest&&=(this._tileJSONRequest.cancel(),null)}},raster:Be,"raster-dem":class extends Be{constructor(t,n,r,i){super(t,n,r,i),this.type=`raster-dem`,this.maxzoom=22,this._options=e.extend({type:`raster-dem`},n),this.encoding=n.encoding||`mapbox`}loadTile(t,n){let r=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function i(e,r){e&&(t.state=`errored`,n(e)),r&&(t.dem=r,t.dem.onDeserialize(),t.needsHillshadePrepare=!0,t.needsDEMTextureUpload=!0,t.state=`loaded`,n(null))}t.request=e.getImage(this.map._requestManager.transformRequest(r,e.ResourceType.Tile),function(r,a,o,s){if(delete t.request,t.aborted)t.state=`unloaded`,n(null);else if(r)t.state=`errored`,n(r);else if(a){this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:o,expires:s});
1let n=e.window.ImageBitmap&&a instanceof e.window.ImageBitmap&&(Ve??=e.window.OffscreenCanvas&&new e.window.OffscreenCanvas(1,1).getContext(`2d`)&&typeof e.window.createImageBitmap==`function`,Ve),r=1-(a.width-e.prevPowerOfTwo(a.width))/2;r<1||t.neighboringTiles||(t.neighboringTiles=this._getNeighboringTiles(t.tileID));let c=n?a:e.exported.getImageData(a,r),l={uid:t.uid,coord:t.tileID,source:this.id,rawImageData:c,encoding:this.encoding,padding:r};t.actor&&t.state!==`expired`||(t.actor=this.dispatcher.getActor(),t.actor.send(`loadDEMTile`,l,i.bind(this),void 0,!0))}}.bind(this))}_getNeighboringTiles(t){let n=t.canonical,r=2**n.z,i=(n.x-1+r)%r,a=n.x===0?t.wrap-1:t.wrap,o=(n.x+1+r)%r,s=n.x+1===r?t.wrap+1:t.wrap,c={};return c[new e.OverscaledTileID(t.overscaledZ,a,n.z,i,n.y).key]={backfilled:!1},c[new e.OverscaledTileID(t.overscaledZ,s,n.z,o,n.y).key]={backfilled:!1},n.y>0&&(c[new e.OverscaledTileID(t.overscaledZ,a,n.z,i,n.y-1).key]={backfilled:!1},c[new e.OverscaledTileID(t.overscaledZ,t.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},c[new e.OverscaledTileID(t.overscaledZ,s,n.z,o,n.y-1).key]={backfilled:!1}),n.y+1<r&&(c[new e.OverscaledTileID(t.overscaledZ,a,n.z,i,n.y+1).key]={backfilled:!1},c[new e.OverscaledTileID(t.overscaledZ,t.wrap,n.z,n.x,n.y+1).key]={backfilled:!1},c[new e.OverscaledTileID(t.overscaledZ,s,n.z,o,n.y+1).key]={backfilled:!1}),c}unloadTile(e){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`}},geojson:class extends e.Evented{constructor(t,n,r,i){super(),this.id=t,this.type=`geojson`,this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._loaded=!1,this.actor=r.getActor(),this.setEventedParent(i),this._data=n.data,this._options=e.extend({},n),this._collectResourceTiming=n.collectResourceTiming,n.maxzoom!==void 0&&(this.maxzoom=n.maxzoom),n.type&&(this.type=n.type),n.attribution&&(this.attribution=n.attribution),this.promoteId=n.promoteId;let a=e.EXTENT/this.tileSize;this.workerOptions=e.extend({source:this.id,cluster:n.cluster||!1,geojsonVtOptions:{buffer:(n.buffer===void 0?128:n.buffer)*a,tolerance:(n.tolerance===void 0?.375:n.tolerance)*a,extent:e.EXTENT,maxZoom:this.maxzoom,lineMetrics:n.lineMetrics||!1,generateId:n.generateId||!1},superclusterOptions:{maxZoom:n.clusterMaxZoom===void 0?this.maxzoom-1:n.clusterMaxZoom,minPoints:Math.max(2,n.clusterMinPoints||2),extent:e.EXTENT,radius:(n.clusterRadius===void 0?50:n.clusterRadius)*a,log:!1,generateId:n.generateId||!1},clusterProperties:n.clusterProperties,filter:n.filter},n.workerOptions)}onAdd(e){this.map=e,this.setData(this._data)}setData(e){return this._data=e,this._updateWorkerData(),this}getClusterExpansionZoom(e,t){return this.actor.send(`geojson.getClusterExpansionZoom`,{clusterId:e,source:this.id},t),this}getClusterChildren(e,t){return this.actor.send(`geojson.getClusterChildren`,{clusterId:e,source:this.id},t),this}getClusterLeaves(e,t,n,r){return this.actor.send(`geojson.getClusterLeaves`,{source:this.id,clusterId:e,limit:t,offset:n},r),this}_updateWorkerData(){if(this._pendingLoad)return void(this._coalesce=!0);this.fire(new e.Event(`dataloading`,{dataType:`source`})),this._loaded=!1;let t=e.extend({},this.workerOptions),n=this._data;typeof n==`string`?(t.request=this.map._requestManager.transformRequest(e.exported.resolveURL(n),e.ResourceType.Source),t.request.collectResourceTiming=this._collectResourceTiming):t.data=JSON.stringify(n),this._pendingLoad=this.actor.send(`${this.type}.loadData`,t,((t,n)=>{if(this._loaded=!0,this._pendingLoad=null,t)this.fire(new e.ErrorEvent(t));else{let t={dataType:`source`,sourceDataType:this._metadataFired?`content`:`metadata`};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(t.resourceTiming=n.resourceTiming[this.id]),this.fire(new e.Event(`data`,t)),this._metadataFired=!0}this._coalesce&&=(this._updateWorkerData(),!1)}))}loaded(){return this._loaded}loadTile(t,n){let r=t.actor?`reloadTile`:`loadTile`;
1t.actor=this.actor,t.request=this.actor.send(r,{type:this.type,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:e.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},((e,i)=>(delete t.request,t.unloadVectorData(),t.aborted?n(null):e?n(e):(t.loadVectorData(i,this.map.painter,r===`reloadTile`),n(null)))),void 0,r===`loadTile`)}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.aborted=!0}unloadTile(e){e.unloadVectorData(),this.actor.send(`removeTile`,{uid:e.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return e.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends Ue{constructor(e,t,n,r){super(e,t,n,r),this.roundZoom=!0,this.type=`video`,this.options=t}load(){this._loaded=!1;let t=this.options;this.urls=[];for(let n of t.urls)this.urls.push(this.map._requestManager.transformRequest(n,e.ResourceType.Source).url);e.getVideo(this.urls,((t,n)=>{this._loaded=!0,t?this.fire(new e.ErrorEvent(t)):n&&(this.video=n,this.video.loop=!0,this.video.setAttribute(`playsinline`,``),this.video.addEventListener(`playing`,(()=>{this.map.triggerRepaint()})),this.map&&this.video.play(),this._finishLoading())}))}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(t){if(this.video){let n=this.video.seekable;t<n.start(0)||t>n.end(0)?this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=t}}getVideo(){return this.video}onAdd(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;let t=this.map.painter.context,n=t.gl;this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new e.Texture(t,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(t)}serialize(){return{type:`video`,urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:Ue,canvas:class extends Ue{constructor(t,n,r,i){super(t,n,r,i),n.coordinates?Array.isArray(n.coordinates)&&n.coordinates.length===4&&!n.coordinates.some((e=>!Array.isArray(e)||e.length!==2||e.some((e=>typeof e!=`number`))))||this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,`"coordinates" property must be an array of 4 longitude/latitude array pairs`))):this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,`missing required property "coordinates"`))),n.animate&&typeof n.animate!=`boolean`&&this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,`optional "animate" property must be a boolean value`))),n.canvas?typeof n.canvas==`string`||n.canvas instanceof e.
1window.HTMLCanvasElement||this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,`"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance`))):this.fire(new e.ErrorEvent(new e.ValidationError(`sources.${t}`,null,`missing required property "canvas"`))),this.options=n,this.animate=n.animate===void 0||n.animate}load(){this._loaded=!0,this.canvas||=this.options.canvas instanceof e.window.HTMLCanvasElement?this.options.canvas:e.window.document.getElementById(this.options.canvas),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new e.ErrorEvent(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(),!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 t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let n=this.map.painter.context;this.texture?(t||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new e.Texture(n,this.canvas,n.gl.RGBA,{premultiply:!0}),this._prepareData(n)}serialize(){return{type:`canvas`,coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let e of[this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return!0;return!1}},custom:class extends e.Evented{constructor(t,n,r,i){super(),this.id=t,this.type=`custom`,this._dataType=`raster`,this._dispatcher=r,this._implementation=n,this.setEventedParent(i),this.scheme=`xyz`,this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new e.ErrorEvent(Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new e.ErrorEvent(Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new P(this._implementation.bounds,this.minzoom,this.maxzoom)),n.update=this._update.bind(this),n.clearTiles=this._clearTiles.bind(this),n.coveringTiles=this._coveringTiles.bind(this),e.extend(this,e.pick(n,[`dataType`,`scheme`,`minzoom`,`maxzoom`,`tileSize`,`attribution`,`minTileCacheSize`,`maxTileCacheSize`]))}serialize(){return e.pick(this,[`type`,`scheme`,`minzoom`,`maxzoom`,`tileSize`,`attribution`])}load(){this._loaded=!0,this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`metadata`})),this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`content`}))}loaded(){return this._loaded}onAdd(t){this._map=t,this._loaded=!1,this.fire(new e.Event(`dataloading`,{dataType:`source`})),this._implementation.onAdd&&this._implementation.onAdd(t),this.load()}onRemove(e){this._implementation.onRemove&&this._implementation.onRemove(e)}hasTile(e){if(this._implementation.hasTile){let{x:t,y:n,z:r}=e.canonical;return this._implementation.hasTile({x:t,y:n,z:r})}return!this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,n){let{x:r,y:i,z:a}=t.tileID.canonical,o=new e.window.AbortController;t.request=Promise.resolve(this._implementation.loadTile({x:r,y:i,z:a},{signal:o.signal})).then(function(r){return delete t.request,t.aborted?(t.state=`unloaded`,n(null)):r===void 0?(t.state=`errored`,n(null)):r===null?(this.loadTileData(t,{width:this.tileSize,height:this.tileSize,data:null}
1),t.state=`loaded`,n(null)):function(t){return t instanceof e.window.ImageData||t instanceof e.window.HTMLCanvasElement||t instanceof e.window.ImageBitmap||t instanceof e.window.HTMLImageElement}(r)?(this.loadTileData(t,r),t.state=`loaded`,void n(null)):(t.state=`errored`,n(Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}.bind(this)).catch((e=>{e.code!==20&&(t.state=`errored`,n(e))})),t.request.cancel=()=>o.abort()}loadTileData(e,t){Be.loadTileData(e,t,this._map.painter)}unloadTileData(e){Be.unloadTileData(e,this._map.painter)}unloadTile(e,t){if(this.unloadTileData(e),this._implementation.unloadTile){let{x:t,y:n,z:r}=e.tileID.canonical;this._implementation.unloadTile({x:t,y:n,z:r})}t()}abortTile(e,t){e.request&&e.request.cancel&&(e.request.cancel(),delete e.request),t()}hasTransition(){return!1}_coveringTiles(){return this._map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map((e=>({x:e.canonical.x,y:e.canonical.y,z:e.canonical.z})))}_clearTiles(){this._map.style._clearSource(this.id)}_update(){this.fire(new e.Event(`data`,{dataType:`source`,sourceDataType:`content`}))}}},Ge=function(t,n,r,i){let a=new We[n.type](t,n,r,i);if(a.id!==t)throw Error(`Expected Source id to be ${t} instead of ${a.id}`);return e.bindAll([`load`,`abort`,`unload`,`serialize`,`prepare`],a),a};function Ke(t,n){let r=e.identity([]);return e.scale(r,r,[.5*t.width,.5*-t.height,1]),e.translate(r,r,[1,-1,0]),e.multiply(r,r,t.calculateProjMatrix(n.toUnwrapped())),Float32Array.from(r)}function qe(e,t,n,r,i,a,o,s=!1){let c=e.tilesIn(r,o,s);c.sort(Ye);let l=[];for(let r of c)l.push({wrappedTileID:r.tile.tileID.wrapped().key,queryResults:r.tile.queryRenderedFeatures(t,n,e._state,r,i,a,Ke(e.transform,r.tile.tileID),s)});let u=function(e){let t={},n={};for(let r of e){let e=r.queryResults,i=r.wrappedTileID,a=n[i]=n[i]||{};for(let n in e){let r=e[n],i=a[n]=a[n]||{},o=t[n]=t[n]||[];for(let e of r)i[e.featureIndex]||(i[e.featureIndex]=!0,o.push(e))}}return t}(l);for(let t in u)u[t].forEach((t=>{let n=t.feature,r=n.layer;r&&r.type!==`background`&&r.type!==`sky`&&(n.source=r.source,r[`source-layer`]&&(n.sourceLayer=r[`source-layer`]),n.state=n.id===void 0?{}:e.getFeatureState(r[`source-layer`],n.id))}));return u}function Je(e,t){let n=e.getRenderableIds().map((t=>e.getTileByID(t))),r=[],i={};for(let e=0;e<n.length;e++){let a=n[e],o=a.tileID.canonical.key;i[o]||(i[o]=!0,a.querySourceFeatures(r,t))}return r}function Ye(e,t){let n=e.tileID,r=t.tileID;return n.overscaledZ-r.overscaledZ||n.canonical.y-r.canonical.y||n.wrap-r.wrap||n.canonical.x-r.canonical.x}function Xe(){return ua.workerClass==null?new e.window.Worker(ua.workerUrl):new ua.workerClass}let Ze=`mapboxgl_preloaded_worker_pool`;class Qe{constructor(){this.active={}}acquire(e){if(!this.workers)for(this.workers=[];this.workers.length<Qe.workerCount;)this.workers.push(new Xe);return this.active[e]=!0,this.workers.slice()}release(e){delete this.active[e],this.numActive()===0&&(this.workers.forEach((e=>{e.terminate()})),this.workers=null)}isPreloaded(){return!!this.active[Ze]}numActive(){return Object.keys(this.active).length}}let $e;function et(){return $e||=new Qe,$e}function tt(t,n){let r={};for(let e in t)e!==`ref`&&(r[e]=t[e]);return e.refProperties.forEach((e=>{e in n&&(r[e]=n[e])})),r}function nt(e){e=e.slice();let t=Object.create(null);for(let n=0;n<e.length;n++)t[e[n].id]=e[n];for(let n=0;n<e.length;n++)`ref`in e[n]&&(e[n]=tt(e[n],t[e[n].ref]));return e}Qe.workerCount=2;let R={setStyle:`setStyle`,addLayer:`addLayer`,removeLayer:`removeLayer`,setPaintProperty:`setPaintProperty`,setLayoutProperty:`setLayoutProperty`,setFilter:`setFilter`,addSource:`addSource`,removeSource:`removeSource`,setGeoJSONSourceData:`setGeoJSONSourceData`,setLayerZoomRange:`setLayerZoomRange`,setLayerProperty:`setLayerProperty`,setCenter:`setCenter`,setZoom:`setZoom`,setBearing:`setBearing`,setPitch:`setPitch`,setSprite:`setSprite`,setGlyphs:`setGlyphs`,setTransition:`setTransition`,setLight:`setLight`,setTerrain:`setTerrain`,setFog:`setFog`,setProjection:`setProjection`};function rt(e,t,n){n.push({command:R.addSource,args:[e,t[e]]})}function it(e,t,n){t.push({command:R.removeSource,args:[e]}),n[e]=!0}function at(e,t,n,r){it(e,n,r),rt(e,t,n)}function ot(e,n,r){let i;for(i in e[r])if(e[r].hasOwnProperty(i)&&i!==`data`&&!t(e[r][i],n[r][i]))return!1;for(i in n[r])if(n[r].hasOwnProperty(i)&&i!==`data`&&!t(e[r][i],n[r][i]))return!1;return!0}function st(e,n,r,i,a,o){let s;for(s in n||={},e||={}
vendor: 4,988 bytes, line 1
1)e.hasOwnProperty(s)&&(t(e[s],n[s])||r.push({command:o,args:[i,s,n[s],a]}));for(s in n)n.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(t(e[s],n[s])||r.push({command:o,args:[i,s,n[s],a]}))}function ct(e){return e.id}function lt(e,t){return e[t.id]=t,e}class z{constructor(e,t){this.reset(e,t)}reset(e,t){this.points=e||[],this._distances=[0];for(let e=1;e<this.points.length;e++)this._distances[e]=this._distances[e-1]+this.points[e].dist(this.points[e-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(t||0,.5*this.length),this.paddedLength=this.length-2*this.padding}lerp(t){if(this.points.length===1)return this.points[0];t=e.clamp(t,0,1);let n=1,r=this._distances[n],i=t*this.paddedLength+this.padding;for(;r<i&&n<this._distances.length;)r=this._distances[++n];let a=n-1,o=this._distances[a],s=r-o,c=s>0?(i-o)/s:0;return this.points[a].mult(1-c).add(this.points[n].mult(c))}}class ut{constructor(e,t,n){let r=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(e/n),this.yCellCount=Math.ceil(t/n);for(let e=0;e<this.xCellCount*this.yCellCount;e++)r.push([]),i.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=e,this.height=t,this.xScale=this.xCellCount/e,this.yScale=this.yCellCount/t,this.boxUid=0,this.circleUid=0}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i)}insertCircle(e,t,n,r){this._forEachCell(t-r,n-r,t+r,n+r,this._insertCircleCell,this.circleUid++),this.circleKeys.push(e),this.circles.push(t),this.circles.push(n),this.circles.push(r)}_insertBoxCell(e,t,n,r,i,a){this.boxCells[i].push(a)}_insertCircleCell(e,t,n,r,i,a){this.circleCells[i].push(a)}_query(e,t,n,r,i,a){if(n<0||e>this.width||r<0||t>this.height)return!i&&[];let o=[];if(e<=0&&t<=0&&this.width<=n&&this.height<=r){if(i)return!0;for(let e=0;e<this.boxKeys.length;e++)o.push({key:this.boxKeys[e],x1:this.bboxes[4*e],y1:this.bboxes[4*e+1],x2:this.bboxes[4*e+2],y2:this.bboxes[4*e+3]});for(let e=0;e<this.circleKeys.length;e++){let t=this.circles[3*e],n=this.circles[3*e+1],r=this.circles[3*e+2];o.push({key:this.circleKeys[e],x1:t-r,y1:n-r,x2:t+r,y2:n+r})}return a?o.filter(a):o}return this._forEachCell(e,t,n,r,this._queryCell,o,{hitTest:i,seenUids:{box:{},circle:{}}},a),i?o.length>0:o}_queryCircle(e,t,n,r,i){let a=e-n,o=e+n,s=t-n,c=t+n;if(o<0||a>this.width||c<0||s>this.height)return!r&&[];let l=[];return this._forEachCell(a,s,o,c,this._queryCellCircle,l,{hitTest:r,circle:{x:e,y:t,radius:n},seenUids:{box:{},circle:{}}},i),r?l.length>0:l}query(e,t,n,r,i){return this._query(e,t,n,r,!1,i)}hitTest(e,t,n,r,i){return this._query(e,t,n,r,!0,i)}hitTestCircle(e,t,n,r){return this._queryCircle(e,t,n,!0,r)}_queryCell(e,t,n,r,i,a,o,s){let c=o.seenUids,l=this.boxCells[i];if(l!==null){let i=this.bboxes;for(let u of l)if(!c.box[u]){c.box[u]=!0;let l=4*u;if(e<=i[l+2]&&t<=i[l+3]&&n>=i[l+0]&&r>=i[l+1]&&(!s||s(this.boxKeys[u]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[u],x1:i[l],y1:i[l+1],x2:i[l+2],y2:i[l+3]})}}}let u=this.circleCells[i];if(u!==null){let i=this.circles;for(let l of u)if(!c.circle[l]){c.circle[l]=!0;let u=3*l;if(this._circleAndRectCollide(i[u],i[u+1],i[u+2],e,t,n,r)&&(!s||s(this.circleKeys[l]))){if(o.hitTest)return a.push(!0),!0;{let e=i[u],t=i[u+1],n=i[u+2];a.push({key:this.circleKeys[l],x1:e-n,y1:t-n,x2:e+n,y2:t+n})}}}}}_queryCellCircle(e,t,n,r,i,a,o,s){let c=o.circle,l=o.seenUids,u=this.boxCells[i];if(u!==null){let e=this.bboxes;for(let t of u)if(!l.box[t]){l.box[t]=!0;let n=4*t;if(this._circleAndRectCollide(c.x,c.y,c.radius,e[n+0],e[n+1],e[n+2],e[n+3])&&(!s||s(this.boxKeys[t])))return a.push(!0),!0}}let d=this.circleCells[i];if(d!==null){let e=this.circles;for(let t of d)if(!l.circle[t]){l.circle[t]=!0;let n=3*t;if(this._circlesCollide(e[n],e[n+1],e[n+2],c.x,c.y,c.radius)&&(!s||s(this.circleKeys[t])))return a.push(!0),!0}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToXCellCoord(e),l=this._convertToYCellCoord(t),u=this._convertToXCellCoord(n),d=this._convertToYCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++)if(i.call(this,e,t,n,r,this.xCellCount*c+f,a,o,s))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,t,n,r,i,a){let o=r-e,s=i-t,c=n+a;return c*c>o*o+s*s}_circleAndRectCollide(e,t,n,r,i,a,o){let s=(a-r)/2,c=Math.abs(e-(r+s));if(c>s+n)return!1;let l=(o-i)/2,u=Math.abs(t-(i+l));if(u>l+n)return!1;if(c<=s||u<=l)return!0;let d=c-s,f=u-l;return d*d+f*f<=n*n}}let dt=Math.tan(85*Math.PI/180);function ft(t,n,r,i,a,o,s){let c=e.create();if(r)if(o.name===`globe`){let t=e.calculateGlobeLabelMatrix(a,n);e.multiply(c,c,t)}else{let t=v([],s);c[0]=t[0],c[1]=t[1],c[4]=t[2],c[5]=t[3],i||e.rotateZ(c,c,a.angle)}
1else e.multiply(c,a.labelPlaneMatrix,t);return c}function pt(e,t,n,r,i,a,o){let s=ft(e,t,n,r,i,a,o);return a.name===`globe`&&n||(s[2]=s[6]=s[10]=s[14]=0),s}function mt(t,n,r,i,a,o,s){if(r){if(o.name===`globe`){let c=ft(t,n,r,i,a,o,s);return e.invert(c,c),e.multiply(c,t,c),c}{let n=e.clone(t),r=e.identity([]);return r[0]=s[0],r[1]=s[1],r[4]=s[2],r[5]=s[3],e.multiply(n,n,r),i||e.rotateZ(n,n,-a.angle),n}}return a.glCoordMatrix}function ht(t,n,r,i){let a=[t,n,r,1];r?e.transformMat4$1(a,a,i):St(a,a,i);let o=a[3];return a[0]/=o,a[1]/=o,a[2]/=o,a}function gt(e,t){return Math.min(.5+e/t*.5,1.5)}function _t(e,t){let n=e[0]/e[3],r=e[1]/e[3];return n>=-t[0]&&n<=t[0]&&r>=-t[1]&&r<=t[1]}function B(t,n,r,i,a,o,s,c,l,u){let d=r.transform,f=i?t.textSizeData:t.iconSizeData,p=e.evaluateSizeForZoom(f,r.transform.zoom),m=d.projection.name===`globe`,h=[256/r.width*2+1,256/r.height*2+1],g=i?t.text.dynamicLayoutVertexArray:t.icon.dynamicLayoutVertexArray;g.clear();let _=null;m&&(_=i?t.text.globeExtVertexArray:t.icon.globeExtVertexArray);let v=t.lineVertexArray,y=i?t.text.placedSymbolArray:t.icon.placedSymbolArray,b=r.transform.width/r.transform.height,x,S=!1;for(let i=0;i<y.length;i++){let m=y.get(i),{numGlyphs:C,writingMode:w}=m;if(w!==e.WritingMode.vertical||S||x===e.WritingMode.horizontal||(S=!0),x=w,(m.hidden||w===e.WritingMode.vertical)&&!S){xt(C,g);continue}S=!1;let T=new e.pointGeometry(m.tileAnchorX,m.tileAnchorY),{x:E,y:D,z:O}=d.projection.projectTilePoint(T.x,T.y,u.canonical);if(l){let[e,t,n]=l(T);E+=e,D+=t,O+=n}let k=[E,D,O,1];if(e.transformMat4$1(k,k,n),!_t(k,h)){xt(C,g);continue}let A=gt(r.transform.cameraToCenterDistance,k[3]),j=e.evaluateSizeForFeature(f,p,m),M=s?j/A:j*A,ee=ht(E,D,O,a);if(ee[3]<=0){xt(C,g);continue}let N={},te=s?null:l,P=vt(m,M,!1,c,n,a,o,t.glyphOffsetArray,v,g,_,ee,T,N,b,te,d.projection,u,s);S=P.useVertical,te&&P.needsFlipping&&(N={}),(P.notEnoughRoom||S||P.needsFlipping&&vt(m,M,!0,c,n,a,o,t.glyphOffsetArray,v,g,_,ee,T,N,b,te,d.projection,u,s).notEnoughRoom)&&xt(C,g)}i?(t.text.dynamicLayoutVertexBuffer.updateData(g),_&&t.text.globeExtVertexBuffer.updateData(_)):(t.icon.dynamicLayoutVertexBuffer.updateData(g),_&&t.icon.globeExtVertexBuffer.updateData(_))}function V(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let{lineStartIndex:g,glyphStartIndex:_,segment:v}=s,y=_+s.numGlyphs,b=g+s.lineLength,x=t.getoffsetX(_),S=t.getoffsetX(y-1),C=bt(e*x,n,r,i,a,o,v,g,b,c,l,u,d,f,!0,p,m,h);if(!C)return null;let w=bt(e*S,n,r,i,a,o,v,g,b,c,l,u,d,f,!0,p,m,h);return w?{first:C,last:w}:null}function H(t,n,r,i){return t===e.WritingMode.horizontal&&Math.abs(i)>Math.abs(r)?{useVertical:!0}:t===e.WritingMode.vertical?i>0?{needsFlipping:!0}:null:n!==0&&function(e,t){return e===0||Math.abs(t/e)>dt}(r,i)?n===1?{needsFlipping:!0}:null:r<0?{needsFlipping:!0}:null}function vt(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y){let b=n/24,x=t.lineOffsetX*b,S=t.lineOffsetY*b,{lineStartIndex:C,glyphStartIndex:w,numGlyphs:T,segment:E,writingMode:D,flipState:O}=t,k=C+t.lineLength,A=t=>{if(d){let[n,r,i]=t.up,a=u.length;e.updateGlobeVertexNormal(d,a+0,n,r,i),e.updateGlobeVertexNormal(d,a+1,n,r,i),e.updateGlobeVertexNormal(d,a+2,n,r,i),e.updateGlobeVertexNormal(d,a+3,n,r,i)}let[n,r,i]=t.point;e.addDynamicAttributes(u,n,r,i,t.angle)};if(T>1){let e=V(b,c,x,S,r,f,p,t,l,o,m,g,!1,_,v,y);if(!e)return{notEnoughRoom:!0};if(i&&!r){let[n,r,i]=e.first.point,[a,o,c]=e.last.point;[n,r]=ht(n,r,i,s),[a,o]=ht(a,o,c,s);let l=H(D,O,(a-n)*h,o-r);if(t.flipState=l&&l.needsFlipping?1:2,l)return l}A(e.first);for(let e=w+1;e<w+T-1;e++){let t=bt(b*c.getoffsetX(e),x,S,r,f,p,E,C,k,l,o,m,g,!1,!1,_,v,y);if(!t)return u.length-=4*(e-w),{notEnoughRoom:!0};A(t)}A(e.last)}else{if(i&&!r){let n=ht(p.x,p.y,0,a),r=C+E+1,i=new e.pointGeometry(l.getx(r),l.gety(r)),o=ht(i.x,i.y,0,a),s=o[3]>0?o:U(p,i,n,1,a,void 0,_,v.canonical),c=H(D,O,(s[0]-n[0])*h,s[1]-n[1]);if(t.flipState=c&&c.needsFlipping?1:2,c)return c}let n=bt(b*c.getoffsetX(w),x,S,r,f,p,E,C,k,l,o,m,g,!1,!1,_,v,y);if(!n)return{notEnoughRoom:!0};A(n)}return{}}function yt(e,t,n,r,i){let{x:a,y:o,z:s}=r.projectTilePoint(e.x,e.y,t);if(!i)return ht(a,o,s,n);let[c,l,u]=i(e);return ht(a+c,o+l,s+u,n)}function U(t,n,r,i,a,o,s,c){let l=yt(t.sub(n)._unit()._add(t),c,a,s,o);return e.sub(l,r,l),e.normalize(l,l),e.scaleAndAdd(l,r,l,i)}function bt(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=i?t-n:t+n,b=y>0?1:-1,x=0;i&&(b*=-1,x=Math.PI),b<0&&(x+=Math.PI);let S=c+s+(b>0?0:1)|0,C=a,w=a,T=0,E=0,D=Math.abs(y),O=[],k=[],A=o,j=A,M=()=>U(j,A,w,D-T+1,d,p,g,_.canonical);for(;T+E<=D;){if(S+=b,S<c||S>=l)return null;if(w=C,j=A,O.push(w),m&&k.push(j),A=new e.pointGeometry(u.getx(S),u.gety(S)),C=f[S],!C){let e=yt(A,_.canonical,d,g,p);C=e[3]>0?f[S]=e:M()}T+=E,E=e.distance(w,C)}h&&p&&(f[S]&&(C=M(),E=e.distance(w,C)),f[S]=C);let ee=(D-T)/E,N=A.sub(j)._mult(ee)._add(j),te=e.sub([],C,w),P=e.scaleAndAdd([],w,te,ee),F=[0,0,1],I=te[0],ne=te[1];if(v&&(F=g.upVector(_.canonical,N.x,N.y),F[0]!==0||F[1]!==0||F[2]!==1)){let t=[F[2],0,-F[0]],n=e.cross([],F,t);e.normalize(t,t),e.normalize(n,n),I=e.dot(te,t),ne=e.dot(te,n)}if(r){let t=e.cross([],F,te);e.normalize(t,t),e.scaleAndAdd(P,P,t,r*b)}let L=x+Math.atan2(ne,I);
1return O.push(P),m&&k.push(N),{point:P,angle:L,path:O,tilePath:k,up:F}}function xt(e,t){let n=t.length,r=n+4*e;t.resize(r),t.float32.fill(-1/0,4*n,4*r)}function St(e,t,n){let r=t[0],i=t[1];return e[0]=n[0]*r+n[4]*i+n[12],e[1]=n[1]*r+n[5]*i+n[13],e[3]=n[3]*r+n[7]*i+n[15],e}class Ct{constructor(e,t,n=new ut(e.width+200,e.height+200,25),r=new ut(e.width+200,e.height+200,25)){this.transform=e,this.grid=n,this.ignoredGrid=r,this.pitchfactor=Math.cos(e._pitch)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+100,this.screenBottomBoundary=e.height+100,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.fogState=t}placeCollisionBox(e,t,n,r,i,a,o,s){let c=n.projectedAnchorX,l=n.projectedAnchorY,u=n.projectedAnchorZ,d=n.elevation,f=n.tileID,p=e.getProjection();if(d&&f){let[e,t,r]=p.upVector(f.canonical,n.tileAnchorX,n.tileAnchorY),i=p.upVectorScale(f.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;c+=e*d*i,l+=t*d*i,u+=r*d*i}let m=this.projectAndGetPerspectiveRatio(o,c,l,u,n.tileID,p.name===`globe`||!!d||this.transform.pitch>0,p),h=a*m.perspectiveRatio,g=(n.x1*t+r.x-n.padding)*h+m.point.x,_=(n.y1*t+r.y-n.padding)*h+m.point.y,v=(n.x2*t+r.x+n.padding)*h+m.point.x,y=(n.y2*t+r.y+n.padding)*h+m.point.y,b=m.perspectiveRatio<=.55||m.occluded;return!this.isInsideGrid(g,_,v,y)||!i&&this.grid.hitTest(g,_,v,y,s)||b?{box:[],offscreen:!1,occluded:m.occluded}:{box:[g,_,v,y],offscreen:this.isOffscreen(g,_,v,y),occluded:!1}}placeCollisionCircles(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let g=[],_=this.transform.elevation,v=t.getProjection(),y=_?_.getAtTileOffsetFunc(h,this.transform.center.lat,this.transform.worldSize,v):null,b=new e.pointGeometry(r.tileAnchorX,r.tileAnchorY),{x,y:S,z:C}=v.projectTilePoint(b.x,b.y,h.canonical);if(y){let[e,t,n]=y(b);x+=e,S+=t,C+=n}let w=v.name===`globe`,T=this.projectAndGetPerspectiveRatio(s,x,S,C,h,w||!!_||this.transform.pitch>0,v),{perspectiveRatio:E}=T,D=(d?o/E:o*E)/e.ONE_EM,O=ht(x,S,C,c),k=T.signedDistanceFromCamera>0?V(D,a,r.lineOffsetX*D,r.lineOffsetY*D,!1,O,b,r,i,c,{},_&&!d?y:null,d&&!!_,v,h,d):null,A=!1,j=!1,M=!0;if(k&&!T.occluded){let t=.5*p*E+m,r=new e.pointGeometry(-100,-100),i=new e.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),a=new z,{first:o,last:s}=k,c=o.path.length,d=[];for(let e=c-1;e>=1;e--)d.push(o.path[e]);for(let e=1;e<s.path.length;e++)d.push(s.path[e]);let h=2.5*t;l&&(d=d.map((([e,t,n],r)=>(y&&!w&&(n=y(r<c-1?o.tilePath[c-1-r]:s.tilePath[r-c+2])[2]),ht(e,t,n,l)))),d.some((e=>e[3]<=0))&&(d=[]));let _=[];if(d.length>0){let t=1/0,n=-1/0,a=1/0,o=-1/0;for(let e of d)t=Math.min(t,e[0]),a=Math.min(a,e[1]),n=Math.max(n,e[0]),o=Math.max(o,e[1]);n>=r.x&&t<=i.x&&o>=r.y&&a<=i.y&&(_=[d.map((t=>new e.pointGeometry(t[0],t[1])))],(t<r.x||n>i.x||a<r.y||o>i.y)&&(_=e.clipLine(_,r.x,r.y,i.x,i.y)))}for(let e of _){a.reset(e,.25*t);let r=0;r=a.length<=.5*t?1:Math.ceil(a.paddedLength/h)+1;for(let e=0;e<r;e++){let i=e/Math.max(r-1,1),o=a.lerp(i),s=o.x+100,c=o.y+100;g.push(s,c,t,0);let l=s-t,d=c-t,p=s+t,m=c+t;if(M&&=this.isOffscreen(l,d,p,m),j||=this.isInsideGrid(l,d,p,m),!n&&this.grid.hitTestCircle(s,c,t,f)&&(A=!0,!u))return{circles:[],offscreen:!1,collisionDetected:A,occluded:!1}}}}return{circles:!u&&A||!j?[]:g,offscreen:M,collisionDetected:A,occluded:T.occluded}}queryRenderedSymbols(t){if(t.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};let n=[],r=1/0,i=1/0,a=-1/0,o=-1/0;for(let s of t){let t=new e.pointGeometry(s.x+100,s.y+100);r=Math.min(r,t.x),i=Math.min(i,t.y),a=Math.max(a,t.x),o=Math.max(o,t.y),n.push(t)}let s=this.grid.query(r,i,a,o).concat(this.ignoredGrid.query(r,i,a,o)),c={},l={};for(let t of s){let r=t.key;if(c[r.bucketInstanceId]===void 0&&(c[r.bucketInstanceId]={}),c[r.bucketInstanceId][r.featureIndex])continue;let i=[new e.pointGeometry(t.x1,t.y1),new e.pointGeometry(t.x2,t.y1),new e.pointGeometry(t.x2,t.y2),new e.pointGeometry(t.x1,t.y2)];e.polygonIntersectsPolygon(n,i)&&(c[r.bucketInstanceId][r.featureIndex]=!0,l[r.bucketInstanceId]===void 0&&(l[r.bucketInstanceId]=[]),l[r.bucketInstanceId].push(r.featureIndex))}return l}insertCollisionBox(e,t,n,r,i){(t?this.ignoredGrid:this.grid).insert({bucketInstanceId:n,featureIndex:r,collisionGroupID:i},e[0],e[1],e[2],e[3])}insertCollisionCircles(e,t,n,r,i){let a=t?this.ignoredGrid:this.grid,o={bucketInstanceId:n,featureIndex:r,collisionGroupID:i};for(let t=0;t<e.length;
1t+=4)a.insertCircle(o,e[t],e[t+1],e[t+2])}projectAndGetPerspectiveRatio(t,n,r,i,a,o,s){let c=[n,r,i,1],l=!1;if(i||this.transform.pitch>0){e.transformMat4$1(c,c,t);let o=s.name===`globe`;this.fogState&&a&&!o&&(l=function(t,n,r,i,a,o){let s=o.calculateFogTileMatrix(a),c=[n,r,i];return e.transformMat4(c,c,s),T(t,c,o.pitch,o._fov)}(this.fogState,n,r,i,a.toUnwrapped(),this.transform)>.9)}else St(c,c,t);let u=c[3];return{point:new e.pointGeometry((c[0]/u+1)/2*this.transform.width+100,(-c[1]/u+1)/2*this.transform.height+100),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(s)/u*.5,1.5),signedDistanceFromCamera:u,occluded:o&&c[2]>u||l}}isOffscreen(e,t,n,r){return n<100||e>=this.screenRightBoundary||r<100||t>this.screenBottomBoundary}isInsideGrid(e,t,n,r){return n>=0&&e<this.gridRightBoundary&&r>=0&&t<this.gridBottomBoundary}getViewportMatrix(){let t=e.identity([]);return e.translate(t,t,[-100,-100,0]),t}}function wt(t,n,r){let i=n.createTileMatrix(t,t.worldSize,r.toUnwrapped());return e.multiply(new Float32Array(16),t.projMatrix,i)}function Tt(e,t,n){if(t.projection.name===n.projection.name)return e.projMatrix;let r=n.clone();return r.setProjection(t.projection),wt(r,t.getProjection(),e)}function Et(e,t,n){return t.name===n.projection.name?e.projMatrix:wt(n,t,e)}class Dt{constructor(e,t,n,r){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?t:-t))):r&&n?1:0,this.placed=n}isHidden(){return this.opacity===0&&!this.placed}}class Ot{constructor(e,t,n,r,i,a=!1){this.text=new Dt(e?e.text:null,t,n,i),this.icon=new Dt(e?e.icon:null,t,r,i),this.clipped=a}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class kt{constructor(e,t,n,r=!1){this.text=e,this.icon=t,this.skipFade=n,this.clipped=r}}class At{constructor(){this.invProjMatrix=e.create(),this.viewportMatrix=e.create(),this.circles=[]}}class jt{constructor(e,t,n,r,i){this.bucketInstanceId=e,this.featureIndex=t,this.sourceLayerIndex=n,this.bucketIndex=r,this.tileID=i}}class Mt{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={}}get(e){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[e]){let t=++this.maxGroupID;this.collisionGroups[e]={ID:t,predicate:e=>e.collisionGroupID===t}}return this.collisionGroups[e]}}function Nt(t,n,r,i,a){let{horizontalAlign:o,verticalAlign:s}=e.getAnchorAlignment(t),c=-(o-.5)*n,l=-(s-.5)*r,u=e.evaluateVariableOffset(t,i);return new e.pointGeometry(c+u[0]*a,l+u[1]*a)}function Pt(t,n,r,i,a){let o=new e.pointGeometry(t,n);return r&&o._rotate(i?a:-a),o}class Ft{constructor(e,t,n,r,i){this.transform=e.clone(),this.projection=e.projection.name,this.collisionIndex=new Ct(this.transform,i),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=t,this.retainedQueryData={},this.collisionGroups=new Mt(n),this.collisionCircleArrays={},this.prevPlacement=r,r&&(r.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(t,n,r,i){let a=r.getBucket(n),o=r.latestFeatureIndex;if(!a||!o||n.id!==a.layerIds[0])return;let s=a.layers[0].layout,c=r.collisionBoxArray,l=2**(this.transform.zoom-r.tileID.overscaledZ),u=r.tileSize/e.EXTENT,d=r.tileID.toUnwrapped();this.transform.setProjection(a.projection);let f=(p=r.tileID,m=a.getProjection(),h=this.transform,m.name===this.projection?h.calculateProjMatrix(p.toUnwrapped()):wt(h,m,p));var p,m,h;let g=s.get(`text-pitch-alignment`)===`map`,_=s.get(`text-rotation-alignment`)===`map`;n.compileFilter();let v=n.dynamicFilter(),y=n.dynamicFilterNeedsFeature(),b=this.transform.calculatePixelsToTileUnitsMatrix(r),x=pt(f,r.tileID.canonical,g,_,this.transform,a.getProjection(),b),S=null;if(g){let t=mt(f,r.tileID.canonical,g,_,this.transform,a.getProjection(),b);S=e.multiply([],this.transform.labelPlaneMatrix,t)}let C=null;v&&r.latestFeatureIndex&&(C={unwrappedTileID:d,dynamicFilter:v,dynamicFilterNeedsFeature:y,featureIndex:r.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new jt(a.bucketInstanceId,o,a.sourceLayerIndex,a.index,r.tileID);
1let w={bucket:a,layout:s,posMatrix:f,textLabelPlaneMatrix:x,labelToScreenMatrix:S,clippingData:C,scale:l,textPixelRatio:u,holdingForFade:r.holdingForFade(),collisionBoxArray:c,partiallyEvaluatedTextSize:e.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:e.evaluateSizeForZoom(a.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(i)for(let e of a.sortKeyRanges){let{sortKey:n,symbolInstanceStart:r,symbolInstanceEnd:i}=e;t.push({sortKey:n,symbolInstanceStart:r,symbolInstanceEnd:i,parameters:w})}else t.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:w})}attemptAnchorPlacement(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let{textOffset0:v,textOffset1:y,crossTileID:b}=d,x=[v,y],S=Nt(e,n,r,x,i),C=this.collisionIndex.placeCollisionBox(p,i,t,Pt(S.x,S.y,a,o,this.transform.angle),u,s,c,l.predicate);if(h){let e=p.getSymbolInstanceIconSize(_,this.transform.zoom,d.placedIconSymbolIndex);if(this.collisionIndex.placeCollisionBox(p,e,h,Pt(S.x,S.y,a,o,this.transform.angle),u,s,c,l.predicate).box.length===0)return}if(C.box.length>0){let t;return this.prevPlacement&&this.prevPlacement.variableOffsets[b]&&this.prevPlacement.placements[b]&&this.prevPlacement.placements[b].text&&(t=this.prevPlacement.variableOffsets[b].anchor),this.variableOffsets[b]={textOffset:x,width:n,height:r,anchor:e,textScale:i,prevAnchor:t},this.markUsedJustification(p,e,d,m),p.allowVerticalPlacement&&(this.markUsedOrientation(p,m,d),this.placedOrientations[b]=m),{shift:S,placedGlyphBoxes:C}}}placeLayerBucketPart(t,n,r,i){let{bucket:a,layout:o,posMatrix:s,textLabelPlaneMatrix:c,labelToScreenMatrix:l,clippingData:u,textPixelRatio:d,holdingForFade:f,collisionBoxArray:p,partiallyEvaluatedTextSize:m,partiallyEvaluatedIconSize:h,collisionGroup:g}=t.parameters,_=o.get(`text-optional`),v=o.get(`icon-optional`),y=o.get(`text-allow-overlap`),b=o.get(`icon-allow-overlap`),x=o.get(`text-rotation-alignment`)===`map`,S=o.get(`text-pitch-alignment`)===`map`,C=o.get(`icon-text-fit`)!==`none`,w=o.get(`symbol-z-order`)===`viewport-y`;this.transform.setProjection(a.projection);let T=y&&(b||!a.hasIconData()||v),E=b&&(y||!a.hasTextData()||_);!a.collisionArrays&&p&&a.deserializeCollisionBoxes(p),r&&i&&a.updateCollisionDebugBuffers(this.transform.zoom,p);let D=(t,i,p)=>{let{crossTileID:w,numVerticalGlyphVertices:D}=t;if(u){let r={zoom:this.transform.zoom,pitch:this.transform.pitch},i=null;if(u.dynamicFilterNeedsFeature){let e=this.retainedQueryData[a.bucketInstanceId];i=u.featureIndex.loadFeature({featureIndex:t.featureIndex,bucketIndex:e.bucketIndex,sourceLayerIndex:e.s
1ourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,u.dynamicFilter)(r,i,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new e.pointGeometry(t.tileAnchorX,t.tileAnchorY),this.transform.calculateDistanceTileData(u.unwrappedTileID)))return this.placements[w]=new kt(!1,!1,!1,!0),void(n[w]=!0)}if(n[w])return;if(f)return void(this.placements[w]=new kt(!1,!1,!1));let O=!1,k=!1,A=!0,j=!1,M=!1,ee=null,N={box:null,offscreen:null,occluded:null},te={box:null,offscreen:null,occluded:null},P=null,F=null,I=null,ne=0,L=0,re=0;p.textFeatureIndex?ne=p.textFeatureIndex:t.useRuntimeCollisionCircles&&(ne=t.featureIndex),p.verticalTextFeatureIndex&&(L=p.verticalTextFeatureIndex);let ie=e=>{e.tileID=this.retainedQueryData[a.bucketInstanceId].tileID;let t=this.transform.elevation;(t||e.elevation)&&(e.elevation=t?t.getAtTileOffset(e.tileID,e.tileAnchorX,e.tileAnchorY):0)},ae=p.textBox;if(ae){ie(ae);let n=n=>{let r=e.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){let e=this.prevPlacement.placedOrientations[w];e&&(this.placedOrientations[w]=e,r=e,this.markUsedOrientation(a,r,t))}return r},r=(t,n)=>{if(a.allowVerticalPlacement&&D>0&&p.verticalTextBox){for(let r of a.writingModes)if(r===e.WritingMode.vertical?(N=n(),te=N):N=t(),N&&N.box&&N.box.length)break}else N=t()};if(o.get(`text-variable-anchor`)){let c=o.get(`text-variable-anchor`);if(this.prevPlacement&&this.prevPlacement.variableOffsets[w]){let e=this.prevPlacement.variableOffsets[w];c.indexOf(e.anchor)>0&&(c=c.filter((t=>t!==e.anchor)),c.unshift(e.anchor))}let l=(e,n,r)=>{let o=a.getSymbolInstanceTextSize(m,t,this.transform.zoom,i),l=(e.x2-e.x1)*o+2*e.padding,u=(e.y2-e.y1)*o+2*e.padding,f=C&&!b?n:null;f&&ie(f);let p={box:[],offscreen:!1,occluded:!1},_=y?2*c.length:c.length;for(let n=0;n<_;++n){let _=this.attemptAnchorPlacement(c[n%c.length],e,l,u,o,x,S,d,s,g,n>=c.length,t,i,a,r,f,m,h);if(_&&(p=_.placedGlyphBoxes,p&&p.box&&p.box.length)){O=!0,ee=_.shift;break}}return p};r((()=>l(ae,p.iconBox,e.WritingMode.horizontal)),(()=>{let t=p.verticalTextBox;return t&&ie(t),a.allowVerticalPlacement&&!(N&&N.box&&N.box.length)&&D>0&&t?l(t,p.verticalIconBox,e.WritingMode.vertical):{box:null,offscreen:null,occluded:null}})),N&&(O=N.box,A=N.offscreen,j=N.occluded);let u=n(N&&N.box);if(!O&&this.prevPlacement){let e=this.prevPlacement.variableOffsets[w];e&&(this.variableOffsets[w]=e,this.markUsedJustification(a,e.anchor,t,u))}}else{let o=(n,r)=>{let o=a.getSymbolInstanceTextSize(m,t,this.transform.zoom,i),c=this.collisionIndex.placeCollisionBox(a,o,n,new e.pointGeometry(0,0),y,d,s,g.predicate);return c&&c.box&&c.box.length&&(this.markUsedOrientation(a,r,t),this.placedOrientations[w]=r),c};r((()=>o(ae,e.WritingMode.horizontal)),(()=>{let t=p.verticalTextBox;return a.allowVerticalPlacement&&D>0&&t?(ie(t),o(t,e.WritingMode.vertical)):{box:null,offscreen:null,occluded:null}})),n(N&&N.box&&N.box.length)}}if(P=N,O=P&&P.box&&P.box.length>0,A=P&&P.offscreen,j=P&&P.occluded,t.useRuntimeCollisionCircles){let n=a.text.placedSymbolArray.get(t.centerJustifiedTextSymbolIndex>=0?t.centerJustifiedTextSymbolIndex:t.verticalPlacedTextSymbolIndex),i=e.evaluateSizeForFeature(a.textSizeData,m,n),u=o.get(`text-padding`);F=this.collisionIndex.placeCollisionCircles(a,y,n,a.lineVertexArray,a.glyphOffsetArray,i,s,c,l,r,S,g.predicate,t.collisionCircleDiameter*i/e.ONE_EM,u,this.retainedQueryData[a.bucketInstanceId].tileID),O=y||F.circles.length>0&&!F.collisionDetected,A&&=F.offscreen,j=F.occluded}if(p.iconFeatureIndex&&(re=p.iconFeatureIndex),p.iconBox){let n=n=>{ie(n);let r=C&&ee?Pt(ee.x,ee.y,x,S,this.transform.angle):new e.pointGeometry(0,0),i=a.getSymbolInstanceIconSize(h,this.transform.zoom,t.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(a,i,n,r,b,d,s,g.predicate)};te&&te.box&&te.box.length&&p.verticalIconBox?(I=n(p.verticalIconBox),k=I.box.length>0):(I=n(p.iconBox),k=I.box.length>0),A&&=I.offscreen,M=I.occluded}let oe=_||t.numHorizontalGlyphVertices===0&&D===0,se=v||t.numIconVertices===0;if(oe||se?se?oe||(k&&=O):O=k&&O:k=O=k&&O,O&&P&&P.box&&this.collisionIndex.insertCollisionBox(P.box,o.get(`text-ignore-placement`),a.bucketInstanceId,te&&te.box&&L?L:ne,g.ID),k&&I&&this.collisionIndex.insertCollisionBox(I.box,o.get(`icon-ignore-placement`),a.bucketInstanceId,re,g.ID),F&&(O&&this.collisionIndex.insertCollisionCircles(F.circles,o.get(`text-ignore-placement`),a.bucketInstanceId,ne,g.ID),r)){let e=a.bucketInstanceId,t=this.collisionCircleArrays[e];t===void 0&&(t=this.collisionCircleArrays[e]=new At);for(let e=0;e<F.circles.length;
1e+=4)t.circles.push(F.circles[e+0]),t.circles.push(F.circles[e+1]),t.circles.push(F.circles[e+2]),t.circles.push(+!!F.collisionDetected)}let ce=a.projection.name!==`globe`;T&&=ce||!j,E&&=ce||!M,this.placements[w]=new kt(O||T,k||E,A||a.justReloaded),n[w]=!0};if(w){let e=a.getSortedSymbolIndexes(this.transform.angle);for(let t=e.length-1;t>=0;--t){let n=e[t];D(a.symbolInstances.get(n),n,a.collisionArrays[n])}}else for(let e=t.symbolInstanceStart;e<t.symbolInstanceEnd;e++)D(a.symbolInstances.get(e),e,a.collisionArrays[e]);if(r&&a.bucketInstanceId in this.collisionCircleArrays){let t=this.collisionCircleArrays[a.bucketInstanceId];e.invert(t.invProjMatrix,s),t.viewportMatrix=this.collisionIndex.getViewportMatrix()}a.justReloaded=!1}markUsedJustification(t,n,r,i){let{leftJustifiedTextSymbolIndex:a,centerJustifiedTextSymbolIndex:o,rightJustifiedTextSymbolIndex:s,verticalPlacedTextSymbolIndex:c,crossTileID:l}=r,u=e.getAnchorJustification(n),d=i===e.WritingMode.vertical?c:u===`left`?a:u===`center`?o:u===`right`?s:-1;a>=0&&(t.text.placedSymbolArray.get(a).crossTileID=d>=0&&a!==d?0:l),o>=0&&(t.text.placedSymbolArray.get(o).crossTileID=d>=0&&o!==d?0:l),s>=0&&(t.text.placedSymbolArray.get(s).crossTileID=d>=0&&s!==d?0:l),c>=0&&(t.text.placedSymbolArray.get(c).crossTileID=d>=0&&c!==d?0:l)}markUsedOrientation(t,n,r){let i=n===e.WritingMode.horizontal||n===e.WritingMode.horizontalOnly?n:0,a=n===e.WritingMode.vertical?n:0,{leftJustifiedTextSymbolIndex:o,centerJustifiedTextSymbolIndex:s,rightJustifiedTextSymbolIndex:c,verticalPlacedTextSymbolIndex:l}=r,u=t.text.placedSymbolArray;o>=0&&(u.get(o).placedOrientation=i),s>=0&&(u.get(s).placedOrientation=i),c>=0&&(u.get(c).placedOrientation=i),l>=0&&(u.get(l).placedOrientation=a)}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;let t=this.prevPlacement,n=!1;this.prevZoomAdjustment=t?t.zoomAdjustment(this.transform.zoom):0;let r=t?t.symbolFadeChange(e):1,i=t?t.opacities:{},a=t?t.variableOffsets:{},o=t?t.placedOrientations:{};for(let e in this.placements){let t=this.placements[e],a=i[e];a?(this.opacities[e]=new Ot(a,r,t.text,t.icon,null,t.clipped),n=n||t.text!==a.text.placed||t.icon!==a.icon.placed):(this.opacities[e]=new Ot(null,r,t.text,t.icon,t.skipFade,t.clipped),n=n||t.text||t.icon)}for(let e in i){let t=i[e];if(!this.opacities[e]){let i=new Ot(t,r,!1,!1);i.isHidden()||(this.opacities[e]=i,n=n||t.text.placed||t.icon.placed)}}for(let e in a)this.variableOffsets[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.variableOffsets[e]=a[e]);for(let e in o)this.placedOrientations[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.placedOrientations[e]=o[e]);n?this.lastPlacementChangeTime=e:typeof this.lastPlacementChangeTime!=`number`&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e)}updateLayerOpacities(e,t){let n={};for(let r of t){let t=r.getBucket(e);t&&r.latestFeatureIndex&&e.id===t.layerIds[0]&&this.updateBucketOpacities(t,n,r.collisionBoxArray)}}updateBucketOpacities(t,n,r){t.hasTextData()&&t.text.opacityVertexArray.clear(),t.hasIconData()&&t.icon.opacityVertexArray.clear(),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();let i=t.layers[0].layout,a=!!t.layers[0].dynamicFilter(),o=new Ot(null,0,!1,!1,!0),s=i.get(`text-allow-overlap`),c=i.get(`icon-allow-overlap`),l=i.get(`text-variable-anchor`),u=i.get(`text-rotation-alignment`)===`map`,d=i.get(`text-pitch-alignment`)===`map`,f=i.get(`icon-text-fit`)!==`none`,p=new Ot(null,0,s&&(c||!t.hasIconData()||i.get(`icon-optional`)),c&&(s||!t.hasTextData()||i.get(`text-optional`)),!0);!t.collisionArrays&&r&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(r);let m=(e,t,n)=>{for(let r=0;r<t/4;r++)e.opacityVertexArray.emplaceBack(n)},h=0;for(let r=0;r<t.symbolInstances.length;r++){let i=t.symbolInstances.get(r),{numHorizontalGlyphVertices:s,numVerticalGlyphVertices:c,crossTileID:g,numIconVertices:_}=i,v=this.opacities[g];n[g]?v=o:v||(v=p,this.opacities[g]=v),n[g]=!0;let y=s>0||c>0,b=_>0,x=this.placedOrientations[g],S=x===e.WritingMode.vertical,C=x===e.WritingMode.horizontal||x===e.WritingMode.horizontalOnly;if(!y&&!b||v.isHidden()||h++,y){let e=Vt(v.text);m(t.text,s,S?Ht:e),m(t.text,c,C?Ht:e);let n=v.text.isHidden(),{leftJustifiedTextSymbolIndex:r,centerJustifiedTextSymbolIndex:a,rightJustifiedTextSymbolIndex:o,verticalPlacedTextSymbolIndex:l}=i,u=t.text.placedSymbolArray,d=n||S?1:0;r>=0&&(u.get(r).hidden=d),a>=0&&(u.get(a).hidden=d),o>=0&&(u.get(o).hidden=d),l>=0&&(u.get(l).hidden=n||C?1:0);let f=this.variableOffsets[g];f&&this.markUsedJustification(t,f.anchor,i,x);let p=this.placedOrientations[g];p&&(this.markUsedJustification(t,`left`,i,p),this.markUsedOrientation(t,p,i))}if(b){let e=Vt(v.icon),{placedIconSymbolIndex:n,verticalPlacedIconSymbolIndex:r}=i,a=t.icon.placedSymbolArray,o=+!!v.icon.isHidden();n>=0&&(m(t.icon,_,S?Ht:e),a.get(n).hidden=o),r>=0&&(m(t.icon,i.numVerticalIconVertices,C?Ht:e),a.get(r).hidden=o)}if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){let n=t.collisionArrays[r];if(n){let r=new e.pointGeometry(0,0),i=!0;if(n.textBox||n.verticalTextBox){if(l){let e=this.variableOffsets[g];e?(r=Nt(e.anchor,e.width,e.height,e.textOffset,e.textScale),u&&r._rotate(d?this.transform.angle:-this.transform.angle)):i=!1}
1a&&(i=!v.clipped),n.textBox&&It(t.textCollisionBox.collisionVertexArray,v.text.placed,!i||S,r.x,r.y),n.verticalTextBox&&It(t.textCollisionBox.collisionVertexArray,v.text.placed,!i||C,r.x,r.y)}let o=i&&!!(!C&&n.verticalIconBox);n.iconBox&&It(t.iconCollisionBox.collisionVertexArray,v.icon.placed,o,f?r.x:0,f?r.y:0),n.verticalIconBox&&It(t.iconCollisionBox.collisionVertexArray,v.icon.placed,!o,f?r.x:0,f?r.y:0)}}}if(t.fullyClipped=h===0,t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.bucketInstanceId in this.collisionCircleArrays){let e=this.collisionCircleArrays[t.bucketInstanceId];t.placementInvProjMatrix=e.invProjMatrix,t.placementViewportMatrix=e.viewportMatrix,t.collisionCircleArray=e.circles,delete this.collisionCircleArrays[t.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,t){let n=this.zoomAtLastRecencyCheck===t?1-this.zoomAdjustment(t):1;return this.zoomAtLastRecencyCheck=t,this.commitTime+this.fadeDuration*n>e}setStale(){this.stale=!0}}function It(e,t,n,r,i){e.emplaceBack(+!!t,+!!n,r||0,i||0),e.emplaceBack(+!!t,+!!n,r||0,i||0),e.emplaceBack(+!!t,+!!n,r||0,i||0),e.emplaceBack(+!!t,+!!n,r||0,i||0)}let Lt=2**25,Rt=2**24,zt=2**17,Bt=2**16;function Vt(e){if(e.opacity===0&&!e.placed)return 0;if(e.opacity===1&&e.placed)return 4294967295;let t=+!!e.placed,n=Math.floor(127*e.opacity);return n*Lt+t*Rt+n*zt+t*Bt+n*512+t*256+n*2+t}let Ht=0;class Ut{constructor(e){this._sortAcrossTiles=e.layout.get(`symbol-z-order`)!==`viewport-y`&&e.layout.get(`symbol-sort-key`).constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(e,t,n,r,i){let a=this._bucketParts;for(;this._currentTileIndex<e.length;)if(t.getBucketParts(a,r,e[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,i())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,a.sort(((e,t)=>
1e.sortKey-t.sortKey)));this._currentPartIndex<a.length;){let e=a[this._currentPartIndex];if(t.placeLayerBucketPart(e,this._seenCrossTileIDs,n,e.symbolInstanceStart===0),this._currentPartIndex++,i())return!0}return!1}}class Wt{constructor(e,t,n,r,i,a,o,s){this.placement=new Ft(e,i,a,o,s),this._currentPlacementIndex=t.length-1,this._forceFullPlacement=n,this._showCollisionBoxes=r,this._done=!1}isDone(){return this._done}continuePlacement(t,n,r){let i=e.exported.now(),a=()=>{let t=e.exported.now()-i;return!this._forceFullPlacement&&t>2};for(;this._currentPlacementIndex>=0;){let e=n[t[this._currentPlacementIndex]],i=this.placement.collisionIndex.transform.zoom;if(e.type===`symbol`&&(!e.minzoom||e.minzoom<=i)&&(!e.maxzoom||e.maxzoom>i)){if(this._inProgressLayer||=new Ut(e),this._inProgressLayer.continuePlacement(r[e.source],this.placement,this._showCollisionBoxes,e,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(e){return this.placement.commit(e),this.placement}}let Gt=512/e.EXTENT/2;class Kt{constructor(e,t,n){this.tileID=e,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let n=0;n<t.length;n++){let r=t.get(n),i=r.key;this.indexedSymbolInstances[i]||(this.indexedSymbolInstances[i]=[]),this.indexedSymbolInstances[i].push({crossTileID:r.crossTileID,coord:this.getScaledCoordinates(r,e)})}}getScaledCoordinates(t,n){let r=Gt/2**(n.canonical.z-this.tileID.canonical.z);return{x:Math.floor((n.canonical.x*e.EXTENT+t.tileAnchorX)*r),y:Math.floor((n.canonical.y*e.EXTENT+t.tileAnchorY)*r)}}findMatches(e,t,n){let r=this.tileID.canonical.z<t.canonical.z?1:2**(this.tileID.canonical.z-t.canonical.z);for(let i=0;i<e.length;i++){let a=e.get(i);if(a.crossTileID)continue;let o=this.indexedSymbolInstances[a.key];if(!o)continue;let s=this.getScaledCoordinates(a,t);for(let e of o)if(Math.abs(e.coord.x-s.x)<=r&&Math.abs(e.coord.y-s.y)<=r&&!n[e.crossTileID]){n[e.crossTileID]=!0,a.crossTileID=e.crossTileID;break}}}}class qt{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Jt{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(e){let t=Math.round((e-this.lng)/360);if(t!==0)for(let e in this.indexes){let n=this.indexes[e],r={};for(let e in n){let i=n[e];i.tileID=i.tileID.unwrapTo(i.tileID.wrap+t),r[i.tileID.key]=i}this.indexes[e]=r}this.lng=e}addBucket(e,t,n){if(this.indexes[e.overscaledZ]&&this.indexes[e.overscaledZ][e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===t.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key])}for(let e=0;e<t.symbolInstances.length;e++)t.symbolInstances.get(e).crossTileID=0;this.usedCrossTileIDs[e.overscaledZ]||(this.usedCrossTileIDs[e.overscaledZ]={});let r=this.usedCrossTileIDs[e.overscaledZ];for(let n in this.indexes){let i=this.indexes[n];if(Number(n)>e.overscaledZ)for(let n in i){let a=i[n];a.tileID.isChildOf(e)&&a.findMatches(t.symbolInstances,e,r)}else{let a=i[e.scaledTo(Number(n)).key];a&&a.findMatches(t.symbolInstances,e,r)}}for(let e=0;e<t.symbolInstances.length;e++){let i=t.symbolInstances.get(e);i.crossTileID||(i.crossTileID=n.generate(),r[i.crossTileID]=!0)}return this.indexes[e.overscaledZ]===void 0&&(this.indexes[e.overscaledZ]={}),this.indexes[e.overscaledZ][e.key]=new Kt(e,t.symbolInstances,t.bucketInstanceId),!0}removeBucketCrossTileIDs(e,t){for(let n in t.indexedSymbolInstances)for(let r of t.indexedSymbolInstances[n])delete this.usedCrossTileIDs[e][r.crossTileID]}removeStaleBuckets(e){let t=!1;for(let n in this.indexes){let r=this.indexes[n];for(let i in r)e[r[i].bucketInstanceId]||(this.removeBucketCrossTileIDs(n,r[i]),delete r[i],t=!0)}return t}}class Yt{constructor(){this.layerIndexes={},this.crossTileIDs=new qt,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}}addLayer(e,t,n,r){let i=this.layerIndexes[e.id];i===void 0&&(i=this.layerIndexes[e.id]=new Jt);let a=!1,o={};r.name!==`globe`&&i.handleWrapJump(n);for(let n of t){let t=n.getBucket(e);t&&e.id===t.layerIds[0]&&(t.bucketInstanceId||=++this.maxBucketInstanceId,i.addBucket(n.tileID,t,this.crossTileIDs)&&(a=!0),o[t.bucketInstanceId]=!0)}return i.removeStaleBuckets(o)&&(a=!0),a}pruneUnusedLayers(e){let t={};e.forEach((e=>{t[e]=!0}));for(let e in this.layerIndexes)t[e]||delete this.layerIndexes[e]}}let Xt=(t,n)=>e.emitValidationErrors(t,n&&n.filter((e=>e.identifier!==`source.canvas`))),Zt=e.pick(R,[`addLayer`,`removeLayer`,`setPaintProperty`,`setLayoutProperty`,`setFilter`,`addSource`,`removeSource`,`setLayerZoomRange`,`setLight`,`setTransition`,`setGeoJSONSourceData`,`setTerrain`,`setFog`,`setProjection`]),Qt=e.pick(R,[`setCenter`,`setZoom`,`setBearing`,`setPitch`]),$t={version:8,layers:[],sources:{}},en={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tn extends e.Evented{constructor(t,n={}){super(),this.map=t,this.dispatcher=new k(et(),this),this.imageManager=new b,this.imageManager.setEventedParent(this),this.glyphManager=new e.GlyphManager(t._requestManager,n.localFontFamily?e.LocalGlyphMode.all:n.localIdeographFontFamily?e.LocalGlyphMode.ideographs:e.LocalGlyphMode.none,n.localFontFamily||n.localIdeographFontFamily),this.crossTileSymbolIndex=new Yt,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedU
1pdate=!1,this._resetUpdates(),this.dispatcher.broadcast(`setReferrer`,e.getReferrer());let r=this;this._rtlTextPluginCallback=tn.registerForPluginStateChange((t=>{r.dispatcher.broadcast(`syncRTLPluginState`,{pluginStatus:t.pluginStatus,pluginURL:t.pluginURL},((t,n)=>{if(e.triggerPluginCompletionEvent(t),n&&n.every((e=>e)))for(let e in r._sourceCaches){let t=r._sourceCaches[e],n=t.getSource().type;n!==`vector`&&n!==`geojson`||t.reload()}}))})),this.on(`data`,(e=>{if(e.dataType!==`source`||e.sourceDataType!==`metadata`)return;let t=this.getSource(e.sourceId);if(t&&t.vectorLayerIds)for(let e in this._layers){let n=this._layers[e];n.source===t.id&&this._validateLayer(n)}}))}loadURL(t,n={}){this.fire(new e.Event(`dataloading`,{dataType:`style`}));let r=typeof n.validate==`boolean`?n.validate:!e.isMapboxURL(t);t=this.map._requestManager.normalizeStyleURL(t,n.accessToken);let i=this.map._requestManager.transformRequest(t,e.ResourceType.Style);this._request=e.getJSON(i,((t,n)=>{this._request=null,t?this.fire(new e.ErrorEvent(t)):n&&this._load(n,r)}))}loadJSON(t,n={}){this.fire(new e.Event(`dataloading`,{dataType:`style`})),this._request=e.exported.frame((()=>{this._request=null,this._load(t,!1!==n.validate)}))}loadEmpty(){this.fire(new e.Event(`dataloading`,{dataType:`style`})),this._load($t,!1)}_updateLayerCount(e,t){let n=t?1:-1;e.is3D()&&(this._num3DLayers+=n),e.type===`circle`&&(this._numCircleLayers+=n),e.type===`symbol`&&(this._numSymbolLayers+=n)}_load(t,n){if(n&&Xt(this,e.validateStyle(t)))return;this._loaded=!0,this.stylesheet=e.clone$1(t),this._updateMapProjection();for(let e in t.sources)this.addSource(e,t.sources[e],{validate:!1});this._changed=!1,t.sprite?this._loadSprite(t.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast(`spriteLoaded`,!0)),this.glyphManager.setURL(t.glyphs);let r=nt(this.stylesheet.layers);this._order=r.map((e=>e.id)),this._layers={},this._serializedLayers={};for(let t of r)t=e.createStyleLayer(t),t.setEventedParent(this,{layer:{id:t.id}}),this._layers[t.id]=t,this._serializedLayers[t.id]=t.serialize(),this._updateLayerCount(t,!0);this.dispatcher.broadcast(`setLayers`,this._serializeLayers(this._order)),this.light=new S(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new e.Event(`data`,{dataType:`style`})),this.fire(new e.Event(`style.load`))}terrainSetForDrapingOnly(){return!!this.terrain&&this.terrain.drapeRenderMode===0}setProjection(e){e?this.stylesheet.projection=e:delete this.stylesheet.projection,this._updateMapProjection()}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast(`setProjection`,this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null))}_updateMapProjection(){this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.stylesheet.projection)}_loadSprite(t){this._spriteRequest=function(t,n,r){let i,a,o,s=e.exported.devicePixelRatio>1?`@2x`:``,c=e.getJSON(n.transformRequest(n.normalizeSpriteURL(t,s,`.json`),e.ResourceType.SpriteJSON),((e,t)=>{c=null,o||(o=e,i=t,u())})),l=e.getImage(n.transformRequest(n.normalizeSpriteURL(t,s,`.png`),e.ResourceType.SpriteImage),((e,t)=>{l=null,o||(o=e,a=t,u())}));function u(){if(o)r(o);else if(i&&a){let t=e.exported.getImageData(a),n={};for(let r in i){let{width:a,height:o,x:s,y:c,sdf:l,pixelRatio:u,stretchX:d,stretchY:f,content:p}=i[r],m=new e.RGBAImage({width:a,height:o});e.RGBAImage.copy(t,m,{x:s,y:c},{x:0,y:0},{width:a,height:o}),n[r]={data:m,pixelRatio:u,sdf:l,stretchX:d,stretchY:f,content:p}}r(null,n)}}return{cancel(){c&&=(c.cancel(),null),l&&=(l.cancel(),null)}}}(t,this.map._requestManager,((t,n)=>{if(this._spriteRequest=null,t)this.fire(new e.ErrorEvent(t));else if(n)for(let e in n)this.imageManager.addImage(e,n[e]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast(`setImages`,this._availableImages),this.dispatcher.broadcast(`spriteLoaded`,!0),this.fire(new e.Event(`data`,{dataType:`style`}))}))}_validateLayer(t){let n=this.getSource(t.source);if(!n)return;let r=t.sourceLayer;r&&(n.type===`geojson`||n.vectorLayerIds&&n.vectorLayerIds.indexOf(r)===-1)&&this.fire(new e.ErrorEvent(Error(`Source layer "${r}" does not exist on source "${n.id}" as specified by style layer "${t.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let e in this._sourceCaches)if(!this._sourceCaches[e].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(e){let t=[];for(let n of e){let e=this._layers[n];e.type!==`custom`&&t.push(e.serialize())}return t}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(let e in this._sourceCaches)if(this._sourceCaches[e].hasTransition())return!0;for(let e in this._layers)if(this._layers[e].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(e){return!!this.terrain&&en[e.type]}_checkLoaded(){if(!this._loaded)throw Error(`Style is not done loading`)}update(t){if(!this._loaded)return;let n=this._changed;if(this._changed){let e=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);(e.length||n.length)&&this._updateWorkerLayers(e,n);for(let e in this._updatedSources){let t=this._updatedSources[e];t===`reload`?this._reloadSource(e):t===`clear`&&this._clearSource(e)}this._updateTilesForChangedImages();for(let e in this._updatedPaintProps)this._layers[e].updateTransitions(t);this.light.updateTransitions(t),this.fog&&this.fog.updateTransitions(t),this._resetUpdates()}let r={};for(let e in this._sourceCaches){let t=this._sourceCaches[e];r[e]=t.used,t.used=!1}for(let e of this._order){let n=this._layers[e];if(n.recalculate(t,this._availableImages),!n.isHidden(t.zoom)){let e=this._getLayerSourceCache(n);e&&(e.used=!0)}let r=this.map.painter;if(r){let e=n.getProgramIds();if(!e)continue;let i=n.getProgramConfiguration(t.zoom);for(let t of e)r.useProgram(t,i)}}for(let t in r){let n=this._sourceCaches[t];r[t]!==n.used&&n.getSource().fire(new e.Event(`data`,{sourceDataType:`visibility`,dataType:`source`,sourceId:n.getSource().id}))}this.light.recalculate(t),this.terrain&&this.terrain.recalculate(t),this.fog&&this.fog.recalculate(t),this.z=t.zoom,this._markersNeedU
1pdate&&=(this._updateMarkersOpacity(),!1),n&&this.fire(new e.Event(`data`,{dataType:`style`}))}_updateTilesForChangedImages(){let e=Object.keys(this._changedImages);if(e.length){for(let t in this._sourceCaches)this._sourceCaches[t].reloadTilesForDependencies([`icons`,`patterns`],e);this._changedImages={}}}_updateWorkerLayers(e,t){this.dispatcher.broadcast(`updateLayers`,{layers:this._serializeLayers(e),removedIds:t})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(n){if(this._checkLoaded(),Xt(this,e.validateStyle(n)))return!1;(n=e.clone$1(n)).layers=nt(n.layers);let r=function(e,n){if(!e)return[{command:R.setStyle,args:[n]}];let r=[];try{if(!t(e.version,n.version))return[{command:R.setStyle,args:[n]}];t(e.center,n.center)||r.push({command:R.setCenter,args:[n.center]}),t(e.zoom,n.zoom)||r.push({command:R.setZoom,args:[n.zoom]}),t(e.bearing,n.bearing)||r.push({command:R.setBearing,args:[n.bearing]}),t(e.pitch,n.pitch)||r.push({command:R.setPitch,args:[n.pitch]}),t(e.sprite,n.sprite)||r.push({command:R.setSprite,args:[n.sprite]}),t(e.glyphs,n.glyphs)||r.push({command:R.setGlyphs,args:[n.glyphs]}),t(e.transition,n.transition)||r.push({command:R.setTransition,args:[n.transition]}),t(e.light,n.light)||r.push({command:R.setLight,args:[n.light]}),t(e.fog,n.fog)||r.push({command:R.setFog,args:[n.fog]}),t(e.projection,n.projection)||r.push({command:R.setProjection,args:[n.projection]});let i={},a=[];(function(e,n,r,i){let a;for(a in n||={},e||={})e.hasOwnProperty(a)&&(n.hasOwnProperty(a)||it(a,r,i));for(a in n)n.hasOwnProperty(a)&&(e.hasOwnProperty(a)?t(e[a],n[a])||(e[a].type===`geojson`&&n[a].type===`geojson`&&ot(e,n,a)?r.push({command:R.setGeoJSONSourceData,args:[a,n[a].data]}):at(a,n,r,i)):rt(a,n,r))})(e.sources,n.sources,a,i);let o=[];e.layers&&e.layers.forEach((e=>{e.source&&i[e.source]?r.push({command:R.removeLayer,args:[e.id]}):o.push(e)}));let s=e.terrain;s&&i[s.source]&&(r.push({command:R.setTerrain,args:[void 0]}),s=void 0),r=r.concat(a),t(s,n.terrain)||r.push({command:R.setTerrain,args:[n.terrain]}),function(e,n,r){n||=[];let i=(e||=[]).map(ct),a=n.map(ct),o=e.reduce(lt,{}),s=n.reduce(lt,{}),c=i.slice(),l=Object.create(null),u,d,f,p,m,h,g;for(u=0,d=0;u<i.length;u++)f=i[u],s.hasOwnProperty(f)?d++:(r.push({command:R.removeLayer,args:[f]}),c.splice(c.indexOf(f,d),1));for(u=0,d=0;u<a.length;u++)f=a[a.length-1-u],c[c.length-1-u]!==f&&(o.hasOwnProperty(f)?(r.push({command:R.removeLayer,args:[f]}),c.splice(c.lastIndexOf(f,c.length-d),1)):d++,h=c[c.length-u],r.push({command:R.addLayer,args:[s[f],h]}),c.splice(c.length-u,0,f),l[f]=!0);for(u=0;u<a.length;u++)if(f=a[u],p=o[f],m=s[f],!l[f]&&!t(p,m))if(t(p.source,m.source)&&t(p[`source-layer`],m[`source-layer`])&&t(p.type,m.type)){for(g in st(p.layout,m.layout,r,f,null,R.setLayoutProperty),st(p.paint,m.paint,r,f,null,R.setPaintProperty),t(p.filter,m.filter)||r.push({command:R.setFilter,args:[f,m.filter]}),t(p.minzoom,m.minzoom)&&t(p.maxzoom,m.maxzoom)||r.push({command:R.setLayerZoomRange,args:[f,m.minzoom,m.maxzoom]}),p)p.hasOwnProperty(g)&&g!==`layout`&&g!==`paint`&&g!==`filter`&&g!==`metadata`&&g!==`minzoom`&&g!==`maxzoom`&&(g.indexOf(`paint.`)===0?st(p[g],m[g],r,f,g.slice(6),R.setPaintProperty):t(p[g],m[g])||r.push({command:R.setLayerProperty,args:[f,g,m[g]]}));for(g in m)m.hasOwnProperty(g)&&!p.hasOwnProperty(g)&&g!==`layout`&&g!==`paint`&&g!==`filter`&&g!==`metadata`&&g!==`minzoom`&&g!==`maxzoom`&&(g.indexOf(`paint.`)===0?st(p[g],m[g],r,f,g.slice(6),R.setPaintProperty):t(p[g],m[g])||r.push({command:R.setLayerProperty,args:[f,g,m[g]]}))}else r.push({command:R.removeLayer,args:[f]}),h=c[c.lastIndexOf(f)+1],r.push({command:R.addLayer,args:[m,h]})}(o,n.layers,r)}catch(e){console.warn(`Unable to compute style diff:`,e),r=[{command:R.setStyle,args:[n]}]}return r}(this.serialize(),n).filter((e=>!(e.command in Qt)));if(r.length===0)return!1;let i=r.filter((e=>!(e.command in Zt)));if(i.length>0)throw Error(`Unimplemented: ${i.map((e=>e.command)).join(`, `)}.`);return r.forEach((e=>{e.command!==`setTransition`&&e.command!==`setProjection`&&this[e.command].apply(this,e.args)})),this.stylesheet=n,this._updateMapProjection(),!0}addImage(t,n){return this.getImage(t)?this.fire(new e.ErrorEvent(Error(`An image with this name already exists.`))):(this.imageManager.addImage(t,n),this._afterImageUpdated(t),this)}updateImage(e,t){this.imageManager.updateImage(e,t)}getImage(e){return this.imageManager.getImage(e)}removeImage(t){return this.getImage(t)?(this.imageManager.removeImage(t),this._afterImageUpdated(t),this):this.fire(new e.ErrorEvent(Error(`No image with this name exists.`)))}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(),this._changedImages[t]=!0,this._changed=!0,this.dispatcher.broadcast(`setImages`,this._availableImages),this.fire(new e.Event(`data`,{dataType:`style`}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(t,n,r={}
1){if(this._checkLoaded(),this.getSource(t)!==void 0)throw Error(`There is already a source with this ID`);if(!n.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(`, `)}.`);if([`vector`,`raster`,`geojson`,`video`,`image`].indexOf(n.type)>=0&&this._validate(e.validateSource,`sources.${t}`,n,null,r))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);let i=Ge(t,n,this.dispatcher,this);i.setEventedParent(this,(()=>({isSourceLoaded:this._isSourceCacheLoaded(t),source:i.serialize(),sourceId:t})));let a=n=>{let r=(n?`symbol:`:`other:`)+t,a=this._sourceCaches[r]=new e.SourceCache(r,i,n);(n?this._symbolSourceCaches:this._otherSourceCaches)[t]=a,a.style=this,a.onAdd(this.map)};a(!1),n.type!==`vector`&&n.type!==`geojson`||a(!0),i.onAdd&&i.onAdd(this.map),this._changed=!0}removeSource(t){this._checkLoaded();let n=this.getSource(t);if(!n)throw Error(`There is no source with this ID`);for(let n in this._layers)if(this._layers[n].source===t)return this.fire(new e.ErrorEvent(Error(`Source "${t}" cannot be removed while layer "${n}" is using it.`)));if(this.terrain&&this.terrain.get().source===t)return this.fire(new e.ErrorEvent(Error(`Source "${t}" cannot be removed while terrain is using it.`)));let r=this._getSourceCaches(t);for(let t of r)delete this._sourceCaches[t.id],delete this._updatedSources[t.id],t.fire(new e.Event(`data`,{sourceDataType:`metadata`,dataType:`source`,sourceId:t.getSource().id})),t.setEventedParent(null),t.clearTiles();return delete this._otherSourceCaches[t],delete this._symbolSourceCaches[t],n.setEventedParent(null),n.onRemove&&n.onRemove(this.map),this._changed=!0,this}
1setGeoJSONSourceData(e,t){this._checkLoaded(),this.getSource(e).setData(t),this._changed=!0}getSource(e){let t=this._getSourceCache(e);return t&&t.getSource()}_getSources(){let e=[];for(let t in this._otherSourceCaches){let n=this._getSourceCache(t);n&&e.push(n.getSource())}return e}addLayer(t,n,r={}){this._checkLoaded();let i=t.id;if(this.getLayer(i))return void this.fire(new e.ErrorEvent(Error(`Layer with id "${i}" already exists on this map`)));let a;if(t.type===`custom`){if(Xt(this,e.validateCustomStyleLayer(t)))return;a=e.createStyleLayer(t)}else{if(typeof t.source==`object`&&(this.addSource(i,t.source),t=e.clone$1(t),t=e.extend(t,{source:i})),this._validate(e.validateLayer,`layers.${i}`,t,{arrayIndex:-1},r))return;a=e.createStyleLayer(t),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize(),this._updateLayerCount(a,!0)}let o=n?this._order.indexOf(n):this._order.length;if(n&&o===-1)return void this.fire(new e.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`)));this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a;let s=this._getLayerSourceCache(a);if(this._removedLayers[i]&&a.source&&s&&a.type!==`custom`){let e=this._removedLayers[i];delete this._removedLayers[i],e.type===a.type?(this._updatedSources[a.source]=`reload`,s.pause()):this._updatedSources[a.source]=`clear`}this._updateLayer(a),a.onAdd&&a.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(t,n){if(this._checkLoaded(),this._changed=!0,!this._layers[t])return void this.fire(new e.ErrorEvent(Error(`The layer '${t}' does not exist in the map's style and cannot be moved.`)));if(t===n)return;let r=this._order.indexOf(t);this._order.splice(r,1);let i=n?this._order.indexOf(n):this._order.length;
1n&&i===-1?this.fire(new e.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`))):(this._order.splice(i,0,t),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(t){this._checkLoaded();let n=this._layers[t];if(!n)return void this.fire(new e.ErrorEvent(Error(`The layer '${t}' does not exist in the map's style and cannot be removed.`)));n.setEventedParent(null),this._updateLayerCount(n,!1);let r=this._order.indexOf(t);this._order.splice(r,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[t]=n,delete this._layers[t],delete this._serializedLayers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t],n.onRemove&&n.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(e){return this._layers[e]}hasLayer(e){return e in this._layers}hasLayerType(e){for(let t in this._layers)if(this._layers[t].type===e)return!0;return!1}setLayerZoomRange(t,n,r){this._checkLoaded();let i=this.getLayer(t);i?i.minzoom===n&&i.maxzoom===r||(n!=null&&(i.minzoom=n),r!=null&&(i.maxzoom=r),this._updateLayer(i)):this.fire(new e.ErrorEvent(Error(`The layer '${t}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(n,r,i={}){this._checkLoaded();let a=this.getLayer(n);if(a){if(!t(a.filter,r))return r==null?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(e.validateFilter,`layers.${a.id}.filter`,r,{layerType:a.type},i)||(a.filter=e.clone$1(r),this._updateLayer(a)))}else this.fire(new e.ErrorEvent(Error(`The layer '${n}' does not exist in the map's style and cannot be filtered.`)))}getFilter(t){let n=this.getLayer(t);return n&&e.clone$1(n.filter)}setLayoutProperty(n,r,i,a={}){this._checkLoaded();let o=this.getLayer(n);o?t(o.getLayoutProperty(r),i)||(o.setLayoutProperty(r,i,a),this._updateLayer(o)):this.fire(new e.ErrorEvent(Error(`The layer '${n}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(t,n){let r=this.getLayer(t);if(r)return r.getLayoutProperty(n);this.fire(new e.ErrorEvent(Error(`The layer '${t}' does not exist in the map's style.`)))}setPaintProperty(n,r,i,a={}){this._checkLoaded();let o=this.getLayer(n);o?t(o.getPaintProperty(r),i)||(o.setPaintProperty(r,i,a)&&this._updateLayer(o),this._changed=!0,this._updatedPaintProps[n]=!0):this.fire(new e.ErrorEvent(Error(`The layer '${n}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(e,t){let n=this.getLayer(e);return n&&n.getPaintProperty(t)}setFeatureState(t,n){this._checkLoaded();let r=t.source,i=t.sourceLayer,a=this.getSource(r);if(!a)return void this.fire(new e.ErrorEvent(Error(`The source '${r}' does not exist in the map's style.`)));let o=a.type;if(o===`geojson`&&i)return void this.fire(new e.ErrorEvent(Error(`GeoJSON sources cannot have a sourceLayer parameter.`)));if(o===`vector`&&!i)return void this.fire(new e.ErrorEvent(Error(`The sourceLayer parameter must be provided for vector source types.`)));t.id===void 0&&this.fire(new e.ErrorEvent(Error(`The feature id parameter must be provided.`)));let s=this._getSourceCaches(r);for(let e of s)e.setFeatureState(i,t.id,n)}removeFeatureState(t,n){this._checkLoaded();let r=t.source,i=this.getSource(r);if(!i)return void this.fire(new e.ErrorEvent(Error(`The source '${r}' does not exist in the map's style.`)));let a=i.type,o=a===`vector`?t.sourceLayer:void 0;if(a===`vector`&&!o)return void this.fire(new e.ErrorEvent(Error(`The sourceLayer parameter must be provided for vector source types.`)));if(n&&typeof t.id!=`string`&&typeof t.id!=`number`)return void this.fire(new e.ErrorEvent(Error(`A feature id is required to remove its specific state property.`)));let s=this._getSourceCaches(r);for(let e of s)e.removeFeatureState(o,t.id,n)}getFeatureState(t){this._checkLoaded();let n=t.source,r=t.sourceLayer,i=this.getSource(n);if(i){if(i.type!==`vector`||r)return t.id===void 0&&this.fire(new e.ErrorEvent(Error(`The feature id parameter must be provided.`))),this._getSourceCaches(n)[0].getFeatureState(r,t.id);this.fire(new e.ErrorEvent(Error(`The sourceLayer parameter must be provided for vector source types.`)))}else this.fire(new e.ErrorEvent(Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return e.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){let t={};for(let e in this._sourceCaches){let n=this._sourceCaches[e].getSource();t[n.id]||(t[n.id]=n.serialize())}return e.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.getTerrain()||void 0,fog:this.stylesheet.fog,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:t,layers:this._serializeLayers(this._order)},(e=>e!==void 0))}_updateLayer(e){this._updatedLayers[e.id]=!0;let t=this._getLayerSourceCache(e);e.source&&!this._updatedSources[e.source]&&t&&t.getSource().type!==`raster`&&(this._updatedSources[e.source]=`reload`,t.pause()),this._changed=!0,e.invali
1dateCompiledFilter()}_flattenAndSortRenderedFeatures(e){let t=e=>this._layers[e].type===`fill-extrusion`,n={},r=[];for(let i=this._order.length-1;i>=0;i--){let a=this._order[i];if(t(a)){n[a]=i;for(let t of e){let e=t[a];if(e)for(let t of e)r.push(t)}}}r.sort(((e,t)=>t.intersectionZ-e.intersectionZ));let i=[];for(let a=this._order.length-1;a>=0;a--){let o=this._order[a];if(t(o))for(let e=r.length-1;e>=0;e--){let t=r[e].feature;if(n[t.layer.id]<a)break;i.push(t),r.pop()}else for(let t of e){let e=t[o];if(e)for(let t of e)i.push(t.feature)}}return i}queryRenderedFeatures(t,n,r){n&&n.filter&&this._validate(e.validateFilter,`queryRenderedFeatures.filter`,n.filter,null,n);let i={};if(n&&n.layers){if(!Array.isArray(n.layers))return this.fire(new e.ErrorEvent(Error(`parameters.layers must be an Array.`))),[];for(let t of n.layers){let n=this._layers[t];if(!n)return this.fire(new e.ErrorEvent(Error(`The layer '${t}' does not exist in the map's style and cannot be queried for features.`))),[];i[n.source]=!0}}let a=[];n.availableImages=this._availableImages;let o=n&&n.layers?n.layers.some((e=>{let t=this.getLayer(e);return t&&t.is3D()})):this.has3DLayers(),s=j.createFromScreenPoints(t,r);for(let e in this._sourceCaches){let t=this._sourceCaches[e].getSource().id;n.layers&&!i[t]||a.push(qe(this._sourceCaches[e],this._layers,this._serializedLayers,s,n,r,o,!!this.map._showQueryGeometry))}return this.placement&&a.push(function(e,t,n,r,i,a,o){let s={},c=a.queryRenderedSymbols(r),l=[];for(let e of Object.keys(c).map(Number))l.push(o[e]);l.sort(Ye);for(let n of l){let r=n.featureIndex.lookupSymbolFeatures(c[n.bucketInstanceId],t,n.bucketIndex,n.sourceLayerIndex,i.filter,i.layers,i.availableImages,e);for(let e in r){let t=s[e]=s[e]||[],i=r[e];i.sort(((e,t)=>{let r=n.featureSortOrder;if(r){let n=r.indexOf(e.featureIndex);return r.indexOf(t.featureIndex)-n}return t.featureIndex-e.featureIndex}));for(let e of i)t.push(e)}}for(let t in s)s[t].forEach((r=>{let i=r.feature,a=n(e[t]).getFeatureState(i.layer[`source-layer`],i.id);i.source=i.layer.source,i.layer[`source-layer`]&&(i.sourceLayer=i.layer[`source-layer`]),i.state=a}));return s}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),s.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(a)}querySourceFeatures(t,n){n&&n.filter&&this._validate(e.validateFilter,`querySourceFeatures.filter`,n.filter,null,n);let r=this._getSourceCaches(t),i=[];for(let e of r)i=i.concat(Je(e,n));return i}addSourceType(e,t,n){return tn.getSourceType(e)?n(Error(`A source type called "${e}" already exists.`)):(tn.setSourceType(e,t),t.workerSourceURL?void this.dispatcher.broadcast(`loadWorkerSource`,{name:e,url:t.workerSourceURL},n):n(null,null))}getLight(){return this.light.getLight()}setLight(e,n={}){this._checkLoaded();let r=this.light.getLight(),i=!1;for(let n in e)if(!t(e[n],r[n])){i=!0;break}if(!i)return;let a=this._setTransitionParameters({duration:300,delay:0});this.light.setLight(e,n),this.light.updateTransitions(a)}getTerrain(){return this.terrain&&this.terrain.drapeRenderMode===1?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:``,exaggeration:0},0)}setTerrain(n,r=1){if(this._checkLoaded(),!n)return delete this.terrain,delete this.stylesheet.terrain,this.dispatcher.broadcast(`enableTerrain`,!1),this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);if(r===1){if(typeof n.source==`object`){let t=`terrain-dem-src`;this.addSource(t,n.source),n=e.clone$1(n),n=e.extend(n,{source:t})}if(this._validate(e.validateTerrain,`terrain`,n))return}if(!this.terrain||this.terrain&&r!==this.terrain.drapeRenderMode)this._createTerrain(n,r);else{let r=this.terrain,i=r.get();for(let t of Object.keys(e.spec.terrain))!n.hasOwnProperty(t)&&e.spec.terrain[t].default&&(n[t]=e.spec.terrain[t].default);for(let e in n)if(!t(n[e],i[e])){r.set(n),this.stylesheet.terrain=n;let e=this._setTransitionParameters({duration:0});r.updateTransitions(e);break}}this._updateDrapeFirstLayers(),this._markersNeedUpdate=!0}_createFog(e){let t=this.fog=new O(e,this.map.transform);this.stylesheet.fog=e;let n=this._setTransitionParameters({duration:0});t.updateTransitions(n)}_updateMarkersOpacity(){this.map._markers.length!==0&&this.map._requestDomTask((()=>{for(let e of this.map._markers)e._evaluateOpacity()}))}getFog(){return this.fog?this.fog.get():null}setFog(e){if(this._checkLoaded(),!e)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedU
1pdate=!0);if(this.fog){let n=this.fog,r=n.get();Object.keys(e).length===0&&n.set(e);for(let i in e)if(!t(e[i],r[i])){n.set(e),this.stylesheet.fog=e;let t=this._setTransitionParameters({duration:0});n.updateTransitions(t);break}}else this._createFog(e);this._markersNeedUpdate=!0}_setTransitionParameters(t){return{now:e.exported.now(),transition:e.extend(t,this.stylesheet.transition)}}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;let e=this._order.filter((e=>this.isLayerDraped(this._layers[e]))),t=this._order.filter((e=>!this.isLayerDraped(this._layers[e])));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...e),this._drapedFirstOrder.push(...t)}_createTerrain(e,t){let n=this.terrain=new w(e,t);this.stylesheet.terrain=e,this.dispatcher.broadcast(`enableTerrain`,!this.terrainSetForDrapingOnly()),this._force3DLayerUpdate();let r=this._setTransitionParameters({duration:0});n.updateTransitions(r)}_force3DLayerUpdate(){for(let e in this._layers){let t=this._layers[e];t.type===`fill-extrusion`&&this._updateLayer(t)}}_forceSymbolLayerUpdate(){for(let e in this._layers){let t=this._layers[e];t.type===`symbol`&&this._updateLayer(t)}}_validate(t,n,r,i,a={}){return(!a||!1!==a.validate)&&Xt(this,t.call(e.validateStyle,e.extend({key:n,style:this.serialize(),value:r,styleSpec:e.spec},i)))}_remove(){this._request&&=(this._request.cancel(),null),this._spriteRequest&&=(this._spriteRequest.cancel(),null),e.evented.off(`pluginStateChange`,this._rtlTextPluginCallback);for(let e in this._layers)this._layers[e].setEventedParent(null);for(let e in this._sourceCaches)this._sourceCaches[e].clearTiles(),this._sourceCaches[e].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(e){let t=this._getSourceCaches(e);for(let e of t)e.clearTiles()}_reloadSource(e){let t=this._getSourceCaches(e);for(let e of t)e.resume(),e.reload()}_reloadSources(){for(let e of this._getSources())e.reload&&e.reload()}_updateSources(e){for(let t in this._sourceCaches)this._sourceCaches[t].update(e)}_generateCollisionBoxes(){for(let e in this._sourceCaches){let t=this._sourceCaches[e];t.resume(),t.reload()}}_updatePlacement(t,n,r,i,a=!1){let o=!1,s=!1,c={};for(let e of this._order){let n=this._layers[e];if(n.type!==`symbol`)continue;if(!c[n.source]){let e=this._getLayerSourceCache(n);if(!e)continue;c[n.source]=e.getRenderableIds(!0).map((t=>e.getTileByID(t))).sort(((e,t)=>t.tileID.overscaledZ-e.tileID.overscaledZ||(e.tileID.isLessThan(t.tileID)?-1:1)))}let r=this.crossTileSymbolIndex.addLayer(n,c[n.source],t.center.lng,t.projection);o||=r}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),a=a||this._layerOrderChanged||r===0,this._layerOrderChanged&&this.fire(new e.Event(`neworder`)),(a||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(e.exported.now(),t.zoom))&&(this.pauseablePlacement=new Wt(t,this._order,a,n,r,i,this.placement,this.fog&&t.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,c),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(e.exported.now()),s=!0),o&&this.pauseablePlacement.placement.setStale()),s||o)for(let e of this._order){let t=this._layers[e];t.type===`symbol`&&this.placement.updateLayerOpacities(t,c[t.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(e.exported.now())}_releaseSymbolFadeTiles(){for(let e in this._sourceCaches)this._sourceCaches[e].releaseSymbolFadeTiles()}getImages(e,t,n){this.imageManager.getImages(t.icons,n),this._updateTilesForChangedImages();let r=e=>{e&&e.setDependencies(t.tileID.key,t.type,t.icons)};r(this._otherSourceCaches[t.source]),r(this._symbolSourceCaches[t.source])}getGlyphs(e,t,n){this.glyphManager.getGlyphs(t.stacks,n)}getResource(t,n,r){return e.makeRequest(n,r)}_getSourceCache(e){return this._otherSourceCaches[e]}_getLayerSourceCache(e){return e.type===`symbol`?this._symbolSourceCaches[e.source]:this._otherSourceCaches[e.source]}_getSourceCaches(e){let t=[];return this._otherSourceCaches[e]&&t.push(this._otherSourceCaches[e]),this._symbolSourceCaches[e]&&t.push(this._symbolSourceCaches[e]),t}_isSourceCacheLoaded(t){let n=this._getSourceCaches(t);return n.length===0?(this.fire(new e.ErrorEvent(Error(`There is no source with ID '${t}'`))),!1):n.every((e=>e.loaded()))}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast(`clearCaches`)}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}tn.getSourceType=function(e){return We[e]},tn.setSourceType=function(e,t){We[e]=t},tn.registerForPluginStateChange=e.registerForPluginStateChange;var nn=` 2#define EPSILON 0.0000001 3#define PI 3.141592653589793 4#define EXTENT 8192.0 5#define HALF_PI PI/2.0 6#define QUARTER_PI PI/4.0 7#define RAD_TO_DEG 180.0/PI 8#define DEG_TO_RAD PI/180.0 9#define GLOBE_RADIUS EXTENT/PI/2.0`,rn=`attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying highp vec3 v_uv;
9void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}`,an=` 10#define ELEVATION_SCALE 7.0 11#define ELEVATION_OFFSET 450.0 12#ifdef PROJECTION_GLOBE_VIEW 13uniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix( 14mix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;} 15#else 16vec3 elevationVector(vec2 pos) { return vec3(0,0,1); } 17#endif 18#ifdef TERRAIN 19#ifdef TERRAIN_DEM_FLOAT_FORMAT 20uniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev; 21#else 22uniform sampler2D u_dem;uniform sampler2D u_dem_prev; 23#endif 24uniform vec4 u_dem_unpack;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;uniform sampler2D u_depth;uniform vec2 u_depth_size_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}float currentElevation(vec2 apos) { 25#ifdef TERRAIN_DEM_FLOAT_FORMAT 26vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem,pos).a; 27#else 28float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem,pos)); 29#ifdef TERRAIN_DEM_NEAREST_FILTER 30return u_exaggeration*tl; 31#endif 32float tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); 33#endif 34}float prevElevation(vec2 apos) { 35#ifdef TERRAIN_DEM_FLOAT_FORMAT 36vec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture2D(u_dem_prev,pos).a; 37#else 38float dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y); 39#endif 40} 41#ifdef TERRAIN_VERTEX_MORPHING 42float elevation(vec2 apos) { 43#ifdef ZERO_EXAGGERATION 44return 0.0; 45#endif 46float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);} 47#else 48float elevation(vec2 apos) { 49#ifdef ZERO_EXAGGERATION 50return 0.0; 51#endif 52return currentElevation(apos);} 53#endif 54highp float unpack_depth(highp vec4 rgba_depth) 55{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4( 56unpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy)) 57);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) { 58#ifdef TERRAIN_DEM_FLOAT_FORMAT 59float tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a; 60#else 61vec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);
61vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack); 62#endif 63return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);} 64#else 65float elevation(vec2 pos) { return 0.0; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; } 66#endif`,on=`#ifdef FOG 67uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;varying vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);} 68#endif`,sn=`#ifdef FOG 69uniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump float u_fog_temporal_offset;varying vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( 70mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,opacity);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);} 71#endif`;let cn={},ln={},un=[];hn(nn,un),hn(an,un),hn(on,un),hn(sn,un),cn=W(``,an),ln=W(sn,on);let dn=W(` 72highp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}
72vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}highp float unpack_depth(highp vec4 rgba_depth) 73{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}`,` 74float wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;} 75#ifdef PROJECTION_GLOBE_VIEW 76vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) { 77#ifndef PROJECTED_POS_ON_VIEWPORT 78float tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz; 79#else 80return vec3(0.0); 81#endif 82}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);} 83#endif 84vec2 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( 85unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 86);}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;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.`),fn=nn,pn=` 87#ifdef GL_ES 88precision mediump float; 89#else 90 91#if !defined(lowp) 92#define lowp 93#endif 94 95#if !defined(mediump) 96#define mediump 97#endif 98 99#if !defined(highp) 100#define highp 101#endif 102 103#endif`;var mn={background:W(`uniform vec4 u_color;uniform float u_opacity; 104#ifdef LIGHTING_3D_MODE 105varying vec4 v_color; 106#endif 107void main() {vec4 out_color; 108#ifdef LIGHTING_3D_MODE 109out_color=v_color; 110#else 111out_color=u_color; 112#endif 113#ifdef FOG 114out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 115#endif 116gl_FragColor=out_color*u_opacity; 117#ifdef OVERDRAW_INSPECTOR 118gl_FragColor=vec4(1.0); 119#endif 120}`,`attribute vec2 a_pos;uniform mat4 u_matrix; 121#ifdef LIGHTING_3D_MODE 122uniform vec4 u_color;varying vec4 v_color; 123#endif 124void main() {gl_Position=u_matrix*vec4(a_pos,0,1); 125#ifdef LIGHTING_3D_MODE 126v_color=apply_lighting(u_color); 127#endif 128#ifdef FOG 129v_fog_pos=fog_position(a_pos); 130#endif 131}`),backgroundPattern:W(`uniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos;void main() {vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); 132#ifdef LIGHTING_3D_MODE 133out_color=apply_lighting(out_color); 134#endif 135#ifdef FOG 136out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 137#endif 138gl_FragColor=out_color*u_opacity; 139#ifdef OVERDRAW_INSPECTOR 140gl_FragColor=vec4(1.0); 141#endif 142}`,`uniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_tile_units_to_pixels,a_pos); 143#ifdef FOG 144v_fog_pos=fog_position(a_pos); 145#endif 146}`),circle:W(`varying vec3 v_data;varying float v_visibility; 147#pragma mapbox: define highp vec4 color 148#pragma mapbox: define mediump float radius 149#pragma mapbox: define lowp float blur 150#pragma mapbox: define lowp float opacity 151#pragma mapbox: define highp vec4 stroke_color 152#pragma mapbox: define mediump float stroke_width 153#pragma mapbox: define lowp float stroke_opacity 154void main() { 155#pragma mapbox: initialize highp vec4 color 156#pragma mapbox: initialize mediump float radius 157#pragma mapbox: initialize lowp float blur 158#pragma mapbox: initialize lowp float opacity 159#pragma mapbox: initialize highp vec4 stroke_color 160#pragma mapbox: initialize mediump float stroke_width 161#pragma mapbox: initialize lowp float stroke_opacity 162vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(
163antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width) 164);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t); 165#ifdef LIGHTING_3D_MODE 166out_color=apply_lighting(out_color); 167#endif 168#ifdef FOG 169out_color=fog_apply_premultiplied(out_color,v_fog_pos); 170#endif 171gl_FragColor=out_color*(v_visibility*opacity_t); 172#ifdef OVERDRAW_INSPECTOR 173gl_FragColor=vec4(1.0); 174#endif 175}`,`#define NUM_VISIBILITY_RINGS 2 176#define INV_SQRT2 0.70710678 177#define ELEVATION_BIAS 0.0001 178#define NUM_SAMPLES_PER_RING 16 179uniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos; 180#ifdef PROJECTION_GLOBE_VIEW 181attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; 182#endif 183varying vec3 v_data;varying float v_visibility; 184#pragma mapbox: define highp vec4 color 185#pragma mapbox: define mediump float radius 186#pragma mapbox: define lowp float blur 187#pragma mapbox: define lowp float opacity 188#pragma mapbox: define highp vec4 stroke_color 189#pragma mapbox: define mediump float stroke_width 190#pragma mapbox: define lowp float stroke_opacity 191vec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) { 192#if defined(TERRAIN) 193return elevation(pos)+ELEVATION_BIAS; 194#else 195return 0.0; 196#endif 197}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale); 198#ifdef PITCH_WITH_MAP 199#ifdef PROJECTION_GLOBE_VIEW 200return u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) ); 201#else 202return u_matrix*( world_center+vec4(sample_offset,0,0) ); 203#endif 204#else 205return projected_center+vec4(sample_offset,0,0); 206#endif 207}float get_sample_step() { 208#ifdef PITCH_WITH_MAP 209return 2.0*PI/float(NUM_SAMPLES_PER_RING); 210#else 211return PI/float(NUM_SAMPLES_PER_RING); 212#endif 213}void main(void) { 214#pragma mapbox: initialize highp vec4 color 215#pragma mapbox: initialize mediump float radius 216#pragma mapbox: initialize lowp float blur 217#pragma mapbox: initialize lowp float opacity 218#pragma mapbox: initialize highp vec4 stroke_color 219#pragma mapbox: initialize mediump float stroke_width 220#pragma mapbox: initialize lowp float stroke_opacity 221vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors; 222#ifdef PROJECTION_GLOBE_VIEW 223vec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1); 224#else 225surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1); 226#endif 227vec4 projected_center=u_matrix*world_center;float view_scale=0.0; 228#ifdef PITCH_WITH_MAP 229#ifdef SCALE_WITH_MAP 230view_scale=1.0; 231#else 232view_scale=projected_center.w/u_camera_to_center_distance; 233#endif 234#else 235#ifdef SCALE_WITH_MAP 236view_scale=u_camera_to_center_distance; 237#else 238view_scale=projected_center.w; 239#endif 240#endif 241gl_Position=project_vertex(extrude,world_center,projected_center,radiu
241s,stroke_width,view_scale,surface_vectors);float visibility=0.0; 242#ifdef TERRAIN 243float step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center; 244#ifdef PITCH_WITH_MAP 245float cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center; 246#else 247occlusion_world_center=world_center;occlusion_projected_center=projected_center; 248#endif 249for(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING); 250#else 251visibility=1.0; 252#endif 253#ifdef PROJECTION_GLOBE_VIEW 254visibility=1.0; 255#endif 256v_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur); 257#ifdef FOG 258v_fog_pos=fog_position(world_center.xyz); 259#endif 260}`),clippingMask:W(`void main() {gl_FragColor=vec4(1.0);}`,`attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}`),heatmap:W(`uniform highp float u_intensity;varying vec2 v_extrude; 261#pragma mapbox: define highp float weight 262#define GAUSS_COEF 0.3989422804014327 263void main() { 264#pragma mapbox: initialize highp float weight 265float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); 266#ifdef FOG 267if (u_is_globe==0) {gl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);} 268#endif 269#ifdef OVERDRAW_INSPECTOR 270gl_FragColor=vec4(1.0); 271#endif 272}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos; 273#ifdef PROJECTION_GLOBE_VIEW 274attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir; 275#endif 276varying vec2 v_extrude; 277#pragma mapbox: define highp float weight 278#pragma mapbox: define mediump float radius 279const highp float ZERO=1.0/255.0/16.0; 280#define GAUSS_COEF 0.3989422804014327 281void main(void) { 282#pragma mapbox: initialize highp float weight 283#pragma mapbox: initialize mediump float radius 284vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos; 285#ifdef PROJECTION_GLOBE_VIEW 286vec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); 287#else 288pos=vec3(tilePos+extrude,elevation(tilePos)); 289#endif 290gl_Position=u_matrix*vec4(pos,1); 291#ifdef FOG 292v_fog_pos=fog_position(pos); 293#endif 294}`),heatmapTexture:W(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; 295#ifdef OVERDRAW_INSPECTOR 296gl_FragColor=vec4(0.0); 297#endif 298}`,`attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}`),collisionBox:W(`varying float v_placed;varying float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}`,`attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp( 2990.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:W(`varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}`,`attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2( 300mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp( 3010.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),debug:W(`uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}`,`attribute vec2 a_pos; 302#ifdef PROJECTION_GLOBE_VIEW 303attribute vec3 a_pos_3; 304#endif 305varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0; 306#ifdef PROJECTION_GLOBE_VIEW
307gl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1); 308#else 309gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1); 310#endif 311}`),fill:W(`#pragma mapbox: define highp vec4 color 312#pragma mapbox: define lowp float opacity 313void main() { 314#pragma mapbox: initialize highp vec4 color 315#pragma mapbox: initialize lowp float opacity 316vec4 out_color=color; 317#ifdef LIGHTING_3D_MODE 318out_color=apply_lighting(out_color); 319#endif 320#ifdef FOG 321out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 322#endif 323gl_FragColor=out_color*opacity; 324#ifdef OVERDRAW_INSPECTOR 325gl_FragColor=vec4(1.0); 326#endif 327}`,`attribute vec2 a_pos;uniform mat4 u_matrix; 328#pragma mapbox: define highp vec4 color 329#pragma mapbox: define lowp float opacity 330void main() { 331#pragma mapbox: initialize highp vec4 color 332#pragma mapbox: initialize lowp float opacity 333gl_Position=u_matrix*vec4(a_pos,0,1); 334#ifdef FOG 335v_fog_pos=fog_position(a_pos); 336#endif 337}`),fillOutline:W(`varying vec2 v_pos; 338#pragma mapbox: define highp vec4 outline_color 339#pragma mapbox: define lowp float opacity 340void main() { 341#pragma mapbox: initialize highp vec4 outline_color 342#pragma mapbox: initialize lowp float opacity 343float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color; 344#ifdef LIGHTING_3D_MODE 345out_color=apply_lighting(out_color); 346#endif 347#ifdef FOG 348out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 349#endif 350gl_FragColor=out_color*(alpha*opacity); 351#ifdef OVERDRAW_INSPECTOR 352gl_FragColor=vec4(1.0); 353#endif 354}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; 355#pragma mapbox: define highp vec4 outline_color 356#pragma mapbox: define lowp float opacity 357void main() { 358#pragma mapbox: initialize highp vec4 outline_color 359#pragma mapbox: initialize lowp float opacity 360gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; 361#ifdef FOG 362v_fog_pos=fog_position(a_pos); 363#endif 364}`),fillOutlinePattern:W(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos;varying vec2 v_pos_world; 365#pragma mapbox: define lowp float opacity 366#pragma mapbox: define lowp vec4 pattern 367void main() { 368#pragma mapbox: initialize lowp float opacity 369#pragma mapbox: initialize mediump vec4 pattern 370vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=texture2D(u_image,pos); 371#ifdef LIGHTING_3D_MODE 372out_color=apply_lighting(out_color); 373#endif 374#ifdef FOG 375out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 376#endif 377gl_FragColor=out_color*(alpha*opacity); 378#ifdef OVERDRAW_INSPECTOR 379gl_FragColor=vec4(1.0); 380#endif 381}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos;varying vec2 v_pos_world; 382#pragma mapbox: define lowp float opacity 383#pragma mapbox: define lowp vec4 pattern 384#pragma mapbox: define lowp float pixel_ratio 385void main() { 386#pragma mapbox: initialize lowp float opacity 387#pragma mapbox: initialize mediump vec4 pattern 388#pragma mapbox: initialize lowp float pixel_ratio 389vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world; 390#ifdef FOG 391v_fog_pos=fog_position(a_pos); 392#endif 393}`),fillPattern:W(`uniform vec2 u_texsize;uniform sampler2D u_image;varying vec2 v_pos; 394#pragma mapbox: define lowp float opacity 395#pragma mapbox: define lowp vec4 pattern 396void main() { 397#pragma mapbox: initialize lowp float opacity 398#pragma mapbox: initialize mediump vec4 pattern 399vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); 400#ifdef LIGHTING_3D_MODE 401out_color=apply_lighting(out_color); 402#endif 403#ifdef FOG 404out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 405#endif 406gl_FragColor=out_color*opacity; 407#ifdef OVERDRAW_INSPECTOR 408gl_FragColor=vec4(1.0); 409#endif 410}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos; 411#pragma mapbox: define lowp float opacity 412#pragma mapbox: define lowp vec4 pattern 413#pragma mapbox: define lowp float pixel_ratio 414void main() { 415#pragma mapbox: initialize lowp float opacity 416#pragma mapbox: initialize mediump vec4 pattern 417#pragma mapbox: initialize lowp float pixel_ratio 418vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos); 419#ifdef FOG 420v_fog_pos=fog_position(a_pos); 421#endif 422}`),fillExtrusion:W(`varying vec4 v_color; 423#ifdef RENDER_SHADOWS 424varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; 425#endif 426#ifdef FAUX_AO 427uniform lowp vec2 u_ao;varying vec3 v_ao; 428#endif 429#ifdef ZERO_ROOF_RADIUS 430varying vec4 v_roof_color; 431#endif 432#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) 433varying highp vec3 v_normal; 434#endif 435void main() { 436#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) 437vec3 normal=v_normal; 438#endif 439float z;vec4 color; 440#ifdef ZERO_ROOF_RADIUS 441z=float(normal.z > 0.00001);color=mix(v_color,v_roof_color,z); 442#else 443color=v_color; 444#endif 445#ifdef FAUX_AO 446float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0
446),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x; 447#ifdef ZERO_ROOF_RADIUS 448concave*=(1.0-z); 449#endif 450float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);color.rgb=color.rgb*shade; 451#endif 452#ifdef RENDER_SHADOWS 453#ifdef ZERO_ROOF_RADIUS 454normal=mix(normal,vec3(0.0,0.0,1.0),z); 455#endif 456color.xyz=shadowed_color_normal(color.xyz,normalize(normal),v_pos_light_view_0,v_pos_light_view_1,v_depth); 457#endif 458#ifdef FOG 459color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); 460#endif 461gl_FragColor=color; 462#ifdef OVERDRAW_INSPECTOR 463gl_FragColor=vec4(1.0); 464#endif 465}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; 466#ifdef PROJECTION_GLOBE_VIEW 467attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; 468#endif 469varying vec4 v_color; 470#ifdef RENDER_SHADOWS 471uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying highp vec4 v_pos_light_view_0;varying highp vec4 v_pos_light_view_1;varying float v_depth; 472#endif 473#ifdef ZERO_ROOF_RADIUS 474varying vec4 v_roof_color; 475#endif 476#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) 477varying highp vec3 v_normal; 478#endif 479#ifdef FAUX_AO 480uniform lowp vec2 u_ao;varying vec3 v_ao; 481#endif 482#pragma mapbox: define highp float base 483#pragma mapbox: define highp float height 484#pragma mapbox: define highp vec4 color 485void main() { 486#pragma mapbox: initialize highp float base 487#pragma mapbox: initialize highp float height 488#pragma mapbox: initialize highp vec4 color 489vec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0)); 490#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) 491v_normal=normal; 492#endif 493base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0); 494#if defined(HAS_CENTROID) || defined(TERRAIN) 495centroid_pos=a_centroid_pos; 496#endif 497float ele=0.0;float h=0.0;float c_ele;vec3 pos; 498#ifdef TERRAIN 499bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);pos=vec3(pos_nx.xy,h); 500#else 501h=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h); 502#endif 503#ifdef PROJECTION_GLOBE_VIEW 504float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); 505#endif 506float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden); 507#ifdef RENDER_SHADOWS 508v_pos_light_view_0=u_light_matrix_0*vec4(pos,1);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1);v_depth=gl_Position.w; 509#endif 510float NdotL=0.0;float colorvalue=0.0; 511#ifdef LIGHTING_3D_MODE 512NdotL=calculate_NdotL(normal); 513#else 514colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL); 515#endif 516if (normal.y !=0.0) {float r=0.84; 517#ifndef LIGHTING_3D_MODE 518r=mix(0.7,0.98,1.0-u_lightintensity); 519#endif 520NdotL*=( 521(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}v_color=vec4(0.0,0.0,0.0,1.0); 522#ifdef FAUX_AO
523float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; 524#ifdef TERRAIN 525top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); 526#endif 527v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); 528#ifdef PROJECTION_GLOBE_VIEW 529top_height+=u_height_lift; 530#endif 531gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; 532#endif 533#ifdef LIGHTING_3D_MODE 534v_color=apply_lighting(color,NdotL); 535#else 536v_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); 537#endif 538v_color*=u_opacity; 539#ifdef ZERO_ROOF_RADIUS 540v_roof_color=vec4(0.0,0.0,0.0,1.0); 541#ifdef LIGHTING_3D_MODE 542v_roof_color=apply_lighting(color,calculate_NdotL(vec3(0.0,0.0,1.0))); 543#else 544float roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0)); 545#endif 546v_roof_color*=u_opacity; 547#endif 548#ifdef FOG 549v_fog_pos=fog_position(pos); 550#endif 551}`),fillExtrusionPattern:W(`uniform vec2 u_texsize;uniform sampler2D u_image; 552#ifdef FAUX_AO 553uniform lowp vec2 u_ao;varying vec3 v_ao; 554#endif 555#ifdef LIGHTING_3D_MODE 556varying float v_NdotL; 557#endif 558varying vec2 v_pos;varying vec4 v_lighting;uniform lowp float u_opacity; 559#pragma mapbox: define lowp float base 560#pragma mapbox: define lowp float height 561#pragma mapbox: define lowp vec4 pattern 562#pragma mapbox: define lowp float pixel_ratio 563void main() { 564#pragma mapbox: initialize lowp float base 565#pragma mapbox: initialize lowp float height 566#pragma mapbox: initialize mediump vec4 pattern 567#pragma mapbox: initialize lowp float pixel_ratio 568vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 imagecoord=mod(v_pos,1.0);vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);vec4 out_color=texture2D(u_image,pos); 569#ifdef LIGHTING_3D_MODE 570out_color=apply_lighting(out_color,v_NdotL)*u_opacity; 571#else 572out_color=out_color*v_lighting; 573#endif 574#ifdef FAUX_AO 575float intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade; 576#endif 577#ifdef FOG 578out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 579#endif 580gl_FragColor=out_color; 581#ifdef OVERDRAW_INSPECTOR 582gl_FragColor=vec4(1.0); 583#endif 584}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos; 585#ifdef PROJECTION_GLOBE_VIEW 586attribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift; 587#endif 588varying vec2 v_pos;varying vec4 v_lighting; 589#ifdef FAUX_AO 590uniform lowp vec2 u_ao;varying vec3 v_ao; 591#endif 592#ifdef LIGHTING_3D_MODE 593varying float v_NdotL; 594#endif 595#pragma mapbox: define lowp float base 596#pragma mapbox: define lowp float height 597#pragma mapbox: define lowp vec4 pattern 598#pragma mapbox: define lowp float pixel_ratio 599void main() { 600#pragma mapbox: initialize lowp float base 601#pragma mapbox: initialize lowp float height 602#pragma mapbox: initialize mediump vec4 pattern 603#pragma mapbox: initialize lowp float pixel_ratio 604vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;
604base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0); 605#if defined(HAS_CENTROID) || defined(TERRAIN) 606centroid_pos=a_centroid_pos; 607#endif 608float ele=0.0;float h=z;vec3 p;float c_ele; 609#ifdef TERRAIN 610bool flat_roof=centroid_pos.x !=0.0 && t > 0.0;ele=elevation(pos_nx.xy);c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);p=vec3(pos_nx.xy,h); 611#else 612p=vec3(pos_nx.xy,z); 613#endif 614#ifdef PROJECTION_GLOBE_VIEW 615float lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition); 616#endif 617float hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0 618? pos_nx.xy 619: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0; 620#ifdef LIGHTING_3D_MODE 621NdotL=calculate_NdotL(normal); 622#else 623NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL); 624#endif 625if (normal.y !=0.0) {float r=0.84; 626#ifndef LIGHTING_3D_MODE 627r=mix(0.7,0.98,1.0-u_lightintensity); 628#endif 629NdotL*=( 630(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));} 631#ifdef FAUX_AO 632float concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height; 633#ifdef TERRAIN 634top_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(ce
634ntroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height); 635#endif 636v_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]); 637#ifdef PROJECTION_GLOBE_VIEW 638top_height+=u_height_lift; 639#endif 640gl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w; 641#endif 642#ifdef LIGHTING_3D_MODE 643v_NdotL=NdotL; 644#else 645v_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity; 646#endif 647#ifdef FOG 648v_fog_pos=fog_position(p); 649#endif 650}`),hillshadePrepare:W(`#ifdef GL_ES 651precision highp float; 652#endif 653uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) { 654#ifdef TERRAIN_DEM_FLOAT_FORMAT 655return texture2D(u_image,coord).a/4.0; 656#else 657vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0; 658#endif 659}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));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( 660(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c) 661)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4( 662deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); 663#ifdef OVERDRAW_INSPECTOR 664gl_FragColor=vec4(1.0); 665#endif 666}`,`uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}`),hillshade:W(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; 667#ifdef LIGHTING_3D_MODE 668gl_FragColor=apply_lighting(gl_FragColor); 669#endif 670#ifdef FOG 671gl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos)); 672#endif 673#ifdef OVERDRAW_INSPECTOR 674gl_FragColor=vec4(1.0); 675#endif 676}`,`uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0; 677#ifdef FOG 678v_fog_pos=fog_position(a_pos); 679#endif 680}`),line:W(`uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec4 v_uv; 681#ifdef RENDER_LINE_DASH 682uniform sampler2D u_dash_image;varying vec2 v_tex; 683#endif 684#ifdef RENDER_LINE_GRADIENT 685uniform sampler2D u_gradient_image; 686#endif 687uniform float u_border_width;uniform vec4 u_border_color;float luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;} 688#pragma mapbox: define highp vec4 color 689#pragma mapbox: define lowp float floorwidth 690#pragma mapbox: define lowp vec4 dash 691#pragma mapbox: define lowp float blur 692#pragma mapbox: define lowp float opacity
693float linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() { 694#pragma mapbox: initialize highp vec4 color 695#pragma mapbox: initialize lowp float floorwidth 696#pragma mapbox: initialize lowp vec4 dash 697#pragma mapbox: initialize lowp float blur 698#pragma mapbox: initialize lowp float opacity 699float 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); 700#ifdef RENDER_LINE_DASH 701float sdfdist=texture2D(u_dash_image,v_tex).a;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;alpha*=linearstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist); 702#endif 703highp vec4 out_color; 704#ifdef RENDER_LINE_GRADIENT 705out_color=texture2D(u_gradient_image,v_uv.xy); 706#else 707out_color=color; 708#endif 709#ifdef RENDER_LINE_TRIM_OFFSET 710highp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {if (line_progress <=trim_end && line_progress >=trim_start) {out_color=vec4(0,0,0,0);}} 711#endif 712#ifdef LIGHTING_3D_MODE 713out_color=apply_lighting(out_color); 714#endif 715#ifdef FOG 716out_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos)); 717#endif 718#ifdef RENDER_LINE_ALPHA_DISCARD 719if (alpha < u_alpha_discard_threshold) {discard;} 720#endif 721#ifdef RENDER_LINE_BORDER 722float edgeBlur=(u_border_width+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2); 723#ifdef RENDER_LINE_BORDER_AUTO 724float Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);} 725#else 726out_color.rgb=mix(u_border_color.rgb,out_color.rgb,smoothAlpha); 727#endif 728} 729#endif 730gl_FragColor=out_color*(alpha*opacity); 731#ifdef OVERDRAW_INSPECTOR 732gl_FragColor=vec4(1.0); 733#endif 734}`,` 735#define EXTRUDE_SCALE 0.015873016 736attribute vec2 a_pos_normal;attribute vec4 a_data; 737#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) 738attribute highp vec4 a_packed; 739#endif 740#ifdef RENDER_LINE_DASH 741attribute float a_linesofar; 742#endif 743uniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec4 v_uv; 744#ifdef RENDER_LINE_DASH 745uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;varying vec2 v_tex; 746#endif 747#ifdef RENDER_LINE_GRADIENT 748uniform float u_image_height; 749#endif 750#pragma mapbox: define highp vec4 color 751#pragma mapbox: define lowp float floorwidth 752#pragma mapbox: define lowp vec4 dash 753#pragma mapbox: define lowp float blur 754#pragma mapbox: define lowp float opacity 755#pragma mapbox: define mediump float gapwidth 756#pragma mapbox: define lowp float offset 757#pragma mapbox: define mediump float width 758void main() { 759#pragma mapbox: initialize highp vec4 color 760#pragma mapbox: initialize lowp float floorwidth 761#pragma mapbox: initialize lowp vec4 dash 762#pragma mapbox: initialize lowp float blur 763#pragma mapbox: initialize lowp float opacity 764#pragma mapbox: initialize mediump float gapwidth 765#pragma mapbox: initialize lowp float offset 766#pragma mapbox: initialize mediump float width 767float 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;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*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; 768#ifndef RENDER_TO_TEXTURE 769float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; 770#else 771v_gamma_scale=1.0; 772#endif 773#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET) 774float a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3]; 775#ifdef RENDER_LINE_GRADIENT 776highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end); 777#else 778v_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end); 779#endif 780#endif 781#ifdef RENDER_LINE_DASH 782float scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/floorwidth,(-normal.y*height+dash.x+0.5)/u_texsize.y); 783#endif 784v_width2=vec2(outset,inset); 785#ifdef FOG 786v_fog_pos=fog_position(pos); 787#endif 788}`),linePattern:W(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_tile_units_to_pixels;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; 789#pragma mapbox: define lowp vec4 pattern 790#pragma mapbox: define lowp float pixel_ratio 791#pragma mapbox: define lowp float blur 792#pragma mapbox: define lowp float opacity 793void main() { 794#pragma mapbox: initialize mediump vec4 pattern 795#pragma mapbox: initialize lowp float pixel_ratio 796#pragma mapbox: initialize lowp float blur 797#pragma mapbox: initialize lowp float opacity 798vec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;vec2 pattern_size=vec2(display_size.x/u_tile_units_to_pixels,display_size.y);float aspect=display_size.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=mod(v_linesofar/pattern_size.x*aspect,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));vec4 color=texture2D(u_image,pos); 799#ifdef LIGHTING_3D_MODE 800color=apply_lighting(color); 801#endif 802#ifdef FOG 803color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); 804#endif 805gl_FragColor=color*(alpha*opacity); 806#ifdef OVERDRAW_INSPECTOR 807gl_FragColor=vec4(1.0); 808#endif 809}`,` 810#define scale 0.015873016 811attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; 812#pragma mapbox: define lowp float blur 813#pragma mapbox: define lowp float opacity 814#pragma mapbox: define lowp float offset 815#pragma mapbox: define mediump float gapwidth 816#pragma mapbox: define mediump float width 817#pragma mapbox: define lowp float floorwidth 818#pragma mapbox: define lowp vec4 pattern 819#pragma mapbox: define lowp float pixel_ratio 820void main() { 821#pragma mapbox: initialize lowp float blur 822#pragma mapbox: initialize lowp float opacity 823#pragma mapbox: initialize lowp float offset 824#pragma mapbox: initialize mediump float gapwidth 825#pragma mapbox: initialize mediump float width 826#pragma mapbox: initialize lowp float floorwidth 827#pragma mapbox: initialize mediump vec4 pattern 828#pragma mapbox: initialize lowp float pixel_ratio 829float 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;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude; 830#ifndef RENDER_TO_TEXTURE 831float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; 832#else 833v_gamma_scale=1.0; 834#endif 835v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth; 836#ifdef FOG 837v_fog_pos=fog_position(pos); 838#endif 839}`),raster:W(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3( 840dot(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);vec3 out_color=mix(u_high_vec,u_low_vec,rgb); 841#ifdef LIGHTING_3D_MODE 842out_color=apply_lighting(out_color); 843#endif 844#ifdef FOG 845out_color=fog_dither(fog_apply(out_color,v_fog_pos)); 846#endif 847gl_FragColor=vec4(out_color*color.a,color.a); 848#ifdef OVERDRAW_INSPECTOR 849gl_FragColor=vec4(1.0); 850#endif 851}`,`uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent; 852#ifdef FOG 853v_fog_pos=fog_position(a_pos); 854#endif 855}`),symbolIcon:W(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; 856#pragma mapbox: define lowp float opacity 857void main() { 858#pragma mapbox: initialize lowp float opacity 859lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; 860#ifdef OVERDRAW_INSPECTOR 861gl_FragColor=vec4(1.0); 862#endif 863}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; 864#ifdef PROJECTION_GLOBE_VIEW 865attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; 866#endif 867uniform 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 bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform vec3 u_up_vector; 868#ifdef PROJECTION_GLOBE_VIEW 869uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; 870#endif 871varying vec2 v_tex;varying float v_fade_opacity; 872#pragma mapbox: define lowp float opacity 873void main() { 874#pragma mapbox: initialize lowp float opacity 875vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];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 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; 876#ifdef PROJECTION_GLOBE_VIEW 877mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; 878#else 879world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; 880#endif 881vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? 882camera_to_anchor_distance/u_camera_to_center_distance : 883u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( 8840.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjected_point; 885#ifdef PROJECTION_GLOBE_VIEW 886vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetProjected_point=u_matrix*vec4(a_globe_anchor+displacement,1); 887#else 888offsetProjected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); 889#endif 890vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetProjected_point.xy/offsetProjected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; 891#ifdef PROJECTION_GLOBE_VIEW 892vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); 893#else 894projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); 895#endif 896highp 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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0); 897#ifdef TERRAIN 898#ifdef PITCH_WITH_MAP_TERRAIN 899vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); 900#endif 901#endif 902float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; 903#ifdef PROJECTION_GLOBE_VIEW 904vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); 905#else 906gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); 907#endif 908float projection_transition_fade=1.0; 909#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) 910projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); 911#endif 912v_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;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}`),symbolSDF:W(`#define SDF_PX 8.0 913uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; 914#pragma mapbox: define highp vec4 fill_color 915#pragma mapbox: define highp vec4 halo_color 916#pragma mapbox: define lowp
916 float opacity 917#pragma mapbox: define lowp float halo_width 918#pragma mapbox: define lowp float halo_blur 919void main() { 920#pragma mapbox: initialize highp vec4 fill_color 921#pragma mapbox: initialize highp vec4 halo_color 922#pragma mapbox: initialize lowp float opacity 923#pragma mapbox: initialize lowp float halo_width 924#pragma mapbox: initialize lowp float halo_blur 925float 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 buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); 926#ifdef OVERDRAW_INSPECTOR 927gl_FragColor=vec4(1.0); 928#endif 929}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_projected_pos;attribute float a_fade_opacity; 930#ifdef PROJECTION_GLOBE_VIEW 931attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; 932#endif 933uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform 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 vec3 u_up_vector; 934#ifdef PROJECTION_GLOBE_VIEW 935uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; 936#endif 937varying vec2 v_data0;varying vec3 v_data1; 938#pragma mapbox: define highp vec4 fill_color 939#pragma mapbox: define highp vec4 halo_color 940#pragma mapbox: define lowp float opacity 941#pragma mapbox: define lowp float halo_width 942#pragma mapbox: define lowp float halo_blur 943void main() { 944#pragma mapbox: initialize highp vec4 fill_color 945#pragma mapbox: initialize highp vec4 halo_color 946#pragma mapbox: initialize lowp float opacity 947#pragma mapbox: initialize lowp float halo_width 948#pragma mapbox: initialize lowp float halo_blur 949vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[3];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 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; 950#ifdef PROJECTION_GLOBE_VIEW 951mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; 952#else 953world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; 954#endif 955vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? 956camera_to_anchor_distance/u_camera_to_center_distance : 957u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( 9580.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point; 959#ifdef PROJECTION_GLOBE_VIEW 960vec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1); 961#else 962offsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1); 963#endif 964vec2 a=projected_point.xy/projected_point.w;vec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; 965#ifdef PROJECTION_GLOBE_VIEW 966vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); 967#else 968projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); 969#endif 970highp 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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset); 971#ifdef TERRAIN 972#ifdef PITCH_WITH_MAP_TERRAIN 973vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); 974#endif 975#endif 976float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; 977#ifdef PROJECTION_GLOBE_VIEW 978vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); 979#else 980gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); 981#endif 982float gamma_scale=gl_Position.w;float projection_transition_fade=1.0; 983#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) 984projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); 985#endif 986vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}`),symbolTextAndIcon:W(`#define SDF_PX 8.0 987#define SDF 1.0 988#define ICON 0.0 989uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; 990#pragma mapbox: define highp vec4 fill_color 991#pragma mapbox: define highp vec4 halo_color 992#pragma mapbox: define lowp float opacity 993#pragma mapbox: define lowp float halo_width 994#pragma mapbox: define lowp float halo_blur 995void main() { 996#pragma mapbox: initialize highp vec4 fill_color 997#pragma mapbox: initialize highp vec4 halo_color 998#pragma mapbox: initialize lowp float opacity 999#pragma mapbox: initialize lowp float halo_width 1000#pragma mapbox: initialize lowp float halo_blur 1001float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;
1001gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; 1002#ifdef OVERDRAW_INSPECTOR 1003gl_FragColor=vec4(1.0); 1004#endif 1005return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); 1006#ifdef OVERDRAW_INSPECTOR 1007gl_FragColor=vec4(1.0); 1008#endif 1009}`,`attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_projected_pos;attribute float a_fade_opacity; 1010#ifdef PROJECTION_GLOBE_VIEW 1011attribute vec3 a_globe_anchor;attribute vec3 a_globe_normal; 1012#endif 1013uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform 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 vec3 u_up_vector;uniform vec2 u_texsize_icon; 1014#ifdef PROJECTION_GLOBE_VIEW 1015uniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix; 1016#endif 1017varying vec4 v_data0;varying vec4 v_data1; 1018#pragma mapbox: define highp vec4 fill_color 1019#pragma mapbox: define highp vec4 halo_color 1020#pragma mapbox: define lowp float opacity 1021#pragma mapbox: define lowp float halo_width 1022#pragma mapbox: define lowp float halo_blur 1023void main() { 1024#pragma mapbox: initialize highp vec4 fill_color 1025#pragma mapbox: initialize highp vec4 halo_color 1026#pragma mapbox: initialize lowp float opacity 1027#pragma mapbox: initialize lowp float halo_width 1028#pragma mapbox: initialize lowp float halo_blur 1029vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[3];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 tile_anchor=a_pos;vec3 h=elevationVector(tile_anchor)*elevation(tile_anchor);float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos; 1030#ifdef PROJECTION_GLOBE_VIEW 1031mercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos=mix_globe_mercator(a_globe_anchor+h,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0; 1032#else 1033world_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0; 1034#endif 1035vec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ? 1036camera_to_anchor_distance/u_camera_to_center_distance : 1037u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp( 10380.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offset_projected_point=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projected_point.xy/projected_point.w;vec2 b=offset_projected_point.xy/offset_projected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos; 1039#ifdef PROJECTION_GLOBE_VIEW 1040vec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0); 1041#else 1042projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0); 1043#endif 1044highp 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);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*font_scale); 1045#ifdef TERRAIN 1046#ifdef PITCH_WITH_MAP_TERRAIN 1047vec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy); 1048#endif 1049#endif 1050float occlusion_fade=occlusionFade(projected_point)*globe_occlusion_fade; 1051#ifdef PROJECTION_GLOBE_VIEW 1052vec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); 1053#else 1054gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projected_point.w <=0.0 || occlusion_fade==0.0)); 1055#endif 1056float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float projection_transition_fade=1.0; 1057#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW) 1058projection_transition_fade=1.0-step(EPSILON,u_zoom_transition); 1059#endif 1060v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_s
1060df);}`),terrainRaster:W(`uniform sampler2D u_image0;varying vec2 v_pos0; 1061#ifdef FOG 1062varying float v_fog_opacity; 1063#endif 1064#ifdef RENDER_SHADOWS 1065varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; 1066#endif 1067void main() {vec4 color=texture2D(u_image0,v_pos0); 1068#ifdef RENDER_SHADOWS 1069color.xyz=shadowed_color(color.xyz,v_pos_light_view_0,v_pos_light_view_1,v_depth); 1070#endif 1071#ifdef FOG 1072#ifdef ZERO_EXAGGERATION 1073color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); 1074#else 1075color=fog_dither(fog_apply_from_vert(color,v_fog_opacity)); 1076#endif 1077#endif 1078gl_FragColor=color; 1079#ifdef TERRAIN_WIREFRAME 1080gl_FragColor=vec4(1.0,0.0,0.0,0.8); 1081#endif 1082#ifdef OVERDRAW_INSPECTOR 1083gl_FragColor=vec4(1.0); 1084#endif 1085}`,`uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0; 1086#ifdef FOG 1087varying float v_fog_opacity; 1088#endif 1089#ifdef RENDER_SHADOWS 1090uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;varying vec4 v_pos_light_view_0;varying vec4 v_pos_light_view_1;varying float v_depth; 1091#endif 1092const float skirtOffset=24575.0;const float wireframeOffset=0.00015;void main() {v_pos0=a_texture_pos/8192.0;float skirt=float(a_pos.x >=skirtOffset);float elevation=elevation(a_texture_pos)-skirt*u_skirt_height; 1093#ifdef TERRAIN_WIREFRAME 1094elevation+=u_skirt_height*u_skirt_height*wireframeOffset; 1095#endif 1096vec2 decodedPos=a_pos-vec2(skirt*skirtOffset,0.0);gl_Position=u_matrix*vec4(decodedPos,elevation,1.0); 1097#ifdef FOG 1098#ifdef ZERO_EXAGGERATION 1099v_fog_pos=fog_position(decodedPos); 1100#else 1101v_fog_opacity=fog(fog_position(vec3(decodedPos,elevation))); 1102#endif 1103#endif 1104#ifdef RENDER_SHADOWS 1105vec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);v_depth=gl_Position.w; 1106#endif 1107}`),terrainDepth:W(`#ifdef GL_ES 1108precision highp float; 1109#endif 1110varying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}`,`uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying float v_depth;void main() {float elevation=elevation(a_texture_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}`),skybox:W(` 1111varying lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep( 1112cos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(e
1112nd-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=textureCube(u_cubemap,uv).rgb; 1113#ifdef FOG 1114sky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color); 1115#endif 1116sky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);gl_FragColor=vec4(sky_color*u_opacity,u_opacity); 1117#ifdef OVERDRAW_INSPECTOR 1118gl_FragColor=vec4(1.0); 1119#endif 1120}`,rn),skyboxGradient:W(`varying highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture2D(u_color_ramp,vec2(progress,0.5)); 1121#ifdef FOG 1122color.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a; 1123#endif 1124color*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=color; 1125#ifdef OVERDRAW_INSPECTOR 1126gl_FragColor=vec4(1.0); 1127#endif 1128}`,rn),skyboxCapture:W(` 1129varying highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m; 1130#ifdef GL_ES 1131precision highp float; 1132#endif 1133#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6) 1134#define BETA_M vec3(21e-6,21e-6,21e-6) 1135#define MIE_G 0.76 1136#define DENSITY_HEIGHT_SCALE_R 8000.0 1137#define DENSITY_HEIGHT_SCALE_M 1200.0 1138#define PLANET_RADIUS 6360e3 1139#define ATMOSPHERE_RADIUS 6420e3 1140#define SAMPLE_STEPS 10 1141#define DENSITY_STEPS 4 1142float ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}
1142float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;gl_FragColor=vec4(color,1.0);}`,`attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(e
1142nd-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}`),globeRaster:W(`uniform sampler2D u_image0;varying vec2 v_pos0; 1143#ifndef FOG 1144uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport; 1145#endif 1146void main() {vec4 color; 1147#ifdef CUSTOM_ANTIALIASING 1148vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix( 1149mix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture2D(u_image0,v_pos0);color=vec4(raster.rgb*antialias,raster.a*antialias); 1150#else 1151color=texture2D(u_image0,v_pos0); 1152#endif 1153#ifdef FOG 1154color=fog_dither(fog_apply_premultiplied(color,v_fog_pos)); 1155#endif 1156gl_FragColor=color; 1157#ifdef TERRAIN_WIREFRAME 1158gl_FragColor=vec4(1.0,0.0,0.0,0.8); 1159#endif 1160#ifdef OVERDRAW_INSPECTOR 1161gl_FragColor=vec4(1.0); 1162#endif 1163}`,`uniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix; 1164#ifdef GLOBE_POLES 1165attribute vec3 a_globe_pos;attribute vec2 a_uv; 1166#else 1167attribute vec2 a_pos; 1168#endif 1169varying vec2 v_pos0;const float wireframeOffset=1e3;float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(QUARTER_PI+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}void main() { 1170#ifdef GLOBE_POLES 1171vec3 globe_pos=a_globe_pos;vec2 uv=a_uv; 1172#else 1173float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 latLng=u_grid_matrix*vec3(a_pos,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY); 1174#endif 1175v_pos0=uv;vec2 tile_pos=uv*EXTENT; 1176#ifdef GLOBE_POLES 1177vec3 up_vector=normalize(globe_pos)*u_tile_up_scale; 1178#else 1179vec3 up_vector=elevationVector(tile_pos); 1180#endif 1181float height=elevation(tile_pos); 1182#ifdef TERRAIN_WIREFRAME 1183height+=wireframeOffset; 1184#endif 1185globe_pos+=up_vector*height; 1186#ifdef GLOBE_POLES 1187vec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0); 1188#else 1189vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0); 1190#endif 1191gl_Position=u_proj_matrix*interpolated_pos; 1192#ifdef FOG 1193v_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz); 1194#endif 1195}`),globeAtmosphere:W(`uniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec3 u_start_color;uniform vec4 u_color;uniform vec4 u_space_color;uniform vec4 u_high_color;uniform float u_star_intensity;uniform float u_star_size;uniform float u_star_density;uniform float u_horizon_angle;uniform mat4 u_rotation_matrix;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;highp float random(highp vec3 p) {p=fract(p*vec3(23.2342,97.1231,91.2342));p+=dot(p.zxy,p.yxz+123.1234);return fract(p.x*p.y);}float stars(vec3 p,float scale,vec2 offset) {vec2 uv_scale=(u_viewport/u_star_size)*scale;vec3 position=vec3(p.xy*uv_scale+offset*u_viewport,p.z);vec3 q=fract(position)-0.5;vec3 id=floor(position);float random_visibility=step(random(id),u_star_density);float circle=smoothstep(0.5+u_star_intensity,0.5,length(q));
1195return circle*random_visibility;}void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir; 1196#ifdef PROJECTION_GLOBE_VIEW 1197globe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {discard;return;} 1198#endif 1199highp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ? 12000.0 : max(acos(dot(dir,horizon_dir)),0.0);float horizon_angle; 1201#ifdef PROJECTION_GLOBE_VIEW 1202highp vec3 closest_point=globe_pos_dot_dir*dir;float closest_point_to_center=length(closest_point-u_globe_pos);float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ? 1203PI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t); 1204#else 1205horizon_angle=horizon_angle_mercator; 1206#endif 1207horizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;vec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c =mix(color_stop_2,c2,t);float a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);vec2 uv=gl_FragCoord.xy/u_viewport-0.5;float aspect_ratio=u_viewport.x/u_viewport.y;vec4 uv_dir=vec4(normalize(vec3(uv.x*aspect_ratio,uv.y,1.0)),1.0);uv_dir=u_rotation_matrix*uv_dir;vec3 n=abs(uv_dir.xyz);vec2 uv_remap=(n.x > n.y && n.x > n.z) ? uv_dir.yz/uv_dir.x: 1208(n.y > n.x && n.y > n.z) ? uv_dir.zx/uv_dir.y: 1209uv_dir.xy/uv_dir.z;uv_remap.x/=aspect_ratio;vec3 D=vec3(uv_remap,1.0);highp float star_field=0.0;if (u_star_intensity > 0.0) {star_field+=stars(D,1.2,vec2(0.0,0.0));star_field+=stars(D,1.0,vec2(1.0,0.0));star_field+=stars(D,0.8,vec2(0.0,1.0));star_field+=stars(D,0.6,vec2(1.0,1.0));star_field*=(1.0-pow(t,0.25+(1.0-u_high_color.a)*0.75));c+=star_field*alpha_2;}c=dither(c,gl_FragCoord.xy+u_temporal_offset);gl_FragColor=vec4(c,a);}`,`attribute vec3 a_pos;attribute vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;varying highp vec3 v_ray_dir;varying highp vec3 v_horizon_dir;void main() {v_ray_dir=mix( 1210mix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix( 1211mix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}`)};function hn(e,t){let n=e.replace(/\s*\/\/[^\n]*\n/g,` 1212`).split(` 1213`);for(let e of n)if(e=e.trim(),e[0]===`#`&&e.includes(`if`)&&!e.includes(`endif`)){e=e.replace(`#`,``).replace(/ifdef|ifndef|elif|if/g,``).replace(/!|defined|\(|\)|\|\||&&/g,``).replace(/\s+/g,` `).trim();let n=e.split(` `);for(let e of n)t.includes(e)||t.push(e)}}function W(e,t){let n=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=t.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),i={},a=[...un];return hn(e,a),hn(t,a),{fragmentSource:e=e.replace(n,((e,t,n,r,a)=>(i[a]=!0,t===`define`?`\n#ifndef HAS_UNIFORM_u_${a}\nvarying ${n} ${r} ${a};\n#else\nuniform ${n} ${r} u_${a};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${a}\n ${n} ${r} ${a} = u_${a};\n#endif\n`))),vertexSource:t=t.replace(n,((e,t,n,r,a)=>{let o=r===`float`?`vec2`:`vec4`,s=a.match(/color/)?`color`:o;return i[a]?t===`define`?`\n#ifndef HAS_UNIFORM_u_${a}\nuniform lowp float u_${a}_t;\nattribute ${n} ${o} a_${a};\nvarying ${n} ${r} ${a};\n#else\nuniform ${n} ${r} u_${a};\n#endif\n`:s===`vec4`?`\n#ifndef HAS_UNIFORM_u_${a}\n ${a} = a_${a};\n#else\n ${n} ${r} ${a} = u_${a};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${a}\n ${a} = unpack_mix_${s}(a_${a}, u_${a}_t);\n#else\n ${n} ${r} ${a} = u_${a};\n#endif\n`:t===`define`?`\n#ifndef HAS_UNIFORM_u_${a}\nuniform lowp float u_${a}_t;\nattribute ${n} ${o} a_${a};\n#else\nuniform ${n} ${r} u_${a};\n#endif\n`:s===`vec4`?`\n#ifndef HAS_UNIFORM_u_${a}\n ${n} ${r} ${a} = a_${a};\n#else\n ${n} ${r} ${a} = u_${a};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${a}\n ${n} ${r} ${a} = unpack_mix_${s}(a_${a}, u_${a}_t);\n#else\n ${n} ${r} ${a} = u_${a};\n#endif\n`})),staticAttributes:r,usedDefines:a}}class gn{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null}bind(e,t,n,r,i,a,o){this.context=e;let s=this.boundPaintVertexBuffers.length!==r.length;for(let e=0;!s&&e<r.length;e++)this.boundPaintVertexBuffers[e]!==r[e]&&(s=!0);let c=this.boundDynamicVertexBuffers.length!==o.length;for(let e=0;!c&&e<o.length;e++)this.boundDynamicVertexBuffers[e]!==o[e]&&(c=!0);if(!e.extVertexArrayObject||!this.vao||this.boundProgram!==t||this.boundLayoutVertexBuffer!==n||s||c||this.boundIndexBuffer!==i||this.boundVertexOffset!==a)this.freshBind(t,
1213n,r,i,a,o);else{e.bindVertexArrayOES.set(this.vao);for(let e of o)e&&e.bind();i&&i.dynamicDraw&&i.bind()}}freshBind(e,t,n,r,i,a){let o,s=e.numAttributes,c=this.context,l=c.gl;if(c.extVertexArrayObject)this.vao&&this.destroy(),this.vao=c.extVertexArrayObject.createVertexArrayOES(),c.bindVertexArrayOES.set(this.vao),o=0,this.boundProgram=e,this.boundLayoutVertexBuffer=t,this.boundPaintVertexBuffers=n,this.boundIndexBuffer=r,this.boundVertexOffset=i,this.boundDynamicVertexBuffers=a;else{o=c.currentNumAttributes||0;for(let e=s;e<o;e++)l.disableVertexAttribArray(e)}t.enableAttributes(l,e),t.bind(),t.setVertexAttribPointers(l,e,i);for(let t of n)t.enableAttributes(l,e),t.bind(),t.setVertexAttribPointers(l,e,i);for(let t of a)t&&(t.enableAttributes(l,e),t.bind(),t.setVertexAttribPointers(l,e,i));r&&r.bind(),c.currentNumAttributes=s}destroy(){this.vao&&=(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),null)}}function _n(t,n){let r=2**n.canonical.z,i=n.canonical.y;return[new e.MercatorCoordinate(0,i/r).toLngLat().lat,new e.MercatorCoordinate(0,(i+1)/r).toLngLat().lat]}function vn(t,n,r,i,a,o,s){let c=t.context,l=c.gl,u=r.fbo;if(!u)return;t.prepareDrawTile();let d=t.useProgram(`hillshade`);c.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,u.colorAttachment.get());let f=((e,t,n,r)=>{let i=n.paint.get(`hillshade-shadow-color`),a=n.paint.get(`hillshade-highlight-color`),o=n.paint.get(`hillshade-accent-color`),s=n.paint.get(`hillshade-illumination-direction`)*(Math.PI/180);n.paint.get(`hillshade-illumination-anchor`)===`viewport`&&(s-=e.transform.angle);let c=!e.options.moving;return{u_matrix:r||e.transform.calculateProjMatrix(t.tileID.toUnwrapped(),c),u_image:0,u_latrange:_n(0,t.tileID),u_light:[n.paint.get(`hillshade-exaggeration`),s],u_shadow:i,u_highlight:a,u_accent:o}})(t,r,i,t.terrain?n.projMatrix:null);t.prepareDrawProgram(c,d,n.toUnwrapped());let{tileBoundsBuffer:p,tileBoundsIndexBuffer:m,tileBoundsSegments:h}=t.getTileBoundsBuffers(r);d.draw(c,l.TRIANGLES,a,o,s,e.CullFaceMode.disabled,f,i.id,p,m,h)}function yn(t,n,r){if(!n.needsDEMTextureUpload)return;let i=t.context,a=i.gl;i.pixelStoreUnpackPremultiplyAlpha.set(!1),n.demTexture=n.demTexture||t.getTileTexture(r.stride);let o=r.getPixels();n.demTexture?n.demTexture.update(o,{premultiply:!1}):n.demTexture=new e.Texture(i,o,a.RGBA,{premultiply:!1}),n.needsDEMTextureUpload=!1}function bn(t,n,r,i,a,o){let s=t.context,c=s.gl;if(!n.dem)return;let l=n.dem;if(s.activeTexture.set(c.TEXTURE1),yn(t,n,l),!n.demTexture)return;n.demTexture.bind(c.NEAREST,c.CLAMP_TO_EDGE);let u=l.dim;s.activeTexture.set(c.TEXTURE0);let d=n.fbo;if(!d){let t=new e.Texture(s,{width:u,height:u,data:null},c.RGBA);t.bind(c.LINEAR,c.CLAMP_TO_EDGE),d=n.fbo=s.createFramebuffer(u,u,!0),d.colorAttachment.set(t.texture)}s.bindFramebuffer.set(d.framebuffer),s.viewport.set([0,0,u,u]);let{tileBoundsBuffer:f,tileBoundsIndexBuffer:p,tileBoundsSegments:m}=t.getMercatorTileBoundsBuffers();t.useProgram(`hillshadePrepare`).draw(s,c.TRIANGLES,i,a,o,e.CullFaceMode.disabled,((t,n)=>{let r=n.stride,i=e.create();return e.ortho(i,0,e.EXTENT,-e.EXTENT,0,0,1),e.translate(i,i,[0,-e.EXTENT,0]),{u_matrix:i,u_image:1,u_dimension:[r,r],u_zoom:t.overscaledZ,u_unpack:n.unpackVector}})(n.tileID,l),r.id,f,p,m),n.needsHillshadePrepare=!1}let xn=t=>({u_matrix:new e.UniformMatrix4f(t),u_image0:new e.Uniform1i(t),u_skirt_height:new e.Uniform1f(t)}),Sn=(e,t)=>({u_matrix:e,u_image0:0,u_skirt_height:t}),Cn=(e,t,n,r,i,a,o,s,c,l,u,d,f,p)=>({u_proj_matrix:Float32Array.from(e),u_globe_matrix:t,u_normalize_matrix:Float32Array.from(r),u_merc_matrix:n,u_zoom_transition:i,u_merc_center:a,u_image0:0,u_frustum_tl:o,u_frustum_tr:s,u_frustum_br:c,u_frustum_bl:l,u_globe_pos:u,u_globe_radius:d,u_viewport:f,u_grid_matrix:p?Float32Array.from(p):new Float32Array(9)});function wn(e,t){return e!=null&&t!=null&&!(!e.hasData()||!t.hasData())&&e.demTexture!=null&&t.demTexture!=null&&e.tileID.key!==t.tileID.key}let Tn=new class{constructor(){this.operations={}}newMorphing(e,t,n,r,i){if(e in this.operations){let t=this.operations[e];t.to.tileID.key!==n.tileID.key&&(t.queued=n)}else this.operations[e]={startTime:r,phase:0,duration:i,from:t,to:n,queued:null}}getMorphValuesForProxy(e){if(!(e in this.operations))return null;let t=this.operations[e];return{from:t.from,to:t.to,phase:t.phase}}update(e){for(let t in this.operations){let n=this.operations[t];for(n.phase=(e-n.startTime)/n.duration;n.phase>
1213=1||!this._validOp(n);)if(!this._nextOp(n,e)){delete this.operations[t];break}}}_nextOp(e,t){return!!e.queued&&(e.from=e.to,e.to=e.queued,e.queued=null,e.phase=0,e.startTime=t,!0)}_validOp(e){return e.from.hasData()&&e.to.hasData()}},En={0:null,1:`TERRAIN_VERTEX_MORPHING`,2:`TERRAIN_WIREFRAME`};function Dn(e,t){let n=1<<e.z;return!t&&(e.x===0||e.x===n-1)||e.y===0||e.y===n-1}let On=e=>({u_matrix:e});function kn(t,n,r,i,a){if(a>0){let o=e.exported.now(),s=(o-t.timeAdded)/a,c=n?(o-n.timeAdded)/a:-1,l=r.getSource(),u=i.coveringZoomLevel({tileSize:l.tileSize,roundZoom:l.roundZoom}),d=!n||Math.abs(n.tileID.overscaledZ-u)>Math.abs(t.tileID.overscaledZ-u),f=d&&t.refreshedUponExpiration?1:e.clamp(d?s:1-c,0,1);return t.refreshedUponExpiration&&s>=1&&(t.refreshedUponExpiration=!1),n?{opacity:1,mix:1-f}:{opacity:f,mix:0}}return{opacity:1,mix:0}}class An extends e.SourceCache{constructor(e){let t=Ge(`mock-dem`,{type:`raster-dem`,maxzoom:e.transform.maxZoom},new k(et(),null),e.style);super(`mock-dem`,t,!1),t.setEventedParent(this),this._sourceLoaded=!0}_loadTile(e,t){e.state=`loaded`,t(null)}}class jn extends e.SourceCache{constructor(e){let t=Ge(`proxy`,{type:`geojson`,maxzoom:e.transform.maxZoom},new k(et(),null),e.style);super(`proxy`,t,!1),t.setEventedParent(this),this.map=this.getSource().map=e,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(t,n,r){if(t.freezeTileCoverage)return;this.transform=t;let i=t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce(((n,r)=>{if(n[r.key]=``,!this._tiles[r.key]){let n=new e.Tile(r,this._source.tileSize*r.overscaleFactor(),t.tileZoom);n.state=`loaded`,this._tiles[r.key]=n}return n}),{});for(let e in this._tiles)e in i||(this.freeFBO(e),this._tiles[e].unloadVectorData(),delete this._tiles[e])}freeFBO(e){let t=this.proxyCachedFBO[e];if(t!==void 0){let n=Object.values(t);this.renderCachePool.push(...n),delete this.proxyCachedFBO[e]}}deallocRenderCache(){this.renderCache.forEach((e=>e.fb.destroy())),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class Mn extends e.OverscaledTileID{constructor(e,t,n){super(e.overscaledZ,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y),this.proxyTileKey=t,this.projMatrix=n}}class Nn extends e.Elevation{constructor(t,n){super(),this.painter=t,this.terrainTileForTile={},this.prevTerrainTileForTile={};let[r,i,a]=function(t){let n=new e.StructArrayLayout4i8,r=new e.StructArrayLayout3ui6;n.reserve(17161),r.reserve(33800);let i=e.EXTENT/128,a=e.EXTENT+i/2,o=a+i;for(let t=-i;t<o;t+=i)for(let r=-i;r<o;r+=i){let i=r<0||r>a||t<0||t>a?24575:0,o=e.clamp(Math.round(r),0,e.EXTENT),s=e.clamp(Math.round(t),0,e.EXTENT);n.emplaceBack(o+i,s,o,s)}let s=(e,t)=>{let n=t*131+e;r.emplaceBack(n+1,n,n+131),r.emplaceBack(n+131,n+131+1,n+1)};for(let e=1;e<129;e++)for(let t=1;t<129;t++)s(t,e);return[0,129].forEach((e=>{for(let t=0;t<130;t++)s(t,e),s(e,t)})),[n,r,32768]}(),o=t.context;this.gridBuffer=o.createVertexBuffer(r,e.boundsAttributes.members),this.gridIndexBuffer=o.createIndexBuffer(i),this.gridSegments=e.SegmentVector.simpleSegment(0,0,r.length,i.length),this.gridNoSkirtSegments=e.SegmentVector.simpleSegment(0,0,r.length,a),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new jn(n.map),this.orthoMatrix=e.create(),e.ortho(this.orthoMatrix,this.painter.transform.projection.name===`globe`?.015:0,e.EXTENT,0,e.EXTENT,0,1);let s=o.gl;this._overlapStencilMode=new e.StencilMode({func:s.GEQUAL,mask:255},0,255,s.KEEP,s.KEEP,s.REPLACE),this._previousZoom=t.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=n,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new An(n.map)}set style(e){e.on(`data`,this._onStyleDataEvent.bind(this)),e.on(`neworder`,this._checkRenderCacheEfficiency.bind(this)),this._style=e,this._checkRenderCacheEfficiency()}update(t,n,r){if(t&&t.terrain){this._style!==t&&(this.style=t),this.enabled=!0;let i=t.terrain.properties;this.sourceCache=t.terrain.drapeRenderMode===0?this._mockSourceCache:t._getSourceCache(i.get(`source`)),this._exaggeration=i.get(`exaggeration`);let a=()=>{this.sourceCache.used&&e.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source.\nThis leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);let t=this.getScaledDemTileSize();this.sourceCache.update(n,t,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,a(),this._initializing=!0),a(),n.updateElevation(!0,r),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(n),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(e){this._findCoveringTileCache[e]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){let t=this.renderCacheEfficiency(this._style);
1213this._style.map._optimizeForTerrain||t.efficiency!==100&&e.warnOnce(`Terrain render cache efficiency is not optimal (${t.efficiency}%) and performance\n may be affected negatively, consider placing all background, fill and line layers before layer\n with id '${t.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(e){e.coord&&e.dataType===`source`?this._clearRenderCacheForTile(e.sourceCacheId,e.coord):e.dataType===`style`&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(let e in this._style._sourceCaches)this._style._sourceCaches[e].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach((e=>e.fb.destroy())),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0)}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){let e=2*this.proxySourceCache.getSource().tileSize;return[e,e]}set useVertexMorphing(e){this._useVertexMorphing=e}updateTileBinding(t){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;let n=this.proxySourceCache,r=this.painter.transform;this._initializing&&(this._initializing=r._centerAltitude===0&&this.getAtPointOrZero(e.MercatorCoordinate.fromLngLat(r.center),-1)===-1,this._emptyDEMTextureDirty=!this._initializing);let i=this.proxyCoords=n.getIds().map((e=>{let t=n.getTileByID(e).tileID;return t.projMatrix=r.calculateProjMatrix(t.toUnwrapped()),t}));(function(t,n){let r=n.transform.pointCoordinate(n.transform.getCameraPoint()),i=new e.pointGeometry(r.x,r.y);t.sort(((t,n)=>{if(n.overscaledZ-t.overscaledZ)return n.overscaledZ-t.overscaledZ;let r=new e.pointGeometry(t.canonical.x+(1<<t.canonical.z)*t.wrap,t.canonical.y),a=new e.pointGeometry(n.canonical.x+(1<<n.canonical.z)*n.wrap,n.canonical.y),o=i.mult(1<<t.canonical.z);return o.x-=.5,o.y-=.5,o.distSqr(r)-o.distSqr(a)}))})(i,this.painter),this._previousZoom=r.zoom;let a=this.proxyToSource||{};this.proxyToSource={},i.forEach((e=>{this.proxyToSource[e.key]={}})),this.terrainTileForTile={};let o=this._style._sourceCaches;for(let e in o){let n=o[e];if(!n.used||(n!==this.sourceCache&&this.resetTileLookupCache(n.id),this._setupProxiedCoordsForOrtho(n,t[e],a),n.usedForTerrain))continue;let r=t[e];n.getSource().reparseOverscaled&&this._assignTerrainTiles(r)}this.proxiedCoords[n.id]=i.map((e=>new Mn(e,e.key,this.orthoMatrix))),this._assignTerrainTiles(i),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(a),this.renderingToTexture=!1,this._updateTimestamp=e.exported.now();let s={};this._visibleDemTiles=[];for(let e of this.proxyCoords){let t=this.terrainTileForTile[e.key];if(!t)continue;let n=t.tileID.key;n in s||(this._visibleDemTiles.push(t),s[n]=n)}}_assignTerrainTiles(e){this._initializing||e.forEach((e=>{if(this.terrainTileForTile[e.key])return;let t=this._findTileCoveringTileID(e,this.sourceCache);t&&(this.terrainTileForTile[e.key]=t)}))}_prepareDEMTextures(){let e=this.painter.context,t=e.gl;for(let n in this.terrainTileForTile){let r=this.terrainTileForTile[n],i=r.dem;!i||r.demTexture&&!r.needsDEMTextureUpload||(e.activeTexture.set(t.TEXTURE1),yn(this.painter,r,i))}}_prepareDemTileUniforms(e,t,n,r){if(!t||t.demTexture==null)return!1;let i=e.tileID.canonical,a=2**(t.tileID.canonical.z-i.z),o=r||``;return n[`u_dem_tl${o}`]=[i.x*a%1,i.y*a%1],n[`u_dem_scale${o}`]=a,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){let t=this.painter.context,n=t.gl;if(!this._emptyDepthBufferTexture){let r=new e.RGBAImage({width:1,height:1},Uint8Array.of(255,255,255,255));this._emptyDepthBufferTexture=new e.Texture(t,r,n.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let e=0,t=this._visibleDemTiles.reduce(((t,n)=>{if(!n.dem)return t;let r=n.dem.tree.minimums[0];return r>0&&e++,t+r}),0);return e?t/e:0}_updateEmptyDEMTexture(){let t=this.painter.context,n=t.gl;t.activeTexture.set(n.TEXTURE2);let r=this._getLoadedAreaMinimum(),i=new e.RGBAImage({width:1,height:1},new Uint8Array(e.DEMData.pack(r,this.sourceCache.getSource().encoding)));this._emptyDEMTextureDirty=!1;let a=this._emptyDEMTexture;return a?a.update(i,{premultiply:!1}):a=this._emptyDEMTexture=new e.Texture(t,i,n.RGBA,{premultiply:!1}),a}setupElevationDraw(t,n,r){let i=this.painter.context,a=i.gl,o=(s=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:e.DEMData.getUnpackVector(s),u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_exaggeration:0});var s;o.u_dem_size=this.sourceCache.getSource().tileSize,o.u_exaggeration=this.exaggeration();let c=null,l=null,u=1;if(r&&r.morphing&&this._useVertexMorphing){let e=r.morphing.srcDemTile,n=r.morphing.dstDemTile;
1213u=r.morphing.phase,e&&n&&(this._prepareDemTileUniforms(t,e,o,`_prev`)&&(l=e),this._prepareDemTileUniforms(t,n,o)&&(c=n))}if(l&&c?(i.activeTexture.set(a.TEXTURE2),c.demTexture.bind(a.NEAREST,a.CLAMP_TO_EDGE,a.NEAREST),i.activeTexture.set(a.TEXTURE4),l.demTexture.bind(a.NEAREST,a.CLAMP_TO_EDGE,a.NEAREST),o.u_dem_lerp=u):(c=this.terrainTileForTile[t.tileID.key],i.activeTexture.set(a.TEXTURE2),(this._prepareDemTileUniforms(t,c,o)?c.demTexture:this.emptyDEMTexture).bind(a.NEAREST,a.CLAMP_TO_EDGE)),i.activeTexture.set(a.TEXTURE3),r&&r.useDepthForOcclusion?(this._depthTexture&&this._depthTexture.bind(a.NEAREST,a.CLAMP_TO_EDGE),this._depthFBO&&(o.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height])):(this.emptyDepthBufferTexture.bind(a.NEAREST,a.CLAMP_TO_EDGE),o.u_depth_size_inv=[1,1]),r&&r.useMeterToDem&&c&&(o.u_meter_to_dem=(1<<c.tileID.canonical.z)*e.mercatorZfromAltitude(1,this.painter.transform.center.lat)*this.sourceCache.getSource().tileSize),r&&r.labelPlaneMatrixInv&&(o.u_label_plane_matrix_inv=r.labelPlaneMatrixInv),n.setTerrainUniformValues(i,o),this.painter.transform.projection.name===`globe`){let e=this.globeUniformValues(this.painter.transform,t.tileID.canonical,r&&r.useDenormalizedUpVectorScale);n.setGlobeUniformValues(i,e)}}globeUniformValues(t,n,r){let i=t.projection;return{u_tile_tl_up:i.upVector(n,0,0),u_tile_tr_up:i.upVector(n,e.EXTENT,0),u_tile_br_up:i.upVector(n,e.EXTENT,e.EXTENT),u_tile_bl_up:i.upVector(n,0,e.EXTENT),u_tile_up_scale:r?e.GLOBE_METERS_TO_ECEF:i.upVectorScale(n,t.center.lat,t.worldSize).metersToTile}}renderToBackBuffer(t){let n=this.painter,r=this.painter.context;t.length!==0&&(r.bindFramebuffer.set(null),r.viewport.set([0,0,n.width,n.height]),n.gpuTimingDeferredRenderStart(),this.renderingToTexture=!1,function(t,n,r,i,a){if(t.transform.projection.name===`globe`)(function(t,n,r,i,a){let o=t.context,s=o.gl,c,l,u=t.options.showTerrainWireframe?2:0,d=t.transform,f=e.globeUseCustomAntiAliasing(t,o,d),p=(e,n)=>{if(l===e)return;let r=[En[e],`PROJECTION_GLOBE_VIEW`];f&&r.push(`CUSTOM_ANTIALIASING`),n&&r.push(En[u]),c=t.useProgram(`globeRaster`,null,r),l=e},m=t.colorModeForRenderPass(),h=new e.DepthMode(s.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);Tn.update(a);let g=e.calculateGlobeMercatorMatrix(d),_=[e.mercatorXfromLng(d.center.lng),e.mercatorYfromLat(d.center.lat)],v=u?[!1,!0]:[!1],y=t.globeSharedBuffers,b=[d.width*e.exported.devicePixelRatio,d.height*e.exported.devicePixelRatio],x=Float32Array.from(d.globeMatrix),S={useDenormalizedUpVectorScale:!0};if(v.forEach((u=>{l=-1;let f=u?s.LINES:s.TRIANGLES;for(let l of i){let i=r.getTile(l),v=e.StencilMode.disabled,C=n.prevTerrainTileForTile[l.key],w=n.terrainTileForTile[l.key];wn(C,w)&&Tn.newMorphing(l.key,C,w,a,250),o.activeTexture.set(s.TEXTURE0),i.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE);let T=Tn.getMorphValuesForProxy(l.key),E=+!!T;T&&e.extend$1(S,{morphing:{srcDemTile:T.from,dstDemTile:T.to,phase:e.easeCubicInOut(T.phase)}});let D=e.tileCornersToBounds(l.canonical),O=e.getLatitudinalLod(D.getCenter().lat),k=e.getGridMatrix(l.canonical,D,O,d.worldSize/d._pixelsPerMercatorPixel),A=e.globeNormalizeECEF(e.globeTileBounds(l.canonical)),j=Cn(d.projMatrix,x,g,A,e.globeToMercatorTransition(d.zoom),_,d.frustumCorners.TL,d.frustumCorners.TR,d.frustumCorners.BR,d.frustumCorners.BL,d.globeCenterInViewSpace,d.globeRadius,b,k);if(p(E,u),n.setupElevationDraw(i,c,S),t.prepareDrawProgram(o,c,l.toUnwrapped()),y){let[n,r,i]=u?y.getWirefameBuffers(t.context,O):y.getGridBuffers(O);c.draw(o,f,h,v,m,e.CullFaceMode.backCCW,j,`globe_raster`,n,r,i)}}})),y){let a=[`GLOBE_POLES`,`PROJECTION_GLOBE_VIEW`];f&&a.push(`CUSTOM_ANTIALIASING`),c=t.useProgram(`globeRaster`,null,a);for(let a of i){let{x:i,y:l,z:u}=a.canonical,f=l===0,p=l===(1<<u)-1,[g,v,x,C]=y.getPoleBuffers(u);if(C&&(f||p)){let l=r.getTile(a);o.activeTexture.set(s.TEXTURE0),l.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE);let y=e.globePoleMatrixForTile(u,i,d),w=e.globeNormalizeECEF(e.globeTileBounds(a.canonical)),T=(t,n)=>t.draw(o,s.TRIANGLES,h,e.StencilMode.disabled,m,e.CullFaceMode.disabled,Cn(d.projMatrix,y,y,w,0,_,d.frustumCorners.TL,d.frustumCorners.TR,d.frustumCorners.BR,d.frustumCorners.BL,d.globeCenterInViewSpace,d.globeRadius,b),`globe_pole_raster`,n,x,C);n.setupElevationDraw(l,c,S),t.prepareDrawProgram(o,c,a.toUnwrapped()),f&&T(c,g),p&&(y=e.scale(e.create(),y,[1,-1,1]),T(c,v))}}}})(t,n,r,i,a);else{let o=t.context,s=o.gl,c,l,u=t.options.showTerrainWireframe?2:0,d=(e,n)=>{if(l===e)return;let r=[En[e]];n&&r.push(En[u]),c=t.useProgram(`terrainRaster`,null,r),l=e},f=t.colorModeForRenderPass(),p=new e.DepthMode(s.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);Tn.update(a);let m=t.transform,h=6*1.5**(22-m.zoom)*n.exaggeration();
1213(u?[!1,!0]:[!1]).forEach((u=>{l=-1;let g=u?s.LINES:s.TRIANGLES,[_,v]=u?n.getWirefameBuffer():[n.gridIndexBuffer,n.gridSegments];for(let l of i){let i=r.getTile(l),y=e.StencilMode.disabled,b=n.prevTerrainTileForTile[l.key],x=n.terrainTileForTile[l.key];wn(b,x)&&Tn.newMorphing(l.key,b,x,a,250),o.activeTexture.set(s.TEXTURE0),i.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST);let S=Tn.getMorphValuesForProxy(l.key),C=+!!S,w;S&&(w={morphing:{srcDemTile:S.from,dstDemTile:S.to,phase:e.easeCubicInOut(S.phase)}});let T=Sn(l.projMatrix,Dn(l.canonical,m.renderWorldCopies)?h/10:h);d(C,u),n.setupElevationDraw(i,c,w),t.prepareDrawProgram(o,c,l.toUnwrapped()),c.draw(o,g,p,y,f,e.CullFaceMode.backCCW,T,`terrain_raster`,n.gridBuffer,_,v)}}))}}(n,this,this.proxySourceCache,t,this._updateTimestamp),this.renderingToTexture=!0,n.gpuTimingDeferredRenderEnd(),t.splice(0,t.length))}renderBatch(t){if(this._drapedRenderBatches.length===0)return t+1;this.renderingToTexture=!0;let n=this.painter,r=this.painter.context,i=this.proxySourceCache,a=this.proxiedCoords[i.id],o=this._drapedRenderBatches.shift(),s=[],c=n.style.order,l=0;for(let u of a){let a=i.getTileByID(u.proxyTileKey),d=i.proxyCachedFBO[u.key]?i.proxyCachedFBO[u.key][t]:void 0,f=d===void 0?this.pool[l++]:i.renderCache[d],p=d!==void 0;if(a.texture=f.tex,p&&!f.dirty){s.push(a.tileID);continue}let m;r.bindFramebuffer.set(f.fb.framebuffer),this.renderedToTile=!1,f.dirty&&=(r.clear({color:e.Color.transparent,stencil:0}),!1);for(let e=o.start;e<=o.end;++e){let t=n.style._layers[c[e]];if(t.isHidden(n.transform.zoom))continue;let i=n.style._getLayerSourceCache(t),a=i?this.proxyToSource[u.key][i.id]:[u];if(!a)continue;let o=a;r.viewport.set([0,0,f.fb.width,f.fb.height]),m!==(i?i.id:null)&&(this._setupStencil(f,a,t,i),m=i?i.id:null),n.renderLayer(n,i,t,o)}this.renderedToTile?(f.dirty=!0,s.push(a.tileID)):p||--l,l===5&&(l=0,this.renderToBackBuffer(s))}return this.renderToBackBuffer(s),this.renderingToTexture=!1,r.bindFramebuffer.set(null),r.viewport.set([0,0,n.width,n.height]),o.end+1}postRender(){}renderCacheEfficiency(e){let t=e.order.length;if(t===0)return{efficiency:100};let n,r=0,i=0,a=!1;for(let o=0;o<t;++o){let t=e._layers[e.order[o]];this._style.isLayerDraped(t)?(a&&++r,++i):a||(a=!0,n=t.id)}return i===0?{efficiency:100}:{efficiency:100*(1-r/i),firstUndrapedLayer:n}}getMinElevationBelowMSL(){let e=0;return this._visibleDemTiles.filter((e=>e.dem)).forEach((t=>{e=Math.min(e,t.dem.tree.minimums[0])})),e===0?e:(e-30)*this._exaggeration}raycast(e,t,n){if(!this._visibleDemTiles)return null;let r=this._visibleDemTiles.filter((e=>e.dem)).map((r=>{let i=r.tileID,a=1<<i.overscaledZ,{x:o,y:s}=i.canonical,c=o/a,l=(o+1)/a,u=s/a,d=(s+1)/a;return{minx:c,miny:u,maxx:l,maxy:d,t:r.dem.tree.raycastRoot(c,u,l,d,e,t,n),tile:r}}));r.sort(((e,t)=>(e.t===null?Number.MAX_VALUE:e.t)-(t.t===null?Number.MAX_VALUE:t.t)));for(let i of r){if(i.t==null)return null;let r=i.tile.dem.tree.raycast(i.minx,i.miny,i.maxx,i.maxy,e,t,n);if(r!=null)return r}return null}_createFBO(){let t=this.painter.context,n=t.gl,r=this.drapeBufferSize;t.activeTexture.set(n.TEXTURE0);let i=new e.Texture(t,{width:r[0],height:r[1],data:null},n.RGBA);i.bind(n.LINEAR,n.CLAMP_TO_EDGE);let a=t.createFramebuffer(r[0],r[1],!1);return a.colorAttachment.set(i.texture),a.depthAttachment=new Le(t,a.framebuffer),this._sharedDepthStencil===void 0?(this._sharedDepthStencil=t.createRenderbuffer(t.gl.DEPTH_STENCIL,r[0],r[1]),this._stencilRef=0,a.depthAttachment.set(this._sharedDepthStencil),t.clear({stencil:0})):a.depthAttachment.set(this._sharedDepthStencil),t.extTextureFilterAnisotropic&&!t.extTextureFilterAnisotropicForceOff&&n.texParameterf(n.TEXTURE_2D,t.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.extTextureFilterAnisotropicMax),{fb:a,tex:i,dirty:!1}}_initFBOPool(){for(;this.pool.length<Math.min(5,this.proxyCoords.length);)this.pool.push(this._createFBO())}_shouldDisableRenderCache(){if(this._style.light&&this._style.light.hasTransition())return!0;for(let e in this._style._sourceCaches)if(this._style._sourceCaches[e].hasTransition())return!0;return this._style.order.some((e=>{let t=this._style._layers[e],n=t.isHidden(this.painter.transform.zoom);return t.type!==`custom`&&!n&&t.hasTransition()}))}_clearRasterFadeFromRenderCache(){let e=!1;for(let t in this._style._sourceCaches)if(this._style._sourceCaches[t]._source instanceof Be){e=!0;break}if(e)for(let e=0;e<this._style.order.length;++e){let t=this._style._layers[this._style.order[e]],n=t.isHidden(this.painter.transform.zoom),r=this._style._getLayerSourceCache(t);if(t.type!==`raster`||n||!r)continue;let i=t.paint.get(`raster-fade-duration`);for(let e of this.proxyCoords){let t=this.proxyToSource[e.key][r.id];if(t)for(let e of t){let t=kn(r.getTile(e),r.findLoadedParent(e,0),r,this.painter.transform,i);(t.opacity!==1||t.mix!==0)&&this._clearRenderCacheForTile(r.id,e)}}}}_setupDrapedRenderBatches(){let e=this._style.order,t=e.length;if(t===0)return;let n=[],r,i=0,a=this._style._layers[e[i]];for(;!this._style.isLayerDraped(a)&&a.isHidden(this.painter.transform.zoom)&&++i<t;)a=this._style._layers[e[i]];for(;i<t;++i){let t=this._style._layers[e[i]];t.isHidden(this.painter.transform.zoom)||(this._style.isLayerDraped(t)?r===void 0&&(r=i):r!==void 0&&(n.push({start:r,end:i-1}),r=void 0))}r!==void 0&&n.push({start:r,end:i-1}),this._drapedRenderBatches=n}_setupRenderCache(e){let t=this.proxySourceCache;if(this._shouldDisableRenderCache()||this._invalidateRenderCache){if(this._invalidateRenderCache=!1,t.renderCache.length>t.renderCachePool.length){let e=Object.values(t.proxyCachedFBO);t.proxyCachedFBO={};for(let n=0;n<e.length;++n){let r=Object.values(e[n]);t.renderCachePool.push(...r)}}return}this._clearRasterFadeFromRenderCache();let n=this.proxyCoords,r=this._tilesDirty;for(let i=n.length-1;i>=0;i--){let a=n[i];if(t.getTileByID(a.key),t.proxyCachedFBO[a.key]!==void 0){let n=e[a.key],i=this.proxyToSource[a.key],o=0;for(let e in i){let t=i[e],a=n[e];if(!a||a.length!==t.length||t.some(((t,n)=>t!==a[n]||r[e]&&r[e].hasOwnProperty(t.key)))){o=-1;break}++o}for(let e in t.proxyCachedFBO[a.key])t.renderCache[t.proxyCachedFBO[a.key][e]].dirty=o<0||o!==Object.values(n).length}}let i=[...this._drapedRenderBatches];i.sort(((e,t)=>t.end-t.start-(e.end-e.start)));for(let e of i)for(let r of n){if(t.proxyCachedFBO[r.key])continue;let n=t.renderCachePool.pop();n===void 0&&t.renderCache.length<50&&(n=t.renderCache.length,t.renderCache.push(this._createFBO())),n!==void 0&&(t.proxyCachedFBO[r.key]={},t.proxyCachedFBO[r.key][e.start]=n,t.renderCache[n].dirty=!0)}this._tilesDirty={}}_setupStencil(e,t,n,r){if(!r||!this._sourceTilesOverlap[r.id])return void(this._overlapStencilType&&=!1);let i=this.painter.context,a=i.gl;if(t.length<=1)return void(this._overlapStencilType=!1);let o;
1213if(n.isTileClipped())o=t.length,this._overlapStencilMode.test={func:a.EQUAL,mask:255},this._overlapStencilType=`Clip`;else{if(!(t[0].overscaledZ>t[t.length-1].overscaledZ))return void(this._overlapStencilType=!1);o=1,this._overlapStencilMode.test={func:a.GREATER,mask:255},this._overlapStencilType=`Mask`}this._stencilRef+o>255&&(i.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=o,this._overlapStencilMode.ref=this._stencilRef,n.isTileClipped()&&this._renderTileClippingMasks(t,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return this._overlapStencilType===`Clip`||this._overlapStencilType===`Mask`}stencilModeForRTTOverlap(t){return this.renderingToTexture&&this._overlapStencilType?(this._overlapStencilType===`Clip`&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[t.key]),this._overlapStencilMode):e.StencilMode.disabled}_renderTileClippingMasks(t,n){let r=this.painter,i=this.painter.context,a=i.gl;r._tileClippingMaskIDs={},i.setColorMode(e.ColorMode.disabled),i.setDepthMode(e.DepthMode.disabled);let o=r.useProgram(`clippingMask`);for(let s of t){let t=r._tileClippingMaskIDs[s.key]=--n;o.draw(i,a.TRIANGLES,e.DepthMode.disabled,new e.StencilMode({func:a.ALWAYS,mask:0},t,255,a.KEEP,a.KEEP,a.REPLACE),e.ColorMode.disabled,e.CullFaceMode.disabled,On(s.projMatrix),`$clipping`,r.tileExtentBuffer,r.quadTriangleIndexBuffer,r.tileExtentSegments)}}pointCoordinate(t){let n=this.painter.transform;if(t.x<0||t.x>n.width||t.y<0||t.y>n.height)return null;let r=[t.x,t.y,1,1];e.transformMat4$1(r,r,n.pixelMatrixInverse),e.scale$1(r,r,1/r[3]),r[0]/=n.worldSize,r[1]/=n.worldSize;let i=n._camera.position,a=e.mercatorZfromAltitude(1,n.center.lat),o=[i[0],i[1],i[2]/a,0],s=e.subtract([],r.slice(0,3),o);e.normalize(s,s);let c=this.raycast(o,s,this._exaggeration);return c!==null&&c?(e.scaleAndAdd(o,o,s,c),o[3]=o[2],o[2]*=a,o):null}drawDepth(){let t=this.painter,n=t.context,r=this.proxySourceCache,i=Math.ceil(t.width),a=Math.ceil(t.height);if(!this._depthFBO||this._depthFBO.width===i&&this._depthFBO.height===a||(this._depthFBO.destroy(),this._depthFBO=void 0,this._depthTexture=void 0),!this._depthFBO){let t=n.gl,r=n.createFramebuffer(i,a,!0);n.activeTexture.set(t.TEXTURE0);let o=new e.Texture(n,{width:i,height:a,data:null},t.RGBA);o.bind(t.NEAREST,t.CLAMP_TO_EDGE),r.colorAttachment.set(o.texture);let s=n.createRenderbuffer(n.gl.DEPTH_COMPONENT16,i,a);r.depthAttachment.set(s),this._depthFBO=r,this._depthTexture=o}n.bindFramebuffer.set(this._depthFBO.framebuffer),n.viewport.set([0,0,i,a]),function(t,n,r,i){if(t.transform.projection.name===`globe`)return;let a=t.context,o=a.gl;a.clear({depth:1});let s=t.useProgram(`terrainDepth`),c=new e.DepthMode(o.LESS,e.DepthMode.ReadWrite,t.depthRangeFor3D);for(let t of i){let i=r.getTile(t),l=Sn(t.projMatrix,0);n.setupElevationDraw(i,s),s.draw(a,o.TRIANGLES,c,e.StencilMode.disabled,e.ColorMode.unblended,e.CullFaceMode.backCCW,l,`terrain_depth`,n.gridBuffer,n.gridIndexBuffer,n.gridNoSkirtSegments)}}(t,this,r,this.proxyCoords)}_setupProxiedCoordsForOrtho(e,t,n){if(e.getSource()instanceof Ue)return this._setupProxiedCoordsForImageSource(e,t,n);this._findCoveringTileCache[e.id]=this._findCoveringTileCache[e.id]||{};let r=this.proxiedCoords[e.id]=[],i=this.proxyCoords;for(let t=0;t<i.length;t++){let a=i[t],o=this._findTileCoveringTileID(a,e);if(o){let t=this._createProxiedId(a,o,n[a.key]&&n[a.key][e.id]);r.push(t),this.proxyToSource[a.key][e.id]=[t]}}let a=!1;for(let i=0;i<t.length;i++){let o=e.getTile(t[i]);if(!o||!o.hasData())continue;let s=this._findTileCoveringTileID(o.tileID,this.proxySourceCache);if(s&&s.tileID.canonical.z!==o.tileID.canonical.z){let t=this.proxyToSource[s.tileID.key][e.id],i=this._createProxiedId(s.tileID,o,n[s.tileID.key]&&n[s.tileID.key][e.id]);t?t.splice(t.length-1,0,i):this.proxyToSource[s.tileID.key][e.id]=[i],r.push(i),a=!0}}this._sourceTilesOverlap[e.id]=a}_setupProxiedCoordsForImageSource(t,n,r){if(!t.getSource().loaded())return;let i=this.proxiedCoords[t.id]=[],a=this.proxyCoords,o=t.getSource(),s=new e.pointGeometry(o.tileID.x,o.tileID.y)._div(1<<o.tileID.z),c=o.c
1213oordinates.map(e.MercatorCoordinate.fromLngLat).reduce(((e,t)=>(e.min.x=Math.min(e.min.x,t.x-s.x),e.min.y=Math.min(e.min.y,t.y-s.y),e.max.x=Math.max(e.max.x,t.x-s.x),e.max.y=Math.max(e.max.y,t.y-s.y),e)),{min:new e.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE),max:new e.pointGeometry(-Number.MAX_VALUE,-Number.MAX_VALUE)}),l=(t,n)=>{let r=t.wrap+t.canonical.x/(1<<t.canonical.z),i=t.canonical.y/(1<<t.canonical.z),a=e.EXTENT/(1<<t.canonical.z),o=n.wrap+n.canonical.x/(1<<n.canonical.z),s=n.canonical.y/(1<<n.canonical.z);return r+a<o+c.min.x||r>o+c.max.x||i+a<s+c.min.y||i>s+c.max.y};for(let e=0;e<a.length;e++){let o=a[e];for(let e=0;e<n.length;e++){let a=t.getTile(n[e]);if(!a||!a.hasData()||l(o,a.tileID))continue;let s=this._createProxiedId(o,a,r[o.key]&&r[o.key][t.id]),c=this.proxyToSource[o.key][t.id];c?c.push(s):this.proxyToSource[o.key][t.id]=[s],i.push(s)}}}_createProxiedId(t,n,r){let i=this.orthoMatrix;if(r){let e=r.find((e=>e.key===n.tileID.key));if(e)return e}if(n.tileID.key!==t.key){let r=t.canonical.z-n.tileID.canonical.z,a,o,s;i=e.create();let c=n.tileID.wrap-t.wrap<<t.overscaledZ;r>0?(a=e.EXTENT>>r,o=a*((n.tileID.canonical.x<<r)-t.canonical.x+c),s=a*((n.tileID.canonical.y<<r)-t.canonical.y)):(a=e.EXTENT<<-r,o=e.EXTENT*(n.tileID.canonical.x-(t.canonical.x+c<<-r)),s=e.EXTENT*(n.tileID.canonical.y-(t.canonical.y<<-r))),e.ortho(i,0,a,0,a,0,1),e.translate(i,i,[o,s,0])}return new Mn(n.tileID,t.key,i)}_findTileCoveringTileID(t,n){let r=n.getTile(t);if(r&&r.hasData())return r;let i=this._findCoveringTileCache[n.id],a=i[t.key];if(r=a?n.getTileByID(a):null,r&&r.hasData()||a===null)return r;let o=r?r.tileID:t,s=o.overscaledZ,c=n.getSource().minzoom,l=[];if(!a){let i=n.getSource().maxzoom;if(t.canonical.z>=i){let r=t.canonical.z-i;n.getSource().reparseOverscaled?(s=Math.max(t.canonical.z+2,n.transform.tileZoom),o=new e.OverscaledTileID(s,t.wrap,i,t.canonical.x>>r,t.canonical.y>>r)):r!==0&&(s=i,o=new e.OverscaledTileID(s,t.wrap,i,t.canonical.x>>r,t.canonical.y>>r))}o.key!==t.key&&(l.push(o.key),r=n.getTile(o))}let u=e=>{l.forEach((t=>{i[t]=e})),l.length=0};for(--s;s>=c&&(!r||!r.hasData());s--){r&&u(r.tileID.key);let e=o.calculateScaledKey(s);if(r=n.getTileByID(e),r&&r.hasData())break;let t=i[e];if(t===null)break;t===void 0?l.push(e):r=n.getTileByID(t)}return u(r?r.tileID.key:null),r&&r.hasData()?r:null}findDEMTileFor(e){return this.enabled?this._findTileCoveringTileID(e,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0}_clearRenderCacheForTile(e,t){let n=this._tilesDirty[e];n||=this._tilesDirty[e]={},n[t.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){let t=function(t){let n=0,r=new e.StructArrayLayout2ui4;for(let e=1;e<129;e++){for(let t=1;t<129;t++)n=e*131+t,r.emplaceBack(n,n+1),r.emplaceBack(n,n+131),r.emplaceBack(n+1,n+131),e===128&&r.emplaceBack(n+131,n+131+1);r.emplaceBack(n+1,n+1+131)}return r}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(t),this.wireframeSegments=e.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,t.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}class Pn{static cacheKey(e,t,n,r){let i=`${t}${r?r.cacheKey:``}`;for(let t of n)e.usedDefines.includes(t)&&(i+=`/${t}`);return i}constructor(t,n,r,i,a,o){let s=t.gl;this.program=s.createProgram();let c=function(e){let t=[];for(let n=0;n<e.length;n++){if(e[n]===null)continue;let r=e[n].split(` `);t.push(r.pop())}return t}(r.staticAttributes),l=i?i.getBinderAttributes():[],u=c.concat(l),d=i?i.defines():[];d=d.concat(o.map((e=>`#define ${e}`)));let f=d.concat(t.extStandardDerivatives?`#extension GL_OES_standard_derivatives : enable 1214${pn}`:pn,pn,fn,dn.fragmentSource,ln.fragmentSource,r.fragmentSource).join(` 1215`),p=d.concat(` 1216#ifdef GL_ES 1217precision highp float; 1218#else 1219 1220#if !defined(lowp) 1221#define lowp 1222#endif 1223 1224#if !defined(mediump) 1225#define mediump 1226#endif 1227 1228#if !defined(highp) 1229#define highp 1230#endif 1231 1232#endif`,fn,dn.vertexSource,ln.vertexSource,cn.vertexSource,r.vertexSource).join(` 1233`),m=s.createShader(s.FRAGMENT_SHADER);if(s.isContextLost())return void(this.failedToCreate=!0);s.shaderSource(m,f),s.compileShader(m),s.attachShader(this.program,m);let h=s.createShader(s.VERTEX_SHADER);if(s.isContextLost())this.failedToCreate=!0;else{s.shaderSource(h,p),s.compileShader(h),s.attachShader(this.program,h),this.attributes={},this.numAttributes=u.length;for(let e=0;e<this.numAttributes;e++)u[e]&&(s.bindAttribLocation(this.program,e,u[e]),this.attributes[u[e]]=e);s.linkProgram(this.program),s.deleteShader(h),s.deleteShader(m),this.fixedUniforms=a(t),this.binderUniforms=i?i.getUniforms(t):[],o.includes(`TERRAIN`)&&(this.terrainUniforms=(t=>({u_dem:new e.Uniform1i(t),u_dem_prev:new e.Uniform1i(t),u_dem_unpack:new e.Uniform4f(t),u_dem_tl:new e.Uniform2f(t),u_dem_scale:new e.Uniform1f(t),u_dem_tl_prev:new e.Uniform2f(t),u_dem_scale_prev:new e.Uniform1f(t),u_dem_size:new e.Uniform1f(t),u_dem_lerp:new e.Uniform1f(t),u_exaggeration:new e.Uniform1f(t),u_depth:new e.Uniform1i(t),u_depth_size_inv:new e.Uniform2f(t),u_meter_to_dem:new e.Uniform1f(t),u_label_plane_matrix_inv:new e.UniformMatrix4f(t)}))(t)),o.includes(`GLOBE`)&&(this.globeUniforms=(t=>({u_tile_tl_up:new e.Uniform3f(t),u_tile_tr_up:new e.Uniform3f(t),u_tile_br_up:new e.Uniform3f(t),u_tile_bl_up:new e.Uniform3f(t),u_tile_up_scale:new e.Uniform1f(t)}))(t)),o.includes(`FOG`)&&(this.fogUniforms=(t=>({u_fog_matrix:new e.UniformMatrix4f(t),u_fog_range:new e.Uniform2f(t),u_fog_color:new e.Uniform4f(t),u_fog_horizon_blend:new e.Uniform1f(t),u_fog_temporal_offset:new e.Uniform1f(t),u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_globe_pos:new e.Uniform3f(t),u_globe_radius:new e.Uniform1f(t),u_globe_transition:new e.Uniform1f(t),u_is_globe:new e.Uniform1i(t),u_viewport:new e.Uniform2f(t)}))(t))}}setTerrainUniformValues(e,t){if(!this.terrainUniforms)return;let n=this.terrainUniforms;if(!this.failedToCreate){e.program.set(this.program);for(let e in t)n[e]&&n[e].set(this.program,e,t[e])}}setGlobeUniformValues(e,t){if(!this.globeUniforms)return;let n=this.globeUniforms;if(!this.failedToCreate){e.program.set(this.program);for(let e in t)n[e]&&n[e].set(this.program,e,t[e])}}setFogUniformValues(e,t){if(!this.fogUniforms)return;let n=this.fogUniforms;if(!this.failedToCreate){e.program.set(this.program);for(let e in t)n[e].set(this.program,e,t[e])}}draw(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=e.gl;if(this.failedToCreate)return;e.program.set(this.program),e.setDepthMode(n),e.setStencilMode(r),e.setColorMode(i),e.setCullFace(a
1233);for(let e of Object.keys(this.fixedUniforms))this.fixedUniforms[e].set(this.program,e,o[e]);p&&p.setUniforms(this.program,e,this.binderUniforms,d,{zoom:f});let g={[h.LINES]:2,[h.TRIANGLES]:3,[h.LINE_STRIP]:1}[t];for(let n of u.get()){let r=n.vaos||={};(r[s]||(r[s]=new gn)).bind(e,this,c,p?p.getPaintVertexBuffers():[],l,n.vertexOffset,m||[]),h.drawElements(t,n.primitiveLength*g,h.UNSIGNED_SHORT,n.primitiveOffset*g*2)}}}function Fn(e,t){let n=2**t.tileID.overscaledZ,r=t.tileSize*2**e.transform.tileZoom/n,i=r*(t.tileID.canonical.x+t.tileID.wrap*n),a=r*t.tileID.canonical.y;return{u_image:0,u_texsize:t.imageAtlasTexture.size,u_tile_units_to_pixels:1/A(t,1,e.transform.tileZoom),u_pixel_coord_upper:[i>>16,a>>16],u_pixel_coord_lower:[65535&i,65535&a]}}let G=e.create(),In=(t,n,r,i,a,o,s,c,l,u,d)=>{let f=n.style.light,p=f.properties.get(`position`),m=[p.x,p.y,p.z],h=e.create$1();f.properties.get(`anchor`)===`viewport`&&(e.fromRotation(h,-n.transform.angle),e.transformMat3(m,m,h));let g=f.properties.get(`color`),_=n.transform,v={u_matrix:t,u_lightpos:m,u_lightintensity:f.properties.get(`intensity`),u_lightcolor:[g.r,g.g,g.b],u_vertical_gradient:+r,u_opacity:i,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:G,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_ao:a,u_edge_radius:o};return _.projection.name===`globe`&&(v.u_tile_id=[s.canonical.x,s.canonical.y,1<<s.canonical.z],v.u_zoom_transition=l,v.u_inv_rot_matrix=d,v.u_merc_center=u,v.u_up_dir=_.projection.upVector(new e.CanonicalTileID(0,0,0),u[0]*e.EXTENT,u[1]*e.EXTENT),v.u_height_lift=c),v},Ln=(t,n,r,i,a,o,s,c,l,u,d,f)=>{let p=In(t,n,r,i,a,o,s,l,u,d,f),m={u_height_factor:-(2**s.overscaledZ)/c.tileSize/8};return e.extend(p,Fn(n,c),m)},Rn=e=>({u_matrix:e}),zn=(t,n,r)=>e.extend(Rn(t),Fn(n,r)),Bn=(e,t)=>({u_matrix:e,u_world:t}),Vn=(t,n,r,i)=>e.extend(zn(t,n,r),{u_world:i}),Hn=e.create(),Un=(t,n,r,i,a,o)=>{let s=t.transform,c=s.projection.name===`globe`,l;if(o.paint.get(`circle-pitch-alignment`)===`map`)if(c){let t=e.globePixelsToTileUnits(s.zoom,n.canonical)*s._pixelsPerMercatorPixel;l=Float32Array.from([t,0,0,t])}else l=s.calculatePixelsToTileUnitsMatrix(r);else l=new Float32Array([s.pixelsToGLUnits[0],0,0,s.pixelsToGLUnits[1]]);let u={u_camera_to_center_distance:s.cameraToCenterDistance,u_matrix:t.translatePosMatrix(n.projMatrix,r,o.paint.get(`circle-translate`),o.paint.get(`circle-translate-anchor`)),u_device_pixel_ratio:e.exported.devicePixelRatio,u_extrude_scale:l,u_inv_rot_matrix:Hn,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(c){u.u_inv_rot_matrix=i,u.u_merc_center=a,u.u_tile_id=[n.canonical.x,n.canonical.y,1<<n.canonical.z],u.u_zoom_transition=e.globeToMercatorTransition(s.zoom);let t=a[0]*e.EXTENT,r=a[1]*e.EXTENT;u.u_up_dir=s.projection.upVector(new e.CanonicalTileID(0,0,0),t,r)}return u},Wn=e=>{let t=[];return e.paint.get(`circle-pitch-alignment`)===`map`&&t.push(`PITCH_WITH_MAP`),e.paint.get(`circle-pitch-scale`)===`map`&&t.push(`SCALE_WITH_MAP`),t},Gn=(t,n,r,i)=>{let a=e.EXTENT/r.tileSize;return{u_matrix:t,u_camera_to_center_distance:n.getCameraToCenterDistance(i),u_extrude_scale:[n.pixelsToGLUnits[0]/a,n.pixelsToGLUnits[1]/a]}},Kn=(e,t,n=1)=>({u_matrix:e,u_color:t,u_overlay:0,u_overlay_scale:n}),qn=e.create(),Jn=(t,n,r,i,a,o,s)=>{let c=t.transform,l=c.projection.name===`globe`,u=l?e.globePixelsToTileUnits(c.zoom,n.canonical)*c._pixelsPerMercatorPixel:A(r,1,o),d={u_matrix:n.projMatrix,u_extrude_scale:u,u_intensity:s,u_inv_rot_matrix:qn,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(l){d.u_inv_rot_matrix=i,d.u_merc_center=a,d.u_tile_id=[n.canonical.x,n.canonical.y,1<<n.canonical.z],d.u_zoom_transition=e.globeToMercatorTransition(c.zoom);let t=a[0]*e.EXTENT,r=a[1]*e.EXTENT;d.u_up_dir=c.projection.upVector(new e.CanonicalTileID(0,0,0),t,r)}return d},Yn=(e,t,n,r,i,a,o)=>{let s=e.transform,c=s.calculatePixelsToTileUnitsMatrix(t);return{u_matrix:Qn(e,t,n,r),u_pixels_to_tile_units:c,u_device_pixel_ratio:a,u_units_to_pixels:[1/s.pixelsToGLUnits[0],1/s.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:i,u_texsize:$n(n)?t.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:Zn(t,e.transform),u_alpha_discard_threshold:0,u_trim_offset:o}},Xn=(e,t,n,r,i)=>{let a=e.transform;
1233return{u_matrix:Qn(e,t,n,r),u_texsize:t.imageAtlasTexture.size,u_pixels_to_tile_units:a.calculatePixelsToTileUnitsMatrix(t),u_device_pixel_ratio:i,u_image:0,u_tile_units_to_pixels:Zn(t,a),u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function Zn(e,t){return 1/A(e,1,t.tileZoom)}function Qn(e,t,n,r){return e.translatePosMatrix(r||t.tileID.projMatrix,t,n.paint.get(`line-translate`),n.paint.get(`line-translate-anchor`))}function $n(e){let t=e.paint.get(`line-dasharray`).value;return t.value||t.kind!==`constant`}let er=(e,t,n,r,i,a)=>{return{u_matrix:e,u_tl_parent:t,u_scale_parent:n,u_fade_t:r.mix,u_opacity:r.opacity*i.paint.get(`raster-opacity`),u_image0:0,u_image1:1,u_brightness_low:i.paint.get(`raster-brightness-min`),u_brightness_high:i.paint.get(`raster-brightness-max`),u_saturation_factor:(s=i.paint.get(`raster-saturation`),s>0?1-1/(1.001-s):-s),u_contrast_factor:(o=i.paint.get(`raster-contrast`),o>0?1/(1-o):1+o),u_spin_weights:tr(i.paint.get(`raster-hue-rotate`)),u_perspective_transform:a};var o,s};function tr(e){e*=Math.PI/180;let t=Math.sin(e),n=Math.cos(e);return[(2*n+1)/3,(-Math.sqrt(3)*t-n+1)/3,(Math.sqrt(3)*t-n+1)/3]}let nr=e.create(),rr=(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g)=>{let _=a.transform,v={u_is_size_zoom_constant:+(t===`constant`||t===`source`),u_is_size_feature_constant:+(t===`constant`||t===`camera`),u_size_t:n?n.uSizeT:0,u_size:n?n.uSize:0,u_camera_to_center_distance:_.cameraToCenterDistance,u_rotate_symbol:+r,u_aspect_ratio:_.width/_.height,u_fade_change:a.options.fadeDuration?a.symbolFadeChange:1,u_matrix:o,u_label_plane_matrix:s,u_coord_matrix:c,u_is_text:+l,u_pitch_with_map:+i,u_texsize:u,u_texture:0,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:nr,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:nr,u_up_vector:[0,-1,0]};return g.name===`globe`&&(v.u_tile_id=[d.canonical.x,d.canonical.y,1<<d.canonical.z],v.u_zoom_transition=f,v.u_inv_rot_matrix=m,v.u_merc_center=p,v.u_camera_forward=_._camera.forward(),v.u_ecef_origin=e.globeECEFOrigin(_.globeMatrix,d.toUnwrapped()),v.u_tile_matrix=Float32Array.from(_.globeMatrix),v.u_up_vector=h),v},ir=(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)=>e.extend(rr(t,n,r,i,a,o,s,c,l,u,f,p,m,h,g,_),{u_gamma_scale:i?a.transform.cameraToCenterDistance*Math.cos(a.terrain?0:a.transform._pitch):1,u_device_pixel_ratio:e.exported.devicePixelRatio,u_is_halo:+d}),ar=(t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g)=>e.extend(ir(t,n,r,i,a,o,s,c,!0,l,!0,d,f,p,m,h,g),{u_texsize_icon:u,u_texture_icon:1}),or=(e,t,n)=>({u_matrix:e,u_opacity:t,u_color:n}),sr=(t,n,r,i,a)=>e.extend(function(e,t,n){let r=t.imageManager.getPattern(e.toString()),{width:i,height:a}=t.imageManager.getPixelSize(),o=2**n.tileID.overscaledZ,s=n.tileSize*2**t.transform.tileZoom/o,c=s*(n.tileID.canonical.x+n.tileID.wrap*o),l=s*n.tileID.canonical.y;return{u_image:0,u_pattern_tl:r.tl,u_pattern_br:r.br,u_texsize:[i,a],u_pattern_size:r.displaySize,u_tile_units_to_pixels:1/A(n,1,t.transform.tileZoom),u_pixel_coord_upper:[c>>16,l>>16],u_pixel_coord_lower:[65535&c,65535&l]}}(i,r,a),{u_matrix:t,u_opacity:n}),cr={fillExtrusion:t=>({u_matrix:new e.UniformMatrix4f(t),u_lightpos:new e.Uniform3f(t),u_lightintensity:new e.Uniform1f(t),u_lightcolor:new e.Uniform3f(t),u_vertical_gradient:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_edge_radius:new e.Uniform1f(t),u_ao:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_up_dir:new e.Uniform3f(t),u_height_lift:new e.Uniform1f(t)}),fillExtrusionPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_lightpos:new e.Uniform3f(t),u_lightintensity:new e.Uniform1f(t),u_lightcolor:new e.Uniform3f(t),u_vertical_gradient:new e.Uniform1f(t),u_height_factor:new e.Uniform1f(t),u_edge_radius:new e.Uniform1f(t),u_ao:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_up_dir:new e.Uniform3f(t),u_height_lift:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t)}),fill:t=>({u_matrix:new e.UniformMatrix4f(t)}),fillPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),fillOutline:t=>({u_matrix:new e.UniformMatrix4f(t),u_world:new e.Uniform2f(t)}),fillOutlinePattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_world:new e.Uniform2f(t),u_image:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),circle:t=>({u_camera_to_center_distance:new e.Uniform1f(t),u_extrude_scale:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_up_dir:new e.Uniform3f(t)}),collisionBox:t=>({u_matrix:new e.UniformMatrix4f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_extrude_scale:new e.Uniform2f(t)}),collisionCircle:t=>({u_matrix:new e.UniformMatrix4f(t),u_inv_matrix:new e.UniformMatrix4f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_viewport_size:new e.Uniform2f(t)}),debug:t=>
1233({u_color:new e.UniformColor(t),u_matrix:new e.UniformMatrix4f(t),u_overlay:new e.Uniform1i(t),u_overlay_scale:new e.Uniform1f(t)}),clippingMask:t=>({u_matrix:new e.UniformMatrix4f(t)}),heatmap:t=>({u_extrude_scale:new e.Uniform1f(t),u_intensity:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_up_dir:new e.Uniform3f(t)}),heatmapTexture:t=>({u_image:new e.Uniform1i(t),u_color_ramp:new e.Uniform1i(t),u_opacity:new e.Uniform1f(t)}),hillshade:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_latrange:new e.Uniform2f(t),u_light:new e.Uniform2f(t),u_shadow:new e.UniformColor(t),u_highlight:new e.UniformColor(t),u_accent:new e.UniformColor(t)}),hillshadePrepare:t=>({u_matrix:new e.UniformMatrix4f(t),u_image:new e.Uniform1i(t),u_dimension:new e.Uniform2f(t),u_zoom:new e.Uniform1f(t),u_unpack:new e.Uniform4f(t)}),line:t=>({u_matrix:new e.UniformMatrix4f(t),u_pixels_to_tile_units:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_units_to_pixels:new e.Uniform2f(t),u_dash_image:new e.Uniform1i(t),u_gradient_image:new e.Uniform1i(t),u_image_height:new e.Uniform1f(t),u_texsize:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_alpha_discard_threshold:new e.Uniform1f(t),u_trim_offset:new e.Uniform2f(t)}),linePattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_texsize:new e.Uniform2f(t),u_pixels_to_tile_units:new e.UniformMatrix2f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_units_to_pixels:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t),u_alpha_discard_threshold:new e.Uniform1f(t)}),raster:t=>({u_matrix:new e.UniformMatrix4f(t),u_tl_parent:new e.Uniform2f(t),u_scale_parent:new e.Uniform1f(t),u_fade_t:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_image0:new e.Uniform1i(t),u_image1:new e.Uniform1i(t),u_brightness_low:new e.Uniform1f(t),u_brightness_high:new e.Uniform1f(t),u_saturation_factor:new e.Uniform1f(t),u_contrast_factor:new e.Uniform1f(t),u_spin_weights:new e.Uniform3f(t),u_perspective_transform:new e.Uniform2f(t)}),symbolIcon:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_camera_forward:new e.Uniform3f(t),u_tile_matrix:new e.UniformMatrix4f(t),u_up_vector:new e.Uniform3f(t),u_ecef_origin:new e.Uniform3f(t),u_texture:new e.Uniform1i(t)}),symbolSDF:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_texture:new e.Uniform1i(t),u_gamma_scale:new e.Uniform1f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_tile_id:new e.Uniform3f(t),u_zoom_transition:new e.Uniform1f(t),u_inv_rot_matrix:new e.UniformMatrix4f(t),u_merc_center:new e.Uniform2f(t),u_camera_forward:new e.Uniform3f(t),u_tile_matrix:new e.UniformMatrix4f(t),u_up_vector:new e.Uniform3f(t),u_ecef_origin:new e.Uniform3f(t),u_is_halo:new e.Uniform1i(t)}),symbolTextAndIcon:t=>({u_is_size_zoom_constant:new e.Uniform1i(t),u_is_size_feature_constant:new e.Uniform1i(t),u_size_t:new e.Uniform1f(t),u_size:new e.Uniform1f(t),u_camera_to_center_distance:new e.Uniform1f(t),u_rotate_symbol:new e.Uniform1i(t),u_aspect_ratio:new e.Uniform1f(t),u_fade_change:new e.Uniform1f(t),u_matrix:new e.UniformMatrix4f(t),u_label_plane_matrix:new e.UniformMatrix4f(t),u_coord_matrix:new e.UniformMatrix4f(t),u_is_text:new e.Uniform1i(t),u_pitch_with_map:new e.Uniform1i(t),u_texsize:new e.Uniform2f(t),u_texsize_icon:new e.Uniform2f(t),u_texture:new e.Uniform1i(t),u_texture_icon:new e.Uniform1i(t),u_gamma_scale:new e.Uniform1f(t),u_device_pixel_ratio:new e.Uniform1f(t),u_is_halo:new e.Uniform1i(t)}),background:t=>({u_matrix:new e.UniformMatrix4f(t),u_opacity:new e.Uniform1f(t),u_color:new e.UniformColor(t)}),backgroundPattern:t=>({u_matrix:new e.UniformMatrix4f(t),u_opacity:new e.Uniform1f(t),u_image:new e.Uniform1i(t),u_pattern_tl:new e.Uniform2f(t),u_pattern_br:new e.Uniform2f(t),u_texsize:new e.Uniform2f(t),u_pattern_size:new e.Uniform2f(t),u_pixel_coord_upper:new e.Uniform2f(t),u_pixel_coord_lower:new e.Uniform2f(t),u_tile_units_to_pixels:new e.Uniform1f(t)}),terrainRaster:xn,terrainDepth:xn,skybox:t=>({u_matrix:new e.UniformMatrix4f(t),u_sun_direction:new e.Uniform3f(t),u_cubemap:new e.Uniform1i(t),u_opacity:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t)}),skyboxGradient:t=>({u_matrix:new e.UniformMatrix4f(t),u_color_ramp:new e.Uniform1i(t),u_center_direction:new e.Uniform3f(t),u_radius:new e.Uniform1f(t),u_opacity:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t)}),skyboxCapture:t=>({u_matrix_3f:new e.UniformMatrix3f(t),u_sun_direction:new e.Uniform3f(t),u_sun_intensity:new e.Uniform1f(t),u_color_tint_r:new e.Uniform4f(t),u_color_tint_m:new e.Uniform4f(t),u_luminance:new e.Uniform1f(t)}),globeRaster:t=>({u_proj_matrix:new e.UniformMatrix4f(t),u_globe_matrix:new e.UniformMatrix4f(t),u_normalize_matrix:new e.UniformMatrix4f(t),u_merc_matrix:new e.UniformMatrix4f(t),u_zoom_transition:new e.Uniform1f(t),u_merc_center:new e.Uniform2f(t),u_image0:new e.Uniform1i(t),u_grid_matrix:new e.UniformMatrix3f(t),u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_globe_pos:new e.Uniform3f(t),u_globe_radius:new e.Uniform1f(t),u_viewport:new e.Uniform2f(t)}),globeAtmosphere:t=>({u_frustum_tl:new e.Uniform3f(t),u_frustum_tr:new e.Uniform3f(t),u_frustum_br:new e.Uniform3f(t),u_frustum_bl:new e.Uniform3f(t),u_horizon:new e.Uniform1f(t),u_transition:new e.Uniform1f(t),u_fadeout_range:new e.Uniform1f(t),u_color:new e.Uniform4f(t),u_high_color:new e.Uniform4f(t),u_space_color:new e.Uniform4f(t),u_star_intensity:new e.Uniform1f(t),u_star_density:new e.Uniform1f(t),u_star_size:new e.Uniform1f(t),u_temporal_offset:new e.Uniform1f(t),u_horizon_angle:new e.Uniform1f(t),u_rotation_matrix:new e.UniformMatrix4f(t)})},lr;function ur(t,n,r,i,a,o,s){let c=t.context,l=c.gl,u=t.transform,d=t.useProgram(`collisionBox`),f=[],p=0,m=0;for(let h=0;h<i.length;h++){let g=i[h],_=n.getTile(g),v=_.getBucket(r);
1233if(!v)continue;let y=Tt(g,v,u),b=y;a[0]===0&&a[1]===0||(b=t.translatePosMatrix(y,_,a,o));let x=s?v.textCollisionBox:v.iconCollisionBox,S=v.collisionCircleArray;if(S.length>0){let t=e.create(),n=b;e.mul(t,v.placementInvProjMatrix,u.glCoordMatrix),e.mul(t,t,v.placementViewportMatrix),f.push({circleArray:S,circleOffset:m,transform:n,invTransform:t,projection:v.getProjection()}),p+=S.length/4,m=p}x&&(t.terrain&&t.terrain.setupElevationDraw(_,d),d.draw(c,l.LINES,e.DepthMode.disabled,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.disabled,Gn(b,u,_,v.getProjection()),r.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,u.zoom,null,[x.collisionVertexBuffer,x.collisionVertexBufferExt]))}if(!s||!f.length)return;let h=t.useProgram(`collisionCircle`),g=new e.StructArrayLayout2f1f2i16;g.resize(4*p),g._trim();let _=0;for(let e of f)for(let t=0;t<e.circleArray.length/4;t++){let n=4*t,r=e.circleArray[n+0],i=e.circleArray[n+1],a=e.circleArray[n+2],o=e.circleArray[n+3];g.emplace(_++,r,i,a,o,0),g.emplace(_++,r,i,a,o,1),g.emplace(_++,r,i,a,o,2),g.emplace(_++,r,i,a,o,3)}(!lr||lr.length<2*p)&&(lr=function(t){let n=2*t,r=new e.StructArrayLayout3ui6;r.resize(n),r._trim();for(let e=0;e<n;e++){let t=6*e;r.uint16[t+0]=4*e+0,r.uint16[t+1]=4*e+1,r.uint16[t+2]=4*e+2,r.uint16[t+3]=4*e+2,r.uint16[t+4]=4*e+3,r.uint16[t+5]=4*e+0}return r}(p));let v=c.createIndexBuffer(lr,!0),y=c.createVertexBuffer(g,e.collisionCircleLayout.members,!0);for(let n of f){let i={u_matrix:n.transform,u_inv_matrix:n.invTransform,u_camera_to_center_distance:(b=u).getCameraToCenterDistance(n.projection),u_viewport_size:[b.width,b.height]};h.draw(c,l.TRIANGLES,e.DepthMode.disabled,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.disabled,i,r.id,y,v,e.SegmentVector.simpleSegment(0,2*n.circleOffset,n.circleArray.length,n.circleArray.length/2),null,u.zoom)}var b;y.destroy(),v.destroy()}let dr=e.create();function fr({width:t,height:n,anchor:r,textOffset:i,textScale:a},o){let{horizontalAlign:s,verticalAlign:c}=e.getAnchorAlignment(r),l=-(s-.5)*t,u=-(c-.5)*n,d=e.evaluateVariableOffset(r,i);return new e.pointGeometry((l/a+d[0])*o,(u/a+d[1])*o)}function pr(t,n,r,i,a,o,s,c,l,u,d){let f=t.text.placedSymbolArray,p=t.text.dynamicLayoutVertexArray,m=t.icon.dynamicLayoutVertexArray,h={},g=t.getProjection(),_=Et(c,g,o),v=o.elevation,y=g.upVectorScale(c.canonical,o.center.lat,o.worldSize).metersToTile;p.clear();for(let m=0;m<f.length;m++){let b=f.get(m),{tileAnchorX:x,tileAnchorY:S,numGlyphs:C}=b,w=t.allowVerticalPlacement&&!b.placedOrientation,T=b.hidden||!b.crossTileID||w?null:i[b.crossTileID];if(T){let i=0,f=0,m=0;if(v){let e=v?v.getAtTileOffset(c,x,S):0,[t,n,r]=g.upVector(c.canonical,x,S);i=e*t*y,f=e*n*y,m=e*r*y}let[w,E,D,O]=ht(b.projectedAnchorX+i,b.projectedAnchorY+f,b.projectedAnchorZ+m,r?_:s),k=gt(o.getCameraToCenterDistance(g),O),A=a.evaluateSizeForFeature(t.textSizeData,u,b)*k/e.ONE_EM;r&&(A*=t.tilePixelRatio/l);let j=fr(T,A);r?({x:w,y:E,z:D}=g.projectTilePoint(x+j.x,S+j.y,c.canonical),[w,E,D]=ht(w+i,E+f,D+m,s)):(n&&j._rotate(-o.angle),w+=j.x,E+=j.y,D=0);let M=t.allowVerticalPlacement&&b.placedOrientation===e.WritingMode.vertical?Math.PI/2:0;for(let t=0;t<C;t++)e.addDynamicAttributes(p,w,E,D,M);d&&b.associatedIconIndex>=0&&(h[b.associatedIconIndex]={x:w,y:E,z:D,angle:M})}else xt(C,p)}if(d){m.clear();let n=t.icon.placedSymbolArray;for(let t=0;t<n.length;t++){let r=n.get(t),{numGlyphs:i}=r,a=h[t];if(r.hidden||!a)xt(i,m);else{let{x:t,y:n,z:r,angle:o}=a;for(let a=0;a<i;a++)e.addDynamicAttributes(m,t,n,r,o)}}t.icon.dynamicLayoutVertexBuffer.updateData(m)}t.text.dynamicLayoutVertexBuffer.updateData(p)}function mr(e,t,n){return n.iconsInText&&t?`symbolTextAndIcon`:e?`symbolSDF`:`symbolIcon`}function hr(t,n,r,i,a,o,s,c,l,u,d,f){let p=t.context,m=p.gl,h=t.transform,g=c===`map`,_=l===`map`,v=g&&r.layout.get(`symbol-placement`)!==`point`,y=g&&!_&&!v,b=r.layout.get(`symbol-sort-key`).constantOr(1)!==void 0,x=!1,S=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),C=[e.mercatorXfromLng(h.center.lng),e.mercatorYfromLat(h.center.lat)],w=r.layout.get(`text-variable-anchor`),T=h.projection.name===`globe`,E=[],D=[0,-1,0],O=D;!T&&!h.mercatorFromTransition||g||(O=function(t){let n=t._camera.getWorldToCamera(t.worldSize,1),r=e.multiply([],n,t.globeMatrix);e.invert(r,r);let i=[0,0,0],a=[0,1,0,0];return e.transformMat4$1(a,a,r),i[0]=a[0],i[1]=a[1],i[2]=a[2],e.normalize(i,i),i}(h));for(let c of i){let i=n.getTile(c),l=i.getBucket(r);
1233if(!l||l.projection.name===`mercator`&&T)continue;let d=a?l.text:l.icon;if(!d||l.fullyClipped||!d.segments.get().length)continue;let f=d.programConfigurations.get(r.id),p=a||l.sdfIcons,S=a?l.textSizeData:l.iconSizeData,k=_||h.pitch!==0,A=e.evaluateSizeForZoom(S,h.zoom),j,M,ee,N,te=[0,0],P=null;if(a){if(M=i.glyphAtlasTexture,ee=m.LINEAR,j=i.glyphAtlasTexture.size,l.iconsInText){te=i.imageAtlasTexture.size,P=i.imageAtlasTexture;let e=S.kind===`composite`||S.kind===`camera`;N=k||t.options.rotating||t.options.zooming||e?m.LINEAR:m.NEAREST}}else{let e=r.layout.get(`icon-size`).constantOr(0)!==1||l.iconsNeedLinear;M=i.imageAtlasTexture,ee=p||t.options.rotating||t.options.zooming||e||k?m.LINEAR:m.NEAREST,j=i.imageAtlasTexture.size}let F=l.projection.name===`globe`,I=F?O:D,ne=F?e.globeToMercatorTransition(h.zoom):0,L=Et(c,l.getProjection(),h),re=h.calculatePixelsToTileUnitsMatrix(i),ie=ft(L,i.tileID.canonical,_,g,h,l.getProjection(),re),ae=t.terrain&&_&&v?e.invert(e.create(),ie):dr,oe=mt(L,i.tileID.canonical,_,g,h,l.getProjection(),re),se=w&&l.hasTextData(),ce=r.layout.get(`icon-text-fit`)!==`none`&&se&&l.hasIconData();if(v){let e=h.elevation,n=e?e.getAtTileOffsetFunc(c,h.center.lat,h.worldSize,l.getProjection()):null;B(l,L,t,a,pt(L,i.tileID.canonical,_,g,h,l.getProjection(),re),oe,_,u,n,c)}let le=v||a&&w||ce,ue=t.translatePosMatrix(L,i,o,s),de=le?dr:ie,fe=t.translatePosMatrix(oe,i,o,s,!0),pe=l.getProjection().createInversionMatrix(h,c.canonical),me=[];t.terrainRenderModeElevated()&&_&&me.push(`PITCH_WITH_MAP_TERRAIN`),F&&me.push(`PROJECTION_GLOBE_VIEW`),le&&me.push(`PROJECTED_POS_ON_VIEWPORT`);let he=p&&r.paint.get(a?`text-halo-width`:`icon-halo-width`).constantOr(1)!==0,ge;ge=p?l.iconsInText?ar(S.kind,A,y,_,t,ue,de,fe,j,te,c,ne,C,pe,I,l.getProjection()):ir(S.kind,A,y,_,t,ue,de,fe,a,j,!0,c,ne,C,pe,I,l.getProjection()):rr(S.kind,A,y,_,t,ue,de,fe,a,j,c,ne,C,pe,I,l.getProjection());let _e={program:t.useProgram(mr(p,a,l),f,me),buffers:d,uniformValues:ge,atlasTexture:M,atlasTextureIcon:P,atlasInterpolation:ee,atlasInterpolationIcon:N,isSDF:p,hasHalo:he,tile:i,labelPlaneMatrixInv:ae};if(b&&l.canOverlap){x=!0;let t=d.segments.get();for(let n of t)E.push({segments:new e.SegmentVector([n]),sortKey:n.sortKey,state:_e})}else E.push({segments:d.segments,sortKey:0,state:_e})}x&&E.sort(((e,t)=>
1233e.sortKey-t.sortKey));for(let e of E){let n=e.state;if(t.terrain&&t.terrain.setupElevationDraw(n.tile,n.program,{useDepthForOcclusion:!T,labelPlaneMatrixInv:n.labelPlaneMatrixInv}),p.activeTexture.set(m.TEXTURE0),n.atlasTexture.bind(n.atlasInterpolation,m.CLAMP_TO_EDGE),n.atlasTextureIcon&&(p.activeTexture.set(m.TEXTURE1),n.atlasTextureIcon&&n.atlasTextureIcon.bind(n.atlasInterpolationIcon,m.CLAMP_TO_EDGE)),n.isSDF){let i=n.uniformValues;n.hasHalo&&(i.u_is_halo=1,gr(n.buffers,e.segments,r,t,n.program,S,d,f,i)),i.u_is_halo=0}gr(n.buffers,e.segments,r,t,n.program,S,d,f,n.uniformValues)}}function gr(t,n,r,i,a,o,s,c,l){let u=i.context,d=[t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer,t.globeExtVertexBuffer];a.draw(u,u.gl.TRIANGLES,o,s,c,e.CullFaceMode.disabled,l,r.id,t.layoutVertexBuffer,t.indexBuffer,n,r.paint,i.transform.zoom,t.programConfigurations.get(r.id),d)}function _r(t,n,r,i,a,o,s){let c=t.context.gl,l=r.paint.get(`fill-pattern`),u=l&&l.constantOr(1),d,f,p,m,h;s?(f=u&&!r.getPaintProperty(`fill-outline-color`)?`fillOutlinePattern`:`fillOutline`,d=c.LINES):(f=u?`fillPattern`:`fill`,d=c.TRIANGLES);for(let g of i){let i=n.getTile(g);if(u&&!i.patternsLoaded())continue;let _=i.getBucket(r);if(!_)continue;t.prepareDrawTile();let v=_.programConfigurations.get(r.id),y=t.useProgram(f,v);u&&(t.context.activeTexture.set(c.TEXTURE0),i.imageAtlasTexture.bind(c.LINEAR,c.CLAMP_TO_EDGE),v.updatePaintBuffers());let b=l.constantOr(null);if(b&&i.imageAtlas){let e=i.imageAtlas.patternPositions[b.toString()];e&&v.setConstantPatternPositions(e)}let x=t.translatePosMatrix(g.projMatrix,i,r.paint.get(`fill-translate`),r.paint.get(`fill-translate-anchor`));if(s){m=_.indexBuffer2,h=_.segments2;let e=t.terrain&&t.terrain.renderingToTexture?t.terrain.drapeBufferSize:[c.drawingBufferWidth,c.drawingBufferHeight];p=f===`fillOutlinePattern`&&u?Vn(x,t,i,e):Bn(x,e)}else m=_.indexBuffer,h=_.segments,p=u?zn(x,t,i):Rn(x);t.prepareDrawProgram(t.context,y,g.toUnwrapped()),y.draw(t.context,d,a,t.stencilModeForClipping(g),o,e.CullFaceMode.disabled,p,r.id,_.layoutVertexBuffer,m,h,r.paint,t.transform.zoom,v)}}function vr(t,n,r,i,a,o,s){let c=t.context,l=c.gl,u=t.transform,d=r.paint.get(`fill-extrusion-pattern`),f=d.constantOr(1),p=r.paint.get(`fill-extrusion-opacity`),m=[r.paint.get(`fill-extrusion-ambient-occlusion-intensity`),r.paint.get(`fill-extrusion-ambient-occlusion-radius`)],h=r.layout.get(`fill-extrusion-edge-radius`),g=u.projection.name===`globe`?e.fillExtrusionHeightLift():0,_=u.projection.name===`globe`,v=_?e.globeToMercatorTransition(u.zoom):0,y=[e.mercatorXfromLng(u.center.lng),e.mercatorYfromLat(u.center.lat)],b=[];_&&(b.push(`PROJECTION_GLOBE_VIEW`),t.style.terrainSetForDrapingOnly()&&b.push(`TERRAIN`)),m[0]>0&&b.push(`FAUX_AO`);for(let x of i){let i=n.getTile(x),S=i.getBucket(r);if(!S||S.projection.name!==u.projection.name)continue;let C=S.programConfigurations.get(r.id),w=t.useProgram(f?`fillExtrusionPattern`:`fillExtrusion`,C,b);if(t.terrain){let e=t.terrain;if(t.style.terrainSetForDrapingOnly())e.setupElevationDraw(i,w,{useMeterToDem:!0});else{if(!S.enableTerrain)continue;if(e.setupElevationDraw(i,w,{useMeterToDem:!0}),yr(c,n,x,S,r,e),!S.centroidVertexBuffer){let e=w.attributes.a_centroid_pos;e!==void 0&&l.vertexAttrib2f(e,0,0)}}}f&&(t.context.activeTexture.set(l.TEXTURE0),i.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),C.updatePaintBuffers());let T=d.constantOr(null);if(T&&i.imageAtlas){let e=i.imageAtlas.patternPositions[T.toString()];e&&C.setConstantPatternPositions(e)}let E=t.translatePosMatrix(x.projMatrix,i,r.paint.get(`fill-extrusion-translate`),r.paint.get(`fill-extrusion-translate-anchor`)),D=u.projection.createInversionMatrix(u,x.canonical),O=r.paint.get(`fill-extrusion-vertical-gradient`),k=f?Ln(E,t,O,p,m,h,x,i,g,v,y,D):In(E,t,O,p,m,h,x,g,v,y,D);t.prepareDrawProgram(c,w,x.toUnwrapped());let A=[];t.terrain&&A.push(S.centroidVertexBuffer),_&&A.push(S.layoutVertexExtBuffer),w.draw(c,c.gl.TRIANGLES,a,o,s,e.CullFaceMode.backCCW,k,r.id,S.layoutVertexBuffer,S.indexBuffer,S.segments,r.paint,t.transform.zoom,C,A)}}function yr(t,n,r,i,a,o){let s=[t=>{let n=t.canonical.x-1,r=t.wrap;return n<0&&(n=(1<<t.canonical.z)-1,r--),new e.OverscaledTileID(t.overscaledZ,r,t.canonical.z,n,t.canonical.y)},t=>{let n=t.canonical.x+1,r=t.wrap;return n===1<<t.canonical.z&&(n=0,r++),new e.OverscaledTileID(t.overscaledZ,r,t.canonical.z,n,t.canonical.y)},t=>new e.OverscaledTileID(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,(t.canonical.y===0?1<<t.canonical.z:t.canonical.y)-1),t=>new e.OverscaledTileID(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y===(1<<t.canonical.z)-1?0:t.canonical.y+1)],c=e=>{let t=n.getSource().minzoom,r=e=>{let t=n.getTileByID(e);if(t&&t.hasData())return t.getBucket(a)};
1233for(let n of[0,-1,1]){if(e.overscaledZ+n<t)continue;let i=r(e.calculateScaledKey(e.overscaledZ+n));if(i)return i}},l=[0,0,0],u=(t,n)=>(l[0]=Math.min(t.min.y,n.min.y),l[1]=Math.max(t.max.y,n.max.y),l[2]=e.EXTENT-n.min.x>t.max.x?n.min.x-e.EXTENT:t.max.x,l),d=(t,n)=>(l[0]=Math.min(t.min.x,n.min.x),l[1]=Math.max(t.max.x,n.max.x),l[2]=e.EXTENT-n.min.y>t.max.y?n.min.y-e.EXTENT:t.max.y,l),f=[(e,t)=>u(e,t),(e,t)=>u(t,e),(e,t)=>d(e,t),(e,t)=>d(t,e)],p=new e.pointGeometry(0,0),m,h,g,_=(t,n,i,a,s)=>{let c=[[a?i:t,a?t:i,0],[a?i:n,a?n:i,0]],l=s<0?e.EXTENT+s:s,u=[a?l:(t+n)/2,a?(t+n)/2:l,0];return i===0&&s<0||i!==0&&s>0?o.getForTilePoints(g,[u],!0,h):c.push(u),o.getForTilePoints(r,c,!0,m),Math.max(c[0][2],c[1][2],u[2])/o.exaggeration()};for(let t=0;t<4;t++){let n=(t<2?1:5)-t,a=i.borders[t];if(a.length===0)continue;let l=g=s[t](r),u=c(l);if(!(u&&u instanceof e.FillExtrusionBucket&&u.enableTerrain)||i.borderDoneWithNeighborZ[t]===u.canonical.z&&u.borderDoneWithNeighborZ[n]===i.canonical.z||(h=o.findDEMTileFor(l),!h||!h.dem))continue;if(!m){let e=o.findDEMTileFor(r);if(!e||!e.dem)return;m=e}let d=u.borders[n],v=0,y=u.borderDoneWithNeighborZ[n]!==i.canonical.z;if(i.canonical.z===u.canonical.z){for(let r=0;r<a.length;r++){let o=i.featuresOnBorder[a[r]],s=o.borders[t],c;for(;v<d.length&&(c=u.featuresOnBorder[d[v]],!(c.borders[n][1]>s[0]+3));)y&&u.encodeCentroid(void 0,c,!1),v++;if(c&&v<d.length){let r=v,a=0;for(;!(c.borders[n][0]>s[1]-3)&&(a++,++v!==d.length);)c=u.featuresOnBorder[d[v]];if(c=u.featuresOnBorder[d[r]],o.intersectsCount()>1||c.intersectsCount()>1||a!==1){a!==1&&(v=r),i.encodeCentroid(void 0,o,!1),y&&u.encodeCentroid(void 0,c,!1);continue}let l=f[t](o,c),m=t%2?e.EXTENT-1:0;p.x=_(l[0],Math.min(e.EXTENT-1,l[1]),m,t<2,l[2]),p.y=0,i.encodeCentroid(p,o,!1),y&&u.encodeCentroid(p,c,!1)}else i.encodeCentroid(void 0,o,!1)}i.borderDoneWithNeighborZ[t]=u.canonical.z,i.needsCentroidUpdate=!0,y&&(u.borderDoneWithNeighborZ[n]=i.canonical.z,u.needsCentroidUpdate=!0)}else{for(let e of a)i.encodeCentroid(void 0,i.featuresOnBorder[e],!1);if(y){for(let e of d)u.encodeCentroid(void 0,u.featuresOnBorder[e],!1);u.borderDoneWithNeighborZ[n]=i.canonical.z,u.needsCentroidUpdate=!0}i.borderDoneWithNeighborZ[t]=u.canonical.z,i.needsCentroidUpdate=!0}}(i.needsCentroidUpdate||!i.centroidVertexBuffer&&i.centroidVertexArray.length!==0)&&i.uploadCentroid(t)}let br=new e.Color(1,0,0,1),xr=new e.Color(0,1,0,1),Sr=new e.Color(0,0,1,1),Cr=new e.Color(1,0,1,1),wr=new e.Color(0,1,1,1);function Tr(t,n,r){let i=t.context,a=t.transform,o=i.gl,s=a.projection.name===`globe`,c=s?[`PROJECTION_GLOBE_VIEW`]:null,l=r.projMatrix;if(s&&e.globeToMercatorTransition(a.zoom)>0){let t=e.transitionTileAABBinECEF(r.canonical,a),n=e.globeDenormalizeECEF(t);l=e.multiply(new Float32Array(16),a.globeMatrix,n),e.multiply(l,a.projMatrix,l)}let u=t.useProgram(`debug`,null,c),d=n.getTileByID(r.key);t.terrain&&t.terrain.setupElevationDraw(d,u);let f=e.DepthMode.disabled,p=e.StencilMode.disabled,m=t.colorModeForRenderPass(),h=`$debug`;i.activeTexture.set(o.TEXTURE0),t.emptyTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE),s?d._makeGlobeTileDebugBuffers(t.context,a):d._makeDebugTileBoundsBuffers(t.context,a.projection);let g=d._tileDebugBuffer||t.debugBuffer,_=d._tileDebugIndexBuffer||t.debugIndexBuffer,v=d._tileDebugSegments||t.debugSegments;u.draw(i,o.LINE_STRIP,f,p,m,e.CullFaceMode.disabled,Kn(l,e.Color.red),h,g,_,v,null,null,null,[d._globeTileDebugBorderBuffer]);let y=d.latestRawTileData,b=Math.floor((y&&y.byteLength||0)/1024),x=n.getTile(r).tileSize,S=512/Math.min(x,512)*(r.overscaledZ/a.zoom)*.5,C=r.canonical.toString();r.overscaledZ!==r.canonical.z&&(C+=` => ${r.overscaledZ}`),C+=` ${b}kb`,function(e,t){e.initDebugOverlayCanvas();let n=e.debugOverlayCanvas,r=e.context.gl,i=e.debugOverlayCanvas.getContext(`2d`);i.clearRect(0,0,n.width,n.height),i.shadowColor=`white`,i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle=`white`,i.textBaseline=`top`,i.font=`bold 36px Open Sans, sans-serif`,i.fillText(t,5,5),i.strokeText(t,5,5),e.debugOverlayTexture.update(n),e.debugOverlayTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE)}(t,C);let w=d._tileDebugTextBuffer||t.debugBuffer,T=d._tileDebugTextIndexBuffer||t.quadTriangleIndexBuffer,E=d._tileDebugTextSegments||t.debugSegments;u.draw(i,o.TRIANGLES,f,p,e.ColorMode.alphaBlended,e.CullFaceMode.disabled,Kn(l,e.Color.transparent,S),h,w,T,E,null,null,null,[d._globeTileDebugTextBuffer])}function Er(e,t,n,r){Or(e,0,t+n/2,e.transform.width,n,r)}function Dr(e,t,n,r){Or(e,t-n/2,0,n,e.transform.height,r)}function Or(t,n,r,i,a,o){let s=t.context,c=s.gl;
1233c.enable(c.SCISSOR_TEST),c.scissor(n*e.exported.devicePixelRatio,r*e.exported.devicePixelRatio,i*e.exported.devicePixelRatio,a*e.exported.devicePixelRatio),s.clear({color:o}),c.disable(c.SCISSOR_TEST)}let{members:kr}=e.createLayout([{name:`a_pos_3f`,components:3,type:`Float32`}]);function Ar(e,t,n,r){e.emplaceBack(t,n,r)}class jr{constructor(t){this.vertexArray=new e.StructArrayLayout3f12,this.indices=new e.StructArrayLayout3ui6,Ar(this.vertexArray,-1,-1,1),Ar(this.vertexArray,1,-1,1),Ar(this.vertexArray,-1,1,1),Ar(this.vertexArray,1,1,1),Ar(this.vertexArray,-1,-1,-1),Ar(this.vertexArray,1,-1,-1),Ar(this.vertexArray,-1,1,-1),Ar(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=t.createVertexBuffer(this.vertexArray,kr),this.indexBuffer=t.createIndexBuffer(this.indices),this.segment=e.SegmentVector.simpleSegment(0,0,36,12)}}function Mr(t,n,r,i,a,o){let s=t.gl,c=n.paint.get(`sky-atmosphere-color`),l=n.paint.get(`sky-atmosphere-halo-color`),u=n.paint.get(`sky-atmosphere-sun-intensity`),d=((e,t,n,r,i)=>({u_matrix_3f:e,u_sun_direction:t,u_sun_intensity:n,u_color_tint_r:[r.r,r.g,r.b,r.a],u_color_tint_m:[i.r,i.g,i.b,i.a],u_luminance:5e-5}))(e.fromMat4(e.create$1(),i),a,u,c,l);s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_CUBE_MAP_POSITIVE_X+o,n.skyboxTexture,0),r.draw(t,s.TRIANGLES,e.DepthMode.disabled,e.StencilMode.disabled,e.ColorMode.unblended,e.CullFaceMode.frontCW,d,`skyboxCapture`,n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}let Nr=e.createLayout([{type:`Float32`,name:`a_pos`,components:3},{type:`Float32`,name:`a_uv`,components:2}]);class Pr{constructor(t){let n=new e.StructArrayLayout5f20;n.emplaceBack(-1,1,1,0,0),n.emplaceBack(1,1,1,1,0),n.emplaceBack(1,-1,1,1,1),n.emplaceBack(-1,-1,1,0,1);let r=new e.StructArrayLayout3ui6;r.emplaceBack(0,1,2),r.emplaceBack(2,3,0),this.vertexBuffer=t.createVertexBuffer(n,Nr.members),this.indexBuffer=t.createIndexBuffer(r),this.segments=e.SegmentVector.simpleSegment(0,0,4,2)}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy()}}let Fr={symbol:function(t,n,r,i,a){if(t.renderPass!==`translucent`)return;let o=e.StencilMode.disabled,s=t.colorModeForRenderPass();r.layout.get(`text-variable-anchor`)&&function(t,n,r,i,a,o,s){let c=n.transform,l=a===`map`,u=o===`map`;for(let n of t){let t=i.getTile(n),a=t.getBucket(r);if(!a||!a.text||!a.text.segments.get().length)continue;let o=e.evaluateSizeForZoom(a.textSizeData,c.zoom),d=Et(n,a.getProjection(),c),f=c.calculatePixelsToTileUnitsMatrix(t),p=ft(d,t.tileID.canonical,u,l,c,a.getProjection(),f),m=r.layout.get(`icon-text-fit`)!==`none`&&a.hasIconData();if(o){let r=2**(c.zoom-t.tileID.overscaledZ);pr(a,l,u,s,e.symbolSize,c,p,n,r,o,m)}}}(i,t,r,n,r.layout.get(`text-rotation-alignment`),r.layout.get(`text-pitch-alignment`),a),r.paint.get(`icon-opacity`).constantOr(1)!==0&&hr(t,n,r,i,!1,r.paint.get(`icon-translate`),r.paint.get(`icon-translate-anchor`),r.layout.get(`icon-rotation-alignment`),r.layout.get(`icon-pitch-alignment`),r.layout.get(`icon-keep-upright`),o,s),r.paint.get(`text-opacity`).constantOr(1)!==0&&hr(t,n,r,i,!0,r.paint.get(`text-translate`),r.paint.get(`text-translate-anchor`),r.layout.get(`text-rotation-alignment`),r.layout.get(`text-pitch-alignment`),r.layout.get(`text-keep-upright`),o,s),n.map.showCollisionBoxes&&(ur(t,n,r,i,r.paint.get(`text-translate`),r.paint.get(`text-translate-anchor`),!0),ur(t,n,r,i,r.paint.get(`icon-translate`),r.paint.get(`icon-translate-anchor`),!1))},circle:function(t,n,r,i){if(t.renderPass!==`translucent`)return;let a=r.paint.get(`circle-opacity`),o=r.paint.get(`circle-stroke-width`),s=r.paint.get(`circle-stroke-opacity`),c=r.layout.get(`circle-sort-key`).constantOr(1)!==void 0;if(a.constantOr(1)===0&&(o.constantOr(1)===0||s.constantOr(1)===0))return;let l=t.context,u=l.gl,d=t.transform,f=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),p=e.StencilMode.disabled,m=t.colorModeForRenderPass(),h=d.projection.name===`globe`,g=[e.mercatorXfromLng(d.center.lng),e.mercatorYfromLat(
1233d.center.lat)],_=[];for(let a=0;a<i.length;a++){let o=i[a],s=n.getTile(o),l=s.getBucket(r);if(!l||l.projection.name!==d.projection.name)continue;let u=l.programConfigurations.get(r.id),f=Wn(r);h&&f.push(`PROJECTION_GLOBE_VIEW`);let p={programConfiguration:u,program:t.useProgram(`circle`,u,f),layoutVertexBuffer:l.layoutVertexBuffer,globeExtVertexBuffer:l.globeExtVertexBuffer,indexBuffer:l.indexBuffer,uniformValues:Un(t,o,s,d.projection.createInversionMatrix(d,o.canonical),g,r),tile:s};if(c){let t=l.segments.get();for(let n of t)_.push({segments:new e.SegmentVector([n]),sortKey:n.sortKey,state:p})}else _.push({segments:l.segments,sortKey:0,state:p})}c&&_.sort(((e,t)=>e.sortKey-t.sortKey));let v={useDepthForOcclusion:!h};for(let n of _){let{programConfiguration:i,program:a,layoutVertexBuffer:o,globeExtVertexBuffer:s,indexBuffer:c,uniformValues:h,tile:g}=n.state,_=n.segments;t.terrain&&t.terrain.setupElevationDraw(g,a,v),t.prepareDrawProgram(l,a,g.tileID.toUnwrapped()),a.draw(l,u.TRIANGLES,f,p,m,e.CullFaceMode.disabled,h,r.id,o,c,_,r.paint,d.zoom,i,[s])}},heatmap:function(t,n,r,i){if(r.paint.get(`heatmap-opacity`)!==0)if(t.renderPass===`offscreen`){let a=t.context,o=a.gl,s=e.StencilMode.disabled,c=new e.ColorMode([o.ONE,o.ONE],e.Color.transparent,[!0,!0,!0,!0]);(function(e,t,n,r){let i=e.gl,a=t.width*r,o=t.height*r;e.activeTexture.set(i.TEXTURE1),e.viewport.set([0,0,a,o]);let s=n.heatmapFbo;if(!s||s&&(s.width!==a||s.height!==o)){s&&s.destroy();let t=i.createTexture();i.bindTexture(i.TEXTURE_2D,t),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),s=n.heatmapFbo=e.createFramebuffer(a,o,!1),function(e,t,n,r,i,a){let o=e.gl;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,i,a,0,o.RGBA,e.extRenderToTextureHalfFloat?e.extTextureHalfFloat.HALF_FLOAT_OES:o.UNSIGNED_BYTE,null),r.colorAttachment.set(n)}(e,0,t,s,a,o)}else i.bindTexture(i.TEXTURE_2D,s.colorAttachment.get()),e.bindFramebuffer.set(s.framebuffer)})(a,t,r,t.transform.projection.name===`globe`?.5:.25),a.clear({color:e.Color.transparent});let l=t.transform,u=l.projection.name===`globe`,d=u?[`PROJECTION_GLOBE_VIEW`]:null,f=u?e.CullFaceMode.frontCCW:e.CullFaceMode.disabled,p=[e.mercatorXfromLng(l.center.lng),e.mercatorYfromLat(l.center.lat)];for(let m=0;m<i.length;m++){let h=i[m];if(n.hasRenderableParent(h))continue;let g=n.getTile(h),_=g.getBucket(r);if(!_||_.projection.name!==l.projection.name)continue;let v=_.programConfigurations.get(r.id),y=t.useProgram(`heatmap`,v,d),{zoom:b}=t.transform;t.terrain&&t.terrain.setupElevationDraw(g,y),t.prepareDrawProgram(a,y,h.toUnwrapped());let x=l.projection.createInversionMatrix(l,h.canonical);y.draw(a,o.TRIANGLES,e.DepthMode.disabled,s,c,f,Jn(t,h,g,x,p,b,r.paint.get(`heatmap-intensity`)),r.id,_.layoutVertexBuffer,_.indexBuffer,_.segments,r.paint,t.transform.zoom,v,u?[_.globeExtVertexBuffer]:null)}a.viewport.set([0,0,t.width,t.height])}else t.renderPass===`translucent`&&(t.context.setColorMode(t.colorModeForRenderPass()),function(t,n){let r=t.context,i=r.gl,a=n.heatmapFbo;if(!a)return;r.activeTexture.set(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,a.colorAttachment.get()),r.activeTexture.set(i.TEXTURE1);let o=n.colorRampTexture;o||=n.colorRampTexture=new e.Texture(r,n.colorRamp,i.RGBA),o.bind(i.LINEAR,i.CLAMP_TO_EDGE),t.useProgram(`heatmapTexture`).draw(r,i.TRIANGLES,e.DepthMode.disabled,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.disabled,((e,t,n,r)=>({u_image:0,u_color_ramp:1,u_opacity:t.paint.get(`heatmap-opacity`)}))(0,n),n.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments,n.paint,t.transform.zoom)}(t,r))},line:function(t,n,r,i){if(t.renderPass!==`translucent`)return;let a=r.paint.get(`line-opacity`),o=r.paint.get(`line-width`);if(a.constantOr(1)===0||o.constantOr(1)===0)return;let s=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),c=t.colorModeForRenderPass(),l=t.terrain&&t.terrain.renderingToTexture?1:e.exported.devicePixelRatio,u=r.paint.get(`line-dasharray`),d=u.constantOr(1),f=r.layout.get(`line-cap`),p=r.paint.get(`line-pattern`),m=p.constantOr(1),h=r.paint.get(`line-gradient`),g=m?`linePattern`:`line`,_=t.context,v=_.gl,y=(e=>{let t=[];$n(e)&&t.push(`RENDER_LINE_DASH`),e.paint.get(`line-gradient`)&&t.push(`RENDER_LINE_GRADIENT`);let n=e.paint.get(`line-trim-offset`);n[0]===0&&n[1]===0||t.push(`RENDER_LINE_TRIM_OFFSET`);let r=e.paint.get(`line-pattern`).constantOr(1),i=e.paint.get(`line-opacity`).constantOr(1)!==1;return!r&&i&&t.push(`RENDER_LINE_ALPHA_DISCARD`),t})(r),b=y.includes(`RENDER_LINE_ALPHA_DISCARD`);t.terrain&&t.terrain.clipOrMaskOverlapStencilType()&&(b=!1);for(let a of i){let i=n.getTile(a);if(m&&!i.patternsLoaded())continue;let o=i.getBucket(r);
1233if(!o)continue;t.prepareDrawTile();let x=o.programConfigurations.get(r.id),S=t.useProgram(g,x,y),C=p.constantOr(null);if(C&&i.imageAtlas){let e=i.imageAtlas.patternPositions[C.toString()];e&&x.setConstantPatternPositions(e)}let w=u.constantOr(null),T=f.constantOr(null);if(!m&&w&&T&&i.lineAtlas){let e=i.lineAtlas.getDash(w,T);e&&x.setConstantPatternPositions(e)}let[E,D]=r.paint.get(`line-trim-offset`);(T===`round`||T===`square`)&&E!==D&&(E===0&&--E,D===1&&(D+=1));let O=t.terrain?a.projMatrix:null,k=m?Xn(t,i,r,O,l):Yn(t,i,r,O,o.lineClipsArray.length,l,[E,D]);if(h){let i=o.gradients[r.id],s=i.texture;if(r.gradientVersion!==i.version){let c=256;if(r.stepInterpolant){let r=n.getSource().maxzoom,i=a.canonical.z===r?Math.ceil(1<<t.transform.maxZoom-a.canonical.z):1;c=e.clamp(e.nextPowerOfTwo(o.maxLineLength/e.EXTENT*1024*i),256,_.maxTextureSize)}i.gradient=e.renderColorRamp({expression:r.gradientExpression(),evaluationKey:`lineProgress`,resolution:c,image:i.gradient||void 0,clips:o.lineClipsArray}),i.texture?i.texture.update(i.gradient):i.texture=new e.Texture(_,i.gradient,v.RGBA),i.version=r.gradientVersion,s=i.texture}_.activeTexture.set(v.TEXTURE1),s.bind(r.stepInterpolant?v.NEAREST:v.LINEAR,v.CLAMP_TO_EDGE)}d&&(_.activeTexture.set(v.TEXTURE0),i.lineAtlasTexture.bind(v.LINEAR,v.REPEAT),x.updatePaintBuffers()),m&&(_.activeTexture.set(v.TEXTURE0),i.imageAtlasTexture.bind(v.LINEAR,v.CLAMP_TO_EDGE),x.updatePaintBuffers()),t.prepareDrawProgram(_,S,a.toUnwrapped());let A=n=>{S.draw(_,v.TRIANGLES,s,n,c,e.CullFaceMode.disabled,k,r.id,o.layoutVertexBuffer,o.indexBuffer,o.segments,r.paint,t.transform.zoom,x,[o.layoutVertexBuffer2])};if(b){let n=t.stencilModeForClipping(a).ref;n===0&&t.terrain&&_.clear({stencil:0});let r={func:v.EQUAL,mask:255};k.u_alpha_discard_threshold=.8,A(new e.StencilMode(r,n,255,v.KEEP,v.KEEP,v.INVERT)),k.u_alph
1233a_discard_threshold=0,A(new e.StencilMode(r,n,255,v.KEEP,v.KEEP,v.KEEP))}else A(t.stencilModeForClipping(a))}b&&(t.resetStencilClippingMasks(),t.terrain&&_.clear({stencil:0}))},fill:function(t,n,r,i){let a=r.paint.get(`fill-color`),o=r.paint.get(`fill-opacity`);if(o.constantOr(1)===0)return;let s=t.colorModeForRenderPass(),c=r.paint.get(`fill-pattern`),l=t.opaquePassEnabledForLayer()&&!c.constantOr(1)&&a.constantOr(e.Color.transparent).a===1&&o.constantOr(0)===1?`opaque`:`translucent`;t.renderPass===l&&_r(t,n,r,i,t.depthModeForSublayer(1,t.renderPass===`opaque`?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly),s,!1),t.renderPass===`translucent`&&r.paint.get(`fill-antialias`)&&_r(t,n,r,i,t.depthModeForSublayer(r.getPaintProperty(`fill-outline-color`)?2:0,e.DepthMode.ReadOnly),s,!0)},"fill-extrusion":function(t,n,r,i){let a=r.paint.get(`fill-extrusion-opacity`);if(a!==0&&t.renderPass===`translucent`){let o=new e.DepthMode(t.context.gl.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D);if(a!==1||r.paint.get(`fill-extrusion-pattern`).constantOr(1))vr(t,n,r,i,o,e.StencilMode.disabled,e.ColorMode.disabled),vr(t,n,r,i,o,t.stencilModeFor3D(),t.colorModeForRenderPass()),t.resetStencilClippingMasks();else{let a=t.colorModeForRenderPass();vr(t,n,r,i,o,e.StencilMode.disabled,a)}}},hillshade:function(t,n,r,i){if(t.renderPass!==`offscreen`&&t.renderPass!==`translucent`)return;let a=t.context,o=t.depthModeForSublayer(0,e.DepthMode.ReadOnly),s=t.colorModeForRenderPass(),c=t.terrain&&t.terrain.renderingToTexture,[l,u]=t.renderPass!==`translucent`||c?[{},i]:t.stencilConfigForOverlap(i);for(let i of u){let a=n.getTile(i);a.needsHillshadePrepare&&t.renderPass===`offscreen`?bn(t,a,r,o,e.StencilMode.disabled,s):t.renderPass===`translucent`&&vn(t,i,a,r,o,c&&t.terrain?t.terrain.stencilModeForRTTOverlap(i):l[i.overscaledZ],s)}a.viewport.set([0,0,t.width,t.height]),t.resetStencilClippingMasks()},raster:function(t,n,r,i,a,o){if(t.renderPass!==`translucent`||r.paint.get(`raster-opacity`)===0||!i.length)return;let s=t.context,c=s.gl,l=n.getSource(),u=t.useProgram(`raster`),d=t.colorModeForRenderPass(),f=t.terrain&&t.terrain.renderingToTexture,[p,m]=l instanceof Ue||f?[{},i]:t.stencilConfigForOverlap(i),h=m[m.length-1].overscaledZ,g=!t.options.moving;for(let i of m){let a=f?e.DepthMode.disabled:t.depthModeForSublayer(i.overscaledZ-h,r.paint.get(`raster-opacity`)===1?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly,c.LESS),m=i.toUnwrapped(),_=n.getTile(i);if(f&&(!_||!_.hasData()))continue;let v=f?i.projMatrix:t.transform.calculateProjMatrix(m,g),y=t.terrain&&f?t.terrain.stencilModeForRTTOverlap(i):p[i.overscaledZ],b=o?0:r.paint.get(`raster-fade-duration`);_.registerFadeDuration(b);let x=n.findLoadedParent(i,0),S=kn(_,x,n,t.transform,b),C,w;t.terrain&&t.terrain.prepareDrawTile();let T=r.paint.get(`raster-resampling`)===`nearest`?c.NEAREST:c.LINEAR;s.activeTexture.set(c.TEXTURE0),_.texture.bind(T,c.CLAMP_TO_EDGE),s.activeTexture.set(c.TEXTURE1),x?(x.texture.bind(T,c.CLAMP_TO_EDGE),C=2**(x.tileID.overscaledZ-_.tileID.overscaledZ),w=[_.tileID.canonical.x*C%1,_.tileID.canonical.y*C%1]):_.texture.bind(T,c.CLAMP_TO_EDGE);let E=er(v,w||[0,0],C||1,S,r,l instanceof Ue?l.perspectiveTransform:[0,0]);if(t.prepareDrawProgram(s,u,m),l instanceof Ue)l.boundsBuffer&&l.boundsSegments&&u.draw(s,c.TRIANGLES,a,e.StencilMode.disabled,d,e.CullFaceMode.disabled,E,r.id,l.boundsBuffer,t.quadTriangleIndexBuffer,l.boundsSegments);else{let{tileBoundsBuffer:n,tileBoundsIndexBuffer:i,tileBoundsSegments:o}=t.getTileBoundsBuffers(_);u.draw(s,c.TRIANGLES,a,y,d,e.CullFaceMode.disabled,E,r.id,n,i,o)}}t.resetStencilClippingMasks()},background:function(t,n,r,i){let a=r.paint.get(`background-color`),o=r.paint.get(`background-opacity`);if(o===0)return;let s=t.context,c=s.gl,l=t.transform,u=l.tileSize,d=r.paint.get(`background-pattern`);if(t.isPatternMissing(d))return;let f=!d&&a.a===1&&o===1&&t.opaquePassEnabledForLayer()?`opaque`:`translucent`;if(t.renderPass!==f)return;let p=e.StencilMode.disabled,m=t.depthModeForSublayer(0,f===`opaque`?e.DepthMode.ReadWrite:e.DepthMode.ReadOnly),h=t.colorModeForRenderPass(),g=t.useProgram(d?`backgroundPattern`:`background`),_,v=i;
1233v||=(_=t.getBackgroundTiles(),Object.values(_).map((e=>e.tileID))),d&&(s.activeTexture.set(c.TEXTURE0),t.imageManager.bind(t.context));for(let f of v){let v=f.toUnwrapped(),y=i?f.projMatrix:t.transform.calculateProjMatrix(v);t.prepareDrawTile();let b=n?n.getTile(f):_?_[f.key]:new e.Tile(f,u,l.zoom,t),x=d?sr(y,o,t,d,{tileID:f,tileSize:u}):or(y,o,a);t.prepareDrawProgram(s,g,v);let{tileBoundsBuffer:S,tileBoundsIndexBuffer:C,tileBoundsSegments:w}=t.getTileBoundsBuffers(b);g.draw(s,c.TRIANGLES,m,p,h,e.CullFaceMode.disabled,x,r.id,S,C,w)}},sky:function(t,n,r){let i=t.transform,a=i.projection.name===`mercator`||i.projection.name===`globe`?1:e.smoothstep(7,8,i.zoom),o=r.paint.get(`sky-opacity`)*a;if(o===0)return;let s=t.context,c=r.paint.get(`sky-type`),l=new e.DepthMode(s.gl.LEQUAL,e.DepthMode.ReadOnly,[0,1]),u=t.frameCounter/1e3%1;c===`atmosphere`?t.renderPass===`offscreen`?r.needsSkyboxCapture(t)&&(function(t,n,r,i){let a=t.context,o=a.gl,s=n.skyboxFbo;if(!s){s=n.skyboxFbo=a.createFramebuffer(32,32,!1),n.skyboxGeometry=new jr(a),n.skyboxTexture=a.gl.createTexture(),o.bindTexture(o.TEXTURE_CUBE_MAP,n.skyboxTexture),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_CUBE_MAP,o.TEXTURE_MAG_FILTER,o.LINEAR);for(let e=0;e<6;++e)o.texImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,o.RGBA,32,32,0,o.RGBA,o.UNSIGNED_BYTE,null)}a.bindFramebuffer.set(s.framebuffer),a.viewport.set([0,0,32,32]);let c=n.getCenter(t,!0),l=t.useProgram(`skyboxCapture`),u=new Float64Array(16);e.identity(u),e.rotateY(u,u,.5*-Math.PI),Mr(a,n,l,u,c,0),e.identity(u),e.rotateY(u,u,.5*Math.PI),Mr(a,n,l,u,c,1),e.identity(u),e.rotateX(u,u,.5*-Math.PI),Mr(a,n,l,u,c,2),e.identity(u),e.rotateX(u,u,.5*Math.PI),Mr(a,n,l,u,c,3),e.identity(u),Mr(a,n,l,u,c,4),e.identity(u),e.rotateY(u,u,Math.PI),Mr(a,n,l,u,c,5),a.viewport.set([0,0,t.width,t.height])}(t,r),r.markSkyboxValid(t)):t.renderPass===`sky`&&function(t,n,r,i,a){let o=t.context,s=o.gl,c=t.transform,l=t.useProgram(`skybox`);o.activeTexture.set(s.TEXTURE0),s.bindTexture(s.TEXTURE_CUBE_MAP,n.skyboxTexture);let u=((e,t,n,r,i)=>({u_matrix:e,u_sun_direction:t,u_cubemap:0,u_opacity:r,u_temporal_offset:i}))(c.skyboxMatrix,n.getCenter(t,!1),0,i,a);t.prepareDrawProgram(o,l),l.draw(o,s.TRIANGLES,r,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.backCW,u,`skybox`,n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}(t,r,l,o,u):c===`gradient`&&t.renderPass===`sky`&&function(t,n,r,i,a){let o=t.context,s=o.gl,c=t.transform,l=t.useProgram(`skyboxGradient`);n.skyboxGeometry||=new jr(o),o.activeTexture.set(s.TEXTURE0);let u=n.colorRampTexture;u||=n.colorRampTexture=new e.Texture(o,n.colorRamp,s.RGBA),u.bind(s.LINEAR,s.CLAMP_TO_EDGE);let d=((t,n,r,i,a)=>({u_matrix:t,u_color_ramp:0,u_center_direction:n,u_radius:e.degToRad(r),u_opacity:i,u_temporal_offset:a}))(c.skyboxMatrix,n.getCenter(t,!1),n.paint.get(`sky-gradient-radius`),i,a);t.prepareDrawProgram(o,l),l.draw(o,s.TRIANGLES,r,e.StencilMode.disabled,t.colorModeForRenderPass(),e.CullFaceMode.backCW,d,`skyboxGradient`,n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}(t,r,l,o,u)},debug:function(e,t,n){for(let r=0;r<n.length;r++)Tr(e,t,n[r])},custom:function(t,n,r){let i=t.context,a=r.implementation;if(t.transform.projection.unsupportedLayers&&t.transform.projection.unsupportedLayers.includes(`custom`))e.warnOnce(`Custom layers are not yet supported with non-mercator projections. Use mercator to enable custom layers.`);else if(t.renderPass===`offscreen`){let e=a.prerender;e&&(t.setCustomLayerDefaults(),i.setColorMode(t.colorModeForRenderPass()),e.call(a,i.gl,t.transform.customLayerMatrix()),i.setDirty(),t.setBaseState())}else if(t.renderPass===`translucent`){t.setCustomLayerDefaults(),i.setColorMode(t.colorModeForRenderPass()),i.setStencilMode(e.StencilMode.disabled);let n=a.renderingMode===`3d`?new e.DepthMode(t.context.gl.LEQUAL,e.DepthMode.ReadWrite,t.depthRangeFor3D):t.depthModeForSublayer(0,e.DepthMode.ReadOnly);i.setDepthMode(n),a.render(i.gl,t.transform.customLayerMatrix()),i.setDirty(),t.setBaseState(),i.bindFramebuffer.set(null)}}};class Ir{constructor(t,n){this.context=new ze(t),this.transform=n,this._tileTextures={},this.frameCopies=[],this.loadTimeStamps=[],this.setup(),this.numSublayers=e.SourceCache.maxUnderzooming+e.SourceCache.maxOverzooming+1,this.depthEpsilon=1/2**16,this.crossTileSymbolIndex=new Yt,this.deferredRenderGpuTimeQueries=[],this.gpuTimers={},this.frameCounter=0,this._backgroundTiles={}}updateTerrain(e,t){let n=!!e&&!!e.terrain&&this.transform.projection.supportsTerrain;if(!(n||this._terrain&&this._terrain.enabled))return;this._terrain||=new Nn(this,e);let r=this._terrain;this.transform.elevation=n?r:null,r.update(e,this.transform,t)}_updateFog(e){let t=e.fog;if(!t||this.transform.projection.name===`globe`||t.getOpacity(this.transform.pitch)<1||t.properties.get(`horizon-blend`)<.03)return void(this.transform.fogCullDistSq=null);let[n,r]=t.getFovAdjustedRange(this.transform._fov);if(n>r)return void(this.transform.fogCullDistSq=null);let i=n+.78*(r-n);this.transform.fogCullDistSq=i*i}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(t,n){if(this.width=t*e.exported.devicePixelRatio,this.height=n*e.exp
1233orted.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let e of this.style.order)this.style._layers[e].resize()}setup(){let t=this.context,n=new e.StructArrayLayout2i4;n.emplaceBack(0,0),n.emplaceBack(e.EXTENT,0),n.emplaceBack(0,e.EXTENT),n.emplaceBack(e.EXTENT,e.EXTENT),this.tileExtentBuffer=t.createVertexBuffer(n,e.posAttributes.members),this.tileExtentSegments=e.SegmentVector.simpleSegment(0,0,4,2);let r=new e.StructArrayLayout2i4;r.emplaceBack(0,0),r.emplaceBack(e.EXTENT,0),r.emplaceBack(0,e.EXTENT),r.emplaceBack(e.EXTENT,e.EXTENT),this.debugBuffer=t.createVertexBuffer(r,e.posAttributes.members),this.debugSegments=e.SegmentVector.simpleSegment(0,0,4,5);let i=new e.StructArrayLayout2i4;i.emplaceBack(-1,-1),i.emplaceBack(1,-1),i.emplaceBack(-1,1),i.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(i,e.posAttributes.members),this.viewportSegments=e.SegmentVector.simpleSegment(0,0,4,2);let a=new e.StructArrayLayout4i8;a.emplaceBack(0,0,0,0),a.emplaceBack(e.EXTENT,0,e.EXTENT,0),a.emplaceBack(0,e.EXTENT,0,e.EXTENT),a.emplaceBack(e.EXTENT,e.EXTENT,e.EXTENT,e.EXTENT),this.mercatorBoundsBuffer=t.createVertexBuffer(a,e.boundsAttributes.members),this.mercatorBoundsSegments=e.SegmentVector.simpleSegment(0,0,4,2);let o=new e.StructArrayLayout3ui6;o.emplaceBack(0,1,2),o.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(o);let s=new e.StructArrayLayout1ui2;for(let e of[0,1,3,2,0])s.emplaceBack(e);this.debugIndexBuffer=t.createIndexBuffer(s),this.emptyTexture=new e.Texture(t,new e.RGBAImage({width:1,height:1},Uint8Array.of(0,0,0,0)),t.gl.RGBA),this.identityMat=e.create();let c=this.context.gl;this.stencilClearMode=new e.StencilMode({func:c.ALWAYS,mask:0},0,255,c.ZERO,c.ZERO,c.ZERO),this.loadTimeStamps.push(e.window.performance.now()),this.atmosphereBuffer=new Pr(this.context)}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(e){return e._makeTileBoundsBuffers(this.context,this.transform.projection),e._tileBoundsBuffer?{tileBoundsBuffer:e._tileBoundsBuffer,tileBoundsIndexBuffer:e._tileBoundsIndexBuffer,tileBoundsSegments:e._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){let t=this.context,n=t.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram(`clippingMask`).draw(t,n.TRIANGLES,e.DepthMode.disabled,this.stencilClearMode,e.ColorMode.disabled,e.CullFaceMode.disabled,On(this.identityMat),`$clipping`,this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(t,n,r){if(!n||this.currentStencilSource===n.id||!t.isTileClipped()||!r||r.length===0)return;if(this._tileClippingMaskIDs&&!this.terrain){let e=!1;for(let t of r)if(this._tileClippingMaskIDs[t.key]===void 0){e=!0;break}if(!e)return}this.currentStencilSource=n.id;let i=this.context,a=i.gl;this.nextStencilID+r.length>256&&this.clearStencil(),i.setColorMode(e.ColorMode.disabled),i.setDepthMode(e.DepthMode.disabled);let o=this.useProgram(`clippingMask`);this._tileClippingMaskIDs={};for(let t of r){let r=n.getTile(t),s=this._tileClippingMaskIDs[t.key]=this.nextStencilID++,{tileBoundsBuffer:c,tileBoundsIndexBuffer:l,tileBoundsSegments:u}=this.getTileBoundsBuffers(r);o.draw(i,a.TRIANGLES,e.DepthMode.disabled,new e.StencilMode({func:a.ALWAYS,mask:0},s,255,a.KEEP,a.KEEP,a.REPLACE),e.ColorMode.disabled,e.CullFaceMode.disabled,On(t.projMatrix),`$clipping`,c,l,u)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let t=this.nextStencilID++,n=this.context.gl;return new e.StencilMode({func:n.NOTEQUAL,mask:255},t,255,n.KEEP,n.KEEP,n.REPLACE)}stencilModeForClipping(t){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(t);let n=this.context.gl;return new e.StencilMode({func:n.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,n.KEEP,n.KEEP,n.REPLACE)}stencilConfigForOverlap(t){let n=this.context.gl,r=t.sort(((e,t)=>
1233t.overscaledZ-e.overscaledZ)),i=r[r.length-1].overscaledZ,a=r[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();let t={};for(let r=0;r<a;r++)t[r+i]=new e.StencilMode({func:n.GEQUAL,mask:255},r+this.nextStencilID,255,n.KEEP,n.KEEP,n.REPLACE);return this.nextStencilID+=a,[t,r]}return[{[i]:e.StencilMode.disabled},r]}colorModeForRenderPass(){let t=this.context.gl;if(this._showOverdrawInspector){let n=1/8;return new e.ColorMode([t.CONSTANT_COLOR,t.ONE],new e.Color(n,n,n,0),[!0,!0,!0,!0])}return this.renderPass===`opaque`?e.ColorMode.unblended:e.ColorMode.alphaBlended}depthModeForSublayer(t,n,r){if(!this.opaquePassEnabledForLayer())return e.DepthMode.disabled;let i=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon;return new e.DepthMode(r||this.context.gl.LEQUAL,n,[i,i])}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}render(t,n){this.style=t,this.options=n,this.imageManager=t.imageManager,this.glyphManager=t.glyphManager,this.symbolFadeChange=t.placement.symbolFadeChange(e.exported.now()),this.imageManager.beginFrame();let r=this.style.order,i=this.style._sourceCaches;for(let e in i){let t=i[e];t.used&&t.prepare(this.context)}let a={},o={},s={};for(let e in i){let t=i[e];a[e]=t.getVisibleCoordinates(),o[e]=a[e].slice().reverse(),s[e]=t.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(let e=0;e<r.length;e++)if(this.style._layers[r[e]].is3D()){this.opaquePassCutoff=e;break}if(this.terrain&&(this.terrain.updateTileBinding(s),this.opaquePassCutoff=0),this.transform.projection.name!==`globe`||this.globeSharedBuffers||(this.globeSharedBuffers=new e.GlobeSharedBuffers(this.context)),e.isMapAuthenticated(this.context.gl)){this.renderPass=`offscreen`;for(let e of r){let n=this.style._layers[e],r=t._getLayerSourceCache(n);if(!n.hasOffscreenPass()||n.isHidden(this.transform.zoom))continue;let i=r?o[r.id]:void 0;(n.type===`custom`||n.isSky()||i&&i.length)&&this.renderLayer(this,r,n,i)}if(this.depthRangeFor3D=[0,1-(t.order.length+2)*this.numSublayers*this.depthEpsilon],this.terrain&&(this.style.hasSymbolLayers()||this.style.hasCircleLayers())&&this.terrain.drawDepth(),this.context.bindFramebuffer.set(null),this.context.viewport.set([0,0,this.width,this.height]),this.context.clear({color:n.showOverdrawInspector?e.Color.black:e.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=n.showOverdrawInspector,this.renderPass=`opaque`,!this.terrain)for(this.currentLayer=r.length-1;this.currentLayer>=0;this.currentLayer--){let e=this.style._layers[r[this.currentLayer]],n=t._getLayerSourceCache(e);if(e.isSky())continue;let i=n?o[n.id]:void 0;this._renderTileClippingMasks(e,n,i),this.renderLayer(this,n,e,i)}if(this.style.fog&&this.transform.projection.supportsFog&&function(t,n){let r=t.context,i=r.gl,a=t.transform,o=new e.DepthMode(i.LEQUAL,e.DepthMode.ReadOnly,[0,1]),s=t.useProgram(`globeAtmosphere`,null,a.projection.name===`globe`?[`PROJECTION_GLOBE_VIEW`,`FOG`]:[`FOG`]),c=e.globeToMercatorTransition(a.zoom),l=n.properties.get(`color`).toArray01(),u=n.properties.get(`high-color`).toArray01(),d=n.properties.get(`space-color`).toArray01PremultipliedAlpha(),f=e.identity$1([]);e.rotateY$1(f,f,-e.degToRad(a._center.lng)),e.rotateX$1(f,f,e.degToRad(a._center.lat)),e.rotateZ$1(f,f,a.angle),e.rotateX$1(f,f,-a._pitch);let p=e.fromQuat(new Float32Array(16),f),m=e.mapValue(n.properties.get(`star-intensity`),0,1,0,.25),h=5e-4,g=e.mapValue(n.properties.get(`horizon-blend`),0,1,h,.25),_=e.globeUseCustomAntiAliasing(t,r,a)&&g===h?a.worldSize/(2*Math.PI*1.025)-1:a.globeRadius,v=t.frameCounter/1e3%1,y=e.length(a.globeCenterInViewSpace),b=Math.sqrt(y**2-_**2),x=Math.acos(b/y),S=((t,n,r,i,a,o,s,c,l,u,d,f,p,m)=>({u_frustum_tl:t,u_frustum_tr:n,u_frustum_br:r,u_frustum_bl:i,u_horizon:a,u_transition:o,u_fadeout_range:s,u_color:c,u_high_color:l,u_space_color:u,u_star_intensity:d,u_star_size:5*e.exported.devicePixelRatio,u_star_density:0,u_temporal_offset:f,u_horizon_angle:p,u_rotation_matrix:m}))(a.frustumCorners.TL,a.frustumCorners.TR,a.frustumCorners.BR,a.frustumCorners.BL,a.frustumCorners.horizon,c,g,l,u,d,m,v,x,p);t.prepareDrawProgram(r,s);let C=t.atmosphereBuffer;C&&s.draw(r,i.TRIANGLES,o,e.StencilMode.disabled,e.ColorMode.alphaBlended,e.CullFaceMode.backCW,S,`skybox`,C.vertexBuffer,C.indexBuffer,C.segments)}(this,this.style.fog),this.renderPass=`sky`,(e.globeToMercatorTransition(this.transform.zoom)>0||this.transform.projection.name!==`globe`)&&this.transform.isH
1233orizonVisible())for(this.currentLayer=0;this.currentLayer<r.length;this.currentLayer++){let e=this.style._layers[r[this.currentLayer]],n=t._getLayerSourceCache(e);e.isSky()&&this.renderLayer(this,n,e,n?o[n.id]:void 0)}for(this.renderPass=`translucent`,this.currentLayer=0;this.currentLayer<r.length;){let e=this.style._layers[r[this.currentLayer]],n=t._getLayerSourceCache(e);if(e.isSky()){++this.currentLayer;continue}if(this.terrain&&this.style.isLayerDraped(e)){if(e.isHidden(this.transform.zoom)){++this.currentLayer;continue}this.currentLayer=this.terrain.renderBatch(this.currentLayer);continue}let i=n?(e.type===`symbol`?s:o)[n.id]:void 0;this._renderTileClippingMasks(e,n,n?a[n.id]:void 0),this.renderLayer(this,n,e,i),++this.currentLayer}if(this.terrain&&this.terrain.postRender(),this.options.showTileBoundaries||this.options.showQueryGeometry||this.options.showTileAABBs){let n=null;e.values(this.style._layers).forEach((e=>{let r=t._getLayerSourceCache(e);r&&!e.isHidden(this.transform.zoom)&&(!n||n.getSource().maxzoom<r.getSource().maxzoom)&&(n=r)})),n&&this.options.showTileBoundaries&&Fr.debug(this,n,n.getVisibleCoordinates())}this.options.showPadding&&function(e){let t=e.transform.padding;Er(e,e.transform.height-(t.top||0),3,br),Er(e,t.bottom||0,3,xr),Dr(e,t.left||0,3,Sr),Dr(e,e.transform.width-(t.right||0),3,Cr);let n=e.transform.centerPoint;(function(e,t,n,r){Or(e,t-1,n-10,2,20,r),Or(e,t-10,n-1,20,2,r)})(e,n.x,e.transform.height-n.y,wr)}(this),this.context.setDefault(),this.frameCounter=(this.frameCounter+1)%(2**53-1),this.tileLoaded&&this.options.speedIndexTiming&&(this.loadTimeStamps.push(e.window.performance.now()),this.saveC
1233anvasCopy())}}renderLayer(e,t,n,r){n.isHidden(this.transform.zoom)||(n.type===`background`||n.type===`sky`||n.type===`custom`||r&&r.length)&&(this.id=n.id,this.gpuTimingStart(n),e.transform.projection.unsupportedLayers&&e.transform.projection.unsupportedLayers.includes(n.type)||Fr[n.type](e,t,n,r,this.style.placement.variableOffsets,this.options.isInitialLoad),this.gpuTimingEnd())}gpuTimingStart(e){if(!this.options.gpuTiming)return;let t=this.context.extTimerQuery,n=this.gpuTimers[e.id];n||=this.gpuTimers[e.id]={calls:0,cpuTime:0,query:t.createQueryEXT()},n.calls++,t.beginQueryEXT(t.TIME_ELAPSED_EXT,n.query)}gpuTimingDeferredRenderStart(){if(this.options.gpuTimingDeferredRender){let e=this.context.extTimerQuery,t=e.createQueryEXT();this.deferredRenderGpuTimeQueries.push(t),e.beginQueryEXT(e.TIME_ELAPSED_EXT,t)}}gpuTimingDeferredRenderEnd(){if(!this.options.gpuTimingDeferredRender)return;let e=this.context.extTimerQuery;e.endQueryEXT(e.TIME_ELAPSED_EXT)}gpuTimingEnd(){if(!this.options.gpuTiming)return;let e=this.context.extTimerQuery;e.endQueryEXT(e.TIME_ELAPSED_EXT)}collectGpuTimers(){let e=this.gpuTimers;return this.gpuTimers={},e}collectDeferredRenderGpuQueries(){let e=this.deferredRenderGpuTimeQueries;return this.deferredRenderGpuTimeQueries=[],e}queryGpuTimers(e){let t={};for(let n in e){let r=e[n],i=this.context.extTimerQuery,a=i.getQueryObjectEXT(r.query,i.QUERY_RESULT_EXT)/1e6;i.deleteQueryEXT(r.query),t[n]=a}return t}queryGpuTimeDeferredRender(e){if(!this.options.gpuTimingDeferredRender)return 0;let t=this.context.extTimerQuery,n=0;for(let r of e)n+=t.getQueryObjectEXT(r,t.QUERY_RESULT_EXT)/1e6,t.deleteQueryEXT(r);return n}translatePosMatrix(t,n,r,i,a){if(!r[0]&&!r[1])return t;let o=a?i===`map`?this.transform.angle:0:i===`viewport`?-this.transform.angle:0;if(o){let e=Math.sin(o),t=Math.cos(o);r=[r[0]*t-r[1]*e,r[0]*e+r[1]*t]}let s=[a?r[0]:A(n,r[0],this.transform.zoom),a?r[1]:A(n,r[1],this.transform.zoom),0],c=new Float32Array(16);return e.translate(c,t,s),c}saveTileTexture(e){let t=this._tileTextures[e.size[0]];t?t.push(e):this._tileTextures[e.size[0]]=[e]}getTileTexture(e){let t=this._tileTextures[e];return t&&t.length>0?t.pop():null}isPatternMissing(e){return e===null||e!==void 0&&!this.imageManager.getPattern(e.toString())}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture}currentGlobalDefines(){let e=this.terrain&&this.terrain.renderingToTexture,t=this.terrain&&this.terrain.exaggeration()===0,n=this.style&&this.style.fog,r=[];return this.terrainRenderModeElevated()&&r.push(`TERRAIN`),this.transform.projection.name===`globe`&&r.push(`GLOBE`),t&&r.push(`ZERO_EXAGGERATION`),n&&!e&&n.getOpacity(this.transform.pitch)!==0&&r.push(`FOG`),e&&r.push(`RENDER_TO_TEXTURE`),this._showOverdrawInspector&&r.push(`OVERDRAW_INSPECTOR`),r}useProgram(e,t,n){this.cache=this.cache||{};let r=n||[],i=this.currentGlobalDefines().concat(r),a=Pn.cacheKey(mn[e],e,i,t);return this.cache[a]||(this.cache[a]=new Pn(this.context,e,mn[e],t,cr[e],i)),this.cache[a]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){let 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??(this.debugOverlayCanvas=e.window.document.createElement(`canvas`),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new e.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this.atmosphereBuffer&&this.atmosphereBuffer.destroy()}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile()}prepareDrawProgram(t,n,r){if(this.terrain&&this.terrain.renderingToTexture)return;let i=this.style.fog;if(i){let a=i.getOpacity(this.transform.pitch),o=((t,n,r,i,a,o,s,c,l,u,d)=>{let f=t.transform,p=n.properties.get(`color`).toArray01();p[3]=i;let m=t.frameCounter/1e3%1;return{u_fog_matrix:r?f.calculateFogTileMatrix(r):t.identityMat,u_fog_range:n.getFovAdjustedRange(f._fov),u_fog_color:p,u_fog_horizon_blend:n.properties.get(`horizon-blend`),u_fog_temporal_offset:m,u_frustum_tl:a,u_frustum_tr:o,u_frustum_br:s,u_frustum_bl:c,u_globe_pos:l,u_globe_radius:u,u_viewport:d,u_globe_transition:e.globeToMercatorTransition(f.zoom),u_is_globe:+(f.projection.name===`globe`)}})(this,i,r,a,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*e.exported.devicePixelRatio,this.transform.height*e.exported.devicePixelRatio]);n.setFogUniformValues(t,o)}}setTileLoadedFlag(e){this.tileLoaded=e}saveCanvasCopy(){this.frameCopies.push(this.canvasCopy()),this.tileLoaded=!1}canvasCopy(){let e=this.context.gl,t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,e.drawingBufferWidth,e.drawingBufferHeight,0),t}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;let e=this.style&&this.style.fog;return!!e&&e.getOpacity(this.transform.pitch)!==0}
1233getBackgroundTiles(){let t=this._backgroundTiles,n=this._backgroundTiles={},r=this.transform.coveringTiles({tileSize:512});for(let i of r)n[i.key]=t[i.key]||new e.Tile(i,512,this.transform.tileZoom,this);return n}clearBackgroundTiles(){this._backgroundTiles={}}}class Lr{constructor(e=0,t=0,n=0,r=0){if(isNaN(e)||e<0||isNaN(t)||t<0||isNaN(n)||n<0||isNaN(r)||r<0)throw Error(`Invalid value for edge-insets, top, bottom, left and right must all be numbers`);this.top=e,this.bottom=t,this.left=n,this.right=r}interpolate(t,n,r){return n.top!=null&&t.top!=null&&(this.top=e.number(t.top,n.top,r)),n.bottom!=null&&t.bottom!=null&&(this.bottom=e.number(t.bottom,n.bottom,r)),n.left!=null&&t.left!=null&&(this.left=e.number(t.left,n.left,r)),n.right!=null&&t.right!=null&&(this.right=e.number(t.right,n.right,r)),this}getCenter(t,n){let r=e.clamp((this.left+t-this.right)/2,0,t),i=e.clamp((this.top+n-this.bottom)/2,0,n);return new e.pointGeometry(r,i)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new Lr(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function Rr(t,n){let r=e.getColumn(t,3);e.fromQuat(t,n),e.setColumn(t,3,r)}function zr(t,n){let r=e.identity$1([]);return e.rotateZ$1(r,r,-n),e.rotateX$1(r,r,-t),r}function Br(t,n){let r=[t[0],t[1],0],i=[n[0],n[1],0];if(e.length(r)>=1e-15){let t=e.normalize([],r);e.scale$2(i,t,e.dot(i,t)),n[0]=i[0],n[1]=i[1]}let a=e.cross([],n,t);if(e.len(a)<1e-15)return null;let o=Math.atan2(-a[1],a[0]);return zr(Math.atan2(Math.sqrt(t[0]*t[0]+t[1]*t[1]),-t[2]),o)}class K{constructor(e,t){this.position=e,this.orientation=t}get position(){return this._position}set position(t){if(t){let n=t instanceof e.MercatorCoordinate?t:new e.MercatorCoordinate(t[0],t[1],t[2]);
1233this._renderWorldCopies&&(n.x=e.wrap(n.x,0,1)),this._position=n}else this._position=null}lookAtPoint(t,n){if(this.orientation=null,!this.position)return;let r=this._elevation?this._elevation.getAtPointOrZero(e.MercatorCoordinate.fromLngLat(t)):0,i=this.position,a=e.MercatorCoordinate.fromLngLat(t,r),o=[a.x-i.x,a.y-i.y,a.z-i.z];n||=[0,0,1],n[2]=Math.abs(n[2]),this.orientation=Br(o,n)}setPitchBearing(t,n){this.orientation=zr(e.degToRad(t),e.degToRad(-n))}}class Vr{constructor(t,n){this._transform=e.identity([]),this.orientation=n,this.position=t}get mercatorPosition(){let t=this.position;return new e.MercatorCoordinate(t[0],t[1],t[2])}get position(){let t=e.getColumn(this._transform,3);return[t[0],t[1],t[2]]}set position(t){var n;t&&e.setColumn(this._transform,3,[(n=t)[0],n[1],n[2],1])}get orientation(){return this._orientation}set orientation(t){this._orientation=t||e.identity$1([]),t&&Rr(this._transform,this._orientation)}getPitchBearing(){let e=this.forward(),t=this.right();return{bearing:Math.atan2(-t[1],t[0]),pitch:Math.atan2(Math.sqrt(e[0]*e[0]+e[1]*e[1]),-e[2])}}setPitchBearing(e,t){this._orientation=zr(e,t),Rr(this._transform,this._orientation)}forward(){let t=e.getColumn(this._transform,2);return[-t[0],-t[1],-t[2]]}up(){let t=e.getColumn(this._transform,1);return[-t[0],-t[1],-t[2]]}right(){let t=e.getColumn(this._transform,0);return[t[0],t[1],t[2]]}getCameraToWorld(t,n){let r=new Float64Array(16);return e.invert(r,this.getWorldToCamera(t,n)),r}getWorldToCameraPosition(t,n,r){let i=this.position;e.scale$2(i,i,-t);let a=new Float64Array(16);return e.fromScaling(a,[r,r,r]),e.translate(a,a,i),a[10]*=n,a}getWorldToCamera(t,n){let r=new Float64Array(16),i=new Float64Array(4),a=this.position;return e.conjugate(i,this._orientation),e.scale$2(a,a,-t),e.fromQuat(r,i),e.translate(r,r,a),r[1]*=-1,r[5]*=-1,r[9]*=-1,r[13]*=-1,r[8]*=n,r[9]*=n,r[10]*=n,r[11]*=n,r}getCameraToClipPerspective(t,n,r,i){let a=new Float64Array(16);return e.perspective(a,t,n,r,i),a}getDistanceToElevation(t,n=!1){let r=t===0?0:e.mercatorZfromAltitude(t,n?e.latFromMercatorY(this.position[1]):this.position[1]),i=this.forward();return(r-this.position[2])/i[2]}clone(){return new Vr([...this.position],[...this.orientation])}}function Hr(t,n){let r=Wr(t.projection,t.zoom,t.width,t.height),i=function(t,n,r,i,a){let o=new e.LngLat(r.lng-180*Gr,r.lat),s=new e.LngLat(r.lng+180*Gr,r.lat),c=t.project(o.lng,o.lat),l=t.project(s.lng,s.lat),u=-Math.atan2(l.y-c.y,l.x-c.x),d=e.MercatorCoordinate.fromLngLat(r);d.y=e.clamp(d.y,-.999975,.999975);let f=d.toLngLat(),p=t.project(f.lng,f.lat),m=e.MercatorCoordinate.fromLngLat(f);m.x+=Gr;let h=m.toLngLat(),g=t.project(h.lng,h.lat),_=qr(g.x-p.x,g.y-p.y,u),v=e.MercatorCoordinate.fromLngLat(f);v.y+=Gr;let y=v.toLngLat(),b=t.project(y.lng,y.lat),x=qr(b.x-p.x,b.y-p.y,u),S=Math.abs(_.x)/Math.abs(x.y),C=e.identity([]);e.rotateZ(C,C,-u*(1-(a?0:i)));let w=e.identity([]);return e.scale(w,w,[1,1-(1-S)*i,1]),w[4]=-x.x/x.y*i,e.rotateZ(w,w,u),e.multiply(w,C,w),w}(t.projection,0,t.center,r,n),a=Ur(t);return e.scale(i,i,[a,a,1]),i}function Ur(t){let n=t.projection,r=Wr(t.projection,t.zoom,t.width,t.height),i=Kr(n,t.center),a=Kr(n,e.LngLat.convert(n.center));return 2**(i*r+(1-r)*a)}function Wr(t,n,r,i,a=1/0){let o=t.range;if(!o)return 0;let s=Math.log(Math.min(a,Math.max(r,i))/1024)/Math.LN2;return e.smoothstep(o[0]+s,o[1]+s,n)}let Gr=1/4e4;function Kr(t,n){let r=e.clamp(n.lat,-e.MAX_MERCATOR_LATITUDE,e.MAX_MERCATOR_LATITUDE),i=new e.LngLat(n.lng-180*Gr,r),a=new e.LngLat(n.lng+180*Gr,r),o=t.project(i.lng,r),s=t.project(a.lng,r),c=e.MercatorCoordinate.fromLngLat(i),l=e.MercatorCoordinate.fromLngLat(a),u=s.x-o.x,d=s.y-o.y,f=l.x-c.x,p=l.y-c.y,m=Math.sqrt((f*f+p*p)/(u*u+d*d));return Math.log(m)/Math.LN2}function qr(e,t,n){let r=Math.cos(n),i=Math.sin(n);return{x:e*r-t*i,y:e*i+t*r}}class Jr{constructor(t,n,r,i,a,o,s){this.tileSize=512,this._renderWorldCopies=a===void 0||a,this._minZoom=t||0,this._maxZoom=n||22,this._minPitch=r??0,this._maxPitch=i??60,this.setProjection(o),this.setMaxBounds(s),this.width=0,this.height=0,this._center=new e.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new Lr,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new Vr,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference=`ground`,this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._horizonShift=.1}clone(){let e=new Jr(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return e._elevation=this._elevation,e._centerAltitude=this._centerAltitude,e._centerAltitudeValidForE
1233xaggeration=this._centerAltitudeValidForExaggeration,e.tileSize=this.tileSize,e.mercatorFromTransition=this.mercatorFromTransition,e.width=this.width,e.height=this.height,e.cameraElevationReference=this.cameraElevationReference,e._center=this._center,e._setZoom(this.zoom),e._seaLevelZoom=this._seaLevelZoom,e.angle=this.angle,e._fov=this._fov,e._pitch=this._pitch,e._nearZ=this._nearZ,e._farZ=this._farZ,e._averageElevation=this._averageElevation,e._unmodified=this._unmodified,e._edgeInsets=this._edgeInsets.clone(),e._camera=this._camera.clone(),e._calcMatrices(),e.freezeTileCoverage=this.freezeTileCoverage,e.frustumCorners=this.frustumCorners,e}get elevation(){return this._elevation}set elevation(e){this._elevation!==e&&(this._elevation=e,this._updateCameraOnTerrain(),this._calcMatrices())}updateElevation(e,t=!1){let n=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(this._seaLevelZoom==null||n)&&this._updateCameraOnTerrain(),(e||n)&&this._constrainCamera(t),this._calcMatrices()}getProjection(){return e.pick(this.projection,[`name`,`center`,`parallels`])}setProjection(n){this.projectionOptions=n||{name:`mercator`};let r=this.projection?this.getProjection():void 0;this.projection=e.getProjection(this.projectionOptions);let i=!t(r,this.getProjection());return i&&this._calcMatrices(),this.mercatorFromTransition=!1,i}setMercatorFromTransition(){let t=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:`mercator`},this.projection=e.getProjection({name:`mercator`});let n=t!==this.projection.name;return n&&this._calcMatrices(),n}get minZoom(){return this._minZoom}set minZoom(e){this._minZoom!==e&&(this._minZoom=e,this.zoom=Math.max(this.zoom,e))}get maxZoom(){return this._maxZoom}set maxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.zoom=Math.min(this.zoom,e))}get minPitch(){return this._minPitch}set minPitch(e){this._minPitch!==e&&(this._minPitch=e,this.pitch=Math.max(this.pitch,e))}get maxPitch(){return this._maxPitch}set maxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.pitch=Math.min(this.pitch,e))}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(e){e===void 0?e=!0:e===null&&(e=!1),this._renderWorldCopies=e}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){let e=Math.max(this._camera.getDistanceToElevation(this._averageElevation),2**-52);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get cameraWorldSize(){let e=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),2**-52);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return e.mercatorZfromAltitude(this.center.lat,this.cameraWorldSizeForFog)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new e.pointGeometry(this.width,this.height)}get bearing(){return e.wrap(this.rotation,-180,180)}set bearing(e){this.rotation=e}get rotation(){return-this.angle/Math.PI*180}set rotation(t){let n=-t*Math.PI/180;var r;this.angle!==n&&(this._unmodified=!1,this.angle=n,this._calcMatrices(),this.rotationMatrix=(r=new e.ARRAY_TYPE(4),e.ARRAY_TYPE!=Float32Array&&(r[1]=0,r[2]=0),r[0]=1,r[3]=1,r),function(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=Math.sin(n),c=Math.cos(n);e[0]=r*c+a*s,e[1]=i*c+o*s,e[2]=r*-s+a*c,e[3]=i*-s+o*c}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(t){let n=e.clamp(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==n&&(this._unmodified=!1,this._pitch=n,this._calcMatrices())}get aspect(){return this.width/this.height}get fovX(){return this._fov}get fovY(){let e=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/e)}set fov(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=e.degToRad(t),this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(e){this._averageElevation=e,this._calcFogMatrices(),this._distanceTileDataCache={}}get zoom(){return this._zoom}set zoom(e){let t=Math.min(Math.max(e,this.minZoom),this.maxZoom);this._zoom!==t&&(this._unmodified=!1,this._setZoom(t),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices())}_setZoom(e){this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom}_updateCameraOnTerrain(){if(!this._elevation||!this._elevation.isDataAvailableAtPoint(this.locationCoordinate(this.center)))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForE
1233xaggeration=void 0);let e=this._elevation;this._centerAltitude=e.getAtPointOrZero(this.locationCoordinate(this.center)),this._centerAltitudeValidForExaggeration=e.exaggeration(),this._updateSeaLevelZoom()}_updateSeaLevelZoom(){this._centerAltitudeValidForExaggeration!==void 0&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize))}sampleAverageElevation(){if(!this._elevation)return 0;let t=this._elevation,n=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],r=this.horizonLineFromTop(),i=0,a=0;for(let o=0;o<n.length;o++){let s=new e.pointGeometry(n[o][0]*this.width,r+n[o][1]*(this.height-r)),c=t.pointCoordinate(s);if(!c)continue;let l=1/Math.hypot(c[0]-this._camera.position[0],c[1]-this._camera.position[1]);i+=c[3]*l,a+=l}return a===0?NaN:i/a}get center(){return this._center}set center(e){e.lat===this._center.lat&&e.lng===this._center.lng||(this._unmodified=!1,this._center=e,this._terrainEnabled()&&(this.cameraElevationReference===`ground`?this._updateCameraOnTerrain():this._updateZoomFromElevation()),this._constrain(),this._calcMatrices())}_updateZoomFromElevation(){if(this._seaLevelZoom==null||!this._elevation)return;let e=this._seaLevelZoom,t=this._elevation.getAtPointOrZero(this.locationCoordinate(this.center)),n=this.pixelsPerMeter/this.worldSize*t,r=this._mercatorZfromZoom(e),i=this._mercatorZfromZoom(this._maxZoom),a=Math.max(r-n,i);this._setZoom(this._zoomFromMercatorZ(a))}get padding(){return this._edgeInsets.toJSON()}set padding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,1),this._calcMatrices())}computeZoomRelativeTo(t){let n=this.rayIntersectionCoordinate(this.pointRayIntersection(this.centerPoint,t.toAltitude())),r;r=t.z<this._camera.position[2]?[n.x,n.y,n.z]:[t.x,t.y,t.z];let i=e.length(e.sub([],this._camera.position,r));return e.clamp(this._zoomFromMercatorZ(i),this._minZoom,this._maxZoom)}setFreeCameraOptions(t){if(!this.height||!t.position&&!t.orientation)return;this._updateCameraState();let n=!1;if(t.orientation&&!e.exactEquals(t.orientation,this._camera.orientation)&&(n=this._setCameraOrientation(t.orientation)),t.position){let r=[t.position.x,t.position.y,t.position.z];e.exactEquals$1(r,this._camera.position)||(this._setCameraPosition(r),n=!0)}n&&(this._updateStateFromCamera(),this.recenterOnTerrain())}getFreeCameraOptions(){this._updateCameraState();let t=this._camera.position,n=new K;return n.position=new e.MercatorCoordinate(t[0],t[1],t[2]),n.orientation=this._camera.orientation,n._elevation=this.elevation,n._renderWorldCopies=this.renderWorldCopies,n}_setCameraOrientation(t){if(!e.length$1(t))return!1;e.normalize$1(t,t);let n=e.transformQuat([],[0,0,-1],t),r=e.transformQuat([],[0,-1,0],t);if(r[2]<0)return!1;let i=Br(n,r);return!!i&&(this._camera.orientation=i,!0)}_setCameraPosition(t){let n=this.zoomScale(this.minZoom)*this.tileSize,r=this.zoomScale(this.maxZoom)*this.tileSize,i=this.cameraToCenterDistance;t[2]=e.clamp(t[2],i/r,i/n),this._camera.position=t}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}get fovAboveCenter(){return this._fov*(.5+this.centerOffset.y/this.height)}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,t,n){this._unmodified=!1,this._edgeInsets.interpolate(e,t,n),this._constrain(),this._calcMatrices()}coveringZoomLevel(e){let t=(e.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/e.tileSize));return Math.max(0,t)}getVisibleUnwrappedCoordinates(t){let n=[new e.UnwrappedTileID(0,t)];if(this.renderWorldCopies){let r=this.pointCoordinate(new e.pointGeometry(0,0)),i=this.pointCoordinate(new e.pointGeometry(this.width,0)),a=this.pointCoordinate(new e.pointGeometry(this.width,this.height)),o=this.pointCoordinate(new e.pointGeometry(0,this.height)),s=Math.floor(Math.min(r.x,i.x,a.x,o.x)),c=Math.floor(Math.max(r.x,i.x,a.x,o.x));for(let r=s-1;r<=c+1;r++)r!==0&&n.push(new e.UnwrappedTileID(r,t))}return n}coveringTiles(t){let n=this.coveringZoomLevel(t),r=n,i=this.elevation&&!t.isTerrainDEM,a=this.projection.name===`mercator`;if(t.minzoom!==void 0&&n<t.minzoom)return[];t.maxzoom!==void 0&&n>t.maxzoom&&(n=t.maxzoom);let o=this.locationCoordinate(this.center),s=this.center.lat,c=1<<n,l=[c*o.x,c*o.y,0],u=this.projection.name===`globe`,d=!u,f=e.Frustum.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,n,d),p=u?this._camera.mercatorPosition:this.pointCoordinate(this.getCameraPoint()),m=c*e.mercatorZfromAltitude(1,this.center.lat),h=this._camera.position[2]/e.mercatorZfromAltitude(1,this.center.lat),g=[c*p.x,c*p.y,h*(d?1:m)],_=this.cameraToCenterDistance/t.tileSize*(t.roundZoom?1:.502),v=this.pitch<=60&&this._edgeInsets.top<=this._edgeInsets.bottom&&!this._elevation&&!this.projection.isReprojectedInTileSpace?n:0,y=t.isTerrainDEM&&this._elevation?1e4*this._elevation.exaggeration():this._centerAltitude,b=t.isTerrainDEM?-y:this._elevation?this._elevation.getMinElevationBelowMSL():0,x=this.projection.isReprojectedInTileSpace?Ur(this):1,S=t=>{let n=1/4e4,r=new e.MercatorCoordinate(t.x+n,t.y,t.z),i=new e.MercatorCoordinate(t.x,t.y+n,t.z),a=t.toLngLat(),o=r.toLngLat(),s=i.toLngLat(),c=this.locationCoordinate(a),l=this.locationCoordinate(o),u=this.locationCoordinate(s),d=Math.hypot(l.x-c.x,l.y-c.y),f=Math.hypot(u.x-c.x,u.y-c.y);return Math.sqrt(d*f)*x/n},C=t=>{let n=y,r=b;return{aabb:e.tileAABB(this,c,0,0,0,t,r,n,this.projection),zoom:0,x:0,y:0,minZ:r,maxZ:n,wrap:t,fullyVisible:!1}},w=[],T=[],E=n,D=t.reparseOverscaled?r:n,O=e=>e*e,k=O((h-this._centerAltitude)*m),A=e=>{if(!this._elevation||!e.tileID||!a)return;let t=this._elevation.getMinMaxForTile(e.tileID),n=e.aabb;t?(n.min[2]=t.min,n.max[2]=t.max,n.center[2]=(n.min[2]+n.max[2])/2):(e.shouldSplit=j(e),e.shouldSplit||(n.min[2]=n.max[2]=n.center[2]=this._centerAltitude))},j=t=>{if(t.zoom<v)return!0;
1233if(t.zoom===E)return!1;if(t.shouldSplit!=null)return t.shouldSplit;let n=t.aabb.distanceX(g),a=t.aabb.distanceY(g),o=k,c=1;if(u){o=O(t.aabb.distanceZ(g));let n=2**t.zoom,r=e.latFromMercatorY((t.y+1)/n),i=e.latFromMercatorY(t.y/n),a=Math.min(Math.max(s,r),i),l=e.circumferenceAtLatitude(a)/e.circumferenceAtLatitude(s);if(c=a===s?1/Math.max(1,this._mercatorScaleRatio-.3):Math.min(1,l/this._mercatorScaleRatio),this.zoom<=e.GLOBE_ZOOM_THRESHOLD_MIN&&t.zoom===E-1&&l>=.9)return!0}else if(i&&(o=O(t.aabb.distanceZ(g)*m)),this.projection.isReprojectedInTileSpace&&r<=5){let n=2**t.zoom,r=S(new e.MercatorCoordinate((t.x+.5)/n,(t.y+.5)/n));c=r>.85?1:r}let l=n*n+a*a+o;return l<O((1<<E-t.zoom)*_*c*((e,t)=>{if(t*O(.707)<e)return 1;let n=Math.sqrt(t/e);return n/(1.4144271570014144+(1.1**(n-1.4144271570014144+1)-1)/.10000000000000009-1)})(Math.max(o,k),l))};if(this.renderWorldCopies)for(let e=1;e<=3;e++)w.push(C(-e)),w.push(C(e));for(w.push(C(0));w.length>0;){let r=w.pop(),o=r.x,s=r.y,d=r.fullyVisible;if(!d){let e=r.aabb.intersects(f);if(e===0)continue;d=e===2}if(r.zoom!==E&&j(r))for(let t=0;t<4;t++){let n=(o<<1)+t%2,l=(s<<1)+(t>>1),f={aabb:a?r.aabb.quadrant(t):e.tileAABB(this,c,r.zoom+1,n,l,r.wrap,r.minZ,r.maxZ,this.projection),zoom:r.zoom+1,x:n,y:l,wrap:r.wrap,fullyVisible:d,tileID:void 0,shouldSplit:void 0,minZ:r.minZ,maxZ:r.maxZ};i&&!u&&(f.tileID=new e.OverscaledTileID(r.zoom+1===E?D:r.zoom+1,r.wrap,r.zoom+1,n,l),A(f)),w.push(f)}else{let i=r.zoom===E?D:r.zoom;if(t.minzoom&&t.minzoom>i)continue;let a=l[0]-(.5+o+(r.wrap<<r.zoom))*(1<<n-r.zoom),c=l[1]-.5-s,u=r.tileID?r.tileID:new e.OverscaledTileID(i,r.wrap,r.zoom,o,s);T.push({tileID:u,distanceSq:a*a+c*c})}}if(this.fogCullDistSq){let n=this.fogCullDistSq,r=this.horizonLineFromTop();T=T.filter((i=>{let a=[0,0,0,1],o=[e.EXTENT,e.EXTENT,0,1],s=this.calculateFogTileMatrix(i.tileID.toUnwrapped());e.transformMat4$1(a,a,s),e.transformMat4$1(o,o,s);let c=e.getAABBPointSquareDist(a,o);if(c===0)return!0;let l=!1,u=this._elevation;if(u&&c>n&&r!==0){let n=this.calculateProjMatrix(i.tileID.toUnwrapped()),a;t.isTerrainDEM||(a=u.getMinMaxForTile(i.tileID)),a||={min:b,max:y};let o=e.furthestTileCorner(this.rotation),s=[o[0]*e.EXTENT,o[1]*e.EXTENT,a.max];e.transformMat4(s,s,n),l=(1-s[1])*this.height*.5<r}return c<n||l}))}
1233return T.sort(((e,t)=>e.distanceSq-t.distanceSq)).map((e=>e.tileID))}resize(e,t){this.width=e,this.height=t,this.pixelsToGLUnits=[2/e,-2/t],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(e){return 2**e}scaleZoom(e){return Math.log(e)/Math.LN2}project(t){let n=e.clamp(t.lat,-e.MAX_MERCATOR_LATITUDE,e.MAX_MERCATOR_LATITUDE),r=this.projection.project(t.lng,n);return new e.pointGeometry(r.x*this.worldSize,r.y*this.worldSize)}unproject(e){return this.projection.unproject(e.x/this.worldSize,e.y/this.worldSize)}get point(){return this.project(this.center)}setLocationAtPoint(t,n){let r,i,a=this.centerPoint;if(this.projection.name===`globe`){let e=this.worldSize;r=(n.x-a.x)/e,i=(n.y-a.y)/e}else{let e=this.pointCoordinate(n),t=this.pointCoordinate(a);r=e.x-t.x,i=e.y-t.y}let o=this.locationCoordinate(t);this.setLocation(new e.MercatorCoordinate(o.x-r,o.y-i))}setLocation(e){this.center=this.coordinateLocation(e),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(e){return this.projection.locationPoint(this,e)}locationPoint3D(e){return this.projection.locationPoint(this,e,!0)}pointLocation(e){return this.coordinateLocation(this.pointCoordinate(e))}pointLocation3D(e){return this.coordinateLocation(this.pointCoordinate3D(e))}locationCoordinate(t,n){let r=n?e.mercatorZfromAltitude(n,t.lat):void 0,i=this.projection.project(t.lng,t.lat);return new e.MercatorCoordinate(i.x,i.y,r)}coordinateLocation(e){return this.projection.unproject(e.x,e.y)}pointRayIntersection(t,n){let r=n??this._centerAltitude,i=[t.x,t.y,0,1],a=[t.x,t.y,1,1];e.transformMat4$1(i,i,this.pixelMatrixInverse),e.transformMat4$1(a,a,this.pixelMatrixInverse);let o=a[3];e.scale$1(i,i,1/i[3]),e.scale$1(a,a,1/o);let s=i[2],c=a[2];return{p0:i,p1:a,t:s===c?0:(r-s)/(c-s)}}screenPointToMercatorRay(t){let n=[t.x,t.y,0,1],r=[t.x,t.y,1,1];return e.transformMat4$1(n,n,this.pixelMatrixInverse),e.transformMat4$1(r,r,this.pixelMatrixInverse),e.scale$1(n,n,1/n[3]),e.scale$1(r,r,1/r[3]),n[2]=e.mercatorZfromAltitude(n[2],this._center.lat)*this.worldSize,r[2]=e.mercatorZfromAltitude(r[2],this._center.lat)*this.worldSize,e.scale$1(n,n,1/this.worldSize),e.scale$1(r,r,1/this.worldSize),new e.Ray([n[0],n[1],n[2]],e.normalize([],e.sub([],r,n)))}rayIntersectionCoordinate(t){let{p0:n,p1:r,t:i}=t,a=e.mercatorZfromAltitude(n[2],this._center.lat),o=e.mercatorZfromAltitude(r[2],this._center.lat);return new e.MercatorCoordinate(e.number(n[0],r[0],i)/this.worldSize,e.number(n[1],r[1],i)/this.worldSize,e.number(a,o,i))}pointCoordinate(e,t=this._centerAltitude){return this.projection.pointCoordinate(this,e.x,e.y,t)}pointCoordinate3D(t){if(!this.elevation)return this.pointCoordinate(t);let n=this.projection.pointCoordinate3D(this,t.x,t.y);if(n)return new e.MercatorCoordinate(n[0],n[1],n[2]);let r=0,i=this.horizonLineFromTop();if(t.y>i)return this.pointCoordinate(t);let a=.02*i,o=t.clone();for(let t=0;t<10&&i-r>a;t++){o.y=e.number(r,i,.66);let t=this.projection.pointCoordinate3D(this,o.x,o.y);t?(i=o.y,n=t):r=o.y}return n?new e.MercatorCoordinate(n[0],n[1],n[2]):this.pointCoordinate(t)}isPointAboveHorizon(e){return this.projection.isPointAboveHorizon(this,e)}_coordinatePoint(t,n){let r=n&&this.elevation?this.elevation.getAtPointOrZero(t,this._centerAltitude):this._centerAltitude,i=[t.x*this.worldSize,t.y*this.worldSize,r+t.toAltitude(),1];return e.transformMat4$1(i,i,this.pixelMatrix),i[3]>0?new e.pointGeometry(i[0]/i[3],i[1]/i[3]):new e.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE)}_getGlobeBounds(){let{top:t,left:n}=this._edgeInsets,r=this.height-this._edgeInsets.bottom,i=this.width-this._edgeInsets.right,a=this.pointCoordinate3D(new e.pointGeometry(n,t)),o=this.pointCoordinate3D(new e.pointGeometry(i,t)),s=this.pointCoordinate3D(new e.pointGeometry(i,r)),c=this.pointCoordinate3D(new e.pointGeometry(n,r)),l=Math.min(a.x,c.x),u=Math.max(o.x,s.x),d=Math.min(a.y,o.y),f=Math.max(c.y,s.y),p=2**-this.zoom/16,m=(t,n,r,i)=>{let a=(t+r)/2,o=(n+i)/2,s=new e.pointGeometry(a,o),c=this.pointCoordinate3D(s),h=Math.max(0,l-c.x,d-c.y,c.x-u,c.y-f);l=Math.min(l,c.x),u=Math.max(u,c.x),d=Math.min(d,c.y),f=Math.max(f,c.y),h>
1233p&&(m(t,n,a,o),m(a,o,r,i))};m(n,t,i,t),m(i,t,i,r),m(i,r,n,r),m(n,r,n,t);let[h,g]=e.polesInViewport(this),_=h||g,v=h?90:e.latFromMercatorY(d),y=_?180:e.lngFromMercatorX(u),b=g?-90:e.latFromMercatorY(f),x=_?-180:e.lngFromMercatorX(l);return new e.LngLatBounds(new e.LngLat(x,b),new e.LngLat(y,v))}_getBounds(t,n){if(this.projection.name===`globe`)return this._getGlobeBounds();let r=new e.pointGeometry(this._edgeInsets.left,this._edgeInsets.top),i=new e.pointGeometry(this.width-this._edgeInsets.right,this._edgeInsets.top),a=new e.pointGeometry(this.width-this._edgeInsets.right,this.height-this._edgeInsets.bottom),o=new e.pointGeometry(this._edgeInsets.left,this.height-this._edgeInsets.bottom),s=this.pointCoordinate(r,t),c=this.pointCoordinate(i,t),l=this.pointCoordinate(a,n),u=this.pointCoordinate(o,n),d=(e,t)=>(t.y-e.y)/(t.x-e.x);return s.y>1&&c.y>=0?s=new e.MercatorCoordinate((1-u.y)/d(u,s)+u.x,1):s.y<0&&c.y<=1&&(s=new e.MercatorCoordinate(-u.y/d(u,s)+u.x,0)),c.y>1&&s.y>=0?c=new e.MercatorCoordinate((1-l.y)/d(l,c)+l.x,1):c.y<0&&s.y<=1&&(c=new e.MercatorCoordinate(-l.y/d(l,c)+l.x,0)),new e.LngLatBounds().extend(this.coordinateLocation(s)).extend(this.coordinateLocation(c)).extend(this.coordinateLocation(u)).extend(this.coordinateLocation(l))}_getBounds3D(){let e=this.elevation;if(!e.visibleDemTiles.length||e.isUsingMockSource())return this._getBounds(0,0);let t=e.visibleDemTiles.reduce(((e,t)=>{if(t.dem){let n=t.dem.tree;e.min=Math.min(e.min,n.minimums[0]),e.max=Math.max(e.max,n.maximums[0])}return e}),{min:Number.MAX_VALUE,max:0});return this._getBounds(t.min*e.exaggeration(),t.max*e.exaggeration())}getBounds(){return this._terrainEnabled()?this._getBounds3D():this._getBounds(0,0)}horizonLineFromTop(e=!0){let t=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,n=this.height/2-t*(1-this._horizonShift);return e?Math.max(0,n):n}getMaxBounds(){return this.maxBounds}setMaxBounds(t){this.maxBounds=t,this.minLat=-e.MAX_MERCATOR_LATITUDE,this.maxLat=e.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,t&&(this.minLat=t.getSouth(),this.maxLat=t.getNorth(),this.minLng=t.getWest(),this.maxLng=t.getEast(),this.maxLng<this.minLng&&(this.maxLng+=360)),this.worldMinX=e.mercatorXfromLng(this.minLng)*this.tileSize,this.worldMaxX=e.mercatorXfromLng(this.maxLng)*this.tileSize,this.worldMinY=e.mercatorYfromLat(this.maxLat)*this.tileSize,this.worldMaxY=e.mercatorYfromLat(this.minLat)*this.tileSize,this._constrain()}calculatePosMatrix(e,t){return this.projection.createTileMatrix(this,t,e)}calculateDistanceTileData(t){let n=t.key,r=this._distanceTileDataCache;if(r[n])return r[n];let i=t.canonical,a=1/this.height,o=this.cameraWorldSize,s=o/this.zoomScale(i.z),c=(i.x+2**i.z*t.wrap)*s,l=i.y*s,u=this.point;u.x*=o/this.worldSize,u.y*=o/this.worldSize;let d=this.angle;return r[n]={bearing:[Math.sin(-d),-Math.cos(-d)],center:[(u.x-c)*a,(u.y-l)*a],scale:s/e.EXTENT*a},r[n]}calculateFogTileMatrix(t){let n=t.key,r=this._fogTileMatrixCache;if(r[n])return r[n];let i=this.projection.createTileMatrix(this,this.cameraWorldSizeForFog,t);return e.multiply(i,this.worldToFogMatrix,i),r[n]=new Float32Array(i),r[n]}calculateProjMatrix(t,n=!1){let r=t.key,i=n?this._alignedProjMatrixCache:this._projMatrixCache;if(i[r])return i[r];let a=this.calculatePosMatrix(t,this.worldSize);return e.multiply(a,this.projection.isReprojectedInTileSpace?this.mercatorMatrix:n?this.alignedProjMatrix:this.projMatrix,a),i[r]=new Float32Array(a),i[r]}calculatePixelsToTileUnitsMatrix(t){let n=t.tileID.key,r=this._pixelsToTileUnitsCache;return r[n]||(r[n]=function(t,n){let{scale:r}=t.tileTransform,i=r*e.EXTENT/(t.tileSize*2**(n.zoom-t.tileID.overscaledZ+t.tileID.canonical.z));return a=new Float32Array(4),c=(o=n.inverseAdjustmentMatrix)[1],l=o[2],u=o[3],f=(s=[i,i])[1],a[0]=o[0]*(d=s[0]),a[1]=c*d,a[2]=l*f,a[3]=u*f,a;var a,o,s,c,l,u,d,f}(t,this)),r[n]}customLayerMatrix(){return this.mercatorMatrix.slice()}recenterOnTerrain(){if(!this._elevation||this.projection.name===`globe`)return;let t=this._elevation;this._updateCameraState();let n=e.mercatorZfromAltitude(1,this._center.lat)*this.worldSize,r=this._computeCameraPosition(n),i=this._camera.forward(),a=e.mercatorZfromAltitude(1,this._center.lat);r[2]/=a,i[2]/=a,e.normalize(i,i);let o=t.raycast(r,i,t.exaggeration());if(o){let t=e.scaleAndAdd([],r,i,o),n=new e.MercatorCoordinate(t[0],t[1],e.mercatorZfromAltitude(t[2],e.latFromMercatorY(t[1]))),s=(n.z+e.length([n.x-r[0],n.y-r[1],n.z-r[2]*a]))*this._pixelsPerMercatorPixel;this._seaLevelZoom=this._zoomFromMercatorZ(s),this._centerAltitude=n.toAltitude(),this._center=this.coordinateLocation(n),this._updateZoomFromElevation(),this._constrain(),this._calcMatrices()}}_constrainCamera(t=!1){if(!this._elevation)return;let n=this._elevation,r=e.mercatorZfromAltitude(1,this._center.lat)*this.worldSize,i=this._computeCameraPosition(r),a=n.getAtPointOrZero(new e.MercatorCoordinate(...i)),o=this.pixelsPerMeter/this.worldSize*a,s=this._minimumHeightOverTerrain(),c=i[2]-o;if(c<=s)if(c<0||t){let t=this.locationCoordinate(this._center,this._centerAltitude),n=[i[0],i[1],t.z-i[2]],r=e.length(n);n[2]-=(s-c)/this._pixelsPerMercatorPixel;let a=e.length(n);if(a===0)return;e.scale$2(n,n,r/a*this._pixelsPerMercatorPixel),this._camera.position=[i[0],i[1],t.z*this._pixelsPerMercatorPixel-n[2]],this._updateStateFromCamera()}else this._isCameraConstrained=!0}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let t=this.projection.name===`globe`||this.mercatorFromTransition;if(this.projection.isReprojectedInTileSpace||t){let n=this.center;n.lat=e.clamp(n.lat,this.minLat,this.maxLat),(this.maxBounds||!this.renderWorldCopies&&!t)&&(n.lng=e.clamp(n.lng,this.minLng,this.maxLng)),this.center=n,this._constraining=!1;return}let n=this._unmodified,{x:r,y:i}=this.point,a=0,o=r,s=i,c=this.width/2,l=this.height/2,u=this.worldMinY*this.scale,d=this.worldMaxY*this.scale;if(i-l<u&&(s=u+l),i+l>d&&(s=d-l),d-u<this.height&&(a=Math.max(a,this.height/(d-u)),s=(d+u)/2),this.maxBounds||!this._renderWorldCopies||!this.projection.wrap){let e=this.worldMinX*this.scale,t=this.worldMaxX*this.scale,n=this.worldSize/2-(e+t)/2;o=(r+n+this.worldSize)%this.worldSize-n,o-c<e&&(o=e+c),o+c>t&&(o=t-c),t-e<this.width&&(a=Math.max(a,this.width/(t-e)),o=(t+e)/2)}o===r&&s===i||(this.center=this.unproject(new e.pointGeometry(o,s))),a&&(this.zoom+=this.scaleZoom(a)),this._constrainCamera(),this._unmodified=n,this._constraining=!1}_minZoomForBounds(){let e=Math.max(0,this.scaleZoom(this.height/(this.worldMaxY-this.worldMinY)));return this.maxBounds&&(e=Math.max(e,this.scaleZoom(this.width/(this.worldMaxX-this.worldMinX)))),e}_maxCameraBoundsDistance(){return this._mercatorZfromZoom(this._minZoomForBounds())}
1233_calcMatrices(){if(!this.height)return;let t=this.centerOffset,n=this.pixelsPerMeter;this.projection.name===`globe`&&(this._mercatorScaleRatio=e.mercatorZfromAltitude(1,this.center.lat)/e.mercatorZfromAltitude(1,e.GLOBE_SCALE_MATCH_LATITUDE));let r=Wr(this.projection,this.zoom,this.width,this.height,1024);this._pixelsPerMercatorPixel=this.projection.pixelSpaceConversion(this.center.lat,this.worldSize,r),this.cameraToCenterDistance=.5/Math.tan(.5*this._fov)*this.height*this._pixelsPerMercatorPixel,this._updateCameraState(),this._farZ=this.projection.farthestPixelDistance(this),this._nearZ=this.height/50;let i=this._camera.getWorldToCamera(this.worldSize,this.projection.zAxisUnit===`meters`?n:1),a=this._camera.getCameraToClipPerspective(this._fov,this.width/this.height,this._nearZ,this._farZ);a[8]=2*-t.x/this.width,a[9]=2*t.y/this.height;let o=e.mul([],a,i);if(this.projection.isReprojectedInTileSpace){let t=this.locationCoordinate(this.center),n=e.identity([]);e.translate(n,n,[t.x*this.worldSize,t.y*this.worldSize,0]),e.multiply(n,n,Hr(this)),e.translate(n,n,[-t.x*this.worldSize,-t.y*this.worldSize,0]),e.multiply(o,o,n),this.inverseAdjustmentMatrix=function(e){let t=Hr(e,!0);return v([],[t[0],t[1],t[4],t[5]])}(this)}else this.inverseAdjustmentMatrix=[1,0,0,1];this.mercatorMatrix=e.scale([],o,[this.worldSize,this.worldSize,this.worldSize/n,1]),this.projMatrix=o,this.invProjMatrix=e.invert(new Float64Array(16),this.projMatrix);let s=e.invert([],a);this.frustumCorners=e.FrustumCorners.fromInvProjectionMatrix(s,this.horizonLineFromTop(),this.height);let c=new Float32Array(16);e.identity(c),e.scale(c,c,[1,-1,1]),e.rotateX(c,c,this._pitch),e.rotateZ(c,c,this.angle);let l=e.perspective(new Float32Array(16),this._fov,this.width/this.height,this._nearZ,this._farZ),u=(Math.PI/2-this._pitch)*(this.height/this._fov)*this._horizonShift;l[8]=2*-t.x/this.width,l[9]=2*(t.y+u)/this.height,this.skyboxMatrix=e.multiply(c,l,c);let d=this.point,f=d.x,p=d.y,m=this.width%2/2,h=this.height%2/2,g=Math.cos(this.angle),_=Math.sin(this.angle),y=f-Math.round(f)+g*m+_*h,b=p-Math.round(p)+g*h+_*m,x=new Float64Array(o);if(e.translate(x,x,[y>.5?y-1:y,b>.5?b-1:b,0]),this.alignedProjMatrix=x,o=e.create(),e.scale(o,o,[this.width/2,-this.height/2,1]),e.translate(o,o,[1,-1,0]),this.labelPlaneMatrix=o,o=e.create(),e.scale(o,o,[1,-1,1]),e.translate(o,o,[-1,-1,0]),e.scale(o,o,[2/this.width,2/this.height,1]),this.glCoordMatrix=o,this.pixelMatrix=e.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},o=e.invert(new Float64Array(16),this.pixelMatrix),!o)throw Error(`failed to invert matrix`);if(this.pixelMatrixInverse=o,this.projection.name===`globe`||this.mercatorFromTransition){this.globeMatrix=e.calculateGlobeMatrix(this);let t=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=e.transformMat4(t,t,i),this.globeRadius=this.worldSize/2/Math.PI-1}else this.globeMatrix=o;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};let t=this.cameraWorldSizeForFog,n=this.cameraPixelsPerMeter,r=this._camera.position,i=1/this.height/this._pixelsPerMercatorPixel,a=[t,t,n];e.scale$2(a,a,i),e.scale$2(r,r,-1),e.multiply$2(r,r,a);let o=e.create();e.translate(o,o,r),e.scale(o,o,a),this.mercatorFogMatrix=o,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(t,n,i)}_computeCameraPosition(e){let t=(e||=this.pixelsPerMeter)/this.pixelsPerMeter,n=this._camera.forward(),r=this.point,i=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*t-e/this.worldSize*this._centerAltitude;return[r.x/this.worldSize-n[0]*i,r.y/this.worldSize-n[1]*i,e/this.worldSize*this._centerAltitude-n[2]*i]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(t){let n=this._maxCameraBoundsDistance()*Math.cos(this._pitch),r=this._camera.position[2],i=t[2],a=1;this.projection.wrap&&(this.center=this.center.wrap()),i>0&&(a=Math.min((n-r)/i,1)),this._camera.position=e.scaleAndAdd([],this._camera.position,t,a),this._updateStateFromCamera()}_updateStateFromCamera(){let t=this._camera.position,n=this._camera.forward(),{pitch:r,bearing:i}=this._camera.getPitchBearing(),a=e.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,o=this._mercatorZfromZoom(this._maxZoom)*Math.cos(e.degToRad(this._maxPitch)),s=Math.max((t[2]-a)/Math.cos(r),o),c=this._zoomFromMercatorZ(s);e.scaleAndAdd(t,t,n,s),this._pitch=e.clamp(r,e.degToRad(this.minPitch),e.degToRad(this.maxPitch)),this.angle=e.wrap(i,-Math.PI,Math.PI),this._setZoom(e.clamp(c,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new e.MercatorCoordinate(t[0],t[1],t[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(e){return 2**e*this.tileSize}_mercatorZfromZoom(e){return this.cameraToCenterDistance/this._worldSizeFromZoom(e)}_minimumHeightOverTerrain(){let e=Math.min((this._seaLevelZoom==null?this._zoom:this._seaLevelZoom)+4,this._maxZoom);return this._mercatorZfromZoom(e)}_zoomFromMercatorZ(e){return this.scaleZoom(this.cameraToCenterDistance/(e*this.tileSize))}zoomFromMercatorZAdjusted(e){let t=t=>{let n=this.getCameraToCenterDistance(this.projection,t);return this.scaleZoom(n/(e*this.tileSize))}
1233,n,r=t(this.zoom),i=Math.abs(r-t(r));for(;n!==i;)r=t(r),n=i,i=Math.abs(r-t(r));return r}_terrainEnabled(){return!(!this._elevation||!this.projection.supportsTerrain&&(e.warnOnce(`Terrain is not yet supported with alternate projections. Use mercator or globe to enable terrain.`),1))}anyCornerOffEdge(t,n){let r=Math.min(t.x,n.x),i=Math.max(t.x,n.x),a=Math.min(t.y,n.y),o=Math.max(t.y,n.y);if(a<this.horizonLineFromTop(!1))return!0;if(this.projection.name!==`mercator`)return!1;let s=[new e.pointGeometry(r,a),new e.pointGeometry(i,o),new e.pointGeometry(r,o),new e.pointGeometry(i,a)],c=this.renderWorldCopies?-3:0,l=this.renderWorldCopies?4:1;for(let e of s){let t=this.pointRayIntersection(e);if(t.t<0)return!0;let n=this.rayIntersectionCoordinate(t);if(n.x<c||n.y<0||n.x>l||n.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+e.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new e.pointGeometry(0,0),new e.pointGeometry(this.width,this.height))}zoomDeltaToMovement(t,n){let r=e.length(e.sub([],this._camera.position,t)),i=this._zoomFromMercatorZ(r)+n;return r-this._mercatorZfromZoom(i)}getCameraPoint(){if(this.projection.name===`globe`){let t=function([t,n,r],i){let a=[t,n,r,1];e.transformMat4$1(a,a,i);let o=a[3]=Math.max(a[3],1e-6);return a[0]/=o,a[1]/=o,a[2]/=o,a}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new e.pointGeometry(t[0],t[1])}{let t=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new e.pointGeometry(0,t))}}getCameraToCenterDistance(e,t=this.zoom){let n=Wr(e,t,this.width,this.height,1024),r=e.pixelSpaceConversion(this.center.lat,this.worldSize,n);return .5/Math.tan(.5*this._fov)*this.height*r}getWorldToCameraMatrix(){let t=this._camera.getWorldToCamera(this.worldSize,this.projection.zAxisUnit===`meters`?this.pixelsPerMeter:1);return this.projection.name===`globe`&&e.multiply(t,t,this.globeMatrix),t}}function Yr(e,t){let n=!1,r=null,i=()=>{r=null,n&&=(e(),r=setTimeout(i,t),!1)};return()=>(n=!0,r||i(),r)}class Xr{constructor(t){this._hashName=t&&encodeURIComponent(t),e.bindAll([`_getCurrentHash`,`_onHashChange`,`_updateHash`],this),this._updateHash=Yr(this._updateHashUnthrottled.bind(this),300)}addTo(t){return this._map=t,e.window.addEventListener(`hashchange`,this._onHashChange,!1),t.on(`moveend`,this._updateHash),this}remove(){return this._map?(this._map.off(`moveend`,this._updateHash),e.window.removeEventListener(`hashchange`,this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){let t=this._map;if(!t)return``;let n=Zr(t);if(this._hashName){let t=this._hashName,r=!1,i=e.window.location.hash.slice(1).split(`&`).map((e=>{let i=e.split(`=`)[0];return i===t?(r=!0,`${i}=${n}`):e})).filter((e=>e));return r||i.push(`${t}=${n}`),`#${i.join(`&`)}`}return`#${n}`}_getCurrentHash(){let t=e.window.location.hash.replace(`#`,``);if(this._hashName){let e;return t.split(`&`).map((e=>e.split(`=`))).forEach((t=>{t[0]===this._hashName&&(e=t)})),(e&&e[1]||``).split(`/`)}return t.split(`/`)}_onHashChange(){let e=this._map;if(!e)return!1;let t=this._getCurrentHash();if(t.length>=3&&!t.some((e=>isNaN(e)))){let n=e.dragRotate.isEnabled()&&e.touchZoomRotate.isEnabled()?+(t[3]||0):e.getBearing();return e.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:n,pitch:+(t[4]||0)}),!0}return!1}_updateHashUnthrottled(){let t=e.window.location.href.replace(/(#.+)?$/,this.getHashString());e.window.history.replaceState(e.window.history.state,null,t)}}function Zr(e,t){let n=e.getCenter(),r=Math.round(100*e.getZoom())/100,i=10**Math.ceil((r*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.round(n.lng*i)/i,o=Math.round(n.lat*i)/i,s=e.getBearing(),c=e.getPitch(),l=t?`/${a}/${o}/${r}`:`${r}/${o}/${a}`;return(s||c)&&(l+=`/`+Math.round(10*s)/10),c&&(l+=`/${Math.round(c)}`),l}let Qr={linearity:.3,easing:e.bezier(0,0,.3,1)},$r=e.extend({deceleration:2500,maxSpeed:1400},Qr),ei=e.extend({deceleration:20,maxSpeed:1400},Qr),ti=e.extend({deceleration:1e3,maxSpeed:360},Qr),ni=e.extend({deceleration:1e3,maxSpeed:90},Qr);class q{constructor(e){this._map=e,this.clear()}clear(){this._inertiaBuffer=[]}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:e.exported.now(),settings:t})}_drainInertiaBuffer(){let t=this._inertiaBuffer,n=e.exported.now();for(;t.length>0&&n-t[0].time>160;)t.shift()}_onMoveEnd(t){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;let n={zoom:0,bearing:0,pitch:0,pan:new e.pointGeometry(0,0),pinchAround:void 0,around:void 0};for(let{settings:e}of this._inertiaBuffer)n.zoom+=e.zoomDelta||0,n.bearing+=e.bearingDelta||0,n.pitch+=e.pitchDelta||0,e.panDelta&&n.pan._add(e.panDelta),e.around&&(n.around=e.around),e.pinchAround&&(n.pinchAround=e.pinchAround);let r=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,i={};if(n.pan.mag()){let a=ii(n.pan.mag(),r,e.extend({},$r,t||{}));i.offset=n.pan.mult(a.amount/n.pan.mag()),i.center=this._map.transform.center,ri(i,a)}if(n.zoom){let e=ii(n.zoom,r,ei);i.zoom=this._map.transform.zoom+e.amount,ri(i,e)}if(n.bearing){let t=ii(n.bearing,r,ti);
vendor: 17,243 bytes, line 1233
1233i.bearing=this._map.transform.bearing+e.clamp(t.amount,-179,179),ri(i,t)}if(n.pitch){let e=ii(n.pitch,r,ni);i.pitch=this._map.transform.pitch+e.amount,ri(i,e)}if(i.zoom||i.bearing){let e=n.pinchAround===void 0?n.around:n.pinchAround;i.around=e?this._map.unproject(e):this._map.getCenter()}return this.clear(),i.noMoveStart=!0,i}}function ri(e,t){(!e.duration||e.duration<t.duration)&&(e.duration=t.duration,e.easing=t.easing)}function ii(t,n,r){let{maxSpeed:i,linearity:a,deceleration:o}=r,s=e.clamp(t*a/(n/1e3),-i,i),c=Math.abs(s)/(o*a);return{easing:r.easing,duration:1e3*c,amount:c/2*s}}class ai extends e.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,n,r,i={}){let a=m(n.getCanvasContainer(),r),o=n.unproject(a);super(t,e.extend({point:a,lngLat:o,originalEvent:r},i)),this._defaultPrevented=!1,this.target=n}}class oi extends e.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(t,n,r){let i=t===`touchend`?r.changedTouches:r.touches,a=h(n.getCanvasContainer(),i),o=a.map((e=>n.unproject(e))),s=a.reduce(((e,t,n,r)=>e.add(t.div(r.length))),new e.pointGeometry(0,0));super(t,{points:a,point:s,lngLats:o,lngLat:n.unproject(s),originalEvent:r}),this._defaultPrevented=!1}}class si extends e.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(e,t,n){super(e,{originalEvent:n}),this._defaultPrevented=!1}}class ci{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance}reset(){this._mousedownPos=void 0}wheel(e){return this._firePreventable(new si(e.type,this._map,e))}mousedown(e,t){return this._mousedownPos=t,this._firePreventable(new ai(e.type,this._map,e))}mouseup(e){this._map.fire(new ai(e.type,this._map,e))}preclick(t){let n=e.extend({},t);n.type=`preclick`,this._map.fire(new ai(n.type,this._map,n))}click(e,t){this._mousedownPos&&this._mousedownPos.dist(t)>=this._clickTolerance||(this.preclick(e),this._map.fire(new ai(e.type,this._map,e)))}dblclick(e){return this._firePreventable(new ai(e.type,this._map,e))}mouseover(e){this._map.fire(new ai(e.type,this._map,e))}mouseout(e){this._map.fire(new ai(e.type,this._map,e))}touchstart(e){return this._firePreventable(new oi(e.type,this._map,e))}touchmove(e){this._map.fire(new oi(e.type,this._map,e))}touchend(e){this._map.fire(new oi(e.type,this._map,e))}touchcancel(e){this._map.fire(new oi(e.type,this._map,e))}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class li{constructor(e){this._map=e}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0}mousemove(e){this._map.fire(new ai(e.type,this._map,e))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new ai(`contextmenu`,this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._map.fire(new ai(e.type,this._map,e)),this._map.listens(`contextmenu`)&&e.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class ui{constructor(e,t){this._map=e,this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=t.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(e,t){this.isEnabled()&&e.shiftKey&&e.button===0&&(u(),this._startPos=this._lastPos=t,this._active=!0)}mousemoveWindow(e,t){if(!this._active)return;let n=t,r=this._startPos,i=this._lastPos;if(!r||!i||i.equals(n)||!this._box&&n.dist(r)<this._clickTolerance)return;this._lastPos=n,this._box||(this._box=a(`div`,`mapboxgl-boxzoom`,this._container),this._container.classList.add(`mapboxgl-crosshair`),this._fireEvent(`boxzoomstart`,e));let o=Math.min(r.x,n.x),s=Math.max(r.x,n.x),c=Math.min(r.y,n.y),l=Math.max(r.y,n.y);this._map._requestDomTask((()=>{this._box&&(this._box.style.transform=`translate(${o}px,${c}px)`,this._box.style.width=s-o+`px`,this._box.style.height=l-c+`px`)}))}mouseupWindow(t,n){if(!this._active)return;let r=this._startPos,i=n;if(r&&t.button===0){if(this.reset(),p(),r.x!==i.x||r.y!==i.y)return this._map.fire(new e.Event(`boxzoomend`,{originalEvent:t})),{cameraAnimation:e=>e.fitScreenCoordinates(r,i,this._map.getBearing(),{linear:!1})};this._fireEvent(`boxzoomcancel`,t)}}keydown(e){this._active&&e.keyCode===27&&(this.reset(),this._fireEvent(`boxzoomcancel`,e))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove(`mapboxgl-crosshair`),this._box&&=(this._box.remove(),null),d(),delete this._startPos,delete this._lastPos}_fireEvent(t,n){return this._map.fire(new e.Event(t,{originalEvent:n}))}}function di(e,t){let n={};for(let r=0;r<e.length;r++)n[e[r].identifier]=t[r];return n}class fi{constructor(e){this.reset(),this.numTouches=e.numTouches}reset(){this.centroid=void 0,this.startTime=0,this.touches={},this.aborted=!1}touchstart(t,n,r){(this.centroid||r.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===0&&(this.startTime=t.timeStamp),r.length===this.numTouches&&(this.centroid=function(t){let n=new e.pointGeometry(0,0);for(let e of t)n._add(e);return n.div(t.length)}(n),this.touches=di(r,n)))}touchmove(e,t,n){if(this.aborted||!this.centroid)return;let r=di(n,t);for(let e in this.touches){let t=this.touches[e],n=r[e];(!n||n.dist(t)>30)&&(this.aborted=!0)}}touchend(e,t,n){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),n.length===0){let e=!this.aborted&&this.centroid;if(this.reset(),e)return e}}}class pi{constructor(e){this.singleTap=new fi(e),this.numTaps=e.numTaps,this.reset()}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset()}touchstart(e,t,n){this.singleTap.touchstart(e,t,n)}touchmove(e,t,n){this.singleTap.touchmove(e,t,n)}touchend(e,t,n){let r=this.singleTap.touchend(e,t,n);if(r){let t=e.timeStamp-this.lastTime<500,n=!this.lastTap||this.lastTap.dist(r)<30;if(t&&n||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=r,this.count===this.numTaps)return this.reset(),r}}}class mi{constructor(){this._zoomIn=new pi({numTouches:1,numTaps:2}),this._zoomOut=new pi({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(e,t,n){this._zoomIn.touchstart(e,t,n),this._zoomOut.touchstart(e,t,n)}touchmove(e,t,n){this._zoomIn.touchmove(e,t,n),this._zoomOut.touchmove(e,t,n)}touchend(e,t,n){let r=this._zoomIn.touchend(e,t,n),i=this._zoomOut.touchend(e,t,n);return r?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()+1,around:t.unproject(r)},{originalEvent:e})}):i?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()-1,around:t.unproject(i)},{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}}let hi={0:1,2:2};class gi{constructor(e){this.reset(),this._clickTolerance=e.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0}_correctButton(e,t){return!1}_move(e,t){return{}}mousedown(e,t){if(this._lastPoint)return;let n=g(e);this._correctButton(e,n)&&(this._lastPoint=t,this._eventButton=n)}mousemoveWindow(e,t){let n=this._lastPoint;if(n){if(e.preventDefault(),this._eventButton!=null&&function(e,t){let n=hi[t];return e.buttons===void 0||(e.buttons&n)!==n}(e,this._eventButton))this.reset();else if(this._moved||!(t.dist(n)<this._clickTolerance))return this._moved=!0,this._lastPoint=t,this._move(n,t)}}mouseupWindow(e){this._lastPoint&&g(e)===this._eventButton&&(this._moved&&p(),this.reset())}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class _i extends gi{mousedown(e,t){super.mousedown(e,t),this._lastPoint&&(this._active=!0)}_correctButton(e,t){return t===0&&!e.ctrlKey}_move(e,t){return{around:t,panDelta:t.sub(e)}}}class vi extends gi{_correctButton(e,t){return t===0&&e.ctrlKey||t===2}_move(e,t){let n=.8*(t.x-e.x);if(n)return this._active=!0,{bearingDelta:n}}contextmenu(e){e.preventDefault()}}class yi extends gi{_correctButton(e,t){return t===0&&e.ctrlKey||t===2}_move(e,t){let n=-.5*(t.y-e.y);if(n)return this._active=!0,{pitchDelta:n}}contextmenu(e){e.preventDefault()}}class bi{constructor(t,n){this._map=t,this._el=t.getCanvasContainer(),this._minTouches=1,this._clickTolerance=n.clickTolerance||1,this.reset(),e.bindAll([`_addTouchPanBlocker`,`_showTouchPanBlockerAlert`],this)}reset(){this._active=!1,this._touches={},this._sum=new e.pointGeometry(0,0)}touchstart(e,t,n){return this._calculateTransform(e,t,n)}touchmove(t,n,r){if(this._active&&!(r.length<this._minTouches)){if(this._map._cooperativeGestures&&!this._map.isMoving()){if(r.length===1&&!e.isFullscreen())return void this._showTouchPanBlockerAlert();this._alertContainer.style.visibility!==`hidden`&&(this._alertContainer.style.visibility=`hidden`,clearTimeout(this._alertTimer))}return t.cancelable&&t.preventDefault(),this._calculateTransform(t,n,r)}}touchend(e,t,n){this._calculateTransform(e,t,n),this._active&&n.length<this._minTouches&&this.reset()}touchcancel(){this.reset()}_calculateTransform(t,n,r){r.length>0&&(this._active=!0);let i=di(r,n),a=new e.pointGeometry(0,0),o=new e.pointGeometry(0,0),s=0;for(let e in i){let t=i[e],n=this._touches[e];n&&(a._add(t),o._add(t.sub(n)),s++,i[e]=t)}if(this._touches=i,s<this._minTouches||!o.mag())return;let c=o.div(s);return this._sum._add(c),this._sum.mag()<this._clickTolerance?void 0:{around:a.div(s),panDelta:c}}enable(){this._enabled=!0,this._map._cooperativeGestures&&(this._addTouchPanBlocker(),this._el.classList.add(`mapboxgl-touch-pan-blocker-override`,`mapboxgl-scrollable-page`))}disable(){this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove(),this._el.classList.remove(`mapboxgl-touch-pan-blocker-override`,`mapboxgl-scrollable-page`)),this.reset()}isEnabled(){return!!this._enabled}isActive(){return!!this._active}_addTouchPanBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=a(`div`,`mapboxgl-touch-pan-blocker`,this._map._container),this._alertContainer.textContent=this._map._getUIString(`TouchPanBlocker.Message`),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showTouchPanBlockerAlert(){this._alertContainer.style.visibility=`visible`,this._alertContainer.classList.add(`mapboxgl-touch-pan-blocker-show`),this._alertContainer.setAttribute(`role`,`alert`),clearTimeout(this._alertTimer),this._alertTimer=setTimeout((()=>{this._alertContainer.classList.remove(`mapboxgl-touch-pan-blocker-show`),this._alertContainer.setAttribute(`role`,`null`)}),500)}}class xi{constructor(){this.reset()}reset(){this._active=!1,this._firstTwoTouches=void 0}_start(e){}_move(e,t,n){return{}}touchstart(e,t,n){this._firstTwoTouches||n.length<2||(this._firstTwoTouches=[n[0].identifier,n[1].identifier],this._start([t[0],t[1]]))}touchmove(e,t,n){let r=this._firstTwoTouches;if(!r)return;e.preventDefault();let[i,a]=r,o=Si(n,t,i),s=Si(n,t,a);if(!o||!s)return;let c=this._aroundCenter?null:o.add(s).div(2);return this._move([o,s],c,e)}touchend(e,t,n){if(!this._firstTwoTouches)return;let[r,i]=this._firstTwoTouches,a=Si(n,t,r),o=Si(n,t,i);a&&o||(this._active&&p(),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 Si(e,t,n){for(let r=0;r<e.length;r++)if(e[r].identifier===n)return t[r]}function Ci(e,t){return Math.log(e/t)/Math.LN2}class wi extends xi{reset(){super.reset(),this._distance=0,this._startDistance=0}_start(e){this._startDistance=this._distance=e[0].dist(e[1])}_move(e,t){let n=this._distance;if(this._distance=e[0].dist(e[1]),this._active||!(Math.abs(Ci(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:Ci(this._distance,n),pinchAround:t}}}function Ti(e,t){return 180*e.angleWith(t)/Math.PI}class Ei extends xi{reset(){super.reset(),this._minDiameter=0,this._startVector=void 0,this._vector=void 0}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1])}_move(e,t){let n=this._vector;if(this._vector=e[0].sub(e[1]),n&&(this._active||!this._isBelowThreshold(this._vector)))return this._active=!0,{bearingDelta:Ti(this._vector,n),pinchAround:t}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());let t=25/(Math.PI*this._minDiameter)*360,n=this._startVector;if(!n)return!1;let r=Ti(e,n);return Math.abs(r)<t}}function Di(e){return Math.abs(e.y)>Math.abs(e.x)}class Oi extends xi{constructor(e){super(),this._map=e}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0}_start(e){this._lastPoints=e,Di(e[0].sub(e[1]))&&(this._valid=!1)}_move(t,n,r){let i=this._lastPoints;if(!i)return;let a=t[0].sub(i[0]),o=t[1].sub(i[1]);return this._map._cooperativeGestures&&!e.isFullscreen()&&r.touches.length<3||(this._valid=this.gestureBeginsVertically(a,o,r.timeStamp),!this._valid)?void 0:(this._lastPoints=t,this._active=!0,{pitchDelta:(a.y+o.y)/2*-.5})}gestureBeginsVertically(e,t,n){if(this._valid!==void 0)return this._valid;let r=e.mag()>=2,i=t.mag()>=2;if(!r&&!i)return;if(!r||!i)return this._firstMove??=n,n-this._firstMove<100&&void 0;let a=e.y>0==t.y>0;return Di(e)&&Di(t)&&a}}let ki={panStep:100,bearingStep:15,pitchStep:10};class Ai{constructor(){let e=ki;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let t=0,n=0,r=0,i=0,a=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?r=1:(e.preventDefault(),a=-1);break;case 40:e.shiftKey?r=-1:(e.preventDefault(),a=1);break;default:return}return this._rotationDisabled&&(n=0,r=0),{cameraAnimation:o=>{let s=o.getZoom();o.easeTo({duration:300,easeId:`keyboardHandler`,easing:ji,zoom:t?Math.round(s)+t*(e.shiftKey?2:1):s,bearing:o.getBearing()+n*this._bearingStep,pitch:o.getPitch()+r*this._pitchStep,offset:[-i*this._panStep,-a*this._panStep],center:o.getCenter()},{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 ji(e){return e*(2-e)}let Mi=4.000244140625;class Ni{constructor(t,n){this._map=t,this._el=t.getCanvasContainer(),this._handler=n,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,e.bindAll([`_onTimeout`,`_addScrollZoomBlocker`,`_showBlockerAlert`],this)}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`,this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(t){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(t.ctrlKey||t.metaKey||this.isZooming()||e.isFullscreen()))return void this._showBlockerAlert();this._alertContainer.style.visibility!==`hidden`&&(this._alertContainer.style.visibility=`hidden`,clearTimeout(this._alertTimer))}let n=t.deltaMode===e.window.WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY,r=e.exported.now(),i=r-(this._lastWheelEventTime||0);this._lastWheelEventTime=r,n!==0&&n%Mi==0?this._type=`wheel`:n!==0&&Math.abs(n)<4?this._type=`trackpad`:i>400?(this._type=null,this._lastValue=n,this._timeout=setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(i*n)<200?`trackpad`:`wheel`,this._timeout&&(clearTimeout(this._timeout),this._timeout=null,n+=this._lastValue)),t.shiftKey&&n&&(n/=4),this._type&&(this._lastWheelEvent=t,this._delta-=n,this._active||this._start(t)),t.preventDefault()}_onTimeout(e){this._type=`wheel`,this._delta-=this._lastValue,this._active||this._start(e)}_start(e){if(!this._delta)return;this._frameId&&=null,this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let t=m(this._el,e);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:t,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRe
1233nderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;let t=this._map.transform;this._type===`wheel`&&t.projection.wrap&&(t._center.lng>=180||t._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);let n=()=>t._terrainEnabled()&&this._aroundCoord?t.computeZoomRelativeTo(this._aroundCoord):t.zoom;if(this._delta!==0){let e=this._type===`wheel`&&Math.abs(this._delta)>Mi?this._wheelZoomRate:this._defaultZoomRate,r=2/(1+Math.exp(-Math.abs(this._delta*e)));this._delta<0&&r!==0&&(r=1/r);let i=n(),a=2**i,o=typeof this._targetZoom==`number`?t.zoomScale(this._targetZoom):a;this._targetZoom=Math.min(t.maxZoom,Math.max(t.minZoom,t.scaleZoom(o*r))),this._type===`wheel`&&(this._startZoom=i,this._easing=this._smoothOutEasing(200)),this._delta=0}let r=typeof this._targetZoom==`number`?this._targetZoom:n(),i=this._startZoom,a=this._easing,o,s=!1;if(this._type===`wheel`&&i&&a){let t=Math.min((e.exported.now()-this._lastWheelEventTime)/200,1),n=a(t);o=e.number(i,r,n),t<1?this._frameId||=!0:s=!0}else o=r,s=!0;return this._active=!0,s&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!s,zoomDelta:o-n(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let n=e.ease;if(this._prevEase){let t=this._prevEase,r=(e.exported.now()-t.start)/t.duration,i=t.easing(r+.01)-t.easing(r),a=.27/Math.sqrt(i*i+1e-4)*.01,o=Math.sqrt(.0729-a*a);n=e.bezier(a,o,.25,1)}return this._prevEase={start:e.exported.now(),duration:t,easing:n},n}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=a(`div`,`mapboxgl-scroll-zoom-blocker`,this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(e.window.navigator.userAgent)?this._map._getUIString(`ScrollZoomBlocker.CmdMessage`):this._map._getUIString(`ScrollZoomBlocker.CtrlMessage`),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`)}_showBlockerAlert(){this._alertContainer.style.visibility=`visible`,this._alertContainer.classList.add(`mapboxgl-scroll-zoom-blocker-show`),this._alertContainer.setAttribute(`role`,`alert`),clearTimeout(this._alertTimer),this._alertTimer=setTimeout((()=>{this._alertContainer.classList.remove(`mapboxgl-scroll-zoom-blocker-show`),this._alertContainer.setAttribute(`role`,`null`)}),200)}}class Pi{constructor(e,t){this._clickZoom=e,this._tapZoom=t}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 Fi{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(e,t){return e.preventDefault(),{cameraAnimation:n=>{n.easeTo({duration:300,zoom:n.getZoom()+(e.shiftKey?-1:1),around:n.unproject(t)},{originalEvent:e})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Ii{constructor(){this._tap=new pi({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset()}touchstart(e,t,n){this._swipePoint||(this._tapTime&&e.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?n.length>0&&(this._swipePoint=t[0],this._swipeTouch=n[0].identifier):this._tap.touchstart(e,t,n))}touchmove(e,t,n){if(this._tapTime){if(this._swipePoint){if(n[0].identifier!==this._swipeTouch)return;let r=t[0],i=r.y-this._swipePoint.y;return this._swipePoint=r,e.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(e,t,n)}touchend(e,t,n){this._tapTime?this._swipePoint&&n.length===0&&this.reset():this._tap.touchend(e,t,n)&&(this._tapTime=e.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Li{constructor(e,t,n){this._el=e,this._mousePan=t,this._touchPan=n}
1233enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(`mapboxgl-touch-drag-pan`)}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(`mapboxgl-touch-drag-pan`)}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Ri{constructor(e,t,n){this._pitchWithRotate=e.pitchWithRotate,this._mouseRotate=t,this._mousePitch=n}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class zi{constructor(e,t,n,r){this._el=e,this._touchZoom=t,this._touchRotate=n,this._tapDragZoom=r,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(`mapboxgl-touch-zoom-rotate`)}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(`mapboxgl-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()}}let Bi=e=>e.zoom||e.drag||e.pitch||e.rotate;class Vi extends e.Event{}class Hi{constructor(){this.constants=[1,1,.01],this.radius=0}setup(t,n){let r=e.sub([],n,t);this.radius=e.length(r[2]<0?e.div([],r,this.constants):[r[0],r[1],0])}projectRay(t){e.div(t,t,this.constants),e.normalize(t,t),e.mul$1(t,t,this.constants);let n=e.scale$2([],t,this.radius);if(n[2]>0){let t=e.scale$2([],[0,0,1],e.dot(n,[0,0,1])),r=e.scale$2([],e.normalize([],[n[0],n[1],0]),this.radius),i=e.add([],n,e.scale$2([],e.sub([],e.add([],r,t),n),2));n[0]=i[0],n[1]=i[1]}return n}}function Ui(e){return e.panDelta&&e.panDelta.mag()||e.zoomDelta||e.bearingDelta||e.pitchDelta}class Wi{constructor(t,n){this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new q(t),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new Hi,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(n),e.bindAll([`handleEvent`,`handleWindowEvent`],this);let r=this._el;this._listeners=[[r,`touchstart`,{passive:!0}],[r,`touchmove`,{passive:!1}],[r,`touchend`,void 0],[r,`touchcancel`,void 0],[r,`mousedown`,void 0],[r,`mousemove`,void 0],[r,`mouseup`,void 0],[e.window.document,`mousemove`,{capture:!0}],[e.window.document,`mouseup`,void 0],[r,`mouseover`,void 0],[r,`mouseout`,void 0],[r,`dblclick`,void 0],[r,`click`,void 0],[r,`keydown`,{capture:!1}],[r,`keyup`,void 0],[r,`wheel`,{passive:!1}],[r,`contextmenu`,void 0],[e.window,`blur`,void 0]];for(let[t,n,r]of this._listeners)t.addEventListener(n,t===e.window.document?this.handleWindowEvent:this.handleEvent,r)}destroy(){for(let[t,n,r]of this._listeners)t.removeEventListener(n,t===e.window.document?this.handleWindowEvent:this.handleEvent,r)}_addDefaultHandlers(e){let t=this._map,n=t.getCanvasContainer();this._add(`mapEvent`,new ci(t,e));let r=t.boxZoom=new ui(t,e);this._add(`boxZoom`,r);let i=new mi,a=new Fi;t.doubleClickZoom=new Pi(a,i),this._add(`tapZoom`,i),this._add(`clickZoom`,a);let o=new Ii;this._add(`tapDragZoom`,o);let s=t.touchPitch=new Oi(t);this._add(`touchPitch`,s);let c=new vi(e),l=new yi(e);t.dragRotate=new Ri(e,c,l),this._add(`mouseRotate`,c,[`mousePitch`]),this._add(`mousePitch`,l,[`mouseRotate`]);let u=new _i(e),d=new bi(t,e);t.dragPan=new Li(n,u,d),this._add(`mousePan`,u),this._add(`touchPan`,d,[`touchZoom`,`touchRotate`]);let f=new Ei,p=new wi;t.touchZoomRotate=new zi(n,p,f,o),this._add(`touchRotate`,f,[`touchPan`,`touchZoom`]),this._add(`touchZoom`,p,[`touchPan`,`touchRotate`]),this._add(`blockableMapEvent`,new li(t));let m=t.scrollZoom=new Ni(t,this);this._add(`scrollZoom`,m,[`mousePan`]);let h=t.keyboard=new Ai;this._add(`keyboard`,h);for(let n of[`boxZoom`,`doubleClickZoom`,`tapDragZoom`,`touchPitch`,`dragRotate`,`dragPan`,`touchZoomRotate`,`scrollZoom`,`keyboard`])e.interactive&&e[n]&&t[n].enable(e[n])}_add(e,t,n){this._handlers.push({handlerName:e,handler:t,allowed:n}),this._handlersById[e]=t}stop(e){if(!this._updatingCamera){for(let{handler:e}of this._handlers)e.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[]}}isActive(){for(let{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!!Bi(this._eventsInProgress)||this.isZooming()}_isDragging(){return!!this._eventsInProgress.drag}_blockedByActive(e,t,n){for(let r in e)if(r!==n&&(!t||t.indexOf(r)<0))return!0;return!1}handleWindowEvent(e){this.handleEvent(e,`${e.type}Window`)}_getMapTouches(e){let t=[];for(let n of e)this._el.contains(n.target)&&t.push(n);return t}handleEvent(e,t){this._updatingCamera=!0;let n=e.type===`renderFrame`,r=n?void 0:e,i={needsRenderFrame:!1},a={},o={},s=e.touches?this._getMapTouches(e.touches):void 0,c=s?h(this._el,s):n?void 0:m(this._el,e);for(let{handlerName:n,handler:l,allowed:u}of this._handlers){if(!l.isEnabled())continue;let d;this._blockedByActive(o,u,n)?l.reset():l[t||e.type]&&(d=l[t||e.type](e,c,s),this.mergeHandlerResult(i,a,d,n,r),d&&d.needsRenderFrame&&this._triggerRe
1233nderFrame()),(d||l.isActive())&&(o[n]=l)}let l={};for(let e in this._previousActiveHandlers)o[e]||(l[e]=r);this._previousActiveHandlers=o,(Object.keys(l).length||Ui(i))&&(this._changes.push([i,a,l]),this._triggerRenderFrame()),(Object.keys(o).length||Ui(i))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:u}=i;u&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],u(this._map))}mergeHandlerResult(t,n,r,i,a){if(!r)return;e.extend(t,r);let o={handlerName:i,originalEvent:r.originalEvent||a};r.zoomDelta!==void 0&&(n.zoom=o),r.panDelta!==void 0&&(n.drag=o),r.pitchDelta!==void 0&&(n.pitch=o),r.bearingDelta!==void 0&&(n.rotate=o)}_applyChanges(){let t={},n={},r={};for(let[i,a,o]of this._changes)i.panDelta&&(t.panDelta=(t.panDelta||new e.pointGeometry(0,0))._add(i.panDelta)),i.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+i.zoomDelta),i.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+i.bearingDelta),i.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+i.pitchDelta),i.around!==void 0&&(t.around=i.around),i.aroundCoord!==void 0&&(t.aroundCoord=i.aroundCoord),i.pinchAround!==void 0&&(t.pinchAround=i.pinchAround),i.noInertia&&(t.noInertia=i.noInertia),e.extend(n,a),e.extend(r,o);this._updateMapTransform(t,n,r),this._changes=[]}_updateMapTransform(t,n,r){let i=this._map,a=i.transform,o=e=>[e.x,e.y,e.z];if((e=>{let t=this._eventsInProgress.drag;return t&&!this._handlersById[t.handlerName].isActive()})()&&!Ui(t)){let e=a.zoom;a.cameraElevationReference=`sea`,a.recenterOnTerrain(),a.cameraElevationReference=`ground`,e!==a.zoom&&this._map._update(!0)}if(a._isCameraConstrained&&i._stop(!0),!Ui(t))return void this._fireEvents(n,r,!0);let{panDelta:s,zoomDelta:c,bearingDelta:l,pitchDelta:u,around:d,aroundCoord:f,pinchAround:p}=t;a._isCameraConstrained&&=(c>0&&(c=0),!1),p!==void 0&&(d=p),(e=>n.drag&&!this._eventsInProgress.drag)()&&d&&(this._dragOrigin=o(a.pointCoordinate3D(d)),this._trackingEllipsoid.setup(a._camera.position,this._dragOrigin)),a.cameraElevationReference=`sea`,i._stop(!0),d||=i.transform.centerPoint,l&&(a.bearing+=l),u&&(a.pitch+=u),a._updateCameraState();let m=[0,0,0];if(s)if(a.projection.name===`mercator`){let e=this._trackingEllipsoid.projectRay(a.screenPointToMercatorRay(d).dir),t=this._trackingEllipsoid.projectRay(a.screenPointToMercatorRay(d.sub(s)).dir);m[0]=t[0]-e[0],m[1]=t[1]-e[1]}else{let t=a.pointCoordinate(d);if(a.projection.name===`globe`){s=s.rotate(-a.angle);let n=a._pixelsPerMercatorPixel/a.worldSize;m[0]=-s.x*e.mercatorScale(e.latFromMercatorY(t.y))*n,m[1]=-s.y*e.mercatorScale(a.center.lat)*n}else{let e=a.pointCoordinate(d.sub(s));t&&e&&(m[0]=e.x-t.x,m[1]=e.y-t.y)}}let h=a.zoom,g=[0,0,0];if(c){let t=o(f||a.pointCoordinate3D(d)),n={dir:e.normalize([],e.sub([],t,a._camera.position))};if(n.dir[2]<0){let r=a.zoomDeltaToMovement(t,c);e.scale$2(g,n.dir,r)}}let _=e.add(m,m,g);a._translateCameraConstrained(_),c&&Math.abs(a.zoom-h)>1e-4&&a.recenterOnTerrain(),a.cameraElevationReference=`ground`,this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(n,r,!0)}_fireEvents(t,n,r){let i=Bi(this._eventsInProgress),a=Bi(t),o={};for(let e in t){let{originalEvent:n}=t[e];this._eventsInProgress[e]||(o[`${e}start`]=n),this._eventsInProgress[e]=t[e]}!i&&a&&this._fireEvent(`movestart`,a.originalEvent);for(let e in o)this._fireEvent(e,o[e]);a&&this._fireEvent(`move`,a.originalEvent);for(let e in t){let{originalEvent:n}=t[e];this._fireEvent(e,n)}let s={},c;for(let e in this._eventsInProgress){let{handlerName:t,originalEvent:r}=this._eventsInProgress[e];this._handlersById[t].isActive()||(delete this._eventsInProgress[e],c=n[t]||r,s[`${e}end`]=c)}for(let e in s)this._fireEvent(e,s[e]);let l=Bi(this._eventsInProgress);if(r&&(i||a)&&!l){this._updatingCamera=!0;let t=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),n=e=>e!==0&&-this._bearingSnap<e&&e<this._bearingSnap;
1233t?(n(t.bearing||this._map.getBearing())&&(t.bearing=0),this._map.easeTo(t,{originalEvent:c})):(this._map.fire(new e.Event(`moveend`,{originalEvent:c})),n(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1}}_fireEvent(t,n){this._map.fire(new e.Event(t,n?{originalEvent:n}:{}))}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add((e=>{this._frameId=void 0,this.handleEvent(new Vi(`renderFrame`,{timeStamp:e})),this._applyChanges()}))}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}let Gi=`map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.`;class Ki extends e.Evented{constructor(t,n){super(),this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=n.bearingSnap,e.bindAll([`_renderFrameCallback`],this)}getCenter(){return new e.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(e,t){return this.jumpTo({center:e},t)}panBy(t,n,r){return t=e.pointGeometry.convert(t).mult(-1),this.panTo(this.transform.center,e.extend({offset:t},n),r)}panTo(t,n,r){return this.easeTo(e.extend({center:t},n),r)}getZoom(){return this.transform.zoom}setZoom(e,t){return this.jumpTo({zoom:e},t),this}zoomTo(t,n,r){return this.easeTo(e.extend({zoom:t},n),r)}zoomIn(e,t){return this.zoomTo(this.getZoom()+1,e,t),this}zoomOut(e,t){return this.zoomTo(this.getZoom()-1,e,t),this}getBearing(){return this.transform.bearing}setBearing(e,t){return this.jumpTo({bearing:e},t),this}getPadding(){return this.transform.padding}setPadding(e,t){return this.jumpTo({padding:e},t),this}rotateTo(t,n,r){return this.easeTo(e.extend({bearing:t},n),r)}resetNorth(t,n){return this.rotateTo(0,e.extend({duration:1e3},t),n),this}resetNorthPitch(t,n){return this.easeTo(e.extend({bearing:0,pitch:0,duration:1e3},t),n),this}snapToNorth(e,t){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,t):this}getPitch(){return this.transform.pitch}setPitch(e,t){return this.jumpTo({pitch:e},t),this}cameraForBounds(t,n){t=e.LngLatBounds.convert(t);let r=n&&n.bearing||0,i=n&&n.pitch||0,a=t.getNorthWest(),o=t.getSouthEast();return this._cameraForBounds(this.transform,a,o,r,i,n)}_extendCameraOptions(t){let n={top:0,bottom:0,right:0,left:0};if(typeof(t=e.extend({padding:n,offset:[0,0],maxZoom:this.transform.maxZoom},t)).padding==`number`){let e=t.padding;t.padding={top:e,bottom:e,right:e,left:e}}return t.padding=e.extend(n,t.padding),t}_minimumAABBFrustumDistance(e,t){let n=t.max[0]-t.min[0],r=t.max[1]-t.min[1];return n/r>e.aspect?n/(2*Math.tan(.5*e.fovX)*e.aspect):r/(2*Math.tan(.5*e.fovY)*e.aspect)}_cameraForBoundsOnGlobe(t,n,r,i,a,o){let s=t.clone(),c=this._extendCameraOptions(o);s.bearing=i,s.pitch=a;let l=e.LngLat.convert(n),u=e.LngLat.convert(r),d=.5*(l.lat+u.lat),f=.5*(l.lng+u.lng),p=e.latLngToECEF(d,f),m=e.normalize([],p),h=e.normalize([],e.cross([],m,[0,1,0])),g=e.cross([],h,m),_=[h[0],h[1],h[2],0,g[0],g[1],g[2],0,m[0],m[1],m[2],0,0,0,0,1],v=[p,e.latLngToECEF(l.lat,l.lng),e.latLngToECEF(u.lat,l.lng),e.latLngToECEF(u.lat,u.lng),e.latLngToECEF(l.lat,u.lng),e.latLngToECEF(d,l.lng),e.latLngToECEF(d,u.lng),e.latLngToECEF(l.lat,f),e.latLngToECEF(u.lat,f)],y=e.Aabb.fromPoints(v.map((t=>[e.dot(h,t),e.dot(g,t),e.dot(m,t)]))),b=e.transformMat4([],y.center,_);e.squaredLength(b)===0&&e.set(b,0,0,1),e.normalize(b,b),e.scale$2(b,b,e.GLOBE_RADIUS),s.center=e.ecefToLatLng(b);let x=s.getWorldToCameraMatrix(),S=e.invert(new Float64Array(16),x);y=e.Aabb.applyTransform(y,e.multiply([],x,_)),e.transformMat4(b,b,x);let C=.5*(y.max[2]-y.min[2]),w=this._minimumAABBFrustumDistance(s,y),T=e.scale$2([],[0,0,1],C),E=e.add(T,b,T),D=w+(s.pitch===0?0:e.distance(b,E)),O=s.globeCenterInViewSpace,k=e.sub([],b,[O[0],O[1],O[2]]);e.normalize(k,k),e.scale$2(k,k,D);let A=e.add([],b,k);e.transformMat4(A,A,S);let j=e.earthRadius/e.GLOBE_RADIUS,M=e.length(A),ee=e.mercatorZfromAltitude(M*j-e.earthRadius,0),N=Math.min(s.zoomFromMercatorZAdjusted(ee),c.maxZoom);return N>.5*(e.GLOBE_ZOOM_THRESHOLD_MIN+e.GLOBE_ZOOM_THRESHOLD_MAX)?(s.setProjection({name:`mercator`}),s.zoom=N,this._cameraForBounds(s,n,r,i,a,o)):{center:s.center,zoom:N,bearing:i,pitch:a}}queryTerrainElevation(t,n){let r=this.transform.elevation;return r?(n=e.extend({},{exaggerated:!0}
1233,n),r.getAtPoint(e.MercatorCoordinate.fromLngLat(t),null,n.exaggerated)):null}_cameraForBounds(t,n,r,i,a,o){if(t.projection.name===`globe`)return this._cameraForBoundsOnGlobe(t,n,r,i,a,o);let s=t.clone(),c=this._extendCameraOptions(o),l=s.padding;s.bearing=i,s.pitch=a;let u=e.LngLat.convert(n),d=e.LngLat.convert(r),f=new e.LngLat(u.lng,d.lat),p=new e.LngLat(d.lng,u.lat),m=s.project(u),h=s.project(d),g=this.queryTerrainElevation(u),_=this.queryTerrainElevation(d),v=this.queryTerrainElevation(f),y=this.queryTerrainElevation(p),b=[[m.x,m.y,Math.min(g||0,_||0,v||0,y||0)],[h.x,h.y,Math.max(g||0,_||0,v||0,y||0)]],x=e.Aabb.fromPoints(b),S=s.getWorldToCameraMatrix(),C=e.invert(new Float64Array(16),S);x=e.Aabb.applyTransform(x,S);let w=e.sub([],x.max,x.min),T=l.left||0,E=l.right||0,D=l.bottom||0,O=l.top||0,{left:k,right:A,top:j,bottom:M}=c.padding,ee=.5*(T+E),N=.5*(O+D),te=Math.min(s.scaleZoom(s.scale*Math.min((s.width-(T+E+k+A))/w[0],(s.height-(D+O+M+j))/w[1])),c.maxZoom),P=s.scale/s.zoomScale(te);x=new e.Aabb([x.min[0]-(k+ee)*P,x.min[1]-(M+N)*P,x.min[2]],[x.max[0]+(A+ee)*P,x.max[1]+(j+N)*P,x.max[2]]);let F=.5*w[2],I=this._minimumAABBFrustumDistance(s,x),ne=[0,0,1,0];e.transformMat4$1(ne,ne,S),e.normalize$2(ne,ne);let L=e.scale$2([],ne,I+F),re=e.add([],x.center,L),ie=(typeof c.offset.x==`number`&&typeof c.offset.y==`number`?new e.pointGeometry(c.offset.x,c.offset.y):e.pointGeometry.convert(c.offset)).rotate(-e.degToRad(i));x.center[0]-=ie.x*P,x.center[1]+=ie.y*P,e.transformMat4(x.center,x.center,C),e.transformMat4(re,re,C);let ae=[x.center[0],x.center[1],re[2]*s.pixelsPerMeter];e.scale$2(ae,ae,1/s.worldSize);let oe=e.lngFromMercatorX(ae[0]),se=e.latFromMercatorY(ae[1]),ce=Math.min(s._zoomFromMercatorZ(ae[2]),c.maxZoom),le=new e.LngLat(oe,se);return s.mercatorFromTransition&&ce<.5*(e.GLOBE_ZOOM_THRESHOLD_MIN+e.GLOBE_ZOOM_THRESHOLD_MAX)?(s.setProjection({name:`globe`}),s.zoom=ce,this._cameraForBounds(s,n,r,i,a,o)):{center:le,zoom:ce,bearing:i,pitch:a}}fitBounds(e,t,n){let r=this.cameraForBounds(e,t);return this._fitInternal(r,t,n)}fitScreenCoordinates(t,n,r,i,a){let o=e.pointGeometry.convert(t),s=e.pointGeometry.convert(n),c=new e.pointGeometry(Math.min(o.x,s.x),Math.min(o.y,s.y)),l=new e.pointGeometry(Math.max(o.x,s.x),Math.max(o.y,s.y));if(this.transform.projection.name===`mercator`&&this.transform.anyCornerOffEdge(o,s))return this;let u=this.transform.pointLocation3D(c),d=this.transform.pointLocation3D(l),f=this.transform.pointLocation3D(new e.pointGeometry(c.x,l.y)),p=this.transform.pointLocation3D(new e.pointGeometry(l.x,c.y)),m=[Math.min(u.lng,d.lng,f.lng,p.lng),Math.min(u.lat,d.lat,f.lat,p.lat)],h=[Math.max(u.lng,d.lng,f.lng,p.lng),Math.max(u.lat,d.lat,f.lat,p.lat)],g=i&&i.pitch?i.pitch:this.getPitch(),_=this._cameraForBounds(this.transform,m,h,r,g,i);return this._fitInternal(_,i,a)}_fitInternal(t,n,r){return t?(delete(n=e.extend(t,n)).padding,n.linear?this.easeTo(n,r):this.flyTo(n,r)):this}jumpTo(t,n){this.stop();let r=t.preloadOnly?this.transform.clone():this.transform,i=!1,a=!1,o=!1;return`zoom`in t&&r.zoom!==+t.zoom&&(i=!0,r.zoom=+t.zoom),t.center!==void 0&&(r.center=e.LngLat.convert(t.center)),`bearing`in t&&r.bearing!==+t.bearing&&(a=!0,r.bearing=+t.bearing),`pitch`in t&&r.pitch!==+t.pitch&&(o=!0,r.pitch=+t.pitch),t.padding==null||r.isPaddingEqual(t.padding)||(r.padding=t.padding),t.preloadOnly?(this._preloadTiles(r),this):(this.fire(new e.Event(`movestart`,n)).fire(new e.Event(`move`,n)),i&&this.fire(new e.Event(`zoomstart`,n)).fire(new e.Event(`zoom`,n)).fire(new e.Event(`zoomend`,n)),a&&this.fire(new e.Event(`rotatestart`,n)).fire(new e.Event(`rotate`,n)).fire(new e.Event(`rotateend`,n)),o&&this.fire(new e.Event(`pitchstart`,n)).fire(new e.Event(`pitch`,n)).fire(new e.Event(`pitchend`,n)),this.fire(new e.Event(`moveend`,n)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||e.warnOnce(Gi),this.transform.getFreeCameraOptions()}setFreeCameraOptions(t,n){let r=this.transform;if(!r.projection.supportsFreeCamera)return e.warnOnce(Gi),this;this.stop();let i=r.zoom,a=r.pitch,o=r.bearing;r.setFreeCameraOptions(t);let s=i!==r.zoom,c=a!==r.pitch,l=o!==r.bearing;return this.fire(new e.Event(`movestart`,n)).fire(new e.Event(`move`,n)),s&&this.fire(new e.Event(`zoomstart`,n)).fire(new e.Event(`zoom`,n)).fire(new e.Event(`zoomend`,n)),l&&this.fire(new e.Event(`rotatestart`,n)).fire(new e.Event(`rotate`,n)).fire(new e.Event(`rotateend`,n)),c&&this.fire(new e.Event(`pitchstart`,n)).fire(new e.Event(`pitch`,n)).fire(new e.Event(`pitchend`,n)),this.fire(new e.Event(`moveend`,n)),this}easeTo(t,n){this._stop(!1,t.easeId),(!1===(t=e.extend({offset:[0,0],duration:500,easing:e.ease},t)).animate||!t.essential&&e.exported.prefersReducedMotion)&&(t.duration=0);let r=this.transform,i=this.getZoom(),a=this.getBearing(),o=this.getPitch(),s=this.getPadding(),c=`zoom`in t?+t.zoom:i,l=`bearing`in t?this._normalizeBearing(t.bearing,a):a,u=`pitch`in t?+t.pitch:o,d=`padding`in t?t.padding:r.padding,f
1233=e.pointGeometry.convert(t.offset),p,m,h;if(r.projection.name===`globe`){let n=e.MercatorCoordinate.fromLngLat(r.center),i=f.rotate(-r.angle);n.x+=i.x/r.worldSize,n.y+=i.y/r.worldSize;let a=n.toLngLat(),o=e.LngLat.convert(t.center||a);this._normalizeCenter(o),p=r.centerPoint.add(i),m=new e.pointGeometry(n.x,n.y).mult(r.worldSize),h=new e.pointGeometry(e.mercatorXfromLng(o.lng),e.mercatorYfromLat(o.lat)).mult(r.worldSize).sub(m)}else{p=r.centerPoint.add(f);let n=r.pointLocation(p),i=e.LngLat.convert(t.center||n);this._normalizeCenter(i),m=r.project(n),h=r.project(i).sub(m)}let g=r.zoomScale(c-i),_,v;t.around&&(_=e.LngLat.convert(t.around),v=r.locationPoint(_));let y=this._zooming||c!==i,b=this._rotating||a!==l,x=this._pitching||u!==o,S=!r.isPaddingEqual(d),C=r=>C=>{if(y&&(r.zoom=e.number(i,c,C)),b&&(r.bearing=e.number(a,l,C)),x&&(r.pitch=e.number(o,u,C)),S&&(r.interpolatePadding(s,d,C),p=r.centerPoint.add(f)),_)r.setLocationAtPoint(_,v);else{let e=r.zoomScale(r.zoom-i),t=(c>i?Math.min(2,g):Math.max(.5,g))**(1-C),n=r.unproject(m.add(h.mult(C*t)).mult(e));r.setLocationAtPoint(r.renderWorldCopies?n.wrap():n,p)}return t.preloadOnly||this._fireMoveEvents(n),r};if(t.preloadOnly){let e=this._emulate(C,t.duration,r);return this._preloadTiles(e),this}let w={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=y,this._rotating=b,this._pitching=x,this._padding=S,this._easeId=t.easeId,this._prepareEase(n,t.noMoveStart,w),this._ease(C(r),(e=>{r.recenterOnTerrain(),this._afterEase(n,e)}),t),this}_prepareEase(t,n,r={}){this._moving=!0,this.transform.cameraElevationReference=`sea`,n||r.moving||this.fire(new e.Event(`movestart`,t)),this._zooming&&!r.zooming&&this.fire(new e.Event(`zoomstart`,t)),this._rotating&&!r.rotating&&this.fire(new e.Event(`rotatestart`,t)),this._pitching&&!r.pitching&&this.fire(new e.Event(`pitchstart`,t))}_fireMoveEvents(t){this.fire(new e.Event(`move`,t)),this._zooming&&this.fire(new e.Event(`zoom`,t)),this._rotating&&this.fire(new e.Event(`rotate`,t)),this._pitching&&this.fire(new e.Event(`pitch`,t))}_afterEase(t,n){if(this._easeId&&n&&this._easeId===n)return;this._easeId=void 0,this.transform.cameraElevationReference=`ground`;let r=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,r&&this.fire(new e.Event(`zoomend`,t)),i&&this.fire(new e.Event(`rotateend`,t)),a&&this.fire(new e.Event(`pitchend`,t)),this.fire(new e.Event(`moveend`,t))}flyTo(t,n){if(!t.essential&&e.exported.prefersReducedMotion){let r=e.pick(t,[`center`,`zoom`,`bearing`,`pitch`,`around`]);return this.jumpTo(r,n)}this.stop(),t=e.extend({offset:[0,0],speed:1.2,curve:1.42,easing:e.ease},t);let r=this.transform,i=this.getZoom(),a=this.getBearing(),o=this.getPitch(),s=this.getPadding(),c=`zoom`in t?e.clamp(+t.zoom,r.minZoom,r.maxZoom):i,l=`bearing`in t?this._normalizeBearing(t.bearing,a):a,u=`pitch`in t?+t.pitch:o,d=`padding`in t?t.padding:r.padding,f=r.zoomScale(c-i),p=e.pointGeometry.convert(t.offset),m=r.centerPoint.add(p),h=r.pointLocation(m),g=e.LngLat.convert(t.center||h);this._normalizeCenter(g);let _=r.project(h),v=r.project(g).sub(_),y=t.curve,b=Math.max(r.width,r.height),x=b/f,S=v.mag();if(`minZoom`in t){let n=e.clamp(Math.min(t.minZoom,i,c),r.minZoom,r.maxZoom),a=b/r.zoomScale(n-i);y=Math.sqrt(a/S*2)}let C=y*y;function w(e){let t=(x*x-b*b+(e?-1:1)*C*C*S*S)/(2*(e?x:b)*C*S);return Math.log(Math.sqrt(t*t+1)-t)}function T(e){return(Math.exp(e)-Math.exp(-e))/2}function E(e){return(Math.exp(e)+Math.exp(-e))/2}let D=w(0),O=function(e){return E(D)/E(D+y*e)},k=function(e){return b*((E(D)*(T(t=D+y*e)/E(t))-T(D))/C)/S;var t},A=(w(1)-D)/y;if(Math.abs(S)<1e-6||!isFinite(A)){if(Math.abs(b-x)<1e-6)return this.easeTo(t,n);let e=x<b?-1:1;A=Math.abs(Math.log(x/b))/y,k=function(){return 0},O=function(t){return Math.exp(e*y*t)}}t.duration=`duration`in t?+t.duration:1e3*A/(`screenSpeed`in t?+t.screenSpeed/y:+t.speed),t.maxDuration&&t.duration>t.maxDuration&&(t.duration=0);let j=a!==l,M=u!==o,ee=!r.isPaddingEqual(d),N=r=>f=>{let h=f*A,y=1/O(h);r.zoom=f===1?c:i+r.scaleZoom(y),j&&(r.bearing=e.number(a,l,f)),M&&(r.pitch=e.number(o,u,f)),ee&&(r.interpolatePadding(s,d,f),m=r.centerPoint.add(p));let b=f===1?g:r.unproject(_.add(v.mult(k(h))).mult(y));return r.setLocationAtPoint(r.renderWorldCopies?b.wrap():b,m),r._updateCameraOnTerrain(),t.preloadOnly||this._fireMoveEvents(n),r};if(t.preloadOnly){let e=this._emulate(N,t.duration,r);return this._preloadTiles(e),this}return this._zooming=!0,this._rotating=j,this._pitching=M,this._padding=ee,this._prepareEase(n,!1),this._ease(N(r),(()=>this._afterEase(n)),t),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(e,t){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){let e=this._onEaseEnd;this._onEaseEnd=void 0,e.call(this,t)}if(!e){let e=this.handlers;e&&e.stop(!1)}return this}_ease(t,n,r){!1===r.animate||r.duration===0?(t(1),n()):(this._easeStart=e.exported.now(),this._easeOptions=r,this._onEaseFrame=t,this._onEaseEnd=n,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){let t=Math.min((e.exported.now()-this._easeStart)/this._easeOptions.duration,1),n=this._onEaseFrame;n&&n(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(t,n){t=e.wrap(t,-180,180);let r=Math.abs(t-n);return Math.abs(t-360-n)<r&&(t-=360),Math.abs(t+360-n)<r&&(t+=360),t}_normalizeCenter(e){let t=this.transform;
1233if(!t.renderWorldCopies||t.maxBounds)return;let n=e.lng-t.center.lng;e.lng+=n>180?-360:n<-180?360:0}_emulate(e,t,n){let r=Math.ceil(15*t/1e3),i=[],a=e(n.clone());for(let e=0;e<=r;e++){let t=a(e/r);i.push(t.clone())}return i}}class J{constructor(t={}){this.options=t,e.bindAll([`_toggleAttribution`,`_updateEditLink`,`_updateData`,`_updateCompact`],this)}getDefaultPosition(){return`bottom-right`}onAdd(e){let t=this.options&&this.options.compact;return this._map=e,this._container=a(`div`,`mapboxgl-ctrl mapboxgl-ctrl-attrib`),this._compactButton=a(`button`,`mapboxgl-ctrl-attrib-button`,this._container),a(`span`,`mapboxgl-ctrl-icon`,this._compactButton).setAttribute(`aria-hidden`,`true`),this._compactButton.type=`button`,this._compactButton.addEventListener(`click`,this._toggleAttribution),this._setElementTitle(this._compactButton,`ToggleAttribution`),this._innerContainer=a(`div`,`mapboxgl-ctrl-attrib-inner`,this._container),this._innerContainer.setAttribute(`role`,`list`),t&&this._container.classList.add(`mapboxgl-compact`),this._updateAttributions(),this._updateEditLink(),this._map.on(`styledata`,this._updateData),this._map.on(`sourcedata`,this._updateData),this._map.on(`moveend`,this._updateEditLink),t===void 0&&(this._map.on(`resize`,this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off(`styledata`,this._updateData),this._map.off(`sourcedata`,this._updateData),this._map.off(`moveend`,this._updateEditLink),this._map.off(`resize`,this._updateCompact),this._map=void 0,this._attribHTML=void 0}_setElementTitle(e,t){let n=this._map._getUIString(`AttributionControl.${t}`);e.setAttribute(`aria-label`,n),e.removeAttribute(`title`),e.firstElementChild&&e.firstElementChild.setAttribute(`title`,n)}_toggleAttribution(){this._container.classList.contains(`mapboxgl-compact-show`)?(this._container.classList.remove(`mapboxgl-compact-show`),this._compactButton.setAttribute(`aria-expanded`,`false`)):(this._container.classList.add(`mapboxgl-compact-show`),this._compactButton.setAttribute(`aria-expanded`,`true`))}_updateEditLink(){let t=this._editLink;t||=this._editLink=this._container.querySelector(`.mapbox-improve-map`);let n=[{key:`owner`,value:this.styleOwner},{key:`id`,value:this.styleId},{key:`access_token`,value:this._map._requestManager._customAccessToken||e.config.ACCESS_TOKEN}];if(t){let r=n.reduce(((e,t,r)=>(t.value&&(e+=`${t.key}=${t.value}${r<n.length-1?`&`:``}`),e)),`?`);t.href=`${e.config.FEEDBACK_URL}/${r}#${Zr(this._map,!0)}`,t.rel=`noopener nofollow`,this._setElementTitle(t,`MapFeedback`)}}_updateData(e){!e||e.sourceDataType!==`metadata`&&e.sourceDataType!==`visibility`&&e.dataType!==`style`||(this._updateAttributions(),this._updateEditLink())}_updateAttributions(){if(!this._map.style)return;let e=[];
1233if(this._map.style.stylesheet){let e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id}let t=this._map.style._sourceCaches;for(let n in t){let r=t[n];if(r.used){let t=r.getSource();t.attribution&&e.indexOf(t.attribution)<0&&e.push(t.attribution)}}e.sort(((e,t)=>e.length-t.length)),e=e.filter(((t,n)=>{for(let r=n+1;r<e.length;r++)if(e[r].indexOf(t)>=0)return!1;return!0})),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=[...this.options.customAttribution,...e]:e.unshift(this.options.customAttribution));let n=e.join(` | `);n!==this._attribHTML&&(this._attribHTML=n,e.length?(this._innerContainer.innerHTML=n,this._container.classList.remove(`mapboxgl-attrib-empty`)):this._container.classList.add(`mapboxgl-attrib-empty`),this._editLink=null)}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add(`mapboxgl-compact`):this._container.classList.remove(`mapboxgl-compact`,`mapboxgl-compact-show`)}}class qi{constructor(){e.bindAll([`_updateLogo`,`_updateCompact`],this)}onAdd(e){this._map=e,this._container=a(`div`,`mapboxgl-ctrl`);let t=a(`a`,`mapboxgl-ctrl-logo`);return t.target=`_blank`,t.rel=`noopener nofollow`,t.href=`https://www.mapbox.com/`,t.setAttribute(`aria-label`,this._map._getUIString(`LogoControl.Title`)),t.setAttribute(`rel`,`noopener nofollow`),this._container.appendChild(t),this._container.style.display=`none`,this._map.on(`sourcedata`,this._updateLogo),this._updateLogo(),this._map.on(`resize`,this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off(`sourcedata`,this._updateLogo),this._map.off(`resize`,this._updateCompact)}getDefaultPosition(){return`bottom-left`}_updateLogo(e){e&&e.sourceDataType!==`metadata`||(this._container.style.display=this._logoRequired()?`block`:`none`)}_logoRequired(){if(!this._map.style)return!0;let e=this._map.style._sourceCaches;if(Object.entries(e).length===0)return!0;for(let t in e){let n=e[t].getSource();if(n.hasOwnProperty(`mapbox_logo`)&&!n.mapbox_logo)return!1}return!0}_updateCompact(){let e=this._container.children;if(e.length){let t=e[0];this._map.getCanvasContainer().offsetWidth<250?t.classList.add(`mapboxgl-compact`):t.classList.remove(`mapboxgl-compact`)}}}class Ji{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(e){let t=++this._id;return this._queue.push({callback:e,id:t,cancelled:!1}),t}remove(e){let t=this._currentlyRunning,n=t?this._queue.concat(t):this._queue;for(let t of n)if(t.id===e)return void(t.cancelled=!0)}run(e=0){let t=this._currentlyRunning=this._queue;this._queue=[];for(let n of t)if(!n.cancelled&&(n.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function Yi(t,n,r){if(t=new e.LngLat(t.lng,t.lat),n){let i=new e.LngLat(t.lng-360,t.lat),a=new e.LngLat(t.lng+360,t.lat),o=360*Math.ceil(Math.abs(t.lng-r.center.lng)/360),s=r.locationPoint(t).distSqr(n),c=n.x<0||n.y<0||n.x>r.width||n.y>r.height;r.locationPoint(i).distSqr(n)<s&&(c||Math.abs(i.lng-r.center.lng)<o)?t=i:r.locationPoint(a).distSqr(n)<s&&(c||Math.abs(a.lng-r.center.lng)<o)&&(t=a)}for(;Math.abs(t.lng-r.center.lng)>180;){let e=r.locationPoint(t);if(e.x>=0&&e.y>=0&&e.x<=r.width&&e.y<=r.height)break;t.lng>r.center.lng?t.lng-=360:t.lng+=360}return t}let Xi={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%)`};class Zi extends e.Evented{constructor(t,n){if(super(),(t instanceof e.
1233window.HTMLElement||n)&&(t=e.extend({element:t},n)),e.bindAll([`_update`,`_onMove`,`_onUp`,`_addDragHandler`,`_onMapClick`,`_onKeyPress`,`_clearFadeTimer`],this),this._anchor=t&&t.anchor||`center`,this._color=t&&t.color||`#3FB1CE`,this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._isDragging=!1,this._state=`inactive`,this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||`auto`,this._pitchAlignment=t&&t.pitchAlignment&&t.pitchAlignment||`auto`,this._updateMoving=()=>this._update(!0),this._occludedOpacity=t&&t.occludedOpacity||.2,t&&t.element)this._element=t.element,this._offset=e.pointGeometry.convert(t&&t.offset||[0,0]);else{this._defaultMarker=!0,this._element=a(`div`);let n=o(`svg`,{display:`block`,height:41*this._scale+`px`,width:27*this._scale+`px`,viewBox:`0 0 27 41`},this._element),r=o(`radialGradient`,{id:`shadowGradient`},o(`defs`,{},n));o(`stop`,{offset:`10%`,"stop-opacity":.4},r),o(`stop`,{offset:`100%`,"stop-opacity":.05},r),o(`ellipse`,{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:`url(#shadowGradient)`},n),o(`path`,{fill:this._color,d:`M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z`},n),o(`path`,{opacity:.25,d:`M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z`},n),o(`circle`,{fill:`white`,cx:13.5,cy:13.5,r:5.5},n),this._offset=e.pointGeometry.convert(t&&t.offset||[0,-14])}this._element.hasAttribute(`aria-label`)||this._element.setAttribute(`aria-label`,`Map marker`),this._element.classList.add(`mapboxgl-marker`),this._element.addEventListener(`dragstart`,(e=>{e.preventDefault()})),this._element.addEventListener(`mousedown`,(e=>{e.preventDefault()}));let r=this._element.classList;for(let e in Xi)r.remove(`mapboxgl-marker-anchor-${e}`);r.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(e){return e===this._map||(this.remove(),this._map=e,e.getCanvasContainer().appendChild(this._element),e.on(`move`,this._updateMoving),e.on(`moveend`,this._update),e.on(`remove`,this._clearFadeTimer),e._addMarker(this),this.setDraggable(this._draggable),this._update(),e.on(`click`,this._onMapClick)),this}remove(){let e=this._map;return e&&(e.off(`click`,this._onMapClick),e.off(`move`,this._updateMoving),e.off(`moveend`,this._update),e.off(`mousedown`,this._addDragHandler),e.off(`touchstart`,this._addDragHandler),e.off(`mouseup`,this._onUp),e.off(`touchend`,this._onUp),e.off(`mousemove`,this._onMove),e.off(`touchmove`,this._onMove),e.off(`remove`,this._clearFadeTimer),e._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=e.LngLat.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute(`role`),this._element.removeEventListener(`keypress`,this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(`tabindex`)),e){if(!(`offset`in e.options)){let t=38.1,n=13.5,r=Math.sqrt(n**2/2);e.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[r,-1*(t-n+r)],"bottom-right":[-r,-1*(t-n+r)],left:[n,-1*(t-n)],right:[-13.5,-1*(t-n)]}:this._offset}this._popup=e,e._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute(`role`,`button`),this._originalTabIndex=this._element.getAttribute(`tabindex`),this._originalTabIndex||this._element.setAttribute(`tabindex`,`0`),this._element.addEventListener(`keypress`,this._onKeyPress),this._element.setAttribute(`aria-expanded`,`false`)}return this}_onKeyPress(e){let t=e.code,n=e.charCode||e.keyCode;t!==`Space`&&t!==`Enter`&&n!==32&&n!==13||this.togglePopup()}_onMapClick(e){let t=e.originalEvent.target,n=this._element;this._popup&&(t===n||n.contains(t))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){let e=this._popup;return e&&(e.isOpen()?(e.remove(),this._element.setAttribute(`aria-expanded`,`false`)):this._map&&(e.addTo(this._map),this._element.setAttribute(`aria-expanded`,`true`))),this}_behindTerrain(){let e=this._map,t=this._pos;if(!e||!t)return!1;let n=e.unproject(t),r=e.getFreeCameraOptions();if(!r.position)return!1;let i=r.position.toLngLat();return i.distanceTo(n)<.9*i.distanceTo(this._lngLat)}
1233_evaluateOpacity(){let t=this._map;if(!t)return;let n=this._pos;if(!n||n.x<0||n.x>t.transform.width||n.y<0||n.y>t.transform.height)return void this._clearFadeTimer();let r=t.unproject(n),i;t._showingGlobe()&&e.isLngLatBehindGlobe(t.transform,this._lngLat)?i=0:(i=1-t._queryFogOpacity(r),t.transform._terrainEnabled()&&t.getTerrain()&&this._behindTerrain()&&(i*=this._occludedOpacity)),this._element.style.opacity=`${i}`,this._element.style.pointerEvents=i>0?`auto`:`none`,this._popup&&this._popup._setOpacity(i),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&=(clearTimeout(this._fadeTimer),null)}_updateDOM(){let e=this._pos;if(!e||!this._map)return;let t=this._offset.mult(this._scale);this._element.style.transform=`\n translate(${e.x}px,${e.y}px)\n ${Xi[this._anchor]}\n ${this._calculateXYTransform()} ${this._calculateZTransform()}\n translate(${t.x}px,${t.y}px)\n `}_calculateXYTransform(){let t=this._pos,n=this._map,r=this.getPitchAlignment();if(!n||!t||r!==`map`)return``;if(!n._showingGlobe()){let e=n.getPitch();return e?`rotateX(${e}deg)`:``}let i=e.radToDeg(e.globeTiltAtLngLat(n.transform,this._lngLat)),a=t.sub(e.globeCenterToScreenPoint(n.transform)),o=Math.abs(a.x)+Math.abs(a.y);if(o===0)return``;let s=i/o;return`rotateX(${-a.y*s}deg) rotateY(${a.x*s}deg)`}_calculateZTransform(){let t=this._pos,n=this._map;if(!n||!t)return``;let r=0,i=this.getRotationAlignment();if(i===`map`)if(n._showingGlobe()){let t=n.project(new e.LngLat(this._lngLat.lng,this._lngLat.lat+.001)),i=n.project(new e.LngLat(this._lngLat.lng,this._lngLat.lat-.001)).sub(t);r=e.radToDeg(Math.atan2(i.y,i.x))-90}else r=-n.getBearing();else if(i===`horizon`){let i=e.smoothstep(4,6,n.getZoom()),a=e.globeCenterToScreenPoint(n.transform);a.y+=i*n.transform.height;let o=t.sub(a),s=e.radToDeg(Math.atan2(o.y,o.x));r=(s>90?s-270:s+90)*(1-i)}return r+=this._rotation,r?`rotateZ(${r}deg)`:``}_update(t){e.window.cancelAnimationFrame(this._updateFrameId);let n=this._map;
1233n&&(n.transform.renderWorldCopies&&(this._lngLat=Yi(this._lngLat,this._pos,n.transform)),this._pos=n.project(this._lngLat),!0===t?this._updateFrameId=e.window.requestAnimationFrame((()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())})):this._pos=this._pos.round(),n._requestDomTask((()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(n._showingGlobe()||n.getTerrain()||n.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))})))}getOffset(){return this._offset}setOffset(t){return this._offset=e.pointGeometry.convert(t),this._update(),this}_onMove(t){let n=this._map;if(!n)return;let r=this._pointerdownPos,i=this._positionDelta;if(r&&i){if(!this._isDragging){let e=this._clickTolerance||n._clickTolerance;if(t.point.dist(r)<e)return;this._isDragging=!0}this._pos=t.point.sub(i),this._lngLat=n.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=`none`,this._state===`pending`&&(this._state=`active`,this.fire(new e.Event(`dragstart`))),this.fire(new e.Event(`drag`))}}_onUp(){this._element.style.pointerEvents=`auto`,this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1;let t=this._map;t&&(t.off(`mousemove`,this._onMove),t.off(`touchmove`,this._onMove)),this._state===`active`&&this.fire(new e.Event(`dragend`)),this._state=`inactive`}_addDragHandler(e){let t=this._map,n=this._pos;t&&n&&this._element.contains(e.originalEvent.target)&&(e.preventDefault(),this._positionDelta=e.point.sub(n),this._pointerdownPos=e.point,this._state=`pending`,t.on(`mousemove`,this._onMove),t.on(`touchmove`,this._onMove),t.once(`mouseup`,this._onUp),t.once(`touchend`,this._onUp))}setDraggable(e){this._draggable=!!e;let t=this._map;return t&&(e?(t.on(`mousedown`,this._addDragHandler),t.on(`touchstart`,this._addDragHandler)):(t.off(`mousedown`,this._addDragHandler),t.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===`auto`||this._rotationAlignment===`horizon`&&this._map&&!this._map._showingGlobe()?`viewport`:this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e||`auto`,this._update(),this}getPitchAlignment(){return this._pitchAlignment===`auto`?this.getRotationAlignment():this._pitchAlignment}setOccludedOpacity(e){return this._occludedOpacity=e||.2,this._update(),this}getOccludedOpacity(){return this._occludedOpacity}}let Qi={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:``,maxWidth:`240px`},$i=[`a[href]`,`[tabindex]:not([tabindex='-1'])`,`[contenteditable]:not([contenteditable='false'])`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`].join(`, `);function ea(t=new e.pointGeometry(0,0),n=`bottom`){if(typeof t==`number`){let r=Math.round(Math.sqrt(.5*t**2));switch(n){case`top`:return new e.pointGeometry(0,t);case`top-left`:return new e.pointGeometry(r,r);case`top-right`:return new e.pointGeometry(-r,r);case`bottom`:return new e.pointGeometry(0,-t);case`bottom-left`:return new e.pointGeometry(r,-r);case`bottom-right`:return new e.pointGeometry(-r,-r);case`left`:return new e.pointGeometry(t,0);case`right`:return new e.pointGeometry(-t,0)}return new e.pointGeometry(0,0)}return t instanceof e.pointGeometry||Array.isArray(t)?e.pointGeometry.convert(t):e.pointGeometry.convert(t[n]||[0,0])}class ta{constructor(e){this.jumpTo(e)}getValue(t){if(t<=this._startTime)return this._start;if(t>=this._endTime)return this._end;let n=e.easeCubicInOut((t-this._startTime)/(this._endTime-this._startTime));return this._start*(1-n)+this._end*n}isEasing(e){return e>=this._startTime&&e<=this._endTime}jumpTo(e){this._startTime=-1/0,this._endTime=-1/0,this._start=e,this._end=e}easeTo(e,t,n){this._start=this.getValue(t),this._end=e,this._startTime=t,this._endTime=t+n}}let na={"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":`Mapbox logo`,"Map.Title":`Map`,"NavigationControl.ResetBearing":`Reset bearing to north`,"NavigationControl.ZoomIn":`Zoom in`,"NavigationControl.ZoomOut":`Zoom out`,"ScrollZoomBlocker.CtrlMessage":`Use ctrl + scroll to zoom the map`,"ScrollZoomBlocker.CmdMessage":`Use â + scroll to zoom the map`,"TouchPanBlocker.Message":`Use two fingers to move the map`},ra={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileC
1233acheSize:null,localIdeographFontFamily:`sans-serif`,localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},ia={showCompass:!0,showZoom:!0,visualizePitch:!1};class aa{constructor(t,n,r=!1){this._clickTolerance=10,this.element=n,this.mouseRotate=new vi({clickTolerance:t.dragRotate._mouseRotate._clickTolerance}),this.map=t,r&&(this.mousePitch=new yi({clickTolerance:t.dragRotate._mousePitch._clickTolerance})),e.bindAll([`mousedown`,`mousemove`,`mouseup`,`touchstart`,`touchmove`,`touchend`,`reset`],this),n.addEventListener(`mousedown`,this.mousedown),n.addEventListener(`touchstart`,this.touchstart,{passive:!1}),n.addEventListener(`touchmove`,this.touchmove),n.addEventListener(`touchend`,this.touchend),n.addEventListener(`touchcancel`,this.reset)}down(e,t){this.mouseRotate.mousedown(e,t),this.mousePitch&&this.mousePitch.mousedown(e,t),u()}move(e,t){let n=this.map,r=this.mouseRotate.mousemoveWindow(e,t),i=r&&r.bearingDelta;if(i&&n.setBearing(n.getBearing()+i),this.mousePitch){let r=this.mousePitch.mousemoveWindow(e,t),i=r&&r.pitchDelta;i&&n.setPitch(n.getPitch()+i)}}off(){let e=this.element;e.removeEventListener(`mousedown`,this.mousedown),e.removeEventListener(`touchstart`,this.touchstart,{passive:!1}),e.removeEventListener(`touchmove`,this.touchmove),e.removeEventListener(`touchend`,this.touchend),e.removeEventListener(`touchcancel`,this.reset),this.offTemp()}offTemp(){d(),e.window.removeEventListener(`mousemove`,this.mousemove),e.window.removeEventListener(`mouseup`,this.mouseup)}mousedown(t){this.down(e.extend({},t,{ctrlKey:!0,preventDefault:()=>t.preventDefault()}),m(this.element,t)),e.window.addEventListener(`mousemove`,this.mousemove),e.window.addEventListener(`mouseup`,this.mouseup)}mousemove(e){this.move(e,m(this.element,e))}mouseup(e){this.mouseRotate.mouseupWindow(e),this.mousePitch&&this.mousePitch.mouseupWindow(e),this.offTemp()}touchstart(e){e.targetTouches.length===1?(this._startPos=this._lastPos=h(this.element,e.targetTouches)[0],this.down({type:`mousedown`,button:0,ctrlKey:!0,preventDefault:()=>e.preventDefault()},this._startPos)):this.reset()}touchmove(e){e.targetTouches.length===1?(this._lastPos=h(this.element,e.targetTouches)[0],this.move({preventDefault:()=>e.preventDefault()},this._lastPos)):this.reset()}touchend(e){e.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset()}reset(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()}}let oa={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0,showUserHeading:!1},sa={maxWidth:100,unit:`metric`};function ca(e,t,n){let r=la(t),i=r/t,a={kilometer:`km`,meter:`m`,mile:`mi`,foot:`ft`,"nautical-mile":`nm`}[n];this._map._requestDomTask((()=>{this._container.style.width=e*i+`px`,this._container.innerHTML=`${r} ${a}`}))}function la(e){let t=10**(`${Math.floor(e)}`.length-1),n=e/t;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:function(e){let t=10**Math.ceil(-Math.log(e)/Math.LN10);return Math.round(e*t)/t}(n),t*n}let ua={version:e.version,supported:n,setRTLTextPlugin:e.setRTLTextPlugin,getRTLTextPluginStatus:e.getRTLTextPluginStatus,Map:class extends Ki{constructor(t){if(e.LivePerformanceUtils.mark(e.PerformanceMarkers.create),(t=e.extend({},ra,t)).minZoom!=null&&t.maxZoom!=null&&t.minZoom>t.maxZoom)throw Error(`maxZoom must be greater than or equal to minZoom`);if(t.minPitch!=null&&t.maxPitch!=null&&t.minPitch>t.maxPitch)throw Error(`maxPitch must be greater than or equal to minPitch`);if(t.minPitch!=null&&t.minPitch<0)throw Error(`minPitch must be greater than or equal to 0`);if(t.maxPitch!=null&&t.maxPitch>85)throw Error(`maxPitch must be less than or equal to 85`);if(t.antialias&&e.isSafariWithAntialiasingBug(e.window)&&(t.antialias=!1,e.warnOnce(`Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609`)),super(new Jr(t.minZoom,t.maxZoom,t.minPitch,t.maxPitch,t.renderWorldCopies),t),this._interactive=t.interactive,this._minTileCacheSize=t.minTileCacheSize,this._maxTileC
1233acheSize=t.maxTileCacheSize,this._failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=t.preserveDrawingBuffer,this._antialias=t.antialias,this._trackResize=t.trackResize,this._bearingSnap=t.bearingSnap,this._refreshExpiredTiles=t.refreshExpiredTiles,this._fadeDuration=t.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=t.crossSourceCollisions,this._collectResourceTiming=t.collectResourceTiming,this._optimizeForTerrain=t.optimizeForTerrain,this._language=this._parseLanguage(t.language),this._worldview=t.worldview,this._renderTaskQueue=new Ji,this._domRenderTaskQueue=new Ji,this._controls=[],this._markers=[],this._popups=[],this._mapId=e.uniqueId(),this._locale=e.extend({},na,t.locale),this._clickTolerance=t.clickTolerance,this._cooperativeGestures=t.cooperativeGestures,this._performanceMetricsCollection=t.performanceMetricsCollection,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new ta(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._requestManager=new e.RequestManager(t.transformRequest,t.accessToken,t.testMode),this._silenceAuthErrors=!!t.testMode,typeof t.container==`string`){if(this._container=e.window.document.getElementById(t.container),!this._container)throw Error(`Container '${t.container}' not found.`)}
1233else{if(!(t.container instanceof e.window.HTMLElement))throw Error(`Invalid type: 'container' must be a String or HTMLElement.`);this._container=t.container}if(this._container.childNodes.length>0&&e.warnOnce(`The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead.`),t.maxBounds&&this.setMaxBounds(t.maxBounds),e.bindAll([`_onWindowOnline`,`_onWindowResize`,`_onVisibilityChange`,`_onMapScroll`,`_contextLost`,`_contextRestored`],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw Error(`Failed to initialize WebGL.`);this.on(`move`,(()=>this._update(!1))),this.on(`moveend`,(()=>this._update(!1))),this.on(`zoom`,(()=>this._update(!0))),e.window!==void 0&&(e.window.addEventListener(`online`,this._onWindowOnline,!1),e.window.addEventListener(`resize`,this._onWindowResize,!1),e.window.addEventListener(`orientationchange`,this._onWindowResize,!1),e.window.addEventListener(`webkitfullscreenchange`,this._onWindowResize,!1),e.window.addEventListener(`visibilitychange`,this._onVisibilityChange,!1)),this.handlers=new Wi(this,t),this._localFontFamily=t.localFontFamily,this._localIdeographFontFamily=t.localIdeographFontFamily,t.style&&this.setStyle(t.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),t.projection&&this.setProjection(t.projection),this._hash=t.hash&&new Xr(typeof t.hash==`string`&&t.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:t.center,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}),t.bounds&&(this.resize(),this.fitBounds(t.bounds,e.extend({},t.fitBoundsOptions,{duration:0})))),this.resize(),t.attributionControl&&this.addControl(new J({customAttribution:t.customAttribution})),this._logoControl=new qi,this.addControl(this._logoControl,t.logoPosition),this.on(`style.load`,(()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)})),this.on(`data`,(t=>{this._update(t.dataType===`style`),this.fire(new e.Event(`${t.dataType}data`,t))})),this.on(`dataloading`,(t=>{this.fire(new e.Event(`${t.dataType}dataloading`,t))}))}_getMapId(){return this._mapId}addControl(t,n){if(n===void 0&&(n=t.getDefaultPosition?t.getDefaultPosition():`top-right`),!t||!t.onAdd)return this.fire(new e.ErrorEvent(Error(`Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.`)));let r=t.onAdd(this);this._controls.push(t);let i=this._controlPositions[n];return n.indexOf(`bottom`)===-1?i.appendChild(r):i.insertBefore(r,i.firstChild),this}removeControl(t){if(!t||!t.onRemove)return this.fire(new e.ErrorEvent(Error(`Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.`)));let n=this._controls.indexOf(t);return n>-1&&this._controls.splice(n,1),t.onRemove(this),this}hasControl(e){return this._controls.indexOf(e)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(t){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));let n=!this._moving;return n&&this.fire(new e.Event(`movestart`,t)).fire(new e.Event(`move`,t)),this.fire(new e.Event(`resize`,t)),n&&this.fire(new e.Event(`moveend`,t)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(t){return this.transform.setMaxBounds(e.LngLatBounds.convert(t)),this._update()}setMinZoom(t){if((t??=-2)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t?this.setZoom(t):this.fire(new e.Event(`zoomstart`)).fire(new e.Event(`zoom`)).fire(new e.Event(`zoomend`)),this;throw Error(`minZoom must be between -2 and the current maxZoom, inclusive`)}getMinZoom(){return this.transform.minZoom}setMaxZoom(t){if((t??=22)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t?this.setZoom(t):this.fire(new e.Event(`zoomstart`)).fire(new e.Event(`zoom`)).fire(new e.Event(`zoomend`)),this;
1233throw Error(`maxZoom must be greater than the current minZoom`)}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t??=0)<0)throw Error(`minPitch must be greater than or equal to 0`);if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()<t?this.setPitch(t):this.fire(new e.Event(`pitchstart`)).fire(new e.Event(`pitch`)).fire(new e.Event(`pitchend`)),this;throw Error(`minPitch must be between 0 and the current maxPitch, inclusive`)}getMinPitch(){return this.transform.minPitch}setMaxPitch(t){if((t??=85)>85)throw Error(`maxPitch must be less than or equal to 85`);if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t?this.setPitch(t):this.fire(new e.Event(`pitchstart`)).fire(new e.Event(`pitch`)).fire(new e.Event(`pitchend`)),this;throw Error(`maxPitch must be greater than or equal to minPitch`)}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(e){return this.transform.renderWorldCopies=e,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(t){return t===`auto`?e.window.navigator.language:Array.isArray(t)?t.length===0?void 0:t.map((t=>t===`auto`?e.window.navigator.language:t)):t}setLanguage(e){let t=this._parseLanguage(e);if(!this.style||t===this._language)return this;this._language=t,this.style._reloadSources();for(let e of this._controls)e._setLanguage&&e._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(e){return this.style&&e!==this._worldview?(this._worldview=e,this.style._reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:`globe`,center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return this.transform.projection.name===`globe`}setProjection(e){return this._lazyInitEmptyStyle(),e?typeof e==`string`&&(e={name:e}):e=null,this._useExplicitProjection=!!e,this._prioritizeAndUpdateProjection(e,this.style.stylesheet?this.style.stylesheet.projection:null)}_updateProjectionTransition(){if(this.getProjection().name!==`globe`)return;let t=this.transform,n=t.projection.name,r;n===`globe`&&t.zoom>=e.GLOBE_ZOOM_THRESHOLD_MAX?(t.setMercatorFromTransition(),r=!0):n===`mercator`&&t.zoom<e.GLOBE_ZOOM_THRESHOLD_MAX&&(t.setProjection({name:`globe`}),r=!0),r&&(this.style.applyProjectionUpdate(),this.style._forceSymbolLayerUpdate())}_prioritizeAndUpdateProjection(e,t){return this._updateProjection(e||t||{name:`mercator`})}_updateProjection(t){let n;if(n=t.name===`globe`&&this.transform.zoom>=e.GLOBE_ZOOM_THRESHOLD_MAX?this.transform.setMercatorFromTransition():this.transform.setProjection(t),this.style.applyProjectionUpdate(),n){this.painter.clearBackgroundTiles();for(let e in this.style._sourceCaches)this.style._sourceCaches[e].clearTiles();this._update(!0),this._forceMarkerAndPopupUpdate(!0)}return this}project(t){return this.transform.locationPoint3D(e.LngLat.convert(t))}unproject(t){return this.transform.pointLocation3D(e.pointGeometry.convert(t))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(e,t,n){if(e===`mouseenter`||e===`mouseover`){let r=!1;return{layers:new Set(t),listener:n,delegates:{mousemove:i=>{let a=t.filter((e=>this.getLayer(e))),o=a.length?this.queryRenderedFeatures(i.point,{layers:a}):[];o.length?r||(r=!0,n.call(this,new ai(e,this,i.originalEvent,{features:o}))):r=!1},mouseout:()=>{r=!1}}}}if(e===`mouseleave`||e===`mouseout`){let r=!1;return{layers:new Set(t),listener:n,delegates:{mousemove:i=>{let a=t.filter((e=>this.getLayer(e)));(a.length?this.queryRenderedFeatures(i.point,{layers:a}):[]).length?r=!0:r&&(r=!1,n.call(this,new ai(e,this,i.originalEvent)))},mouseout:t=>{r&&(r=!1,n.call(this,new ai(e,this,t.originalEvent)))}}}}{let r=e=>{let r=t.filter((e=>this.getLayer(e))),i=r.length?this.queryRenderedFeatures(e.point,{layers:r}):[];i.length&&(e.features=i,n.call(this,e),delete e.features)};return{layers:new Set(t),listener:n,delegates:{[e]:r}}}}on(e,t,n){if(n===void 0)return super.on(e,t);Array.isArray(t)||(t=[t]);let r=this._createDelegatedListener(e,t,n);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(r);for(let e in r.delegates)this.on(e,r.delegates[e]);return this}once(e,t,n){if(n===void 0)return super.once(e,t);Array.isArray(t)||(t=[t]);let r=this._createDelegatedListener(e,t,n);for(let e in r.delegates)this.once(e,r.delegates[e]);return this}off(e,t,n){if(n===void 0)return super.off(e,t);t=new Set(Array.isArray(t)?t:[t]);let r=(e,t)=>{if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0},i=this._delegatedListeners?this._delegatedListeners[e]:void 0;return i&&(e=>{for(let i=0;i<e.length;i++){let a=e[i];if(a.listener===n&&r(a.layers,t)){for(let e in a.delegates)this.off(e,a.delegates[e]);return e.splice(i,1),this}}})(i),this}queryRenderedFeatures(t,n){return this.style?(n!==void 0||t===void 0||t instanceof e.pointGeometry||Array.isArray(t)||(n=t,t=void 0),this.style.queryRenderedFeatures(t||=[[0,0],[this.transform.width,this.transform.height]],n||={},this.transform)):[]}querySourceFeatures(e,t){return this.style.querySourceFeatures(e,t)}setStyle(t,n){return!1!==(n=e.extend({},{localIdeographFontFamily:this._localIdeographFontFamily,localFontFamily:this._localFontFamily},n)).diff&&n.localIdeographFontFamily===this._localIdeographFontFamily&&n.localFontFamily===this._localFontFamily&&this.style&&t?(this._diffStyle(t,n),this):(this._localIdeographFontFamily=n.localIdeographFontFamily,this._localFontFamily=n.localFontFamily,this._updateStyle(t,n))}_getUIString(e){let t=this._locale[e];if(t==null)throw Error(`Missing UI string '${e}'`);return t}_updateStyle(e,t){return this.style&&=(this.style.setEventedParent(null),this.style._remove(),void 0),e&&(this.style=new tn(this,t||{}),this.style.setEventedParent(this,{style:this.style}),typeof e==`string`?this.style.loadURL(e):this.style.loadJSON(e)),this._updateTerrain(),this}_lazyInitEmptyStyle(){this.style||(this.style=new tn(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(t,n){if(typeof t==`string`){let r=this._requestManager.normalizeStyleURL(t),i=this._requestManager.transformRequest(r,e.ResourceType.Style);e.getJSON(i,((t,r)=>{t?this.fire(new e.ErrorEvent(t)):r&&this._updateDiff(r,n)}))}else typeof t==`object`&&this._updateDiff(t,n)}_updateDiff(t,n){try{this.style.setState(t)&&this._update(!0)}catch(r){e.warnOnce(`Unable to perform style diff: ${r.message||r.error||r}. Rebuilding the style from scratch.`),this._updateStyle(t,n)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(e.warnOnce(`There is no style added to the map.`),!1)}addSource(e,t){return this._lazyInitEmptyStyle(),this.style.addSource(e,t),this._update(!0)}isSourceLoaded(e){return!!this.style&&this.style._isSourceCacheLoaded(e)}areTilesLoaded(){let e=this.style&&this.style._sourceCaches;for(let t in e){let n=e[t]._tiles;for(let e in n){let t=n[e];if(t.state!==`loaded`&&t.state!==`errored`)return!1}}return!0}addSourceType(e,t,n){this._lazyInitEmptyStyle(),this.style.addSourceType(e,t,n)}removeSource(e){return this.style.removeSource(e),this._updateTerrain(),this._update(!0)}getSource(e){return this.style.getSource(e)}addImage(t,n,{pixelRatio:r=1,sdf:i=!1,stretchX:a,stretchY:o,content:s}={}
1233){if(this._lazyInitEmptyStyle(),n instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&n instanceof e.window.ImageBitmap){let{width:c,height:l,data:u}=e.exported.getImageData(n);this.style.addImage(t,{data:new e.RGBAImage({width:c,height:l},u),pixelRatio:r,stretchX:a,stretchY:o,content:s,sdf:i,version:0})}else if(n.width===void 0||n.height===void 0)this.fire(new e.ErrorEvent(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`")));else{let{width:c,height:l}=n,u=n;this.style.addImage(t,{data:new e.RGBAImage({width:c,height:l},new Uint8Array(u.data)),pixelRatio:r,stretchX:a,stretchY:o,content:s,sdf:i,version:0,userImage:u}),u.onAdd&&u.onAdd(this,t)}}updateImage(t,n){let r=this.style.getImage(t);if(!r)return void this.fire(new e.ErrorEvent(Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));
1233let i=n instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&n instanceof e.window.ImageBitmap?e.exported.getImageData(n):n,{width:a,height:o}=i;a!==void 0&&o!==void 0?a===r.data.width&&o===r.data.height?(r.data.replace(i.data,!(n instanceof e.window.HTMLImageElement||e.window.ImageBitmap&&n instanceof e.window.ImageBitmap)),this.style.updateImage(t,r)):this.fire(new e.ErrorEvent(Error(`The width and height of the updated image (${a}, ${o})\n must be that same as the previous version of the image\n (${r.data.width}, ${r.data.height})`))):this.fire(new e.ErrorEvent(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`")))}hasImage(t){return t?!!this.style.getImage(t):(this.fire(new e.ErrorEvent(Error(`Missing required image id`))),!1)}removeImage(e){this.style.removeImage(e)}loadImage(t,n){e.getImage(this._requestManager.transformRequest(t,e.ResourceType.Image),((t,r)=>
1233{n(t,r instanceof e.window.HTMLImageElement?e.exported.getImageData(r):r)}))}listImages(){return this.style.listImages()}addLayer(e,t){return this._lazyInitEmptyStyle(),this.style.addLayer(e,t),this._update(!0)}moveLayer(e,t){return this.style.moveLayer(e,t),this._update(!0)}removeLayer(e){return this.style.removeLayer(e),this._update(!0)}getLayer(e){return this.style.getLayer(e)}setLayerZoomRange(e,t,n){return this.style.setLayerZoomRange(e,t,n),this._update(!0)}setFilter(e,t,n={}){return this.style.setFilter(e,t,n),this._update(!0)}getFilter(e){return this.style.getFilter(e)}setPaintProperty(e,t,n,r={}){return this.style.setPaintProperty(e,t,n,r),this._update(!0)}getPaintProperty(e,t){return this.style.getPaintProperty(e,t)}setLayoutProperty(e,t,n,r={}){return this.style.setLayoutProperty(e,t,n,r),this._update(!0)}getLayoutProperty(e,t){return this.style.getLayoutProperty(e,t)}setLight(e,t={}){return this._lazyInitEmptyStyle(),this.style.setLight(e,t),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(e){return this._lazyInitEmptyStyle(),!e&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(e),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(e){return this._lazyInitEmptyStyle(),this.style.setFog(e),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(t){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(e.LngLat.convert(t),this.transform):0}setFeatureState(e,t){return this.style.setFeatureState(e,t),this._update()}removeFeatureState(e,t){return this.style.removeFeatureState(e,t),this._update()}getFeatureState(e){return this.style.getFeatureState(e)}_updateContainerDimensions(){if(!this._container)return;let t=this._container.getBoundingClientRect().width||400,n=this._container.getBoundingClientRect().height||300,r,i,a,o=this._container;for(;o&&(!i||!a);){let t=e.window.getComputedStyle(o).transform;t&&t!==`none`&&(r=t.match(/matrix.*\((.+)\)/)[1].split(`, `),r[0]&&r[0]!==`0`&&r[0]!==`1`&&(i=r[0]),r[3]&&r[3]!==`0`&&r[3]!==`1`&&(a=r[3])),o=o.parentElement}this._containerWidth=i?Math.abs(t/i):t,this._containerHeight=a?Math.abs(n/a):n}_detectMissingCSS(){e.window.getComputedStyle(this._missingCSSCanary).getPropertyValue(`background-color`)!==`rgb(250, 128, 114)`&&e.warnOnce(`This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.`)}_setupContainer(){let e=this._container;e.classList.add(`mapboxgl-map`),(this._missingCSSCanary=a(`div`,`mapboxgl-canary`,e)).style.visibility=`hidden`,this._detectMissingCSS();let t=this._canvasContainer=a(`div`,`mapboxgl-canvas-container`,e);this._interactive&&t.classList.add(`mapboxgl-interactive`),this._canvas=a(`canvas`,`mapboxgl-canvas`,t),this._canvas.addEventListener(`webglcontextlost`,this._contextLost,!1),this._canvas.addEventListener(`webglcontextrestored`,this._contextRestored,!1),this._canvas.setAttribute(`tabindex`,`0`),this._canvas.setAttribute(`aria-label`,this._getUIString(`Map.Title`)),this._canvas.setAttribute(`role`,`region`),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);let n=this._controlContainer=a(`div`,`mapboxgl-control-container`,e),r=this._controlPositions={};[`top-left`,`top-right`,`bottom-left`,`bottom-right`].forEach((e=>{r[e]=a(`div`,`mapboxgl-ctrl-${e}`,n)})),this._container.addEventListener(`scroll`,this._onMapScroll,!1)}_resizeCanvas(t,n){let r=e.exported.devicePixelRatio||1;this._canvas.width=r*Math.ceil(t),this._canvas.height=r*Math.ceil(n),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${n}px`}_addMarker(e){this._markers.push(e)}_removeMarker(e){let t=this._markers.indexOf(e);t!==-1&&this._markers.splice(t,1)}_addPopup(e){this._popups.push(e)}_removePopup(e){let t=this._popups.indexOf(e);t!==-1&&this._popups.splice(t,1)}_setupPainter(){let t=e.extend({},n.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),r=this._canvas.getContext(`webgl`,t)||this._canvas.getContext(`experimental-webgl`,t);r?(e.storeAuthState(r,!0),this.painter=new Ir(r,this.transform),this.on(`data`,(e=>{e.dataType===`source`&&this.painter.setTileLoadedFlag(!0)})),e.exported$1.testSupport(r)):this.fire(new e.ErrorEvent(Error(`Failed to initialize WebGL`)))}_contextLost(t){t.preventDefault(),this._frame&&=(this._frame.cancel(),null),this.fire(new e.Event(`webglcontextlost`,{originalEvent:t}))}_contextRestored(t){this._setupPainter(),this.resize(),this._update(),this.fire(new e.Event(`webglcontextrestored`,{originalEvent:t}))}_onMapScroll(e){if(e.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(e){return this.style?(this._styleDirty=this._styleDirty||e,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(e){return this._update(),this._renderTaskQueue.add(e)}_cancelRenderFrame(e){this._renderTaskQueue.remove(e)}_requestDomTask(e){!this.loaded()||this.loaded()&&!this.isMoving()?e():this._domRenderTaskQueue.add(e)}_render(t){let n,r=this.painter.context.extTimerQuery,i=e.exported.now();if(this.listens(`gpu-timing-frame`)&&(n=r.createQueryEXT(),r.beginQueryEXT(r.TIME_ELAPSED_EXT,n)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&
1233(this._interactionRange[0]=Math.min(this._interactionRange[0],e.window.performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],e.window.performance.now())),this._renderTaskQueue.run(t),this._domRenderTaskQueue.run(t),this._removed)return;this._updateProjectionTransition();let a=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;let t=this.transform.zoom,n=this.transform.pitch,r=e.exported.now(),i=new e.EvaluationParameters(t,{now:r,fadeDuration:a,pitch:n,transition:this.style.getTransition()});this.style.update(i)}this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let o=!1;if(this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),o=this._updateAverageElevation(i),this.style._updateSources(this.transform),this._forceMarkerAndPopupUpdate()):o=this._updateAverageElevation(i),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,a,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:a,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens(`gpu-timing-layer`),gpuTimingDeferredRender:!!this.listens(`gpu-timing-deferred-render`),speedIndexTiming:this.speedIndexTiming}),this.fire(new e.Event(`render`)),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new e.Event(`load`))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),n){let t=e.exported.now()-i;r.endQueryEXT(r.TIME_ELAPSED_EXT,n),setTimeout((()=>{let a=r.getQueryObjectEXT(n,r.QUERY_RESULT_EXT)/1e6;r.deleteQueryEXT(n),this.fire(new e.Event(`gpu-timing-frame`,{cpuTime:t,gpuTime:a})),e.window.performance.mark(`frame-gpu`,{startTime:i,detail:{gpuTime:a}})}),50)}if(this.listens(`gpu-timing-layer`)){let t=this.painter.collectGpuTimers();setTimeout((()=>{let n=this.painter.queryGpuTimers(t);this.fire(new e.Event(`gpu-timing-layer`,{layerTimes:n}))}),50)}if(this.listens(`gpu-timing-deferred-render`)){let t=this.painter.collectDeferredRenderGpuQueries();setTimeout((()=>{let n=this.painter.queryGpuTimeDeferredRender(t);this.fire(new e.Event(`gpu-timing-deferred-render`,{gpuTime:n}))}),50)}let s=this._sourcesDirty||this._styleDirty||this._placementDirty||o;if(s||this._repaint)this.triggerRepaint();else{let t=!this.isMoving()&&this.loaded();if(t&&(o=this._updateAverageElevation(i,!0)),o)this.triggerRepaint();else if(this._triggerFrame(!1),t&&(this.fire(new e.Event(`idle`)),this._isInitialLoad=!1,this.speedIndexTiming)){let t=this._calculateSpeedIndex();this.fire(new e.Event(`speedindexcompleted`,{speedIndex:t})),this.speedIndexTiming=!1}}!this._loaded||this._fullyLoaded||s||(this._fullyLoaded=!0,e.LivePerformanceUtils.mark(e.PerformanceMarkers.fullLoad),this._performanceMetricsCollection&&e.postPerformanceEvent(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate())}_forceMarkerAndPopupUpdate(e){for(let t of this._markers)e&&!this.getRenderWorldCopies()&&(t._lngLat=t._lngLat.wrap()),t._update();for(let t of this._popups)!e||this.getRenderWorldCopies()||t._trackPointer||(t._lngLat=t._lngLat.wrap()),t._update()}_updateAverageElevation(e,t=!1){let n=e=>(this.transform.averageElevation=e,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return this.transform.averageElevation!==0&&n(0);if((t||e-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(e)){let t=this.transform.averageElevation,r=this.transform.sampleAverageElevation(),i=!1;this.transform.elevation&&(i=this.transform.elevation.exaggeration()!==this._averageElevationExaggeration,this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(r)?r=0:this._averageElevationLastSampledAt=e;let a=Math.abs(t-r);if(a>1){if(this._isInitialLoad||i)return this._averageElevation.jumpTo(r),n(r);this._averageElevation.easeTo(r,e,300)}else if(a>1e-4)return this._averageElevation.jumpTo(r),n(r)}return!!this._averageElevation.isEasing(e)&&n(this._averageElevation.getValue(e))}_authenticate(){e.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(t=>
1233{if(t&&(t.message===e.AUTH_ERR_MSG||t.status===401)){let t=this.painter.context.gl;e.storeAuthState(t,!1),this._logoControl instanceof qi&&this._logoControl._updateLogo(),t&&t.clear(t.DEPTH_BUFFER_BIT|t.COLOR_BUFFER_BIT|t.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new e.ErrorEvent(Error(`A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/`)))}})),e.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(()=>{}))}_updateTerrain(){let e=this._isDragging();this.painter.updateTerrain(this.style,e)}_calculateSpeedIndex(){let e=this.painter.canvasCopy(),t=this.painter.getCanvasCopiesAndTimestamps();t.timeStamps.push(performance.now());let n=this.painter.context.gl,r=n.createFramebuffer();function i(e){n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,e,0);let t=new Uint8Array(n.drawingBufferWidth*n.drawingBufferHeight*4);return n.readPixels(0,0,n.drawingBufferWidth,n.drawingBufferHeight,n.RGBA,n.UNSIGNED_BYTE,t),t}return n.bindFramebuffer(n.FRAMEBUFFER,r),this._canvasPixelComparison(i(e),t.canvasCopies.map(i),t.timeStamps)}_canvasPixelComparison(e,t,n){let r=n[1]-n[0],i=e.length/4;for(let a=0;a<t.length;a++){let o=t[a],s=0;for(let t=0;t<o.length;t+=4)o[t]===e[t]&&o[t+1]===e[t+1]&&o[t+2]===e[t+2]&&o[t+3]===e[t+3]&&(s+=1);r+=(n[a+2]-n[a+1])*(1-s/i)}return r}remove(){this._hash&&this._hash.remove();for(let e of this._controls)e.onRemove(this);this._controls=[],this._frame&&=(this._frame.cancel(),null),this._renderTaskQueue.clear(),this._domRenderTaskQueue.clear(),this.style&&this.style.destroy(),this.painter.destroy(),this.handlers&&this.handlers.destroy(),this.handlers=void 0,this.setStyle(null),e.window!==void 0&&(e.window.removeEventListener(`resize`,this._onWindowResize,!1),e.window.removeEventListener(`orientationchange`,this._onWindowResize,!1),e.window.removeEventListener(`webkitfullscreenchange`,this._onWindowResize,!1),e.window.removeEventListener(`online`,this._onWindowOnline,!1),e.window.removeEventListener(`visibilitychange`,this._onVisibilityChange,!1));let t=this.painter.context.gl.getExtension(`WEBGL_lose_context`);t&&t.loseContext(),this._canvas.removeEventListener(`webglcontextlost`,this._contextLost,!1),this._canvas.removeEventListener(`webglcontextrestored`,this._contextRestored,!1),this._canvasContainer.remove(),this._controlContainer.remove(),this._missingCSSCanary.remove(),this._canvas=void 0,this._canvasContainer=void 0,this._controlContainer=void 0,this._missingCSSCanary=void 0,this._container.classList.remove(`mapboxgl-map`),this._container.removeEventListener(`scroll`,this._onMapScroll,!1),e.removeAuthState(this.painter.context.gl),this._removed=!0,this.fire(new e.Event(`remove`))}triggerRepaint(){this._triggerFrame(!0)}_triggerFrame(t){this._renderNextFrame=this._renderNextFrame||t,this.style&&!this._frame&&(this._frame=e.exported.frame((e=>{let t=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,t&&this._render(e)})))}_preloadTiles(t){let n=this.style?Object.values(this.style._sourceCaches):[];return e.asyncAll(n,((e,n)=>e._preloadTiles(t,n)),(()=>{this.triggerRepaint()})),this}_onWindowOnline(){this._update()}_onWindowResize(e){this._trackResize&&this.resize({originalEvent:e})._update()}_onVisibilityChange(){e.window.document.visibilityState===`hidden`&&this._visibilityHidden++}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(e){this._showTileBoundaries!==e&&(this._showTileBoundaries=e,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(e){this._showTerrainWireframe!==e&&(this._showTerrainWireframe=e,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(e){this._speedIndexTiming!==e&&(this._speedIndexTiming=e,this._update())}get showPadding(){return!!this._showPadding}set showPadding(e){this._showPadding!==e&&(this._showPadding=e,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(e){this._showCollisionBoxes!==e&&(this._showCollisionBoxes=e,e?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(e){this._showOverdrawInspector!==e&&(this._showOverdrawInspector=e,this._update())}get repaint(){return!!this._repaint}set repaint(e){this._repaint!==e&&(this._repaint=e,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(e){this._vertices=e,this._update()}get showTileAABBs(){return!!this._showTileAABBs}set showTileAABBs(e){this._showTileAABBs!==e&&(this._showTileAABBs=e,e&&this._update())}
1233_setCacheLimits(t,n){e.setCacheLimits(t,n)}get version(){return e.version}},NavigationControl:class{constructor(t){this.options=e.extend({},ia,t),this._container=a(`div`,`mapboxgl-ctrl mapboxgl-ctrl-group`),this._container.addEventListener(`contextmenu`,(e=>e.preventDefault())),this.options.showZoom&&(e.bindAll([`_setButtonTitle`,`_updateZoomButtons`],this),this._zoomInButton=this._createButton(`mapboxgl-ctrl-zoom-in`,(e=>{this._map&&this._map.zoomIn({},{originalEvent:e})})),a(`span`,`mapboxgl-ctrl-icon`,this._zoomInButton).setAttribute(`aria-hidden`,`true`),this._zoomOutButton=this._createButton(`mapboxgl-ctrl-zoom-out`,(e=>{this._map&&this._map.zoomOut({},{originalEvent:e})})),a(`span`,`mapboxgl-ctrl-icon`,this._zoomOutButton).setAttribute(`aria-hidden`,`true`)),this.options.showCompass&&(e.bindAll([`_rotateCompassArrow`],this),this._compass=this._createButton(`mapboxgl-ctrl-compass`,(e=>{let t=this._map;t&&(this.options.visualizePitch?t.resetNorthPitch({},{originalEvent:e}):t.resetNorth({},{originalEvent:e}))})),this._compassIcon=a(`span`,`mapboxgl-ctrl-icon`,this._compass),this._compassIcon.setAttribute(`aria-hidden`,`true`))}_updateZoomButtons(){let e=this._map;if(!e)return;let t=e.getZoom(),n=t===e.getMaxZoom(),r=t===e.getMinZoom();this._zoomInButton.disabled=n,this._zoomOutButton.disabled=r,this._zoomInButton.setAttribute(`aria-disabled`,n.toString()),this._zoomOutButton.setAttribute(`aria-disabled`,r.toString())}_rotateCompassArrow(){let e=this._map;if(!e)return;let t=this.options.visualizePitch?`scale(${1/Math.cos(e.transform.pitch*(Math.PI/180))**.5}) rotateX(${e.transform.pitch}deg) rotateZ(${e.transform.angle*(180/Math.PI)}deg)`:`rotate(${e.transform.angle*(180/Math.PI)}deg)`;e._requestDomTask((()=>{this._compassIcon&&(this._compassIcon.style.transform=t)}))}onAdd(e){return this._map=e,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,`ZoomIn`),this._setButtonTitle(this._zoomOutButton,`ZoomOut`),e.on(`zoom`,this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,`ResetBearing`),this.options.visualizePitch&&e.on(`pitch`,this._rotateCompassArrow),e.on(`rotate`,this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new aa(e,this._compass,this.options.visualizePitch)),this._container}onRemove(){let e=this._map;e&&(this._container.remove(),this.options.showZoom&&e.off(`zoom`,this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&e.off(`pitch`,this._rotateCompassArrow),e.off(`rotate`,this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0)}_createButton(e,t){let n=a(`button`,e,this._container);return n.type=`button`,n.addEventListener(`click`,t),n}_setButtonTitle(e,t){if(!this._map)return;let n=this._map._getUIString(`NavigationControl.${t}`);e.setAttribute(`aria-label`,n),e.firstElementChild&&e.firstElementChild.setAttribute(`title`,n)}},GeolocateControl:class extends e.Evented{constructor(t){super(),this.options=e.extend({geolocation:e.window.navigator.geolocation},oa,t),e.bindAll([`_onSuccess`,`_onError`,`_onZoom`,`_finish`,`_setupUI`,`_updateCamera`,`_updateMarker`,`_updateMarkerRotation`,`_onDeviceOrientation`],this),this._updateMarkerRotationThrottled=Yr(this._updateMarkerRotation,20),this._numberOfWatches=0}onAdd(e){return this._map=e,this._container=a(`div`,`mapboxgl-ctrl mapboxgl-ctrl-group`),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){this._geolocationWatchID!==void 0&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off(`zoom`,this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1}_checkGeolocationSupport(t){let n=(e=!!this.options.geolocation)=>{this._supportsGeolocation=e,t(e)};this._supportsGeolocation===void 0?e.window.navigator.permissions===void 0?n():e.window.navigator.permissions.query({name:`geolocation`}).then((e=>n(e.state!==`denied`))).catch((()=>n())):t(this._supportsGeolocation)}_isOutOfMapMaxBounds(e){let t=this._map.getMaxBounds(),n=e.coords;return!!t&&(n.longitude<t.getWest()||n.longitude>t.getEast()||n.latitude<t.getSouth()||n.latitude>t.getNorth())}_setErrorState(){switch(this._watchState){case`WAITING_ACTIVE`:this._watchState=`ACTIVE_E
1233RROR`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-active-error`);break;case`ACTIVE_LOCK`:this._watchState=`ACTIVE_ERROR`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-active-error`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-waiting`);break;case`BACKGROUND`:this._watchState=`BACKGROUND_ERROR`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-background-error`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-waiting`)}}_onSuccess(t){if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new e.Event(`outofmaxbounds`,t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case`WAITING_ACTIVE`:case`ACTIVE_LOCK`:case`ACTIVE_ERROR`:this._watchState=`ACTIVE_LOCK`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active-error`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-active`);break;case`BACKGROUND`:case`BACKGROUND_ERROR`:this._watchState=`BACKGROUND`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background-error`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-background`)}this.options.showUserLocation&&this._watchState!==`OFF`&&this._updateMarker(t),this.options.trackUserLocation&&this._watchState!==`ACTIVE_LOCK`||this._updateCamera(t),this.options.showUserLocation&&this._dotElement.classList.remove(`mapboxgl-user-location-dot-stale`),this.fire(new e.Event(`geolocate`,t)),this._finish()}}_updateCamera(t){let n=new e.LngLat(t.coords.longitude,t.coords.latitude),r=t.coords.accuracy,i=this._map.getBearing(),a=e.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(n.toBounds(r),a,{geolocateSource:!0})}_updateMarker(t){if(t){let n=new e.LngLat(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(n).addTo(this._map),this._userLocationDotMarker.setLngLat(n).addTo(this._map),this._accuracy=t.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){let t=this._map.transform,n=e.mercatorZfromAltitude(1,t._center.lat)*t.worldSize,r=Math.ceil(2*this._accuracy*n);this._circleElement.style.width=`${r}px`,this._circleElement.style.height=`${r}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&typeof this._heading==`number`?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add(`mapboxgl-user-location-show-heading`)):(this._dotElement.classList.remove(`mapboxgl-user-location-show-heading`),this._userLocationDotMarker.setRotation(0))}_onError(t){if(this._map){if(this.options.trackUserLocation)if(t.code===1){this._watchState=`OFF`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active-error`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background-error`),this._geolocateButton.disabled=!0;let e=this._map._getUIString(`GeolocateControl.LocationNotAvailable`);this._geolocateButton.setAttribute(`aria-label`,e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute(`title`,e),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(t.code===3&&this._noTimeout)return;this._setErrorState()}this._watchState!==`OFF`&&this.options.showUserLocation&&this._dotElement.classList.add(`mapboxgl-user-location-dot-stale`),this.fire(new e.Event(`error`,t)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(t){if(this._map!==void 0){if(this._container.addEventListener(`contextmenu`,(e=>e.preventDefault())),this._geolocateButton=a(`button`,`mapboxgl-ctrl-geolocate`,this._container),a(`span`,`mapboxgl-ctrl-icon`,this._geolocateButton).setAttribute(`aria-hidden`,`true`),this._geolocateButton.type=`button`,!1===t){e.warnOnce(`Geolocation support is not available so the GeolocateControl will be disabled.`);let t=this._map._getUIString(`GeolocateControl.LocationNotAvailable`);this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute(`aria-label`,t),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute(`title`,t)}else{let e=this._map._getUIString(`GeolocateControl.FindMyLocation`);this._geolocateButton.setAttribute(`aria-label`,e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute(`title`,e)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(`aria-pressed`,`false`),this._watchState=`OFF`),this.options.showUserLocation&&(this._dotElement=a(`div`,`mapboxgl-user-location`),this._dotElement.appendChild(a(`div`,`mapboxgl-user-location-dot`)),this._dotElement.appendChild(a(`div`,`mapboxgl-user-location-heading`)),this._userLocationDotMarker=new Zi({element:this._dotElement,rotationAlignment:`map`,pitchAlignment:`map`}),this._circleElement=a(`div`,`mapboxgl-user-location-accuracy-circle`),this._accuracyCircleMarker=new Zi({element:this._circleElement,pitchAlignment:`map`}),this.options.trackUserLocation&&(this._watchState=`OFF`),this._map.on(`zoom`,this._onZoom)),this._geolocateButton.addEventListener(`click`,this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(`movestart`,(t=>{t.geolocateSource||this._watchState!==`ACTIVE_LOCK`||t.originalEvent&&t.originalEvent.type===`resize`||(this._watchState=`BACKGROUND`,this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active`),this.fire(new e.Event(`trackuserlocationend`)))}))}}_onDeviceOrientation(e){this._userLocationDotMarker&&(e.webkitCompassHeading?this._heading=e.webkitCompassHeading:!0===e.absolute&&(this._heading=-1*e.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return e.warnOnce(`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 e.Event(`trackuserlocationstart`));break;
1233case`WAITING_ACTIVE`:case`ACTIVE_LOCK`:case`ACTIVE_ERROR`:case`BACKGROUND_ERROR`:this._numberOfWatches--,this._noTimeout=!1,this._watchState=`OFF`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-active-error`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background`),this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background-error`),this.fire(new e.Event(`trackuserlocationend`));break;case`BACKGROUND`:this._watchState=`ACTIVE_LOCK`,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-background`),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new e.Event(`trackuserlocationstart`))}switch(this._watchState){case`WAITING_ACTIVE`:this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-active`);break;case`ACTIVE_LOCK`:this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-active`);break;case`ACTIVE_ERROR`:this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-active-error`);break;case`BACKGROUND`:this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-background`);break;case`BACKGROUND_ERROR`:this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-background-error`)}if(this._watchState===`OFF`&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let e;this._geolocateButton.classList.add(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.setAttribute(`aria-pressed`,`true`),this._numberOfWatches++,this._numberOfWatches>1?(e={maximumAge:6e5,timeout:0},this._noTimeout=!0):(e=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,e),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){let t=()=>{e.window.addEventListener(`ondeviceorientationabsolute`in e.window?`deviceorientationabsolute`:`deviceorientation`,this._onDeviceOrientation)};e.window.DeviceMotionEvent!==void 0&&typeof e.window.DeviceMotionEvent.requestPermission==`function`?DeviceOrientationEvent.requestPermission().then((e=>{e===`granted`&&t()})).catch(console.error):t()}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),e.window.removeEventListener(`deviceorientation`,this._onDeviceOrientation),e.window.removeEventListener(`deviceorientationabsolute`,this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(`mapboxgl-ctrl-geolocate-waiting`),this._geolocateButton.setAttribute(`aria-pressed`,`false`),this.options.showUserLocation&&this._updateMarker(null)}},AttributionControl:J,ScaleControl:class{constructor(t){this.options=e.extend({},sa,t),function(){try{return new Intl.NumberFormat(`en`,{style:`unit`,unitDisplay:`narrow`,unit:`meter`}),!0}catch{return!1}}()||(this._setScale=ca.bind(this)),e.bindAll([`_update`,`_setScale`,`setUnit`],this)}getDefaultPosition(){return`bottom-left`}_update(){let e=this.options.maxWidth||100,t=this._map,n=t._containerHeight/2,r=t._containerWidth/2-e/2,i=t.unproject([r,n]),a=t.unproject([r+e,n]),o=i.distanceTo(a);if(this.options.unit===`imperial`){let t=3.2808*o;t>5280?this._setScale(e,t/5280,`mile`):this._setScale(e,t,`foot`)}
vendor: 9,278 bytes, line 1233
1233else this.options.unit===`nautical`?this._setScale(e,o/1852,`nautical-mile`):o>=1e3?this._setScale(e,o/1e3,`kilometer`):this._setScale(e,o,`meter`)}_setScale(e,t,n){let r=la(t),i=r/t;this._map._requestDomTask((()=>{this._container.style.width=e*i+`px`,this._container.innerHTML=n===`nautical-mile`?`${r} nm`:new Intl.NumberFormat(this._language,{style:`unit`,unitDisplay:`narrow`,unit:n}).format(r)}))}onAdd(e){return this._map=e,this._language=e.getLanguage(),this._container=a(`div`,`mapboxgl-ctrl mapboxgl-ctrl-scale`,e.getContainer()),this._container.dir=`auto`,this._map.on(`move`,this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off(`move`,this._update),this._map=void 0}_setLanguage(e){this._language=e,this._update()}setUnit(e){this.options.unit=e,this._update()}},FullscreenControl:class{constructor(t){this._fullscreen=!1,t&&t.container&&(t.container instanceof e.window.HTMLElement?this._container=t.container:e.warnOnce(`Full screen control 'container' must be a DOM element.`)),e.bindAll([`_onClickFullscreen`,`_changeIcon`],this),`onfullscreenchange`in e.window.document?this._fullscreenchange=`fullscreenchange`:`onwebkitfullscreenchange`in e.window.document&&(this._fullscreenchange=`webkitfullscreenchange`)}onAdd(t){return this._map=t,this._container||=this._map.getContainer(),this._controlContainer=a(`div`,`mapboxgl-ctrl mapboxgl-ctrl-group`),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display=`none`,e.warnOnce(`This device does not support fullscreen mode.`)),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,e.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!e.window.document.fullscreenEnabled&&!e.window.document.webkitFullscreenEnabled)}_setupUI(){let t=this._fullscreenButton=a(`button`,`mapboxgl-ctrl-fullscreen`,this._controlContainer);a(`span`,`mapboxgl-ctrl-icon`,t).setAttribute(`aria-hidden`,`true`),t.type=`button`,this._updateTitle(),this._fullscreenButton.addEventListener(`click`,this._onClickFullscreen),e.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){let e=this._getTitle();this._fullscreenButton.setAttribute(`aria-label`,e),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute(`title`,e)}_getTitle(){return this._map._getUIString(this._isFullscreen()?`FullscreenControl.Exit`:`FullscreenControl.Enter`)}_isFullscreen(){return this._fullscreen}_changeIcon(){(e.window.document.fullscreenElement||e.window.document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(`mapboxgl-ctrl-shrink`),this._fullscreenButton.classList.toggle(`mapboxgl-ctrl-fullscreen`),this._updateTitle())}_onClickFullscreen(){this._isFullscreen()?e.window.document.exitFullscreen?e.window.document.exitFullscreen():e.window.document.webkitCancelFullScreen&&e.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends e.Evented{constructor(t){super(),this.options=e.extend(Object.create(Qi),t),e.bindAll([`_update`,`_onClose`,`remove`,`_onMouseEvent`],this),this._classList=new Set(t&&t.className?t.className.trim().split(/\s+/):[])}addTo(t){return this._map&&this.remove(),this._map=t,this.options.closeOnClick&&t.on(`preclick`,this._onClose),this.options.closeOnMove&&t.on(`move`,this._onClose),t.on(`remove`,this.remove),this._update(),t._addPopup(this),this._focusFirstElement(),this._trackPointer?(t.on(`mousemove`,this._onMouseEvent),t.on(`mouseup`,this._onMouseEvent),t._canvasContainer.classList.add(`mapboxgl-track-pointer`)):t.on(`move`,this._update),this.fire(new e.Event(`open`)),this}isOpen(){return!!this._map}remove(){this._content&&this._content.remove(),this._container&&=(this._container.remove(),void 0);let t=this._map;return t&&(t.off(`move`,this._update),t.off(`move`,this._onClose),t.off(`preclick`,this._onClose),t.off(`click`,this._onClose),t.off(`remove`,this.remove),t.off(`mousemove`,this._onMouseEvent),t.off(`mouseup`,this._onMouseEvent),t.off(`drag`,this._onMouseEvent),t._canvasContainer&&t._canvasContainer.classList.remove(`mapboxgl-track-pointer`),t._removePopup(this),this._map=void 0),this.fire(new e.Event(`close`)),this}getLngLat(){return this._lngLat}setLngLat(t){this._lngLat=e.LngLat.convert(t),this._pos=null,this._trackPointer=!1,this._update();let n=this._map;return n&&(n.on(`move`,this._update),n.off(`mousemove`,this._onMouseEvent),n._canvasContainer.classList.remove(`mapboxgl-track-pointer`)),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();let e=this._map;return e&&(e.off(`move`,this._update),e.on(`mousemove`,this._onMouseEvent),e.on(`drag`,this._onMouseEvent),e._canvasContainer.classList.add(`mapboxgl-track-pointer`)),this}getElement(){return this._container}setText(t){return this.setDOMContent(e.window.document.createTextNode(t))}setHTML(t){let n=e.window.document.createDocumentFragment(),r=e.window.document.createElement(`body`),i;for(r.innerHTML=t;i=r.firstChild,i;)n.appendChild(i);return this.setDOMContent(n)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(e){return this.options.maxWidth=e,this._update(),this}setDOMContent(e){let t=this._content;if(t)for(;t.hasChildNodes();)t.firstChild&&t.removeChild(t.firstChild);else t=this._content=a(`div`,`mapboxgl-popup-content`,this._container||void 0);if(t.appendChild(e),this.options.closeButton){let e=this._closeButton=a(`button`,`mapboxgl-popup-close-button`,t);e.type=`button`,e.setAttribute(`aria-label`,`Close popup`),e.setAttribute(`aria-hidden`,`true`),e.innerHTML=`×`,e.addEventListener(`click`,this._onClose)}return this._update(),this._focusFirstElement(),this}addClassName(e){return this._classList.add(e),this._updateClassList(),this}removeClassName(e){return this._classList.delete(e),this._updateClassList(),this}setOffset(e){return this.options.offset=e,this._update(),this}toggleClassName(e){let t;return this._classList.delete(e)?t=!1:(this._classList.add(e),t=!0),this._updateClassList(),t}_onMouseEvent(e){this._update(e.point)}_getAnchor(e){if(this.options.anchor)return this.options.anchor;let t=this._map,n=this._container,r=this._pos;if(!t||!n||!r)return`bottom`;let i=n.offsetWidth,a=n.offsetHeight,o=r.x<i/2,s=r.x>t.transform.width-i/2;if(r.y+e<a)return o?`top-left`:s?`top-right`:`top`;if(r.y>t.transform.height-a){if(o)return`bottom-left`;if(s)return`bottom-right`}return o?`left`:s?`right`:`bottom`}_updateClassList(){let e=this._container;if(!e)return;let t=[...this._classList];t.push(`mapboxgl-popup`),this._anchor&&t.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&t.push(`mapboxgl-popup-track-pointer`),e.className=t.join(` `)}_update(t){let n=this._map,r=this._content;if(!n||!this._lngLat&&!this._trackPointer||!r)return;let i=this._container;if(i||(i=this._container=a(`div`,`mapboxgl-popup`,n.getContainer()),this._tip=a(`div`,`mapboxgl-popup-tip`,i),i.appendChild(r)),this.options.maxWidth&&i.style.maxWidth!==this.options.maxWidth&&(i.style.maxWidth=this.options.maxWidth),n.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Yi(this._lngLat,this._pos,n.transform)),!this._trackPointer||t){let e=this._pos=this._trackPointer&&t?t:n.project(this._lngLat),r=ea(this.options.offset),i=this._anchor=this._getAnchor(r.y),a=ea(this.options.offset,i),o=e.add(a).round();n._requestDomTask((()=>{this._container&&i&&(this._container.style.transform=`${Xi[i]} translate(${o.x}px,${o.y}px)`)}))}if(!this._marker&&n._showingGlobe()){let t=+!e.isLngLatBehindGlobe(n.transform,this._lngLat);this._setOpacity(t)}this._updateClassList()}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let e=this._container.querySelector($i);e&&e.focus()}_onClose(){this.remove()}_setOpacity(e){this._container&&(this._container.style.opacity=`${e}`),this._content&&(this._content.style.pointerEvents=e?`auto`:`none`)}},Marker:Zi,Style:tn,LngLat:e.LngLat,LngLatBounds:e.LngLatBounds,Point:e.pointGeometry,MercatorCoordinate:e.MercatorCoordinate,FreeCameraOptions:K,Evented:e.Evented,config:e.config,prewarm:function(){et().acquire(Ze)},clearPrewarmedResources:function(){let e=$e;e&&(e.isPreloaded()&&e.numActive()===1?(e.release(Ze),$e=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()`))},get accessToken(){return e.config.ACCESS_TOKEN},set accessToken(t){e.config.ACCESS_TOKEN=t},get baseApiUrl(){return e.config.API_URL},set baseApiUrl(t){e.config.API_URL=t},get workerCount(){return Qe.workerCount},set workerCount(e){Qe.workerCount=e},get maxParallelImageRequests(){return e.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){e.config.MAX_PARALLEL_IMAGE_REQUESTS=t},clearStorage(t){e.clearTileCache(t)},workerUrl:``,workerClass:null,setNow:e.exported.setNow,restoreNow:e.exported.restoreNow};return ua})),n}))}));export{t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.