From 9390a38adf51a3204ebe0fe90ef113d86db991dc Mon Sep 17 00:00:00 2001 From: Tykayn Date: Tue, 3 Jun 2025 14:58:23 +0200 Subject: [PATCH] locally copy libs scripts and styles --- public/css/bootstrap-icons.css | 6 + .../bootstrap-icons/bootstrap-icons.woff | Bin 0 -> 180288 bytes .../bootstrap-icons/bootstrap-icons.woff2 | Bin 0 -> 134044 bytes public/js/bootstrap/Sortable.min.js | 2 + public/js/bootstrap/bootstrap-icons.min.css | 8337 +++++++++++++++++ public/js/bootstrap/bootstrap.bundle.min.js | 7 + public/js/bootstrap/bootstrap.min.css | 6 + public/js/mapbox/mapbox-gl.css | 780 ++ public/js/maplibre/maplibre-gl.css | 1 + public/js/maplibre/maplibre-gl.js | 48 + public/js/qrcode/qrcode.min.js | 1 + public/js/sort-table/sort-table.css | 35 + public/js/sort-table/sort-table.js | 248 + templates/admin/stats.html.twig | 4 +- templates/base.html.twig | 36 +- templates/public/dashboard.html.twig | 4 +- 16 files changed, 9493 insertions(+), 22 deletions(-) create mode 100644 public/css/bootstrap-icons.css create mode 100644 public/fonts/bootstrap-icons/bootstrap-icons.woff create mode 100644 public/fonts/bootstrap-icons/bootstrap-icons.woff2 create mode 100644 public/js/bootstrap/Sortable.min.js create mode 100644 public/js/bootstrap/bootstrap-icons.min.css create mode 100644 public/js/bootstrap/bootstrap.bundle.min.js create mode 100644 public/js/bootstrap/bootstrap.min.css create mode 100644 public/js/mapbox/mapbox-gl.css create mode 100644 public/js/maplibre/maplibre-gl.css create mode 100644 public/js/maplibre/maplibre-gl.js create mode 100644 public/js/qrcode/qrcode.min.js create mode 100644 public/js/sort-table/sort-table.css create mode 100644 public/js/sort-table/sort-table.js diff --git a/public/css/bootstrap-icons.css b/public/css/bootstrap-icons.css new file mode 100644 index 0000000..bfa4487 --- /dev/null +++ b/public/css/bootstrap-icons.css @@ -0,0 +1,6 @@ +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: url("../fonts/bootstrap-icons/bootstrap-icons.woff2") format("woff2"), + url("../fonts/bootstrap-icons/bootstrap-icons.woff") format("woff"); +} \ No newline at end of file diff --git a/public/fonts/bootstrap-icons/bootstrap-icons.woff b/public/fonts/bootstrap-icons/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..a4fa4f024c2171080ebaf3112fccbf90cdb98479 GIT binary patch literal 180288 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 DSDONf literal 0 HcmV?d00001 diff --git a/public/fonts/bootstrap-icons/bootstrap-icons.woff2 b/public/fonts/bootstrap-icons/bootstrap-icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d8c490e1ec1153df2a4d80d1342f1d8820e792d GIT binary patch literal 134044 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

I_iT~F!-V*$H;*%98q;k6<1RxCZS#LpiY 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 K8>{rTe*gfoWh&qR literal 0 HcmV?d00001 diff --git a/public/js/bootstrap/Sortable.min.js b/public/js/bootstrap/Sortable.min.js new file mode 100644 index 0000000..17bb16c --- /dev/null +++ b/public/js/bootstrap/Sortable.min.js @@ -0,0 +1,2 @@ +/*! Sortable 1.15.0 - MIT | git://github.com/SortableJS/Sortable.git */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sortable=e()}(this,function(){"use strict";function e(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)),o}function M(o){for(var t=1;tt.length)&&(e=t.length);for(var n=0,o=new Array(e);n"===e[0]&&(e=e.substring(1)),t))try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return}}function N(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"!==e[0]||t.parentNode===n)&&p(t,e)||o&&t===n)return t}while(t!==n&&(t=(i=t).host&&i!==document&&i.host.nodeType?i.host:i.parentNode))}var i;return null}var g,m=/\s+/g;function I(t,e,n){var o;t&&e&&(t.classList?t.classList[n?"add":"remove"](e):(o=(" "+t.className+" ").replace(m," ").replace(" "+e+" "," "),t.className=(o+(n?" "+e:"")).replace(m," ")))}function P(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];o[e=!(e in o||-1!==e.indexOf("webkit"))?"-webkit-"+e:e]=n+("string"==typeof n?"":"px")}}function v(t,e){var n="";if("string"==typeof t)n=t;else do{var o=P(t,"transform")}while(o&&"none"!==o&&(n=o+" "+n),!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function b(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=n.left-e&&i<=n.right+e,e=r>=n.top-e&&r<=n.bottom+e;return o&&e?a=t:void 0}}),a);if(e){var n,o={};for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);o.target=o.rootEl=e,o.preventDefault=void 0,o.stopPropagation=void 0,e[j]._onDragOver(o)}}var i,r,a}function Yt(t){q&&q.parentNode[j]._isOutsideThisEl(t.target)}function Bt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=a({},e),t[j]=this;var n,o,i={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return It(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Bt.supportPointer&&"PointerEvent"in window&&!u,emptyInsertThreshold:5};for(n in K.initializePlugins(this,t,i),i)n in e||(e[n]=i[n]);for(o in Pt(e),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!e.forceFallback&&Mt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?h(t,"pointerdown",this._onTapStart):(h(t,"mousedown",this._onTapStart),h(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(h(t,"dragover",this),h(t,"dragenter",this)),Et.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),a(this,x())}function Ft(t,e,n,o,i,r,a,l){var s,c,u=t[j],d=u.options.onMove;return!window.CustomEvent||y||w?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=o,s.related=i||e,s.relatedRect=r||k(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),c=d?d.call(u,s,a):c}function jt(t){t.draggable=!1}function Ht(){Ct=!1}function Lt(t){return setTimeout(t,0)}function Kt(t){return clearTimeout(t)}Bt.prototype={constructor:Bt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(gt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,q):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,o=this.el,t=this.options,i=t.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(a||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=t.filter;if(!function(t){Tt.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&Tt.push(o)}}(o),!q&&!(/mousedown|pointerdown/.test(r)&&0!==e.button||t.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=N(l,t.draggable,o,!1))&&l.animated||J===l)){if(nt=B(l),it=B(l,t.draggable),"function"==typeof c){if(c.call(this,e,l,this))return U({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:o,fromEl:o}),z("filter",n,{evt:e}),void(i&&e.cancelable&&e.preventDefault())}else if(c=c&&c.split(",").some(function(t){if(t=N(s,t.trim(),o,!1))return U({sortable:n,rootEl:t,name:"filter",targetEl:l,fromEl:o,toEl:o}),z("filter",n,{evt:e}),!0}))return void(i&&e.cancelable&&e.preventDefault());t.handle&&!N(s,t.handle,o,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,l=r.ownerDocument;n&&!q&&n.parentNode===r&&(o=k(n),$=r,V=(q=n).parentNode,Q=q.nextSibling,J=n,at=a.group,st={target:Bt.dragged=q,clientX:(e||t).clientX,clientY:(e||t).clientY},ht=st.clientX-o.left,ft=st.clientY-o.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,q.style["will-change"]="all",o=function(){z("delayEnded",i,{evt:t}),Bt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!s&&i.nativeDraggable&&(q.draggable=!0),i._triggerDragStart(t,e),U({sortable:i,name:"choose",originalEvent:t}),I(q,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){b(q,t.trim(),jt)}),h(l,"dragover",Xt),h(l,"mousemove",Xt),h(l,"touchmove",Xt),h(l,"mouseup",i._onDrop),h(l,"touchend",i._onDrop),h(l,"touchcancel",i._onDrop),s&&this.nativeDraggable&&(this.options.touchStartThreshold=4,q.draggable=!0),z("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(w||y)?o():Bt.eventCanceled?this._onDrop():(h(l,"mouseup",i._disableDelayedDrag),h(l,"touchend",i._disableDelayedDrag),h(l,"touchcancel",i._disableDelayedDrag),h(l,"mousemove",i._delayedDragTouchMoveHandler),h(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&h(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)))},_delayedDragTouchMoveHandler:function(t){t=t.touches?t.touches[0]:t;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){q&&jt(q),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;f(t,"mouseup",this._disableDelayedDrag),f(t,"touchend",this._disableDelayedDrag),f(t,"touchcancel",this._disableDelayedDrag),f(t,"mousemove",this._delayedDragTouchMoveHandler),f(t,"touchmove",this._delayedDragTouchMoveHandler),f(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?h(document,"pointermove",this._onTouchMove):h(document,e?"touchmove":"mousemove",this._onTouchMove):(h(q,"dragend",this),h($,"dragstart",this._onDragStart));try{document.selection?Lt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){var n;yt=!1,$&&q?(z("dragStarted",this,{evt:e}),this.nativeDraggable&&h(document,"dragover",Yt),n=this.options,t||I(q,n.dragClass,!1),I(q,n.ghostClass,!0),Bt.active=this,t&&this._appendGhost(),U({sortable:this,name:"start",originalEvent:e})):this._nulling()},_emulateDragOver:function(){if(ct){this._lastX=ct.clientX,this._lastY=ct.clientY,kt();for(var t=document.elementFromPoint(ct.clientX,ct.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ct.clientX,ct.clientY))!==e;)e=t;if(q.parentNode[j]._isOutsideThisEl(t),e)do{if(e[j])if(e[j]._onDragOver({clientX:ct.clientX,clientY:ct.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}while(e=(t=e).parentNode);Rt()}},_onTouchMove:function(t){if(st){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=Z&&v(Z,!0),a=Z&&r&&r.a,l=Z&&r&&r.d,e=Ot&&bt&&E(bt),a=(i.clientX-st.clientX+o.x)/(a||1)+(e?e[0]-_t[0]:0)/(a||1),l=(i.clientY-st.clientY+o.y)/(l||1)+(e?e[1]-_t[1]:0)/(l||1);if(!Bt.active&&!yt){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))n.right+10||t.clientX<=n.right&&t.clientY>n.bottom&&t.clientX>=n.left:t.clientX>n.right&&t.clientY>n.top||t.clientX<=n.right&&t.clientY>n.bottom+10}(n,r,this)&&!g.animated){if(g===q)return O(!1);if((l=g&&a===n.target?g:l)&&(w=k(l)),!1!==Ft($,a,q,o,l,w,n,!!l))return x(),g&&g.nextSibling?a.insertBefore(q,g.nextSibling):a.appendChild(q),V=a,A(),O(!0)}else if(g&&function(t,e,n){n=k(X(n.el,0,n.options,!0));return e?t.clientXt.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?n(i.trim()):null}return e},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/public/js/bootstrap/bootstrap.min.css b/public/js/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..f5910ac --- /dev/null +++ b/public/js/bootstrap/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/public/js/mapbox/mapbox-gl.css b/public/js/mapbox/mapbox-gl.css new file mode 100644 index 0000000..11b096e --- /dev/null +++ b/public/js/mapbox/mapbox-gl.css @@ -0,0 +1,780 @@ +.mapboxgl-map { + -webkit-tap-highlight-color: rgb(0 0 0/0); + font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif; + overflow: hidden; + position: relative +} + +.mapboxgl-canvas { + left: 0; + position: absolute; + top: 0 +} + +.mapboxgl-map:-webkit-full-screen { + height: 100%; + width: 100% +} + +.mapboxgl-canary { + background-color: salmon +} + +.mapboxgl-canvas-container.mapboxgl-interactive, +.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass { + cursor: grab; + -webkit-user-select: none; + user-select: none +} + +.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer { + cursor: pointer +} + +.mapboxgl-canvas-container.mapboxgl-interactive:active, +.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active { + cursor: grabbing +} + +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate, +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas { + touch-action: pan-x pan-y +} + +.mapboxgl-canvas-container.mapboxgl-touch-drag-pan, +.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas { + touch-action: pinch-zoom +} + +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan, +.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas { + touch-action: none +} + +.mapboxgl-ctrl-bottom-left, +.mapboxgl-ctrl-bottom-right, +.mapboxgl-ctrl-top-left, +.mapboxgl-ctrl-top-right { + pointer-events: none; + position: absolute; + z-index: 2 +} + +.mapboxgl-ctrl-top-left { + left: 0; + top: 0 +} + +.mapboxgl-ctrl-top-right { + right: 0; + top: 0 +} + +.mapboxgl-ctrl-bottom-left { + bottom: 0; + left: 0 +} + +.mapboxgl-ctrl-bottom-right { + bottom: 0; + right: 0 +} + +.mapboxgl-ctrl { + clear: both; + pointer-events: auto; + transform: translate(0) +} + +.mapboxgl-ctrl-top-left .mapboxgl-ctrl { + float: left; + margin: 10px 0 0 10px +} + +.mapboxgl-ctrl-top-right .mapboxgl-ctrl { + float: right; + margin: 10px 10px 0 0 +} + +.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl { + float: left; + margin: 0 0 10px 10px +} + +.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl { + float: right; + margin: 0 10px 10px 0 +} + +.mapboxgl-ctrl-group { + background: #fff; + border-radius: 4px +} + +.mapboxgl-ctrl-group:not(:empty) { + box-shadow: 0 0 0 2px rgba(0, 0, 0, .1) +} + +@media (-ms-high-contrast:active) { + .mapboxgl-ctrl-group:not(:empty) { + box-shadow: 0 0 0 2px ButtonText + } +} + +.mapboxgl-ctrl-group button { + background-color: transparent; + border: 0; + box-sizing: border-box; + cursor: pointer; + display: block; + height: 29px; + outline: none; + overflow: hidden; + padding: 0; + width: 29px +} + +.mapboxgl-ctrl-group button+button { + border-top: 1px solid #ddd +} + +.mapboxgl-ctrl button .mapboxgl-ctrl-icon { + background-position: 50%; + background-repeat: no-repeat; + display: block; + height: 100%; + width: 100% +} + +@media (-ms-high-contrast:active) { + .mapboxgl-ctrl-icon { + background-color: transparent + } + + .mapboxgl-ctrl-group button+button { + border-top: 1px solid ButtonText + } +} + +.mapboxgl-ctrl-attrib-button:focus, +.mapboxgl-ctrl-group button:focus { + box-shadow: 0 0 2px 2px #0096ff +} + +.mapboxgl-ctrl button:disabled { + cursor: not-allowed +} + +.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon { + opacity: .25 +} + +.mapboxgl-ctrl-group button:first-child { + border-radius: 4px 4px 0 0 +} + +.mapboxgl-ctrl-group button:last-child { + border-radius: 0 0 4px 4px +} + +.mapboxgl-ctrl-group button:only-child { + border-radius: inherit +} + +.mapboxgl-ctrl button:not(:disabled):hover { + background-color: rgb(0 0 0/5%) +} + +.mapboxgl-ctrl-group button:focus:focus-visible { + box-shadow: 0 0 2px 2px #0096ff +} + +.mapboxgl-ctrl-group button:focus:not(:focus-visible) { + box-shadow: none +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E") +} + +@media (-ms-high-contrast:active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E") + } +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E") +} + +@media (-ms-high-contrast:active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E") + } +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E") +} + +@media (-ms-high-contrast:active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E") + } +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") +} + +.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon { + animation: mapboxgl-spin 2s linear infinite +} + +@media (-ms-high-contrast:active) { + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E") + } + + .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E") + } +} + +@keyframes mapboxgl-spin { + 0% { + transform: rotate(0deg) + } + + to { + transform: rotate(1turn) + } +} + +a.mapboxgl-ctrl-logo { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E"); + background-repeat: no-repeat; + cursor: pointer; + display: block; + height: 23px; + margin: 0 0 -4px -4px; + overflow: hidden; + width: 88px +} + +a.mapboxgl-ctrl-logo.mapboxgl-compact { + width: 23px +} + +@media (-ms-high-contrast:active) { + a.mapboxgl-ctrl-logo { + background-color: transparent; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E") + } +} + +@media (-ms-high-contrast:black-on-white) { + a.mapboxgl-ctrl-logo { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E") + } +} + +.mapboxgl-ctrl.mapboxgl-ctrl-attrib { + background-color: hsla(0, 0%, 100%, .5); + margin: 0; + padding: 0 5px +} + +@media screen { + .mapboxgl-ctrl-attrib.mapboxgl-compact { + background-color: #fff; + border-radius: 12px; + margin: 10px; + min-height: 20px; + padding: 2px 24px 2px 0; + position: relative + } + + .mapboxgl-ctrl-attrib.mapboxgl-compact-show { + padding: 2px 28px 2px 8px; + visibility: visible + } + + .mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show, + .mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show { + border-radius: 12px; + padding: 2px 8px 2px 28px + } + + .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner { + display: none + } + + .mapboxgl-ctrl-attrib-button { + background-color: hsla(0, 0%, 100%, .5); + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E"); + border: 0; + border-radius: 12px; + box-sizing: border-box; + cursor: pointer; + display: none; + height: 24px; + outline: none; + position: absolute; + right: 0; + top: 0; + width: 24px + } + + .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button, + .mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button { + left: 0 + } + + .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button, + .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner { + display: block + } + + .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button { + background-color: rgb(0 0 0/5%) + } + + .mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after { + bottom: 0; + right: 0 + } + + .mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after { + right: 0; + top: 0 + } + + .mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after { + left: 0; + top: 0 + } + + .mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after { + bottom: 0; + left: 0 + } +} + +@media screen and (-ms-high-contrast:active) { + .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E") + } +} + +@media screen and (-ms-high-contrast:black-on-white) { + .mapboxgl-ctrl-attrib.mapboxgl-compact:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E") + } +} + +.mapboxgl-ctrl-attrib a { + color: rgba(0, 0, 0, .75); + text-decoration: none +} + +.mapboxgl-ctrl-attrib a:hover { + color: inherit; + text-decoration: underline +} + +.mapboxgl-ctrl-attrib .mapbox-improve-map { + font-weight: 700; + margin-left: 2px +} + +.mapboxgl-attrib-empty { + display: none +} + +.mapboxgl-ctrl-scale { + background-color: hsla(0, 0%, 100%, .75); + border: 2px solid #333; + border-top: #333; + box-sizing: border-box; + color: #333; + font-size: 10px; + padding: 0 5px; + white-space: nowrap +} + +.mapboxgl-popup { + display: flex; + left: 0; + pointer-events: none; + position: absolute; + top: 0; + will-change: transform +} + +.mapboxgl-popup-anchor-top, +.mapboxgl-popup-anchor-top-left, +.mapboxgl-popup-anchor-top-right { + flex-direction: column +} + +.mapboxgl-popup-anchor-bottom, +.mapboxgl-popup-anchor-bottom-left, +.mapboxgl-popup-anchor-bottom-right { + flex-direction: column-reverse +} + +.mapboxgl-popup-anchor-left { + flex-direction: row +} + +.mapboxgl-popup-anchor-right { + flex-direction: row-reverse +} + +.mapboxgl-popup-tip { + border: 10px solid transparent; + height: 0; + width: 0; + z-index: 1 +} + +.mapboxgl-popup-anchor-top .mapboxgl-popup-tip { + align-self: center; + border-bottom-color: #fff; + border-top: none +} + +.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip { + align-self: flex-start; + border-bottom-color: #fff; + border-left: none; + border-top: none +} + +.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip { + align-self: flex-end; + border-bottom-color: #fff; + border-right: none; + border-top: none +} + +.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip { + align-self: center; + border-bottom: none; + border-top-color: #fff +} + +.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip { + align-self: flex-start; + border-bottom: none; + border-left: none; + border-top-color: #fff +} + +.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip { + align-self: flex-end; + border-bottom: none; + border-right: none; + border-top-color: #fff +} + +.mapboxgl-popup-anchor-left .mapboxgl-popup-tip { + align-self: center; + border-left: none; + border-right-color: #fff +} + +.mapboxgl-popup-anchor-right .mapboxgl-popup-tip { + align-self: center; + border-left-color: #fff; + border-right: none +} + +.mapboxgl-popup-close-button { + background-color: transparent; + border: 0; + border-radius: 0 3px 0 0; + cursor: pointer; + position: absolute; + right: 0; + top: 0 +} + +.mapboxgl-popup-close-button:hover { + background-color: rgb(0 0 0/5%) +} + +.mapboxgl-popup-content { + background: #fff; + border-radius: 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, .1); + padding: 10px 10px 15px; + pointer-events: auto; + position: relative +} + +.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content { + border-top-left-radius: 0 +} + +.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content { + border-top-right-radius: 0 +} + +.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content { + border-bottom-left-radius: 0 +} + +.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content { + border-bottom-right-radius: 0 +} + +.mapboxgl-popup-track-pointer { + display: none +} + +.mapboxgl-popup-track-pointer * { + pointer-events: none; + user-select: none +} + +.mapboxgl-map:hover .mapboxgl-popup-track-pointer { + display: flex +} + +.mapboxgl-map:active .mapboxgl-popup-track-pointer { + display: none +} + +.mapboxgl-marker { + left: 0; + opacity: 1; + position: absolute; + top: 0; + transition: opacity .2s; + will-change: transform +} + +.mapboxgl-user-location-dot, +.mapboxgl-user-location-dot:before { + background-color: #1da1f2; + border-radius: 50%; + height: 15px; + width: 15px +} + +.mapboxgl-user-location-dot:before { + animation: mapboxgl-user-location-dot-pulse 2s infinite; + content: ""; + position: absolute +} + +.mapboxgl-user-location-dot:after { + border: 2px solid #fff; + border-radius: 50%; + box-shadow: 0 0 3px rgba(0, 0, 0, .35); + box-sizing: border-box; + content: ""; + height: 19px; + left: -2px; + position: absolute; + top: -2px; + width: 19px +} + +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading { + height: 0; + width: 0 +} + +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after, +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before { + border-bottom: 7.5px solid #4aa1eb; + content: ""; + position: absolute +} + +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before { + border-left: 7.5px solid transparent; + transform: translateY(-28px) skewY(-20deg) +} + +.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after { + border-right: 7.5px solid transparent; + transform: translate(7.5px, -28px) skewY(20deg) +} + +@keyframes mapboxgl-user-location-dot-pulse { + 0% { + opacity: 1; + transform: scale(1) + } + + 70% { + opacity: 0; + transform: scale(3) + } + + to { + opacity: 0; + transform: scale(1) + } +} + +.mapboxgl-user-location-dot-stale { + background-color: #aaa +} + +.mapboxgl-user-location-dot-stale:after { + display: none +} + +.mapboxgl-user-location-accuracy-circle { + background-color: #1da1f233; + border-radius: 100%; + height: 1px; + width: 1px +} + +.mapboxgl-crosshair, +.mapboxgl-crosshair .mapboxgl-interactive, +.mapboxgl-crosshair .mapboxgl-interactive:active { + cursor: crosshair +} + +.mapboxgl-boxzoom { + background: #fff; + border: 2px dotted #202020; + height: 0; + left: 0; + opacity: .5; + position: absolute; + top: 0; + width: 0 +} + +@media print { + .mapbox-improve-map { + display: none + } +} + +.mapboxgl-scroll-zoom-blocker, +.mapboxgl-touch-pan-blocker { + align-items: center; + background: rgba(0, 0, 0, .7); + color: #fff; + display: flex; + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; + height: 100%; + justify-content: center; + left: 0; + opacity: 0; + pointer-events: none; + position: absolute; + text-align: center; + top: 0; + transition: opacity .75s ease-in-out; + transition-delay: 1s; + width: 100% +} + +.mapboxgl-scroll-zoom-blocker-show, +.mapboxgl-touch-pan-blocker-show { + opacity: 1; + transition: opacity .1s ease-in-out +} + +.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page, +.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas { + touch-action: pan-x pan-y +} \ No newline at end of file diff --git a/public/js/maplibre/maplibre-gl.css b/public/js/maplibre/maplibre-gl.css new file mode 100644 index 0000000..317ea49 --- /dev/null +++ b/public/js/maplibre/maplibre-gl.css @@ -0,0 +1 @@ +.maplibregl-map{-webkit-tap-highlight-color:rgb(0 0 0/0);font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8h-8z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8h-8z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8h-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1 9-9z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1 9-9z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1 9-9z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.255 1.255 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.255 1.255 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5.11 5.11 0 0 1 .314-.787l.009-.016a4.623 4.623 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.548 4.548 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4.314.319.566.676.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.416 2.416 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.448 2.448 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675c.211.2.381.43.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.76 4.76 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.407 3.407 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.255 1.255 0 0 1 .689 1.004 4.73 4.73 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528 0 .343-.02.694-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.815 5.815 0 0 1-.548-2.512c0-.286.017-.567.053-.843a1.255 1.255 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.778 4.778 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.47 4.47 0 0 1-1.935-.424 1.252 1.252 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.402 2.402 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.703 4.703 0 0 1-1.782 1.884 4.767 4.767 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.47 4.47 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a4.983 4.983 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.255 1.255 0 0 1-1.115.676h-.098a1.255 1.255 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15c.329-.237.574-.499.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267c-.088-.22-.264-.438-.526-.658l-.032-.028a3.16 3.16 0 0 0-.668-.428l-.27-.12a3.293 3.293 0 0 0-1.235-.23c-.757 0-1.415.163-1.974.493a3.36 3.36 0 0 0-1.3 1.382c-.297.593-.444 1.284-.444 2.074 0 .8.17 1.503.51 2.107a3.795 3.795 0 0 0 1.382 1.381 3.883 3.883 0 0 0 1.893.477c.53 0 1.015-.11 1.455-.33zm-2.789-5.38c-.384.45-.575 1.038-.575 1.762 0 .735.186 1.332.559 1.794.384.45.933.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.17 2.17 0 0 0 .468-.29l.178-.161a2.163 2.163 0 0 0 .397-.561c.163-.333.244-.717.244-1.15v-.115c0-.472-.098-.894-.296-1.267l-.043-.077a2.211 2.211 0 0 0-.633-.709l-.13-.086-.047-.028a2.099 2.099 0 0 0-1.073-.285c-.702 0-1.244.231-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.958.958 0 0 0-.353-.389.851.851 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.626 2.626 0 0 0 .331.423c.213.22.464.402.755.548l.173.074c.433.17.93.255 1.49.255.68 0 1.295-.165 1.844-.493a3.447 3.447 0 0 0 1.316-1.4c.329-.603.493-1.299.493-2.089 0-1.273-.33-2.243-.988-2.913-.658-.68-1.52-1.02-2.584-1.02-.598 0-1.124.115-1.575.347a2.807 2.807 0 0 0-.415.262l-.199.166a3.35 3.35 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138c.137.193.297.36.48.5l.155.11.053.034c.34.197.713.297 1.119.297.714 0 1.262-.225 1.645-.675.385-.46.576-1.048.576-1.762 0-.746-.192-1.338-.576-1.777-.372-.45-.92-.675-1.645-.675-.29 0-.569.053-.835.16a2.366 2.366 0 0 0-.284.136 1.99 1.99 0 0 0-.363.254 2.237 2.237 0 0 0-.46.569l-.082.162a2.56 2.56 0 0 0-.213 1.072v.115c0 .471.098.894.296 1.267l.135.211zm.964-.818a1.11 1.11 0 0 0 .367.385.937.937 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a.995.995 0 0 0-.503.135l-.012.007a.859.859 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.43 1.43 0 0 0 .14.66zm15.7-6.222c.232-.23.346-.516.346-.856a1.053 1.053 0 0 0-.345-.79 1.175 1.175 0 0 0-.84-.329c-.34 0-.625.11-.855.33a1.053 1.053 0 0 0-.346.79c0 .34.115.625.346.855.23.23.516.346.856.346.34 0 .62-.115.839-.346zm4.337 9.314.033-1.332c.128.269.324.518.59.747l.098.081a3.727 3.727 0 0 0 .316.224l.223.122a3.21 3.21 0 0 0 1.44.322 3.785 3.785 0 0 0 1.875-.477 3.52 3.52 0 0 0 1.382-1.366c.352-.593.526-1.29.526-2.09 0-.79-.147-1.48-.444-2.073a3.235 3.235 0 0 0-1.283-1.399c-.549-.34-1.195-.51-1.942-.51a3.476 3.476 0 0 0-1.527.344l-.086.043-.165.09a3.412 3.412 0 0 0-.33.214c-.288.21-.507.446-.656.707a1.893 1.893 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.482 2.482 0 0 0 .566.7c.078.065.159.125.245.18l.144.08a2.105 2.105 0 0 0 .975.232c.713 0 1.262-.225 1.645-.675.384-.46.576-1.053.576-1.778 0-.734-.192-1.327-.576-1.777-.373-.46-.921-.692-1.645-.692a2.18 2.18 0 0 0-1.015.235c-.147.075-.285.17-.415.282l-.15.142a2.086 2.086 0 0 0-.42.594c-.149.32-.223.685-.223 1.1v.115c0 .47.097.89.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.868.868 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.13 1.13 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013c.23-.087.472-.134.724-.14l.069-.002c.329 0 .542.033.642.099l.247-1.794c-.13-.066-.37-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2.086 2.086 0 0 0-.411.148 2.18 2.18 0 0 0-.4.249 2.482 2.482 0 0 0-.485.499 2.659 2.659 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884c0-.364.053-.678.159-.943a1.49 1.49 0 0 1 .466-.636 2.52 2.52 0 0 1 .399-.253 2.19 2.19 0 0 1 .224-.099zm9.784 2.656.05-.922c0-1.162-.285-2.062-.856-2.698-.559-.647-1.42-.97-2.584-.97-.746 0-1.415.163-2.007.493a3.462 3.462 0 0 0-1.4 1.382c-.329.604-.493 1.306-.493 2.106 0 .714.143 1.371.428 1.975.285.593.73 1.07 1.332 1.432.604.351 1.355.526 2.255.526.649 0 1.204-.062 1.668-.185l.044-.012.135-.04c.409-.122.736-.263.984-.421l-.542-1.267c-.2.108-.415.199-.642.274l-.297.087c-.34.088-.773.131-1.3.131-.636 0-1.135-.147-1.497-.444a1.573 1.573 0 0 1-.192-.193c-.244-.294-.415-.705-.512-1.234l-.004-.021h5.43zm-5.427-1.256-.003.022h3.752v-.138c-.007-.485-.104-.857-.288-1.118a1.056 1.056 0 0 0-.156-.176c-.307-.285-.746-.428-1.316-.428-.657 0-1.155.202-1.494.604-.253.3-.417.712-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81c-.68 0-1.311-.16-1.893-.478a3.795 3.795 0 0 1-1.381-1.382c-.34-.604-.51-1.306-.51-2.106 0-.79.147-1.482.444-2.074a3.364 3.364 0 0 1 1.3-1.382c.559-.33 1.217-.494 1.974-.494a3.293 3.293 0 0 1 1.234.231 3.341 3.341 0 0 1 .97.575c.264.22.44.439.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332c-.186.395-.526.746-1.02 1.053a3.167 3.167 0 0 1-1.662.444zm.296-1.482c.626 0 1.152-.214 1.58-.642.428-.44.642-1.01.642-1.711v-.115c0-.472-.098-.894-.296-1.267a2.211 2.211 0 0 0-.807-.872 2.098 2.098 0 0 0-1.119-.313c-.702 0-1.245.231-1.629.692-.384.45-.575 1.037-.575 1.76 0 .736.186 1.333.559 1.795.384.45.933.675 1.645.675zm6.521-6.237h1.711v1.4c.604-1.065 1.547-1.597 2.83-1.597 1.064 0 1.926.34 2.584 1.02.659.67.988 1.641.988 2.914 0 .79-.164 1.487-.493 2.09a3.456 3.456 0 0 1-1.316 1.399 3.51 3.51 0 0 1-1.844.493c-.636 0-1.19-.11-1.662-.329a2.665 2.665 0 0 1-1.086-.97l.017 5.134h-1.728V9.242zm4.048 6.22c.714 0 1.262-.224 1.645-.674.385-.46.576-1.048.576-1.762 0-.746-.192-1.338-.576-1.777-.372-.45-.92-.675-1.645-.675-.395 0-.768.098-1.12.296-.34.187-.613.46-.822.823-.197.351-.296.763-.296 1.234v.115c0 .472.098.894.296 1.267.209.362.483.647.823.855.34.197.713.297 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.159 1.159 0 0 1-.856-.346 1.165 1.165 0 0 1-.346-.856 1.053 1.053 0 0 1 .346-.79c.23-.219.516-.329.856-.329.329 0 .609.11.839.33a1.053 1.053 0 0 1 .345.79 1.159 1.159 0 0 1-.345.855c-.22.23-.5.346-.84.346zm7.875 9.133a3.167 3.167 0 0 1-1.662-.444c-.482-.307-.817-.658-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283c.186-.438.548-.812 1.086-1.119a3.486 3.486 0 0 1 1.778-.477c.746 0 1.393.17 1.942.51a3.235 3.235 0 0 1 1.283 1.4c.297.592.444 1.282.444 2.072 0 .8-.175 1.498-.526 2.09a3.52 3.52 0 0 1-1.382 1.366 3.785 3.785 0 0 1-1.876.477zm-.296-1.481c.713 0 1.26-.225 1.645-.675.384-.46.577-1.053.577-1.778 0-.734-.193-1.327-.577-1.776-.373-.46-.921-.692-1.645-.692a2.115 2.115 0 0 0-1.58.659c-.428.428-.642.992-.642 1.694v.115c0 .473.098.895.296 1.267a2.385 2.385 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481c.176-.505.46-.91.856-1.217a2.14 2.14 0 0 1 1.349-.46c.351 0 .593.032.724.098l-.247 1.794c-.099-.066-.313-.099-.642-.099-.516 0-.988.164-1.416.494-.417.329-.626.855-.626 1.58v3.883h-1.777V9.242zm9.534 7.718c-.9 0-1.651-.175-2.255-.526-.603-.362-1.047-.84-1.332-1.432a4.567 4.567 0 0 1-.428-1.975c0-.8.164-1.502.493-2.106a3.462 3.462 0 0 1 1.4-1.382c.592-.33 1.262-.494 2.007-.494 1.163 0 2.024.324 2.584.97.57.637.856 1.537.856 2.7 0 .296-.017.603-.05.92h-5.43c.12.67.356 1.153.708 1.45.362.296.86.443 1.497.443.526 0 .96-.044 1.3-.131a4.123 4.123 0 0 0 .938-.362l.542 1.267c-.274.175-.647.329-1.119.46-.472.132-1.042.197-1.711.197zm1.596-4.558c.01-.68-.137-1.158-.444-1.432-.307-.285-.746-.428-1.316-.428-1.152 0-1.815.62-1.991 1.86h3.752z'/%3E%3Cg fill-rule='evenodd' stroke-width='1.036'%3E%3Cpath fill='%23000' fill-opacity='.4' d='m8.166 16.146-.002.002a1.54 1.54 0 0 1-2.009 0l-.002-.002-.043-.034-.002-.002-.199-.162H4.377a.657.657 0 0 0-.659.659v1.84a.657.657 0 0 0 .659.659h5.565a.657.657 0 0 0 .659-.659v-1.84a.657.657 0 0 0-.659-.659H8.411l-.202.164zm-1.121-.905a.29.29 0 0 0 .113.023.286.286 0 0 0 .189-.07l.077-.063c.634-.508 4.672-3.743 4.672-7.575 0-2.55-2.215-4.625-4.938-4.625S2.221 5.006 2.221 7.556c0 3.225 2.86 6.027 4.144 7.137h.004l.04.038.484.4.077.063a.628.628 0 0 0 .074.047zm-2.52-.548a16.898 16.898 0 0 1-1.183-1.315C2.187 11.942.967 9.897.967 7.555c0-3.319 2.855-5.88 6.192-5.88 3.338 0 6.193 2.561 6.193 5.881 0 2.34-1.22 4.387-2.376 5.822a16.898 16.898 0 0 1-1.182 1.315h.15a1.912 1.912 0 0 1 1.914 1.914v1.84a1.912 1.912 0 0 1-1.914 1.914H4.377a1.912 1.912 0 0 1-1.914-1.914v-1.84a1.912 1.912 0 0 1 1.914-1.914zm3.82-6.935c0 .692-.55 1.222-1.187 1.222s-1.185-.529-1.185-1.222.548-1.222 1.185-1.222c.638 0 1.186.529 1.186 1.222zm-1.186 2.477c1.348 0 2.442-1.11 2.442-2.478S8.507 5.28 7.159 5.28 4.72 6.39 4.72 7.758s1.092 2.477 2.44 2.477zm2.048 7.71H5.114v-.838h4.093z'/%3E%3Cpath fill='%23e1e3e9' d='M2.222 7.555c0-2.55 2.214-4.625 4.937-4.625 2.723 0 4.938 2.075 4.938 4.625 0 3.832-4.038 7.068-4.672 7.575l-.077.063a.286.286 0 0 1-.189.07.286.286 0 0 1-.188-.07l-.077-.063c-.634-.507-4.672-3.743-4.672-7.575zm4.937 2.68c1.348 0 2.442-1.11 2.442-2.478S8.507 5.28 7.159 5.28 4.72 6.39 4.72 7.758s1.092 2.477 2.44 2.477z'/%3E%3Cpath fill='%23fff' d='M4.377 15.948a.657.657 0 0 0-.659.659v1.84a.657.657 0 0 0 .659.659h5.565a.657.657 0 0 0 .659-.659v-1.84a.657.657 0 0 0-.659-.659zm4.83 1.16H5.114v.838h4.093z'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (-ms-high-contrast:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.255 1.255 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.255 1.255 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5.11 5.11 0 0 1 .314-.787l.009-.016a4.623 4.623 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.548 4.548 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4.314.319.566.676.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.416 2.416 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.448 2.448 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675c.211.2.381.43.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.76 4.76 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.407 3.407 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.255 1.255 0 0 1 .689 1.004 4.73 4.73 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528 0 .343-.02.694-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.815 5.815 0 0 1-.548-2.512c0-.286.017-.567.053-.843a1.255 1.255 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.778 4.778 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.47 4.47 0 0 1-1.935-.424 1.252 1.252 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.402 2.402 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.703 4.703 0 0 1-1.782 1.884 4.767 4.767 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.47 4.47 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a4.983 4.983 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.255 1.255 0 0 1-1.115.676h-.098a1.255 1.255 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15c.329-.237.574-.499.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267c-.088-.22-.264-.438-.526-.658l-.032-.028a3.16 3.16 0 0 0-.668-.428l-.27-.12a3.293 3.293 0 0 0-1.235-.23c-.757 0-1.415.163-1.974.493a3.36 3.36 0 0 0-1.3 1.382c-.297.593-.444 1.284-.444 2.074 0 .8.17 1.503.51 2.107a3.795 3.795 0 0 0 1.382 1.381 3.883 3.883 0 0 0 1.893.477c.53 0 1.015-.11 1.455-.33zm-2.789-5.38c-.384.45-.575 1.038-.575 1.762 0 .735.186 1.332.559 1.794.384.45.933.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.17 2.17 0 0 0 .468-.29l.178-.161a2.163 2.163 0 0 0 .397-.561c.163-.333.244-.717.244-1.15v-.115c0-.472-.098-.894-.296-1.267l-.043-.077a2.211 2.211 0 0 0-.633-.709l-.13-.086-.047-.028a2.099 2.099 0 0 0-1.073-.285c-.702 0-1.244.231-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.958.958 0 0 0-.353-.389.851.851 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.626 2.626 0 0 0 .331.423c.213.22.464.402.755.548l.173.074c.433.17.93.255 1.49.255.68 0 1.295-.165 1.844-.493a3.447 3.447 0 0 0 1.316-1.4c.329-.603.493-1.299.493-2.089 0-1.273-.33-2.243-.988-2.913-.658-.68-1.52-1.02-2.584-1.02-.598 0-1.124.115-1.575.347a2.807 2.807 0 0 0-.415.262l-.199.166a3.35 3.35 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138c.137.193.297.36.48.5l.155.11.053.034c.34.197.713.297 1.119.297.714 0 1.262-.225 1.645-.675.385-.46.576-1.048.576-1.762 0-.746-.192-1.338-.576-1.777-.372-.45-.92-.675-1.645-.675-.29 0-.569.053-.835.16a2.366 2.366 0 0 0-.284.136 1.99 1.99 0 0 0-.363.254 2.237 2.237 0 0 0-.46.569l-.082.162a2.56 2.56 0 0 0-.213 1.072v.115c0 .471.098.894.296 1.267l.135.211zm.964-.818a1.11 1.11 0 0 0 .367.385.937.937 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a.995.995 0 0 0-.503.135l-.012.007a.859.859 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.43 1.43 0 0 0 .14.66zm15.7-6.222c.232-.23.346-.516.346-.856a1.053 1.053 0 0 0-.345-.79 1.175 1.175 0 0 0-.84-.329c-.34 0-.625.11-.855.33a1.053 1.053 0 0 0-.346.79c0 .34.115.625.346.855.23.23.516.346.856.346.34 0 .62-.115.839-.346zm4.337 9.314.033-1.332c.128.269.324.518.59.747l.098.081a3.727 3.727 0 0 0 .316.224l.223.122a3.21 3.21 0 0 0 1.44.322 3.785 3.785 0 0 0 1.875-.477 3.52 3.52 0 0 0 1.382-1.366c.352-.593.526-1.29.526-2.09 0-.79-.147-1.48-.444-2.073a3.235 3.235 0 0 0-1.283-1.399c-.549-.34-1.195-.51-1.942-.51a3.476 3.476 0 0 0-1.527.344l-.086.043-.165.09a3.412 3.412 0 0 0-.33.214c-.288.21-.507.446-.656.707a1.893 1.893 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.482 2.482 0 0 0 .566.7c.078.065.159.125.245.18l.144.08a2.105 2.105 0 0 0 .975.232c.713 0 1.262-.225 1.645-.675.384-.46.576-1.053.576-1.778 0-.734-.192-1.327-.576-1.777-.373-.46-.921-.692-1.645-.692a2.18 2.18 0 0 0-1.015.235c-.147.075-.285.17-.415.282l-.15.142a2.086 2.086 0 0 0-.42.594c-.149.32-.223.685-.223 1.1v.115c0 .47.097.89.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.868.868 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.13 1.13 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013c.23-.087.472-.134.724-.14l.069-.002c.329 0 .542.033.642.099l.247-1.794c-.13-.066-.37-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2.086 2.086 0 0 0-.411.148 2.18 2.18 0 0 0-.4.249 2.482 2.482 0 0 0-.485.499 2.659 2.659 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884c0-.364.053-.678.159-.943a1.49 1.49 0 0 1 .466-.636 2.52 2.52 0 0 1 .399-.253 2.19 2.19 0 0 1 .224-.099zm9.784 2.656.05-.922c0-1.162-.285-2.062-.856-2.698-.559-.647-1.42-.97-2.584-.97-.746 0-1.415.163-2.007.493a3.462 3.462 0 0 0-1.4 1.382c-.329.604-.493 1.306-.493 2.106 0 .714.143 1.371.428 1.975.285.593.73 1.07 1.332 1.432.604.351 1.355.526 2.255.526.649 0 1.204-.062 1.668-.185l.044-.012.135-.04c.409-.122.736-.263.984-.421l-.542-1.267c-.2.108-.415.199-.642.274l-.297.087c-.34.088-.773.131-1.3.131-.636 0-1.135-.147-1.497-.444a1.573 1.573 0 0 1-.192-.193c-.244-.294-.415-.705-.512-1.234l-.004-.021h5.43zm-5.427-1.256-.003.022h3.752v-.138c-.007-.485-.104-.857-.288-1.118a1.056 1.056 0 0 0-.156-.176c-.307-.285-.746-.428-1.316-.428-.657 0-1.155.202-1.494.604-.253.3-.417.712-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81c-.68 0-1.311-.16-1.893-.478a3.795 3.795 0 0 1-1.381-1.382c-.34-.604-.51-1.306-.51-2.106 0-.79.147-1.482.444-2.074a3.364 3.364 0 0 1 1.3-1.382c.559-.33 1.217-.494 1.974-.494a3.293 3.293 0 0 1 1.234.231 3.341 3.341 0 0 1 .97.575c.264.22.44.439.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332c-.186.395-.526.746-1.02 1.053a3.167 3.167 0 0 1-1.662.444zm.296-1.482c.626 0 1.152-.214 1.58-.642.428-.44.642-1.01.642-1.711v-.115c0-.472-.098-.894-.296-1.267a2.211 2.211 0 0 0-.807-.872 2.098 2.098 0 0 0-1.119-.313c-.702 0-1.245.231-1.629.692-.384.45-.575 1.037-.575 1.76 0 .736.186 1.333.559 1.795.384.45.933.675 1.645.675zm6.521-6.237h1.711v1.4c.604-1.065 1.547-1.597 2.83-1.597 1.064 0 1.926.34 2.584 1.02.659.67.988 1.641.988 2.914 0 .79-.164 1.487-.493 2.09a3.456 3.456 0 0 1-1.316 1.399 3.51 3.51 0 0 1-1.844.493c-.636 0-1.19-.11-1.662-.329a2.665 2.665 0 0 1-1.086-.97l.017 5.134h-1.728V9.242zm4.048 6.22c.714 0 1.262-.224 1.645-.674.385-.46.576-1.048.576-1.762 0-.746-.192-1.338-.576-1.777-.372-.45-.92-.675-1.645-.675-.395 0-.768.098-1.12.296-.34.187-.613.46-.822.823-.197.351-.296.763-.296 1.234v.115c0 .472.098.894.296 1.267.209.362.483.647.823.855.34.197.713.297 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.159 1.159 0 0 1-.856-.346 1.165 1.165 0 0 1-.346-.856 1.053 1.053 0 0 1 .346-.79c.23-.219.516-.329.856-.329.329 0 .609.11.839.33a1.053 1.053 0 0 1 .345.79 1.159 1.159 0 0 1-.345.855c-.22.23-.5.346-.84.346zm7.875 9.133a3.167 3.167 0 0 1-1.662-.444c-.482-.307-.817-.658-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283c.186-.438.548-.812 1.086-1.119a3.486 3.486 0 0 1 1.778-.477c.746 0 1.393.17 1.942.51a3.235 3.235 0 0 1 1.283 1.4c.297.592.444 1.282.444 2.072 0 .8-.175 1.498-.526 2.09a3.52 3.52 0 0 1-1.382 1.366 3.785 3.785 0 0 1-1.876.477zm-.296-1.481c.713 0 1.26-.225 1.645-.675.384-.46.577-1.053.577-1.778 0-.734-.193-1.327-.577-1.776-.373-.46-.921-.692-1.645-.692a2.115 2.115 0 0 0-1.58.659c-.428.428-.642.992-.642 1.694v.115c0 .473.098.895.296 1.267a2.385 2.385 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481c.176-.505.46-.91.856-1.217a2.14 2.14 0 0 1 1.349-.46c.351 0 .593.032.724.098l-.247 1.794c-.099-.066-.313-.099-.642-.099-.516 0-.988.164-1.416.494-.417.329-.626.855-.626 1.58v3.883h-1.777V9.242zm9.534 7.718c-.9 0-1.651-.175-2.255-.526-.603-.362-1.047-.84-1.332-1.432a4.567 4.567 0 0 1-.428-1.975c0-.8.164-1.502.493-2.106a3.462 3.462 0 0 1 1.4-1.382c.592-.33 1.262-.494 2.007-.494 1.163 0 2.024.324 2.584.97.57.637.856 1.537.856 2.7 0 .296-.017.603-.05.92h-5.43c.12.67.356 1.153.708 1.45.362.296.86.443 1.497.443.526 0 .96-.044 1.3-.131a4.123 4.123 0 0 0 .938-.362l.542 1.267c-.274.175-.647.329-1.119.46-.472.132-1.042.197-1.711.197zm1.596-4.558c.01-.68-.137-1.158-.444-1.432-.307-.285-.746-.428-1.316-.428-1.152 0-1.815.62-1.991 1.86h3.752z'/%3E%3Cg fill-rule='evenodd' stroke-width='1.036'%3E%3Cpath fill='%23000' fill-opacity='.4' d='m8.166 16.146-.002.002a1.54 1.54 0 0 1-2.009 0l-.002-.002-.043-.034-.002-.002-.199-.162H4.377a.657.657 0 0 0-.659.659v1.84a.657.657 0 0 0 .659.659h5.565a.657.657 0 0 0 .659-.659v-1.84a.657.657 0 0 0-.659-.659H8.411l-.202.164zm-1.121-.905a.29.29 0 0 0 .113.023.286.286 0 0 0 .189-.07l.077-.063c.634-.508 4.672-3.743 4.672-7.575 0-2.55-2.215-4.625-4.938-4.625S2.221 5.006 2.221 7.556c0 3.225 2.86 6.027 4.144 7.137h.004l.04.038.484.4.077.063a.628.628 0 0 0 .074.047zm-2.52-.548a16.898 16.898 0 0 1-1.183-1.315C2.187 11.942.967 9.897.967 7.555c0-3.319 2.855-5.88 6.192-5.88 3.338 0 6.193 2.561 6.193 5.881 0 2.34-1.22 4.387-2.376 5.822a16.898 16.898 0 0 1-1.182 1.315h.15a1.912 1.912 0 0 1 1.914 1.914v1.84a1.912 1.912 0 0 1-1.914 1.914H4.377a1.912 1.912 0 0 1-1.914-1.914v-1.84a1.912 1.912 0 0 1 1.914-1.914zm3.82-6.935c0 .692-.55 1.222-1.187 1.222s-1.185-.529-1.185-1.222.548-1.222 1.185-1.222c.638 0 1.186.529 1.186 1.222zm-1.186 2.477c1.348 0 2.442-1.11 2.442-2.478S8.507 5.28 7.159 5.28 4.72 6.39 4.72 7.758s1.092 2.477 2.44 2.477zm2.048 7.71H5.114v-.838h4.093z'/%3E%3Cpath fill='%23e1e3e9' d='M2.222 7.555c0-2.55 2.214-4.625 4.937-4.625 2.723 0 4.938 2.075 4.938 4.625 0 3.832-4.038 7.068-4.672 7.575l-.077.063a.286.286 0 0 1-.189.07.286.286 0 0 1-.188-.07l-.077-.063c-.634-.507-4.672-3.743-4.672-7.575zm4.937 2.68c1.348 0 2.442-1.11 2.442-2.478S8.507 5.28 7.159 5.28 4.72 6.39 4.72 7.758s1.092 2.477 2.44 2.477z'/%3E%3Cpath fill='%23fff' d='M4.377 15.948a.657.657 0 0 0-.659.659v1.84a.657.657 0 0 0 .659.659h5.565a.657.657 0 0 0 .659-.659v-1.84a.657.657 0 0 0-.659-.659zm4.83 1.16H5.114v.838h4.093z'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.255 1.255 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.255 1.255 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5.11 5.11 0 0 1 .314-.787l.009-.016a4.623 4.623 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.548 4.548 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4.314.319.566.676.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.416 2.416 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.448 2.448 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675c.211.2.381.43.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.76 4.76 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.407 3.407 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.255 1.255 0 0 1 .689 1.004 4.73 4.73 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528 0 .343-.02.694-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.815 5.815 0 0 1-.548-2.512c0-.286.017-.567.053-.843a1.255 1.255 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.778 4.778 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.47 4.47 0 0 1-1.935-.424 1.252 1.252 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.402 2.402 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.703 4.703 0 0 1-1.782 1.884 4.767 4.767 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.47 4.47 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a4.983 4.983 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.255 1.255 0 0 1-1.115.676h-.098a1.255 1.255 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15c.329-.237.574-.499.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267c-.088-.22-.264-.438-.526-.658l-.032-.028a3.16 3.16 0 0 0-.668-.428l-.27-.12a3.293 3.293 0 0 0-1.235-.23c-.757 0-1.415.163-1.974.493a3.36 3.36 0 0 0-1.3 1.382c-.297.593-.444 1.284-.444 2.074 0 .8.17 1.503.51 2.107a3.795 3.795 0 0 0 1.382 1.381 3.883 3.883 0 0 0 1.893.477c.53 0 1.015-.11 1.455-.33zm-2.789-5.38c-.384.45-.575 1.038-.575 1.762 0 .735.186 1.332.559 1.794.384.45.933.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.17 2.17 0 0 0 .468-.29l.178-.161a2.163 2.163 0 0 0 .397-.561c.163-.333.244-.717.244-1.15v-.115c0-.472-.098-.894-.296-1.267l-.043-.077a2.211 2.211 0 0 0-.633-.709l-.13-.086-.047-.028a2.099 2.099 0 0 0-1.073-.285c-.702 0-1.244.231-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.958.958 0 0 0-.353-.389.851.851 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.626 2.626 0 0 0 .331.423c.213.22.464.402.755.548l.173.074c.433.17.93.255 1.49.255.68 0 1.295-.165 1.844-.493a3.447 3.447 0 0 0 1.316-1.4c.329-.603.493-1.299.493-2.089 0-1.273-.33-2.243-.988-2.913-.658-.68-1.52-1.02-2.584-1.02-.598 0-1.124.115-1.575.347a2.807 2.807 0 0 0-.415.262l-.199.166a3.35 3.35 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138c.137.193.297.36.48.5l.155.11.053.034c.34.197.713.297 1.119.297.714 0 1.262-.225 1.645-.675.385-.46.576-1.048.576-1.762 0-.746-.192-1.338-.576-1.777-.372-.45-.92-.675-1.645-.675-.29 0-.569.053-.835.16a2.366 2.366 0 0 0-.284.136 1.99 1.99 0 0 0-.363.254 2.237 2.237 0 0 0-.46.569l-.082.162a2.56 2.56 0 0 0-.213 1.072v.115c0 .471.098.894.296 1.267l.135.211zm.964-.818a1.11 1.11 0 0 0 .367.385.937.937 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a.995.995 0 0 0-.503.135l-.012.007a.859.859 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.43 1.43 0 0 0 .14.66zm15.7-6.222c.232-.23.346-.516.346-.856a1.053 1.053 0 0 0-.345-.79 1.175 1.175 0 0 0-.84-.329c-.34 0-.625.11-.855.33a1.053 1.053 0 0 0-.346.79c0 .34.115.625.346.855.23.23.516.346.856.346.34 0 .62-.115.839-.346zm4.337 9.314.033-1.332c.128.269.324.518.59.747l.098.081a3.727 3.727 0 0 0 .316.224l.223.122a3.21 3.21 0 0 0 1.44.322 3.785 3.785 0 0 0 1.875-.477 3.52 3.52 0 0 0 1.382-1.366c.352-.593.526-1.29.526-2.09 0-.79-.147-1.48-.444-2.073a3.235 3.235 0 0 0-1.283-1.399c-.549-.34-1.195-.51-1.942-.51a3.476 3.476 0 0 0-1.527.344l-.086.043-.165.09a3.412 3.412 0 0 0-.33.214c-.288.21-.507.446-.656.707a1.893 1.893 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.482 2.482 0 0 0 .566.7c.078.065.159.125.245.18l.144.08a2.105 2.105 0 0 0 .975.232c.713 0 1.262-.225 1.645-.675.384-.46.576-1.053.576-1.778 0-.734-.192-1.327-.576-1.777-.373-.46-.921-.692-1.645-.692a2.18 2.18 0 0 0-1.015.235c-.147.075-.285.17-.415.282l-.15.142a2.086 2.086 0 0 0-.42.594c-.149.32-.223.685-.223 1.1v.115c0 .47.097.89.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.868.868 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.13 1.13 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013c.23-.087.472-.134.724-.14l.069-.002c.329 0 .542.033.642.099l.247-1.794c-.13-.066-.37-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2.086 2.086 0 0 0-.411.148 2.18 2.18 0 0 0-.4.249 2.482 2.482 0 0 0-.485.499 2.659 2.659 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884c0-.364.053-.678.159-.943a1.49 1.49 0 0 1 .466-.636 2.52 2.52 0 0 1 .399-.253 2.19 2.19 0 0 1 .224-.099zm9.784 2.656.05-.922c0-1.162-.285-2.062-.856-2.698-.559-.647-1.42-.97-2.584-.97-.746 0-1.415.163-2.007.493a3.462 3.462 0 0 0-1.4 1.382c-.329.604-.493 1.306-.493 2.106 0 .714.143 1.371.428 1.975.285.593.73 1.07 1.332 1.432.604.351 1.355.526 2.255.526.649 0 1.204-.062 1.668-.185l.044-.012.135-.04c.409-.122.736-.263.984-.421l-.542-1.267c-.2.108-.415.199-.642.274l-.297.087c-.34.088-.773.131-1.3.131-.636 0-1.135-.147-1.497-.444a1.573 1.573 0 0 1-.192-.193c-.244-.294-.415-.705-.512-1.234l-.004-.021h5.43zm-5.427-1.256-.003.022h3.752v-.138c-.007-.485-.104-.857-.288-1.118a1.056 1.056 0 0 0-.156-.176c-.307-.285-.746-.428-1.316-.428-.657 0-1.155.202-1.494.604-.253.3-.417.712-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81c-.68 0-1.311-.16-1.893-.478a3.795 3.795 0 0 1-1.381-1.382c-.34-.604-.51-1.306-.51-2.106 0-.79.147-1.482.444-2.074a3.364 3.364 0 0 1 1.3-1.382c.559-.33 1.217-.494 1.974-.494a3.293 3.293 0 0 1 1.234.231 3.341 3.341 0 0 1 .97.575c.264.22.44.439.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332c-.186.395-.526.746-1.02 1.053a3.167 3.167 0 0 1-1.662.444zm.296-1.482c.626 0 1.152-.214 1.58-.642.428-.44.642-1.01.642-1.711v-.115c0-.472-.098-.894-.296-1.267a2.211 2.211 0 0 0-.807-.872 2.098 2.098 0 0 0-1.119-.313c-.702 0-1.245.231-1.629.692-.384.45-.575 1.037-.575 1.76 0 .736.186 1.333.559 1.795.384.45.933.675 1.645.675zm6.521-6.237h1.711v1.4c.604-1.065 1.547-1.597 2.83-1.597 1.064 0 1.926.34 2.584 1.02.659.67.988 1.641.988 2.914 0 .79-.164 1.487-.493 2.09a3.456 3.456 0 0 1-1.316 1.399 3.51 3.51 0 0 1-1.844.493c-.636 0-1.19-.11-1.662-.329a2.665 2.665 0 0 1-1.086-.97l.017 5.134h-1.728V9.242zm4.048 6.22c.714 0 1.262-.224 1.645-.674.385-.46.576-1.048.576-1.762 0-.746-.192-1.338-.576-1.777-.372-.45-.92-.675-1.645-.675-.395 0-.768.098-1.12.296-.34.187-.613.46-.822.823-.197.351-.296.763-.296 1.234v.115c0 .472.098.894.296 1.267.209.362.483.647.823.855.34.197.713.297 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.159 1.159 0 0 1-.856-.346 1.165 1.165 0 0 1-.346-.856 1.053 1.053 0 0 1 .346-.79c.23-.219.516-.329.856-.329.329 0 .609.11.839.33a1.053 1.053 0 0 1 .345.79 1.159 1.159 0 0 1-.345.855c-.22.23-.5.346-.84.346zm7.875 9.133a3.167 3.167 0 0 1-1.662-.444c-.482-.307-.817-.658-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283c.186-.438.548-.812 1.086-1.119a3.486 3.486 0 0 1 1.778-.477c.746 0 1.393.17 1.942.51a3.235 3.235 0 0 1 1.283 1.4c.297.592.444 1.282.444 2.072 0 .8-.175 1.498-.526 2.09a3.52 3.52 0 0 1-1.382 1.366 3.785 3.785 0 0 1-1.876.477zm-.296-1.481c.713 0 1.26-.225 1.645-.675.384-.46.577-1.053.577-1.778 0-.734-.193-1.327-.577-1.776-.373-.46-.921-.692-1.645-.692a2.115 2.115 0 0 0-1.58.659c-.428.428-.642.992-.642 1.694v.115c0 .473.098.895.296 1.267a2.385 2.385 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481c.176-.505.46-.91.856-1.217a2.14 2.14 0 0 1 1.349-.46c.351 0 .593.032.724.098l-.247 1.794c-.099-.066-.313-.099-.642-.099-.516 0-.988.164-1.416.494-.417.329-.626.855-.626 1.58v3.883h-1.777V9.242zm9.534 7.718c-.9 0-1.651-.175-2.255-.526-.603-.362-1.047-.84-1.332-1.432a4.567 4.567 0 0 1-.428-1.975c0-.8.164-1.502.493-2.106a3.462 3.462 0 0 1 1.4-1.382c.592-.33 1.262-.494 2.007-.494 1.163 0 2.024.324 2.584.97.57.637.856 1.537.856 2.7 0 .296-.017.603-.05.92h-5.43c.12.67.356 1.153.708 1.45.362.296.86.443 1.497.443.526 0 .96-.044 1.3-.131a4.123 4.123 0 0 0 .938-.362l.542 1.267c-.274.175-.647.329-1.119.46-.472.132-1.042.197-1.711.197zm1.596-4.558c.01-.68-.137-1.158-.444-1.432-.307-.285-.746-.428-1.316-.428-1.152 0-1.815.62-1.991 1.86h3.752z'/%3E%3Cg fill-rule='evenodd' stroke-width='1.036'%3E%3Cpath fill='%23000' fill-opacity='.4' d='m8.166 16.146-.002.002a1.54 1.54 0 0 1-2.009 0l-.002-.002-.043-.034-.002-.002-.199-.162H4.377a.657.657 0 0 0-.659.659v1.84a.657.657 0 0 0 .659.659h5.565a.657.657 0 0 0 .659-.659v-1.84a.657.657 0 0 0-.659-.659H8.411l-.202.164zm-1.121-.905a.29.29 0 0 0 .113.023.286.286 0 0 0 .189-.07l.077-.063c.634-.508 4.672-3.743 4.672-7.575 0-2.55-2.215-4.625-4.938-4.625S2.221 5.006 2.221 7.556c0 3.225 2.86 6.027 4.144 7.137h.004l.04.038.484.4.077.063a.628.628 0 0 0 .074.047zm-2.52-.548a16.898 16.898 0 0 1-1.183-1.315C2.187 11.942.967 9.897.967 7.555c0-3.319 2.855-5.88 6.192-5.88 3.338 0 6.193 2.561 6.193 5.881 0 2.34-1.22 4.387-2.376 5.822a16.898 16.898 0 0 1-1.182 1.315h.15a1.912 1.912 0 0 1 1.914 1.914v1.84a1.912 1.912 0 0 1-1.914 1.914H4.377a1.912 1.912 0 0 1-1.914-1.914v-1.84a1.912 1.912 0 0 1 1.914-1.914zm3.82-6.935c0 .692-.55 1.222-1.187 1.222s-1.185-.529-1.185-1.222.548-1.222 1.185-1.222c.638 0 1.186.529 1.186 1.222zm-1.186 2.477c1.348 0 2.442-1.11 2.442-2.478S8.507 5.28 7.159 5.28 4.72 6.39 4.72 7.758s1.092 2.477 2.44 2.477zm2.048 7.71H5.114v-.838h4.093z'/%3E%3Cpath fill='%23e1e3e9' d='M2.222 7.555c0-2.55 2.214-4.625 4.937-4.625 2.723 0 4.938 2.075 4.938 4.625 0 3.832-4.038 7.068-4.672 7.575l-.077.063a.286.286 0 0 1-.189.07.286.286 0 0 1-.188-.07l-.077-.063c-.634-.507-4.672-3.743-4.672-7.575zm4.937 2.68c1.348 0 2.442-1.11 2.442-2.478S8.507 5.28 7.159 5.28 4.72 6.39 4.72 7.758s1.092 2.477 2.44 2.477z'/%3E%3Cpath fill='%23fff' d='M4.377 15.948a.657.657 0 0 0-.659.659v1.84a.657.657 0 0 0 .659.659h5.565a.657.657 0 0 0 .659-.659v-1.84a.657.657 0 0 0-.659-.659zm4.83 1.16H5.114v.838h4.093z'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999} \ No newline at end of file diff --git a/public/js/maplibre/maplibre-gl.js b/public/js/maplibre/maplibre-gl.js new file mode 100644 index 0000000..1ff44af --- /dev/null +++ b/public/js/maplibre/maplibre-gl.js @@ -0,0 +1,48 @@ +/* MapLibre GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v3.6.2/LICENSE.txt */ +(function (global, factory) { +typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : +typeof define === 'function' && define.amd ? define(factory) : +(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.maplibregl = factory()); +})(this, (function () { 'use strict'; + +/* eslint-disable */ + +var shared, worker, maplibregl; +// define gets called three times: one for each chunk. we rely on the order +// they're imported to know which is which +function define(_, chunk) { + if (!shared) { + shared = chunk; + } else if (!worker) { + worker = chunk; + } else { + var workerBundleString = 'var sharedChunk = {}; (' + shared + ')(sharedChunk); (' + worker + ')(sharedChunk);' + + var sharedChunk = {}; + shared(sharedChunk); + maplibregl = chunk(sharedChunk); + if (typeof window !== 'undefined') { + maplibregl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' })); + } + } +} + + +define(["exports"],(function(t){"use strict";function e(t,e,r,n){return new(r||(r=Promise))((function(i,a){function s(t){try{l(n.next(t));}catch(t){a(t);}}function o(t){try{l(n.throw(t));}catch(t){a(t);}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e);}))).then(s,o);}l((n=n.apply(t,e||[])).next());}))}function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}"function"==typeof SuppressedError&&SuppressedError;var n=i;function i(t,e){this.x=t,this.y=e;}i.prototype={clone:function(){return new i(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},i.convert=function(t){return t instanceof i?t:Array.isArray(t)?new i(t[0],t[1]):t};var a=r(n),s=o;function o(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=e,this.p2x=r,this.p2y=n;}o.prototype={sampleCurveX:function(t){return ((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return ((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return (3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,e){if(void 0===e&&(e=1e-6),t<0)return 0;if(t>1)return 1;for(var r=t,n=0;n<8;n++){var i=this.sampleCurveX(r)-t;if(Math.abs(i)i?s=r:o=r,r=.5*(o-s)+s;return r},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}};var l=r(s);let u,c;function h(){return null==u&&(u="undefined"!=typeof OffscreenCanvas&&new OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof createImageBitmap),u}function p(){if(null==c&&(c=!1,h())){const t=5,e=new OffscreenCanvas(t,t).getContext("2d",{willReadFrequently:!0});if(e){for(let r=0;r(e.y-t.y)*(r.x-t.x)}function k(t){let e=0;for(let r,n,i=0,a=t.length,s=a-1;icancelAnimationFrame(e)}},getImageData(t,e=0){return this.getImageCanvasContext(t).getImageData(-e,-e,t.width+2*e,t.height+2*e)},getImageCanvasContext(t){const e=window.document.createElement("canvas"),r=e.getContext("2d",{willReadFrequently:!0});if(!r)throw new Error("failed to create canvas 2d context");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0,t.width,t.height),r},resolveURL:t=>(E||(E=document.createElement("a")),E.href=t,E.href),hardwareConcurrency:"undefined"!=typeof navigator&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return !!matchMedia&&(null==F&&(F=matchMedia("(prefers-reduced-motion: reduce)")),F.matches)}},$={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};class L extends Error{constructor(t,e,r,n){super(`AJAXError: ${e} (${t}): ${r}`),this.status=t,this.statusText=e,this.url=r,this.body=n;}}const D=I()?()=>self.worker&&self.worker.referrer:()=>("blob:"===window.location.protocol?window.parent:window).location.href,O=t=>$.REGISTERED_PROTOCOLS[t.substring(0,t.indexOf("://"))];function U(t,e){const r=new AbortController,n=new Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,cache:t.cache,referrer:D(),signal:r.signal});let i=!1,a=!1;"json"===t.type&&n.headers.set("Accept","application/json");return a||fetch(n).then((r=>r.ok?(r=>{("arrayBuffer"===t.type||"image"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((t=>{a||(i=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")));})).catch((t=>{a||e(new Error(t.message));}));})(r):r.blob().then((n=>e(new L(r.status,r.statusText,t.url,n)))))).catch((t=>{20!==t.code&&e(new Error(t.message));})),{cancel:()=>{a=!0,i||r.abort();}}}const R=function(t,e){if(/:\/\//.test(t.url)&&!/^https?:|^file:/.test(t.url)){if(I()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,e);if(!I())return (O(t.url)||U)(t,e)}if(!(/^file:/.test(r=t.url)||/^file:/.test(D())&&!/^\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return U(t,e);if(I()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,e,void 0,!0)}var r;return function(t,e){const r=new XMLHttpRequest;r.open(t.method||"GET",t.url,!0),"arrayBuffer"!==t.type&&"image"!==t.type||(r.responseType="arraybuffer");for(const e in t.headers)r.setRequestHeader(e,t.headers[e]);return "json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=()=>{e(new Error(r.statusText));},r.onload=()=>{if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){let n=r.response;if("json"===t.type)try{n=JSON.parse(r.response);}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"));}else {const n=new Blob([r.response],{type:r.getResponseHeader("Content-Type")});e(new L(r.status,r.statusText,t.url,n));}},r.send(t.body),{cancel:()=>r.abort()}}(t,e)},q=function(t,e){return R(g(t,{type:"arrayBuffer"}),e)};function j(t){if(!t||t.indexOf("://")<=0||0===t.indexOf("data:image/")||0===t.indexOf("blob:"))return !0;const e=new URL(t),r=window.location;return e.protocol===r.protocol&&e.host===r.host}function N(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function Z(t,e,r){if(r&&r[t]){const n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}class K{constructor(t,e={}){g(this,e),this.type=t;}}class G extends K{constructor(t,e={}){super("error",g({error:t},e));}}class J{on(t,e){return this._listeners=this._listeners||{},N(t,e,this._listeners),this}off(t,e){return Z(t,e,this._listeners),Z(t,e,this._oneTimeListeners),this}once(t,e){return e?(this._oneTimeListeners=this._oneTimeListeners||{},N(t,e,this._oneTimeListeners),this):new Promise((e=>this.once(t,e)))}fire(t,e){"string"==typeof t&&(t=new K(t,e||{}));const r=t.type;if(this.listens(r)){t.target=this;const e=this._listeners&&this._listeners[r]?this._listeners[r].slice():[];for(const r of e)r.call(this,t);const n=this._oneTimeListeners&&this._oneTimeListeners[r]?this._oneTimeListeners[r].slice():[];for(const e of n)Z(r,e,this._oneTimeListeners),e.call(this,t);const i=this._eventedParent;i&&(g(t,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),i.fire(t));}else t instanceof G&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,e){return this._eventedParent=t,this._eventedParentData=e,this}}var X={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};const Y=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function H(t,e){const r={};for(const e in t)"ref"!==e&&(r[e]=t[e]);return Y.forEach((t=>{t in e&&(r[t]=e[t]);})),r}function W(t,e){if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return !1;for(let r=0;r`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}const kt=[ht,pt,ft,dt,yt,vt,mt,At(gt),bt,wt,_t];function It(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!It(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else {if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of kt)if(!It(t,e))return null}return `Expected ${St(t)} but found ${St(e)} instead.`}function zt(t,e){return e.some((e=>e.kind===t.kind))}function Mt(t,e){return e.some((e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t))}function Ct(t,e){return "array"===t.kind&&"array"===e.kind?t.itemType.kind===e.itemType.kind&&"number"==typeof t.N:t.kind===e.kind}const Bt=.96422,Pt=.82521,Vt=4/29,Et=6/29,Ft=3*Et*Et,Tt=Et*Et*Et,$t=Math.PI/180,Lt=180/Math.PI;function Dt(t){return (t%=360)<0&&(t+=360),t}function Ot([t,e,r,n]){let i,a;const s=Rt((.2225045*(t=Ut(t))+.7168786*(e=Ut(e))+.0606169*(r=Ut(r)))/1);t===e&&e===r?i=a=s:(i=Rt((.4360747*t+.3850649*e+.1430804*r)/Bt),a=Rt((.0139322*t+.0971045*e+.7141733*r)/Pt));const o=116*s-16;return [o<0?0:o,500*(i-s),200*(s-a),n]}function Ut(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Rt(t){return t>Tt?Math.pow(t,1/3):t/Ft+Vt}function qt([t,e,r,n]){let i=(t+16)/116,a=isNaN(e)?i:i+e/500,s=isNaN(r)?i:i-r/200;return i=1*Nt(i),a=Bt*Nt(a),s=Pt*Nt(s),[jt(3.1338561*a-1.6168667*i-.4906146*s),jt(-.9787684*a+1.9161415*i+.033454*s),jt(.0719453*a-.2289914*i+1.4052427*s),n]}function jt(t){return (t=t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055)<0?0:t>1?1:t}function Nt(t){return t>Et?t*t*t:Ft*(t-Vt)}function Zt(t){return parseInt(t.padEnd(2,t),16)/255}function Kt(t,e){return Gt(e?t/100:t,0,1)}function Gt(t,e,r){return Math.min(Math.max(e,t),r)}function Jt(t){return !t.some(Number.isNaN)}const Xt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class Yt{constructor(t,e,r,n=1,i=!0){this.r=t,this.g=e,this.b=r,this.a=n,i||(this.r*=n,this.g*=n,this.b*=n,n||this.overwriteGetter("rgb",[t,e,r,n]));}static parse(t){if(t instanceof Yt)return t;if("string"!=typeof t)return;const e=function(t){if("transparent"===(t=t.toLowerCase().trim()))return [0,0,0,0];const e=Xt[t];if(e){const[t,r,n]=e;return [t/255,r/255,n/255,1]}if(t.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t)){const e=t.length<6?1:2;let r=1;return [Zt(t.slice(r,r+=e)),Zt(t.slice(r,r+=e)),Zt(t.slice(r,r+=e)),Zt(t.slice(r,r+e)||"ff")]}if(t.startsWith("rgb")){const e=t.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(e){const[t,r,n,i,a,s,o,l,u,c,h,p]=e,f=[i||" ",o||" ",c].join("");if(" "===f||" /"===f||",,"===f||",,,"===f){const t=[n,s,u].join(""),e="%%%"===t?100:""===t?255:0;if(e){const t=[Gt(+r/e,0,1),Gt(+a/e,0,1),Gt(+l/e,0,1),h?Kt(+h,p):1];if(Jt(t))return t}}return}}const r=t.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(r){const[t,e,n,i,a,s,o,l,u]=r,c=[n||" ",a||" ",o].join("");if(" "===c||" /"===c||",,"===c||",,,"===c){const t=[+e,Gt(+i,0,100),Gt(+s,0,100),l?Kt(+l,u):1];if(Jt(t))return function([t,e,r,n]){function i(n){const i=(n+t/30)%12,a=e*Math.min(r,1-r);return r-a*Math.max(-1,Math.min(i-3,9-i,1))}return t=Dt(t),e/=100,r/=100,[i(0),i(8),i(4),n]}(t)}}}(t);return e?new Yt(...e,!1):void 0}get rgb(){const{r:t,g:e,b:r,a:n}=this,i=n||1/0;return this.overwriteGetter("rgb",[t/i,e/i,r/i,n])}get hcl(){return this.overwriteGetter("hcl",function(t){const[e,r,n,i]=Ot(t),a=Math.sqrt(r*r+n*n);return [Math.round(1e4*a)?Dt(Math.atan2(n,r)*Lt):NaN,a,e,i]}(this.rgb))}get lab(){return this.overwriteGetter("lab",Ot(this.rgb))}overwriteGetter(t,e){return Object.defineProperty(this,t,{value:e}),e}toString(){const[t,e,r,n]=this.rgb;return `rgba(${[t,e,r].map((t=>Math.round(255*t))).join(",")},${n})`}}Yt.black=new Yt(0,0,0,1),Yt.white=new Yt(1,1,1,1),Yt.transparent=new Yt(0,0,0,0),Yt.red=new Yt(1,0,0,1);class Ht{constructor(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"});}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Wt{constructor(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;}}class Qt{constructor(t){this.sections=t;}static fromString(t){return new Qt([new Wt(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some((t=>0!==t.text.length||t.image&&0!==t.image.name.length))}static factory(t){return t instanceof Qt?t:Qt.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map((t=>t.text)).join("")}}class te{constructor(t){this.values=t.slice();}static parse(t){if(t instanceof te)return t;if("number"==typeof t)return new te([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const e of t)if("number"!=typeof e)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]];}return new te(t)}}toString(){return JSON.stringify(this.values)}}const ee=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class re{constructor(t){this.values=t.slice();}static parse(t){if(t instanceof re)return t;if(Array.isArray(t)&&!(t.length<1)&&t.length%2==0){for(let e=0;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:`Invalid rgba value [${[t,e,r,n].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function ae(t){if(null===t||"string"==typeof t||"boolean"==typeof t||"number"==typeof t||t instanceof Yt||t instanceof Ht||t instanceof Qt||t instanceof te||t instanceof re||t instanceof ne)return !0;if(Array.isArray(t)){for(const e of t)if(!ae(e))return !1;return !0}if("object"==typeof t){for(const e in t)if(!ae(t[e]))return !1;return !0}return !1}function se(t){if(null===t)return ht;if("string"==typeof t)return ft;if("boolean"==typeof t)return dt;if("number"==typeof t)return pt;if(t instanceof Yt)return yt;if(t instanceof Ht)return xt;if(t instanceof Qt)return vt;if(t instanceof te)return bt;if(t instanceof re)return _t;if(t instanceof ne)return wt;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=se(e);if(r){if(r===t)continue;r=gt;break}r=t;}return At(r||gt,e)}return mt}function oe(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof Yt||t instanceof Qt||t instanceof te||t instanceof re||t instanceof ne?t.toString():JSON.stringify(t)}class le{constructor(t,e){this.type=t,this.value=e;}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!ae(t[1]))return e.error("invalid value");const r=t[1];let n=se(r);const i=e.expectedType;return "array"!==n.kind||0!==n.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(n=i),new le(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return !0}}class ue{constructor(t){this.name="ExpressionEvaluationError",this.message=t;}toJSON(){return this.message}}const ce={string:ft,number:pt,boolean:dt,object:mt};class he{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");let r,n=1;const i=t[0];if("array"===i){let i,a;if(t.length>2){const r=t[1];if("string"!=typeof r||!(r in ce)||"object"===r)return e.error('The item type argument of "array" must be one of string, number, boolean',1);i=ce[r],n++;}else i=gt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);a=t[2],n++;}r=At(i,a);}else {if(!ce[i])throw new Error(`Types doesn't contain name = ${i}`);r=ce[i];}const a=[];for(;nt.outputDefined()))}}const pe={"to-boolean":dt,"to-color":yt,"to-number":pt,"to-string":ft};class fe{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[0];if(!pe[r])throw new Error(`Can't parse ${r} as it is not part of the known types`);if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");const n=pe[r],i=[];for(let r=1;r4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:ie(e[0],e[1],e[2],e[3]),!r))return new Yt(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ue(r||`Could not parse color from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"padding":{let e;for(const r of this.args){e=r.evaluate(t);const n=te.parse(e);if(n)return n}throw new ue(`Could not parse padding from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"variableAnchorOffsetCollection":{let e;for(const r of this.args){e=r.evaluate(t);const n=re.parse(e);if(n)return n}throw new ue(`Could not parse variableAnchorOffsetCollection from value '${"string"==typeof e?e:JSON.stringify(e)}'`)}case"number":{let e=null;for(const r of this.args){if(e=r.evaluate(t),null===e)return 0;const n=Number(e);if(!isNaN(n))return n}throw new ue(`Could not convert ${JSON.stringify(e)} to number.`)}case"formatted":return Qt.fromString(oe(this.args[0].evaluate(t)));case"resolvedImage":return ne.fromString(oe(this.args[0].evaluate(t)));default:return oe(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}}const de=["Unknown","Point","LineString","Polygon"];class ye{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null;}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?de[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=Yt.parse(t)),e}}class me{constructor(t,e,r=[],n,i=new ct,a=[]){this.registry=t,this.path=r,this.key=r.map((t=>`[${t}]`)).join(""),this.scope=i,this.errors=a,this.expectedType=n,this._isConstant=e;}parse(t,e,r,n,i={}){return e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)}_parse(t,e){function r(t,e,r){return "assert"===r?new he(e,[t]):"coerce"===r?new fe(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const n=t[0];if("string"!=typeof n)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[n];if(i){let n=i.parse(t,this);if(!n)return null;if(this.expectedType){const t=this.expectedType,i=n.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind)if("padding"!==t.kind||"value"!==i.kind&&"number"!==i.kind&&"array"!==i.kind)if("variableAnchorOffsetCollection"!==t.kind||"value"!==i.kind&&"array"!==i.kind){if(this.checkSubtype(t,i))return null}else n=r(n,t,e.typeAnnotation||"coerce");else n=r(n,t,e.typeAnnotation||"coerce");else n=r(n,t,e.typeAnnotation||"coerce");else n=r(n,t,e.typeAnnotation||"assert");}if(!(n instanceof le)&&"resolvedImage"!==n.type.kind&&this._isConstant(n)){const t=new ye;try{n=new le(n.type,n.evaluate(t));}catch(t){return this.error(t.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,e,r){const n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new me(this.registry,this._isConstant,n,e||null,i,this.errors)}error(t,...e){const r=`${this.key}${e.map((t=>`[${t}]`)).join("")}`;this.errors.push(new ut(r,t));}checkSubtype(t,e){const r=It(t,e);return r&&this.error(r),r}}class ge{constructor(t,e,r){this.type=xt,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e;}static parse(t,e){if(2!==t.length)return e.error("Expected one argument.");const r=t[1];if("object"!=typeof r||Array.isArray(r))return e.error("Collator options argument must be an object.");const n=e.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,dt);if(!n)return null;const i=e.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,dt);if(!i)return null;let a=null;return r.locale&&(a=e.parse(r.locale,1,ft),!a)?null:new ge(n,i,a)}evaluate(t){return new Ht(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale);}outputDefined(){return !1}}const xe=8192;function ve(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1]);}function be(t,e){return !(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function we(t,e){const r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return [Math.round(r*i*xe),Math.round(n*i*xe)]}function _e(t,e,r){const n=t[0]-e[0],i=t[1]-e[1],a=t[0]-r[0],s=t[1]-r[1];return n*s-a*i==0&&n*a<=0&&i*s<=0}function Ae(t,e){let r=!1;for(let s=0,o=e.length;s(n=t)[1]!=(a=o[e+1])[1]>n[1]&&n[0]<(a[0]-i[0])*(n[1]-i[1])/(a[1]-i[1])+i[0]&&(r=!r);}}var n,i,a;return r}function Se(t,e){for(let r=0;r0&&o<0||s<0&&o>0}function Ie(t,e,r){for(const u of r)for(let r=0;rr[2]){const e=.5*n;let i=t[0]-r[0]>e?-n:r[0]-t[0]>e?n:0;0===i&&(i=t[0]-r[2]>e?-n:r[2]-t[0]>e?n:0),t[0]+=i;}ve(e,t);}function Ve(t,e,r,n){const i=Math.pow(2,n.z)*xe,a=[n.x*xe,n.y*xe],s=[];for(const n of t)for(const t of n){const n=[t.x+a[0],t.y+a[1]];Pe(n,e,r,i),s.push(n);}return s}function Ee(t,e,r,n){const i=Math.pow(2,n.z)*xe,a=[n.x*xe,n.y*xe],s=[];for(const r of t){const t=[];for(const n of r){const r=[n.x+a[0],n.y+a[1]];ve(e,r),t.push(r);}s.push(t);}if(e[2]-e[0]<=i/2){(o=e)[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(const t of s)for(const n of t)Pe(n,e,r,i);}var o;return s}class Fe{constructor(t,e){this.type=dt,this.geojson=t,this.geometries=e;}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(ae(t[1])){const e=t[1];if("FeatureCollection"===e.type)for(let t=0;t!Array.isArray(e)||e.length===t.length-1));let o=null;for(const[n,a]of s){o=new me(e.registry,Le,e.path,null,e.scope);const s=[];let l=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(St).join(", ")})`:`(${St(e.type)}...)`;var e;})).join(" | "),n=[];for(let r=1;r{r=e?r&&Le(t):r&&t instanceof le;})),!!r&&De(t)&&Ue(t,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function De(t){if(t instanceof $e){if("get"===t.name&&1===t.args.length)return !1;if("feature-state"===t.name)return !1;if("has"===t.name&&1===t.args.length)return !1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return !1;if(/^filter-/.test(t.name))return !1}if(t instanceof Fe)return !1;let e=!0;return t.eachChild((t=>{e&&!De(t)&&(e=!1);})),e}function Oe(t){if(t instanceof $e&&"feature-state"===t.name)return !1;let e=!0;return t.eachChild((t=>{e&&!Oe(t)&&(e=!1);})),e}function Ue(t,e){if(t instanceof $e&&e.indexOf(t.name)>=0)return !1;let r=!0;return t.eachChild((t=>{r&&!Ue(t,e)&&(r=!1);})),r}function Re(t,e){const r=t.length-1;let n,i,a=0,s=r,o=0;for(;a<=s;)if(o=Math.floor((a+s)/2),n=t[o],i=t[o+1],n<=e){if(o===r||ee))throw new ue("Input is not a number.");s=o-1;}return 0}class qe{constructor(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[t,e]of r)this.labels.push(t),this.outputs.push(e);}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");const r=e.parse(t[1],1,pt);if(!r)return null;const n=[];let i=null;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);for(let r=1;r=a)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',o);const u=e.parse(s,l,i);if(!u)return null;i=i||u.type,n.push([a,u]);}return new qe(i,r,n)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Re(e,n)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function je(t,e,r){return t+r*(e-t)}function Ne(t,e,r){return t.map(((t,n)=>je(t,e[n],r)))}const Ze={number:je,color:function(t,e,r,n="rgb"){switch(n){case"rgb":{const[n,i,a,s]=Ne(t.rgb,e.rgb,r);return new Yt(n,i,a,s,!1)}case"hcl":{const[n,i,a,s]=t.hcl,[o,l,u,c]=e.hcl;let h,p;if(isNaN(n)||isNaN(o))isNaN(n)?isNaN(o)?h=NaN:(h=o,1!==a&&0!==a||(p=l)):(h=n,1!==u&&0!==u||(p=i));else {let t=o-n;o>n&&t>180?t-=360:o180&&(t+=360),h=n+r*t;}const[f,d,y,m]=function([t,e,r,n]){return t=isNaN(t)?0:t*$t,qt([r,Math.cos(t)*e,Math.sin(t)*e,n])}([h,null!=p?p:je(i,l,r),je(a,u,r),je(s,c,r)]);return new Yt(f,d,y,m,!1)}case"lab":{const[n,i,a,s]=qt(Ne(t.lab,e.lab,r));return new Yt(n,i,a,s,!1)}}},array:Ne,padding:function(t,e,r){return new te(Ne(t.values,e.values,r))},variableAnchorOffsetCollection:function(t,e,r){const n=t.values,i=e.values;if(n.length!==i.length)throw new ue(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${e.toString()}`);const a=[];for(let t=0;t"number"!=typeof t||t<0||t>1)))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:t};}}if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(i=e.parse(i,2,pt),!i)return null;const s=[];let o=null;"interpolate-hcl"===r||"interpolate-lab"===r?o=yt:e.expectedType&&"value"!==e.expectedType.kind&&(o=e.expectedType);for(let t=0;t=r)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const u=e.parse(n,l,o);if(!u)return null;o=o||u.type,s.push([r,u]);}return Ct(o,pt)||Ct(o,yt)||Ct(o,bt)||Ct(o,_t)||Ct(o,At(pt))?new Ke(o,r,n,i,s):e.error(`Type ${St(o)} is not interpolatable.`)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);const a=Re(e,n),s=Ke.interpolationFactor(this.interpolation,n,e[a],e[a+1]),o=r[a].evaluate(t),l=r[a+1].evaluate(t);switch(this.operator){case"interpolate":return Ze[this.type.kind](o,l,s);case"interpolate-hcl":return Ze.color(o,l,s,"hcl");case"interpolate-lab":return Ze.color(o,l,s,"lab")}}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Ge(t,e,r,n){const i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}class Je{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error("Expectected at least one argument.");let r=null;const n=e.expectedType;n&&"value"!==n.kind&&(r=n);const i=[];for(const n of t.slice(1)){const t=e.parse(n,1+i.length,r,void 0,{typeAnnotation:"omit"});if(!t)return null;r=r||t.type,i.push(t);}if(!r)throw new Error("No output type");const a=n&&i.some((t=>It(n,t.type)));return new Je(a?gt:r,i)}evaluate(t){let e,r=null,n=0;for(const i of this.args)if(n++,r=i.evaluate(t),r&&r instanceof ne&&!r.available&&(e||(e=r.name),r=null,n===this.args.length&&(r=e)),null!==r)break;return r}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}}class Xe{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e;}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result);}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let n=1;n=r.length)throw new ue(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e!==Math.floor(e))throw new ue(`Array index must be an integer, but found ${e} instead.`);return r[e]}eachChild(t){t(this.index),t(this.input);}outputDefined(){return !1}}class He{constructor(t,e){this.type=dt,this.needle=t,this.haystack=e;}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,gt),n=e.parse(t[2],2,gt);return r&&n?zt(r.type,[dt,ft,pt,ht,gt])?new He(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${St(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return !1;if(!Mt(e,["boolean","string","number","null"]))throw new ue(`Expected first argument to be of type boolean, string, number or null, but found ${St(se(e))} instead.`);if(!Mt(r,["string","array"]))throw new ue(`Expected second argument to be of type array or string, but found ${St(se(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack);}outputDefined(){return !0}}class We{constructor(t,e,r){this.type=pt,this.needle=t,this.haystack=e,this.fromIndex=r;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,gt),n=e.parse(t[2],2,gt);if(!r||!n)return null;if(!zt(r.type,[dt,ft,pt,ht,gt]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${St(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,pt);return i?new We(r,n,i):null}return new We(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Mt(e,["boolean","string","number","null"]))throw new ue(`Expected first argument to be of type boolean, string, number or null, but found ${St(se(e))} instead.`);if(!Mt(r,["string","array"]))throw new ue(`Expected second argument to be of type array or string, but found ${St(se(r))} instead.`);if(this.fromIndex){const n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);}outputDefined(){return !1}}class Qe{constructor(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a;}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error("Expected an even number of arguments.");let r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);const i={},a=[];for(let s=2;sNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,se(t)))return null}else r=se(t);if(void 0!==i[String(t)])return u.error("Branch labels must be unique.");i[String(t)]=a.length;}const c=e.parse(l,s,n);if(!c)return null;n=n||c.type,a.push(c);}const s=e.parse(t[1],1,gt);if(!s)return null;const o=e.parse(t[t.length-1],t.length-1,n);return o?"value"!==s.type.kind&&e.concat(1).checkSubtype(r,s.type)?null:new Qe(r,n,s,i,a,o):null}evaluate(t){const e=this.input.evaluate(t);return (se(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}}class tr{constructor(t,e,r){this.type=t,this.branches=e,this.otherwise=r;}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error("Expected an odd number of arguments.");let r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);const n=[];for(let i=1;ie.outputDefined()))&&this.otherwise.outputDefined()}}class er{constructor(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,gt),n=e.parse(t[2],2,pt);if(!r||!n)return null;if(!zt(r.type,[At(gt),ft,gt]))return e.error(`Expected first argument to be of type array or string, but found ${St(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,pt);return i?new er(r.type,r,n,i):null}return new er(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Mt(e,["string","array"]))throw new ue(`Expected first argument to be of type array or string, but found ${St(se(e))} instead.`);if(this.endIndex){const n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);}outputDefined(){return !1}}function rr(t,e){return "=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function nr(t,e,r,n){return 0===n.compare(e,r)}function ir(t,e,r){const n="=="!==t&&"!="!==t;return class i{constructor(t,e,r){this.type=dt,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind;}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const r=t[0];let a=e.parse(t[1],1,gt);if(!a)return null;if(!rr(r,a.type))return e.concat(1).error(`"${r}" comparisons are not supported for type '${St(a.type)}'.`);let s=e.parse(t[2],2,gt);if(!s)return null;if(!rr(r,s.type))return e.concat(2).error(`"${r}" comparisons are not supported for type '${St(s.type)}'.`);if(a.type.kind!==s.type.kind&&"value"!==a.type.kind&&"value"!==s.type.kind)return e.error(`Cannot compare types '${St(a.type)}' and '${St(s.type)}'.`);n&&("value"===a.type.kind&&"value"!==s.type.kind?a=new he(s.type,[a]):"value"!==a.type.kind&&"value"===s.type.kind&&(s=new he(a.type,[s])));let o=null;if(4===t.length){if("string"!==a.type.kind&&"string"!==s.type.kind&&"value"!==a.type.kind&&"value"!==s.type.kind)return e.error("Cannot use collator to compare non-string types.");if(o=e.parse(t[3],3,xt),!o)return null}return new i(a,s,o)}evaluate(i){const a=this.lhs.evaluate(i),s=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){const e=se(a),r=se(s);if(e.kind!==r.kind||"string"!==e.kind&&"number"!==e.kind)throw new ue(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const t=se(a),r=se(s);if("string"!==t.kind||"string"!==r.kind)return e(i,a,s)}return this.collator?r(i,a,s,this.collator.evaluate(i)):e(i,a,s)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator);}outputDefined(){return !0}}}const ar=ir("==",(function(t,e,r){return e===r}),nr),sr=ir("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !nr(0,e,r,n)})),or=ir("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),ur=ir("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),cr=ir(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class hr{constructor(t,e,r,n,i){this.type=ft,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i;}static parse(t,e){if(3!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,pt);if(!r)return null;const n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");let i=null;if(n.locale&&(i=e.parse(n.locale,1,ft),!i))return null;let a=null;if(n.currency&&(a=e.parse(n.currency,1,ft),!a))return null;let s=null;if(n["min-fraction-digits"]&&(s=e.parse(n["min-fraction-digits"],1,pt),!s))return null;let o=null;return n["max-fraction-digits"]&&(o=e.parse(n["max-fraction-digits"],1,pt),!o)?null:new hr(r,i,a,s,o)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits);}outputDefined(){return !1}}class pr{constructor(t){this.type=vt,this.sections=t;}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");const n=[];let i=!1;for(let r=1;r<=t.length-1;++r){const a=t[r];if(i&&"object"==typeof a&&!Array.isArray(a)){i=!1;let t=null;if(a["font-scale"]&&(t=e.parse(a["font-scale"],1,pt),!t))return null;let r=null;if(a["text-font"]&&(r=e.parse(a["text-font"],1,At(ft)),!r))return null;let s=null;if(a["text-color"]&&(s=e.parse(a["text-color"],1,yt),!s))return null;const o=n[n.length-1];o.scale=t,o.font=r,o.textColor=s;}else {const a=e.parse(t[r],1,gt);if(!a)return null;const s=a.type.kind;if("string"!==s&&"value"!==s&&"null"!==s&&"resolvedImage"!==s)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:a,scale:null,font:null,textColor:null});}}return new pr(n)}evaluate(t){return new Qt(this.sections.map((e=>{const r=e.content.evaluate(t);return se(r)===wt?new Wt("",r,null,null,null):new Wt(oe(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor);}outputDefined(){return !1}}class fr{constructor(t){this.type=wt,this.input=t;}static parse(t,e){if(2!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,ft);return r?new fr(r):e.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),r=ne.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r}eachChild(t){t(this.input);}outputDefined(){return !1}}class dr{constructor(t){this.type=pt,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error(`Expected argument of type string or array, but found ${St(r.type)} instead.`):new dr(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ue(`Expected value to be of type string or array, but found ${St(se(e))} instead.`)}eachChild(t){t(this.input);}outputDefined(){return !1}}const yr={"==":ar,"!=":sr,">":lr,"<":or,">=":cr,"<=":ur,array:he,at:Ye,boolean:he,case:tr,coalesce:Je,collator:ge,format:pr,image:fr,in:He,"index-of":We,interpolate:Ke,"interpolate-hcl":Ke,"interpolate-lab":Ke,length:dr,let:Xe,literal:le,match:Qe,number:he,"number-format":hr,object:he,slice:er,step:qe,string:he,"to-boolean":fe,"to-color":fe,"to-number":fe,"to-string":fe,var:Te,within:Fe};function mr(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const a=i?i.evaluate(t):1,s=ie(e,r,n,a);if(s)throw new ue(s);return new Yt(e/255,r/255,n/255,a,!1)}function gr(t,e){return t in e}function xr(t,e){const r=e[t];return void 0===r?null:r}function vr(t){return {type:t}}function br(t){return {result:"success",value:t}}function wr(t){return {result:"error",value:t}}function _r(t){return "data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Ar(t){return !!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Sr(t){return !!t.expression&&t.expression.interpolated}function kr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Ir(t){return "object"==typeof t&&null!==t&&!Array.isArray(t)}function zr(t){return t}function Mr(t,e){const r="color"===e.type,n=t.stops&&"object"==typeof t.stops[0][0],i=n||!(n||void 0!==t.property),a=t.type||(Sr(e)?"exponential":"interval");if(r||"padding"===e.type){const n=r?Yt.parse:te.parse;(t=lt({},t)).stops&&(t.stops=t.stops.map((t=>[t[0],n(t[1])]))),t.default=n(t.default?t.default:e.default);}if(t.colorSpace&&"rgb"!==(s=t.colorSpace)&&"hcl"!==s&&"lab"!==s)throw new Error(`Unknown color space: "${t.colorSpace}"`);var s;let o,l,u;if("exponential"===a)o=Vr;else if("interval"===a)o=Pr;else if("categorical"===a){o=Br,l=Object.create(null);for(const e of t.stops)l[e[0]]=e[1];u=typeof t.stops[0][0];}else {if("identity"!==a)throw new Error(`Unknown function type "${a}"`);o=Er;}if(n){const r={},n=[];for(let e=0;et[0])),evaluate:({zoom:r},n)=>Vr({stops:i,base:t.base},e,r).evaluate(r,n)}}if(i){const r="exponential"===a?{name:"exponential",base:void 0!==t.base?t.base:1}:null;return {kind:"camera",interpolationType:r,interpolationFactor:Ke.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:r})=>o(t,e,r,l,u)}}return {kind:"source",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?Cr(t.default,e.default):o(t,e,i,l,u)}}}function Cr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Br(t,e,r,n,i){return Cr(typeof r===i?n[r]:void 0,t.default,e.default)}function Pr(t,e,r){if("number"!==kr(r))return Cr(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];const i=Re(t.stops.map((t=>t[0])),r);return t.stops[i][1]}function Vr(t,e,r){const n=void 0!==t.base?t.base:1;if("number"!==kr(r))return Cr(t.default,e.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];const a=Re(t.stops.map((t=>t[0])),r),s=function(t,e,r,n){const i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),o=t.stops[a][1],l=t.stops[a+1][1],u=Ze[e.type]||zr;return "function"==typeof o.evaluate?{evaluate(...e){const r=o.evaluate.apply(void 0,e),n=l.evaluate.apply(void 0,e);if(void 0!==r&&void 0!==n)return u(r,n,s,t.colorSpace)}}:u(o,l,s,t.colorSpace)}function Er(t,e,r){switch(e.type){case"color":r=Yt.parse(r);break;case"formatted":r=Qt.fromString(r.toString());break;case"resolvedImage":r=ne.fromString(r.toString());break;case"padding":r=te.parse(r);break;default:kr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0);}return Cr(r,t.default,e.default)}$e.register(yr,{error:[{kind:"error"},[ft],(t,[e])=>{throw new ue(e.evaluate(t))}],typeof:[ft,[gt],(t,[e])=>St(se(e.evaluate(t)))],"to-rgba":[At(pt,4),[yt],(t,[e])=>{const[r,n,i,a]=e.evaluate(t).rgb;return [255*r,255*n,255*i,a]}],rgb:[yt,[pt,pt,pt],mr],rgba:[yt,[pt,pt,pt,pt],mr],has:{type:dt,overloads:[[[ft],(t,[e])=>gr(e.evaluate(t),t.properties())],[[ft,mt],(t,[e,r])=>gr(e.evaluate(t),r.evaluate(t))]]},get:{type:gt,overloads:[[[ft],(t,[e])=>xr(e.evaluate(t),t.properties())],[[ft,mt],(t,[e,r])=>xr(e.evaluate(t),r.evaluate(t))]]},"feature-state":[gt,[ft],(t,[e])=>xr(e.evaluate(t),t.featureState||{})],properties:[mt,[],t=>t.properties()],"geometry-type":[ft,[],t=>t.geometryType()],id:[gt,[],t=>t.id()],zoom:[pt,[],t=>t.globals.zoom],"heatmap-density":[pt,[],t=>t.globals.heatmapDensity||0],"line-progress":[pt,[],t=>t.globals.lineProgress||0],accumulated:[gt,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[pt,vr(pt),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],"*":[pt,vr(pt),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],"-":{type:pt,overloads:[[[pt,pt],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[pt],(t,[e])=>-e.evaluate(t)]]},"/":[pt,[pt,pt],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],"%":[pt,[pt,pt],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[pt,[],()=>Math.LN2],pi:[pt,[],()=>Math.PI],e:[pt,[],()=>Math.E],"^":[pt,[pt,pt],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[pt,[pt],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[pt,[pt],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[pt,[pt],(t,[e])=>Math.log(e.evaluate(t))],log2:[pt,[pt],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[pt,[pt],(t,[e])=>Math.sin(e.evaluate(t))],cos:[pt,[pt],(t,[e])=>Math.cos(e.evaluate(t))],tan:[pt,[pt],(t,[e])=>Math.tan(e.evaluate(t))],asin:[pt,[pt],(t,[e])=>Math.asin(e.evaluate(t))],acos:[pt,[pt],(t,[e])=>Math.acos(e.evaluate(t))],atan:[pt,[pt],(t,[e])=>Math.atan(e.evaluate(t))],min:[pt,vr(pt),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[pt,vr(pt),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[pt,[pt],(t,[e])=>Math.abs(e.evaluate(t))],round:[pt,[pt],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[pt,[pt],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[pt,[pt],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[dt,[ft,gt],(t,[e,r])=>t.properties()[e.value]===r.value],"filter-id-==":[dt,[gt],(t,[e])=>t.id()===e.value],"filter-type-==":[dt,[ft],(t,[e])=>t.geometryType()===e.value],"filter-<":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n{const r=t.id(),n=e.value;return typeof r==typeof n&&r":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],"filter-id->":[dt,[gt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],"filter-<=":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],"filter-id-<=":[dt,[gt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],"filter->=":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],"filter-id->=":[dt,[gt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],"filter-has":[dt,[gt],(t,[e])=>e.value in t.properties()],"filter-has-id":[dt,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[dt,[At(ft)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[dt,[At(gt)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[dt,[ft,At(gt)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[dt,[ft,At(gt)],(t,[e,r])=>function(t,e,r,n){for(;r<=n;){const i=r+n>>1;if(e[i]===t)return !0;e[i]>t?n=i-1:r=i+1;}return !1}(t.properties()[e.value],r.value,0,r.value.length-1)],all:{type:dt,overloads:[[[dt,dt],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[vr(dt),(t,e)=>{for(const r of e)if(!r.evaluate(t))return !1;return !0}]]},any:{type:dt,overloads:[[[dt,dt],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[vr(dt),(t,e)=>{for(const r of e)if(r.evaluate(t))return !0;return !1}]]},"!":[dt,[dt],(t,[e])=>!e.evaluate(t)],"is-supported-script":[dt,[ft],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return !r||r(e.evaluate(t))}],upcase:[ft,[ft],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[ft,[ft],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[ft,vr(gt),(t,e)=>e.map((e=>oe(e.evaluate(t)))).join("")],"resolved-locale":[ft,[xt],(t,[e])=>e.evaluate(t).resolvedLocale()]});class Fr{constructor(t,e){var r;this.expression=t,this._warningHistory={},this._evaluator=new ye,this._defaultValue=e?"color"===(r=e).type&&Ir(r.default)?new Yt(0,0,0,0):"color"===r.type?Yt.parse(r.default)||null:"padding"===r.type?te.parse(r.default)||null:"variableAnchorOffsetCollection"===r.type?re.parse(r.default)||null:void 0===r.default?null:r.default:null,this._enumValues=e&&"enum"===e.type?e.values:null;}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new ue(`Expected value to be one of ${Object.keys(this._enumValues).map((t=>JSON.stringify(t))).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}}}function Tr(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in yr}function $r(t,e){const r=new me(yr,Le,[],e?function(t){const e={color:yt,string:ft,number:pt,enum:ft,boolean:dt,formatted:vt,padding:bt,resolvedImage:wt,variableAnchorOffsetCollection:_t};return "array"===t.type?At(e[t.value]||gt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?br(new Fr(n,e)):wr(r.errors)}class Lr{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Oe(e.expression);}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)}evaluate(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)}}class Dr{constructor(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Oe(e.expression),this.interpolationType=n;}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)}evaluate(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)}interpolationFactor(t,e,r){return this.interpolationType?Ke.interpolationFactor(this.interpolationType,t,e,r):0}}function Or(t,e){const r=$r(t,e);if("error"===r.result)return r;const n=r.value.expression,i=De(n);if(!i&&!_r(e))return wr([new ut("","data expressions not supported")]);const a=Ue(n,["zoom"]);if(!a&&!Ar(e))return wr([new ut("","zoom expressions not supported")]);const s=Rr(n);return s||a?s instanceof ut?wr([s]):s instanceof Ke&&!Sr(e)?wr([new ut("",'"interpolate" expressions cannot be used with this property')]):br(s?new Dr(i?"camera":"composite",r.value,s.labels,s instanceof Ke?s.interpolation:void 0):new Lr(i?"constant":"source",r.value)):wr([new ut("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Ur{constructor(t,e){this._parameters=t,this._specification=e,lt(this,Mr(this._parameters,this._specification));}static deserialize(t){return new Ur(t._parameters,t._specification)}static serialize(t){return {_parameters:t._parameters,_specification:t._specification}}}function Rr(t){let e=null;if(t instanceof Xe)e=Rr(t.result);else if(t instanceof Je){for(const r of t.args)if(e=Rr(r),e)break}else (t instanceof qe||t instanceof Ke)&&t.input instanceof $e&&"zoom"===t.input.name&&(e=t);return e instanceof ut||t.eachChild((t=>{const r=Rr(t);r instanceof ut?e=r:!e&&r?e=new ut("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&r&&e!==r&&(e=new ut("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));})),e}function qr(t){if(!0===t||!1===t)return !0;if(!Array.isArray(t)||0===t.length)return !1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return !1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!qr(e)&&"boolean"!=typeof e)return !1;return !0;default:return !0}}const jr={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Nr(t){if(null==t)return {filter:()=>!0,needGeometry:!1};qr(t)||(t=Gr(t));const e=$r(t,jr);if("error"===e.result)throw new Error(e.value.map((t=>`${t.key}: ${t.message}`)).join(", "));return {filter:(t,r,n)=>e.value.evaluate(t,r,{},n),needGeometry:Kr(t)}}function Zr(t,e){return te?1:0}function Kr(t){if(!Array.isArray(t))return !1;if("within"===t[0])return !0;for(let e=1;e"===e||"<="===e||">="===e?Jr(t[1],t[2],e):"any"===e?(r=t.slice(1),["any"].concat(r.map(Gr))):"all"===e?["all"].concat(t.slice(1).map(Gr)):"none"===e?["all"].concat(t.slice(1).map(Gr).map(Hr)):"in"===e?Xr(t[1],t.slice(2)):"!in"===e?Hr(Xr(t[1],t.slice(2))):"has"===e?Yr(t[1]):"!has"===e?Hr(Yr(t[1])):"within"!==e||t;var r;}function Jr(t,e,r){switch(t){case"$type":return [`filter-type-${r}`,e];case"$id":return [`filter-id-${r}`,e];default:return [`filter-${r}`,t,e]}}function Xr(t,e){if(0===e.length)return !1;switch(t){case"$type":return ["filter-type-in",["literal",e]];case"$id":return ["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((t=>typeof t!=typeof e[0]))?["filter-in-large",t,["literal",e.sort(Zr)]]:["filter-in-small",t,["literal",e]]}}function Yr(t){switch(t){case"$type":return !0;case"$id":return ["filter-has-id"];default:return ["filter-has",t]}}function Hr(t){return ["!",t]}function Wr(t){const e=typeof t;if("number"===e||"boolean"===e||"string"===e||null==t)return JSON.stringify(t);if(Array.isArray(t)){let e="[";for(const r of t)e+=`${Wr(r)},`;return `${e}]`}const r=Object.keys(t).sort();let n="{";for(let e=0;en.maximum?[new ot(e,r,`${r} is greater than the maximum value ${n.maximum}`)]:[]}function on(t){const e=t.valueSpec,r=en(t.value.type);let n,i,a,s={};const o="categorical"!==r&&void 0===t.value.property,l=!o,u="array"===kr(t.value.stops)&&"array"===kr(t.value.stops[0])&&"object"===kr(t.value.stops[0][0]),c=nn({key:t.key,value:t.value,valueSpec:t.styleSpec.function,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===r)return [new ot(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const n=t.value;return e=e.concat(an({key:t.key,value:n,valueSpec:t.valueSpec,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===kr(n)&&0===n.length&&e.push(new ot(t.key,n,"array must have at least one stop")),e},default:function(t){return t.validateSpec({key:t.key,value:t.value,valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec})}}});return "identity"===r&&o&&c.push(new ot(t.key,t.value,'missing required property "property"')),"identity"===r||t.value.stops||c.push(new ot(t.key,t.value,'missing required property "stops"')),"exponential"===r&&t.valueSpec.expression&&!Sr(t.valueSpec)&&c.push(new ot(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!_r(t.valueSpec)?c.push(new ot(t.key,t.value,"property functions not supported")):o&&!Ar(t.valueSpec)&&c.push(new ot(t.key,t.value,"zoom functions not supported"))),"categorical"!==r&&!u||void 0!==t.value.property||c.push(new ot(t.key,t.value,'"property" property is required')),c;function h(t){let r=[];const n=t.value,o=t.key;if("array"!==kr(n))return [new ot(o,n,`array expected, ${kr(n)} found`)];if(2!==n.length)return [new ot(o,n,`array length 2 expected, length ${n.length} found`)];if(u){if("object"!==kr(n[0]))return [new ot(o,n,`object expected, ${kr(n[0])} found`)];if(void 0===n[0].zoom)return [new ot(o,n,"object stop key must have zoom")];if(void 0===n[0].value)return [new ot(o,n,"object stop key must have value")];if(a&&a>en(n[0].zoom))return [new ot(o,n[0].zoom,"stop zoom values must appear in ascending order")];en(n[0].zoom)!==a&&(a=en(n[0].zoom),i=void 0,s={}),r=r.concat(nn({key:`${o}[0]`,value:n[0],valueSpec:{zoom:{}},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:sn,value:p}}));}else r=r.concat(p({key:`${o}[0]`,value:n[0],valueSpec:{},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec},n));return Tr(rn(n[1]))?r.concat([new ot(`${o}[1]`,n[1],"expressions are not allowed in function stops.")]):r.concat(t.validateSpec({key:`${o}[1]`,value:n[1],valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec}))}function p(t,a){const o=kr(t.value),l=en(t.value),u=null!==t.value?t.value:a;if(n){if(o!==n)return [new ot(t.key,u,`${o} stop domain type must match previous stop domain type ${n}`)]}else n=o;if("number"!==o&&"string"!==o&&"boolean"!==o)return [new ot(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==o&&"categorical"!==r){let n=`number expected, ${o} found`;return _r(e)&&void 0===r&&(n+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ot(t.key,u,n)]}return "categorical"!==r||"number"!==o||isFinite(l)&&Math.floor(l)===l?"categorical"!==r&&"number"===o&&void 0!==i&&lnew ot(`${t.key}${e.key}`,t.value,e.message)));const r=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!r.outputDefined())return [new ot(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!Oe(r))return [new ot(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!Oe(r))return [new ot(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!Ue(r,["zoom","feature-state"]))return [new ot(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!De(r))return [new ot(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return []}function un(t){const e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(en(r))&&i.push(new ot(e,r,`expected one of [${n.values.join(", ")}], ${JSON.stringify(r)} found`)):-1===Object.keys(n.values).indexOf(en(r))&&i.push(new ot(e,r,`expected one of [${Object.keys(n.values).join(", ")}], ${JSON.stringify(r)} found`)),i}function cn(t){return qr(rn(t.value))?ln(lt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):hn(t)}function hn(t){const e=t.value,r=t.key;if("array"!==kr(e))return [new ot(r,e,`array expected, ${kr(e)} found`)];const n=t.styleSpec;let i,a=[];if(e.length<1)return [new ot(r,e,"filter array must have at least 1 element")];switch(a=a.concat(un({key:`${r}[0]`,value:e[0],valueSpec:n.filter_operator,style:t.style,styleSpec:t.styleSpec})),en(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&"$type"===en(e[1])&&a.push(new ot(r,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":3!==e.length&&a.push(new ot(r,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(i=kr(e[1]),"string"!==i&&a.push(new ot(`${r}[1]`,e[1],`string expected, ${i} found`)));for(let s=2;s{t in r&&e.push(new ot(n,r[t],`"${t}" is prohibited for ref layers`));})),i.layers.forEach((e=>{en(e.id)===o&&(t=e);})),t?t.ref?e.push(new ot(n,r.ref,"ref cannot reference another ref layer")):s=en(t.type):e.push(new ot(n,r.ref,`ref layer "${o}" not found`));}else if("background"!==s)if(r.source){const t=i.sources&&i.sources[r.source],a=t&&en(t.type);t?"vector"===a&&"raster"===s?e.push(new ot(n,r.source,`layer "${r.id}" requires a raster source`)):"raster-dem"!==a&&"hillshade"===s?e.push(new ot(n,r.source,`layer "${r.id}" requires a raster-dem source`)):"raster"===a&&"raster"!==s?e.push(new ot(n,r.source,`layer "${r.id}" requires a vector source`)):"vector"!==a||r["source-layer"]?"raster-dem"===a&&"hillshade"!==s?e.push(new ot(n,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==s||!r.paint||!r.paint["line-gradient"]||"geojson"===a&&t.lineMetrics||e.push(new ot(n,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new ot(n,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new ot(n,r.source,`source "${r.source}" not found`));}else e.push(new ot(n,r,'missing required property "source"'));return e=e.concat(nn({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":()=>[],type:()=>t.validateSpec({key:`${n}.type`,value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,object:r,objectKey:"type"}),filter:cn,layout:t=>nn({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>dn(lt({layerType:s},t))}}),paint:t=>nn({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{"*":t=>fn(lt({layerType:s},t))}})}})),e}function mn(t){const e=t.value,r=t.key,n=kr(e);return "string"!==n?[new ot(r,e,`string expected, ${n} found`)]:[]}const gn={promoteId:function({key:t,value:e}){if("string"===kr(e))return mn({key:t,value:e});{const r=[];for(const n in e)r.push(...mn({key:`${t}.${n}`,value:e[n]}));return r}}};function xn(t){const e=t.value,r=t.key,n=t.styleSpec,i=t.style,a=t.validateSpec;if(!e.type)return [new ot(r,e,'"type" is required')];const s=en(e.type);let o;switch(s){case"vector":case"raster":return o=nn({key:r,value:e,valueSpec:n[`source_${s.replace("-","_")}`],style:t.style,styleSpec:n,objectElementValidators:gn,validateSpec:a}),o;case"raster-dem":return o=function(t){var e;const r=null!==(e=t.sourceName)&&void 0!==e?e:"",n=t.value,i=t.styleSpec,a=i.source_raster_dem,s=t.style;let o=[];const l=kr(n);if(void 0===n)return o;if("object"!==l)return o.push(new ot("source_raster_dem",n,`object expected, ${l} found`)),o;const u="custom"===en(n.encoding),c=["redFactor","greenFactor","blueFactor","baseShift"],h=t.value.encoding?`"${t.value.encoding}"`:"Default";for(const e in n)!u&&c.includes(e)?o.push(new ot(e,n[e],`In "${r}": "${e}" is only valid when "encoding" is set to "custom". ${h} encoding found`)):a[e]?o=o.concat(t.validateSpec({key:e,value:n[e],valueSpec:a[e],validateSpec:t.validateSpec,style:s,styleSpec:i})):o.push(new ot(e,n[e],`unknown property "${e}"`));return o}({sourceName:r,value:e,style:t.style,styleSpec:n,validateSpec:a}),o;case"geojson":if(o=nn({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,validateSpec:a,objectElementValidators:gn}),e.cluster)for(const t in e.clusterProperties){const[n,i]=e.clusterProperties[t],s="string"==typeof n?[n,["accumulated"],["get",t]]:n;o.push(...ln({key:`${r}.${t}.map`,value:i,validateSpec:a,expressionContext:"cluster-map"})),o.push(...ln({key:`${r}.${t}.reduce`,value:s,validateSpec:a,expressionContext:"cluster-reduce"}));}return o;case"video":return nn({key:r,value:e,valueSpec:n.source_video,style:i,validateSpec:a,styleSpec:n});case"image":return nn({key:r,value:e,valueSpec:n.source_image,style:i,validateSpec:a,styleSpec:n});case"canvas":return [new ot(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return un({key:`${r}.type`,value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,validateSpec:a,styleSpec:n})}}function vn(t){const e=t.value,r=t.styleSpec,n=r.light,i=t.style;let a=[];const s=kr(e);if(void 0===e)return a;if("object"!==s)return a=a.concat([new ot("light",e,`object expected, ${s} found`)]),a;for(const s in e){const o=s.match(/^(.*)-transition$/);a=a.concat(o&&n[o[1]]&&n[o[1]].transition?t.validateSpec({key:s,value:e[s],valueSpec:r.transition,validateSpec:t.validateSpec,style:i,styleSpec:r}):n[s]?t.validateSpec({key:s,value:e[s],valueSpec:n[s],validateSpec:t.validateSpec,style:i,styleSpec:r}):[new ot(s,e[s],`unknown property "${s}"`)]);}return a}function bn(t){const e=t.value,r=t.styleSpec,n=r.terrain,i=t.style;let a=[];const s=kr(e);if(void 0===e)return a;if("object"!==s)return a=a.concat([new ot("terrain",e,`object expected, ${s} found`)]),a;for(const s in e)a=a.concat(n[s]?t.validateSpec({key:s,value:e[s],valueSpec:n[s],validateSpec:t.validateSpec,style:i,styleSpec:r}):[new ot(s,e[s],`unknown property "${s}"`)]);return a}function wn(t){let e=[];const r=t.value,n=t.key;if(Array.isArray(r)){const i=[],a=[];for(const s in r)r[s].id&&i.includes(r[s].id)&&e.push(new ot(n,r,`all the sprites' ids must be unique, but ${r[s].id} is duplicated`)),i.push(r[s].id),r[s].url&&a.includes(r[s].url)&&e.push(new ot(n,r,`all the sprites' URLs must be unique, but ${r[s].url} is duplicated`)),a.push(r[s].url),e=e.concat(nn({key:`${n}[${s}]`,value:r[s],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:t.validateSpec}));return e}return mn({key:n,value:r})}const _n={"*":()=>[],array:an,boolean:function(t){const e=t.value,r=t.key,n=kr(e);return "boolean"!==n?[new ot(r,e,`boolean expected, ${n} found`)]:[]},number:sn,color:function(t){const e=t.key,r=t.value,n=kr(r);return "string"!==n?[new ot(e,r,`color expected, ${n} found`)]:Yt.parse(String(r))?[]:[new ot(e,r,`color expected, "${r}" found`)]},constants:tn,enum:un,filter:cn,function:on,layer:yn,object:nn,source:xn,light:vn,terrain:bn,string:mn,formatted:function(t){return 0===mn(t).length?[]:ln(t)},resolvedImage:function(t){return 0===mn(t).length?[]:ln(t)},padding:function(t){const e=t.key,r=t.value;if("array"===kr(r)){if(r.length<1||r.length>4)return [new ot(e,r,`padding requires 1 to 4 values; ${r.length} values found`)];const n={type:"number"};let i=[];for(let a=0;a[]}})),t.constants&&(r=r.concat(tn({key:"constants",value:t.constants,style:t,styleSpec:e,validateSpec:An}))),zn(r)}function In(t){return function(e){return t({...e,validateSpec:An})}}function zn(t){return [].concat(t).sort(((t,e)=>t.line-e.line))}function Mn(t){return function(...e){return zn(t.apply(this,e))}}kn.source=Mn(In(xn)),kn.sprite=Mn(In(wn)),kn.glyphs=Mn(In(Sn)),kn.light=Mn(In(vn)),kn.terrain=Mn(In(bn)),kn.layer=Mn(In(yn)),kn.filter=Mn(In(cn)),kn.paintProperty=Mn(In(fn)),kn.layoutProperty=Mn(In(dn));const Cn=kn,Bn=Cn.light,Pn=Cn.paintProperty,Vn=Cn.layoutProperty;function En(t,e){let r=!1;if(e&&e.length)for(const n of e)t.fire(new G(new Error(n.message))),r=!0;return r}class Fn{constructor(t,e,r){const n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const i=new Int32Array(this.arrayBuffer);t=i[0],this.d=(e=i[1])+2*(r=i[2]);for(let t=0;t=u[l+0]&&n>=u[l+1])?(s[h]=!0,a.push(i[h])):s[h]=!1;}}}}_forEachCell(t,e,r,n,i,a,s,o){const l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),h=this._convertToCellCoord(n);for(let p=l;p<=c;p++)for(let l=u;l<=h;l++){const u=this.d*l+p;if((!o||o(this._convertFromCellCoord(p),this._convertFromCellCoord(l),this._convertFromCellCoord(p+1),this._convertFromCellCoord(l+1)))&&i.call(this,t,e,r,n,u,a,s,o))return}}_convertFromCellCoord(t){return (t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,e=3+this.cells.length+1+1;let r=0;for(let t=0;t=0)continue;const a=t[r];i[r]=Tn[n].shallow.indexOf(r)>=0?a:Dn(a,e);}t instanceof Error&&(i.message=t.message);}if(i.$name)throw new Error("$name property is reserved for worker serialization logic.");return "Object"!==n&&(i.$name=n),i}throw new Error("can't serialize object of type "+typeof t)}function On(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||t instanceof Blob||Ln(t)||M(t)||ArrayBuffer.isView(t)||t instanceof ImageData)return t;if(Array.isArray(t))return t.map(On);if("object"==typeof t){const e=t.$name||"Object";if(!Tn[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:r}=Tn[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(t);const n=Object.create(r.prototype);for(const r of Object.keys(t)){if("$name"===r)continue;const i=t[r];n[r]=Tn[e].shallow.indexOf(r)>=0?i:On(i);}return n}throw new Error("can't deserialize object of type "+typeof t)}class Un{constructor(){this.first=!0;}update(t,e){const r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoomt>=128&&t<=255,Arabic:t=>t>=1536&&t<=1791,"Arabic Supplement":t=>t>=1872&&t<=1919,"Arabic Extended-A":t=>t>=2208&&t<=2303,"Hangul Jamo":t=>t>=4352&&t<=4607,"Unified Canadian Aboriginal Syllabics":t=>t>=5120&&t<=5759,Khmer:t=>t>=6016&&t<=6143,"Unified Canadian Aboriginal Syllabics Extended":t=>t>=6320&&t<=6399,"General Punctuation":t=>t>=8192&&t<=8303,"Letterlike Symbols":t=>t>=8448&&t<=8527,"Number Forms":t=>t>=8528&&t<=8591,"Miscellaneous Technical":t=>t>=8960&&t<=9215,"Control Pictures":t=>t>=9216&&t<=9279,"Optical Character Recognition":t=>t>=9280&&t<=9311,"Enclosed Alphanumerics":t=>t>=9312&&t<=9471,"Geometric Shapes":t=>t>=9632&&t<=9727,"Miscellaneous Symbols":t=>t>=9728&&t<=9983,"Miscellaneous Symbols and Arrows":t=>t>=11008&&t<=11263,"CJK Radicals Supplement":t=>t>=11904&&t<=12031,"Kangxi Radicals":t=>t>=12032&&t<=12255,"Ideographic Description Characters":t=>t>=12272&&t<=12287,"CJK Symbols and Punctuation":t=>t>=12288&&t<=12351,Hiragana:t=>t>=12352&&t<=12447,Katakana:t=>t>=12448&&t<=12543,Bopomofo:t=>t>=12544&&t<=12591,"Hangul Compatibility Jamo":t=>t>=12592&&t<=12687,Kanbun:t=>t>=12688&&t<=12703,"Bopomofo Extended":t=>t>=12704&&t<=12735,"CJK Strokes":t=>t>=12736&&t<=12783,"Katakana Phonetic Extensions":t=>t>=12784&&t<=12799,"Enclosed CJK Letters and Months":t=>t>=12800&&t<=13055,"CJK Compatibility":t=>t>=13056&&t<=13311,"CJK Unified Ideographs Extension A":t=>t>=13312&&t<=19903,"Yijing Hexagram Symbols":t=>t>=19904&&t<=19967,"CJK Unified Ideographs":t=>t>=19968&&t<=40959,"Yi Syllables":t=>t>=40960&&t<=42127,"Yi Radicals":t=>t>=42128&&t<=42191,"Hangul Jamo Extended-A":t=>t>=43360&&t<=43391,"Hangul Syllables":t=>t>=44032&&t<=55215,"Hangul Jamo Extended-B":t=>t>=55216&&t<=55295,"Private Use Area":t=>t>=57344&&t<=63743,"CJK Compatibility Ideographs":t=>t>=63744&&t<=64255,"Arabic Presentation Forms-A":t=>t>=64336&&t<=65023,"Vertical Forms":t=>t>=65040&&t<=65055,"CJK Compatibility Forms":t=>t>=65072&&t<=65103,"Small Form Variants":t=>t>=65104&&t<=65135,"Arabic Presentation Forms-B":t=>t>=65136&&t<=65279,"Halfwidth and Fullwidth Forms":t=>t>=65280&&t<=65519};function qn(t){for(const e of t)if(Zn(e.charCodeAt(0)))return !0;return !1}function jn(t){for(const e of t)if(!Nn(e.charCodeAt(0)))return !1;return !0}function Nn(t){return !(Rn.Arabic(t)||Rn["Arabic Supplement"](t)||Rn["Arabic Extended-A"](t)||Rn["Arabic Presentation Forms-A"](t)||Rn["Arabic Presentation Forms-B"](t))}function Zn(t){return !(746!==t&&747!==t&&(t<4352||!(Rn["Bopomofo Extended"](t)||Rn.Bopomofo(t)||Rn["CJK Compatibility Forms"](t)&&!(t>=65097&&t<=65103)||Rn["CJK Compatibility Ideographs"](t)||Rn["CJK Compatibility"](t)||Rn["CJK Radicals Supplement"](t)||Rn["CJK Strokes"](t)||!(!Rn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Rn["CJK Unified Ideographs Extension A"](t)||Rn["CJK Unified Ideographs"](t)||Rn["Enclosed CJK Letters and Months"](t)||Rn["Hangul Compatibility Jamo"](t)||Rn["Hangul Jamo Extended-A"](t)||Rn["Hangul Jamo Extended-B"](t)||Rn["Hangul Jamo"](t)||Rn["Hangul Syllables"](t)||Rn.Hiragana(t)||Rn["Ideographic Description Characters"](t)||Rn.Kanbun(t)||Rn["Kangxi Radicals"](t)||Rn["Katakana Phonetic Extensions"](t)||Rn.Katakana(t)&&12540!==t||!(!Rn["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!Rn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||Rn["Unified Canadian Aboriginal Syllabics"](t)||Rn["Unified Canadian Aboriginal Syllabics Extended"](t)||Rn["Vertical Forms"](t)||Rn["Yijing Hexagram Symbols"](t)||Rn["Yi Syllables"](t)||Rn["Yi Radicals"](t))))}function Kn(t){return !(Zn(t)||function(t){return !!(Rn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||Rn["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||Rn["Letterlike Symbols"](t)||Rn["Number Forms"](t)||Rn["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||Rn["Control Pictures"](t)&&9251!==t||Rn["Optical Character Recognition"](t)||Rn["Enclosed Alphanumerics"](t)||Rn["Geometric Shapes"](t)||Rn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Rn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Rn["CJK Symbols and Punctuation"](t)||Rn.Katakana(t)||Rn["Private Use Area"](t)||Rn["CJK Compatibility Forms"](t)||Rn["Small Form Variants"](t)||Rn["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Gn(t){return t>=1424&&t<=2303||Rn["Arabic Presentation Forms-A"](t)||Rn["Arabic Presentation Forms-B"](t)}function Jn(t,e){return !(!e&&Gn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||Rn.Khmer(t))}function Xn(t){for(const e of t)if(Gn(e.charCodeAt(0)))return !0;return !1}const Yn="deferred",Hn="loading",Wn="loaded";let Qn=null,ti="unavailable",ei=null;const ri=function(t){t&&"string"==typeof t&&t.indexOf("NetworkError")>-1&&(ti="error"),Qn&&Qn(t);};function ni(){ii.fire(new K("pluginStateChange",{pluginStatus:ti,pluginURL:ei}));}const ii=new J,ai=function(){return ti},si=function(){if(ti!==Yn||!ei)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");ti=Hn,ni(),ei&&q({url:ei},(t=>{t?ri(t):(ti=Wn,ni());}));},oi={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>ti===Wn||null!=oi.applyArabicShaping,isLoading:()=>ti===Hn,setState(t){if(!I())throw new Error("Cannot set the state of the rtl-text-plugin when not in the web-worker context");ti=t.pluginStatus,ei=t.pluginURL;},isParsed(){if(!I())throw new Error("rtl-text-plugin is only parsed on the worker-threads");return null!=oi.applyArabicShaping&&null!=oi.processBidirectionalText&&null!=oi.processStyledBidirectionalText},getPluginURL(){if(!I())throw new Error("rtl-text-plugin url can only be queried from the worker threads");return ei}};class li{constructor(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Un,this.transition={});}isSupportedScript(t){return function(t,e){for(const r of t)if(!Jn(r.charCodeAt(0),e))return !1;return !0}(t,oi.isLoaded())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,e=t-Math.floor(t),r=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}}}class ui{constructor(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Ir(t))return new Ur(t,e);if(Tr(t)){const r=Or(t,e);if("error"===r.result)throw new Error(r.value.map((t=>`${t.key}: ${t.message}`)).join(", "));return r.value}{let r=t;return "color"===e.type&&"string"==typeof t?r=Yt.parse(t):"padding"!==e.type||"number"!=typeof t&&!Array.isArray(t)?"variableAnchorOffsetCollection"===e.type&&Array.isArray(t)&&(r=re.parse(t)):r=te.parse(t),{kind:"constant",evaluate:()=>r}}}(void 0===e?t.specification.default:e,t.specification);}isDataDriven(){return "source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)}}class ci{constructor(t){this.property=t,this.value=new ui(t,void 0);}transitioned(t,e){return new pi(this.property,this.value,e,g({},t.transition,this.transition),t.now)}untransitioned(){return new pi(this.property,this.value,null,{},0)}}class hi{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues);}getValue(t){return w(this._values[t].value.value)}setValue(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new ci(this._values[t].property)),this._values[t].value=new ui(this._values[t].property,null===e?void 0:w(e));}getTransition(t){return w(this._values[t].transition)}setTransition(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new ci(this._values[t].property)),this._values[t].transition=w(e)||void 0;}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);const n=this.getTransition(e);void 0!==n&&(t[`${e}-transition`]=n);}return t}transitioned(t,e){const r=new fi(this._properties);for(const n of Object.keys(this._values))r._values[n]=this._values[n].transitioned(t,e._values[n]);return r}untransitioned(){const t=new fi(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class pi{constructor(t,e,r,n,i){this.property=t,this.value=e,this.begin=i+n.delay||0,this.end=this.begin+n.duration||0,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r);}possiblyEvaluate(t,e,r){const n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),a=this.prior;if(a){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;const e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(s))}}return i}}class fi{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);}possiblyEvaluate(t,e,r){const n=new mi(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}hasTransition(){for(const t of Object.keys(this._values))if(this._values[t].prior)return !0;return !1}}class di{constructor(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues);}hasValue(t){return void 0!==this._values[t].value}getValue(t){return w(this._values[t].value)}setValue(t,e){this._values[t]=new ui(this._values[t].property,null===e?void 0:w(e));}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);}return t}possiblyEvaluate(t,e,r){const n=new mi(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}}class yi{constructor(t,e,r){this.property=t,this.value=e,this.parameters=r;}isConstant(){return "constant"===this.value.kind}constantOr(t){return "constant"===this.value.kind?this.value.value:t}evaluate(t,e,r,n){return this.property.evaluate(this.value,this.parameters,t,e,r,n)}}class mi{constructor(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues);}get(t){return this._values[t]}}class gi{constructor(t){this.specification=t;}possiblyEvaluate(t,e){if(t.isDataDriven())throw new Error("Value should not be data driven");return t.expression.evaluate(e)}interpolate(t,e,r){const n=Ze[this.specification.type];return n?n(t,e,r):t}}class xi{constructor(t,e){this.specification=t,this.overrides=e;}possiblyEvaluate(t,e,r,n){return new yi(this,"constant"===t.expression.kind||"camera"===t.expression.kind?{kind:"constant",value:t.expression.evaluate(e,null,{},r,n)}:t.expression,e)}interpolate(t,e,r){if("constant"!==t.value.kind||"constant"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new yi(this,{kind:"constant",value:void 0},t.parameters);const n=Ze[this.specification.type];if(n){const i=n(t.value.value,e.value.value,r);return new yi(this,{kind:"constant",value:i},t.parameters)}return t}evaluate(t,e,r,n,i,a){return "constant"===t.kind?t.value:t.evaluate(e,r,n,i,a)}}class vi extends xi{possiblyEvaluate(t,e,r,n){if(void 0===t.value)return new yi(this,{kind:"constant",value:void 0},e);if("constant"===t.expression.kind){const i=t.expression.evaluate(e,null,{},r,n),a="resolvedImage"===t.property.specification.type&&"string"!=typeof i?i.name:i,s=this._calculate(a,a,a,e);return new yi(this,{kind:"constant",value:s},e)}if("camera"===t.expression.kind){const r=this._calculate(t.expression.evaluate({zoom:e.zoom-1}),t.expression.evaluate({zoom:e.zoom}),t.expression.evaluate({zoom:e.zoom+1}),e);return new yi(this,{kind:"constant",value:r},e)}return new yi(this,t.expression,e)}evaluate(t,e,r,n,i,a){if("source"===t.kind){const s=t.evaluate(e,r,n,i,a);return this._calculate(s,s,s,e)}return "composite"===t.kind?this._calculate(t.evaluate({zoom:Math.floor(e.zoom)-1},r,n),t.evaluate({zoom:Math.floor(e.zoom)},r,n),t.evaluate({zoom:Math.floor(e.zoom)+1},r,n),e):t.value}_calculate(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}}interpolate(t){return t}}class bi{constructor(t){this.specification=t;}possiblyEvaluate(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){const i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new li(Math.floor(e.zoom-1),e)),t.expression.evaluate(new li(Math.floor(e.zoom),e)),t.expression.evaluate(new li(Math.floor(e.zoom+1),e)),e)}}_calculate(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}}interpolate(t){return t}}class wi{constructor(t){this.specification=t;}possiblyEvaluate(t,e,r,n){return !!t.expression.evaluate(e,null,{},r,n)}interpolate(){return !1}}class _i{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const e in t){const r=t[e];r.specification.overridable&&this.overridableProperties.push(e);const n=this.defaultPropertyValues[e]=new ui(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new ci(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({});}}}$n("DataDrivenProperty",xi),$n("DataConstantProperty",gi),$n("CrossFadedDataDrivenProperty",vi),$n("CrossFadedProperty",bi),$n("ColorRampProperty",wi);const Ai="-transition";class Si extends J{constructor(t,e){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1},"custom"!==t.type&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,"background"!==t.type&&(this.source=t.source,this.sourceLayer=t["source-layer"],this.filter=t.filter),e.layout&&(this._unevaluatedLayout=new di(e.layout)),e.paint)){this._transitionablePaint=new hi(e.paint);for(const e in t.paint)this.setPaintProperty(e,t.paint[e],{validate:!1});for(const e in t.layout)this.setLayoutProperty(e,t.layout[e],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new mi(e.paint);}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return "visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,e,r={}){null!=e&&this._validate(Vn,`layers.${this.id}.layout.${t}`,t,e,r)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e);}getPaintProperty(t){return t.endsWith(Ai)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e,r={}){if(null!=e&&this._validate(Pn,`layers.${this.id}.paint.${t}`,t,e,r))return !1;if(t.endsWith(Ai))return this._transitionablePaint.setTransition(t.slice(0,-11),e||void 0),!1;{const r=this._transitionablePaint._values[t],n="cross-faded-data-driven"===r.property.specification["property-type"],i=r.value.isDataDriven(),a=r.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);const s=this._transitionablePaint._values[t].value;return s.isDataDriven()||i||n||this._handleOverridablePaintPropertyUpdate(t,a,s)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,e,r){return !1}isHidden(t){return !!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint);}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e);}serialize(){const t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),b(t,((t,e)=>!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)))}_validate(t,e,r,n,i={}){return (!i||!1!==i.validate)&&En(this,t.call(Cn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:X,style:{glyphs:!0,sprite:!0}}))}is3D(){return !1}isTileClipped(){return !1}hasOffscreenPass(){return !1}resize(){}isStateDependent(){for(const t in this.paint._values){const e=this.paint.get(t);if(e instanceof yi&&_r(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return !0}return !1}}const ki={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class Ii{constructor(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}}class zi{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0);}static serialize(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(t){this.reserve(t),this.length=t;}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const e=this.uint8;this._refreshViews(),e&&this.uint8.set(e);}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function Mi(t,e=1){let r=0,n=0;return {members:t.map((t=>{const i=ki[t.type].BYTES_PER_ELEMENT,a=r=Ci(r,Math.max(e,i)),s=t.components||1;return n=Math.max(n,i),r+=i*s,{name:t.name,type:t.type,components:s,offset:a}})),size:Ci(r,Math.max(n,e)),alignment:e}}function Ci(t,e){return Math.ceil(t/e)*e}class Bi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t}}Bi.prototype.bytesPerElement=4,$n("StructArrayLayout2i4",Bi);class Pi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t}}Pi.prototype.bytesPerElement=6,$n("StructArrayLayout3i6",Pi);class Vi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t}}Vi.prototype.bytesPerElement=8,$n("StructArrayLayout4i8",Vi);class Ei extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=a,this.int16[o+5]=s,t}}Ei.prototype.bytesPerElement=12,$n("StructArrayLayout2i4i12",Ei);class Fi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=4*t,l=8*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=s,t}}Fi.prototype.bytesPerElement=8,$n("StructArrayLayout2i4ub8",Fi);class Ti extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t}}Ti.prototype.bytesPerElement=8,$n("StructArrayLayout2f8",Ti);class $i extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u){const c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,s,o,l,u)}emplace(t,e,r,n,i,a,s,o,l,u,c){const h=10*t;return this.uint16[h+0]=e,this.uint16[h+1]=r,this.uint16[h+2]=n,this.uint16[h+3]=i,this.uint16[h+4]=a,this.uint16[h+5]=s,this.uint16[h+6]=o,this.uint16[h+7]=l,this.uint16[h+8]=u,this.uint16[h+9]=c,t}}$i.prototype.bytesPerElement=20,$n("StructArrayLayout10ui20",$i);class Li extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h){const p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,a,s,o,l,u,c,h)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p){const f=12*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=s,this.uint16[f+6]=o,this.uint16[f+7]=l,this.int16[f+8]=u,this.int16[f+9]=c,this.int16[f+10]=h,this.int16[f+11]=p,t}}Li.prototype.bytesPerElement=24,$n("StructArrayLayout4i4ui4i24",Li);class Di extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}Di.prototype.bytesPerElement=12,$n("StructArrayLayout3f12",Di);class Oi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint32[1*t+0]=e,t}}Oi.prototype.bytesPerElement=4,$n("StructArrayLayout1ul4",Oi);class Ui extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l){const u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,s,o,l)}emplace(t,e,r,n,i,a,s,o,l,u){const c=10*t,h=5*t;return this.int16[c+0]=e,this.int16[c+1]=r,this.int16[c+2]=n,this.int16[c+3]=i,this.int16[c+4]=a,this.int16[c+5]=s,this.uint32[h+3]=o,this.uint16[c+8]=l,this.uint16[c+9]=u,t}}Ui.prototype.bytesPerElement=20,$n("StructArrayLayout6i1ul2ui20",Ui);class Ri extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=a,this.int16[o+5]=s,t}}Ri.prototype.bytesPerElement=12,$n("StructArrayLayout2i2i2i12",Ri);class qi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)}emplace(t,e,r,n,i,a){const s=4*t,o=8*t;return this.float32[s+0]=e,this.float32[s+1]=r,this.float32[s+2]=n,this.int16[o+6]=i,this.int16[o+7]=a,t}}qi.prototype.bytesPerElement=16,$n("StructArrayLayout2f1f2i16",qi);class ji extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=12*t,s=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[s+1]=n,this.float32[s+2]=i,t}}ji.prototype.bytesPerElement=12,$n("StructArrayLayout2ub2f12",ji);class Ni extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t}}Ni.prototype.bytesPerElement=6,$n("StructArrayLayout3ui6",Ni);class Zi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m){const g=this.length;return this.resize(g+1),this.emplace(g,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g){const x=24*t,v=12*t,b=48*t;return this.int16[x+0]=e,this.int16[x+1]=r,this.uint16[x+2]=n,this.uint16[x+3]=i,this.uint32[v+2]=a,this.uint32[v+3]=s,this.uint32[v+4]=o,this.uint16[x+10]=l,this.uint16[x+11]=u,this.uint16[x+12]=c,this.float32[v+7]=h,this.float32[v+8]=p,this.uint8[b+36]=f,this.uint8[b+37]=d,this.uint8[b+38]=y,this.uint32[v+10]=m,this.int16[x+22]=g,t}}Zi.prototype.bytesPerElement=48,$n("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Zi);class Ki extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,S,k,I,z){const M=this.length;return this.resize(M+1),this.emplace(M,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,S,k,I,z)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,S,k,I,z,M){const C=32*t,B=16*t;return this.int16[C+0]=e,this.int16[C+1]=r,this.int16[C+2]=n,this.int16[C+3]=i,this.int16[C+4]=a,this.int16[C+5]=s,this.int16[C+6]=o,this.int16[C+7]=l,this.uint16[C+8]=u,this.uint16[C+9]=c,this.uint16[C+10]=h,this.uint16[C+11]=p,this.uint16[C+12]=f,this.uint16[C+13]=d,this.uint16[C+14]=y,this.uint16[C+15]=m,this.uint16[C+16]=g,this.uint16[C+17]=x,this.uint16[C+18]=v,this.uint16[C+19]=b,this.uint16[C+20]=w,this.uint16[C+21]=_,this.uint16[C+22]=A,this.uint32[B+12]=S,this.float32[B+13]=k,this.float32[B+14]=I,this.uint16[C+30]=z,this.uint16[C+31]=M,t}}Ki.prototype.bytesPerElement=64,$n("StructArrayLayout8i15ui1ul2f2ui64",Ki);class Gi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.float32[1*t+0]=e,t}}Gi.prototype.bytesPerElement=4,$n("StructArrayLayout1f4",Gi);class Ji extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.uint16[6*t+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}Ji.prototype.bytesPerElement=12,$n("StructArrayLayout1ui2f12",Ji);class Xi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=4*t;return this.uint32[2*t+0]=e,this.uint16[i+2]=r,this.uint16[i+3]=n,t}}Xi.prototype.bytesPerElement=8,$n("StructArrayLayout1ul2ui8",Xi);class Yi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t}}Yi.prototype.bytesPerElement=4,$n("StructArrayLayout2ui4",Yi);class Hi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint16[1*t+0]=e,t}}Hi.prototype.bytesPerElement=2,$n("StructArrayLayout1ui2",Hi);class Wi extends zi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t}}Wi.prototype.bytesPerElement=16,$n("StructArrayLayout4f16",Wi);class Qi extends Ii{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new a(this.anchorPointX,this.anchorPointY)}}Qi.prototype.size=20;class ta extends Ui{get(t){return new Qi(this,t)}}$n("CollisionBoxArray",ta);class ea extends Ii{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(t){this._structArray.uint8[this._pos1+37]=t;}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t;}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t;}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}ea.prototype.size=48;class ra extends Zi{get(t){return new ea(this,t)}}$n("PlacedSymbolArray",ra);class na extends Ii{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(t){this._structArray.uint32[this._pos4+12]=t;}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}na.prototype.size=64;class ia extends Ki{get(t){return new na(this,t)}}$n("SymbolInstanceArray",ia);class aa extends Gi{getoffsetX(t){return this.float32[1*t+0]}}$n("GlyphOffsetArray",aa);class sa extends Pi{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}$n("SymbolLineVertexArray",sa);class oa extends Ii{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}oa.prototype.size=12;class la extends Ji{get(t){return new oa(this,t)}}$n("TextAnchorOffsetArray",la);class ua extends Ii{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]}}ua.prototype.size=8;class ca extends Xi{get(t){return new ua(this,t)}}$n("FeatureIndexArray",ca);class ha extends Bi{}class pa extends Bi{}class fa extends Bi{}class da extends Ei{}class ya extends Fi{}class ma extends Ti{}class ga extends $i{}class xa extends Li{}class va extends Di{}class ba extends Oi{}class wa extends Ri{}class _a extends ji{}class Aa extends Ni{}class Sa extends Yi{}const ka=Mi([{name:"a_pos",components:2,type:"Int16"}],4),{members:Ia}=ka;class za{constructor(t=[]){this.segments=t;}prepareSegment(t,e,r,n){let i=this.segments[this.segments.length-1];return t>za.MAX_VERTEX_ARRAY_LENGTH&&A(`Max vertices per segment is ${za.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!i||i.vertexLength+t>za.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i}get(){return this.segments}destroy(){for(const t of this.segments)for(const e in t.vaos)t.vaos[e].destroy();}static simpleSegment(t,e,r,n){return new za([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])}}function Ma(t,e){return 256*(t=y(Math.floor(t),0,255))+y(Math.floor(e),0,255)}za.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,$n("SegmentVector",za);const Ca=Mi([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var Ba={exports:{}},Pa={exports:{}};Pa.exports=function(t,e){var r,n,i,a,s,o,l,u;for(n=t.length-(r=3&t.length),i=e,s=3432918353,o=461845907,u=0;u>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295;}return i^=t.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 Va=Pa.exports,Ea={exports:{}};Ea.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16);}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0};var Fa=Va,Ta=Ea.exports;Ba.exports=Fa,Ba.exports.murmur3=Fa,Ba.exports.murmur2=Ta;var $a=r(Ba.exports);class La{constructor(){this.ids=[],this.positions=[],this.indexed=!1;}add(t,e,r,n){this.ids.push(Da(t)),this.positions.push(e,r,n);}getPositions(t){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const e=Da(t);let r=0,n=this.ids.length-1;for(;r>1;this.ids[t]>=e?n=t:r=t+1;}const i=[];for(;this.ids[r]===e;)i.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return i}static serialize(t,e){const r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Oa(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}}static deserialize(t){const e=new La;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e}}function Da(t){const e=+t;return !isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:$a(String(t))}function Oa(t,e,r,n){for(;r>1];let a=r-1,s=n+1;for(;;){do{a++;}while(t[a]i);if(a>=s)break;Ua(t,a,s),Ua(e,3*a,3*s),Ua(e,3*a+1,3*s+1),Ua(e,3*a+2,3*s+2);}s-r`u_${t}`)),this.type=r;}setUniform(t,e,r){t.set(r.constantOr(this.value));}getBinding(t,e,r){return "color"===this.type?new Na(t,e):new qa(t,e)}}class Ja{constructor(t,e){this.uniformNames=e.map((t=>`u_${t}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;}setConstantPatternPositions(t,e){this.pixelRatioFrom=e.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=e.tlbr,this.patternTo=t.tlbr;}setUniform(t,e,r,n){const i="u_pattern_to"===n?this.patternTo:"u_pattern_from"===n?this.patternFrom:"u_pixel_ratio_to"===n?this.pixelRatioTo:"u_pixel_ratio_from"===n?this.pixelRatioFrom:null;i&&t.set(i);}getBinding(t,e,r){return "u_pattern"===r.substr(0,9)?new ja(t,e):new qa(t,e)}}class Xa{constructor(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===r?2:1,offset:0}))),this.paintVertexArray=new n;}populatePaintArray(t,e,r,n,i){const a=this.paintVertexArray.length,s=this.expression.evaluate(new li(0),e,{},n,[],i);this.paintVertexArray.resize(t),this._setPaintValue(a,t,s);}updatePaintArray(t,e,r,n){const i=this.expression.evaluate({zoom:0},r,n);this._setPaintValue(t,e,i);}_setPaintValue(t,e,r){if("color"===this.type){const n=Ka(r);for(let r=t;r`u_${t}_t`)),this.type=r,this.useIntegerZoom=n,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:"Float32",components:"color"===r?4:2,offset:0}))),this.paintVertexArray=new a;}populatePaintArray(t,e,r,n,i){const a=this.expression.evaluate(new li(this.zoom),e,{},n,[],i),s=this.expression.evaluate(new li(this.zoom+1),e,{},n,[],i),o=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(o,t,a,s);}updatePaintArray(t,e,r,n){const i=this.expression.evaluate({zoom:this.zoom},r,n),a=this.expression.evaluate({zoom:this.zoom+1},r,n);this._setPaintValue(t,e,i,a);}_setPaintValue(t,e,r,n){if("color"===this.type){const i=Ka(r),a=Ka(n);for(let r=t;r`#define HAS_UNIFORM_${t}`)));}return t}getBinderAttributes(){const t=[];for(const e in this.binders){const r=this.binders[e];if(r instanceof Xa||r instanceof Ya)for(let e=0;e!0)){this.programConfigurations={};for(const n of t)this.programConfigurations[n.id]=new Wa(n,e,r);this.needsUpload=!1,this._featureMap=new La,this._bufferOffset=0;}populatePaintArrays(t,e,r,n,i,a){for(const r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e,n,i,a);void 0!==e.id&&this._featureMap.add(e.id,r,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0;}updatePaintArrays(t,e,r,n){for(const i of r)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(t,this._featureMap,e,i,n)||this.needsUpload;}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1;}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy();}}function ts(t,e){return {"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[t]||[t.replace(`${e}-`,"").replace(/-/g,"_")]}function es(t,e,r){const n={color:{source:Ti,composite:Wi},number:{source:Gi,composite:Ti}},i=function(t){return {"line-pattern":{source:ga,composite:ga},"fill-pattern":{source:ga,composite:ga},"fill-extrusion-pattern":{source:ga,composite:ga}}[t]}(t);return i&&i[r]||n[e][r]}$n("ConstantBinder",Ga),$n("CrossFadedConstantBinder",Ja),$n("SourceExpressionBinder",Xa),$n("CrossFadedCompositeBinder",Ha),$n("CompositeExpressionBinder",Ya),$n("ProgramConfiguration",Wa,{omit:["_buffers"]}),$n("ProgramConfigurationSet",Qa);const rs=8192,ns=Math.pow(2,14)-1,is=-ns-1;function as(t){const e=rs/t.extent,r=t.loadGeometry();for(let t=0;tr.x+1||ar.y+1)&&A("Geometry exceeds allowed extent, reduce your vector tile buffer size");}}return r}function ss(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?as(t):[]}}function os(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}class ls{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new pa,this.indexArray=new Aa,this.segments=new za,this.programConfigurations=new Qa(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){const n=this.layers[0],i=[];let a=null,s=!1;"circle"===n.type&&(a=n.layout.get("circle-sort-key"),s=!a.isConstant());for(const{feature:e,id:n,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=ss(e,t);if(!this.layers[0]._featureFilter.filter(new li(this.zoom),u,r))continue;const c=s?a.evaluate(u,{},r):void 0,h={id:n,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:as(e),patterns:{},sortKey:c};i.push(h);}s&&i.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of i){const{geometry:i,index:a,sourceLayerIndex:s}=n,o=t[a].feature;this.addFeature(n,i,a,r),e.featureIndex.insert(o,i,a,s,this.index);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ia),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(t,e,r,n){for(const r of e)for(const e of r){const r=e.x,n=e.y;if(r<0||r>=rs||n<0||n>=rs)continue;const i=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),a=i.vertexLength;os(this.layoutVertexArray,r,n,-1,-1),os(this.layoutVertexArray,r,n,1,-1),os(this.layoutVertexArray,r,n,1,1),os(this.layoutVertexArray,r,n,-1,1),this.indexArray.emplaceBack(a,a+1,a+2),this.indexArray.emplaceBack(a,a+3,a+2),i.vertexLength+=4,i.primitiveLength+=2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n);}}function us(t,e){for(let r=0;r1){if(fs(t,e))return !0;for(let n=0;n1?r:r.sub(e)._mult(i)._add(e))}function gs(t,e){let r,n,i,a=!1;for(let s=0;se.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);}return a}function xs(t,e){let r=!1;for(let n=0,i=t.length-1;ne.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(r=!r);}return r}function vs(t,e,r){const n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return !1;const a=S(t,e,r[0]);return a!==S(t,e,r[1])||a!==S(t,e,r[2])||a!==S(t,e,r[3])}function bs(t,e,r){const n=e.paint.get(t).value;return "constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function ws(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function _s(t,e,r,n,i){if(!e[0]&&!e[1])return t;const s=a.convert(e)._mult(i);"viewport"===r&&s._rotate(-n);const o=[];for(let e=0;eFs(t,e)))}(l,o),p=c?u*s:u;for(const t of n)for(const e of t){const t=c?e:Fs(e,o);let r=p;const n=Vs([],[e.x,e.y,0,1],o);if("viewport"===this.paint.get("circle-pitch-scale")&&"map"===this.paint.get("circle-pitch-alignment")?r*=n[3]/a.cameraToCenterDistance:"map"===this.paint.get("circle-pitch-scale")&&"viewport"===this.paint.get("circle-pitch-alignment")&&(r*=a.cameraToCenterDistance/n[3]),cs(h,t,r))return !0}return !1}}function Fs(t,e){const r=Vs([],[t.x,t.y,0,1],e);return new a(r[0]/r[3],r[1]/r[3])}class Ts extends ls{}let $s;$n("HeatmapBucket",Ts,{omit:["layers"]});var Ls={get paint(){return $s=$s||new _i({"heatmap-radius":new xi(X.paint_heatmap["heatmap-radius"]),"heatmap-weight":new xi(X.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new gi(X.paint_heatmap["heatmap-intensity"]),"heatmap-color":new wi(X.paint_heatmap["heatmap-color"]),"heatmap-opacity":new gi(X.paint_heatmap["heatmap-opacity"])})}};function Ds(t,{width:e,height:r},n,i){if(i){if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==e*r*n)throw new RangeError(`mismatched image size. expected: ${i.length} but got: ${e*r*n}`)}else i=new Uint8Array(e*r*n);return t.width=e,t.height=r,t.data=i,t}function Os(t,{width:e,height:r},n){if(e===t.width&&r===t.height)return;const i=Ds({},{width:e,height:r},n);Us(t,i,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,e),height:Math.min(t.height,r)},n),t.width=e,t.height=r,t.data=i.data;}function Us(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const s=t.data,o=e.data;if(s===o)throw new Error("srcData equals dstData, so image is already copied");for(let l=0;l{e[t.evaluationKey]=a;const s=t.expression.evaluate(e);i.data[r+n+0]=Math.floor(255*s.r/s.a),i.data[r+n+1]=Math.floor(255*s.g/s.a),i.data[r+n+2]=Math.floor(255*s.b/s.a),i.data[r+n+3]=Math.floor(255*s.a);};if(t.clips)for(let e=0,i=0;e80*r){n=a=t[0],i=s=t[1];for(var d=r;da&&(a=o),l>s&&(s=l);u=0!==(u=Math.max(a-n,s-i))?32767/u:0;}return to(p,f,r,n,i,u,0),f}function Ws(t,e,r,n,i){var a,s;if(i===Ao(t,e,r,n)>0)for(a=e;a=e;a-=n)s=bo(a,t[a],t[a+1],s);return s&&fo(s,s.next)&&(wo(s),s=s.next),s}function Qs(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!fo(n,n.next)&&0!==po(n.prev,n,n.next))n=n.next;else {if(wo(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function to(t,e,r,n,i,a,s){if(t){!s&&a&&function(t,e,r,n){var i=t;do{0===i.z&&(i.z=lo(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,s,o,l,u=1;do{for(r=t,t=null,a=null,s=0;r;){for(s++,n=r,o=0,e=0;e0||l>0&&n;)0!==o&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,o--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n;}a.nextZ=null,u*=2;}while(s>1)}(i);}(t,n,i,a);for(var o,l,u=t;t.prev!==t.next;)if(o=t.prev,l=t.next,a?ro(t,n,i,a):eo(t))e.push(o.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),wo(t),t=l.next,u=l.next;else if((t=l)===u){s?1===s?to(t=no(Qs(t),e,r),e,r,n,i,a,2):2===s&&io(t,e,r,n,i,a):to(Qs(t),e,r,n,i,a,1);break}}}function eo(t){var e=t.prev,r=t,n=t.next;if(po(e,r,n)>=0)return !1;for(var i=e.x,a=r.x,s=n.x,o=e.y,l=r.y,u=n.y,c=ia?i>s?i:s:a>s?a:s,f=o>l?o>u?o:u:l>u?l:u,d=n.next;d!==e;){if(d.x>=c&&d.x<=p&&d.y>=h&&d.y<=f&&co(i,o,a,l,s,u,d.x,d.y)&&po(d.prev,d,d.next)>=0)return !1;d=d.next;}return !0}function ro(t,e,r,n){var i=t.prev,a=t,s=t.next;if(po(i,a,s)>=0)return !1;for(var o=i.x,l=a.x,u=s.x,c=i.y,h=a.y,p=s.y,f=ol?o>u?o:u:l>u?l:u,m=c>h?c>p?c:p:h>p?h:p,g=lo(f,d,e,r,n),x=lo(y,m,e,r,n),v=t.prevZ,b=t.nextZ;v&&v.z>=g&&b&&b.z<=x;){if(v.x>=f&&v.x<=y&&v.y>=d&&v.y<=m&&v!==i&&v!==s&&co(o,c,l,h,u,p,v.x,v.y)&&po(v.prev,v,v.next)>=0)return !1;if(v=v.prevZ,b.x>=f&&b.x<=y&&b.y>=d&&b.y<=m&&b!==i&&b!==s&&co(o,c,l,h,u,p,b.x,b.y)&&po(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}for(;v&&v.z>=g;){if(v.x>=f&&v.x<=y&&v.y>=d&&v.y<=m&&v!==i&&v!==s&&co(o,c,l,h,u,p,v.x,v.y)&&po(v.prev,v,v.next)>=0)return !1;v=v.prevZ;}for(;b&&b.z<=x;){if(b.x>=f&&b.x<=y&&b.y>=d&&b.y<=m&&b!==i&&b!==s&&co(o,c,l,h,u,p,b.x,b.y)&&po(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}return !0}function no(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!fo(i,a)&&yo(i,n,n.next,a)&&xo(i,a)&&xo(a,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(a.i/r|0),wo(n),wo(n.next),n=t=a),n=n.next;}while(n!==t);return Qs(n)}function io(t,e,r,n,i,a){var s=t;do{for(var o=s.next.next;o!==s.prev;){if(s.i!==o.i&&ho(s,o)){var l=vo(s,o);return s=Qs(s,s.next),l=Qs(l,l.next),to(s,e,r,n,i,a,0),void to(l,e,r,n,i,a,0)}o=o.next;}s=s.next;}while(s!==t)}function ao(t,e){return t.x-e.x}function so(t,e){var r=function(t,e){var r,n=e,i=t.x,a=t.y,s=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var o=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(o<=i&&o>s&&(s=o,r=n.x=n.x&&n.x>=c&&i!==n.x&&co(ar.x||n.x===r.x&&oo(r,n)))&&(r=n,p=l)),n=n.next;}while(n!==u);return r}(t,e);if(!r)return e;var n=vo(r,t);return Qs(n,n.next),Qs(r,r.next)}function oo(t,e){return po(t.prev,t,e.prev)<0&&po(e.next,t,t.next)<0}function lo(t,e,r,n,i){return (t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function uo(t){var e=t,r=t;do{(e.x=(t-s)*(a-o)&&(t-s)*(n-o)>=(r-s)*(e-o)&&(r-s)*(a-o)>=(i-s)*(n-o)}function ho(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&yo(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(xo(t,e)&&xo(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;}while(r!==t);return n}(t,e)&&(po(t.prev,t,e.prev)||po(t,e.prev,e))||fo(t,e)&&po(t.prev,t,t.next)>0&&po(e.prev,e,e.next)>0)}function po(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function fo(t,e){return t.x===e.x&&t.y===e.y}function yo(t,e,r,n){var i=go(po(t,e,r)),a=go(po(t,e,n)),s=go(po(r,n,t)),o=go(po(r,n,e));return i!==a&&s!==o||!(0!==i||!mo(t,r,e))||!(0!==a||!mo(t,n,e))||!(0!==s||!mo(r,t,n))||!(0!==o||!mo(r,e,n))}function mo(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function go(t){return t>0?1:t<0?-1:0}function xo(t,e){return po(t.prev,t,t.next)<0?po(t,e,t.next)>=0&&po(t,t.prev,e)>=0:po(t,e,t.prev)<0||po(t,t.next,e)<0}function vo(t,e){var r=new _o(t.i,t.x,t.y),n=new _o(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function bo(t,e,r,n){var i=new _o(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function wo(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function _o(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1;}function Ao(t,e,r,n){for(var i=0,a=e,s=r-n;a0&&r.holes.push(n+=t[i-1].length);}return r};var So=r(Ys.exports);function ko(t,e,r,n,i){Io(t,e,r||0,n||t.length-1,i||Mo);}function Io(t,e,r,n,i){for(;n>r;){if(n-r>600){var a=n-r+1,s=e-r+1,o=Math.log(a),l=.5*Math.exp(2*o/3),u=.5*Math.sqrt(o*l*(a-l)/a)*(s-a/2<0?-1:1);Io(t,e,Math.max(r,Math.floor(e-s*l/a+u)),Math.min(n,Math.floor(e+(a-s)*l/a+u)),i);}var c=t[e],h=r,p=n;for(zo(t,r,e),i(t[n],c)>0&&zo(t,r,n);h0;)p--;}0===i(t[r],c)?zo(t,r,p):zo(t,++p,n),p<=e&&(r=p+1),e<=p&&(n=p-1);}}function zo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function Mo(t,e){return te?1:0}function Co(t,e){const r=t.length;if(r<=1)return [t];const n=[];let i,a;for(let e=0;e1)for(let t=0;tt.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new fa,this.indexArray=new Aa,this.indexArray2=new Sa,this.programConfigurations=new Qa(t.layers,t.zoom),this.segments=new za,this.segments2=new za,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.hasPattern=Po("fill",this.layers,e);const n=this.layers[0].layout.get("fill-sort-key"),i=!n.isConstant(),a=[];for(const{feature:s,id:o,index:l,sourceLayerIndex:u}of t){const t=this.layers[0]._featureFilter.needGeometry,c=ss(s,t);if(!this.layers[0]._featureFilter.filter(new li(this.zoom),c,r))continue;const h=i?n.evaluate(c,{},r,e.availableImages):void 0,p={id:o,properties:s.properties,type:s.type,sourceLayerIndex:u,index:l,geometry:t?c.geometry:as(s),patterns:{},sortKey:h};a.push(p);}i&&a.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of a){const{geometry:i,index:a,sourceLayerIndex:s}=n;if(this.hasPattern){const t=Vo("fill",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,a,r,{});e.featureIndex.insert(t[a].feature,i,a,s,this.index);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}addFeatures(t,e,r){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Xs),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(t,e,r,n,i){for(const t of Co(e,500)){let e=0;for(const r of t)e+=r.length;const r=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray),n=r.vertexLength,i=[],a=[];for(const e of t){if(0===e.length)continue;e!==t[0]&&a.push(i.length/2);const r=this.segments2.prepareSegment(e.length,this.layoutVertexArray,this.indexArray2),n=r.vertexLength;this.layoutVertexArray.emplaceBack(e[0].x,e[0].y),this.indexArray2.emplaceBack(n+e.length-1,n),i.push(e[0].x),i.push(e[0].y);for(let t=1;t>3;}if(i--,1===n||2===n)a+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&o.push(e),e=[]),e.push(new qo(a,s));else {if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone());}}return e&&o.push(e),o},No.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,s=1/0,o=-1/0,l=1/0,u=-1/0;t.pos>3;}if(n--,1===r||2===r)(i+=t.readSVarint())o&&(o=i),(a+=t.readSVarint())u&&(u=a);else if(7!==r)throw new Error("unknown command "+r)}return [s,l,o,u]},No.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),s=this.extent*t,o=this.extent*e,l=this.loadGeometry(),u=No.types[this.type];function c(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null;}return e}(r));}Xo.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new Go(this._pbf,e,this.extent,this._keys,this._values)};var Ho=Jo;function Wo(t,e,r){if(3===t){var n=new Ho(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n);}}Ro.VectorTile=function(t,e){this.layers=t.readFields(Wo,{},e);},Ro.VectorTileFeature=jo,Ro.VectorTileLayer=Jo;const Qo=Ro.VectorTileFeature.types,tl=Math.pow(2,13);function el(t,e,r,n,i,a,s,o){t.emplaceBack(e,r,2*Math.floor(n*tl)+s,i*tl*2,a*tl*2,Math.round(o));}class rl{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new da,this.centroidVertexArray=new ha,this.indexArray=new Aa,this.programConfigurations=new Qa(t.layers,t.zoom),this.segments=new za,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.features=[],this.hasPattern=Po("fill-extrusion",this.layers,e);for(const{feature:n,id:i,index:a,sourceLayerIndex:s}of t){const t=this.layers[0]._featureFilter.needGeometry,o=ss(n,t);if(!this.layers[0]._featureFilter.filter(new li(this.zoom),o,r))continue;const l={id:i,sourceLayerIndex:s,index:a,geometry:t?o.geometry:as(n),properties:n.properties,type:n.type,patterns:{}};this.hasPattern?this.features.push(Vo("fill-extrusion",this.layers,l,this.zoom,e)):this.addFeature(l,l.geometry,a,r,{}),e.featureIndex.insert(n,l.geometry,a,s,this.index,!0);}}addFeatures(t,e,r){for(const t of this.features){const{geometry:n}=t;this.addFeature(t,n,t.index,e,r);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.centroidVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Uo),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Oo.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy());}addFeature(t,e,r,n,i){const a={x:0,y:0,vertexCount:0};for(const r of Co(e,500)){let e=0;for(const t of r)e+=t.length;let n=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(const t of r){if(0===t.length)continue;if(il(t))continue;let e=0;for(let r=0;r=1){const s=t[r-1];if(!nl(i,s)){n.vertexLength+4>za.MAX_VERTEX_ARRAY_LENGTH&&(n=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const t=i.sub(s)._perp()._unit(),r=s.dist(i);e+r>32768&&(e=0),el(this.layoutVertexArray,i.x,i.y,t.x,t.y,0,0,e),el(this.layoutVertexArray,i.x,i.y,t.x,t.y,0,1,e),a.x+=2*i.x,a.y+=2*i.y,a.vertexCount+=2,e+=r,el(this.layoutVertexArray,s.x,s.y,t.x,t.y,0,0,e),el(this.layoutVertexArray,s.x,s.y,t.x,t.y,0,1,e),a.x+=2*s.x,a.y+=2*s.y,a.vertexCount+=2;const o=n.vertexLength;this.indexArray.emplaceBack(o,o+2,o+1),this.indexArray.emplaceBack(o+1,o+2,o+3),n.vertexLength+=4,n.primitiveLength+=2;}}}}if(n.vertexLength+e>za.MAX_VERTEX_ARRAY_LENGTH&&(n=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray)),"Polygon"!==Qo[t.type])continue;const i=[],s=[],o=n.vertexLength;for(const t of r)if(0!==t.length){t!==r[0]&&s.push(i.length/2);for(let e=0;ers)||t.y===e.y&&(t.y<0||t.y>rs)}function il(t){return t.every((t=>t.x<0))||t.every((t=>t.x>rs))||t.every((t=>t.y<0))||t.every((t=>t.y>rs))}let al;$n("FillExtrusionBucket",rl,{omit:["layers","features"]});var sl={get paint(){return al=al||new _i({"fill-extrusion-opacity":new gi(X["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new xi(X["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new gi(X["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new gi(X["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new vi(X["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new xi(X["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new xi(X["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new gi(X["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class ol extends Si{constructor(t){super(t,sl);}createBucket(t){return new rl(t)}queryRadius(){return ws(this.paint.get("fill-extrusion-translate"))}is3D(){return !0}queryIntersectsFeature(t,e,r,n,i,s,o,l){const u=_s(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),s.angle,o),c=this.paint.get("fill-extrusion-height").evaluate(e,r),h=this.paint.get("fill-extrusion-base").evaluate(e,r),p=function(t,e,r,n){const i=[];for(const r of t){const t=[r.x,r.y,0,1];Vs(t,t,e),i.push(new a(t[0]/t[3],t[1]/t[3]));}return i}(u,l),f=function(t,e,r,n){const i=[],s=[],o=n[8]*e,l=n[9]*e,u=n[10]*e,c=n[11]*e,h=n[8]*r,p=n[9]*r,f=n[10]*r,d=n[11]*r;for(const e of t){const t=[],r=[];for(const i of e){const e=i.x,s=i.y,y=n[0]*e+n[4]*s+n[12],m=n[1]*e+n[5]*s+n[13],g=n[2]*e+n[6]*s+n[14],x=n[3]*e+n[7]*s+n[15],v=g+u,b=x+c,w=y+h,_=m+p,A=g+f,S=x+d,k=new a((y+o)/b,(m+l)/b);k.z=v/b,t.push(k);const I=new a(w/S,_/S);I.z=A/S,r.push(I);}i.push(t),s.push(r);}return [i,s]}(n,h,c,l);return function(t,e,r){let n=1/0;hs(r,e)&&(n=ul(r,e[0]));for(let i=0;it.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((t=>{this.gradients[t.id]={};})),this.layoutVertexArray=new ya,this.layoutVertexArray2=new ma,this.indexArray=new Aa,this.programConfigurations=new Qa(t.layers,t.zoom),this.segments=new za,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.hasPattern=Po("line",this.layers,e);const n=this.layers[0].layout.get("line-sort-key"),i=!n.isConstant(),a=[];for(const{feature:e,id:s,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=ss(e,t);if(!this.layers[0]._featureFilter.filter(new li(this.zoom),u,r))continue;const c=i?n.evaluate(u,{},r):void 0,h={id:s,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:as(e),patterns:{},sortKey:c};a.push(h);}i&&a.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of a){const{geometry:i,index:a,sourceLayerIndex:s}=n;if(this.hasPattern){const t=Vo("line",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,a,r,{});e.featureIndex.insert(t[a].feature,i,a,s,this.index);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}addFeatures(t,e,r){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,fl)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,hl),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(t.properties,"mapbox_clip_end"))return {start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,e,r,n,i){const a=this.layers[0].layout,s=a.get("line-join").evaluate(t,{}),o=a.get("line-cap"),l=a.get("line-miter-limit"),u=a.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(const r of e)this.addLine(r,t,s,o,l,u);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n);}addLine(t,e,r,n,i,a){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let e=0;e=2&&t[o-1].equals(t[o-2]);)o--;let l=0;for(;l0;if(w&&e>l){const t=h.dist(p);if(t>2*u){const e=h.sub(h.sub(p)._mult(u/t)._round());this.updateDistance(p,e),this.addCurrentVertex(e,d,0,0,c),p=e;}}const A=p&&f;let S=A?r:s?"butt":n;if(A&&"round"===S&&(vi&&(S="bevel"),"bevel"===S&&(v>2&&(S="flipbevel"),v100)m=y.mult(-1);else {const t=v*d.add(y).mag()/d.sub(y).mag();m._perp()._mult(t*(_?-1:1));}this.addCurrentVertex(h,m,0,0,c),this.addCurrentVertex(h,m.mult(-1),0,0,c);}else if("bevel"===S||"fakeround"===S){const t=-Math.sqrt(v*v-1),e=_?t:0,r=_?0:t;if(p&&this.addCurrentVertex(h,d,e,r,c),"fakeround"===S){const t=Math.round(180*b/Math.PI/20);for(let e=1;e2*u){const e=h.add(f.sub(h)._mult(u/t)._round());this.updateDistance(h,e),this.addCurrentVertex(e,y,0,0,c),h=e;}}}}addCurrentVertex(t,e,r,n,i,a=!1){const s=e.y*n-e.x,o=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,a,!1,r,i),this.addHalfVertex(t,s,o,a,!0,-n,i),this.distance>ml/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,e,r,n,i,a));}addHalfVertex({x:t,y:e},r,n,i,a,s,o){const l=.5*(this.lineClips?this.scaledDistance*(ml-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(i?1:0),(e<<1)+(a?1:0),Math.round(63*r)+128,Math.round(63*n)+128,1+(0===s?0:s<0?-1:1)|(63&l)<<2,l>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const u=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,u),o.primitiveLength++),a?this.e2=u:this.e1=u;}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;}updateDistance(t,e){this.distance+=t.dist(e),this.updateScaledDistance();}}let xl,vl;$n("LineBucket",gl,{omit:["layers","patternFeatures"]});var bl={get paint(){return vl=vl||new _i({"line-opacity":new xi(X.paint_line["line-opacity"]),"line-color":new xi(X.paint_line["line-color"]),"line-translate":new gi(X.paint_line["line-translate"]),"line-translate-anchor":new gi(X.paint_line["line-translate-anchor"]),"line-width":new xi(X.paint_line["line-width"]),"line-gap-width":new xi(X.paint_line["line-gap-width"]),"line-offset":new xi(X.paint_line["line-offset"]),"line-blur":new xi(X.paint_line["line-blur"]),"line-dasharray":new bi(X.paint_line["line-dasharray"]),"line-pattern":new vi(X.paint_line["line-pattern"]),"line-gradient":new wi(X.paint_line["line-gradient"])})},get layout(){return xl=xl||new _i({"line-cap":new gi(X.layout_line["line-cap"]),"line-join":new xi(X.layout_line["line-join"]),"line-miter-limit":new gi(X.layout_line["line-miter-limit"]),"line-round-limit":new gi(X.layout_line["line-round-limit"]),"line-sort-key":new xi(X.layout_line["line-sort-key"])})}};class wl extends xi{possiblyEvaluate(t,e){return e=new li(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,zoomHistory:e.zoomHistory,transition:e.transition}),super.possiblyEvaluate(t,e)}evaluate(t,e,r,n){return e=g({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,r,n)}}let _l;class Al extends Si{constructor(t){super(t,bl),this.gradientVersion=0,_l||(_l=new wl(bl.paint.properties["line-width"].specification),_l.useIntegerZoom=!0);}_handleSpecialPaintPropertyUpdate(t){if("line-gradient"===t){const t=this.gradientExpression();this.stepInterpolant=!!function(t){return void 0!==t._styleExpression}(t)&&t._styleExpression.expression instanceof qe,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER;}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(t,e){super.recalculate(t,e),this.paint._values["line-floorwidth"]=_l.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,t);}createBucket(t){return new gl(t)}queryRadius(t){const e=t,r=Sl(bs("line-width",this,e),bs("line-gap-width",this,e)),n=bs("line-offset",this,e);return r/2+Math.abs(n)+ws(this.paint.get("line-translate"))}queryIntersectsFeature(t,e,r,n,i,s,o){const l=_s(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),s.angle,o),u=o/2*Sl(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),c=this.paint.get("line-offset").evaluate(e,r);return c&&(n=function(t,e){const r=[];for(let n=0;n=3)for(let e=0;e0?e+2*t:t}const kl=Mi([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Il=Mi([{name:"a_projected_pos",components:3,type:"Float32"}],4);Mi([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const zl=Mi([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]);Mi([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const Ml=Mi([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Cl=Mi([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Bl(t,e,r){return t.sections.forEach((t=>{t.text=function(t,e,r){const n=e.layout.get("text-transform").evaluate(r,{});return "uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),oi.applyArabicShaping&&(t=oi.applyArabicShaping(t)),t}(t.text,e,r);})),t}Mi([{name:"triangle",components:3,type:"Uint16"}]),Mi([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Mi([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",name:"collisionCircleDiameter"},{type:"Uint16",name:"textAnchorOffsetStartIndex"},{type:"Uint16",name:"textAnchorOffsetEndIndex"}]),Mi([{type:"Float32",name:"offsetX"}]),Mi([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),Mi([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const Pl={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var Vl=24,El=$l,Fl=function(t,e,r,n,i){var a,s,o=8*i-n-1,l=(1<>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,a=f&(1<<-c)-1,f>>=-c,c+=o;c>0;a=256*a+t[e+h],h+=p,c-=8);for(s=a&(1<<-c)-1,a>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=p,c-=8);if(0===a)a=1-u;else {if(a===l)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),a-=u;}return (f?-1:1)*s*Math.pow(2,a-n)},Tl=function(t,e,r,n,i,a){var s,o,l,u=8*a-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:a-1,d=n?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),(e+=s+h>=1?p/l:p*Math.pow(2,1-h))*l>=2&&(s++,l/=2),s+h>=c?(o=0,s=c):s+h>=1?(o=(e*l-1)*Math.pow(2,i),s+=h):(o=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+f]=255&o,f+=d,o/=256,i-=8);for(s=s<0;t[r+f]=255&s,f+=d,s/=256,u-=8);t[r+f-d]|=128*y;};function $l(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}$l.Varint=0,$l.Fixed64=1,$l.Bytes=2,$l.Fixed32=5;var Ll=4294967296,Dl=1/Ll,Ol="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Ul(t){return t.type===$l.Bytes?t.readVarint()+t.pos:t.pos+1}function Rl(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function ql(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i];}function jl(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function tu(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}$l.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=Wl(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=tu(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Wl(this.buf,this.pos)+Wl(this.buf,this.pos+4)*Ll;return this.pos+=8,t},readSFixed64:function(){var t=Wl(this.buf,this.pos)+tu(this.buf,this.pos+4)*Ll;return this.pos+=8,t},readFloat:function(){var t=Fl(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Fl(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return Rl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Rl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Rl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Rl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Rl(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Rl(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Ol?function(t,e,r){return Ol.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(s=t[i+2],128==(192&(a=t[i+1]))&&128==(192&s)&&((u=(15&l)<<12|(63&a)<<6|63&s)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(s=t[i+2],o=t[i+3],128==(192&(a=t[i+1]))&&128==(192&s)&&128==(192&o)&&((u=(15&l)<<18|(63&a)<<12|(63&s)<<6|63&o)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c;}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==$l.Bytes)return t.push(this.readVarint(e));var r=Ul(this);for(t=t||[];this.pos127;);else if(e===$l.Bytes)this.pos=this.readVarint()+this.pos;else if(e===$l.Fixed32)this.pos+=4;else {if(e!==$l.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8;}},writeTag:function(t,e){this.writeVarint(t<<3|e);},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7);}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))));}(n,e);}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))));},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t);},writeBoolean:function(t){this.writeVarint(Boolean(t));},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null;}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128);}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&ql(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),Tl(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),Tl(this.buf,t,this.pos,!0,52,8),this.pos+=8;},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&ql(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,e,r){this.writeTag(t,$l.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,jl,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Nl,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Gl,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Zl,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Kl,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Jl,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Xl,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Yl,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Hl,e);},writeBytesField:function(t,e){this.writeTag(t,$l.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,$l.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,$l.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,$l.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,$l.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,$l.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,$l.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,$l.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,$l.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,$l.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}};var eu=r(El);const ru=3;function nu(t,e,r){1===t&&r.readMessage(iu,e);}function iu(t,e,r){if(3===t){const{id:t,bitmap:n,width:i,height:a,left:s,top:o,advance:l}=r.readMessage(au,{});e.push({id:t,bitmap:new Rs({width:i+2*ru,height:a+2*ru},n),metrics:{width:i,height:a,left:s,top:o,advance:l}});}}function au(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint());}const su=ru;function ou(t){let e=0,r=0;for(const n of t)e+=n.w*n.h,r=Math.max(r,n.w);t.sort(((t,e)=>e.h-t.h));const n=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let i=0,a=0;for(const e of t)for(let t=n.length-1;t>=0;t--){const r=n[t];if(!(e.w>r.w||e.h>r.h)){if(e.x=r.x,e.y=r.y,a=Math.max(a,e.y+e.h),i=Math.max(i,e.x+e.w),e.w===r.w&&e.h===r.h){const e=n.pop();t=0&&r>=t&&mu[this.text.charCodeAt(r)];r--)e--;this.text=this.text.substring(t,e),this.sectionIndex=this.sectionIndex.slice(t,e);}substring(t,e){const r=new du;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,e)=>Math.max(t,this.sections[e].scale)),0)}addTextSection(t,e){this.text+=t.text,this.sections.push(fu.forText(t.scale,t.fontStack||e));const r=this.sections.length-1;for(let e=0;e=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function yu(e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m){const g=du.fromFeature(e,a);let x;p===t.ai.vertical&&g.verticalizePunctuation();const{processBidirectionalText:v,processStyledBidirectionalText:b}=oi;if(v&&1===g.sections.length){x=[];const t=v(g.toString(),Au(g,c,s,r,i,d,y));for(const e of t){const t=new du;t.text=e,t.sections=g.sections;for(let r=0;r0&&n>_&&(_=n);}else {const t=n[y.fontStack],e=t&&t[g];if(e&&e.rect)A=e.rect,b=e.metrics;else {const t=r[y.fontStack],e=t&&t[g];if(!e)continue;b=e.metrics;}x=(a-y.scale)*Vl;}I?(e.verticalizable=!0,w.push({glyph:g,imageName:S,x:f,y:d+x,vertical:I,scale:y.scale,fontStack:y.fontStack,sectionIndex:m,metrics:b,rect:A}),f+=k*y.scale+c):(w.push({glyph:g,imageName:S,x:f,y:d+x,vertical:I,scale:y.scale,fontStack:y.fontStack,sectionIndex:m,metrics:b,rect:A}),f+=b.advance*y.scale+c);}0!==w.length&&(y=Math.max(f-c,y),ku(w,0,w.length-1,g,_)),f=0;const A=s*a+_;b.lineOffset=Math.max(_,l),d+=A,m=Math.max(A,m),++x;}var v;const b=d-pu,{horizontalAlign:w,verticalAlign:_}=Su(o);((function(t,e,r,n,i,a,s,o,l){const u=(e-r)*i;let c=0;c=a!==s?-o*n-pu:(-n*l+.5)*s;for(const e of t)for(const t of e.positionedGlyphs)t.x+=u,t.y+=c;}))(e.positionedLines,g,w,_,y,m,s,b,a.length),e.top+=-_*b,e.bottom=e.top+b,e.left+=-w*y,e.right=e.left+y;}(_,r,n,i,x,o,l,u,p,c,f,m),!function(t){for(const e of t)if(0!==e.positionedGlyphs.length)return !1;return !0}(w)&&_}const mu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},gu={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 xu(t,e,r,n,i,a){if(e.imageName){const t=n[e.imageName];return t?t.displaySize[0]*e.scale*Vl/a+i:0}{const n=r[e.fontStack],a=n&&n[t];return a?a.metrics.advance*e.scale+i:0}}function vu(t,e,r,n){const i=Math.pow(t-e,2);return n?t=0;let c=0;for(let r=0;rt.id)),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Ms([]),this.placementViewportMatrix=Ms([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Pu(this.zoom,r["text-size"]),this.iconSizeData=Pu(this.zoom,r["icon-size"]);const n=this.layers[0].layout,i=n.get("symbol-sort-key"),a=n.get("symbol-z-order");this.canOverlap="never"!==Vu(n,"text-overlap","text-allow-overlap")||"never"!==Vu(n,"icon-overlap","icon-allow-overlap")||n.get("text-ignore-placement")||n.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==a&&!i.isConstant(),this.sortFeaturesByY=("viewport-y"===a||"auto"===a&&!this.sortFeaturesByKey)&&this.canOverlap,"point"===n.get("symbol-placement")&&(this.writingModes=n.get("text-writing-mode").map((e=>t.ai[e]))),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.sourceID=e.sourceID;}createArrays(){this.text=new Du(new Qa(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new Du(new Qa(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new aa,this.lineVertexArray=new sa,this.symbolInstances=new ia,this.textAnchorOffsets=new la;}calculateGlyphDependencies(t,e,r,n,i){for(let a=0;a0)&&("constant"!==s.value.kind||s.value.value.length>0),c="constant"!==l.value.kind||!!l.value.value||Object.keys(l.parameters).length>0,h=a.get("symbol-sort-key");if(this.features=[],!u&&!c)return;const p=r.iconDependencies,f=r.glyphDependencies,d=r.availableImages,y=new li(this.zoom);for(const{feature:r,id:o,index:l,sourceLayerIndex:m}of e){const e=i._featureFilter.needGeometry,g=ss(r,e);if(!i._featureFilter.filter(y,g,n))continue;let x,v;if(e||(g.geometry=as(r)),u){const t=i.getValueAndResolveTokens("text-field",g,n,d),e=Qt.factory(t);Lu(e)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===ai()||this.hasRTLText&&oi.isParsed())&&(x=Bl(e,i,g));}if(c){const t=i.getValueAndResolveTokens("icon-image",g,n,d);v=t instanceof ne?t:ne.fromString(t);}if(!x&&!v)continue;const b=this.sortFeaturesByKey?h.evaluate(g,{},n):void 0;if(this.features.push({id:o,text:x,icon:v,index:l,sourceLayerIndex:m,geometry:g.geometry,properties:r.properties,type:Eu[r.type],sortKey:b}),v&&(p[v.name]=!0),x){const e=s.evaluate(g,{},n).join(","),r="viewport"!==a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(t.ai.vertical)>=0;for(const t of x.sections)if(t.image)p[t.image.name]=!0;else {const n=qn(x.toString()),i=t.fontStack||e,a=f[i]=f[i]||{};this.calculateGlyphDependencies(t.text,a,r,this.allowVerticalPlacement,n);}}}"line"===a.get("symbol-placement")&&(this.features=function(t){const e={},r={},n=[];let i=0;function a(e){n.push(t[e]),i++;}function s(t,e,i){const a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function o(t,r,i){const a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function l(t,e,r){const n=r?e[0][e[0].length-1]:e[0][0];return `${t}:${n.x}:${n.y}`}for(let u=0;ut.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((t,e)=>t.sortKey-e.sortKey));}update(t,e,r){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,r),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,r));}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(t,e){const r=this.lineVertexArray.length;if(void 0!==t.segment){let r=t.dist(e[t.segment+1]),n=t.dist(e[t.segment]);const i={};for(let n=t.segment+1;n=0;r--)i[r]={x:e[r].x,y:e[r].y,tileUnitDistanceFromAnchor:n},r>0&&(n+=e[r-1].dist(e[r]));for(let t=0;t0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,e){const r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs;for(let e=r.vertexStartIndex;en[t]-n[e]||i[e]-i[t])),a}addToSortKeyRanges(t,e){const r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1});}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const t of this.symbolInstanceIndexes){const e=this.symbolInstances.get(t);this.featureSortOrder.push(e.featureIndex),[e.rightJustifiedTextSymbolIndex,e.centerJustifiedTextSymbolIndex,e.leftJustifiedTextSymbolIndex].forEach(((t,e,r)=>{t>=0&&r.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t);})),e.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,e.verticalPlacedTextSymbolIndex),e.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,e.placedIconSymbolIndex),e.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,e.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}}let Ru,qu;$n("SymbolBucket",Uu,{omit:["layers","collisionBoxArray","features","compareText"]}),Uu.MAX_GLYPHS=65535,Uu.addDynamicAttributes=$u;var ju={get paint(){return qu=qu||new _i({"icon-opacity":new xi(X.paint_symbol["icon-opacity"]),"icon-color":new xi(X.paint_symbol["icon-color"]),"icon-halo-color":new xi(X.paint_symbol["icon-halo-color"]),"icon-halo-width":new xi(X.paint_symbol["icon-halo-width"]),"icon-halo-blur":new xi(X.paint_symbol["icon-halo-blur"]),"icon-translate":new gi(X.paint_symbol["icon-translate"]),"icon-translate-anchor":new gi(X.paint_symbol["icon-translate-anchor"]),"text-opacity":new xi(X.paint_symbol["text-opacity"]),"text-color":new xi(X.paint_symbol["text-color"],{runtimeType:yt,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),"text-halo-color":new xi(X.paint_symbol["text-halo-color"]),"text-halo-width":new xi(X.paint_symbol["text-halo-width"]),"text-halo-blur":new xi(X.paint_symbol["text-halo-blur"]),"text-translate":new gi(X.paint_symbol["text-translate"]),"text-translate-anchor":new gi(X.paint_symbol["text-translate-anchor"])})},get layout(){return Ru=Ru||new _i({"symbol-placement":new gi(X.layout_symbol["symbol-placement"]),"symbol-spacing":new gi(X.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new gi(X.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new xi(X.layout_symbol["symbol-sort-key"]),"symbol-z-order":new gi(X.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new gi(X.layout_symbol["icon-allow-overlap"]),"icon-overlap":new gi(X.layout_symbol["icon-overlap"]),"icon-ignore-placement":new gi(X.layout_symbol["icon-ignore-placement"]),"icon-optional":new gi(X.layout_symbol["icon-optional"]),"icon-rotation-alignment":new gi(X.layout_symbol["icon-rotation-alignment"]),"icon-size":new xi(X.layout_symbol["icon-size"]),"icon-text-fit":new gi(X.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new gi(X.layout_symbol["icon-text-fit-padding"]),"icon-image":new xi(X.layout_symbol["icon-image"]),"icon-rotate":new xi(X.layout_symbol["icon-rotate"]),"icon-padding":new xi(X.layout_symbol["icon-padding"]),"icon-keep-upright":new gi(X.layout_symbol["icon-keep-upright"]),"icon-offset":new xi(X.layout_symbol["icon-offset"]),"icon-anchor":new xi(X.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new gi(X.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new gi(X.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new gi(X.layout_symbol["text-rotation-alignment"]),"text-field":new xi(X.layout_symbol["text-field"]),"text-font":new xi(X.layout_symbol["text-font"]),"text-size":new xi(X.layout_symbol["text-size"]),"text-max-width":new xi(X.layout_symbol["text-max-width"]),"text-line-height":new gi(X.layout_symbol["text-line-height"]),"text-letter-spacing":new xi(X.layout_symbol["text-letter-spacing"]),"text-justify":new xi(X.layout_symbol["text-justify"]),"text-radial-offset":new xi(X.layout_symbol["text-radial-offset"]),"text-variable-anchor":new gi(X.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new xi(X.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new xi(X.layout_symbol["text-anchor"]),"text-max-angle":new gi(X.layout_symbol["text-max-angle"]),"text-writing-mode":new gi(X.layout_symbol["text-writing-mode"]),"text-rotate":new xi(X.layout_symbol["text-rotate"]),"text-padding":new gi(X.layout_symbol["text-padding"]),"text-keep-upright":new gi(X.layout_symbol["text-keep-upright"]),"text-transform":new xi(X.layout_symbol["text-transform"]),"text-offset":new xi(X.layout_symbol["text-offset"]),"text-allow-overlap":new gi(X.layout_symbol["text-allow-overlap"]),"text-overlap":new gi(X.layout_symbol["text-overlap"]),"text-ignore-placement":new gi(X.layout_symbol["text-ignore-placement"]),"text-optional":new gi(X.layout_symbol["text-optional"])})}};class Nu{constructor(t){if(void 0===t.property.overrides)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=t.property.overrides?t.property.overrides.runtimeType:ht,this.defaultValue=t;}evaluate(t){if(t.formattedSection){const e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);}outputDefined(){return !1}serialize(){return null}}$n("FormatSectionOverride",Nu,{omit:["defaultValue"]});class Zu extends Si{constructor(t){super(t,ju);}recalculate(t,e){if(super.recalculate(t,e),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]="map"===this.layout.get("text-rotation-alignment")?"map":"viewport"),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){const t=this.layout.get("text-writing-mode");if(t){const e=[];for(const r of t)e.indexOf(r)<0&&e.push(r);this.layout._values["text-writing-mode"]=e;}else this.layout._values["text-writing-mode"]=["horizontal"];}this._setPaintOverrides();}getValueAndResolveTokens(t,e,r,n){const i=this.layout.get(t).evaluate(e,{},r,n),a=this._unevaluatedLayout._values[t];return a.isDataDriven()||Tr(a.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,((e,r)=>t&&r in t?String(t[r]):""))}(e.properties,i)}createBucket(t){return new Uu(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const t of ju.paint.overridableProperties){if(!Zu.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),r=new Nu(e),n=new Fr(r,e.property.specification);let i=null;i="constant"===e.value.kind||"source"===e.value.kind?new Lr("source",n):new Dr("composite",n,e.value.zoomStops),this.paint._values[t]=new yi(e.property,i,e.parameters);}}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven())&&Zu.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const r=t.get("text-field"),n=ju.paint.properties[e];let i=!1;const a=t=>{for(const e of t)if(n.overrides&&n.overrides.hasOverride(e))return void(i=!0)};if("constant"===r.value.kind&&r.value.value instanceof Qt)a(r.value.value.sections);else if("source"===r.value.kind){const t=e=>{i||(e instanceof le&&se(e.value)===vt?a(e.value.sections):e instanceof pr?a(e.sections):e.eachChild(t));},e=r.value;e._styleExpression&&t(e._styleExpression.expression);}return i}}let Ku;var Gu={get paint(){return Ku=Ku||new _i({"background-color":new gi(X.paint_background["background-color"]),"background-pattern":new bi(X.paint_background["background-pattern"]),"background-opacity":new gi(X.paint_background["background-opacity"])})}};class Ju extends Si{constructor(t){super(t,Gu);}}let Xu;var Yu={get paint(){return Xu=Xu||new _i({"raster-opacity":new gi(X.paint_raster["raster-opacity"]),"raster-hue-rotate":new gi(X.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new gi(X.paint_raster["raster-brightness-min"]),"raster-brightness-max":new gi(X.paint_raster["raster-brightness-max"]),"raster-saturation":new gi(X.paint_raster["raster-saturation"]),"raster-contrast":new gi(X.paint_raster["raster-contrast"]),"raster-resampling":new gi(X.paint_raster["raster-resampling"]),"raster-fade-duration":new gi(X.paint_raster["raster-fade-duration"])})}};class Hu extends Si{constructor(t){super(t,Yu);}}class Wu extends Si{constructor(t){super(t,{}),this.onAdd=t=>{this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl);},this.onRemove=t=>{this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl);},this.implementation=t;}is3D(){return "3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){return !1}serialize(){throw new Error("Custom layers cannot be serialized")}}class Qu{constructor(t){this._callback=t,this._triggered=!1,"undefined"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback();});}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._callback();}),0));}remove(){delete this._channel,this._callback=()=>{};}}const tc=6371008.8;class ec{constructor(t,e){if(isNaN(t)||isNaN(e))throw new Error(`Invalid LngLat object: (${t}, ${e})`);if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new ec(m(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return tc*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof ec)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new ec(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new ec(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const rc=2*Math.PI*tc;function nc(t){return rc*Math.cos(t*Math.PI/180)}function ic(t){return (180+t)/360}function ac(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function sc(t,e){return t/nc(e)}function oc(t){return 360*t-180}function lc(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}class uc{constructor(t,e,r=0){this.x=+t,this.y=+e,this.z=+r;}static fromLngLat(t,e=0){const r=ec.convert(t);return new uc(ic(r.lng),ac(r.lat),sc(e,r.lat))}toLngLat(){return new ec(oc(this.x),lc(this.y))}toAltitude(){return this.z*nc(lc(this.y))}meterInMercatorCoordinateUnits(){return 1/rc*(t=lc(this.y),1/Math.cos(t*Math.PI/180));var t;}}function cc(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return [t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}class hc{constructor(t,e,r){if(t<0||t>25||r<0||r>=Math.pow(2,t)||e<0||e>=Math.pow(2,t))throw new Error(`x=${e}, y=${r}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=e,this.y=r,this.key=dc(0,t,t,e,r);}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,e,r){const n=(a=this.y,s=this.z,o=cc(256*(i=this.x),256*(a=Math.pow(2,s)-a-1),s),l=cc(256*(i+1),256*(a+1),s),o[0]+","+o[1]+","+l[0]+","+l[1]);var i,a,s,o,l;const u=function(t,e,r){let n,i="";for(let a=t;a>0;a--)n=1<1?"@2x":"").replace(/{quadkey}/g,u).replace(/{bbox-epsg-3857}/g,n)}isChildOf(t){const e=this.z-t.z;return e>0&&t.x===this.x>>e&&t.y===this.y>>e}getTilePoint(t){const e=Math.pow(2,this.z);return new a((t.x*e-this.x)*rs,(t.y*e-this.y)*rs)}toString(){return `${this.z}/${this.x}/${this.y}`}}class pc{constructor(t,e){this.wrap=t,this.canonical=e,this.key=dc(t,e.z,e.z,e.x,e.y);}}class fc{constructor(t,e,r,n,i){if(t= z; overscaledZ = ${t}; z = ${r}`);this.overscaledZ=t,this.wrap=e,this.canonical=new hc(r,+n,+i),this.key=dc(e,t,r,n,i);}clone(){return new fc(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const e=this.canonical.z-t;return t>this.canonical.z?new fc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new fc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)}calculateScaledKey(t,e){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const r=this.canonical.z-t;return t>this.canonical.z?dc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):dc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)}isChildOf(t){if(t.wrap!==this.wrap)return !1;const e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e}children(t){if(this.overscaledZ>=t)return [new fc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return [new fc(e,this.wrap,e,r,n),new fc(e,this.wrap,e,r+1,n),new fc(e,this.wrap,e,r,n+1),new fc(e,this.wrap,e,r+1,n+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.ythis.max&&(this.max=r),r=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return (e+1)*this.stride+(t+1)}unpack(t,e,r){return t*this.redFactor+e*this.greenFactor+r*this.blueFactor-this.baseShift}getPixels(){return new qs({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");let n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,s=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1;}switch(r){case-1:a=s-1;break;case 1:s=a+1;}const o=-e*this.dim,l=-r*this.dim;for(let e=a;e=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class gc{constructor(t,e,r,n,i){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,this.id=i;}get geometry(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(t){this._geometry=t;}toJSON(){const t={geometry:this.geometry};for(const e in this)"_geometry"!==e&&"_vectorTileFeature"!==e&&(t[e]=this[e]);return t}}class xc{constructor(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Fn(rs,16,0),this.grid3D=new Fn(rs,16,0),this.featureIndexArray=new ca,this.promoteId=e;}insert(t,e,r,n,i,a){const s=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i);const o=a?this.grid3D:this.grid;for(let t=0;t=0&&n[3]>=0&&o.insert(s,n[0],n[1],n[2],n[3]);}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new Ro.VectorTile(new eu(this.rawTileData)).layers,this.sourceLayerCoder=new mc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(t,e,r,n){this.loadVTLayers();const i=t.params||{},s=rs/t.tileSize/t.scale,o=Nr(i.filter),l=t.queryGeometry,u=t.queryPadding*s,c=bc(l),h=this.grid.query(c.minX-u,c.minY-u,c.maxX+u,c.maxY+u),p=bc(t.cameraQueryGeometry),f=this.grid3D.query(p.minX-u,p.minY-u,p.maxX+u,p.maxY+u,((e,r,n,i)=>function(t,e,r,n,i){for(const a of t)if(e<=a.x&&r<=a.y&&n>=a.x&&i>=a.y)return !0;const s=[new a(e,r),new a(e,i),new a(n,i),new a(n,r)];if(t.length>2)for(const e of s)if(xs(t,e))return !0;for(let e=0;e(p||(p=as(e)),r.queryIntersectsFeature(l,e,n,p,this.z,t.transform,s,t.pixelPosMatrix))));}return d}loadMatchingFeature(t,e,r,n,i,a,s,o,l,u,c){const h=this.bucketLayerIDs[e];if(a&&!function(t,e){for(let r=0;r=0)return !0;return !1}(a,h))return;const p=this.sourceLayerCoder.decode(r),f=this.vtLayers[p].feature(n);if(i.needGeometry){const t=ss(f,!0);if(!i.filter(new li(this.tileID.overscaledZ),t,this.tileID.canonical))return}else if(!i.filter(new li(this.tileID.overscaledZ),f))return;const d=this.getId(f,p);for(let e=0;e{const s=e instanceof mi?e.get(a):null;return s&&s.evaluate?s.evaluate(r,n,i):s}))}function bc(t){let e=1/0,r=1/0,n=-1/0,i=-1/0;for(const a of t)e=Math.min(e,a.x),r=Math.min(r,a.y),n=Math.max(n,a.x),i=Math.max(i,a.y);return {minX:e,minY:r,maxX:n,maxY:i}}function wc(t,e){return e-t}function _c(t,e,r,n,i){const s=[];for(let o=0;o=n&&c.x>=n||(o.x>=n?o=new a(n,o.y+(n-o.x)/(c.x-o.x)*(c.y-o.y))._round():c.x>=n&&(c=new a(n,o.y+(n-o.x)/(c.x-o.x)*(c.y-o.y))._round()),o.y>=i&&c.y>=i||(o.y>=i?o=new a(o.x+(i-o.y)/(c.y-o.y)*(c.x-o.x),i)._round():c.y>=i&&(c=new a(o.x+(i-o.y)/(c.y-o.y)*(c.x-o.x),i)._round()),u&&o.equals(u[u.length-1])||(u=[o],s.push(u)),u.push(c)))));}}return s}$n("FeatureIndex",xc,{omit:["rawTileData","sourceLayerCoder"]});class Ac extends a{constructor(t,e,r,n){super(t,e),this.angle=r,void 0!==n&&(this.segment=n);}clone(){return new Ac(this.x,this.y,this.angle,this.segment)}}function Sc(t,e,r,n,i){if(void 0===e.segment||0===r)return !0;let a=e,s=e.segment+1,o=0;for(;o>-r/2;){if(s--,s<0)return !1;o-=t[s].dist(a),a=t[s];}o+=t[s].dist(t[s+1]),s++;const l=[];let u=0;for(;on;)u-=l.shift().angleDelta;if(u>i)return !1;s++,o+=e.dist(r);}return !0}function kc(t){let e=0;for(let r=0;ru){const c=(u-l)/a,h=Ze.number(n.x,i.x,c),p=Ze.number(n.y,i.y,c),f=new Ac(h,p,i.angleTo(n),r);return f._round(),!s||Sc(t,f,o,s,e)?f:void 0}l+=a;}}function Cc(t,e,r,n,i,a,s,o,l){const u=Ic(n,a,s),c=zc(n,i),h=c*s,p=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-h=0&&g=0&&x=0&&p+u<=c){const r=new Ac(g,x,y,e);r._round(),n&&!Sc(t,r,a,n,i)||f.push(r);}}h+=d;}return o||f.length||s||(f=Bc(t,h/2,r,n,i,a,s,!0,l)),f}$n("Anchor",Ac);const Pc=lu;function Vc(t,e,r,n){const i=[],s=t.image,o=s.pixelRatio,l=s.paddedRect.w-2*Pc,u=s.paddedRect.h-2*Pc,c=t.right-t.left,h=t.bottom-t.top,p=s.stretchX||[[0,l]],f=s.stretchY||[[0,u]],d=(t,e)=>t+e[1]-e[0],y=p.reduce(d,0),m=f.reduce(d,0),g=l-y,x=u-m;let v=0,b=y,w=0,_=m,A=0,S=g,k=0,I=x;if(s.content&&n){const t=s.content;v=Ec(p,0,t[0]),w=Ec(f,0,t[1]),b=Ec(p,t[0],t[2]),_=Ec(f,t[1],t[3]),A=t[0]-v,k=t[1]-w,S=t[2]-t[0]-b,I=t[3]-t[1]-_;}const z=(n,i,l,u)=>{const p=Tc(n.stretch-v,b,c,t.left),f=$c(n.fixed-A,S,n.stretch,y),d=Tc(i.stretch-w,_,h,t.top),g=$c(i.fixed-k,I,i.stretch,m),x=Tc(l.stretch-v,b,c,t.left),z=$c(l.fixed-A,S,l.stretch,y),M=Tc(u.stretch-w,_,h,t.top),C=$c(u.fixed-k,I,u.stretch,m),B=new a(p,d),P=new a(x,d),V=new a(x,M),E=new a(p,M),F=new a(f/o,g/o),T=new a(z/o,C/o),$=e*Math.PI/180;if($){const t=Math.sin($),e=Math.cos($),r=[e,-t,t,e];B._matMult(r),P._matMult(r),E._matMult(r),V._matMult(r);}const L=n.stretch+n.fixed,D=i.stretch+i.fixed;return {tl:B,tr:P,bl:E,br:V,tex:{x:s.paddedRect.x+Pc+L,y:s.paddedRect.y+Pc+D,w:l.stretch+l.fixed-L,h:u.stretch+u.fixed-D},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:F,pixelOffsetBR:T,minFontScaleX:S/o/c,minFontScaleY:I/o/h,isSDF:r}};if(n&&(s.stretchX||s.stretchY)){const t=Fc(p,g,y),e=Fc(f,x,m);for(let r=0;r0&&(n=Math.max(10,n),this.circleDiameter=n);}else {let u=s.top*o-l[0],h=s.bottom*o+l[2],p=s.left*o-l[3],f=s.right*o+l[1];const d=s.collisionPadding;if(d&&(p-=d[0]*o,u-=d[1]*o,f+=d[2]*o,h+=d[3]*o),c){const t=new a(p,u),e=new a(f,u),r=new a(p,h),n=new a(f,h),i=c*Math.PI/180;t._rotate(i),e._rotate(i),r._rotate(i),n._rotate(i),p=Math.min(t.x,e.x,r.x,n.x),f=Math.max(t.x,e.x,r.x,n.x),u=Math.min(t.y,e.y,r.y,n.y),h=Math.max(t.y,e.y,r.y,n.y);}t.emplaceBack(e.x,e.y,p,u,f,h,r,n,i);}this.boxEndIndex=t.length;}}class Dc{constructor(t=[],e=Oc){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t);}push(t){this.data.push(t),this.length++,this._up(this.length-1);}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:r}=this,n=e[t];for(;t>0;){const i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i;}e[t]=n;}_down(t){const{data:e,compare:r}=this,n=this.length>>1,i=e[t];for(;t=0)break;e[t]=a,t=n;}e[t]=i;}}function Oc(t,e){return te?1:0}function Uc(t,e=1,r=!1){let n=1/0,i=1/0,s=-1/0,o=-1/0;const l=t[0];for(let t=0;ts)&&(s=e.x),(!t||e.y>o)&&(o=e.y);}const u=Math.min(s-n,o-i);let c=u/2;const h=new Dc([],Rc);if(0===u)return new a(n,i);for(let e=n;ep.d||!p.d)&&(p=n,r&&console.log("found best %d after %d probes",Math.round(1e4*n.d)/1e4,f)),n.max-p.d<=e||(c=n.h/2,h.push(new qc(n.p.x-c,n.p.y-c,c,t)),h.push(new qc(n.p.x+c,n.p.y-c,c,t)),h.push(new qc(n.p.x-c,n.p.y+c,c,t)),h.push(new qc(n.p.x+c,n.p.y+c,c,t)),f+=4);}return r&&(console.log(`num probes: ${f}`),console.log(`best distance: ${p.d}`)),p.p}function Rc(t,e){return e.max-t.max}function qc(t,e,r,n){this.p=new a(t,e),this.h=r,this.d=function(t,e){let r=!1,n=1/0;for(let i=0;it.y!=o.y>t.y&&t.x<(o.x-i.x)*(t.y-i.y)/(o.y-i.y)+i.x&&(r=!r),n=Math.min(n,ms(t,i,o));}}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}var jc;t.aq=void 0,(jc=t.aq||(t.aq={}))[jc.center=1]="center",jc[jc.left=2]="left",jc[jc.right=3]="right",jc[jc.top=4]="top",jc[jc.bottom=5]="bottom",jc[jc["top-left"]=6]="top-left",jc[jc["top-right"]=7]="top-right",jc[jc["bottom-left"]=8]="bottom-left",jc[jc["bottom-right"]=9]="bottom-right";const Nc=7,Zc=Number.POSITIVE_INFINITY;function Kc(t,e){return e[1]!==Zc?function(t,e,r){let n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-Nc;break;case"bottom-right":case"bottom-left":case"bottom":i=-r+Nc;}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e;}return [n,i]}(t,e[0],e[1]):function(t,e){let r=0,n=0;e<0&&(e=0);const i=e/Math.SQRT2;switch(t){case"top-right":case"top-left":n=i-Nc;break;case"bottom-right":case"bottom-left":n=-i+Nc;break;case"bottom":n=-e+Nc;break;case"top":n=e-Nc;}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e;}return [r,n]}(t,e[0])}function Gc(t,e,r){var n;const i=t.layout,a=null===(n=i.get("text-variable-anchor-offset"))||void 0===n?void 0:n.evaluate(e,{},r);if(a){const t=a.values,e=[];for(let r=0;rt*Vl));n.startsWith("top")?i[1]-=Nc:n.startsWith("bottom")&&(i[1]+=Nc),e[r+1]=i;}return new re(e)}const s=i.get("text-variable-anchor");if(s){let n;n=void 0!==t._unevaluatedLayout.getValue("text-radial-offset")?[i.get("text-radial-offset").evaluate(e,{},r)*Vl,Zc]:i.get("text-offset").evaluate(e,{},r).map((t=>t*Vl));const a=[];for(const t of s)a.push(t,Kc(t,n));return new re(a)}return null}function Jc(t){switch(t){case"right":case"top-right":case"bottom-right":return "right";case"left":case"top-left":case"bottom-left":return "left"}return "center"}function Xc(e,r,n,i,a,s,o,l,u,c,h){let p=s.textMaxSize.evaluate(r,{});void 0===p&&(p=o);const f=e.layers[0].layout,d=f.get("icon-offset").evaluate(r,{},h),y=Hc(n.horizontal),m=o/24,g=e.tilePixelRatio*m,x=e.tilePixelRatio*p/24,v=e.tilePixelRatio*l,b=e.tilePixelRatio*f.get("symbol-spacing"),w=f.get("text-padding")*e.tilePixelRatio,_=function(t,e,r,n=1){const i=t.get("icon-padding").evaluate(e,{},r),a=i&&i.values;return [a[0]*n,a[1]*n,a[2]*n,a[3]*n]}(f,r,h,e.tilePixelRatio),S=f.get("text-max-angle")/180*Math.PI,k="viewport"!==f.get("text-rotation-alignment")&&"point"!==f.get("symbol-placement"),I="map"===f.get("icon-rotation-alignment")&&"point"!==f.get("symbol-placement"),z=f.get("symbol-placement"),M=b/2,C=f.get("icon-text-fit");let B;i&&"none"!==C&&(e.allowVerticalPlacement&&n.vertical&&(B=zu(i,n.vertical,C,f.get("icon-text-fit-padding"),d,m)),y&&(i=zu(i,y,C,f.get("icon-text-fit-padding"),d,m)));const P=(l,p)=>{p.x<0||p.x>=rs||p.y<0||p.y>=rs||function(e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,S,k,I){const z=e.addToLineVertexArray(r,n);let M,C,B,P,V=0,E=0,F=0,T=0,$=-1,L=-1;const D={};let O=$a("");if(e.allowVerticalPlacement&&i.vertical){const t=l.layout.get("text-rotate").evaluate(w,{},k)+90;B=new Lc(u,r,c,h,p,i.vertical,f,d,y,t),o&&(P=new Lc(u,r,c,h,p,o,g,x,y,t));}if(a){const n=l.layout.get("icon-rotate").evaluate(w,{}),i="none"!==l.layout.get("icon-text-fit"),s=Vc(a,n,S,i),f=o?Vc(o,n,S,i):void 0;C=new Lc(u,r,c,h,p,a,g,x,!1,n),V=4*s.length;const d=e.iconSizeData;let y=null;"source"===d.kind?(y=[Cu*l.layout.get("icon-size").evaluate(w,{})],y[0]>Bu&&A(`${e.layerIds[0]}: Value for "icon-size" is >= ${Mu}. Reduce your "icon-size".`)):"composite"===d.kind&&(y=[Cu*_.compositeIconSizes[0].evaluate(w,{},k),Cu*_.compositeIconSizes[1].evaluate(w,{},k)],(y[0]>Bu||y[1]>Bu)&&A(`${e.layerIds[0]}: Value for "icon-size" is >= ${Mu}. Reduce your "icon-size".`)),e.addSymbols(e.icon,s,y,b,v,w,t.ai.none,r,z.lineStartIndex,z.lineLength,-1,k),$=e.icon.placedSymbolArray.length-1,f&&(E=4*f.length,e.addSymbols(e.icon,f,y,b,v,w,t.ai.vertical,r,z.lineStartIndex,z.lineLength,-1,k),L=e.icon.placedSymbolArray.length-1);}const U=Object.keys(i.horizontal);for(const n of U){const a=i.horizontal[n];if(!M){O=$a(a.text);const t=l.layout.get("text-rotate").evaluate(w,{},k);M=new Lc(u,r,c,h,p,a,f,d,y,t);}const o=1===a.positionedLines.length;if(F+=Yc(e,r,a,s,l,y,w,m,z,i.vertical?t.ai.horizontal:t.ai.horizontalOnly,o?U:[n],D,$,_,k),o)break}i.vertical&&(T+=Yc(e,r,i.vertical,s,l,y,w,m,z,t.ai.vertical,["vertical"],D,L,_,k));const R=M?M.boxStartIndex:e.collisionBoxArray.length,q=M?M.boxEndIndex:e.collisionBoxArray.length,j=B?B.boxStartIndex:e.collisionBoxArray.length,N=B?B.boxEndIndex:e.collisionBoxArray.length,Z=C?C.boxStartIndex:e.collisionBoxArray.length,K=C?C.boxEndIndex:e.collisionBoxArray.length,G=P?P.boxStartIndex:e.collisionBoxArray.length,J=P?P.boxEndIndex:e.collisionBoxArray.length;let X=-1;const Y=(t,e)=>t&&t.circleDiameter?Math.max(t.circleDiameter,e):e;X=Y(M,X),X=Y(B,X),X=Y(C,X),X=Y(P,X);const H=X>-1?1:0;H&&(X*=I/Vl),e.glyphOffsetArray.length>=Uu.MAX_GLYPHS&&A("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==w.sortKey&&e.addToSortKeyRanges(e.symbolInstances.length,w.sortKey);const W=Gc(l,w,k),[Q,tt]=function(e,r){const n=e.length,i=null==r?void 0:r.values;if((null==i?void 0:i.length)>0)for(let r=0;r=0?D.right:-1,D.center>=0?D.center:-1,D.left>=0?D.left:-1,D.vertical||-1,$,L,O,R,q,j,N,Z,K,G,J,c,F,T,V,E,H,0,f,X,Q,tt);}(e,p,l,n,i,a,B,e.layers[0],e.collisionBoxArray,r.index,r.sourceLayerIndex,e.index,g,[w,w,w,w],k,u,v,_,I,d,r,s,c,h,o);};if("line"===z)for(const t of _c(r.geometry,0,0,rs,rs)){const r=Cc(t,b,S,n.vertical||y,i,24,x,e.overscaling,rs);for(const n of r)y&&Wc(e,y.text,M,n)||P(t,n);}else if("line-center"===z){for(const t of r.geometry)if(t.length>1){const e=Mc(t,S,n.vertical||y,i,24,x);e&&P(t,e);}}else if("Polygon"===r.type)for(const t of Co(r.geometry,0)){const e=Uc(t,16);P(t[0],new Ac(e.x,e.y,0));}else if("LineString"===r.type)for(const t of r.geometry)P(t,new Ac(t[0].x,t[0].y,0));else if("Point"===r.type)for(const t of r.geometry)for(const e of t)P([e],new Ac(e.x,e.y,0));}function Yc(t,e,r,n,i,s,o,l,u,c,h,p,f,d,y){const m=function(t,e,r,n,i,s,o,l){const u=n.layout.get("text-rotate").evaluate(s,{})*Math.PI/180,c=[];for(const t of e.positionedLines)for(const n of t.positionedGlyphs){if(!n.rect)continue;const s=n.rect||{};let h=su+1,p=!0,f=1,d=0;const y=(i||l)&&n.vertical,m=n.metrics.advance*n.scale/2;if(l&&e.verticalizable&&(d=t.lineOffset/2-(n.imageName?-(Vl-n.metrics.width*n.scale)/2:(n.scale-1)*Vl)),n.imageName){const t=o[n.imageName];p=t.sdf,f=t.pixelRatio,h=lu/f;}const g=i?[n.x+m,n.y]:[0,0];let x=i?[0,0]:[n.x+m+r[0],n.y+r[1]-d],v=[0,0];y&&(v=x,x=[0,0]);const b=n.metrics.isDoubleResolution?2:1,w=(n.metrics.left-h)*n.scale-m+x[0],_=(-n.metrics.top-h)*n.scale+x[1],A=w+s.w/b*n.scale/f,S=_+s.h/b*n.scale/f,k=new a(w,_),I=new a(A,_),z=new a(w,S),M=new a(A,S);if(y){const t=new a(-m,m-pu),e=-Math.PI/2,r=Vl/2-m,i=new a(5-pu-r,-(n.imageName?r:0)),s=new a(...v);k._rotateAround(e,t)._add(i)._add(s),I._rotateAround(e,t)._add(i)._add(s),z._rotateAround(e,t)._add(i)._add(s),M._rotateAround(e,t)._add(i)._add(s);}if(u){const t=Math.sin(u),e=Math.cos(u),r=[e,-t,t,e];k._matMult(r),I._matMult(r),z._matMult(r),M._matMult(r);}const C=new a(0,0),B=new a(0,0);c.push({tl:k,tr:I,bl:z,br:M,tex:s,writingMode:e.writingMode,glyphOffset:g,sectionIndex:n.sectionIndex,isSDF:p,pixelOffsetTL:C,pixelOffsetBR:B,minFontScaleX:0,minFontScaleY:0});}return c}(0,r,l,i,s,o,n,t.allowVerticalPlacement),g=t.textSizeData;let x=null;"source"===g.kind?(x=[Cu*i.layout.get("text-size").evaluate(o,{})],x[0]>Bu&&A(`${t.layerIds[0]}: Value for "text-size" is >= ${Mu}. Reduce your "text-size".`)):"composite"===g.kind&&(x=[Cu*d.compositeTextSizes[0].evaluate(o,{},y),Cu*d.compositeTextSizes[1].evaluate(o,{},y)],(x[0]>Bu||x[1]>Bu)&&A(`${t.layerIds[0]}: Value for "text-size" is >= ${Mu}. Reduce your "text-size".`)),t.addSymbols(t.text,m,x,l,s,o,c,e,u.lineStartIndex,u.lineLength,f,y);for(const e of h)p[e]=t.text.placedSymbolArray.length-1;return 4*m.length}function Hc(t){for(const e in t)return t[e];return null}function Wc(t,e,r,n){const i=t.compareText;if(e in i){const t=i[e];for(let e=t.length-1;e>=0;e--)if(n.dist(t[e])>4;if(1!==n)throw new Error(`Got v${n} data when expected v1.`);const i=Qc[15&r];if(!i)throw new Error("Unrecognized array type.");const[a]=new Uint16Array(t,2,1),[s]=new Uint32Array(t,4,1);return new th(s,a,i,t)}constructor(t,e=64,r=Float64Array,n){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=r,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const i=Qc.indexOf(this.ArrayType),a=2*t*this.ArrayType.BYTES_PER_ELEMENT,s=t*this.IndexArrayType.BYTES_PER_ELEMENT,o=(8-s%8)%8;if(i<0)throw new Error(`Unexpected typed array class: ${r}.`);n&&n instanceof ArrayBuffer?(this.data=n,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+o,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+a+s+o),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+o,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t);}add(t,e){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=t,this.coords[this._pos++]=e,r}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return eh(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,r,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:i,coords:a,nodeSize:s}=this,o=[0,i.length-1,0],l=[];for(;o.length;){const u=o.pop()||0,c=o.pop()||0,h=o.pop()||0;if(c-h<=s){for(let s=h;s<=c;s++){const o=a[2*s],u=a[2*s+1];o>=t&&o<=r&&u>=e&&u<=n&&l.push(i[s]);}continue}const p=h+c>>1,f=a[2*p],d=a[2*p+1];f>=t&&f<=r&&d>=e&&d<=n&&l.push(i[p]),(0===u?t<=f:e<=d)&&(o.push(h),o.push(p-1),o.push(1-u)),(0===u?r>=f:n>=d)&&(o.push(p+1),o.push(c),o.push(1-u));}return l}within(t,e,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:n,coords:i,nodeSize:a}=this,s=[0,n.length-1,0],o=[],l=r*r;for(;s.length;){const u=s.pop()||0,c=s.pop()||0,h=s.pop()||0;if(c-h<=a){for(let r=h;r<=c;r++)ah(i[2*r],i[2*r+1],t,e)<=l&&o.push(n[r]);continue}const p=h+c>>1,f=i[2*p],d=i[2*p+1];ah(f,d,t,e)<=l&&o.push(n[p]),(0===u?t-r<=f:e-r<=d)&&(s.push(h),s.push(p-1),s.push(1-u)),(0===u?t+r>=f:e+r>=d)&&(s.push(p+1),s.push(c),s.push(1-u));}return o}}function eh(t,e,r,n,i,a){if(i-n<=r)return;const s=n+i>>1;rh(t,e,s,n,i,a),eh(t,e,r,n,s-1,1-a),eh(t,e,r,s+1,i,1-a);}function rh(t,e,r,n,i,a){for(;i>n;){if(i-n>600){const s=i-n+1,o=r-n+1,l=Math.log(s),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(s-u)/s)*(o-s/2<0?-1:1);rh(t,e,r,Math.max(n,Math.floor(r-o*u/s+c)),Math.min(i,Math.floor(r+(s-o)*u/s+c)),a);}const s=e[2*r+a];let o=n,l=i;for(nh(t,e,n,r),e[2*i+a]>s&&nh(t,e,n,i);os;)l--;}e[2*n+a]===s?nh(t,e,n,l):(l++,nh(t,e,l,i)),l<=r&&(n=l+1),r<=l&&(i=l-1);}}function nh(t,e,r,n){ih(t,r,n),ih(e,2*r,2*n),ih(e,2*r+1,2*n+1);}function ih(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}function ah(t,e,r,n){const i=t-r,a=e-n;return i*i+a*a}var sh;t.bh=void 0,(sh=t.bh||(t.bh={})).create="create",sh.load="load",sh.fullLoad="fullLoad";let oh=null,lh=[];const uh=1e3/60,ch="loadTime",hh="fullLoadTime",ph={mark(t){performance.mark(t);},frame(t){const e=t;null!=oh&&lh.push(e-oh),oh=e;},clearMetrics(){oh=null,lh=[],performance.clearMeasures(ch),performance.clearMeasures(hh);for(const e in t.bh)performance.clearMarks(t.bh[e]);},getPerformanceMetrics(){performance.measure(ch,t.bh.create,t.bh.load),performance.measure(hh,t.bh.create,t.bh.fullLoad);const e=performance.getEntriesByName(ch)[0].duration,r=performance.getEntriesByName(hh)[0].duration,n=lh.length,i=1/(lh.reduce(((t,e)=>t+e),0)/n/1e3),a=lh.filter((t=>t>uh)).reduce(((t,e)=>t+(e-uh)/uh),0);return {loadTime:e,fullLoadTime:r,fps:i,percentDroppedFrames:a/(n+a)*100,totalFrames:n}}};t.$=function(t,e,r){var n,i,a,s,o,l,u,c,h,p,f,d,y=r[0],m=r[1],g=r[2];return e===t?(t[12]=e[0]*y+e[4]*m+e[8]*g+e[12],t[13]=e[1]*y+e[5]*m+e[9]*g+e[13],t[14]=e[2]*y+e[6]*m+e[10]*g+e[14],t[15]=e[3]*y+e[7]*m+e[11]*g+e[15]):(i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],f=e[10],d=e[11],t[0]=n=e[0],t[1]=i,t[2]=a,t[3]=s,t[4]=o,t[5]=l,t[6]=u,t[7]=c,t[8]=h,t[9]=p,t[10]=f,t[11]=d,t[12]=n*y+o*m+h*g+e[12],t[13]=i*y+l*m+p*g+e[13],t[14]=a*y+u*m+f*g+e[14],t[15]=s*y+c*m+d*g+e[15]),t},t.A=zs,t.B=Ze,t.C=class{constructor(t,e,r){this.receive=t=>{const e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){delete this.tasks[r];const t=this.cancelCallbacks[r];delete this.cancelCallbacks[r],t&&t();}else I()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e);},this.process=()=>{if(!this.taskQueue.length)return;const t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e);},this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},this.invoker=new Qu(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=I()?t:window;}send(t,e,r,n,i=!1){const a=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(this.callbacks[a]=r);const s=[],o={id:a,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:Dn(e,s)};return this.target.postMessage(o,{transfer:s}),{cancel:()=>{r&&delete this.callbacks[a],this.target.postMessage({id:a,type:"",targetMapId:n,sourceMapId:this.mapId});}}}processTask(t,e){if(""===e.type){const r=this.callbacks[t];delete this.callbacks[t],r&&(e.error?r(On(e.error)):r(null,On(e.data)));}else {let r=!1;const n=[],i=e.hasCallback?(e,i)=>{r=!0,delete this.cancelCallbacks[t];const a={id:t,type:"",sourceMapId:this.mapId,error:e?Dn(e):null,data:Dn(i,n)};this.target.postMessage(a,{transfer:n});}:t=>{r=!0;};let a=null;const s=On(e.data);if(this.parent[e.type])a=this.parent[e.type](e.sourceMapId,s,i);else if("getWorkerSource"in this.parent){const t=e.type.split(".");a=this.parent.getWorkerSource(e.sourceMapId,t[0],s.source)[t[1]](s,i);}else i(new Error(`Could not find function ${e.type}`));!r&&a&&a.cancel&&(this.cancelCallbacks[t]=a.cancel);}}remove(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1);}},t.D=gi,t.E=J,t.F=function(t,e){const r={};for(let n=0;n{}}},t.Y=ot,t.Z=function(){var t=new zs(16);return zs!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t._=e,t.a=M,t.a$=class extends Hi{},t.a0=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.a1=Cs,t.a2=function(){return x++},t.a3=ta,t.a4=Uu,t.a5=function(){oi.isLoading()||oi.isLoaded()||"deferred"!==ai()||si();},t.a6=Nr,t.a7=ss,t.a8=li,t.a9=gc,t.aA=ri,t.aB=function(t){t=t.slice();const e=Object.create(null);for(let r=0;r{n[t.source]?r.push({command:Q.removeLayer,args:[t.id]}):a.push(t);})),r=r.concat(i),function(t,e,r){e=e||[];const n=(t=t||[]).map(at),i=e.map(at),a=t.reduce(st,{}),s=e.reduce(st,{}),o=n.slice(),l=Object.create(null);let u,c,h,p,f,d,y;for(u=0,c=0;u@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,((t,r,n,i)=>{const a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){const t=parseInt(e["max-age"],10);isNaN(t)?delete e["max-age"]:e["max-age"]=t;}return e},t.ab=function(t,e){const r=[];for(const n in t)n in e||r.push(n);return r},t.ac=function(t){if(null==z){const e=t.navigator?t.navigator.userAgent:null;z=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")));}return z},t.ad=y,t.ae=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],s=e[1],o=e[2],l=e[3],u=e[4],c=e[5],h=e[6],p=e[7];return e!==t&&(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[0]=a*i+u*n,t[1]=s*i+c*n,t[2]=o*i+h*n,t[3]=l*i+p*n,t[4]=u*i-a*n,t[5]=c*i-s*n,t[6]=h*i-o*n,t[7]=p*i-l*n,t},t.af=function(t){var e=new zs(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.ag=Vs,t.ah=function(t,e){let r=0,n=0;if("constant"===t.kind)n=t.layoutSize;else if("source"!==t.kind){const{interpolationType:i,minZoom:a,maxZoom:s}=t,o=i?y(Ke.interpolationFactor(i,e,a,s),0,1):0;"camera"===t.kind?n=Ze.number(t.minSize,t.maxSize,o):r=o;}return {uSizeT:r,uSize:n}},t.aj=function(t,{uSize:e,uSizeT:r},{lowerSize:n,upperSize:i}){return "source"===t.kind?n/Cu:"composite"===t.kind?Ze.number(n/Cu,i/Cu,r):e},t.ak=$u,t.al=function(t,e,r,n){const i=e.y-t.y,s=e.x-t.x,o=n.y-r.y,l=n.x-r.x,u=o*s-l*i;if(0===u)return null;const c=(l*(t.y-r.y)-o*(t.x-r.x))/u;return new a(t.x+c*s,t.y+c*i)},t.am=_c,t.an=us,t.ao=Ms,t.ap=Vl,t.ar=Vu,t.as=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],f=e[11],d=e[12],y=e[13],m=e[14],g=e[15],x=r*o-n*s,v=r*l-i*s,b=r*u-a*s,w=n*l-i*o,_=n*u-a*o,A=i*u-a*l,S=c*y-h*d,k=c*m-p*d,I=c*g-f*d,z=h*m-p*y,M=h*g-f*y,C=p*g-f*m,B=x*C-v*M+b*z+w*I-_*k+A*S;return B?(t[0]=(o*C-l*M+u*z)*(B=1/B),t[1]=(i*M-n*C-a*z)*B,t[2]=(y*A-m*_+g*w)*B,t[3]=(p*_-h*A-f*w)*B,t[4]=(l*I-s*C-u*k)*B,t[5]=(r*C-i*I+a*k)*B,t[6]=(m*b-d*A-g*v)*B,t[7]=(c*A-p*b+f*v)*B,t[8]=(s*M-o*I+u*S)*B,t[9]=(n*I-r*M-a*S)*B,t[10]=(d*_-y*b+g*x)*B,t[11]=(h*b-c*_-f*x)*B,t[12]=(o*k-s*z-l*S)*B,t[13]=(r*z-n*k+i*S)*B,t[14]=(y*v-d*w-m*x)*B,t[15]=(c*w-h*v+p*x)*B,t):null},t.at=Jc,t.au=Su,t.av=th,t.aw=function(){const t={},e=X.$version;for(const r in X.$root){const n=X.$root[r];if(n.required){let i=null;i="version"===r?e:"array"===n.type?[]:{},null!=i&&(t[r]=i);}}return t},t.ax=Q,t.ay=Un,t.az=D,t.b=function(t,e){const r=new Blob([new Uint8Array(t)],{type:"image/png"});createImageBitmap(r).then((t=>{e(null,t);})).catch((t=>{e(new Error(`Could not load image because of ${t.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));}));},t.b0=Aa,t.b1=function(t,e){var r=t[0],n=t[1],i=t[2],a=t[3],s=t[4],o=t[5],l=t[6],u=t[7],c=t[8],h=t[9],p=t[10],f=t[11],d=t[12],y=t[13],m=t[14],g=t[15],x=e[0],v=e[1],b=e[2],w=e[3],_=e[4],A=e[5],S=e[6],k=e[7],I=e[8],z=e[9],M=e[10],C=e[11],B=e[12],P=e[13],V=e[14],E=e[15];return Math.abs(r-x)<=Is*Math.max(1,Math.abs(r),Math.abs(x))&&Math.abs(n-v)<=Is*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(i-b)<=Is*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(a-w)<=Is*Math.max(1,Math.abs(a),Math.abs(w))&&Math.abs(s-_)<=Is*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(o-A)<=Is*Math.max(1,Math.abs(o),Math.abs(A))&&Math.abs(l-S)<=Is*Math.max(1,Math.abs(l),Math.abs(S))&&Math.abs(u-k)<=Is*Math.max(1,Math.abs(u),Math.abs(k))&&Math.abs(c-I)<=Is*Math.max(1,Math.abs(c),Math.abs(I))&&Math.abs(h-z)<=Is*Math.max(1,Math.abs(h),Math.abs(z))&&Math.abs(p-M)<=Is*Math.max(1,Math.abs(p),Math.abs(M))&&Math.abs(f-C)<=Is*Math.max(1,Math.abs(f),Math.abs(C))&&Math.abs(d-B)<=Is*Math.max(1,Math.abs(d),Math.abs(B))&&Math.abs(y-P)<=Is*Math.max(1,Math.abs(y),Math.abs(P))&&Math.abs(m-V)<=Is*Math.max(1,Math.abs(m),Math.abs(V))&&Math.abs(g-E)<=Is*Math.max(1,Math.abs(g),Math.abs(E))},t.b2=function(t,e){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},t.b3=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t},t.b4=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},t.b5=m,t.b6=pc,t.b7=sc,t.b8=function(t,e,r,n,i){var a,s=1/Math.tan(e/2);return t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(t[10]=(i+n)*(a=1/(n-i)),t[14]=2*i*n*a):(t[10]=-1,t[14]=-2*n),t},t.b9=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=s*i+c*n,t[6]=o*i+h*n,t[7]=l*i+p*n,t[8]=u*i-a*n,t[9]=c*i-s*n,t[10]=h*i-o*n,t[11]=p*i-l*n,t},t.bA=n,t.bB=El,t.bC=$r,t.bD=oi,t.ba=f,t.bb=d,t.bc=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},t.bd=class extends Pi{},t.be=tc,t.bf=oc,t.bg=ph,t.bi=L,t.bj=function(t,e,r=!1){if(ti===Yn||ti===Hn||ti===Wn)throw new Error("setRTLTextPlugin cannot be called multiple times.");ei=T.resolveURL(t),ti=Yn,Qn=e,ni(),r||si();},t.bk=ai,t.bl=function(t,e){const r={};for(let n=0;nt*Vl));}let v=o?"center":n.get("text-justify").evaluate(i,{},e.canonical);const b=n.get("symbol-placement"),w="point"===b?n.get("text-max-width").evaluate(i,{},e.canonical)*Vl:0,_=()=>{e.bucket.allowVerticalPlacement&&qn(a)&&(d.vertical=yu(y,e.glyphMap,e.glyphPositions,e.imagePositions,c,w,s,m,"left",f,g,t.ai.vertical,!0,b,p,h));};if(!o&&x){const r=new Set;if("auto"===v)for(let t=0;t{e(null,r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame((()=>{r.src=C;}));},r.onerror=()=>e(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const n=new Blob([new Uint8Array(t)],{type:"image/png"});r.src=t.byteLength?URL.createObjectURL(n):C;},t.e=g,t.f=function(t,e){return R(g(t,{type:"json"}),e)},t.g=O,t.h=T,t.i=I,t.j=G,t.k=K,t.l=q,t.m=R,t.n=function(t){return new eu(t).readFields(nu,[])},t.o=function(t,e,r){if(!t.length)return r(null,[]);let n=t.length;const i=new Array(t.length);let a=null;t.forEach(((t,s)=>{e(t,((t,e)=>{t&&(a=t),i[s]=e,0==--n&&r(a,i);}));}));},t.p=ou,t.q=Rs,t.r=_i,t.s=j,t.t=Bn,t.u=Rn,t.v=X,t.w=A,t.x=En,t.y=Cn,t.z=function([t,e,r]){return e+=90,e*=Math.PI/180,r*=Math.PI/180,{x:t*Math.cos(e)*Math.sin(r),y:t*Math.sin(e)*Math.sin(r),z:t*Math.cos(r)}};})); + +define(["./shared"],(function(e){"use strict";class t{constructor(e){this.keyCache={},e&&this.replace(e);}replace(e){this._layerConfigs={},this._layers={},this.update(e,[]);}update(t,i){for(const i of t){this._layerConfigs[i.id]=i;const t=this._layers[i.id]=e.aC(i);t._featureFilter=e.a6(t.filter),this.keyCache[i.id]&&delete this.keyCache[i.id];}for(const e of i)delete this.keyCache[e],delete this._layerConfigs[e],delete this._layers[e];this.familiesBySource={};const o=e.bl(Object.values(this._layerConfigs),this.keyCache);for(const e of o){const t=e.map((e=>this._layers[e.id])),i=t[0];if("none"===i.visibility)continue;const o=i.source||"";let r=this.familiesBySource[o];r||(r=this.familiesBySource[o]={});const s=i.sourceLayer||"_geojsonTileLayer";let n=r[s];n||(n=r[s]=[]),n.push(t);}}}class i{constructor(t){const i={},o=[];for(const e in t){const r=t[e],s=i[e]={};for(const e in r){const t=r[+e];if(!t||0===t.bitmap.width||0===t.bitmap.height)continue;const i={x:0,y:0,w:t.bitmap.width+2,h:t.bitmap.height+2};o.push(i),s[e]={rect:i,metrics:t.metrics};}}const{w:r,h:s}=e.p(o),n=new e.q({width:r||1,height:s||1});for(const o in t){const r=t[o];for(const t in r){const s=r[+t];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const a=i[o][t].rect;e.q.copy(s.bitmap,n,{x:0,y:0},{x:a.x+1,y:a.y+1},s.bitmap);}}this.image=n,this.positions=i;}}e.bm("GlyphAtlas",i);class o{constructor(t){this.tileID=new e.O(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.uid=t.uid,this.zoom=t.zoom,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=t.showCollisionBoxes,this.collectResourceTiming=!!t.collectResourceTiming,this.returnDependencies=!!t.returnDependencies,this.promoteId=t.promoteId,this.inFlightDependencies=[],this.dependencySentinel=-1;}parse(t,o,s,n,a){this.status="parsing",this.data=t,this.collisionBoxArray=new e.a3;const l=new e.bn(Object.keys(t.layers).sort()),c=new e.bo(this.tileID,this.promoteId);c.bucketLayerIDs=[];const h={},u={featureIndex:c,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:s},d=o.familiesBySource[this.source];for(const i in d){const o=t.layers[i];if(!o)continue;1===o.version&&e.w(`Vector tile source "${this.source}" layer "${i}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const n=l.encode(i),a=[];for(let e=0;e=i.maxzoom||"none"!==i.visibility&&(r(t,this.zoom,s),(h[i.id]=i.createBucket({index:c.bucketLayerIDs.length,layers:t,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:n,sourceID:this.source})).populate(a,u,this.tileID.canonical),c.bucketLayerIDs.push(t.map((e=>e.id))));}}let p,f,g,m;const y=e.aH(u.glyphDependencies,(e=>Object.keys(e).map(Number)));this.inFlightDependencies.forEach((e=>null==e?void 0:e.cancel())),this.inFlightDependencies=[];const v=++this.dependencySentinel;Object.keys(y).length?this.inFlightDependencies.push(n.send("getGlyphs",{uid:this.uid,stacks:y,source:this.source,tileID:this.tileID,type:"glyphs"},((e,t)=>{v===this.dependencySentinel&&(p||(p=e,f=t,b.call(this)));}))):f={};const w=Object.keys(u.iconDependencies);w.length?this.inFlightDependencies.push(n.send("getImages",{icons:w,source:this.source,tileID:this.tileID,type:"icons"},((e,t)=>{v===this.dependencySentinel&&(p||(p=e,g=t,b.call(this)));}))):g={};const x=Object.keys(u.patternDependencies);function b(){if(p)return a(p);if(f&&g&&m){const t=new i(f),o=new e.bp(g,m);for(const i in h){const n=h[i];n instanceof e.a4?(r(n.layers,this.zoom,s),e.bq({bucket:n,glyphMap:f,glyphPositions:t.positions,imageMap:g,imagePositions:o.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):n.hasPattern&&(n instanceof e.br||n instanceof e.bs||n instanceof e.bt)&&(r(n.layers,this.zoom,s),n.addFeatures(u,this.tileID.canonical,o.patternPositions));}this.status="done",a(null,{buckets:Object.values(h).filter((e=>!e.isEmpty())),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:o,glyphMap:this.returnDependencies?f:null,iconMap:this.returnDependencies?g:null,glyphPositions:this.returnDependencies?t.positions:null});}}x.length?this.inFlightDependencies.push(n.send("getImages",{icons:x,source:this.source,tileID:this.tileID,type:"patterns"},((e,t)=>{v===this.dependencySentinel&&(p||(p=e,m=t,b.call(this)));}))):m={},b.call(this);}}function r(t,i,o){const r=new e.a8(i);for(const e of t)e.recalculate(r,o);}function s(t,i){const o=e.l(t.request,((o,r,s,n)=>{if(o)i(o);else if(r)try{const t=new e.bw.VectorTile(new e.bv(r));i(null,{vectorTile:t,rawData:r,cacheControl:s,expires:n});}catch(e){const o=new Uint8Array(r);let s=`Unable to parse the tile at ${t.request.url}, `;s+=31===o[0]&&139===o[1]?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${e.messge}`,i(new Error(s));}}));return ()=>{o.cancel(),i();}}class n{constructor(e,t,i,o){this.actor=e,this.layerIndex=t,this.availableImages=i,this.loadVectorData=o||s,this.fetching={},this.loading={},this.loaded={};}loadTile(t,i){const r=t.uid;this.loading||(this.loading={});const s=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.bu(t.request),n=this.loading[r]=new o(t);n.abort=this.loadVectorData(t,((t,o)=>{if(delete this.loading[r],t||!o)return n.status="done",this.loaded[r]=n,i(t);const a=o.rawData,l={};o.expires&&(l.expires=o.expires),o.cacheControl&&(l.cacheControl=o.cacheControl);const c={};if(s){const e=s.finish();e&&(c.resourceTiming=JSON.parse(JSON.stringify(e)));}n.vectorTile=o.vectorTile,n.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,o)=>{if(delete this.fetching[r],t||!o)return i(t);i(null,e.e({rawTileData:a.slice(0)},o,l,c));})),this.loaded=this.loaded||{},this.loaded[r]=n,this.fetching[r]={rawTileData:a,cacheControl:l,resourceTiming:c};}));}reloadTile(t,i){const o=this.loaded,r=t.uid;if(o&&o[r]){const s=o[r];s.showCollisionBoxes=t.showCollisionBoxes,"parsing"===s.status?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,o)=>{if(t||!o)return i(t,o);let s;if(this.fetching[r]){const{rawTileData:t,cacheControl:i,resourceTiming:n}=this.fetching[r];delete this.fetching[r],s=e.e({rawTileData:t.slice(0)},o,i,n);}else s=o;i(null,s);})):"done"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,i):i());}}abortTile(e,t){const i=this.loading,o=e.uid;i&&i[o]&&i[o].abort&&(i[o].abort(),delete i[o]),t();}removeTile(e,t){const i=this.loaded,o=e.uid;i&&i[o]&&delete i[o],t();}}class a{constructor(){this.loaded={};}loadTile(t,i){return e._(this,void 0,void 0,(function*(){const{uid:o,encoding:r,rawImageData:s,redFactor:n,greenFactor:a,blueFactor:l,baseShift:c}=t,h=s.width+2,u=s.height+2,d=e.a(s)?new e.R({width:h,height:u},yield e.bx(s,-1,-1,h,u)):s,p=new e.by(o,d,r,n,a,l,c);this.loaded=this.loaded||{},this.loaded[o]=p,i(null,p);}))}removeTile(e){const t=this.loaded,i=e.uid;t&&t[i]&&delete t[i];}}function l(e,t){if(0!==e.length){c(e[0],t);for(var i=1;i=Math.abs(a)?i-l+a:a-l+i,i=l;}i+o>=0!=!!t&&e.reverse();}var h=e.bz((function e(t,i){var o,r=t&&t.type;if("FeatureCollection"===r)for(o=0;o>31}function T(e,t){for(var i=e.loadGeometry(),o=e.type,r=0,s=0,n=i.length,a=0;ae},O=Math.fround||(C=new Float32Array(1),e=>(C[0]=+e,C[0]));var C;const L=3,F=5,z=6;class N{constructor(e){this.options=Object.assign(Object.create(D),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[];}load(e){const{log:t,minZoom:i,maxZoom:o}=this.options;t&&console.time("total time");const r=`prepare ${e.length} points`;t&&console.time(r),this.points=e;const s=[];for(let t=0;t=i;e--){const i=+Date.now();n=this.trees[e]=this._createTree(this._cluster(n,e)),t&&console.log("z%d: %d clusters in %dms",e,n.numItems,+Date.now()-i);}return t&&console.timeEnd("total time"),this}getClusters(e,t){let i=((e[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,e[1]));let r=180===e[2]?180:((e[2]+180)%360+360)%360-180;const s=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)i=-180,r=180;else if(i>r){const e=this.getClusters([i,o,180,s],t),n=this.getClusters([-180,o,r,s],t);return e.concat(n)}const n=this.trees[this._limitZoom(t)],a=n.range(Z(i),G(s),Z(r),G(o)),l=n.data,c=[];for(const e of a){const t=this.stride*e;c.push(l[t+F]>1?E(l,t,this.clusterProps):this.points[l[t+L]]);}return c}getChildren(e){const t=this._getOriginId(e),i=this._getOriginZoom(e),o="No cluster with the specified id.",r=this.trees[i];if(!r)throw new Error(o);const s=r.data;if(t*this.stride>=s.length)throw new Error(o);const n=this.options.radius/(this.options.extent*Math.pow(2,i-1)),a=r.within(s[t*this.stride],s[t*this.stride+1],n),l=[];for(const t of a){const i=t*this.stride;s[i+4]===e&&l.push(s[i+F]>1?E(s,i,this.clusterProps):this.points[s[i+L]]);}if(0===l.length)throw new Error(o);return l}getLeaves(e,t,i){const o=[];return this._appendLeaves(o,e,t=t||10,i=i||0,0),o}getTile(e,t,i){const o=this.trees[this._limitZoom(e)],r=Math.pow(2,e),{extent:s,radius:n}=this.options,a=n/s,l=(i-a)/r,c=(i+1+a)/r,h={features:[]};return this._addTileFeatures(o.range((t-a)/r,l,(t+1+a)/r,c),o.data,t,i,r,h),0===t&&this._addTileFeatures(o.range(1-a/r,l,1,c),o.data,r,i,r,h),t===r-1&&this._addTileFeatures(o.range(0,l,a/r,c),o.data,-1,i,r,h),h.features.length?h:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const i=this.getChildren(e);if(t++,1!==i.length)break;e=i[0].properties.cluster_id;}return t}_appendLeaves(e,t,i,o,r){const s=this.getChildren(t);for(const t of s){const s=t.properties;if(s&&s.cluster?r+s.point_count<=o?r+=s.point_count:r=this._appendLeaves(e,s.cluster_id,i,o,r):r1;let l,c,h;if(a)l=j(t,e,this.clusterProps),c=t[e],h=t[e+1];else {const i=this.points[t[e+L]];l=i.properties;const[o,r]=i.geometry.coordinates;c=Z(o),h=G(r);}const u={type:1,geometry:[[Math.round(this.options.extent*(c*r-i)),Math.round(this.options.extent*(h*r-o))]],tags:l};let d;d=a||this.options.generateId?t[e+L]:this.points[t[e+L]].id,void 0!==d&&(u.id=d),s.features.push(u);}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:i,extent:o,reduce:r,minPoints:s}=this.options,n=i/(o*Math.pow(2,t)),a=e.data,l=[],c=this.stride;for(let i=0;it&&(p+=a[i+F]);}if(p>d&&p>=s){let e,s=o*d,n=h*d,f=-1;const g=((i/c|0)<<5)+(t+1)+this.points.length;for(const o of u){const l=o*c;if(a[l+2]<=t)continue;a[l+2]=t;const h=a[l+F];s+=a[l]*h,n+=a[l+1]*h,a[l+4]=g,r&&(e||(e=this._map(a,i,!0),f=this.clusterProps.length,this.clusterProps.push(e)),r(e,this._map(a,l)));}a[i+4]=g,l.push(s/p,n/p,1/0,g,-1,p),r&&l.push(f);}else {for(let e=0;e1)for(const e of u){const i=e*c;if(!(a[i+2]<=t)){a[i+2]=t;for(let e=0;e>5}_getOriginZoom(e){return (e-this.points.length)%32}_map(e,t,i){if(e[t+F]>1){const o=this.clusterProps[e[t+z]];return i?Object.assign({},o):o}const o=this.points[e[t+L]].properties,r=this.options.map(o);return i&&r===o?Object.assign({},r):r}}function E(e,t,i){return {type:"Feature",id:e[t+L],properties:j(e,t,i),geometry:{type:"Point",coordinates:[(o=e[t],360*(o-.5)),J(e[t+1])]}};var o;}function j(e,t,i){const o=e[t+F],r=o>=1e4?`${Math.round(o/1e3)}k`:o>=1e3?Math.round(o/100)/10+"k":o,s=e[t+z],n=-1===s?{}:Object.assign({},i[s]);return Object.assign(n,{cluster:!0,cluster_id:e[t+L],point_count:o,point_count_abbreviated:r})}function Z(e){return e/360+.5}function G(e){const t=Math.sin(e*Math.PI/180),i=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return i<0?0:i>1?1:i}function J(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function Y(e,t,i,o){for(var r,s=o,n=i-t>>1,a=i-t,l=e[t],c=e[t+1],h=e[i],u=e[i+1],d=t+3;ds)r=d,s=p;else if(p===s){var f=Math.abs(d-n);fo&&(r-t>3&&Y(e,t,r,o),e[r+2]=s,i-r>3&&Y(e,r,i,o));}function A(e,t,i,o,r,s){var n=r-i,a=s-o;if(0!==n||0!==a){var l=((e-i)*n+(t-o)*a)/(n*n+a*a);l>1?(i=r,o=s):l>0&&(i+=n*l,o+=a*l);}return (n=e-i)*n+(a=t-o)*a}function V(e,t,i,o){var r={id:void 0===e?null:e,type:t,geometry:i,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,i=e.type;if("Point"===i||"MultiPoint"===i||"LineString"===i)B(e,t);else if("Polygon"===i||"MultiLineString"===i)for(var o=0;o0&&(n+=o?(r*c-l*s)/2:Math.sqrt(Math.pow(l-r,2)+Math.pow(c-s,2))),r=l,s=c;}var h=t.length-3;t[2]=1,Y(t,0,h,i),t[h+2]=1,t.size=Math.abs(n),t.start=0,t.end=t.size;}function W(e,t,i,o){for(var r=0;r1?1:i}function H(e,t,i,o,r,s,n,a){if(o/=t,s>=(i/=t)&&n=o)return null;for(var l=[],c=0;c=i&&f=o)){var g=[];if("Point"===d||"MultiPoint"===d)K(u,g,i,o,r);else if("LineString"===d)Q(u,g,i,o,r,!1,a.lineMetrics);else if("MultiLineString"===d)te(u,g,i,o,r,!1);else if("Polygon"===d)te(u,g,i,o,r,!0);else if("MultiPolygon"===d)for(var m=0;m=i&&n<=o&&(t.push(e[s]),t.push(e[s+1]),t.push(e[s+2]));}}function Q(e,t,i,o,r,s,n){for(var a,l,c=ee(e),h=0===r?oe:re,u=e.start,d=0;di&&(l=h(c,p,f,m,y,i),n&&(c.start=u+a*l)):v>o?w=i&&(l=h(c,p,f,m,y,i),x=!0),w>o&&v<=o&&(l=h(c,p,f,m,y,o),x=!0),!s&&x&&(n&&(c.end=u+a*l),t.push(c),c=ee(e)),n&&(u+=a);}var b=e.length-3;p=e[b],f=e[b+1],g=e[b+2],(v=0===r?p:f)>=i&&v<=o&&ie(c,p,f,g),b=c.length-3,s&&b>=3&&(c[b]!==c[0]||c[b+1]!==c[1])&&ie(c,c[0],c[1],c[2]),c.length&&t.push(c);}function ee(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function te(e,t,i,o,r,s){for(var n=0;nn.maxX&&(n.maxX=h),u>n.maxY&&(n.maxY=u);}return n}function he(e,t,i,o){var r=t.geometry,s=t.type,n=[];if("Point"===s||"MultiPoint"===s)for(var a=0;a0&&t.size<(r?n:o))i.numPoints+=t.length/3;else {for(var a=[],l=0;ln)&&(i.numSimplified++,a.push(t[l]),a.push(t[l+1])),i.numPoints++;r&&function(e,t){for(var i=0,o=0,r=e.length,s=r-2;o0===t)for(o=0,r=e.length;o24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var o=function(e,t){var i=[];if("FeatureCollection"===e.type)for(var o=0;o1&&console.time("creation"),d=this.tiles[u]=ce(e,t,i,o,l),this.tileCoords.push({z:t,x:i,y:o}),c)){c>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,i,o,d.numFeatures,d.numPoints,d.numSimplified),console.timeEnd("creation"));var p="z"+t;this.stats[p]=(this.stats[p]||0)+1,this.total++;}if(d.source=e,r){if(t===l.maxZoom||t===r)continue;var f=1<1&&console.time("clipping");var g,m,y,v,w,x,b=.5*l.buffer/l.extent,S=.5-b,M=.5+b,I=1+b;g=m=y=v=null,w=H(e,h,i-b,i+M,0,d.minX,d.maxX,l),x=H(e,h,i+S,i+I,0,d.minX,d.maxX,l),e=null,w&&(g=H(w,h,o-b,o+M,1,d.minY,d.maxY,l),m=H(w,h,o+S,o+I,1,d.minY,d.maxY,l),w=null),x&&(y=H(x,h,o-b,o+M,1,d.minY,d.maxY,l),v=H(x,h,o+S,o+I,1,d.minY,d.maxY,l),x=null),c>1&&console.timeEnd("clipping"),a.push(g||[],t+1,2*i,2*o),a.push(m||[],t+1,2*i,2*o+1),a.push(y||[],t+1,2*i+1,2*o),a.push(v||[],t+1,2*i+1,2*o+1);}}},de.prototype.getTile=function(e,t,i){var o=this.options,r=o.extent,s=o.debug;if(e<0||e>24)return null;var n=1<1&&console.log("drilling down to z%d-%d-%d",e,t,i);for(var l,c=e,h=t,u=i;!l&&c>0;)c--,h=Math.floor(h/2),u=Math.floor(u/2),l=this.tiles[pe(c,h,u)];return l&&l.source?(s>1&&console.log("found parent tile z%d-%d-%d",c,h,u),s>1&&console.time("drilling down"),this.splitTile(l.source,c,h,u,e,t,i),s>1&&console.timeEnd("drilling down"),this.tiles[a]?ae(this.tiles[a],r):null):null};class ye extends n{constructor(t,i,o,r){super(t,i,o),this._dataUpdateable=new Map,this.loadGeoJSON=(t,i)=>{const{promoteId:o}=t;if(t.request)return e.f(t.request,((e,t,r,s)=>{this._dataUpdateable=ge(t,o)?me(t,o):void 0,i(e,t,r,s);}));if("string"==typeof t.data)try{const e=JSON.parse(t.data);this._dataUpdateable=ge(e,o)?me(e,o):void 0,i(null,e);}catch(e){i(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));}else t.dataDiff?this._dataUpdateable?(function(e,t,i){var o,r,s,n;if(t.removeAll&&e.clear(),t.remove)for(const i of t.remove)e.delete(i);if(t.add)for(const o of t.add){const t=fe(o,i);null!=t&&e.set(t,o);}if(t.update)for(const i of t.update){let t=e.get(i.id);if(null==t)continue;const a=!i.removeAllProperties&&((null===(o=i.removeProperties)||void 0===o?void 0:o.length)>0||(null===(r=i.addOrUpdateProperties)||void 0===r?void 0:r.length)>0);if((i.newGeometry||i.removeAllProperties||a)&&(t=Object.assign({},t),e.set(i.id,t),a&&(t.properties=Object.assign({},t.properties))),i.newGeometry&&(t.geometry=i.newGeometry),i.removeAllProperties)t.properties={};else if((null===(s=i.removeProperties)||void 0===s?void 0:s.length)>0)for(const e of i.removeProperties)Object.prototype.hasOwnProperty.call(t.properties,e)&&delete t.properties[e];if((null===(n=i.addOrUpdateProperties)||void 0===n?void 0:n.length)>0)for(const{key:e,value:o}of i.addOrUpdateProperties)t.properties[e]=o;}}(this._dataUpdateable,t.dataDiff,o),i(null,{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())})):i(new Error(`Cannot update existing geojson data in ${t.source}`)):i(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));return {cancel:()=>{}}},this.loadVectorData=this.loadGeoJSONTile,r&&(this.loadGeoJSON=r);}loadGeoJSONTile(t,i){const o=t.tileID.canonical;if(!this._geoJSONIndex)return i(null,null);const r=this._geoJSONIndex.getTile(o.z,o.x,o.y);if(!r)return i(null,null);const s=new class{constructor(t){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=e.N,this.length=t.length,this._features=t;}feature(t){return new class{constructor(t){this._feature=t,this.extent=e.N,this.type=t.type,this.properties=t.tags,"id"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10));}loadGeometry(){if(1===this._feature.type){const t=[];for(const i of this._feature.geometry)t.push([new e.P(i[0],i[1])]);return t}{const t=[];for(const i of this._feature.geometry){const o=[];for(const t of i)o.push(new e.P(t[0],t[1]));t.push(o);}return t}}toGeoJSON(e,t,i){return u.call(this,e,t,i)}}(this._features[t])}}(r.features);let n=k(s);0===n.byteOffset&&n.byteLength===n.buffer.byteLength||(n=new Uint8Array(n)),i(null,{vectorTile:s,rawData:n.buffer});}loadData(t,i){var o;null===(o=this._pendingRequest)||void 0===o||o.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});const r=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.bu(t.request);this._pendingCallback=i,this._pendingRequest=this.loadGeoJSON(t,((o,s)=>{if(delete this._pendingCallback,delete this._pendingRequest,o||!s)return i(o);if("object"!=typeof s)return i(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));{h(s,!0);try{if(t.filter){const i=e.bC(t.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===i.result)throw new Error(i.value.map((e=>`${e.key}: ${e.message}`)).join(", "));const o=s.features.filter((e=>i.value.evaluate({zoom:0},e)));s={type:"FeatureCollection",features:o};}this._geoJSONIndex=t.cluster?new N(function({superclusterOptions:t,clusterProperties:i}){if(!i||!t)return t;const o={},r={},s={accumulated:null,zoom:0},n={properties:null},a=Object.keys(i);for(const t of a){const[s,n]=i[t],a=e.bC(n),l=e.bC("string"==typeof s?[s,["accumulated"],["get",t]]:s);o[t]=a.value,r[t]=l.value;}return t.map=e=>{n.properties=e;const t={};for(const e of a)t[e]=o[e].evaluate(s,n);return t},t.reduce=(e,t)=>{n.properties=t;for(const t of a)s.accumulated=e[t],e[t]=r[t].evaluate(s,n);},t}(t)).load(s.features):function(e,t){return new de(e,t)}(s,t.geojsonVtOptions);}catch(o){return i(o)}this.loaded={};const n={};if(r){const e=r.finish();e&&(n.resourceTiming={},n.resourceTiming[t.source]=JSON.parse(JSON.stringify(e)));}i(null,n);}}));}reloadTile(e,t){const i=this.loaded;return i&&i[e.uid]?super.reloadTile(e,t):this.loadTile(e,t)}removeSource(e,t){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),t();}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 ve{constructor(t){this.self=t,this.actor=new e.C(t,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:n,geojson:ye},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(e,t)=>{if(this.workerSourceTypes[e])throw new Error(`Worker source with name "${e}" already registered.`);this.workerSourceTypes[e]=t;},this.self.registerRTLTextPlugin=t=>{if(e.bD.isParsed())throw new Error("RTL text plugin already registered.");e.bD.applyArabicShaping=t.applyArabicShaping,e.bD.processBidirectionalText=t.processBidirectionalText,e.bD.processStyledBidirectionalText=t.processStyledBidirectionalText;};}setReferrer(e,t){this.referrer=t;}setImages(e,t,i){this.availableImages[e]=t;for(const i in this.workerSources[e]){const o=this.workerSources[e][i];for(const e in o)o[e].availableImages=t;}i();}setLayers(e,t,i){this.getLayerIndex(e).replace(t),i();}updateLayers(e,t,i){this.getLayerIndex(e).update(t.layers,t.removedIds),i();}loadTile(e,t,i){this.getWorkerSource(e,t.type,t.source).loadTile(t,i);}loadDEMTile(e,t,i){this.getDEMWorkerSource(e,t.source).loadTile(t,i);}reloadTile(e,t,i){this.getWorkerSource(e,t.type,t.source).reloadTile(t,i);}abortTile(e,t,i){this.getWorkerSource(e,t.type,t.source).abortTile(t,i);}removeTile(e,t,i){this.getWorkerSource(e,t.type,t.source).removeTile(t,i);}removeDEMTile(e,t){this.getDEMWorkerSource(e,t.source).removeTile(t);}removeSource(e,t,i){if(!this.workerSources[e]||!this.workerSources[e][t.type]||!this.workerSources[e][t.type][t.source])return;const o=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],void 0!==o.removeSource?o.removeSource(t,i):i();}loadWorkerSource(e,t,i){try{this.self.importScripts(t.url),i();}catch(e){i(e.toString());}}syncRTLPluginState(t,i,o){try{e.bD.setState(i);const t=e.bD.getPluginURL();if(e.bD.isLoaded()&&!e.bD.isParsed()&&null!=t){this.self.importScripts(t);const i=e.bD.isParsed();o(i?void 0:new Error(`RTL Text Plugin failed to import scripts from ${t}`),i);}}catch(e){o(e.toString());}}getAvailableImages(e){let t=this.availableImages[e];return t||(t=[]),t}getLayerIndex(e){let i=this.layerIndexes[e];return i||(i=this.layerIndexes[e]=new t),i}getWorkerSource(e,t,i){return this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),this.workerSources[e][t][i]||(this.workerSources[e][t][i]=new this.workerSourceTypes[t]({send:(t,i,o)=>{this.actor.send(t,i,o,e);}},this.getLayerIndex(e),this.getAvailableImages(e))),this.workerSources[e][t][i]}getDEMWorkerSource(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new a),this.demWorkerSources[e][t]}}return e.i()&&(self.worker=new ve(self)),ve})); + +define(["./shared"],(function(t){"use strict";var e="3.6.2";class i{static testProp(t){if(!i.docStyle)return t[0];for(let e=0;e{window.removeEventListener("click",i.suppressClickInternal,!0);}),0);}static mousePos(e,i){const s=e.getBoundingClientRect();return new t.P(i.clientX-s.left-e.clientLeft,i.clientY-s.top-e.clientTop)}static touchPos(e,i){const s=e.getBoundingClientRect(),a=[];for(let o=0;o{i=[],a=0,o=0,r={};},e.addThrottleControl=t=>{const e=o++;return r[e]=t,e},e.removeThrottleControl=t=>{delete r[t],h();},e.getImage=(t,e,o=!0)=>{s.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*");const r={requestParameters:t,supportImageRefresh:o,callback:e,cancelled:!1,completed:!1,cancel:()=>{r.completed||r.cancelled||(r.cancelled=!0,r.innerRequest&&(r.innerRequest.cancel(),a--),h());}};return i.push(r),h(),r};const n=e=>{const{requestParameters:i,supportImageRefresh:s,callback:a}=e;return t.e(i,{type:"image"}),(!1!==s||t.i()||t.g(i.url)||i.headers&&!Object.keys(i.headers).reduce(((t,e)=>t&&"accept"===e),!0)?t.m:c)(i,((t,i,s,o)=>{l(e,a,t,i,s,o);}))},l=(e,i,s,o,r,n)=>{s?i(s):o instanceof HTMLImageElement||t.a(o)?i(null,o):o&&((e,i)=>{"function"==typeof createImageBitmap?t.b(e,i):t.d(e,i);})(o,((t,e)=>{null!=t?i(t):null!=e&&i(null,e,{cacheControl:r,expires:n});})),e.cancelled||(e.completed=!0,a--,h());},h=()=>{const e=(()=>{const t=Object.keys(r);let e=!1;if(t.length>0)for(const i of t)if(e=r[i](),e)break;return e})()?t.c.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:t.c.MAX_PARALLEL_IMAGE_REQUESTS;for(let t=a;t0;t++){const e=i.shift();if(e.cancelled){t--;continue}const s=n(e);a++,e.innerRequest=s;}},c=(e,i)=>{const s=new Image,a=e.url;let o=!1;const r=e.credentials;return r&&"include"===r?s.crossOrigin="use-credentials":(r&&"same-origin"===r||!t.s(a))&&(s.crossOrigin="anonymous"),s.fetchPriority="high",s.onload=()=>{i(null,s),s.onerror=s.onload=null;},s.onerror=()=>{o||i(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.")),s.onerror=s.onload=null;},s.src=a,{cancel:()=>{o=!0,s.src="";}}};}(h||(h={})),h.resetRequestQueue(),function(t){t.Glyphs="Glyphs",t.Image="Image",t.Source="Source",t.SpriteImage="SpriteImage",t.SpriteJSON="SpriteJSON",t.Style="Style",t.Tile="Tile",t.Unknown="Unknown";}(c||(c={}));class u{constructor(t){this._transformRequestFn=t;}transformRequest(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}}normalizeSpriteURL(t,e,i){const s=function(t){const e=t.match(d);if(!e)throw new Error(`Unable to parse URL "${t}"`);return {protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}(t);return s.path+=`${e}${i}`,function(t){const e=t.params.length?`?${t.params.join("&")}`:"";return `${t.protocol}://${t.authority}${t.path}${e}`}(s)}setTransformRequest(t){this._transformRequestFn=t;}}const d=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function _(e){var i=new t.A(3);return i[0]=e[0],i[1]=e[1],i[2]=e[2],i}var p,m=function(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t};p=new t.A(3),t.A!=Float32Array&&(p[0]=0,p[1]=0,p[2]=0);var f=function(t){var e=t[0],i=t[1];return e*e+i*i};function g(t){const e=[];if("string"==typeof t)e.push({id:"default",url:t});else if(t&&t.length>0){const i=[];for(const{id:s,url:a}of t){const t=`${s}${a}`;-1===i.indexOf(t)&&(i.push(t),e.push({id:s,url:a}));}}return e}function v(e,i,s,a,o){if(a)return void e(a);if(o!==Object.values(i).length||o!==Object.values(s).length)return;const r={};for(const e in i){r[e]={};const a=t.h.getImageCanvasContext(s[e]),o=i[e];for(const t in o){const{width:i,height:s,x:n,y:l,sdf:h,pixelRatio:c,stretchX:u,stretchY:d,content:_}=o[t];r[e][t]={data:null,pixelRatio:c,sdf:h,stretchX:u,stretchY:d,content:_,spriteData:{width:i,height:s,x:n,y:l,context:a}};}}e(null,r);}!function(){var e=new t.A(2);t.A!=Float32Array&&(e[0]=0,e[1]=0);}();class x{constructor(t,e,i,s){this.context=t,this.format=i,this.texture=t.gl.createTexture(),this.update(e,s);}update(e,i,s){const{width:a,height:o}=e,r=!(this.size&&this.size[0]===a&&this.size[1]===o||s),{context:n}=this,{gl:l}=n;if(this.useMipmap=Boolean(i&&i.useMipmap),l.bindTexture(l.TEXTURE_2D,this.texture),n.pixelStoreUnpackFlipY.set(!1),n.pixelStoreUnpack.set(1),n.pixelStoreUnpackPremultiplyAlpha.set(this.format===l.RGBA&&(!i||!1!==i.premultiply)),r)this.size=[a,o],e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||t.a(e)?l.texImage2D(l.TEXTURE_2D,0,this.format,this.format,l.UNSIGNED_BYTE,e):l.texImage2D(l.TEXTURE_2D,0,this.format,a,o,0,this.format,l.UNSIGNED_BYTE,e.data);else {const{x:i,y:r}=s||{x:0,y:0};e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||t.a(e)?l.texSubImage2D(l.TEXTURE_2D,0,i,r,l.RGBA,l.UNSIGNED_BYTE,e):l.texSubImage2D(l.TEXTURE_2D,0,i,r,a,o,l.RGBA,l.UNSIGNED_BYTE,e.data);}this.useMipmap&&this.isSizePowerOfTwo()&&l.generateMipmap(l.TEXTURE_2D);}bind(t,e,i){const{context:s}=this,{gl:a}=s;a.bindTexture(a.TEXTURE_2D,this.texture),i!==a.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(i=a.LINEAR),t!==this.filter&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,t),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,i||t),this.filter=t),e!==this.wrap&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,e),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,e),this.wrap=e);}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:t}=this.context;t.deleteTexture(this.texture),this.texture=null;}}function y(t){const{userImage:e}=t;return !!(e&&e.render&&e.render())&&(t.data.replace(new Uint8Array(e.data.buffer)),!0)}class b extends t.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.R({width:1,height:1}),this.dirty=!0;}isLoaded(){return this.loaded}setLoaded(t){if(this.loaded!==t&&(this.loaded=t,t)){for(const{ids:t,callback:e}of this.requestors)this._notify(t,e);this.requestors=[];}}getImage(e){const i=this.images[e];if(i&&!i.data&&i.spriteData){const e=i.spriteData;i.data=new t.R({width:e.width,height:e.height},e.context.getImageData(e.x,e.y,e.width,e.height).data),i.spriteData=null;}return i}addImage(t,e){if(this.images[t])throw new Error(`Image id ${t} already exist, use updateImage instead`);this._validate(t,e)&&(this.images[t]=e);}_validate(e,i){let s=!0;const a=i.data||i.spriteData;return this._validateStretch(i.stretchX,a&&a.width)||(this.fire(new t.j(new Error(`Image "${e}" has invalid "stretchX" value`))),s=!1),this._validateStretch(i.stretchY,a&&a.height)||(this.fire(new t.j(new Error(`Image "${e}" has invalid "stretchY" value`))),s=!1),this._validateContent(i.content,i)||(this.fire(new t.j(new Error(`Image "${e}" has invalid "content" value`))),s=!1),s}_validateStretch(t,e){if(!t)return !0;let i=0;for(const s of t){if(s[0]-1);l++,o[l]=n,r[l]=h,r[l+1]=w;}for(let n=0,l=0;n{let s=this.entries[t];s||(s=this.entries[t]={glyphs:{},requests:{},ranges:{}});let a=s.glyphs[e];if(void 0!==a)return void i(null,{stack:t,id:e,glyph:a});if(a=this._tinySDF(s,t,e),a)return s.glyphs[e]=a,void i(null,{stack:t,id:e,glyph:a});const o=Math.floor(e/256);if(256*o>65535)return void i(new Error("glyphs > 65535 not supported"));if(s.ranges[o])return void i(null,{stack:t,id:e,glyph:a});if(!this.url)return void i(new Error("glyphsUrl is not set"));let r=s.requests[o];r||(r=s.requests[o]=[],E.loadGlyphRange(t,o,this.url,this.requestManager,((t,e)=>{if(e){for(const t in e)this._doesCharSupportLocalGlyph(+t)||(s.glyphs[+t]=e[+t]);s.ranges[o]=!0;}for(const i of r)i(t,e);delete s.requests[o];}))),r.push(((s,a)=>{s?i(s):a&&i(null,{stack:t,id:e,glyph:a[e]||null});}));}),((t,e)=>{if(t)i(t);else if(e){const t={};for(const{stack:i,id:s,glyph:a}of e)(t[i]||(t[i]={}))[s]=a&&{id:a.id,bitmap:a.bitmap.clone(),metrics:a.metrics};i(null,t);}}));}_doesCharSupportLocalGlyph(e){return !!this.localIdeographFontFamily&&(t.u["CJK Unified Ideographs"](e)||t.u["Hangul Syllables"](e)||t.u.Hiragana(e)||t.u.Katakana(e))}_tinySDF(e,i,s){const a=this.localIdeographFontFamily;if(!a)return;if(!this._doesCharSupportLocalGlyph(s))return;let o=e.tinySDF;if(!o){let t="400";/bold/i.test(i)?t="900":/medium/i.test(i)?t="500":/light/i.test(i)&&(t="200"),o=e.tinySDF=new E.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:a,fontWeight:t});}const r=o.draw(String.fromCharCode(s));return {id:s,bitmap:new t.q({width:r.width||60,height:r.height||60},r.data),metrics:{width:r.glyphWidth/2||24,height:r.glyphHeight/2||24,left:r.glyphLeft/2+.5||0,top:r.glyphTop/2-27.5||-8,advance:r.glyphAdvance/2||24,isDoubleResolution:!0}}}}E.loadGlyphRange=function(e,i,s,a,o){const r=256*i,n=r+255,l=a.transformRequest(s.replace("{fontstack}",e).replace("{range}",`${r}-${n}`),c.Glyphs);t.l(l,((e,i)=>{if(e)o(e);else if(i){const e={};for(const s of t.n(i))e[s.id]=s;o(null,e);}}));},E.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:i=8,cutoff:s=.25,fontFamily:a="sans-serif",fontWeight:o="normal",fontStyle:r="normal"}={}){this.buffer=e,this.cutoff=s,this.radius=i;const n=this.size=t+4*e,l=this._createCanvas(n),h=this.ctx=l.getContext("2d",{willReadFrequently:!0});h.font=`${r} ${o} ${t}px ${a}`,h.textBaseline="alphabetic",h.textAlign="left",h.fillStyle="black",this.gridOuter=new Float64Array(n*n),this.gridInner=new Float64Array(n*n),this.f=new Float64Array(n),this.z=new Float64Array(n+1),this.v=new Uint16Array(n);}_createCanvas(t){const e=document.createElement("canvas");return e.width=e.height=t,e}draw(t){const{width:e,actualBoundingBoxAscent:i,actualBoundingBoxDescent:s,actualBoundingBoxLeft:a,actualBoundingBoxRight:o}=this.ctx.measureText(t),r=Math.ceil(i),n=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o-a))),l=Math.min(this.size-this.buffer,r+Math.ceil(s)),h=n+2*this.buffer,c=l+2*this.buffer,u=Math.max(h*c,0),d=new Uint8ClampedArray(u),_={data:d,width:h,height:c,glyphWidth:n,glyphHeight:l,glyphTop:r,glyphLeft:0,glyphAdvance:e};if(0===n||0===l)return _;const{ctx:p,buffer:m,gridInner:f,gridOuter:g}=this;p.clearRect(m,m,n,l),p.fillText(t,m,m+r);const v=p.getImageData(m,m,n,l);g.fill(w,0,u),f.fill(0,0,u);for(let t=0;t0?t*t:0,f[s]=t<0?t*t:0;}}T(g,0,0,h,c,h,this.f,this.v,this.z),T(f,m,m,n,l,h,this.f,this.v,this.z);for(let t=0;t1&&(r=t[++o]);const l=Math.abs(n-r.left),h=Math.abs(n-r.right),c=Math.min(l,h);let u;const d=e/i*(s+1);if(r.isDash){const t=s-Math.abs(d);u=Math.sqrt(c*c+t*t);}else u=s-Math.sqrt(c*c+d*d);this.data[a+n]=Math.max(0,Math.min(255,u+128));}}}addRegularDash(t){for(let e=t.length-1;e>=0;--e){const i=t[e],s=t[e+1];i.zeroLength?t.splice(e,1):s&&s.isDash===i.isDash&&(s.left=i.left,t.splice(e,1));}const e=t[0],i=t[t.length-1];e.isDash===i.isDash&&(e.left=i.left-this.width,i.right=e.right+this.width);const s=this.width*this.nextRow;let a=0,o=t[a];for(let e=0;e1&&(o=t[++a]);const i=Math.abs(e-o.left),r=Math.abs(e-o.right),n=Math.min(i,r);this.data[s+e]=Math.max(0,Math.min(255,(o.isDash?n:-n)+128));}}addDash(e,i){const s=i?7:0,a=2*s+1;if(this.nextRow+a>this.height)return t.w("LineAtlas out of space"),null;let o=0;for(let t=0;t{t.send(e,i,s);}),s=s||function(){});}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(t=!0){this.actors.forEach((t=>{t.remove();})),this.actors=[],t&&this.workerPool.release(this.id);}}function z(e,i,s){const a=function(i,a){if(i)return s(i);if(a){const i=t.F(t.e(a,e),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(i.vectorLayers=a.vector_layers,i.vectorLayerIds=i.vectorLayers.map((t=>t.id))),s(null,i);}};return e.url?t.f(i.transformRequest(e.url,c.Source),a):t.h.frame((()=>a(null,e)))}class L{constructor(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):Array.isArray(t)&&(4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1])));}setNorthEast(e){return this._ne=e instanceof t.L?new t.L(e.lng,e.lat):t.L.convert(e),this}setSouthWest(e){return this._sw=e instanceof t.L?new t.L(e.lng,e.lat):t.L.convert(e),this}extend(e){const i=this._sw,s=this._ne;let a,o;if(e instanceof t.L)a=e,o=e;else {if(!(e instanceof L))return Array.isArray(e)?4===e.length||e.every(Array.isArray)?this.extend(L.convert(e)):this.extend(t.L.convert(e)):e&&("lng"in e||"lon"in e)&&"lat"in e?this.extend(t.L.convert(e)):this;if(a=e._sw,o=e._ne,!a||!o)return this}return i||s?(i.lng=Math.min(a.lng,i.lng),i.lat=Math.min(a.lat,i.lat),s.lng=Math.max(o.lng,s.lng),s.lat=Math.max(o.lat,s.lat)):(this._sw=new t.L(a.lng,a.lat),this._ne=new t.L(o.lng,o.lat)),this}getCenter(){return new t.L((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new t.L(this.getWest(),this.getNorth())}getSouthEast(){return new t.L(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return [this._sw.toArray(),this._ne.toArray()]}toString(){return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return !(this._sw&&this._ne)}contains(e){const{lng:i,lat:s}=t.L.convert(e);let a=this._sw.lng<=i&&i<=this._ne.lng;return this._sw.lng>this._ne.lng&&(a=this._sw.lng>=i&&i>=this._ne.lng),this._sw.lat<=s&&s<=this._ne.lat&&a}static convert(t){return t instanceof L?t:t?new L(t):t}static fromLngLat(e,i=0){const s=360*i/40075017,a=s/Math.cos(Math.PI/180*e.lat);return new L(new t.L(e.lng-a,e.lat-s),new t.L(e.lng+a,e.lat+s))}}class A{constructor(t,e,i){this.bounds=L.convert(this.validateBounds(t)),this.minzoom=e||0,this.maxzoom=i||24;}validateBounds(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]}contains(e){const i=Math.pow(2,e.z),s=Math.floor(t.G(this.bounds.getWest())*i),a=Math.floor(t.H(this.bounds.getNorth())*i),o=Math.ceil(t.G(this.bounds.getEast())*i),r=Math.ceil(t.H(this.bounds.getSouth())*i);return e.x>=s&&e.x=a&&e.y{this._loaded=!1,this.fire(new t.k("dataloading",{dataType:"source"})),this._tileJSONRequest=z(this._options,this.map._requestManager,((e,i)=>{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),e?this.fire(new t.j(e)):i&&(t.e(this,i),i.bounds&&(this.tileBounds=new A(i.bounds,this.minzoom,this.maxzoom)),this.fire(new t.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new t.k("data",{dataType:"source",sourceDataType:"content"})));}));},this.serialize=()=>t.e({},this._options),this.id=e,this.dispatcher=s,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,t.e(this,t.F(i,["url","scheme","tileSize","promoteId"])),this._options=t.e({type:"vector"},i),this._collectResourceTiming=i.collectResourceTiming,512!==this.tileSize)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(a);}loaded(){return this._loaded}hasTile(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)}onAdd(t){this.map=t,this.load();}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.load();}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t;})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t;})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}loadTile(t,e){const i=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),s={request:this.map._requestManager.transformRequest(i,c.Tile),uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function a(i,s){return delete t.request,t.aborted?e(null):i&&404!==i.status?e(i):(s&&s.resourceTiming&&(t.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&t.setExpiryData(s),t.loadVectorData(s,this.map.painter),e(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}s.request.collectResourceTiming=this._collectResourceTiming,t.actor&&"expired"!==t.state?"loading"===t.state?t.reloadCallback=e:t.request=t.actor.send("reloadTile",s,a.bind(this)):(t.actor=this.dispatcher.getActor(),t.request=t.actor.send("loadTile",s,a.bind(this)));}abortTile(t){t.request&&(t.request.cancel(),delete t.request),t.actor&&t.actor.send("abortTile",{uid:t.uid,type:this.type,source:this.id},void 0);}unloadTile(t){t.unloadVectorData(),t.actor&&t.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id},void 0);}hasTransition(){return !1}}class k extends t.E{constructor(e,i,s,a){super(),this.id=e,this.dispatcher=s,this.setEventedParent(a),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=t.e({type:"raster"},i),t.e(this,t.F(i,["url","scheme","tileSize"]));}load(){this._loaded=!1,this.fire(new t.k("dataloading",{dataType:"source"})),this._tileJSONRequest=z(this._options,this.map._requestManager,((e,i)=>{this._tileJSONRequest=null,this._loaded=!0,e?this.fire(new t.j(e)):i&&(t.e(this,i),i.bounds&&(this.tileBounds=new A(i.bounds,this.minzoom,this.maxzoom)),this.fire(new t.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new t.k("data",{dataType:"source",sourceDataType:"content"})));}));}loaded(){return this._loaded}onAdd(t){this.map=t,this.load();}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.load();}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t;})),this}serialize(){return t.e({},this._options)}hasTile(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t,e){const i=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.request=h.getImage(this.map._requestManager.transformRequest(i,c.Tile),((i,s,a)=>{if(delete t.request,t.aborted)t.state="unloaded",e(null);else if(i)t.state="errored",e(i);else if(s){this.map._refreshExpiredTiles&&a&&t.setExpiryData(a);const i=this.map.painter.context,o=i.gl;t.texture=this.map.painter.getTileTexture(s.width),t.texture?t.texture.update(s,{useMipmap:!0}):(t.texture=new x(i,s,o.RGBA,{useMipmap:!0}),t.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST),i.extTextureFilterAnisotropic&&o.texParameterf(o.TEXTURE_2D,i.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,i.extTextureFilterAnisotropicMax)),t.state="loaded",e(null);}}),this.map._refreshExpiredTiles);}abortTile(t,e){t.request&&(t.request.cancel(),delete t.request),e();}unloadTile(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e();}hasTransition(){return !1}}class F extends k{constructor(e,i,s,a){super(e,i,s,a),this.type="raster-dem",this.maxzoom=22,this._options=t.e({type:"raster-dem"},i),this.encoding=i.encoding||"mapbox",this.redFactor=i.redFactor,this.greenFactor=i.greenFactor,this.blueFactor=i.blueFactor,this.baseShift=i.baseShift;}loadTile(e,i){const s=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a=this.map._requestManager.transformRequest(s,c.Tile);function o(t,s){t&&(e.state="errored",i(t)),s&&(e.dem=s,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state="loaded",i(null));}e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.request=h.getImage(a,((s,a,r)=>t._(this,void 0,void 0,(function*(){if(delete e.request,e.aborted)e.state="unloaded",i(null);else if(s)e.state="errored",i(s);else if(a){this.map._refreshExpiredTiles&&e.setExpiryData(r);const i=t.a(a)&&t.J()?a:yield function(e){return t._(this,void 0,void 0,(function*(){if("undefined"!=typeof VideoFrame&&t.K()){const i=e.width+2,s=e.height+2;try{return new t.R({width:i,height:s},yield t.M(e,-1,-1,i,s))}catch(t){}}return t.h.getImageData(e,1)}))}(a),s={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:i,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};e.actor&&"expired"!==e.state||(e.actor=this.dispatcher.getActor(),e.actor.send("loadDEMTile",s,o));}}))),this.map._refreshExpiredTiles);}_getNeighboringTiles(e){const i=e.canonical,s=Math.pow(2,i.z),a=(i.x-1+s)%s,o=0===i.x?e.wrap-1:e.wrap,r=(i.x+1+s)%s,n=i.x+1===s?e.wrap+1:e.wrap,l={};return l[new t.O(e.overscaledZ,o,i.z,a,i.y).key]={backfilled:!1},l[new t.O(e.overscaledZ,n,i.z,r,i.y).key]={backfilled:!1},i.y>0&&(l[new t.O(e.overscaledZ,o,i.z,a,i.y-1).key]={backfilled:!1},l[new t.O(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new t.O(e.overscaledZ,n,i.z,r,i.y-1).key]={backfilled:!1}),i.y+1{this._updateWorkerData();},this.serialize=()=>t.e({},this._options,{type:this.type,data:this._data}),this.id=e,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=s.getActor(),this.setEventedParent(a),this._data=i.data,this._options=t.e({},i),this._collectResourceTiming=i.collectResourceTiming,void 0!==i.maxzoom&&(this.maxzoom=i.maxzoom),i.type&&(this.type=i.type),i.attribution&&(this.attribution=i.attribution),this.promoteId=i.promoteId;const o=t.N/this.tileSize;this.workerOptions=t.e({source:this.id,cluster:i.cluster||!1,geojsonVtOptions:{buffer:(void 0!==i.buffer?i.buffer:128)*o,tolerance:(void 0!==i.tolerance?i.tolerance:.375)*o,extent:t.N,maxZoom:this.maxzoom,lineMetrics:i.lineMetrics||!1,generateId:i.generateId||!1},superclusterOptions:{maxZoom:void 0!==i.clusterMaxZoom?i.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,i.clusterMinPoints||2),extent:t.N,radius:(i.clusterRadius||50)*o,log:!1,generateId:i.generateId||!1},clusterProperties:i.clusterProperties,filter:i.filter},i.workerOptions),"string"==typeof this.promoteId&&(this.workerOptions.promoteId=this.promoteId);}onAdd(t){this.map=t,this.load();}setData(t){return this._data=t,this._updateWorkerData(),this}updateData(t){return this._updateWorkerData(t),this}setClusterOptions(t){return this.workerOptions.cluster=t.cluster,t&&(void 0!==t.clusterRadius&&(this.workerOptions.superclusterOptions.radius=t.clusterRadius),void 0!==t.clusterMaxZoom&&(this.workerOptions.superclusterOptions.maxZoom=t.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this}getClusterChildren(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this}getClusterLeaves(t,e,i,s){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:i},s),this}_updateWorkerData(e){const i=t.e({},this.workerOptions);e?i.dataDiff=e:"string"==typeof this._data?(i.request=this.map._requestManager.transformRequest(t.h.resolveURL(this._data),c.Source),i.request.collectResourceTiming=this._collectResourceTiming):i.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new t.k("dataloading",{dataType:"source"})),this.actor.send(`${this.type}.loadData`,i,((e,i)=>{if(this._pendingLoads--,this._removed||i&&i.abandoned)return void this.fire(new t.k("dataabort",{dataType:"source"}));let s=null;if(i&&i.resourceTiming&&i.resourceTiming[this.id]&&(s=i.resourceTiming[this.id].slice(0)),e)return void this.fire(new t.j(e));const a={dataType:"source"};this._collectResourceTiming&&s&&s.length>0&&t.e(a,{resourceTiming:s}),this.fire(new t.k("data",Object.assign(Object.assign({},a),{sourceDataType:"metadata"}))),this.fire(new t.k("data",Object.assign(Object.assign({},a),{sourceDataType:"content"})));}));}loaded(){return 0===this._pendingLoads}loadTile(t,e){const i=t.actor?"reloadTile":"loadTile";t.actor=this.actor;const s={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};t.request=this.actor.send(i,s,((s,a)=>(delete t.request,t.unloadVectorData(),t.aborted?e(null):s?e(s):(t.loadVectorData(a,this.map.painter,"reloadTile"===i),e(null)))));}abortTile(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0;}unloadTile(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id});}onRemove(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id});}hasTransition(){return !1}}var O=t.Q([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class N extends t.E{constructor(e,i,s,a){super(),this.load=(e,i)=>{this._loaded=!1,this.fire(new t.k("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=h.getImage(this.map._requestManager.transformRequest(this.url,c.Image),((s,a)=>{this._request=null,this._loaded=!0,s?this.fire(new t.j(s)):a&&(this.image=a,e&&(this.coordinates=e),i&&i(),this._finishLoading());}));},this.prepare=()=>{if(0===Object.keys(this.tiles).length||!this.image)return;const e=this.map.painter.context,i=e.gl;this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.S.simpleSegment(0,0,4,2)),this.texture||(this.texture=new x(e,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let s=!1;for(const t in this.tiles){const e=this.tiles[t];"loaded"!==e.state&&(e.state="loaded",e.texture=this.texture,s=!0);}s&&this.fire(new t.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}));},this.serialize=()=>({type:"image",url:this.options.url,coordinates:this.coordinates}),this.id=e,this.dispatcher=s,this.coordinates=i.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(a),this.options=i;}loaded(){return this._loaded}updateImage(t){return t.url?(this._request&&(this._request.cancel(),this._request=null),this.options.url=t.url,this.load(t.coordinates,(()=>{this.texture=null;})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.k("data",{dataType:"source",sourceDataType:"metadata"})));}onAdd(t){this.map=t,this.load();}onRemove(){this._request&&(this._request.cancel(),this._request=null);}setCoordinates(e){this.coordinates=e;const i=e.map(t.U.fromLngLat);this.tileID=function(e){let i=1/0,s=1/0,a=-1/0,o=-1/0;for(const t of e)i=Math.min(i,t.x),s=Math.min(s,t.y),a=Math.max(a,t.x),o=Math.max(o,t.y);const r=Math.max(a-i,o-s),n=Math.max(0,Math.floor(-Math.log(r)/Math.LN2)),l=Math.pow(2,n);return new t.W(n,Math.floor((i+a)/2*l),Math.floor((s+o)/2*l))}(i),this.minzoom=this.maxzoom=this.tileID.z;const s=i.map((t=>this.tileID.getTilePoint(t)._round()));return this._boundsArray=new t.V,this._boundsArray.emplaceBack(s[0].x,s[0].y,0,0),this._boundsArray.emplaceBack(s[1].x,s[1].y,t.N,0),this._boundsArray.emplaceBack(s[3].x,s[3].y,0,t.N),this._boundsArray.emplaceBack(s[2].x,s[2].y,t.N,t.N),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new t.k("data",{dataType:"source",sourceDataType:"content"})),this}loadTile(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state="errored",e(null));}hasTransition(){return !1}}class U extends N{constructor(e,i,s,a){super(e,i,s,a),this.load=()=>{this._loaded=!1;const e=this.options;this.urls=[];for(const t of e.urls)this.urls.push(this.map._requestManager.transformRequest(t,c.Source).url);t.X(this.urls,((e,i)=>{this._loaded=!0,e?this.fire(new t.j(e)):i&&(this.video=i,this.video.loop=!0,this.video.addEventListener("playing",(()=>{this.map.triggerRepaint();})),this.map&&this.video.play(),this._finishLoading());}));},this.prepare=()=>{if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const e=this.map.painter.context,i=e.gl;this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.S.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new x(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let s=!1;for(const t in this.tiles){const e=this.tiles[t];"loaded"!==e.state&&(e.state="loaded",e.texture=this.texture,s=!0);}s&&this.fire(new t.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}));},this.serialize=()=>({type:"video",urls:this.urls,coordinates:this.coordinates}),this.roundZoom=!0,this.type="video",this.options=i;}pause(){this.video&&this.video.pause();}play(){this.video&&this.video.play();}seek(e){if(this.video){const i=this.video.seekable;ei.end(0)?this.fire(new t.j(new t.Y(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=e;}}getVideo(){return this.video}onAdd(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));}hasTransition(){return this.video&&!this.video.paused}}class Z extends N{constructor(e,i,s,a){super(e,i,s,a),this.load=()=>{this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.j(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint();},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1);},this._finishLoading());},this.prepare=()=>{let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions())return;if(0===Object.keys(this.tiles).length)return;const i=this.map.painter.context,s=i.gl;this.boundsBuffer||(this.boundsBuffer=i.createVertexBuffer(this._boundsArray,O.members)),this.boundsSegments||(this.boundsSegments=t.S.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new x(i,this.canvas,s.RGBA,{premultiply:!0});let a=!1;for(const t in this.tiles){const e=this.tiles[t];"loaded"!==e.state&&(e.state="loaded",e.texture=this.texture,a=!0);}a&&this.fire(new t.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}));},this.serialize=()=>({type:"canvas",coordinates:this.coordinates}),i.coordinates?Array.isArray(i.coordinates)&&4===i.coordinates.length&&!i.coordinates.some((t=>!Array.isArray(t)||2!==t.length||t.some((t=>"number"!=typeof t))))||this.fire(new t.j(new t.Y(`sources.${e}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.j(new t.Y(`sources.${e}`,null,'missing required property "coordinates"'))),i.animate&&"boolean"!=typeof i.animate&&this.fire(new t.j(new t.Y(`sources.${e}`,null,'optional "animate" property must be a boolean value'))),i.canvas?"string"==typeof i.canvas||i.canvas instanceof HTMLCanvasElement||this.fire(new t.j(new t.Y(`sources.${e}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.j(new t.Y(`sources.${e}`,null,'missing required property "canvas"'))),this.options=i,this.animate=void 0===i.animate||i.animate;}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play();}onRemove(){this.pause();}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const t of [this.canvas.width,this.canvas.height])if(isNaN(t)||t<=0)return !0;return !1}}const G={},j=t=>{switch(t){case"geojson":return B;case"image":return N;case"raster":return k;case"raster-dem":return F;case"vector":return R;case"video":return U;case"canvas":return Z}return G[t]};function V(e,i){const s=t.Z();return t.$(s,s,[1,1,0]),t.a0(s,s,[.5*e.width,.5*e.height,1]),t.a1(s,s,e.calculatePosMatrix(i.toUnwrapped()))}function q(t,e,i,s,a,o){const r=function(t,e,i){if(t)for(const s of t){const t=e[s];if(t&&t.source===i&&"fill-extrusion"===t.type)return !0}else for(const t in e){const s=e[t];if(s.source===i&&"fill-extrusion"===s.type)return !0}return !1}(a&&a.layers,e,t.id),n=o.maxPitchScaleFactor(),l=t.tilesIn(s,n,r);l.sort($);const h=[];for(const s of l)h.push({wrappedTileID:s.tileID.wrapped().key,queryResults:s.tile.queryRenderedFeatures(e,i,t._state,s.queryGeometry,s.cameraQueryGeometry,s.scale,a,o,n,V(t.transform,s.tileID))});const c=function(t){const e={},i={};for(const s of t){const t=s.queryResults,a=s.wrappedTileID,o=i[a]=i[a]||{};for(const i in t){const s=t[i],a=o[i]=o[i]||{},r=e[i]=e[i]||[];for(const t of s)a[t.featureIndex]||(a[t.featureIndex]=!0,r.push(t));}}return e}(h);for(const e in c)c[e].forEach((e=>{const i=e.feature,s=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=s;}));return c}function $(t,e){const i=t.tileID,s=e.tileID;return i.overscaledZ-s.overscaledZ||i.canonical.y-s.canonical.y||i.wrap-s.wrap||i.canonical.x-s.canonical.x}class W{constructor(e,i){this.timeAdded=0,this.fadeEndTime=0,this.tileID=e,this.uid=t.a2(),this.uses=0,this.tileSize=i,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading";}registerFadeDuration(t){const e=t+this.timeAdded;ee.getLayer(t))).filter(Boolean);if(0!==t.length){s.layers=t,s.stateDependentLayerIds&&(s.stateDependentLayers=s.stateDependentLayerIds.map((e=>t.filter((t=>t.id===e))[0])));for(const e of t)i[e.id]=s;}}return i}(e.buckets,i.style),this.hasSymbolBuckets=!1;for(const e in this.buckets){const i=this.buckets[e];if(i instanceof t.a4){if(this.hasSymbolBuckets=!0,!s)break;i.justReloaded=!0;}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const e in this.buckets){const i=this.buckets[e];if(i instanceof t.a4&&i.hasRTLText){this.hasRTLText=!0,t.a5();break}}this.queryPadding=0;for(const t in this.buckets){const e=this.buckets[t];this.queryPadding=Math.max(this.queryPadding,i.style.getLayer(t).queryRadius(e));}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage);}else this.collisionBoxArray=new t.a3;}unloadVectorData(){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded";}getBucket(t){return this.buckets[t.id]}upload(t){for(const e in this.buckets){const i=this.buckets[e];i.uploadPending()&&i.upload(t);}const e=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new x(t,this.imageAtlas.image,e.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new x(t,this.glyphAtlasImage,e.ALPHA),this.glyphAtlasImage=null);}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture);}queryRenderedFeatures(t,e,i,s,a,o,r,n,l,h){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:s,cameraQueryGeometry:a,scale:o,tileSize:this.tileSize,pixelPosMatrix:h,transform:n,params:r,queryPadding:this.queryPadding*l},t,e,i):{}}querySourceFeatures(e,i){const s=this.latestFeatureIndex;if(!s||!s.rawTileData)return;const a=s.loadVTLayers(),o=i&&i.sourceLayer?i.sourceLayer:"",r=a._geojsonTileLayer||a[o];if(!r)return;const n=t.a6(i&&i.filter),{z:l,x:h,y:c}=this.tileID.canonical,u={z:l,x:h,y:c};for(let i=0;it)e=!1;else if(i)if(this.expirationTime{this.remove(t,a);}),i)),this.data[s].push(a),this.order.push(s),this.order.length>this.max){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value}getByKey(t){const e=this.data[t];return e?e[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,e){if(!this.has(t))return this;const i=t.wrapped().key,s=void 0===e?0:this.data[i].indexOf(e),a=this.data[i][s];return this.data[i].splice(s,1),a.timeout&&clearTimeout(a.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(a.value),this.order.splice(this.order.indexOf(i),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}filter(t){const e=[];for(const i in this.data)for(const s of this.data[i])t(s.value)||e.push(s);for(const t of e)this.remove(t.value.tileID,t);}}class X{constructor(){this.state={},this.stateChanges={},this.deletedStates={};}updateState(e,i,s){const a=String(i);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][a]=this.stateChanges[e][a]||{},t.e(this.stateChanges[e][a],s),null===this.deletedStates[e]){this.deletedStates[e]={};for(const t in this.state[e])t!==a&&(this.deletedStates[e][t]=null);}else if(this.deletedStates[e]&&null===this.deletedStates[e][a]){this.deletedStates[e][a]={};for(const t in this.state[e][a])s[t]||(this.deletedStates[e][a][t]=null);}else for(const t in s)this.deletedStates[e]&&this.deletedStates[e][a]&&null===this.deletedStates[e][a][t]&&delete this.deletedStates[e][a][t];}removeFeatureState(t,e,i){if(null===this.deletedStates[t])return;const s=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},i&&void 0!==e)null!==this.deletedStates[t][s]&&(this.deletedStates[t][s]=this.deletedStates[t][s]||{},this.deletedStates[t][s][i]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][s])for(i in this.deletedStates[t][s]={},this.stateChanges[t][s])this.deletedStates[t][s][i]=null;else this.deletedStates[t][s]=null;else this.deletedStates[t]=null;}getState(e,i){const s=String(i),a=t.e({},(this.state[e]||{})[s],(this.stateChanges[e]||{})[s]);if(null===this.deletedStates[e])return {};if(this.deletedStates[e]){const t=this.deletedStates[e][i];if(null===t)return {};for(const e in t)delete a[e];}return a}initializeTileState(t,e){t.setFeatureState(this.state,e);}coalesceChanges(e,i){const s={};for(const e in this.stateChanges){this.state[e]=this.state[e]||{};const i={};for(const s in this.stateChanges[e])this.state[e][s]||(this.state[e][s]={}),t.e(this.state[e][s],this.stateChanges[e][s]),i[s]=this.state[e][s];s[e]=i;}for(const e in this.deletedStates){this.state[e]=this.state[e]||{};const i={};if(null===this.deletedStates[e])for(const t in this.state[e])i[t]={},this.state[e][t]={};else for(const t in this.deletedStates[e]){if(null===this.deletedStates[e][t])this.state[e][t]={};else for(const i of Object.keys(this.deletedStates[e][t]))delete this.state[e][t][i];i[t]=this.state[e][t];}s[e]=s[e]||{},t.e(s[e],i);}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(s).length)for(const t in e)e[t].setFeatureState(s,i);}}class K extends t.E{constructor(t,e,i){super(),this.id=t,this.dispatcher=i,this.on("data",(t=>{"source"===t.dataType&&"metadata"===t.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===t.dataType&&"content"===t.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0);})),this.on("dataloading",(()=>{this._sourceErrored=!1;})),this.on("error",(()=>{this._sourceErrored=this._source.loaded();})),this._source=((t,e,i,s)=>{const a=new(j(e.type))(t,e,i,s);if(a.id!==t)throw new Error(`Expected Source id to be ${t} instead of ${a.id}`);return a})(t,e,i,this),this._tiles={},this._cache=new H(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new X,this._didEmitContent=!1,this._updated=!1;}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(t);}onRemove(t){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t);}loaded(){if(this._sourceErrored)return !0;if(!this._sourceLoaded)return !1;if(!this._source.loaded())return !1;if(!(void 0===this.used&&void 0===this.usedForTerrain||this.used||this.usedForTerrain))return !0;if(!this._updated)return !1;for(const t in this._tiles){const e=this._tiles[t];if("loaded"!==e.state&&"errored"!==e.state)return !1}return !0}getSource(){return this._source}pause(){this._paused=!0;}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform,this.terrain);}_loadTile(t,e){return this._source.loadTile(t,e)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,(()=>{}))}_abortTile(e){this._source.abortTile&&this._source.abortTile(e,(()=>{})),this._source.fire(new t.k("dataabort",{tile:e,coord:e.tileID,dataType:"source"}));}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const e in this._tiles){const i=this._tiles[e];i.upload(t),i.prepare(this.map.style.imageManager);}}getIds(){return Object.values(this._tiles).map((t=>t.tileID)).sort(Q).map((t=>t.key))}getRenderableIds(e){const i=[];for(const t in this._tiles)this._isIdRenderable(t,e)&&i.push(this._tiles[t]);return e?i.sort(((e,i)=>{const s=e.tileID,a=i.tileID,o=new t.P(s.canonical.x,s.canonical.y)._rotate(this.transform.angle),r=new t.P(a.canonical.x,a.canonical.y)._rotate(this.transform.angle);return s.overscaledZ-a.overscaledZ||r.y-o.y||r.x-o.x})).map((t=>t.tileID.key)):i.map((t=>t.tileID)).sort(Q).map((t=>t.key))}hasRenderableParent(t){const e=this.findLoadedParent(t,0);return !!e&&this._isIdRenderable(e.tileID.key)}_isIdRenderable(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else {this._cache.reset();for(const t in this._tiles)"errored"!==this._tiles[t].state&&this._reloadTile(t,"reloading");}}_reloadTile(t,e){const i=this._tiles[t];i&&("loading"!==i.state&&(i.state=e),this._loadTile(i,this._tileLoaded.bind(this,i,t,e)));}_tileLoaded(e,i,s,a){if(a)return e.state="errored",void(404!==a.status?this._source.fire(new t.j(a,{tile:e})):this.update(this.transform,this.terrain));e.timeAdded=t.h.now(),"expired"===s&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(i,e),"raster-dem"===this.getSource().type&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new t.k("data",{dataType:"source",tile:e,coord:e.tileID}));}_backfillDEM(t){const e=this.getRenderableIds();for(let s=0;s1||(Math.abs(i)>1&&(1===Math.abs(i+a)?i+=a:1===Math.abs(i-a)&&(i-=a)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,s),t.neighboringTiles&&t.neighboringTiles[o]&&(t.neighboringTiles[o].backfilled=!0)));}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,e,i,s){for(const a in this._tiles){let o=this._tiles[a];if(s[a]||!o.hasData()||o.tileID.overscaledZ<=e||o.tileID.overscaledZ>i)continue;let r=o.tileID;for(;o&&o.tileID.overscaledZ>e+1;){const t=o.tileID.scaledTo(o.tileID.overscaledZ-1);o=this._tiles[t.key],o&&o.hasData()&&(r=t);}let n=r;for(;n.overscaledZ>e;)if(n=n.scaledTo(n.overscaledZ-1),t[n.key]){s[r.key]=r;break}}}findLoadedParent(t,e){if(t.key in this._loadedParentTiles){const i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(let i=t.overscaledZ-1;i>=e;i--){const e=t.scaledTo(i),s=this._getLoadedTile(e);if(s)return s}}_getLoadedTile(t){const e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)}updateCacheSize(e){const i=Math.ceil(e.width/this._source.tileSize)+1,s=Math.ceil(e.height/this._source.tileSize)+1,a=Math.floor(i*s*(null===this._maxTileCacheZoomLevels?t.c.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),o="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(o);}handleWrapJump(t){const e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){const t={};for(const i in this._tiles){const s=this._tiles[i];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+e),t[s.tileID.key]=s;}this._tiles=t;for(const t in this._timers)clearTimeout(this._timers[t]),delete this._timers[t];for(const t in this._tiles)this._setTileReloadTimer(t,this._tiles[t]);}}update(e,i){if(this.transform=e,this.terrain=i,!this._sourceLoaded||this._paused)return;let s;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?s=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((e=>new t.O(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y))):(s=e.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:i}),this._source.hasTile&&(s=s.filter((t=>this._source.hasTile(t))))):s=[];const a=e.coveringZoomLevel(this._source),o=Math.max(a-K.maxOverzooming,this._source.minzoom),r=Math.max(a+K.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const t={};for(const e of s)if(e.canonical.z>this._source.minzoom){const i=e.scaledTo(e.canonical.z-1);t[i.key]=i;const s=e.scaledTo(Math.max(this._source.minzoom,Math.min(e.canonical.z,5)));t[s.key]=s;}s=s.concat(Object.values(t));}const n=0===s.length&&!this._updated&&this._didEmitContent;this._updated=!0,n&&this.fire(new t.k("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const l=this._updateRetainedTiles(s,a);if(Y(this._source.type)){const e={},n={},h=Object.keys(l),c=t.h.now();for(const t of h){const i=l[t],s=this._tiles[t];if(!s||0!==s.fadeEndTime&&s.fadeEndTime<=c)continue;const a=this.findLoadedParent(i,o);a&&(this._addTile(a.tileID),e[a.tileID.key]=a.tileID),n[t]=i;}this._retainLoadedChildren(n,a,r,l);for(const t in e)l[t]||(this._coveredTiles[t]=!0,l[t]=e[t]);if(i){const t={},e={};for(const i of s)this._tiles[i.key].hasData()?t[i.key]=i:e[i.key]=i;for(const i in e){const s=e[i].children(this._source.maxzoom);this._tiles[s[0].key]&&this._tiles[s[1].key]&&this._tiles[s[2].key]&&this._tiles[s[3].key]&&(t[s[0].key]=l[s[0].key]=s[0],t[s[1].key]=l[s[1].key]=s[1],t[s[2].key]=l[s[2].key]=s[2],t[s[3].key]=l[s[3].key]=s[3],delete e[i]);}for(const i in e){const s=this.findLoadedParent(e[i],this._source.minzoom);if(s){t[s.tileID.key]=l[s.tileID.key]=s.tileID;for(const e in t)t[e].isChildOf(s.tileID)&&delete t[e];}}for(const e in this._tiles)t[e]||(this._coveredTiles[e]=!0);}}for(const t in l)this._tiles[t].clearFadeHold();const h=t.ab(this._tiles,l);for(const t of h){const e=this._tiles[t];e.hasSymbolBuckets&&!e.holdingForFade()?e.setHoldDuration(this.map._fadeDuration):e.hasSymbolBuckets&&!e.symbolFadeFinished()||this._removeTile(t);}this._updateLoadedParentTileCache();}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t);}_updateRetainedTiles(t,e){const i={},s={},a=Math.max(e-K.maxOverzooming,this._source.minzoom),o=Math.max(e+K.maxUnderzooming,this._source.minzoom),r={};for(const s of t){const t=this._addTile(s);i[s.key]=s,t.hasData()||ethis._source.maxzoom){const t=o.children(this._source.maxzoom)[0],e=this.getTile(t);if(e&&e.hasData()){i[t.key]=t;continue}}else {const t=o.children(this._source.maxzoom);if(i[t[0].key]&&i[t[1].key]&&i[t[2].key]&&i[t[3].key])continue}let r=t.wasRequested();for(let e=o.overscaledZ-1;e>=a;--e){const a=o.scaledTo(e);if(s[a.key])break;if(s[a.key]=!0,t=this.getTile(a),!t&&r&&(t=this._addTile(a)),t){const e=t.hasData();if((r||e)&&(i[a.key]=a),r=t.wasRequested(),e)break}}}return i}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const e=[];let i,s=this._tiles[t].tileID;for(;s.overscaledZ>0;){if(s.key in this._loadedParentTiles){i=this._loadedParentTiles[s.key];break}e.push(s.key);const t=s.scaledTo(s.overscaledZ-1);if(i=this._getLoadedTile(t),i)break;s=t;}for(const t of e)this._loadedParentTiles[t]=i;}}_addTile(e){let i=this._tiles[e.key];if(i)return i;i=this._cache.getAndRemove(e),i&&(this._setTileReloadTimer(e.key,i),i.tileID=e,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,i)));const s=i;return i||(i=new W(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(i,this._tileLoaded.bind(this,i,e.key,i.state))),i.uses++,this._tiles[e.key]=i,s||this._source.fire(new t.k("dataloading",{tile:i,coord:i.tileID,dataType:"source"})),i}_setTileReloadTimer(t,e){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const i=e.getExpiryTimeout();i&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,"expired"),delete this._timers[t];}),i));}_removeTile(t){const e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(t);this._cache.reset();}tilesIn(e,i,s){const a=[],o=this.transform;if(!o)return a;const r=s?o.getCameraQueryGeometry(e):e,n=e.map((t=>o.pointCoordinate(t,this.terrain))),l=r.map((t=>o.pointCoordinate(t,this.terrain))),h=this.getIds();let c=1/0,u=1/0,d=-1/0,_=-1/0;for(const t of l)c=Math.min(c,t.x),u=Math.min(u,t.y),d=Math.max(d,t.x),_=Math.max(_,t.y);for(let e=0;e=0&&f[1].y+m>=0){const t=n.map((t=>r.getTilePoint(t))),e=l.map((t=>r.getTilePoint(t)));a.push({tile:s,tileID:r,queryGeometry:t,cameraQueryGeometry:e,scale:p});}}return a}getVisibleCoordinates(t){const e=this.getRenderableIds(t).map((t=>this._tiles[t].tileID));for(const t of e)t.posMatrix=this.transform.calculatePosMatrix(t.toUnwrapped());return e}hasTransition(){if(this._source.hasTransition())return !0;if(Y(this._source.type)){const e=t.h.now();for(const t in this._tiles)if(this._tiles[t].fadeEndTime>=e)return !0}return !1}setFeatureState(t,e,i){this._state.updateState(t=t||"_geojsonTileLayer",e,i);}removeFeatureState(t,e,i){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,i);}getFeatureState(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)}setDependencies(t,e,i){const s=this._tiles[t];s&&s.setDependencies(e,i);}reloadTilesForDependencies(t,e){for(const i in this._tiles)this._tiles[i].hasDependency(t,e)&&this._reloadTile(i,"reloading");this._cache.filter((i=>!i.hasDependency(t,e)));}}function Q(t,e){const i=Math.abs(2*t.wrap)-+(t.wrap<0),s=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||s-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Y(t){return "raster"===t||"image"===t||"video"===t}K.maxOverzooming=10,K.maxUnderzooming=3;const J="mapboxgl_preloaded_worker_pool";class tt{constructor(){this.active={};}acquire(e){if(!this.workers)for(this.workers=[];this.workers.length{t.terminate();})),this.workers=null);}isPreloaded(){return !!this.active[J]}numActive(){return Object.keys(this.active).length}}const et=Math.floor(t.h.hardwareConcurrency/2);let it;function st(){return it||(it=new tt),it}tt.workerCount=t.ac(globalThis)?Math.max(Math.min(et,3),1):1;class at{constructor(t,e){this.reset(t,e);}reset(t,e){this.points=t||[],this._distances=[0];for(let t=1;t0?(a-r)/n:0;return this.points[o].mult(1-l).add(this.points[i].mult(l))}}function ot(t,e){let i=!0;return "always"===t||"never"!==t&&"never"!==e||(i=!1),i}class rt{constructor(t,e,i){const s=this.boxCells=[],a=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(let t=0;tthis.width||s<0||e>this.height)return [];const n=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=s){if(a)return [{key:null,x1:t,y1:e,x2:i,y2:s}];for(let t=0;t0}hitTestCircle(t,e,i,s,a){const o=t-i,r=t+i,n=e-i,l=e+i;if(r<0||o>this.width||l<0||n>this.height)return !1;const h=[];return this._forEachCell(o,n,r,l,this._queryCellCircle,h,{hitTest:!0,overlapMode:s,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},a),h.length>0}_queryCell(t,e,i,s,a,o,r,n){const{seenUids:l,hitTest:h,overlapMode:c}=r,u=this.boxCells[a];if(null!==u){const a=this.bboxes;for(const r of u)if(!l.box[r]){l.box[r]=!0;const u=4*r,d=this.boxKeys[r];if(t<=a[u+2]&&e<=a[u+3]&&i>=a[u+0]&&s>=a[u+1]&&(!n||n(d))&&(!h||!ot(c,d.overlapMode))&&(o.push({key:d,x1:a[u],y1:a[u+1],x2:a[u+2],y2:a[u+3]}),h))return !0}}const d=this.circleCells[a];if(null!==d){const a=this.circles;for(const r of d)if(!l.circle[r]){l.circle[r]=!0;const u=3*r,d=this.circleKeys[r];if(this._circleAndRectCollide(a[u],a[u+1],a[u+2],t,e,i,s)&&(!n||n(d))&&(!h||!ot(c,d.overlapMode))){const t=a[u],e=a[u+1],i=a[u+2];if(o.push({key:d,x1:t-i,y1:e-i,x2:t+i,y2:e+i}),h)return !0}}}return !1}_queryCellCircle(t,e,i,s,a,o,r,n){const{circle:l,seenUids:h,overlapMode:c}=r,u=this.boxCells[a];if(null!==u){const t=this.bboxes;for(const e of u)if(!h.box[e]){h.box[e]=!0;const i=4*e,s=this.boxKeys[e];if(this._circleAndRectCollide(l.x,l.y,l.radius,t[i+0],t[i+1],t[i+2],t[i+3])&&(!n||n(s))&&!ot(c,s.overlapMode))return o.push(!0),!0}}const d=this.circleCells[a];if(null!==d){const t=this.circles;for(const e of d)if(!h.circle[e]){h.circle[e]=!0;const i=3*e,s=this.circleKeys[e];if(this._circlesCollide(t[i],t[i+1],t[i+2],l.x,l.y,l.radius)&&(!n||n(s))&&!ot(c,s.overlapMode))return o.push(!0),!0}}}_forEachCell(t,e,i,s,a,o,r,n){const l=this._convertToXCellCoord(t),h=this._convertToYCellCoord(e),c=this._convertToXCellCoord(i),u=this._convertToYCellCoord(s);for(let d=l;d<=c;d++)for(let l=h;l<=u;l++)if(a.call(this,t,e,i,s,this.xCellCount*l+d,o,r,n))return}_convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}_convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}_circlesCollide(t,e,i,s,a,o){const r=s-t,n=a-e,l=i+o;return l*l>r*r+n*n}_circleAndRectCollide(t,e,i,s,a,o,r){const n=(o-s)/2,l=Math.abs(t-(s+n));if(l>n+i)return !1;const h=(r-a)/2,c=Math.abs(e-(a+h));if(c>h+i)return !1;if(l<=n||c<=h)return !0;const u=l-n,d=c-h;return u*u+d*d<=i*i}}function nt(e,i,s,a,o){const r=t.Z();return i?(t.a0(r,r,[1/o,1/o,1]),s||t.ae(r,r,a.angle)):t.a1(r,a.labelPlaneMatrix,e),r}function lt(e,i,s,a,o){if(i){const i=t.af(e);return t.a0(i,i,[o,o,1]),s||t.ae(i,i,-a.angle),i}return a.glCoordMatrix}function ht(e,i,s){let a;s?(a=[e.x,e.y,s(e.x,e.y),1],t.ag(a,a,i)):(a=[e.x,e.y,0,1],Tt(a,a,i));const o=a[3];return {point:new t.P(a[0]/o,a[1]/o),signedDistanceFromCamera:o}}function ct(t,e){return .5+t/e*.5}function ut(t,e){const i=t[0]/t[3],s=t[1]/t[3];return i>=-e[0]&&i<=e[0]&&s>=-e[1]&&s<=e[1]}function dt(e,i,s,a,o,r,n,l,h,c){const u=a?e.textSizeData:e.iconSizeData,d=t.ah(u,s.transform.zoom),_=[256/s.width*2+1,256/s.height*2+1],p=a?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;p.clear();const m=e.lineVertexArray,f=a?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=s.transform.width/s.transform.height;let v=!1;for(let a=0;aMath.abs(s.x-i.x)*a?{useVertical:!0}:(e===t.ai.vertical?i.ys.x)?{needsFlipping:!0}:null}function mt(e,i,s,a,o,r,n,l,h,c,u,d,_,p,m,f){const g=i/24,v=e.lineOffsetX*g,x=e.lineOffsetY*g;let y;if(e.numGlyphs>1){const t=e.glyphStartIndex+e.numGlyphs,i=e.lineStartIndex,o=e.lineStartIndex+e.lineLength,c=_t(g,l,v,x,s,u,d,e,h,r,_,m,f);if(!c)return {notEnoughRoom:!0};const b=ht(c.first.point,n,f).point,w=ht(c.last.point,n,f).point;if(a&&!s){const t=pt(e.writingMode,b,w,p);if(t)return t}y=[c.first];for(let a=e.glyphStartIndex+1;a0?r.point:ft(d,a,i,1,o,f),l=pt(e.writingMode,i,n,p);if(l)return l}const i=yt(g*l.getoffsetX(e.glyphStartIndex),v,x,s,u,d,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,h,r,_,m,f);if(!i)return {notEnoughRoom:!0};y=[i];}for(const e of y)t.ak(c,e.point,e.angle);return {}}function ft(t,e,i,s,a,o){const r=ht(t.add(t.sub(e)._unit()),a,o).point,n=i.sub(r);return i.add(n._mult(s/n.mag()))}function gt(e,i){const{projectionCache:s,lineVertexArray:a,labelPlaneMatrix:o,tileAnchorPoint:r,distanceFromAnchor:n,getElevation:l,previousVertex:h,direction:c,absOffsetX:u}=i;if(s.projections[e])return s.projections[e];const d=new t.P(a.getx(e),a.gety(e)),_=ht(d,o,l);if(_.signedDistanceFromCamera>0)return s.projections[e]=_.point,_.point;const p=e-c;return ft(0===n?r:new t.P(a.getx(p),a.gety(p)),d,h,u-n+1,o,l)}function vt(t,e,i){return t._unit()._perp()._mult(e*i)}function xt(e,i,s,a,o,r,n,l){const{projectionCache:h,direction:c}=l;if(h.offsets[e])return h.offsets[e];const u=s.add(i);if(e+c=o)return h.offsets[e]=u,u;const d=gt(e+c,l),_=vt(d.sub(s),n,c),p=s.add(_),m=d.add(_);return h.offsets[e]=t.al(r,u,p,m)||u,h.offsets[e]}function yt(t,e,i,s,a,o,r,n,l,h,c,u,d,_){const p=s?t-e:t+e;let m=p>0?1:-1,f=0;s&&(m*=-1,f=Math.PI),m<0&&(f+=Math.PI);let g,v,x=m>0?n+r:n+r+1,y=a,b=a,w=0,T=0;const I=Math.abs(p),E=[];let S;for(;w+T<=I;){if(x+=m,x=l)return null;w+=T,b=y,v=g;const t={projectionCache:u,lineVertexArray:h,labelPlaneMatrix:c,tileAnchorPoint:o,distanceFromAnchor:w,getElevation:_,previousVertex:b,direction:m,absOffsetX:I};if(y=gt(x,t),0===i)E.push(b),S=y.sub(b);else {let e;const s=y.sub(b);e=0===s.mag()?vt(gt(x+m,t).sub(y),i,m):vt(s,i,m),v||(v=b.add(e)),g=xt(x,e,y,n,l,v,i,t),E.push(v),S=g.sub(v);}T=S.mag();}const C=S._mult((I-w)/T)._add(v||b),P=f+Math.atan2(y.y-b.y,y.x-b.x);return E.push(C),{point:C,angle:d?P:0,path:E}}const bt=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function wt(t,e){for(let i=0;i=1;t--)c.push(r.path[t]);for(let t=1;tht(t,l,p)));c=t.some((t=>t.signedDistanceFromCamera<=0))?[]:t.map((t=>t.point));}let g=[];if(c.length>0){const e=c[0].clone(),i=c[0].clone();for(let t=1;t=s.x&&i.x<=a.x&&e.y>=s.y&&i.y<=a.y?[c]:i.xa.x||i.ya.y?[]:t.am([c],s.x,s.y,a.x,a.y);}for(const t of g){o.reset(t,.25*i);let s=0;s=o.length<=.5*i?1:Math.ceil(o.paddedLength/f)+1;for(let t=0;t=this.screenRightBoundary||sthis.screenBottomBoundary}isInsideGrid(t,e,i,s){return i>=0&&t=0&&et.collisionGroupID===e};}return this.collisionGroups[t]}}function At(e,i,s,a,o){const{horizontalAlign:r,verticalAlign:n}=t.au(e);return new t.P(-(r-.5)*i+a[0]*o,-(n-.5)*s+a[1]*o)}function Rt(e,i,s,a,o,r){const{x1:n,x2:l,y1:h,y2:c,anchorPointX:u,anchorPointY:d}=e,_=new t.P(i,s);return a&&_._rotate(o?r:-r),{x1:n+_.x,y1:h+_.y,x2:l+_.x,y2:c+_.y,anchorPointX:u,anchorPointY:d}}class kt{constructor(t,e,i,s,a){this.transform=t.clone(),this.terrain=e,this.collisionIndex=new Et(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=i,this.retainedQueryData={},this.collisionGroups=new Lt(s),this.collisionCircleArrays={},this.prevPlacement=a,a&&(a.prevPlacement=void 0),this.placedOrientations={};}getBucketParts(e,i,s,a){const o=s.getBucket(i),r=s.latestFeatureIndex;if(!o||!r||i.id!==o.layerIds[0])return;const n=s.collisionBoxArray,l=o.layers[0].layout,h=Math.pow(2,this.transform.zoom-s.tileID.overscaledZ),c=s.tileSize/t.N,u=this.transform.calculatePosMatrix(s.tileID.toUnwrapped()),d="map"===l.get("text-pitch-alignment"),_="map"===l.get("text-rotation-alignment"),p=St(s,1,this.transform.zoom),m=nt(u,d,_,this.transform,p);let f=null;if(d){const e=lt(u,d,_,this.transform,p);f=t.a1([],this.transform.labelPlaneMatrix,e);}this.retainedQueryData[o.bucketInstanceId]=new zt(o.bucketInstanceId,r,o.sourceLayerIndex,o.index,s.tileID);const g={bucket:o,layout:l,posMatrix:u,textLabelPlaneMatrix:m,labelToScreenMatrix:f,scale:h,textPixelRatio:c,holdingForFade:s.holdingForFade(),collisionBoxArray:n,partiallyEvaluatedTextSize:t.ah(o.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(o.sourceID)};if(a)for(const t of o.sortKeyRanges){const{sortKey:i,symbolInstanceStart:s,symbolInstanceEnd:a}=t;e.push({sortKey:i,symbolInstanceStart:s,symbolInstanceEnd:a,parameters:g});}else e.push({symbolInstanceStart:0,symbolInstanceEnd:o.symbolInstances.length,parameters:g});}attemptAnchorPlacement(e,i,s,a,o,r,n,l,h,c,u,d,_,p,m,f){const g=t.aq[e.textAnchor],v=[e.textOffset0,e.textOffset1],x=At(g,s,a,v,o),y=this.collisionIndex.placeCollisionBox(Rt(i,x.x,x.y,r,n,this.transform.angle),u,l,h,c.predicate,f);if((!m||0!==this.collisionIndex.placeCollisionBox(Rt(m,x.x,x.y,r,n,this.transform.angle),u,l,h,c.predicate,f).box.length)&&y.box.length>0){let t;if(this.prevPlacement&&this.prevPlacement.variableOffsets[d.crossTileID]&&this.prevPlacement.placements[d.crossTileID]&&this.prevPlacement.placements[d.crossTileID].text&&(t=this.prevPlacement.variableOffsets[d.crossTileID].anchor),0===d.crossTileID)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[d.crossTileID]={textOffset:v,width:s,height:a,anchor:g,textBoxScale:o,prevAnchor:t},this.markUsedJustification(_,g,d,p),_.allowVerticalPlacement&&(this.markUsedOrientation(_,p,d),this.placedOrientations[d.crossTileID]=p),{shift:x,placedGlyphBoxes:y}}}placeLayerBucketPart(e,i,s){const{bucket:a,layout:o,posMatrix:r,textLabelPlaneMatrix:n,labelToScreenMatrix:l,textPixelRatio:h,holdingForFade:c,collisionBoxArray:u,partiallyEvaluatedTextSize:d,collisionGroup:_}=e.parameters,p=o.get("text-optional"),m=o.get("icon-optional"),f=t.ar(o,"text-overlap","text-allow-overlap"),g="always"===f,v=t.ar(o,"icon-overlap","icon-allow-overlap"),x="always"===v,y="map"===o.get("text-rotation-alignment"),b="map"===o.get("text-pitch-alignment"),w="none"!==o.get("icon-text-fit"),T="viewport-y"===o.get("symbol-z-order"),I=g&&(x||!a.hasIconData()||m),E=x&&(g||!a.hasTextData()||p);!a.collisionArrays&&u&&a.deserializeCollisionBoxes(u);const S=this.retainedQueryData[a.bucketInstanceId].tileID,C=this.terrain?(t,e)=>this.terrain.getElevation(S,t,e):null,P=(e,u)=>{var x,T;if(i[e.crossTileID])return;if(c)return void(this.placements[e.crossTileID]=new Dt(!1,!1,!1));let S=!1,P=!1,D=!0,M=null,z={box:null,offscreen:null},L={box:null,offscreen:null},A=null,R=null,k=null,F=0,B=0,O=0;u.textFeatureIndex?F=u.textFeatureIndex:e.useRuntimeCollisionCircles&&(F=e.featureIndex),u.verticalTextFeatureIndex&&(B=u.verticalTextFeatureIndex);const N=u.textBox;if(N){const i=i=>{let s=t.ai.horizontal;if(a.allowVerticalPlacement&&!i&&this.prevPlacement){const t=this.prevPlacement.placedOrientations[e.crossTileID];t&&(this.placedOrientations[e.crossTileID]=t,s=t,this.markUsedOrientation(a,s,e));}return s},s=(i,s)=>{if(a.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&u.verticalTextBox){for(const e of a.writingModes)if(e===t.ai.vertical?(z=s(),L=z):z=i(),z&&z.box&&z.box.length)break}else z=i();},o=e.textAnchorOffsetStartIndex,n=e.textAnchorOffsetEndIndex;if(n===o){const o=(t,i)=>{const s=this.collisionIndex.placeCollisionBox(t,f,h,r,_.predicate,C);return s&&s.box&&s.box.length&&(this.markUsedOrientation(a,i,e),this.placedOrientations[e.crossTileID]=i),s};s((()=>o(N,t.ai.horizontal)),(()=>{const i=u.verticalTextBox;return a.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i?o(i,t.ai.vertical):{box:null,offscreen:null}})),i(z&&z.box&&z.box.length);}else {let l=t.aq[null===(T=null===(x=this.prevPlacement)||void 0===x?void 0:x.variableOffsets[e.crossTileID])||void 0===T?void 0:T.anchor];const c=(t,i,s)=>{const c=t.x2-t.x1,u=t.y2-t.y1,d=e.textBoxScale,p=w&&"never"===v?i:null;let m={box:[],offscreen:!1},g="never"===f?1:2,x="never";l&&g++;for(let i=0;ic(N,u.iconBox,t.ai.horizontal)),(()=>{const i=u.verticalTextBox;return a.allowVerticalPlacement&&!(z&&z.box&&z.box.length)&&e.numVerticalGlyphVertices>0&&i?c(i,u.verticalIconBox,t.ai.vertical):{box:null,offscreen:null}})),z&&(S=z.box,D=z.offscreen);const d=i(z&&z.box);if(!S&&this.prevPlacement){const t=this.prevPlacement.variableOffsets[e.crossTileID];t&&(this.variableOffsets[e.crossTileID]=t,this.markUsedJustification(a,t.anchor,e,d));}}}if(A=z,S=A&&A.box&&A.box.length>0,D=A&&A.offscreen,e.useRuntimeCollisionCircles){const i=a.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),h=t.aj(a.textSizeData,d,i),c=o.get("text-padding");R=this.collisionIndex.placeCollisionCircles(f,i,a.lineVertexArray,a.glyphOffsetArray,h,r,n,l,s,b,_.predicate,e.collisionCircleDiameter,c,C),R.circles.length&&R.collisionDetected&&!s&&t.w("Collisions detected, but collision boxes are not shown"),S=g||R.circles.length>0&&!R.collisionDetected,D=D&&R.offscreen;}if(u.iconFeatureIndex&&(O=u.iconFeatureIndex),u.iconBox){const t=t=>{const e=w&&M?Rt(t,M.x,M.y,y,b,this.transform.angle):t;return this.collisionIndex.placeCollisionBox(e,v,h,r,_.predicate,C)};L&&L.box&&L.box.length&&u.verticalIconBox?(k=t(u.verticalIconBox),P=k.box.length>0):(k=t(u.iconBox),P=k.box.length>0),D=D&&k.offscreen;}const U=p||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,Z=m||0===e.numIconVertices;if(U||Z?Z?U||(P=P&&S):S=P&&S:P=S=P&&S,S&&A&&A.box&&this.collisionIndex.insertCollisionBox(A.box,f,o.get("text-ignore-placement"),a.bucketInstanceId,L&&L.box&&B?B:F,_.ID),P&&k&&this.collisionIndex.insertCollisionBox(k.box,v,o.get("icon-ignore-placement"),a.bucketInstanceId,O,_.ID),R&&(S&&this.collisionIndex.insertCollisionCircles(R.circles,f,o.get("text-ignore-placement"),a.bucketInstanceId,F,_.ID),s)){const t=a.bucketInstanceId;let e=this.collisionCircleArrays[t];void 0===e&&(e=this.collisionCircleArrays[t]=new Mt);for(let t=0;t=0;--e){const i=t[e];P(a.symbolInstances.get(i),a.collisionArrays[i]);}}else for(let t=e.symbolInstanceStart;t=0&&(e.text.placedSymbolArray.get(t).crossTileID=o>=0&&t!==o?0:s.crossTileID);}markUsedOrientation(e,i,s){const a=i===t.ai.horizontal||i===t.ai.horizontalOnly?i:0,o=i===t.ai.vertical?i:0,r=[s.leftJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.rightJustifiedTextSymbolIndex];for(const t of r)e.text.placedSymbolArray.get(t).placedOrientation=a;s.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation=o);}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const e=this.prevPlacement;let i=!1;this.prevZoomAdjustment=e?e.zoomAdjustment(this.transform.zoom):0;const s=e?e.symbolFadeChange(t):1,a=e?e.opacities:{},o=e?e.variableOffsets:{},r=e?e.placedOrientations:{};for(const t in this.placements){const e=this.placements[t],o=a[t];o?(this.opacities[t]=new Pt(o,s,e.text,e.icon),i=i||e.text!==o.text.placed||e.icon!==o.icon.placed):(this.opacities[t]=new Pt(null,s,e.text,e.icon,e.skipFade),i=i||e.text||e.icon);}for(const t in a){const e=a[t];if(!this.opacities[t]){const a=new Pt(e,s,!1,!1);a.isHidden()||(this.opacities[t]=a,i=i||e.text.placed||e.icon.placed);}}for(const t in o)this.variableOffsets[t]||!this.opacities[t]||this.opacities[t].isHidden()||(this.variableOffsets[t]=o[t]);for(const t in r)this.placedOrientations[t]||!this.opacities[t]||this.opacities[t].isHidden()||(this.placedOrientations[t]=r[t]);if(e&&void 0===e.lastPlacementChangeTime)throw new Error("Last placement time for previous placement is not defined");i?this.lastPlacementChangeTime=t:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=e?e.lastPlacementChangeTime:t);}updateLayerOpacities(t,e){const i={};for(const s of e){const e=s.getBucket(t);e&&s.latestFeatureIndex&&t.id===e.layerIds[0]&&this.updateBucketOpacities(e,i,s.collisionBoxArray);}}updateBucketOpacities(e,i,s){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const a=e.layers[0],o=a.layout,r=new Pt(null,0,!1,!1,!0),n=o.get("text-allow-overlap"),l=o.get("icon-allow-overlap"),h=a._unevaluatedLayout.hasValue("text-variable-anchor")||a._unevaluatedLayout.hasValue("text-variable-anchor-offset"),c="map"===o.get("text-rotation-alignment"),u="map"===o.get("text-pitch-alignment"),d="none"!==o.get("icon-text-fit"),_=new Pt(null,0,n&&(l||!e.hasIconData()||o.get("icon-optional")),l&&(n||!e.hasTextData()||o.get("text-optional")),!0);!e.collisionArrays&&s&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(s);const p=(t,e,i)=>{for(let s=0;s0,g=this.placedOrientations[a.crossTileID],v=g===t.ai.vertical,x=g===t.ai.horizontal||g===t.ai.horizontalOnly;if(o>0||n>0){const t=Vt(m.text);p(e.text,o,v?qt:t),p(e.text,n,x?qt:t);const i=m.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((t=>{t>=0&&(e.text.placedSymbolArray.get(t).hidden=i||v?1:0);})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=i||x?1:0);const s=this.variableOffsets[a.crossTileID];s&&this.markUsedJustification(e,s.anchor,a,g);const r=this.placedOrientations[a.crossTileID];r&&(this.markUsedJustification(e,"left",a,r),this.markUsedOrientation(e,r,a));}if(f){const t=Vt(m.icon),i=!(d&&a.verticalPlacedIconSymbolIndex&&v);a.placedIconSymbolIndex>=0&&(p(e.icon,a.numIconVertices,i?t:qt),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(p(e.icon,a.numVerticalIconVertices,i?qt:t),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=m.icon.isHidden());}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const i=e.collisionArrays[s];if(i){let s=new t.P(0,0);if(i.textBox||i.verticalTextBox){let t=!0;if(h){const e=this.variableOffsets[l];e?(s=At(e.anchor,e.width,e.height,e.textOffset,e.textBoxScale),c&&s._rotate(u?this.transform.angle:-this.transform.angle)):t=!1;}i.textBox&&Ft(e.textCollisionBox.collisionVertexArray,m.text.placed,!t||v,s.x,s.y),i.verticalTextBox&&Ft(e.textCollisionBox.collisionVertexArray,m.text.placed,!t||x,s.x,s.y);}const a=Boolean(!x&&i.verticalIconBox);i.iconBox&&Ft(e.iconCollisionBox.collisionVertexArray,m.icon.placed,a,d?s.x:0,d?s.y:0),i.verticalIconBox&&Ft(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!a,d?s.x:0,d?s.y:0);}}}if(e.sortFeatures(this.transform.angle),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);if(e.bucketInstanceId in this.collisionCircleArrays){const t=this.collisionCircleArrays[e.bucketInstanceId];e.placementInvProjMatrix=t.invProjMatrix,e.placementViewportMatrix=t.viewportMatrix,e.collisionCircleArray=t.circles,delete this.collisionCircleArrays[e.bucketInstanceId];}}symbolFadeChange(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(t){return Math.max(0,(this.transform.zoom-t)/1.5)}hasTransitions(t){return this.stale||t-this.lastPlacementChangeTimet}setStale(){this.stale=!0;}}function Ft(t,e,i,s,a){t.emplaceBack(e?1:0,i?1:0,s||0,a||0),t.emplaceBack(e?1:0,i?1:0,s||0,a||0),t.emplaceBack(e?1:0,i?1:0,s||0,a||0),t.emplaceBack(e?1:0,i?1:0,s||0,a||0);}const Bt=Math.pow(2,25),Ot=Math.pow(2,24),Nt=Math.pow(2,17),Ut=Math.pow(2,16),Zt=Math.pow(2,9),Gt=Math.pow(2,8),jt=Math.pow(2,1);function Vt(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;const e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*Bt+e*Ot+i*Nt+e*Ut+i*Zt+e*Gt+i*jt+e}const qt=0;class $t{constructor(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&!t.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[];}continuePlacement(t,e,i,s,a){const o=this._bucketParts;for(;this._currentTileIndext.sortKey-e.sortKey)));this._currentPartIndex!this._forceFullPlacement&&t.h.now()-a>2;for(;this._currentPlacementIndex>=0;){const t=i[e[this._currentPlacementIndex]],a=this.placement.collisionIndex.transform.zoom;if("symbol"===t.type&&(!t.minzoom||t.minzoom<=a)&&(!t.maxzoom||t.maxzoom>a)){if(this._inProgressLayer||(this._inProgressLayer=new $t(t)),this._inProgressLayer.continuePlacement(s[t.source],this.placement,this._showCollisionBoxes,t,o))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;}commit(t){return this.placement.commit(t),this.placement}}const Ht=512/t.N/2;class Xt{constructor(e,i,s){this.tileID=e,this.bucketInstanceId=s,this._symbolsByKey={};const a=new Map;for(let t=0;t({x:Math.floor(t.anchorX*Ht),y:Math.floor(t.anchorY*Ht)}))),crossTileIDs:i.map((t=>t.crossTileID))};if(s.positions.length>128){const e=new t.av(s.positions.length,16,Uint16Array);for(const{x:t,y:i}of s.positions)e.add(t,i);e.finish(),delete s.positions,s.index=e;}this._symbolsByKey[e]=s;}}getScaledCoordinates(e,i){const{x:s,y:a,z:o}=this.tileID.canonical,{x:r,y:n,z:l}=i.canonical,h=Ht/Math.pow(2,l-o),c=(n*t.N+e.anchorY)*h,u=a*t.N*Ht;return {x:Math.floor((r*t.N+e.anchorX)*h-s*t.N*Ht),y:Math.floor(c-u)}}findMatches(t,e,i){const s=this.tileID.canonical.zt))}}class Kt{constructor(){this.maxCrossTileID=0;}generate(){return ++this.maxCrossTileID}}class Qt{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0;}handleWrapJump(t){const e=Math.round((t-this.lng)/360);if(0!==e)for(const t in this.indexes){const i=this.indexes[t],s={};for(const t in i){const a=i[t];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+e),s[a.tileID.key]=a;}this.indexes[t]=s;}this.lng=t;}addBucket(t,e,i){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return !1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key]);}for(let t=0;tt.overscaledZ)for(const i in a){const o=a[i];o.tileID.isChildOf(t)&&o.findMatches(e.symbolInstances,t,s);}else {const o=a[t.scaledTo(Number(i)).key];o&&o.findMatches(e.symbolInstances,t,s);}}for(let t=0;t{e[t]=!0;}));for(const t in this.layerIndexes)e[t]||delete this.layerIndexes[t];}}const Jt=(e,i)=>t.x(e,i&&i.filter((t=>"source.canvas"!==t.identifier))),te=t.F(t.ax,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setGlyphs","setSprite"]),ee=t.F(t.ax,["setCenter","setZoom","setBearing","setPitch"]),ie=t.aw();class se extends t.E{constructor(e,i={}){super(),this.map=e,this.dispatcher=new M(st(),this,e._getMapId()),this.imageManager=new b,this.imageManager.setEventedParent(this),this.glyphManager=new E(e._requestManager,i.localIdeographFontFamily),this.lineAtlas=new D(256,512),this.crossTileSymbolIndex=new Yt,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.ay,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",t.az());const s=this;this._rtlTextPluginCallback=se.registerForPluginStateChange((e=>{s.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:e.pluginStatus,pluginURL:e.pluginURL},((e,i)=>{if(t.aA(e),i&&i.every((t=>t)))for(const t in s.sourceCaches){const e=s.sourceCaches[t].getSource().type;"vector"!==e&&"geojson"!==e||s.sourceCaches[t].reload();}}));})),this.on("data",(t=>{if("source"!==t.dataType||"metadata"!==t.sourceDataType)return;const e=this.sourceCaches[t.sourceId];if(!e)return;const i=e.getSource();if(i&&i.vectorLayerIds)for(const t in this._layers){const e=this._layers[t];e.source===i.id&&this._validateLayer(e);}}));}loadURL(e,i={},s){this.fire(new t.k("dataloading",{dataType:"style"})),i.validate="boolean"!=typeof i.validate||i.validate;const a=this.map._requestManager.transformRequest(e,c.Style);this._request=t.f(a,((e,a)=>{this._request=null,e?this.fire(new t.j(e)):a&&this._load(a,i,s);}));}loadJSON(e,i={},s){this.fire(new t.k("dataloading",{dataType:"style"})),this._request=t.h.frame((()=>{this._request=null,i.validate=!1!==i.validate,this._load(e,i,s);}));}loadEmpty(){this.fire(new t.k("dataloading",{dataType:"style"})),this._load(ie,{validate:!1});}_load(e,i,s){var a;const o=i.transformStyle?i.transformStyle(s,e):e;if(!i.validate||!Jt(this,t.y(o))){this._loaded=!0,this.stylesheet=o;for(const t in o.sources)this.addSource(t,o.sources[t],{validate:!1});o.sprite?this._loadSprite(o.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(o.glyphs),this._createLayers(),this.light=new P(this.stylesheet.light),this.map.setTerrain(null!==(a=this.stylesheet.terrain)&&void 0!==a?a:null),this.fire(new t.k("data",{dataType:"style"})),this.fire(new t.k("style.load"));}}_createLayers(){const e=t.aB(this.stylesheet.layers);this.dispatcher.broadcast("setLayers",e),this._order=e.map((t=>t.id)),this._layers={},this._serializedLayers=null;for(const i of e){const e=t.aC(i);e.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=e;}}_loadSprite(e,i=!1,s=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(e,i,s,a){const o=g(e),r=o.length,n=s>1?"@2x":"",l={},u={},d={};for(const{id:e,url:s}of o){const o=i.transformRequest(i.normalizeSpriteURL(s,n,".json"),c.SpriteJSON),_=`${e}_${o.url}`;l[_]=t.f(o,((t,i)=>{delete l[_],u[e]=i,v(a,u,d,t,r);}));const p=i.transformRequest(i.normalizeSpriteURL(s,n,".png"),c.SpriteImage),m=`${e}_${p.url}`;l[m]=h.getImage(p,((t,i)=>{delete l[m],d[e]=i,v(a,u,d,t,r);}));}return {cancel(){for(const t of Object.values(l))t.cancel();}}}(e,this.map._requestManager,this.map.getPixelRatio(),((e,a)=>{if(this._spriteRequest=null,e)this.fire(new t.j(e));else if(a)for(const t in a){this._spritesImagesIds[t]=[];const e=this._spritesImagesIds[t]?this._spritesImagesIds[t].filter((t=>!(t in a))):[];for(const t of e)this.imageManager.removeImage(t),this._changedImages[t]=!0;for(const e in a[t]){const s="default"===t?e:`${t}:${e}`;this._spritesImagesIds[t].push(s),s in this.imageManager.images?this.imageManager.updateImage(s,a[t][e],!1):this.imageManager.addImage(s,a[t][e]),i&&(this._changedImages[s]=!0);}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),i&&(this._changed=!0),this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new t.k("data",{dataType:"style"})),s&&s(e);}));}_unloadSprite(){for(const t of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(t),this._changedImages[t]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new t.k("data",{dataType:"style"}));}_validateLayer(e){const i=this.sourceCaches[e.source];if(!i)return;const s=e.sourceLayer;if(!s)return;const a=i.getSource();("geojson"===a.type||a.vectorLayerIds&&-1===a.vectorLayerIds.indexOf(s))&&this.fire(new t.j(new Error(`Source layer "${s}" does not exist on source "${a.id}" as specified by style layer "${e.id}".`)));}loaded(){if(!this._loaded)return !1;if(Object.keys(this._updatedSources).length)return !1;for(const t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return !1;return !!this.imageManager.isLoaded()}_serializeByIds(t){const e=this._serializedAllLayers();if(!t||0===t.length)return Object.values(e);const i=[];for(const s of t)e[s]&&i.push(e[s]);return i}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const e=Object.keys(this._layers);for(const i of e){const e=this._layers[i];"custom"!==e.type&&(t[i]=e.serialize());}return t}hasTransitions(){if(this.light&&this.light.hasTransition())return !0;for(const t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return !0;for(const t in this._layers)if(this._layers[t].hasTransition())return !0;return !1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(e){if(!this._loaded)return;const i=this._changed;if(this._changed){const t=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(t.length||i.length)&&this._updateWorkerLayers(t,i);for(const t in this._updatedSources){const e=this._updatedSources[t];if("reload"===e)this._reloadSource(t);else {if("clear"!==e)throw new Error(`Invalid action ${e}`);this._clearSource(t);}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const t in this._updatedPaintProps)this._layers[t].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates();}const s={};for(const t in this.sourceCaches){const e=this.sourceCaches[t];s[t]=e.used,e.used=!1;}for(const t of this._order){const i=this._layers[t];i.recalculate(e,this._availableImages),!i.isHidden(e.zoom)&&i.source&&(this.sourceCaches[i.source].used=!0);}for(const e in s){const i=this.sourceCaches[e];s[e]!==i.used&&i.fire(new t.k("data",{sourceDataType:"visibility",dataType:"source",sourceId:e}));}this.light.recalculate(e),this.z=e.zoom,i&&this.fire(new t.k("data",{dataType:"style"}));}_updateTilesForChangedImages(){const t=Object.keys(this._changedImages);if(t.length){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={};}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const t in this.sourceCaches)this.sourceCaches[t].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1;}}_updateWorkerLayers(t,e){this.dispatcher.broadcast("updateLayers",{layers:this._serializeByIds(t),removedIds:e});}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1;}setState(e,i={}){this._checkLoaded();const s=this.serialize();if(e=i.transformStyle?i.transformStyle(s,e):e,Jt(this,t.y(e)))return !1;(e=t.aD(e)).layers=t.aB(e.layers);const a=t.aE(s,e).filter((t=>!(t.command in ee)));if(0===a.length)return !1;const o=a.filter((t=>!(t.command in te)));if(o.length>0)throw new Error(`Unimplemented: ${o.map((t=>t.command)).join(", ")}.`);for(const t of a)"setTransition"!==t.command&&this[t.command].apply(this,t.args);return this.stylesheet=e,this._serializedLayers=null,!0}addImage(e,i){if(this.getImage(e))return this.fire(new t.j(new Error(`An image named "${e}" already exists.`)));this.imageManager.addImage(e,i),this._afterImageUpdated(e);}updateImage(t,e){this.imageManager.updateImage(t,e);}getImage(t){return this.imageManager.getImage(t)}removeImage(e){if(!this.getImage(e))return this.fire(new t.j(new Error(`An image named "${e}" does not exist.`)));this.imageManager.removeImage(e),this._afterImageUpdated(e);}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new t.k("data",{dataType:"style"}));}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,i,s={}){if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error(`Source "${e}" already exists.`);if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(t.y.source,`sources.${e}`,i,null,s))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const a=this.sourceCaches[e]=new K(e,i,this.dispatcher);a.style=this,a.setEventedParent(this,(()=>({isSourceLoaded:a.loaded(),source:a.serialize(),sourceId:e}))),a.onAdd(this.map),this._changed=!0;}removeSource(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(const i in this._layers)if(this._layers[i].source===e)return this.fire(new t.j(new Error(`Source "${e}" cannot be removed while layer "${i}" is using it.`)));const i=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],i.fire(new t.k("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),i.setEventedParent(null),i.onRemove(this.map),this._changed=!0;}setGeoJSONSourceData(t,e){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error(`There is no source with this ID=${t}`);const i=this.sourceCaches[t].getSource();if("geojson"!==i.type)throw new Error(`geojsonSource.type is ${i.type}, which is !== 'geojson`);i.setData(e),this._changed=!0;}getSource(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()}addLayer(e,i,s={}){this._checkLoaded();const a=e.id;if(this.getLayer(a))return void this.fire(new t.j(new Error(`Layer "${a}" already exists on this map.`)));let o;if("custom"===e.type){if(Jt(this,t.aF(e)))return;o=t.aC(e);}else {if("source"in e&&"object"==typeof e.source&&(this.addSource(a,e.source),e=t.aD(e),e=t.e(e,{source:a})),this._validate(t.y.layer,`layers.${a}`,e,{arrayIndex:-1},s))return;o=t.aC(e),this._validateLayer(o),o.setEventedParent(this,{layer:{id:a}});}const r=i?this._order.indexOf(i):this._order.length;if(i&&-1===r)this.fire(new t.j(new Error(`Cannot add layer "${a}" before non-existing layer "${i}".`)));else {if(this._order.splice(r,0,a),this._layerOrderChanged=!0,this._layers[a]=o,this._removedLayers[a]&&o.source&&"custom"!==o.type){const t=this._removedLayers[a];delete this._removedLayers[a],t.type!==o.type?this._updatedSources[o.source]="clear":(this._updatedSources[o.source]="reload",this.sourceCaches[o.source].pause());}this._updateLayer(o),o.onAdd&&o.onAdd(this.map);}}moveLayer(e,i){if(this._checkLoaded(),this._changed=!0,!this._layers[e])return void this.fire(new t.j(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));if(e===i)return;const s=this._order.indexOf(e);this._order.splice(s,1);const a=i?this._order.indexOf(i):this._order.length;i&&-1===a?this.fire(new t.j(new Error(`Cannot move layer "${e}" before non-existing layer "${i}".`))):(this._order.splice(a,0,e),this._layerOrderChanged=!0);}removeLayer(e){this._checkLoaded();const i=this._layers[e];if(!i)return void this.fire(new t.j(new Error(`Cannot remove non-existing layer "${e}".`)));i.setEventedParent(null);const s=this._order.indexOf(e);this._order.splice(s,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],this._serializedLayers&&delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.onRemove(this.map);}getLayer(t){return this._layers[t]}getLayersOrder(){return [...this._order]}hasLayer(t){return t in this._layers}setLayerZoomRange(e,i,s){this._checkLoaded();const a=this.getLayer(e);a?a.minzoom===i&&a.maxzoom===s||(null!=i&&(a.minzoom=i),null!=s&&(a.maxzoom=s),this._updateLayer(a)):this.fire(new t.j(new Error(`Cannot set the zoom range of non-existing layer "${e}".`)));}setFilter(e,i,s={}){this._checkLoaded();const a=this.getLayer(e);if(a){if(!t.aG(a.filter,i))return null==i?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(t.y.filter,`layers.${a.id}.filter`,i,null,s)||(a.filter=t.aD(i),this._updateLayer(a)))}else this.fire(new t.j(new Error(`Cannot filter non-existing layer "${e}".`)));}getFilter(e){return t.aD(this.getLayer(e).filter)}setLayoutProperty(e,i,s,a={}){this._checkLoaded();const o=this.getLayer(e);o?t.aG(o.getLayoutProperty(i),s)||(o.setLayoutProperty(i,s,a),this._updateLayer(o)):this.fire(new t.j(new Error(`Cannot style non-existing layer "${e}".`)));}getLayoutProperty(e,i){const s=this.getLayer(e);if(s)return s.getLayoutProperty(i);this.fire(new t.j(new Error(`Cannot get style of non-existing layer "${e}".`)));}setPaintProperty(e,i,s,a={}){this._checkLoaded();const o=this.getLayer(e);o?t.aG(o.getPaintProperty(i),s)||(o.setPaintProperty(i,s,a)&&this._updateLayer(o),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.j(new Error(`Cannot style non-existing layer "${e}".`)));}getPaintProperty(t,e){return this.getLayer(t).getPaintProperty(e)}setFeatureState(e,i){this._checkLoaded();const s=e.source,a=e.sourceLayer,o=this.sourceCaches[s];if(void 0===o)return void this.fire(new t.j(new Error(`The source '${s}' does not exist in the map's style.`)));const r=o.getSource().type;"geojson"===r&&a?this.fire(new t.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==r||a?(void 0===e.id&&this.fire(new t.j(new Error("The feature id parameter must be provided."))),o.setFeatureState(a,e.id,i)):this.fire(new t.j(new Error("The sourceLayer parameter must be provided for vector source types.")));}removeFeatureState(e,i){this._checkLoaded();const s=e.source,a=this.sourceCaches[s];if(void 0===a)return void this.fire(new t.j(new Error(`The source '${s}' does not exist in the map's style.`)));const o=a.getSource().type,r="vector"===o?e.sourceLayer:void 0;"vector"!==o||r?i&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.j(new Error("A feature id is required to remove its specific state property."))):a.removeFeatureState(r,e.id,i):this.fire(new t.j(new Error("The sourceLayer parameter must be provided for vector source types.")));}getFeatureState(e){this._checkLoaded();const i=e.source,s=e.sourceLayer,a=this.sourceCaches[i];if(void 0!==a)return "vector"!==a.getSource().type||s?(void 0===e.id&&this.fire(new t.j(new Error("The feature id parameter must be provided."))),a.getFeatureState(s,e.id)):void this.fire(new t.j(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new t.j(new Error(`The source '${i}' does not exist in the map's style.`)));}getTransition(){return t.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const e=t.aH(this.sourceCaches,(t=>t.serialize())),i=this._serializeByIds(this._order),s=this.map.getTerrain()||void 0,a=this.stylesheet;return t.aI({version:a.version,name:a.name,metadata:a.metadata,light:a.light,center:a.center,zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,sprite:a.sprite,glyphs:a.glyphs,transition:a.transition,sources:e,layers:i,terrain:s},(t=>void 0!==t))}_updateLayer(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._serializedLayers=null,this._changed=!0;}_flattenAndSortRenderedFeatures(t){const e=t=>"fill-extrusion"===this._layers[t].type,i={},s=[];for(let a=this._order.length-1;a>=0;a--){const o=this._order[a];if(e(o)){i[o]=a;for(const e of t){const t=e[o];if(t)for(const e of t)s.push(e);}}}s.sort(((t,e)=>e.intersectionZ-t.intersectionZ));const a=[];for(let o=this._order.length-1;o>=0;o--){const r=this._order[o];if(e(r))for(let t=s.length-1;t>=0;t--){const e=s[t].feature;if(i[e.layer.id]{const s=i.featureSortOrder;if(s){const i=s.indexOf(t.featureIndex);return s.indexOf(e.featureIndex)-i}return e.featureIndex-t.featureIndex}));for(const t of a)e.push(t);}}for(const e in n)n[e].forEach((s=>{const a=s.feature,o=i[t[e].source].getFeatureState(a.layer["source-layer"],a.id);a.source=a.layer.source,a.layer["source-layer"]&&(a.sourceLayer=a.layer["source-layer"]),a.state=o;}));return n}(this._layers,r,this.sourceCaches,e,i,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(o)}querySourceFeatures(e,i){i&&i.filter&&this._validate(t.y.filter,"querySourceFeatures.filter",i.filter,null,i);const s=this.sourceCaches[e];return s?function(t,e){const i=t.getRenderableIds().map((e=>t.getTileByID(e))),s=[],a={};for(let t=0;t{G[t]=e;})(t,e),e.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:t,url:e.workerSourceURL},i):i(null,null))}getLight(){return this.light.getLight()}setLight(e,i={}){this._checkLoaded();const s=this.light.getLight();let a=!1;for(const i in e)if(!t.aG(e[i],s[i])){a=!0;break}if(!a)return;const o={now:t.h.now(),transition:t.e({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,i),this.light.updateTransitions(o);}_validate(e,i,s,a,o={}){return (!o||!1!==o.validate)&&Jt(this,e.call(t.y,t.e({key:i,style:this.serialize(),value:s,styleSpec:t.v},a)))}_remove(e=!0){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),t.aJ.off("pluginStateChange",this._rtlTextPluginCallback);for(const t in this._layers)this._layers[t].setEventedParent(null);for(const t in this.sourceCaches){const e=this.sourceCaches[t];e.setEventedParent(null),e.onRemove(this.map);}this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove(e);}_clearSource(t){this.sourceCaches[t].clearTiles();}_reloadSource(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload();}_updateSources(t){for(const e in this.sourceCaches)this.sourceCaches[e].update(t,this.map.terrain);}_generateCollisionBoxes(){for(const t in this.sourceCaches)this._reloadSource(t);}_updatePlacement(e,i,s,a,o=!1){let r=!1,n=!1;const l={};for(const t of this._order){const i=this._layers[t];if("symbol"!==i.type)continue;if(!l[i.source]){const t=this.sourceCaches[i.source];l[i.source]=t.getRenderableIds(!0).map((e=>t.getTileByID(e))).sort(((t,e)=>e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)));}const s=this.crossTileSymbolIndex.addLayer(i,l[i.source],e.center.lng);r=r||s;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((o=o||this._layerOrderChanged||0===s)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(t.h.now(),e.zoom))&&(this.pauseablePlacement=new Wt(e,this.map.terrain,this._order,o,i,s,a,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(t.h.now()),n=!0),r&&this.pauseablePlacement.placement.setStale()),n||r)for(const t of this._order){const e=this._layers[t];"symbol"===e.type&&this.placement.updateLayerOpacities(e,l[e.source]);}return !this.pauseablePlacement.isDone()||this.placement.hasTransitions(t.h.now())}_releaseSymbolFadeTiles(){for(const t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles();}getImages(t,e,i){this.imageManager.getImages(e.icons,i),this._updateTilesForChangedImages();const s=this.sourceCaches[e.source];s&&s.setDependencies(e.tileID.key,e.type,e.icons);}getGlyphs(t,e,i){this.glyphManager.getGlyphs(e.stacks,i);const s=this.sourceCaches[e.source];s&&s.setDependencies(e.tileID.key,e.type,[""]);}getResource(e,i,s){return t.m(i,s)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,i={}){this._checkLoaded(),e&&this._validate(t.y.glyphs,"glyphs",e,null,i)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e));}addSprite(e,i,s={},a){this._checkLoaded();const o=[{id:e,url:i}],r=[...g(this.stylesheet.sprite),...o];this._validate(t.y.sprite,"sprite",r,null,s)||(this.stylesheet.sprite=r,this._loadSprite(o,!0,a));}removeSprite(e){this._checkLoaded();const i=g(this.stylesheet.sprite);if(i.find((t=>t.id===e))){if(this._spritesImagesIds[e])for(const t of this._spritesImagesIds[e])this.imageManager.removeImage(t),this._changedImages[t]=!0;i.splice(i.findIndex((t=>t.id===e)),1),this.stylesheet.sprite=i.length>0?i:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new t.k("data",{dataType:"style"}));}else this.fire(new t.j(new Error(`Sprite "${e}" doesn't exists on this map.`)));}getSprite(){return g(this.stylesheet.sprite)}setSprite(e,i={},s){this._checkLoaded(),e&&this._validate(t.y.sprite,"sprite",e,null,i)||(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,s):(this._unloadSprite(),s&&s(null)));}}se.registerForPluginStateChange=t.aK;var ae=t.Q([{name:"a_pos",type:"Int16",components:2}]),oe="attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}";const re={prelude:ne("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\n","#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}"),background:ne("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),backgroundPattern:ne("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:ne("varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"),clippingMask:ne("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:ne("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"),heatmapTexture:ne("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:ne("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:ne("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:ne("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"),fill:ne("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),fillOutline:ne("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),fillOutlinePattern:ne("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),fillPattern:ne("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),fillExtrusion:ne("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),fillExtrusionPattern:ne("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),hillshadePrepare:ne("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:ne("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),line:ne("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"),lineGradient:ne("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}"),linePattern:ne("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),lineSDF:ne("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),raster:ne("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),symbolIcon:ne("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}"),symbolSDF:ne("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),symbolTextAndIcon:ne("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}"),terrain:ne("uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}",oe),terrainDepth:ne("varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}",oe),terrainCoords:ne("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}",oe)};function ne(t,e){const i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=e.match(/attribute ([\w]+) ([\w]+)/g),a=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),r=o?o.concat(a):a,n={};return {fragmentSource:t=t.replace(i,((t,e,i,s,a)=>(n[a]=!0,"define"===e?`\n#ifndef HAS_UNIFORM_u_${a}\nvarying ${i} ${s} ${a};\n#else\nuniform ${i} ${s} u_${a};\n#endif\n`:`\n#ifdef HAS_UNIFORM_u_${a}\n ${i} ${s} ${a} = u_${a};\n#endif\n`))),vertexSource:e=e.replace(i,((t,e,i,s,a)=>{const o="float"===s?"vec2":"vec4",r=a.match(/color/)?"color":o;return n[a]?"define"===e?`\n#ifndef HAS_UNIFORM_u_${a}\nuniform lowp float u_${a}_t;\nattribute ${i} ${o} a_${a};\nvarying ${i} ${s} ${a};\n#else\nuniform ${i} ${s} u_${a};\n#endif\n`:"vec4"===r?`\n#ifndef HAS_UNIFORM_u_${a}\n ${a} = a_${a};\n#else\n ${i} ${s} ${a} = u_${a};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${a}\n ${a} = unpack_mix_${r}(a_${a}, u_${a}_t);\n#else\n ${i} ${s} ${a} = u_${a};\n#endif\n`:"define"===e?`\n#ifndef HAS_UNIFORM_u_${a}\nuniform lowp float u_${a}_t;\nattribute ${i} ${o} a_${a};\n#else\nuniform ${i} ${s} u_${a};\n#endif\n`:"vec4"===r?`\n#ifndef HAS_UNIFORM_u_${a}\n ${i} ${s} ${a} = a_${a};\n#else\n ${i} ${s} ${a} = u_${a};\n#endif\n`:`\n#ifndef HAS_UNIFORM_u_${a}\n ${i} ${s} ${a} = unpack_mix_${r}(a_${a}, u_${a}_t);\n#else\n ${i} ${s} ${a} = u_${a};\n#endif\n`})),staticAttributes:s,staticUniforms:r}}class le{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null;}bind(t,e,i,s,a,o,r,n,l){this.context=t;let h=this.boundPaintVertexBuffers.length!==s.length;for(let t=0;!h&&t({u_depth:new t.aL(e,i.u_depth),u_terrain:new t.aL(e,i.u_terrain),u_terrain_dim:new t.aM(e,i.u_terrain_dim),u_terrain_matrix:new t.aN(e,i.u_terrain_matrix),u_terrain_unpack:new t.aO(e,i.u_terrain_unpack),u_terrain_exaggeration:new t.aM(e,i.u_terrain_exaggeration)}))(e,b),this.binderUniforms=s?s.getUniforms(e,b):[];}draw(t,e,i,s,a,o,r,n,l,h,c,u,d,_,p,m,f,g){const v=t.gl;if(this.failedToCreate)return;if(t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(s),t.setColorMode(a),t.setCullFace(o),n){t.activeTexture.set(v.TEXTURE2),v.bindTexture(v.TEXTURE_2D,n.depthTexture),t.activeTexture.set(v.TEXTURE3),v.bindTexture(v.TEXTURE_2D,n.texture);for(const t in this.terrainUniforms)this.terrainUniforms[t].set(n[t]);}for(const t in this.fixedUniforms)this.fixedUniforms[t].set(r[t]);p&&p.setUniforms(t,this.binderUniforms,d,{zoom:_});let x=0;switch(e){case v.LINES:x=2;break;case v.TRIANGLES:x=3;break;case v.LINE_STRIP:x=1;}for(const i of u.get()){const s=i.vaos||(i.vaos={});(s[l]||(s[l]=new le)).bind(t,this,h,p?p.getPaintVertexBuffers():[],c,i.vertexOffset,m,f,g),v.drawElements(e,i.primitiveLength*x,v.UNSIGNED_SHORT,i.primitiveOffset*x*2);}}}function ue(t,e,i){const s=1/St(i,1,e.transform.tileZoom),a=Math.pow(2,i.tileID.overscaledZ),o=i.tileSize*Math.pow(2,e.transform.tileZoom)/a,r=o*(i.tileID.canonical.x+i.tileID.wrap*a),n=o*i.tileID.canonical.y;return {u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[s,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[r>>16,n>>16],u_pixel_coord_lower:[65535&r,65535&n]}}const de=(e,i,s,a)=>{const o=i.style.light,r=o.properties.get("position"),n=[r.x,r.y,r.z],l=function(){var e=new t.A(9);return t.A!=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}();"viewport"===o.properties.get("anchor")&&function(t,e){var i=Math.sin(e),s=Math.cos(e);t[0]=s,t[1]=i,t[2]=0,t[3]=-i,t[4]=s,t[5]=0,t[6]=0,t[7]=0,t[8]=1;}(l,-i.transform.angle),function(t,e,i){var s=e[0],a=e[1],o=e[2];t[0]=s*i[0]+a*i[3]+o*i[6],t[1]=s*i[1]+a*i[4]+o*i[7],t[2]=s*i[2]+a*i[5]+o*i[8];}(n,n,l);const h=o.properties.get("color");return {u_matrix:e,u_lightpos:n,u_lightintensity:o.properties.get("intensity"),u_lightcolor:[h.r,h.g,h.b],u_vertical_gradient:+s,u_opacity:a}},_e=(e,i,s,a,o,r,n)=>t.e(de(e,i,s,a),ue(r,i,n),{u_height_factor:-Math.pow(2,o.overscaledZ)/n.tileSize/8}),pe=t=>({u_matrix:t}),me=(e,i,s,a)=>t.e(pe(e),ue(s,i,a)),fe=(t,e)=>({u_matrix:t,u_world:e}),ge=(e,i,s,a,o)=>t.e(me(e,i,s,a),{u_world:o}),ve=(t,e,i,s)=>{const a=t.transform;let o,r;if("map"===s.paint.get("circle-pitch-alignment")){const t=St(i,1,a.zoom);o=!0,r=[t,t];}else o=!1,r=a.pixelsToGLUnits;return {u_camera_to_center_distance:a.cameraToCenterDistance,u_scale_with_map:+("map"===s.paint.get("circle-pitch-scale")),u_matrix:t.translatePosMatrix(e.posMatrix,i,s.paint.get("circle-translate"),s.paint.get("circle-translate-anchor")),u_pitch_with_map:+o,u_device_pixel_ratio:t.pixelRatio,u_extrude_scale:r}},xe=(t,e,i)=>{const s=St(i,1,e.zoom),a=Math.pow(2,e.zoom-i.tileID.overscaledZ),o=i.tileID.overscaleFactor();return {u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:s,u_extrude_scale:[e.pixelsToGLUnits[0]/(s*a),e.pixelsToGLUnits[1]/(s*a)],u_overscale_factor:o}},ye=(t,e,i=1)=>({u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:i}),be=t=>({u_matrix:t}),we=(t,e,i,s)=>({u_matrix:t,u_extrude_scale:St(e,1,i),u_intensity:s});function Te(e,i){const s=Math.pow(2,i.canonical.z),a=i.canonical.y;return [new t.U(0,a/s).toLngLat().lat,new t.U(0,(a+1)/s).toLngLat().lat]}const Ie=(t,e,i,s)=>{const a=t.transform;return {u_matrix:De(t,e,i,s),u_ratio:1/St(e,1,a.zoom),u_device_pixel_ratio:t.pixelRatio,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Ee=(e,i,s,a,o)=>t.e(Ie(e,i,s,o),{u_image:0,u_image_height:a}),Se=(t,e,i,s,a)=>{const o=t.transform,r=Pe(e,o);return {u_matrix:De(t,e,i,a),u_texsize:e.imageAtlasTexture.size,u_ratio:1/St(e,1,o.zoom),u_device_pixel_ratio:t.pixelRatio,u_image:0,u_scale:[r,s.fromScale,s.toScale],u_fade:s.t,u_units_to_pixels:[1/o.pixelsToGLUnits[0],1/o.pixelsToGLUnits[1]]}},Ce=(e,i,s,a,o,r)=>{const n=e.lineAtlas,l=Pe(i,e.transform),h="round"===s.layout.get("line-cap"),c=n.getDash(a.from,h),u=n.getDash(a.to,h),d=c.width*o.fromScale,_=u.width*o.toScale;return t.e(Ie(e,i,s,r),{u_patternscale_a:[l/d,-c.height/2],u_patternscale_b:[l/_,-u.height/2],u_sdfgamma:n.width/(256*Math.min(d,_)*e.pixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:u.y,u_mix:o.t})};function Pe(t,e){return 1/St(t,1,e.tileZoom)}function De(t,e,i,s){return t.translatePosMatrix(s?s.posMatrix:e.tileID.posMatrix,e,i.paint.get("line-translate"),i.paint.get("line-translate-anchor"))}const Me=(t,e,i,s,a)=>{return {u_matrix:t,u_tl_parent:e,u_scale_parent:i,u_buffer_scale:1,u_fade_t:s.mix,u_opacity:s.opacity*a.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:a.paint.get("raster-brightness-min"),u_brightness_high:a.paint.get("raster-brightness-max"),u_saturation_factor:(r=a.paint.get("raster-saturation"),r>0?1-1/(1.001-r):-r),u_contrast_factor:(o=a.paint.get("raster-contrast"),o>0?1/(1-o):1+o),u_spin_weights:ze(a.paint.get("raster-hue-rotate"))};var o,r;};function ze(t){t*=Math.PI/180;const e=Math.sin(t),i=Math.cos(t);return [(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}const Le=(t,e,i,s,a,o,r,n,l,h)=>{const c=a.transform;return {u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:c.cameraToCenterDistance,u_pitch:c.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:c.width/c.height,u_fade_change:a.options.fadeDuration?a.symbolFadeChange:1,u_matrix:o,u_label_plane_matrix:r,u_coord_matrix:n,u_is_text:+l,u_pitch_with_map:+s,u_texsize:h,u_texture:0}},Ae=(e,i,s,a,o,r,n,l,h,c,u)=>{const d=o.transform;return t.e(Le(e,i,s,a,o,r,n,l,h,c),{u_gamma_scale:a?Math.cos(d._pitch)*d.cameraToCenterDistance:1,u_device_pixel_ratio:o.pixelRatio,u_is_halo:+u})},Re=(e,i,s,a,o,r,n,l,h,c)=>t.e(Ae(e,i,s,a,o,r,n,l,!0,h,!0),{u_texsize_icon:c,u_texture_icon:1}),ke=(t,e,i)=>({u_matrix:t,u_opacity:e,u_color:i}),Fe=(e,i,s,a,o,r)=>t.e(function(t,e,i,s){const a=i.imageManager.getPattern(t.from.toString()),o=i.imageManager.getPattern(t.to.toString()),{width:r,height:n}=i.imageManager.getPixelSize(),l=Math.pow(2,s.tileID.overscaledZ),h=s.tileSize*Math.pow(2,i.transform.tileZoom)/l,c=h*(s.tileID.canonical.x+s.tileID.wrap*l),u=h*s.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:a.tl,u_pattern_br_a:a.br,u_pattern_tl_b:o.tl,u_pattern_br_b:o.br,u_texsize:[r,n],u_mix:e.t,u_pattern_size_a:a.displaySize,u_pattern_size_b:o.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/St(s,1,i.transform.tileZoom),u_pixel_coord_upper:[c>>16,u>>16],u_pixel_coord_lower:[65535&c,65535&u]}}(a,r,s,o),{u_matrix:e,u_opacity:i}),Be={fillExtrusion:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_lightpos:new t.aP(e,i.u_lightpos),u_lightintensity:new t.aM(e,i.u_lightintensity),u_lightcolor:new t.aP(e,i.u_lightcolor),u_vertical_gradient:new t.aM(e,i.u_vertical_gradient),u_opacity:new t.aM(e,i.u_opacity)}),fillExtrusionPattern:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_lightpos:new t.aP(e,i.u_lightpos),u_lightintensity:new t.aM(e,i.u_lightintensity),u_lightcolor:new t.aP(e,i.u_lightcolor),u_vertical_gradient:new t.aM(e,i.u_vertical_gradient),u_height_factor:new t.aM(e,i.u_height_factor),u_image:new t.aL(e,i.u_image),u_texsize:new t.aQ(e,i.u_texsize),u_pixel_coord_upper:new t.aQ(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.aQ(e,i.u_pixel_coord_lower),u_scale:new t.aP(e,i.u_scale),u_fade:new t.aM(e,i.u_fade),u_opacity:new t.aM(e,i.u_opacity)}),fill:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix)}),fillPattern:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_image:new t.aL(e,i.u_image),u_texsize:new t.aQ(e,i.u_texsize),u_pixel_coord_upper:new t.aQ(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.aQ(e,i.u_pixel_coord_lower),u_scale:new t.aP(e,i.u_scale),u_fade:new t.aM(e,i.u_fade)}),fillOutline:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_world:new t.aQ(e,i.u_world)}),fillOutlinePattern:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_world:new t.aQ(e,i.u_world),u_image:new t.aL(e,i.u_image),u_texsize:new t.aQ(e,i.u_texsize),u_pixel_coord_upper:new t.aQ(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.aQ(e,i.u_pixel_coord_lower),u_scale:new t.aP(e,i.u_scale),u_fade:new t.aM(e,i.u_fade)}),circle:(e,i)=>({u_camera_to_center_distance:new t.aM(e,i.u_camera_to_center_distance),u_scale_with_map:new t.aL(e,i.u_scale_with_map),u_pitch_with_map:new t.aL(e,i.u_pitch_with_map),u_extrude_scale:new t.aQ(e,i.u_extrude_scale),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_matrix:new t.aN(e,i.u_matrix)}),collisionBox:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_camera_to_center_distance:new t.aM(e,i.u_camera_to_center_distance),u_pixels_to_tile_units:new t.aM(e,i.u_pixels_to_tile_units),u_extrude_scale:new t.aQ(e,i.u_extrude_scale),u_overscale_factor:new t.aM(e,i.u_overscale_factor)}),collisionCircle:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_inv_matrix:new t.aN(e,i.u_inv_matrix),u_camera_to_center_distance:new t.aM(e,i.u_camera_to_center_distance),u_viewport_size:new t.aQ(e,i.u_viewport_size)}),debug:(e,i)=>({u_color:new t.aR(e,i.u_color),u_matrix:new t.aN(e,i.u_matrix),u_overlay:new t.aL(e,i.u_overlay),u_overlay_scale:new t.aM(e,i.u_overlay_scale)}),clippingMask:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix)}),heatmap:(e,i)=>({u_extrude_scale:new t.aM(e,i.u_extrude_scale),u_intensity:new t.aM(e,i.u_intensity),u_matrix:new t.aN(e,i.u_matrix)}),heatmapTexture:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_world:new t.aQ(e,i.u_world),u_image:new t.aL(e,i.u_image),u_color_ramp:new t.aL(e,i.u_color_ramp),u_opacity:new t.aM(e,i.u_opacity)}),hillshade:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_image:new t.aL(e,i.u_image),u_latrange:new t.aQ(e,i.u_latrange),u_light:new t.aQ(e,i.u_light),u_shadow:new t.aR(e,i.u_shadow),u_highlight:new t.aR(e,i.u_highlight),u_accent:new t.aR(e,i.u_accent)}),hillshadePrepare:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_image:new t.aL(e,i.u_image),u_dimension:new t.aQ(e,i.u_dimension),u_zoom:new t.aM(e,i.u_zoom),u_unpack:new t.aO(e,i.u_unpack)}),line:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_ratio:new t.aM(e,i.u_ratio),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.aQ(e,i.u_units_to_pixels)}),lineGradient:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_ratio:new t.aM(e,i.u_ratio),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.aQ(e,i.u_units_to_pixels),u_image:new t.aL(e,i.u_image),u_image_height:new t.aM(e,i.u_image_height)}),linePattern:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_texsize:new t.aQ(e,i.u_texsize),u_ratio:new t.aM(e,i.u_ratio),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_image:new t.aL(e,i.u_image),u_units_to_pixels:new t.aQ(e,i.u_units_to_pixels),u_scale:new t.aP(e,i.u_scale),u_fade:new t.aM(e,i.u_fade)}),lineSDF:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_ratio:new t.aM(e,i.u_ratio),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.aQ(e,i.u_units_to_pixels),u_patternscale_a:new t.aQ(e,i.u_patternscale_a),u_patternscale_b:new t.aQ(e,i.u_patternscale_b),u_sdfgamma:new t.aM(e,i.u_sdfgamma),u_image:new t.aL(e,i.u_image),u_tex_y_a:new t.aM(e,i.u_tex_y_a),u_tex_y_b:new t.aM(e,i.u_tex_y_b),u_mix:new t.aM(e,i.u_mix)}),raster:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_tl_parent:new t.aQ(e,i.u_tl_parent),u_scale_parent:new t.aM(e,i.u_scale_parent),u_buffer_scale:new t.aM(e,i.u_buffer_scale),u_fade_t:new t.aM(e,i.u_fade_t),u_opacity:new t.aM(e,i.u_opacity),u_image0:new t.aL(e,i.u_image0),u_image1:new t.aL(e,i.u_image1),u_brightness_low:new t.aM(e,i.u_brightness_low),u_brightness_high:new t.aM(e,i.u_brightness_high),u_saturation_factor:new t.aM(e,i.u_saturation_factor),u_contrast_factor:new t.aM(e,i.u_contrast_factor),u_spin_weights:new t.aP(e,i.u_spin_weights)}),symbolIcon:(e,i)=>({u_is_size_zoom_constant:new t.aL(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.aL(e,i.u_is_size_feature_constant),u_size_t:new t.aM(e,i.u_size_t),u_size:new t.aM(e,i.u_size),u_camera_to_center_distance:new t.aM(e,i.u_camera_to_center_distance),u_pitch:new t.aM(e,i.u_pitch),u_rotate_symbol:new t.aL(e,i.u_rotate_symbol),u_aspect_ratio:new t.aM(e,i.u_aspect_ratio),u_fade_change:new t.aM(e,i.u_fade_change),u_matrix:new t.aN(e,i.u_matrix),u_label_plane_matrix:new t.aN(e,i.u_label_plane_matrix),u_coord_matrix:new t.aN(e,i.u_coord_matrix),u_is_text:new t.aL(e,i.u_is_text),u_pitch_with_map:new t.aL(e,i.u_pitch_with_map),u_texsize:new t.aQ(e,i.u_texsize),u_texture:new t.aL(e,i.u_texture)}),symbolSDF:(e,i)=>({u_is_size_zoom_constant:new t.aL(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.aL(e,i.u_is_size_feature_constant),u_size_t:new t.aM(e,i.u_size_t),u_size:new t.aM(e,i.u_size),u_camera_to_center_distance:new t.aM(e,i.u_camera_to_center_distance),u_pitch:new t.aM(e,i.u_pitch),u_rotate_symbol:new t.aL(e,i.u_rotate_symbol),u_aspect_ratio:new t.aM(e,i.u_aspect_ratio),u_fade_change:new t.aM(e,i.u_fade_change),u_matrix:new t.aN(e,i.u_matrix),u_label_plane_matrix:new t.aN(e,i.u_label_plane_matrix),u_coord_matrix:new t.aN(e,i.u_coord_matrix),u_is_text:new t.aL(e,i.u_is_text),u_pitch_with_map:new t.aL(e,i.u_pitch_with_map),u_texsize:new t.aQ(e,i.u_texsize),u_texture:new t.aL(e,i.u_texture),u_gamma_scale:new t.aM(e,i.u_gamma_scale),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_is_halo:new t.aL(e,i.u_is_halo)}),symbolTextAndIcon:(e,i)=>({u_is_size_zoom_constant:new t.aL(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.aL(e,i.u_is_size_feature_constant),u_size_t:new t.aM(e,i.u_size_t),u_size:new t.aM(e,i.u_size),u_camera_to_center_distance:new t.aM(e,i.u_camera_to_center_distance),u_pitch:new t.aM(e,i.u_pitch),u_rotate_symbol:new t.aL(e,i.u_rotate_symbol),u_aspect_ratio:new t.aM(e,i.u_aspect_ratio),u_fade_change:new t.aM(e,i.u_fade_change),u_matrix:new t.aN(e,i.u_matrix),u_label_plane_matrix:new t.aN(e,i.u_label_plane_matrix),u_coord_matrix:new t.aN(e,i.u_coord_matrix),u_is_text:new t.aL(e,i.u_is_text),u_pitch_with_map:new t.aL(e,i.u_pitch_with_map),u_texsize:new t.aQ(e,i.u_texsize),u_texsize_icon:new t.aQ(e,i.u_texsize_icon),u_texture:new t.aL(e,i.u_texture),u_texture_icon:new t.aL(e,i.u_texture_icon),u_gamma_scale:new t.aM(e,i.u_gamma_scale),u_device_pixel_ratio:new t.aM(e,i.u_device_pixel_ratio),u_is_halo:new t.aL(e,i.u_is_halo)}),background:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_opacity:new t.aM(e,i.u_opacity),u_color:new t.aR(e,i.u_color)}),backgroundPattern:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_opacity:new t.aM(e,i.u_opacity),u_image:new t.aL(e,i.u_image),u_pattern_tl_a:new t.aQ(e,i.u_pattern_tl_a),u_pattern_br_a:new t.aQ(e,i.u_pattern_br_a),u_pattern_tl_b:new t.aQ(e,i.u_pattern_tl_b),u_pattern_br_b:new t.aQ(e,i.u_pattern_br_b),u_texsize:new t.aQ(e,i.u_texsize),u_mix:new t.aM(e,i.u_mix),u_pattern_size_a:new t.aQ(e,i.u_pattern_size_a),u_pattern_size_b:new t.aQ(e,i.u_pattern_size_b),u_scale_a:new t.aM(e,i.u_scale_a),u_scale_b:new t.aM(e,i.u_scale_b),u_pixel_coord_upper:new t.aQ(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.aQ(e,i.u_pixel_coord_lower),u_tile_units_to_pixels:new t.aM(e,i.u_tile_units_to_pixels)}),terrain:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_texture:new t.aL(e,i.u_texture),u_ele_delta:new t.aM(e,i.u_ele_delta)}),terrainDepth:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_ele_delta:new t.aM(e,i.u_ele_delta)}),terrainCoords:(e,i)=>({u_matrix:new t.aN(e,i.u_matrix),u_texture:new t.aL(e,i.u_texture),u_terrain_coords_id:new t.aM(e,i.u_terrain_coords_id),u_ele_delta:new t.aM(e,i.u_ele_delta)})};class Oe{constructor(t,e,i){this.context=t;const s=t.gl;this.buffer=s.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),s.bufferData(s.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer;}bind(){this.context.bindElementBuffer.set(this.buffer);}updateData(t){const e=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer);}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer);}}const Ne={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class Ue{constructor(t,e,i,s){this.length=e.length,this.attributes=i,this.itemSize=e.bytesPerElement,this.dynamicDraw=s,this.context=t;const a=t.gl;this.buffer=a.createBuffer(),t.bindVertexBuffer.set(this.buffer),a.bufferData(a.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?a.DYNAMIC_DRAW:a.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer;}bind(){this.context.bindVertexBuffer.set(this.buffer);}updateData(t){if(t.length!==this.length)throw new Error(`Length of new data is ${t.length}, which doesn't match current length of ${this.length}`);const e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer);}enableAttributes(t,e){for(let i=0;i0){const i=t.Z(),s=v;t.aU(i,g.placementInvProjMatrix,e.transform.glCoordMatrix),t.aU(i,i,g.placementViewportMatrix),u.push({circleArray:y,circleOffset:_,transform:s,invTransform:i,coord:m}),d+=y.length/4,_=d;}x&&c.draw(l,h.LINES,Pi.disabled,Mi.disabled,e.colorModeForRenderPass(),zi.disabled,xe(v,e.transform,f),e.style.map.terrain&&e.style.map.terrain.getTerrainData(m),s.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer);}if(!n||!u.length)return;const p=e.useProgram("collisionCircle"),m=new t.aV;m.resize(4*d),m._trim();let f=0;for(const t of u)for(let e=0;e=0&&(m[f.associatedIconIndex]={shiftedAnchor:E,angle:S});}else wt(f.numGlyphs,_);}if(c){p.clear();const i=e.icon.placedSymbolArray;for(let e=0;ee.style.map.terrain.getElevation(l,t,i):null,i="map"===s.layout.get("text-rotation-alignment");dt(h,l.posMatrix,e,o,F,B,g,c,i,t);}const U=e.translatePosMatrix(l.posMatrix,a,r,n),Z=v||o&&T||N?Ri:F,G=e.translatePosMatrix(B,a,r,n,!0),j=_&&0!==s.paint.get(o?"text-halo-width":"icon-halo-width").constantOr(1);let V;V=_?h.iconsInText?Re(w.kind,C,x,g,e,U,Z,G,D,A):Ae(w.kind,C,x,g,e,U,Z,G,o,D,!0):Le(w.kind,C,x,g,e,U,Z,G,o,D);const q={program:S,buffers:u,uniformValues:V,atlasTexture:M,atlasTextureIcon:R,atlasInterpolation:z,atlasInterpolationIcon:L,isSDF:_,hasHalo:j};if(y&&h.canOverlap){b=!0;const e=u.segments.get();for(const i of e)I.push({segments:new t.S([i]),sortKey:i.sortKey,state:q,terrainData:P});}else I.push({segments:u.segments,sortKey:0,state:q,terrainData:P});}b&&I.sort(((t,e)=>t.sortKey-e.sortKey));for(const t of I){const i=t.state;if(_.activeTexture.set(p.TEXTURE0),i.atlasTexture.bind(i.atlasInterpolation,p.CLAMP_TO_EDGE),i.atlasTextureIcon&&(_.activeTexture.set(p.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,p.CLAMP_TO_EDGE)),i.isSDF){const a=i.uniformValues;i.hasHalo&&(a.u_is_halo=1,Ni(i.buffers,t.segments,s,e,i.program,w,u,d,a,t.terrainData)),a.u_is_halo=0;}Ni(i.buffers,t.segments,s,e,i.program,w,u,d,i.uniformValues,t.terrainData);}}function Ni(t,e,i,s,a,o,r,n,l,h){const c=s.context;a.draw(c,c.gl.TRIANGLES,o,r,n,zi.disabled,l,h,i.id,t.layoutVertexBuffer,t.indexBuffer,e,i.paint,s.transform.zoom,t.programConfigurations.get(i.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer);}function Ui(t,e,i,s,a){if(!i||!s||!s.imageAtlas)return;const o=s.imageAtlas.patternPositions;let r=o[i.to.toString()],n=o[i.from.toString()];if(!r&&n&&(r=n),!n&&r&&(n=r),!r||!n){const t=a.getPaintProperty(e);r=o[t],n=o[t];}r&&n&&t.setConstantPatternPositions(r,n);}function Zi(t,e,i,s,a,o,r){const n=t.context.gl,l="fill-pattern",h=i.paint.get(l),c=h&&h.constantOr(1),u=i.getCrossfadeParameters();let d,_,p,m,f;r?(_=c&&!i.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",d=n.LINES):(_=c?"fillPattern":"fill",d=n.TRIANGLES);const g=h.constantOr(null);for(const h of s){const s=e.getTile(h);if(c&&!s.patternsLoaded())continue;const v=s.getBucket(i);if(!v)continue;const x=v.programConfigurations.get(i.id),y=t.useProgram(_,x),b=t.style.map.terrain&&t.style.map.terrain.getTerrainData(h);c&&(t.context.activeTexture.set(n.TEXTURE0),s.imageAtlasTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE),x.updatePaintBuffers(u)),Ui(x,l,g,s,i);const w=b?h:null,T=t.translatePosMatrix(w?w.posMatrix:h.posMatrix,s,i.paint.get("fill-translate"),i.paint.get("fill-translate-anchor"));if(r){m=v.indexBuffer2,f=v.segments2;const e=[n.drawingBufferWidth,n.drawingBufferHeight];p="fillOutlinePattern"===_&&c?ge(T,t,u,s,e):fe(T,e);}else m=v.indexBuffer,f=v.segments,p=c?me(T,t,u,s):pe(T);y.draw(t.context,d,a,t.stencilModeForClipping(h),o,zi.disabled,p,b,i.id,v.layoutVertexBuffer,m,f,i.paint,t.transform.zoom,x);}}function Gi(t,e,i,s,a,o,r){const n=t.context,l=n.gl,h="fill-extrusion-pattern",c=i.paint.get(h),u=c.constantOr(1),d=i.getCrossfadeParameters(),_=i.paint.get("fill-extrusion-opacity"),p=c.constantOr(null);for(const c of s){const s=e.getTile(c),m=s.getBucket(i);if(!m)continue;const f=t.style.map.terrain&&t.style.map.terrain.getTerrainData(c),g=m.programConfigurations.get(i.id),v=t.useProgram(u?"fillExtrusionPattern":"fillExtrusion",g);u&&(t.context.activeTexture.set(l.TEXTURE0),s.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),g.updatePaintBuffers(d)),Ui(g,h,p,s,i);const x=t.translatePosMatrix(c.posMatrix,s,i.paint.get("fill-extrusion-translate"),i.paint.get("fill-extrusion-translate-anchor")),y=i.paint.get("fill-extrusion-vertical-gradient"),b=u?_e(x,t,y,_,c,d,s):de(x,t,y,_);v.draw(n,n.gl.TRIANGLES,a,o,r,zi.backCCW,b,f,i.id,m.layoutVertexBuffer,m.indexBuffer,m.segments,i.paint,t.transform.zoom,g,t.style.map.terrain&&m.centroidVertexBuffer);}}function ji(t,e,i,s,a,o,r){const n=t.context,l=n.gl,h=i.fbo;if(!h)return;const c=t.useProgram("hillshade"),u=t.style.map.terrain&&t.style.map.terrain.getTerrainData(e);n.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,h.colorAttachment.get()),c.draw(n,l.TRIANGLES,a,o,r,zi.disabled,((t,e,i,s)=>{const a=i.paint.get("hillshade-shadow-color"),o=i.paint.get("hillshade-highlight-color"),r=i.paint.get("hillshade-accent-color");let n=i.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===i.paint.get("hillshade-illumination-anchor")&&(n-=t.transform.angle);const l=!t.options.moving;return {u_matrix:s?s.posMatrix:t.transform.calculatePosMatrix(e.tileID.toUnwrapped(),l),u_image:0,u_latrange:Te(0,e.tileID),u_light:[i.paint.get("hillshade-exaggeration"),n],u_shadow:a,u_highlight:o,u_accent:r}})(t,i,s,u?e:null),u,s.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments);}function Vi(e,i,s,a,o,r){const n=e.context,l=n.gl,h=i.dem;if(h&&h.data){const c=h.dim,u=h.stride,d=h.getPixels();if(n.activeTexture.set(l.TEXTURE1),n.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||e.getTileTexture(u),i.demTexture){const t=i.demTexture;t.update(d,{premultiply:!1}),t.bind(l.NEAREST,l.CLAMP_TO_EDGE);}else i.demTexture=new x(n,d,l.RGBA,{premultiply:!1}),i.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);n.activeTexture.set(l.TEXTURE0);let _=i.fbo;if(!_){const t=new x(n,{width:c,height:c,data:null},l.RGBA);t.bind(l.LINEAR,l.CLAMP_TO_EDGE),_=i.fbo=n.createFramebuffer(c,c,!0,!1),_.colorAttachment.set(t.texture);}n.bindFramebuffer.set(_.framebuffer),n.viewport.set([0,0,c,c]),e.useProgram("hillshadePrepare").draw(n,l.TRIANGLES,a,o,r,zi.disabled,((e,i)=>{const s=i.stride,a=t.Z();return t.aS(a,0,t.N,-t.N,0,0,1),t.$(a,a,[0,-t.N,0]),{u_matrix:a,u_image:1,u_dimension:[s,s],u_zoom:e.overscaledZ,u_unpack:i.getUnpackVector()}})(i.tileID,h),null,s.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),i.needsHillshadePrepare=!1;}}function qi(e,i,s,a,o,r){const n=a.paint.get("raster-fade-duration");if(!r&&n>0){const a=t.h.now(),r=(a-e.timeAdded)/n,l=i?(a-i.timeAdded)/n:-1,h=s.getSource(),c=o.coveringZoomLevel({tileSize:h.tileSize,roundZoom:h.roundZoom}),u=!i||Math.abs(i.tileID.overscaledZ-c)>Math.abs(e.tileID.overscaledZ-c),d=u&&e.refreshedUponExpiration?1:t.ad(u?r:1-l,0,1);return e.refreshedUponExpiration&&r>=1&&(e.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}const $i=new t.aT(1,0,0,1),Wi=new t.aT(0,1,0,1),Hi=new t.aT(0,0,1,1),Xi=new t.aT(1,0,1,1),Ki=new t.aT(0,1,1,1);function Qi(t,e,i,s){Ji(t,0,e+i/2,t.transform.width,i,s);}function Yi(t,e,i,s){Ji(t,e-i/2,0,i,t.transform.height,s);}function Ji(t,e,i,s,a,o){const r=t.context,n=r.gl;n.enable(n.SCISSOR_TEST),n.scissor(e*t.pixelRatio,i*t.pixelRatio,s*t.pixelRatio,a*t.pixelRatio),r.clear({color:o}),n.disable(n.SCISSOR_TEST);}function ts(e,i,s){const a=e.context,o=a.gl,r=s.posMatrix,n=e.useProgram("debug"),l=Pi.disabled,h=Mi.disabled,c=e.colorModeForRenderPass(),u="$debug",d=e.style.map.terrain&&e.style.map.terrain.getTerrainData(s);a.activeTexture.set(o.TEXTURE0);const _=i.getTileByID(s.key).latestRawTileData,p=Math.floor((_&&_.byteLength||0)/1024),m=i.getTile(s).tileSize,f=512/Math.min(m,512)*(s.overscaledZ/e.transform.zoom)*.5;let g=s.canonical.toString();s.overscaledZ!==s.canonical.z&&(g+=` => ${s.overscaledZ}`),function(t,e){t.initDebugOverlayCanvas();const i=t.debugOverlayCanvas,s=t.context.gl,a=t.debugOverlayCanvas.getContext("2d");a.clearRect(0,0,i.width,i.height),a.shadowColor="white",a.shadowBlur=2,a.lineWidth=1.5,a.strokeStyle="white",a.textBaseline="top",a.font="bold 36px Open Sans, sans-serif",a.fillText(e,5,5),a.strokeText(e,5,5),t.debugOverlayTexture.update(i),t.debugOverlayTexture.bind(s.LINEAR,s.CLAMP_TO_EDGE);}(e,`${g} ${p}kB`),n.draw(a,o.TRIANGLES,l,h,Si.alphaBlended,zi.disabled,ye(r,t.aT.transparent,f),null,u,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments),n.draw(a,o.LINE_STRIP,l,h,c,zi.disabled,ye(r,t.aT.red),d,u,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);}function es(t,e,i){const s=t.context,a=s.gl,o=t.colorModeForRenderPass(),r=new Pi(a.LEQUAL,Pi.ReadWrite,t.depthRangeFor3D),n=t.useProgram("terrain"),l=e.getTerrainMesh();s.bindFramebuffer.set(null),s.viewport.set([0,0,t.width,t.height]);for(const h of i){const i=t.renderToTexture.getTexture(h),c=e.getTerrainData(h.tileID);s.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,i.texture);const u={u_matrix:t.transform.calculatePosMatrix(h.tileID.toUnwrapped()),u_texture:0,u_ele_delta:e.getMeshFrameDelta(t.transform.zoom)};n.draw(s,a.TRIANGLES,r,Mi.disabled,o,zi.backCCW,u,c,"terrain",l.vertexBuffer,l.indexBuffer,l.segments);}}class is{constructor(e,i){this.context=new Ci(e),this.transform=i,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:t.Z(),renderTime:0},this.setup(),this.numSublayers=K.maxUnderzooming+K.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Yt;}resize(t,e,i){if(this.width=Math.floor(t*i),this.height=Math.floor(e*i),this.pixelRatio=i,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const t of this.style._order)this.style._layers[t].resize();}setup(){const e=this.context,i=new t.a_;i.emplaceBack(0,0),i.emplaceBack(t.N,0),i.emplaceBack(0,t.N),i.emplaceBack(t.N,t.N),this.tileExtentBuffer=e.createVertexBuffer(i,ae.members),this.tileExtentSegments=t.S.simpleSegment(0,0,4,2);const s=new t.a_;s.emplaceBack(0,0),s.emplaceBack(t.N,0),s.emplaceBack(0,t.N),s.emplaceBack(t.N,t.N),this.debugBuffer=e.createVertexBuffer(s,ae.members),this.debugSegments=t.S.simpleSegment(0,0,4,5);const a=new t.V;a.emplaceBack(0,0,0,0),a.emplaceBack(t.N,0,t.N,0),a.emplaceBack(0,t.N,0,t.N),a.emplaceBack(t.N,t.N,t.N,t.N),this.rasterBoundsBuffer=e.createVertexBuffer(a,O.members),this.rasterBoundsSegments=t.S.simpleSegment(0,0,4,2);const o=new t.a_;o.emplaceBack(0,0),o.emplaceBack(1,0),o.emplaceBack(0,1),o.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(o,ae.members),this.viewportSegments=t.S.simpleSegment(0,0,4,2);const r=new t.a$;r.emplaceBack(0),r.emplaceBack(1),r.emplaceBack(3),r.emplaceBack(2),r.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(r);const n=new t.b0;n.emplaceBack(0,1,2),n.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(n);const l=this.context.gl;this.stencilClearMode=new Mi({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO);}clearStencil(){const e=this.context,i=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const s=t.Z();t.aS(s,0,this.width,this.height,0,0,1),t.a0(s,s,[i.drawingBufferWidth,i.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(e,i.TRIANGLES,Pi.disabled,this.stencilClearMode,Si.disabled,zi.disabled,be(s),null,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);}_renderTileClippingMasks(t,e){if(this.currentStencilSource===t.source||!t.isTileClipped()||!e||!e.length)return;this.currentStencilSource=t.source;const i=this.context,s=i.gl;this.nextStencilID+e.length>256&&this.clearStencil(),i.setColorMode(Si.disabled),i.setDepthMode(Pi.disabled);const a=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const t of e){const e=this._tileClippingMaskIDs[t.key]=this.nextStencilID++,o=this.style.map.terrain&&this.style.map.terrain.getTerrainData(t);a.draw(i,s.TRIANGLES,Pi.disabled,new Mi({func:s.ALWAYS,mask:0},e,255,s.KEEP,s.KEEP,s.REPLACE),Si.disabled,zi.disabled,be(t.posMatrix),o,"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments);}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,e=this.context.gl;return new Mi({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)}stencilModeForClipping(t){const e=this.context.gl;return new Mi({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)}stencilConfigForOverlap(t){const e=this.context.gl,i=t.sort(((t,e)=>e.overscaledZ-t.overscaledZ)),s=i[i.length-1].overscaledZ,a=i[0].overscaledZ-s+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();const t={};for(let i=0;i=0;this.currentLayer--){const t=this.style._layers[s[this.currentLayer]],e=a[t.source],i=o[t.source];this._renderTileClippingMasks(t,i),this.renderLayer(this,e,t,i);}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayeri.source&&!i.isHidden(e)?[t.sourceCaches[i.source]]:[])),a=s.filter((t=>"vector"===t.getSource().type)),o=s.filter((t=>"vector"!==t.getSource().type)),r=t=>{(!i||i.getSource().maxzoomr(t))),i||o.forEach((t=>r(t))),i}(this.style,this.transform.zoom);t&&function(t,e,i){for(let s=0;si.style.map.terrain.getElevation(o,t,e):null);}}}(a,e,s,i,s.layout.get("text-rotation-alignment"),s.layout.get("text-pitch-alignment"),o),0!==s.paint.get("icon-opacity").constantOr(1)&&Oi(e,i,s,a,!1,s.paint.get("icon-translate"),s.paint.get("icon-translate-anchor"),s.layout.get("icon-rotation-alignment"),s.layout.get("icon-pitch-alignment"),s.layout.get("icon-keep-upright"),r,n),0!==s.paint.get("text-opacity").constantOr(1)&&Oi(e,i,s,a,!0,s.paint.get("text-translate"),s.paint.get("text-translate-anchor"),s.layout.get("text-rotation-alignment"),s.layout.get("text-pitch-alignment"),s.layout.get("text-keep-upright"),r,n),i.map.showCollisionBoxes&&(Ai(e,i,s,a,s.paint.get("text-translate"),s.paint.get("text-translate-anchor"),!0),Ai(e,i,s,a,s.paint.get("icon-translate"),s.paint.get("icon-translate-anchor"),!1));}(e,i,s,a,this.style.placement.variableOffsets);break;case"circle":!function(e,i,s,a){if("translucent"!==e.renderPass)return;const o=s.paint.get("circle-opacity"),r=s.paint.get("circle-stroke-width"),n=s.paint.get("circle-stroke-opacity"),l=!s.layout.get("circle-sort-key").isConstant();if(0===o.constantOr(1)&&(0===r.constantOr(1)||0===n.constantOr(1)))return;const h=e.context,c=h.gl,u=e.depthModeForSublayer(0,Pi.ReadOnly),d=Mi.disabled,_=e.colorModeForRenderPass(),p=[];for(let o=0;ot.sortKey-e.sortKey));for(const t of p){const{programConfiguration:i,program:a,layoutVertexBuffer:o,indexBuffer:r,uniformValues:n,terrainData:l}=t.state;a.draw(h,c.TRIANGLES,u,d,_,zi.disabled,n,l,s.id,o,r,t.segments,s.paint,e.transform.zoom,i);}}(e,i,s,a);break;case"heatmap":!function(e,i,s,a){if(0!==s.paint.get("heatmap-opacity"))if("offscreen"===e.renderPass){const o=e.context,r=o.gl,n=Mi.disabled,l=new Si([r.ONE,r.ONE],t.aT.transparent,[!0,!0,!0,!0]);!function(t,e,i){const s=t.gl;t.activeTexture.set(s.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);let a=i.heatmapFbo;if(a)s.bindTexture(s.TEXTURE_2D,a.colorAttachment.get()),t.bindFramebuffer.set(a.framebuffer);else {const o=s.createTexture();s.bindTexture(s.TEXTURE_2D,o),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),a=i.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4,!1,!1),function(t,e,i,s){var a,o;const r=t.gl,n=null!==(a=t.HALF_FLOAT)&&void 0!==a?a:r.UNSIGNED_BYTE,l=null!==(o=t.RGBA16F)&&void 0!==o?o:r.RGBA;r.texImage2D(r.TEXTURE_2D,0,l,e.width/4,e.height/4,0,r.RGBA,n,null),s.colorAttachment.set(i);}(t,e,o,a);}}(o,e,s),o.clear({color:t.aT.transparent});for(let t=0;t{const o=t.Z();t.aS(o,0,e.width,e.height,0,0,1);const r=e.context.gl;return {u_matrix:o,u_world:[r.drawingBufferWidth,r.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:i.paint.get("heatmap-opacity")}})(e,i),null,i.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,i.paint,e.transform.zoom);}(e,s));}(e,i,s,a);break;case"line":!function(e,i,s,a){if("translucent"!==e.renderPass)return;const o=s.paint.get("line-opacity"),r=s.paint.get("line-width");if(0===o.constantOr(1)||0===r.constantOr(1))return;const n=e.depthModeForSublayer(0,Pi.ReadOnly),l=e.colorModeForRenderPass(),h=s.paint.get("line-dasharray"),c=s.paint.get("line-pattern"),u=c.constantOr(1),d=s.paint.get("line-gradient"),_=s.getCrossfadeParameters(),p=u?"linePattern":h?"lineSDF":d?"lineGradient":"line",m=e.context,f=m.gl;let g=!0;for(const o of a){const a=i.getTile(o);if(u&&!a.patternsLoaded())continue;const r=a.getBucket(s);if(!r)continue;const v=r.programConfigurations.get(s.id),y=e.context.program.get(),b=e.useProgram(p,v),w=g||b.program!==y,T=e.style.map.terrain&&e.style.map.terrain.getTerrainData(o),I=c.constantOr(null);if(I&&a.imageAtlas){const t=a.imageAtlas,e=t.patternPositions[I.to.toString()],i=t.patternPositions[I.from.toString()];e&&i&&v.setConstantPatternPositions(e,i);}const E=T?o:null,S=u?Se(e,a,s,_,E):h?Ce(e,a,s,h,_,E):d?Ee(e,a,s,r.lineClipsArray.length,E):Ie(e,a,s,E);if(u)m.activeTexture.set(f.TEXTURE0),a.imageAtlasTexture.bind(f.LINEAR,f.CLAMP_TO_EDGE),v.updatePaintBuffers(_);else if(h&&(w||e.lineAtlas.dirty))m.activeTexture.set(f.TEXTURE0),e.lineAtlas.bind(m);else if(d){const a=r.gradients[s.id];let n=a.texture;if(s.gradientVersion!==a.version){let l=256;if(s.stepInterpolant){const s=i.getSource().maxzoom,a=o.canonical.z===s?Math.ceil(1<0?e.pop():null}isPatternMissing(t){if(!t)return !1;if(!t.from||!t.to)return !0;const e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return !e||!i}useProgram(t,e){this.cache=this.cache||{};const i=t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"")+(this.style.map.terrain?"/terrain":"");return this.cache[i]||(this.cache[i]=new ce(this.context,re[t],e,Be[t],this._showOverdrawInspector,this.style.map.terrain)),this.cache[i]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();}setBaseState(){const t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD);}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new x(this.context,this.debugOverlayCanvas,this.context.gl.RGBA));}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy();}overLimit(){const{drawingBufferWidth:t,drawingBufferHeight:e}=this.context.gl;return this.width!==t||this.height!==e}}class ss{constructor(t,e){this.points=t,this.planes=e;}static fromInvProjectionMatrix(e,i,s){const a=Math.pow(2,s),o=[[-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((s=>{const o=1/(s=t.ag([],s,e))[3]/i*a;return t.b3(s,s,[o,o,1/s[3],o])})),r=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((t=>{const e=function(t,e){var i=e[0],s=e[1],a=e[2],o=i*i+s*s+a*a;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}([],function(t,e,i){var s=e[0],a=e[1],o=e[2],r=i[0],n=i[1],l=i[2];return t[0]=a*l-o*n,t[1]=o*r-s*l,t[2]=s*n-a*r,t}([],m([],o[t[0]],o[t[1]]),m([],o[t[2]],o[t[1]]))),i=-((s=e)[0]*(a=o[t[1]])[0]+s[1]*a[1]+s[2]*a[2]);var s,a;return e.concat(i)}));return new ss(o,r)}}class as{constructor(t,e){this.min=t,this.max=e,this.center=function(t,e,i){return t[0]=.5*e[0],t[1]=.5*e[1],t[2]=.5*e[2],t}([],function(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t}([],this.min,this.max));}quadrant(t){const e=[t%2==0,t<2],i=_(this.min),s=_(this.max);for(let t=0;t=0&&r++;if(0===r)return 0;r!==i.length&&(s=!1);}if(s)return 2;for(let t=0;t<3;t++){let i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(let a=0;athis.max[t]-this.min[t])return 0}return 1}}class os{constructor(t=0,e=0,i=0,s=0){if(isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(s)||s<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=i,this.right=s;}interpolate(e,i,s){return null!=i.top&&null!=e.top&&(this.top=t.B.number(e.top,i.top,s)),null!=i.bottom&&null!=e.bottom&&(this.bottom=t.B.number(e.bottom,i.bottom,s)),null!=i.left&&null!=e.left&&(this.left=t.B.number(e.left,i.left,s)),null!=i.right&&null!=e.right&&(this.right=t.B.number(e.right,i.right,s)),this}getCenter(e,i){const s=t.ad((this.left+e-this.right)/2,0,e),a=t.ad((this.top+i-this.bottom)/2,0,i);return new t.P(s,a)}equals(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right}clone(){return new os(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}class rs{constructor(e,i,s,a,o){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===o||!!o,this._minZoom=e||0,this._maxZoom=i||22,this._minPitch=null==s?0:s,this._maxPitch=null==a?60:a,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.L(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new os,this._posMatrixCache={},this._alignedPosMatrixCache={},this._minEleveationForCurrentTile=0;}clone(){const t=new rs(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.apply(this),t}apply(t){this.tileSize=t.tileSize,this.latRange=t.latRange,this.width=t.width,this.height=t.height,this._center=t._center,this._elevation=t._elevation,this._minEleveationForCurrentTile=t._minEleveationForCurrentTile,this.zoom=t.zoom,this.angle=t.angle,this._fov=t._fov,this._pitch=t._pitch,this._unmodified=t._unmodified,this._edgeInsets=t._edgeInsets.clone(),this._calcMatrices();}get minZoom(){return this._minZoom}set minZoom(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t));}get maxZoom(){return this._maxZoom}set maxZoom(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t));}get minPitch(){return this._minPitch}set minPitch(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t));}get maxPitch(){return this._maxPitch}set maxPitch(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t));}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t;}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new t.P(this.width,this.height)}get bearing(){return -this.angle/Math.PI*180}set bearing(e){const i=-t.b5(e,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=function(){var e=new t.A(4);return t.A!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}(),function(t,e,i){var s=e[0],a=e[1],o=e[2],r=e[3],n=Math.sin(i),l=Math.cos(i);t[0]=s*l+o*n,t[1]=a*l+r*n,t[2]=s*-n+o*l,t[3]=a*-n+r*l;}(this.rotationMatrix,this.rotationMatrix,this.angle));}get pitch(){return this._pitch/Math.PI*180}set pitch(e){const i=t.ad(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());}get fov(){return this._fov/Math.PI*180}set fov(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices());}get zoom(){return this._zoom}set zoom(t){const e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.tileZoom=Math.max(0,Math.floor(e)),this.scale=this.zoomScale(e),this._constrain(),this._calcMatrices());}get center(){return this._center}set center(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices());}get elevation(){return this._elevation}set elevation(t){t!==this._elevation&&(this._elevation=t,this._constrain(),this._calcMatrices());}get padding(){return this._edgeInsets.toJSON()}set padding(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices());}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(t){return this._edgeInsets.equals(t)}interpolatePadding(t,e,i){this._unmodified=!1,this._edgeInsets.interpolate(t,e,i),this._constrain(),this._calcMatrices();}coveringZoomLevel(t){const e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)}getVisibleUnwrappedCoordinates(e){const i=[new t.b6(0,e)];if(this._renderWorldCopies){const s=this.pointCoordinate(new t.P(0,0)),a=this.pointCoordinate(new t.P(this.width,0)),o=this.pointCoordinate(new t.P(this.width,this.height)),r=this.pointCoordinate(new t.P(0,this.height)),n=Math.floor(Math.min(s.x,a.x,o.x,r.x)),l=Math.floor(Math.max(s.x,a.x,o.x,r.x)),h=1;for(let s=n-h;s<=l+h;s++)0!==s&&i.push(new t.b6(s,e));}return i}coveringTiles(e){var i,s;let a=this.coveringZoomLevel(e);const o=a;if(void 0!==e.minzoom&&ae.maxzoom&&(a=e.maxzoom);const r=this.pointCoordinate(this.getCameraPoint()),n=t.U.fromLngLat(this.center),l=Math.pow(2,a),h=[l*r.x,l*r.y,0],c=[l*n.x,l*n.y,0],u=ss.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,a);let d=e.minzoom||0;!e.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(d=a);const _=e.terrain?2/Math.min(this.tileSize,e.tileSize)*this.tileSize:3,p=t=>({aabb:new as([t*l,0,0],[(t+1)*l,l,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}),m=[],g=[],v=a,x=e.reparseOverscaled?o:a;if(this._renderWorldCopies)for(let t=1;t<=3;t++)m.push(p(-t)),m.push(p(t));for(m.push(p(0));m.length>0;){const a=m.pop(),o=a.x,r=a.y;let n=a.fullyVisible;if(!n){const t=a.aabb.intersects(u);if(0===t)continue;n=2===t;}const l=e.terrain?h:c,p=a.aabb.distanceX(l),y=a.aabb.distanceY(l),b=Math.max(Math.abs(p),Math.abs(y));if(a.zoom===v||b>_+(1<=d){const e=v-a.zoom,i=h[0]-.5-(o<>1),u=a.zoom+1;let d=a.aabb.quadrant(l);if(e.terrain){const o=new t.O(u,a.wrap,u,h,c),r=e.terrain.getMinMaxElevation(o),n=null!==(i=r.minElevation)&&void 0!==i?i:this.elevation,l=null!==(s=r.maxElevation)&&void 0!==s?s:this.elevation;d=new as([d.min[0],d.min[1],n],[d.max[0],d.max[1],l]);}m.push({aabb:d,zoom:u,x:h,y:c,wrap:a.wrap,fullyVisible:n});}}return g.sort(((t,e)=>t.distanceSq-e.distanceSq)).map((t=>t.tileID))}resize(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices();}get unmodified(){return this._unmodified}zoomScale(t){return Math.pow(2,t)}scaleZoom(t){return Math.log(t)/Math.LN2}project(e){const i=t.ad(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.P(t.G(e.lng)*this.worldSize,t.H(i)*this.worldSize)}unproject(e){return new t.U(e.x/this.worldSize,e.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return {lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(e){const i=this.pointLocation(this.centerPoint,e),s=e.getElevationForLngLatZoom(i,this.tileZoom);if(!(this.elevation-s))return;const a=this.getCameraPosition(),o=t.U.fromLngLat(a.lngLat,a.altitude),r=t.U.fromLngLat(i,s),n=o.x-r.x,l=o.y-r.y,h=o.z-r.z,c=Math.sqrt(n*n+l*l+h*h),u=this.scaleZoom(this.cameraToCenterDistance/c/this.tileSize);this._elevation=s,this._center=i,this.zoom=u;}setLocationAtPoint(e,i){const s=this.pointCoordinate(i),a=this.pointCoordinate(this.centerPoint),o=this.locationCoordinate(e),r=new t.U(o.x-(s.x-a.x),o.y-(s.y-a.y));this.center=this.coordinateLocation(r),this._renderWorldCopies&&(this.center=this.center.wrap());}locationPoint(t,e){return e?this.coordinatePoint(this.locationCoordinate(t),e.getElevationForLngLatZoom(t,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(t))}pointLocation(t,e){return this.coordinateLocation(this.pointCoordinate(t,e))}locationCoordinate(e){return t.U.fromLngLat(e)}coordinateLocation(t){return t&&t.toLngLat()}pointCoordinate(e,i){if(i){const t=i.pointCoordinate(e);if(null!=t)return t}const s=[e.x,e.y,0,1],a=[e.x,e.y,1,1];t.ag(s,s,this.pixelMatrixInverse),t.ag(a,a,this.pixelMatrixInverse);const o=s[3],r=a[3],n=s[1]/o,l=a[1]/r,h=s[2]/o,c=a[2]/r,u=h===c?0:(0-h)/(c-h);return new t.U(t.B.number(s[0]/o,a[0]/r,u)/this.worldSize,t.B.number(n,l,u)/this.worldSize)}coordinatePoint(e,i=0,s=this.pixelMatrix){const a=[e.x*this.worldSize,e.y*this.worldSize,i,1];return t.ag(a,a,s),new t.P(a[0]/a[3],a[1]/a[3])}getBounds(){const e=Math.max(0,this.height/2-this.getHorizon());return (new L).extend(this.pointLocation(new t.P(0,e))).extend(this.pointLocation(new t.P(this.width,e))).extend(this.pointLocation(new t.P(this.width,this.height))).extend(this.pointLocation(new t.P(0,this.height)))}getMaxBounds(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new L([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude]);}calculatePosMatrix(e,i=!1){const s=e.key,a=i?this._alignedPosMatrixCache:this._posMatrixCache;if(a[s])return a[s];const o=e.canonical,r=this.worldSize/this.zoomScale(o.z),n=o.x+Math.pow(2,o.z)*e.wrap,l=t.ao(new Float64Array(16));return t.$(l,l,[n*r,o.y*r,0]),t.a0(l,l,[r/t.N,r/t.N,1]),t.a1(l,i?this.alignedProjMatrix:this.projMatrix,l),a[s]=new Float32Array(l),a[s]}customLayerMatrix(){return this.mercatorMatrix.slice()}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let e,i,s,a,o=-90,r=90,n=-180,l=180;const h=this.size,c=this._unmodified;if(this.latRange){const i=this.latRange;o=t.H(i[1])*this.worldSize,r=t.H(i[0])*this.worldSize,e=r-or&&(a=r-e);}if(this.lngRange){const e=(n+l)/2,i=t.b5(u.x,e-this.worldSize/2,e+this.worldSize/2),a=h.x/2;i-al&&(s=l-a);}void 0===s&&void 0===a||(this.center=this.unproject(new t.P(void 0!==s?s:u.x,void 0!==a?a:u.y)).wrap()),this._unmodified=c,this._constraining=!1;}_calcMatrices(){if(!this.height)return;const e=this.centerOffset,i=this.point.x,s=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=t.b7(1,this.center.lat)*this.worldSize;let a=t.ao(new Float64Array(16));t.a0(a,a,[this.width/2,-this.height/2,1]),t.$(a,a,[1,-1,0]),this.labelPlaneMatrix=a,a=t.ao(new Float64Array(16)),t.a0(a,a,[1,-1,1]),t.$(a,a,[-1,-1,0]),t.a0(a,a,[2/this.width,2/this.height,1]),this.glCoordMatrix=a;const o=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),r=Math.min(this.elevation,this._minEleveationForCurrentTile),n=o-r*this._pixelPerMeter/Math.cos(this._pitch),l=r<0?n:o,h=Math.PI/2+this._pitch,c=this._fov*(.5+e.y/this.height),u=Math.sin(c)*l/Math.sin(t.ad(Math.PI-h-c,.01,Math.PI-.01)),d=this.getHorizon(),_=2*Math.atan(d/this.cameraToCenterDistance)*(.5+e.y/(2*d)),p=Math.sin(_)*l/Math.sin(t.ad(Math.PI-h-_,.01,Math.PI-.01)),m=Math.min(u,p),f=1.01*(Math.cos(Math.PI/2-this._pitch)*m+l),g=this.height/50;a=new Float64Array(16),t.b8(a,this._fov,this.width/this.height,g,f),a[8]=2*-e.x/this.width,a[9]=2*e.y/this.height,t.a0(a,a,[1,-1,1]),t.$(a,a,[0,0,-this.cameraToCenterDistance]),t.b9(a,a,this._pitch),t.ae(a,a,this.angle),t.$(a,a,[-i,-s,0]),this.mercatorMatrix=t.a0([],a,[this.worldSize,this.worldSize,this.worldSize]),t.a0(a,a,[1,1,this._pixelPerMeter]),this.pixelMatrix=t.a1(new Float64Array(16),this.labelPlaneMatrix,a),t.$(a,a,[0,0,-this.elevation]),this.projMatrix=a,this.invProjMatrix=t.as([],a),this.pixelMatrix3D=t.a1(new Float64Array(16),this.labelPlaneMatrix,a);const v=this.width%2/2,x=this.height%2/2,y=Math.cos(this.angle),b=Math.sin(this.angle),w=i-Math.round(i)+y*v+b*x,T=s-Math.round(s)+y*x+b*v,I=new Float64Array(a);if(t.$(I,I,[w>.5?w-1:w,T>.5?T-1:T,0]),this.alignedProjMatrix=I,a=t.as(new Float64Array(16),this.pixelMatrix),!a)throw new Error("failed to invert matrix");this.pixelMatrixInverse=a,this._posMatrixCache={},this._alignedPosMatrixCache={};}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;const e=this.pointCoordinate(new t.P(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.ag(i,i,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){const e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.P(0,e))}getCameraQueryGeometry(e){const i=this.getCameraPoint();if(1===e.length)return [e[0],i];{let s=i.x,a=i.y,o=i.x,r=i.y;for(const t of e)s=Math.min(s,t.x),a=Math.min(a,t.y),o=Math.max(o,t.x),r=Math.max(r,t.y);return [new t.P(s,a),new t.P(o,a),new t.P(o,r),new t.P(s,r),new t.P(s,a)]}}}function ns(t,e){let i,s=!1,a=null,o=null;const r=()=>{a=null,s&&(t.apply(o,i),a=setTimeout(r,e),s=!1);};return (...t)=>(s=!0,o=this,i=t,a||r(),a)}class ls{constructor(t){this._getCurrentHash=()=>{const t=window.location.hash.replace("#","");if(this._hashName){let e;return t.split("&").map((t=>t.split("="))).forEach((t=>{t[0]===this._hashName&&(e=t);})),(e&&e[1]||"").split("/")}return t.split("/")},this._onHashChange=()=>{const t=this._getCurrentHash();if(t.length>=3&&!t.some((t=>isNaN(t)))){const e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return !1},this._updateHashUnthrottled=()=>{const t=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,t);}catch(t){}},this._updateHash=ns(this._updateHashUnthrottled,300),this._hashName=t&&encodeURIComponent(t);}addTo(t){return this._map=t,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(t){const e=this._map.getCenter(),i=Math.round(100*this._map.getZoom())/100,s=Math.ceil((i*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,s),o=Math.round(e.lng*a)/a,r=Math.round(e.lat*a)/a,n=this._map.getBearing(),l=this._map.getPitch();let h="";if(h+=t?`/${o}/${r}/${i}`:`${i}/${r}/${o}`,(n||l)&&(h+="/"+Math.round(10*n)/10),l&&(h+=`/${Math.round(l)}`),this._hashName){const t=this._hashName;let e=!1;const i=window.location.hash.slice(1).split("&").map((i=>{const s=i.split("=")[0];return s===t?(e=!0,`${s}=${h}`):i})).filter((t=>t));return e||i.push(`${t}=${h}`),`#${i.join("&")}`}return `#${h}`}}const hs={linearity:.3,easing:t.ba(0,0,.3,1)},cs=t.e({deceleration:2500,maxSpeed:1400},hs),us=t.e({deceleration:20,maxSpeed:1400},hs),ds=t.e({deceleration:1e3,maxSpeed:360},hs),_s=t.e({deceleration:1e3,maxSpeed:90},hs);class ps{constructor(t){this._map=t,this.clear();}clear(){this._inertiaBuffer=[];}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:t.h.now(),settings:e});}_drainInertiaBuffer(){const e=this._inertiaBuffer,i=t.h.now();for(;e.length>0&&i-e[0].time>160;)e.shift();}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,pan:new t.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:t}of this._inertiaBuffer)i.zoom+=t.zoomDelta||0,i.bearing+=t.bearingDelta||0,i.pitch+=t.pitchDelta||0,t.panDelta&&i.pan._add(t.panDelta),t.around&&(i.around=t.around),t.pinchAround&&(i.pinchAround=t.pinchAround);const s=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,a={};if(i.pan.mag()){const o=fs(i.pan.mag(),s,t.e({},cs,e||{}));a.offset=i.pan.mult(o.amount/i.pan.mag()),a.center=this._map.transform.center,ms(a,o);}if(i.zoom){const t=fs(i.zoom,s,us);a.zoom=this._map.transform.zoom+t.amount,ms(a,t);}if(i.bearing){const e=fs(i.bearing,s,ds);a.bearing=this._map.transform.bearing+t.ad(e.amount,-179,179),ms(a,e);}if(i.pitch){const t=fs(i.pitch,s,_s);a.pitch=this._map.transform.pitch+t.amount,ms(a,t);}if(a.zoom||a.bearing){const t=void 0===i.pinchAround?i.around:i.pinchAround;a.around=t?this._map.unproject(t):this._map.getCenter();}return this.clear(),t.e(a,{noMoveStart:!0})}}function ms(t,e){(!t.duration||t.durations.unproject(t))),l=r.reduce(((t,e,i,s)=>t.add(e.div(s.length))),new t.P(0,0));super(e,{points:r,point:l,lngLats:n,lngLat:s.unproject(l),originalEvent:a}),this._defaultPrevented=!1;}}class xs extends t.k{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(t,e,i){super(t,{originalEvent:i}),this._defaultPrevented=!1;}}class ys{constructor(t,e){this._map=t,this._clickTolerance=e.clickTolerance;}reset(){delete this._mousedownPos;}wheel(t){return this._firePreventable(new xs(t.type,this._map,t))}mousedown(t,e){return this._mousedownPos=e,this._firePreventable(new gs(t.type,this._map,t))}mouseup(t){this._map.fire(new gs(t.type,this._map,t));}click(t,e){this._mousedownPos&&this._mousedownPos.dist(e)>=this._clickTolerance||this._map.fire(new gs(t.type,this._map,t));}dblclick(t){return this._firePreventable(new gs(t.type,this._map,t))}mouseover(t){this._map.fire(new gs(t.type,this._map,t));}mouseout(t){this._map.fire(new gs(t.type,this._map,t));}touchstart(t){return this._firePreventable(new vs(t.type,this._map,t))}touchmove(t){this._map.fire(new vs(t.type,this._map,t));}touchend(t){this._map.fire(new vs(t.type,this._map,t));}touchcancel(t){this._map.fire(new vs(t.type,this._map,t));}_firePreventable(t){if(this._map.fire(t),t.defaultPrevented)return {}}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class bs{constructor(t){this._map=t;}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent;}mousemove(t){this._map.fire(new gs(t.type,this._map,t));}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1;}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new gs("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(t){this._delayContextMenu?this._contextMenuEvent=t:this._ignoreContextMenu||this._map.fire(new gs(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault();}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class ws{constructor(t){this._map=t;}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return {lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.pointLocation(t.P.convert(e),this._map.terrain)}}class Ts{constructor(t,e){this._map=t,this._tr=new ws(t),this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1;}isEnabled(){return !!this._enabled}isActive(){return !!this._active}enable(){this.isEnabled()||(this._enabled=!0);}disable(){this.isEnabled()&&(this._enabled=!1);}mousedown(t,e){this.isEnabled()&&t.shiftKey&&0===t.button&&(i.disableDrag(),this._startPos=this._lastPos=e,this._active=!0);}mousemoveWindow(t,e){if(!this._active)return;const s=e;if(this._lastPos.equals(s)||!this._box&&s.dist(this._startPos)t.fitScreenCoordinates(a,o,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",e);}keydown(t){this._active&&27===t.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",t));}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(i.remove(this._box),this._box=null),i.enableDrag(),delete this._startPos,delete this._lastPos;}_fireEvent(e,i){return this._map.fire(new t.k(e,{originalEvent:i}))}}function Is(t,e){if(t.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${t.length}, points ${e.length}`);const i={};for(let s=0;sthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),s.length===this.numTouches&&(this.centroid=function(e){const i=new t.P(0,0);for(const t of e)i._add(t);return i.div(e.length)}(i),this.touches=Is(s,i)));}touchmove(t,e,i){if(this.aborted||!this.centroid)return;const s=Is(i,e);for(const t in this.touches){const e=s[t];(!e||e.dist(this.touches[t])>30)&&(this.aborted=!0);}}touchend(t,e,i){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){const t=!this.aborted&&this.centroid;if(this.reset(),t)return t}}}class Ss{constructor(t){this.singleTap=new Es(t),this.numTaps=t.numTaps,this.reset();}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset();}touchstart(t,e,i){this.singleTap.touchstart(t,e,i);}touchmove(t,e,i){this.singleTap.touchmove(t,e,i);}touchend(t,e,i){const s=this.singleTap.touchend(t,e,i);if(s){const e=t.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(s)<30;if(e&&i||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=s,this.count===this.numTaps)return this.reset(),s}}}class Cs{constructor(t){this._tr=new ws(t),this._zoomIn=new Ss({numTouches:1,numTaps:2}),this._zoomOut=new Ss({numTouches:2,numTaps:1}),this.reset();}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();}touchstart(t,e,i){this._zoomIn.touchstart(t,e,i),this._zoomOut.touchstart(t,e,i);}touchmove(t,e,i){this._zoomIn.touchmove(t,e,i),this._zoomOut.touchmove(t,e,i);}touchend(t,e,i){const s=this._zoomIn.touchend(t,e,i),a=this._zoomOut.touchend(t,e,i),o=this._tr;return s?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:o.zoom+1,around:o.unproject(s)},{originalEvent:t})}):a?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:o.zoom-1,around:o.unproject(a)},{originalEvent:t})}):void 0}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Ps{constructor(t){this._enabled=!!t.enable,this._moveStateManager=t.moveStateManager,this._clickTolerance=t.clickTolerance||1,this._moveFunction=t.move,this._activateOnStart=!!t.activateOnStart,t.assignEvents(this),this.reset();}reset(t){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(t);}_move(...t){const e=this._moveFunction(...t);if(e.bearingDelta||e.pitchDelta||e.around||e.panDelta)return this._active=!0,e}dragStart(t,e){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(t)&&(this._moveStateManager.startMove(t),this._lastPoint=e.length?e[0]:e,this._activateOnStart&&this._lastPoint&&(this._active=!0));}dragMove(t,e){if(!this.isEnabled())return;const i=this._lastPoint;if(!i)return;if(t.preventDefault(),!this._moveStateManager.isValidMoveEvent(t))return void this.reset(t);const s=e.length?e[0]:e;return !this._moved&&s.dist(i){t.mousedown=t.dragStart,t.mousemoveWindow=t.dragMove,t.mouseup=t.dragEnd,t.contextmenu=function(t){t.preventDefault();};},As=({enable:t,clickTolerance:e,bearingDegreesPerPixelMoved:s=.8})=>{const a=new Ms({checkCorrectEvent:t=>0===i.mouseButton(t)&&t.ctrlKey||2===i.mouseButton(t)});return new Ps({clickTolerance:e,move:(t,e)=>({bearingDelta:(e.x-t.x)*s}),moveStateManager:a,enable:t,assignEvents:Ls})},Rs=({enable:t,clickTolerance:e,pitchDegreesPerPixelMoved:s=-.5})=>{const a=new Ms({checkCorrectEvent:t=>0===i.mouseButton(t)&&t.ctrlKey||2===i.mouseButton(t)});return new Ps({clickTolerance:e,move:(t,e)=>({pitchDelta:(e.y-t.y)*s}),moveStateManager:a,enable:t,assignEvents:Ls})};class ks{constructor(t,e){this._minTouches=t.cooperativeGestures?2:1,this._clickTolerance=t.clickTolerance||1,this._map=e,this.reset();}reset(){this._active=!1,this._touches={},this._sum=new t.P(0,0),setTimeout((()=>{this._cancelCooperativeMessage=!1;}),200);}touchstart(t,e,i){return this._calculateTransform(t,e,i)}touchmove(t,e,i){if(this._map._cooperativeGestures&&(2===this._minTouches&&i.length<2&&!this._cancelCooperativeMessage?this._map._onCooperativeGesture(t,!1,i.length):this._cancelCooperativeMessage||(this._cancelCooperativeMessage=!0)),this._active&&!(i.length0&&(this._active=!0);const a=Is(s,i),o=new t.P(0,0),r=new t.P(0,0);let n=0;for(const t in a){const e=a[t],i=this._touches[t];i&&(o._add(e),r._add(e.sub(i)),n++,a[t]=e);}if(this._touches=a,nMath.abs(t.x)}class js extends Fs{constructor(t){super(),this._map=t;}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints;}touchstart(t,e,i){super.touchstart(t,e,i),this._currentTouchCount=i.length;}_start(t){this._lastPoints=t,Gs(t[0].sub(t[1]))&&(this._valid=!1);}_move(t,e,i){if(this._map._cooperativeGestures&&this._currentTouchCount<3)return;const s=t[0].sub(this._lastPoints[0]),a=t[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(s,a,i.timeStamp),this._valid?(this._lastPoints=t,this._active=!0,{pitchDelta:(s.y+a.y)/2*-.5}):void 0}gestureBeginsVertically(t,e,i){if(void 0!==this._valid)return this._valid;const s=t.mag()>=2,a=e.mag()>=2;if(!s&&!a)return;if(!s||!a)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const o=t.y>0==e.y>0;return Gs(t)&&Gs(e)&&o}}const Vs={panStep:100,bearingStep:15,pitchStep:10};class qs{constructor(t){this._tr=new ws(t);const e=Vs;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1;}reset(){this._active=!1;}keydown(t){if(t.altKey||t.ctrlKey||t.metaKey)return;let e=0,i=0,s=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?i=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?i=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?s=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?s=-1:(t.preventDefault(),o=1);break;default:return}return this._rotationDisabled&&(i=0,s=0),{cameraAnimation:r=>{const n=this._tr;r.easeTo({duration:300,easeId:"keyboardHandler",easing:$s,zoom:e?Math.round(n.zoom)+e*(t.shiftKey?2:1):n.zoom,bearing:n.bearing+i*this._bearingStep,pitch:n.pitch+s*this._pitchStep,offset:[-a*this._panStep,-o*this._panStep],center:n.center},{originalEvent:t});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0;}enableRotation(){this._rotationDisabled=!1;}}function $s(t){return t*(2-t)}const Ws=4.000244140625;class Hs{constructor(t,e){this._onTimeout=t=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t);},this._map=t,this._tr=new ws(t),this._el=t.getCanvasContainer(),this._triggerRenderFrame=e,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222;}setZoomRate(t){this._defaultZoomRate=t;}setWheelZoomRate(t){this._wheelZoomRate=t;}isEnabled(){return !!this._enabled}isActive(){return !!this._active||void 0!==this._finishTimeout}isZooming(){return !!this._zooming}enable(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!t&&"center"===t.around);}disable(){this.isEnabled()&&(this._enabled=!1);}wheel(e){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!e[this._map._metaKey])return;e.preventDefault();}let i=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const s=t.h.now(),a=s-(this._lastWheelEventTime||0);this._lastWheelEventTime=s,0!==i&&i%Ws==0?this._type="wheel":0!==i&&Math.abs(i)<4?this._type="trackpad":a>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(a*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault();}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const s=i.mousePos(this._el,e),a=this._tr;this._around=t.L.convert(this._aroundCenter?a.center:a.unproject(s)),this._aroundPoint=a.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame());}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const e=this._tr.transform;if(0!==this._delta){const t="wheel"===this._type&&Math.abs(this._delta)>Ws?this._wheelZoomRate:this._defaultZoomRate;let i=2/(1+Math.exp(-Math.abs(this._delta*t)));this._delta<0&&0!==i&&(i=1/i);const s="number"==typeof this._targetZoom?e.zoomScale(this._targetZoom):e.scale;this._targetZoom=Math.min(e.maxZoom,Math.max(e.minZoom,e.scaleZoom(s*i))),"wheel"===this._type&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0;}const i="number"==typeof this._targetZoom?this._targetZoom:e.zoom,s=this._startZoom,a=this._easing;let o,r=!1;if("wheel"===this._type&&s&&a){const e=Math.min((t.h.now()-this._lastWheelEventTime)/200,1),n=a(e);o=t.B.number(s,i,n),e<1?this._frameId||(this._frameId=!0):r=!0;}else o=i,r=!0;return this._active=!0,r&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout;}),200)),{noInertia:!0,needsRenderFrame:!r,zoomDelta:o-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let i=t.bb;if(this._prevEase){const e=this._prevEase,s=(t.h.now()-e.start)/e.duration,a=e.easing(s+.01)-e.easing(s),o=.27/Math.sqrt(a*a+1e-4)*.01,r=Math.sqrt(.0729-o*o);i=t.ba(o,r,.25,1);}return this._prevEase={start:t.h.now(),duration:e,easing:i},i}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);}}class Xs{constructor(t,e){this._clickZoom=t,this._tapZoom=e;}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 Ks{constructor(t){this._tr=new ws(t),this.reset();}reset(){this._active=!1;}dblclick(t,e){return t.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:this._tr.zoom+(t.shiftKey?-1:1),around:this._tr.unproject(e)},{originalEvent:t});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Qs{constructor(){this._tap=new Ss({numTouches:1,numTaps:1}),this.reset();}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset();}touchstart(t,e,i){if(!this._swipePoint)if(this._tapTime){const s=e[0],a=t.timeStamp-this._tapTime<500,o=this._tapPoint.dist(s)<30;a&&o?i.length>0&&(this._swipePoint=s,this._swipeTouch=i[0].identifier):this.reset();}else this._tap.touchstart(t,e,i);}touchmove(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const s=e[0],a=s.y-this._swipePoint.y;return this._swipePoint=s,t.preventDefault(),this._active=!0,{zoomDelta:a/128}}}else this._tap.touchmove(t,e,i);}touchend(t,e,i){if(this._tapTime)this._swipePoint&&0===i.length&&this.reset();else {const s=this._tap.touchend(t,e,i);s&&(this._tapTime=t.timeStamp,this._tapPoint=s);}}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Ys{constructor(t,e,i){this._el=t,this._mousePan=e,this._touchPan=i;}enable(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan");}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan");}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Js{constructor(t,e,i){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=i;}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 ta{constructor(t,e,i,s){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=s,this._rotationDisabled=!1,this._enabled=!0;}enable(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate");}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate");}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable();}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();}}const ea=t=>t.zoom||t.drag||t.pitch||t.rotate;class ia extends t.k{}function sa(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}class aa{constructor(t,e){this.handleWindowEvent=t=>{this.handleEvent(t,`${t.type}Window`);},this.handleEvent=(t,e)=>{if("blur"===t.type)return void this.stop(!0);this._updatingCamera=!0;const s="renderFrame"===t.type?void 0:t,a={needsRenderFrame:!1},o={},r={},n=t.touches,l=n?this._getMapTouches(n):void 0,h=l?i.touchPos(this._el,l):i.mousePos(this._el,t);for(const{handlerName:i,handler:n,allowed:c}of this._handlers){if(!n.isEnabled())continue;let u;this._blockedByActive(r,c,i)?n.reset():n[e||t.type]&&(u=n[e||t.type](t,h,l),this.mergeHandlerResult(a,o,u,i,s),u&&u.needsRenderFrame&&this._triggerRenderFrame()),(u||n.isActive())&&(r[i]=n);}const c={};for(const t in this._previousActiveHandlers)r[t]||(c[t]=s);this._previousActiveHandlers=r,(Object.keys(c).length||sa(a))&&(this._changes.push([a,o,c]),this._triggerRenderFrame()),(Object.keys(r).length||sa(a))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:u}=a;u&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],u(this._map));},this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new ps(t),this._bearingSnap=e.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(e);const s=this._el;this._listeners=[[s,"touchstart",{passive:!0}],[s,"touchmove",{passive:!1}],[s,"touchend",void 0],[s,"touchcancel",void 0],[s,"mousedown",void 0],[s,"mousemove",void 0],[s,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[s,"mouseover",void 0],[s,"mouseout",void 0],[s,"dblclick",void 0],[s,"click",void 0],[s,"keydown",{capture:!1}],[s,"keyup",void 0],[s,"wheel",{passive:!1}],[s,"contextmenu",void 0],[window,"blur",void 0]];for(const[t,e,s]of this._listeners)i.addEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,s);}destroy(){for(const[t,e,s]of this._listeners)i.removeEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,s);}_addDefaultHandlers(t){const e=this._map,s=e.getCanvasContainer();this._add("mapEvent",new ys(e,t));const a=e.boxZoom=new Ts(e,t);this._add("boxZoom",a),t.interactive&&t.boxZoom&&a.enable();const o=new Cs(e),r=new Ks(e);e.doubleClickZoom=new Xs(r,o),this._add("tapZoom",o),this._add("clickZoom",r),t.interactive&&t.doubleClickZoom&&e.doubleClickZoom.enable();const n=new Qs;this._add("tapDragZoom",n);const l=e.touchPitch=new js(e);this._add("touchPitch",l),t.interactive&&t.touchPitch&&e.touchPitch.enable(t.touchPitch);const h=As(t),c=Rs(t);e.dragRotate=new Js(t,h,c),this._add("mouseRotate",h,["mousePitch"]),this._add("mousePitch",c,["mouseRotate"]),t.interactive&&t.dragRotate&&e.dragRotate.enable();const u=(({enable:t,clickTolerance:e})=>{const s=new Ms({checkCorrectEvent:t=>0===i.mouseButton(t)&&!t.ctrlKey});return new Ps({clickTolerance:e,move:(t,e)=>({around:e,panDelta:e.sub(t)}),activateOnStart:!0,moveStateManager:s,enable:t,assignEvents:Ls})})(t),d=new ks(t,e);e.dragPan=new Ys(s,u,d),this._add("mousePan",u),this._add("touchPan",d,["touchZoom","touchRotate"]),t.interactive&&t.dragPan&&e.dragPan.enable(t.dragPan);const _=new Zs,p=new Ns;e.touchZoomRotate=new ta(s,p,_,n),this._add("touchRotate",_,["touchPan","touchZoom"]),this._add("touchZoom",p,["touchPan","touchRotate"]),t.interactive&&t.touchZoomRotate&&e.touchZoomRotate.enable(t.touchZoomRotate);const m=e.scrollZoom=new Hs(e,(()=>this._triggerRenderFrame()));this._add("scrollZoom",m,["mousePan"]),t.interactive&&t.scrollZoom&&e.scrollZoom.enable(t.scrollZoom);const f=e.keyboard=new qs(e);this._add("keyboard",f),t.interactive&&t.keyboard&&e.keyboard.enable(),this._add("blockableMapEvent",new bs(e));}_add(t,e,i){this._handlers.push({handlerName:t,handler:e,allowed:i}),this._handlersById[t]=e;}stop(t){if(!this._updatingCamera){for(const{handler:t}of this._handlers)t.reset();this._inertia.clear(),this._fireEvents({},{},t),this._changes=[];}}isActive(){for(const{handler:t}of this._handlers)if(t.isActive())return !0;return !1}isZooming(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return !!this._eventsInProgress.rotate}isMoving(){return Boolean(ea(this._eventsInProgress))||this.isZooming()}_blockedByActive(t,e,i){for(const s in t)if(s!==i&&(!e||e.indexOf(s)<0))return !0;return !1}_getMapTouches(t){const e=[];for(const i of t)this._el.contains(i.target)&&e.push(i);return e}mergeHandlerResult(e,i,s,a,o){if(!s)return;t.e(e,s);const r={handlerName:a,originalEvent:s.originalEvent||o};void 0!==s.zoomDelta&&(i.zoom=r),void 0!==s.panDelta&&(i.drag=r),void 0!==s.pitchDelta&&(i.pitch=r),void 0!==s.bearingDelta&&(i.rotate=r);}_applyChanges(){const e={},i={},s={};for(const[a,o,r]of this._changes)a.panDelta&&(e.panDelta=(e.panDelta||new t.P(0,0))._add(a.panDelta)),a.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+a.zoomDelta),a.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+a.bearingDelta),a.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+a.pitchDelta),void 0!==a.around&&(e.around=a.around),void 0!==a.pinchAround&&(e.pinchAround=a.pinchAround),a.noInertia&&(e.noInertia=a.noInertia),t.e(i,o),t.e(s,r);this._updateMapTransform(e,i,s),this._changes=[];}_updateMapTransform(t,e,i){const s=this._map,a=s._getTransformForUpdate(),o=s.terrain;if(!(sa(t)||o&&this._terrainMovement))return this._fireEvents(e,i,!0);let{panDelta:r,zoomDelta:n,bearingDelta:l,pitchDelta:h,around:c,pinchAround:u}=t;void 0!==u&&(c=u),s._stop(!0),c=c||s.transform.centerPoint;const d=a.pointLocation(r?c.sub(r):c);l&&(a.bearing+=l),h&&(a.pitch+=h),n&&(a.zoom+=n),o?this._terrainMovement||!e.drag&&!e.zoom?e.drag&&this._terrainMovement?a.center=a.pointLocation(a.centerPoint.sub(r)):a.setLocationAtPoint(d,c):(this._terrainMovement=!0,this._map._elevationFreeze=!0,a.setLocationAtPoint(d,c),this._map.once("moveend",(()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,a.recalculateZoom(s.terrain);}))):a.setLocationAtPoint(d,c),s._applyUpdatedTransform(a),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(e,i,!0);}_fireEvents(e,i,s){const a=ea(this._eventsInProgress),o=ea(e),r={};for(const t in e){const{originalEvent:i}=e[t];this._eventsInProgress[t]||(r[`${t}start`]=i),this._eventsInProgress[t]=e[t];}!a&&o&&this._fireEvent("movestart",o.originalEvent);for(const t in r)this._fireEvent(t,r[t]);o&&this._fireEvent("move",o.originalEvent);for(const t in e){const{originalEvent:i}=e[t];this._fireEvent(t,i);}const n={};let l;for(const t in this._eventsInProgress){const{handlerName:e,originalEvent:s}=this._eventsInProgress[t];this._handlersById[e].isActive()||(delete this._eventsInProgress[t],l=i[e]||s,n[`${t}end`]=l);}for(const t in n)this._fireEvent(t,n[t]);const h=ea(this._eventsInProgress);if(s&&(a||o)&&!h){this._updatingCamera=!0;const e=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),i=t=>0!==t&&-this._bearingSnap{delete this._frameId,this.handleEvent(new ia("renderFrame",{timeStamp:t})),this._applyChanges();}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame());}}class oa extends t.E{constructor(e,i){super(),this._renderFrameCallback=()=>{const e=Math.min((t.h.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=i.bearingSnap,this.on("moveend",(()=>{delete this._requestedCameraState;}));}getCenter(){return new t.L(this.transform.center.lng,this.transform.center.lat)}setCenter(t,e){return this.jumpTo({center:t},e)}panBy(e,i,s){return e=t.P.convert(e).mult(-1),this.panTo(this.transform.center,t.e({offset:e},i),s)}panTo(e,i,s){return this.easeTo(t.e({center:e},i),s)}getZoom(){return this.transform.zoom}setZoom(t,e){return this.jumpTo({zoom:t},e),this}zoomTo(e,i,s){return this.easeTo(t.e({zoom:e},i),s)}zoomIn(t,e){return this.zoomTo(this.getZoom()+1,t,e),this}zoomOut(t,e){return this.zoomTo(this.getZoom()-1,t,e),this}getBearing(){return this.transform.bearing}setBearing(t,e){return this.jumpTo({bearing:t},e),this}getPadding(){return this.transform.padding}setPadding(t,e){return this.jumpTo({padding:t},e),this}rotateTo(e,i,s){return this.easeTo(t.e({bearing:e},i),s)}resetNorth(e,i){return this.rotateTo(0,t.e({duration:1e3},e),i),this}resetNorthPitch(e,i){return this.easeTo(t.e({bearing:0,pitch:0,duration:1e3},e),i),this}snapToNorth(t,e){return Math.abs(this.getBearing()){if(this._zooming&&(s.zoom=t.B.number(a,l,p)),this._rotating&&(s.bearing=t.B.number(o,h,p)),this._pitching&&(s.pitch=t.B.number(r,c,p)),this._padding&&(s.interpolatePadding(n,u,p),_=s.centerPoint.add(d)),this.terrain&&!e.freezeElevation&&this._updateElevation(p),x)s.setLocationAtPoint(x,y);else {const t=s.zoomScale(s.zoom-a),e=l>a?Math.min(2,v):Math.max(.5,v),i=Math.pow(e,1-p),o=s.unproject(f.add(g.mult(p*i)).mult(t));s.setLocationAtPoint(s.renderWorldCopies?o.wrap():o,_);}this._applyUpdatedTransform(s),this._fireMoveEvents(i);}),(t=>{this.terrain&&this._finalizeElevation(),this._afterEase(i,t);}),e),this}_prepareEase(e,i,s={}){this._moving=!0,i||s.moving||this.fire(new t.k("movestart",e)),this._zooming&&!s.zooming&&this.fire(new t.k("zoomstart",e)),this._rotating&&!s.rotating&&this.fire(new t.k("rotatestart",e)),this._pitching&&!s.pitching&&this.fire(new t.k("pitchstart",e));}_prepareElevation(t){this._elevationCenter=t,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(t,this.transform.tileZoom),this._elevationFreeze=!0;}_updateElevation(e){this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);const i=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&i!==this._elevationTarget){const t=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(t-(i-(t*e+this._elevationStart))/(1-e)),this._elevationTarget=i;}this.transform.elevation=t.B.number(this._elevationStart,this._elevationTarget,e);}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain);}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(t){if(!this.transformCameraUpdate)return;const e=t.clone(),{center:i,zoom:s,pitch:a,bearing:o,elevation:r}=this.transformCameraUpdate(e);i&&(e.center=i),void 0!==s&&(e.zoom=s),void 0!==a&&(e.pitch=a),void 0!==o&&(e.bearing=o),void 0!==r&&(e.elevation=r),this.transform.apply(e);}_fireMoveEvents(e){this.fire(new t.k("move",e)),this._zooming&&this.fire(new t.k("zoom",e)),this._rotating&&this.fire(new t.k("rotate",e)),this._pitching&&this.fire(new t.k("pitch",e));}_afterEase(e,i){if(this._easeId&&i&&this._easeId===i)return;delete this._easeId;const s=this._zooming,a=this._rotating,o=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,s&&this.fire(new t.k("zoomend",e)),a&&this.fire(new t.k("rotateend",e)),o&&this.fire(new t.k("pitchend",e)),this.fire(new t.k("moveend",e));}flyTo(e,i){if(!e.essential&&t.h.prefersReducedMotion){const s=t.F(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(s,i)}this.stop(),e=t.e({offset:[0,0],speed:1.2,curve:1.42,easing:t.bb},e);const s=this._getTransformForUpdate(),a=this.getZoom(),o=this.getBearing(),r=this.getPitch(),n=this.getPadding(),l="zoom"in e?t.ad(+e.zoom,s.minZoom,s.maxZoom):a,h="bearing"in e?this._normalizeBearing(e.bearing,o):o,c="pitch"in e?+e.pitch:r,u="padding"in e?e.padding:s.padding,d=s.zoomScale(l-a),_=t.P.convert(e.offset);let p=s.centerPoint.add(_);const m=s.pointLocation(p),f=t.L.convert(e.center||m);this._normalizeCenter(f);const g=s.project(m),v=s.project(f).sub(g);let x=e.curve;const y=Math.max(s.width,s.height),b=y/d,w=v.mag();if("minZoom"in e){const i=t.ad(Math.min(e.minZoom,a,l),s.minZoom,s.maxZoom),o=y/s.zoomScale(i-a);x=Math.sqrt(o/w*2);}const T=x*x;function I(t){const e=(b*b-y*y+(t?-1:1)*T*T*w*w)/(2*(t?b:y)*T*w);return Math.log(Math.sqrt(e*e+1)-e)}function E(t){return (Math.exp(t)-Math.exp(-t))/2}function S(t){return (Math.exp(t)+Math.exp(-t))/2}const C=I(!1);let P=function(t){return S(C)/S(C+x*t)},D=function(t){return y*((S(C)*(E(e=C+x*t)/S(e))-E(C))/T)/w;var e;},M=(I(!0)-C)/x;if(Math.abs(w)<1e-6||!isFinite(M)){if(Math.abs(y-b)<1e-6)return this.easeTo(e,i);const t=be.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=o!==h,this._pitching=c!==r,this._padding=!s.isPaddingEqual(u),this._prepareEase(i,!1),this.terrain&&this._prepareElevation(f),this._ease((d=>{const m=d*M,x=1/P(m);s.zoom=1===d?l:a+s.scaleZoom(x),this._rotating&&(s.bearing=t.B.number(o,h,d)),this._pitching&&(s.pitch=t.B.number(r,c,d)),this._padding&&(s.interpolatePadding(n,u,d),p=s.centerPoint.add(_)),this.terrain&&!e.freezeElevation&&this._updateElevation(d);const y=1===d?f:s.unproject(g.add(v.mult(D(m))).mult(x));s.setLocationAtPoint(s.renderWorldCopies?y.wrap():y,p),this._applyUpdatedTransform(s),this._fireMoveEvents(i);}),(()=>{this.terrain&&this._finalizeElevation(),this._afterEase(i);}),e),this}isEasing(){return !!this._easeFrameId}stop(){return this._stop()}_stop(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const t=this._onEaseEnd;delete this._onEaseEnd,t.call(this,e);}if(!t){const t=this.handlers;t&&t.stop(!1);}return this}_ease(e,i,s){!1===s.animate||0===s.duration?(e(1),i()):(this._easeStart=t.h.now(),this._easeOptions=s,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_normalizeBearing(e,i){e=t.b5(e,-180,180);const s=Math.abs(e-i);return Math.abs(e-360-i)180?-360:i<-180?360:0;}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLatZoom(t.L.convert(e),this.transform.tileZoom)-this.transform.elevation:null}}class ra{constructor(t={}){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")));},this._updateData=t=>{!t||"metadata"!==t.sourceDataType&&"visibility"!==t.sourceDataType&&"style"!==t.dataType&&"terrain"!==t.type||this._updateAttributions();},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?!1===this._compact?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"));},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show");},this.options=t;}getDefaultPosition(){return "bottom-right"}onAdd(t){return this._map=t,this._compact=this.options&&this.options.compact,this._container=i.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=i.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=i.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){i.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0;}_setElementTitle(t,e){const i=this._map._getUIString(`AttributionControl.${e}`);t.title=i,t.setAttribute("aria-label",i);}_updateAttributions(){if(!this._map.style)return;let t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((t=>"string"!=typeof t?"":t))):"string"==typeof this.options.customAttribution&&t.push(this.options.customAttribution)),this._map.style.stylesheet){const t=this._map.style.stylesheet;this.styleOwner=t.owner,this.styleId=t.id;}const e=this._map.style.sourceCaches;for(const i in e){const s=e[i];if(s.used||s.usedForTerrain){const e=s.getSource();e.attribution&&t.indexOf(e.attribution)<0&&t.push(e.attribution);}}t=t.filter((t=>String(t).trim())),t.sort(((t,e)=>t.length-e.length)),t=t.filter(((e,i)=>{for(let s=i+1;s=0)return !1;return !0}));const i=t.join(" | ");i!==this._attribHTML&&(this._attribHTML=i,t.length?(this._innerContainer.innerHTML=i,this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null);}}class na{constructor(t={}){this._updateCompact=()=>{const t=this._container.children;if(t.length){const e=t[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?!1!==this._compact&&e.classList.add("maplibregl-compact"):e.classList.remove("maplibregl-compact");}},this.options=t;}getDefaultPosition(){return "bottom-left"}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=i.create("div","maplibregl-ctrl");const e=i.create("a","maplibregl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://maplibre.org/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){i.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0;}}class la{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;}add(t){const e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e}remove(t){const e=this._currentlyRunning,i=e?this._queue.concat(e):this._queue;for(const e of i)if(e.id===t)return void(e.cancelled=!0)}run(t=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const e=this._currentlyRunning=this._queue;this._queue=[];for(const i of e)if(!i.cancelled&&(i.callback(t),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1;}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[];}}const ha={"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","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","TerrainControl.enableTerrain":"Enable terrain","TerrainControl.disableTerrain":"Disable terrain"};var ca=t.Q([{name:"a_pos3d",type:"Int16",components:3}]);class ua extends t.E{constructor(t){super(),this.sourceCache=t,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,t.usedForTerrain=!0,t.tileSize=this.tileSize*2**this.deltaZoom;}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null;}update(e,i){this.sourceCache.update(e,i),this._renderableTilesKeys=[];const s={};for(const a of e.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:i}))s[a.key]=!0,this._renderableTilesKeys.push(a.key),this._tiles[a.key]||(a.posMatrix=new Float64Array(16),t.aS(a.posMatrix,0,t.N,0,t.N,0,1),this._tiles[a.key]=new W(a,this.tileSize));for(const t in this._tiles)s[t]||delete this._tiles[t];}freeRtt(t){for(const e in this._tiles){const i=this._tiles[e];(!t||i.tileID.equals(t)||i.tileID.isChildOf(t)||t.isChildOf(i.tileID))&&(i.rtt=[]);}}getRenderableTiles(){return this._renderableTilesKeys.map((t=>this.getTileByID(t)))}getTileByID(t){return this._tiles[t]}getTerrainCoords(e){const i={};for(const s of this._renderableTilesKeys){const a=this._tiles[s].tileID;if(a.canonical.equals(e.canonical)){const a=e.clone();a.posMatrix=new Float64Array(16),t.aS(a.posMatrix,0,t.N,0,t.N,0,1),i[s]=a;}else if(a.canonical.isChildOf(e.canonical)){const o=e.clone();o.posMatrix=new Float64Array(16);const r=a.canonical.z-e.canonical.z,n=a.canonical.x-(a.canonical.x>>r<>r<>r;t.aS(o.posMatrix,0,h,0,h,0,1),t.$(o.posMatrix,o.posMatrix,[-n*h,-l*h,0]),i[s]=o;}else if(e.canonical.isChildOf(a.canonical)){const o=e.clone();o.posMatrix=new Float64Array(16);const r=e.canonical.z-a.canonical.z,n=e.canonical.x-(e.canonical.x>>r<>r<>r;t.aS(o.posMatrix,0,t.N,0,t.N,0,1),t.$(o.posMatrix,o.posMatrix,[n*h,l*h,0]),t.a0(o.posMatrix,o.posMatrix,[1/2**r,1/2**r,0]),i[s]=o;}}return i}getSourceTile(t,e){const i=this.sourceCache._source;let s=t.overscaledZ-this.deltaZoom;if(s>i.maxzoom&&(s=i.maxzoom),s=i.minzoom&&(!a||!a.dem);)a=this.sourceCache.getTileByID(t.scaledTo(s--).key);return a}tilesAfterTime(t=Date.now()){return Object.values(this._tiles).filter((e=>e.timeAdded>=t))}}class da{constructor(t,e,i){this.painter=t,this.sourceCache=new ua(e),this.options=i,this.exaggeration="number"==typeof i.exaggeration?i.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024;}getDEMElevation(e,i,s,a=t.N){var o;if(!(i>=0&&i=0&&se.canonical.z&&(e.canonical.z>=s?a=e.canonical.z-s:t.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const o=e.canonical.x-(e.canonical.x>>a<>a<>8<<4|t>>8,i[e+3]=0;const s=new t.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(i.buffer)),a=new x(e,s,e.gl.RGBA,{premultiply:!1});return a.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=a,a}pointCoordinate(e){const i=new Uint8Array(4),s=this.painter.context,a=s.gl;s.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),a.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,a.RGBA,a.UNSIGNED_BYTE,i),s.bindFramebuffer.set(null);const o=i[0]+(i[2]>>4<<8),r=i[1]+((15&i[2])<<8),n=this.coordsIndex[255-i[3]],l=n&&this.sourceCache.getTileByID(n);if(!l)return null;const h=this._coordsTextureSize,c=(1<0&&Math.sign(o)<0||!s&&Math.sign(a)<0&&Math.sign(o)>0?(a=360*Math.sign(o)+a,t.G(a)):i}}class _a{constructor(t,e,i){this._context=t,this._size=e,this._tileSize=i,this._objects=[],this._recentlyUsed=[],this._stamp=0;}destruct(){for(const t of this._objects)t.texture.destroy(),t.fbo.destroy();}_createObject(t){const e=this._context.createFramebuffer(this._tileSize,this._tileSize,!0,!0),i=new x(this._context,{width:this._tileSize,height:this._tileSize,data:null},this._context.gl.RGBA);return i.bind(this._context.gl.LINEAR,this._context.gl.CLAMP_TO_EDGE),e.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL,this._tileSize,this._tileSize)),e.colorAttachment.set(i.texture),{id:t,fbo:e,texture:i,stamp:-1,inUse:!1}}getObjectForId(t){return this._objects[t]}useObject(t){t.inUse=!0,this._recentlyUsed=this._recentlyUsed.filter((e=>t.id!==e)),this._recentlyUsed.push(t.id);}stampObject(t){t.stamp=++this._stamp;}getOrCreateFreeObject(){for(const t of this._recentlyUsed)if(!this._objects[t].inUse)return this._objects[t];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const t=this._createObject(this._objects.length);return this._objects.push(t),t}freeObject(t){t.inUse=!1;}freeAllObjects(){for(const t of this._objects)this.freeObject(t);}isFull(){return !(this._objects.length!t.inUse))}}const pa={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ma{constructor(t,e){this.painter=t,this.terrain=e,this.pool=new _a(t.context,30,e.sourceCache.tileSize*e.qualityFactor);}destruct(){this.pool.destruct();}getTexture(t){return this.pool.getObjectForId(t.rtt[this._stacks.length-1].id).texture}prepareForRender(t,e){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=t._order.filter((i=>!t._layers[i].isHidden(e))),this._coordsDescendingInv={};for(const e in t.sourceCaches){this._coordsDescendingInv[e]={};const i=t.sourceCaches[e].getVisibleCoordinates();for(const t of i){const i=this.terrain.sourceCache.getTerrainCoords(t);for(const t in i)this._coordsDescendingInv[e][t]||(this._coordsDescendingInv[e][t]=[]),this._coordsDescendingInv[e][t].push(i[t]);}}this._coordsDescendingInvStr={};for(const e of t._order){const i=t._layers[e],s=i.source;if(pa[i.type]&&!this._coordsDescendingInvStr[s]){this._coordsDescendingInvStr[s]={};for(const t in this._coordsDescendingInv[s])this._coordsDescendingInvStr[s][t]=this._coordsDescendingInv[s][t].map((t=>t.key)).sort().join();}}for(const t of this._renderableTiles)for(const e in this._coordsDescendingInvStr){const i=this._coordsDescendingInvStr[e][t.tileID.key];i&&i!==t.rttCoords[e]&&(t.rtt=[]);}}renderLayer(e){if(e.isHidden(this.painter.transform.zoom))return !1;const i=e.type,s=this.painter,a=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(pa[i]&&(this._prevType&&pa[this._prevType]||this._stacks.push([]),this._prevType=i,this._stacks[this._stacks.length-1].push(e.id),!a))return !0;if(pa[this._prevType]||pa[i]&&a){this._prevType=i;const e=this._stacks.length-1,a=this._stacks[e]||[];for(const i of this._renderableTiles){if(this.pool.isFull()&&(es(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(i),i.rtt[e]){const t=this.pool.getObjectForId(i.rtt[e].id);if(t.stamp===i.rtt[e].stamp){this.pool.useObject(t);continue}}const o=this.pool.getOrCreateFreeObject();this.pool.useObject(o),this.pool.stampObject(o),i.rtt[e]={id:o.id,stamp:o.stamp},s.context.bindFramebuffer.set(o.fbo.framebuffer),s.context.clear({color:t.aT.transparent,stencil:0}),s.currentStencilSource=void 0;for(let t=0;t{t.touchstart=t.dragStart,t.touchmoveWindow=t.dragMove,t.touchend=t.dragEnd;},xa={showCompass:!0,showZoom:!0,visualizePitch:!1};class ya{constructor(e,s,a=!1){this.mousedown=e=>{this.startMouse(t.e({},e,{ctrlKey:!0,preventDefault:()=>e.preventDefault()}),i.mousePos(this.element,e)),i.addEventListener(window,"mousemove",this.mousemove),i.addEventListener(window,"mouseup",this.mouseup);},this.mousemove=t=>{this.moveMouse(t,i.mousePos(this.element,t));},this.mouseup=t=>{this.mouseRotate.dragEnd(t),this.mousePitch&&this.mousePitch.dragEnd(t),this.offTemp();},this.touchstart=t=>{1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.startTouch(t,this._startPos),i.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),i.addEventListener(window,"touchend",this.touchend));},this.touchmove=t=>{1!==t.targetTouches.length?this.reset():(this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.moveTouch(t,this._lastPos));},this.touchend=t=>{0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp();},this._clickTolerance=10;const o=e.dragRotate._mouseRotate.getClickTolerance(),r=e.dragRotate._mousePitch.getClickTolerance();this.element=s,this.mouseRotate=As({clickTolerance:o,enable:!0}),this.touchRotate=(({enable:t,clickTolerance:e,bearingDegreesPerPixelMoved:i=.8})=>{const s=new zs;return new Ps({clickTolerance:e,move:(t,e)=>({bearingDelta:(e.x-t.x)*i}),moveStateManager:s,enable:t,assignEvents:va})})({clickTolerance:o,enable:!0}),this.map=e,a&&(this.mousePitch=Rs({clickTolerance:r,enable:!0}),this.touchPitch=(({enable:t,clickTolerance:e,pitchDegreesPerPixelMoved:i=-.5})=>{const s=new zs;return new Ps({clickTolerance:e,move:(t,e)=>({pitchDelta:(e.y-t.y)*i}),moveStateManager:s,enable:t,assignEvents:va})})({clickTolerance:r,enable:!0})),i.addEventListener(s,"mousedown",this.mousedown),i.addEventListener(s,"touchstart",this.touchstart,{passive:!1}),i.addEventListener(s,"touchcancel",this.reset);}startMouse(t,e){this.mouseRotate.dragStart(t,e),this.mousePitch&&this.mousePitch.dragStart(t,e),i.disableDrag();}startTouch(t,e){this.touchRotate.dragStart(t,e),this.touchPitch&&this.touchPitch.dragStart(t,e),i.disableDrag();}moveMouse(t,e){const i=this.map,{bearingDelta:s}=this.mouseRotate.dragMove(t,e)||{};if(s&&i.setBearing(i.getBearing()+s),this.mousePitch){const{pitchDelta:s}=this.mousePitch.dragMove(t,e)||{};s&&i.setPitch(i.getPitch()+s);}}moveTouch(t,e){const i=this.map,{bearingDelta:s}=this.touchRotate.dragMove(t,e)||{};if(s&&i.setBearing(i.getBearing()+s),this.touchPitch){const{pitchDelta:s}=this.touchPitch.dragMove(t,e)||{};s&&i.setPitch(i.getPitch()+s);}}off(){const t=this.element;i.removeEventListener(t,"mousedown",this.mousedown),i.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),i.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),i.removeEventListener(window,"touchend",this.touchend),i.removeEventListener(t,"touchcancel",this.reset),this.offTemp();}offTemp(){i.enableDrag(),i.removeEventListener(window,"mousemove",this.mousemove),i.removeEventListener(window,"mouseup",this.mouseup),i.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),i.removeEventListener(window,"touchend",this.touchend);}}let ba;function wa(e,i,s){if(e=new t.L(e.lng,e.lat),i){const a=new t.L(e.lng-360,e.lat),o=new t.L(e.lng+360,e.lat),r=s.locationPoint(e).distSqr(i);s.locationPoint(a).distSqr(i)180;){const t=s.locationPoint(e);if(t.x>=0&&t.y>=0&&t.x<=s.width&&t.y<=s.height)break;e.lng>s.center.lng?e.lng-=360:e.lng+=360;}return e}const Ta={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Ia(t,e,i){const s=t.classList;for(const t in Ta)s.remove(`maplibregl-${i}-anchor-${t}`);s.add(`maplibregl-${i}-anchor-${e}`);}class Ea extends t.E{constructor(e){if(super(),this._onKeyPress=t=>{const e=t.code,i=t.charCode||t.keyCode;"Space"!==e&&"Enter"!==e&&32!==i&&13!==i||this.togglePopup();},this._onMapClick=t=>{const e=t.originalEvent.target,i=this._element;this._popup&&(e===i||i.contains(e))&&this.togglePopup();},this._update=t=>{if(!this._map)return;const e=this._map.loaded()&&!this._map.isMoving();("terrain"===(null==t?void 0:t.type)||"render"===(null==t?void 0:t.type)&&!e)&&this._map.once("render",this._update),this._map.transform.renderWorldCopies&&(this._lngLat=wa(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);let s="";"viewport"===this._rotationAlignment||"auto"===this._rotationAlignment?s=`rotateZ(${this._rotation}deg)`:"map"===this._rotationAlignment&&(s=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let a="";"viewport"===this._pitchAlignment||"auto"===this._pitchAlignment?a="rotateX(0deg)":"map"===this._pitchAlignment&&(a=`rotateX(${this._map.getPitch()}deg)`),t&&"moveend"!==t.type||(this._pos=this._pos.round()),i.setTransform(this._element,`${Ta[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${a} ${s}`),this._map.terrain&&!this._opacityTimeout&&(this._opacityTimeout=setTimeout((()=>{const t=this._map.unproject(this._pos),e=40075016.686*Math.abs(Math.cos(this._lngLat.lat*Math.PI/180))/Math.pow(2,this._map.transform.tileZoom+8);this._element.style.opacity=t.distanceTo(this._lngLat)>20*e?"0.2":"1.0",this._opacityTimeout=null;}),100));},this._onMove=e=>{if(!this._isDragging){const t=this._clickTolerance||this._map._clickTolerance;this._isDragging=e.point.dist(this._pointerdownPos)>=t;}this._isDragging&&(this._pos=e.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new t.k("dragstart"))),this.fire(new t.k("drag")));},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),"active"===this._state&&this.fire(new t.k("dragend")),this._state="inactive";},this._addDragHandler=t=>{this._element.contains(t.originalEvent.target)&&(t.preventDefault(),this._positionDelta=t.point.sub(this._pos).add(this._offset),this._pointerdownPos=t.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp));},this._anchor=e&&e.anchor||"center",this._color=e&&e.color||"#3FB1CE",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||"auto",this._pitchAlignment=e&&e.pitchAlignment&&"auto"!==e.pitchAlignment?e.pitchAlignment:this._rotationAlignment,e&&e.element)this._element=e.element,this._offset=t.P.convert(e&&e.offset||[0,0]);else {this._defaultMarker=!0,this._element=i.create("div"),this._element.setAttribute("aria-label","Map marker");const s=i.createNS("http://www.w3.org/2000/svg","svg"),a=41,o=27;s.setAttributeNS(null,"display","block"),s.setAttributeNS(null,"height",`${a}px`),s.setAttributeNS(null,"width",`${o}px`),s.setAttributeNS(null,"viewBox",`0 0 ${o} ${a}`);const r=i.createNS("http://www.w3.org/2000/svg","g");r.setAttributeNS(null,"stroke","none"),r.setAttributeNS(null,"stroke-width","1"),r.setAttributeNS(null,"fill","none"),r.setAttributeNS(null,"fill-rule","evenodd");const n=i.createNS("http://www.w3.org/2000/svg","g");n.setAttributeNS(null,"fill-rule","nonzero");const l=i.createNS("http://www.w3.org/2000/svg","g");l.setAttributeNS(null,"transform","translate(3.0, 29.0)"),l.setAttributeNS(null,"fill","#000000");const h=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const t of h){const e=i.createNS("http://www.w3.org/2000/svg","ellipse");e.setAttributeNS(null,"opacity","0.04"),e.setAttributeNS(null,"cx","10.5"),e.setAttributeNS(null,"cy","5.80029008"),e.setAttributeNS(null,"rx",t.rx),e.setAttributeNS(null,"ry",t.ry),l.appendChild(e);}const c=i.createNS("http://www.w3.org/2000/svg","g");c.setAttributeNS(null,"fill",this._color);const u=i.createNS("http://www.w3.org/2000/svg","path");u.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),c.appendChild(u);const d=i.createNS("http://www.w3.org/2000/svg","g");d.setAttributeNS(null,"opacity","0.25"),d.setAttributeNS(null,"fill","#000000");const _=i.createNS("http://www.w3.org/2000/svg","path");_.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),d.appendChild(_);const p=i.createNS("http://www.w3.org/2000/svg","g");p.setAttributeNS(null,"transform","translate(6.0, 7.0)"),p.setAttributeNS(null,"fill","#FFFFFF");const m=i.createNS("http://www.w3.org/2000/svg","g");m.setAttributeNS(null,"transform","translate(8.0, 8.0)");const f=i.createNS("http://www.w3.org/2000/svg","circle");f.setAttributeNS(null,"fill","#000000"),f.setAttributeNS(null,"opacity","0.25"),f.setAttributeNS(null,"cx","5.5"),f.setAttributeNS(null,"cy","5.5"),f.setAttributeNS(null,"r","5.4999962");const g=i.createNS("http://www.w3.org/2000/svg","circle");g.setAttributeNS(null,"fill","#FFFFFF"),g.setAttributeNS(null,"cx","5.5"),g.setAttributeNS(null,"cy","5.5"),g.setAttributeNS(null,"r","5.4999962"),m.appendChild(f),m.appendChild(g),n.appendChild(l),n.appendChild(c),n.appendChild(d),n.appendChild(p),n.appendChild(m),s.appendChild(n),s.setAttributeNS(null,"height",a*this._scale+"px"),s.setAttributeNS(null,"width",o*this._scale+"px"),this._element.appendChild(s),this._offset=t.P.convert(e&&e.offset||[0,-14]);}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",(t=>{t.preventDefault();})),this._element.addEventListener("mousedown",(t=>{t.preventDefault();})),Ia(this._element,this._anchor,"marker"),e&&e.className)for(const t of e.className.split(" "))this._element.classList.add(t);this._popup=null;}addTo(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),t.on("terrain",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),i.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=t.L.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),t){if(!("offset"in t.options)){const e=38.1,i=13.5,s=Math.abs(i)/Math.SQRT2;t.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-e],"bottom-left":[s,-1*(e-i+s)],"bottom-right":[-s,-1*(e-i+s)],left:[i,-1*(e-i)],right:[-i,-1*(e-i)]}:this._offset;}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress);}return this}getPopup(){return this._popup}togglePopup(){const t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this}getOffset(){return this._offset}setOffset(e){return this._offset=t.P.convert(e),this._update(),this}addClassName(t){this._element.classList.add(t);}removeClassName(t){this._element.classList.remove(t);}toggleClassName(t){return this._element.classList.toggle(t)}setDraggable(t){return this._draggable=!!t,this._map&&(t?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(t){return this._rotation=t||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(t){return this._rotationAlignment=t||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(t){return this._pitchAlignment=t&&"auto"!==t?t:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}}const Sa={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let Ca=0,Pa=!1;const Da={maxWidth:100,unit:"metric"};function Ma(t,e,i){const s=i&&i.maxWidth||100,a=t._container.clientHeight/2,o=t.unproject([0,a]),r=t.unproject([s,a]),n=o.distanceTo(r);if(i&&"imperial"===i.unit){const i=3.2808*n;i>5280?za(e,s,i/5280,t._getUIString("ScaleControl.Miles")):za(e,s,i,t._getUIString("ScaleControl.Feet"));}else i&&"nautical"===i.unit?za(e,s,n/1852,t._getUIString("ScaleControl.NauticalMiles")):n>=1e3?za(e,s,n/1e3,t._getUIString("ScaleControl.Kilometers")):za(e,s,n,t._getUIString("ScaleControl.Meters"));}function za(t,e,i,s){const a=function(t){const e=Math.pow(10,`${Math.floor(t)}`.length-1);let i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:i>=1?1:function(t){const e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(i),e*i}(i);t.style.width=e*(a/i)+"px",t.innerHTML=`${a} ${s}`;}const La={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},Aa=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Ra(e){if(e){if("number"==typeof e){const i=Math.round(Math.abs(e)/Math.SQRT2);return {center:new t.P(0,0),top:new t.P(0,e),"top-left":new t.P(i,i),"top-right":new t.P(-i,i),bottom:new t.P(0,-e),"bottom-left":new t.P(i,-i),"bottom-right":new t.P(-i,-i),left:new t.P(e,0),right:new t.P(-e,0)}}if(e instanceof t.P||Array.isArray(e)){const i=t.P.convert(e);return {center:i,top:i,"top-left":i,"top-right":i,bottom:i,"bottom-left":i,"bottom-right":i,left:i,right:i}}return {center:t.P.convert(e.center||[0,0]),top:t.P.convert(e.top||[0,0]),"top-left":t.P.convert(e["top-left"]||[0,0]),"top-right":t.P.convert(e["top-right"]||[0,0]),bottom:t.P.convert(e.bottom||[0,0]),"bottom-left":t.P.convert(e["bottom-left"]||[0,0]),"bottom-right":t.P.convert(e["bottom-right"]||[0,0]),left:t.P.convert(e.left||[0,0]),right:t.P.convert(e.right||[0,0])}}return Ra(new t.P(0,0))}const ka={extend:(e,...i)=>t.e(e,...i),run(t){t();},logToElement(t,e=!1,i="log"){const s=window.document.getElementById(i);s&&(e&&(s.innerHTML=""),s.innerHTML+=`
${t}`);}},Fa=e;class Ba{static get version(){return Fa}static get workerCount(){return tt.workerCount}static set workerCount(t){tt.workerCount=t;}static get maxParallelImageRequests(){return t.c.MAX_PARALLEL_IMAGE_REQUESTS}static set maxParallelImageRequests(e){t.c.MAX_PARALLEL_IMAGE_REQUESTS=e;}static get workerUrl(){return t.c.WORKER_URL}static set workerUrl(e){t.c.WORKER_URL=e;}static addProtocol(e,i){t.c.REGISTERED_PROTOCOLS[e]=i;}static removeProtocol(e){delete t.c.REGISTERED_PROTOCOLS[e];}}return Ba.Map=class extends oa{constructor(e){if(t.bg.mark(t.bh.create),null!=(e=t.e({},ga,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(super(new rs(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies),{bearingSnap:e.bearingSnap}),this._cooperativeGesturesOnWheel=t=>{this._onCooperativeGesture(t,t[this._metaKey],1);},this._contextLost=e=>{e.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new t.k("webglcontextlost",{originalEvent:e}));},this._contextRestored=e=>{this._setupPainter(),this.resize(),this._update(),this.fire(new t.k("webglcontextrestored",{originalEvent:e}));},this._onMapScroll=t=>{if(t.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update();},this._interactive=e.interactive,this._cooperativeGestures=e.cooperativeGestures,this._metaKey=0===navigator.platform.indexOf("Mac")?"metaKey":"ctrlKey",this._maxTileCacheSize=e.maxTileCacheSize,this._maxTileCacheZoomLevels=e.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new la,this._controls=[],this._mapId=t.a2(),this._locale=t.e({},ha,e.locale),this._clickTolerance=e.clickTolerance,this._overridePixelRatio=e.pixelRatio,this._maxCanvasSize=e.maxCanvasSize,this.transformCameraUpdate=e.transformCameraUpdate,this._imageQueueHandle=h.addThrottleControl((()=>this.isMoving())),this._requestManager=new u(e.transformRequest),"string"==typeof e.container){if(this._container=document.getElementById(e.container),!this._container)throw new Error(`Container '${e.container}' not found.`)}else {if(!(e.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container;}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",(()=>this._update(!1))),this.on("moveend",(()=>this._update(!1))),this.on("zoom",(()=>this._update(!0))),this.on("terrain",(()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0);})),this.once("idle",(()=>{this._idleTriggered=!0;})),"undefined"!=typeof window){addEventListener("online",this._onWindowOnline,!1);let t=!1;const e=ns((t=>{this._trackResize&&!this._removed&&this.resize(t)._update();}),50);this._resizeObserver=new ResizeObserver((i=>{t?e(i):t=!0;})),this._resizeObserver.observe(this._container);}this.handlers=new aa(this,e),this._cooperativeGestures&&this._setupCooperativeGestures(),this._hash=e.hash&&new ls("string"==typeof e.hash&&e.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.e({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,this._validateStyle=e.validateStyle,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new ra({customAttribution:e.customAttribution})),e.maplibreLogo&&this.addControl(new na,e.logoPosition),this.on("style.load",(()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet);})),this.on("data",(e=>{this._update("style"===e.dataType),this.fire(new t.k(`${e.dataType}data`,e));})),this.on("dataloading",(e=>{this.fire(new t.k(`${e.dataType}dataloading`,e));})),this.on("dataabort",(e=>{this.fire(new t.k("sourcedataabort",e));}));}_getMapId(){return this._mapId}addControl(e,i){if(void 0===i&&(i=e.getDefaultPosition?e.getDefaultPosition():"top-right"),!e||!e.onAdd)return this.fire(new t.j(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const s=e.onAdd(this);this._controls.push(e);const a=this._controlPositions[i];return -1!==i.indexOf("bottom")?a.insertBefore(s,a.firstChild):a.appendChild(s),this}removeControl(e){if(!e||!e.onRemove)return this.fire(new t.j(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const i=this._controls.indexOf(e);return i>-1&&this._controls.splice(i,1),e.onRemove(this),this}hasControl(t){return this._controls.indexOf(t)>-1}calculateCameraOptionsFromTo(t,e,i,s){return null==s&&this.terrain&&(s=this.terrain.getElevationForLngLatZoom(i,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(t,e,i,s)}resize(e){var i;const s=this._containerDimensions(),a=s[0],o=s[1],r=this._getClampedPixelRatio(a,o);if(this._resizeCanvas(a,o,r),this.painter.resize(a,o,r),this.painter.overLimit()){const t=this.painter.context.gl;this._maxCanvasSize=[t.drawingBufferWidth,t.drawingBufferHeight];const e=this._getClampedPixelRatio(a,o);this._resizeCanvas(a,o,e),this.painter.resize(a,o,e);}this.transform.resize(a,o),null===(i=this._requestedCameraState)||void 0===i||i.resize(a,o);const n=!this._moving;return n&&(this.stop(),this.fire(new t.k("movestart",e)).fire(new t.k("move",e))),this.fire(new t.k("resize",e)),n&&this.fire(new t.k("moveend",e)),this}_getClampedPixelRatio(t,e){const{0:i,1:s}=this._maxCanvasSize,a=this.getPixelRatio(),o=t*a,r=e*a;return Math.min(o>i?i/o:1,r>s?s/r:1)*a}getPixelRatio(){var t;return null!==(t=this._overridePixelRatio)&&void 0!==t?t:devicePixelRatio}setPixelRatio(t){this._overridePixelRatio=t,this.resize();}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(t){return this.transform.setMaxBounds(L.convert(t)),this._update()}setMinZoom(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t=null==t?0:t)<0)throw new 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()85)throw new 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;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(t){return this.transform.renderWorldCopies=t,this._update()}getCooperativeGestures(){return this._cooperativeGestures}setCooperativeGestures(t){return this._cooperativeGestures=t,this._cooperativeGestures?this._setupCooperativeGestures():this._destroyCooperativeGestures(),this}project(e){return this.transform.locationPoint(t.L.convert(e),this.style&&this.terrain)}unproject(e){return this.transform.pointLocation(t.P.convert(e),this.terrain)}isMoving(){var t;return this._moving||(null===(t=this.handlers)||void 0===t?void 0:t.isMoving())}isZooming(){var t;return this._zooming||(null===(t=this.handlers)||void 0===t?void 0:t.isZooming())}isRotating(){var t;return this._rotating||(null===(t=this.handlers)||void 0===t?void 0:t.isRotating())}_createDelegatedListener(t,e,i){if("mouseenter"===t||"mouseover"===t){let s=!1;const a=a=>{const o=this.getLayer(e)?this.queryRenderedFeatures(a.point,{layers:[e]}):[];o.length?s||(s=!0,i.call(this,new gs(t,this,a.originalEvent,{features:o}))):s=!1;};return {layer:e,listener:i,delegates:{mousemove:a,mouseout:()=>{s=!1;}}}}if("mouseleave"===t||"mouseout"===t){let s=!1;const a=a=>{(this.getLayer(e)?this.queryRenderedFeatures(a.point,{layers:[e]}):[]).length?s=!0:s&&(s=!1,i.call(this,new gs(t,this,a.originalEvent)));},o=e=>{s&&(s=!1,i.call(this,new gs(t,this,e.originalEvent)));};return {layer:e,listener:i,delegates:{mousemove:a,mouseout:o}}}{const s=t=>{const s=this.getLayer(e)?this.queryRenderedFeatures(t.point,{layers:[e]}):[];s.length&&(t.features=s,i.call(this,t),delete t.features);};return {layer:e,listener:i,delegates:{[t]:s}}}}on(t,e,i){if(void 0===i)return super.on(t,e);const s=this._createDelegatedListener(t,e,i);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(s);for(const t in s.delegates)this.on(t,s.delegates[t]);return this}once(t,e,i){if(void 0===i)return super.once(t,e);const s=this._createDelegatedListener(t,e,i);for(const t in s.delegates)this.once(t,s.delegates[t]);return this}off(t,e,i){return void 0===i?super.off(t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&(s=>{const a=this._delegatedListeners[t];for(let t=0;tthis._updateStyle(t,e)));const i=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!t)),t?(this.style=new se(this,e||{}),this.style.setEventedParent(this,{style:this.style}),"string"==typeof t?this.style.loadURL(t,e,i):this.style.loadJSON(t,e,i),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new se(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty());}_diffStyle(e,i){if("string"==typeof e){const s=this._requestManager.transformRequest(e,c.Style);t.f(s,((e,s)=>{e?this.fire(new t.j(e)):s&&this._updateDiff(s,i);}));}else "object"==typeof e&&this._updateDiff(e,i);}_updateDiff(e,i){try{this.style.setState(e,i)&&this._update(!0);}catch(s){t.w(`Unable to perform style diff: ${s.message||s.error||s}. Rebuilding the style from scratch.`),this._updateStyle(e,i);}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():t.w("There is no style added to the map.")}addSource(t,e){return this._lazyInitEmptyStyle(),this.style.addSource(t,e),this._update(!0)}isSourceLoaded(e){const i=this.style&&this.style.sourceCaches[e];if(void 0!==i)return i.loaded();this.fire(new t.j(new Error(`There is no source with ID '${e}'`)));}setTerrain(e){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),e){const i=this.style.sourceCaches[e.source];if(!i)throw new Error(`cannot load terrain, because there exists no source with ID: ${e.source}`);for(const i in this.style._layers){const s=this.style._layers[i];"hillshade"===s.type&&s.source===e.source&&t.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.");}this.terrain=new da(this.painter,i,e),this.painter.renderToTexture=new ma(this.painter,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=t=>{"style"===t.dataType?this.terrain.sourceCache.freeRtt():"source"===t.dataType&&t.tile&&(t.sourceId!==e.source||this._elevationFreeze||(this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(t.tile.tileID));},this.style.on("data",this._terrainDataCallback);}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0;return this.fire(new t.k("terrain",{terrain:e})),this}getTerrain(){var t,e;return null!==(e=null===(t=this.terrain)||void 0===t?void 0:t.options)&&void 0!==e?e:null}areTilesLoaded(){const t=this.style&&this.style.sourceCaches;for(const e in t){const i=t[e]._tiles;for(const t in i){const e=i[t];if("loaded"!==e.state&&"errored"!==e.state)return !1}}return !0}addSourceType(t,e,i){return this._lazyInitEmptyStyle(),this.style.addSourceType(t,e,i)}removeSource(t){return this.style.removeSource(t),this._update(!0)}getSource(t){return this.style.getSource(t)}addImage(e,i,s={}){const{pixelRatio:a=1,sdf:o=!1,stretchX:r,stretchY:n,content:l}=s;if(this._lazyInitEmptyStyle(),!(i instanceof HTMLImageElement||t.a(i))){if(void 0===i.width||void 0===i.height)return this.fire(new t.j(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:s,height:h,data:c}=i,u=i;return this.style.addImage(e,{data:new t.R({width:s,height:h},new Uint8Array(c)),pixelRatio:a,stretchX:r,stretchY:n,content:l,sdf:o,version:0,userImage:u}),u.onAdd&&u.onAdd(this,e),this}}{const{width:s,height:h,data:c}=t.h.getImageData(i);this.style.addImage(e,{data:new t.R({width:s,height:h},c),pixelRatio:a,stretchX:r,stretchY:n,content:l,sdf:o,version:0});}}updateImage(e,i){const s=this.style.getImage(e);if(!s)return this.fire(new t.j(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const a=i instanceof HTMLImageElement||t.a(i)?t.h.getImageData(i):i,{width:o,height:r,data:n}=a;if(void 0===o||void 0===r)return this.fire(new t.j(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(o!==s.data.width||r!==s.data.height)return this.fire(new t.j(new Error("The width and height of the updated image must be that same as the previous version of the image")));const l=!(i instanceof HTMLImageElement||t.a(i));return s.data.replace(n,l),this.style.updateImage(e,s),this}getImage(t){return this.style.getImage(t)}hasImage(e){return e?!!this.style.getImage(e):(this.fire(new t.j(new Error("Missing required image id"))),!1)}removeImage(t){this.style.removeImage(t);}loadImage(t,e){h.getImage(this._requestManager.transformRequest(t,c.Image),e);}listImages(){return this.style.listImages()}addLayer(t,e){return this._lazyInitEmptyStyle(),this.style.addLayer(t,e),this._update(!0)}moveLayer(t,e){return this.style.moveLayer(t,e),this._update(!0)}removeLayer(t){return this.style.removeLayer(t),this._update(!0)}getLayer(t){return this.style.getLayer(t)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(t,e,i){return this.style.setLayerZoomRange(t,e,i),this._update(!0)}setFilter(t,e,i={}){return this.style.setFilter(t,e,i),this._update(!0)}getFilter(t){return this.style.getFilter(t)}setPaintProperty(t,e,i,s={}){return this.style.setPaintProperty(t,e,i,s),this._update(!0)}getPaintProperty(t,e){return this.style.getPaintProperty(t,e)}setLayoutProperty(t,e,i,s={}){return this.style.setLayoutProperty(t,e,i,s),this._update(!0)}getLayoutProperty(t,e){return this.style.getLayoutProperty(t,e)}setGlyphs(t,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(t,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(t,e,i={}){return this._lazyInitEmptyStyle(),this.style.addSprite(t,e,i,(t=>{t||this._update(!0);})),this}removeSprite(t){return this._lazyInitEmptyStyle(),this.style.removeSprite(t),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(t,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(t,e,(t=>{t||this._update(!0);})),this}setLight(t,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(t,e),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(t,e){return this.style.setFeatureState(t,e),this._update()}removeFeatureState(t,e){return this.style.removeFeatureState(t,e),this._update()}getFeatureState(t){return this.style.getFeatureState(t)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let t=0,e=0;return this._container&&(t=this._container.clientWidth||400,e=this._container.clientHeight||300),[t,e]}_setupContainer(){const t=this._container;t.classList.add("maplibregl-map");const e=this._canvasContainer=i.create("div","maplibregl-canvas-container",t);this._interactive&&e.classList.add("maplibregl-interactive"),this._canvas=i.create("canvas","maplibregl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");const s=this._containerDimensions(),a=this._getClampedPixelRatio(s[0],s[1]);this._resizeCanvas(s[0],s[1],a);const o=this._controlContainer=i.create("div","maplibregl-control-container",t),r=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((t=>{r[t]=i.create("div",`maplibregl-ctrl-${t} `,o);})),this._container.addEventListener("scroll",this._onMapScroll,!1);}_setupCooperativeGestures(){this._cooperativeGesturesScreen=i.create("div","maplibregl-cooperative-gesture-screen",this._container);let t="boolean"!=typeof this._cooperativeGestures&&this._cooperativeGestures.windowsHelpText?this._cooperativeGestures.windowsHelpText:"Use Ctrl + scroll to zoom the map";0===navigator.platform.indexOf("Mac")&&(t="boolean"!=typeof this._cooperativeGestures&&this._cooperativeGestures.macHelpText?this._cooperativeGestures.macHelpText:"Use ⌘ + scroll to zoom the map"),this._cooperativeGesturesScreen.innerHTML=`\n
${t}
\n
${"boolean"!=typeof this._cooperativeGestures&&this._cooperativeGestures.mobileHelpText?this._cooperativeGestures.mobileHelpText:"Use two fingers to move the map"}
\n `,this._cooperativeGesturesScreen.setAttribute("aria-hidden","true"),this._canvasContainer.addEventListener("wheel",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.add("maplibregl-cooperative-gestures");}_destroyCooperativeGestures(){i.remove(this._cooperativeGesturesScreen),this._canvasContainer.removeEventListener("wheel",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.remove("maplibregl-cooperative-gestures");}_resizeCanvas(t,e,i){this._canvas.width=Math.floor(i*t),this._canvas.height=Math.floor(i*e),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${e}px`;}_setupPainter(){const t={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1};let e=null;this._canvas.addEventListener("webglcontextcreationerror",(i=>{e={requestedAttributes:t},i&&(e.statusMessage=i.statusMessage,e.type=i.type);}),{once:!0});const i=this._canvas.getContext("webgl2",t)||this._canvas.getContext("webgl",t);if(!i){const t="Failed to initialize WebGL";throw e?(e.message=t,new Error(JSON.stringify(e))):new Error(t)}this.painter=new is(i,this.transform),s.testSupport(i);}_onCooperativeGesture(t,e,i){return !e&&i<2&&(this._cooperativeGesturesScreen.classList.add("maplibregl-show"),setTimeout((()=>{this._cooperativeGesturesScreen.classList.remove("maplibregl-show");}),100)),!1}loaded(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(t){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(t){return this._update(),this._renderTaskQueue.add(t)}_cancelRenderFrame(t){this._renderTaskQueue.remove(t);}_render(e){const i=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),this._removed)return;let s=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const e=this.transform.zoom,a=t.h.now();this.style.zoomHistory.update(e,a);const o=new t.a8(e,{now:a,fadeDuration:i,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),r=o.crossFadingFactor();1===r&&r===this._crossFadingFactor||(s=!0,this._crossFadingFactor=r),this.style.update(o);}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,i,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:i,showPadding:this.showPadding}),this.fire(new t.k("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,t.bg.mark(t.bh.load),this.fire(new t.k("load"))),this.style&&(this.style.hasTransitions()||s)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const a=this._sourcesDirty||this._styleDirty||this._placementDirty;return a||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new t.k("idle")),!this._loaded||this._fullyLoaded||a||(this._fullyLoaded=!0,t.bg.mark(t.bh.fullLoad)),this}redraw(){return this.style&&(this._frame&&(this._frame.cancel(),this._frame=null),this._render(0)),this}remove(){var e;this._hash&&this._hash.remove();for(const t of this._controls)t.onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),"undefined"!=typeof window&&removeEventListener("online",this._onWindowOnline,!1),h.removeThrottleControl(this._imageQueueHandle),null===(e=this._resizeObserver)||void 0===e||e.disconnect();const s=this.painter.context.gl.getExtension("WEBGL_lose_context");s&&s.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),i.remove(this._canvasContainer),i.remove(this._controlContainer),this._cooperativeGestures&&this._destroyCooperativeGestures(),this._container.classList.remove("maplibregl-map"),t.bg.clearMetrics(),this._removed=!0,this.fire(new t.k("remove"));}triggerRepaint(){this.style&&!this._frame&&(this._frame=t.h.frame((e=>{t.bg.frame(e),this._frame=null,this._render(e);})));}get showTileBoundaries(){return !!this._showTileBoundaries}set showTileBoundaries(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update());}get showPadding(){return !!this._showPadding}set showPadding(t){this._showPadding!==t&&(this._showPadding=t,this._update());}get showCollisionBoxes(){return !!this._showCollisionBoxes}set showCollisionBoxes(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update());}get showOverdrawInspector(){return !!this._showOverdrawInspector}set showOverdrawInspector(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update());}get repaint(){return !!this._repaint}set repaint(t){this._repaint!==t&&(this._repaint=t,this.triggerRepaint());}get vertices(){return !!this._vertices}set vertices(t){this._vertices=t,this._update();}get version(){return fa}getCameraTargetElevation(){return this.transform.elevation}},Ba.NavigationControl=class{constructor(e){this._updateZoomButtons=()=>{const t=this._map.getZoom(),e=t===this._map.getMaxZoom(),i=t===this._map.getMinZoom();this._zoomInButton.disabled=e,this._zoomOutButton.disabled=i,this._zoomInButton.setAttribute("aria-disabled",e.toString()),this._zoomOutButton.setAttribute("aria-disabled",i.toString());},this._rotateCompassArrow=()=>{const t=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=t;},this._setButtonTitle=(t,e)=>{const i=this._map._getUIString(`NavigationControl.${e}`);t.title=i,t.setAttribute("aria-label",i);},this.options=t.e({},xa,e),this._container=i.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",(t=>this._map.zoomIn({},{originalEvent:t}))),i.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",(t=>this._map.zoomOut({},{originalEvent:t}))),i.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",(t=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t});})),this._compassIcon=i.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"));}onAdd(t){return this._map=t,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new ya(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){i.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map;}_createButton(t,e){const s=i.create("button",t,this._container);return s.type="button",s.addEventListener("click",e),s}},Ba.GeolocateControl=class extends t.E{constructor(e){super(),this._onSuccess=e=>{if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.k("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new t.k("geolocate",e)),this._finish();}},this._updateCamera=e=>{const i=new t.L(e.coords.longitude,e.coords.latitude),s=e.coords.accuracy,a=this._map.getBearing(),o=t.e({bearing:a},this.options.fitBoundsOptions),r=L.fromLngLat(i,s);this._map.fitBounds(r,o,{geolocateSource:!0});},this._updateMarker=e=>{if(e){const i=new t.L(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();},this._onError=e=>{if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;const t=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=t,this._geolocateButton.setAttribute("aria-label",t),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===e.code&&Pa)return;this._setErrorState();}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new t.k("error",e)),this._finish();}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;},this._setupUI=e=>{if(this._map){if(this._container.addEventListener("contextmenu",(t=>t.preventDefault())),this._geolocateButton=i.create("button","maplibregl-ctrl-geolocate",this._container),i.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",!1===e){t.w("Geolocation support is not available so the GeolocateControl will be disabled.");const e=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=e,this._geolocateButton.setAttribute("aria-label",e);}else {const t=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=t,this._geolocateButton.setAttribute("aria-label",t);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=i.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new Ea({element:this._dotElement}),this._circleElement=i.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Ea({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",(e=>{e.geolocateSource||"ACTIVE_LOCK"!==this._watchState||e.originalEvent&&"resize"===e.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new t.k("trackuserlocationend")));}));}},this.options=t.e({},Sa,e);}onAdd(t){return this._map=t,this._container=i.create("div","maplibregl-ctrl maplibregl-ctrl-group"),function(t,e=!1){void 0===ba||e?void 0!==window.navigator.permissions?window.navigator.permissions.query({name:"geolocation"}).then((e=>{ba="denied"!==e.state,t(ba);})).catch((()=>{ba=!!window.navigator.geolocation,t(ba);})):(ba=!!window.navigator.geolocation,t(ba)):t(ba);}(this._setupUI),this._container}onRemove(){void 0!==this._geolocationWatchID&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),i.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Ca=0,Pa=!1;}_isOutOfMapMaxBounds(t){const e=this._map.getMaxBounds(),i=t.coords;return e&&(i.longitudee.getEast()||i.latitudee.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const t=this._map.getBounds(),e=t.getSouthEast(),i=t.getNorthEast(),s=e.distanceTo(i),a=Math.ceil(this._accuracy/(s/this._map._container.clientHeight)*2);this._circleElement.style.width=`${a}px`,this._circleElement.style.height=`${a}px`;}trigger(){if(!this._setup)return t.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.k("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Ca--,Pa=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new t.k("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.k("trackuserlocationstart"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let t;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),Ca++,Ca>1?(t={maximumAge:6e5,timeout:0},Pa=!0):(t=this.options.positionOptions,Pa=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t);}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return !0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null);}},Ba.AttributionControl=ra,Ba.LogoControl=na,Ba.ScaleControl=class{constructor(e){this._onMove=()=>{Ma(this._map,this._container,this.options);},this.setUnit=t=>{this.options.unit=t,Ma(this._map,this._container,this.options);},this.options=t.e({},Da,e);}getDefaultPosition(){return "bottom-left"}onAdd(t){return this._map=t,this._container=i.create("div","maplibregl-ctrl maplibregl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){i.remove(this._container),this._map.off("move",this._onMove),this._map=void 0;}},Ba.FullscreenControl=class extends t.E{constructor(e={}){super(),this._onFullscreenChange=()=>{(window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._container!==this._fullscreen&&this._handleFullscreenChange();},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen();},this._fullscreen=!1,e&&e.container&&(e.container instanceof HTMLElement?this._container=e.container:t.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange");}onAdd(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=i.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){i.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange);}_setupUI(){const t=this._fullscreenButton=i.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);i.create("span","maplibregl-ctrl-icon",t).setAttribute("aria-hidden","true"),t.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange);}_updateTitle(){const t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t;}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new t.k("fullscreenstart")),this._map._cooperativeGestures&&(this._prevCooperativeGestures=this._map._cooperativeGestures,this._map.setCooperativeGestures())):(this.fire(new t.k("fullscreenend")),this._prevCooperativeGestures&&(this._map.setCooperativeGestures(this._prevCooperativeGestures),delete this._prevCooperativeGestures));}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen();}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen();}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize();}},Ba.TerrainControl=class{constructor(t){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon();},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.disableTerrain")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.enableTerrain"));},this.options=t;}onAdd(t){return this._map=t,this._container=i.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=i.create("button","maplibregl-ctrl-terrain",this._container),i.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){i.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0;}},Ba.Popup=class extends t.E{constructor(e){super(),this.remove=()=>(this._content&&i.remove(this._content),this._container&&(i.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.k("close")),this),this._onMouseUp=t=>{this._update(t.point);},this._onMouseMove=t=>{this._update(t.point);},this._onDrag=t=>{this._update(t.point);},this._update=t=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=i.create("div","maplibregl-popup",this._map.getContainer()),this._tip=i.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const t of this.options.className.split(" "))this._container.classList.add(t);this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer");}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=wa(this._lngLat,this._pos,this._map.transform)),this._trackPointer&&!t)return;const e=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat);let s=this.options.anchor;const a=Ra(this.options.offset);if(!s){const t=this._container.offsetWidth,i=this._container.offsetHeight;let o;o=e.y+a.bottom.ythis._map.transform.height-i?["bottom"]:[],e.xthis._map.transform.width-t/2&&o.push("right"),s=0===o.length?"bottom":o.join("-");}const o=e.add(a[s]).round();i.setTransform(this._container,`${Ta[s]} translate(${o.x}px,${o.y}px)`),Ia(this._container,s,"popup");},this._onClose=()=>{this.remove();},this.options=t.e(Object.create(La),e);}addTo(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new t.k("open")),this}isOpen(){return !!this._map}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=t.L.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(t){return this.setDOMContent(document.createTextNode(t))}setHTML(t){const e=document.createDocumentFragment(),i=document.createElement("body");let s;for(i.innerHTML=t;s=i.firstChild,s;)e.appendChild(s);return this.setDOMContent(e)}getMaxWidth(){var t;return null===(t=this._container)||void 0===t?void 0:t.style.maxWidth}setMaxWidth(t){return this.options.maxWidth=t,this._update(),this}setDOMContent(t){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=i.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(t),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(t){this._container&&this._container.classList.add(t);}removeClassName(t){this._container&&this._container.classList.remove(t);}setOffset(t){return this.options.offset=t,this._update(),this}toggleClassName(t){if(this._container)return this._container.classList.toggle(t)}_createCloseButton(){this.options.closeButton&&(this._closeButton=i.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose));}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const t=this._container.querySelector(Aa);t&&t.focus();}},Ba.Marker=Ea,Ba.Style=se,Ba.LngLat=t.L,Ba.LngLatBounds=L,Ba.Point=t.P,Ba.MercatorCoordinate=t.U,Ba.Evented=t.E,Ba.AJAXError=t.bi,Ba.config=t.c,Ba.CanvasSource=Z,Ba.GeoJSONSource=B,Ba.ImageSource=N,Ba.RasterDEMTileSource=F,Ba.RasterTileSource=k,Ba.VectorTileSource=R,Ba.VideoSource=U,Ba.setRTLTextPlugin=t.bj,Ba.getRTLTextPluginStatus=t.bk,Ba.prewarm=function(){st().acquire(J);},Ba.clearPrewarmedResources=function(){const t=it;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(J),it=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()"));},ka.extend(Ba,{isSafari:t.ac,getPerformanceMetrics:t.bg.getPerformanceMetrics}),Ba})); + +// +// Our custom intro provides a specialized "define()" function, called by the +// AMD modules below, that sets up the worker blob URL and then executes the +// main module, storing its exported value as 'maplibregl' + + +var maplibregl$1 = maplibregl; + +return maplibregl$1; + +})); +//# sourceMappingURL=maplibre-gl.js.map diff --git a/public/js/qrcode/qrcode.min.js b/public/js/qrcode/qrcode.min.js new file mode 100644 index 0000000..993e88f --- /dev/null +++ b/public/js/qrcode/qrcode.min.js @@ -0,0 +1 @@ +var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e>d;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][8]=g:8>e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h8*l)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*l+")");for(g.getLengthInBits()+4<=8*l&&g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()>=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()>=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j=0?p.get(q):0}}for(var r=0,m=0;mm;m++)for(var j=0;jm;m++)for(var j=0;j=0;)b^=f.G15<=0;)b^=f.G18<>>=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b/2)+Math.floor(c/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a>c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b>=1&&10>b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error("mode:"+a)}else if(27>b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error("mode:"+a)}else{if(!(41>b))throw new Error("type:"+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error("mode:"+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b>d;d++)for(var e=0;b>e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1>=h;h++)if(!(0>d+h||d+h>=b))for(var i=-1;1>=i;i++)0>e+i||e+i>=b||(0!=h||0!=i)&&g==a.isDark(d+h,e+i)&&f++;f>5&&(c+=3+f-5)}for(var d=0;b-1>d;d++)for(var e=0;b-1>e;e++){var j=0;a.isDark(d,e)&&j++,a.isDark(d+1,e)&&j++,a.isDark(d,e+1)&&j++,a.isDark(d+1,e+1)&&j++,(0==j||4==j)&&(c+=3)}for(var d=0;b>d;d++)for(var e=0;b-6>e;e++)a.isDark(d,e)&&!a.isDark(d,e+1)&&a.isDark(d,e+2)&&a.isDark(d,e+3)&&a.isDark(d,e+4)&&!a.isDark(d,e+5)&&a.isDark(d,e+6)&&(c+=40);for(var e=0;b>e;e++)for(var d=0;b-6>d;d++)a.isDark(d,e)&&!a.isDark(d+1,e)&&a.isDark(d+2,e)&&a.isDark(d+3,e)&&a.isDark(d+4,e)&&!a.isDark(d+5,e)&&a.isDark(d+6,e)&&(c+=40);for(var k=0,e=0;b>e;e++)for(var d=0;b>d;d++)a.isDark(d,e)&&k++;var l=Math.abs(100*k/b/b-50)/5;return c+=10*l}},g={glog:function(a){if(1>a)throw new Error("glog("+a+")");return g.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;a>=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)g.EXP_TABLE[h]=1<h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255>h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;cf;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g>k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a/8);return 1==(1&this.buffer[b]>>>7-a%8)},put:function(a,b){for(var c=0;b>c;c++)this.putBit(1==(1&a>>>b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg",a);for(var d in b)b.hasOwnProperty(d)&&c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width/d),Math.floor(b.height/d),this.clear();var h=g("svg",{viewBox:"0 0 "+String(d)+" "+String(d),width:"100%",height:"100%",fill:b.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),c.appendChild(h),h.appendChild(g("rect",{fill:b.colorDark,width:"1",height:"1",id:"template"}));for(var i=0;d>i;i++)for(var j=0;d>j;j++)if(a.isDark(i,j)){var k=g("use",{x:String(i),y:String(j)});k.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p="svg"===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement("img"),e=function(){c._bSupportDataURI=!1,c._fFail&&_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",void 0}c._bSupportDataURI===!0&&c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&&c._fFail&&c._fFail.call(c)}if(this._android&&this._android<=2.1){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if("nodeName"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*b;else"undefined"==typeof j&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,g=d.height/e,h=Math.round(f),i=Math.round(g);b.style.display="none",this.clear();for(var j=0;e>j;j++)for(var k=0;e>k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&&d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width/d),f=Math.floor(b.height/d),g=[''],h=0;d>h;h++){g.push("");for(var i=0;d>i;i++)g.push('');g.push("")}g.push("
"),c.innerHTML=g.join("");var j=c.childNodes[0],k=(b.width-j.offsetWidth)/2,l=(b.height-j.offsetHeight)/2;k>0&&l>0&&(j.style.margin=l+"px "+k+"px")},a.prototype.clear=function(){this._el.innerHTML=""},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:d.H},"string"==typeof b&&(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];"string"==typeof a&&(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}(); \ No newline at end of file diff --git a/public/js/sort-table/sort-table.css b/public/js/sort-table/sort-table.css new file mode 100644 index 0000000..bb60756 --- /dev/null +++ b/public/js/sort-table/sort-table.css @@ -0,0 +1,35 @@ +/* These style add the up/down arrows for the current sorted column + * To support more columns, just augment these styles in like form. + */ +table.js-sort-asc.js-sort-0 thead tr:last-child > :nth-child(1):after, +table.js-sort-asc.js-sort-1 thead tr:last-child > :nth-child(2):after, +table.js-sort-asc.js-sort-2 thead tr:last-child > :nth-child(3):after, +table.js-sort-asc.js-sort-3 thead tr:last-child > :nth-child(4):after, +table.js-sort-asc.js-sort-4 thead tr:last-child > :nth-child(5):after, +table.js-sort-asc.js-sort-5 thead tr:last-child > :nth-child(6):after, +table.js-sort-asc.js-sort-6 thead tr:last-child > :nth-child(7):after, +table.js-sort-asc.js-sort-7 thead tr:last-child > :nth-child(8):after, +table.js-sort-asc.js-sort-8 thead tr:last-child > :nth-child(9):after, +table.js-sort-asc.js-sort-9 thead tr:last-child > :nth-child(10):after +{ + content: "\25b2"; + font-size: 0.7em; + padding-left: 3px; + line-height: 0.7em; +} +table.js-sort-desc.js-sort-0 thead tr:last-child > :nth-child(1):after, +table.js-sort-desc.js-sort-1 thead tr:last-child > :nth-child(2):after, +table.js-sort-desc.js-sort-2 thead tr:last-child > :nth-child(3):after, +table.js-sort-desc.js-sort-3 thead tr:last-child > :nth-child(4):after, +table.js-sort-desc.js-sort-4 thead tr:last-child > :nth-child(5):after, +table.js-sort-desc.js-sort-5 thead tr:last-child > :nth-child(6):after, +table.js-sort-desc.js-sort-6 thead tr:last-child > :nth-child(7):after, +table.js-sort-desc.js-sort-7 thead tr:last-child > :nth-child(8):after, +table.js-sort-desc.js-sort-8 thead tr:last-child > :nth-child(9):after, +table.js-sort-desc.js-sort-9 thead tr:last-child > :nth-child(10):after +{ + content: "\25bc"; + font-size: 0.7em; + padding-left: 3px; + line-height: 0.7em; +} diff --git a/public/js/sort-table/sort-table.js b/public/js/sort-table/sort-table.js new file mode 100644 index 0000000..932d13c --- /dev/null +++ b/public/js/sort-table/sort-table.js @@ -0,0 +1,248 @@ +/** + * sort-table.js + * A pure JavaScript (no dependencies) solution to make HTML + * Tables sortable + * + * Copyright (c) 2013 Tyler Uebele + * Released under the MIT license. See included LICENSE.txt + * or http://opensource.org/licenses/MIT + * + * latest version available at https://github.com/tyleruebele/sort-table + */ + +/** + * Sort the rows in a HTML Table + * + * @param Table The Table DOM object + * @param col The zero-based column number by which to sort + * @param dir Optional. The sort direction; pass 1 for asc; -1 for desc + * @returns void + */ +function sortTable(Table, col, dir) { + var sortClass, i; + + // get previous sort column + sortTable.sortCol = -1; + sortClass = Table.className.match(/js-sort-\d+/); + if (null != sortClass) { + sortTable.sortCol = sortClass[0].replace(/js-sort-/, ''); + Table.className = Table.className.replace(new RegExp(' ?' + sortClass[0] + '\\b'), ''); + } + // If sort column was not passed, use previous + if ('undefined' === typeof col) { + col = sortTable.sortCol; + } + + if ('undefined' !== typeof dir) { + // Accept -1 or 'desc' for descending. All else is ascending + sortTable.sortDir = dir == -1 || dir == 'desc' ? -1 : 1; + } else { + // sort direction was not passed, use opposite of previous + sortClass = Table.className.match(/js-sort-(a|de)sc/); + if (null != sortClass && sortTable.sortCol == col) { + sortTable.sortDir = 'js-sort-asc' == sortClass[0] ? -1 : 1; + } else { + sortTable.sortDir = 1; + } + } + Table.className = Table.className.replace(/ ?js-sort-(a|de)sc/g, ''); + + // update sort column + Table.className += ' js-sort-' + col; + sortTable.sortCol = col; + + // update sort direction + Table.className += ' js-sort-' + (sortTable.sortDir == -1 ? 'desc' : 'asc'); + + // get sort type + if (col < Table.tHead.rows[Table.tHead.rows.length - 1].cells.length) { + sortClass = Table.tHead.rows[Table.tHead.rows.length - 1].cells[col].className.match(/js-sort-[-\w]+/); + } + // Improved support for colspan'd headers + for (i = 0; i < Table.tHead.rows[Table.tHead.rows.length - 1].cells.length; i++) { + if (col == Table.tHead.rows[Table.tHead.rows.length - 1].cells[i].getAttribute('data-js-sort-colNum')) { + sortClass = Table.tHead.rows[Table.tHead.rows.length - 1].cells[i].className.match(/js-sort-[-\w]+/); + } + } + if (null != sortClass) { + sortTable.sortFunc = sortClass[0].replace(/js-sort-/, ''); + } else { + sortTable.sortFunc = 'string'; + } + + // sort! + var rows = [], + TBody = Table.tBodies[0]; + + for (i = 0; i < TBody.rows.length; i++) { + rows[i] = TBody.rows[i]; + } + rows.sort(sortTable.compareRow); + + while (TBody.firstChild) { + TBody.removeChild(TBody.firstChild); + } + for (i = 0; i < rows.length; i++) { + TBody.appendChild(rows[i]); + } +} + +/** + * Compare two table rows based on current settings + * + * @param RowA A TR DOM object + * @param RowB A TR DOM object + * @returns {number} 1 if RowA is greater, -1 if RowB, 0 if equal + */ +sortTable.compareRow = function(RowA, RowB) { + var valA, valB; + if ('function' != typeof sortTable[sortTable.sortFunc]) { + sortTable.sortFunc = 'string'; + } + valA = sortTable[sortTable.sortFunc](RowA.cells[sortTable.sortCol]); + valB = sortTable[sortTable.sortFunc](RowB.cells[sortTable.sortCol]); + + return valA == valB ? 0 : sortTable.sortDir * (valA > valB ? 1 : -1); +}; + +/** + * Strip all HTML, no exceptions + * @param html + * @returns {string} + */ +sortTable.stripTags = function(html) { + return html.replace(/<\/?[a-z][a-z0-9]*\b[^>]*>/gi, ''); +}; + +/** + * Helper function that converts a table cell (TD) to a comparable value + * Converts innerHTML to a JS Date object + * + * @param Cell A TD DOM object + * @returns {Date} + */ +sortTable.date = function(Cell) { + return new Date(sortTable.stripTags(Cell.innerHTML)); +}; + +/** + * Helper function that converts a table cell (TD) to a comparable value + * Converts innerHTML to a JS Number object + * + * @param Cell A TD DOM object + * @returns {Number} + */ +sortTable.number = function(Cell) { + return Number(sortTable.stripTags(Cell.innerHTML).replace(/[^-\d.]/g, '')); +}; + +/** + * Helper function that converts a table cell (TD) to a comparable value + * Converts innerHTML to a lower case string for insensitive compare + * + * @param Cell A TD DOM object + * @returns {String} + */ +sortTable.string = function(Cell) { + return sortTable.stripTags(Cell.innerHTML).toLowerCase(); +}; + +/** + * Helper function that converts a table cell (TD) to a comparable value + * Captures the last space-delimited token from innerHTML + * + * @param Cell A TD DOM object + * @returns {String} + */ +sortTable.last = function(Cell) { + return sortTable.stripTags(Cell.innerHTML).split(' ').pop().toLowerCase(); +}; + +/** + * Helper function that converts a table cell (TD) to a comparable value + * Captures the value of the first childNode + * + * @param Cell A TD DOM object + * @returns {String} + */ +sortTable.input = function(Cell) { + for (var i = 0; i < Cell.children.length; i++) { + if ('object' == typeof Cell.children[i] + && 'undefined' != typeof Cell.children[i].value + ) { + return Cell.children[i].value.toLowerCase(); + } + } + + return sortTable.string(Cell); +}; + +/** + * Return the click handler appropriate to the specified Table and column + * + * @param Table Table to sort + * @param col Column to sort by + * @returns {Function} Click Handler + */ +sortTable.getClickHandler = function(Table, col) { + return function() { + sortTable(Table, col); + }; +}; + +/** + * Attach sortTable() calls to table header cells' onclick events + * If the table(s) do not have a THead node, one will be created around the + * first row + */ +sortTable.init = function() { + var THead, Tables, Handler; + if (document.querySelectorAll) { + Tables = document.querySelectorAll('table.js-sort-table'); + } else { + Tables = document.getElementsByTagName('table'); + } + + for (var i = 0; i < Tables.length; i++) { + // Because IE<8 doesn't support querySelectorAll, skip unclassed tables + if (!document.querySelectorAll && null === Tables[i].className.match(/\bjs-sort-table\b/)) { + continue; + } + + // Prevent repeat processing + if (Tables[i].attributes['data-js-sort-table']) { + continue; + } + + // Ensure table has a tHead element + if (!Tables[i].tHead) { + THead = document.createElement('thead'); + THead.appendChild(Tables[i].rows[0]); + Tables[i].insertBefore(THead, Tables[i].children[0]); + } else { + THead = Tables[i].tHead; + } + + // Attach click events to table header + for (var rowNum = 0; rowNum < THead.rows.length; rowNum++) { + for (var cellNum = 0, colNum = 0; cellNum < THead.rows[rowNum].cells.length; cellNum++) { + // Define which column the header should invoke sorting for + THead.rows[rowNum].cells[cellNum].setAttribute('data-js-sort-colNum', colNum); + Handler = sortTable.getClickHandler(Tables[i], colNum); + window.addEventListener + ? THead.rows[rowNum].cells[cellNum].addEventListener('click', Handler) + : window.attachEvent && THead.rows[rowNum].cells[cellNum].attachEvent('onclick', Handler); + colNum += THead.rows[rowNum].cells[cellNum].colSpan; + } + } + + // Mark table as processed + Tables[i].setAttribute('data-js-sort-table', 'true') + } +}; + +// Run sortTable.init() when the page loads +window.addEventListener + ? window.addEventListener('load', sortTable.init, false) + : window.attachEvent && window.attachEvent('onload', sortTable.init) + ; diff --git a/templates/admin/stats.html.twig b/templates/admin/stats.html.twig index d2556f4..3ad1bb7 100644 --- a/templates/admin/stats.html.twig +++ b/templates/admin/stats.html.twig @@ -4,7 +4,7 @@ {% block stylesheets %} {{ parent() }} - + {% endblock %} {% block body %} @@ -68,7 +68,7 @@ - + - - - - + - - {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #} {% block stylesheets %} {{ encore_entry_link_tags('app') }} - - + + + + + + + + + {% endblock %} @@ -100,7 +95,14 @@ {% block javascripts %} {{ encore_entry_script_tags('app') }} {# #} - + + + + + + + + {% endblock %} diff --git a/templates/public/dashboard.html.twig b/templates/public/dashboard.html.twig index c689b5c..8944f24 100644 --- a/templates/public/dashboard.html.twig +++ b/templates/public/dashboard.html.twig @@ -4,7 +4,7 @@ {% block stylesheets %} {{ parent() }} - +