From c9af4d98ccdf482e231af8a1f42f1a4c952b59f9 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Mon, 20 Mar 2017 22:40:55 +0000 Subject: [PATCH] Remove uglify optimizer from webpack config, move scripts to npm --- package.json | 5 +- public/assets/js/links.js | 130 +- public/assets/js/links.js.br | Bin 616 -> 1152 bytes public/assets/js/links.js.gz | Bin 714 -> 1332 bytes public/assets/js/maps.js | 2863 +++++++++++++++++++++- public/assets/js/maps.js.br | Bin 107486 -> 124340 bytes public/assets/js/maps.js.gz | Bin 123844 -> 141926 bytes public/assets/js/newnote.js | 4072 +++++++++++++++++++++++++++++++- public/assets/js/newnote.js.br | Bin 112740 -> 133568 bytes public/assets/js/newnote.js.gz | Bin 130221 -> 152825 bytes webpack.config.js | 11 +- yarn.lock | 302 +-- 12 files changed, 7105 insertions(+), 278 deletions(-) diff --git a/package.json b/package.json index b47e6c37..2de3f5ef 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "CC0-1.0", "dependencies": { "alertify.js": "^1.0.12", - "mapbox-gl": "^0.32.0", + "mapbox-gl": "^0.34.0", "marked": "^0.3.6", "normalize.css": "^5.0.0", "webStorage": "^1.2.2" @@ -33,7 +33,8 @@ "compress": "./compress", "copy-dist": "cp ./node_modules/mapbox-gl/dist/mapbox-gl.css ./public/assets/frontend/ && cp ./node_modules/alertify.js/dist/css/alertify.css ./public/assets/frontend/ && cp ./node_modules/normalize.css/normalize.css ./public/assets/frontend/", "lint:sass": "stylelint --syntax=scss resources/assets/sass/**/*.scss", - "lint:es6": "eslint resources/assets/es6/*.js" + "lint:es6": "eslint resources/assets/es6/*.js", + "uglifyjs": "uglifyjs ./public/assets/js/*.js --screw-ie8 --source-map-inline --compress --mangle $1" }, "lint-staged": { "eslint-staged": "resources/assets/es6/*.js", diff --git a/public/assets/js/links.js b/public/assets/js/links.js index e184be76..35aa87a7 100644 --- a/public/assets/js/links.js +++ b/public/assets/js/links.js @@ -1 +1,129 @@ -!function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=18)}({18:function(t,e){var r=/watch\?v=([A-Za-z0-9\-_]+)\b/,n=/https\:\/\/play\.spotify\.com\/(.*)\b/,o=document.querySelectorAll(".e-content"),a=!0,u=!1,i=void 0;try{for(var c,l=o[Symbol.iterator]();!(a=(c=l.next()).done);a=!0){var s=c.value,d=s.textContent.match(r);if(d){var f=document.createElement("div");f.classList.add("container");var p=document.createElement("iframe");p.classList.add("youtube"),p.setAttribute("src","https://www.youtube.com/embed/"+d[1]),p.setAttribute("frameborder",0),p.setAttribute("allowfullscreen","true"),f.appendChild(p),s.appendChild(f)}var m=s.textContent.match(n);if(m){var b=m[1].replace("/",":"),y=document.createElement("iframe");y.classList.add("spotify"),y.setAttribute("src","https://embed.spotify.com/?uri=spotify:"+b),y.setAttribute("frameborder",0),y.setAttribute("allowtransparency","true"),s.appendChild(y)}}}catch(t){u=!0,i=t}finally{try{!a&&l.return&&l.return()}finally{if(u)throw i}}}}); \ No newline at end of file +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 18); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ 18: +/***/ (function(module, exports) { + +//links.js + +var youtubeRegex = /watch\?v=([A-Za-z0-9\-_]+)\b/; +var spotifyRegex = /https\:\/\/play\.spotify\.com\/(.*)\b/; + +var notes = document.querySelectorAll('.e-content'); + +var _iteratorNormalCompletion = true; +var _didIteratorError = false; +var _iteratorError = undefined; + +try { + for (var _iterator = notes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var note = _step.value; + + var ytid = note.textContent.match(youtubeRegex); + if (ytid) { + var ytcontainer = document.createElement('div'); + ytcontainer.classList.add('container'); + var ytiframe = document.createElement('iframe'); + ytiframe.classList.add('youtube'); + ytiframe.setAttribute('src', 'https://www.youtube.com/embed/' + ytid[1]); + ytiframe.setAttribute('frameborder', 0); + ytiframe.setAttribute('allowfullscreen', 'true'); + ytcontainer.appendChild(ytiframe); + note.appendChild(ytcontainer); + } + var spotifyid = note.textContent.match(spotifyRegex); + if (spotifyid) { + var sid = spotifyid[1].replace('/', ':'); + var siframe = document.createElement('iframe'); + siframe.classList.add('spotify'); + siframe.setAttribute('src', 'https://embed.spotify.com/?uri=spotify:' + sid); + siframe.setAttribute('frameborder', 0); + siframe.setAttribute('allowtransparency', 'true'); + note.appendChild(siframe); + } + } +} catch (err) { + _didIteratorError = true; + _iteratorError = err; +} finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } +} + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/public/assets/js/links.js.br b/public/assets/js/links.js.br index b78f8a8b2f0733ba2cd30db7eb073bf818ce139b..5564752bf60536c931c210ee4a7076df8527e295 100644 GIT binary patch literal 1152 zcmV-`1b_P*q7eWbhp}V&%yUh*NXW0H`e$)Dz5K@FMtl{&ly(yuTv)}}oh9k&mK?3K zf#X;EmHOPtbL38_2))KexpcptuG;@MJOMyOFt`XR2oBjs#@akavxT>>6c7-D>%|s3 zcpkFI2B7>&4DMkqu6dybn%V6VDS3WWSl3n7;{S?)Q$Ry51SwK8tNcN?fQ>3(gq~krTCqdeCzSb&rw7xlyv?J{#`mQf0Ij3Q+P0hpo<)j>YTWl9 z-SuM0d{FC)b;L7te6`aT8Mx%7(Oo&Z^(sPfQ9J0)uthWEdCz<1g4!T5*vWRm#3X`P zlbAfBnLx!ufsup+Xm(JJUQ^12Y;MIpW8vZ^QiH^m|)(_4;o4}gw|TE0{V7~Ef;?pWOHN; z!!2?k9KGODi{eL)^v2BHVJcK=CsNXfDn2kC(7eCewxj#Qew-mNSmKrghpzib{Il0s2X}x zvxLBMah%mBg)U9AVUG^$ScVj_Dgu%5{!29dIT@MeTiI9ejsNC~bDHjzvVSd1>v(r? z{Ya+G1{j517xnJ7sBZpWZx5H{a>0N3e1jLT9n*jJudZHD^Ty`x&gF%6X#B!DH1Y)& zQ+NBPRVhdDwYT2(Rjr=@RekUJjJGry;Pb#P^@bO7@^D8VUcjdh`OS7qdcs@TvD#qH zhqNir&sY_vGtE=ld_W$JDSmn3>1U=(u7vz}^%izJr8ar83IJUz;cUeV*30HWL1^Os z#Tf@cVxh7wrK>gyyg^$6O_6(a01Ud_7&N2@Um&mcC_ma@B_fcId8b3}H5$t#2( zNUV`vq$=BY6bF4 SDj%*ziz$m6W3={O(_eL~!9-dB literal 616 zcmV-u0+;<8k_7;a!#EZ^^Oq{6b6Qrl@#JH&BW!mkthuMCPQ9^Ke(){(fCV^_kB}`n zS`(K${|9-rmC6`nQvOA6mDAm%#O(HmxhJuqeyd1C-F!pO+&4=f^It5=rENnzHt=~w#KCyV}%NByME zNok8(=~~y-NuVX34R$>=0GzrO@4^JQ|@1TuzaUM!D+HmMs8sq zwdtiz&I%dL2bS_8&yXdd zr>XUxPA%tmsUqEluHj$IA^D9+=J*n!=(SiMkt}GkK6mIBBj59ggRD43{q7;GO2(y# zdpU8y5)eidmX23|X^P59A|e&EWJu0!bN%ePy)NR>9tyhSJEX}NIpgV$As?d*=K^+5 zZ3SaBH~)OoThgl)B$WgtoiaLyc~rD|m8b&j99`c|Ey5{ko_AsVY0sU|F~V=A$~OB2iA2G53#>)8 zzzgo^P*|Wx4ko@~LMy!kz)4esdoqv|s3dZ|l?BQeM|%2%UZOeX1*2<33e(#qk#lnc z80Wg~gi#4Ad4Lc>kGA;10_PRzb!O*Lf5)hI5v7n33g{A~1inkt(sQFfz#{coY_&^q z0jCySv1%-zTU|hGH+s|vJNi;qf>#$dPJfMlLIkXE}6U{Ue}N0oE>g z)ikRL#(HV5m3pU{t%|AtDwCetf3=M(3M-L z+zu8B(GM_wIJPOXAo&AN+{(f-w|H;|(;$$?LMR6S>N+wCR-iFMjEX8Czi6&8*cj8?Th4@2ul1&KXCK%x1J^(y&$3tlU&((Mq@)AcX3b75M(j)zCiw zu`XsT58e4iFgit3A)$=XtzaL=p!PzKt}#OjD;bPNVah0s;)50H;UW8TeMFB;_Ru_u zgB^#pB&j7HN|oz{X=zyK0SErrNAWh0WGK*qUN#RJJDOsqg z`N4i*nB-W9k3`52r)e&AEr8Z_1jP)}XoybgPM<%#xEX4FHe);muFxOcEC}a0TV_?Bi-ZGEO-pNH zU!!qZ0!?4cNuCA{wc%b%!}s&zJ=cvdD|h+#Y0J8FY0H|r1tw}x=b~F0awv10s18KB z=5d!w#J?1Y=+=l$-}XK%5hDq={c4dssW^FL55`I>y2iuE2W2AqRU$d2qQo3%vi5bd zckmXkHT2D3gAzSc6aeRTW}RzRr!mp3Evq79g_9Ag2)ZR}*R3awTm2jG{(Wz6ny0v_ qpQb%%*J2qo^R}vKLd!X4%SKrpjj|81e(C*ZKmG@INwjFA5dZ+Y7l7OV literal 714 zcmV;*0yX^~iwFP!000021BFuulj9~7{wuc9Ad8WA>O~&XGc7%tn)S{Of~PYX1PXfC zr|9(G4=lIquDtq{LCYpOg~mIAbUdFIKpY)SL&Af5qyaDnx5#G>FFGHv-|S^rc#%_L zG?invTHdo$u^Ojoa~i@tq@=aPpJ$n8*E7%*Sg~ARb5q_O#CX{OycNiRD-qJK5x0!b zFjK1Nn+gjoDFE*Ck-mKSd;Kpc^WfN zCYtxV*N|tH`1$9^pPr!q)$3^Cn@h))S_YNT;#9q(cq3AizzSI;x-4Wke=7$rBPS(Y z@aS>qfbV4g`@x+x&1UC;yrUCE!GHko#r-onk@5anb-VQ}qdZ7dyX`l7K_0$a{UcZZ zuUB7fS5J?3bX%9qiE@Y7_1kJ&Zp+TfVaxl@qiNDX`F2|p{^haL3++|%&msRWLKyxA zo7npBT_RO*SS7PD6${FwNbW|F3^!u$jb5xb7>2R&fn-jKS>Yf49@^SlZV-Y@TOJAB zEQu6E3CkV4Ktd_k-T~d@b+ejYD883A0@I@Bn7V$LL3x`+l0Y}6A$o3Zu6$JhiSUz! z9FanseL*)3S624@FQ!K>wI)RtAdQ2Nig`iz-UX%!vW3*vy}4uX5o4W7tm8f4cZk8% z5rGtaPz5WFURPy#I2`z?H@jRyTZ1l(JNM``iGsdnsk))uO%8fWufgm&2&dI+u6)ow22uH&{?SxVwo_i1TcKuqv1`D zPS-0>f5@ZRlk;Ufy7Wy9Mw}8=aaX4eA8~4Ums1#|>pL01sp0I^o7N0;nkIEL0_hm@ wjWz1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=t.dataset.latitude,o=t.dataset.longitude,l=t.dataset.id,c=window["geojson"+l];if(null==c&&(c={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[o,n]},properties:{title:"Current Location",icon:"circle-stroked",uri:"current-location"}}]}),null!=i){var p=!0,f=!1,d=void 0;try{for(var m,y=i[Symbol.iterator]();!(p=(m=y.next()).done);p=!0){var v=m.value,g=r.i(s.a)(v.location).longitude,_=r.i(s.a)(v.location).latitude;c.features.push({type:"Feature",geometry:{type:"Point",coordinates:[g,_]},properties:{title:v.name,icon:"circle",uri:v.slug}})}}catch(t){f=!0,d=t}finally{try{!p&&y.return&&y.return()}finally{if(f)throw d}}}if(null!=e){e.coords.longitude,e.coords.latitude}var map=new a.a.Map({container:t,style:"mapbox://styles/mapbox/streets-v9",center:[o,n],zoom:15});if(null==e&&map.scrollZoom.disable(),map.addControl(new a.a.NavigationControl),t.appendChild(h(map)),map.on("load",function(){map.addSource("points",{type:"geojson",data:c}),map.addLayer({id:"points",interactive:!0,type:"symbol",source:"points",layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})}),null!=e&&map.on("click",function(t){var e=map.queryRenderedFeatures(t.point,{layer:["points"]});e.length&&(map.flyTo({center:e[0].geometry.coordinates}),r.i(u.a)(e[0].properties.uri))}),c.features&&c.features.length>1){var x=new a.a.LngLatBounds,b=!0,w=!1,E=void 0;try{for(var T,S=c.features[Symbol.iterator]();!(b=(T=S.next()).done);b=!0){var z=T.value;x.extend(z.geometry.coordinates)}}catch(t){w=!0,E=t}finally{try{!b&&S.return&&S.return()}finally{if(w)throw E}}map.fitBounds(x,{padding:65})}return map}var o=r(9),a=r.n(o),s=r(1),u=r(4);e.a=n,a.a.accessToken="pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw";var l=function(t){return t.split("-").map(function(t){var e=i(t),r=e[0],n=e.slice(1);return r.toUpperCase()+n.join("").toLowerCase()}).join(" ")},c=function(map,t,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=document.createElement("input");i.setAttribute("id",e),i.setAttribute("type","radio"),i.setAttribute("name","toggle"),i.setAttribute("value",e),1==r&&i.setAttribute("checked","checked"),i.addEventListener("click",function(){map.setStyle("mapbox://styles/mapbox/"+e+"-v9")});var n=document.createElement("label");n.setAttribute("for",e),n.appendChild(document.createTextNode(l(e))),t.appendChild(i),t.appendChild(n)},h=function(map){var t=document.createElement("div");return t.classList.add("map-menu"),c(map,t,"streets",!0),c(map,t,"satellite-streets"),t}},,function(t,e,r){"use strict";function i(t){document.querySelector("select")&&("current-location"==t?document.querySelector('select [id="option-coords"]').selected=!0:document.querySelector('select [value="'+t+'"]').selected=!0)}e.a=i},function(t,e,r){"use strict";function i(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function n(t){return 3*t.length/4-i(t)}function o(t){var e,r,n,o,a,s,u=t.length;a=i(t),s=new h(3*u/4-a),n=a>0?u-4:u;var l=0;for(e=0,r=0;e>16&255,s[l++]=o>>8&255,s[l++]=255&o;return 2===a?(o=c[t.charCodeAt(e)]<<2|c[t.charCodeAt(e+1)]>>4,s[l++]=255&o):1===a&&(o=c[t.charCodeAt(e)]<<10|c[t.charCodeAt(e+1)]<<4|c[t.charCodeAt(e+2)]>>2,s[l++]=o>>8&255,s[l++]=255&o),s}function a(t){return l[t>>18&63]+l[t>>12&63]+l[t>>6&63]+l[63&t]}function s(t,e,r){for(var i,n=[],o=e;oc?c:u+a));return 1===i?(e=t[r-1],n+=l[e>>2],n+=l[e<<4&63],n+="=="):2===i&&(e=(t[r-2]<<8)+t[r-1],n+=l[e>>10],n+=l[e>>4&63],n+=l[e<<2&63],n+="="),o.push(n),o.join("")}e.byteLength=n,e.toByteArray=o,e.fromByteArray=u;for(var l=[],c=[],h="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=p.length;f=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),a.alloc(+t)}function v(t,e){if(a.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(t).length;default:if(i)return G(t).length;e=(""+e).toLowerCase(),i=!0}}function g(t,e,r){var i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return k(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return I(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return M(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function _(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}function x(t,e,r,i,n){if(0===t.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof e&&(e=a.from(e,i)),a.isBuffer(e))return 0===e.length?-1:b(t,e,r,i,n);if("number"==typeof e)return e&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function b(t,e,r,i,n){function o(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}var a=1,s=t.length,u=e.length;if(void 0!==i&&(i=String(i).toLowerCase(),"ucs2"===i||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}var l;if(n){var c=-1;for(l=r;ls&&(r=s-u),l=r;l>=0;l--){for(var h=!0,p=0;pn&&(i=n)):i=n;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var a=0;a239?4:o>223?3:o>191?2:1;if(n+s<=r){var u,l,c,h;switch(s){case 1:o<128&&(a=o);break;case 2:u=t[n+1],128===(192&u)&&(h=(31&o)<<6|63&u,h>127&&(a=h));break;case 3:u=t[n+1],l=t[n+2],128===(192&u)&&128===(192&l)&&(h=(15&o)<<12|(63&u)<<6|63&l,h>2047&&(h<55296||h>57343)&&(a=h));break;case 4:u=t[n+1],l=t[n+2],c=t[n+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(h=(15&o)<<18|(63&u)<<12|(63&l)<<6|63&c,h>65535&&h<1114112&&(a=h))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,i.push(a>>>10&1023|55296),a=56320|1023&a),i.push(a),n+=s}return L(i)}function L(t){var e=t.length;if(e<=tt)return String.fromCharCode.apply(String,t);for(var r="",i=0;ii)&&(r=i);for(var n="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function O(t,e,r,i,n,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}function B(t,e,r,i){e<0&&(e=65535+e+1);for(var n=0,o=Math.min(t.length-r,2);n>>8*(i?n:1-n)}function j(t,e,r,i){e<0&&(e=4294967295+e+1);for(var n=0,o=Math.min(t.length-r,4);n>>8*(i?n:3-n)&255}function F(t,e,r,i,n,o){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(t,e,r,i,n){return n||F(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(t,e,r,i,23,4),r+4}function V(t,e,r,i,n){return n||F(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(t,e,r,i,52,8),r+8}function N(t){if(t=q(t).replace(et,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function q(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function Z(t){return t<16?"0"+t.toString(16):t.toString(16)}function G(t,e){e=e||1/0;for(var r,i=t.length,n=null,o=[],a=0;a55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===i){(e-=3)>-1&&o.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&o.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,n=r%256,o.push(n),o.push(i);return o}function Y(t){return K.toByteArray(N(t))}function H(t,e,r,i){for(var n=0;n=e.length||n>=t.length);++n)e[n+r]=t[n];return n}function J(t){return t!==t}/*! +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 19); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = parseLocation; +//parse-location.js + +//text = `POINT(lon lat)` +function parseLocation(text) { + var coords = /POINT\((.*)\)/.exec(text); + var parsedLongitude = coords[1].split(' ')[0]; + var parsedLatitude = coords[1].split(' ')[1]; + + return { 'latitude': parsedLatitude, 'longitude': parsedLongitude }; +} + +/***/ }), +/* 2 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse_location__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__select_place__ = __webpack_require__(4); +/* harmony export (immutable) */ __webpack_exports__["a"] = addMap; +function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } + +//mapbox-utils.js + + + + +__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.accessToken = 'pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw'; + +//define some functions to be used in the default function. +var titlecase = function titlecase(string) { + return string.split('-').map(function (_ref) { + var _ref2 = _toArray(_ref), + first = _ref2[0], + rest = _ref2.slice(1); + + return first.toUpperCase() + rest.join('').toLowerCase(); + }).join(' '); +}; + +var addMapTypeOption = function addMapTypeOption(map, menu, option) { + var checked = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + var input = document.createElement('input'); + input.setAttribute('id', option); + input.setAttribute('type', 'radio'); + input.setAttribute('name', 'toggle'); + input.setAttribute('value', option); + if (checked == true) { + input.setAttribute('checked', 'checked'); + } + input.addEventListener('click', function () { + map.setStyle('mapbox://styles/mapbox/' + option + '-v9'); + }); + var label = document.createElement('label'); + label.setAttribute('for', option); + label.appendChild(document.createTextNode(titlecase(option))); + menu.appendChild(input); + menu.appendChild(label); +}; + +var makeMapMenu = function makeMapMenu(map) { + var mapMenu = document.createElement('div'); + mapMenu.classList.add('map-menu'); + addMapTypeOption(map, mapMenu, 'streets', true); + addMapTypeOption(map, mapMenu, 'satellite-streets'); + return mapMenu; +}; + +//the main function +function addMap(div) { + var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var places = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + var dataLatitude = div.dataset.latitude; + var dataLongitude = div.dataset.longitude; + var dataId = div.dataset.id; + var data = window['geojson' + dataId]; + if (data == null) { + data = { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [dataLongitude, dataLatitude] + }, + 'properties': { + 'title': 'Current Location', + 'icon': 'circle-stroked', + 'uri': 'current-location' + } + }] + }; + } + if (places != null) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = places[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var place = _step.value; + + var placeLongitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).longitude; + var placeLatitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).latitude; + data.features.push({ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [placeLongitude, placeLatitude] + }, + 'properties': { + 'title': place.name, + 'icon': 'circle', + 'uri': place.slug + } + }); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + if (position != null) { + dataLongitude = position.coords.longitude; + dataLatitude = position.coords.latitude; + } + var map = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.Map({ + container: div, + style: 'mapbox://styles/mapbox/streets-v9', + center: [dataLongitude, dataLatitude], + zoom: 15 + }); + if (position == null) { + map.scrollZoom.disable(); + } + map.addControl(new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.NavigationControl()); + div.appendChild(makeMapMenu(map)); + map.on('load', function () { + map.addSource('points', { + 'type': 'geojson', + 'data': data + }); + map.addLayer({ + 'id': 'points', + 'interactive': true, + 'type': 'symbol', + 'source': 'points', + 'layout': { + 'icon-image': '{icon}-15', + 'text-field': '{title}', + 'text-offset': [0, 1] + } + }); + }); + if (position != null) { + map.on('click', function (e) { + var features = map.queryRenderedFeatures(e.point, { + layer: ['points'] + }); + // if there are features within the given radius of the click event, + // fly to the location of the click event + if (features.length) { + // Get coordinates from the symbol and center the map on those coordinates + map.flyTo({ center: features[0].geometry.coordinates }); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__select_place__["a" /* default */])(features[0].properties.uri); + } + }); + } + if (data.features && data.features.length > 1) { + var bounds = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.LngLatBounds(); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = data.features[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var feature = _step2.value; + + bounds.extend(feature.geometry.coordinates); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + map.fitBounds(bounds, { padding: 65 }); + } + + return map; +} + +/***/ }), +/* 3 */, +/* 4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = selectPlaceInForm; +//select-place.js + +function selectPlaceInForm(uri) { + if (document.querySelector('select')) { + if (uri == 'current-location') { + document.querySelector('select [id="option-coords"]').selected = true; + } else { + document.querySelector('select [value="' + uri + '"]').selected = true; + } + } +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function placeHoldersCount (b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 +} + +function byteLength (b64) { + // base64 is 4/3 + up to two characters of the original data + return b64.length * 3 / 4 - placeHoldersCount(b64) +} + +function toByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + var len = b64.length + placeHolders = placeHoldersCount(b64) + + arr = new Arr(len * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var K=r(5),Q=r(7),$=r(8);e.Buffer=a,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:i(),e.kMaxLength=n(),a.poolSize=8192,a._augment=function(t){return t.__proto__=a.prototype,t},a.from=function(t,e,r){return s(null,t,e,r)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(t,e,r){return l(null,t,e,r)},a.allocUnsafe=function(t){return c(null,t)},a.allocUnsafeSlow=function(t){return c(null,t)},a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,i=e.length,n=0,o=Math.min(r,i);n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},a.prototype.compare=function(t,e,r,i,n){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===i&&(i=0),void 0===n&&(n=this.length),e<0||r>t.length||i<0||n>this.length)throw new RangeError("out of range index");if(i>=n&&e>=r)return 0;if(i>=n)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,i>>>=0,n>>>=0,this===t)return 0;for(var o=n-i,s=r-e,u=Math.min(o,s),l=this.slice(i,n),c=t.slice(e,r),h=0;hn)&&(r=n),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return w(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":return T(this,t,e,r);case"latin1":case"binary":return S(this,t,e,r);case"base64":return z(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e0&&(n*=256);)i+=this[t+--e]*n;return i},a.prototype.readUInt8=function(t,e){return e||D(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||D(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||D(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var i=this[t],n=1,o=0;++o=n&&(i-=Math.pow(2,8*e)),i},a.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var i=e,n=1,o=this[t+--i];i>0&&(n*=256);)o+=this[t+--i]*n;return n*=128,o>=n&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return e||D(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||D(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){e||D(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,i){if(t=+t,e|=0,r|=0,!i){var n=Math.pow(2,8*r)-1;O(this,t,e,r,n,0)}var o=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+o]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);O(this,t,e,r,n-1,-n)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,i){if(t=+t,e|=0,!i){var n=Math.pow(2,8*r-1);O(this,t,e,r,n-1,-n)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return V(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return V(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,i){if(r||(r=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e=0;--n)t[n+e]=this[n+r];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var o;if("number"==typeof t)for(o=e;o>1,c=-7,h=r?n-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=i;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,i),o-=l}return(f?-1:1)*a*Math.pow(2,o-i)},e.write=function(t,e,r,i,n,o){var a,s,u,l=8*o-n-1,c=(1<>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,d=i?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,n),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,n),a=0));n>=8;t[r+f]=255&s,f+=d,s/=256,n-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){(function(e,r){var i,i;!function(e){t.exports=e()}(function(){var t;return function t(e,r,n){function o(s,u){if(!r[s]){if(!e[s]){var l="function"==typeof i&&i;if(!u&&l)return i(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var h=r[s]={exports:{}};e[s][0].call(h.exports,function(t){var r=e[s][1][t];return o(r?r:t)},h,h.exports,t,e,r,n)}return r[s].exports}for(var a="function"==typeof i&&i,s=0;sa.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},a.prototype.prepareSegment2=function(t){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+t>a.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},a.prototype.populatePaintArrays=function(t){var e=this;for(var r in this.layerData){var i=e.layerData[r];0!==i.paintVertexArray.bytesPerElement&&i.programConfiguration.populatePaintArray(i.layer,i.paintVertexArray,e.layoutVertexArray.length,e.globalProperties,t)}},a.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},a.prototype.serialize=function(t){return{layoutVertexArray:this.layoutVertexArray.serialize(t),elementArray:this.elementArray&&this.elementArray.serialize(t),elementArray2:this.elementArray2&&this.elementArray2.serialize(t),paintVertexArrays:i(this.layerData,t),segments:this.segments,segments2:this.segments2}},a.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,e.exports=a},{"./program_configuration":15}],2:[function(t,e,r){"use strict";var i=t("./array_group"),n=t("./buffer_group"),o=t("../util/util"),a=function(t,e){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,t.arrays?this.buffers=new n(e,t.layers,t.zoom,t.arrays):this.arrays=new i(e,t.layers,t.zoom)};a.prototype.populate=function(t,e){for(var r=this,i=0,n=t;i=u||p<0||p>=u)){var f=e.prepareSegment(4),d=f.vertexLength;i(e.layoutVertexArray,h,p,-1,-1),i(e.layoutVertexArray,h,p,1,-1),i(e.layoutVertexArray,h,p,1,1),i(e.layoutVertexArray,h,p,-1,1),e.elementArray.emplaceBack(d,d+1,d+2),e.elementArray.emplaceBack(d,d+3,d+2),f.vertexLength+=4,f.primitiveLength+=2}}e.populatePaintArrays(t.properties)},e}(n);e.exports=c},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],4:[function(t,e,r){"use strict";var i=t("../bucket"),n=t("../vertex_array_type"),o=t("../element_array_type"),a=t("../load_geometry"),s=t("earcut"),u=t("../../util/classify_rings"),l=500,c={layoutVertexArrayType:n([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:o(3),elementArrayType2:o(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},h=function(t){function e(e){t.call(this,e,c)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,i=u(a(t),l);rl)||t.y===e.y&&(t.y<0||t.y>l)}var o=t("../bucket"),a=t("../vertex_array_type"),s=t("../element_array_type"),u=t("../load_geometry"),l=t("../extent"),c=t("earcut"),h=t("../../util/classify_rings"),p=500,f={layoutVertexArrayType:a([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:s(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},d=Math.pow(2,13),m=function(t){function e(e){t.call(this,e,f)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,o=h(u(t),p);r=1){var S=b[E-1];if(!n(T,S)){var z=T.sub(S)._perp()._unit();i(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,0,w),i(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,1,w),w+=S.dist(T),i(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,0,w),i(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,1,w);var A=m.vertexLength;e.elementArray.emplaceBack(A,A+1,A+2),e.elementArray.emplaceBack(A+1,A+2,A+3),m.vertexLength+=4,m.primitiveLength+=2}}y.push(T.x),y.push(T.y)}}}for(var M=c(y,v),P=0;P>6)}var n=t("../bucket"),o=t("../vertex_array_type"),a=t("../element_array_type"),s=t("../load_geometry"),u=t("../extent"),l=63,c=Math.cos(37.5*(Math.PI/180)),h=15,p=15,f=.5,d=Math.pow(2,p-1)/f,m={layoutVertexArrayType:o([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:a()},y=function(t){function e(e){t.call(this,e,m)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this,r=this.layers[0].layout,i=r["line-join"],n=r["line-cap"],o=r["line-miter-limit"],a=r["line-round-limit"],u=0,l=s(t,p);u2&&t[s-1].equals(t[s-2]);)s--;if(!(t.length<2)){"bevel"===r&&(n=1.05);var l=h*(u/(512*this.overscaling)),p=t[0],f=t[s-1],d=p.equals(f),m=this.arrays,y=m.prepareSegment(10*s);if(2!==s||!d){this.distance=0;var v,g,_,x,b,w,E,T=i,S=d?"butt":i,z=!0;this.e1=this.e2=this.e3=-1,d&&(v=t[s-2],b=p.sub(v)._unit()._perp());for(var A=0;A0){var C=v.dist(g);if(C>2*l){var k=v.sub(v.sub(g)._mult(l/C)._round());a.distance+=k.dist(g),a.addCurrentVertex(k,a.distance,x.mult(1),0,0,!1,y),g=k}}var R=g&&_,D=R?r:_?T:S;if(R&&"round"===D&&(Ln&&(D="bevel"),"bevel"===D&&(L>2&&(D="flipbevel"),L100)M=b.clone().mult(-1);else{var O=x.x*b.y-x.y*b.x>0?-1:1,B=L*x.add(b).mag()/x.sub(b).mag();M._perp()._mult(B*O)}a.addCurrentVertex(v,a.distance,M,0,0,!1,y),a.addCurrentVertex(v,a.distance,M.mult(-1),0,0,!1,y)}else if("bevel"===D||"fakeround"===D){var j=x.x*b.y-x.y*b.x>0,F=-Math.sqrt(L*L-1);if(j?(E=0,w=F):(w=0,E=F),z||a.addCurrentVertex(v,a.distance,x,w,E,!1,y),"fakeround"===D){for(var U,V=Math.floor(8*(.5-(P-.5))),N=0;N=0;q--)U=x.mult((q+1)/(V+1))._add(b)._unit(),a.addPieSliceVertex(v,a.distance,U,j,y)}_&&a.addCurrentVertex(v,a.distance,b,-w,-E,!1,y)}else"butt"===D?(z||a.addCurrentVertex(v,a.distance,x,0,0,!1,y),_&&a.addCurrentVertex(v,a.distance,b,0,0,!1,y)):"square"===D?(z||(a.addCurrentVertex(v,a.distance,x,1,1,!1,y),a.e1=a.e2=-1),_&&a.addCurrentVertex(v,a.distance,b,-1,-1,!1,y)):"round"===D&&(z||(a.addCurrentVertex(v,a.distance,x,0,0,!1,y),a.addCurrentVertex(v,a.distance,x,1,1,!0,y),a.e1=a.e2=-1),_&&(a.addCurrentVertex(v,a.distance,b,-1,-1,!0,y),a.addCurrentVertex(v,a.distance,b,0,0,!1,y)));if(I&&A2*l){var G=v.add(_.sub(v)._mult(l/Z)._round());a.distance+=G.dist(v),a.addCurrentVertex(G,a.distance,b.mult(1),0,0,!1,y),v=G}}z=!1}m.populatePaintArrays(e)}}},e.prototype.addCurrentVertex=function(t,e,r,n,o,a,s){var u,l=a?1:0,c=this.arrays,h=c.layoutVertexArray,p=c.elementArray;u=r.clone(),n&&u._sub(r.perp()._mult(n)),i(h,t,u,l,0,n,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,u=r.mult(-1),o&&u._sub(r.perp()._mult(o)),i(h,t,u,l,1,-o,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>d/2&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,n,o,a,s))},e.prototype.addPieSliceVertex=function(t,e,r,n,o){var a=n?1:0;r=r.mult(n?-1:1);var s=this.arrays,u=s.layoutVertexArray,l=s.elementArray;i(u,t,r,0,a,0,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(l.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),n?this.e2=this.e3:this.e1=this.e3},e}(n);e.exports=y},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],7:[function(t,e,r){"use strict";function i(t,e,r,i,n,o,a,s,u,l,c){t.emplaceBack(e,r,Math.round(64*i),Math.round(64*n),o/4,a/4,10*(l||0),c,10*(s||0),10*Math.min(u||25,25))}function n(t,e,r,i,n){return t.emplaceBack(e.x,e.y,Math.round(r.x),Math.round(r.y),10*i,10*n)}var o=t("point-geometry"),a=t("../array_group"),s=t("../buffer_group"),u=t("../vertex_array_type"),l=t("../element_array_type"),c=t("../extent"),h=t("../../symbol/anchor"),p=t("../../symbol/get_anchors"),f=t("../../util/token"),d=t("../../symbol/quads"),m=t("../../symbol/shaping"),y=t("../../symbol/resolve_text"),v=t("../../symbol/mergelines"),g=t("../../symbol/clip_line"),_=t("../../util/util"),x=t("../../util/script_detection"),b=t("../load_geometry"),w=t("../../symbol/collision_feature"),E=t("../../util/find_pole_of_inaccessibility"),T=t("../../util/classify_rings"),S=t("vector-tile").VectorTileFeature,z=t("../../source/rtl_text_plugin"),A=m.shapeText,M=m.shapeIcon,P=m.WritingMode,L=d.getGlyphQuads,I=d.getIconQuads,C=l(),k=u([{name:"a_pos",components:2,type:"Int16"},{name:"a_offset",components:2,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),R={glyph:{layoutVertexArrayType:k,elementArrayType:C},icon:{layoutVertexArrayType:k,elementArrayType:C},collisionBox:{layoutVertexArrayType:u([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:l(2)}},D=function(t){var e=this;if(this.collisionBoxArray=t.collisionBoxArray,this.symbolQuadsArray=t.symbolQuadsArray,this.symbolInstancesArray=t.symbolInstancesArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,this.sdfIcons=t.sdfIcons,this.iconsNeedLinear=t.iconsNeedLinear,this.adjustedTextSize=t.adjustedTextSize,this.adjustedIconSize=t.adjustedIconSize,this.fontstack=t.fontstack,t.arrays){this.buffers={};for(var r in t.arrays)t.arrays[r]&&(e.buffers[r]=new s(R[r],t.layers,t.zoom,t.arrays[r]))}};D.prototype.populate=function(t,e){var r=this,i=this.layers[0].layout,n=i["text-field"],o=i["text-font"],a=i["icon-image"],s=n&&o,u=a;if(this.features=[],s||u){for(var l=e.iconDependencies,c=e.glyphDependencies,h=c[o]=c[o]||{},p=0;pc||o.y<0||o.y>c);if(!m||a){var s=a||w;i.addSymbolInstance(o,n,e,r,i.layers[0],s,i.symbolInstancesArray.length,i.collisionBoxArray,t.index,t.sourceLayerIndex,i.index,u,y,x,f,v,b,{zoom:i.zoom},t.properties)}};if("line"===S)for(var M=0,L=g(t.geometry,0,0,c,c);M=0;o--)if(r.dist(n[o])7*Math.PI/4)continue}else if(o&&a&&y<=3*Math.PI/4||y>5*Math.PI/4)continue}else if(o&&a&&(y<=Math.PI/2||y>3*Math.PI/2))continue;var v=m.tl,g=m.tr,_=m.bl,x=m.br,b=m.tex,w=m.anchorPoint,E=Math.max(p+Math.log(m.minScale)/Math.LN2,f),T=Math.min(p+Math.log(m.maxScale)/Math.LN2,25);if(!(T<=E)){E===f&&(E=0);var S=Math.round(m.glyphAngle/(2*Math.PI)*256),z=t.prepareSegment(4),A=z.vertexLength;i(h,w.x,w.y,v.x,v.y,b.x,b.y,E,T,f,S),i(h,w.x,w.y,g.x,g.y,b.x+b.w,b.y,E,T,f,S),i(h,w.x,w.y,_.x,_.y,b.x,b.y+b.h,E,T,f,S),i(h,w.x,w.y,x.x,x.y,b.x+b.w,b.y+b.h,E,T,f,S),c.emplaceBack(A,A+1,A+2),c.emplaceBack(A+1,A+2,A+3),z.vertexLength+=4,z.primitiveLength+=2}}},D.prototype.addToDebugBuffers=function(t){for(var e=this,r=this.arrays.collisionBox,i=r.layoutVertexArray,a=r.elementArray,s=-t.angle,u=t.yStretch,l=this.symbolInstancesStartIndex;lD.MAX_QUADS&&_.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),k>D.MAX_QUADS&&_.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var V=(r[P.vertical]?P.vertical:0)|(r[P.horizontal]?P.horizontal:0);return this.symbolInstancesArray.emplaceBack(R,O,F,U,M,k,B,j,t.x,t.y,a,V)},D.prototype.addSymbolQuad=function(t){return this.symbolQuadsArray.emplaceBack(t.anchorPoint.x,t.anchorPoint.y,t.tl.x,t.tl.y,t.tr.x,t.tr.y,t.bl.x,t.bl.y,t.br.x,t.br.y,t.tex.h,t.tex.w,t.tex.x,t.tex.y,t.anchorAngle,t.glyphAngle,t.maxScale,t.minScale,t.writingMode)},D.MAX_QUADS=65535,e.exports=D},{"../../source/rtl_text_plugin":49,"../../symbol/anchor":75,"../../symbol/clip_line":77,"../../symbol/collision_feature":79,"../../symbol/get_anchors":81,"../../symbol/mergelines":84,"../../symbol/quads":85,"../../symbol/resolve_text":86,"../../symbol/shaping":87,"../../util/classify_rings":113,"../../util/find_pole_of_inaccessibility":119,"../../util/script_detection":126,"../../util/token":128,"../../util/util":129,"../array_group":1,"../buffer_group":9,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17,"point-geometry":197,"vector-tile":206}],8:[function(t,e,r){"use strict";var i={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},n=function(t,e,r){this.arrayBuffer=t.arrayBuffer,this.length=t.length,this.attributes=e.members,this.itemSize=e.bytesPerElement,this.type=r,this.arrayType=e};n.fromStructArray=function(t,e){return new n(t.serialize(),t.constructor.serialize(),e)},n.prototype.bind=function(t){var e=t[this.type];this.buffer?t.bindBuffer(e,this.buffer):(this.gl=t,this.buffer=t.createBuffer(),t.bindBuffer(e,this.buffer),t.bufferData(e,this.arrayBuffer,t.STATIC_DRAW),this.arrayBuffer=null)},n.prototype.setVertexAttribPointers=function(t,e,r){for(var n=this,o=0;o0?t["line-gap-width"]+2*t["line-width"]:t["line-width"]}function a(t,e,r,i,n){if(!e[0]&&!e[1])return t;e=u.convert(e),"viewport"===r&&e._rotate(-i);for(var o=[],a=0;ar.max||h.yr.max)&&n.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return s}},{"../util/util":129,"./extent":11}],14:[function(t,e,r){"use strict";var i=t("../util/struct_array"),n=i({members:[{name:"a_pos",type:"Int16",components:2}]});e.exports=n},{"../util/struct_array":127}],15:[function(t,e,r){"use strict";function i(t,e,r,i){if(!t.zoomStops)return e.getPaintValue(t.property,r,i);var n=t.zoomStops.map(function(n){return e.getPaintValue(t.property,a.extend({},r,{zoom:n}),i)});return 1===n.length?n[0]:n}function n(t,e){var r=t.property.replace(e.type+"-","").replace(/-/g,"_"),i="color"===e._paintSpecifications[t.property].type;return a.extend({name:"a_"+r,components:i?4:1,multiplier:i?255:1},t)}var o=t("./vertex_array_type"),a=t("../util/util"),s=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};s.createDynamic=function(t,e,r){for(var i=new s,a=0,u=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};n.prototype.wrap=function(){return new n(i(this.lng,-180,180),this.lat)},n.prototype.toArray=function(){return[this.lng,this.lat]},n.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},n.convert=function(t){if(t instanceof n)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new n(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new n(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},e.exports=n},{"../util/util":129}],20:[function(t,e,r){"use strict";var i=t("./lng_lat"),n=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};n.prototype.setNorthEast=function(t){return this._ne=i.convert(t),this},n.prototype.setSouthWest=function(t){return this._sw=i.convert(t),this},n.prototype.extend=function(t){var e,r,o=this._sw,a=this._ne;if(t instanceof i)e=t,r=t;else{if(!(t instanceof n))return Array.isArray(t)?t.every(Array.isArray)?this.extend(n.convert(t)):this.extend(i.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return o||a?(o.lng=Math.min(e.lng,o.lng),o.lat=Math.min(e.lat,o.lat),a.lng=Math.max(r.lng,a.lng),a.lat=Math.max(r.lat,a.lat)):(this._sw=new i(e.lng,e.lat),this._ne=new i(r.lng,r.lat)),this},n.prototype.getCenter=function(){return new i((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},n.prototype.getSouthWest=function(){return this._sw},n.prototype.getNorthEast=function(){return this._ne},n.prototype.getNorthWest=function(){return new i(this.getWest(),this.getNorth())},n.prototype.getSouthEast=function(){return new i(this.getEast(),this.getSouth())},n.prototype.getWest=function(){return this._sw.lng},n.prototype.getSouth=function(){return this._sw.lat},n.prototype.getEast=function(){return this._ne.lng},n.prototype.getNorth=function(){return this._ne.lat},n.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},n.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},n.convert=function(t){return!t||t instanceof n?t:new n(t)},e.exports=n},{"./lng_lat":19}],21:[function(t,e,r){"use strict";var i=t("./lng_lat"),n=t("point-geometry"),o=t("./coordinate"),a=t("../util/util"),s=t("../util/interpolate"),u=t("../source/tile_coord"),l=t("../data/extent"),c=t("@mapbox/gl-matrix"),h=c.vec4,p=c.mat4,f=c.mat2,d=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new i(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},m={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};m.minZoom.get=function(){return this._minZoom},m.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},m.maxZoom.get=function(){return this._maxZoom},m.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},m.worldSize.get=function(){return this.tileSize*this.scale},m.centerPoint.get=function(){return this.size._div(2)},m.size.get=function(){return new n(this.width,this.height)},m.bearing.get=function(){return-this.angle/Math.PI*180},m.bearing.set=function(t){var e=-a.wrap(t,-180,180)*Math.PI/180;this.angle!==e&&(this._unmodified=!1,this.angle=e,this._calcMatrices(),this.rotationMatrix=f.create(),f.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},m.pitch.get=function(){return this._pitch/Math.PI*180},m.pitch.set=function(t){var e=a.clamp(t,0,60)/180*Math.PI;this._pitch!==e&&(this._unmodified=!1,this._pitch=e,this._calcMatrices())},m.fov.get=function(){return this._fov/Math.PI*180},m.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},m.zoom.get=function(){return this._zoom},m.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},m.center.get=function(){return this._center},m.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},d.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},d.prototype.coveringTiles=function(t){var e=this.coveringZoomLevel(t),r=e;if(et.maxzoom&&(e=t.maxzoom);var i=this.pointCoordinate(this.centerPoint,e),o=new n(i.column-.5,i.row-.5),a=[this.pointCoordinate(new n(0,0),e),this.pointCoordinate(new n(this.width,0),e),this.pointCoordinate(new n(this.width,this.height),e),this.pointCoordinate(new n(0,this.height),e)];return u.cover(e,a,t.reparseOverscaled?r:e,this._renderWorldCopies).sort(function(t,e){return o.dist(t)-o.dist(e)})},d.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},m.unmodified.get=function(){return this._unmodified},d.prototype.zoomScale=function(t){return Math.pow(2,t)},d.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},d.prototype.project=function(t){return new n(this.lngX(t.lng),this.latY(t.lat))},d.prototype.unproject=function(t){return new i(this.xLng(t.x),this.yLat(t.y))},m.x.get=function(){return this.lngX(this.center.lng)},m.y.get=function(){return this.latY(this.center.lat)},m.point.get=function(){return new n(this.x,this.y)},d.prototype.lngX=function(t){return(180+t)*this.worldSize/360},d.prototype.latY=function(t){var e=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-e)*this.worldSize/360},d.prototype.xLng=function(t){return 360*t/this.worldSize-180},d.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},d.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r))},d.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},d.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},d.prototype.locationCoordinate=function(t){return new o(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},d.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new i(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},d.prototype.pointCoordinate=function(t,e){void 0===e&&(e=this.tileZoom);var r=0,i=[t.x,t.y,0,1],n=[t.x,t.y,1,1];h.transformMat4(i,i,this.pixelMatrixInverse),h.transformMat4(n,n,this.pixelMatrixInverse);var a=i[3],u=n[3],l=i[0]/a,c=n[0]/u,p=i[1]/a,f=n[1]/u,d=i[2]/a,m=n[2]/u,y=d===m?0:(r-d)/(m-d);return new o(s(l,c,y)/this.tileSize,s(p,f,y)/this.tileSize,this.zoom)._zoomTo(e)},d.prototype.coordinatePoint=function(t){var e=t.zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return h.transformMat4(r,r,this.pixelMatrix),new n(r[0]/r[3],r[1]/r[3])},d.prototype.calculatePosMatrix=function(t,e){var r=t.toCoordinate(e),i=this.worldSize/this.zoomScale(r.zoom),n=p.identity(new Float64Array(16));return p.translate(n,n,[r.column*i,r.row*i,0]),p.scale(n,n,[i/l,i/l,1]),p.multiply(n,this.projMatrix,n),new Float32Array(n)},d.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,e,r,i,o,a,s,u,l=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),e=this.latY(this.latRange[0]),o=e-te&&(u=e-f)}if(this.lngRange){var d=this.x,m=l.x/2;d-mi&&(s=i-m)}void 0===s&&void 0===u||(this.center=this.unproject(new n(void 0!==s?s:this.x,void 0!==u?u:this.y))),this._unmodified=c,this._constraining=!1}},d.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),i=Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance,n=1.01*i,o=new Float64Array(16);p.perspective(o,this._fov,this.width/this.height,1,n),p.scale(o,o,[1,-1,1]),p.translate(o,o,[0,0,-this.cameraToCenterDistance]),p.rotateX(o,o,this._pitch),p.rotateZ(o,o,this.angle),p.translate(o,o,[-this.x,-this.y,0]);var a=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(p.scale(o,o,[1,1,a,1]),this.projMatrix=o,o=p.create(),p.scale(o,o,[this.width/2,-this.height/2,1]),p.translate(o,o,[1,-1,0]),this.pixelMatrix=p.multiply(new Float64Array(16),o,this.projMatrix),o=p.invert(new Float64Array(16),this.pixelMatrix),!o)throw new Error("failed to invert matrix");this.pixelMatrixInverse=o}},Object.defineProperties(d.prototype,m),e.exports=d},{"../data/extent":11,"../source/tile_coord":53,"../util/interpolate":121,"../util/util":129,"./coordinate":18,"./lng_lat":19,"@mapbox/gl-matrix":133,"point-geometry":197}],22:[function(t,e,r){"use strict";var i,n=t("./util/worker_pool");e.exports=function(){return i||(i=new n),i}},{"./util/worker_pool":132}],23:[function(t,e,r){"use strict";var i={" ":[16,[]],"!":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'"':[16,[4,21,4,14,-1,-1,12,21,12,14]],"#":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],"%":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],"&":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],"'":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],"(":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],")":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],"*":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],"+":[26,[13,18,13,0,-1,-1,4,9,22,9]],",":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"-":[26,[4,9,22,9]],".":[10,[5,2,4,1,5,0,6,1,5,2]],"/":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],":":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],";":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"<":[24,[20,18,4,9,20,0]],"=":[26,[4,12,22,12,-1,-1,4,6,22,6]],">":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]], -C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]};e.exports=function(t,e,r,n){n=n||1;var o,a,s,u,l,c,h,p,f=[];for(o=0,a=t.length;o0?1/(1-t):1+t}function s(t){return t>0?1-1/(1.001-t):-t}function u(t,e,r,i){var n=r.paint["raster-fade-duration"];if(t.sourceCache&&n>0){var o=Date.now(),a=(o-t.timeAdded)/n,s=e?(o-e.timeAdded)/n:-1,u=t.sourceCache.getSource(),c=i.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!e||Math.abs(e.coord.z-c)>Math.abs(t.coord.z-c),p=l.clamp(h?a:1-s,0,1);return e?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var l=t("../util/util");e.exports=i},{"../util/util":129}],33:[function(t,e,r){"use strict";function i(t,e,r,i){if(!t.isOpaquePass){var o=!(r.layout["text-allow-overlap"]||r.layout["icon-allow-overlap"]||r.layout["text-ignore-placement"]||r.layout["icon-ignore-placement"]),a=t.gl;o?a.disable(a.STENCIL_TEST):a.enable(a.STENCIL_TEST),t.setDepthSublayer(0),t.depthMask(!1),n(t,e,r,i,!1,r.paint["icon-translate"],r.paint["icon-translate-anchor"],r.layout["icon-rotation-alignment"],r.layout["icon-rotation-alignment"],r.layout["icon-size"],r.paint["icon-halo-width"],r.paint["icon-halo-color"],r.paint["icon-halo-blur"],r.paint["icon-opacity"],r.paint["icon-color"]),n(t,e,r,i,!0,r.paint["text-translate"],r.paint["text-translate-anchor"],r.layout["text-rotation-alignment"],r.layout["text-pitch-alignment"],r.layout["text-size"],r.paint["text-halo-width"],r.paint["text-halo-color"],r.paint["text-halo-blur"],r.paint["text-opacity"],r.paint["text-color"]),e.map.showCollisionBoxes&&l(t,e,r,i)}}function n(t,e,r,i,n,s,u,l,c,h,p,f,d,m,y){if(n||!t.style.sprite||t.style.sprite.loaded()){var v=t.gl,g="map"===l,_="map"===c,x=_;x?v.enable(v.DEPTH_TEST):v.disable(v.DEPTH_TEST);for(var b,w,E=0,T=i;Ethis.previousZoom;n--)i.changeTimes[n]=t,i.changeOpacities[n]=i.opacities[n];for(n=0;n<256;n++){var o=t-i.changeTimes[n],a=255*(r?o/r:1);n<=e?i.opacities[n]=i.changeOpacities[n]+a:i.opacities[n]=i.changeOpacities[n]-a}this.changed=!0,this.previousZoom=e},i.prototype.bind=function(t){this.texture?(t.bindTexture(t.TEXTURE_2D,this.texture),this.changed&&(t.texSubImage2D(t.TEXTURE_2D,0,0,0,256,1,t.ALPHA,t.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.ALPHA,256,1,0,t.ALPHA,t.UNSIGNED_BYTE,this.array))},e.exports=i},{}],35:[function(t,e,r){"use strict";var i=t("../util/util"),n=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};n.prototype.setSprite=function(t){this.sprite=t},n.prototype.getDash=function(t,e){var r=t.join(",")+e;return this.positions[r]||(this.positions[r]=this.addDash(t,e)),this.positions[r]},n.prototype.addDash=function(t,e){var r=this,n=e?7:0,o=2*n+1,a=128;if(this.nextRow+o>this.height)return i.warnOnce("LineAtlas out of space"),null;for(var s=0,u=0;u0?e.pop():null},v.prototype.getViewportTexture=function(t,e){var r=this.reusableTextures.viewport;if(r)return r.width===t&&r.height===e?r:(this.gl.deleteTexture(r),void(this.reusableTextures.viewport=null))},v.prototype.lineWidth=function(t){this.gl.lineWidth(l.clamp(t,this.lineWidthRange[0],this.lineWidthRange[1]))},v.prototype.showOverdrawInspector=function(t){if(t||this._showOverdrawInspector){this._showOverdrawInspector=t;var e=this.gl;if(t){e.blendFunc(e.CONSTANT_COLOR,e.ONE);var r=8,i=1/r;e.blendColor(i,i,i,0),e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)}else e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA)}},v.prototype.createProgram=function(t,e){var r=this.gl,n=r.createProgram(),o=m[t],a="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+i.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(a+="#define OVERDRAW_INSPECTOR;\n");var s=r.createShader(r.FRAGMENT_SHADER);r.shaderSource(s,e.applyPragmas(a+m.prelude.fragmentSource+o.fragmentSource,"fragment")),r.compileShader(s),r.attachShader(n,s);var u=r.createShader(r.VERTEX_SHADER);r.shaderSource(u,e.applyPragmas(a+m.prelude.vertexSource+o.vertexSource,"vertex")),r.compileShader(u),r.attachShader(n,u),r.linkProgram(n);for(var l=r.getProgramParameter(n,r.ACTIVE_ATTRIBUTES),c={program:n,numAttributes:l},h=0;h>16,u>>16),n.uniform2f(r.u_pixel_coord_lower,65535&s,65535&u)}},{"../source/pixels_to_tile_units":46}],38:[function(t,e,r){"use strict";t("path");e.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\nuniform lowp vec4 u_outline_color;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n#ifdef OUTLINE\n color = u_outline_color;\n#endif\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n 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, pos);\n 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, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\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\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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n", -vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n"},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_opacity;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * u_opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp vec4 u_color;\nuniform lowp float u_opacity;\nuniform lowp float u_buffer;\nuniform lowp float u_gamma;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n lowp float gamma = u_gamma * v_gamma_scale;\n lowp float alpha = smoothstep(u_buffer - gamma, u_buffer + gamma, dist) * fade_alpha;\n\n gl_FragColor = u_color * (alpha * u_opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}},{path:194}],39:[function(t,e,r){"use strict";var i=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};i.prototype.bind=function(t,e,r,i,n,o){void 0===t.extVertexArrayObject&&(t.extVertexArrayObject=t.getExtension("OES_vertex_array_object"));var a=!this.vao||this.boundProgram!==e||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==o;!t.extVertexArrayObject||a?(this.freshBind(t,e,r,i,n,o),this.gl=t):t.extVertexArrayObject.bindVertexArrayOES(this.vao)},i.prototype.freshBind=function(t,e,r,i,n,o){var a,s=e.numAttributes;if(t.extVertexArrayObject)this.vao&&this.destroy(),this.vao=t.extVertexArrayObject.createVertexArrayOES(),t.extVertexArrayObject.bindVertexArrayOES(this.vao),a=0,this.boundProgram=e,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=o;else{a=t.currentNumAttributes||0;for(var u=s;uthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,n={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",n,function(i,n){if(t.unloadVectorData(),!t.aborted)return i?e(i):(t.loadVectorData(n,r.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(r)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(n);e.exports=u},{"../data/extent":11,"../util/evented":118,"../util/util":129,"../util/window":112}],42:[function(t,e,r){"use strict";var i=t("../util/ajax"),n=t("geojson-rewind"),o=t("./geojson_wrapper"),a=t("vt-pbf"),s=t("supercluster"),u=t("geojson-vt"),l=t("./vector_tile_worker_source"),c=function(t){function e(e,r,i){t.call(this,e,r),i&&(this.loadGeoJSON=i),this._geoJSONIndexes={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.loadVectorData=function(t,e){var r=t.source,i=t.coord;if(!this._geoJSONIndexes[r])return e(null,null);var n=this._geoJSONIndexes[r].getTile(Math.min(i.z,t.maxZoom),i.x,i.y);if(!n)return e(null,null);var s=new o(n.features);s.name="_geojsonTileLayer";var u=a({layers:{_geojsonTileLayer:s}});0===u.byteOffset&&u.byteLength===u.buffer.byteLength||(u=new Uint8Array(u)),s.rawData=u.buffer,e(null,s)},e.prototype.loadData=function(t,e){var r=function(r,i){var o=this;return r?e(r):"object"!=typeof i?e(new Error("Input data is not a valid GeoJSON object.")):(n(i,!0),void this._indexData(i,t,function(r,i){return r?e(r):(o._geoJSONIndexes[t.source]=i,void e(null))}))}.bind(this);this.loadGeoJSON(t,r)},e.prototype.loadGeoJSON=function(t,e){if(t.url)i.getJSON(t.url,e);else{if("string"!=typeof t.data)return e(new Error("Input data is not a valid GeoJSON object."));try{return e(null,JSON.parse(t.data))}catch(t){return e(new Error("Input data is not a valid GeoJSON object."))}}},e.prototype.removeSource=function(t){this._geoJSONIndexes[t.source]&&delete this._geoJSONIndexes[t.source]},e.prototype._indexData=function(t,e,r){try{e.cluster?r(null,s(e.superclusterOptions).load(t.features)):r(null,u(t,e.geojsonVtOptions))}catch(t){return r(t)}},e}(l);e.exports=c},{"../util/ajax":109,"./geojson_wrapper":43,"./vector_tile_worker_source":55,"geojson-rewind":140,"geojson-vt":144,supercluster:201,"vt-pbf":210}],43:[function(t,e,r){"use strict";var i=t("point-geometry"),n=t("vector-tile").VectorTileFeature,o=t("../data/extent"),a=function(t){var e=this;if(this.type=t.type,1===t.type){this.rawGeometry=[];for(var r=0;re)){var s=Math.pow(2,Math.min(a.coord.z,i._source.maxzoom)-Math.min(t.z,i._source.maxzoom));if(Math.floor(a.coord.x/s)===t.x&&Math.floor(a.coord.y/s)===t.y)for(r[o]=!0,n=!0;a&&a.coord.z-1>t.z;){var u=a.coord.parent(i._source.maxzoom).id;a=i._tiles[u],a&&a.hasData()&&(delete r[o],r[u]=!0)}}}return n},e.prototype.findLoadedParent=function(t,e,r){for(var i=this,n=t.z-1;n>=e;n--){t=t.parent(i._source.maxzoom);var o=i._tiles[t.id];if(o&&o.hasData())return r[t.id]=!0,o;if(i._cache.has(t.id))return r[t.id]=!0, -i._cache.get(t.id)}},e.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/t.tileSize)+1,r=Math.ceil(t.height/t.tileSize)+1,i=e*r,n=5;this._cache.setMaxSize(Math.floor(i*n))},e.prototype.update=function(t){var r=this;if(this._sourceLoaded){var i,n,a,s;this.updateCacheSize(t);var u=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(t)),c=Math.max(u-e.maxOverzooming,this._source.minzoom),h=Math.max(u+e.maxUnderzooming,this._source.minzoom),f={};this._coveredTiles={};var d;for(d=this.used?this._source.coord?[this._source.coord]:t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],i=0;i=Date.now())&&(r.findLoadedChildren(n,h,f)&&(f[g]=!0),s=r.findLoadedParent(n,c,m),s&&r.addTile(s.coord))}var _;for(_ in m)f[_]||(r._coveredTiles[_]=!0);for(_ in m)f[_]=!0;var x=p.keysDifference(this._tiles,f);for(i=0;ithis._source.maxzoom?Math.pow(2,i-this._source.maxzoom):1;e=new s(r,this._source.tileSize*n,this._source.maxzoom),this.loadTile(e,this._tileLoaded.bind(this,e,t.id))}return e.uses++,this._tiles[t.id]=e,this._source.fire("dataloading",{tile:e,coord:e.coord,dataType:"tile"}),e},e.prototype._setTileReloadTimer=function(t,e){var r=this,i=e.getExpiry();i&&(this._timers[t]=setTimeout(function(){r.reloadTile(t,"expired"),r._timers[t]=void 0},i-(new Date).getTime()))},e.prototype._setCacheInvalidationTimer=function(t,e){var r=this,i=e.getExpiry();i&&(this._cacheTimers[t]=setTimeout(function(){r._cache.remove(t),r._cacheTimers[t]=void 0},i-(new Date).getTime()))},e.prototype.removeTile=function(t){var e=this._tiles[t];if(e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),this._timers[t]=void 0),this._source.fire("data",{tile:e,coord:e.coord,dataType:"tile"}),!(e.uses>0)))if(e.hasData()){var r=e.coord.wrapped().id;this._cache.add(r,e),this._setCacheInvalidationTimer(r,e)}else e.aborted=!0,this.abortTile(e),this.unloadTile(e)},e.prototype.clearTiles=function(){var t=this;for(var e in this._tiles)t.removeTile(e);this._cache.reset()},e.prototype.tilesIn=function(t){for(var e=this,r={},n=this.getIds(),o=1/0,a=1/0,s=-(1/0),u=-(1/0),c=t[0].zoom,p=0;p=0&&g[1].y>=0){for(var _=[],x=0;xe.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function n(t,e,r,i,n){var o=Math.max(r,Math.floor(e.y0)),a=Math.min(i,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx0,h=e.dx<0,p=o;pc.dy&&(u=l,l=c,c=u),l.dy>h.dy&&(u=l,l=h,h=u),c.dy>h.dy&&(u=c,c=h,h=u),l.dy&&n(h,l,o,a,s),c.dy&&n(h,c,o,a,s)}function a(t,e,r){for(var i,n="",o=t;o>0;o--)i=1<t?new l(this.z-1,this.x,this.y,this.w):new l(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},l.prototype.wrapped=function(){return new l(this.z,this.x,this.y,0)},l.prototype.children=function(t){if(this.z>=t)return[new l(this.z+1,this.x,this.y,this.w)];var e=this.z+1,r=2*this.x,i=2*this.y;return[new l(e,r,i,this.w),new l(e,r+1,i,this.w),new l(e,r,i+1,this.w),new l(e,r+1,i+1,this.w)]},l.cover=function(t,e,r,i){function n(t,e,n){var o,u,c,h;if(n>=0&&n<=a)for(o=t;othis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,n={url:a(t.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:t.uid,coord:t.coord,zoom:t.coord.z,tileSize:this.tileSize*i,type:this.type,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID&&"expired"!==t.state?"loading"===t.state?t.reloadCallback=e:this.dispatcher.send("reloadTile",n,r.bind(this),t.workerID):t.workerID=this.dispatcher.send("loadTile",n,r.bind(this))},e.prototype.abortTile=function(t){this.dispatcher.send("abortTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e}(i);e.exports=s},{"../util/evented":118,"../util/mapbox":125,"../util/util":129,"./load_tilejson":45}],55:[function(t,e,r){"use strict";var i=t("../util/ajax"),n=t("vector-tile"),o=t("pbf"),a=t("./worker_tile"),s=t("../util/util"),u=function(t,e,r){this.actor=t,this.layerIndex=e,r&&(this.loadVectorData=r),this.loading={},this.loaded={}};u.prototype.loadTile=function(t,e){function r(t,r){return delete this.loading[i][n],t?e(t):r?(o.vectorTile=r,o.parse(r,this.layerIndex,this.actor,function(t,i,n){if(t)return e(t);var o={};r.expires&&(o.expires=r.expires),r.cacheControl&&(o.cacheControl=r.cacheControl),e(null,s.extend({rawTileData:r.rawData},i,o),n)}),this.loaded[i]=this.loaded[i]||{},void(this.loaded[i][n]=o)):e(null,null)}var i=t.source,n=t.uid;this.loading[i]||(this.loading[i]={});var o=this.loading[i][n]=new a(t);o.abort=this.loadVectorData(t,r.bind(this))},u.prototype.reloadTile=function(t,e){function r(t,r){if(this.reloadCallback){var i=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,o.layerIndex,o.actor,i)}e(t,r)}var i=this.loaded[t.source],n=t.uid,o=this;if(i&&i[n]){var a=i[n];"parsing"===a.status?a.reloadCallback=e:"done"===a.status&&a.parse(a.vectorTile,this.layerIndex,this.actor,r.bind(a))}},u.prototype.abortTile=function(t){var e=this.loading[t.source],r=t.uid;e&&e[r]&&e[r].abort&&(e[r].abort(),delete e[r])},u.prototype.removeTile=function(t){var e=this.loaded[t.source],r=t.uid;e&&e[r]&&delete e[r]},u.prototype.loadVectorData=function(t,e){function r(t,r){if(t)return e(t);var i=new n.VectorTile(new o(r.data));i.rawData=r.data,i.cacheControl=r.cacheControl,i.expires=r.expires,e(t,i)}var a=i.getArrayBuffer(t.url,r.bind(this));return function(){a.abort()}},u.prototype.redoPlacement=function(t,e){var r=this.loaded[t.source],i=this.loading[t.source],n=t.uid;if(r&&r[n]){var o=r[n],a=o.redoPlacement(t.angle,t.pitch,t.showCollisionBoxes);a.result&&e(null,a.result,a.transferables)}else i&&i[n]&&(i[n].angle=t.angle)},e.exports=u},{"../util/ajax":109,"../util/util":129,"./worker_tile":58,pbf:196,"vector-tile":206}],56:[function(t,e,r){"use strict";var i=t("../util/ajax"),n=t("./image_source"),o=function(t){function e(e,r,i,n){t.call(this,e,r,i,n),this.roundZoom=!0,this.type="video",this.options=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,i.getVideo(e.urls,function(e,r){if(e)return t.fire("error",{error:e});t.video=r,t.video.loop=!0;var i;t.video.addEventListener("playing",function(){i=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(i)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(n);e.exports=o},{"../util/ajax":109,"./image_source":44}],57:[function(t,e,r){"use strict";var i=t("../util/actor"),n=t("../style/style_layer_index"),o=t("./vector_tile_worker_source"),a=t("./geojson_worker_source"),s=t("./rtl_text_plugin"),u=function(t){var e=this;this.self=t,this.actor=new i(t,this),this.layerIndexes={},this.workerSourceTypes={vector:o,geojson:a},this.workerSources={},this.self.registerWorkerSource=function(t,r){if(e.workerSourceTypes[t])throw new Error('Worker source with name "'+t+'" already registered.');e.workerSourceTypes[t]=r},this.self.registerRTLTextPlugin=function(t){if(s.applyArabicShaping||s.processBidirectionalText)throw new Error("RTL text plugin already registered.");s.applyArabicShaping=t.applyArabicShaping,s.processBidirectionalText=t.processBidirectionalText}};u.prototype.setLayers=function(t,e){this.getLayerIndex(t).replace(e)},u.prototype.updateLayers=function(t,e){this.getLayerIndex(t).update(e.layers,e.removedIds,e.symbolOrder)},u.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type).loadTile(e,r)},u.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type).reloadTile(e,r)},u.prototype.abortTile=function(t,e){this.getWorkerSource(t,e.type).abortTile(e)},u.prototype.removeTile=function(t,e){this.getWorkerSource(t,e.type).removeTile(e)},u.prototype.removeSource=function(t,e){var r=this.getWorkerSource(t,e.type);void 0!==r.removeSource&&r.removeSource(e)},u.prototype.redoPlacement=function(t,e,r){this.getWorkerSource(t,e.type).redoPlacement(e,r)},u.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t)}},u.prototype.loadRTLTextPlugin=function(t,e,r){try{s.applyArabicShaping||s.processBidirectionalText||this.self.importScripts(e)}catch(t){r(t)}},u.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new n),e},u.prototype.getWorkerSource=function(t,e){var r=this;if(this.workerSources[t]||(this.workerSources[t]={}),!this.workerSources[t][e]){var i={send:function(e,i,n,o){r.actor.send(e,i,n,o,t)}};this.workerSources[t][e]=new this.workerSourceTypes[e](i,this.getLayerIndex(t))}return this.workerSources[t][e]},e.exports=function(t){return new u(t)}},{"../style/style_layer_index":71,"../util/actor":108,"./geojson_worker_source":42,"./rtl_text_plugin":49,"./vector_tile_worker_source":55}],58:[function(t,e,r){"use strict";function i(t,e){for(var r=0,i=t.layers;r=P.maxzoom||P.layout&&"none"===P.layout.visibility)){for(var L=0,I=M;L=0;D--){var O=y[e.symbolOrder[D]];O&&f.symbolBuckets.push(O)}if(0===this.symbolBuckets.length)return R(new a(this.angle,this.pitch,this.collisionBoxArray));var B=0,j=Object.keys(g.iconDependencies),F=l.mapObject(g.glyphDependencies,function(t){return Object.keys(t).map(Number)}),U=function(t){if(t)return p(t);if(B++,2===B){for(var e=new a(f.angle,f.pitch,f.collisionBoxArray),r=0,n=f.symbolBuckets;r=(new Date).getTime()}),!this.times.length},i.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},i.prototype.cancel=function(t){this.times=this.times.filter(function(e){return e.id!==t})},e.exports=i},{}],60:[function(t,e,r){"use strict";var i=t("../util/evented"),n=t("../util/ajax"),o=t("../util/browser"),a=t("../util/mapbox").normalizeSpriteURL,s=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},u=function(t){function e(e,r){var i=this;t.call(this),this.base=e,this.retina=o.devicePixelRatio>1,this.setEventedParent(r);var s=this.retina?"@2x":"";n.getJSON(a(e,s,".json"),function(t,e){return t?void i.fire("error",{error:t}):(i.data=e,void(i.imgData&&i.fire("data",{dataType:"style"})))}),n.getImage(a(e,s,".png"),function(t,e){if(t)return void i.fire("error",{error:t});i.imgData=o.getImageData(e);for(var r=0;r1!==this.retina){var r=new e(this.base);r.on("data",function(){t.data=r.data,t.imgData=r.imgData,t.width=r.width,t.retina=r.retina})}},e.prototype.getSpritePosition=function(t){if(!this.loaded())return new s;var e=this.data&&this.data[t];return e&&this.imgData?e:new s},e}(i);e.exports=u},{"../util/ajax":109,"../util/browser":110,"../util/evented":118,"../util/mapbox":125}],61:[function(t,e,r){"use strict";var i=t("./style_spec"),n=t("../util/util"),o=t("../util/evented"),a=t("./validate_style"),s=t("./style_declaration"),u=t("./style_transition"),l="-transition",c=function(t){function e(e){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=i.light,this.set(e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){var e=this;if(!this._validate(a.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=n.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var r=0,i=this.properties;rMath.floor(t)&&(e.lastIntegerZoom=Math.floor(t+1),e.lastIntegerZoomTime=Date.now()),e.lastZoom=t},e.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},e.prototype.update=function(t,e){var r=this;if(this._changed){var i=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);(i.length||n.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(i,n);for(var o in this._updatedSources){var a=r._updatedSources[o];"reload"===a?r._reloadSource(o):"clear"===a&&r._clearSource(o)}this._applyClasses(t,e),this._resetUpdates(),this.fire("data",{dataType:"style"})}},e.prototype._updateWorkerLayers=function(t,e){var r=this,i=this._updatedSymbolOrder?this._order.filter(function(t){return"symbol"===r._layers[t].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(t),removedIds:e,symbolOrder:i})},e.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={}, -this._updatedAllPaintProps=!1},e.prototype.setState=function(t){var e=this;if(this._checkLoaded(),y.emitErrors(this,y(t)))return!1;t=c.extend({},t),t.layers=E(t.layers);var r=T(this.serialize(),t).filter(function(t){return!(t.command in A)});if(0===r.length)return!1;var i=r.filter(function(t){return!(t.command in z)});if(i.length>0)throw new Error("Unimplemented: "+i.map(function(t){return t.command}).join(", ")+".");return r.forEach(function(t){"setTransition"!==t.command&&e[t.command].apply(e,t.args)}),this.stylesheet=t,!0},e.prototype.addSource=function(t,e,r){if(this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error("There is already a source with this ID");if(!e.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(e)+".");var i=["vector","raster","geojson","video","image","canvas"],n=i.indexOf(e.type)>=0;if(!n||!this._validate(y.source,"sources."+t,e,null,r)){var o=this.sourceCaches[t]=new _(t,e,this.dispatcher);o.style=this,o.setEventedParent(this,function(){return{isSourceLoaded:o.loaded(),source:o.serialize(),sourceId:t}}),o.onAdd(this.map),this._changed=!0}},e.prototype.removeSource=function(t){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error("There is no source with this ID");var e=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],e.setEventedParent(null),e.clearTiles(),e.onRemove&&e.onRemove(this.map),this._changed=!0},e.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},e.prototype.addLayer=function(t,e,r){this._checkLoaded();var i=t.id;if("object"==typeof t.source&&(this.addSource(i,t.source),t=c.extend(t,{source:i})),!this._validate(y.layer,"layers."+i,t,{arrayIndex:-1},r)){var o=n.create(t);this._validateLayer(o),o.setEventedParent(this,{layer:{id:i}});var a=e?this._order.indexOf(e):this._order.length;if(this._order.splice(a,0,i),this._layers[i]=o,this._removedLayers[i]&&o.source){var s=this._removedLayers[i];delete this._removedLayers[i],this._updatedSources[o.source]=s.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(i)}},e.prototype.moveLayer=function(t,e){this._checkLoaded(),this._changed=!0;var r=this._layers[t];if(!r)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be moved.")});var i=this._order.indexOf(t);this._order.splice(i,1);var n=e?this._order.indexOf(e):this._order.length;this._order.splice(n,0,t),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},e.prototype.removeLayer=function(t){this._checkLoaded();var e=this._layers[t];if(!e)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be removed.")});e.setEventedParent(null);var r=this._order.indexOf(t);this._order.splice(r,1),"symbol"===e.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[t]=e,delete this._layers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t]},e.prototype.getLayer=function(t){return this._layers[t]},e.prototype.setLayerZoomRange=function(t,e,r){this._checkLoaded();var i=this.getLayer(t);return i?void(i.minzoom===e&&i.maxzoom===r||(null!=e&&(i.minzoom=e),null!=r&&(i.maxzoom=r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot have zoom extent.")})},e.prototype.setFilter=function(t,e){this._checkLoaded();var r=this.getLayer(t);return r?void(null!==e&&void 0!==e&&this._validate(y.filter,"layers."+r.id+".filter",e)||c.deepEqual(r.filter,e)||(r.filter=c.clone(e),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be filtered.")})},e.prototype.getFilter=function(t){return c.clone(this.getLayer(t).filter)},e.prototype.setLayoutProperty=function(t,e,r){this._checkLoaded();var i=this.getLayer(t);return i?void(c.deepEqual(i.getLayoutProperty(e),r)||(i.setLayoutProperty(e,r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")})},e.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},e.prototype.setPaintProperty=function(t,e,r,i){this._checkLoaded();var n=this.getLayer(t);if(!n)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")});if(!c.deepEqual(n.getPaintProperty(e,i),r)){var o=n.isPaintValueFeatureConstant(e);n.setPaintProperty(e,r,i);var a=!(r&&b.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&o||this._updateLayer(n),this.updateClasses(t,e)}},e.prototype.getPaintProperty=function(t,e,r){return this.getLayer(t).getPaintProperty(e,r)},e.prototype.getTransition=function(){return c.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},e.prototype.updateClasses=function(t,e){if(this._changed=!0,t){var r=this._updatedPaintProps;r[t]||(r[t]={}),r[t][e||"all"]=!0}else this._updatedAllPaintProps=!0},e.prototype.serialize=function(){var t=this;return c.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:c.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(e){return t._layers[e].serialize()})},function(t){return void 0!==t})},e.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]="reload"),this._changed=!0},e.prototype._flattenRenderedFeatures=function(t){for(var e=this,r=[],i=this._order.length-1;i>=0;i--)for(var n=e._order[i],o=0,a=t;o=this.maxzoom)||"none"===this.layout.visibility},e.prototype.updatePaintTransitions=function(t,e,r,i,o){for(var a=this,s=n.extend({},this._paintDeclarations[""]),u=0;u=this.endTime)return i;var o=this.oldTransition.calculate(t,e,this.startTime),a=n.easeCubicInOut((r-this.startTime-this.delay)/this.duration);return this.interp(o,i,a)},s.prototype._calculateTargetValue=function(t,e){if(!this.zoomTransitioned)return this.declaration.calculate(t,e);var r=t.zoom,i=this.zoomHistory.lastIntegerZoom,n=r>i?2:.5,a=this.declaration.calculate({zoom:r>i?r-1:r+1},e),s=this.declaration.calculate({zoom:r},e),u=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(r-i),c=o(u,1,l);return void 0!==a&&void 0!==s?{from:a,fromScale:n,to:s,toScale:1,t:c}:void 0},e.exports=s},{"../util/interpolate":121,"../util/util":129}],74:[function(t,e,r){"use strict";e.exports=t("mapbox-gl-style-spec/lib/validate_style.min"),e.exports.emitErrors=function(t,e){if(e&&e.length){for(var r=0;r-r/2;){if(a--,a<0)return!1;s-=t[a].dist(o),o=t[a]}s+=t[a].dist(t[a+1]),a++;for(var u=[],l=0;si;)l-=u.shift().angleDelta;if(l>n)return!1;a++,s+=h.dist(p)}return!0}e.exports=i},{}],77:[function(t,e,r){"use strict";function i(t,e,r,i,o){for(var a=[],s=0;s=i&&p.x>=i||(h.x>=i?h=new n(i,h.y+(p.y-h.y)*((i-h.x)/(p.x-h.x)))._round():p.x>=i&&(p=new n(i,h.y+(p.y-h.y)*((i-h.x)/(p.x-h.x)))._round()),h.y>=o&&p.y>=o||(h.y>=o?h=new n(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round():p.y>=o&&(p=new n(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round()),u&&h.equals(u[u.length-1])||(u=[h],a.push(u)),u.push(p)))))}return a}var n=t("point-geometry");e.exports=i},{"point-geometry":197}],78:[function(t,e,r){"use strict";var i=t("../util/struct_array"),n=t("point-geometry"),o=i({members:[{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:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(o.prototype.StructType.prototype,"anchorPoint",{get:function(){return new n(this.anchorPointX,this.anchorPointY)}}),e.exports=o},{"../util/struct_array":127,"point-geometry":197}],79:[function(t,e,r){"use strict";var i=function(t,e,r,i,n,o,a,s,u,l,c){var h=a.top*s-u,p=a.bottom*s+u,f=a.left*s-u,d=a.right*s+u;if(this.boxStartIndex=t.length,l){var m=p-h,y=d-f;if(m>0)if(m=Math.max(10*s,m),c){var v=e[r.segment+1].sub(e[r.segment])._unit()._mult(y),g=[r.sub(v),r.add(v)];this._addLineCollisionBoxes(t,g,r,0,y,m,i,n,o)}else this._addLineCollisionBoxes(t,e,r,r.segment,y,m,i,n,o)}else t.emplaceBack(r.x,r.y,f,h,d,p,1/0,i,n,o,0,0,0,0,0);this.boxEndIndex=t.length};i.prototype._addLineCollisionBoxes=function(t,e,r,i,n,o,a,s,u){var l=o/2,c=Math.floor(n/l),h=-o/2,p=this.boxes,f=r,d=i+1,m=h;do{if(d--,d<0)return p;m-=e[d].dist(f),f=e[d]}while(m>-n/2);for(var y=e[d].dist(e[d+1]),v=0;v=e.length)return p;y=e[d].dist(e[d+1])}var _=g-m,x=e[d],b=e[d+1],w=b.sub(x)._unit()._mult(_)._add(x)._round(),E=Math.max(Math.abs(g-h)-l/2,0),T=n/2/E;t.emplaceBack(w.x,w.y,-o/2,-o/2,o/2,o/2,T,a,s,u,0,0,0,0,0)}return p},e.exports=i},{}],80:[function(t,e,r){"use strict";var i=t("point-geometry"),n=t("../data/extent"),o=t("grid-index"),a=t("../util/intersection_tests"),s=function(t,e,r){if("object"==typeof t){var i=t;r=e,t=i.angle,e=i.pitch,this.grid=new o(i.grid),this.ignoredGrid=new o(i.ignoredGrid)}else this.grid=new o(n,12,6),this.ignoredGrid=new o(n,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),s=Math.cos(t);if(this.rotationMatrix=[s,-a,a,s],this.reverseRotationMatrix=[s,a,-a,s],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=r,0===r.length){r.emplaceBack();var u=32767;r.emplaceBack(0,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(n,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,0,-u,0,u,0,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,n,-u,0,u,0,u,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=r.get(0),this.edges=[r.get(1),r.get(2),r.get(3),r.get(4)]};s.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),r=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(r)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:r}},s.prototype.placeCollisionFeature=function(t,e,r){for(var n=this,o=this.collisionBoxArray,a=this.minScale,s=this.rotationMatrix,u=this.yStretch,l=t.boxStartIndex;l=n.maxScale)return a}if(r){var w;if(n.angle){var E=n.reverseRotationMatrix,T=new i(c.x1,c.y1).matMult(E),S=new i(c.x2,c.y1).matMult(E),z=new i(c.x1,c.y2).matMult(E),A=new i(c.x2,c.y2).matMult(E);w=n.tempCollisionBox,w.anchorPointX=c.anchorPoint.x,w.anchorPointY=c.anchorPoint.y,w.x1=Math.min(T.x,S.x,z.x,A.x),w.y1=Math.min(T.y,S.x,z.x,A.x),w.x2=Math.max(T.x,S.x,z.x,A.x),w.y2=Math.max(T.y,S.x,z.x,A.x),w.maxScale=c.maxScale}else w=c;for(var M=0;M=n.maxScale)return a}}}return a},s.prototype.queryRenderedSymbols=function(t,e){var r={},n=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return n;for(var o=this.collisionBoxArray,s=this.rotationMatrix,u=this.yStretch,l=[],c=1/0,h=1/0,p=-(1/0),f=-(1/0),d=0;dE.maxScale)){var z=E.anchorPoint.matMult(s),A=z.x+E.x1/e,M=z.y+E.y1/e*u,P=z.x+E.x2/e,L=z.y+E.y2/e*u,I=[new i(A,M),new i(P,M),new i(P,L),new i(A,L)];a.polygonIntersectsPolygon(l,I)&&(r[T][S]=!0,n.push(g[w]))}}return n},s.prototype.getPlacementScale=function(t,e,r,i,n){var o=e.x-i.x,a=e.y-i.y,s=(n.x1-r.x2)/o,u=(n.x2-r.x1)/o,l=(n.y1-r.y2)*this.yStretch/a,c=(n.y2-r.y1)*this.yStretch/a;(isNaN(s)||isNaN(u))&&(s=u=1),(isNaN(l)||isNaN(c))&&(l=c=1);var h=Math.min(Math.max(s,u),Math.max(l,c)),p=n.maxScale,f=r.maxScale;return h>p&&(h=p),h>f&&(h=f),h>t&&h>=n.placementScale&&(t=h),t},s.prototype.insertCollisionFeature=function(t,e,r){for(var i=this,n=r?this.ignoredGrid:this.grid,o=this.collisionBoxArray,a=t.boxStartIndex;a=0&&S=0&&z=0&&v+f<=d){var A=new a(S,z,E,_)._round();i&&!s(t,A,l,i,u)||g.push(A)}}y+=w}return h||g.length||c||(g=n(t,y/2,r,i,u,l,c,!0,p)),g}var o=t("../util/interpolate"),a=t("../symbol/anchor"),s=t("./check_max_angle");e.exports=i},{"../symbol/anchor":75,"../util/interpolate":121,"./check_max_angle":76}],82:[function(t,e,r){"use strict";var i=t("shelf-pack"),n=t("../util/util"),o=4,a=128,s=2048,u=function(){ -this.width=a,this.height=a,this.bin=new i(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};u.prototype.getGlyphs=function(){var t,e,r,i={};for(var n in this.ids)t=n.split("#"),e=t[0],r=t[1],i[e]||(i[e]=[]),i[e].push(r);return i},u.prototype.getRects=function(){var t,e,r,i=this,n={};for(var o in this.ids)t=o.split("#"),e=t[0],r=t[1],n[e]||(n[e]={}),n[e][r]=i.index[o];return n},u.prototype.addGlyph=function(t,e,r,i){var o=this;if(!r)return null;var a=e+"#"+r.id;if(this.index[a])return this.ids[a].indexOf(t)<0&&this.ids[a].push(t),this.index[a];if(!r.bitmap)return null;var s=r.width+2*i,u=r.height+2*i,l=1,c=s+2*l,h=u+2*l;c+=4-c%4,h+=4-h%4;var p=this.bin.packOne(c,h);if(p||(this.resize(),p=this.bin.packOne(c,h)),!p)return n.warnOnce("glyph bitmap overflow"),null;this.index[a]=p,this.ids[a]=[t];for(var f=this.data,d=r.bitmap,m=0;m=s||r>=s)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=o,this.height*=o,this.bin.resize(this.width,this.height);for(var i=new ArrayBuffer(this.width*this.height),n=0;n65535)return r("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var n=this.loading[t];if(n[e])n[e].push(r);else{n[e]=[r];var a=256*e+"-"+(256*e+255),u=i(t,a,this.url);o.getArrayBuffer(u,function(t,r){for(var i=!t&&new s(new l(r.data)),o=0;o1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},u.prototype.addIcons=function(t,e){for(var r=this,i=0;i1||(E?(clearTimeout(E),E=null,v("dblclick",e)):E=setTimeout(f,300))}function c(t){g("touchmove",t)}function h(t){g("touchend",t)}function p(t){g("touchcancel",t)}function f(){E=null}function d(t){var e=i.mousePos(_,t);e.equals(w)&&v("click",t)}function m(t){v("dblclick",t),t.preventDefault()}function y(e){var r=t.dragRotate&&t.dragRotate.isActive();b||r?b&&(x=e):v("contextmenu",e),e.preventDefault()}function v(e,r){var n=i.mousePos(_,r);return t.fire(e,{lngLat:t.unproject(n),point:n,originalEvent:r})}function g(e,r){var o=i.touchPos(_,r),a=o.reduce(function(t,e,r,i){return t.add(e.div(i.length))},new n(0,0));return t.fire(e,{lngLat:t.unproject(a),point:a,lngLats:o.map(function(e){return t.unproject(e)},this),points:o,originalEvent:r})}var _=t.getCanvasContainer(),x=null,b=!1,w=null,E=null;for(var T in o)t[T]=new o[T](t,e),e.interactive&&e[T]&&t[T].enable(e[T]);_.addEventListener("mouseout",r,!1),_.addEventListener("mousedown",a,!1),_.addEventListener("mouseup",s,!1),_.addEventListener("mousemove",u,!1),_.addEventListener("touchstart",l,!1),_.addEventListener("touchend",h,!1),_.addEventListener("touchmove",c,!1),_.addEventListener("touchcancel",p,!1),_.addEventListener("click",d,!1),_.addEventListener("dblclick",m,!1),_.addEventListener("contextmenu",y,!1)}},{"../util/dom":117,"./handler/box_zoom":97,"./handler/dblclick_zoom":98,"./handler/drag_pan":99,"./handler/drag_rotate":100,"./handler/keyboard":101,"./handler/scroll_zoom":102,"./handler/touch_zoom_rotate":103,"point-geometry":197}],92:[function(t,e,r){"use strict";var i=t("../util/util"),n=t("../util/interpolate"),o=t("../util/browser"),a=t("../geo/lng_lat"),s=t("../geo/lng_lat_bounds"),u=t("point-geometry"),l=t("../util/evented"),c=function(t){function e(e,r){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=r.bearingSnap}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCenter=function(){return this.transform.center},e.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e),this},e.prototype.panBy=function(t,e,r){return this.panTo(this.transform.center,i.extend({offset:u.convert(t).mult(-1)},e),r),this},e.prototype.panTo=function(t,e,r){return this.easeTo(i.extend({center:t},e),r)},e.prototype.getZoom=function(){return this.transform.zoom},e.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},e.prototype.zoomTo=function(t,e,r){return this.easeTo(i.extend({zoom:t},e),r)},e.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},e.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},e.prototype.getBearing=function(){return this.transform.bearing},e.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},e.prototype.rotateTo=function(t,e,r){return this.easeTo(i.extend({bearing:t},e),r)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,i.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())180&&(c.center.lng>0&&m.lng<0?m.lng+=360:c.center.lng<0&&m.lng>0&&(m.lng-=360));var _=c.zoomScale(y-p),x=c.point,b="center"in t?c.project(m).sub(h.div(_)):x,w=t.curve,E=Math.max(c.width,c.height),T=E/_,S=b.sub(x).mag();if("minZoom"in t){var z=i.clamp(Math.min(t.minZoom,p,y),c.minZoom,c.maxZoom),A=E/c.zoomScale(z-p);w=Math.sqrt(A/S*2)}var M=w*w,P=r(0),L=function(t){return s(P)/s(P+w*t)},I=function(t){return E*((s(P)*l(P+w*t)-o(P))/M)/S},C=(r(1)-P)/w;if(Math.abs(S)<1e-6){if(Math.abs(E-T)<1e-6)return this.easeTo(t);var k=T=0)return!1;return!0}),this._container.innerHTML=t.join(" | "),this._editLink=null}},o.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},e.exports=o},{"../../util/dom":117,"../../util/util":129}],94:[function(t,e,r){"use strict";function i(t){void 0!==n?t(n):void 0!==s.navigator.permissions?s.navigator.permissions.query({name:"geolocation"}).then(function(e){n="denied"!==e.state,t(n)}):(n=!!s.navigator.geolocation,t(n))}var n,o=t("../../util/evented"),a=t("../../util/dom"),s=t("../../util/window"),u=t("../../util/util"),l={enableHighAccuracy:!1,timeout:6e3},c="mapboxgl-ctrl",h=function(t){function e(e){t.call(this),this.options=e||{},u.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onAdd=function(t){return this._map=t,this._container=a.create("div",c+" "+c+"-group"),i(this._setupUI),this._container},e.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},e.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},e.prototype._onError=function(t){this.fire("error",t),this._finish()},e.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},e.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=a.create("button",c+"-icon "+c+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},e.prototype._onClickGeolocate=function(){var t=u.extend(l,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),s.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=s.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(s.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},e}(o);e.exports=h},{"../../util/dom":117,"../../util/evented":118,"../../util/util":129,"../../util/window":112}],95:[function(t,e,r){"use strict";function i(t){return new o.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var n=t("../../util/dom"),o=t("../../util/window"),a=t("../../util/util"),s="mapboxgl-ctrl",u=function(){a.bindAll(["_rotateCompassArrow"],this)};u.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},u.prototype.onAdd=function(t){return this._map=t,this._container=n.create("div",s+" "+s+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(s+"-icon "+s+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(s+"-icon "+s+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(s+"-icon "+s+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=n.create("span","arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},u.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},u.prototype._onContextMenu=function(t){t.preventDefault()},u.prototype._onCompassDown=function(t){0===t.button&&(n.disableDrag(),o.document.addEventListener("mousemove",this._onCompassMove),o.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(i(t)),t.stopPropagation())},u.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(i(t)),t.stopPropagation())},u.prototype._onCompassUp=function(t){0===t.button&&(o.document.removeEventListener("mousemove",this._onCompassMove),o.document.removeEventListener("mouseup",this._onCompassUp), -n.enableDrag(),this._map.getCanvasContainer().dispatchEvent(i(t)),t.stopPropagation())},u.prototype._createButton=function(t,e,r){var i=n.create("button",t,this._container);return i.type="button",i.setAttribute("aria-label",e),i.addEventListener("click",function(){r()}),i},e.exports=u},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],96:[function(t,e,r){"use strict";function i(t,e,r){var i=r&&r.maxWidth||100,a=t._container.clientHeight/2,s=o(t.unproject([0,a]),t.unproject([i,a]));if(r&&"imperial"===r.unit){var u=3.2808*s;if(u>5280){var l=u/5280;n(e,i,l,"mi")}else n(e,i,u,"ft")}else n(e,i,s,"m")}function n(t,e,r,i){var n=a(r),o=n/r;"m"===i&&n>=1e3&&(n/=1e3,i="km"),t.style.width=e*o+"px",t.innerHTML=n+i}function o(t,e){var r=6371e3,i=Math.PI/180,n=t.lat*i,o=e.lat*i,a=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((e.lng-t.lng)*i),s=r*Math.acos(Math.min(a,1));return s}function a(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),r=t/e;return r=r>=10?10:r>=5?5:r>=3?3:r>=2?2:1,e*r}var s=t("../../util/dom"),u=t("../../util/util"),l=function(t){this.options=t,u.bindAll(["_onMove"],this)};l.prototype.getDefaultPosition=function(){return"bottom-left"},l.prototype._onMove=function(){i(this._map,this._container,this.options)},l.prototype.onAdd=function(t){return this._map=t,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},l.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},e.exports=l},{"../../util/dom":117,"../../util/util":129}],97:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../geo/lng_lat_bounds"),o=t("../../util/util"),a=t("../../util/window"),s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),o.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.isActive=function(){return!!this._active},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},s.prototype._onMouseDown=function(t){t.shiftKey&&0===t.button&&(a.document.addEventListener("mousemove",this._onMouseMove,!1),a.document.addEventListener("keydown",this._onKeyDown,!1),a.document.addEventListener("mouseup",this._onMouseUp,!1),i.disableDrag(),this._startPos=i.mousePos(this._el,t),this._active=!0)},s.prototype._onMouseMove=function(t){var e=this._startPos,r=i.mousePos(this._el,t);this._box||(this._box=i.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var n=Math.min(e.x,r.x),o=Math.max(e.x,r.x),a=Math.min(e.y,r.y),s=Math.max(e.y,r.y);i.setTransform(this._box,"translate("+n+"px,"+a+"px)"),this._box.style.width=o-n+"px",this._box.style.height=s-a+"px"},s.prototype._onMouseUp=function(t){if(0===t.button){var e=this._startPos,r=i.mousePos(this._el,t),o=(new n).extend(this._map.unproject(e)).extend(this._map.unproject(r));this._finish(),e.x===r.x&&e.y===r.y?this._fireEvent("boxzoomcancel",t):this._map.fitBounds(o,{linear:!0}).fire("boxzoomend",{originalEvent:t,boxZoomBounds:o})}},s.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",t))},s.prototype._finish=function(){this._active=!1,a.document.removeEventListener("mousemove",this._onMouseMove,!1),a.document.removeEventListener("keydown",this._onKeyDown,!1),a.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),i.enableDrag()},s.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},e.exports=s},{"../../geo/lng_lat_bounds":20,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],98:[function(t,e,r){"use strict";var i=function(t){this._map=t,this._onDblClick=this._onDblClick.bind(this)};i.prototype.isEnabled=function(){return!!this._enabled},i.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},i.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},i.prototype._onDblClick=function(t){this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},e.exports=i},{}],99:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/window"),a=.3,s=n.bezier(0,0,a,1),u=1400,l=2500,c=function(t){this._map=t,this._el=t.getCanvasContainer(),n.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(o.document.addEventListener("touchmove",this._onMove),o.document.addEventListener("touchend",this._onTouchEnd)):(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onMouseUp)),this._active=!1,this._startPos=this._pos=i.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=i.mousePos(this._el,t),r=this._map;r.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),r.transform.setLocationAtPoint(r.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},c.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var r=function(){return e._fireEvent("moveend",t)},i=this._inertia;if(i.length<2)return void r();var n=i[i.length-1],o=i[0],c=n[1].sub(o[1]),h=(n[0]-o[0])/1e3;if(0===h||n[1].equals(o[1]))return void r();var p=c.mult(a/h),f=p.mag();f>u&&(f=u,p._unit()._mult(f));var d=f/(l*a),m=p.mult(-d/2);this._map.panBy(m,{duration:1e3*d,easing:s,noMoveStart:!0},{originalEvent:t})}},c.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onMouseUp))},c.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onTouchEnd))},c.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},c.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var r=1,i=0;return"mousemove"===t.type?t.buttons&0===r:t.button!==i},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],100:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/window"),a=.25,s=n.bezier(0,0,a,1),u=180,l=720,c=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,n.bindAll(["_onDown","_onMove","_onUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=i.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var r=this._pos,n=i.mousePos(this._el,t),o=.8*(r.x-n.x),a=(r.y-n.y)*-.5,s=e.getBearing()-o,u=e.getPitch()-a,l=this._inertia,c=l[l.length-1];this._drainInertiaBuffer(),l.push([Date.now(),e._normalizeBearing(s,c[1])]),e.transform.bearing=s,this._pitchWithRotate&&(e.transform.pitch=u),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=n}},c.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var r=this._map,i=r.getBearing(),n=this._inertia,c=function(){Math.abs(i)u&&(g=u);var _=g/(l*a),x=y*g*(_/2);d+=x,Math.abs(r._normalizeBearing(d,0))1;var r=t.ctrlKey?1:2,i=t.ctrlKey?0:2,n=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&o.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(n=0),"mousemove"===t.type?t.buttons&0===r:n!==i},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],101:[function(t,e,r){"use strict";function i(t){return t*(2-t)}var n=100,o=15,a=10,s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},s.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,s=0,u=0,l=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?r=-1:(t.preventDefault(),u=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),u=1);break;case 38:t.shiftKey?s=1:(t.preventDefault(),l=-1);break;case 40:t.shiftKey?s=-1:(l=1,t.preventDefault())}var c=this._map,h=c.getZoom(),p={duration:300,delayEndEvents:500,easing:i,zoom:e?Math.round(h)+e*(t.shiftKey?2:1):h,bearing:c.getBearing()+r*o,pitch:c.getPitch()+s*a,offset:[-u*n,-l*n],center:c.getCenter()};c.easeTo(p,{originalEvent:t})}},e.exports=s},{}],102:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/browser"),a=t("../../util/window"),s=a.navigator.userAgent.toLowerCase(),u=s.indexOf("firefox")!==-1,l=s.indexOf("safari")!==-1&&s.indexOf("chrom")===-1,c=function(t){this._map=t,this._el=t.getCanvasContainer(),n.bindAll(["_onWheel","_onTimeout"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},c.prototype._onWheel=function(t){var e;"wheel"===t.type?(e=t.deltaY,u&&t.deltaMode===a.WheelEvent.DOM_DELTA_PIXEL&&(e/=o.devicePixelRatio),t.deltaMode===a.WheelEvent.DOM_DELTA_LINE&&(e*=40)):"mousewheel"===t.type&&(e=-t.wheelDeltaY,l&&(e/=3));var r=o.now(),n=r-(this._time||0);this._pos=i.mousePos(this._el,t),this._time=r,0!==e&&e%4.000244140625===0?this._type="wheel":0!==e&&Math.abs(e)<4?this._type="trackpad":n>400?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(n*e)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&this._zoom(-e,t),t.preventDefault()},c.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},c.prototype._zoom=function(t,e){if(0!==t){var r=this._map,i=2/(1+Math.exp(-Math.abs(t/100)));t<0&&0!==i&&(i=1/i);var n=r.ease?r.ease.to:r.transform.scale,o=r.transform.scaleZoom(n*i);r.zoomTo(o,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?r.getCenter():r.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:e})}},e.exports=c},{"../../util/browser":110,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],103:[function(t,e,r){"use strict";var i=t("../../util/dom"),n=t("../../util/util"),o=t("../../util/window"),a=.15,s=n.bezier(0,0,a,1),u=12,l=2.5,c=.15,h=4,p=function(t){this._map=t,this._el=t.getCanvasContainer(),n.bindAll(["_onStart","_onMove","_onEnd"],this)};p.prototype.isEnabled=function(){return!!this._enabled},p.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},p.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},p.prototype.disableRotation=function(){this._rotationDisabled=!0},p.prototype.enableRotation=function(){this._rotationDisabled=!1},p.prototype._onStart=function(t){if(2===t.touches.length){var e=i.mousePos(this._el,t.touches[0]),r=i.mousePos(this._el,t.touches[1]);this._startVec=e.sub(r),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],o.document.addEventListener("touchmove",this._onMove,!1),o.document.addEventListener("touchend",this._onEnd,!1)}},p.prototype._onMove=function(t){if(2===t.touches.length){var e=i.mousePos(this._el,t.touches[0]),r=i.mousePos(this._el,t.touches[1]),n=e.add(r).div(2),o=e.sub(r),a=o.mag()/this._startVec.mag(),s=this._rotationDisabled?0:180*o.angleWith(this._startVec)/Math.PI,u=this._map;if(this._gestureIntent){var l={duration:0,around:u.unproject(n)};"rotate"===this._gestureIntent&&(l.bearing=this._startBearing+s),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(l.zoom=u.transform.scaleZoom(this._startScale*a)),u.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,n]),u.easeTo(l,{originalEvent:t})}else{var p=Math.abs(1-a)>c,f=Math.abs(s)>h;f?this._gestureIntent="rotate":p&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=o,this._startScale=u.transform.scale,this._startBearing=u.transform.bearing)}t.preventDefault()}},p.prototype._onEnd=function(t){o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,r=this._map;if(e.length<2)return void r.snapToNorth({},{originalEvent:t});var i=e[e.length-1],n=e[0],c=r.transform.scaleZoom(this._startScale*i[1]),h=r.transform.scaleZoom(this._startScale*n[1]),p=c-h,f=(i[0]-n[0])/1e3,d=i[2];if(0===f||c===h)return void r.snapToNorth({},{originalEvent:t});var m=p*a/f;Math.abs(m)>l&&(m=m>0?l:-l);var y=1e3*Math.abs(m/(u*a)),v=c+m*y/2e3;v<0&&(v=0),r.easeTo({zoom:v,duration:y,easing:s,around:this._aroundCenter?r.getCenter():r.unproject(d)},{originalEvent:t})},p.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>2&&e-t[0][0]>r;)t.shift()},e.exports=p},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],104:[function(t,e,r){"use strict";var i=t("../util/util"),n=t("../util/window"),o=function(){i.bindAll(["_onHashChange","_updateHash"],this)};o.prototype.addTo=function(t){return this._map=t,n.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},o.prototype.remove=function(){return n.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},o.prototype._onHashChange=function(){var t=n.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},o.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),r=this._map.getBearing(),i=this._map.getPitch(),o=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),a="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(o)+"/"+t.lng.toFixed(o);(r||i)&&(a+="/"+Math.round(10*r)/10),i&&(a+="/"+Math.round(i)),n.history.replaceState("","",a)},e.exports=o},{"../util/util":129,"../util/window":112}],105:[function(t,e,r){"use strict";function i(t){t.parentNode&&t.parentNode.removeChild(t)}var n=t("../util/util"),o=t("../util/browser"),a=t("../util/window"),s=t("../util/dom"),u=t("../style/style"),l=t("../style/animation_loop"),c=t("../render/painter"),h=t("../geo/transform"),p=t("./hash"),f=t("./bind_handlers"),d=t("./camera"),m=t("../geo/lng_lat"),y=t("../geo/lng_lat_bounds"),v=t("point-geometry"),g=t("./control/attribution_control"),_=t("mapbox-gl-supported"),x=0,b=20,w={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:x,maxZoom:b,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0},E=function(t){function e(e){var r=this;e=n.extend({},w,e);var i=new h(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,i,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,"string"==typeof e.container){if(this._container=a.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new l,e.maxBounds&&this.setMaxBounds(e.maxBounds),n.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){r.animationLoop.set(300),r._rerender()}),"undefined"!=typeof a&&(a.addEventListener("online",this._onWindowOnline,!1),a.addEventListener("resize",this._onWindowResize,!1)),f(this,e),this._hash=e.hash&&(new p).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new g),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var r=t.onAdd(this),i=this._controlPositions[e];return e.indexOf("bottom")!==-1?i.insertBefore(r,i.firstChild):i.appendChild(r),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var r=this._classes.indexOf(t);return r<0||""===t?this:(this._classes.splice(r,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var r={},i=0;i=0},e.prototype.getClasses=function(){return n.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],r=t[1];this._resizeCanvas(e,r),this.transform.resize(e,r),this.painter.resize(e,r);var i=this.painter.gl,o=i.getParameter(i.MAX_RENDERBUFFER_SIZE)/2;return(this._canvas.width>o||this._canvas.height>o)&&n.warnOnce("Map is larger than maximum size supported by this system ("+o+"px by "+o+"px)."),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new y(this.transform.pointLocation(new v(0,this.transform.height)),this.transform.pointLocation(new v(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new v(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new v(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=y.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?x:t,t>=x&&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")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(m.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(v.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof v||Array.isArray(t)}var e,r={};return 2===arguments.length?(e=arguments[0],r=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(r=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),r,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[v.convert([0,0]),v.convert([this.transform.width,this.transform.height])]);var r,i=t instanceof v||"number"==typeof t[0];if(i){var n=v.convert(t);r=[n]}else{var o=[v.convert(t[0]),v.convert(t[1])];r=[o[0],new v(o[1].x,o[0].y),o[1],new v(o[0].x,o[1].y),o[0]]}return r=r.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var r=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof u)&&"string"!=typeof t;if(r)try{return this.style.setState(t)&&this._update(!0),this}catch(t){n.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof u?this.style=t:this.style=new u(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,r){return this.style.addSourceType(t,e,r)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,r,i){return this.style.setPaintProperty(t,e,r,i),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,r){return this.style.getPaintProperty(t,e,r)},e.prototype.setLayoutProperty=function(t,e,r){return this.style.setLayoutProperty(t,e,r),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=s.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=s.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",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");var r=this._containerDimensions();this._resizeCanvas(r[0],r[1]);var i=this._controlContainer=s.create("div","mapboxgl-control-container",t),n=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){n[t]=s.create("div","mapboxgl-ctrl-"+t,i)})},e.prototype._resizeCanvas=function(t,e){var r=a.devicePixelRatio||1;this._canvas.width=r*t,this._canvas.height=r*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=n.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},_.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new c(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&o.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),o.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof a&&a.removeEventListener("resize",this._onWindowResize,!1);var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),i(this._canvasContainer),i(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=o.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},r.showTileBoundaries.get=function(){return!!this._showTileBoundaries},r.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},r.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},r.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},r.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},r.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},r.repaint.get=function(){return!!this._repaint},r.repaint.set=function(t){this._repaint=t,this._update()},r.vertices.get=function(){return!!this._vertices},r.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,r),e}(d);e.exports=E},{"../geo/lng_lat":19, -"../geo/lng_lat_bounds":20,"../geo/transform":21,"../render/painter":36,"../style/animation_loop":59,"../style/style":63,"../util/browser":110,"../util/dom":117,"../util/util":129,"../util/window":112,"./bind_handlers":91,"./camera":92,"./control/attribution_control":93,"./hash":104,"mapbox-gl-supported":193,"point-geometry":197}],106:[function(t,e,r){"use strict";var i=t("../util/dom"),n=t("../geo/lng_lat"),o=t("point-geometry"),a=function(t,e){this._offset=o.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=i.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};a.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},a.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),i.remove(this._element),this._popup&&this._popup.remove(),this},a.prototype.getLngLat=function(){return this._lngLat},a.prototype.setLngLat=function(t){return this._lngLat=n.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},a.prototype.getElement=function(){return this._element},a.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},a.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},a.prototype.getPopup=function(){return this._popup},a.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},a.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),i.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},e.exports=a},{"../geo/lng_lat":19,"../util/dom":117,"point-geometry":197}],107:[function(t,e,r){"use strict";function i(t){if(t){if("number"==typeof t){var e=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new l(0,t),"top-left":new l(e,e),"top-right":new l(-e,e),bottom:new l(0,-t),"bottom-left":new l(e,-e),"bottom-right":new l(-e,-e),left:new l(t,0),right:new l(-t,0)}}if(n(t)){var r=l.convert(t);return{top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return{top:l.convert(t.top||[0,0]),"top-left":l.convert(t["top-left"]||[0,0]),"top-right":l.convert(t["top-right"]||[0,0]),bottom:l.convert(t.bottom||[0,0]),"bottom-left":l.convert(t["bottom-left"]||[0,0]),"bottom-right":l.convert(t["bottom-right"]||[0,0]),left:l.convert(t.left||[0,0]),right:l.convert(t.right||[0,0])}}return i(new l(0,0))}function n(t){return t instanceof l||Array.isArray(t)}var o=t("../util/util"),a=t("../util/evented"),s=t("../util/dom"),u=t("../geo/lng_lat"),l=t("point-geometry"),c=t("../util/window"),h={closeButton:!0,closeOnClick:!0},p=function(t){function e(e){t.call(this),this.options=o.extend(Object.create(h),e),o.bindAll(["_update","_onClickClose"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},e.prototype.isOpen=function(){return!!this._map},e.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},e.prototype.getLngLat=function(){return this._lngLat},e.prototype.setLngLat=function(t){return this._lngLat=u.convert(t),this._update(),this},e.prototype.setText=function(t){return this.setDOMContent(c.document.createTextNode(t))},e.prototype.setHTML=function(t){var e,r=c.document.createDocumentFragment(),i=c.document.createElement("body");for(i.innerHTML=t;e=i.firstChild,e;)r.appendChild(e);return this.setDOMContent(r)},e.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},e.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=s.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=s.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},e.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=s.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=s.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,e=i(this.options.offset),r=this._map.project(this._lngLat).round();if(!t){var n=this._container.offsetWidth,o=this._container.offsetHeight;t=r.y+e.bottom.ythis._map.transform.height-o?["bottom"]:[],r.xthis._map.transform.width-n/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var a=r.add(e[t]),u={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%)"},l=this._container.classList;for(var c in u)l.remove("mapboxgl-popup-anchor-"+c);l.add("mapboxgl-popup-anchor-"+t),s.setTransform(this._container,u[t]+" translate("+a.x+"px,"+a.y+"px)")}},e.prototype._onClickClose=function(){this.remove()},e}(a);e.exports=p},{"../geo/lng_lat":19,"../util/dom":117,"../util/evented":118,"../util/util":129,"../util/window":112,"point-geometry":197}],108:[function(t,e,r){"use strict";var i=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};i.prototype.send=function(t,e,r,i,n){var o=r?this.mapId+":"+this.callbackID++:null;r&&(this.callbacks[o]=r),this.target.postMessage({targetMapId:n,sourceMapId:this.mapId,type:t,id:String(o),data:e},i)},i.prototype.receive=function(t){var e,r=this,i=t.data,n=i.id;if(!i.targetMapId||this.mapId===i.targetMapId){var o=function(t,e,i){r.target.postMessage({sourceMapId:r.mapId,type:"",id:String(n),error:t?String(t):null,data:e},i)};if(""===i.type)e=this.callbacks[i.id],delete this.callbacks[i.id],e&&e(i.error||null,i.data);else if("undefined"!=typeof i.id&&this.parent[i.type])this.parent[i.type](i.sourceMapId,i.data,o);else if("undefined"!=typeof i.id&&this.parent.getWorkerSource){var a=i.type.split("."),s=this.parent.getWorkerSource(i.sourceMapId,a[0]);s[a[1]](i.data,o)}else this.parent[i.type](i.data)}},i.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},e.exports=i},{}],109:[function(t,e,r){"use strict";function i(t){var e=n.document.createElement("a");return e.href=t,e.protocol===n.document.location.protocol&&e.host===n.document.location.host}var n=t("./window");r.getJSON=function(t,e){var r=new n.XMLHttpRequest;return r.open("GET",t,!0),r.setRequestHeader("Accept","application/json"),r.onerror=function(t){e(t)},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var t;try{t=JSON.parse(r.response)}catch(t){return e(t)}e(null,t)}else e(new Error(r.statusText))},r.send(),r},r.getArrayBuffer=function(t,e){var r=new n.XMLHttpRequest;return r.open("GET",t,!0),r.responseType="arraybuffer",r.onerror=function(t){e(t)},r.onload=function(){return 0===r.response.byteLength&&200===r.status?e(new Error("http status 200 returned without content.")):void(r.status>=200&&r.status<300&&r.response?e(null,{data:r.response,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):e(new Error(r.statusText)))},r.send(),r};var o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";r.getImage=function(t,e){return r.getArrayBuffer(t,function(t,r){if(t)return e(t);var i=new n.Image,a=n.URL||n.webkitURL;i.onload=function(){e(null,i),a.revokeObjectURL(i.src)};var s=new n.Blob([new Uint8Array(r.data)],{type:"image/png"});i.cacheControl=r.cacheControl,i.expires=r.expires,i.src=r.data.byteLength?a.createObjectURL(s):o})},r.getVideo=function(t,e){var r=n.document.createElement("video");r.onloadstart=function(){e(null,r)};for(var o=0;o=s+i?t.call(n,1):(t.call(n,(u-s)/i),r.frame(o)))}if(!i)return t.call(n,1),null;var a=!1,s=e.exports.now();return r.frame(o),function(){a=!0}},r.getImageData=function(t){var e=i.document.createElement("canvas"),r=e.getContext("2d");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height).data},r.supported=t("mapbox-gl-supported"),r.hardwareConcurrency=i.navigator.hardwareConcurrency||4,Object.defineProperty(r,"devicePixelRatio",{get:function(){return i.devicePixelRatio}}),r.supportsWebp=!1;var a=i.document.createElement("img");a.onload=function(){r.supportsWebp=!0},a.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="},{"./window":112,"mapbox-gl-supported":193}],111:[function(t,e,r){"use strict";var i=t("webworkify"),n=t("../window"),o=n.URL.createObjectURL(new i(t("../../source/worker"),{bare:!0}));e.exports=function(){return new n.Worker(o)}},{"../../source/worker":57,"../window":112,webworkify:213}],112:[function(t,e,r){"use strict";e.exports=self},{}],113:[function(t,e,r){"use strict";function i(t,e){return e.area-t.area}var n=t("quickselect"),o=t("./util").calculateSignedArea;e.exports=function(t,e){var r=t.length;if(r<=1)return[t];for(var a,s,u=[],l=0;l1)for(var h=0;ht.y!=h.y>t.y&&t.x<(h.x-c.x)*(t.y-c.y)/(h.y-c.y)+c.x&&(r=!r),i=Math.min(i,l(t,c,h))}return(r?1:-1)*Math.sqrt(i)}function a(t){for(var e=0,r=0,i=0,o=t[0],a=0,s=o.length,u=s-1;al)&&(l=f.x),(!p||f.y>c)&&(c=f.y)}for(var d=l-o,m=c-u,y=Math.min(d,m),v=y/2,g=new s(null,i),_=o;_b.d&&(b=E,r&&console.log("found best %d after %d probes",Math.round(1e4*E.d)/1e4,w)),E.max-b.d<=e||(v=E.h/2,g.push(new n(E.p.x-v,E.p.y-v,v,t)),g.push(new n(E.p.x+v,E.p.y-v,v,t)),g.push(new n(E.p.x-v,E.p.y+v,v,t)),g.push(new n(E.p.x+v,E.p.y+v,v,t)),w+=4)}return r&&(console.log("num probes: "+w),console.log("best distance: "+b.d)),b.p}},{"./intersection_tests":122,"point-geometry":197,tinyqueue:202}],120:[function(t,e,r){"use strict";function i(t,e){this.stacks=t.readFields(n,[],e)}function n(t,e,r){if(1===t){var i=r.readMessage(o,{glyphs:{}});e.push(i)}}function o(t,e,r){if(1===t)e.name=r.readString();else if(2===t)e.range=r.readString();else if(3===t){var i=r.readMessage(a,{});e.glyphs[i.id]=i}}function a(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())}e.exports=i},{}],121:[function(t,e,r){"use strict";function i(t,e,r){return t*(1-r)+e*r}e.exports=i,i.number=i,i.vec2=function(t,e,r){return[i(t[0],e[0],r),i(t[1],e[1],r)]},i.color=function(t,e,r){return[i(t[0],e[0],r),i(t[1],e[1],r),i(t[2],e[2],r),i(t[3],e[3],r)]},i.array=function(t,e,r){return t.map(function(t,n){return i(t,e[n],r)})}},{}],122:[function(t,e,r){"use strict";function i(t,e){for(var r=0;r=3)for(var u=0;u1){if(u(t,e))return!0;for(var i=0;i1?t.distSqr(r):t.distSqr(r.sub(e)._mult(n)._add(e))}function p(t,e){for(var r,i,n,o=!1,a=0;ae.y!=n.y>e.y&&e.x<(n.x-i.x)*(e.y-i.y)/(n.y-i.y)+i.x&&(o=!o)}return o}function f(t,e){for(var r=!1,i=0,n=t.length-1;ie.y!=a.y>e.y&&e.x<(a.x-o.x)*(e.y-o.y)/(a.y-o.y)+o.x&&(r=!r)}return r}var d=t("./util").isCounterClockwise;e.exports={multiPolygonIntersectsBufferedMultiPoint:n,multiPolygonIntersectsMultiPolygon:o,multiPolygonIntersectsBufferedMultiLine:a,polygonIntersectsPolygon:i,distToSegmentSquared:h}},{"./util":129}],123:[function(t,e,r){"use strict";var i={"Latin-1 Supplement":function(t){return t>=128&&t<=255},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};e.exports=i},{}],124:[function(t,e,r){"use strict";var i=function(t,e){this.max=t,this.onRemove=e,this.reset()};i.prototype.reset=function(){var t=this;for(var e in this.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},i.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},i.prototype.has=function(t){return t in this.data},i.prototype.keys=function(){return this.order},i.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},i.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},i.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},e.exports=i},{}],125:[function(t,e,r){"use strict";function i(t,e){var r=a(u.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,!u.REQUIRE_ACCESS_TOKEN)return s(t);if(e=e||u.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+c);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+c);return t.params.push("access_token="+e),s(t)}function n(t){return 0===t.indexOf("mapbox:")}function o(t){for(var e=0;e=2||512===r?"@2x":"",c=l.supportsWebp?".webp":"$1";return i.path=i.path.replace(h,""+u+c),o(i.params),s(i)};var p=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/},{"./browser":110,"./config":114}],126:[function(t,e,r){"use strict";var i=t("./is_char_in_unicode_block");e.exports.allowsIdeographicBreaking=function(t){for(var e=0,i=t;e=65097&&t<=65103)||i["CJK Compatibility Ideographs"](t)||i["CJK Compatibility"](t)||i["CJK Radicals Supplement"](t)||i["CJK Strokes"](t)||!(!i["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||i["CJK Unified Ideographs Extension A"](t)||i["CJK Unified Ideographs"](t)||i["Enclosed CJK Letters and Months"](t)||i["Hangul Compatibility Jamo"](t)||i["Hangul Jamo Extended-A"](t)||i["Hangul Jamo Extended-B"](t)||i["Hangul Jamo"](t)||i["Hangul Syllables"](t)||i.Hiragana(t)||i["Ideographic Description Characters"](t)||i.Kanbun(t)||i["Kangxi Radicals"](t)||i["Katakana Phonetic Extensions"](t)||i.Katakana(t)&&12540!==t||!(!i["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)||!(!i["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||i["Unified Canadian Aboriginal Syllabics"](t)||i["Unified Canadian Aboriginal Syllabics Extended"](t)||i["Vertical Forms"](t)||i["Yijing Hexagram Symbols"](t)||i["Yi Syllables"](t)||i["Yi Radicals"](t)))},r.charHasNeutralVerticalOrientation=function(t){return!!(i["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||i["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)||i["Letterlike Symbols"](t)||i["Number Forms"](t)||i["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)||i["Control Pictures"](t)&&9251!==t||i["Optical Character Recognition"](t)||i["Enclosed Alphanumerics"](t)||i["Geometric Shapes"](t)||i["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||i["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||i["CJK Symbols and Punctuation"](t)||i.Katakana(t)||i["Private Use Area"](t)||i["CJK Compatibility Forms"](t)||i["Small Form Variants"](t)||i["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)},r.charHasRotatedVerticalOrientation=function(t){return!(r.charHasUprightVerticalOrientation(t)||r.charHasNeutralVerticalOrientation(t))}},{"./is_char_in_unicode_block":123}],127:[function(t,e,r){"use strict";function i(t){var e=JSON.stringify(t);if(y[e])return y[e];var r=void 0===t.alignment?1:t.alignment,i=0,a=0,u=["Uint8"],h=t.members.map(function(t){u.indexOf(t.type)<0&&u.push(t.type);var e=o(t.type),s=i=n(i,Math.max(r,e)),l=t.components||1;return a=Math.max(a,e),i+=e*l,{name:t.name,type:t.type,components:l,offset:s}}),f=n(i,Math.max(a,r)),d=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(p);d.prototype.alignment=r,d.prototype.size=f;for(var v=0,g=h;vthis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*d),f),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},m.prototype._refreshViews=function(){for(var t=this,e=0,r=this._usedTypes;e=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)},r.bezier=function(t,e,r,n){var o=new i(t,e,r,n);return function(t){return o.solve(t)}},r.ease=r.bezier(.25,.1,.25,1),r.clamp=function(t,e,r){return Math.min(r,Math.max(e,t))},r.wrap=function(t,e,r){var i=r-e,n=((t-e)%i+i)%i+e;return n===e?r:n},r.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var i=t.length,n=new Array(t.length),o=null;t.forEach(function(t,a){e(t,function(t,e){t&&(o=t),n[a]=e,0===--i&&r(o,n)})})},r.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},r.keysDifference=function(t,e){var r=[];for(var i in t)i in e||r.push(i);return r},r.extend=function(t,e,r,i){for(var n=arguments,o=1;o=0)return!0;return!1};var a={};r.warnOnce=function(t){a[t]||("undefined"!=typeof console&&console.warn(t),a[t]=!0)},r.isCounterClockwise=function(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)},r.calculateSignedArea=function(t){for(var e,r,i=0,n=0,o=t.length,a=o-1;n0||Math.abs(e.y-i.y)>0)&&Math.abs(r.calculateSignedArea(t))>.01},r.sphericalToCartesian=function(t){var e=t[0],r=t[1],i=t[2];return r+=90,r*=Math.PI/180,i*=Math.PI/180,[e*Math.cos(r)*Math.sin(i),e*Math.sin(r)*Math.sin(i),e*Math.cos(i)]},r.parseCacheControl=function(t){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,r={};if(t.replace(e,function(t,e,i,n){var o=i||n;return r[e]=!o||o.toLowerCase(),""}),r["max-age"]){var i=parseInt(r["max-age"],10);isNaN(i)?delete r["max-age"]:r["max-age"]=i}return r}},{"../geo/coordinate":18,"@mapbox/unitbezier":134,"point-geometry":197}],130:[function(t,e,r){"use strict";var i=function(t,e,r,i){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=i,this.properties=t.properties,null!=t.id&&(this.id=t.id)},n={geometry:{}};n.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},n.geometry.set=function(t){this._geometry=t},i.prototype.toJSON=function(){var t=this,e={geometry:this.geometry};for(var r in this)"_geometry"!==r&&"_vectorTileFeature"!==r&&(e[r]=t[r]);return e},Object.defineProperties(i.prototype,n),e.exports=i},{}],131:[function(t,e,r){"use strict";var i=t("./script_detection");e.exports=function(t){for(var r="",n=0;n":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}},{"./script_detection":126}],132:[function(t,e,r){"use strict";var i=t("./web_worker"),n=function(){this.active={}};n.prototype.acquire=function(e){var r=this;if(!this.workers){var n=t("../mapbox-gl").workerCount;for(this.workers=[];this.workers.lengthi)return i;for(;ro?r=n:i=n,n=.5*(i-r)+r}return n},i.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},{}],135:[function(t,e,r){function i(t){return t=Math.round(t),t<0?0:t>255?255:t}function n(t){return t<0?0:t>1?1:t}function o(t){return i("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return n("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}function u(t){var e=t.replace(/ /g,"").toLowerCase();if(e in l)return l[e].slice();if("#"===e[0]){if(4===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=4095?[(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1]:null}if(7===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=16777215?[(16711680&r)>>16,(65280&r)>>8,255&r,1]:null}return null}var n=e.indexOf("("),u=e.indexOf(")");if(n!==-1&&u+1===e.length){var c=e.substr(0,n),h=e.substr(n+1,u-(n+1)).split(","),p=1;switch(c){case"rgba":if(4!==h.length)return null;p=a(h.pop());case"rgb":return 3!==h.length?null:[o(h[0]),o(h[1]),o(h[2]),p];case"hsla":if(4!==h.length)return null;p=a(h.pop());case"hsl":if(3!==h.length)return null;var f=(parseFloat(h[0])%360+360)%360/360,d=a(h[1]),m=a(h[2]),y=m<=.5?m*(d+1):m+d-m*d,v=2*m-y;return[i(255*s(v,y,f+1/3)),i(255*s(v,y,f)),i(255*s(v,y,f-1/3)),p];default:return null}}return null}var l={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{r.parseCSSColor=u}catch(t){}},{}],136:[function(t,e,r){"use strict";function i(t,e,r){r=r||2;var i=e&&e.length,o=i?e[0]*r:t.length,s=n(t,0,o,r,!0),u=[];if(!s)return u;var l,c,p,f,d,m,y;if(i&&(s=h(t,e,s,r)),t.length>80*r){l=p=t[0],c=f=t[1];for(var v=r;vp&&(p=d),m>f&&(f=m);y=Math.max(p-l,f-c)}return a(s,u,r,l,c,y),u}function n(t,e,r,i,n){var o,a;if(n===I(t,e,r,i)>0)for(o=e;o=e;o-=i)a=M(o,t[o],t[o+1],a);return a&&w(a,a.next)&&(P(a),a=a.next),a}function o(t,e){if(!t)return t;e||(e=t);var r,i=t;do if(r=!1,i.steiner||!w(i,i.next)&&0!==b(i.prev,i,i.next))i=i.next;else{if(P(i),i=e=i.prev,i===i.next)return null;r=!0}while(r||i!==e);return e}function a(t,e,r,i,n,h,p){if(t){!p&&h&&m(t,i,n,h);for(var f,d,y=t;t.prev!==t.next;)if(f=t.prev,d=t.next,h?u(t,i,n,h):s(t))e.push(f.i/r),e.push(t.i/r),e.push(d.i/r),P(t),t=d.next,y=d.next;else if(t=d,t===y){p?1===p?(t=l(t,e,r),a(t,e,r,i,n,h,2)):2===p&&c(t,e,r,i,n,h):a(o(t),e,r,i,n,h,1);break}}}function s(t){var e=t.prev,r=t,i=t.next;if(b(e,r,i)>=0)return!1;for(var n=t.next.next;n!==t.prev;){if(_(e.x,e.y,r.x,r.y,i.x,i.y,n.x,n.y)&&b(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function u(t,e,r,i){var n=t.prev,o=t,a=t.next;if(b(n,o,a)>=0)return!1;for(var s=n.xo.x?n.x>a.x?n.x:a.x:o.x>a.x?o.x:a.x,c=n.y>o.y?n.y>a.y?n.y:a.y:o.y>a.y?o.y:a.y,h=v(s,u,e,r,i),p=v(l,c,e,r,i),f=t.nextZ;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&_(n.x,n.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=h;){if(f!==t.prev&&f!==t.next&&_(n.x,n.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function l(t,e,r){var i=t;do{var n=i.prev,o=i.next.next;!w(n,o)&&E(n,i,i.next,o)&&S(n,o)&&S(o,n)&&(e.push(n.i/r),e.push(i.i/r),e.push(o.i/r),P(i),P(i.next),i=t=o),i=i.next}while(i!==t);return i}function c(t,e,r,i,n,s){var u=t;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&x(u,l)){var c=A(u,l);return u=o(u,u.next),c=o(c,c.next),a(u,e,r,i,n,s),void a(c,e,r,i,n,s)}l=l.next}u=u.next}while(u!==t)}function h(t,e,r,i){var a,s,u,l,c,h=[];for(a=0,s=e.length;a=i.next.y){var s=i.x+(o-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(s<=n&&s>a){if(a=s,s===n){if(o===i.y)return i;if(o===i.next.y)return i.next}r=i.x=i.x&&i.x>=c&&_(or.x)&&S(i,t)&&(r=i,p=u)),i=i.next;return r}function m(t,e,r,i){var n=t;do null===n.z&&(n.z=v(n.x,n.y,e,r,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next;while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,y(n)}function y(t){var e,r,i,n,o,a,s,u,l=1;do{for(r=t,t=null,o=null,a=0;r;){for(a++,i=r,s=0,e=0;e0||u>0&&i;)0===s?(n=i,i=i.nextZ,u--):0!==u&&i?r.z<=i.z?(n=r,r=r.nextZ,s--):(n=i,i=i.nextZ,u--):(n=r,r=r.nextZ,s--),o?o.nextZ=n:t=n,n.prevZ=o,o=n;r=i}o.nextZ=null,l*=2}while(a>1);return t}function v(t,e,r,i,n){return t=32767*(t-r)/n,e=32767*(e-i)/n,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function g(t){var e=t,r=t;do e.x=0&&(t-a)*(i-s)-(r-a)*(e-s)>=0&&(r-a)*(o-s)-(n-a)*(i-s)>=0}function x(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!T(t,e)&&S(t,e)&&S(e,t)&&z(t,e)}function b(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function w(t,e){return t.x===e.x&&t.y===e.y}function E(t,e,r,i){return!!(w(t,e)&&w(r,i)||w(t,i)&&w(r,e))||b(t,e,r)>0!=b(t,e,i)>0&&b(r,i,t)>0!=b(r,i,e)>0}function T(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&&E(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function S(t,e){return b(t.prev,t,t.next)<0?b(t,e,t.next)>=0&&b(t,t.prev,e)>=0:b(t,e,t.prev)<0||b(t,t.next,e)<0}function z(t,e){var r=t,i=!1,n=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&n<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next;while(r!==t);return i}function A(t,e){var r=new L(t.i,t.x,t.y),i=new L(e.i,e.x,e.y),n=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=n,n.prev=r,i.next=r,r.prev=i,o.next=i,i.prev=o,i}function M(t,e,r,i){var n=new L(t,e,r);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function P(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 L(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function I(t,e,r,i){for(var n=0,o=e,a=r-i;o0&&(i+=t[n-1].length,r.holes.push(i))}return r}},{}],137:[function(t,e,r){function i(t){var e,r,n,l,c,h;switch(typeof t){case"object":if(null===t)return null;if(o(t)){for(n="[",r=t.length-1,e=0;e-1&&(n+=i(t[e])),n+"]"}for(l=a(t).sort(),r=l.length,n="{",c=l[e=0],h=r>0&&void 0!==t[c];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};e.exports=function(t){if(void 0!==t)return""+i(t)},e.exports.stringSearch=s,e.exports.stringReplace=u},{}],138:[function(t,e,r){"use strict";function i(t){return new Function("f","var p = (f && f.properties || {}); return "+n(t))}function n(t){if(!t)return"true";var e=t[0];if(t.length<=1)return"any"===e?"false":"true";var r="=="===e?a(t[1],t[2],"===",!1):"!="===e?a(t[1],t[2],"!==",!1):"<"===e||">"===e||"<="===e||">="===e?a(t[1],t[2],e,!0):"any"===e?s(t.slice(1),"||"):"all"===e?s(t.slice(1),"&&"):"none"===e?c(s(t.slice(1),"||")):"in"===e?u(t[1],t.slice(2)):"!in"===e?c(u(t[1],t.slice(2))):"has"===e?l(t[1]):"!has"===e?c(l([t[1]])):"true";return"("+r+")"}function o(t){return"$type"===t?"f.type":"$id"===t?"f.id":"p["+JSON.stringify(t)+"]"}function a(t,e,r,i){var n=o(t),a="$type"===t?p.indexOf(e):JSON.stringify(e);return(i?"typeof "+n+"=== typeof "+a+"&&":"")+n+r+a}function s(t,e){return t.map(n).join(e)}function u(t,e){"$type"===t&&(e=e.map(function(t){return p.indexOf(t)}));var r=JSON.stringify(e.sort(h)),i=o(t);return e.length<=200?r+".indexOf("+i+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+i+", "+r+",0,"+(e.length-1)+")"}function l(t){return JSON.stringify(t)+" in p"}function c(t){return"!("+t+")"}function h(t,e){return te?1:0}e.exports=i;var p=["Unknown","Point","LineString","Polygon"]},{}],139:[function(t,e,r){function i(t){if("Polygon"===t.type)return n(t.coordinates);if("MultiPolygon"===t.type){for(var e=0,r=0;r0){e+=Math.abs(o(t[0]));for(var r=1;r2){for(var r,i,n=0;n=0}var l=t("geojson-area");e.exports=i},{"geojson-area":139}],141:[function(t,e,r){"use strict";function i(t,e,r,i,a,u,l,c){if(r/=e,i/=e,l>=r&&c<=i)return t;if(l>i||c=r&&d<=i)h.push(m);else if(!(f>i||d=e&&s<=r&&n.push(a)}return n}function o(t,e,r,i,n,o){for(var s=[],u=0;ur?(x.push(n(l,d,e),n(l,d,r)),o||(x=a(s,x,y,v,g))):f>=e&&x.push(n(l,d,e)):p>r?fr&&(x.push(n(l,d,r)),o||(x=a(s,x,y,v,g))));l=m[_-1],p=l[i],p>=e&&p<=r&&x.push(l),h=x[x.length-1],o&&h&&(x[0][0]!==h[0]||x[0][1]!==h[1])&&x.push(x[0]),a(s,x,y,v,g)}return s}function a(t,e,r,i,n){return e.length&&(e.area=r,e.dist=i,void 0!==n&&(e.outer=n),t.push(e)),[]}e.exports=i;var s=t("./feature")},{"./feature":143}],142:[function(t,e,r){"use strict";function i(t,e){var r=[];if("FeatureCollection"===t.type)for(var i=0;i1?1:i,[r,i,0]}function s(t){for(var e,r,i=0,n=0,o=0;o1)return!1;var o=n.geometry[0].length;if(5!==o)return!1;for(var a=0;a1&&console.time("creation"),_=this.tiles[g]=d(t,v,r,i,x,e===f.maxZoom),this.tileCoords.push({z:e,x:r,y:i}),m)){m>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,i,_.numFeatures,_.numPoints,_.numSimplified),console.timeEnd("creation"));var b="z"+e;this.stats[b]=(this.stats[b]||0)+1,this.total++}if(_.source=t,n){if(e===f.maxZoom||e===n)continue;var w=1<1&&console.time("clipping");var E,T,S,z,A,M,P=.5*f.buffer/f.extent,L=.5-P,I=.5+P,C=1+P;E=T=S=z=null,A=p(t,v,r-P,r+I,0,a,_.min[0],_.max[0]),M=p(t,v,r+L,r+C,0,a,_.min[0],_.max[0]),A&&(E=p(A,v,i-P,i+I,1,s,_.min[1],_.max[1]),T=p(A,v,i+L,i+C,1,s,_.min[1],_.max[1])),M&&(S=p(M,v,i-P,i+I,1,s,_.min[1],_.max[1]),z=p(M,v,i+L,i+C,1,s,_.min[1],_.max[1])),m>1&&console.timeEnd("clipping"),t.length&&(h.push(E||[],e+1,2*r,2*i),h.push(T||[],e+1,2*r,2*i+1),h.push(S||[],e+1,2*r+1,2*i),h.push(z||[],e+1,2*r+1,2*i+1))}else n&&(y=e)}return y},n.prototype.getTile=function(t,e,r){var i=this.options,n=i.extent,a=i.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var c,p=t,f=e,d=r;!c&&p>0;)p--,f=Math.floor(f/2),d=Math.floor(d/2),c=this.tiles[o(p,f,d)];if(!c||!c.source)return null;if(a>1&&console.log("found parent tile z%d-%d-%d",p,f,d),l(c,n,i.buffer))return h.tile(c,n);a>1&&console.time("drilling down");var m=this.splitTile(c.source,p,f,d,t,e,r); -if(a>1&&console.timeEnd("drilling down"),null!==m){var y=1<i&&(a=r,i=o);i>s?(t[a][2]=i,h.push(l),h.push(a),l=a):(c=h.pop(),l=h.pop())}}function n(t,e,r){var i=e[0],n=e[1],o=r[0],a=r[1],s=t[0],u=t[1],l=o-i,c=a-n;if(0!==l||0!==c){var h=((s-i)*l+(u-n)*c)/(l*l+c*c);h>1?(i=o,n=a):h>0&&(i+=l*h,n+=c*h)}return l=s-i,c=u-n,l*l+c*c}e.exports=i},{}],146:[function(t,e,r){"use strict";function i(t,e,r,i,o,a){for(var s={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z2:e,transformed:!1,min:[2,1],max:[-1,0]},u=0;us.max[0]&&(s.max[0]=c[0]),c[1]>s.max[1]&&(s.max[1]=c[1])}return s}function n(t,e,r,i){var n,a,s,u,l=e.geometry,c=e.type,h=[],p=r*r;if(1===c)for(n=0;np)&&(f.push(u),t.numSimplified++),t.numPoints++;3===c&&o(f,s.outer),h.push(f)}else t.numPoints+=s.length;if(h.length){var d={geometry:h,type:c,tags:e.tags||null};null!==e.id&&(d.id=e.id),t.features.push(d)}}function o(t,e){var r=a(t);r<0===e&&t.reverse()}function a(t){for(var e,r,i=0,n=0,o=t.length,a=o-1;n=l[p+0]&&i>=l[p+1]?(a[h]=!0,o.push(u[h])):a[h]=!1}}},i.prototype._forEachCell=function(t,e,r,i,n,o,a){for(var s=this._convertToCellCoord(t),u=this._convertToCellCoord(e),l=this._convertToCellCoord(r),c=this._convertToCellCoord(i),h=s;h<=l;h++)for(var p=u;p<=c;p++){var f=this.d*p+h;if(n.call(this,t,e,r,i,f,o,a))return}},i.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},i.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=n+this.cells.length+1+1,r=0,i=0;i>1,c=-7,h=r?n-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=i;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,i),o-=l}return(f?-1:1)*a*Math.pow(2,o-i)},r.write=function(t,e,r,i,n,o){var a,s,u,l=8*o-n-1,c=(1<>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,d=i?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,n),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,n),a=0));n>=8;t[r+f]=255&s,f+=d,s/=256,n-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},{}],151:[function(t,e,r){"use strict";function i(t,e,r,i,o){return new n(t,e,r,i,o)}function n(t,e,r,i,n){e=e||o,r=r||a,n=n||Array,this.nodeSize=i||64,this.points=t,this.ids=new n(t.length),this.coords=new n(2*t.length);for(var u=0;u=r&&s<=n&&u>=i&&u<=o&&c.push(t[d]);else{var m=Math.floor((f+p)/2);s=e[2*m],u=e[2*m+1],s>=r&&s<=n&&u>=i&&u<=o&&c.push(t[m]);var y=(h+1)%2;(0===h?r<=s:i<=u)&&(l.push(f),l.push(m-1),l.push(y)),(0===h?n>=s:o>=u)&&(l.push(m+1),l.push(p),l.push(y))}}return c}e.exports=i},{}],153:[function(t,e,r){"use strict";function i(t,e,r,o,a,s){if(!(a-o<=r)){var u=Math.floor((o+a)/2);n(t,e,u,o,a,s%2),i(t,e,r,o,u-1,s+1),i(t,e,r,u+1,a,s+1)}}function n(t,e,r,i,a,s){for(;a>i;){if(a-i>600){var u=a-i+1,l=r-i+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(i,Math.floor(r-l*h/u+p)),d=Math.min(a,Math.floor(r+(u-l)*h/u+p));n(t,e,r,f,d,s)}var m=e[2*r+s],y=i,v=a;for(o(t,e,i,r),e[2*a+s]>m&&o(t,e,i,a);ym;)v--}e[2*i+s]===m?o(t,e,i,v):(v++,o(t,e,v,a)),v<=r&&(i=v+1),r<=v&&(a=v-1)}}function o(t,e,r,i){a(t,r,i),a(e,2*r,2*i),a(e,2*r+1,2*i+1)}function a(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}e.exports=i},{}],154:[function(t,e,r){"use strict";function i(t,e,r,i,o,a){for(var s=[0,t.length-1,0],u=[],l=o*o;s.length;){var c=s.pop(),h=s.pop(),p=s.pop();if(h-p<=a)for(var f=p;f<=h;f++)n(e[2*f],e[2*f+1],r,i)<=l&&u.push(t[f]);else{var d=Math.floor((p+h)/2),m=e[2*d],y=e[2*d+1];n(m,y,r,i)<=l&&u.push(t[d]);var v=(c+1)%2;(0===c?r-o<=m:i-o<=y)&&(s.push(p),s.push(d-1),s.push(v)),(0===c?r+o>=m:i+o>=y)&&(s.push(d+1),s.push(h),s.push(v))}}return u}function n(t,e,r,i){var n=t-r,o=e-i;return n*n+o*o}e.exports=i},{}],155:[function(t,e,r){function i(t){return!!t&&"object"==typeof t}function n(t,e){for(var r=-1,i=t.length;++rl))return!1;for(;++u-1&&t%1==0&&t<=c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t){return!!t&&"object"==typeof t}var c=9007199254740991,h="[object Arguments]",p="[object Function]",f="[object GeneratorFunction]",d=Object.prototype,m=d.hasOwnProperty,y=d.toString,v=d.propertyIsEnumerable;e.exports=i},{}],159:[function(t,e,r){function i(t){return!!t&&"object"==typeof t}function n(t,e){var r=null==t?void 0:t[e];return u(r)?r:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=g}function a(t){return s(t)&&m.call(t)==c}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return null!=t&&(a(t)?y.test(f.call(t)):i(t)&&h.test(t))}var l="[object Array]",c="[object Function]",h=/^\[object .+?Constructor\]$/,p=Object.prototype,f=Function.prototype.toString,d=p.hasOwnProperty,m=p.toString,y=RegExp("^"+f.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=n(Array,"isArray"),g=9007199254740991,_=v||function(t){return i(t)&&o(t.length)&&m.call(t)==l};e.exports=_},{}],160:[function(t,e,r){function i(t,e,r,i){r="function"==typeof r?o(r,i,3):void 0;var a=r?r(t,e):void 0;return void 0===a?n(t,e,r):!!a}var n=t("lodash._baseisequal"),o=t("lodash._bindcallback");e.exports=i},{"lodash._baseisequal":155,"lodash._bindcallback":156}],161:[function(t,e,r){function i(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=a}function n(t){return!!t&&"object"==typeof t}function o(t){return n(t)&&i(t.length)&&!!I[k.call(t)]}var a=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object Boolean]",c="[object Date]",h="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",v="[object Set]",g="[object String]",_="[object WeakMap]",x="[object ArrayBuffer]",b="[object DataView]",w="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",S="[object Int16Array]",z="[object Int32Array]",A="[object Uint8Array]",M="[object Uint8ClampedArray]",P="[object Uint16Array]",L="[object Uint32Array]",I={};I[w]=I[E]=I[T]=I[S]=I[z]=I[A]=I[M]=I[P]=I[L]=!0,I[s]=I[u]=I[x]=I[l]=I[b]=I[c]=I[h]=I[p]=I[f]=I[d]=I[m]=I[y]=I[v]=I[g]=I[_]=!1;var C=Object.prototype,k=C.toString;e.exports=o},{}],162:[function(t,e,r){function i(t){return function(e){return null==e?void 0:e[t]}}function n(t){return null!=t&&a(g(t))}function o(t,e){return t="number"==typeof t||f.test(t)?+t:-1,e=null==e?v:e,t>-1&&t%1==0&&t-1&&t%1==0&&t<=v}function s(t){for(var e=l(t),r=e.length,i=r&&t.length,n=!!i&&a(i)&&(p(t)||h(t)),s=-1,u=[];++s0;++iv?Math.pow(t,1/3):t/y+d}function n(t){return t>m?t*t*t:y*(t-d)}function o(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function a(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function s(t){var e=a(t[0]),r=a(t[1]),n=a(t[2]),o=i((.4124564*e+.3575761*r+.1804375*n)/h),s=i((.2126729*e+.7151522*r+.072175*n)/p),u=i((.0193339*e+.119192*r+.9503041*n)/f);return[116*s-16,500*(o-s),200*(s-u),t[3]]}function u(t){var e=(t[0]+16)/116,r=isNaN(t[1])?e:e+t[1]/500,i=isNaN(t[2])?e:e-t[2]/200;return e=p*n(e),r=h*n(r),i=f*n(i),[o(3.2404542*r-1.5371385*e-.4985314*i),o(-.969266*r+1.8760108*e+.041556*i),o(.0556434*r-.2040259*e+1.0572252*i),t[3]]}function l(t){var e=s(t),r=e[0],i=e[1],n=e[2],o=Math.atan2(n,i)*_;return[o<0?o+360:o,Math.sqrt(i*i+n*n),r,t[3]]}function c(t){var e=t[0]*g,r=t[1],i=t[2];return u([i,Math.cos(e)*r,Math.sin(e)*r,t[3]])}var h=.95047,p=1,f=1.08883,d=4/29,m=6/29,y=3*m*m,v=m*m*m,g=Math.PI/180,_=180/Math.PI;e.exports={lab:{forward:s,reverse:u},hcl:{forward:l,reverse:c}}},{}],164:[function(t,e,r){"use strict";function i(t){return t}function n(t,e){var r;if(p(t)){var l,c=t.stops&&"object"==typeof t.stops[0][0],h=c||void 0!==t.property,d=c||!h,m=t.stops&&typeof(c?t.stops[0][0].property:t.stops[0][0]),y=t.type||e||("string"===m?"categorical":"exponential");if("exponential"===y)l=s;else if("interval"===y)l=a;else if("categorical"===y)l=o;else{if("identity"!==y)throw new Error('Unknown function type "'+y+'"');l=u}var v;if(t.colorSpace&&"rgb"!==t.colorSpace){if(!f[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);var g=f[t.colorSpace];t=JSON.parse(JSON.stringify(t));for(var _=0;_=t.stops.length)&&!(e<=t.stops[i][0]);)i++;return 0===i?t.stops[i][1]:i===t.stops.length?t.stops[i-1][1]:l(e,r,t.stops[i-1][0],t.stops[i][0],t.stops[i-1][1],t.stops[i][1])}function u(t,e){return e}function l(t,e,r,i,n,o){return"function"==typeof n?function(){var a=n.apply(void 0,arguments),s=o.apply(void 0,arguments);return l(t,e,r,i,a,s)}:n.length?h(t,e,r,i,n,o):c(t,e,r,i,n,o)}function c(t,e,r,i,n,o){var a,s=i-r,u=t-r;return a=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),n*(1-a)+o*a}function h(t,e,r,i,n,o){for(var a=[],s=0;s7)return[new i(c,u,"constants have been deprecated as of v8")];if(!(u in p.constants))return[new i(c,u,'constant "%s" not found',u)];e=o({},e,{value:p.constants[u]})}return l.function&&"object"===n(u)?r(e):l.type&&s[l.type]?s[l.type](e):a(o({},e,{valueSpec:l.type?h[l.type]:l}))}},{"../error/validation_error":167,"../util/extend":169,"../util/get_type":170,"./validate_array":174,"./validate_boolean":175,"./validate_color":176,"./validate_constants":177,"./validate_enum":178,"./validate_filter":179,"./validate_function":180,"./validate_layer":182,"./validate_light":184,"./validate_number":185,"./validate_object":186,"./validate_source":188,"./validate_string":189}],174:[function(t,e,r){"use strict";var i=t("../util/get_type"),n=t("./validate"),o=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.valueSpec,a=t.style,s=t.styleSpec,u=t.key,l=t.arrayElementValidator||n;if("array"!==i(e))return[new o(u,e,"array expected, %s found",i(e))];if(r.length&&e.length!==r.length)return[new o(u,e,"array length %d expected, length %d found",r.length,e.length)];if(r["min-length"]&&e.length7)return r?[new i(e,r,"constants have been deprecated as of v8")]:[];var a=n(r);if("object"!==a)return[new i(e,r,"object expected, %s found",a)];var s=[];for(var u in r)"@"!==u[0]&&s.push(new i(e+"."+u,r[u],'constants must start with "@"'));return s}},{"../error/validation_error":167,"../util/get_type":170}],178:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/unbundle_jsonlint");e.exports=function(t){var e=t.key,r=t.value,o=t.valueSpec,a=[];return Array.isArray(o.values)?o.values.indexOf(n(r))===-1&&a.push(new i(e,r,"expected one of [%s], %s found",o.values.join(", "),r)):Object.keys(o.values).indexOf(n(r))===-1&&a.push(new i(e,r,"expected one of [%s], %s found",Object.keys(o.values).join(", "),r)),a}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172}],179:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("./validate_enum"),o=t("../util/get_type"),a=t("../util/unbundle_jsonlint");e.exports=function t(e){var r,s=e.value,u=e.key,l=e.styleSpec,c=[];if("array"!==o(s))return[new i(u,s,"array expected, %s found",o(s))];if(s.length<1)return[new i(u,s,"filter array must have at least 1 element")];switch(c=c.concat(n({key:u+"[0]",value:s[0],valueSpec:l.filter_operator,style:e.style,styleSpec:e.styleSpec})),a(s[0])){case"<":case"<=":case">":case">=":s.length>=2&&"$type"==s[1]&&c.push(new i(u,s,'"$type" cannot be use with operator "%s"',s[0]));case"==":case"!=":3!=s.length&&c.push(new i(u,s,'filter array for operator "%s" must have 3 elements',s[0]));case"in":case"!in":s.length>=2&&(r=o(s[1]),"string"!==r?c.push(new i(u+"[1]",s[1],"string expected, %s found",r)):"@"===s[1][0]&&c.push(new i(u+"[1]",s[1],"filter key cannot be a constant")));for(var h=2;hl(r[0].zoom))return[new i(s,r[0].zoom,"stop zoom values must appear in ascending order")];l(r[0].zoom)!==f&&(f=l(r[0].zoom),p=void 0),e=e.concat(a({key:s+"[0]",value:r[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:u,value:c}}))}else e=e.concat(c({key:s+"[0]",value:r[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec}));return e=e.concat(o({key:s+"[1]",value:r[1],valueSpec:d,style:t.style,styleSpec:t.styleSpec})),"number"===n(r[0])&&"piecewise-constant"===d.function&&r[0]%1!==0&&e.push(new i(s+"[0]",r[0],"zoom level for piecewise-constant functions must be an integer")),e}function c(t){var e=n(t.value),r=l(t.value);if(h){if(e!==h)return[new i(t.key,t.value,"%s stop domain type must match previous stop domain type %s",e,h)]}else h=e,m||"string"!==e||(m="categorical");return"number"!==e&&"string"!==e?[new i(t.key,t.value,"property value must be a number or string")]:"number"!==e&&"categorical"!==m?[new i(t.key,t.value,"number expected, %s found",e)]:"categorical"!==m||"number"!==e||isFinite(r)&&Math.floor(r)===r?"number"===e&&void 0!==p&&r=8&&(g&&!t.valueSpec["property-function"]?x.push(new i(t.key,t.value,"property functions not supported")):v&&!t.valueSpec["zoom-function"]&&x.push(new i(t.key,t.value,"zoom functions not supported"))),"categorical"!==m&&!_||void 0!==t.value.property||x.push(new i(t.key,t.value,'"property" property is required')),x}},{"../error/validation_error":167,"../util/get_type":170,"../util/unbundle_jsonlint":172,"./validate":173,"./validate_array":174,"./validate_number":185,"./validate_object":186}],181:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("./validate_string");e.exports=function(t){var e=t.value,r=t.key,o=n(t);return o.length?o:(e.indexOf("{fontstack}")===-1&&o.push(new i(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&o.push(new i(r,e,'"glyphs" url must include a "{range}" token')),o)}},{"../error/validation_error":167,"./validate_string":189}],182:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_filter"),s=t("./validate_paint_property"),u=t("./validate_layout_property"),l=t("../util/extend");e.exports=function(t){var e=[],r=t.value,c=t.key,h=t.style,p=t.styleSpec;r.type||r.ref||e.push(new i(c,r,'either "type" or "ref" is required'));var f=n(r.type),d=n(r.ref);if(r.id)for(var m=0;mo.maximum?[new n(e,r,"%s is greater than the maximum value %s",r,o.maximum)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],186:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/get_type"),o=t("./validate");e.exports=function(t){var e=t.key,r=t.value,a=t.valueSpec||{},s=t.objectElementValidators||{},u=t.style,l=t.styleSpec,c=[],h=n(r);if("object"!==h)return[new i(e,r,"object expected, %s found",h)];for(var p in r){var f,d=p.split(".")[0],m=a[d]||a["*"];if(s[d])f=s[d];else if(a[d])f=o;else if(s["*"])f=s["*"];else{if(!a["*"]){c.push(new i(e,r[p],'unknown property "%s"',p));continue}f=o}c=c.concat(f({key:(e?e+".":e)+p,value:r[p],valueSpec:m,style:u,styleSpec:l,object:r,objectKey:p}))}for(d in a)a[d].required&&void 0===a[d].default&&void 0===r[d]&&c.push(new i(e,r,'missing required property "%s"',d));return c}},{"../error/validation_error":167,"../util/get_type":170,"./validate":173}],187:[function(t,e,r){"use strict";var i=t("./validate"),n=t("../error/validation_error");e.exports=function(t){var e=t.key,r=t.style,o=t.styleSpec,a=t.value,s=t.objectKey,u=o["paint_"+t.layerType];if(!u)return[];var l=s.match(/^(.*)-transition$/);return l&&u[l[1]]&&u[l[1]].transition?i({key:e,value:a,valueSpec:o.transition,style:r,styleSpec:o}):t.valueSpec||u[s]?i({key:t.key,value:a,valueSpec:t.valueSpec||u[s],style:r,styleSpec:o}):[new n(e,a,'unknown property "%s"',s)]}},{"../error/validation_error":167,"./validate":173}],188:[function(t,e,r){"use strict";var i=t("../error/validation_error"),n=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_enum");e.exports=function(t){var e=t.value,r=t.key,s=t.styleSpec,u=t.style;if(!e.type)return[new i(r,e,'"type" is required')];var l=n(e.type);switch(l){case"vector":case"raster":var c=[];if(c=c.concat(o({key:r,value:e,valueSpec:s.source_tile,style:t.style,styleSpec:s})),"url"in e)for(var h in e)["type","url","tileSize"].indexOf(h)<0&&c.push(new i(r+"."+h,e[h],'a source with a "url" property may not include a "%s" property',h));return c;case"geojson":return o({key:r,value:e,valueSpec:s.source_geojson,style:u,styleSpec:s});case"video":return o({key:r,value:e,valueSpec:s.source_video,style:u,styleSpec:s});case"image":return o({key:r,value:e,valueSpec:s.source_image,style:u,styleSpec:s});case"canvas":return o({key:r,value:e,valueSpec:s.source_canvas,style:u,styleSpec:s});default:return a({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:u,styleSpec:s})}}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172,"./validate_enum":178,"./validate_object":186}],189:[function(t,e,r){"use strict";var i=t("../util/get_type"),n=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.key,o=i(e);return"string"!==o?[new n(r,e,"string expected, %s found",o)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],190:[function(t,e,r){"use strict";function i(t,e){e=e||u;var r=[];return r=r.concat(s({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:l,"*":function(){return[]}}})),e.$version>7&&t.constants&&(r=r.concat(a({key:"constants",value:t.constants,style:t,styleSpec:e}))),n(r)}function n(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function o(t){return function(){return n(t.apply(this,arguments))}}var a=t("./validate/validate_constants"),s=t("./validate/validate"),u=t("../reference/latest.min"),l=t("./validate/validate_glyphs_url");i.source=o(t("./validate/validate_source")),i.light=o(t("./validate/validate_light")),i.layer=o(t("./validate/validate_layer")),i.filter=o(t("./validate/validate_filter")),i.paintProperty=o(t("./validate/validate_paint_property")),i.layoutProperty=o(t("./validate/validate_layout_property")),e.exports=i},{"../reference/latest.min":191,"./validate/validate":173,"./validate/validate_constants":177,"./validate/validate_filter":179,"./validate/validate_glyphs_url":181,"./validate/validate_layer":182,"./validate/validate_layout_property":183,"./validate/validate_light":184,"./validate/validate_paint_property":187,"./validate/validate_source":188}],191:[function(t,e,r){e.exports=t("./v8.min.json")},{"./v8.min.json":192}],192:[function(t,e,r){e.exports={$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"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_tile","source_geojson","source_video","source_image","source_canvas"],source_tile:{type:{required:!0,type:"enum",values:{vector:{},raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"}},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"}}},source_canvas:{type:{required:!0,type:"enum",values:{canvas:{}}},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}},animate:{type:"boolean",default:"true"},canvas:{type:"string",required:!0}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},"fill-extrusion":{},raster:{},background:{}}},metadata:{type:"*"},ref:{type:"string"},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"},"paint.*":{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_fill-extrusion","layout_symbol","layout_raster","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_fill:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_circle:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_line:{"line-cap":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{butt:{},round:{},square:{}},default:"butt"},"line-join":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{bevel:{},round:{},miter:{}},default:"miter"},"line-miter-limit":{type:"number",default:2,function:"interpolated","zoom-function":!0,requires:[{"line-join":"miter"}]},"line-round-limit":{type:"number",default:1.05,function:"interpolated","zoom-function":!0,requires:[{"line-join":"round"}]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_symbol:{"symbol-placement":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{point:{},line:{}},default:"point"},"symbol-spacing":{type:"number",default:250,minimum:1,function:"interpolated","zoom-function":!0,units:"pixels",requires:[{"symbol-placement":"line"}]},"symbol-avoid-edges":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1},"icon-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image","text-field"]},"icon-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"]},"icon-size":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,requires:["icon-image"]},"icon-text-fit":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"]},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",function:"interpolated","zoom-function":!0,requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}]},"icon-image":{type:"string",function:"piecewise-constant","zoom-function":!0,tokens:!0},"icon-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,"property-function":!0,units:"degrees",requires:["icon-image"]},"icon-padding":{type:"number",default:2,minimum:0,function:"interpolated","zoom-function":!0,units:"pixels",requires:["icon-image"]},"icon-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":"line"}]},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,"property-function":!0,requires:["icon-image"]},"text-pitch-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-field":{type:"string",function:"piecewise-constant","zoom-function":!0,default:"",tokens:!0},"text-font":{type:"array",value:"string",function:"piecewise-constant","zoom-function":!0,default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"]},"text-size":{type:"number",default:16,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-line-height":{type:"number",default:1.2,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-letter-spacing":{type:"number",default:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-justify":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{left:{},center:{},right:{}},default:"center",requires:["text-field"]},"text-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field"]},"text-max-angle":{type:"number",default:45,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field",{"symbol-placement":"line"}]},"text-rotate":{type:"number",default:0,period:360,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":"line"}]},"text-transform":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"]},"text-offset":{type:"array",value:"number",units:"ems",function:"interpolated","zoom-function":!0,length:2,default:[0,0],requires:["text-field"]},"text-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field","icon-image"]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{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"}},function_stop:{type:"array",minimum:0,maximum:22,value:["number","color"],length:2},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},transition:!1},position:{type:"array",default:[1.15,210,30],length:3,value:"number",transition:!0,function:"interpolated","zoom-function":!0,"property-function":!1},color:{type:"color",default:"#ffffff",function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0},intensity:{type:"number",default:.5,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0},"fill-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"fill-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"}]},"fill-outline-color":{type:"color",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}]},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-translate"]},"fill-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!1,default:1,minimum:0,maximum:1,transition:!0},"fill-extrusion-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-extrusion-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"]},"fill-extrusion-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"fill-extrusion-height":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"]}},paint_line:{"line-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"line-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"line-pattern"}]},"line-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["line-translate"]},"line-width":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-gap-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-offset":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-dasharray":{type:"array",value:"number",function:"piecewise-constant","zoom-function":!0,minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}]},"line-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-blur":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"circle-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["circle-translate"]},"circle-pitch-scale":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map"},"circle-stroke-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-stroke-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"]},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"]}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-hue-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,transition:!0,units:"degrees"},"raster-brightness-min":{type:"number",function:"interpolated","zoom-function":!0,default:0,minimum:0,maximum:1,transition:!0},"raster-brightness-max":{type:"number",function:"interpolated","zoom-function":!0,default:1,minimum:0,maximum:1,transition:!0},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-fade-duration":{type:"number",default:300,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"milliseconds"}},paint_background:{"background-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:[{"!":"background-pattern"}]},"background-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}}}},{}],193:[function(t,e,r){"use strict";function i(t){return!!(n()&&o()&&a()&&s()&&u()&&l()&&c()&&h(t&&t.failIfMajorPerformanceCaveat))}function n(){return"undefined"!=typeof window&&"undefined"!=typeof document}function o(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function a(){return Function.prototype&&Function.prototype.bind}function s(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function u(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function l(){return"Worker"in window}function c(){return"Uint8ClampedArray"in window}function h(t){return void 0===f[t]&&(f[t]=p(t)),f[t]}function p(t){var e=document.createElement("canvas"),r=Object.create(i.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=t,e.probablySupportsContext?e.probablySupportsContext("webgl",r)||e.probablySupportsContext("experimental-webgl",r):e.supportsContext?e.supportsContext("webgl",r)||e.supportsContext("experimental-webgl",r):e.getContext("webgl",r)||e.getContext("experimental-webgl",r)}"undefined"!=typeof e&&e.exports?e.exports=i:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=i);var f={};i.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}},{}],194:[function(t,e,r){(function(t){function e(t,e){for(var r=0,i=t.length-1;i>=0;i--){var n=t[i];"."===n?t.splice(i,1):".."===n?(t.splice(i,1),r++):r&&(t.splice(i,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function i(t,e){if(t.filter)return t.filter(e);for(var r=[],i=0;i=-1&&!n;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,n="/"===a.charAt(0))}return r=e(i(r.split("/"),function(t){return!!t}),!n).join("/"),(n?"/":"")+r||"."},r.normalize=function(t){var n=r.isAbsolute(t),o="/"===a(t,-1);return t=e(i(t.split("/"),function(t){return!!t}),!n).join("/"),t||n||(t="."),t&&o&&(t+="/"),(n?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(i(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function i(t){for(var e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var n=i(t.split("/")),o=i(e.split("/")),a=Math.min(n.length,o.length),s=a,u=0;u55295&&e<57344){if(!r){e>56319||o+1===i?n.push(239,191,189):r=e;continue}if(e<56320){n.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(n.push(239,191,189),r=null);e<128?n.push(e):e<2048?n.push(e>>6|192,63&e|128):e<65536?n.push(e>>12|224,e>>6&63|128,63&e|128):n.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return n}e.exports=i;var o,a,s,u=t("ieee754");o={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return u.read(this,t,!0,23,4)},readDoubleLE:function(t){return u.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return u.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return u.write(this,t,e,!0,52,8)},toString:function(t,e,r){var i="",n="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(e.pos>=r)throw new Error("Given varint doesn't fit into 10 bytes");var i=255&t;e.buf[e.pos++]=i|(t>=128?128:0),t/=128}}function a(t,e,r){var i=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(Math.log(e)/(7*Math.LN2));r.realloc(i);for(var n=r.pos-1;n>=t;n--)r.buf[n+i]=r.buf[n]}function s(t,e){for(var r=0;r>3,o=this.pos;t(n,e,this),this.pos===o&&this.skip(i)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*v;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*v;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,e,r=this.buf;return e=r[this.pos++],t=127&e,e<128?t:(e=r[this.pos++],t|=(127&e)<<7,e<128?t:(e=r[this.pos++],t|=(127&e)<<14,e<128?t:(e=r[this.pos++],t|=(127&e)<<21,e<128?t:n(t,this))))},readVarint64:function(){var t=this.pos,e=this.readVarint();if(e<_)return e;for(var r=this.pos-2;255===this.buf[r];)r--;r127;);else if(e===i.Bytes)this.pos=this.readVarint()+this.pos;else if(e===i.Fixed32)this.pos+=4;else{if(e!==i.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?void o(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(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);var e=y.byteLength(t);this.writeVarint(e),this.realloc(e),this.buf.write(t,this.pos),this.pos+=e},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&a(r,i,this),this.pos=r-1,this.writeVarint(i),this.pos+=i},writeMessage:function(t,e,r){this.writeTag(t,i.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,s,e)},writePackedSVarint:function(t,e){this.writeMessage(t,u,e)},writePackedBoolean:function(t,e){this.writeMessage(t,h,e)},writePackedFloat:function(t,e){this.writeMessage(t,l,e)},writePackedDouble:function(t,e){this.writeMessage(t,c,e)},writePackedFixed32:function(t,e){this.writeMessage(t,p,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,m,e)},writeBytesField:function(t,e){this.writeTag(t,i.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,i.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,i.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,i.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,i.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,i.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,i.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,i.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,i.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,i.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}}).call(this,"undefined"!=typeof r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./buffer":195}],197:[function(t,e,r){"use strict";function i(t,e){this.x=t,this.y=e}e.exports=i,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)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},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[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,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},_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),i=e*this.x-r*this.y,n=r*this.x+e*this.y;return this.x=i,this.y=n,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}},{}],198:[function(t,e,r){function i(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function o(t){if(h===setTimeout)return setTimeout(t,0);if((h===i||!h)&&setTimeout)return h=setTimeout,setTimeout(t,0);try{return h(t,0)}catch(e){try{return h.call(null,t,0)}catch(e){return h.call(this,t,0)}}}function a(t){if(p===clearTimeout)return clearTimeout(t);if((p===n||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(t);try{return p(t)}catch(e){try{return p.call(null,t)}catch(e){return p.call(this,t)}}}function s(){y&&d&&(y=!1,d.length?m=d.concat(m):v=-1,m.length&&u())}function u(){if(!y){var t=o(s);y=!0;for(var e=m.length;e;){for(d=m,m=[];++v1)for(var r=1;rr;){if(a-r>600){var u=a-r+1,l=e-r+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(r,Math.floor(e-l*h/u+p)),d=Math.min(a,Math.floor(e+(u-l)*h/u+p));i(t,e,f,d,s)}var m=t[e],y=r,v=a;for(n(t,r,e),s(t[a],m)>0&&n(t,r,a);y0;)v--}0===s(t[r],m)?n(t,r,v):(v++,n(t,v,a)),v<=e&&(r=v+1),e<=v&&(a=v-1)}}function n(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}function o(t,e){return te?1:0}e.exports=i},{}],200:[function(e,r,i){!function(e,n){"object"==typeof i&&"undefined"!=typeof r?r.exports=n():"function"==typeof t&&t.amd?t(n):e.ShelfPack=n()}(this,function(){function t(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.stats={},this.count=function(t){this.stats[t]=(0|this.stats[t])+1}}function e(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}return t.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,i,n,o=[],a=0;a0){for(var s=0,u=0,l=0;li.h||t>i.free||rc)&&(h=2*Math.max(t,c)),(uu)&&(l=2*Math.max(r,u)),this.resize(h,l),this.packOne(t,r)}return null},t.prototype.clear=function(){this.shelves=[],this.stats={}},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;rthis.free||e>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,{x:r,y:this.y,w:t,h:e,width:t,height:e}},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t})},{}],201:[function(t,e,r){"use strict";function i(t){return new n(t)}function n(t){this.options=f(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function o(t,e,r,i){return{x:t,y:e,zoom:1/0,id:i,numPoints:r}}function a(t,e){var r=t.geometry.coordinates;return o(l(r[0]),c(r[1]),1,e)}function s(t){return{type:"Feature",properties:u(t),geometry:{type:"Point",coordinates:[h(t.x),p(t.y)]}}}function u(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:r}}function l(t){return t/360+.5}function c(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function h(t){return 360*(t-.5)}function p(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function f(t,e){for(var r in e)t[r]=e[r];return t}function d(t){return t.x}function m(t){return t.y}var y=t("kdbush");e.exports=i,n.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var r="prepare "+t.length+" points";e&&console.time(r),this.points=t;var i=t.map(a);e&&console.timeEnd(r);for(var n=this.options.maxZoom;n>=this.options.minZoom;n--){var o=+Date.now();this.trees[n+1]=y(i,d,m,this.options.nodeSize,Float32Array),i=this._cluster(i,n),e&&console.log("z%d: %d clusters in %dms",n,i.length,+Date.now()-o)}return this.trees[this.options.minZoom]=y(i,d,m,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],i=r.range(l(t[0]),c(t[3]),l(t[2]),c(t[1])),n=[],o=0;o=0;r--)this._down(r)}function n(t,e){return te?1:0}function o(t,e,r){var i=t[e];t[e]=t[r],t[r]=i}e.exports=i,i.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare;t>0;){var i=Math.floor((t-1)/2);if(!(r(e[t],e[i])<0))break;o(e,i,t),t=i}},_down:function(t){for(var e=this.data,r=this.compare,i=this.length;;){var n=2*t+1,a=n+1,s=t;if(n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(e)?r.showHidden=e:e&&i._extend(r,e),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,t,r.depth)}function o(t,e){var r=n.styles[e];return r?"["+n.colors[r][0]+"m"+t+"["+n.colors[r][1]+"m":t}function a(t,e){return t}function s(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}function u(t,e,r){if(t.customInspect&&e&&z(e.inspect)&&e.inspect!==i.inspect&&(!e.constructor||e.constructor.prototype!==e)){var n=e.inspect(r,t);return _(n)||(n=u(t,n,r)),n}var o=l(t,e);if(o)return o;var a=Object.keys(e),m=s(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),S(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(e);if(0===a.length){if(z(e)){var y=e.name?": "+e.name:"";return t.stylize("[Function"+y+"]","special")}if(w(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(T(e))return t.stylize(Date.prototype.toString.call(e),"date");if(S(e))return c(e)}var v="",g=!1,x=["{","}"];if(d(e)&&(g=!0,x=["[","]"]),z(e)){var b=e.name?": "+e.name:"";v=" [Function"+b+"]"}if(w(e)&&(v=" "+RegExp.prototype.toString.call(e)),T(e)&&(v=" "+Date.prototype.toUTCString.call(e)),S(e)&&(v=" "+c(e)),0===a.length&&(!g||0==e.length))return x[0]+v+x[1];if(r<0)return w(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var E;return E=g?h(t,e,r,m,a):a.map(function(i){return p(t,e,r,m,i,g)}),t.seen.pop(),f(E,v,x)}function l(t,e){if(b(e))return t.stylize("undefined","undefined");if(_(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return g(e)?t.stylize(""+e,"number"):m(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,i,n){for(var o=[],a=0,s=e.length;a-1&&(s=o?s.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n"))):s=t.stylize("[Circular]","special")),b(a)){if(o&&n.match(/^\d+$/))return s;a=JSON.stringify(""+n),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function f(t,e,r){var i=0,n=t.reduce(function(t,e){return i++,e.indexOf("\n")>=0&&i++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0);return n>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function d(t){return Array.isArray(t)}function m(t){return"boolean"==typeof t}function y(t){return null===t}function v(t){return null==t}function g(t){return"number"==typeof t}function _(t){return"string"==typeof t}function x(t){return"symbol"==typeof t}function b(t){return void 0===t}function w(t){return E(t)&&"[object RegExp]"===M(t)}function E(t){return"object"==typeof t&&null!==t}function T(t){return E(t)&&"[object Date]"===M(t)}function S(t){return E(t)&&("[object Error]"===M(t)||t instanceof Error)}function z(t){return"function"==typeof t}function A(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function M(t){return Object.prototype.toString.call(t)}function P(t){return t<10?"0"+t.toString(10):t.toString(10)}function L(){var t=new Date,e=[P(t.getHours()),P(t.getMinutes()),P(t.getSeconds())].join(":");return[t.getDate(),D[t.getMonth()],e].join(" ")}function I(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var C=/%[sdj%]/g;i.format=function(t){if(!_(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(i[r++]);case"%d":return Number(i[r++]);case"%j":try{return JSON.stringify(i[r++])}catch(t){return"[Circular]"}default:return t}}),s=i[r];r>3}if(n--,1===i||2===i)o+=t.readSVarint(),a+=t.readSVarint(),1===i&&(e&&s.push(e),e=[]),e.push(new u(o,a));else{if(7!==i)throw new Error("unknown command "+i);e&&e.push(e[0].clone())}}return e&&s.push(e),s},i.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,i=0,n=0,o=0,a=1/0,s=-(1/0),u=1/0,l=-(1/0);t.pos>3}if(i--,1===r||2===r)n+=t.readSVarint(),o+=t.readSVarint(),ns&&(s=n),ol&&(l=o);else if(7!==r)throw new Error("unknown command "+r)}return[a,u,s,l]},i.prototype.toGeoJSON=function(t,e,r){function n(t){for(var e=0;e>3;e=1===i?t.readString():2===i?t.readFloat():3===i?t.readDouble():4===i?t.readVarint64():5===i?t.readVarint():6===i?t.readSVarint():7===i?t.readBoolean():null}return e}var a=t("./vectortilefeature.js");e.exports=i,i.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 a(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":208}],210:[function(t,e,r){function i(t){var e=[];for(var r in t.layers)e.push(o(t.layers[r]));var i=new c;return h.tile.write({layers:e},i),i.finish()}function n(t){var e={};for(var r in t)e[r]=new p(t[r].features),e[r].name=r;return i({layers:e})}function o(t){for(var e={name:t.name||"",version:t.version||1,extent:t.extent||4096,keys:[],values:[],features:[]},r={},i={},n=0;n>31}function u(t){for(var e=[],r=0,i=0,n=t.length,o=0;o= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, Buffer) {var require;var require;(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.mapboxgl = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0){for(var o=0,a=0,u=0;uh.maxh||t>h.maxw||i<=h.maxh&&t<=h.maxw&&(r=h.maxw*h.maxh-t*i,rn.free)){if(i===n.h)return this.allocShelf(f,t,i,s);i>n.h||ic)&&(p=2*Math.max(t,c)),(uu)&&(l=2*Math.max(i,u)),this.resize(p,l),this.packOne(t,i,s)}return null},t.prototype.allocFreebin=function(t,e,i,s){var h=this.freebins.splice(t,1)[0];return h.id=s,h.w=e,h.h=i,h.refcount=0,this.bins[s]=h,this.ref(h),h},t.prototype.allocShelf=function(t,e,i,s){var h=this.shelves[t],n=h.alloc(e,i,s);return this.bins[s]=n,this.ref(n),n},t.prototype.getBin=function(t){return this.bins[t]},t.prototype.ref=function(t){if(1===++t.refcount){var e=t.h;this.stats[e]=(0|this.stats[e])+1}return t.refcount},t.prototype.unref=function(t){return 0===t.refcount?0:(0===--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},t.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var i=0;ithis.free||e>this.h)return null;var h=this.x;return this.x+=t,this.free-=t,new i(s,h,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t}); +},{}],3:[function(require,module,exports){ +function UnitBezier(t,i,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(r-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=e,this.p2y=r}module.exports=UnitBezier,UnitBezier.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},UnitBezier.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},UnitBezier.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},UnitBezier.prototype.solveCurveX=function(t,i){"undefined"==typeof i&&(i=1e-6);var e,r,s,h,n;for(s=t,n=0;n<8;n++){if(h=this.sampleCurveX(s)-t,Math.abs(h)r)return r;for(;eh?e=s:r=s,s=.5*(r-e)+e}return s},UnitBezier.prototype.solve=function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}; +},{}],4:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.WhooTS=e.WhooTS||{})}(this,function(e){function t(e,t,r,n,i,s){s=s||{};var f=e+"?"+["bbox="+o(r,n,i),"format="+(s.format||"image/png"),"service="+(s.service||"WMS"),"version="+(s.version||"1.1.1"),"request="+(s.request||"GetMap"),"srs="+(s.srs||"EPSG:3857"),"width="+(s.width||256),"height="+(s.height||256),"layers="+t].join("&");return f}function o(e,t,o){t=Math.pow(2,o)-t-1;var n=r(256*e,256*t,o),i=r(256*(e+1),256*(t+1),o);return n[0]+","+n[1]+","+i[0]+","+i[1]}function r(e,t,o){var r=2*Math.PI*6378137/256/Math.pow(2,o),n=e*r-2*Math.PI*6378137/2,i=t*r-2*Math.PI*6378137/2;return[n,i]}e.getURL=t,e.getTileBBox=o,e.getMercCoords=r,Object.defineProperty(e,"__esModule",{value:!0})}); +},{}],5:[function(require,module,exports){ +"use strict";function earcut(e,n,r){r=r||2;var t=n&&n.length,i=t?n[0]*r:e.length,x=linkedList(e,0,i,r,!0),a=[];if(!x)return a;var o,l,u,s,v,f,y;if(t&&(x=eliminateHoles(e,n,x,r)),e.length>80*r){o=u=e[0],l=s=e[1];for(var d=r;du&&(u=v),f>s&&(s=f);y=Math.max(u-o,s-l)}return earcutLinked(x,a,r,o,l,y),a}function linkedList(e,n,r,t,i){var x,a;if(i===signedArea(e,n,r,t)>0)for(x=n;x=n;x-=t)a=insertNode(x,e[x],e[x+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(e,n){if(!e)return e;n||(n=e);var r,t=e;do if(r=!1,t.steiner||!equals(t,t.next)&&0!==area(t.prev,t,t.next))t=t.next;else{if(removeNode(t),t=n=t.prev,t===t.next)return null;r=!0}while(r||t!==n);return n}function earcutLinked(e,n,r,t,i,x,a){if(e){!a&&x&&indexCurve(e,t,i,x);for(var o,l,u=e;e.prev!==e.next;)if(o=e.prev,l=e.next,x?isEarHashed(e,t,i,x):isEar(e))n.push(o.i/r),n.push(e.i/r),n.push(l.i/r),removeNode(e),e=l.next,u=l.next;else if(e=l,e===u){a?1===a?(e=cureLocalIntersections(e,n,r),earcutLinked(e,n,r,t,i,x,2)):2===a&&splitEarcut(e,n,r,t,i,x):earcutLinked(filterPoints(e),n,r,t,i,x,1);break}}}function isEar(e){var n=e.prev,r=e,t=e.next;if(area(n,r,t)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(pointInTriangle(n.x,n.y,r.x,r.y,t.x,t.y,i.x,i.y)&&area(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function isEarHashed(e,n,r,t){var i=e.prev,x=e,a=e.next;if(area(i,x,a)>=0)return!1;for(var o=i.xx.x?i.x>a.x?i.x:a.x:x.x>a.x?x.x:a.x,s=i.y>x.y?i.y>a.y?i.y:a.y:x.y>a.y?x.y:a.y,v=zOrder(o,l,n,r,t),f=zOrder(u,s,n,r,t),y=e.nextZ;y&&y.z<=f;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(y=e.prevZ;y&&y.z>=v;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.prevZ}return!0}function cureLocalIntersections(e,n,r){var t=e;do{var i=t.prev,x=t.next.next;!equals(i,x)&&intersects(i,t,t.next,x)&&locallyInside(i,x)&&locallyInside(x,i)&&(n.push(i.i/r),n.push(t.i/r),n.push(x.i/r),removeNode(t),removeNode(t.next),t=e=x),t=t.next}while(t!==e);return t}function splitEarcut(e,n,r,t,i,x){var a=e;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&isValidDiagonal(a,o)){var l=splitPolygon(a,o);return a=filterPoints(a,a.next),l=filterPoints(l,l.next),earcutLinked(a,n,r,t,i,x),void earcutLinked(l,n,r,t,i,x)}o=o.next}a=a.next}while(a!==e)}function eliminateHoles(e,n,r,t){var i,x,a,o,l,u=[];for(i=0,x=n.length;i=t.next.y){var o=t.x+(x-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(o<=i&&o>a){if(a=o,o===i){if(x===t.y)return t;if(x===t.next.y)return t.next}r=t.x=t.x&&t.x>=s&&pointInTriangle(xr.x)&&locallyInside(t,e)&&(r=t,f=l)),t=t.next;return r}function indexCurve(e,n,r,t){var i=e;do null===i.z&&(i.z=zOrder(i.x,i.y,n,r,t)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,sortLinked(i)}function sortLinked(e){var n,r,t,i,x,a,o,l,u=1;do{for(r=e,e=null,x=null,a=0;r;){for(a++,t=r,o=0,n=0;n0||l>0&&t;)0===o?(i=t,t=t.nextZ,l--):0!==l&&t?r.z<=t.z?(i=r,r=r.nextZ,o--):(i=t,t=t.nextZ,l--):(i=r,r=r.nextZ,o--),x?x.nextZ=i:e=i,i.prevZ=x,x=i;r=t}x.nextZ=null,u*=2}while(a>1);return e}function zOrder(e,n,r,t,i){return e=32767*(e-r)/i,n=32767*(n-t)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),n=16711935&(n|n<<8),n=252645135&(n|n<<4),n=858993459&(n|n<<2),n=1431655765&(n|n<<1),e|n<<1}function getLeftmost(e){var n=e,r=e;do n.x=0&&(e-a)*(t-o)-(r-a)*(n-o)>=0&&(r-a)*(x-o)-(i-a)*(t-o)>=0}function isValidDiagonal(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!intersectsPolygon(e,n)&&locallyInside(e,n)&&locallyInside(n,e)&&middleInside(e,n)}function area(e,n,r){return(n.y-e.y)*(r.x-n.x)-(n.x-e.x)*(r.y-n.y)}function equals(e,n){return e.x===n.x&&e.y===n.y}function intersects(e,n,r,t){return!!(equals(e,n)&&equals(r,t)||equals(e,t)&&equals(r,n))||area(e,n,r)>0!=area(e,n,t)>0&&area(r,t,e)>0!=area(r,t,n)>0}function intersectsPolygon(e,n){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==n.i&&r.next.i!==n.i&&intersects(r,r.next,e,n))return!0;r=r.next}while(r!==e);return!1}function locallyInside(e,n){return area(e.prev,e,e.next)<0?area(e,n,e.next)>=0&&area(e,e.prev,n)>=0:area(e,n,e.prev)<0||area(e,e.next,n)<0}function middleInside(e,n){var r=e,t=!1,i=(e.x+n.x)/2,x=(e.y+n.y)/2;do r.y>x!=r.next.y>x&&i<(r.next.x-r.x)*(x-r.y)/(r.next.y-r.y)+r.x&&(t=!t),r=r.next;while(r!==e);return t}function splitPolygon(e,n){var r=new Node(e.i,e.x,e.y),t=new Node(n.i,n.x,n.y),i=e.next,x=n.prev;return e.next=n,n.prev=e,r.next=i,i.prev=r,t.next=r,r.prev=t,x.next=t,t.prev=x,t}function insertNode(e,n,r,t){var i=new Node(e,n,r);return t?(i.next=t.next,i.prev=t,t.next.prev=i,t.next=i):(i.prev=i,i.next=i),i}function removeNode(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Node(e,n,r){this.i=e,this.x=n,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(e,n,r,t){for(var i=0,x=n,a=r-t;x0&&(t+=e[i-1].length,r.holes.push(t))}return r}; +},{}],6:[function(require,module,exports){ +function geometry(r){if("Polygon"===r.type)return polygonArea(r.coordinates);if("MultiPolygon"===r.type){for(var e=0,n=0;n0){e+=Math.abs(ringArea(r[0]));for(var n=1;n2){for(var n,t,o=0;o=0}var geojsonArea=require("geojson-area");module.exports=rewind; +},{"geojson-area":6}],8:[function(require,module,exports){ +"use strict";function clip(e,r,t,n,u,i,l,s){if(t/=r,n/=r,l>=t&&s<=n)return e;if(l>n||s=t&&c<=n)h.push(o);else if(!(a>n||c=r&&s<=t&&u.push(l)}return u}function clipGeometry(e,r,t,n,u,i){for(var l=[],s=0;st?(d.push(u(h,f,r),u(h,f,t)),i||(d=newSlice(l,d,v,m,w))):o>=r&&d.push(u(h,f,r)):c>t?ot&&(d.push(u(h,f,t)),i||(d=newSlice(l,d,v,m,w))));h=g[S-1],c=h[n],c>=r&&c<=t&&d.push(h),a=d[d.length-1],i&&a&&(d[0][0]!==a[0]||d[0][1]!==a[1])&&d.push(d[0]),newSlice(l,d,v,m,w)}return l}function newSlice(e,r,t,n,u){return r.length&&(r.area=t,r.dist=n,void 0!==u&&(r.outer=u),e.push(r)),[]}module.exports=clip;var createFeature=require("./feature"); +},{"./feature":10}],9:[function(require,module,exports){ +"use strict";function convert(e,t){var r=[];if("FeatureCollection"===e.type)for(var o=0;o1?1:o,[r,o,0]}function calcSize(e){for(var t,r,o=0,a=0,i=0;i1)return!1;var r=n.geometry[0].length;if(5!==r)return!1;for(var s=0;s1&&console.time("creation"),m=this.tiles[d]=createTile(e,p,i,o,f,t===a.maxZoom),this.tileCoords.push({z:t,x:i,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,i,o,m.numFeatures,m.numPoints,m.numSimplified),console.timeEnd("creation"));var h="z"+t;this.stats[h]=(this.stats[h]||0)+1,this.total++}if(m.source=e,n){if(t===a.maxZoom||t===n)continue;var x=1<1&&console.time("clipping");var g,v,M,T,b,y,S=.5*a.buffer/a.extent,Z=.5-S,q=.5+S,w=1+S;g=v=M=T=null,b=clip(e,p,i-S,i+q,0,intersectX,m.min[0],m.max[0]),y=clip(e,p,i+Z,i+w,0,intersectX,m.min[0],m.max[0]),b&&(g=clip(b,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),v=clip(b,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),y&&(M=clip(y,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),T=clip(y,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),u>1&&console.timeEnd("clipping"),e.length&&(l.push(g||[],t+1,2*i,2*o),l.push(v||[],t+1,2*i,2*o+1),l.push(M||[],t+1,2*i+1,2*o),l.push(T||[],t+1,2*i+1,2*o+1))}else n&&(c=t)}return c},GeoJSONVT.prototype.getTile=function(e,t,i){var o=this.options,n=o.extent,r=o.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,i);for(var a,u=e,c=t,p=i;!a&&u>0;)u--,c=Math.floor(c/2),p=Math.floor(p/2),a=this.tiles[toID(u,c,p)];if(!a||!a.source)return null;if(r>1&&console.log("found parent tile z%d-%d-%d",u,c,p),isClippedSquare(a,n,o.buffer))return transform.tile(a,n);r>1&&console.time("drilling down");var d=this.splitTile(a.source,u,c,p,e,t,i);if(r>1&&console.timeEnd("drilling down"),null!==d){var m=1<p&&(s=e,p=r);p>o?(t[s][2]=p,g.push(u),g.push(s),u=s):(n=g.pop(),u=g.pop())}}function getSqSegDist(t,i,e){var p=i[0],r=i[1],s=e[0],o=e[1],f=t[0],u=t[1],n=s-p,g=o-r;if(0!==n||0!==g){var l=((f-p)*n+(u-r)*g)/(n*n+g*g);l>1?(p=s,r=o):l>0&&(p+=n*l,r+=g*l)}return n=f-p,g=u-r,n*n+g*g}module.exports=simplify; +},{}],13:[function(require,module,exports){ +"use strict";function createTile(e,n,r,i,t,u){for(var a={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z2:n,transformed:!1,min:[2,1],max:[-1,0]},m=0;ma.max[0]&&(a.max[0]=l[0]),l[1]>a.max[1]&&(a.max[1]=l[1])}return a}function addFeature(e,n,r,i){var t,u,a,m,s=n.geometry,l=n.type,o=[],f=r*r;if(1===l)for(t=0;tf)&&(d.push(m),e.numSimplified++),e.numPoints++;3===l&&rewind(d,a.outer),o.push(d)}else e.numPoints+=a.length;if(o.length){var g={geometry:o,type:l,tags:n.tags||null};null!==n.id&&(g.id=n.id),e.features.push(g)}}function rewind(e,n){var r=signedArea(e);r<0===n&&e.reverse()}function signedArea(e){for(var n,r,i=0,t=0,u=e.length,a=u-1;t=a[u+0]&&s>=a[u+1]?(n[f]=!0,h.push(l[f])):n[f]=!1}}},GridIndex.prototype._forEachCell=function(t,r,e,s,i,h,n){for(var o=this._convertToCellCoord(t),l=this._convertToCellCoord(r),a=this._convertToCellCoord(e),d=this._convertToCellCoord(s),f=o;f<=a;f++)for(var u=l;u<=d;u++){var y=this.d*u+f;if(i.call(this,t,r,e,s,y,h,n))return}},GridIndex.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},GridIndex.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,r=NUM_PARAMS+this.cells.length+1+1,e=0,s=0;s>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:(s?-1:1)*(1/0);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l}; +},{}],18:[function(require,module,exports){ +"use strict";function kdbush(t,i,e,s,n){return new KDBush(t,i,e,s,n)}function KDBush(t,i,e,s,n){i=i||defaultGetX,e=e||defaultGetY,n=n||Array,this.nodeSize=s||64,this.points=t,this.ids=new n(t.length),this.coords=new n(2*t.length);for(var r=0;r=s&&a<=h&&t>=u&&t<=e&&f.push(p[i]);else{var c=Math.floor((g+v)/2);a=r[2*c],t=r[2*c+1],a>=s&&a<=h&&t>=u&&t<=e&&f.push(p[c]);var d=(l+1)%2;(0===l?s<=a:u<=t)&&(n.push(g),n.push(c-1),n.push(d)),(0===l?h>=a:e>=t)&&(n.push(c+1),n.push(v),n.push(d))}}return f}module.exports=range; +},{}],20:[function(require,module,exports){ +"use strict";function sortKD(t,a,o,s,r,e){if(!(r-s<=o)){var f=Math.floor((s+r)/2);select(t,a,f,s,r,e%2),sortKD(t,a,o,s,f-1,e+1),sortKD(t,a,o,f+1,r,e+1)}}function select(t,a,o,s,r,e){for(;r>s;){if(r-s>600){var f=r-s+1,p=o-s+1,w=Math.log(f),m=.5*Math.exp(2*w/3),n=.5*Math.sqrt(w*m*(f-m)/f)*(p-f/2<0?-1:1),c=Math.max(s,Math.floor(o-p*m/f+n)),h=Math.min(r,Math.floor(o+(f-p)*m/f+n));select(t,a,o,c,h,e)}var i=a[2*o+e],l=s,M=r;for(swapItem(t,a,s,o),a[2*r+e]>i&&swapItem(t,a,s,r);li;)M--}a[2*s+e]===i?swapItem(t,a,s,M):(M++,swapItem(t,a,M,r)),M<=o&&(s=M+1),o<=M&&(r=M-1)}}function swapItem(t,a,o,s){swap(t,o,s),swap(a,2*o,2*s),swap(a,2*o+1,2*s+1)}function swap(t,a,o){var s=t[a];t[a]=t[o],t[o]=s}module.exports=sortKD; +},{}],21:[function(require,module,exports){ +"use strict";function within(s,p,r,t,u,h){for(var i=[0,s.length-1,0],o=[],n=u*u;i.length;){var e=i.pop(),a=i.pop(),f=i.pop();if(a-f<=h)for(var v=f;v<=a;v++)sqDist(p[2*v],p[2*v+1],r,t)<=n&&o.push(s[v]);else{var l=Math.floor((f+a)/2),c=p[2*l],q=p[2*l+1];sqDist(c,q,r,t)<=n&&o.push(s[l]);var D=(e+1)%2;(0===e?r-u<=c:t-u<=q)&&(i.push(f),i.push(l-1),i.push(D)),(0===e?r+u>=c:t+u>=q)&&(i.push(l+1),i.push(a),i.push(D))}}return o}function sqDist(s,p,r,t){var u=s-r,h=p-t;return u*u+h*h}module.exports=within; +},{}],22:[function(require,module,exports){ +"use strict";function isSupported(e){return!!(isBrowser()&&isArraySupported()&&isFunctionSupported()&&isObjectSupported()&&isJSONSupported()&&isWorkerSupported()&&isUint8ClampedArraySupported()&&isWebGLSupportedCached(e&&e.failIfMajorPerformanceCaveat))}function isBrowser(){return"undefined"!=typeof window&&"undefined"!=typeof document}function isArraySupported(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function isFunctionSupported(){return Function.prototype&&Function.prototype.bind}function isObjectSupported(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function isJSONSupported(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function isWorkerSupported(){return"Worker"in window}function isUint8ClampedArraySupported(){return"Uint8ClampedArray"in window}function isWebGLSupportedCached(e){return void 0===isWebGLSupportedCache[e]&&(isWebGLSupportedCache[e]=isWebGLSupported(e)),isWebGLSupportedCache[e]}function isWebGLSupported(e){var t=document.createElement("canvas"),r=Object.create(isSupported.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=e,t.probablySupportsContext?t.probablySupportsContext("webgl",r)||t.probablySupportsContext("experimental-webgl",r):t.supportsContext?t.supportsContext("webgl",r)||t.supportsContext("experimental-webgl",r):t.getContext("webgl",r)||t.getContext("experimental-webgl",r)}"undefined"!=typeof module&&module.exports?module.exports=isSupported:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=isSupported);var isWebGLSupportedCache={};isSupported.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}; +},{}],23:[function(require,module,exports){ +(function (process){ +function normalizeArray(r,t){for(var e=0,n=r.length-1;n>=0;n--){var s=r[n];"."===s?r.splice(n,1):".."===s?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e--;e)r.unshift("..");return r}function filter(r,t){if(r.filter)return r.filter(t);for(var e=[],n=0;n=-1&&!t;e--){var n=e>=0?arguments[e]:process.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(r=n+"/"+r,t="/"===n.charAt(0))}return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),(t?"/":"")+r||"."},exports.normalize=function(r){var t=exports.isAbsolute(r),e="/"===substr(r,-1);return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),r||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},exports.isAbsolute=function(r){return"/"===r.charAt(0)},exports.join=function(){var r=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(r,function(r,t){if("string"!=typeof r)throw new TypeError("Arguments to path.join must be strings");return r}).join("/"))},exports.relative=function(r,t){function e(r){for(var t=0;t=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=exports.resolve(r).substr(1),t=exports.resolve(t).substr(1);for(var n=e(r.split("/")),s=e(t.split("/")),i=Math.min(n.length,s.length),o=i,u=0;u55295&&e<57344){if(!r){e>56319||o+1===n?i.push(239,191,189):r=e;continue}if(e<56320){i.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(i.push(239,191,189),r=null);e<128?i.push(e):e<2048?i.push(e>>6|192,63&e|128):e<65536?i.push(e>>12|224,e>>6&63|128,63&e|128):i.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return i}module.exports=Buffer;var ieee754=require("ieee754"),BufferMethods,lastStr,lastStrEncoded;BufferMethods={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return ieee754.read(this,t,!0,23,4)},readDoubleLE:function(t){return ieee754.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return ieee754.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return ieee754.write(this,t,e,!0,52,8)},toString:function(t,e,r){var n="",i="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(i.pos>=e)throw new Error("Given varint doesn't fit into 10 bytes");var r=255&t;i.buf[i.pos++]=r|(t>=128?128:0),t/=128}}function reallocForRawMessage(t,i,e){var r=i<=16383?1:i<=2097151?2:i<=268435455?3:Math.ceil(Math.log(i)/(7*Math.LN2));e.realloc(r);for(var s=e.pos-1;s>=t;s--)e.buf[s+r]=e.buf[s]}function writePackedVarint(t,i){for(var e=0;e>3,n=this.pos;t(s,i,this),this.pos===n&&this.skip(r)}return i},readMessage:function(t,i){return this.readFields(t,i,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,i,e=this.buf;return i=e[this.pos++],t=127&i,i<128?t:(i=e[this.pos++],t|=(127&i)<<7,i<128?t:(i=e[this.pos++],t|=(127&i)<<14,i<128?t:(i=e[this.pos++],t|=(127&i)<<21,i<128?t:readVarintRemainder(t,this))))},readVarint64:function(){var t=this.pos,i=this.readVarint();if(i127;);else if(i===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(i===Pbf.Fixed32)this.pos+=4;else{if(i!==Pbf.Fixed64)throw new Error("Unimplemented type: "+i);this.pos+=8}},writeTag:function(t,i){this.writeVarint(t<<3|i)},realloc:function(t){for(var i=this.length||16;i268435455?void writeBigVarint(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(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);var i=Buffer.byteLength(t);this.writeVarint(i),this.realloc(i),this.buf.write(t,this.pos),this.pos+=i},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var i=t.length;this.writeVarint(i),this.realloc(i);for(var e=0;e=128&&reallocForRawMessage(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,i,e){this.writeTag(t,Pbf.Bytes),this.writeRawMessage(i,e)},writePackedVarint:function(t,i){this.writeMessage(t,writePackedVarint,i)},writePackedSVarint:function(t,i){this.writeMessage(t,writePackedSVarint,i)},writePackedBoolean:function(t,i){this.writeMessage(t,writePackedBoolean,i)},writePackedFloat:function(t,i){this.writeMessage(t,writePackedFloat,i)},writePackedDouble:function(t,i){this.writeMessage(t,writePackedDouble,i)},writePackedFixed32:function(t,i){this.writeMessage(t,writePackedFixed32,i)},writePackedSFixed32:function(t,i){this.writeMessage(t,writePackedSFixed32,i)},writePackedFixed64:function(t,i){this.writeMessage(t,writePackedFixed64,i)},writePackedSFixed64:function(t,i){this.writeMessage(t,writePackedSFixed64,i)},writeBytesField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeBytes(i)},writeFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFixed32(i)},writeSFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeSFixed32(i)},writeFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeFixed64(i)},writeSFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeSFixed64(i)},writeVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeVarint(i)},writeSVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeSVarint(i)},writeStringField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeString(i)},writeFloatField:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFloat(i)},writeDoubleField:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeDouble(i)},writeBooleanField:function(t,i){this.writeVarintField(t,Boolean(i))}}; +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./buffer":24}],26:[function(require,module,exports){ +"use strict";function Point(t,n){this.x=t,this.y=n}module.exports=Point,Point.prototype={clone:function(){return new Point(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(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)},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 n=t.x-this.x,i=t.y-this.y;return n*n+i*i},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,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},_matMult:function(t){var n=t[0]*this.x+t[1]*this.y,i=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_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 n=Math.cos(t),i=Math.sin(t),s=n*this.x-i*this.y,r=i*this.x+n*this.y;return this.x=s,this.y=r,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Point.convert=function(t){return t instanceof Point?t:Array.isArray(t)?new Point(t[0],t[1]):t}; +},{}],27:[function(require,module,exports){ +function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex1)for(var u=1;ur;){if(o-r>600){var f=o-r+1,e=t-r+1,l=Math.log(f),s=.5*Math.exp(2*l/3),i=.5*Math.sqrt(l*s*(f-s)/f)*(e-f/2<0?-1:1),n=Math.max(r,Math.floor(t-e*s/f+i)),h=Math.min(o,Math.floor(t+(f-e)*s/f+i));partialSort(a,t,n,h,p)}var u=a[t],M=r,w=o;for(swap(a,r,t),p(a[o],u)>0&&swap(a,r,o);M0;)w--}0===p(a[r],u)?swap(a,r,w):(w++,swap(a,w,o)),w<=t&&(r=w+1),t<=w&&(o=w-1)}}function swap(a,t,r){var o=a[t];a[t]=a[r],a[r]=o}function defaultCompare(a,t){return at?1:0}module.exports=partialSort; +},{}],29:[function(require,module,exports){ +"use strict";function supercluster(t){return new SuperCluster(t)}function SuperCluster(t){this.options=extend(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function createCluster(t,e,o,n){return{x:t,y:e,zoom:1/0,id:n,numPoints:o}}function createPointCluster(t,e){var o=t.geometry.coordinates;return createCluster(lngX(o[0]),latY(o[1]),1,e)}function getClusterJSON(t){return{type:"Feature",properties:getClusterProperties(t),geometry:{type:"Point",coordinates:[xLng(t.x),yLat(t.y)]}}}function getClusterProperties(t){var e=t.numPoints,o=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:o}}function lngX(t){return t/360+.5}function latY(t){var e=Math.sin(t*Math.PI/180),o=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return o<0?0:o>1?1:o}function xLng(t){return 360*(t-.5)}function yLat(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function extend(t,e){for(var o in e)t[o]=e[o];return t}function getX(t){return t.x}function getY(t){return t.y}var kdbush=require("kdbush");module.exports=supercluster,SuperCluster.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var o="prepare "+t.length+" points";e&&console.time(o),this.points=t;var n=t.map(createPointCluster);e&&console.timeEnd(o);for(var r=this.options.maxZoom;r>=this.options.minZoom;r--){var i=+Date.now();this.trees[r+1]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),n=this._cluster(n,r),e&&console.log("z%d: %d clusters in %dms",r,n.length,+Date.now()-i)}return this.trees[this.options.minZoom]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var o=this.trees[this._limitZoom(e)],n=o.range(lngX(t[0]),latY(t[3]),lngX(t[2]),latY(t[1])),r=[],i=0;i=0;a--)this._down(a)}function defaultCompare(t,i){return ti?1:0}function swap(t,i,a){var n=t[i];t[i]=t[a],t[a]=n}module.exports=TinyQueue,TinyQueue.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var i=this.data,a=this.compare;t>0;){var n=Math.floor((t-1)/2);if(!(a(i[t],i[n])<0))break;swap(i,n,t),t=n}},_down:function(t){for(var i=this.data,a=this.compare,n=this.length;;){var e=2*t+1,h=e+1,s=t;if(e=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),isBoolean(r)?t.showHidden=r:r&&exports._extend(t,r),isUndefined(t.showHidden)&&(t.showHidden=!1),isUndefined(t.depth)&&(t.depth=2),isUndefined(t.colors)&&(t.colors=!1),isUndefined(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=stylizeWithColor),formatValue(t,e,t.depth)}function stylizeWithColor(e,r){var t=inspect.styles[r];return t?"["+inspect.colors[t][0]+"m"+e+"["+inspect.colors[t][1]+"m":e}function stylizeNoColor(e,r){return e}function arrayToHash(e){var r={};return e.forEach(function(e,t){r[e]=!0}),r}function formatValue(e,r,t){if(e.customInspect&&r&&isFunction(r.inspect)&&r.inspect!==exports.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(t,e);return isString(n)||(n=formatValue(e,n,t)),n}var i=formatPrimitive(e,r);if(i)return i;var o=Object.keys(r),s=arrayToHash(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),isError(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return formatError(r);if(0===o.length){if(isFunction(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(isRegExp(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(isDate(r))return e.stylize(Date.prototype.toString.call(r),"date");if(isError(r))return formatError(r)}var c="",a=!1,l=["{","}"];if(isArray(r)&&(a=!0,l=["[","]"]),isFunction(r)){var p=r.name?": "+r.name:"";c=" [Function"+p+"]"}if(isRegExp(r)&&(c=" "+RegExp.prototype.toString.call(r)),isDate(r)&&(c=" "+Date.prototype.toUTCString.call(r)),isError(r)&&(c=" "+formatError(r)),0===o.length&&(!a||0==r.length))return l[0]+c+l[1];if(t<0)return isRegExp(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var f;return f=a?formatArray(e,r,t,s,o):o.map(function(n){return formatProperty(e,r,t,s,n,a)}),e.seen.pop(),reduceToSingleString(f,c,l)}function formatPrimitive(e,r){if(isUndefined(r))return e.stylize("undefined","undefined");if(isString(r)){var t="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(t,"string")}return isNumber(r)?e.stylize(""+r,"number"):isBoolean(r)?e.stylize(""+r,"boolean"):isNull(r)?e.stylize("null","null"):void 0}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatArray(e,r,t,n,i){for(var o=[],s=0,u=r.length;s-1&&(u=o?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),isUndefined(s)){if(o&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function reduceToSingleString(e,r,t){var n=0,i=e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?t[0]+(""===r?"":r+"\n ")+" "+e.join(",\n ")+" "+t[1]:t[0]+r+" "+e.join(", ")+" "+t[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return"boolean"==typeof e}function isNull(e){return null===e}function isNullOrUndefined(e){return null==e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isSymbol(e){return"symbol"==typeof e}function isUndefined(e){return void 0===e}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(e){return"function"==typeof e}function isPrimitive(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function objectToString(e){return Object.prototype.toString.call(e)}function pad(e){return e<10?"0"+e.toString(10):e.toString(10)}function timestamp(){var e=new Date,r=[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds())].join(":");return[e.getDate(),months[e.getMonth()],r].join(" ")}function hasOwnProperty(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var formatRegExp=/%[sdj%]/g;exports.format=function(e){if(!isString(e)){for(var r=[],t=0;t=i)return e;switch(e){case"%s":return String(n[t++]);case"%d":return Number(n[t++]);case"%j":try{return JSON.stringify(n[t++])}catch(e){return"[Circular]"}default:return e}}),s=n[t];t>3}if(a--,1===i||2===i)o+=e.readSVarint(),n+=e.readSVarint(),1===i&&(t&&s.push(t),t=[]),t.push(new Point(o,n));else{if(7!==i)throw new Error("unknown command "+i);t&&t.push(t[0].clone())}}return t&&s.push(t),s},VectorTileFeature.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,a=0,o=0,n=1/0,s=-(1/0),p=1/0,h=-(1/0);e.pos>3}if(i--,1===r||2===r)a+=e.readSVarint(),o+=e.readSVarint(),as&&(s=a),oh&&(h=o);else if(7!==r)throw new Error("unknown command "+r)}return[n,p,s,h]},VectorTileFeature.prototype.toGeoJSON=function(e,t,r){function i(e){for(var t=0;t>3;t=1===a?e.readString():2===a?e.readFloat():3===a?e.readDouble():4===a?e.readVarint64():5===a?e.readVarint():6===a?e.readSVarint():7===a?e.readBoolean():null}return t}var VectorTileFeature=require("./vectortilefeature.js");module.exports=VectorTileLayer,VectorTileLayer.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature(this._pbf,t,this.extent,this._keys,this._values)}; +},{"./vectortilefeature.js":36}],38:[function(require,module,exports){ +function fromVectorTileJs(e){var r=[];for(var o in e.layers)r.push(prepareLayer(e.layers[o]));var t=new Pbf;return vtpb.tile.write({layers:r},t),t.finish()}function fromGeojsonVt(e){var r={};for(var o in e)r[o]=new GeoJSONWrapper(e[o].features),r[o].name=o;return fromVectorTileJs({layers:r})}function prepareLayer(e){for(var r={name:e.name||"",version:e.version||1,extent:e.extent||4096,keys:[],values:[],features:[]},o={},t={},n=0;n>31}function encodeGeometry(e){for(var r=[],o=0,t=0,n=e.length,a=0;aArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},ArrayGroup.prototype.prepareSegment2=function(r){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+r>ArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},ArrayGroup.prototype.populatePaintArrays=function(r){var e=this;for(var t in e.layerData){var a=e.layerData[t];0!==a.paintVertexArray.bytesPerElement&&a.programConfiguration.populatePaintArray(a.layer,a.paintVertexArray,a.paintPropertyStatistics,e.layoutVertexArray.length,e.globalProperties,r)}},ArrayGroup.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ArrayGroup.prototype.serialize=function(r){return{layoutVertexArray:this.layoutVertexArray.serialize(r),elementArray:this.elementArray&&this.elementArray.serialize(r),elementArray2:this.elementArray2&&this.elementArray2.serialize(r),paintVertexArrays:serializePaintVertexArrays(this.layerData,r),segments:this.segments,segments2:this.segments2}},ArrayGroup.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,module.exports=ArrayGroup; +},{"./program_configuration":58}],45:[function(require,module,exports){ +"use strict";var ArrayGroup=require("./array_group"),BufferGroup=require("./buffer_group"),util=require("../util/util"),Bucket=function(r,t){this.zoom=r.zoom,this.overscaling=r.overscaling,this.layers=r.layers,this.index=r.index,r.arrays?this.buffers=new BufferGroup(t,r.layers,r.zoom,r.arrays):this.arrays=new ArrayGroup(t,r.layers,r.zoom)};Bucket.prototype.populate=function(r,t){for(var e=this,i=0,a=r;i=EXTENT||o<0||o>=EXTENT)){var n=r.prepareSegment(4),u=n.vertexLength;addCircleVertex(r.layoutVertexArray,y,o,-1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,1),addCircleVertex(r.layoutVertexArray,y,o,-1,1),r.elementArray.emplaceBack(u,u+1,u+2),r.elementArray.emplaceBack(u,u+3,u+2),n.vertexLength+=4,n.primitiveLength+=2}}r.populatePaintArrays(e.properties)},r}(Bucket);CircleBucket.programInterface=circleInterface,module.exports=CircleBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60}],47:[function(require,module,exports){ +"use strict";var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:createElementArrayType(3),elementArrayType2:createElementArrayType(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},FillBucket=function(e){function r(r){e.call(this,r,fillInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);tEXTENT)||e.y===r.y&&(e.y<0||e.y>EXTENT)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillExtrusionInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:createElementArrayType(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},FACTOR=Math.pow(2,13),FillExtrusionBucket=function(e){function r(r){e.call(this,r,fillExtrusionInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);t=1){var A=d[h-1];if(!isBoundaryEdge(g,A)){var _=g.sub(A)._perp()._unit();addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,1,m),m+=A.dist(g),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,1,m);var v=p.vertexLength;r.elementArray.emplaceBack(v,v+1,v+2),r.elementArray.emplaceBack(v+1,v+2,v+3),p.vertexLength+=4,p.primitiveLength+=2}}u.push(g.x),u.push(g.y)}}}for(var E=earcut(u,c),T=0;T>6)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTRUDE_SCALE=63,COS_HALF_SHARP_CORNER=Math.cos(37.5*(Math.PI/180)),SHARP_CORNER_OFFSET=15,LINE_DISTANCE_BUFFER_BITS=15,LINE_DISTANCE_SCALE=.5,MAX_LINE_DISTANCE=Math.pow(2,LINE_DISTANCE_BUFFER_BITS-1)/LINE_DISTANCE_SCALE,lineInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:createElementArrayType()},LineBucket=function(e){function t(t){e.call(this,t,lineInterface)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.addFeature=function(e){for(var t=this,r=this.layers[0].layout,i=r["line-join"],a=r["line-cap"],n=r["line-miter-limit"],d=r["line-round-limit"],s=0,u=loadGeometry(e,LINE_DISTANCE_BUFFER_BITS);s=2&&e[l-1].equals(e[l-2]);)l--;if(!(l<(u?3:2))){"bevel"===r&&(a=1.05);var o=SHARP_CORNER_OFFSET*(EXTENT/(512*this.overscaling)),p=e[0],c=this.arrays,_=c.prepareSegment(10*l);this.distance=0;var y,h,m,E,x,C,v,A=i,f=u?"butt":i,L=!0;this.e1=this.e2=this.e3=-1,u&&(y=e[l-2],x=p.sub(y)._unit()._perp());for(var V=0;V0){var b=y.dist(h);if(b>2*o){var R=y.sub(y.sub(h)._mult(o/b)._round());d.distance+=R.dist(h),d.addCurrentVertex(R,d.distance,E.mult(1),0,0,!1,_),h=R}}var g=h&&m,F=g?r:m?A:f;if(g&&"round"===F&&(Ia&&(F="bevel"),"bevel"===F&&(I>2&&(F="flipbevel"),I100)S=x.clone().mult(-1);else{var B=E.x*x.y-E.y*x.x>0?-1:1,k=I*E.add(x).mag()/E.sub(x).mag();S._perp()._mult(k*B)}d.addCurrentVertex(y,d.distance,S,0,0,!1,_),d.addCurrentVertex(y,d.distance,S.mult(-1),0,0,!1,_)}else if("bevel"===F||"fakeround"===F){var D=E.x*x.y-E.y*x.x>0,P=-Math.sqrt(I*I-1);if(D?(v=0,C=P):(C=0,v=P),L||d.addCurrentVertex(y,d.distance,E,C,v,!1,_),"fakeround"===F){for(var U=Math.floor(8*(.5-(T-.5))),q=void 0,M=0;M=0;O--)q=E.mult((O+1)/(U+1))._add(x)._unit(),d.addPieSliceVertex(y,d.distance,q,D,_)}m&&d.addCurrentVertex(y,d.distance,x,-C,-v,!1,_)}else"butt"===F?(L||d.addCurrentVertex(y,d.distance,E,0,0,!1,_),m&&d.addCurrentVertex(y,d.distance,x,0,0,!1,_)):"square"===F?(L||(d.addCurrentVertex(y,d.distance,E,1,1,!1,_),d.e1=d.e2=-1),m&&d.addCurrentVertex(y,d.distance,x,-1,-1,!1,_)):"round"===F&&(L||(d.addCurrentVertex(y,d.distance,E,0,0,!1,_),d.addCurrentVertex(y,d.distance,E,1,1,!0,_),d.e1=d.e2=-1),m&&(d.addCurrentVertex(y,d.distance,x,-1,-1,!0,_),d.addCurrentVertex(y,d.distance,x,0,0,!1,_)));if(N&&V2*o){var H=y.add(m.sub(y)._mult(o/X)._round());d.distance+=H.dist(y),d.addCurrentVertex(H,d.distance,x.mult(1),0,0,!1,_),y=H}}L=!1}c.populatePaintArrays(s)}},t.prototype.addCurrentVertex=function(e,t,r,i,a,n,d){var s,u=n?1:0,l=this.arrays,o=l.layoutVertexArray,p=l.elementArray;s=r.clone(),i&&s._sub(r.perp()._mult(i)),addLineVertex(o,e,s,u,0,i,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,s=r.mult(-1),a&&s._sub(r.perp()._mult(a)),addLineVertex(o,e,s,u,1,-a,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,t>MAX_LINE_DISTANCE/2&&(this.distance=0,this.addCurrentVertex(e,this.distance,r,i,a,n,d))},t.prototype.addPieSliceVertex=function(e,t,r,i,a){var n=i?1:0;r=r.mult(i?-1:1);var d=this.arrays,s=d.layoutVertexArray,u=d.elementArray;addLineVertex(s,e,r,0,n,0,t),this.e3=a.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),a.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},t}(Bucket);LineBucket.programInterface=lineInterface,module.exports=LineBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"vector-tile":34}],50:[function(require,module,exports){ +"use strict";function addVertex(e,t,o,r,a,i,n,l,s,c,y){e.emplaceBack(t,o,Math.round(64*r),Math.round(64*a),i/4,n/4,10*(c||0),y,10*(l||0),10*Math.min(s||25,25))}function addCollisionBoxVertex(e,t,o,r,a){return e.emplaceBack(t.x,t.y,Math.round(o.x),Math.round(o.y),10*r,10*a)}var Point=require("point-geometry"),ArrayGroup=require("../array_group"),BufferGroup=require("../buffer_group"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),EXTENT=require("../extent"),Anchor=require("../../symbol/anchor"),getAnchors=require("../../symbol/get_anchors"),resolveTokens=require("../../util/token"),Quads=require("../../symbol/quads"),Shaping=require("../../symbol/shaping"),resolveText=require("../../symbol/resolve_text"),mergeLines=require("../../symbol/mergelines"),clipLine=require("../../symbol/clip_line"),util=require("../../util/util"),scriptDetection=require("../../util/script_detection"),loadGeometry=require("../load_geometry"),CollisionFeature=require("../../symbol/collision_feature"),findPoleOfInaccessibility=require("../../util/find_pole_of_inaccessibility"),classifyRings=require("../../util/classify_rings"),VectorTileFeature=require("vector-tile").VectorTileFeature,rtlTextPlugin=require("../../source/rtl_text_plugin"),shapeText=Shaping.shapeText,shapeIcon=Shaping.shapeIcon,WritingMode=Shaping.WritingMode,getGlyphQuads=Quads.getGlyphQuads,getIconQuads=Quads.getIconQuads,elementArrayType=createElementArrayType(),layoutVertexArrayType=createVertexArrayType([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),symbolInterfaces={glyph:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"text-color",type:"Uint8"},{name:"a_halo_color",property:"text-halo-color",type:"Uint8"},{name:"a_halo_width",property:"text-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"text-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"text-opacity",type:"Uint8",multiplier:255}]},icon:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"icon-color",type:"Uint8"},{name:"a_halo_color",property:"icon-halo-color",type:"Uint8"},{name:"a_halo_width",property:"icon-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"icon-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"icon-opacity",type:"Uint8",multiplier:255}]},collisionBox:{layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:createElementArrayType(2)}},SymbolBucket=function(e){var t=this;if(this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.index=e.index,this.sdfIcons=e.sdfIcons,this.iconsNeedLinear=e.iconsNeedLinear,this.adjustedTextSize=e.adjustedTextSize,this.adjustedIconSize=e.adjustedIconSize,this.fontstack=e.fontstack,e.arrays){this.buffers={};for(var o in e.arrays)e.arrays[o]&&(t.buffers[o]=new BufferGroup(symbolInterfaces[o],e.layers,e.zoom,e.arrays[o]))}};SymbolBucket.prototype.populate=function(e,t){var o=this,r=this.layers[0],a=r.layout,i=a["text-font"],n=a["icon-image"],l=i&&(!r.isLayoutValueFeatureConstant("text-field")||a["text-field"]),s=n;if(this.features=[],l||s){for(var c=t.iconDependencies,y=t.glyphDependencies,p=y[i]=y[i]||{},x=0;xEXTENT||i.y<0||i.y>EXTENT);if(!x||n){var l=n||f;r.addSymbolInstance(i,a,t,o,r.layers[0],l,r.collisionBoxArray,e.index,e.sourceLayerIndex,r.index,s,h,m,y,u,g,{zoom:r.zoom},e.properties)}};if("line"===b)for(var S=0,T=clipLine(e.geometry,0,0,EXTENT,EXTENT);S=0;i--)if(o.dist(a[i])7*Math.PI/4)continue}else if(r&&a&&d<=3*Math.PI/4||d>5*Math.PI/4)continue}else if(r&&a&&(d<=Math.PI/2||d>3*Math.PI/2))continue;var m=u.tl,g=u.tr,f=u.bl,b=u.br,v=u.tex,I=u.anchorPoint,S=Math.max(y+Math.log(u.minScale)/Math.LN2,p),T=Math.min(y+Math.log(u.maxScale)/Math.LN2,25);if(!(T<=S)){S===p&&(S=0);var M=Math.round(u.glyphAngle/(2*Math.PI)*256),B=e.prepareSegment(4),A=B.vertexLength;addVertex(c,I.x,I.y,m.x,m.y,v.x,v.y,S,T,p,M),addVertex(c,I.x,I.y,g.x,g.y,v.x+v.w,v.y,S,T,p,M),addVertex(c,I.x,I.y,f.x,f.y,v.x,v.y+v.h,S,T,p,M),addVertex(c,I.x,I.y,b.x,b.y,v.x+v.w,v.y+v.h,S,T,p,M),s.emplaceBack(A,A+1,A+2),s.emplaceBack(A+1,A+2,A+3),B.vertexLength+=4,B.primitiveLength+=2}}e.populatePaintArrays(n)},SymbolBucket.prototype.addToDebugBuffers=function(e){for(var t=this,o=this.arrays.collisionBox,r=o.layoutVertexArray,a=o.elementArray,i=-e.angle,n=e.yStretch,l=0,s=t.symbolInstances;lSymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),z>SymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var _=(o[WritingMode.vertical]?WritingMode.vertical:0)|(o[WritingMode.horizontal]?WritingMode.horizontal:0);this.symbolInstances.push({textBoxStartIndex:M,textBoxEndIndex:B,iconBoxStartIndex:A,iconBoxEndIndex:z,glyphQuads:I,iconQuads:v,anchor:e,featureIndex:l,featureProperties:g,writingModes:_})},SymbolBucket.programInterfaces=symbolInterfaces,SymbolBucket.MAX_INSTANCES=65535,module.exports=SymbolBucket; +},{"../../source/rtl_text_plugin":90,"../../symbol/anchor":157,"../../symbol/clip_line":159,"../../symbol/collision_feature":161,"../../symbol/get_anchors":163,"../../symbol/mergelines":166,"../../symbol/quads":167,"../../symbol/resolve_text":168,"../../symbol/shaping":169,"../../util/classify_rings":195,"../../util/find_pole_of_inaccessibility":201,"../../util/script_detection":209,"../../util/token":211,"../../util/util":212,"../array_group":44,"../buffer_group":52,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"point-geometry":26,"vector-tile":34}],51:[function(require,module,exports){ +"use strict";var AttributeType={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},Buffer=function(e,t,r){this.arrayBuffer=e.arrayBuffer,this.length=e.length,this.attributes=t.members,this.itemSize=t.bytesPerElement,this.type=r,this.arrayType=t};Buffer.fromStructArray=function(e,t){return new Buffer(e.serialize(),e.constructor.serialize(),t)},Buffer.prototype.bind=function(e){var t=e[this.type];this.buffer?e.bindBuffer(t,this.buffer):(this.gl=e,this.buffer=e.createBuffer(),e.bindBuffer(t,this.buffer),e.bufferData(t,this.arrayBuffer,e.STATIC_DRAW),this.arrayBuffer=null)},Buffer.prototype.setVertexAttribPointers=function(e,t,r){for(var f=this,i=0;i0?t+2*e:e}function translate(e,t,r,i,a){if(!t[0]&&!t[1])return e;t=Point.convert(t),"viewport"===r&&t._rotate(-i);for(var n=[],s=0;sr.max||d.yr.max)&&util.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return u}; +},{"../util/util":212,"./extent":54}],57:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),PosArray=createStructArrayType({members:[{name:"a_pos",type:"Int16",components:2}]});module.exports=PosArray; +},{"../util/struct_array":210}],58:[function(require,module,exports){ +"use strict";function getPaintAttributeValue(t,r,e,i){if(!t.zoomStops)return r.getPaintValue(t.property,e,i);var a=t.zoomStops.map(function(a){return r.getPaintValue(t.property,util.extend({},e,{zoom:a}),i)});return 1===a.length?a[0]:a}function normalizePaintAttribute(t,r){var e=t.name;e||(e=t.property.replace(r.type+"-","").replace(/-/g,"_"));var i="color"===r._paintSpecifications[t.property].type;return util.extend({name:"a_"+e,components:i?4:1,multiplier:i?255:1,dimensions:i?4:1},t)}var createVertexArrayType=require("./vertex_array_type"),util=require("../util/util"),ProgramConfiguration=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};ProgramConfiguration.createDynamic=function(t,r,e){for(var i=new ProgramConfiguration,a=0,n=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};LngLat.prototype.wrap=function(){return new LngLat(wrap(this.lng,-180,180),this.lat)},LngLat.prototype.toArray=function(){return[this.lng,this.lat]},LngLat.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},LngLat.convert=function(t){if(t instanceof LngLat)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new LngLat(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new LngLat(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},module.exports=LngLat; +},{"../util/util":212}],63:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),LngLatBounds=function(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};LngLatBounds.prototype.setNorthEast=function(t){return this._ne=LngLat.convert(t),this},LngLatBounds.prototype.setSouthWest=function(t){return this._sw=LngLat.convert(t),this},LngLatBounds.prototype.extend=function(t){var n,e,s=this._sw,o=this._ne;if(t instanceof LngLat)n=t,e=t;else{if(!(t instanceof LngLatBounds))return Array.isArray(t)?t.every(Array.isArray)?this.extend(LngLatBounds.convert(t)):this.extend(LngLat.convert(t)):this;if(n=t._sw,e=t._ne,!n||!e)return this}return s||o?(s.lng=Math.min(n.lng,s.lng),s.lat=Math.min(n.lat,s.lat),o.lng=Math.max(e.lng,o.lng),o.lat=Math.max(e.lat,o.lat)):(this._sw=new LngLat(n.lng,n.lat),this._ne=new LngLat(e.lng,e.lat)),this},LngLatBounds.prototype.getCenter=function(){return new LngLat((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},LngLatBounds.prototype.getSouthWest=function(){return this._sw},LngLatBounds.prototype.getNorthEast=function(){return this._ne},LngLatBounds.prototype.getNorthWest=function(){return new LngLat(this.getWest(),this.getNorth())},LngLatBounds.prototype.getSouthEast=function(){return new LngLat(this.getEast(),this.getSouth())},LngLatBounds.prototype.getWest=function(){return this._sw.lng},LngLatBounds.prototype.getSouth=function(){return this._sw.lat},LngLatBounds.prototype.getEast=function(){return this._ne.lng},LngLatBounds.prototype.getNorth=function(){return this._ne.lat},LngLatBounds.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},LngLatBounds.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},LngLatBounds.convert=function(t){return!t||t instanceof LngLatBounds?t:new LngLatBounds(t)},module.exports=LngLatBounds; +},{"./lng_lat":62}],64:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),Point=require("point-geometry"),Coordinate=require("./coordinate"),util=require("../util/util"),interp=require("../util/interpolate"),TileCoord=require("../source/tile_coord"),EXTENT=require("../data/extent"),glmatrix=require("@mapbox/gl-matrix"),vec4=glmatrix.vec4,mat4=glmatrix.mat4,mat2=glmatrix.mat2,Transform=function(t,i,o){this.tileSize=512,this._renderWorldCopies=void 0===o||o,this._minZoom=t||0,this._maxZoom=i||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},prototypeAccessors={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};prototypeAccessors.minZoom.get=function(){return this._minZoom},prototypeAccessors.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},prototypeAccessors.maxZoom.get=function(){return this._maxZoom},prototypeAccessors.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},prototypeAccessors.worldSize.get=function(){return this.tileSize*this.scale},prototypeAccessors.centerPoint.get=function(){return this.size._div(2)},prototypeAccessors.size.get=function(){return new Point(this.width,this.height)},prototypeAccessors.bearing.get=function(){return-this.angle/Math.PI*180},prototypeAccessors.bearing.set=function(t){var i=-util.wrap(t,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=mat2.create(),mat2.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},prototypeAccessors.pitch.get=function(){return this._pitch/Math.PI*180},prototypeAccessors.pitch.set=function(t){var i=util.clamp(t,0,60)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices())},prototypeAccessors.fov.get=function(){return this._fov/Math.PI*180},prototypeAccessors.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},prototypeAccessors.zoom.get=function(){return this._zoom},prototypeAccessors.zoom.set=function(t){var i=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this.scale=this.zoomScale(i),this.tileZoom=Math.floor(i),this.zoomFraction=i-this.tileZoom,this._constrain(),this._calcMatrices())},prototypeAccessors.center.get=function(){return this._center},prototypeAccessors.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Transform.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},Transform.prototype.coveringTiles=function(t){var i=this.coveringZoomLevel(t),o=i;if(it.maxzoom&&(i=t.maxzoom);var e=this.pointCoordinate(this.centerPoint,i),r=new Point(e.column-.5,e.row-.5),n=[this.pointCoordinate(new Point(0,0),i),this.pointCoordinate(new Point(this.width,0),i),this.pointCoordinate(new Point(this.width,this.height),i),this.pointCoordinate(new Point(0,this.height),i)];return TileCoord.cover(i,n,t.reparseOverscaled?o:i,this._renderWorldCopies).sort(function(t,i){return r.dist(t)-r.dist(i)})},Transform.prototype.resize=function(t,i){this.width=t,this.height=i,this.pixelsToGLUnits=[2/t,-2/i],this._constrain(),this._calcMatrices()},prototypeAccessors.unmodified.get=function(){return this._unmodified},Transform.prototype.zoomScale=function(t){return Math.pow(2,t)},Transform.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Transform.prototype.project=function(t){return new Point(this.lngX(t.lng),this.latY(t.lat))},Transform.prototype.unproject=function(t){return new LngLat(this.xLng(t.x),this.yLat(t.y))},prototypeAccessors.x.get=function(){return this.lngX(this.center.lng)},prototypeAccessors.y.get=function(){return this.latY(this.center.lat)},prototypeAccessors.point.get=function(){return new Point(this.x,this.y)},Transform.prototype.lngX=function(t){return(180+t)*this.worldSize/360},Transform.prototype.latY=function(t){var i=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-i)*this.worldSize/360},Transform.prototype.xLng=function(t){return 360*t/this.worldSize-180},Transform.prototype.yLat=function(t){var i=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(i*Math.PI/180))-90},Transform.prototype.setLocationAtPoint=function(t,i){var o=this.pointCoordinate(i)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(o))},Transform.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Transform.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Transform.prototype.locationCoordinate=function(t){return new Coordinate(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},Transform.prototype.coordinateLocation=function(t){var i=t.zoomTo(this.zoom);return new LngLat(this.xLng(i.column*this.tileSize),this.yLat(i.row*this.tileSize))},Transform.prototype.pointCoordinate=function(t,i){void 0===i&&(i=this.tileZoom);var o=0,e=[t.x,t.y,0,1],r=[t.x,t.y,1,1];vec4.transformMat4(e,e,this.pixelMatrixInverse),vec4.transformMat4(r,r,this.pixelMatrixInverse);var n=e[3],s=r[3],a=e[0]/n,h=r[0]/s,c=e[1]/n,m=r[1]/s,p=e[2]/n,l=r[2]/s,u=p===l?0:(o-p)/(l-p);return new Coordinate(interp(a,h,u)/this.tileSize,interp(c,m,u)/this.tileSize,this.zoom)._zoomTo(i)},Transform.prototype.coordinatePoint=function(t){var i=t.zoomTo(this.zoom),o=[i.column*this.tileSize,i.row*this.tileSize,0,1];return vec4.transformMat4(o,o,this.pixelMatrix),new Point(o[0]/o[3],o[1]/o[3])},Transform.prototype.calculatePosMatrix=function(t,i){var o=t.toCoordinate(i),e=this.worldSize/this.zoomScale(o.zoom),r=mat4.identity(new Float64Array(16));return mat4.translate(r,r,[o.column*e,o.row*e,0]),mat4.scale(r,r,[e/EXTENT,e/EXTENT,1]),mat4.multiply(r,this.projMatrix,r),new Float32Array(r)},Transform.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,i,o,e,r,n,s,a,h=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),i=this.latY(this.latRange[0]),r=i-ti&&(a=i-l)}if(this.lngRange){var u=this.x,f=h.x/2;u-fe&&(s=e-f)}void 0===s&&void 0===a||(this.center=this.unproject(new Point(void 0!==s?s:this.x,void 0!==a?a:this.y))),this._unmodified=c,this._constraining=!1}},Transform.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,i=Math.PI/2+this._pitch,o=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-i-t),e=Math.cos(Math.PI/2-this._pitch)*o+this.cameraToCenterDistance,r=1.01*e,n=new Float64Array(16);mat4.perspective(n,this._fov,this.width/this.height,1,r),mat4.scale(n,n,[1,-1,1]),mat4.translate(n,n,[0,0,-this.cameraToCenterDistance]),mat4.rotateX(n,n,this._pitch),mat4.rotateZ(n,n,this.angle),mat4.translate(n,n,[-this.x,-this.y,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(mat4.scale(n,n,[1,1,s,1]),this.projMatrix=n,n=mat4.create(),mat4.scale(n,n,[this.width/2,-this.height/2,1]),mat4.translate(n,n,[1,-1,0]),this.pixelMatrix=mat4.multiply(new Float64Array(16),n,this.projMatrix),n=mat4.invert(new Float64Array(16),this.pixelMatrix),!n)throw new Error("failed to invert matrix");this.pixelMatrixInverse=n}},Object.defineProperties(Transform.prototype,prototypeAccessors),module.exports=Transform; +},{"../data/extent":54,"../source/tile_coord":94,"../util/interpolate":204,"../util/util":212,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":1,"point-geometry":26}],65:[function(require,module,exports){ +"use strict";var browser=require("./util/browser"),mapboxgl=module.exports={};mapboxgl.version=require("../package.json").version,mapboxgl.workerCount=Math.max(Math.floor(browser.hardwareConcurrency/2),1),mapboxgl.Map=require("./ui/map"),mapboxgl.NavigationControl=require("./ui/control/navigation_control"),mapboxgl.GeolocateControl=require("./ui/control/geolocate_control"),mapboxgl.AttributionControl=require("./ui/control/attribution_control"),mapboxgl.ScaleControl=require("./ui/control/scale_control"),mapboxgl.FullscreenControl=require("./ui/control/fullscreen_control"),mapboxgl.Popup=require("./ui/popup"),mapboxgl.Marker=require("./ui/marker"),mapboxgl.Style=require("./style/style"),mapboxgl.LngLat=require("./geo/lng_lat"),mapboxgl.LngLatBounds=require("./geo/lng_lat_bounds"),mapboxgl.Point=require("point-geometry"),mapboxgl.Evented=require("./util/evented"),mapboxgl.supported=require("./util/browser").supported;var config=require("./util/config");mapboxgl.config=config;var rtlTextPlugin=require("./source/rtl_text_plugin");mapboxgl.setRTLTextPlugin=rtlTextPlugin.setRTLTextPlugin,Object.defineProperty(mapboxgl,"accessToken",{get:function(){return config.ACCESS_TOKEN},set:function(o){config.ACCESS_TOKEN=o}}); +},{"../package.json":43,"./geo/lng_lat":62,"./geo/lng_lat_bounds":63,"./source/rtl_text_plugin":90,"./style/style":146,"./ui/control/attribution_control":173,"./ui/control/fullscreen_control":174,"./ui/control/geolocate_control":175,"./ui/control/navigation_control":177,"./ui/control/scale_control":178,"./ui/map":187,"./ui/marker":188,"./ui/popup":189,"./util/browser":192,"./util/config":196,"./util/evented":200,"point-geometry":26}],66:[function(require,module,exports){ +"use strict";function drawBackground(r,t,e){var a=r.gl,i=r.transform,n=i.tileSize,o=e.paint["background-color"],l=e.paint["background-pattern"],u=e.paint["background-opacity"],f=!l&&1===o[3]&&1===u;if(r.isOpaquePass===f){a.disable(a.STENCIL_TEST),r.setDepthSublayer(0);var s;l?(s=r.useProgram("fillPattern",r.basicFillProgramConfiguration),pattern.prepare(l,r,s),r.tileExtentPatternVAO.bind(a,s,r.tileExtentBuffer)):(s=r.useProgram("fill",r.basicFillProgramConfiguration),a.uniform4fv(s.u_color,o),r.tileExtentVAO.bind(a,s,r.tileExtentBuffer)),a.uniform1f(s.u_opacity,u);for(var c=i.coveringTiles({tileSize:n}),g=0,p=c;g":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]}; +},{"../data/buffer":51,"../data/extent":54,"../data/pos_array":57,"../util/browser":192,"./vertex_array_object":80,"@mapbox/gl-matrix":1}],70:[function(require,module,exports){ +"use strict";function drawFill(t,e,r,i){var a=t.gl;a.enable(a.STENCIL_TEST);var l=!r.paint["fill-pattern"]&&r.isPaintValueFeatureConstant("fill-color")&&r.isPaintValueFeatureConstant("fill-opacity")&&1===r.paint["fill-color"][3]&&1===r.paint["fill-opacity"];t.isOpaquePass===l&&(t.setDepthSublayer(1),drawFillTiles(t,e,r,i,drawFillTile)),!t.isOpaquePass&&r.paint["fill-antialias"]&&(t.lineWidth(2),t.depthMask(!1),t.setDepthSublayer(r.getPaintProperty("fill-outline-color")?2:0),drawFillTiles(t,e,r,i,drawStrokeTile))}function drawFillTiles(t,e,r,i,a){for(var l=!0,n=0,o=i;n0?1/(1-r):1+r}function saturationFactor(r){return r>0?1-1/(1.001-r):-r}function getFadeValues(r,t,e,a){var i=e.paint["raster-fade-duration"];if(r.sourceCache&&i>0){var o=Date.now(),n=(o-r.timeAdded)/i,u=t?(o-t.timeAdded)/i:-1,s=r.sourceCache.getSource(),c=a.coveringZoomLevel({tileSize:s.tileSize,roundZoom:s.roundZoom}),f=!t||Math.abs(t.coord.z-c)>Math.abs(r.coord.z-c),d=f&&r.refreshedUponExpiration?1:util.clamp(f?n:1-u,0,1);return r.refreshedUponExpiration&&n>=1&&(r.refreshedUponExpiration=!1),t?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}var util=require("../util/util");module.exports=drawRaster; +},{"../util/util":212}],74:[function(require,module,exports){ +"use strict";function drawSymbols(e,t,a,i){if(!e.isOpaquePass){var o=!(a.layout["text-allow-overlap"]||a.layout["icon-allow-overlap"]||a.layout["text-ignore-placement"]||a.layout["icon-ignore-placement"]),r=e.gl;o?r.disable(r.STENCIL_TEST):r.enable(r.STENCIL_TEST),e.setDepthSublayer(0),e.depthMask(!1),drawLayerSymbols(e,t,a,i,!1,a.paint["icon-translate"],a.paint["icon-translate-anchor"],a.layout["icon-rotation-alignment"],a.layout["icon-rotation-alignment"],a.layout["icon-size"]),drawLayerSymbols(e,t,a,i,!0,a.paint["text-translate"],a.paint["text-translate-anchor"],a.layout["text-rotation-alignment"],a.layout["text-pitch-alignment"],a.layout["text-size"]),t.map.showCollisionBoxes&&drawCollisionDebug(e,t,a,i)}}function drawLayerSymbols(e,t,a,i,o,r,n,l,s,u){if(o||!e.style.sprite||e.style.sprite.loaded()){var f=e.gl,m="map"===l,p="map"===s,c=p;c?f.enable(f.DEPTH_TEST):f.disable(f.DEPTH_TEST);for(var d,_,h=0,g=i;hthis.previousZoom;a--)r.changeTimes[a]=e,r.changeOpacities[a]=r.opacities[a];for(a=0;a<256;a++){var s=e-r.changeTimes[a],o=255*(i?s/i:1);a<=t?r.opacities[a]=r.changeOpacities[a]+o:r.opacities[a]=r.changeOpacities[a]-o}this.changed=!0,this.previousZoom=t},FrameHistory.prototype.bind=function(e){this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.changed&&(e.texSubImage2D(e.TEXTURE_2D,0,0,0,256,1,e.ALPHA,e.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,256,1,0,e.ALPHA,e.UNSIGNED_BYTE,this.array))},module.exports=FrameHistory; +},{}],76:[function(require,module,exports){ +"use strict";var util=require("../util/util"),LineAtlas=function(t,i){this.width=t,this.height=i,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};LineAtlas.prototype.setSprite=function(t){this.sprite=t},LineAtlas.prototype.getDash=function(t,i){var e=t.join(",")+i;return this.positions[e]||(this.positions[e]=this.addDash(t,i)),this.positions[e]},LineAtlas.prototype.addDash=function(t,i){var e=this,h=i?7:0,s=2*h+1,a=128;if(this.nextRow+s>this.height)return util.warnOnce("LineAtlas out of space"),null;for(var r=0,n=0;n0?r.pop():null},Painter.prototype.getViewportTexture=function(e,r){var t=this.reusableTextures.viewport;if(t)return t.width===e&&t.height===r?t:(this.gl.deleteTexture(t),void(this.reusableTextures.viewport=null))},Painter.prototype.lineWidth=function(e){this.gl.lineWidth(util.clamp(e,this.lineWidthRange[0],this.lineWidthRange[1]))},Painter.prototype.showOverdrawInspector=function(e){if(e||this._showOverdrawInspector){this._showOverdrawInspector=e;var r=this.gl;if(e){r.blendFunc(r.CONSTANT_COLOR,r.ONE);var t=8,i=1/t;r.blendColor(i,i,i,0),r.clearColor(0,0,0,1),r.clear(r.COLOR_BUFFER_BIT)}else r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA)}},Painter.prototype.createProgram=function(e,r){var t=this.gl,i=t.createProgram(),a=shaders[e],s="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+browser.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(s+="#define OVERDRAW_INSPECTOR;\n");var o=r.applyPragmas(s+shaders.prelude.fragmentSource+a.fragmentSource,"fragment"),n=r.applyPragmas(s+shaders.prelude.vertexSource+a.vertexSource,"vertex"),l=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(l,o),t.compileShader(l),t.attachShader(i,l);var h=t.createShader(t.VERTEX_SHADER);t.shaderSource(h,n),t.compileShader(h),t.attachShader(i,h),t.linkProgram(i);for(var u=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES),c={program:i,numAttributes:u},p=0;p>16,n>>16),o.uniform2f(i.u_pixel_coord_lower,65535&u,65535&n)}; +},{"../source/pixels_to_tile_units":87}],79:[function(require,module,exports){ +"use strict";var path=require("path");module.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n\n// To minimize the number of attributes needed in the mapbox-gl-native shaders,\n// we encode a 4-component color into a pair of floats (i.e. a vec2) as follows:\n// [ floor(color.r * 255) * 256 + color.g * 255,\n// floor(color.b * 255) * 256 + color.g * 255 ]\nvec4 decode_color(const vec2 encodedColor) {\n float r = floor(encodedColor[0]/256.0)/255.0;\n float g = (encodedColor[0] - r*256.0*255.0)/255.0;\n float b = floor(encodedColor[1]/256.0)/255.0;\n float a = (encodedColor[1] - b*256.0*255.0)/255.0;\n return vec4(r, g, b, a);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nfloat unpack_mix_vec2(const vec2 packedValue, const float t) {\n return mix(packedValue[0], packedValue[1], t);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nvec4 unpack_mix_vec4(const vec4 packedColors, const float t) {\n vec4 minColor = decode_color(vec2(packedColors[0], packedColors[1]));\n vec4 maxColor = decode_color(vec2(packedColors[2], packedColors[3]));\n return mix(minColor, maxColor, t);\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n 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, pos);\n 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, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(0.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\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\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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n" +},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\n\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp float opacity\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\n\nuniform bool u_is_halo;\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp 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\n\nuniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_font_scale;\nuniform highp float u_gamma_scale;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp 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\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / u_gamma_scale;\n lowp float buff = (256.0 - 64.0) / 256.0;\n if (u_is_halo) {\n color = halo_color;\n gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / u_gamma_scale;\n buff = (6.0 - halo_width / u_font_scale) / SDF_PX;\n }\n\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n highp float gamma_scaled = gamma * v_gamma_scale;\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist) * fade_alpha;\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp 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\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp 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\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}; +},{"path":23}],80:[function(require,module,exports){ +"use strict";var VertexArrayObject=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};VertexArrayObject.prototype.bind=function(e,t,r,i,n,o){void 0===e.extVertexArrayObject&&(e.extVertexArrayObject=e.getExtension("OES_vertex_array_object"));var s=!this.vao||this.boundProgram!==t||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==o;!e.extVertexArrayObject||s?(this.freshBind(e,t,r,i,n,o),this.gl=e):e.extVertexArrayObject.bindVertexArrayOES(this.vao)},VertexArrayObject.prototype.freshBind=function(e,t,r,i,n,o){var s,u=t.numAttributes;if(e.extVertexArrayObject)this.vao&&this.destroy(),this.vao=e.extVertexArrayObject.createVertexArrayOES(),e.extVertexArrayObject.bindVertexArrayOES(this.vao),s=0,this.boundProgram=t,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=o;else{s=e.currentNumAttributes||0;for(var b=u;bthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,r={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",r,function(i,r){if(t.unloadVectorData(),!t.aborted)return i?e(i):(t.loadVectorData(r,o.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(o)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(Evented);module.exports=GeoJSONSource; +},{"../data/extent":54,"../util/evented":200,"../util/util":212,"../util/window":194}],83:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),rewind=require("geojson-rewind"),GeoJSONWrapper=require("./geojson_wrapper"),vtpbf=require("vt-pbf"),supercluster=require("supercluster"),geojsonvt=require("geojson-vt"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=function(e){function r(r,t,o){e.call(this,r,t),o&&(this.loadGeoJSON=o),this._geoJSONIndexes={}}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadVectorData=function(e,r){var t=e.source,o=e.coord;if(!this._geoJSONIndexes[t])return r(null,null);var n=this._geoJSONIndexes[t].getTile(Math.min(o.z,e.maxZoom),o.x,o.y);if(!n)return r(null,null);var u=new GeoJSONWrapper(n.features);u.name="_geojsonTileLayer";var a=vtpbf({layers:{_geojsonTileLayer:u}});0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),u.rawData=a.buffer,r(null,u)},r.prototype.loadData=function(e,r){var t=function(t,o){var n=this;return t?r(t):"object"!=typeof o?r(new Error("Input data is not a valid GeoJSON object.")):(rewind(o,!0),void this._indexData(o,e,function(t,o){return t?r(t):(n._geoJSONIndexes[e.source]=o,void r(null))}))}.bind(this);this.loadGeoJSON(e,t)},r.prototype.loadGeoJSON=function(e,r){if(e.url)ajax.getJSON(e.url,r);else{if("string"!=typeof e.data)return r(new Error("Input data is not a valid GeoJSON object."));try{return r(null,JSON.parse(e.data))}catch(e){return r(new Error("Input data is not a valid GeoJSON object."))}}},r.prototype.removeSource=function(e){this._geoJSONIndexes[e.source]&&delete this._geoJSONIndexes[e.source]},r.prototype._indexData=function(e,r,t){try{r.cluster?t(null,supercluster(r.superclusterOptions).load(e.features)):t(null,geojsonvt(e,r.geojsonVtOptions))}catch(e){return t(e)}},r}(VectorTileWorkerSource);module.exports=GeoJSONWorkerSource; +},{"../util/ajax":191,"./geojson_wrapper":84,"./vector_tile_worker_source":96,"geojson-rewind":7,"geojson-vt":11,"supercluster":29,"vt-pbf":38}],84:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTENT=require("../data/extent"),FeatureWrapper=function(e){var t=this;if(this.type=e.type,1===e.type){this.rawGeometry=[];for(var r=0;rt)){var n=Math.pow(2,Math.min(a.coord.z,i._source.maxzoom)-Math.min(e.z,i._source.maxzoom));if(Math.floor(a.coord.x/n)===e.x&&Math.floor(a.coord.y/n)===e.y)for(o[s]=!0,r=!0;a&&a.coord.z-1>e.z;){var d=a.coord.parent(i._source.maxzoom).id;a=i._tiles[d],a&&a.hasData()&&(delete o[s],o[d]=!0)}}}return r},t.prototype.findLoadedParent=function(e,t,o){for(var i=this,r=e.z-1;r>=t;r--){e=e.parent(i._source.maxzoom);var s=i._tiles[e.id];if(s&&s.hasData())return o[e.id]=!0,s;if(i._cache.has(e.id))return o[e.id]=!0,i._cache.getWithoutRemoving(e.id)}},t.prototype.updateCacheSize=function(e){var t=Math.ceil(e.width/e.tileSize)+1,o=Math.ceil(e.height/e.tileSize)+1,i=t*o,r=5;this._cache.setMaxSize(Math.floor(i*r))},t.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded){var i,r,s,a;this.updateCacheSize(e);var n=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(e)),d=Math.max(n-t.maxOverzooming,this._source.minzoom),c=Math.max(n+t.maxUnderzooming,this._source.minzoom),h={};this._coveredTiles={};var u;for(u=this.used?this._source.coord?[this._source.coord]:e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],i=0;i=Date.now())&&(o.findLoadedChildren(r,c,h)&&(h[_]=!0),a=o.findLoadedParent(r,d,l),a&&o.addTile(a.coord))}var f;for(f in l)h[f]||(o._coveredTiles[f]=!0);for(f in l)h[f]=!0;var T=util.keysDifference(this._tiles,h);for(i=0;ithis._source.maxzoom?Math.pow(2,r-this._source.maxzoom):1;t=new Tile(o,this._source.tileSize*s,this._source.maxzoom),this.loadTile(t,this._tileLoaded.bind(this,t,e.id,t.state))}return t.uses++,this._tiles[e.id]=t,i||this._source.fire("dataloading",{tile:t,coord:t.coord,dataType:"source"}),t},t.prototype._setTileReloadTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._timers[e]=setTimeout(function(){o.reloadTile(e,"expired"),o._timers[e]=void 0},i))},t.prototype._setCacheInvalidationTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._cacheTimers[e]=setTimeout(function(){o._cache.remove(e),o._cacheTimers[e]=void 0},i))},t.prototype.removeTile=function(e){var t=this._tiles[e];if(t&&(t.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),this._timers[e]=void 0),!(t.uses>0)))if(t.hasData()){var o=t.coord.wrapped().id;this._cache.add(o,t),this._setCacheInvalidationTimer(o,t)}else t.aborted=!0,this.abortTile(t),this.unloadTile(t)},t.prototype.clearTiles=function(){var e=this;for(var t in e._tiles)e.removeTile(t);this._cache.reset()},t.prototype.tilesIn=function(e){for(var t=this,o={},i=this.getIds(),r=1/0,s=1/0,a=-(1/0),n=-(1/0),d=e[0].zoom,c=0;c=0&&p[1].y>=0){for(var _=[],f=0;fo)r=!1;else if(t)if(this.expirationTimei.row){var o=t;t=i,i=o}return{x0:t.column,y0:t.row,x1:i.column,y1:i.row,dx:i.column-t.column,dy:i.row-t.row}}function scanSpans(t,i,o,r,e){var n=Math.max(o,Math.floor(i.y0)),h=Math.min(r,Math.ceil(i.y1));if(t.x0===i.x0&&t.y0===i.y0?t.x0+i.dy/t.dy*t.dx0,l=i.dx<0,u=n;ua.dy&&(h=s,s=a,a=h),s.dy>d.dy&&(h=s,s=d,d=h),a.dy>d.dy&&(h=a,a=d,d=h),s.dy&&scanSpans(d,s,r,e,n),a.dy&&scanSpans(d,a,r,e,n)}function getQuadkey(t,i,o){for(var r,e="",n=t;n>0;n--)r=1<t?new TileCoord(this.z-1,this.x,this.y,this.w):new TileCoord(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},TileCoord.prototype.wrapped=function(){return new TileCoord(this.z,this.x,this.y,0)},TileCoord.prototype.children=function(t){if(this.z>=t)return[new TileCoord(this.z+1,this.x,this.y,this.w)];var i=this.z+1,o=2*this.x,r=2*this.y;return[new TileCoord(i,o,r,this.w),new TileCoord(i,o+1,r,this.w),new TileCoord(i,o,r+1,this.w),new TileCoord(i,o+1,r+1,this.w)]},TileCoord.cover=function(t,i,o,r){function e(t,i,e){var s,a,d,y;if(e>=0&&e<=n)for(s=t;sthis.maxzoom?Math.pow(2,e.coord.z-this.maxzoom):1,r={url:normalizeURL(e.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:e.uid,coord:e.coord,zoom:e.coord.z,tileSize:this.tileSize*o,type:this.type,source:this.id,overscaling:o,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};e.workerID&&"expired"!==e.state?"loading"===e.state?e.reloadCallback=t:this.dispatcher.send("reloadTile",r,i.bind(this),e.workerID):e.workerID=this.dispatcher.send("loadTile",r,i.bind(this))},t.prototype.abortTile=function(e){this.dispatcher.send("abortTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t.prototype.unloadTile=function(e){e.unloadVectorData(),this.dispatcher.send("removeTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t}(Evented);module.exports=VectorTileSource; +},{"../util/evented":200,"../util/mapbox":208,"../util/util":212,"./load_tilejson":86}],96:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),vt=require("vector-tile"),Protobuf=require("pbf"),WorkerTile=require("./worker_tile"),util=require("../util/util"),VectorTileWorkerSource=function(e,r,t){this.actor=e,this.layerIndex=r,t&&(this.loadVectorData=t),this.loading={},this.loaded={}};VectorTileWorkerSource.prototype.loadTile=function(e,r){function t(e,t){return delete this.loading[o][i],e?r(e):t?(a.vectorTile=t,a.parse(t,this.layerIndex,this.actor,function(e,o,i){if(e)return r(e);var a={};t.expires&&(a.expires=t.expires),t.cacheControl&&(a.cacheControl=t.cacheControl),r(null,util.extend({rawTileData:t.rawData},o,a),i)}),this.loaded[o]=this.loaded[o]||{},void(this.loaded[o][i]=a)):r(null,null)}var o=e.source,i=e.uid;this.loading[o]||(this.loading[o]={});var a=this.loading[o][i]=new WorkerTile(e);a.abort=this.loadVectorData(e,t.bind(this))},VectorTileWorkerSource.prototype.reloadTile=function(e,r){function t(e,t){if(this.reloadCallback){var o=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,a.layerIndex,a.actor,o)}r(e,t)}var o=this.loaded[e.source],i=e.uid,a=this;if(o&&o[i]){var l=o[i];"parsing"===l.status?l.reloadCallback=r:"done"===l.status&&l.parse(l.vectorTile,this.layerIndex,this.actor,t.bind(l))}},VectorTileWorkerSource.prototype.abortTile=function(e){var r=this.loading[e.source],t=e.uid;r&&r[t]&&r[t].abort&&(r[t].abort(),delete r[t])},VectorTileWorkerSource.prototype.removeTile=function(e){var r=this.loaded[e.source],t=e.uid;r&&r[t]&&delete r[t]},VectorTileWorkerSource.prototype.loadVectorData=function(e,r){function t(e,t){if(e)return r(e);var o=new vt.VectorTile(new Protobuf(t.data));o.rawData=t.data,o.cacheControl=t.cacheControl,o.expires=t.expires,r(e,o)}var o=ajax.getArrayBuffer(e.url,t.bind(this));return function(){o.abort()}},VectorTileWorkerSource.prototype.redoPlacement=function(e,r){var t=this.loaded[e.source],o=this.loading[e.source],i=e.uid;if(t&&t[i]){var a=t[i],l=a.redoPlacement(e.angle,e.pitch,e.showCollisionBoxes);l.result&&r(null,l.result,l.transferables)}else o&&o[i]&&(o[i].angle=e.angle)},module.exports=VectorTileWorkerSource; +},{"../util/ajax":191,"../util/util":212,"./worker_tile":99,"pbf":25,"vector-tile":34}],97:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),ImageSource=require("./image_source"),VideoSource=function(t){function e(e,o,i,r){t.call(this,e,o,i,r),this.roundZoom=!0,this.type="video",this.options=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,ajax.getVideo(e.urls,function(e,o){if(e)return t.fire("error",{error:e});t.video=o,t.video.loop=!0;var i;t.video.addEventListener("playing",function(){i=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(i)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(ImageSource);module.exports=VideoSource; +},{"../util/ajax":191,"./image_source":85}],98:[function(require,module,exports){ +"use strict";var Actor=require("../util/actor"),StyleLayerIndex=require("../style/style_layer_index"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=require("./geojson_worker_source"),globalRTLTextPlugin=require("./rtl_text_plugin"),Worker=function(e){var r=this;this.self=e,this.actor=new Actor(e,this),this.layerIndexes={},this.workerSourceTypes={vector:VectorTileWorkerSource,geojson:GeoJSONWorkerSource},this.workerSources={},this.self.registerWorkerSource=function(e,o){if(r.workerSourceTypes[e])throw new Error('Worker source with name "'+e+'" already registered.');r.workerSourceTypes[e]=o},this.self.registerRTLTextPlugin=function(e){if(globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText)throw new Error("RTL text plugin already registered.");globalRTLTextPlugin.applyArabicShaping=e.applyArabicShaping,globalRTLTextPlugin.processBidirectionalText=e.processBidirectionalText}};Worker.prototype.setLayers=function(e,r){this.getLayerIndex(e).replace(r)},Worker.prototype.updateLayers=function(e,r){this.getLayerIndex(e).update(r.layers,r.removedIds,r.symbolOrder)},Worker.prototype.loadTile=function(e,r,o){this.getWorkerSource(e,r.type).loadTile(r,o)},Worker.prototype.reloadTile=function(e,r,o){this.getWorkerSource(e,r.type).reloadTile(r,o)},Worker.prototype.abortTile=function(e,r){this.getWorkerSource(e,r.type).abortTile(r)},Worker.prototype.removeTile=function(e,r){this.getWorkerSource(e,r.type).removeTile(r)},Worker.prototype.removeSource=function(e,r){var o=this.getWorkerSource(e,r.type);void 0!==o.removeSource&&o.removeSource(r)},Worker.prototype.redoPlacement=function(e,r,o){this.getWorkerSource(e,r.type).redoPlacement(r,o)},Worker.prototype.loadWorkerSource=function(e,r,o){try{this.self.importScripts(r.url),o()}catch(e){o(e)}},Worker.prototype.loadRTLTextPlugin=function(e,r,o){try{globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText||this.self.importScripts(r)}catch(e){o(e)}},Worker.prototype.getLayerIndex=function(e){var r=this.layerIndexes[e];return r||(r=this.layerIndexes[e]=new StyleLayerIndex),r},Worker.prototype.getWorkerSource=function(e,r){var o=this;if(this.workerSources[e]||(this.workerSources[e]={}),!this.workerSources[e][r]){var t={send:function(r,t,i,n){o.actor.send(r,t,i,n,e)}};this.workerSources[e][r]=new this.workerSourceTypes[r](t,this.getLayerIndex(e))}return this.workerSources[e][r]},module.exports=function(e){return new Worker(e)}; +},{"../style/style_layer_index":154,"../util/actor":190,"./geojson_worker_source":83,"./rtl_text_plugin":90,"./vector_tile_worker_source":96}],99:[function(require,module,exports){ +"use strict";function recalculateLayers(e,i){for(var r=0,o=e.layers;r=B.maxzoom||B.layout&&"none"===B.layout.visibility)){for(var b=0,k=x;b=0;w--){var A=n[i.symbolOrder[w]];A&&t.symbolBuckets.push(A)}if(0===this.symbolBuckets.length)return T(new CollisionTile(this.angle,this.pitch,this.collisionBoxArray));var D=0,I=Object.keys(c.iconDependencies),O=util.mapObject(c.glyphDependencies,function(e){return Object.keys(e).map(Number)}),L=function(e){if(e)return o(e);if(D++,2===D){for(var i=new CollisionTile(t.angle,t.pitch,t.collisionBoxArray),r=0,s=t.symbolBuckets;r"===i||"<="===i||">="===i?compileComparisonOp(e[1],e[2],i,!0):"any"===i?compileLogicalOp(e.slice(1),"||"):"all"===i?compileLogicalOp(e.slice(1),"&&"):"none"===i?compileNegation(compileLogicalOp(e.slice(1),"||")):"in"===i?compileInOp(e[1],e.slice(2)):"!in"===i?compileNegation(compileInOp(e[1],e.slice(2))):"has"===i?compileHasOp(e[1]):"!has"===i?compileNegation(compileHasOp(e[1])):"true";return"("+n+")"}function compilePropertyReference(e){return"$type"===e?"f.type":"$id"===e?"f.id":"p["+JSON.stringify(e)+"]"}function compileComparisonOp(e,i,n,r){var o=compilePropertyReference(e),t="$type"===e?types.indexOf(i):JSON.stringify(i);return(r?"typeof "+o+"=== typeof "+t+"&&":"")+o+n+t}function compileLogicalOp(e,i){return e.map(compile).join(i)}function compileInOp(e,i){"$type"===e&&(i=i.map(function(e){return types.indexOf(e)}));var n=JSON.stringify(i.sort(compare)),r=compilePropertyReference(e);return i.length<=200?n+".indexOf("+r+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+r+", "+n+",0,"+(i.length-1)+")"}function compileHasOp(e){return"$id"===e?'"id" in f':JSON.stringify(e)+" in p"}function compileNegation(e){return"!("+e+")"}function compare(e,i){return ei?1:0}module.exports=createFilter;var types=["Unknown","Point","LineString","Polygon"]; +},{}],104:[function(require,module,exports){ +"use strict";function xyz2lab(r){return r>t3?Math.pow(r,1/3):r/t2+t0}function lab2xyz(r){return r>t1?r*r*r:t2*(r-t0)}function xyz2rgb(r){return 255*(r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}function rgb2xyz(r){return r/=255,r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function rgbToLab(r){var t=rgb2xyz(r[0]),a=rgb2xyz(r[1]),n=rgb2xyz(r[2]),b=xyz2lab((.4124564*t+.3575761*a+.1804375*n)/Xn),o=xyz2lab((.2126729*t+.7151522*a+.072175*n)/Yn),g=xyz2lab((.0193339*t+.119192*a+.9503041*n)/Zn);return[116*o-16,500*(b-o),200*(o-g),r[3]]}function labToRgb(r){var t=(r[0]+16)/116,a=isNaN(r[1])?t:t+r[1]/500,n=isNaN(r[2])?t:t-r[2]/200;return t=Yn*lab2xyz(t),a=Xn*lab2xyz(a),n=Zn*lab2xyz(n),[xyz2rgb(3.2404542*a-1.5371385*t-.4985314*n),xyz2rgb(-.969266*a+1.8760108*t+.041556*n),xyz2rgb(.0556434*a-.2040259*t+1.0572252*n),r[3]]}function rgbToHcl(r){var t=rgbToLab(r),a=t[0],n=t[1],b=t[2],o=Math.atan2(b,n)*rad2deg;return[o<0?o+360:o,Math.sqrt(n*n+b*b),a,r[3]]}function hclToRgb(r){var t=r[0]*deg2rad,a=r[1],n=r[2];return labToRgb([n,Math.cos(t)*a,Math.sin(t)*a,r[3]])}var Xn=.95047,Yn=1,Zn=1.08883,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1,deg2rad=Math.PI/180,rad2deg=180/Math.PI;module.exports={lab:{forward:rgbToLab,reverse:labToRgb},hcl:{forward:rgbToHcl,reverse:hclToRgb}}; +},{}],105:[function(require,module,exports){ +"use strict";function identityFunction(t){return t}function createFunction(t,e){var o,n="color"===e.type;if(isFunctionDefinition(t)){var r=t.stops&&"object"==typeof t.stops[0][0],a=r||void 0!==t.property,i=r||!a,s=t.type||("interpolated"===e.function?"exponential":"interval");n&&(t=extend({},t),t.stops&&(t.stops=t.stops.map(function(t){return[t[0],parseColor(t[1])]})),t.default?t.default=parseColor(t.default):t.default=parseColor(e.default));var u,p,l;if("exponential"===s)u=evaluateExponentialFunction;else if("interval"===s)u=evaluateIntervalFunction;else if("categorical"===s){u=evaluateCategoricalFunction,p=Object.create(null);for(var c=0,f=t.stops;c=t.stops[n-1][0])return t.stops[n-1][1];var r=binarySearchForIndex(t.stops,o);return t.stops[r][1]}function evaluateExponentialFunction(t,e,o){var n=void 0!==t.base?t.base:1;if("number"!==getType(o))return coalesce(t.default,e.default);var r=t.stops.length;if(1===r)return t.stops[0][1];if(o<=t.stops[0][0])return t.stops[0][1];if(o>=t.stops[r-1][0])return t.stops[r-1][1];var a=binarySearchForIndex(t.stops,o);return interpolate(o,n,t.stops[a][0],t.stops[a+1][0],t.stops[a][1],t.stops[a+1][1])}function evaluateIdentityFunction(t,e,o){return"color"===e.type?o=parseColor(o):getType(o)!==e.type&&(o=void 0),coalesce(o,t.default,e.default)}function binarySearchForIndex(t,e){for(var o,n,r=t.length,a=0,i=r-1,s=0;a<=i;){if(s=Math.floor((a+i)/2),o=t[s][0],n=t[s+1][0],e>=o&&ee&&(i=s-1)}return Math.max(s-1,0)}function interpolate(t,e,o,n,r,a){return"function"==typeof r?function(){var i=r.apply(void 0,arguments),s=a.apply(void 0,arguments);if(void 0!==i&&void 0!==s)return interpolate(t,e,o,n,i,s)}:r.length?interpolateArray(t,e,o,n,r,a):interpolateNumber(t,e,o,n,r,a)}function interpolateNumber(t,e,o,n,r,a){var i,s=n-o,u=t-o;return i=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),r*(1-i)+a*i}function interpolateArray(t,e,o,n,r,a){for(var i=[],s=0;s255?255:e}function clamp_css_float(e){return e<0?0:e>1?1:e}function parse_css_int(e){return clamp_css_byte("%"===e[e.length-1]?parseFloat(e)/100*255:parseInt(e))}function parse_css_float(e){return clamp_css_float("%"===e[e.length-1]?parseFloat(e)/100:parseFloat(e))}function css_hue_to_rgb(e,r,l){return l<0?l+=1:l>1&&(l-=1),6*l<1?e+(r-e)*l*6:2*l<1?r:3*l<2?e+(r-e)*(2/3-l)*6:e}function parseCSSColor(e){var r=e.replace(/ /g,"").toLowerCase();if(r in kCSSColorTable)return kCSSColorTable[r].slice();if("#"===r[0]){if(4===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=4095?[(3840&l)>>4|(3840&l)>>8,240&l|(240&l)>>4,15&l|(15&l)<<4,1]:null}if(7===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=16777215?[(16711680&l)>>16,(65280&l)>>8,255&l,1]:null}return null}var a=r.indexOf("("),t=r.indexOf(")");if(a!==-1&&t+1===r.length){var n=r.substr(0,a),s=r.substr(a+1,t-(a+1)).split(","),o=1;switch(n){case"rgba":if(4!==s.length)return null;o=parse_css_float(s.pop());case"rgb":return 3!==s.length?null:[parse_css_int(s[0]),parse_css_int(s[1]),parse_css_int(s[2]),o];case"hsla":if(4!==s.length)return null;o=parse_css_float(s.pop());case"hsl":if(3!==s.length)return null;var i=(parseFloat(s[0])%360+360)%360/360,u=parse_css_float(s[1]),g=parse_css_float(s[2]),d=g<=.5?g*(u+1):g+u-g*u,c=2*g-d;return[clamp_css_byte(255*css_hue_to_rgb(c,d,i+1/3)),clamp_css_byte(255*css_hue_to_rgb(c,d,i)),clamp_css_byte(255*css_hue_to_rgb(c,d,i-1/3)),o];default:return null}}return null}var kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{exports.parseCSSColor=parseCSSColor}catch(e){} +},{}],108:[function(require,module,exports){ +function sss(r){var e,t,s,n,u,a;switch(typeof r){case"object":if(null===r)return null;if(isArray(r)){for(s="[",t=r.length-1,e=0;e-1&&(s+=sss(r[e])),s+"]"}for(n=objKeys(r).sort(),t=n.length,s="{",u=n[e=0],a=t>0&&void 0!==r[u];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};module.exports=function(r){if(void 0!==r)return""+sss(r)},module.exports.stringSearch=strReg,module.exports.stringReplace=strReplace; +},{}],109:[function(require,module,exports){ +function isObjectLike(r){return!!r&&"object"==typeof r}function arraySome(r,e){for(var a=-1,t=r.length;++as))return!1;for(;++c-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isObject(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function isObjectLike(t){return!!t&&"object"==typeof t}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objectToString=objectProto.toString,propertyIsEnumerable=objectProto.propertyIsEnumerable;module.exports=isArguments; +},{}],113:[function(require,module,exports){ +function isObjectLike(t){return!!t&&"object"==typeof t}function getNative(t,r){var e=null==t?void 0:t[r];return isNative(e)?e:void 0}function isLength(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isFunction(t){return isObject(t)&&objToString.call(t)==funcTag}function isObject(t){var r=typeof t;return!!t&&("object"==r||"function"==r)}function isNative(t){return null!=t&&(isFunction(t)?reIsNative.test(fnToString.call(t)):isObjectLike(t)&&reIsHostCtor.test(t))}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(t){return isObjectLike(t)&&isLength(t.length)&&objToString.call(t)==arrayTag};module.exports=isArray; +},{}],114:[function(require,module,exports){ +function isEqual(a,l,i,e){i="function"==typeof i?bindCallback(i,e,3):void 0;var s=i?i(a,l):void 0;return void 0===s?baseIsEqual(a,l,i):!!s}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback");module.exports=isEqual; +},{"lodash._baseisequal":109,"lodash._bindcallback":110}],115:[function(require,module,exports){ +function isLength(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=MAX_SAFE_INTEGER}function isObjectLike(a){return!!a&&"object"==typeof a}function isTypedArray(a){return isObjectLike(a)&&isLength(a.length)&&!!typedArrayTags[objectToString.call(a)]}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objectToString=objectProto.toString;module.exports=isTypedArray; +},{}],116:[function(require,module,exports){ +function baseProperty(e){return function(t){return null==t?void 0:t[e]}}function isArrayLike(e){return null!=e&&isLength(getLength(e))}function isIndex(e,t){return e="number"==typeof e||reIsUint.test(e)?+e:-1,t=null==t?MAX_SAFE_INTEGER:t,e>-1&&e%1==0&&e-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function shimKeys(e){for(var t=keysIn(e),r=t.length,n=r&&e.length,s=!!n&&isLength(n)&&(isArray(e)||isArguments(e)),o=-1,i=[];++o0;++n":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":22,"value":["number","color"],"length":2},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"transition":false},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","transition":true,"function":"interpolated","zoom-function":true,"property-function":false},"color":{"type":"color","default":"#ffffff","function":"interpolated","zoom-function":true,"property-function":false,"transition":true},"intensity":{"type":"number","default":0.5,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":false,"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],"paint_fill":{"fill-antialias":{"type":"boolean","function":"piecewise-constant","zoom-function":true,"default":true},"fill-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"}]},"fill-outline-color":{"type":"color","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}]},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"]},"fill-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":false,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-extrusion-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-extrusion-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"]},"fill-extrusion-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"fill-extrusion-height":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true},"fill-extrusion-base":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"]}},"paint_line":{"line-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"line-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"line-pattern"}]},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"]},"line-width":{"type":"number","default":1,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-gap-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-offset":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-dasharray":{"type":"array","value":"number","function":"piecewise-constant","zoom-function":true,"minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}]},"line-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-blur":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"circle-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"]},"circle-pitch-scale":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-stroke-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"]},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"]}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-hue-rotate":{"type":"number","default":0,"period":360,"function":"interpolated","zoom-function":true,"transition":true,"units":"degrees"},"raster-brightness-min":{"type":"number","function":"interpolated","zoom-function":true,"default":0,"minimum":0,"maximum":1,"transition":true},"raster-brightness-max":{"type":"number","function":"interpolated","zoom-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"milliseconds"}},"paint_background":{"background-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"transition":true,"requires":[{"!":"background-pattern"}]},"background-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}}} +},{}],119:[function(require,module,exports){ +"use strict";module.exports=function(r){for(var t=arguments,e=1;e7)return[new ValidationError(u,a,"constants have been deprecated as of v8")];if(!(a in l.constants))return[new ValidationError(u,a,'constant "%s" not found',a)];e=extend({},e,{value:l.constants[a]})}return n.function&&"object"===getType(a)?r(e):n.type&&i[n.type]?i[n.type](e):t(extend({},e,{valueSpec:n.type?o[n.type]:n}))}; +},{"../error/validation_error":102,"../util/extend":119,"../util/get_type":120,"./validate_array":125,"./validate_boolean":126,"./validate_color":127,"./validate_constants":128,"./validate_enum":129,"./validate_filter":130,"./validate_function":131,"./validate_layer":133,"./validate_light":135,"./validate_number":136,"./validate_object":137,"./validate_source":140,"./validate_string":141}],125:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),validate=require("./validate"),ValidationError=require("../error/validation_error");module.exports=function(e){var r=e.value,t=e.valueSpec,a=e.style,n=e.styleSpec,l=e.key,i=e.arrayElementValidator||validate;if("array"!==getType(r))return[new ValidationError(l,r,"array expected, %s found",getType(r))];if(t.length&&r.length!==t.length)return[new ValidationError(l,r,"array length %d expected, length %d found",t.length,r.length)];if(t["min-length"]&&r.length7)return t?[new ValidationError(e,t,"constants have been deprecated as of v8")]:[];var o=getType(t);if("object"!==o)return[new ValidationError(e,t,"object expected, %s found",o)];var n=[];for(var i in t)"@"!==i[0]&&n.push(new ValidationError(e+"."+i,t[i],'constants must start with "@"'));return n}; +},{"../error/validation_error":102,"../util/get_type":120}],129:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint");module.exports=function(e){var r=e.key,n=e.value,u=e.valueSpec,o=[];return Array.isArray(u.values)?u.values.indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",u.values.join(", "),n)):Object.keys(u.values).indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",Object.keys(u.values).join(", "),n)),o}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123}],130:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateEnum=require("./validate_enum"),getType=require("../util/get_type"),unbundle=require("../util/unbundle_jsonlint");module.exports=function e(r){var t,a=r.value,n=r.key,l=r.styleSpec,s=[];if("array"!==getType(a))return[new ValidationError(n,a,"array expected, %s found",getType(a))];if(a.length<1)return[new ValidationError(n,a,"filter array must have at least 1 element")];switch(s=s.concat(validateEnum({key:n+"[0]",value:a[0],valueSpec:l.filter_operator,style:r.style,styleSpec:r.styleSpec})),unbundle(a[0])){case"<":case"<=":case">":case">=":a.length>=2&&"$type"===unbundle(a[1])&&s.push(new ValidationError(n,a,'"$type" cannot be use with operator "%s"',a[0]));case"==":case"!=":3!==a.length&&s.push(new ValidationError(n,a,'filter array for operator "%s" must have 3 elements',a[0]));case"in":case"!in":a.length>=2&&(t=getType(a[1]),"string"!==t&&s.push(new ValidationError(n+"[1]",a[1],"string expected, %s found",t)));for(var o=2;ounbundle(r[0].zoom))return[new ValidationError(o,r[0].zoom,"stop zoom values must appear in ascending order")];unbundle(r[0].zoom)!==l&&(l=unbundle(r[0].zoom),i=void 0,s={}),t=t.concat(validateObject({key:o+"[0]",value:r[0],valueSpec:{zoom:{}},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:validateNumber,value:a}}))}else t=t.concat(a({key:o+"[0]",value:r[0],valueSpec:{},style:e.style,styleSpec:e.styleSpec}));return t.concat(validate({key:o+"[1]",value:r[1],valueSpec:u,style:e.style,styleSpec:e.styleSpec}))}function a(e){var t=getType(e.value),r=unbundle(e.value);if(n){if(t!==n)return[new ValidationError(e.key,e.value,"%s stop domain type must match previous stop domain type %s",t,n)]}else n=t;if("number"!==t&&"string"!==t&&"boolean"!==t)return[new ValidationError(e.key,e.value,"stop domain value must be a number, string, or boolean")];if("number"!==t&&"categorical"!==p){var a="number expected, %s found";return u["property-function"]&&void 0===p&&(a+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ValidationError(e.key,e.value,a,t)]}return"categorical"!==p||"number"!==t||isFinite(r)&&Math.floor(r)===r?"number"===t&&void 0!==i&&r=8&&(d&&!e.valueSpec["property-function"]?v.push(new ValidationError(e.key,e.value,"property functions not supported")):y&&!e.valueSpec["zoom-function"]&&v.push(new ValidationError(e.key,e.value,"zoom functions not supported"))),"categorical"!==p&&!c||void 0!==e.value.property||v.push(new ValidationError(e.key,e.value,'"property" property is required')),v}; +},{"../error/validation_error":102,"../util/get_type":120,"../util/unbundle_jsonlint":123,"./validate":124,"./validate_array":125,"./validate_number":136,"./validate_object":137}],132:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateString=require("./validate_string");module.exports=function(r){var e=r.value,t=r.key,a=validateString(r);return a.length?a:(e.indexOf("{fontstack}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{range}" token')),a)}; +},{"../error/validation_error":102,"./validate_string":141}],133:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateFilter=require("./validate_filter"),validatePaintProperty=require("./validate_paint_property"),validateLayoutProperty=require("./validate_layout_property"),extend=require("../util/extend");module.exports=function(e){var r=[],t=e.value,a=e.key,i=e.style,l=e.styleSpec;t.type||t.ref||r.push(new ValidationError(a,t,'either "type" or "ref" is required'));var u=unbundle(t.type),n=unbundle(t.ref);if(t.id)for(var o=unbundle(t.id),s=0;sm.maximum?[new ValidationError(r,i,"%s is greater than the maximum value %s",i,m.maximum)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],137:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),getType=require("../util/get_type"),validateSpec=require("./validate");module.exports=function(e){var r=e.key,t=e.value,i=e.valueSpec||{},a=e.objectElementValidators||{},o=e.style,l=e.styleSpec,n=[],u=getType(t);if("object"!==u)return[new ValidationError(r,t,"object expected, %s found",u)];for(var d in t){var p=d.split(".")[0],s=i[p]||i["*"],c=void 0;if(a[p])c=a[p];else if(i[p])c=validateSpec;else if(a["*"])c=a["*"];else{if(!i["*"]){n.push(new ValidationError(r,t[d],'unknown property "%s"',d));continue}c=validateSpec}n=n.concat(c({key:(r?r+".":r)+d,value:t[d],valueSpec:s,style:o,styleSpec:l,object:t,objectKey:d}))}for(var v in i)i[v].required&&void 0===i[v].default&&void 0===t[v]&&n.push(new ValidationError(r,t,'missing required property "%s"',v));return n}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],138:[function(require,module,exports){ +"use strict";var validateProperty=require("./validate_property");module.exports=function(r){return validateProperty(r,"paint")}; +},{"./validate_property":139}],139:[function(require,module,exports){ +"use strict";var validate=require("./validate"),ValidationError=require("../error/validation_error"),getType=require("../util/get_type");module.exports=function(e,t){var r=e.key,i=e.style,a=e.styleSpec,n=e.value,o=e.objectKey,l=a[t+"_"+e.layerType];if(!l)return[];var y=o.match(/^(.*)-transition$/);if("paint"===t&&y&&l[y[1]]&&l[y[1]].transition)return validate({key:r,value:n,valueSpec:a.transition,style:i,styleSpec:a});var p=e.valueSpec||l[o];if(!p)return[new ValidationError(r,n,'unknown property "%s"',o)];var s;if("string"===getType(n)&&p["property-function"]&&!p.tokens&&(s=/^{([^}]+)}$/.exec(n)))return[new ValidationError(r,n,'"%s" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": %s` }`.',o,JSON.stringify(s[1]))];var u=[];return"symbol"===e.layerType&&"text-field"===o&&i&&!i.glyphs&&u.push(new ValidationError(r,n,'use of "text-field" requires a style "glyphs" property')),u.concat(validate({key:e.key,value:n,valueSpec:p,style:i,styleSpec:a}))}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],140:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateEnum=require("./validate_enum");module.exports=function(e){var a=e.value,t=e.key,r=e.styleSpec,l=e.style;if(!a.type)return[new ValidationError(t,a,'"type" is required')];var u=unbundle(a.type),i=[];switch(u){case"vector":case"raster":if(i=i.concat(validateObject({key:t,value:a,valueSpec:r.source_tile,style:e.style,styleSpec:r})),"url"in a)for(var s in a)["type","url","tileSize"].indexOf(s)<0&&i.push(new ValidationError(t+"."+s,a[s],'a source with a "url" property may not include a "%s" property',s));return i;case"geojson":return validateObject({key:t,value:a,valueSpec:r.source_geojson,style:l,styleSpec:r});case"video":return validateObject({key:t,value:a,valueSpec:r.source_video,style:l,styleSpec:r});case"image":return validateObject({key:t,value:a,valueSpec:r.source_image,style:l,styleSpec:r});case"canvas":return validateObject({key:t,value:a,valueSpec:r.source_canvas,style:l,styleSpec:r});default:return validateEnum({key:t+".type",value:a.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:l,styleSpec:r})}}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123,"./validate_enum":129,"./validate_object":137}],141:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),ValidationError=require("../error/validation_error");module.exports=function(r){var e=r.value,t=r.key,i=getType(e);return"string"!==i?[new ValidationError(t,e,"string expected, %s found",i)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],142:[function(require,module,exports){ +"use strict";function validateStyleMin(e,a){a=a||latestStyleSpec;var t=[];return t=t.concat(validate({key:"",value:e,valueSpec:a.$root,styleSpec:a,style:e,objectElementValidators:{glyphs:validateGlyphsURL,"*":function(){return[]}}})),a.$version>7&&e.constants&&(t=t.concat(validateConstants({key:"constants",value:e.constants,style:e,styleSpec:a}))),sortErrors(t)}function sortErrors(e){return[].concat(e).sort(function(e,a){return e.line-a.line})}function wrapCleanErrors(e){return function(){return sortErrors(e.apply(this,arguments))}}var validateConstants=require("./validate/validate_constants"),validate=require("./validate/validate"),latestStyleSpec=require("./reference/latest"),validateGlyphsURL=require("./validate/validate_glyphs_url");validateStyleMin.source=wrapCleanErrors(require("./validate/validate_source")),validateStyleMin.light=wrapCleanErrors(require("./validate/validate_light")),validateStyleMin.layer=wrapCleanErrors(require("./validate/validate_layer")),validateStyleMin.filter=wrapCleanErrors(require("./validate/validate_filter")),validateStyleMin.paintProperty=wrapCleanErrors(require("./validate/validate_paint_property")),validateStyleMin.layoutProperty=wrapCleanErrors(require("./validate/validate_layout_property")),module.exports=validateStyleMin; +},{"./reference/latest":117,"./validate/validate":124,"./validate/validate_constants":128,"./validate/validate_filter":130,"./validate/validate_glyphs_url":132,"./validate/validate_layer":133,"./validate/validate_layout_property":134,"./validate/validate_light":135,"./validate/validate_paint_property":138,"./validate/validate_source":140}],143:[function(require,module,exports){ +"use strict";var AnimationLoop=function(){this.n=0,this.times=[]};AnimationLoop.prototype.stopped=function(){return this.times=this.times.filter(function(t){return t.time>=(new Date).getTime()}),!this.times.length},AnimationLoop.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},AnimationLoop.prototype.cancel=function(t){this.times=this.times.filter(function(i){return i.id!==t})},module.exports=AnimationLoop; +},{}],144:[function(require,module,exports){ +"use strict";var Evented=require("../util/evented"),ajax=require("../util/ajax"),browser=require("../util/browser"),normalizeURL=require("../util/mapbox").normalizeSpriteURL,SpritePosition=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},ImageSprite=function(t){function i(i,e){var a=this;t.call(this),this.base=i,this.retina=browser.devicePixelRatio>1,this.setEventedParent(e);var r=this.retina?"@2x":"";ajax.getJSON(normalizeURL(i,r,".json"),function(t,i){return t?void a.fire("error",{error:t}):(a.data=i,void(a.imgData&&a.fire("data",{dataType:"style"})))}),ajax.getImage(normalizeURL(i,r,".png"),function(t,i){if(t)return void a.fire("error",{error:t});a.imgData=browser.getImageData(i);for(var e=0;e1!==this.retina){var e=new i(this.base);e.on("data",function(){t.data=e.data,t.imgData=e.imgData,t.width=e.width,t.retina=e.retina})}},i.prototype.getSpritePosition=function(t){if(!this.loaded())return new SpritePosition;var i=this.data&&this.data[t];return i&&this.imgData?i:new SpritePosition},i}(Evented);module.exports=ImageSprite; +},{"../util/ajax":191,"../util/browser":192,"../util/evented":200,"../util/mapbox":208}],145:[function(require,module,exports){ +"use strict";var styleSpec=require("../style-spec/reference/latest"),util=require("../util/util"),Evented=require("../util/evented"),validateStyle=require("./validate_style"),StyleDeclaration=require("./style_declaration"),StyleTransition=require("./style_transition"),TRANSITION_SUFFIX="-transition",Light=function(t){function i(i){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=styleSpec.light,this.set(i)}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.set=function(t){var i=this;if(!this._validate(validateStyle.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=util.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var e=0,o=i.properties;eMath.floor(e)&&(t.lastIntegerZoom=Math.floor(e+1),t.lastIntegerZoomTime=Date.now()),t.lastZoom=e},t.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},t.prototype.update=function(e,t){var r=this;if(this._changed){var i=Object.keys(this._updatedLayers),o=Object.keys(this._removedLayers);(i.length||o.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(i,o);for(var s in r._updatedSources){var a=r._updatedSources[s];"reload"===a?r._reloadSource(s):"clear"===a&&r._clearSource(s)}this._applyClasses(e,t),this._resetUpdates(),this.fire("data",{dataType:"style"})}},t.prototype._updateWorkerLayers=function(e,t){var r=this,i=this._updatedSymbolOrder?this._order.filter(function(e){return"symbol"===r._layers[e].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(e),removedIds:t,symbolOrder:i})},t.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={},this._updatedAllPaintProps=!1},t.prototype.setState=function(e){var t=this;if(this._checkLoaded(),validateStyle.emitErrors(this,validateStyle(e)))return!1;e=util.extend({},e),e.layers=deref(e.layers);var r=diff(this.serialize(),e).filter(function(e){return!(e.command in ignoredDiffOperations)});if(0===r.length)return!1;var i=r.filter(function(e){return!(e.command in supportedDiffOperations)});if(i.length>0)throw new Error("Unimplemented: "+i.map(function(e){return e.command}).join(", ")+".");return r.forEach(function(e){"setTransition"!==e.command&&t[e.command].apply(t,e.args)}),this.stylesheet=e,!0},t.prototype.addSource=function(e,t,r){var i=this;if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!t.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(t)+".");var o=["vector","raster","geojson","video","image","canvas"],s=o.indexOf(t.type)>=0;if(!s||!this._validate(validateStyle.source,"sources."+e,t,null,r)){var a=this.sourceCaches[e]=new SourceCache(e,t,this.dispatcher);a.style=this,a.setEventedParent(this,function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}}),a.onAdd(this.map),this._changed=!0}},t.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");var t=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],t.setEventedParent(null),t.clearTiles(),t.onRemove&&t.onRemove(this.map),this._changed=!0},t.prototype.getSource=function(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()},t.prototype.addLayer=function(e,t,r){this._checkLoaded();var i=e.id;if("object"==typeof e.source&&(this.addSource(i,e.source),e=util.extend(e,{source:i})),!this._validate(validateStyle.layer,"layers."+i,e,{arrayIndex:-1},r)){var o=StyleLayer.create(e);this._validateLayer(o),o.setEventedParent(this,{layer:{id:i}});var s=t?this._order.indexOf(t):this._order.length;if(this._order.splice(s,0,i),this._layers[i]=o,this._removedLayers[i]&&o.source){var a=this._removedLayers[i];delete this._removedLayers[i],this._updatedSources[o.source]=a.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(i)}},t.prototype.moveLayer=function(e,t){this._checkLoaded(),this._changed=!0;var r=this._layers[e];if(!r)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")});var i=this._order.indexOf(e);this._order.splice(i,1);var o=t?this._order.indexOf(t):this._order.length;this._order.splice(o,0,e),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},t.prototype.removeLayer=function(e){this._checkLoaded();var t=this._layers[e];if(!t)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")});t.setEventedParent(null);var r=this._order.indexOf(e);this._order.splice(r,1),"symbol"===t.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[e]=t,delete this._layers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e]},t.prototype.getLayer=function(e){return this._layers[e]},t.prototype.setLayerZoomRange=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(i.minzoom===t&&i.maxzoom===r||(null!=t&&(i.minzoom=t),null!=r&&(i.maxzoom=r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")})},t.prototype.setFilter=function(e,t){this._checkLoaded();var r=this.getLayer(e);return r?void(null!==t&&void 0!==t&&this._validate(validateStyle.filter,"layers."+r.id+".filter",t)||util.deepEqual(r.filter,t)||(r.filter=util.clone(t),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")})},t.prototype.getFilter=function(e){return util.clone(this.getLayer(e).filter)},t.prototype.setLayoutProperty=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(util.deepEqual(i.getLayoutProperty(t),r)||(i.setLayoutProperty(t,r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")})},t.prototype.getLayoutProperty=function(e,t){return this.getLayer(e).getLayoutProperty(t)},t.prototype.setPaintProperty=function(e,t,r,i){this._checkLoaded();var o=this.getLayer(e);if(!o)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")});if(!util.deepEqual(o.getPaintProperty(t,i),r)){var s=o.isPaintValueFeatureConstant(t);o.setPaintProperty(t,r,i);var a=!(r&&MapboxGLFunction.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&s||this._updateLayer(o),this.updateClasses(e,t)}},t.prototype.getPaintProperty=function(e,t,r){return this.getLayer(e).getPaintProperty(t,r)},t.prototype.getTransition=function(){return util.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},t.prototype.updateClasses=function(e,t){if(this._changed=!0,e){var r=this._updatedPaintProps;r[e]||(r[e]={}),r[e][t||"all"]=!0}else this._updatedAllPaintProps=!0},t.prototype.serialize=function(){var e=this;return util.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:util.mapObject(this.sourceCaches,function(e){return e.serialize()}),layers:this._order.map(function(t){return e._layers[t].serialize()})},function(e){return void 0!==e})},t.prototype._updateLayer=function(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&(this._updatedSources[e.source]="reload"),this._changed=!0},t.prototype._flattenRenderedFeatures=function(e){for(var t=this,r=[],i=this._order.length-1;i>=0;i--)for(var o=t._order[i],s=0,a=e;s=this.maxzoom)||"none"===this.layout.visibility)},i.prototype.updatePaintTransitions=function(t,i,a,e,n){for(var o=this,r=util.extend({},this._paintDeclarations[""]),s=0;s=this.endTime)return e;var a=this.oldTransition.calculate(t,i,this.startTime),n=util.easeCubicInOut((o-this.startTime-this.delay)/this.duration);return this.interp(a,e,n)},StyleTransition.prototype._calculateTargetValue=function(t,i){if(!this.zoomTransitioned)return this.declaration.calculate(t,i);var o=t.zoom,e=this.zoomHistory.lastIntegerZoom,a=o>e?2:.5,n=this.declaration.calculate({zoom:o>e?o-1:o+1},i),r=this.declaration.calculate({zoom:o},i),s=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(o-e),u=interpolate(s,1,l);return void 0!==n&&void 0!==r?{from:n,fromScale:a,to:r,toScale:1,t:u}:void 0},module.exports=StyleTransition; +},{"../util/interpolate":204,"../util/util":212}],156:[function(require,module,exports){ +"use strict";module.exports=require("../style-spec/validate_style.min"),module.exports.emitErrors=function(r,e){if(e&&e.length){for(var t=0;t-a/2;){if(s--,s<0)return!1;f-=e[s].dist(i),i=e[s]}f+=e[s].dist(e[s+1]),s++;for(var l=[],o=0;fr;)o-=l.shift().angleDelta;if(o>n)return!1;s++,f+=c.dist(g)}return!0}module.exports=checkMaxAngle; +},{}],159:[function(require,module,exports){ +"use strict";function clipLine(n,x,y,o,e){for(var r=[],t=0;t=o&&w.x>=o||(P.x>=o?P=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round():w.x>=o&&(w=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round()),P.y>=e&&w.y>=e||(P.y>=e?P=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round():w.y>=e&&(w=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round()),u&&P.equals(u[u.length-1])||(u=[P],r.push(u)),u.push(w)))))}return r}var Point=require("point-geometry");module.exports=clipLine; +},{"point-geometry":26}],160:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),Point=require("point-geometry"),CollisionBoxArray=createStructArrayType({members:[{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:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(CollisionBoxArray.prototype.StructType.prototype,"anchorPoint",{get:function(){return new Point(this.anchorPointX,this.anchorPointY)}}),module.exports=CollisionBoxArray; +},{"../util/struct_array":210,"point-geometry":26}],161:[function(require,module,exports){ +"use strict";var CollisionFeature=function(t,e,i,o,s,a,n,r,l,d,u){var h=n.top*r-l,x=n.bottom*r+l,f=n.left*r-l,m=n.right*r+l;if(this.boxStartIndex=t.length,d){var _=x-h,b=m-f;if(_>0)if(_=Math.max(10*r,_),u){var v=e[i.segment+1].sub(e[i.segment])._unit()._mult(b),c=[i.sub(v),i.add(v)];this._addLineCollisionBoxes(t,c,i,0,b,_,o,s,a)}else this._addLineCollisionBoxes(t,e,i,i.segment,b,_,o,s,a)}else t.emplaceBack(i.x,i.y,f,h,m,x,1/0,o,s,a,0,0,0,0,0);this.boxEndIndex=t.length};CollisionFeature.prototype._addLineCollisionBoxes=function(t,e,i,o,s,a,n,r,l){var d=a/2,u=Math.floor(s/d),h=-a/2,x=this.boxes,f=i,m=o+1,_=h;do{if(m--,m<0)return x;_-=e[m].dist(f),f=e[m]}while(_>-s/2);for(var b=e[m].dist(e[m+1]),v=0;v=e.length)return x;b=e[m].dist(e[m+1])}var g=c-_,p=e[m],C=e[m+1],B=C.sub(p)._unit()._mult(g)._add(p)._round(),M=Math.max(Math.abs(c-h)-d/2,0),y=s/2/M;t.emplaceBack(B.x,B.y,-a/2,-a/2,a/2,a/2,y,n,r,l,0,0,0,0,0)}return x},module.exports=CollisionFeature; +},{}],162:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),EXTENT=require("../data/extent"),Grid=require("grid-index"),intersectionTests=require("../util/intersection_tests"),CollisionTile=function(t,e,i){if("object"==typeof t){var r=t;i=e,t=r.angle,e=r.pitch,this.grid=new Grid(r.grid),this.ignoredGrid=new Grid(r.ignoredGrid)}else this.grid=new Grid(EXTENT,12,6),this.ignoredGrid=new Grid(EXTENT,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),o=Math.cos(t);if(this.rotationMatrix=[o,-a,a,o],this.reverseRotationMatrix=[o,a,-a,o],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=i,0===i.length){i.emplaceBack();var n=32767;i.emplaceBack(0,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(EXTENT,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,0,-n,0,n,0,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,EXTENT,-n,0,n,0,n,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=i.get(0),this.edges=[i.get(1),i.get(2),i.get(3),i.get(4)]};CollisionTile.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),i=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(i)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:i}},CollisionTile.prototype.placeCollisionFeature=function(t,e,i){for(var r=this,a=this.collisionBoxArray,o=this.minScale,n=this.rotationMatrix,l=this.yStretch,h=t.boxStartIndex;h=r.maxScale)return o}if(i){var S=void 0;if(r.angle){var P=r.reverseRotationMatrix,b=new Point(s.x1,s.y1).matMult(P),T=new Point(s.x2,s.y1).matMult(P),w=new Point(s.x1,s.y2).matMult(P),N=new Point(s.x2,s.y2).matMult(P);S=r.tempCollisionBox,S.anchorPointX=s.anchorPoint.x,S.anchorPointY=s.anchorPoint.y,S.x1=Math.min(b.x,T.x,w.x,N.x),S.y1=Math.min(b.y,T.x,w.x,N.x),S.x2=Math.max(b.x,T.x,w.x,N.x),S.y2=Math.max(b.y,T.x,w.x,N.x),S.maxScale=s.maxScale}else S=s;for(var B=0;B=r.maxScale)return o}}}return o},CollisionTile.prototype.queryRenderedSymbols=function(t,e){var i={},r=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return r;for(var a=this.collisionBoxArray,o=this.rotationMatrix,n=this.yStretch,l=[],h=1/0,s=1/0,x=-(1/0),c=-(1/0),g=0;gS.maxScale)){var T=S.anchorPoint.matMult(o),w=T.x+S.x1/e,N=T.y+S.y1/e*n,B=T.x+S.x2/e,G=T.y+S.y2/e*n,E=[new Point(w,N),new Point(B,N),new Point(B,G),new Point(w,G)];intersectionTests.polygonIntersectsPolygon(l,E)&&(i[P][b]=!0,r.push(u[v]))}}return r},CollisionTile.prototype.getPlacementScale=function(t,e,i,r,a){var o=e.x-r.x,n=e.y-r.y,l=(a.x1-i.x2)/o,h=(a.x2-i.x1)/o,s=(a.y1-i.y2)*this.yStretch/n,x=(a.y2-i.y1)*this.yStretch/n;(isNaN(l)||isNaN(h))&&(l=h=1),(isNaN(s)||isNaN(x))&&(s=x=1);var c=Math.min(Math.max(l,h),Math.max(s,x)),g=a.maxScale,y=i.maxScale;return c>g&&(c=g),c>y&&(c=y),c>t&&c>=a.placementScale&&(t=c),t},CollisionTile.prototype.insertCollisionFeature=function(t,e,i){for(var r=this,a=i?this.ignoredGrid:this.grid,o=this.collisionBoxArray,n=t.boxStartIndex;n=0&&k=0&&q=0&&p+c<=s){var M=new Anchor(k,q,y,f)._round();n&&!checkMaxAngle(e,M,l,n,a)||x.push(M)}}g+=A}return i||x.length||o||(x=resample(e,g/2,t,n,a,l,o,!0,h)),x}var interpolate=require("../util/interpolate"),Anchor=require("../symbol/anchor"),checkMaxAngle=require("./check_max_angle");module.exports=getAnchors; +},{"../symbol/anchor":157,"../util/interpolate":204,"./check_max_angle":158}],164:[function(require,module,exports){ +"use strict";var ShelfPack=require("@mapbox/shelf-pack"),util=require("../util/util"),SIZE_GROWTH_RATE=4,DEFAULT_SIZE=128,MAX_SIZE=2048,GlyphAtlas=function(){this.width=DEFAULT_SIZE,this.height=DEFAULT_SIZE,this.atlas=new ShelfPack(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};GlyphAtlas.prototype.getGlyphs=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]=[]),r[i].push(e);return r},GlyphAtlas.prototype.getRects=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]={}),r[i][e]=h.index[s];return r},GlyphAtlas.prototype.addGlyph=function(t,i,e,h){var r=this;if(!e)return null;var s=i+"#"+e.id;if(this.index[s])return this.ids[s].indexOf(t)<0&&this.ids[s].push(t),this.index[s];if(!e.bitmap)return null;var a=e.width+2*h,E=e.height+2*h,n=1,l=a+2*n,T=E+2*n;l+=4-l%4,T+=4-T%4;var u=this.atlas.packOne(l,T);if(u||(this.resize(),u=this.atlas.packOne(l,T)),!u)return util.warnOnce("glyph bitmap overflow"),null;this.index[s]=u,this.ids[s]=[t];for(var d=this.data,p=e.bitmap,A=0;A=MAX_SIZE||e>=MAX_SIZE)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=SIZE_GROWTH_RATE,this.height*=SIZE_GROWTH_RATE,this.atlas.resize(this.width,this.height);for(var h=new ArrayBuffer(this.width*this.height),r=0;r65535)return a("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var l=this.loading[t];if(l[e])l[e].push(a);else{l[e]=[a];var i=256*e+"-"+(256*e+255),r=glyphUrl(t,i,this.url);ajax.getArrayBuffer(r,function(t,a){for(var i=!t&&new Glyphs(new Protobuf(a.data)),r=0;r1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},i.prototype.addIcons=function(t,i){for(var e=this,r=0;r1||(b?(clearTimeout(b),b=null,h("dblclick",t)):b=setTimeout(l,300))}function i(e){f("touchmove",e)}function c(e){f("touchend",e)}function d(e){f("touchcancel",e)}function l(){b=null}function s(e){var t=DOM.mousePos(g,e);t.equals(L)&&h("click",e)}function v(e){h("dblclick",e),e.preventDefault()}function m(t){var n=e.dragRotate&&e.dragRotate.isActive();E||n?E&&(p=t):h("contextmenu",t),t.preventDefault()}function h(t,n){var o=DOM.mousePos(g,n);return e.fire(t,{lngLat:e.unproject(o),point:o,originalEvent:n})}function f(t,n){var o=DOM.touchPos(g,n),r=o.reduce(function(e,t,n,o){return e.add(t.div(o.length))},new Point(0,0));return e.fire(t,{lngLat:e.unproject(r),point:r,lngLats:o.map(function(t){return e.unproject(t)},this),points:o,originalEvent:n})}var g=e.getCanvasContainer(),p=null,E=!1,L=null,b=null;for(var q in handlers)e[q]=new handlers[q](e,t),t.interactive&&t[q]&&e[q].enable(t[q]);g.addEventListener("mouseout",n,!1),g.addEventListener("mousedown",o,!1),g.addEventListener("mouseup",r,!1),g.addEventListener("mousemove",a,!1),g.addEventListener("touchstart",u,!1),g.addEventListener("touchend",c,!1),g.addEventListener("touchmove",i,!1),g.addEventListener("touchcancel",d,!1),g.addEventListener("click",s,!1),g.addEventListener("dblclick",v,!1),g.addEventListener("contextmenu",m,!1)}; +},{"../util/dom":199,"./handler/box_zoom":179,"./handler/dblclick_zoom":180,"./handler/drag_pan":181,"./handler/drag_rotate":182,"./handler/keyboard":183,"./handler/scroll_zoom":184,"./handler/touch_zoom_rotate":185,"point-geometry":26}],172:[function(require,module,exports){ +"use strict";var util=require("../util/util"),interpolate=require("../util/interpolate"),browser=require("../util/browser"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),Evented=require("../util/evented"),Camera=function(t){function i(i,e){t.call(this),this.moving=!1,this.transform=i,this._bearingSnap=e.bearingSnap}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.getCenter=function(){return this.transform.center},i.prototype.setCenter=function(t,i){return this.jumpTo({center:t},i),this},i.prototype.panBy=function(t,i,e){return this.panTo(this.transform.center,util.extend({offset:Point.convert(t).mult(-1)},i),e),this},i.prototype.panTo=function(t,i,e){return this.easeTo(util.extend({center:t},i),e)},i.prototype.getZoom=function(){return this.transform.zoom},i.prototype.setZoom=function(t,i){return this.jumpTo({zoom:t},i),this},i.prototype.zoomTo=function(t,i,e){return this.easeTo(util.extend({zoom:t},i),e)},i.prototype.zoomIn=function(t,i){return this.zoomTo(this.getZoom()+1,t,i),this},i.prototype.zoomOut=function(t,i){return this.zoomTo(this.getZoom()-1,t,i),this},i.prototype.getBearing=function(){return this.transform.bearing},i.prototype.setBearing=function(t,i){return this.jumpTo({bearing:t},i),this},i.prototype.rotateTo=function(t,i,e){return this.easeTo(util.extend({bearing:t},i),e)},i.prototype.resetNorth=function(t,i){return this.rotateTo(0,util.extend({duration:1e3},t),i),this},i.prototype.snapToNorth=function(t,i){return Math.abs(this.getBearing())i?1:0}),["bottom","left","right","top"]))return void util.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'");t=LngLatBounds.convert(t);var n=[i.padding.left-i.padding.right,i.padding.top-i.padding.bottom],r=Math.min(i.padding.right,i.padding.left),s=Math.min(i.padding.top,i.padding.bottom);i.offset=[i.offset[0]+n[0],i.offset[1]+n[1]];var a=Point.convert(i.offset),h=this.transform,u=h.project(t.getNorthWest()),p=h.project(t.getSouthEast()),c=p.sub(u),g=(h.width-2*r-2*Math.abs(a.x))/c.x,m=(h.height-2*s-2*Math.abs(a.y))/c.y;return m<0||g<0?void util.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."):(i.center=h.unproject(u.add(p).div(2)),i.zoom=Math.min(h.scaleZoom(h.scale*Math.min(g,m)),i.maxZoom),i.bearing=0,i.linear?this.easeTo(i,e):this.flyTo(i,e))},i.prototype.jumpTo=function(t,i){this.stop();var e=this.transform,o=!1,n=!1,r=!1;return"zoom"in t&&e.zoom!==+t.zoom&&(o=!0,e.zoom=+t.zoom),"center"in t&&(e.center=LngLat.convert(t.center)),"bearing"in t&&e.bearing!==+t.bearing&&(n=!0,e.bearing=+t.bearing),"pitch"in t&&e.pitch!==+t.pitch&&(r=!0,e.pitch=+t.pitch),this.fire("movestart",i).fire("move",i),o&&this.fire("zoomstart",i).fire("zoom",i).fire("zoomend",i),n&&this.fire("rotate",i),r&&this.fire("pitch",i),this.fire("moveend",i)},i.prototype.easeTo=function(t,i){var e=this;this.stop(),t=util.extend({offset:[0,0],duration:500,easing:util.ease},t);var o,n,r=this.transform,s=Point.convert(t.offset),a=this.getZoom(),h=this.getBearing(),u=this.getPitch(),p="zoom"in t?+t.zoom:a,c="bearing"in t?this._normalizeBearing(t.bearing,h):h,g="pitch"in t?+t.pitch:u;"center"in t?(o=LngLat.convert(t.center),n=r.centerPoint.add(s)):"around"in t?(o=LngLat.convert(t.around),n=r.locationPoint(o)):(n=r.centerPoint.add(s),o=r.pointLocation(n));var m=r.locationPoint(o);return t.animate===!1&&(t.duration=0),this.zooming=p!==a,this.rotating=h!==c,this.pitching=g!==u,t.smoothEasing&&0!==t.duration&&(t.easing=this._smoothOutEasing(t.duration)),t.noMoveStart||(this.moving=!0,this.fire("movestart",i)),this.zooming&&this.fire("zoomstart",i),clearTimeout(this._onEaseEnd),this._ease(function(t){this.zooming&&(r.zoom=interpolate(a,p,t)),this.rotating&&(r.bearing=interpolate(h,c,t)),this.pitching&&(r.pitch=interpolate(u,g,t)),r.setLocationAtPoint(o,m.add(n.sub(m)._mult(t))),this.fire("move",i),this.zooming&&this.fire("zoom",i),this.rotating&&this.fire("rotate",i),this.pitching&&this.fire("pitch",i)},function(){t.delayEndEvents?e._onEaseEnd=setTimeout(e._easeToEnd.bind(e,i),t.delayEndEvents):e._easeToEnd(i)},t),this},i.prototype._easeToEnd=function(t){var i=this.zooming;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,i&&this.fire("zoomend",t),this.fire("moveend",t)},i.prototype.flyTo=function(t,i){function e(t){var i=(y*y-z*z+(t?-1:1)*E*E*_*_)/(2*(t?y:z)*E*_);return Math.log(Math.sqrt(i*i+1)-i)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function n(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/n(t)}this.stop(),t=util.extend({offset:[0,0],speed:1.2,curve:1.42,easing:util.ease},t);var s=this.transform,a=Point.convert(t.offset),h=this.getZoom(),u=this.getBearing(),p=this.getPitch(),c="center"in t?LngLat.convert(t.center):this.getCenter(),g="zoom"in t?+t.zoom:h,m="bearing"in t?this._normalizeBearing(t.bearing,u):u,f="pitch"in t?+t.pitch:p;Math.abs(s.center.lng)+Math.abs(c.lng)>180&&(s.center.lng>0&&c.lng<0?c.lng+=360:s.center.lng<0&&c.lng>0&&(c.lng-=360));var d=s.zoomScale(g-h),l=s.point,v="center"in t?s.project(c).sub(a.div(d)):l,b=t.curve,z=Math.max(s.width,s.height),y=z/d,_=v.sub(l).mag();if("minZoom"in t){var M=util.clamp(Math.min(t.minZoom,h,g),s.minZoom,s.maxZoom),T=z/s.zoomScale(M-h);b=Math.sqrt(T/_*2)}var E=b*b,x=e(0),L=function(t){return n(x)/n(x+b*t)},Z=function(t){return z*((n(x)*r(x+b*t)-o(x))/E)/_},P=(e(1)-x)/b;if(Math.abs(_)<1e-6){if(Math.abs(z-y)<1e-6)return this.easeTo(t,i);var j=y=0)return!1;return!0}),this._container.innerHTML=i.join(" | "),this._editLink=null}},AttributionControl.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},module.exports=AttributionControl; +},{"../../util/dom":199,"../../util/util":212}],174:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),FullscreenControl=function(){this._fullscreen=!1,util.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in window.document&&(this._fullscreenchange="MSFullscreenChange")};FullscreenControl.prototype.onAdd=function(e){var n="mapboxgl-ctrl",t=this._container=DOM.create("div",n+" mapboxgl-ctrl-group"),l=this._fullscreenButton=DOM.create("button",n+"-icon "+n+"-fullscreen",this._container);return l.setAttribute("aria-label","Toggle fullscreen"),l.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),this._mapContainer=e.getContainer(),window.document.addEventListener(this._fullscreenchange,this._changeIcon),t},FullscreenControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},FullscreenControl.prototype._isFullscreen=function(){return this._fullscreen},FullscreenControl.prototype._changeIcon=function(e){if(e.target===this._mapContainer){this._fullscreen=!this._fullscreen;var n="mapboxgl-ctrl";this._fullscreenButton.classList.toggle(n+"-shrink"),this._fullscreenButton.classList.toggle(n+"-fullscreen")}},FullscreenControl.prototype._onClickFullscreen=function(){this._isFullscreen()?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._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()},module.exports=FullscreenControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],175:[function(require,module,exports){ +"use strict";function checkGeolocationSupport(t){void 0!==supportsGeolocation?t(supportsGeolocation):void 0!==window.navigator.permissions?window.navigator.permissions.query({name:"geolocation"}).then(function(o){supportsGeolocation="denied"!==o.state,t(supportsGeolocation)}):(supportsGeolocation=!!window.navigator.geolocation,t(supportsGeolocation))}var Evented=require("../../util/evented"),DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),defaultGeoPositionOptions={enableHighAccuracy:!1,timeout:6e3},className="mapboxgl-ctrl",supportsGeolocation,GeolocateControl=function(t){function o(o){t.call(this),this.options=o||{},util.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group"),checkGeolocationSupport(this._setupUI),this._container},o.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},o.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},o.prototype._onError=function(t){this.fire("error",t),this._finish()},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},o.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=DOM.create("button",className+"-icon "+className+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},o.prototype._onClickGeolocate=function(){var t=util.extend(defaultGeoPositionOptions,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},o}(Evented);module.exports=GeolocateControl; +},{"../../util/dom":199,"../../util/evented":200,"../../util/util":212,"../../util/window":194}],176:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),LogoControl=function(){util.bindAll(["_updateLogo"],this)};LogoControl.prototype.onAdd=function(o){return this._map=o,this._container=DOM.create("div","mapboxgl-ctrl"),this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._container},LogoControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("sourcedata",this._updateLogo)},LogoControl.prototype.getDefaultPosition=function(){return"bottom-left"},LogoControl.prototype._updateLogo=function(o){if(o&&"metadata"===o.sourceDataType)if(!this._container.childNodes.length&&this._logoRequired()){var t=DOM.create("a","mapboxgl-ctrl-logo");t.target="_blank",t.href="https://www.mapbox.com/",t.setAttribute("aria-label","Mapbox logo"),this._container.appendChild(t),this._map.off("data",this._updateLogo)}else this._container.childNodes.length&&!this._logoRequired()&&this.onRemove()},LogoControl.prototype._logoRequired=function(){if(this._map.style){var o=this._map.style.sourceCaches;for(var t in o){var e=o[t].getSource();if(e.mapbox_logo)return!0}return!1}},module.exports=LogoControl; +},{"../../util/dom":199,"../../util/util":212}],177:[function(require,module,exports){ +"use strict";function copyMouseEvent(t){return new window.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),className="mapboxgl-ctrl",NavigationControl=function(){util.bindAll(["_rotateCompassArrow"],this)};NavigationControl.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},NavigationControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(className+"-icon "+className+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(className+"-icon "+className+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(className+"-icon "+className+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=DOM.create("span",className+"-compass-arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},NavigationControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},NavigationControl.prototype._onContextMenu=function(t){t.preventDefault()},NavigationControl.prototype._onCompassDown=function(t){0===t.button&&(DOM.disableDrag(),window.document.addEventListener("mousemove",this._onCompassMove),window.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassUp=function(t){0===t.button&&(window.document.removeEventListener("mousemove",this._onCompassMove),window.document.removeEventListener("mouseup",this._onCompassUp),DOM.enableDrag(),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._createButton=function(t,o,e){var n=DOM.create("button",t,this._container);return n.type="button",n.setAttribute("aria-label",o),n.addEventListener("click",function(){e()}),n},module.exports=NavigationControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],178:[function(require,module,exports){ +"use strict";function updateScale(t,e,o){var n=o&&o.maxWidth||100,i=t._container.clientHeight/2,a=getDistance(t.unproject([0,i]),t.unproject([n,i]));if(o&&"imperial"===o.unit){var r=3.2808*a;if(r>5280){var l=r/5280;setScale(e,n,l,"mi")}else setScale(e,n,r,"ft")}else setScale(e,n,a,"m")}function setScale(t,e,o,n){var i=getRoundNum(o),a=i/o;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*a+"px",t.innerHTML=i+n}function getDistance(t,e){var o=6371e3,n=Math.PI/180,i=t.lat*n,a=e.lat*n,r=Math.sin(i)*Math.sin(a)+Math.cos(i)*Math.cos(a)*Math.cos((e.lng-t.lng)*n),l=o*Math.acos(Math.min(r,1));return l}function getRoundNum(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),o=t/e;return o=o>=10?10:o>=5?5:o>=3?3:o>=2?2:1,e*o}var DOM=require("../../util/dom"),util=require("../../util/util"),ScaleControl=function(t){this.options=t,util.bindAll(["_onMove"],this)};ScaleControl.prototype.getDefaultPosition=function(){return"bottom-left"},ScaleControl.prototype._onMove=function(){updateScale(this._map,this._container,this.options)},ScaleControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ScaleControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},module.exports=ScaleControl; +},{"../../util/dom":199,"../../util/util":212}],179:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),LngLatBounds=require("../../geo/lng_lat_bounds"),util=require("../../util/util"),window=require("../../util/window"),BoxZoomHandler=function(o){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),util.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};BoxZoomHandler.prototype.isEnabled=function(){return!!this._enabled},BoxZoomHandler.prototype.isActive=function(){return!!this._active},BoxZoomHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},BoxZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},BoxZoomHandler.prototype._onMouseDown=function(o){o.shiftKey&&0===o.button&&(window.document.addEventListener("mousemove",this._onMouseMove,!1),window.document.addEventListener("keydown",this._onKeyDown,!1),window.document.addEventListener("mouseup",this._onMouseUp,!1),DOM.disableDrag(),this._startPos=DOM.mousePos(this._el,o),this._active=!0)},BoxZoomHandler.prototype._onMouseMove=function(o){var e=this._startPos,t=DOM.mousePos(this._el,o);this._box||(this._box=DOM.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",o));var n=Math.min(e.x,t.x),i=Math.max(e.x,t.x),s=Math.min(e.y,t.y),r=Math.max(e.y,t.y);DOM.setTransform(this._box,"translate("+n+"px,"+s+"px)"),this._box.style.width=i-n+"px",this._box.style.height=r-s+"px"},BoxZoomHandler.prototype._onMouseUp=function(o){if(0===o.button){var e=this._startPos,t=DOM.mousePos(this._el,o),n=(new LngLatBounds).extend(this._map.unproject(e)).extend(this._map.unproject(t));this._finish(),e.x===t.x&&e.y===t.y?this._fireEvent("boxzoomcancel",o):this._map.fitBounds(n,{linear:!0}).fire("boxzoomend",{originalEvent:o,boxZoomBounds:n})}},BoxZoomHandler.prototype._onKeyDown=function(o){27===o.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",o))},BoxZoomHandler.prototype._finish=function(){this._active=!1,window.document.removeEventListener("mousemove",this._onMouseMove,!1),window.document.removeEventListener("keydown",this._onKeyDown,!1),window.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),DOM.enableDrag()},BoxZoomHandler.prototype._fireEvent=function(o,e){return this._map.fire(o,{originalEvent:e})},module.exports=BoxZoomHandler; +},{"../../geo/lng_lat_bounds":63,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],180:[function(require,module,exports){ +"use strict";var DoubleClickZoomHandler=function(o){this._map=o,this._onDblClick=this._onDblClick.bind(this)};DoubleClickZoomHandler.prototype.isEnabled=function(){return!!this._enabled},DoubleClickZoomHandler.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},DoubleClickZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},DoubleClickZoomHandler.prototype._onDblClick=function(o){this._map.zoomTo(this._map.getZoom()+(o.originalEvent.shiftKey?-1:1),{around:o.lngLat},o)},module.exports=DoubleClickZoomHandler; +},{}],181:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.3,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=1400,inertiaDeceleration=2500,DragPanHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};DragPanHandler.prototype.isEnabled=function(){return!!this._enabled},DragPanHandler.prototype.isActive=function(){return!!this._active},DragPanHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},DragPanHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},DragPanHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(window.document.addEventListener("touchmove",this._onMove),window.document.addEventListener("touchend",this._onTouchEnd)):(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onMouseUp)),window.addEventListener("blur",this._onMouseUp),this._active=!1,this._startPos=this._pos=DOM.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},DragPanHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=DOM.mousePos(this._el,t),n=this._map;n.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),n.transform.setLocationAtPoint(n.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},DragPanHandler.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var n=function(){e._map.moving=!1,e._fireEvent("moveend",t)},i=this._inertia;if(i.length<2)return void n();var o=i[i.length-1],r=i[0],a=o[1].sub(r[1]),s=(o[0]-r[0])/1e3;if(0===s||o[1].equals(r[1]))return void n();var u=a.mult(inertiaLinearity/s),d=u.mag();d>inertiaMaxSpeed&&(d=inertiaMaxSpeed,u._unit()._mult(d));var h=d/(inertiaDeceleration*inertiaLinearity),v=u.mult(-h/2);this._map.panBy(v,{duration:1e3*h,easing:inertiaEasing,noMoveStart:!0},{originalEvent:t})}},DragPanHandler.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onMouseUp),window.removeEventListener("blur",this._onMouseUp))},DragPanHandler.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onTouchEnd))},DragPanHandler.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},DragPanHandler.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var n=1,i=0;return"mousemove"===t.type?t.buttons&0===n:t.button&&t.button!==i},DragPanHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),n=160;t.length>0&&e-t[0][0]>n;)t.shift()},module.exports=DragPanHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],182:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.25,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=180,inertiaDeceleration=720,DragRotateHandler=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,util.bindAll(["_onDown","_onMove","_onUp"],this)};DragRotateHandler.prototype.isEnabled=function(){return!!this._enabled},DragRotateHandler.prototype.isActive=function(){return!!this._active},DragRotateHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},DragRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},DragRotateHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onUp),window.addEventListener("blur",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=DOM.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},DragRotateHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var i=this._pos,n=DOM.mousePos(this._el,t),r=.8*(i.x-n.x),a=(i.y-n.y)*-.5,o=e.getBearing()-r,s=e.getPitch()-a,h=this._inertia,v=h[h.length-1];this._drainInertiaBuffer(),h.push([Date.now(),e._normalizeBearing(o,v[1])]),e.transform.bearing=o,this._pitchWithRotate&&(e.transform.pitch=s),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=n}},DragRotateHandler.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onUp),window.removeEventListener("blur",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var i=this._map,n=i.getBearing(),r=this._inertia,a=function(){Math.abs(n)inertiaMaxSpeed&&(p=inertiaMaxSpeed);var l=p/(inertiaDeceleration*inertiaLinearity),g=u*p*(l/2);v+=g,Math.abs(i._normalizeBearing(v,0))1;var i=t.ctrlKey?1:2,n=t.ctrlKey?0:2,r=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&window.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(r=0),"mousemove"===t.type?t.buttons&0===i:!this.isActive()&&r!==n},DragRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),i=160;t.length>0&&e-t[0][0]>i;)t.shift()},module.exports=DragRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],183:[function(require,module,exports){ +"use strict";function easeOut(e){return e*(2-e)}var panStep=100,bearingStep=15,pitchStep=10,KeyboardHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};KeyboardHandler.prototype.isEnabled=function(){return!!this._enabled},KeyboardHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},KeyboardHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},KeyboardHandler.prototype._onKeyDown=function(e){if(!(e.altKey||e.ctrlKey||e.metaKey)){var t=0,n=0,a=0,i=0,r=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?a=1:(e.preventDefault(),r=-1);break;case 40:e.shiftKey?a=-1:(r=1,e.preventDefault())}var s=this._map,o=s.getZoom(),d={duration:300,delayEndEvents:500,easing:easeOut,zoom:t?Math.round(o)+t*(e.shiftKey?2:1):o,bearing:s.getBearing()+n*bearingStep,pitch:s.getPitch()+a*pitchStep,offset:[-i*panStep,-r*panStep],center:s.getCenter()};s.easeTo(d,{originalEvent:e})}},module.exports=KeyboardHandler; +},{}],184:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),browser=require("../../util/browser"),window=require("../../util/window"),ua=window.navigator.userAgent.toLowerCase(),firefox=ua.indexOf("firefox")!==-1,safari=ua.indexOf("safari")!==-1&&ua.indexOf("chrom")===-1,ScrollZoomHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),util.bindAll(["_onWheel","_onTimeout"],this)};ScrollZoomHandler.prototype.isEnabled=function(){return!!this._enabled},ScrollZoomHandler.prototype.enable=function(e){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=e&&"center"===e.around)},ScrollZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},ScrollZoomHandler.prototype._onWheel=function(e){var t;"wheel"===e.type?(t=e.deltaY,firefox&&e.deltaMode===window.WheelEvent.DOM_DELTA_PIXEL&&(t/=browser.devicePixelRatio),e.deltaMode===window.WheelEvent.DOM_DELTA_LINE&&(t*=40)):"mousewheel"===e.type&&(t=-e.wheelDeltaY,safari&&(t/=3));var o=browser.now(),i=o-(this._time||0);this._pos=DOM.mousePos(this._el,e),this._time=o,0!==t&&t%4.000244140625===0?this._type="wheel":0!==t&&Math.abs(t)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=t,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(i*t)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,t+=this._lastValue)),e.shiftKey&&t&&(t/=4),this._type&&this._zoom(-t,e),e.preventDefault()},ScrollZoomHandler.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},ScrollZoomHandler.prototype._zoom=function(e,t){if(0!==e){var o=this._map,i=2/(1+Math.exp(-Math.abs(e/100)));e<0&&0!==i&&(i=1/i);var l=o.ease?o.ease.to:o.transform.scale,s=o.transform.scaleZoom(l*i);o.zoomTo(s,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?o.getCenter():o.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:t})}},module.exports=ScrollZoomHandler; +},{"../../util/browser":192,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],185:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.15,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaDeceleration=12,inertiaMaxSpeed=2.5,significantScaleThreshold=.15,significantRotateThreshold=4,TouchZoomRotateHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onStart","_onMove","_onEnd"],this)};TouchZoomRotateHandler.prototype.isEnabled=function(){return!!this._enabled},TouchZoomRotateHandler.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},TouchZoomRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},TouchZoomRotateHandler.prototype.disableRotation=function(){this._rotationDisabled=!0},TouchZoomRotateHandler.prototype.enableRotation=function(){this._rotationDisabled=!1},TouchZoomRotateHandler.prototype._onStart=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]);this._startVec=e.sub(o),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],window.document.addEventListener("touchmove",this._onMove,!1),window.document.addEventListener("touchend",this._onEnd,!1)}},TouchZoomRotateHandler.prototype._onMove=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]),i=e.add(o).div(2),n=e.sub(o),a=n.mag()/this._startVec.mag(),r=this._rotationDisabled?0:180*n.angleWith(this._startVec)/Math.PI,s=this._map;if(this._gestureIntent){var h={duration:0,around:s.unproject(i)};"rotate"===this._gestureIntent&&(h.bearing=this._startBearing+r),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(h.zoom=s.transform.scaleZoom(this._startScale*a)),s.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,i]),s.easeTo(h,{originalEvent:t})}else{var u=Math.abs(1-a)>significantScaleThreshold,d=Math.abs(r)>significantRotateThreshold;d?this._gestureIntent="rotate":u&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=n,this._startScale=s.transform.scale,this._startBearing=s.transform.bearing)}t.preventDefault()}},TouchZoomRotateHandler.prototype._onEnd=function(t){window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,o=this._map;if(e.length<2)return void o.snapToNorth({},{originalEvent:t});var i=e[e.length-1],n=e[0],a=o.transform.scaleZoom(this._startScale*i[1]),r=o.transform.scaleZoom(this._startScale*n[1]),s=a-r,h=(i[0]-n[0])/1e3,u=i[2];if(0===h||a===r)return void o.snapToNorth({},{originalEvent:t});var d=s*inertiaLinearity/h;Math.abs(d)>inertiaMaxSpeed&&(d=d>0?inertiaMaxSpeed:-inertiaMaxSpeed);var l=1e3*Math.abs(d/(inertiaDeceleration*inertiaLinearity)),c=a+d*l/2e3;c<0&&(c=0),o.easeTo({zoom:c,duration:l,easing:inertiaEasing,around:this._aroundCenter?o.getCenter():o.unproject(u)},{originalEvent:t})},TouchZoomRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),o=160;t.length>2&&e-t[0][0]>o;)t.shift()},module.exports=TouchZoomRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],186:[function(require,module,exports){ +"use strict";var util=require("../util/util"),window=require("../util/window"),Hash=function(){util.bindAll(["_onHashChange","_updateHash"],this)};Hash.prototype.addTo=function(t){return this._map=t,window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Hash.prototype.remove=function(){return window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},Hash.prototype._onHashChange=function(){var t=window.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},Hash.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),a=this._map.getBearing(),h=this._map.getPitch(),i=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),n="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(i)+"/"+t.lng.toFixed(i);(a||h)&&(n+="/"+Math.round(10*a)/10),h&&(n+="/"+Math.round(h)),window.history.replaceState("","",n)},module.exports=Hash; +},{"../util/util":212,"../util/window":194}],187:[function(require,module,exports){ +"use strict";function removeNode(t){t.parentNode&&t.parentNode.removeChild(t)}var util=require("../util/util"),browser=require("../util/browser"),window=require("../util/window"),DOM=require("../util/dom"),Style=require("../style/style"),AnimationLoop=require("../style/animation_loop"),Painter=require("../render/painter"),Transform=require("../geo/transform"),Hash=require("./hash"),bindHandlers=require("./bind_handlers"),Camera=require("./camera"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),AttributionControl=require("./control/attribution_control"),LogoControl=require("./control/logo_control"),isSupported=require("mapbox-gl-supported"),defaultMinZoom=0,defaultMaxZoom=22,defaultOptions={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:defaultMinZoom,maxZoom:defaultMaxZoom,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0},Map=function(t){function e(e){var o=this;if(e=util.extend({},defaultOptions,e),null!=e.minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than minZoom");var i=new Transform(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,i,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,"string"==typeof e.container){if(this._container=window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new AnimationLoop,e.maxBounds&&this.setMaxBounds(e.maxBounds),util.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){o.animationLoop.set(300),o._rerender()}),"undefined"!=typeof window&&(window.addEventListener("online",this._onWindowOnline,!1),window.addEventListener("resize",this._onWindowResize,!1)),bindHandlers(this,e),this._hash=e.hash&&(new Hash).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new AttributionControl),this.addControl(new LogoControl,e.logoPosition),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var o={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var o=t.onAdd(this),i=this._controlPositions[e];return e.indexOf("bottom")!==-1?i.insertBefore(o,i.firstChild):i.appendChild(o),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var o=this._classes.indexOf(t);return o<0||""===t?this:(this._classes.splice(o,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var o={},i=0;i=0},e.prototype.getClasses=function(){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],o=t[1];return this._resizeCanvas(e,o),this.transform.resize(e,o),this.painter.resize(e,o),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new LngLatBounds(this.transform.pointLocation(new Point(0,this.transform.height)),this.transform.pointLocation(new Point(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new Point(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new Point(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=LngLatBounds.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?defaultMinZoom:t,t>=defaultMinZoom&&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")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(LngLat.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(Point.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof Point||Array.isArray(t)}var e,o={};return 2===arguments.length?(e=arguments[0],o=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(o=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),o,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[Point.convert([0,0]),Point.convert([this.transform.width,this.transform.height])]);var o,i=t instanceof Point||"number"==typeof t[0];if(i){var r=Point.convert(t);o=[r]}else{var s=[Point.convert(t[0]),Point.convert(t[1])];o=[s[0],new Point(s[1].x,s[0].y),s[1],new Point(s[0].x,s[1].y),s[0]]}return o=o.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var o=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof Style)&&"string"!=typeof t;if(o)try{return this.style.setState(t)&&this._update(!0),this}catch(t){util.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof Style?this.style=t:this.style=new Style(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,o){return this.style.addSourceType(t,e,o)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addImage=function(t,e,o){this.style.spriteAtlas.addImage(t,e,o)},e.prototype.removeImage=function(t){this.style.spriteAtlas.removeImage(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,o){return this.style.setLayerZoomRange(t,e,o),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,o,i){return this.style.setPaintProperty(t,e,o,i),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,o){return this.style.getPaintProperty(t,e,o)},e.prototype.setLayoutProperty=function(t,e,o){return this.style.setLayoutProperty(t,e,o),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=DOM.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=DOM.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",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");var o=this._containerDimensions();this._resizeCanvas(o[0],o[1]);var i=this._controlContainer=DOM.create("div","mapboxgl-control-container",t),r=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){r[t]=DOM.create("div","mapboxgl-ctrl-"+t,i)})},e.prototype._resizeCanvas=function(t,e){var o=window.devicePixelRatio||1;this._canvas.width=o*t,this._canvas.height=o*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=util.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},isSupported.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new Painter(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&browser.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),browser.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof window&&(window.removeEventListener("resize",this._onWindowResize,!1),window.removeEventListener("online",this._onWindowOnline,!1));var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),removeNode(this._canvasContainer),removeNode(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=browser.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},o.showTileBoundaries.get=function(){return!!this._showTileBoundaries},o.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},o.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},o.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},o.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},o.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},o.repaint.get=function(){return!!this._repaint},o.repaint.set=function(t){this._repaint=t,this._update()},o.vertices.get=function(){return!!this._vertices},o.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,o),e}(Camera);module.exports=Map; +},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../geo/transform":64,"../render/painter":77,"../style/animation_loop":143,"../style/style":146,"../util/browser":192,"../util/dom":199,"../util/util":212,"../util/window":194,"./bind_handlers":171,"./camera":172,"./control/attribution_control":173,"./control/logo_control":176,"./hash":186,"mapbox-gl-supported":22,"point-geometry":26}],188:[function(require,module,exports){ +"use strict";var DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),Marker=function(t,e){this._offset=Point.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=DOM.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};Marker.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},Marker.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),DOM.remove(this._element),this._popup&&this._popup.remove(),this},Marker.prototype.getLngLat=function(){return this._lngLat},Marker.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},Marker.prototype.getElement=function(){return this._element},Marker.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},Marker.prototype._onMapClick=function(t){var e=t.originalEvent.target,p=this._element;this._popup&&(e===p||p.contains(e))&&this.togglePopup()},Marker.prototype.getPopup=function(){return this._popup},Marker.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},Marker.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),DOM.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},module.exports=Marker; +},{"../geo/lng_lat":62,"../util/dom":199,"point-geometry":26}],189:[function(require,module,exports){ +"use strict";function normalizeOffset(t){if(t){if("number"==typeof t){var o=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new Point(0,t),"top-left":new Point(o,o),"top-right":new Point(-o,o),bottom:new Point(0,-t),"bottom-left":new Point(o,-o),"bottom-right":new Point(-o,-o),left:new Point(t,0),right:new Point(-t,0)}}if(isPointLike(t)){var e=Point.convert(t);return{top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{top:Point.convert(t.top||[0,0]),"top-left":Point.convert(t["top-left"]||[0,0]),"top-right":Point.convert(t["top-right"]||[0,0]),bottom:Point.convert(t.bottom||[0,0]),"bottom-left":Point.convert(t["bottom-left"]||[0,0]),"bottom-right":Point.convert(t["bottom-right"]||[0,0]),left:Point.convert(t.left||[0,0]),right:Point.convert(t.right||[0,0])}}return normalizeOffset(new Point(0,0))}function isPointLike(t){return t instanceof Point||Array.isArray(t)}var util=require("../util/util"),Evented=require("../util/evented"),DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),window=require("../util/window"),defaultOptions={closeButton:!0,closeOnClick:!0},Popup=function(t){function o(o){t.call(this),this.options=util.extend(Object.create(defaultOptions),o),util.bindAll(["_update","_onClickClose"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},o.prototype.isOpen=function(){return!!this._map},o.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},o.prototype.getLngLat=function(){return this._lngLat},o.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._update(),this},o.prototype.setText=function(t){return this.setDOMContent(window.document.createTextNode(t))},o.prototype.setHTML=function(t){var o,e=window.document.createDocumentFragment(),n=window.document.createElement("body");for(n.innerHTML=t;;){if(o=n.firstChild,!o)break;e.appendChild(o)}return this.setDOMContent(e)},o.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},o.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=DOM.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=DOM.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},o.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=DOM.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=DOM.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,o=normalizeOffset(this.options.offset),e=this._map.project(this._lngLat).round();if(!t){var n=this._container.offsetWidth,i=this._container.offsetHeight;t=e.y+o.bottom.ythis._map.transform.height-i?["bottom"]:[],e.xthis._map.transform.width-n/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var r=e.add(o[t]),s={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%)"},p=this._container.classList;for(var a in s)p.remove("mapboxgl-popup-anchor-"+a);p.add("mapboxgl-popup-anchor-"+t),DOM.setTransform(this._container,s[t]+" translate("+r.x+"px,"+r.y+"px)")}},o.prototype._onClickClose=function(){this.remove()},o}(Evented);module.exports=Popup; +},{"../geo/lng_lat":62,"../util/dom":199,"../util/evented":200,"../util/util":212,"../util/window":194,"point-geometry":26}],190:[function(require,module,exports){ +"use strict";var Actor=function(t,e,a){this.target=t,this.parent=e,this.mapId=a,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};Actor.prototype.send=function(t,e,a,r,s){var i=a?this.mapId+":"+this.callbackID++:null;a&&(this.callbacks[i]=a),this.target.postMessage({targetMapId:s,sourceMapId:this.mapId,type:t,id:String(i),data:e},r)},Actor.prototype.receive=function(t){var e,a=this,r=t.data,s=r.id;if(!r.targetMapId||this.mapId===r.targetMapId){var i=function(t,e,r){a.target.postMessage({sourceMapId:a.mapId,type:"",id:String(s),error:t?String(t):null,data:e},r)};if(""===r.type)e=this.callbacks[r.id],delete this.callbacks[r.id],e&&e(r.error||null,r.data);else if("undefined"!=typeof r.id&&this.parent[r.type])this.parent[r.type](r.sourceMapId,r.data,i);else if("undefined"!=typeof r.id&&this.parent.getWorkerSource){var p=r.type.split("."),d=this.parent.getWorkerSource(r.sourceMapId,p[0]);d[p[1]](r.data,i)}else this.parent[r.type](r.data)}},Actor.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},module.exports=Actor; +},{}],191:[function(require,module,exports){ +"use strict";function sameOrigin(e){var t=window.document.createElement("a");return t.href=e,t.protocol===window.document.location.protocol&&t.host===window.document.location.host}var window=require("./window");exports.getJSON=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.setRequestHeader("Accept","application/json"),n.onerror=function(e){t(e)},n.onload=function(){if(n.status>=200&&n.status<300&&n.response){var e;try{e=JSON.parse(n.response)}catch(e){return t(e)}t(null,e)}else t(new Error(n.statusText))},n.send(),n},exports.getArrayBuffer=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.responseType="arraybuffer",n.onerror=function(e){t(e)},n.onload=function(){return 0===n.response.byteLength&&200===n.status?t(new Error("http status 200 returned without content.")):void(n.status>=200&&n.status<300&&n.response?t(null,{data:n.response,cacheControl:n.getResponseHeader("Cache-Control"),expires:n.getResponseHeader("Expires")}):t(new Error(n.statusText)))},n.send(),n};var transparentPngUrl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";exports.getImage=function(e,t){return exports.getArrayBuffer(e,function(e,n){if(e)return t(e);var r=new window.Image,o=window.URL||window.webkitURL;r.onload=function(){t(null,r),o.revokeObjectURL(r.src)};var a=new window.Blob([new Uint8Array(n.data)],{type:"image/png"});r.cacheControl=n.cacheControl,r.expires=n.expires,r.src=n.data.byteLength?o.createObjectURL(a):transparentPngUrl})},exports.getVideo=function(e,t){var n=window.document.createElement("video");n.onloadstart=function(){t(null,n)};for(var r=0;r=a+n?e.call(t,1):(e.call(t,(i-a)/n),exports.frame(o)))}if(!n)return e.call(t,1),null;var r=!1,a=module.exports.now();return exports.frame(o),function(){r=!0}},exports.getImageData=function(e){var n=window.document.createElement("canvas"),t=n.getContext("2d");return n.width=e.width,n.height=e.height,t.drawImage(e,0,0),t.getImageData(0,0,e.width,e.height).data},exports.supported=require("mapbox-gl-supported"),exports.hardwareConcurrency=window.navigator.hardwareConcurrency||4,Object.defineProperty(exports,"devicePixelRatio",{get:function(){return window.devicePixelRatio}}),exports.supportsWebp=!1;var webpImgTest=window.document.createElement("img");webpImgTest.onload=function(){exports.supportsWebp=!0},webpImgTest.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="; +},{"./window":194,"mapbox-gl-supported":22}],193:[function(require,module,exports){ +"use strict";var WebWorkify=require("webworkify"),window=require("../window"),workerURL=window.URL.createObjectURL(new WebWorkify(require("../../source/worker"),{bare:!0}));module.exports=function(){return new window.Worker(workerURL)}; +},{"../../source/worker":98,"../window":194,"webworkify":41}],194:[function(require,module,exports){ +"use strict";module.exports=self; +},{}],195:[function(require,module,exports){ +"use strict";function compareAreas(e,r){return r.area-e.area}var quickselect=require("quickselect"),calculateSignedArea=require("./util").calculateSignedArea;module.exports=function(e,r){var a=e.length;if(a<=1)return[e];for(var t,u,c=[],i=0;i1)for(var n=0;n0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)},Evented.prototype.setEventedParent=function(e,t){return this._eventedParent=e,this._eventedParentData=t,this},module.exports=Evented; +},{"./util":212}],201:[function(require,module,exports){ +"use strict";function compareMax(e,t){return t.max-e.max}function Cell(e,t,n,r){this.p=new Point(e,t),this.h=n,this.d=pointToPolygonDist(this.p,r),this.max=this.d+this.h*Math.SQRT2}function pointToPolygonDist(e,t){for(var n=!1,r=1/0,o=0;oe.y!=h.y>e.y&&e.x<(h.x-a.x)*(e.y-a.y)/(h.y-a.y)+a.x&&(n=!n),r=Math.min(r,distToSegmentSquared(e,a,h))}return(n?1:-1)*Math.sqrt(r)}function getCentroidCell(e){for(var t=0,n=0,r=0,o=e[0],i=0,l=o.length,u=l-1;ii)&&(i=a.x),(!s||a.y>l)&&(l=a.y)}var h=i-r,p=l-o,y=Math.min(h,p),x=y/2,d=new Queue(null,compareMax);if(0===y)return[r,o];for(var g=r;gm.d||!m.d)&&(m=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,c)),v.max-m.d<=t||(x=v.h/2,d.push(new Cell(v.p.x-x,v.p.y-x,x,e)),d.push(new Cell(v.p.x+x,v.p.y-x,x,e)),d.push(new Cell(v.p.x-x,v.p.y+x,x,e)),d.push(new Cell(v.p.x+x,v.p.y+x,x,e)),c+=4)}return n&&(console.log("num probes: "+c),console.log("best distance: "+m.d)),m.p}; +},{"./intersection_tests":205,"point-geometry":26,"tinyqueue":30}],202:[function(require,module,exports){ +"use strict";var WorkerPool=require("./worker_pool"),globalWorkerPool;module.exports=function(){return globalWorkerPool||(globalWorkerPool=new WorkerPool),globalWorkerPool}; +},{"./worker_pool":215}],203:[function(require,module,exports){ +"use strict";function Glyphs(a,e){this.stacks=a.readFields(readFontstacks,[],e)}function readFontstacks(a,e,r){if(1===a){var t=r.readMessage(readFontstack,{glyphs:{}});e.push(t)}}function readFontstack(a,e,r){if(1===a)e.name=r.readString();else if(2===a)e.range=r.readString();else if(3===a){var t=r.readMessage(readGlyph,{});e.glyphs[t.id]=t}}function readGlyph(a,e,r){1===a?e.id=r.readVarint():2===a?e.bitmap=r.readBytes():3===a?e.width=r.readVarint():4===a?e.height=r.readVarint():5===a?e.left=r.readSVarint():6===a?e.top=r.readSVarint():7===a&&(e.advance=r.readVarint())}module.exports=Glyphs; +},{}],204:[function(require,module,exports){ +"use strict";function interpolate(t,e,n){return t*(1-n)+e*n}module.exports=interpolate,interpolate.number=interpolate,interpolate.vec2=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n)]},interpolate.color=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n),interpolate(t[2],e[2],n),interpolate(t[3],e[3],n)]},interpolate.array=function(t,e,n){return t.map(function(t,r){return interpolate(t,e[r],n)})}; +},{}],205:[function(require,module,exports){ +"use strict";function polygonIntersectsPolygon(n,t){for(var e=0;e=3)for(var u=0;u1){if(lineIntersectsLine(n,t))return!0;for(var r=0;r1?n.distSqr(e):n.distSqr(e.sub(t)._mult(o)._add(t))}function multiPolygonContainsPoint(n,t){for(var e,r,o,i=!1,l=0;lt.y!=o.y>t.y&&t.x<(o.x-r.x)*(t.y-r.y)/(o.y-r.y)+r.x&&(i=!i)}return i}function polygonContainsPoint(n,t){for(var e=!1,r=0,o=n.length-1;rt.y!=l.y>t.y&&t.x<(l.x-i.x)*(t.y-i.y)/(l.y-i.y)+i.x&&(e=!e)}return e}var isCounterClockwise=require("./util").isCounterClockwise;module.exports={multiPolygonIntersectsBufferedMultiPoint:multiPolygonIntersectsBufferedMultiPoint,multiPolygonIntersectsMultiPolygon:multiPolygonIntersectsMultiPolygon,multiPolygonIntersectsBufferedMultiLine:multiPolygonIntersectsBufferedMultiLine,polygonIntersectsPolygon:polygonIntersectsPolygon,distToSegmentSquared:distToSegmentSquared}; +},{"./util":212}],206:[function(require,module,exports){ +"use strict";var unicodeBlockLookup={"Latin-1 Supplement":function(n){return n>=128&&n<=255},"Hangul Jamo":function(n){return n>=4352&&n<=4607},"Unified Canadian Aboriginal Syllabics":function(n){return n>=5120&&n<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(n){return n>=6320&&n<=6399},"General Punctuation":function(n){return n>=8192&&n<=8303},"Letterlike Symbols":function(n){return n>=8448&&n<=8527},"Number Forms":function(n){return n>=8528&&n<=8591},"Miscellaneous Technical":function(n){return n>=8960&&n<=9215},"Control Pictures":function(n){return n>=9216&&n<=9279},"Optical Character Recognition":function(n){return n>=9280&&n<=9311},"Enclosed Alphanumerics":function(n){return n>=9312&&n<=9471},"Geometric Shapes":function(n){return n>=9632&&n<=9727},"Miscellaneous Symbols":function(n){return n>=9728&&n<=9983},"Miscellaneous Symbols and Arrows":function(n){return n>=11008&&n<=11263},"CJK Radicals Supplement":function(n){return n>=11904&&n<=12031},"Kangxi Radicals":function(n){return n>=12032&&n<=12255},"Ideographic Description Characters":function(n){return n>=12272&&n<=12287},"CJK Symbols and Punctuation":function(n){return n>=12288&&n<=12351},Hiragana:function(n){return n>=12352&&n<=12447},Katakana:function(n){return n>=12448&&n<=12543},Bopomofo:function(n){return n>=12544&&n<=12591},"Hangul Compatibility Jamo":function(n){return n>=12592&&n<=12687},Kanbun:function(n){return n>=12688&&n<=12703},"Bopomofo Extended":function(n){return n>=12704&&n<=12735},"CJK Strokes":function(n){return n>=12736&&n<=12783},"Katakana Phonetic Extensions":function(n){return n>=12784&&n<=12799},"Enclosed CJK Letters and Months":function(n){return n>=12800&&n<=13055},"CJK Compatibility":function(n){return n>=13056&&n<=13311},"CJK Unified Ideographs Extension A":function(n){return n>=13312&&n<=19903},"Yijing Hexagram Symbols":function(n){return n>=19904&&n<=19967},"CJK Unified Ideographs":function(n){return n>=19968&&n<=40959},"Yi Syllables":function(n){return n>=40960&&n<=42127},"Yi Radicals":function(n){return n>=42128&&n<=42191},"Hangul Jamo Extended-A":function(n){return n>=43360&&n<=43391},"Hangul Syllables":function(n){return n>=44032&&n<=55215},"Hangul Jamo Extended-B":function(n){return n>=55216&&n<=55295},"Private Use Area":function(n){return n>=57344&&n<=63743},"CJK Compatibility Ideographs":function(n){return n>=63744&&n<=64255},"Vertical Forms":function(n){return n>=65040&&n<=65055},"CJK Compatibility Forms":function(n){return n>=65072&&n<=65103},"Small Form Variants":function(n){return n>=65104&&n<=65135},"Halfwidth and Fullwidth Forms":function(n){return n>=65280&&n<=65519}};module.exports=unicodeBlockLookup; +},{}],207:[function(require,module,exports){ +"use strict";var LRUCache=function(t,e){this.max=t,this.onRemove=e,this.reset()};LRUCache.prototype.reset=function(){var t=this;for(var e in t.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},LRUCache.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},LRUCache.prototype.has=function(t){return t in this.data},LRUCache.prototype.keys=function(){return this.order},LRUCache.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},LRUCache.prototype.getWithoutRemoving=function(t){if(!this.has(t))return null;var e=this.data[t];return e},LRUCache.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},LRUCache.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},module.exports=LRUCache; +},{}],208:[function(require,module,exports){ +"use strict";function makeAPIURL(r,e){var t=parseUrl(config.API_URL);if(r.protocol=t.protocol,r.authority=t.authority,!config.REQUIRE_ACCESS_TOKEN)return formatUrl(r);if(e=e||config.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+help);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+help);return r.params.push("access_token="+e),formatUrl(r)}function isMapboxURL(r){return 0===r.indexOf("mapbox:")}function replaceTempAccessToken(r){for(var e=0;e=2||512===t?"@2x":"",s=browser.supportsWebp?".webp":"$1";return o.path=o.path.replace(imageExtensionRe,""+a+s),replaceTempAccessToken(o.params),formatUrl(o)};var urlRe=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/; +},{"./browser":192,"./config":196}],209:[function(require,module,exports){ +"use strict";var isChar=require("./is_char_in_unicode_block");module.exports.allowsIdeographicBreaking=function(a){for(var i=0,r=a;i=65097&&a<=65103)||(!!isChar["CJK Compatibility Ideographs"](a)||(!!isChar["CJK Compatibility"](a)||(!!isChar["CJK Radicals Supplement"](a)||(!!isChar["CJK Strokes"](a)||(!(!isChar["CJK Symbols and Punctuation"](a)||a>=12296&&a<=12305||a>=12308&&a<=12319||12336===a)||(!!isChar["CJK Unified Ideographs Extension A"](a)||(!!isChar["CJK Unified Ideographs"](a)||(!!isChar["Enclosed CJK Letters and Months"](a)||(!!isChar["Hangul Compatibility Jamo"](a)||(!!isChar["Hangul Jamo Extended-A"](a)||(!!isChar["Hangul Jamo Extended-B"](a)||(!!isChar["Hangul Jamo"](a)||(!!isChar["Hangul Syllables"](a)||(!!isChar.Hiragana(a)||(!!isChar["Ideographic Description Characters"](a)||(!!isChar.Kanbun(a)||(!!isChar["Kangxi Radicals"](a)||(!!isChar["Katakana Phonetic Extensions"](a)||(!(!isChar.Katakana(a)||12540===a)||(!(!isChar["Halfwidth and Fullwidth Forms"](a)||65288===a||65289===a||65293===a||a>=65306&&a<=65310||65339===a||65341===a||65343===a||a>=65371&&a<=65503||65507===a||a>=65512&&a<=65519)||(!(!isChar["Small Form Variants"](a)||a>=65112&&a<=65118||a>=65123&&a<=65126)||(!!isChar["Unified Canadian Aboriginal Syllabics"](a)||(!!isChar["Unified Canadian Aboriginal Syllabics Extended"](a)||(!!isChar["Vertical Forms"](a)||(!!isChar["Yijing Hexagram Symbols"](a)||(!!isChar["Yi Syllables"](a)||!!isChar["Yi Radicals"](a))))))))))))))))))))))))))))))},exports.charHasNeutralVerticalOrientation=function(a){return!(!isChar["Latin-1 Supplement"](a)||167!==a&&169!==a&&174!==a&&177!==a&&188!==a&&189!==a&&190!==a&&215!==a&&247!==a)||(!(!isChar["General Punctuation"](a)||8214!==a&&8224!==a&&8225!==a&&8240!==a&&8241!==a&&8251!==a&&8252!==a&&8258!==a&&8263!==a&&8264!==a&&8265!==a&&8273!==a)||(!!isChar["Letterlike Symbols"](a)||(!!isChar["Number Forms"](a)||(!(!isChar["Miscellaneous Technical"](a)||!(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||9003===a||a>=9085&&a<=9114||a>=9150&&a<=9165||9167===a||a>=9169&&a<=9179||a>=9186&&a<=9215))||(!(!isChar["Control Pictures"](a)||9251===a)||(!!isChar["Optical Character Recognition"](a)||(!!isChar["Enclosed Alphanumerics"](a)||(!!isChar["Geometric Shapes"](a)||(!(!isChar["Miscellaneous Symbols"](a)||a>=9754&&a<=9759)||(!(!isChar["Miscellaneous Symbols and Arrows"](a)||!(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243))||(!!isChar["CJK Symbols and Punctuation"](a)||(!!isChar.Katakana(a)||(!!isChar["Private Use Area"](a)||(!!isChar["CJK Compatibility Forms"](a)||(!!isChar["Small Form Variants"](a)||(!!isChar["Halfwidth and Fullwidth Forms"](a)||(8734===a||8756===a||8757===a||a>=9984&&a<=10087||a>=10102&&a<=10131||65532===a||65533===a)))))))))))))))))},exports.charHasRotatedVerticalOrientation=function(a){return!(exports.charHasUprightVerticalOrientation(a)||exports.charHasNeutralVerticalOrientation(a))}; +},{"./is_char_in_unicode_block":206}],210:[function(require,module,exports){ +"use strict";function createStructArrayType(t){var e=JSON.stringify(t);if(structArrayTypeCache[e])return structArrayTypeCache[e];var r=void 0===t.alignment?1:t.alignment,i=0,n=0,a=["Uint8"],o=t.members.map(function(t){a.indexOf(t.type)<0&&a.push(t.type);var e=sizeOf(t.type),o=i=align(i,Math.max(r,e)),s=t.components||1;return n=Math.max(n,e),i+=e*s,{name:t.name,type:t.type,components:s,offset:o}}),s=align(i,Math.max(n,r)),p=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Struct);p.prototype.alignment=r,p.prototype.size=s;for(var y=0,c=o;ythis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*RESIZE_MULTIPLIER),DEFAULT_CAPACITY),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},StructArray.prototype._refreshViews=function(){for(var t=this,e=0,r=t._usedTypes;e=1)return 1;var e=r*r,t=e*r;return 4*(r<.5?t:3*(r-e)+t-.75)},exports.bezier=function(r,e,t,n){var o=new UnitBezier(r,e,t,n);return function(r){return o.solve(r)}},exports.ease=exports.bezier(.25,.1,.25,1),exports.clamp=function(r,e,t){return Math.min(t,Math.max(e,r))},exports.wrap=function(r,e,t){var n=t-e,o=((r-e)%n+n)%n+e;return o===e?t:o},exports.asyncAll=function(r,e,t){if(!r.length)return t(null,[]);var n=r.length,o=new Array(r.length),a=null;r.forEach(function(r,i){e(r,function(r,e){r&&(a=r),o[i]=e,0===--n&&t(a,o)})})},exports.values=function(r){var e=[];for(var t in r)e.push(r[t]);return e},exports.keysDifference=function(r,e){var t=[];for(var n in r)n in e||t.push(n);return t},exports.extend=function(r,e,t,n){for(var o=arguments,a=1;a=0)return!0;return!1};var warnOnceHistory={};exports.warnOnce=function(r){warnOnceHistory[r]||("undefined"!=typeof console&&console.warn(r),warnOnceHistory[r]=!0)},exports.isCounterClockwise=function(r,e,t){return(t.y-r.y)*(e.x-r.x)>(e.y-r.y)*(t.x-r.x)},exports.calculateSignedArea=function(r){for(var e=0,t=0,n=r.length,o=n-1,a=void 0,i=void 0;t0||Math.abs(e.y-t.y)>0)&&Math.abs(exports.calculateSignedArea(r))>.01},exports.sphericalToCartesian=function(r){var e=r[0],t=r[1],n=r[2];return t+=90,t*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(t)*Math.sin(n),e*Math.sin(t)*Math.sin(n),e*Math.cos(n)]},exports.parseCacheControl=function(r){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,t={};if(r.replace(e,function(r,e,n,o){var a=n||o;return t[e]=!a||a.toLowerCase(),""}),t["max-age"]){var n=parseInt(t["max-age"],10);isNaN(n)?delete t["max-age"]:t["max-age"]=n}return t}; +},{"../geo/coordinate":61,"@mapbox/unitbezier":3,"point-geometry":26}],213:[function(require,module,exports){ +"use strict";var Feature=function(e,t,r,o){this.type="Feature",this._vectorTileFeature=e,e._z=t,e._x=r,e._y=o,this.properties=e.properties,null!=e.id&&(this.id=e.id)},prototypeAccessors={geometry:{}};prototypeAccessors.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},prototypeAccessors.geometry.set=function(e){this._geometry=e},Feature.prototype.toJSON=function(){var e=this,t={geometry:this.geometry};for(var r in e)"_geometry"!==r&&"_vectorTileFeature"!==r&&(t[r]=e[r]);return t},Object.defineProperties(Feature.prototype,prototypeAccessors),module.exports=Feature; +},{}],214:[function(require,module,exports){ +"use strict";var scriptDetection=require("./script_detection");module.exports=function(t){for(var o="",e=0;e":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}; +},{"./script_detection":209}],215:[function(require,module,exports){ +"use strict";var WebWorker=require("./web_worker"),WorkerPool=function(){this.active={}};WorkerPool.prototype.acquire=function(r){var e=this;if(!this.workers){var o=require("../").workerCount;for(this.workers=[];this.workers.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 z z@_xCbKWT?w3ZrSG*QAOA6rxyt%MLw2!gzr2tZ!#RVPIH>bj;Lsc-nm@+Bd)@Jep^d zANqRw<)6!X|KFcK#slLng0a4tBeoqzxN1flasUhb7Fa`ClOSQGs0FmxAgM`~V)Cal zOlp>)Dt)lvGK|bA)O7WO>08PEhsSCFp5s^q7t@xOrq>3h+NYsl5qfwK4rm~^;pNIz|N|c&t7b{fCjrS{F3s~P#-tFR==s~7_CWyi@^V5 z_qwvwm*ybJGCM25bX8u(%Grzss4n}kF8#6;$&`0_#1b#_WCppX9w$1_h>CuV9`&QD zL&>SpmWv6EbW|n_g|UKuSk4>Y>HQE-d>cya)ppHOPn%KUyXBP*++C& z*J_~st&R>;uhFT;=1A6V?}hDoe!G(PA9v-f`1@JXX6)=l zpLJ*|8TZ(glN~(aSTMK^oOda=at$7WiaS&FbH;tezMri2*6s0$H{8>zmo*#r*X#&u z{Al{U#%quYv-)6c?VOu&UpEs6QQR`ByNg2nk@8GPMbC9zV3|l#!#n2EUXs$>F)J?! zwr9oBPIRA$a^V*e8}W{SDwQ48sC$Pj)-<8dNR%2&nolBSHYSnZzWxq5M1Y6-4)Pps zN$>?3JAT`&q6$7t?Lgn8vcj(^e&8cUTL=1)eyH)fW0W~&e1ne|>JIb+9~_J9*F;f6CbCv~ zj^69AvN3Q_@I7dJ>gX3({G9$^=*l%bn=;Zt*|B05DnySRU*GJA*3BT0DCk3WvAjZ@ zR3o~V3;Az)md2c|?75^$bhK8@bLD5)Jhfodvel2bb+ZDixA_bZ)Hh#M>J zc5h&8SAeCq+-oo0o9x-qwftYd1v@KBduCcUvy*JtS4S6j^DDMW(dE@6!4f=BH(FtT zS?7F20R$gZYRPNRm*h2L0)h#PS95wqr%hh3I>cEMRL~7F66t;DEeol4OqG^yWr`0=c$5Xi6QqQj8R>rn@ z)Qhey{YeP0S}E9wu{KqAv2g{TXUL6SA@eUg#rM*9jK+mTsjg-$K>b#Q3tskLwQbv&8X#Tt8#eg zx)vwIai_?-s+=Nj0*qRCF_^Hb%teh{eGa!E$Q>nm=1rs$Dst9R_rh0al@6qtB%Esa z8-i*v9`F#R$RW1;ZJ|kJL--tr159LO%Io1?7^UzAl4D6u%R5F7Oj+jmx&5L+PPZr` z79=A0G$WC*YLcpuzg3C-0o6v;B4X)Qx(eevmm?NXo{dngk9xRbVS|1IT?088G#f?JGfEui|Y-hq~L2bPr`&dEFWorVsFPqYKmv z?u7dni^MEKB^LyiNJEG31`t8$kpy2%p!GY+?D6SeXPHi?2xo_ zs8}BBpMpfrb3h%j3fG9AiNF+$H0{6PxB3C=x&Uhek|eVyby)Scz{AXe90U@fr_Pgh z>h7Wy&{2idsrh4h9$${1Fl90k`NGC`ozalxrB2f_8>W<3uoJJT`-RXzLY%Pr=bmb^@W*6

ut-o%g%5@~`pofMM$pZ$D|*uF+D1T~x%fzA*!#8Fl++6yBC zLQb%)gk3}qX;CX_^A_3&v=JNVp!KPn@1<^zz`DYv*UW0`+02ehTDOWa)!k?u7;i^G zx0^8Pnwb%XGJ-oBNN*6-!`YNS2NvfGFJ zKB|<%rxht8?SqB4qudtO+15{ib_|R>Sqb)Zfvj+Jeq(;V5i%m5jHm}0Z+xQtUe2(` z$@IONO#9DO_diD+C!_Ascbs?L%Xvp9jL+@fls{!?e^Y$5cr1JEOov6>2hN;L@9WgM zmGBTrec_d~gMDG`8cun4e@g5O)7R7{OG?9qtpKbAG+TKh`MkMSSf$)&^WhAWQ$!Z7 zogBuBSro=;7gmgOkKo;f=zaHuPjJL!k2HA8+w(;XF&^~<(+|$Zb()oci5mz3Z*&8S zXU)qxQX5feyK{UU$RUM8lyV6laBS0u(olHD9IC5oqV$jP+8k9_Z*fnVSKR{&TwaFx z*OMsck_pETL$S@TLd<7Ad^q%itT+VMdiKY;*;AX%>*oq6>GAC0yh@5VY5I6RugxEq z-8+R2{rIXe6g*-ed=VwIAuZ!)1qCr%;{r?scA1sodcA{aje*~4S=rJCmDYV0fd1*& zbcV{4g;TOl+NU-q7(wYiuDA?`0leZ!Z2n~#OIO)wXt-sw>3j&;A#!y^B4von!=3B& z$YVa^gTMJ)N~bfPGM2GRA9D9`&jZbK&Z(Tw@bu?1d@(ZnTP6d zT7yBh;dfx-p|nRLpj>)X*^Fr*3(r-3IbCA;DcP3k+y`fMo-0h9<670KS=Fk$s#TAw zR_#?q&8njAs-hlMMOsyhefxdidmu~7&OdizOx=TtbURPX(Gx@9R9C!wtuto7`$mh8 zJP~_ii=Cs##s@QF-~uPXlGjJ?|9bCMI?azatIa3hEsfV>J*Gf6u-LccI&9r`qboF5 zlWO&_Ffp+|{i!DIC~?|IyrD!f{?*d_5V$HbtTbl2%r*+~jO!h^LWHEjs5u~p=PnvD zeed59_)fS1oheF3Q1`m_;AP!e=d$iwt&ea`aqyDp-Cf@(=g0Y~W)SZ;gH3&;VX;zb zv3#Bl+YDlxPj#zNT#X31bg0!J_6$%lC0b@7-J$6jBj->3uB9U1fk7~27Tj_hXnJd- zB1x&O*URLEm$>7^_KC3{OK!KJL0T6=`I?x185mj}RYQtcq$HHz3Qdhr896+>QVq{L zIlAWYkq=YMJ^so#_icgtJN&ml$@^ALfBD`zb`;2@S6zI-N*(ClG5$$ihnP)rG46;# z5?;{&v-}(v=X>jQ&+3HB7|c97uFn3%3Bu*%MobBS;1b1FC+;#VnEo)eC-pgJP|;Bi zA#*WhTXni9TruQCWi_vR2J`_Zdr#+ZlU<4MCAJV@e&8-S`Mi3)=`X4EVfRxF(wj z$8=J%0~h~>q#!&HmIg8-Z8p|}iOb5BofM3Zu8FkwWY8PbFgV5cmB(YOd^qM~izF?O z$15BcxfCv7yTK;QxI*Frz-fT->D?v>mchS&NLP~JDEjvgtFr7pd>+1xsmf%vigSx- zkX;F8+NnrvwfN6XdZ_(-oWpvZr(T7dzGtaLb-o{yS$C1WOz2;eGK0#vC*EpDzjkm6 zG^881ZmFw4R@4H2696tyhg67)=xp}4*eDBDCStMLF5O+MX7oL)z<-gp)D^%rDY+>mYz#;$Y%(-W3n;J(UbJjClV$cQ z6|@MOls_vV1irHu)ybx+Wk={{t>_R-z!**ig-s{ajG*d9X1^3(K;z`La9+IwKpYxW zzfWmtrIu@jrW*VIc8rQ5R!(x@H4<8w9h)cyx~o0WYw&*gCvJhk{5`b1YF8jk_!v{q`Ax$Hw&`8@F4W&qEnh2NAmj| zT*pt6GLTks0)y&XTs`ho`-~Eubv#Y$9v1WW$j3$`A`%WjJ#kRihXvnj+kWz&1&}O* z+V(L)rZmY#J2gDG+6rTKW#&9%#EgA86SLN~W>g#YBQpi=w`qmhY-iH#(KK^}h6)~z zSg)0UWLa6-24offJXt z&hs|NQWu*MdbEZvQ2mxJve@aXz4KtCnqovo$b3)+aJmfu|0^2-BQ$nfv?QrrWIFlT zICmqcUdb4tA7o zFX}a{Eed|rYAs5QuE__BK9o;hN1zIU7@GD@5~FhhqmI>ma`;iV!?&sKeY={LhKKK0 zA8f!AFN^Fd%x`JjtNr?x;+2n%pQGc)yYlV&A{2wTCfP9Y^uYL9io1oQK82&!!aJ_n zY@lFyol|S=Xd`6TL=$}rG?7K4v+YILGX#Sb?KOR26NVm|sAsfkT{d{lp=;a&sn;rdTWa3MftBs@hDkDOdM(>q&#bDn5DeTgoxPUGI z!zxC{p_zh4;#4`Qh}m8!#_*RSX2MMD|$JcQGlP6>>MQd1P);h}g(C*9FWcXZO-tCP;#l-z%+j+D%f zaym;!drL+=9e>Zq_y|3i6f!wQxsJn*9sUaF376tnMz6tWMKy1FBv@MeI zqU<%nfWcYVNiH`haFno)6ZmKkWDAirpdA#Ksi8LO{|oR?>nsVBE4 z3~bp`N*ThaUFMVmD{OV%5ba_&!^js%IH9aM5|#W~XKZ;CT;R85cXJE{@cI;Dm!hPU zy%?#w0Qw{iJKydjNmSwktu+vyS~(2t$MC*yc%nd0Gk*77uCzbf`2Al0xUZKi16;BX zQm?na^??dVB_y$ffkO{WKwfeiT0x#PnhHZJ$BJr3s08V#!8rnV_$*t1#qLFvt$%@I znnzjkb&pG5x*C1Co3-Ht+)xpC|=`!r1O;Kzo!3bfD38| zYP|XXdypzVQ^dokkm0opIU`7YmYNgoy~dZ@oDDxtTgNZswO;jVzzVs+0=t0luBDhs6`oU zjykktDPvXHRpbn+cEJc{Pv?&wo;`f>^zqX(EPpT7^!q<+ygN$(1=u9$;P>-={0!KUAH`vg^GXLq z$bNH;fVurz`GZKO-lavJMokl+VFYgF$vb?OD z9gM1dF{WZ9FYGLQ6$BrGgxMe~tz82nZtMuBoFP1Ov`HK8B1t(mBpq-y!#!Y^EVB5g z4@Mit@JDI)Z;V1-aO!}H1zblUu@>@!G8BhMvz7TKvQaf2v_y|}u)hj^%j?`WSy3tI z78qxx+`V)cL=?SRJV(@VYU0~XOhm@vIXlQwLrlCR^o3J2EFc6{4zS8%*#tvW$qf#x za1B3Se8BT+f~=*{#v&}@{g7+Wmp)%3~ zrivuh5CkZ2!gBF(5R8;&GC2CXFenO%%R>FRjB_l%O^dH%iVfc<1Y$h)+FelisAKf} zAA5h_*tU%<3giF(K83A&HYF`cmh8MrW_ ze=`^k0T865I8C?D^W5FW0)YWA7z_r3!2nQ373`~uYQDhE(w{z;x>n{vFD0IL20gWZ zHaR>&Ul$CA5cc-_oqP8iOOsZD$@9mz~kU;p#*@ z9*idEi)4z`dzl0;rc4U(FI~h^$QvYT?%)3ZIw%-(X!o?}jA2=@^H;U>dX{D3^5-)Y zT|rfde~S{UubxbMo23_7coigzI2JmZaz9sFk?Yb9>WQ!D<+ODAF$BQ z&#&H}(wg-&M6lCT!F7CJ(KHWs8R5^L9UATiK|#?joggi1OFMwXgcBVaLSjUTE)5|q z9q%@_4KT@%J(cYor}pPSJ&R~W`inS_{;0VGMR6k*h~shd{gqhPS6pRlhaoY=A}IRF z;_4Y&P4aPc-qKS(SA6fD3e6<&db;#{%|R`VP@bu>)(l_Vp~)f-2ErXVMcc5++Q&@m zfQi~hOFBl8d7DEs%f;AFCgnbV9*jYU^N_G-!D4)Nl#kE4U0?QRQ68SfOaPTZHO)Ko zSDYgZ@^N^y7>6o{Oqw%<{y0+v@}w`aK44|SyhTMyW;u2=vR4A5E~&ti4dA|r?%j(j z@a9Gai?v+GOkoQ;W*e{M_vU_|$ygS$wdXA{<*!Qd+b_j$;FPC?ILhwfon-fG^h6`W zWl-kwI{p0!qfc`c-|@vKAXfUx0O;>8iYVTvcmQ}2f`KTfax_s2|CYl$kr#CmBPEUgZx?J~NV2xG}fQ^o|Ap6RYn=Me)3L+~dPQ#hm`O!Ib;Z)Hf&|w%Z zM5O*Koi1?r;XJ@2art`Y84c$=B{h`Y$t;UvD3RVAGEzB;l23tPuOT*$W-p^Fnsjo{ z_nAaWTC2X4S(auUk$~UwD-3!a>dc*4l@AX-CTW3di&*CB>}G<#&A<*}jEjz6WtR4N z>MF*n^m!cG!^Agf3URXVhWi6wR8Xgxq?L>Z!+?qmfql&~*OmxK zPbIJ!=RO6aa+F`bN!77zEY#>x>=kOaS-z$g6WPv`Ch(-L#qW&K=g%GoS!^TE@GL@w z0qYrT4qr?+&$qFIker8^)pkYdV0Son7zE~O%|9fL+L;N8K%zTr#D&loma>8CxSUqr zD^&}S8{E{>vRO(9RrG>xRstI&sEL;-YBb4ZMy6M{$8Hf|)S-+WLBAujF!fYglmOW| zUPr9#dK#N!*2!}l(M3eTK!m}hsL|P`*U30K3j5>~KaRS=u+&t7a1x!MauVe~g+F;Y zP%S?S2IaWj9jwa05O7?1hV=HwwVA>c$)xGmr1og|;2C^t()JZCq*hEky-PbFVX-M_}fwhMYBLs zNXPCm8&&Y{YqnWFnlbkf%6{O{lV~{EH3{5aWCR%J_qvbmig3}%H_|n zy1-?nPC*529-?xkh8s0&{FABgk$sP0$^2i(em|#=HEYXb)scm*=iI8_kzDyBD;eu*s#4JJ%PRg#7NG)O`S5=sH>v}A;%9xp z%7tSPOV{~WY!Y?2i}a{0#BWNmLhCulvXNK?6H9(6v49_tPmxxHh~0Dts}>@N)RG1) zPHkouQJ{%5?f@SmO@aVxO5sE`4BDR8W$2fjag zAS#HS3E_{1A`3_vs*n|nXf`VP@RyXJQJGg@j!{)mqc{^RuPK(lL`^!U<5a@atedtP7aKaQ!vyb$O!rhIGFrs- z7YPFV70>X}IPt}9(GSmX!)nIMr|4KB^8k1aI1{Oqh(8i(2J zu+n7qapbnOCQay+v9rK4usF*A&uN$!j0&k_fXo-5K=p3Fj?kr|tQct_vx0(FUa3Gi z3b=l4h92Zsjv_Q8efz8j;i|Mo$Nm0Kf@bWBgWW{FEWXBRLQKS z_9$NK!+*;{e1O_C9F?G_pC}1nuZ#KFxdyo|dhiYLredU%%~${`i@PpdWUdQHCzeHi zq&dX3WYKASdhMDRkC!^S8D>^fkGuFOjpGYCnK$6_YmFI2~?vvt# zgy*uOVDUYdA;8Pr zA20ezcqN0*X~`T|>6>sVvy#~Z#f08%jB%iUJ8+}LYUPh{UnlJ21!!anzju$m-l%0d zC8|Y(5etT%P@(q=Nc_iazV^kUpM{?k`a>AgNy+U;GEacYffxUGX~o{ypo`43?z3X*AO z17KJ?tmq|`9>^ScXWEU6YTp;n&*hN>6&3&vl(&}&bmXPHNNfP&1xAX0xQkq#y&)iz`n493}!>~n+IuA0FnV_|0M&lmZnH_?!j?Bv8> zDHjo^0u5DeXwc?UBy&V6yvRi-nsp+Y%q#OA{3&ODB0y>GT8(WoIKqr-($uk*zeQkU z$0%L25~DC_aLZ|FP(X`C2=F2TxacTlxCr1vq7TR-Vi+$4V>I|v3H3WX0r{qhLa?E> zA(;rRL~C=;z;W7arj?KEToy?@ziOHcEMOoD>==nG=+Vwmsy;*hqy|c}fn3l$kkBG= z2@sb@bB4GCh;oXZPcBc!MNsK2g-H50zR1d$@W#t1Ce<)0#4LRgYM2mXm_U<4q#_gH z$r{=esWYqjx6Y7j%3zqBS2*Hp+LAjLu!v=YG|?bnay7EBU8Y8Z3kw>oaL7z{dp)cE zi9B(4x$TPD*G@G#Had7HEO|9LR7<1>caoW3x2K>i^QcmrixD+1OfeQ9-Xs@q!on&7 zTCyJ}7pHNEf^(D5-eO;5?J{qp?Zi|f+Sv@rM12b|NX;*E%O=9=*KgPy9JFoNINL2z z&G8}qf2u_uEvsfrFhZ~nPW!t~vY|DmhSk2+V2}1TMSfmE6waQ$V_vlZntTU<(A+mK zbeDT|j-Yma#b&`B_X;Senhm|Y4Wf2EHndxz$@ImTXIZLUq(OndO?w5>u++xsG{j_G zkw?M}xerG%&jMfpntqf8 zS^&*RMW%ADq@O+>qeyu~&--7}jWWdGayfS?~jWqwrMLB>pb? zK&%hHynA(e@Y2nW&=7>_I0RWOv&e?mAAfuI?Ct4$hoHDMf_-pcyJUr(_4-bIpt#l6h^M@bb{56`%v~&yl{J9AVt5ovKP3A(#@u@7u zhw1$e{P2Ep*4#M!e|yWe+uPOC4Gu95_lpz;zS3d>7!gh+4T?%AdxhR5M8$~42`NoD zP&n-i_qtfW1^p}^v1Yf)TW-xJn4+Sy1*Vq*qX$FLxU^fdzyN?JqP|=jJv$tGhGM51_l<^fCcJ@Pb?926TpS;pmJz*!&ob z`VoQay{sF?z6+5V7b&}Z=CkSuLDjg@t79I)Tf3;9F$AM|WbrO$Gv& z4a^fb+7!R%QAzurtQN(4hWAR=lk9flYbrQG0UPr8?vAN>=`4}IHg?#molj8&8HHF$ zPtlvE|Lf<^utN!fB?dl0;1dRJAaJv)%D$4>g?v|@yDiOK#7bxi)23Mosx7*MqOEeA zYU5X$?Pk1yN}|$i zJ6W9g)oygQLgEcss`*jG zsOC(MSrAR~lkrRy#zsT6F?H|Wg4)uM*8kT+g5~&D{jec2z%;qu4_Q8-S3jbH;D zf6%`zA_CJiL8L$fg-NY~Mz=F-;@E!jd(M#C*-u%6L%D7a3yfE5KHR&z!%PZgB4}x0 z#jkblCk4Id6VZ*6FObMo#34ogQs?W z9NKoyNSOYdm?Ugf047bC=BWw@aLF*)`=$>~Vf)Y&Tl>%y%_dSLCQ`r)}q~>DO>EBl5%ao9$_8@hS2Mg7B^H3q$L2{lb&UDd z%^dmzal~V`%66-wmgHONixRI4gaC|;7kCeS8tYi8^5><`Q-i5ytj#8FD$OapOwQ=s zk}s+($6jbHq(gIIY%HL|+5$Rs7tkRspu^e%I>V)`Mlp0OJKG~*+C?n5u*s$pmUa<{ zd;238YB2oj{fEs(xh57aYTLYQSPE^+(3fTZ(2~8m3z+<^y`YKN&v9&4ybuDHBr=0O z`7xRU^H>G@!nM}XcvzA0Ypsh|qw=@Bas-ke_a_L4ot_~UAD2KF{nCL+U|OiL-p zV_HipE=p~>ahPC%>FUCuRwRvnr%WaxOgzp|%foAFjnHUVtWd1{(|hs2M$&Q>VD^Z&r_v z_qfBms+X9<^5Mf9qQvHzESDK%cB-?5zX-?tmsPS zeOMAY9pzO$|A)g|JU^y|6iigq!TTvz>v^Ob~tL2F= zN;Lup*#195Fbq$#Xs$NAnu$&-kxTSj3zw1IyH*=VF{wv)8J>=N|C8ZwzbGQD4mG+w zxFxgK$b_YI)0a`Z%#%9S1WqY7IJ<2&!Iw!I_8N`ZF1aXdc`R0_hGdP~+%IHB??LZDiov zROvZHU@5#)tU6LnXU|~OH&GKS8bfhvg5O0_MpSwzmErOdrafx5mp=K5 z^Y40V7VYh(F`Xb?6MB#I<-` zst={-xkqrS5sBoe8yB}z12%ipy}%WbTST0}dtI1>AXU#ePItP~HeDvL(P@s_Pw2E- zb5ap)ZOe%$CQW#uZkEbRb>%6|3;28Y^jcpf*z0)qcq)g%8$O@v3pW~yYOaB80qZKr zq_O{{qn!T~0&_!IytX{^4T4a>Jo@t|Q;6|E7|DJ{|*IJ`3G$tvbbn}byHN|;q?b3dl zlPhU2nc&-^o$_gk=^E$sVFHIys!LQbeb?o6P9IiV69sO+$dX@p!-&5ph1!KN+*nez z{)HwG<64nb;VZ_%Y7frN#I-H=4>77+nY7$|8WbV6Tf*8@G{G#}mYeL!&C71Le1dX{ zcT%bJjYdSb2o31jCAcn8jGQA4%{b2HqN~$9-|1%DZgvqZNA*X!%soR$(IybwO?M_U zpEl9#`P?br-bHF73E|=Su-u8!$FfN@)rz)L8}&$yIBJG?X≈zjv=3Zc`Y_Y~ch5 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∋ep26YLdiGhs8lz18(R+))Lsisl;sEkEwlgFfi%c}84R&CGBtw&2XBRy1~ zEfQdRannAw6crN-XUo|{(>C2)Sb`RV!YpjOfdINO*v^45Ha~whPdfWt&bV1R_lC7` zm(aL_pYBl0F$QKv(P9jL0Ft}6TnAfta-^4u6j!+$yLnw9)Y;~Qm%m6C2ni>AryoB> zIg$kdc7vcH4Kw4y*-fI7ooqTS^J})E_3TLWlzS3sGj#i8Cqdf*m<%#{^z$e)+?9rP z^U`f)Tk1i-#28RSZ#48IXik6v*AcooqltP^;U}x*eb#_Hzy0EQ39Ls8vQ?F#F2pS% zv{Z2v^7k_~_@>~tXO=WdpAL-(>5q&L*x@|`nEokBMK9&c?tG(L+Qqf4p^yg*+Vf)I z@K_I4Wt)@0{_)A!ka{8yq#gtd?VFJYCV+cvid+d}p@J+w_FB@HsoMM_6OQI9;t*v1yNF<={2 z*hUK5xD0h8g)P)6D{Q5*A-N-`!Q<2gs;|Otx7Ex>+X9Nsn$Bo5h}d#I9&HIH+7#+h zTSB9aa?}*LYPRFw&5!i|&)9kFIgSEh{8jk%b(6?2IZx*tkJzSd)-rP3yzf4g5bB83 zw+{9HDnaR>z{Wdx6!8-@Y`?0eoB7*+xAx%(ieE5-^LFARGFz`&ZQl-P|L!d&D%?JP z^OkV_|Ib_7#*a58+BLH(2QbP>O)yc&fLwTY>+A@9Hr|Y!@#y0qeL@tS{au!3;D)Q5 z7{{cj#kl19rDCW)F=1p!IaNU$RY5hVeusNNLE#vzHwJ(ls<4jPDO%8g?%Q=}bLplw z_@51`a+M_+Q<3BZ>JlF#Mc=CBEYEO~7>xsS;8sH$vh=pvtkAg~PC|1{nZ>n;d1`{8 zd(A6<=-3T|iOsnMbJ1`T>Jz?P2X4^kiGkDCLe!^rSdF~{G%unW=M+QiUw!?3p%MC6 z&L_riW_FoxJU}GUOadKG6AuJBo0z%HbAmRUB=Skcx?2Q{im+BR2P5M{4$EcrXI2N} zqKHBm6G5T!yL;%=jG&6Emuxz$3l;@PK_UM=Q$U7h>j^F`!F2FK)jTUS*L48R6|1yaiWO;sGZGpBRR0VBQeV^aca+M!RAE_889g*fBFMkQR*0RZf*&2i<)50|WhCtfedI%EbV z-gOgVrd|J#tCR-_>_(m2MSEk-pvbPXSv9*g19*MGWq?Po`3mFvR`(ae?GL8>oE0Y5jyS88_pJTej0i%-a^s z$IZ7h%~_Owa{K=Mcinbu!&LyMCUl{W21^qy-4Lqc~#_rP;r*G;>yK0V+>E=BP)3b>4p_mM&uvC~stRgo+< z9F}b(qXv`C7B2j69giCQ`d1R6c*(b=?g>>W&$VMzUohO!SyVoLq%5Z`9+#Ws8qs7) zUM`LHg;WhHek!=^G^n6~@7V=jD?PJa6WxbQlZ9@QqnHyKDkfyhH=XJ+Yf(WttG2`p z8EQFWl#qn(7T=Y}x~p5z6BgagRS|BQX|bWtejBFTBnTXypi17o0z5E=b&U`SKsiej z_Dv;{ohJ2qEVehy+VIe@-_~J8O20-zq?8dAnlAvk3=-BjGre!_Y%DN-lF&T@2<^T-BeKYjW%2+D>S?dvuM%@DeMWJd409=*zQ zR0Zai2glT&cSONDh6`%>xrlNz!M9D8ST#&KvyBMY^*{+ZGU?!|^vM?}Hf1!Ju_QPf z^??`%l&eN^UhL&N0x?93R}JLJ*C}A|7K0K^#z$p)K2bB#W5E%58=$2U)C20nBiRt3 z_7xmrHZW$UELLT@2Nd&IhIp9jfn-h7I7g;}e~&TJME_|<6!#o`gXbxpCRp)@)$8(t zOwXbfziXFGM$zKcwOR^>jkrT}^yM>@ zAw(-zKcsy*L2VR<>vv&_pZgz5(Otie8 ztHr4*TCDbq<|%IR2p;45lwoYURgi*3!xP9M(E8BI{2gtjJ;|BcXBOTaA^*abNNy0?$E6cL|nY;qncSB0?@KUytKJlRbgN8H0!l+_}* zCQfBerEC?U6}h8g*lVMC?TV;2XqRQw{z;+y&{H}J`s$n2?SUdRYQ%bEOjaWk4_P}< z57Y=2Iw>z!rT%bc?efemj&wZOp$|9bU_%APw=6mQP1ic#>02*`LSG7J&%WS7-%)nB z^PL{YGXuorhnWGAaV#SfMFuHnK%%khgqhj_ ziW<_Pk?RWnA`ZZ43J^txBr^2NrR{2b&^yv)rUPAXNME@{+e%a?cRewvPcsYLdh_G^ zrhB6=3(Pi1_rUPLz=spVpEAHF2EhstRg40JlS~B&j)4s)^oiEZCK5#>0)I_JoRAY_ z&4@sdn-GpD3i31}J0d42&q25l0Hct(s_Vd%WWvuA@!+TmA%uH3<}MZtv1Z0yWX8%+RaWOE2s}I za~CBMM_U9xx*`)Kn1>>lOR`#q(b6KI;C|$-|M!itGZe zpeJ9eVs%9@vR9EJh}pLQ1$*Uh8@**rrz>D@)LYBg$le;@X&wbZd?r@IxZA8z@{NPq zcC^2+({Tu>4A2ct=ob{acK`sVf5)C6>1sB$Pbq^J5>-eZ>T;ntsx6Cf-dCzmby-9D zsj3yLPwkfN(-iRIYHUFYu~+X}$&W$BoM0s|w&jQ#P^a>g4yK$47)kIoRv2FEY!jNf z786Zrz3?_k&oh02MWY|Q+0*a7eD=lhr_Vk=e)i$BkDh(}C1v!kNWO;j2!F_mK&Z73 ziwj*IBKW1CJbh|A_sI~&86UX{Fd)03+`)c5#FN|`)j+F57IP!Iu@n#;$kbj=FsqdA zkELwiv^YxFa_d!ARqHW2E!|o*7dl%M_>y_#no4KpjFR}10ME20C1LtUxX|;O=Gk=T^n?l-^K#WfwaJWfNxB4XJ zA1)elF7L+nN$DZPy_z()4r2SHG!TL>AM|`vq!{MjJn-)AxPIHfy>tW(+1>HpRz@~M zY^n6be&86Q-~&Y|<_8phn}^?~@cTUcJ^%``4J?9a_*jWvH0&kJh|X6ACt@Gr?UUUSXQ zyUN_AuhHVBTLN>5G{?B^+*FfW>NlWO-=d&YA)dpwOPwwy*Srf{NHZ#Dl`b=T#M(E9 z+tqVtj0NxX~b29#{rrmRmd-F;bEvhj$Ze8xBI=?~Y>nR-BIBSnUQh zjtE$;$Z4Dkqe((%MeuVpXqXQg)>kSvvTa zS?vg-WceGw27$N5=3HB2iz?)xDS2bFG2ek*1=JLY{rrEDEZMok6*Mx|j}Sj44uXAe zN^ey|4gXcZRd@ttp6YiQw-kHq48i7S5cgjj7YKO>!T?yysnL|Mc1iu(NBuO=9pP;w z2L9n0Y~R1iKRIK1%)v9257a_<)5R4Az`m0YSk}T(PD*K%o-|jwZ%-iO?9L+---2IL zEh00W-Mho~o*X${Gp5`FVB?r2jx@2peBQ{$GRJmCXa_W>O|`2GX9suWY$@@z6towH z>!?n1nz9=lJVP57h#E=vVJ;yDYxnXgp`=zKc!pb8<*CaHRgx34-WvHMuhehVb&#cVcm1$oZ zU{_t)G+qo9>=1JM1CK$PH+vhvttI?dZN8iTtaOVW|FRND0M?(05^w-i1`n_DN~(TK zxb&VHQu@2Sbl!(F_det?;lX>*s<4FO%#UtpN_f!zOKpI6qLyB^8?Pw+g&(AgB5D@8 zS?mruu^SpCVu$(=T7WNw51ScH@;dH1Nl{gZ)=1Lcv1LXqRb!vInuhQevhY7rwSW#N zIpa0KQfgTO`w_M4>@*kBP>gXga0nqJ-@a^TC@7|&433Q|2eCa<#ni}(l4bHttl097 zXbeLQq7DCCLK7AEUWnPdqB#As2-zZLioY#_VkPGG_lF-Ja6RI&l)F9Qs-&$DEj?4F z+6%XZXs4oJ@^G7OV|oea??Ua!=V|K12*+LguH`w%zb=?Xkt7@euoXTv6YB-cAX+^CEF>=TOOWAS2a&P>h{N@(jH{A@`-qeKjov|D8^oHXC$@i7PM7^l+hU)Ki;L< z3zeIU9;(Fv0+Vw#nU?t{FdebU)D$E*$>l6@b5nzTE1)N%Y>RscY^wz50N8jzX)M!;AQlo)a zqcoRm-?w4oTF~PaA#ytfI=~_b1kFUD<6J_$^KiCcin!Xo)nx`rzbp>Z(&#En+imYO z62T+kb+B%hFA-QONHcNs(5J8F%lp9a_UDnFxO0S}3XR9}&hTok)b!Pjp**=*Q;V%N z{UP`D-EZzZd=&q14UeRnBoZD%pr!idVlhoF4;D$7hzAcJCvugek<*2V z{QA0R_>6}&H}Sl^eMTbj-=8!`0m3_jseiEcQ=4TJsGX2U%H=|=oa?k)Jn~l{S%R2< zsGL@C?)`74i30t(?L5JV zIK1j7nE80VImed2bS7_U@Tu#%DL{?T2m=IcYtU9898Q6x%h9N-@u+vAX}gf^#_Z*f z5n6FVwb-@u;)Lz%;Cnns0%hYjW~E_Vh5)LH7IJQjL+d32N$lU%_vfvC{-_u6hoctP$i#k5>alyC)!h1_&vrcF$yU_$`xt2!+bX7{<0Uwr#7Fq=2+A&-srL z{$3p3edc%Y>A~RL*024R50+1s-cjA+vsjJJq86Xc{Ku5BlZi_Xl#pEX?@MlUAbF@} zBrnQJKB^`C`_YaRkh;-RDM(+DE>o>apHWTvf-a@6^o>j3jE+Oncd8BP2h}O*7uBTn z`!~rm@ej$A^q1U)#rMw)-Bsql$()Czex^H=2Bc1?E)9}9l7{G;kZxuSFQ*J=;k4mA zoHty6bB1eh#&8qPik(o^!d2iJ-o`C<8pUlK!(%v%$8iL+(oq{PK3-}kvdmfwayJyF zr;H=Gf>Zbsr47GK~TJz<>35nRAgT*NV4V(cj{<1<{t$GDD9a054S6Sw5v zEt_?1fIt8P0B|Qtwxhz`-6p^tMq&iy^5u8e#&gecmkWI0A|JWJ4X*N*YmpNkMT7B} zJ3QeR&ms>zkM`nQv=u+Nz^}jc(fcvx6HlUpcp5##b3X8bkG$j-uOiR9PVyYDPTDHX zX1=9e<$@z24F1nkunyg=dpUP^H_q1Gm3O}nLet@9edkx&5FcTZfmFKTuHC#!llyeR zH5PJOZabgp*>Fr}+4&t`hHz#uDqG;B2EzH-Fn2^7%5<6CB;;z6rytf48(!S{yHYTT z&uV6W_g`sNjh^QJxVZ-#%UQsT8T7I^m2itK%iPql=21u7)Vw%-P5B}VoMsy`XwCbB zCx#uHO57;n)peQjXWHpR*N~{rH{~5D&XZ+KkDF6zl(F!&?!E)>roOhC-?eHrwQ$-9 zA07c z3uQ-HtEkYFv=)Ll&ep1mKK}ofF7?aL0x}APvV_@yWVHg;1XUTTF;r)$!BCT- z7DH`@It+CIMPUQ)lUuV|MuV(9R&^~8MS8V~<3B+>mf^6q)0@wO$l)n@C_|y3Cs6~O zh69XO6Z4AY)s=lYzwD`?G6ro(YhxJfQlrGr*~2JcdSF$E_JTq)yXPg;4-_P-z9l5T$kLuTQ6$Gi}sCKRQCwXa)ueQCq@m8j zlrw0lBQ}AMsw#>8&6S&*C_}#=_?Iu>U)a3VaBHox2`yeKOC73ok8mr=oH|A%!El+2 z*V*lKU~ST7QaBrISQfyi(!W}mE~f_UXb^oAf)EB2xEIH#Nkz}MUA8%#Ik6|Osqz&~ z&VpO6oNzyWJnU4+mIg^EVoQ%0%%x5!X?Rs8LpF^V5nBgKgou&aac`kaZWsMNb)q>Y zRp{z2FzfB`m_rAphn^2kp_8+9cd8D55Qnc{J$d=|FG~5}lfRNf^aUA8nGF1v6roxG-p>;z@cbt<;u6+F)`L{yau*S~L zkgnENW|NL|6Kp;cJl9|*VS4kp-=ABR_l^$4Mu=hG+9py{YR%Mj>yy3KC)?I1t+f$> z=Q2nSfp=IiyUpxSVS0mdCW7;9FSepS~& z7Q(=yC%NP=WI^M44^kO$X<$AqV{f3&$X=$0hc)dF8yYDG5d2_%ijaT_;F|to->sdc z$G=s{rmLafM=S0#XSM!}a-J(6zZo=PQ6TgD9$t)6+C}qH&ef!@SSv|b;Ib&dZ85v)V{taqtXc>1TrR=UmCDn#iHg}t z^gFLVa*YFDH!oqn_P_bss_iu5k>;G_F$|)=O}3UrRvyr zJoXSsdVa)?hu9_ETtx`GOf#*rubWgi`!FheE5R-Qi70`CylrJq1FyqlD~v7{s*84r zRf2Z^;pT}B#(MeI(p6hhz%K#s27zz2J_Z)2tBliCD{W?gmrf-y^38zt`|I;&SvO%{ zt{d>VnLL-_t}RXO*(lD$A}){z`xeMs_C{=6?%yOMLEnluJDX&*-X!0}+h&uTU2;@G z$msXIscw(zB8K%~cT`9H{+sovzS%pfi*{5WR8@_#Y7?cGY*ok{ubQO4(!27qjri~!QR}Rak$4@S-lC#rtWVHJ9 z@oD+_;|ult-qUI1e>%}8+5PForw>QJzPNv9kzG7J${rn;pUw1JHv98LE}x$AZ+A|< z!}~h}63>p|Lxg77Nma9>b)<^?zu1^3C9%Z^(Ix_g9D!!MgaF(Wq>JlPdmqh zeTQ@I?nw_cxnVd)YbYTJ3ZC0VC#aHE&?8C3vQ0F2E!(`;u7Bo#+54IQW!Ud;Q%s56 zW;Mw(2Qt6|4UwWmnW78?*Bkc`?u6jfs0@JooZz)=mmSvyVZ_N?S#n)$YzkTZZC;*{OLXzw*d$r3jSo7(Xnm6?hKaDO| zbFywSlxpdHL?=R3XFou_62Z&b4kGOrj$! zZa%(!9HK0~b!^Vq+m8JAcSf=-Ihf5`uMpLl(P+Bdm+rnh+a>#QmY;&{3a^47#Eo@# z?ZV!@yqWwP@x4^~qEbE#3HY^O;#AfUP5<3I$Fo070d;&Tz@%UHJ5R)h&Uv{iIw!mn zK`SZZWx_j<83pxKb{Q~+700{}fw~v!E=2uq=;*w`G*kYbBItV1j~nSlRufHgn$nC$ zbVW;jfJhp!mGD{%%ik*jLgGB!U3 z8C*p9ZIJn!1<3qtJa&ic%fq%SCcMoF4<`nj<35?u)p26mGnP#z?x5!#92f&bvk%Q) zrgXvs#zj-BoiwkNvdJW9fFhxbKtO!A9MIWvz@Y7X0N(p8>IS%nxe-0AU*W{i)raX!lM-eP7I#~GevKx}NsfcRF3DP(q<9K zBr+ttq@^8A=F@oye>G~njd*HtP>8(m0(mw|jybSZHG%WU4eWv5bV=yp4!A$gEZpO% z(>1ocj&9?A4b9Wgz${h-rqI$n;QJ>(3of;rrIdqLzXby#+h-Z{G2_=G9glAUcP$$=Iy)p zA3lDHPUZmY%Od{sYjU1u%fIqfQGWaWDkn58Y1B{&?4O@&wX-#`Ok#Ar~61rQ3%9jX9vx*oAWmgf?W@vn{3G*1H1im}ro*m{3EH&Xs3!g9v0L0_VoUfoWK z0?o(FnMzd(>%1wSZk#->7C~wYC3V4_#(?T-g!5WI1)_q91!HIGgwFb0D928#;1lH% zFtEzU9L#V|z(>uXt4y6nqb{UX-g7Wua1&Uww{mbR#o4ec(8jB~mCys}TP{ecMc23+ zGl;GAW>=<8F>}`6ETNL}u(2G+YV!9yF1VaiD!e0IaRIY3Np@&T8b)Gi8Hui{<7fs} z0}2~}u45bER185)Y%>=)7t4T(L!*U(XANyM{Ws0W&U$T*jPosKc2`!mcF}}nWr0Eb zi70?{g%~$s*jBt=J7gOud8{^2ih5qvjF?E7>vlZdFxcU5CQ*ww$AAxXt3%-19YDe4 zb(t4p!gdC?5qtb`KbdWyV$8B z2nVH5ptWo>f&JDdQbo;Iorzy56s@tHF%RJ1#T?%!HwOVDgeO~sNfTpe{iw3dniP4? zZWoR>lKNm0FLYZ0atzD1BSM8286>9B$IHRIRE}gGDxe}XwPeX7A2{+)$u1dT2Dx?ekL(?&VEK3fb zz|SD4XFeKOtEci1xDk^UsyMTNd;C)2lmd$!Bh3Dy{A0~NfM?Zak%NJU7z1-clsP`Z zh^@k)>_E4<1*}EhSSFsZ%>i&6%xUb#6ElZ$`3I)Cp2oW^z(E(vLF)?!#n@opR~b~| zncA29HmSQZQPh;?OmDv6 z38+8J0}PpwH5NJ-t*MkynMi)Yz-defZ8~`gK`NPY<9#%m)VdG~>czvB#dsc&8g-&pIfbaX_Tb8Y%VVRfmMk;f z^NA^JmlJ-Y_!Ui2U_lIW9-Y2@m=^Bf)?JJ5MMONVMa-ouU3)7T*AAvKXH^g$v&vh? zmz759G2nubRVuRTC{5Pge%&WBx=gItiER^@MqVTYP-P%{bH-p9=tI(++eSqZIL^-Dqp4Pd`VNx!e_n+tq1UBc*cT#l9odG?a*NCKBY)dF45 z30%}yRHua^CAm=S(AWRnNLAT0Atx4ox8}%nN^34;IAC1Vk{C?fBo()r5)#6%Sf4en zJ-g-sQBIpZ)x{!kH@dhHPqOQtfC_(gjupX)qj3z$X(X>|#gP?nb`;z`75-)Q2au5c7J^o0dHvEWWw$^~OTI zRj>Nh0`6lQxSK5t-(NxNQ{{e4JK5{yX4dn#SuM5-5^fAt$uoj7puec0v!_w9*gucc zS{<92^09cQ9;J{j%X`eg0j5})7oUQyST^zeqiGPrU(cWV@Yg+Zr(Wm^HMLh`R{7A9 zCUj00qbhb;$=IdihS}Kl(5FQ#BT@xMV#W(g#AUlP3Jc)imV4y&O7w3FX8CR}Blrdc zFBv6WOkD3!z*vw55MKjHM8n&FW^|JZxO*UgyWZMD@Cr`?cswUSM2qpkfp;`muNRYp zLqG6I8}gt9`CK&oE2uEL^GiexB~hBbMA0_~`UVFF{z0#|7`v_;xUQ$@y11xHu+bC- zaFq|Y=aMi|Tdb%r#s@U69&#`acY3bl`D<}n0@r>p@I7aZW4(x|mC#CUt*1{cEy~zy ze+eD4qENan{fiLZ+ts50zIZ1;EjdFAEtEMv56K!1ACcTUj%JCBXH-R0BNR?rW)z1jVDEBS|eIPa{yYb2+C~ck+l7AG2pSigTWp&Y_}EV z9i!M;TyxQrt=C&?#9djG!$KMshD-duQC5|0KFPQ2d6WMH%CP7mzd3@K?Pr#rcB=Z3 zJck*qJ=eh+&1Cr8EKRgmS0%jG0{E?FsY+JD`6R`w%r?kwe;wGU9!e;=9Z!^WY+-;1 za@F1(C(P5{(yk8VN{E%PE;hGaQ;-~*ZAyDTryc50ux7hwx6H!MD zAPmvYKTQp*1NeWb;&~6V2MmNKIS| z&>)ORAs*;kO8tK|zU2cGbUu}TED{zqy6gY{e=Bej=`p20d8>#D4Yz~s%<$j${i5v>9yYG z+R0?Fh6s&9=#{SluDMsxS8w*)HbeO4c>&GkS2+ma5+wQjovToeZ2xX-4!7P}X0;1L zoIxwj;o1uvDzGc0?F6V`F4IE#q4D7kN}+s%R01lVBDutcPihT`%yrnsHOTi;?hSFL zsVU$Jbg#FgZ$SwCrohJxPBKLCxdw59{s2d{Ae7lW(?>&TADf@!SZHnx4Sk@Ui{V7T zSHwtLYUdNCUw~4hv?g2$KZX@Ekvp{nE{{yh0amK`2YYYa*tU%%ivNF~Leag=k`^RO za-5`+89yg+ySYo6T+{o(mMDv@OlnEWwqomj_TLPKLjVLR%h|SjcW-waivR|| z02mAggTY|EyYu8<8as{CS-_&jmAp09K$)l!p@{o)Do_p4$PfnTA`Oxbf0_A{@aJIGIGD=F|4l!gIJtb)IGAPG0_h6xmvk7E@(1cjl?IZDA{pI(?+0m8sQKX?^5Z0*I;uD>D6m`jmb<(mVw(9QbEu z%sE*mR$p!Og$XR~q_jwvz050*-L+esyw!Ec+~^R7{vk^JX;9Vk;~c&Wi!}5gJWJ9Q zfKPIxBRD*H0;9{2GTS)5TKGv|G@(K`hn$Aix>_%G#Fq1gkWLxWd^>@v8~d!zFnbL6 zvm}=$B2?lil!g2Q=0*TN&`eUrgff^b4|!vI5TZ66tQ@2ru+U99jIPSHF}X;RmGry% z`BKec(sn0|#+lI99{@e+7RNq?$s7%5H1@NK(fnWaJFIz_W>x#E{5mGe*))u}H>y6; zY490zH$S6QnsYhk$^_b8C0p_!iKA$LY>>Ybpd>`}Vi&;5I4opXqTBdaX>v>k6)51N zawpC!X9^3k-!)^_YhiFWMh3OtdO~{RFM7|_Nb$u5?R-?u8PY@7Y=)?4X;M&QBHw%7 zz6dj%fJ$6JGxTg2po(F{=ZJDosNZ9@klpKVf$X!t3)#K?24tV<$nLppy_} z^JiNi|MKrb{`s>F$iLK)e^EmIxfbrjzkMyd2mhYcH?G)3+0EkZVj=h{bg;!uhNwU8)oHZ5tGnK_#yMtflB1_PCX`qn8-BX2uMYm z74m+F5s_~8Q8S@*4NgOzE)%-pE37AYrCIfGv|&G>L&ylW8KIw$ej@r|QnH1Q*o)dB zUZ-paVyVQ9SfqH4iTPM%j_iMIYHnvR!Dk0cScYaOlg!U%D3grg$GwX^42o0+O_?M< zNKqz94`Px@OgbLVmy;l^lPM7+K8(+k@u zMZ0&VOc3T~Ji@RE638@Jd7u-jWmthF1T~rE)CtpX!w4`j#Z`l!6RHjsE!aK=zDOf} zCUQOYxl79N2HvE{Wnj5L_ZxW2av0nrxp7^Id*~z>W6mQsS#k%tkqaf0{edy3+ChaC zRg~MZxFXYd6>3T8*aH66Ot~6EMcHoDqNd@5H`baZ?)|+&SxptgrY@{7xw>Jp*uv=Q zm|^S8u1*3Hb;*1E2XKC7mh4m^&4GS?^R)N;#fumH-t(P2ey_Ij*N>{aRPK4pQCL958XAlf z*6rGr|AQt2B%=nOBuOW1lUTQiZyY#E+rbM(6*T(y&X$0%RC6K(b%Z%%;+B?b;~Nvc zaRt7yjqhWp6q*+0{dtII5^Wybp1T9WXzh%vo^Vz3fz9))NSB+s*MIT+<r=Si0i!)uCu{r42zt1J3#yaeU@18Bc|0Bt-^uPyua-&1zaDw{V$N-VIqM48vh zn8m=KC%Nmi$m9Zv3)|k0`nD@V`HcjXp72RON{l+7dwdz54jv@PQkVl#GMbWRyD^$? z6bF&5qz3KRza8318xikmh__-!z1;?Oh}_dJ;T|LI{&u*(tlPip$lq(|^#qg)2#T7U z)=oyvo6cjz*>#1{;i%86K?Ql}W3lNAJUg$)=g={0&wHo`J%olj?%=g53wHUaU983K z^>2qAVWY4kY)$NX_1Ff6wCI(iP1|z`zBJMR) z_yOe?GY0TY0$^y$D-^GAvR$y=?YiysVU~g1?zd_oq;ng$<##pBZ2i5>{5r-6CcL5z zLge1@_iFy8ttzo)U%oWM=AIx4!BCl=b4|-2Qd|e5zw<@7mT>{J3bw&L6FcP*HZ5L6G z1s=3lGhp(}0W=cQaUiLv&9f+FYDS7fl>)#4W|kZB5SJ6koIu#TJzg?ypqlhLbjYCA zL^;D-|Je!rWK~Ws@@oa&!wP$HDqCAnSc?H=JdP%IHvODHc7wUIEKVT~!Zvl2ifSda z*+#oWNJSJdGkG&gP%{I$q^(Ef#US@bcn7czYam|q2}pq|t^bMx9=P!o?A_nj`gg&S zx@`7SQ%vP8)HKNW_Nl2GPDIj*T@fe?NRtB5OHDNeS_e>dzLW5(VIaudMep2!1)9@g z2~PAh8f0N3Gkt_XpMaD=KBU}r>6)tLLZRkbIG;yUxoWCv85C{0#0lL;9C(l=ukC>f z8zFBn%Sz>evep|1ff=m3j`FeQIGJ4t@Y(5*kBK$cFo#+Ng9OsMg8U5R)=Y7Y>nx;C z{T2`wBM%DHAw%k^1AOvl|DD55xkAnRhl{>^i&GUUxQhk11FdMJe)##r@_el|iOz6> z%-cQtKdt}V?Y6%;YX8-5e`$}-cQ4m2%>$rgARAz}rh0>PAC=YzSg7=S>Al>E+F`o~ z7&^U!gVcr3xwnM153d2g5HsjO5OxP$v4Ai5=!q%1324pEWlLr)Zy{oD`V@1w$C!Nz zW6&Opam!1G<5$p7lzDgJ7UdE$$GGjiBn7MQ#aiCD$Q#PMzRc^}d6}KZZtV5i^WtDQ z)~`7Ghj7<+;7ldn?vB&jg+cdQx^N%5B5r$p0l5J6cN7c&0DX(Pqi?k2rVf>EM8zDs zG;ZStVJy3Jj_sOxW9-s}*WW{1i$ksSHpohCJ^bQ@J3z8xd*$^G7rV>BLhrg>dxk|UUwM7Z(rSt2E@qMN zW5g;)g$lq32f$&!rI!+61`n7lBnNuJtO5{^8gX@cDKAz}Nl;70wB=1ix{LHAB8~d| zgM;Wk74w!C!M*mbp2??7K4qF?CQ5Ek&hJsHzjL)N&pCdorI`Ig^_++C0LJ~jZOhv{ zBR554sCW+SD9IN(cWpb3bczUd>rsTmCo0;#Q`%+P;g(OI&UrG1PKx^gjQ2Ut&*R9;fo8$+#*gr};uM%YUkUhQ zvz4}*e{8aQiE#(7gLuskAK(7){&@8L$J5cbAAk7%ZBvZbf3acMf{^LX>b4IQ`DhC$-?5g*KpYc8FDS;#zqLsOclAFh~y~UK-L?%Z;4~ z%FrYj=dL$6+u9qmPJ`+Is}aJ`7Saa3K(z2dvidPdvfx${8x9Lf7?B~G#1Kw{B=qOu z7ip^NL&P|apynm|l-3g6A-#PhC9y$FFDUryb=Xg!D`5@oiMBxT1ks}ETN@>i~Mp*LmB$tfz6Pje%!$kiXFRoVJ7 zU+M}*B}m@-nXi)r`Wc>k0eBgnGvzH?UXPuP%+HqSe>cj#tG``E{#7`3GNPHn>3e#A zkIs6f^HEjL*|-xHexnccU?$4sH$bFkolm9c^_m3yKwfA`J*d!#=tIm} zw`_s008K7W2*9)7CNT1!8KJ@#5Knr#Ic`u@D|_X4(9ZP7zf)cmUAFOBn>Je zt!b{hbAs&7B!8aafr`Q_1#(Yi@j_|vpMDCGV?rDsWT>L!3f!E0DhRt&5!826U@;uD zfi^kJg~<6=~FAJK6~HJ52B+T zXO>Xz>~s)1CItw9Vrm;0v{yv;&3N>KT{{IlUC4coB7RVaTK-zx)h=@QY|^>tKd__| zwaT?pE~ul+Bwj9Hg^VbYj5>?hSjKjCmsvQMe<04UT1#;i^D_BE6EKE3pMp4qw+u2p zq^%#g`p}0^7Rp{mzxZf}>~Y#?6Jqpq0t%)oCsoSOF7-79By?y)yX#>UD=0NgT{XiZ z(Ps+w(l9LKDsq9#0*!Qlo7aP~ASi`0yiO#oa6A5lUsQq^5%BXv(qtO%ApnUvu}G-x z?)Gz3Yb`@L?)LMN#E)VKg+%||Bpqm@WIe{iRl|zBb_G?gce_4?$}O1$_#m9o5`BE3 zuk;{;JFd{92{qZm0qAX}R zAsmzJ_C$q);82TohWV1)3NSU|8^c&*lxUu?fNxr zH^unCPsYnkW5T=;$=B1u>1u>p%v3Vv{VpzWHLN-M`&e`A?Aft>i0*G@*?6W`&)#$( zz!?PFU@PFQx!7!LE;jxz&Ba1*>G%L5=E%xIot5dHU_#_&v6OSVs3RJV4`vKIF8JBP zo1Kl%(a+t2cc55A4d04wz9p_u)w9As*HFd%Pb0L3PJ^tu}lDxbm#8pcI*R#8~_0kaP zOT!GfLp@`}6<|+nzjQoqtq{bX0p>X@8~a}&>eKUvWq}_P`#aj)X7%tr!~%-t3_TZy^`FY2AY7Z@=J)0x*h`D}Qdl?$yBtlgnTdlK)F1NAKa~ zG$SnyTdp{M#ps@3sd#oF9X&dy;>1<2eSYu+~=~^WpI;d#tbQS6i&?zr&``Ug)2HQ^ROTv z^zK6ei!gpf`l3GHNni+DV8>F9T~RC+GBB&7uuT&Z)Ti6_kyl07O3x z2IRBSqPKZj-fD-6K%_=AwQ`$t@SgT@nJ)bW>jUev32r?=6R=$nd0jC};ZCHUsnpl5 z#cFGj;Of7eNWj*=>bQwW4ZXOYQNN(4sph$eiioklfN)%df#(HDdyc#h;{76C&etNI zj5_dD)rGssvSTPQe-8yXW1;iMf`_cvMmq_*#_myxGSu8ux!q4+;koTu3M+N)O3c9! zZrj|n-6jpE=FS>e+(mF5%$vFIs>thgy8CYa()tX{5O2Z0Vw)oIaVHXSE9z8m9EiT1K+=>fvBaUGc8;TQe za@d4P3@kqsUp#Q!DDwq9kAD04@1BQtoY1IikNQAdcnc}3T(gW)$Sg{h2?=Ob5jNjtuI~VQ{SAq|?$D<+mw+d7 z4`;sn20kVIV}JR@K()MIxFq2t?r)Y!60l`}^NUcRpt6u<^;{{BJ?Wuh;?nzNEmyP8 z9wI80P>^y_=@^7Ynh${E@myg!gut`ITxe+dZCbp<8o zS>C^j2!v?e74%UQ_=-!IhYJRIe?WPtAT06{!g{N@|IFIl4|#vRuk4L$y*ECnUMMbb zC?u#jIG+Usd)==40d@)Fc?>+nrCx-URN2LU^ll|FtlGDd7;ayY_#j?;?{}D_;Gp)> zad&TVWQ*YN15;v-`RkpJ?s|LNw`ga9ugbJ88mt<7f3FQ9Mi4>%Y&T7O>yi0(`nLqS zdgnd%1r+x4p>ynkpznR_4jj2lf-mvq{{A5pZzX%7=2%EDZ}>s{sM~JC!wsGNw)3go z*>_!6d=H%C`-2~c-vj6P!MmU~JKy7>uJa@Oh3>^sxGfj}_1mW~I6==)RapHXen#4O z5bguPF`j?(euT?Hf5Xc{e`~h^ncEzhzm<`>cr-HW(bK07b>@X=--!0HHqgYcu{RH$ ztwuu;*EaPjaJ&-){5T0zWzK`O;Xas28P^dX7m;>vySnL6k83ws71h3dTerltTZyT& zEvlS<`%ZOv^*Bh|xnT2G=6@rZ_*b=ld&IW~){pO~r0YtgzB7=jSU;}4 z@78OO1A6PL%Kd2Iu1)F6s-rAsvHq4H7xR31ePe9MGOk@ITgN8-uZ;hpxw4|2F6MFJ?JAL=%x3e(zp*fhyLAX3uSmxQN z>M6-kq9jWRXouqBaa}`Vqai?T@qfLR1g|FYS;3ODNpKeVWkQG3sl&C1in(VkRTUOg z@(NMHT^i9wpRCReB3pVDW}vv`Fo`U5mhzduE+E#`dpzE{$LHJicwE)v(P62N2j&>; z*+>7Y-}UJK#aExGu ze<82uij|d?1Zh0K4o1*I#Pr$%xC)ZX0JQ>G_NA3P20?y=$&fnYRMTAewiKO?lW>uZ zCP5aA^V>NWHHx_#yS{in4^zlBBKuja_qbF6-t7Xl+B_J=(@_}FLv!IpI1e){^z@!%LLk@7h%c%Xx;DR?WOLb#qs4rA8Dg_gt&W`^oI$^^tJ2+)cmz-bKQm%&=(W$Ig9H!!T% z@iLrwS%|^-1CC`;gUlHqNZ0C|&+u7$sR7blbi4fa;Y$npg@qawFW_!peuQG@yh!`&rlpC{zW)G zq4n>uD$-dw6MS8NK))oOUScgvsok796J3*y#`wEI5av&uW{z`+&qtV!w`6Jr4(+rhFSEFv*{qNU!E_Uz=f9a;-;SR>5v! zPzU-`OCvI=OVoLtff+JCS5#(Dr zBWwwsN;&$bt7x0%tyFd9A>OYU1m-;+8s@LQ$%Fks18GFn-0&e10C+2|E`v@Mn6D;j z!$$N6f`k(;nk*&V#9*4})eliiy4Mx*h`s zZdX}ZoNpk3HP_&dVb0Pm?1fT~8jNcjqk|L!+r8#F=%=t%HHqB;bm-FSKNIsJ6_-i2 zP(0sRikU|%CmMxUt(=FP@yfp?TL;XBE{{}^L57F$DOylOm$KBUcgCstt_@v_K!O$9 zgIGM2F3G8pAHzhGU!X1i{MHB|sPZ=OEAdiwOC{0yI;-60Ng-W^jLa8|PkVsJ*` zb8+G&4>27YGiE!9`<6K3_kDnDdb03E z!T1gno4a)fU7{CEA+idPl=O}XQ`Il5NO==WR+l+OMihsOQt z3vnrq-E|c|J&q>ZFf{S6qzOI;?0t?9q+bC-lC9pQr*Zsd9;boxkyf`a;w|vd zBS7n|W`*)8p06(B2pgVB^+C~+*MP#$-l@@gcli3?XGZ9CfzY?!&u6dC#Sh-G^DTNP z86G*`;~DEZf1|5$_*1U$6CV6jRP|S=>N~xvzaD(YRsB^T*gt#Uo&EJ(`~>iS@%}vg>EJI6 z_EXUhfAaov_7fs>_9t%qp8%gf5i;gp*&3(XWyIV~NL3rI$Dw&wGDDSJR9yEP#%Kl; zx7#kjCuC?4fkMqa2wZ;onR*AadS`|2ISi8WDsjQmz{DAO#p5=iLrkvMI%b_KShaxe z0}&ToG<=vD*J`GOuZki5_jSdj5MRTLxm-J;mKm!|b{Y;S+gxmrL9$r>I-7TlVv~d; z4=FoxA!JkbG>n|ND`tgZJA{T*hJ2Rt#4O2M%6O-W0>(R8PSbL({kb(WBmQ#V6(K+c zWvHM8#gv$|L*SRh%i9_KuH9lIx9~Q11*(iUbcRwRPranNwTCtFXRyz#ulIbARE{8S z0-Ob&)81Xgw+enRmHhd&9wz_-5jE2}W-YGlGLX9J%b;|lj1{ct6;;EGuqt%LH3Cx^ z7BI#dz?a3`i5EyE{v2n(la(0poHP@zK@eLVX2f0I@Ji33`$W{tL=jdClI|cw>jL5` zu-mLH`ART4Us3Y#^8S8w_yi2lZVzv1`T#3)F2t=ncmn!&w28hjbif<=3|NJyt4Vv+L<$abUl z;DCw0=}=3_r_$=$2c?KU&@jhK5MTxeK&u09 zpG(?(c7MNm^+E+*7!D|48L$MVGVPg}_8-pVKrROAV;)sR-z_rHwF$7H$mZe_e-bf* zpNqM;#h*l6U?kAX4g6{=jyP5$v1k=zaaGK8H7H_=wjyl4WI$u~5;Ph%(an?71Me7) zBae|?LUWGUAN+}@*(_brq?F^es}0f)zT$(%B^5q+j=V2rA3QU0(}6aE$axLF*YJA* zzhFg<*GR+^bxAtVCH!6zQ0t;|Qx7E(YI4&Ob{4@UUV#7>zWuWBloflmH@XsG3l&&J4-MH zCQYT2!osN1`&H?erTqO;`pC?0rE5||R}}mRY$*e|xG26fso+a4ti9XkFV<|klp8Op z;7P~cjmeWDClpsw6?5SV3S8@fksi3DfN!vZV{zQ-l_MbvqWgAqAENi{=sj@^C|i8w z#^xi>);1$C_Wf~t<(!5K<~l5lRE6rwZ2h2apPCp{2_ zNVR1fgDHg@PNI{iPfyAYD&N2?eRIIk!#6N@PN{FW80X~d%{eV@zig}mv|AuIo0D^3 z+p_67K4K1@ybr?PX3GmySM7ol1~AEg+L!b8 z&*^TMrpqAR?SIpK(F7gm7S&6U=(nhSNP0#m(bcnu>U+?2@0}8@9BLs1U`0i}(njY% zpT$S-<$mRmVPl^-*t#g6KRE}>eKe;nZDJ)eo!Rg(X+7X^2A$q zp;2pKJ$Uwws5Gk|yx12tX6lgkLTolEM;I))&M1HIvL|Y6Zz z!23iwMv~{k=vZT~j&HD3K@YW+2A9|BxYa6d(P_zNF&Joy;&cZXFy8Rq4mPU#sEb8$)WU|t7HbCvb1DkZ%6>V)83b@ih0^B?(22O*J zJxtM(TJPwYgh7+uNqGIkx8ELrZi?gg#~+TrKOHplkCBnAJBN>8Edd7b%~lM+e(=C} z8Ue!b=C_9UmKjMfCfA~8xB$q~HyWox_H#c>fO0xk-IuI+I7pwKMz40LQ(a+Rvn;** zV^(WGij0F>RF)5sTduBOSzo`h!hS`K{cWnOf3S!g>j#@0>x+e#T2HRPgsX@o5By^4 z#aq2_G!qFbeHVw+*ab~9v5*tAa;yf(e}+rd7OK&^t9%S;Dl`nKu)(DK@R9l~KY*lt z50z8EE;;~2$hv&z!>fa0({ZIAs$YAnvnzBP*cBu18oOY4sXWhK7X5zfjo>x|x`g%P z)C)DMYOUqUzS=aeMl1DUTF;Dh`|bL9rWuLb)M-8%vqgq}RgS*OQgm-n_r4G=b866o z^NuyLLqJPmp$<;znTyRMX1#%-yOV?D)OItEZ&~=~YF1%0mU8%9`T#RP z%)fzoq~WHs<`h`-1I%);N8+O;crr&Gyc7?-iqq>p;&QYiDCdr3E%ctY(3@wfEPpz}wpq;6tSl_*#mA$>4gVUah*j9fhkL8#_DXc2+l_HLxjYMan@B=7v z#lyf`qM(X{$Pa49Sr*s%qR zD;oLTnQ|Jb)NgmDa7YCDZTMXcCwag0cCTFFQ@?Or;8Fo&7dncPeAj&Laano4e~z*C zHS#eea&3>D15JK#teyY+n{L3VqwDU)z#YBgmgmMi1WCh%3B1^lnE|H6s#Q9>% z_v|@0K_Sp6ixKaiQz=JY+M;NFVD(OJF(8{5=`bNjqcS4{cALuU_oEK>YM2}U6?yab zrGv=_N`>6wq89jr7AtPHD-+HB#Id)iW}|z3W~2I3SRl7ovRc#bvmTCoZ4d}@VR35h z#L%X$gM(RE-H8Zfz|2F-(>R%kzzgjQ%$Pw=$Eg!iZi?5DSI=u6JE5JD=Sch;^dul< z(TJi5YiiwFlzGeuIwCKlF$U{P(cO&35EH3cUS?m^4k!xmVBgZ`3O@OYH{S1VS3Ta$ z0)#rL!v;C9aT}g$q8HhUJaj+VMx9xgoocH->kWeg#ndAYUpmhB+>x=%W)K((+FqZb zPeJ_Gmalr}Khg~*c)#>H^HLqt`sn-;EghAy0EWaE{gk9qL$`KNJ@VS%WN2=0!jhthDa8#>Y^^5M3C_naXbL*MTFQ=k+m;Fq>J8;$XzeDbH=!)qNf4^oh5xX-_>di$2WV$NmzmQZvORQ%pF#YVrz!^%iBUhG`DyZu)2PWiyX*Fi254t(J z??F@dNy5CRhW5_G@SZrEaVdzQ-+8_hiZ?drvg3+N z&NzZ>5)nIZfG_SWu<$n}o(MeX$V;6gQBK%dxUP6|W}`-IeYd^!-dLQOy70-Z?3A|}CTsEv zj4bpT3}_}D{CA5+RPOL2%}YQ{2?&K@2a-#1!}c`{2E}=3R`Z$!7w`{^|1-2zr?Bg& z-Sy$=<-XXk8$)eQU(_plsD=i zKT_@OeT9nY4wjigySJk~n2@2vO;}k5rMPyFhB&G?m5EEcdQj~5_6MQU+jn7OgdgyL zgi?&vzU}Ov!6fQEM{P?C@)4Cs{^p?@d0BVddma0xE%+Cnv>|+(_nJV^Nmd1!F(mq+4d&@H)8B65M zVIZYLX6(&QiavOqK2m>}GV$166~@KbxQFtB_FsX7igQS3CdTf-ECB)PvwzBir6N?( zQ8frQz2GTf=TqtE)Qg=^8!RBZwcvg{!3&+^8e@L!LVjm7v)>n0Z;R6FB>C_p#q-WWw1h!LwGg;i+r}#kIWVF194I@HYm!)CyxF6lxlb)mo0AlGa?SY-@h>qjDbpwnon z(G7&E`Y(QLKPeq(D%nh8t~IzWA$sred5Y8t)N~)F1v`RG7n~OzghLn3lIYc(${Pg? z-+m_2cHhNw7o25?$Ox8JcGF!wQ9wjlG^QYNWq|saMyQ@WQ)XIM#)6R^DEvhVE&C|9 zRD=0i^}-ApJGq#ACNBlgsHo*x(TsU(A&RE-+}wV93K?+|(v$0;TEyH+lGfMlK-?LQ zaSM51Fk3?>#oN;{N^8$bR6L~&6qUcQ!i}9kJ15Xi?LuLmbu!HJUAZE90DJ1?D-G|n z8Td{*C*;3k5?)En*YW207hD5@0{b6fy(69~Ku&t^x0+5v{SV5XvbU>7({15jq$PLz z8T`eb!Dl94x?@45S3e3 z>*;};s>H*8r2-pdazAJ|Xa9L~-g4`HL6}s9t0x8dM7KcCKL>LYzV~882bkjKgZrP6 zE~*k;K^3tUsR$2KV4W{5V)h#v8(uOf6mJ1kfZHP{Df8757tpxpFlCDxmgiEG=R#*L zGOPq;Iv=jXCHi$ZNp;RlD$AaEo;TMyPN5z|tvyWdDdbz6&1q&&(UtD>d}ppvJ8=aD z0RSU)ZT1XsOy;uI0;OBA;!CuK95IZP(Ln@l=H83ZG9fLmJdUq;b?6SUk-DksVaDY? zn_fGG$*V}+L6Op%>Iq6EPY>4BFCLp7u@f^5(RX_8Q)g^oY@#vF(WqJ%pNUy}+))dX z>slsIH9PFOryhFG{~?=g+e7@XygPsKcUoy>qVW1Mc=jt>U~PAMzywjptjnv2&)<{y z#tSqj>dAT-s`*Fn=y=uEjiIBJSCpp80w$*yg;A$*?W)D^tc?f`l8x+W-}7)@0J1XX z1y-CJ8|poUHm@*R>vp`LXyA^~U(}7I8tZT+{R_5E)h4uR+Fn-fPKd&vycUy0kPyDo ziX5&!`HRw>5UE=V)9?N70q6UB`U+f-DFFdF;>Sq>Tn#1{NJF5leji=F2ML)BBVpN< z!nL5iq1$u|&+PN)(raaG_?&sIp!k0E4ft{6z(M<)?t`@<|I3z>pn(!uFlbyY(+n=@ z!GGCJ5JU|qLpqWCrVCQtP`?O(O|Bv3$O#KnMH~F|3Haw0SelnC*vh~z>x|1Na-NrS zlH)NuYm=G>eaK}{S8_qvqfi!`5E|r_yXB(mfAO>tDXT+FLgR;-pMJcFc+=-Jq5P&> znc!zl*EO%(P>WQeHF+k+zycYheFBYV!N=m*D?v_{rrG zIb|`PDXH~9Q|yD%m`9&mDPW9q!fV{k(U0f>{Cy>mJn$PRYb_daf?$$!HlSb52!@i+ zn{N41hP~{;4C{Bdo?*LC{7817HM8VHy@zb5bP_MK*-t^5LGNMsdq81!>_a$k2hX(5 ztjKXzbm_U77gPF}vIi*xJ0s>R<&Xno&JqKlmf?<~zzdlcAu(r9W;v?v`f}2nhsvSN zpUu6|eWAyN2;XD8hUM81x`CIWiw!AwO8t3xx-iX_DI4Uz05DsbB=5>m;azE@q3;g# zl+a2++yEKG7!g8r#ghQsP$jO`D}^~O__RE9V#z)W@h!lhkdZF__?ec5L5g&R&-q9K zOfX21n8x`i4TBU3h&si{&>~MY22?8dGNt9ECX~}2Jd|DE1Sq%GiV#I@lI3yn63yMd z&{F+Or9uEwU8}ANg0tw&%2Yw^7O_`n;+kq@BZNdCHtgVxj$4B}qVZsf2*f2)#_AGl z(9=7-8jFpY{LISqKdX)j1>Ng4FyV$}Pp#i-IeJti<|0vSerR(p=6$EhuBpdO{; zEAi4CK$fRHN{4Sxsbldm#{TczMFRLnxbgw<+a?_)p+ZqU=LxaT#FRezVp6@2VJkv> zAt4`cy0-IEoXjV0;zbywp7L9Mf1l(~z$#J8?7>KMIm*A4QNWA){X%&A>_?Y@ch-Kn z4==Ri)pq_kClGlP#LLSdNBka_I3~77GZ$}6XnO{NA$LthhG~55b)G-l+wb;z-Ip)E z+3UZ2_AF0Z;0p!?4uqEQ=MDA)_7DaLA8A*Q!8DJ~EyVCs zR)QaZ3H~6eDkpxaiZOJHe^xSQUg~;y)yYx8DPB9fbC|VI;Avn^76TAWrciz=jh^aI zwUQN4B149Fg^>@VLof_pj}E39=ulh@I$>m^Qw&KxLW;0=Fhquem{%LYO}SGneKZNL zoxZFxt*?#Pjv{59kY(PSI;yj`6%p^|4&!!U*QDpeZnU@EZC`H1oJ{Ss3a5Gy7^-ri zr_nstCi|W~g94s%{(KDOBzOmomjHIaE8}myX?}_e$x}?j&kDGzyjqPkmU6yqBrFMG z^bKdL=@}n18U7XaOjkVby1K*op;qKW-9k{+{X)3I6yJzBq?hrAC<|*%hU|2EO2_!T ziv+J28_t+ogqitedUNYh|MJjuMgRt^>E{B`0)3jk%#H|k<_7Li75re=BM|hwn!3vG z<_QMze7TtASi1haJ*Oe`w}~&Y_JXznpVvb^FMMc&Ti;j2GB)-Wfhb^mjOAXz^K@{C zg7K7k0V^c}=d|_x!|P(UeKRJyIx@Zvkh2u0#I}S5Uu3(6Fo(*NZJ_$uRgAf%1`6RR zLA#&8pLK|!C3aeKCB?=T(naFQEoyL(A+;e6F5wL)y1}aqi4G%CU*HuX!DQ z8{w?24kAF|E>~-@X0fv`LR2Ke2a0)Tl_gOglvc2edJuih*dEqcUmnWUEdv)`;+NE~ zP9UA^CV_NW_c6b*6HE@1K~N_Sx>YX3dACiD>NB^Ue+BN^7<4{v^UUm;B$yeJAYnld z)ugBKckkiECriDv{w^$h{oUYv%PD|!Q_ZA}lUacoh%4?>rHIkB;AVr>yr|8GSMf4+ z70<|yU#Os~%B)BOImVw!$EXype{o3NSi)x+)fcI6l5b%Phj&==0#~q|gW!so;%$8w zGBRpHVT8=Js?Wt3t6Ug?xrnwOmcID5quE@EOcjHJb+VPYBpwzL=jJiG>4FV_J%c#Dd0mz11X(X1-Me1$(3Va_Y@NfA8iQs9Fmawap$N4#jkZPaB3yX^`!aAOqB>y003UVU!<)&lN zJ>T`wxEMc{VgWHdjG01A4`U_})5n-Ai0Na@%9}tVui$w^CuvXIUFQn^4h>349dxI< zDw9C!pi|maEoG>K=%AJytZ7zH3nKB(s>fYa47MB&ZbrFd6OmXQ>k3*;670GJ`!hM~ z(N_t3lr6~CC{8JFHIDhDP3^6Hb7!h1p8Va^IpE<@0BxhJ{-& z#rQ0!VTg>Rma~LAC=`k8lu*Etl~|A*LNMX(T;RVRCa~QQR772Z;sLcvM6M`m-|JKD zk=YrV?4_^I;Z$eXPoF9Y55ARv2OeHZ0$d1;=+2G1#8Z5gzf>V%Z7L!F)482M z6}N}*Z`XkURv{ZcQ)&Vqb*?e|ktfN;VX?Iu7Ls1R9e{(du$91}&mb3=;zK8BWktlw z)wa$p&)n5PJ+|s}ERab$Rm0Uo7P~m^&4F3h_)~!z2GHNc_{7P6XeExjXaD{%#?CD(zF> z-O);*`QvHHB2e#gv^1@kNYv|6C?nTbyj#HK1+{Tnh)}&pRaDT{DsXp_)`n6=H1}k;M%vtHCE|!x~}Bi(%5{o;=7d`&04$q@zt{aph{Kj}tt7 zG*0i7J7oK`Z?L~7s*VWJhNf5JEl-J25cN`+N1ehxBZTO^y~?}5crM!C=3JBxLUUw* zM1Khquo;c#hV7-jQ4fLHhNMr!t6U zATGA|0wa1|74uBydWnB2Voy9ru;)Pr0ZPajeLBaAMdA?R|`F%U*Kx%zK!3zsO4i(#;WuA?4ir zn0qhJypvC*mo%i`FcDK%D5~x;8OqkR@`33wT$g79Rs#qkkjT4$re7D*Xj)?UInB{F zj!IijxprQpUP31?p?WemcOe--&ye0AidxjAIrmM`+t2bjfh2%K@eGTAuP)IDjym-+ zkv&Z_lOo|S*1n$u%IfhC zF+4;SD?{4k8MOC!G@j?BKR4MQ@s(aN2VPL6GzSn{1Sk*SUcmsVLn);XK+GvIC*h7% zfyDA6um1(r##BrlfRO<6l3)}=mTUsYn0Vt0<_dl84&)Ss#tVY$>m1qQNdN>Hunm=(b>4Z(EW zX*C%r9`}skBr!gxuVQVjnZ3j9a&N~y4tQbf%E2Md-Nh8I;49d3eZ|q9VJAR&2=pq? zj(tNt^NeyILIOmc@d79Z^c$js7c}#=?vrUfBv_u$vR%YSAq5NOS%&QRB{QNfeo(jk zZ$#yVI3vEQN_x)ooR|D(m>ntMB~y>APl6JEqMEdP*e^(Bn6t}y2#CgAO zNkXAclw^cmiSrX7snakLYb#dH7nsJ=cVFkhICXI5$X>x{nY&x8sIrVbMvd6yOJcZ$ z8uZi=jSLZSF?A`Zrm~!$G}&LHOvj?10^so@?uu-enxup>{6GTW$=Tzq%v&%k3r?5^ zGtvS;T~8|{k<`DuAvCzdwVAy~J*OBS^BE)|_=BN+=70bwv(T)~*SMFmXWnjTXir;# zo>MFNL*|ze`zGgR)Q_RZzo{t~FgClTul18!%)X^T+r9|M^WAUTVbtnk=_7Fus{IoR z7Z$2W>hf>bK=mb|`fhNhwGJZwjijq$d$BJ^fF?Ya@jT~jdr0ym;6bi`#}?OA{Y>K^ zwDZ7v-VbmQv-?$!G6H-+23OPZeGX$MRzxr_{T_Ryri_<%4`G&%l;!UqBgwN!0I#P5 z9D+|@H_M-Ck{=5U5QlB}kKeZq1=psPx{a&C=UlD*+w+p-*Dv=k@-WKyBk>p#+f~^w@-RUBlnV={)Yr4a=33I{2rT2z)L$$r zn$?i({1*d}UIjM9HU3IPaaLOj^HO>RqBs!S^cp`5vqLLSYiZ~|9|rBC2nwtwGyE)Y_Ct`qHQ%Pf{1cN zxuG}FB!vmS;Dy*ob3S$nB$QRW>|_)sy8Scponon3`*Ac7b}afcfYDK%pFti zM-MAaRh+anL;__mbj+}We_dAaw=zY)_*JPkf#Ub`-@^X zFYzJG#!D_l(*bi^ySbkBSs@!_INu9}{xgMjw{o&Cjh>fc2^Pq50yUB;S*-(*^O{zd zKJ}VO{IveukPL$4s0#)?J8Uj4-)ObmQdhB}*{p^Hh1F(6aPCT~f{Cro-7i!y7sT1H zBKl7k8*+Wdowl&kwjRnvzQD?Nr9gX0wUbJQ3+F6-W;eWL{D#CoN$520@PW}7i;*-a zxQ0`6UMS9sb-k2-F&fhm8CLNC)ILFflM5C1O=dzkuoSn>8@A64!<7Pwmc%T;h8xE0 zkVFq|7-zvqZW#6jNfi4z?MiyZPQrNnKgLqaU^&6OX3MBu_mp^R=#PH(j)7(4S0?ykPofV>sZvfog z4#qI+X6V(X1=V)}ny-#e*W@0gzr7z^I?=p<t+G;Jp+7 zGU(9jK%6L|4xNdOGP&`kThQ?`NrGq$rZleTxsdyVzsRu(@dfQB z#(nQ!hnKl!Xp|-Kynq-}csD8_MtPLX2)>7A+6cY&cM^#b;x))5$_3bNHapoA1Z>90(pYs-`d4b$)ccJwRF7R2a6#!Eml zX|%5kW7_dGT4+o(Y6&PtrecJagnwjwx?CU;VLqG6R4PqL4aWc3N2>-Z7)|K^?d0S4 zUd&%YC1_8+V7d`OMk!jc^d6rqm_9vU!ce!=J?@R*X^?$BeSZqEpJb$$T2YmD7HFK< zq?fNx<@43z4saaUb_Rau=*^qslatZu$A3Tmel1cB3XMz6bT3=u{ggXvG7kE{9%+P4 zlZvWA2k0)QY<$$*Ahp5sJ@N2l7<@xe^>Ynjo{8Fdtbq1K{WQY#=R&cIL9ff;G-)t~ z0cd_f#0#Ml8OC5M4bp^2SW--)!8pX&pnZ%)>lMqwrN&U@u`a*)RWN+d9X0S@Qy@;ZojtYm>8VkS{A!7cg=`5<&XBGCc;m!iU==yy@cxv4F%N*(pPU|l|K{EM(dqHYsVg#^F>ixKHal5f z$oCK&HW3{z4;_4G9QxuDJ)KE!OMJ?4guEAi8jiokxQh2>k<~2ZWw5|miVT-Xy1jQS zjhFIbemwdp-{W>dF*DMMTe$9^5{WHp4|NZLv(9oPyI!Ow8V}a5%IQsIG5HvXx$^P2 z@M81+p>xM%F!0y-JYW}}Jp^xz6BbCOg=4`hZvqY(hcKFwqhWq0e-Z0SXvJU`YS@rT z8MlorvhdArjUFpZ%bhFPqDkW4(3`|S5vQNu9ew}Z`{U6Ge0>t#if&*}QfvLWgg&Wz{T0iZH>{*wKz)KyAN=$e2dsugTu^>&P`(;Fddo93-twg7 zCq&QcOY*fTM7frVjNUZTiTMgC6jKRqx&MJ=g^q~=@9q63A5P< z3J_1A7YmU7RD#IIVJ(PKONk<{mRw`=y0L`bHYFfic&HscqaD|eYly35?olU9 zg6nV`NH{rgz}_h86GnZ;D9mI{&uP{4G$&=+S@5@53N?QA8#$a-|5A?Y4mJPI;>sHr zFFAv==PRc3Nx^?s-W9lO9h!Gbz^9S8zqKx7kVY!IhLhsa8) zRaozvdAL}>;wJfOifQ;J)lX=+?cgp^n<_C+MWJ0|E_18)k}hp^zPNU71Q5OMPC1he z2^(1kc8U^PJ#7l0kDi4-1!e~e?&n!C1*YEOYzC?ZYYIdn-fjv=wZpVT^N~sOu<3jE zJSizV&~D+Hc}LA0i*2Z=1{^@P;bB091#P1IX(91Wi(65&9xIAnlw zPbmtUda;ve4#&hkS|7t9i!10M-dX-U-&8%%=k?u*@l5R$p6L_t2NX=yH!GOQ(*zyr zqpM-Mk}whT4k2-hSABjw{(O4;XIEUyTE@d`)woq{m(c$e_LmxONnEvg8F|ZHXVU~u zVCwE%;`7mGXHr3UF7OwB@(>2#EEC#(p&p~WVBU7)-JV^XKRmjrb_3+>9Pb;Bc5cw$ zCjLM*-E&)@rD@g`t3qt8?u{-J$ip#4HJ-p9#C!1JIOLF1exx)4^Wt zH524=-+bjNof5lBd6iB}t2Ft9e^Q86xW808@uyFdjV~w>IBo0Q?SOd~@6xv2sF)Q5 zxT&{Ol>%UB?ek#+>DZehxjb`!h#23FG;<=#dJTRgpNH^MY`UX!^1i*js;E!7$7gLD zw|bdjS=?2J{Xthp&3CQk2BRajR>g2_7iA>@&ToQP&F1m;m|33We&Dv_o?*wzh#|FJ%=*4aJE}%=1EhSC9k~ zf2{-qEf8^)1QVAen7J*)TLR6}6lj))5N``LOG}8a5o(GK^~)XlU}x6O+9%r*qL}fB ze58b?7#l+{Tx#24RJO>wlzC?W*-&T6IZ}@N6WzAe6h&Pz)dmypD=WERQHqxHgj zu}~7(`6L7Q#g@e{ZCQL;4=~~F@u$;2QM9?><(l!-%RL~73@{z0a%z4H!xzv};b3Xw zdEh5+ki$4#5;TigsN&7X_a8rxUjOjzx5x1F?)08(RZ)s*(7Ups{;q7X@W7Kah`}~NbN2-aPNm8&NS@K?FD&*`Z&^rgHXEVv$QEO%Z+id`12Z6OK(ika)GbV z{f@WN{mu_%xyM{AGrxfuU7;IZZq^OYfj7f zHLlT$ZY@x)>{WPst*9wdu@j*Hi8zEGd2-yD%Q+o+p*ks=;8=v1Q^ej`)PWJ{tl;05 zbKz@l9EQ#7Ft|aU-t;^(KlS|6rwggT_)IQ)kz2L{MVIWxVq&;b+H+zl_KAe)Xb&hT z0}7Iu0%juC5_?mXhMXcw@m$V8riiX9Qwo7*9vPKCpxYIDE^Y1W_Ud9;xgno#+K`WH zHsoSfS~-Dnq^Jzo6I1$lCMNK49gO$%MOF8sZ>~n>I}e)AmP*dBbCDpIp#Rp)h|0{*-@QH()nlopD^BzJFQ>;+zio~t<@QuTMk)&qCZVtZ;PRJO zMB$5zG_of70{-8AKKgJ>f>BWfLQWMFkpeZ>0M8|@qtnx)H-GwY{QYTH)RK$ny7V9o zS5i=(jt|LziYh-#A&V15Qj;*GmKl-I*T>(#J^q{{i}d;+P=Y{-25hp> z%|LHm2uY=HK7RQ0@q6gK-t+nbzi#A=wmv*~c9(5m8ns20CakXgZHQ`ZzH_pSHgITz z2P53uVCpaDnclD3L^>?K$RL%2$U+~GpzrS=1OY2kS3F7*_s$rD^HR>#zYeSgMd#H< zC+S<4+67FQOBVX^HcpTVu`sU>HlnplRrgVgijqGPWe}t`Ll5pr^)f^Oj`nmySMaWlId6WnfyMEbH`8{uHU_to@QO>ZQ&*VEWwY;dI(G_ zHKQ0cE1|1OtjS{57sGFcJ%;&OK++OxtNohvrNUjY2A zXfG^ywM$7S(@X#A$``7A?E22>??2xuUceZMTX)B{Et1cx$%mSum#?LMV~QI&*#2dz zw?5^YH|LtV8?Ct}8^N+z0zH|+qj!_s`)6I}jL+jhUWi3i;uY|EAXe8MTmz0@iJ%&FMiIwaADe4qaI(1^ z+-$x9<|2_W7s4i{eVkojF= z7OrcZtQ1SvG`zCc?#x)bFYG3fF`>m++2~0ru5P@pIQBxNxVkwwX2sP_p}0Erj?Zq+ zho_{t@|EK1N@OCeQe1^4#nrMxadlc!TwR%pt1Clsb!sWDu588CX{F+--j+|q=F@gG zosk{j`a{g2>2A1cR;?1=%8YoZ*&U;Pn8?hsDHczhq>3^RysqmO_QrTIpl%^Plrbl7 zzikeZ>IIn~lwOz)ESGpRKKHult9>{>7&BSS3$mDbmf8ag`=cY9VMk~jkWYbxa(MDQ@`wdY5U3~V(G5SRsP2hNAK;^CEG@p zw;@r5`OVxslo@*u++qj?zl{n5=D6xnrgdaxqTHP2Ac|) z!PmwT{M)J$Qa{UE$mcq#Q!YipKnZpcc+(3Zxd7iPfFaE6dwCb7ur7~oq@TU!(Q&{8P$1sAEPd+jxppmXX1;&-Pbmn3r65WUq zhtHIpB299N3{^m+s{-aq4^Ue|&lQtHXG0+qRmj5APSqyNnc8#yLLPm_q1&CsA9{jA zD-4~xgKe>8L5xNLg|vn2DFLEC`YEp>78J}GYytPQZ4hFy1Sza^66Qvkd|33>N@d*% zB1FDx0xlz={ohMO1(wwUE4YSZmueAln{0L2M=bD;rf@)QQL$A=@T_ zQ|#TLC^d#3vxSaQsFf_1s zCs`?WCozQG0X7WXZ>$HfdI%%!9x{`-Wp;KxapyE$e#j@6B*$E=3~8rD=OjW=xkJ-xZyUQSm(%x87)Y zdw9*$z}yd$opb# zL60cI2QNB2;yoPTy;{r$Dvb1pz#pDI{ZQyc@>(hXCv+`y)B(-wJAh4x7f+uab*3?Z zWpKyDg@ET%u0RI^16Gb1<2j8)C69gdzW0yn#>U4sv#?i5cU*}(aW`2e1O zJ(R(hPe|qJ+-crr)4Y>xaNhaM+}i68$n}xeqvDDPcSLjQR-aSi!kh0p@gaDYqG!^U ze8X<+gyKTn=5Jq)^pUpi!rzD+jY^Nb+nSsAI~NZWbX(;U;J6~X2hs9HHlG#O7jTRB zu-NSDbYAScYgKr~)d_W>DDt|f09U&I=pg15HY!$F-;2+p z^Px|=|3K;fk)*OJ-G5efkJ&FN`x8^ypBT!1-%|D`wzA)^RrW7!Wxr-ViS>?(o9v_f zPOun1@+ct8HF+<^!s~T<-@u~uTui(U_$J!5`Rm`K4Hk7s5Bl<^!&ctkEQ6r&3?C~z zg{^ODJzJ)p7~3FkaLXD@%8)*W%LSQbvFtxl)gl0EWbf~%mC!jp0&x;>MuPVxJx4*V*Dz*za!zdw= z#j!!VT%z#3{{H@slN`po32;$tXK-ki=T+6&@&{W$wf(h5b`u!e3K9s`A}kpv8}IWP z2ExwPHduPaND`O=d-xioSNuQpmOxqg=>4ZZ+4il9*v+z$u>PO6M@EZcl=>fUkZfhH z85|xG8ldhrL*%Z7oNib4?#=I8i^nb5^513vnU0%#0o zb4xC7M=NbdWhRO%?p>gB&-E}eU%@|-Vz)hWQi{(E>q$17s(DBH=Qxaw#HwzD%X2b^RK zx_EAmrb^dP;w7MVd7$bZULteHl838<%ia0Vz4BIKh1g!73pmuh21Hb8zy@U+p5t7% zT4W9F~JarIpvvbor**VD#*G33wq@C`Z7HQ7$VQ8&+q4a@$Oc{sI>v;?7POxz4S8xS~H?$cMsCFF&(%RFV5$7m}Dzl z2EWCinO&bvC0JDQzH=Z*IBhXEeq$H%Lt@UDYhN*`|qk#hN^>yi+&Z zbf<2iXQ2~F@~EqB*G=oL-A#-H(gcsjx&;ydT~Y1n%%21aBEItONIg7IdsT{nMDow4 zrBDR6H;nXn3?gpfTrUTM5L>!I&@4fWREjI8%^CznK#Fo8tEH+)fRKAsmB<_IwYWBx zZtKQ)p@d@LC<&H$M!?)7_2g-5I=EX4zA!q#HF-_obe{yED6DG=Y1bK3d-rJj$g!Vh>^B-fm_WX#8F715(?@=))1k%sd)0y}oi?1JC=R=#dNqww!#C`c7N z!a>3G-O&k5S?M0^r+05bCH@%{A;*+`vqM^Mk~7wm48mjQtVt(BqNyw#sF>htk*z9= zz#f^bhu6ji8r8M60u~;P>H_UfXsJ6)8Mg``>G0S&^-B#Bi^7XWtp4t4hAJi)dDIB# zcP?JPhZ|YQVIdez(8dfR;p&;dzmk>za56gi{AMKg2(FgZI@;xgD*HJqn2pz{8KdIV zmzG@H0yK~VFdYW=jTbX2wWGQswV`s+-*UI>jjekwff(EOT&(P1r6O^pk+Hok7wJPH z5o%9jwLe(K?~iLUQMHmMc71&#xJoAU0L{H_c0I)4ZVG!MQOyNb?3QbOrxcNt!t3HYpfX zS#!`|Lz761fiVC%32*q3^^>>jxd%wpf2SOfvL9Sm^SJVWE~y$UhCUa8cXlo^gk<`M%>0Q?G)&3Eg$!BU zaEZ*g2@<9SYsHhHq*e-WP<{O`iP7I^h?4~PauyVYXi#3+TqhBkh|%MO*$pkvEaMP{ zvS*TzS|v<9A#_`5=Yd^f#&{XCCRGY#wiznpsa3&71c>0D!pS6nIGabgpzGJ(n4uRW zu+;l|CJUGG3MbgwiCCQx$aztTiI8PiTd}_N+K$s}S(BuK3$-%0f)OQN(8l}*TN`p` zsVEq@poE=mFK6`{nLa0HUFk{`FAKA7cnArm_bZ+;g%N)nv9O(8`GsMB4a6|<&alcI zzl~My#6pJRmJIplxg)Bxr4z^$Q8k=`QhPP2kZZ1t2=@B4XX!mJOw^;Id&p57J~>bt zT>lyc7*_Js$S#&HND5sjpPMlrl48PynIAOanGo_l(#k+6I7|kPnilgw z>Gl&>T*u+Wd7!5d`_cqgsxqs~p&FIy@MVasO2bAZY)ALb&FX4|8l!3yA8}2rT`&>5 z+C(oKno@T-#XheS7@lyEn(9Pw)PG{2tVxr|&*Cnk`#<*vaB=Auxg6e5?7NQFFLq z6kwV0TdLlVpgMW``RJ$7yYEjv9ltsK_<0BguoG6s{6s3`odh=>-=Q}qusS;euTCy* zU1eG>9Hh{D{$eo)-Ku|i<)={B6$%~m|k${DppX&_L!F-Jl%)w{*d^ls#azUjZNsD2E z#XEKGaD2AtL{QZ^0Z`KWcuaSABSER|S{=4Oh~^L9zx(#%=MRA71kjiqOotOjW2K{! z-!6x&6U1YsN#S==b&N8`6ioJR2vg+-x@^~>gPF}+rdzR=kiM!q1HhrNo6kDT z2AIwUKmc(-j=ydWfmI|LD$4PN!UhR;w?CaU?n5!t4{s!CqJBhnf)46XsbYMD>Mv zR0>ghqI}*Ak`Fq2Bq0nVvw9*W+ksW+ zWOdHe*y)URPF>tHrdzLkd3i^HR2Q`yi`4UX9L|5+;;);X*cD4i zv|KFE(erkwKWiXJkctLHQNGM=-2G?Nfd4`DPS!YRfWLww4*!>n62OrhDgZa0 zd0D6^fg*+ky>4Jn6$SMlEU2dn>SIBTHr8$yx4DGADq$}#p|6$jpAr0rZLjN}XIB4o zMWY>LCO55FSoX&zqEH5E7KuHKRm^N^} z#5avAKUy`2A2s|WXj}x@O%R|68Z_jaKaDsEFT<$eM-v$tOfIo3`HkFbfE8eW_PGYH zaTQM-jVX$TT*MGi0v}~^Vl;3}8*_9}kz#R4ATjV8SsY;vgw^9Q>J&}BoTu{!ZWf@m z^Ht+=>BB;i1wq>AJ#Sn9)5UCxe*jC@c}Uu6{1h~zAecadk^sv0Bm9%e3W`d!hBm^q zvGCIrav*-ts+%~kDkpd9Eo*&&KBFrL0*e4l_t@g_r{S12q-serGAh$1Nd9NzXw>R9b{cRkqtmU4ZnW%nn4mcSw3+HuVGgAMzEBpS z=r(qZB8GD6HrH%YX|L-GjPM(@2^ciA<&1cnJi!0Ys0Pkh{u_x8p%j7Z3nfVO0@#S;3hY5y>@Q<{hd8l^c?a*8#EhL(Go~ zWT-HVoPw>F(FmhZ=K5j}%4Ybw!P%V29;EHzxns7f<_vF3nVByixG|{6Twge6eZBi?@I|zf(hDH?ch&|u@VufjH-~G zI(`Q!)@0|VTrKBW2!~TSdKW8TuKT#BiN*moV&;QPogpSDT1z`9*up^D0{<5-1XENm zpn|+$Zmb1ucm&_56A}Sb;dM0_ zG)eP=iub5DwyUFCUx%EE{e8Wv`ZjqqJddoiS6wGpSt;?<2qspvn*UZ3@Fg0fdg;j| zJmQqUI@vwU8Hp#hRC5};jE?F;#U>R#P!_ebb4$HxA*3KyJWJ`WVEyz|OK|Q1slHLh zs5A8T<5@pAU*C;Fs(>7M=LdUEMs{vp=tIS)@Zj@TS3}s+&TqfFw(G26W~DvNZ?{$X zih=&0*6$CKXxF4h^>Y1J5M@j`N009$YoCHc^|gIxqw@8ANRcRK>FN*Uk?n#i=^S+B z4y{$))McpU70W|#o3>5FQLd(fis|D1mzgito?adz3^xqsZ%aVGKc#&AYy)`e7XWoi z8-rbQH_&L2z_KehWINo?)|6E*x!5z;7%0=Y!yZOuj!~aV1|1voUR24`l5A9b>ccJB zAnCttRjWh(Z_ZL4v#d}SZePQ*PL!)Gu&TyMsDXi+EF-&`ArREz1rMP9 z{8iAnu+g~K0*zmNq5Xeyh5hGZ`rm3X-F~h5$FEWUT#Po)zJIPe|1H-YwO}0c*_6Fx z@OYESBx@|UIhpp;U>i8PwYj}g>#K=}P}&}zQG2W|tcJsJ-+e6u+JpEx;={$5>SqlA zhSx~u_Hep97)yzvR_U+}T|+&SC`Ioh9or8zJme4_C-5SDEQbvzUP#aKft$C7ETe3Eu1CzRTHNP~eHlZ-{h23or^_+e<32ZGxW~<^F3VM2 zZm#Nbi>fZGtGXyxb+Ngsi!G|UpsH%*-v8InBv1n5_2)Me!hUzr>Yo~#uh-BJIMx+R z9#qoQt94ZN9i7Dfsmb|uH90nzoCEw`J*58*d&ysWpZII?G}{hMTTlL{al8ljaSG@Q z0M%^O9=G57Vk+4bCsoxqJhGL2`cy@(FtS^U1f)C`{*|P8Nc4n)m9nMI;)Q}3kde4a zL;~8lQ=Sm+&@2W;-+#P<@V|n3&|IR_4BEJ_ef+j=Z{xP^tM*5*r+CDc=)d~@M)iCr zxzq&WdNG*lLkX$UTJA3&gqrnh~(Q3h~X58b-dQovbdY z)>8loa!uTt~C|QC^Vf+x<&()LzHwJzC;)fB)^=-{nS^t!a~+d|t5lR*PiF z4Rr7$gE(|hGDWAIdb=X-E1VqMpPh7ATd#Tl#s?h`t&yGLK2Hz=T!JdV2muf-RHf<2 zjr|nyhcfy0y-aZmJTkWtnB~(2zb0<@aD_;#q`oq&Tha<=sWpZ(7W%ys~sRRTgfrapRMh`z*rY$ zzULqoa3gS0mv_kgIm$CIr^8GtU*Q*t63t)yj38s=W*v3eaKdV60F>pSk2UsvfiF-t zoHo3=*y%v!ZU=AiNor{%!6nR#B+r~SmJ4h$%_~4oG+-IP@^pVCbI|hrXA|9wz%2UD zCg&y1-^{-bu*&fAGDx@}C!Xdd<0(VP!xpA;`nWVA)UAvdb&MH@7sU5pzS!&bo^QMN zdiI!GKIRqCB|YSj;wO zsqKXAYvRtJJmxJn?K;;Am^4o5uF3M%HlKIH1P|L)*j&1Fby!~;e+r0M;1p-cvzXIi zl=GW3gKs>22&duLkD&iTwTcz~=o+iy2%y{WUNzc1dAiWU?_L4^E~=LJyiDrL4aah^JBe>1Di&eG?2qz#ES^vRJ6RO9tgyIVWpPl7kR`P9A~+t4 zrUG~vvHLl**C^e_&U;?%>>JoaP7!Y7wn#~?MKSb&gJ1|1X`p&i8dC$JDV?@l1Pyc; z90n5}l7BmqEr{q)SYAEH{aM;+sEgdN7)}uQN?kc8cbj+&h*CiU6fKKM!z(Bq37qpY zojg2jm`a;4f=IoRR>R?MR@0bE?EoWo_h`mdHF2OoFLzu*bDl|s=_NCG^ zX9hfBviQbNCaErnNSOiVV+N=dWrjIwH^Cp1pg@o&EeLpAoMW&roSsl$&!x-oSV@?0 zkz5^Pm6ss>q{UKtFG}LBHkWU@+AVvzfE-pqW@@u}kvdD)1kyckp~Q|~m4gSric{>M z5Yl%t(P%G4V@a;`bYl;kyA@m#*)DWC>d0g&Kg(??A#GO*<}t@2iP5)iFe$LKH|mlc zcUcfpN-%f0%{E{6_tm$Gq1k7nq4k3D;YObOmbpy72oe-NCEvsM3mWO)mSH+W={~`Q zBFM%V&`7f0d6IM@0rPF76{qF#+Q{d2{ss7zgsdkIMJ|K@H_USisp<&G=~jHevu`=^%9K9#J$5{F!7#VNHpFKTmMY^nL% ztUdfMBEJ07((#{`j{np_{!<6}PaPyC{!<6JNeB5)734ovkpEOc{!<0{o2np5s$~tM zE?VqZ!adqCDblr)A+n|9{Q`XwkhiMgVsi}_MhzG4W6eMlKZU|9ExKN@ z+TE1ctGs{Qt&Bxj8v}Ap1|689w}9bBfEj#M7LxkFN~B=HenxDVaU5mXUls(r8A%sm zG`b0}wyGP{YWgODKanfrIEmA=4V}vl)sz+zvq_kRp9B#-8=aQz!Mas?tggsAaZ6u5 zy&S%0!|R@MpjawH6!c&?;_INsOHl+RQP<$Le=moEZ=I82pHYB-5MFy27X2+if++Pa zu#7LRco^)SY;GB7`qG*PoTeWhmp5MbF9c;7pT14Do4dO_heYGy7|7h<_Xy{4vx6UzAeKM*29(=IZj?O1|p8PoWYVoYE ze`yDKljArBJ~%b#bvBm?dAHQmhRbxUit1red7(R{o3dGR|DzanvlJ7eNCgjXUDzc zWg?{`88;8EgSql$%HutrNmsdH1Tg@L{cG1u{=?`AW_ey$pe*t#kz+YM1;CgpfVy{^ z%L9*^7pCvVE~z4i%8QdlN5yDv{hTP*t+Qn-d*=&ECSUB=kn7)5-f|gev?xx;qQWnf zPL|LQiuyU7shc-3CT*fdZGT_wybZ>W)*rti-?yJh-Ml8)$!dwONu@pR<2k`s`4z&7 zO&f>$H3E;vtz5GD$E{O#A&4mC=eF0_7+{9_H^sPDVVdTr>P1Y8W5~u}M?<BZdd4YIN^jgt zMeQO^GFIqbyFU=`@MNrm*@Ub^@DUgVFhMUvJ3@fGrNVY})`rmAiC&iA z^}C8zHMC+o|>*2aYV=j6D&S8vif*& zG7fU(Boq~XfoTOtE(hK#xden`2!s(4q)|ecX*s)pC?k`_xq+2W2VO5MkSeMpgsCBX z0)-^V6Q{9*bju-n@?@Xqs$Cjt-+3x+nl*ZUewqfkjmn?J#Zt(pZoasn*C`56y$n9( z!Nej5>V=IHOd0{IB8=3@P$LCF#4HcbCOJ2vK}LBg6_Mu0oYodd(F$SSsjhrPlL27^TQ@E?}f~FV6PP@dy&XefV~F%_SR- zUC+82ST_gz$1y&WZ`NoBQ>9_g{aHY@KvkJ@H%aq}OY4xA3#sp!dzQ^|{#lW^guLMq{ko$wVL$_pXUN zFoh5k?cwY?cT`Bx3hY3fEoF^Rf;M5|w(CB>w8-1@hmg zPo3%nfWHi~<6HEKjfFNp9-oY8r!?{rY!pklrt8W+^SvjG;QhVTXHPsYplG{aAT6m& z>qBD1iB_LMVn~U0pFvtYd{W)E`+NV;k=drWO23BQGdhjB`f~1N?x4B^+2dL)bdJN# zch^E68?K^ufUxsK>II!>d3D5l*K`<8YevT9ik?1|Uy}f6H(oieqL3P-rL9j;LfaKz z(L~{UU186Rpl(_u^>d>s+nsdxOe>gu#hjW=Dh^jNp-C-g-$jMxhbO0+I=2I*molkL~ zk(?r!Wl;ehJpk^C@afaA0IzPOml{;YL|`&5CKD&8=jw5u1oI#ZYDd~&J3!k3l!7Zy z>V?2sfu%m{ZpBhFr`g$+NA;srDu|lU6*9K7yUfD*?hQ0JzJb_SnVarpEc05 z4y+_|iKO62LNs0=Y{~@ZM^IxHcu$hf%uhewL_nzvXz9vnQW9Wsf1fbiItj965;c%5 z2A$DJ_U~xq!7v1>vpr)vIRKogL<6!TRba^y#TYLzQb7Ki=%W=*sn5qg=u1*heFHs5 zok=`i;?zK%%(G3)J&$0dQWPbRps(IR>^z*j4X|W{@Ot(i9OGY#rmL(|jXg8y36;yKC093>41l$8kBstWy+bZk^ed2qXS4`=#GFr zvUdnDXi~GVdPrdVNu5^Mhy4aFysi zuu2qsK6Em|F7SM2e9UZf-Ur;f=??Q*6?A4vF!eG)A8X8NEG)q_WCFX`Zqp#1~N=!{f8H#w*hpuw_j0HE4QQM^Y;ca7!@iB-hOFG2D#U%BIs?Cyzk zNAxqudryq#OKIkrbm$BE_DN6V-S}gc=O5hBIoZI`FsGOhMKs5#5JcSv?=Z|bSimh z&NS9ci^~P11wYBgyagzyC^;zB)!i=rx!ud)RZQyjqWzf zH80F+y)LgG88*PkM{EvrFgMd?U?zUm{>qdbau`&0RR&!pyCHb6yYl+X7Fw0pv{fY9 zEME(o3E<8^b;Pg^_7E=kUgQB2H7A2VXQY?o=iP^^a3Ie@3 z2!+(X4hn&(xWv|x2|}tctCD4cNa1=1m=4TClw@AVw?V34?X>kUdtlI-+~G|TsgaV) zuT+{WBLw&n?+wuua0MuW{0lsdnefgfJPe#ra)uIcBobXJ#0_{7OyZwrLG(6`aB(vu zKqSsVKF$3xi6@EciolT@W_NAUp-DT06}H7>CloJ9&V;A7Ss5xDUEO(!yn965cc%!c zL}4a5tW`I=IAQBr6GwEjNoW6MEG`njbL^)XqeA8)fXpLMc&uoyN=05VP`qU=1=~m$ zY?mn5nxY>Hw!)GpA@Zd##YvDXz7bVYF-pMwZS^Fa-~ZXa&9x*fF1C{ZN>#G#ZXQ3n zNql^Ik_Fo9ti8CHvLLHVB`C(~1zu+mGpEAnt{pu@Nkgo3HRFx4ucecbS}dnn7rzT) zWYAv7>(nJhyn~H7OnUEb{X0u2YNk}P?G80uv2NTYJ*mR|EIDVULUUf=ACh<@uOVkxot0T|~? zR;;=Lb|wA|c65NR7F2!QjB6k`|3U$X36T# zq*f`J$$hDlSK_Y6xEdfM`FrbIm$WDPnqrISwd3*hDXGC5o59Sw6fJmV#*V!Z@E+|j z$>|*!Tg3*^rJX~jrm#E6b1bpEPI-@8(SHei(^@vy*RnCLWyW$c=yksl73;>}*`CCZ3a6U7B9lL&=Xv=j5e~Aj?{YM}v-9G7De=0)?W=b6MNMKx>#%Kt^5w%@8rb3m@S8gNWgLfQzZoII%+~I`hxLXhq21-Z?UgqCSF) zm6Ae7W-avAU4Xw9y;TM%sZER?aNMC%mm0v(3vf;#60c3?1)&T^9E_no@j=GziJ?7Q zknd$@@wrF=B0caKBE_D`*VnW3d>DAe(jJIq=hhVo#o*)E3B`m8CWM$35V(SgFoyf& zED)hcM09R;M;2QvfO{8J0cd*3HAxOOcVzxkoHWpC&z(@Fx>VJ}S-lEv1CGD%7!`oh z**Hl|>qKso0YKb0FN87wfxkRQmh$YevNisxKY=817;B&>+%-KhAhSD@eduiZ+64KaC~8rxJ~+nQwk zEW=Cmkgo5RX9AnG-Tl6;?XK5Vo9Dg%T@{?D#?o7Y5n_&V8=X>FXrhQCz` z)j-pE&Ev6;$*Lm9M`FUM2wB_?lKN@vblr8K<{TqwCo+eJGP{oD8=2-L#d%i*rOlUD z`AQ*8jvbDJ5+UZsNWuu$oOi~oizG(cOy(^m#dFa@FGvcA5=oePRS!1`L0(0>XvWUi6$S*>-6jkmjn&T&YxOIX)M;QV+zPf+47G7XkEB}v2A7xihAGAX-5A~TF zY=6MdSxnYoX7wytf=&Qnx9lm*Q@pWo=#(NnhSl1b-(T{0;W?!+@;15Y=Wy16&N=G&+HZH}8)=d>Wm8938*??)Y)pPro|*hj-tP zzJ2%p^!PJGqG!UR&)erc`mQFg9GCuEGh-LhK7aT6Nd5fq{mHxUzCV6Ddi|HvV-es^ z`ta|`KXCB20(o`CgQw1)PCvZ=F`NW(Zi;Y!UjmR7p-#X`!K`E(l;?FpR{077I9XoQ zvA2cyYHo=*}X^+(6vkVDh zPg=|R()wX@V!A`{wc7;^LArKr*P*Gk|3@LZJk1GqmC4@lpGJp{2dGJn_Mf-v_g zgZ;hAofGbp_J56i5~5wUrn!KnIpy;Q6-^#iK}|#6zhH1lHTT2k_i9Y)^}Q6AkV;eO zCNtKqhj7FQYg!`Cn%DtpQ#5lK2fzGV`eJV#SX}cQO?PuO7iqzzbuPucml0kGKp4sI zK;|*w>%_tg&#j81KoP;tTk2sCqe3t1=bBn*;~?%#kv}?QS*$euB7>Pyr^qwAAIYIB zO1+PSvtL0=NDt4qqz7w@S~Gh3o@B=fcb%-*&FyH1-ATJRrFOY-*8D^KUTkeOrqd3e zhlgH3U&SE-9IwMc3!40{;A4d!H}G+TAGh#vyDmzE3YDrW@G_9+q%~LK^-$+$XvFev zI!lz|EW%rE#YshY7NL$TfFD#i7Pm5dmm+hc_6FxBQDV9Cggxy3VYc{V;D&aj9= z1tfLmPoK^S+lsW#-*)rwju95pd<|mduQFQ5%j2-fum28Gu|VM>9mH$7 z)bU=!L6h}_)c573PN_JhUG-<#U1;wQGu&~_Ngb$3%|~}&fc+NY*RBY$lOhz0Nei0j zTF^Th&II(HVo6&ob?BGon6VvLTFi>#^OnC*oOgkv45PCpP@;oBXp)jr&q=<@I`Gs9 z^==4phFOaQ&aaoh)q0?`UOo{g${TWnA*~*veVdmF=wVzWHk({VBHmh871d~xVprEv z(MrFSnu_+OIBbQHWePRn$tyVaYu2c;lrd4Sd}ASGn<$JI+R_FK1T11yIDBxKu$29G zwCnQ?oz|B6ER@7m{{W=;$D8zRBe60)!4N8mwZ;SsKT;K!uD21`)s#r+3>sD!KFWj@ z09Zqs3CsEkD`BaeEQd6)92cm>hScSETr4s+Xso%b^n)d#T9SOQ}6nRN6yD_8uytJycZMLxr@P zVH6{4H@`Ik`d-+Ci>mg~QN9<3xKAHobB^D~C#TyNh1+VgsBQDIG9fax0guamT9dtI z2&nt(M?rOFC&kHE&;rWUQINoxdqVjk58&$=}kQxRMjfz%F7U0^|x{IX}-J+qoZp- zockByJj_-`KcXo)Gvn5XZti>U^Ci|f1D3^sBN z%@(GdNxMUbVh{SdSkAL>fsQ-Et03)w=npOI)*_V%JYgX1EGcH8dfR@;h3MQ`2)DZ+ zisjsnL54B}y^&d$S@ z*Hee*;rVdsq-fbwx9zR5u-xx{wKRK2`}qN-k*uH_!zepQTG35FiZcQEW{L@!M=Gdm z)FqlQGD<;6rI!g|UZdsvW(Ekw6)@{zl8>LY82{G>uwsn=)bP zCkHOH^Js+pkV&(ZwVG1(i5|k^DMVl?#Q_lAZ9W2-{Y-LVRL~%2gWqM8M--A3eCL|^ z=D9#wbuCC1SS_lp4ZyYlK~f6@DH~J00I90Bs|IM&R5M_h+S5|4i*BNxC%+q^3c{wZ-QOT)2D6d9)PCQ3Qv*^zqDzvqs;{@S>g89fN4 zYaz;473XC27dliW^(8ZWU9?p`3F0+c1r$SU8ZGW7lR>^kkeuEt1P2(g{yZ+4^(#=HEQWGAcN zt<;xKP*(9)sZ&X+FuucqcFb zx*&+M+5H3RLE^0lh#orJ`pKDLSxkR{Xi^B(iLO=ULl-YqdxlLeMW5bI{^jwOzNk16 zDnF5oV(|hJOWSxIu}#SStdgM(yE3MhhnBiA~KP}aeP>}Z0u z%Wc_PWK^UwyF$g3aXSB*Iu2Jk=-|v;Yz?g{S8v`jRjO7@W<{%`EC6lG8w5O-QV|&X zC~rcgUL=I;$gTaT?6X)7GxIa_#cHkQ)-8%XQF6;0qig_-f*Umoq+1IzVGQE&M8Q`CLj9 z=8H{00Vl$uX?!2KZEO|nbQjT)F!>X8e2lf5lIaMX4OS$tICK=GMSvQn)d}IwIVs8v) zhDZ;iS6(oT+HL8-s2<&+9CL*)61f~;@ZuFKtX*a)1b{siBUH#-79eSYR6za#0az5Ag(8ej zMBz^4x)nIus3n!6BaIkApxZrP(4tgsDI1n7JtMn1={rhwFSYB;RKr4Ce4nWTvdR@>l zPLz(Z?+q+Vii14tc1ssNKBRYQJ! z?-FTU;mF{GHYrSQ`-&SzD^Hgqp}=cs%k@EVz3iIp3NF3X+4cD_^5)X;7M8_J7n{fY z<5KcF2lQ(6*7rpD(C|CxPW3pFg24T~5q#yL0MUtHS#Xg>*7pRaPN5oPnxeK#u4=l3 zPF_ZmMn|~PUAfb<5gIonCOJbS)?ffqob1$FZy~$tZHW5pAQ}g{=q;v{kqF{eCy1n@ z+#xuvTOba1Xlf(8%w&$-hML=i7UM296~T~qopj}L;<%V@W=k-efZ^bHjZsPjdO4?>_)5HdZiBQ^YK9Mz{ggGSk3^bF8 zWbIL?-=A$wYfo}aUv;6?h`UaBRaO4>p7!k`$!@m5R^3~xb ze~hKkC|#pkz~Zw|R-+4E!6yK-I3LF9CU7h!#ceKMMf+kx7qC(#CZ-zbQbjKbR5>-i zg37PdC>n3Yeio@hTKAuo+VIsSQah{$zpA(Onwa0 z5Y&nGoyvN&>MU)U?j*XnIsnR{LYeIYA}>TE>j(xRrB@`pOdE*e$&pW->_j57go9$C z=j$Pp(hkk*b;YE-1M~KTb&bTnGh&?>LiEcz>lo|Y5#syLY7AtGW8f}d_<-+<%O7|m z-2eORdZ}4--w$GAJvO)HCg&%R=vzKH@>}s2)AC6yK}l@0m|YL?xolo;o3z^6$t=Bv zxI1PyaihGJSzWp`B^C=anSMrmBP-=YTMGi5QBN?{R^)0|WV3wr3h~13G74d~zblS8 zajEsXrfnEYjt09b{NkGzE7?#|z58GoRH|rJC$sRm9!}H*RVGa!?!L_*>8=#Wf)*C0 zbjUFEc>l+4l=a;q?BotgakyhCM`7bopJOGoxp0!fCfj=E!g6%Y9m@|!9u_RD%a~+I z=ieZ^LqL`{wJ6U3U@z6mJ0ZEp_h@O$?38j2D2WfFGc%R|>k7zUeP&8kwJw~@O0@F* z2hy*~1DY@^f#8i>8TrkG%!m}_9;#@dYm#u(nFQ*1F5`F+kZ<+!fYWZ|MB--;xvA1a zHHJE)Ee09DzP{V*x`SK=Xjz?#mfKo-ZZ50o6OKSVeUpX(4JG^z-7Et^h+QW8>LCx_ zPUyMawQ)V5=-0ab#-291+L|d_3)S2vE*uZc6|%!B4rcc;F)f=+?IfG>G1=~Zinj@w zqiq9s?2j68s@^#iuWil3B@`GV@zTX{tmSD|(dVH$9y1+>cFEnYO6oKbp!@EU#4TQ4=*8?9z3UKi93Dxz>4dEqTYYXS)*$%1pdLWM8$r&G^)Dn7vtt^%4K;`FQsGoj=aA&0L}uEb|{ga8E}>FusNzwg4~D!Wz4%TM5=uF zc&i6*#YzvZ*7>c(u;Nx?$PB?5yI5=F%v?%a$fhrynMk;r;_H^b(Cg-cyn)0bqkY)| zxT(ocNfI&HsL2F8oeA9Et66NNuoljUH)}KQ+L-28hHwb_!G_Zx#3FGc-kW$>~qHtabizLEfngA8d7^MQDf&8RYU>& zph@Nm1DN*^6W~yGvf9ny&kp>#1(gakA%j0{JE6-47Tg!WpFhsymF^Z8!9K2M2MxC!&@I z3sQL48+6^4lfYLWzJ`SvNIsfQ^JW&uS=#wocD z8GYS)t$@B(UMtDP3$GQ5aL4P5@SrR6g*)wDyT|@70Cy^7$kyX~{T(OTiFU$Pv_plp zsC2hQkW{czpV4cQbB)=vTbDZf!!NDoZZj`ceZq=t7NWF*6~eWmTtZ4cQ+Y@+gA6r+ zy1o_f*;7q0ih1n`weg0BiB|VWgaB^hvrOhSMpw$L45U_v3Kn@qgbS+0e8$uODCi?Q z%X7B!gg>yx`W)>OP;zvdcZ(#LhPUgc$btXRd+sVPIuK|%l-){jwNk!70pHNO*piB1NzYO;*#`BfF(qFG`eMN2aEKwz4vne1*C>% z_mjm_r7VntP8A;_DGuoSRd$GDInUb%^Rr@LZrp(hq;q_N-|f3r) zy`B;(-BKZA+s2R9NottKer(S4GFvqbJZCS243&8Oog6ac&(+W^Cs@K3jh*DY~Ux6aj%v?v8a;A4ymmWNlLM1lz6s{&5e z4%}UciM;R+iHJQXY)9^H0^h#gE8(t_>?Cf%X#79mo4B|Z_?}N|f$(>|eld0tE`x@Y zJ4Y$E=2${4W`lljA0@!8J?YxltD=eng}B=LhrgZok94!ATDrUVs9RLz=YwS52mO3( z@71IB;WhiAw#abv5pCn3X;|Ym~bHB_I$3P5bU9WoRHkgZAht+#^o2 z#>~GC8h(Rw;_Xc+u;~tKoTvPEbU?zUcMo_Vku0Uc4N3Ih$qh+Ek;>X6BKK>(i)e2t z-RYh}>YRdDFD%hS{JS4n!a~$LOM>r>@I`l4Z76Fe3&hSuIzl?7|GOXULZ2^wolglJ zzS_5hyX7-qHST0~Li0_h|DsQPJ$+hezmRR^8uQ{r(^GNQSOtT+7q0XN!gSvo`pZ>= zM?Ew4cn=qT0uY1(1MAmMkW)>1M=cbl%>ozQsC2$DNTI)O9dr9Vd39pu$%K7!P{V38+h z$l~ zb!blFDA0lM<`?1Y>j>A=I`_LT57U?ROy9N@=3!QiOLB?<=>{$B=r0unl&=En{2$|J zw6`}>wma3TS1a8t+$6h)$;qDfA-Rz$A1%fXJ<^IgcAljkMTv0Jloz4RHU!j$^h6Y4 zJ2OJr$(%5}ch;n1pZnSzS5w5SJ#)1?IjkFX<`XC>gW*&`%dv;w=m^QOwhCft=msbTOw!L>RV{z7(%EA5vM@!HD zE>~V4iXFLV*H_~M#Tb>;S24z;)wvV8%0z?b z7L*O@pS7W~SWqKTknCi2f_tokJ|=AakOt*{v=@JwtK`K$ z-R#ESex*0A<5QMTF62Eg9?g4jdTJ_7NnrGsoWd98&+)@g=laG|y;gEc$w@XJq1(LC zLOS}xeMZe1&&s&@lxc^y9`w>4MY(0MMst%y2#|ddDy!1M{asvmt@CYItpu#QurK~e z1F?M?23B>bE4NgVf22}!ZDivn%w`RI#|3YcT2j(H&No?j==t z);V94XhI(@7W35+teWBYWack`AKc%kNZ8Qu^mRA^o+&fWTPN=( z7$EbOj|uR5Ra5;AS0t()oz^goj4$Fvlng#8^FS*J}&W+xNPe+3I*A5j|_=)4OW&hgY~>oJcREDal5z zNF4nIUHG%M>#(?mRmo#n#{GRQS{u+Md> z6#~nJ3M=DL5h9*cCV@dY>mlw?CpplB*O0vYC$z?OFqvZo_SCSZL~394dIzaaC@OiE zI?$>qR^Keuymq>zA-vlpI1FC&geh&H0P|AR$_ayKePK%p5dF=A?>3_Z^zxC0ecJoK zxVgL%M*?m((7(OO|fF zOJ>|+n}jr}lhtS(Pvlj#d4-mE{NVkw*~a^4i<*TaF_^@ z!FYG{J-D;1&zw$#vATi&B*UgZfLGsk1+nZ`#;we zSA6TL7+h-@+~JkHDZp&%ZQm&egS51B|^|KybTrs1fy{nqyvDwoUazM zQsi2UJg~s`ufjP*yw0y2oN4r-?kV5meV`Ey$VI^r&Tge$|Al+k!<*F|KpcA$-~YMs zljtM5V)^5bmbC#&_0zlx6z*kV7KXE`i%{<4rn2gp<~}b;U7WFF*CV!_$KcW@@KwX?x;b6t@UY z-Qh_`auV-UoaAV0EAovvrdt9h>dO5W7?>k(g#Gj7;E0R=Qt-?V-qG2YbMeXhaMsOT zxP4+nl&4Rpat0q1G57cI>EG&!uRMyPR2+_YnZapllq>e`FS@1&Y0F~ zG8y=6DkYi!&_M)Q^5ND01*vTBsIGJnIdiz6G+zd(vvSeU)tt`8VkeAyVuQ>|e7GOA zEbjLGW#@ZnEJ|)#T@uxDFd~>#_k{4)Gq#2~UAB9}x36H5zHPUOIzIyO8GvVR&(DV+ zab6fj)0F(^u3>T&My4hN)xdhu&yISk-df`7u8z{V$7`5QKO0WFE<0r=?22!_Inok= z0ffbpMFo`^D~RDm7HIDW%gB@)vw%-zE3aEE(TCQ*)*YHqJEwUgr+Eu2NQJyHM4s8T zCkdRi_&3&r)g}>P`OE%_}-&a|Mvtzr&78 zL3M3jZ_MD_FCBclEtyQ~FnrT)ua$+ETsXyUS8 z^H9T9&)Hb7T}R59#8rSSb3F`oC0`cTSgmWB)Mwr13*jZit4bfj#pWGBn02m&fk^#r zSIR{!`Hm-TBrtZ6wQA}kpjOMQh0b-1ineQ~+JN$-CTrv9GXy$=L3-Z(N(<;;_nF*9 z5@uurZPCLm)5D5Cqz_gOkh@h5EyCMi{@I88UXNnZ$c4|L((-Z8nGcf( zt-rGvX`+tFAwfRyv;=FIoF|1A;Qn5IbB|aK0r7RY`o}4%DE^736E)?agSo&d5Os%% z{k{qvW=}NBn5>|aguft;#wwv-k@56P@{e_en=axdpW-ycddearbpdskNfx3o(1hi1h8(5|0*?G$#9V3< zkL$6HRg=9@V!Oj>IF=};z(nS_SQL!f34YHxod&gzSJdM!+~JPTxVrf|sQ0!yo92$L zi~P7SlL{5bL`G?sYp7=jRUOx%G~fVJAFZyi?`t42NdfZURKs#=0bUGXHGGlG8K42~ z(A3?V6jP(Zk4c3en0<;~_{lX$U{p;>B7;B1d5O(>-s6bbOxWmJ2Kz)ft{f(5xoN0} zB6@etF16v*d~j8F*1@U?WAjlHw({_&19X%A6lQReC+6;94e0^z99RTQ9%3t_NjX%F z&X1VnS+a;~G-^J09WwCY!u2B?5d!(Ai&>C_5PcfI@slh_LqBp7?M=84uSc%nr*|&C zz)%0YcrM|g8Z2WWYQ@)afr8GZt19Caer+TY9EqS}7y!--2dIj}d!zUF>JI54o5&hN zff)vNRLu;*BoUUVNY|*=wb^WyMGtPEaV)I9L<`W~JGvlLHf9^i<7x@{RuyPn=@qf^ zUZ(o&uxexn)MaAqRd6SEl#Cq=Vi8CQg*^csN>jg$#h95FdJgx|6}{G8Dg0v=`N1B3 z6px-P32w00?V{Z@Xd=<$v#6fmS!)iJEGj2Lequ8gf$+r)T>z0XAah(mcOgw7;jU1O zL<_;7!kHmD+mG4s(9d&Jzpf$iI#mc%J0}p4qKUAE9-^9obs)D1ifrt^Jl`8@dhvYqCy6P_&s5Xa}fIs#mTMRr;gK9E<rR4~?h~k15B0SW{yFD01~a2lpAH$qRQ~E+FnkyVvd^%I${bJdm$WY` z#tLAcOFG&6dsRicWeC#-o3PT%Q9BR0?%B2qa;hn7(xsV7g^c`c?x&ie0-cgVk&#Lp zR}ky0LZP*&(p-sYwVG?9N2{xcka9(>DvY*A$Sxs%RkP2!_KXLP)jP{(y!4$n%GJc! ztWj0I;+5CiicR4~?F_wPe?Rm1!k@FH%_5Gmua3=ZvdA_T3Eh0LJHg{>fI8g_6;2W8 z#KhS)4gTVd$#KAG2bVVD?*cZ1lgWEYOCrD4$st&@KKWr(EQJ&WsqwND_bvGf6Id1* z1Qdl8LAEQ!OBA2sAcEtNLg`a2ZOwC69MzzUM(r>m7(*m9&cbVA2we4 zV8vLC&Jy~Z{Vf|81w6c$V@BQIBk#DfTu5N-#DS$=XywujJHknnix9nT|Czu)IRwr! zl|Fa+`_Iu$L!L^LU)!q2c&G_lehO-j{V5m}@ctA6Gf!43AE|Kgs{B}cVS8k{2c=TE zYWWz#4^kjW9hCmZ+Ja8=Z@}#TNx}X>ZMFcu`#};hsHmk_AG)>LUQz3w!PY5~+ZGzb zlg+R48z&gPey{l=ff~ks3X{k(N@-bFmPZk)s^B63|3(V;aJ!#f{}OEDEGDxO~l4h9}jA2S3+kV_0a{XD9JE83vPkw zG~!4zR>Q}w5XMg%`6f4*G%i*RBwf8s0{bH#jXdh5YgTj2%{Qzu#ePtjCVW1ZQ#O#; z^zgO8&}3~EQ!@_$u$cUVDrN5QL<^}rW?PvF)ZS%0rZN>DEBp-WD`2qE@XA^}OKQ(x zqoOnRBAzX=D`I=q$^==M4)C-(#tN~ygF)b_}DB985${b3H z_+;c^cM+zUJ#Cd)r&HpNtLxFAXjpcxn{8FAkZ7sd!X-76Gd_BHe-9E(fU2K6wF^hJ z0B@2?%~e2dNuP2gng1 zCQvG-=!zY=FAPOV!W4-v!?{CwNt-cTB8I7}qgGwGvlQEuzE-qVqkVF)5L+}ZGqKUb z>Pvg2FrP!f9kbhOpakLYTP+F&H6KNPK%d}9pOrv){1FcJkzG2^* zq4E)=+CPPpNq~()ZxMtVuDvFfoWjU<^*%O>Wm^Z(PY%nTD8IO%+0-L>DYGw2r|d7* zdXUoYp_-x5X+ph*g_rcw>>aSaOWMytYppmFNnxeS_g=bryvzVlS{{|)9vDR(eq~*n z)^$)_&nu&t2OHJuZBdocz|trHU5tNuZ>{py(r)Rdq!`->N%TN7z(&o3_cYEAa$Q6P zx8xI+J8K09S~FY`Re;cjpFxHWFQu?GF1}1@L>c5lZ|g~Pos3FCrL_HSiY?P9?rbLD zyv-eaNzX2a06{?lfYp4^ln)2WWE3PvGRVm^QO$)6d$MLnjFAuRW32gTwR+Ptn01|a zsByJ=lRfQCnM7a15tFqm54VOJWE85F#T33%QzNdpLfzs;O~1l*5L$wQ-jDixFenst z6&6M6st~Hsine>pDye*9-Cou)>0j!F3MkP!t31gbUib`702H*cPET+J)5PpdDP0g* zSFkjUVzTi7N8+7Q6`F(w88+OelimlfuKZ|%Gwld97P&QiV(l7;StMJR_Jv9-IK!*1 z&D(x}b!;&YuB2o=0L6P)E7Nn)Yq#@r9KudrG@5R!iFf965I`+Xj$r{d@|Tp2u%H%2 zp~Isha89>%9rUc@CzmN3nCjY;Og!mYuRYgXGp-qKKI5#~EuY&RbP5v^nSbFez&AV~ zU?GinZ=0kkqASvsg)}gwvB(v<oc2+<0QSL~NREhby!%*!!|$#MqdXtTv*{h%tGEDIBS|qQnNfxQ0A@bN>OV^BzrgQCvfAwHlvuU%@?*(Q&6*U>;$;*Ii(9joiD%nJCF#bOE- zW5e6q4mkm9#&T9EpuSoyt&oU6DhD?B2MlZyXhU1a_n8>C9`i)>jByIK7$e~#2uvRCTw{~%&itUWnq5ET&AKljpc5Yr_NRLy7#Ty9HP%q@0 z$-#AiTKDB0OHc1XSpQ_T0MzY4%;wLBGKCZ zOQ`>B8%O-MR%Y5-sim2Ym6{YUpBK2lM{CGnaSRs?=T5>oFrf%}W002OC~$(RzD}^O zf5(YVIOQ|lqIB+No7A}x<(|zOSt`o1Rr&R3U+?e`;mnG#mlNoINK5TB@sFqXi-6*4 zMqop?6=PwIK~*o9C711qEHmQz5s9o3p)DY9xo8}XFHHALqyl>lgX z%`dgSiOFgh4I(3}o5)g$Mdc^x6ZoRqq!YEM&HsgbtSLRP@!pM>8qkfjVl~kwL#3jrxWYHyY|dTQ(;#Q9J1jJ7Hk)nR>DZD1YiH|D5fk!o zmas!J{5ZomT>bgHc@9O8zvWGO#cqwm)EeV}qK}9%=H4Uja!)&ha#!T>0-a}Ci5Mxa zg3L!Pww1~WLLOsT$ud@qrM;e&NYMi6)k?!iaX}V+R$?AcFN|2JGB&p%w-PB@koA$3 zO3^|)Y_6vok*k;nW6eQ_r4tYjxFSQ9A}#Iu#-qmCx}l5-0_)7Zq9UbOL;(B1p=Ot0 z$*a(IqVIxV`afgg3Q0PS2);Kjfkyir4Ox4J&qpw z2Prq!FB*%z7wah88S|Xo`i1xHsX;HN zo)(fyZLZqKT;@p*?luNz=QZabc=TB(8eHQ-j{tbEpE#QB-4Uyqv9JbOW(O0?v$LcL z^w;JNz=$*Dq5vIXxOqmKPxAV(;bgPyCKjlYRz!i%a#`h}Ms$#9@4dL&US(})h93;& z)L(Pldb??tDMC*(?u+QsV_9m=@Kp)<%mfHHsPDUg&i!Q#U?GdGn=P$|THTB{p8Y;- zLu8wFiMZaVsQ&hu@u)X-vOFM)It+;~f}+{ys_tgmN+^*M&aaAlY1Zi}U0X}Et7*4r z%3dCR(iPQ7Xb;$1+P0SZVTW}*PgRvkNVj4z7kPVD>lIk#&|1B1K?LnoOB_^4tZZP~>V_+0oZXmk^t9de-Y|9NZAN?ALG!>9RhvQvgKp;QG3eb2y#9!Pp z4XaFR525sdo}e6ul=nL97|q7obnc5{2kfD++ISw&RS2Bn@{lDEe!DHYx$z7!#ME6Y zF-626G?1$`;TwiSFfZ zP{MQZ_dT^|-Nb{|V61r;aqzq=_$DF*dcwTH2vPg?_1o%ewzc;v#RGTf5NKa)zCwpE z&+&rh)~^}c$f!G-@-pa%-A%+5*ChRVt33Qe4jjDL)Z1!$A1|y{0x=|7R(N>-r9*dP z!s*H>3TB`y$aS^6@-qJ7TI5}1kNjoOi<-zUavhWogMua(dKl?7;0o$xd{G~_0B}je zD3Q)#QZI5+m+j_?)}3WV08}N5Fc=3nVH&i@xw5Qz?)V~A-D0ZJJfk!_owMP=NNpZH zQ9P-xi1)%KG%t-=yuj%9Fu&%87N4vn-S^*|3F>VZMB7L}-( z&9B#h*YuZ#x9&60uf9fZFb!mj{f*bi_aEV$U!hEN#!Iv9XQ0;klwa?$Dy_H{?_)f#b|6ymL5EU03Sr2y*T%!Dj?4C{5)cB>;t$o7m?rp}-VW3(iFhTnsZrGDAKj zn8`ZziUcR)wmNoIJ+-3;<;YkRrW2HN)d>+wv_-x3!|4`Q?}QEIjegI&pbsCn=8ktZEI|eUTwn_*I~$DYOfdiS;Bm{>O`-&Za-mJ#%!<&`HJ>G z0a`XYz}mHztEUBH`}*y*!N#DzR=d$SI=^y@xk$TWzOd_6+*cyk1?p9u>_88LO;-Wo z-{ugnJS_r2_&ptpx1Q87kg2%=Ug=@6kbFt0ntHm!wmMb;tW!Sc053OW>g9%(TjWiJ zUzINd-Re1=EzP9_I;R`vetr+~Qz?ft7bz+z7+aO6dhlE-@BY5NK)DPR1#Z!86{kU! z{Z`*s$XD~;3bfwhy+dVB1=v%=IlNy5nWa7pKS)5VYg;DL0>59u+o#>T0WG$Lvrojp zcJ^5m#rqR`E9MrvnJ_O(7j{Ec)}t(xMBwq04!ASNEEK>mz8o;uct=MS~xq5~F^uDmjENRn-HK)-0+I}Ff+ zvQej93_FVD71^}&3WPonY-=FYSvvXdAJGUPTzWEyNZ+yzt)^ys+NFZG+qOekn^TC)-|kOb`3kfzn?$k8g{XzYgpTAF>B4Bl4&bMfSdHBJ8*a_Py?f@tuPDsp1DnSf3-9H zW!;(nQshVZl5L!tT!wDd{X3*5`I&yGo$05W+|sUdPqbtGxN$M0hbQmGVKRoCWnZ1U z6hAWEcf!n_+n^X*0&HSj8wfR7rl=3C$y5N8vf~k_odsh{fOOhugHpT+ydEw{X;ejR z(=$5afj#G9s67!ORV0t|+G}gZH#_pJ?{dukTx{EM2>qfG+Jt#2>id;pz7Y?1=-@^7 z*KkGr{1Gl@&B2fISbjQ-Ug+X(q!56`b*gyxE`OJvrlFr)F40yZ{XG?t`snlj zvuCdd9l8EZNug#$2K#j+@$$DIiT^=_z+O;jd_g!s#;Hb^Zd?>P$Vw@!GH>D7dmBol z0w^OQr#Ty{6YZ+%JRinGc0v^61#@j}Dg{Y(C#|CWEisKM(2Tvf6VE3KvBI)^`w8|H zinwA+VfO;h$*&o*!)!Z5YDUf-JU)NmK28$|UG_V*-NvGpVBNu^GGiOI*FOHPgT4Wg z+ChJO{=nU=hy2I49kKZ8hSy{c+}~qqmA9u-O z4saL#YBCubPCY;Y1F~tg_K-E?_@eu3lOt{F{`*L1q>|a5^f*H;?KS;n7UT8f$mIbY zrZ;#c6WQq4PlF~}Ot+y-xiqzXundl{>CJ&mMcekuR4PtVDw1=RQmIMZ-(D1N7f8Gg z(U1<5tk+?1gQV0PDm)g5nq5t!viLg8sr9+uaZu3xZ_IH`S{uBmBl5>SbV<24y>yw| z!?#K8j0|?;3niCHyj+YfR=KJW;LT%QzMY)}a^SEJhN;Jq_p^SF(D*=x1!E7(4vwt{L40;5qez z;o@M*crFS&C!hvg6mGQ2=uXZ>DFx%!=pM!z)Z$GL|0HdIx$=A`-(01R zJyfnM@cHX&?`pU@xMpNm1+tgk_1WrNjJ(S_my=kab}4#|j{%L&x^%(yHdlG`2{16h zTl@Hzs=9!r6!9m!lN--&*xAMT@CFVEYSN(HbUb@ZMe$J>ls6*Biui0kKjw4l-JBht z4^N>y`t*P*#VL{Y$Xy$+=cjcR%J#(#lM?{k-b=AHBS2&3m&lx+NU>YPr zG!Az0-Oq>%@C-BqY&GI4~zl%ODGsj8VCRAG+n_Z)4%&RBVfle$! z;hT%Q)&82-cAr!d9yd~-a(2^-E8jA|2rXCrWvBE4X4|Xqus`VRLpN+FoHlz1o3wj_ zq=o*hU6F2)MFK9#KRz&1$5A8Meh5A6`BHbI)4n;C=3k^RP9feCiJhhBiMcy0n>6?u z(@hVF-TE4@jgZHt1%vGYV;!#tl*L~8Y?g`(V6WnA5|@i-fA`{rOQU&`N6VK&OgrGV zNeSguw%EAS1YZz(110pf-0T78SOH$Bz6#RRzYN^st`!`2=N~;hwcWl2w4!#gi}ttO zfh=O^^frhuS3#Dna0^nme=aNovXX9--3MIG120s*wWC6&3@+uJ@Za-t1YP2^Su~%A zBVM+wAbbVT>WLJ{Eq&Ea zcKbtF3f>6!54y@#eA@OhxJ`pz3o_{-SO(W=ON)lDRu9BdztyrXN)FQlDjXxnn5o@6 z7c-e#EIi68#qfoylngS))SIWUd2!pbBCw!yo~hz8&a}0+BSW9wxqoo_#dn)O`0C^x z;)@nJz*J;;Z-aT}52onNspUXI912T~e9?m>cZ3M87T(z70Zi}*F~Q#g6M$}UHY_QTMeY`byCTss!Mupc*W^Y_ZeMvJ zqJqDG3q=&jgjU1CjopHo5u2~bPW|%AixC_A1#BpywrgUmaj}67W=3qjCOb^0r%z{{ z0KL$p&hl(oP}n(2)JqQ?Dfu+xmI%!^nDKwb)6TpTJ%IEUZ^EeJH6_JHI8taT5F618kU+W{(s~=x z`Ww>rYTI9El=EIV2l*%$4Cuj(;;1jymi-e+C}?-6B85JvAceseVNfj?fsgb2ZW@H% z!%&0Qfq97bKd<9k=@|7AI-@IA;)*T$*`H@^9_qjX5j!sk{F3BegVP)*>D&VBN=(H} zOvFO;cDs4!clrPBko)gAnwY(}9)^ngY7nX&T4l%`@Ak!5fB!7no#Q3_HYO}Qt{z=p zdI=0~2vXsdHyci3lm{mu4^9esu(23kwPA23x!^Z-Arl7IH?wdaz{s|v-M+HJS!uBF zC56Om5K68OK-G=12m@Yvn6Y)eGap{HRtJ|Pj9#_8m6(8B1vy`NyeCq)R1_~46;K4X zuf(lP6&D^Qi5u@i63A_tdPc77T}GSN4yU!&&}#X8DJ+5mr(Q5tz(#3pccq`FoxH!lMI4^z}VwMgfVk#~yR!*r#D6eP&T;9H$T}I3J%XLRu2u zdS|I<`#9F;f|7%4?Agy2l#g%>wSomFze%GLo1BSL9##Z19~V)PbT|-H|d)HLQ9N2(1>-@R@o}*^foPkhxXunWl0C zS4~yI_l!9vQmDo{Usy4`MQhx-#bs;?AFJNZQmiPhFRm%Bzaxd0aYu@z-bBz>&%4UM`ra!4+Vif( zlfYF=RU}84{JJ_5aV1s)gpLucYomip-jI*D0k?SrF3(1=`r-LuO&bs&-y>J_hSci# zVkXAoLfpE-e+3ZCz}#Xh1z8iS?gopAh(0Lh*o&&!kT{j>GIV5TVMn=ZYKz+4*YQu1F)$ty^{?I|VpDP%Z-e_!C=5o~C2Q8toS zrDQ-;E%;Tr^<*ozT2aQuC#_pI-nbBkJ^+DyI8eNYDdhuG$|od23nf7G1xXx1I44PW9$z|vOLEBj@B2HwuDc8W#0`{vqxjnmcg}Ia z-)_({!8`7h^#$StB6UT>P*+zcXQz1k8h*%!$rJoKJAt?-&c(rT$K1i+-(S2sRcQ+PG8SZ1ahv7MfSC|gGdB>PbyTD;&DnJ8>l{$37^n3q% zCk0&}eJx#VVCpULDo>s|FH*-cb?(9JBq>vyD#d)j4XY?ZsFlD8q_`MvPKy9bO0!oB zD0${BVEVn9%Fii&W}ux!7HE&p&f$Y3+g2b_9)Xj?@@yOwGk1f$WJx}L zN%HY|Vx{@S^4(!tY6_lG9faH;c$X?~2D;WHktYA`<-h&>ch9vghRod}Ugs1Wc7~{s z>I-c%2@%h}snbxs?0v;i2kWL-0t^p3&v*Qtbb!pgAd>JfBu!L1l^{TeMGwAP@a^VjQvDqt<;%lh7bM6( z1OsOVYKy76lVXVJ5?eZf#*CpkkY6ms6FmK17i}%3FlpeBeKUn&C7@%#)k<6e%e^|t z)cMU7(8dH$-mZ$1x2sl9W9(!m7qk=9hnl%w zZ`RBdFogw^F&sx+df447=u_3(OzF>m1jIO!ePy3q zSXl=z_C>v+f?XtJc#hMkzpX+jodxr0djb38T0`Jx(5znnB{ZVnefCl;_493dC0$-9 z@N#3RS%5Q&Llb z=MvOlzL>yOyO|fsS0$k{{uQk=#yjPgP-zk0WR{9 z!a}u0_4(%v&GkKl0SgIC?Cj&DStM=4OX!KkC9hjjIA_9=Xxd;18 zFNNEVQ1JIpf&o&7EMhu&2(52tt48t}UP4yN+>kbcnbSTcwGXNJ6?v9+zFC}+Z zj6BXK1RlY*u3B@qwE$^#4(vVMxe}L<=kg#OUSgiJRqOKHo19(4&(N?$3(<2PGCPA* zs2A#8{Ae>f@w5pkN6`shp(SMkf8E^16t7n-lj3dG%Q;a5e00bX@{|A^9oiLo$fL)> zHAdjYI$J4%IADZ+9RpI%ktCbZbZm8eMnuq?(LpkdSoX3xlpM9rg)B!TI}w@9m7qdQ z*@+TejKk=_%Fq6;(Re=vj-;KU~_x|+wGeo|B_xp`~Iu*{`C3i z)93^u-n>8h@M(1VadiClyW_`YKds6B4&OxRzcurAA?@h>r#~HuY8uo5IzN1W^6tCu zkKc}7|K;?!cyVZH-YZe#Vp9MP5_43V(m2x)xs&BZ4Sx9l8r! zGd&@}hw30Qa4o}pelWxBL~(K@b^9b~z-v)-bf&%7VI7{qVvvPnnQOGbHZ2Vg>kLNz zhzcL;=F=hcItV*jUtCP#b6jJs-J|u!pIoDfnwRkxjT&xyAP#@pNjs#-EQaL{|F)7= z9+iLq;{|Imv*~S_%<(n^Mi8t-E>I$z>|Yhc_iMuF62j}@tRQRa;g`)X;+Yq*sRr`P zXGD-pWC9a<3~k0prn}TULm<{^sS+_S7X;n1Cl&}h^}0gi$^nmpcAyS>!Tsk_%)n=L zxK;Swp+N@;4oGHRNN7$XG7+I@g4V4uBug~MP9%JY&CfiGMlPTvfWsf$)JhX0U$+m5xJbp%-A<6JKhbgBy3Ul2_*?ut=(&Mv18C`0jbGlU+cxrj})+5sW6a z?2%{`+NH=Hzv8bm^NNDWP*GKF|i!KM!E3GfH(>D0l$ zb0?vN19z9*VSIoHsCPJ95=Gd!{!zB50~yyHPLsfFup1WgB-m={jSPg!-lp7OS>&DJkovImIRE@Kp44k%q2B*$wv20OU?2_hQkbfn7 zSMg%*h51+FMaAaEi-lIoku(D$hDhrT#iYVCBU+ZMh~~MVorD>1<`1x3dSi=F342oZ z(m*f7R7m3ieB=g&cqx*>@)qZJkHw|e6C*DmS?&^VEVovjn_UK9gtx)`Gcq5vaYN}2 zfWXKNfMyjyNPWfq=Ib-^*B~7uOv9`ROV6Co^KRQCym#Eb5GM#IVQ|CUJm2j<1NH8l ztU*u25qzS$9lt-oH=qDtpWutEMMjxSTa{nu=dGq@!l+ z^QQFvxp=!NeeYa+^qS-;#jEOo!_NMW^R9jB4!YvC*QCwT2GIBIV+8$qW1+B%xrl3P zd_OoA-*Q!7Q^32y>2TrELj0xmy8TvsXnkzIam7?cwti{-%+V7&y7jsBtt+mKLO7bH zIae?e7pmY}3`~l^4Hto6HzcwA;Ki0B4&@{yXv(R;25xBVCT$*w2!HgVv#c=p#e__r z&ivR};XSTf`FRVU%1Zbk%6T=F@V#CFUUB)Mm0uXj{HTw`wZHGI1e688w{9!PgPLr^ z{+Po;tu9*I{6Mw*t*{V;81YwSAqb)GytBWG_TR+c#9z;0lorLY^mo{eQ$2X)UFpGz zH&H=mvH5v4buyqL04-M_7r7D>VepWyw2MQdhjYbVgkL4zlWc!QycWlJ#pV_(*$#}lrl?C`gw7SL z+$-Mg?!vKkB5v{R_Cp5`yWrb*E(HqkktjwUS3ofXx%yTeI^T*)z#iUC89-5Y+Nv@r z^>;j-rU4!`k}Y0W@G>w!qZ3{u2Fo=G-xnSsjSN%VKw#BgA)CbWwbpg#2Kg-f&T?a` z6x%5DHi|EK!UfK;qdahofe)O5hi;!Z1p-67H+e7{hEeLhIRY6h^eXCBI-xZ5Ln&AE5 zIT^L9^{zwo(CSxSKNLTDkasK4;gm#un&j^ci>^1~7x7uV71!bi@uT=wyi-;Yfi8By zeplIeP1VfzbrFj7+fU+QB43+~;nNi$ih}Z+o{h*!DF9Lokmko;cov=XFa_ovw5_~_-&-jZ<8?N$_2<4|n^$8V&UxzjhdJCp zn{N{}4`=z*bgpW;dJT9Tcnep)mQK%Ic;n%mud|Kap^IDVmKPuP2JId<|H;_p9nO$+ zD`R<`U|w7&7|y-9j9TRv3#KmGg-w*DKjupxxbb$EKS=!_OMj9MBEcJC3de#B^e{9C z*SXbpXTScM+{@>Wy(X8%zXXwvQ>8H=s?!&Ac`6K25#$TQGz{jG=D8eKs42mR1Y%M@ zIjqTGSn1jW2H>j6d$i_q0R^I$FX`3kkg~szab$nMq&JY{xPvB~zG-kk#yaGCOe9EG zBx~Grn2p0N{Y&hd7hiSTI=Aha1jfeWmiHa7Z__prsLIA2mwwkEvi1kOzoEjdwNyU> z@`6IC%N3Eh?S+~OIHGU4Kzp&hMe$3Lf#!h#7t_$|;;9(E01hW(G4tuD@VVr}o;8AD z%QX~8_bH8XC{Pg;Do29hK~~s=R>E_#94(t|sa+r5qhj$P>p=D^ps5K^z(t4EGC&Gf z-pILfiP%69h|Rgouen}}D=~(>1pn#geT z!~*`!0p9?mh}aB^DF_^aSQTv!NQiRom0Dj=WnkCE!88;}A_t8>1;A zbODT$&r(DyKk-Pl`*xbqXSAERMeC#8R3Wh}BcX1cv;)yEGKGg3+!lxXP=o$XG>BT- z0zv635!G0^7gxs)Prz9N#Ee7O48~X z*S#V{58Qi82U9UEf54qI=WN?uc zL1h?&vmy2reF@*|R=hLCPplZ!wZx4}c(#Dzz#8iYKCtC2Z>o`+Q026HkbDeKXpx1* z9L<4kr|%{~e3|%*SvZz0L>{m}8`0b>cI+%$J>iQOx_S;>uA_iSt}A7A<}R3lYs_&s?WSt$qw^AOW4rePk9qKp2;NRaJ8O#p7ae$u(~s|3cnO$QGarH;zp>o89D5_i z?G!rs^ngKzr`*XW-i_WuX+al&rSR|zbRTuxpZxR(+H3uov$>B+7(`?d@0>v2&7U9> z1ZgS!5<@)fiAK6Wc_OCJD_=yLH+6kvN-b~J8oL7%k6;*kJ)H% z+J^g_ioG1+eVBr3iYS!<~%V(B?SJAp!4@&s(|Iqh)AZ*}(Fofx8e?6#wr zjbmBG80+?yLViKN%~fS9%{di%3X_{>%g8G60<16e0<0tQl6FSM0eC~zi&}XIS{gzM z>7*bj_52nG_19po<>66^?bBx3wIwD=wS<=`ktHxhmP8X-LS1BuZc6e0donz=e0G=FXrexTryYt&8UA%wI@54PfN* z8wK^jO8le*tHH&3NW9_h8+?4I*Oh;J@^4@M-NV0o_`Md#-W@WT#}GH^+&XvVmKZo|XVCY?-q)+j~4hjyW*Et^(QW)u{dR=or+)XXi} z?LO(5R(oCJG5oHDN>3Peh^9fW58}WWA6dnU$_VdzrLsg|Mdf_0k0!TZ+2TBFJMioN z;Tc-=1$j)6$Hcb5C-yhR{IKF1_c_Lp8lgH4Fc$qceu6qg@gHCSs=~_0yRy&9( zYn^$PnZ~pnOX3<0sjRkwduyp!8KL(n7gO>Z=}&SyT37|xhSn-6q>_xzck+CKb5Uub zm6@m{g`UfE>?ZmUarROy(y7p+c1r{44l8?wH?iY*vBD~mG$X6qxew|e{^hYD;toA@ z-YKV8Z7cKE?HKKdJ#L>F?|Z!*|2sS;8=RGU^IT-}!I^_6&%R4-Cjf|A6;TX(kuYp4 zs(^0ACOmNXib+*t+{<)E)0t8NWy@q)$m(Mx5(_Zz4Qn)Qo7cTQ8NCKOiEf|^XFdl7 zFbg~(3Oq6fEuOk&10^w38RF>kBfPqNTeL5-kg!47vX@XVIx*K+#hTqV4tD57LN9}c zC)byXSk!l-a56~*Rq?B;cvU#{wMb0s%yRFf%o)m#+MP0M#)plr!*TGbh+|@d8rcIt`c?m`!xz>b>Y?)^!GyuJlFH)KXzyk&}>4I*B&l(H?IY$j3+Z zMa``@yf(N8xb^#oT3-L7Eua%1FgIT{fNzmLB@+c6!^rq}wV+vZx-1M*$mdN8zNu*<6he7L+zKHsrRtOeZ$N4v;c zNVCLW+w0-WqAm*&m8P9er2o?#^?lR*jc6Zp?EVdp2Agh29SsWqH}Ya>dsxion7uA- zL%w7~zN9|iMQweUwjp0_eVAs_tHBZeRG;)yebS%nlj?EQ3=wN#lx5wP!5hVl#u(k|a%Vw>nQLAavYMmCBc%c6P4`hxsc)4H85POeh zh?Dqg10TFg$4NY&%Lh>;Pn`MDWF92D6hHbB%j{szZ-YQ2r%w|9QaZ^BOc0FEjhb?( zPkvMZvhX8Fhqvo5Vn3Of033@2#LJ6$@Ma#4f3eY-T+GLq!Z>B|ay&z@D#T=>ge=fo z*BWl>wQKn(#=+6`XMr-$YG} zxWIj=c6P0_FCEpPPoL_cPM976_%&{^Z{aWzwhmA%NFpeLT?NsyiKbS!bY=_X_ljDV z3#?N=rOwYj94a3MhO2^4t)Bb)t@&uHkP)ycw7 zAo+WkCd0&oSZoQQdKF&>5?TEaT<_aUrzrU6Iz}2`1Q1h`2xfY65KYX~g`PUb z6SBDpFa^F!co`>etZ_0(DszVcTVLI{L$(L7ZQPRHNyAeP7+L(c>~7Zi z+JxRSw?o%wbbUdo=^!>=Ukg;7Dj&qs+CvrdfdX zYP>Q*`vXx6Lu}En2VyRk)`KYSv8)BsImf&fO3mNdW*Dk&To0sA^+g>R&)i8ZfSSKo zbui|{TOk;qW3niKiia1XY7rlNW5jcHocK~ytl1F%ji_1f;htbuR4n6|&=WP12Bh^x z{W49(?$ruMTYCGkP86dWPeu=)O9BeJFpoz74Y8>mJGwweOniUc7QyCv`I1QnDCvwh zyaQys0hDW=fC@q8ROgIrA<74pql>^#0OBO_7qIqfq2KrY-8b04q~c{D6Yb7e!mW+$ zsg)fE*(~Ab<<;UecJ3(uAY1dXtXUM$?rZxrL@Nj(pqxsqL|8l+o!eF~vC(+W4};Z_ zCd_!*535cpYsa!T){gJCLG`L4qdkfJj6ce`5BDlgB&$!&thGIgd29O<6Cc|o%u~}K zOnMj9BSrPm@NnxLw*|ysj~={#_t*m4bp;~GYnnn2b~?{BtKY2xYP&u!p|Y6D3IM$e)4~->nq$a_R|)bhBfh zQpfoP4j=DrIJpO|c7G@6!qG=cIv4{o2l1io?cqM^XEL;aU6ZT?VsFuR{ z+?CQfnrPCLS6A2KPKpW|>?r=;(fkfCWR|>V;gjdA*M;wS7(wVzpF}uTGyv223d7d) zAwsCKCZa7Y8>g6K5aI$J;hz}(@ZAn68HI9%PGq}a58cY-7p&Qkrz#PxG@>9~ zZ0NN(3<_{#sexi6O;Cy}1yOv*%#o3qn3hb4jRb0g2rR6qoYDvrDbyOz47I@)nKrGB z$z1TteGrzRM4a!TEPBm;Vq%esd6`hg+MLdcIX&~t^$RAL#XQB7;+PXc%*0b9c9@gU zU?#3SgD_|Uj0#UrTw*~5FpCBYvGS-Ni_(Y{PKP>49y)OqDT>sa(>Ljm<*XjNE-3h= zJJZU%ltg*)+#0)6=5}Jp=~NdfVu)T~#QQvple*O3*LFGD&fbs0E3^{wV1D9xxq8mI z>#CQNae7RE{%1lhlNh&vxGU|w6pULz+!XKAUd6HGsB*G(AyySGYa;USXc!0@WE#q# zA>yKTCyGA+-QpQ0UIQ_92;JH_XEvaI!U;o>M)<@LAQBwoKu`qIu;J9gEZdnA$3pHq z0aAC3o+1EdH0Yk=ieb3t2!;XxfwuPuF~?P!$Mh)62T)wgaZl-?D}KKybGb;9*=+6x zgfNk<;Vve&)tqK6G(jYzhnSBe+SaFsiPo>WP7>mY`#?N-xl6FVa(;K91Cj=*N*qxz zH7~PpUkt6SCZ}9pe>P}LTR8lKBb%s`LhIx^JYTLyU)>|zl=^_XwgI=dE#>?b7fUjr$nk8jiUQT9}%gLg=oJ=d0 zlZmyQTzLkoxA{DYPD&d9c~(_R&_Y~4b_trggQ>WzUVAP#Xj&!pFFRpkA zz9aR%%0F4^d_r>n)VkThdH=2o=6J_(5N>Cl!?j}w!J`}Q?#Wub@tnkgDGTMu*L;d` zJ#i0uLHoITr$-*QPxEMdm&{wIU%b2vl$1c>R<65BFT~{}=nEJo$ z$cC@4VUl%o;yS zEMRU<;VJq%0$MI{b$k&9QgHb#vG;DhI4^2si8^V41?inPBJ|!l2?}hz-S_Y@B#Ogl zsq{UaD|j+`V{K!2E7yHB32@mD-TWi2kUGYi)G-y;l~TvJkUA#fQe-tk#P23H{N0PP zy&~6cf@)=mFeO3Mo(WH$&=C6fIIp4y_+%s|cB5LHOBBm@;+`bT&s4Zv#GZp4bnbKc@XcNE_^ zZae8nmgVkhLlS$%z(%c37gin>#uK7W|HZCa3}d*G2g}VfcLzX4>Zz1Y_eK93xSQ*{ zL&WkT_!0&QzDOfF{e96ZZfu(fdUq0|fxLcql4^`*OpJ9k%In?V;Y@BM$X!qbH2DUh=T^rSSrT=q@CZ z8>%Ci0B6k+IT$~lgmA_h!O1Jf;LR5mdJ|tQe8A*9pQOXs&^WWzgMHtMc~_Gz^|r|? z*jniMVHZ28+m|ug#7#KV852H3gKWUW09r@iW3~$LLO#%If`kbzBG0Xt^Y%DP<_#m% z_A}`4i>6DPIHMet9@7-hq2+qp%rO910;GOAk_9X!l8%|gUChylE;Jp`!k(r$t?x}J zwLVprskyxd%pEf)J&C{>jq!A=B5Bny8ebl-&jF&NkFuFTw|wd(68Oz5oKKt*n9<1T zw5~5Ku+5!eLT}XpNIKMoW>ZT=>n$#rY>+43-ksC-SeuOFxT& z7Y4~yn5Iaphc)rU8l1b_jz5T5J>Oiroop6FhTt7}%}Ef2Ac8pY7u1a-I3wkpJ2&98jnF-8?Oeq7b6w# z;5nY1k3DliZi-p0S&(HEqyz%=_jI=wOI@;wqm$(rJ#sY#29A>?PVkd<0r-`|Bv}0L zj-{I4(M-q|dA5*bd{dGcx0;P+3;wn*fnhJ8%R^#*+^&jcJov4bab87@n$%DjO)fH( zO`6bgSsW)5eA6Jh4724V5Gu;gWX!pc8dR9eY~|6-A3g7`jh#JD0F(gCJ+f2U{4tf- zSW-y=CO%vWMcdt)6aKr&)2H_Fl1g<&DWbAZd5}$9pYWlbIY1BDQC1P6ZP3h!6&?C| z2{L`8(dC7VkfhlTp$4W;Z3IljYKrX0iN?j%z(5DE7ywlR3Ha@~e}N{b&F_i|O*R2O zJThq%9n#{xb-~aVX$s5{?M-XYskL|I)5A9yEHIOtia42T5|9mRucS*pAeoEWU6OJY z`H{lNBHdwqe;gL8m(fB@`U&CQy*+fQ+phLT#3h`jEEo?pT=8|CT(g9AF z3G~J2N<~YoD_Uk-$Xd4U#8#5nLIy(jQ8;_d(-7w6z0QXi0ObUAGRa=V9kG`|U(iP? zzb-&xNzqFd*|VbngP}?u?Sgw3zU`qJy>CG`V#Wt6pG?c;m`9J`Vd!uJVoSR>s%VFl=$L0 ziO;W=_)<%jGv1H&b>R${9q$y<^av>MhNUpm5mW`B%?+Cbjk&S6x>oNxTS^QCg?Vc+6lShaqG8QVkq(hMC$8H zo=zsm`Jzoxgcn6Qsam!16T#bI1j{LI{u}QiM3l5NVH$N=K6> zuOd$6v9kQI@T?dcoRxtzQy4FMa=EoBPQ`X&`TJ-Ew?$g*KTOojnPJRcTgQ@ilOZu$d(KrF91H@S^zYA1+QhJRnJf40uk@+ z`Cg{=NiKx_N%^*o9sO?V8Duzjg%K5Elr%Vk;+vqw51_y1sPaw#EX=6#rMK7VzwEx; zNfC1SY99iWGWV9d7#gBJHxzRLc1z9tWhIJQism#kqf&r^n4+Q9lc_$Ll0>`75Fh~= zuq%&VpvlT(GT zuTB#S5B0sSaGK4Q?y%5x3s2PO*(}=)xU9rWpzpeez3u=$_7C^*XYX(ifBMoVUa*t! z;~lmPU9TLiKc6jYF_Aeb;duU)2e0#Bis!C+_PlI8PpCL}nQIt|23M8z)lzZ#h=W;a z230R8vvgxJcjD@Ls7i*J|2{H|jhZdB=sa`&=#z^Vf431q-L>Ahnuz_n{h_VqHEAH2 z*IeMYXrw&gA}-GjXyIEaX%|84TP^s*f&#GHML;!^Qq#6euHKV+MVJ_)&4?tgwjwl#%Q%@){lbf0|>AzhX@dvKLQ5}fu4zg0c_BU z(p@}#T9WSk$H~)*7G#fX%nkSUjg~O2aL(;TaV9yLGc4^02nJ1>kYDSbK)9<}3&&(* z51rny8j~4Sg-B{D8PYc}SSB?5t~Zr|zhvN9!{utNWE2-q;xwK4VbWBGCrPf4Yf|xS zF`K!3sk2z#(SL5zxkXOI2H`5s*Wp$Ww{k_Q;5cq5rQ1_h?5JjoW`>b-(jY}30zp*E z$6uGRML0uNirW&fX(i{rZPT_d)2m0Xw2uL~P$%}s4JLMqG?0s2J`^Z8uHjr|V{!tW zZXRk0=wK9O@hwg0L;1NntQ$M!=x3mcFD?N)vACltXnn5={72vItAr%1w`jZl&ZAex>BWqVr?w>zVcG zu+@F8ykgkKZlD0rNlM8kbmLCk(Y;(aO(8c|Ympfw7t({~-+c3{Tldx<%yjld>P2i| zjb5U0Yb=&t?^zdLuJ7Y5?D1F2=aDIX>ykGM-7IgPqF*DpaA}C*O8OpuCGC#CO8OrE zw$isD^v*XsW6b_hQo?V@hp9NjeUKETQ0tCSv^lZGDRhrk$nkbEc3?@&59%72D0|Ui!gqry3Tg?XchvOP(mlOX z>JYNL)jK6Pha%O%Zq+4vJ=ye}Q1mF2<5su2zQI}wj%QHin$jAk9~L#+JJceV2F4ai zD={R(-_VCNAXTo*0=+Qv_Il_U9gpa-^T>m~o9CDMEv_K)!n3eYxZ<0Wp?q!Ci{SY= zd5H;_T6DYljLB{xe|sqsGSMlMoNX|p#rx()*feV z4?FXRhj}N@MWhr6i?2BR`nppu#lkG)nVJ6j*w?drJL9$-AMyXS_ZxbFdYh}~GL?r^ z9dz>jF6_1WQ=i~$u1~PK$67s9lS3`4F1N*UAB54MnaNZ{;Axy35PIGnW{i6mI-#8bkAVMPB||rt(;Y(= zAOBiMkZ^SPdy4b@{W^L6C5rPe`ld85g2&18w&Tp8qlNNxX;%GHn9YdH0Hzcp&5pO( z9Q=>n0sQ{L{O>1}{|2f0&V3_&{v=A^t(LWD2oC2l_U z=4W#y01h_@_45irzQR3DDqrn)&oR|Hy?^ zH<6AepGl1NrlPK2w%%4K(}K`T45AT{MIjoGEW9Ly?m=MsL``&usCN$w+=Kd!430!p zy>S`mO_+JO9}x@qiM0L8R1f#h#l%Z0NHi2vBvIT?z;Am7f5ghWI_OGmqPX^)1r!eP zrOnRO{XPC%S7LPODbG$ju*X?eGz$XkW) zM0Bg%&_dDG?du8a-KOXnIHBBeGzKmE`+1v zo-*AekOTi7XPqV1j!re z#ih7Y-28C#riu58fheSR$gMU9|1)<5y|1~NlI=MCcE)!w&?+(Zdi%nM&%fJg#LkLO;##d*RwHk}Mj24g0Bj|XW=+Vo-#GS~LmUc?~wG|vS&9jdx zw`|@PY7qjoWxyd}q6soi;7R|(ng167B6j|bk01h!-;w2zp}^aZA4YGF-=7|hKE3<% z@q658?pD02?uxC-z^Apbh#l`4h~xuqt$`e-dtfIoqu&yabE6&NZUI$EN7p?x&>)9gooz6`v;ysd2ARaUcC$WANDgVySW7brzLfK(r< z)^N$uH>-k9t@qyGny`d>(DF*?yROhJT>~1ZXPlb`R9&rf+Ck-ub`~vjoAn834~Ni8 zE@NgCNkHb73&k58Pn;*#w!XjX^fcGc%D>?*2)8cU7@}V!%pS^j9eTSVp9v;%wL7FA zSS$v{VXb_7H1@1Gxwc0;P)fq4Jh8U#RC8E$!y%0FpexvT$6|GdiM|XE5@jW+9Rru8 z2PjkM?(Jz?Yi~kpb|1F4!Cz@xviEx)R`hBQEBa`91lq!}1e$rz#NyXluca2De9iy^ zqgL(3SFYNNUvt&AtZ5kazkdZ@{K_kEEvoivT3tJ;SFv)N4JCQXTLh%0TK)XU0(xcv zjB9yEM*0p@zvAB28=w@hsE-rLW*AiL4YiYpAA_+MNK1yqF#DHI#1+G|7@Pv-t%L%$ z_1cAdkrc=`co)I&W%*5_^3ln;_!?^}B+W+}RN>6SY-?*&u)yDaP(q$Uc4fbpW`1l>`QowM5`ulm#UDYAMkX>{J>NEytJXw<^+tF!A zwr1OcM-qJDjoULIE+@n@n~2YB#Ka5F`saLfGrhkb!_Vxi+6CuCJO1u;s1A7CSGc3Q z@~&QW59fpSoZwdS%>xCs>n!EmyY|MdtDV(uAC8i)QR;TCQAJPkb@AHeweq9AQs*;Y zBO6cLs-_^V{-%2V{x*94#jmI5fA%Z9zpI4i*tmRc3budp)7hIDtTBP|!;Nv3PPlQA zJB=T@f?egMZU#k;^J)lIuNv3#Z9Gw94gxe?!V(*)uqci4q`wQB>2xDH?EIfI*!Y>n z+n%MOPT^4vF$0_zbAKE-&3}b4X}XC9(hh_q4w2d2? zT_HcmK{!_r$OO4C^#1$4ixL;~obF^A)B-yI0zb+TH3)Fuf{twB#4blhms;e|N$&4M z+{gGW4*`twb`mTO@U2V_UEDxIL$Wwo@o=7y_b?n%;aB<(wirYWcX*tGx=dY}Lw!%} z1v=%V&BSH%)7`dWo?~tI6!PvW{e{@M5latt0Mes*94{bwoF@aalOWk$087tgwKMH) z@M1BA_=Sw$#Tf*lDTR>Njq*p(Q;42W^w_@&5+A}>mCui_Ha$OnUHSa@WnOR`Wl22W z)qHV}@;Cq*AyDp*9WFbj%LNbsxkJA7y5hp?cg2lY%wEuKPGyPp;LLsEm=;w9S) zA^V7IY0#e_y$FwK7=l{)Q(5zJ2rLNjlOLCt(eV;CBJx@r=aZrt22^IvYGd$1VDF>* zWv%^hsQCyx^~3qQ=?DMkIQbMLIBtG~p3$!ZKf_$;)-p)0@uubtlu2thCP;1RXX#-d z%ORThDNg2-H}N72QmF_#uJ`Gzzb6`aQStEGTHJ_$B|N;|JaYnmp-Vkv3tv`^(j$-l zHchDRY-pq41syGvr*G;8$gn9nFQKxdAZulOo=59LfYd?{+UGXY48NNmn|TBsbvYk* z*tQR8mhh2@AI}5)e7$-%arB(xNhzP3&49T`SDMmYsM9Poa*aPWTUy>$^N)=v&Kgsk zlpXe6R7OL~Kzfsc$-D<1BgcDAqf8gTb8UDUWFI)n(UR>$JjwGuMtJGGDO3z~E5_vh z6W_;arUfA#7KUJ=Brg0S5~FhXT@?CyAN%;6GmB(G^S^CbWKi@cv8Ao6iRtq>q%>Se0g?0XW}>`di1 zIn3dqHWTftsf+vz=mviP5u}iXOH!}l=#bLYw<+N{Y~NfG$N0%@;_39XcEQ+-DVH<& z-27cVoq(6-gA}xE6hUp1ma3Gbk?$LdaEc^^lIyI3Il-WlM`OCpvI!WQpGU|JxzvVV zW(En&Hz}a>1pG3(iYMVT3?@_}_X~bg{q#4T1^8U17ERRW7(F2FWXU1c1#82aU4~oF z+|cAHCC+Is88AG--1Tqcls`Why-R2D&1pCfBs=jFT(@8a!q_*kOou5n=yiOnVn1F7 z$pkn#Sk)~8ED95nK#D^63CUSFmhfxd8R$r;fh!%Z>F@Yt6%M}SId4^ho19dQoKPEn5;P_O ztjXxid(r?Yv~d&8=Z%Y?A<=@kFoNjDaxs?A3_|ogKzk%$gde1s*!b>! zimNnK4jrA#x1vO8-6sGoDc{6v3B30*k}v0YTU+XX`~-ID5a)!Q4@Z9)Z+;$hFfgj}CQ)>xwNhn;_J?0!?l7&M$kzr_L|meUg>|ya9iF)!1E~ zTUoc@V!o#NRL}~Fv7SKH_kX3cWOa9ArCwuqhi1{JNc=1{y=QXhehN}FI+owZK7OBz zat=S!bDYG>Y{psW2*=JdA{i6rOqqG++hH^dd*Y!*hk9}a4p?iE-GJ43sRCm)uzQab zC|2Kjh><6;AdKWvd^^ZQ_R713#o@p+F({r$SG5_bc|BPPJ7GSze~|IILoqB34J~y; zUSQ*DnP$j#FM{kQ2+;5UZL5h48885TO;4UQSUUtVpd z^MX3lF1x-Pv6Hvy##dW+BNeE+@e=n-%vp^dB)sfyvszu>Z3Ji*ke?RneO8m54_?SM z%at~%OE@i~?F%*e&vk8~^d8@5sSpV!-v&MuX37lw*~s+TfZ);$b%L<&U*F#!C5gYn z>tFcGdi+43e8r#~yt)VyrDR2c3zf`;&vl)UhKY9;ohzG^SjQ1_>L_ON)-q;^ahz#E zj3E*hQj9@grVvyqT}tUu3IxyB%2PSM_Ucqjf}lJD-r!SuVFXhjiL#3H>A6!L^ZHAd zOeuCA1T{-8bX%q3Xv^a~0kH&42&Yr&P6DJ6eR~4K{lqawW(g3i|9(;o4US9V0s+}r zQvK9uEZp4Gkal5AFN>L5z8|DfVk3(i3)1>GWO)t5bpT6{gZH}9)W1Z*suLiqg%3Eq z>@*smgNtQ2M;(^ruat3`#8AdK!OBoaZlQ{_ZQy-O?`D0HCxi}p&(t7Bxw}q^v|mk8 zV3YV09(m$?*MX$~xCs`34@>=jsGz-Upaqavmrka1;rwE}dt;nuB)wrB)l zG|>81-7YAvbQZ1R;;!X%tLO_KfRMUhOHDbZyX+M8?Cw~W;RB<{Bk^uKlX;ZO!gLQPlRy`M`Q zYkTJuLe{e;wS7eJ1Xii`vbx+Z%mj6^njW`FV~e5{93)#Ue($e>WD9a2z^$nP8?#-} z47q*TNnn*;->D3_eV=YqFoQv=wX}R2&a*Ar&5+x-JIyOaX%=@~+t8?$hd{UO3#%=5 z9SW|pH{>}ZJ|+|-*{X!F2<_tROboj%&YNniLBFCtx2o^scSk;B+;No(g z8)(eqG~*1K2?rU5ZeL8ob{?F`H2<)RGap9F{0n)=&=g%8uI^Fl55-s}n-uz0D*Qw$ z0btih`Ag@v+Ykdmn$#eon)6>&Pn_ZDF})fkw1Z@!zbBxbZXO;J2 zsUk`FZ^I;m3+o&ucQ+|VIutDd@9$MW?fc9c8Trjp(V>%Gf<&Blo2DpqZ3?7VlQXk!r$JW{my$csZvMEk&#A3KLm-j2tu4MwrLs zgdj@QxYlX0>{gXsR9R9{vK3!rNJSV{rU|-<8C?<(hXgjhh|L3QV@437EX6Q67KBU@ z*gaYh=|?L9Bb#oCKd3P(TUNr7xu9F&Hi@7(UojHQU~@Y%44N4MVVj_9w&^-0*H}gt zI>QHfoU%&9_STw*`gxI$wDlaaRBRX;$TL}7D^qMl^QYt2-@S*CNdxAaAWTU+KaAs* z$Q7YeDJOG+Ei^sq5hVC9jR**$X-h6PKhfvrlhP__`f(>6&N*b6;bzOEkM|bLyt+P|Y+Oq82jI|A4 zQ%Vii79e9?lk8>nT5Qz>n?pX_3M)%}S+#AkVYxZ=5Y^+5v%1Y_=Rg{~jhYT%YN{`0PS8|Z zZYxMUJ=bHw+;Oy8P=6MzorybCx8siKcARlVYtZ{f{7bX`l{M>r7{vBO#dWg5-g8lV z32m_djVRw+8$92`xEfzN_PyUN?(_-kp4#A>o+xgqK?p%MT`dEUJ;8V125@~?RNXRz z6a+J`u3_X0d8_dG)_0C=4?flny14R^oL~8f0O`BDxHzwt`XY+Gzo!FtgZjPdt0~$m z%>KfB*p4F%U=*54uaUa0*rX;)eo^AxD4=Ui#mrp9i{(O!YU`oD?VV{Q9_crzt9=p~ z#_k3Vkh|uN52n;!r?z)@#uaRO4$taTmInQ8E?^fW+7Is47jMGZjjF$$T?17-1W9;W zomY$>ps58I+-@-`yybg*wT+(3WHVQ4=gKOxc~LPNHXx|VbM(yixZ3FRwY+-#se9}O ze8QS*@n>GmlnWjV7OR4P}3ILfF0s0C1QUeLKjA)2M0YD!ghH zA>mZPTW-nOj?V1-&Is9}&bs9mshET)rFC*2h=CX6SK?vJ?5B}c&zsL9gN3hrAi05` zD|#c@^lInV2nE(6T)*DE*!~thbrk)z?XAx3@qXssHLw=rte_C zBQ=e4v`uz}(uC)+fe2hpDbCSt8BZGVB7YkTptw>Q?Vw1p%E2^*&SNq>XOJ)qf-&ng zG#Y7z)!}o+nT)n1dJ_@@^MvtDOf0o9LlQzsjz_XyYc*&!cOcBNfmW{$a;BosO;9Y` zhUIt#OsE;vQj{u=!c~=1idDbf+{zpl7FdFT14b072yG@~Op(t02Sm)Yf)|ns+K%e% zO6N6prE!IS2w#s2$n>h-6ND`+&MSq*aix2SnRhovUCe9g?H`>1$l%9Fa{htz^tZte zfOcb_O}cVDXv}9O<|WUWi_emDGlHh86FbFrdtv~&!al+;#nhH#f)#Fo ztax1_ezc@pKLoZPB13~Hhqb8&=4%Am;Hw1LrD9E6kO@i%!EJ4+m<}$h-_US5WA-z_ z6AAO;(AcK-Xi;(c;k{8X+sRwSyv>84s=g#;mrI&~|8hH&fFM(}NkV}`H)j@nHCDP{k01{pm=vX&O z+6YLw0QT%$B%RxXXt#fu(Y^ns6hGYoMBAnCWtBE$fZ@+`koXCm?8*Btd|8NVfoAheu2iu-^C43Pf>`iEuJFkr$_&*cEshGzivcfG4z;a1$%#GV-gI zpIFJaL&J&WxnW1cJtLc8?J#_7#T^tLn)k|15c8WFr|YR!sVK?Y;l zVIGsYvSanuBEoupLJ@a)fmiB#Y~Q&q$6IN5GU9}M`Ab$6%HDB@^2#^XRbe%OnSsMA z>OLbB&fSVQC|~P{ynGQqvIcqaJ;nnQGV-C3@bk8_OVbXi3F@hpe7qY&2lx~sKhf(eR!dH%8gU&1ore4N8dmPU_ zPtVF1nu}ySOPc|e*MMP?=J=C&EmVj@@oy&|zpu23MP*Xd`SXYOf6B7O=KyYIrWxZ1 z!VM~?o8KLuLU#$YLz2h*1O_sXKfxY78jphoTKD=3AO=Eb_vaL3WrU9-N#q7!pes(8 zhUdy9xfZI({A`)N^7>uyL(Rd1Jqqyz%ysHRyt|os*ghngG;lN!bw87P9V;fYB#{xd zL7XxZ<;rmTncGdECJEYs-_Vazg+>OlzfN~DuBUR3;bZX^viRm>`;Oa)(w-`}bFs>T z_xbJZeiswDk%xNAn=?STK?x0jYfx#yMBdGdmsx{1e$CwMcH4nE%=`OJ@=_Hq#(0^K zor=od{hTK;WxYX&b`Ap61k*Ew?A5@>lt_06Ysb_a)FG`ZO^I4~1$<$55nT>1{4{v} zOoTta{`mQ(`|saf#z*kK?@xZ19sh8NpU3#;^_!!=;P3R?@yWm8$D8i__&RSnabn?TGA3y*5{+qwNd*?N2UcQ4mYp!{g=?xM!xFkQxP=u{} zKaD!FVBrI+_~G+=SYgnX`}dQE^w&Yg^1>Z>#_{`EY* zaL(}i2aw`kl4dy}9(^wEXt6Ciw7GVnR(-s^#0UaY&&SqF_)ExoJt|Zq<3pd=s)k|e z4&t?&PthO4Nf1|0&RWKNjd>)mq^^;Ue(e6i`)0)+AojY$Sb5xvTP+7K<5GsP@ z0wgpv_e=mL1}k29s_8Y4qBvUNGbN~wmmPqB!rUACg>pJsOL4vIS-RKV+6IKPYI^{5 zonOINVBsyU6@dI=1To8@6+_~(5$z7xIX@+0$Xz=`yeJta#59lCf=61J-rwWfEnhy@ zr4e!0CSRqMNyCH;C#!UD_|5Dg%ne>Eae6~ZH7Ieajgg(f9cg;t!i{VcpPZ2xJu zz~M&hEZsXF$ZF{s!--F5zVgymc$goYM55;ooFd>X+o`)7x+3oqCq`B&MRaB{T1Fu^ z9YpM451y9mQY#)8CNy$_JY67L#s4geH-6HmW*YG=GSu({#?6xcM3b=iUJm_=;vPkS-$W_~ic@e|~9D_$wALD2^FpV1)s8s&E)+y2Wp@`amUw#U z>Pi)RbZ8l+9TLnBWaE`34)#&eVzyr)4#tqw=!ahNRj8!Fe46iWdVAaNZgj~c=s+9& zb|!z+p5t#zP&YyG&{4%(1Nq5vr?`o75?+E(c?21a?y(o^VqwKC!GYH!HiWkWixt=x zsaT>wlOG-^dZ(?){m&qfhTfK->el3rGjMyZ$2V z&@AhW(TDiwg0pi|YcUBnWw#K(>=m85y_v81sL-yD76=fm7Lrw;69@Vf$8*-G%ACq`dG7t~ z2xD1m8ctv-SwMLG0ztqWXE?3|stf~V4c+Dt|f~MT_1W{cE37O^_ zwXsA{-4tPbPC16^*U#EY958R{+4$TGSinz$G&PKov2J>!qIRs29<(RMjf@Y|iNJpe zzg1c%9kDB6SRnvCDD5*IZz}@u0)E-_u=qm1j)6cn8sn1^GTWcqi8MrPXL-bX2nbI7 z3#02lL4kR`I7Is55E7H8 z=0vbWY-|w$)HbTJ`4vK8wx9w~ zKI@Vn!-O4xOzC-Kk^Aug5eSWD<9X1L5%NMAADY7Msd;?0$W{#*(U2wM;#o7?+`YAO zcYW^>@o(LHHI6z0wm-|d>1vheWp%yhHMtD!QLjTBQR;AA(29UDS)$c9U#S8>f6eU- z{~7`l`-`I^+`_dd+rQ4(0Au3C4#Dt*!J<4$YY{Bnw>bHa&!>G=$N$gVbN4l_EBpWZ z6v40AL@7=$c)7b=_Vn^Q?Uf{lpGgGKU1R6DKv>|rzZo^l#wKw4DMXeuqZyU4HKQ3t zr56qAADQQNx+H}88=g=#e?yqR`R0Qz!WF(lNaCpt2Fbjn<-$uPnP;AFXby0*v4x*( zHDBYQt@izqw-pH#{QDDo+upa5WJJ{#JAV#>qiabanio@ zN%F}9r-aib&rNyEAjnq)acWK}RFEis^J9i*=4U-wa>-J3q7kJZ?qPtSu+IyXnWzLg z;DyR&R4yILQru=J)^y=W6yg@+S=m^IqDP;fTbxWK%+AwuO<&J_)9f&#oF3b5D|VXn zI5zPT))smvp1h^&UQL+P1+%$KrT8ay2tK;_=;9;SYObRoir)^d9((xM(~o_8>}%wB z9Hu^mYbk!cR;$T=z&C!3vE5WR_TIS2>J`bTM}i#)K}E9TNdKp<7Rcf*E~)^S0zjge z2_O?k85UJ7+9Jl(#Atl_FPQpz*KI~d4d0`9gdl+$$%(IOBW*_IgQ|M;-dB;?ZP;}}J zw;7ADI12UWGx9D;tGYztqy)R90;e!EX)*%=kl8+=XbyU*m;CB6rPX6faZIZ?$f?KS z@$>8BHE;${S-y|U)a>&~2p@sP;Y~32!0;x9+)q_|E`Q|n_SFkuZF8>DLVF5C46o)j zR3IrXV`_rTpOcvB8ECpXJU-%+qQX&NH3p)VTbgw#pLO`tboKhumGx-o<%K^`6T3CA z8FZ^pk{3HRcotq8)${m#C# zfjSP@WQM>x_Dq(5n+ocycGO)_qgjoHqO)#foh=;C$adnpci zq)77%r1?Nvq)Cf7X}(M~BfbAMPN|9Qk$ED3C1+8FU(Mj4vi@|(5^8Mu9&l*bk5O=c z9fe=1Z|g)HgruAAL@C~$88IX#Zg0XbR_hIiPsIAt53jSJ@wI;w)d39p!ybnijJjh0 z`8DJ>H#g4w(BCjWY`nizp;Q__-v@zz$<|37vLWnIII`h*IDIX$#yMC2(M=uJQD0z% z#1yf9fyy?(@FUjFd<3Wiow!rM-K5{`1L(Ijg#ioLCkpM~Tt-1s3pp4}1mv)X{UVI? zjgL`$QwM`p70lEHnD1D!rod%LqbzCsLf6}nt^J@Dd^!?*PJ1qno;dXie6lrEp>@q- z^^t@dWB*{NS7@ejw)HX6I#3NZmFPNT2wIP1A{+0!Nc(xn-BLG=_rY%K!$yF{^#hMU zJpnx!Beb}13m_UlZ~fg1q>uU%ZrmG}d+fjvA`&L%*gz)>4fQ2GHm?e(Ha! zuaC79{^0<+`a`sfZlbHGrasnEJ&S8fi?p-oW(S;HvVf)cFA6vWR3wfjoW$@l3u|kS zbO(&N$WRm>6jKN=P@w&x8UR?rpXwI?RvjrIK8sZkHh$bjAx&W(=zz5^VVUTrr&DwJ zA`L?7iAnGs2$k&%h$h{xK-BLJ6%U2Zt^-AYkpx8%B0$v}K+o$WXQ%PL9+#3Q?sUpW z;eXhl@V2ur>D~u4H-|(6f(;ac(YThF7vM)?8VtJA;gk~~-&jHIU_xCb!3RAU2!uK; z1F-5u0hv=AC$*k*t@rgW@V;miQzrajatBKK42Sr}scHE`9Xvvf6#Nw7e~j6!pV9^# z=4jyI&05HDUoPuWe>~_{O|!#;gs=+BKuFKuXv|-IFTbWo!|s6h7^bQx`9TEZoG|`GABa{PsH5}4v=$ga1`4<@dOf(}+C{!VKW0I|pAON`nDuAYT$w8TCR!6ea8yAzP=(QP!?HBd&%DhYgW( z+ili1tB@n=JiB@Neb@k68vc4slcbSGpJ<3TMxt{Vi^V-I$kBKFh!i9Bt(oK+-BCrS{WLZ3|7-Sj8)oW*0{U z4%S$vHq1A}uikK%>K*UvijgyKzeRWK227_$#Jy)M9c5C@rWrQ{=}9!>rl6glZXwlQ z0T~^Oh%SYU!Ri$MsE7mqVd1GI!yK5HR0=2^^XAlQsyrF>2Ei>WA2~%*(*o}YtgWen zG?LV$T#1FJ8$=B6D|W5VHRu51812ydnbL-Gq`14gGaM;8;F3iHbmmIX#iH}CVjx<4 zAQJQmW{H@7&~08w;&zCBlXzJXzfc2npS=)|LQ^Kr)oM-+H#}s(vqa?cq;u<9O_4_! zKiTzUHuMFzxBi7KT}5Gfs39I0;xA?CcF@5#^3k%|JoEsGi;EG~a28X`sU&0vkk1Gq zF^QCg%xoG-JGHZlJ{5UQ$m0lM$v0zYF9STz%$B8|CGrzHbL7G0t=F-aZ5te=AOEzw zc9xrC$3FG`&FRbyB7b2)1&N}!@cyLGrllTZoNSVL!81=laM^!+9J**8k58>X^!64k z2AH}*!K3fgLNC@Gl>M8lmkJY%iyypU0WX@cx5NVeK^Bt8X0qo|-Z9DI&g=YcFYlVp zY}r|M?8WcP&grV@*vro1cTAivPfzVO{C2oDwG@zFtv7re@K@X$oL^XSvEKUe1q&~- zkfG5j^;y5{ZHll5zNzAfE`3I%SEu~ssLgPT?%kq;x@MYz7Dq? z^71nv>3wQ<9mmnO6m4B0Wg68^=)Yi!0gmqg_%ESRkocva{JP_Du@rjnN5}iw5Nj=& zx$Va!Q?Y!wJC*s{KC;sju4>~xFN+Gz%nItG-?S;qbrhAot*YXl27e^mroN+xm_&o_jS$wz|E5dps}m;VBJ0z zgLcj+9=g3;O{V5;rNRy=l|Zfng49Ii_4+EWH{zZ5N@J<&>$jRiSBHgLwNkuV&{fOC zvh@3&W@+pPuaK>Qd%YkV=Wn~%)hF= zNzaw&C%s;t8miQwt5dE@4f9k_rzR>j>g&`%r!>BCUz1g3TGl;o8jp2uoq1R>V_1YS zF~(^KiE&TnOkJ5HW$To}?4NeK`P!IvCqq%>x&x8p4!bgEG=$oEfOy$xD$B-GnKKz_ zgS4QzY?GG6PN5r7Bw(Eb_GiU@orPJImu<*(9cT8odPz>lL#|@S#FWDvHV*4vM|*IO z^Npz?bd$)NOjO=lVAmmvN^tHmp7{AIpPvj{SUhH$ zwIW;8r%{w3N#QUv5|QQFXAx!eq^shLs2r*Lj?^@zWDL{ zr;GD%&%ZnW{+E)vTq~B-=-cRy#%CD*!pSQo~d z4cCEUi->cl={(6p4kcRS6L{Go;hunYAf-oc-&%9wVhaN&Jdv;|sEEM40UUf}d%Cf^ zPSXOaSmU^1HEr5iJB1>o!I>9h9|h)G*s8U#1LRgysii=8SkK#OVjF>suHRWVw`OB= zq>uN3)$|oVO>1E_ubS4X;Q{PU5JZ^ZX_sH1gs?Kn<`$2J@KG%s28}2mB@!CLm6?_@ zOWos^SWP8-P4ZwM?NpJjD>RFBLNAtVs#DAoEnh(*@F!<4HP{P*JWI7=w@aGCc*T)?3qwDm0GyYfC!5sWiSs#PQ$2|NkW{w6k`O7nl*GVDs&$`>VvoLWzddwei zz2(_GFR#(*<@p0Me~{--%>2m{xx#~3WaACV&GVagSt0_H&^X5X<&4oTN?>o|A44gh2;RE^|B; zcY1tHnxDyx!OEuF;`mR7O@@72d-?u5@$*UlW;v$E~ z8;4vu&w0b{eXpNOK-El{hfy*VdGjhRG5CL81rL$f)F}>m5yTui^?prxD@4Qvz@+h| z12&)dxy^@pF>YAWg>N%w#o5~~*vc-*kun`=#Jiw2%n!D#zFSiCA~M~FVt$k*bmsCU zocpTCxKsDugZ9px{JDWBlnJu)0A@wN)pVXZ*F@toT}ESma_SU4yJnX4ROxIxeXV8j z55lb9$wHQ1($9>>rAxHeFx56J^ivG@ToDst9=9*Zzl)gH+-&X4IfK(nOs5NM{7zAgtBNF0fj&pwN2N_K&j+L1aF8OqJq_aNGYCU8W zao}OVKQiv(R2S*Uz{UhN{zFj(!?7}rGUfxlPpd*2<{}~V^!^h1#s!~A{ah6(eGwUc zbJ())q_9unF3Ea(iVg2D0$Ys~!lR@WE~gKzy5 zGn7C!5Tfo6Eq_Z^hDgM#w4hD=@$e4Zp%438f5)juylTjm3_^T}R9*hY8VnyI2^;FO=P`?uHI}V+ZbBXw`SODYq=QUA@ z9cB)18Z(MbZ7AKHga2Xh{Nz;mu3sVLin$bxVe0#@-b1=F>;Pgj2(ZyxRE0HA;QDw7 zRJP>VKNXz{7a>YaXg5zG>3P*7Rh8x_#ZnfXi*ik!Ck=Bp%tGqa@T7XYf{zIKh${I| z6Aj-gT=^YDVdYMt-20~@NQH!OW>vkBo*Hu##!*-1a?eLhiS|Y{8a*7Mg6f6A-wp4) zZiN#)?^++{B)o3@IQ$`87g_Up@UzOxqGXI59YzQdAPhkmkH@l%D;#}mJ_WdAcgkJ7 zX?qW;z4H!IDlZm!h_fo3c(vdpv2=XqVYBq!3q%(Byhn523%R)DVFrXBH)_FoV^n!K zH-RuSJ|yRfTezfe@Utz73h_NC&R{A+R5AF;9kEwxENmT_9NA~cKA6f?rt$)ZOppvZ zx3VvA-M?#hx!6l~TN*Q{^hO{3_HLT^z~Nyz2EevT@oJ)0srGy9e2_t ztoXQ~$NX^}0YxgH83sLb2-Q#3B?yBX5~P)%7(O%Zg{dI4W1r4`e}q5FT$VjJIBt_avbLr_8c*;A{>6bC!vLpKl5fk2=pB49!9nFQS|s26}80#_b4P@ zSQuLi?<`xX7YXku5DK+?u{HuA`R*#UVx=&l%`virmw!*A4yc!N*oWTf=7Dl_K1~5iy zi|*@-K0BIrhZKoE`l6W>sgd=v?(r!lpq{(XsQS>R>Ez$+Fvs&R-NQKO|rzA|$Aw^K96r+D3#nGjdVA?AsQJ<7z zI;`(BI+Zd~&b^be^oC4}>6lcC#-%d!B$d-!kSdIBEUA*|q*TRpS*l^$CDqmv-ivjF z-BLZ-V<6RFetM>)(IgL+)Xd*qNiC9ZO-QX|*HRn3Md@|b@M+m_4Xzk&zzxGqxNf)) zR}GKgn&?|&0d@r*$0vB2HFfa}_V7Hm@d9=*OS+!HTVFfXcXn9Trkt~EIwRP@qqrMC z;U50e!oB1VxDP+#emXWDzz!b7E*`=j9_F`qcm&_$aeRX(@GYLiQ+Ntb%lUizjYm2< zA|L=@Ali#&0sa9{hGdkqB>;EZL1y!WNoJxWbJ>xV$jI8ZWMdPu6ByY`j2!GhPIe$? zd69>#NYzB1lhF~~>xUi`M2{MxXZO>K`{~tR=*`abK6HLFcOA^F`bhk%-2W;Faj|Gl zNQkdayWUGClOZ;anW1>VIN_D=em`jimL1Zr&l^9jRx54M&qRQ%l`Dg(%V8|MNL^FC z59FE4?(fDlN!3)QiF}`71$BI=xy}-D5Px=b_BTediIy6Nr?6w5sBha^K;DW_8gH|g zd<9X*VNpJYX~*9~~Knt0mlwo1^HLAt#4GQ!0$(TP(d+Gl$#V@>z0xQ)@Ka z;~{&dA1~$U*kw&Amvoe>!|b3QUfRzOi8ezQdjUV5zE}vMX5T#JNH62QF&J3vKD*(? zgU+ct$!5_UOt9>D;#h07@gyx*3;9YRmgj>0Dh0}(r2JQU@ippx>D|F@T)D`JG~XFp zzHMd!NidZ+f(lO+hj-`M$?;|o=M@TdN?Zo;IcSdBt>w=5-%sE|ZR z5*J#+CkanVcq9>#gqUfOfJA&L;*-c+iwG?eLd0~UdUrs?R6v9|R{hR^@HR2-Yr7+P_Z!p5woV29ME$5*s~t6-C~IGi;>DX$ zq#~fUkZKVXb1KeN+w`8ALn!4o#6u{vlTd1K9qDx&Qk=h6aq+UBB6`20Gtwuf^vU9a z3NZ{LbluaXuggG};fa|`dG-E(F=k^-7Qrw_Aqb5gq0uKa26Px^DAAa~8eX8lrEQ7g zTyA>JU=82O?igk*ON_IUB?c;GiII9)VyL|=G1f!Uu-464%I`pRZUyQIRN>a3?vq^c zTK)(MJWxMRDn)htkI9mi?uM=SA3*i)7StzDdv^`$$H_+VO8zTQ;DP#WvQ<>if0;b6 z-@13~SI!grv2)KpxsU7*&d=E&2b}zJVf``@XTRiXj;t2a9i$8PW1C5)0JCDha&t7) z1JeVuWIuO%_UP={Ju!VSx9ri~pkX~Q128*iP0_tze;{TEW&=jWJ~{QkjKJ*KleLW(veVPy(3Y__71^| ztOiX2AqiZN0Gh}FiD?puNI=X;0&V1sggZ&hwS*uEwAr!spZSiMe~&A@uF$Ir0%J?? z>j-cKL2OB|*$_~+8X9X2hLxV)9L}`xWOEX#3j7ZI?MZ}c@C)$QCvi!^UxL3HqhZeT z>SRL+1*xGRH7DzMnn&#~#v)qHuSc}6=OHKe)r40R0|b}oNYW9}b4kyMMo1JgYKn^j zK~2G-uv3jx3tfY9GdN~I%pfSoO~1=yzs*H#WiDcQP2flg94&#PBXAT1jwOL(qrtHy z`^GNhGtcHJI9Bdf$BXg$ zta*C{T)$%lY*kKfvs6dU6)!A=Jyx-t#KM!i<_GPA{_{Y7w9@L#RX2m$eqKnbcGF`| zT#vPHy8@~19o~4XI9btKnbX*$!5_Tsv{P2<)HW-OH9q}<$&$Gl8+<rM|VrGW(ZB+rYn!#ypx1vZ;D`|Ph1TURVg z8_#x*HrgJ@r6j+;G}_-@8Lb~j>kp&#uZ{MzO#Ngwf5A$h9nAFDb3;$Yt&9Ds%XA-W zJcB&s&6BSj6Op+QZEqXD-RgO9mF)CRyK_4AKVMrqskIqetHOlxaeGE>UuEMdinM8t z`b@iQRccq$*uAx{ls)(I_?*ki#U-%)3IR$5C%81Kx@raujqF@q=R-YLmSbm7e))>M zhPCeQ$ll#`y=amu&XWqNei%x?Hn!7z9V8~g{Yp|p6Ep-6V}g|Un5@SSU;kDf22KuX z$-w42WP+H*yK65D7x=`x>GSpmF|iP)NNtGZ7T!N5$?;yDh1z+c9vMOOOw49XYSH^K zB+s7yAz<~s(c&Y{>F)*2t?Y21aS{>Mk@M6!lOv8Om$?4$I? z7Rx*HF_CCDeD93SK!;8B-@?8YoCbKjF-5{m9r{`fSSfBYN+zmXzx|!@6h;ZWz)VP@ zA0mx0%Va{1cGp<&z8ydL?WnKPn zUtOVkOV1Br#r$8fLPYcV+!N9gkU~V~q)jsHEk3Lg zeN-3!r7o1%(K>u-$cXRx(aga|5oh@DRg!AEN>F53pOja)s4Yrntq`-gbXIQ3R(zj$ ztaSU!F^L(bl(p8L_k8V$GvBuP5%09_k_;SQQO@|-M8Pvi6bUV=D4}$GGvn&tEl=gw z>AvW)_y*_(&=t72Kufig+teR7`A#;5X!Jww32MZCRyhh}NuF4x%rFOO;mxT@c&h1B z*ZhOd^3ZmdRigL{og!d;98M&W8zZ@xvV8k*w&MW*ww9#qA9Wha0(roX^Os#E1x;7G z>Q`D73qtBY)X?rSRf?UxA4q6ugXDRD$;L-?&$T%I0m3QFb~mCT zg*IpyglK2pIR^A1F6S9lkQY%E$@M^I>jbZUzV5@=Tbjp3e_I2c1OMqcHnrL1H#dzo zUbA(S8AO!6kP7({=Fu$?reHHrQwc`9!F1GHngHi`whGH+_3z!Ulf8N@KuT|DP$%SO zFBGsAP8)vRZEukuWuwzm}QKKDwXik+7=k zKTM4W`iziI6$LSgl2h$0M7KT;lcKvBWYqICt={s8l+YLJm-Q#az#%UUWD4s;7ODHP zrXiS*mDQ1+MSN?8Y^LIZlkfuZO1c%iH({N%p1aTyMN(_bF)~T&_I(H+e&tmXwfyZo0B`E65-hY;ZfP) z0`16Qai|pRoUN?J0P}F#a7Q=#=k1rbhDvk5bVY}BS1}Sf)$zXl=o@hov->mNXUvB* zRGQ$BVRi<*)Dcmppt*1>O?t)Ak@=mrdXXx?zG~{si!$BeFaxy$bEW2+W*~-(fmiqA zl5<4EA=o;j<#CG6-uPAN$Sfx7V~b(UZ%fqJM&Wd_t6wruy#iS5%lD_LY40V@xOSsGI$l23$ zf1b|=QLt{qBtE%H!>uj%&Lv|&M6ftN;ZCjgT7hqf;XVFW-oJOZZX=80;Q#j{%+uy{ z64HWXNq+538P=rJ`}8k&lJ2bR^f_xCMeRjPki`x~>hj@jZCmr%rwTxkMT+tx?c`?G zFWuWBUWG!TP$&R}f=bKrisO+eP8_YtP2B@?tb%T)G#ov;?Yah{EsZu{lMQLQq^saR zOxXlhN}TJ7hnOe}=JQBVA!t8zlNm{su(QZuKVft{r%Hw>PtQ+<(cY^;cM4$u_3pw( zXG@SmG|8C$!Guu7F~|_44hULE(2>y{PFF}r`iIdw0@N@bAIcE>z7!xep$Z^|B>gEx zwWP$Aq%0@OhA<#S9#WX(z0i|0P3F0t%?37nYT^`5ethcFTdjGdFzdNi(eM}J6WGa4 z3?d*uE;QdT76*cBuIXziq!%Jl0S6-Pr=7D)UwOundPb}MLPLtgjE>>O1~Y`P1(wOBt~Arm=LqK2yZ#ZN z5y`c=;x>~DeaVgac1yvpTY?VVQg04vcOawjr-OR*Wdx8TIrqfsat5C>x$?yPY7L)j z9ecHa&jrMen6r^}Hxi5Pth5sj@J=+e3Gv=Qv-qB5^DImR*dTOZ@GYg`l|Mu`kqYk9 zr=z4JLl1oSxrx3kjDHZ>z&>GQvZmc|lw4tn?!MfF-Irf}asv_cVs)=?9sl44cm!u6 z;H&Ma@58)$Y(T;FP$lzn*IeeKd2#@m%)_%i7;<5(fDaBoxuFQD9&~JUqwnpgJ5k1a zp)_B*F;Eqt6M6ttNy;jv%~IP7g39_^7!;Ax_oxB5V)uslrYun$jXAI}$l{04rC?6I zf>fPSc``#b+dz|YT|0oy4SM=jZE0e~+{TLKxF|vR89*lY42xcPoO;5B@>*zaLOVRO7sB^Z-74BX>UL#0hLR5%6N>wf%)~} z*H3IXF=0_iKp1jv#`qhUUmt!UrwJz}EFy$?Wno@5U|w;UGlY3%VO}+0UU8U9d55ya zHdw472ttN}3)|fP9)Xlv^gdt8wdsLH*&`57EDg2>*RJgWk-%>PzlaW2w1D4*?U{uk z=mH{kduAaQrp_(Wk_HH2a3z<&3kJH*7Uqb!?S>Il^dJUtNys?&@Dnl#RQUmZNkr+0 zkC>o;6A`1(v_mRVoJp>)~V9LCA3lVvAuJE-EQH_O6AY51+XAqi+8BGX~QlVhH)CG`U#cd-Q znbs7t;LR#@v+8EWY_KvrJ915fK65jvO7A9@nLd6+GnxR6ts)6g-N6`wodHBt+Qdw2 z69_I8hXZVcl%@$dk<+XsQPEhM4!U(`o)P?D(UYXPyC&}{OYU7|;Vz+Wl({L;B^9X# z${gi1-;uWo_F4O#ciQ#4XmkBd$5LNwA4nqxoeAf;DMqs``auHFDBy6oShq015ePWB zlp(&`o?H=QZ^&2$gl@-8x}o;2U=pq0fn%5Q>Qt1L*`nv)lfY~5<4cJDL5fxq&Oq@>O4iP(rd zX@2dTi9!4oG+mAiWn&{;Y#GW5l@J&c*tpyU>V{MTT_rb*l>-t#s3hd3aAJON_@pCG zr^48Qwx`-rt$D!?wd+jBh6W1{-?B49uz)_w&;v$s)dzx(^b2>{7`i^J@{6L|_541{ zILI?jVUB~O&zLI}sZ4FI40E-WY{@5*aY7{Vp)n;*5^U25x^bIul0`>yXgM~x8kACC zpTQd?%ah^7`2{*?OTFV*CzBUz}4`d}x!wRF6u-R0NYE5vJlWF%n@a4pYY>%v}F6!#Jim ziqx>Lg5eH>L5~52fD~s&G;?efp4UV+;x!^3jJUuIiEzd=8cP*E{7GlWQBJ=~kM_?xT!Fo*n{P0;HsoohOHOYv z4pJcpEB~oEkx0YC+=%n*RCwHr$pdZ(js79ENN zLmLQfAcR99MZNyewg%1ppwudiA6&w-KQ*m%`wEw zZr|a`Q=qnh+$TaCsUT9X$uN=@Z-BirGiz-$NF_`(4sa7gGE$~iMMj}&VnShrC5m1X zlL&_3_l^0Eki^KUK_Jd85dA~7kwR`lG1VQTSf{v{;zV54`h&g~&B_v|=pP+VG_cDT z6fAtUq=l6y><4BrUnZNh*{d;3%_3*dWXyR_Z%l8Bc8zF@Deg!YJz{ln-w629>>PC<3Vu*CPN;|ChS@2;H(7rLq|wif zt-yF^D=?_^tZ!*g&@!KUPmNm zSjU#!*JCwM1;7oNKm8N(VILa!3;fWK#aw?5;d8X?RIq_=Yoy`a&~O2nA+$ysb}4OP z(&jA9+p@QTVUG@fmSD74!Ck@>b{u$Ugt>@hkya^afIPy<`R%TYq&YNqE1fZE_$I_WN zK)%X^)9SG)s;xL)LjAz9*KveXSrDQvpIaq*!npBAh>?Dy)hsqqtVcuusOmw#$U1=< zrnr_tLRAjoC$p)p*ISMe^jFSTof%neY7d;9uN?oYPUvDzPXp?76as=$bwChl@B^gL zzx$JUOQ8&H*gD!wkJ(alOE;5d9?+o#L^E%q`Bl?SF5g;P$%k$E9)n0^&AH;^{ECp^XEu5Njd_EOJ3{{VFb|xRWX_ zbu7RtDz{PZs;C>M*(2%-3|}Dy+U9gr*(rEk-q+E)@!Rblmsv2PDvt7Or4Dkc#~nl& z#`&m%bheb)PQs6dhh#zW;5Gik_dI;DfB~Ro`++=g7YAQ{d9Yv}<~K-q$L<7kJ~&LW6l%=oNeDj~_Ff~25}a{^-=+|}}( z!?xtZGWk-cK0Z2E^l>T6sFtD%Pu~0rr_9Z*VfVlj4iv(~C~8am@=HvNlUSM5nY&vU zGK8^7E=;YIV~A;om}tuGBx5>^N0T1uR4f5eR3vgI7z-knNN6eSI-RuRcuuROzw;-Y z6A(rYJLA2ZzwQ?f_a;R(&T90&x(EgMWDk4|p%jGE*3QBYdYM4 zFsT|i7NOYIU?~nX3yHqKw~xyC->Y*~#E90yD>$pHomLMY&LPy3*P$)z-Fd0T-GQH9 zsqw(??>xz~miP?mFJKH2gBbe(y>r6vcVVoIOvXs#t=5^6%zXch4u#T;N@+IHgQL`s zU~pINLNjyk<9ocIw^OA4EID~AW`()uV%3oi&~+D(Ovh*lUt0kp0vuhM0Q9{F#q{w+ z-$(YmYPOeyruSskt>;gfKHhv5jMqw44w-965jOPb?m%nOsqs1-;t!t41CD_k0&3k9 z{@^X0PI>hUY)O`=hl|)D@dh4AwRwCgg zc1PK`HUfY%YGEkp?-^?#%IigWh)5P7$-Es;Q!r5E;h{3O!ZR0t#G!g}q~O?qtoS3C zx2AoQ65cY?vvuy{Lf}rN{9QbgPI)8EX0G0-GgoDhL!k%%l_haENL5fWDmi+sr}`k` zG+z#0X}2Uo5txHWEd$eIsYHl>qAT=FJG+!&W&Q#gqAT#{JiDwPQxVbdC{wIK0<0^_ zt!baa_!7Zg0KAV>vF9BGus0F<0=`#ajAxE>{0#2#bD>e0BP#aza^;n_B8Tn*QJMov zrk-1g79)4#*xi`sd458l(9#o3^hUR(UqK5pa{-OuHWPQ^R;!$cH)Zke z4inPA?ijSZ1ELL+fXVTxj_e9Ihq6m-U2L!jyi(}%@xzV>s+uyaseqb_s-}W!vL0My zUo0eE3PZd#`3pmS5(>iemb<8fWL72|~d?e?OkE_WH zy9j` z)UM`39yD?C7d`MHm?{OkMHx9lklCE1^WxltAI$6bR;acUJpR%WJ@rwFIP$NQi2_F@ zO9A#+>iWb2KKQIRmx}vzUqLXOBNeQ|i-+%??UKlyi-DK~?!udjl}ECXbkuzX63AcA z&UENz_Mw5ApPK7>P06!dEA zh#^)hGd}T$qCgC{bqrsQPqi10SW!yGFr8!?S&m%Rj@t>t1v!J>gWoU~KGcL>g2B4p zqxq1gfPnLDye{&Cd5{MOVRjHF`9T1S!3ajC^`?K2m@Pj05Upv*k{By&GJei@nCC*m zS8V3bx6raJSKV44@7;MTC$+Peek8}MRxoHrqP0PhxhO1CE|ZNpwVFr{j2^g z6urQx8O0TOd&&rHJ+ zfLV_!cCJGiCvmmZZgYxD5NJ)Cau}gZp}bi=l+TQX5YkbeP?Ug(ngpd2ki~fkX-fU8Fo* zDc4!23Z%+RWto;?4m~kAxV%)@zW+{=6_6DzJfR4bOM`f(j@|G`nTPjs5F)zLJd9L^ z&)$_G{g9m2eNi9d^?r!wEmaH3g7U)A8*=`E#lb)LVlFVC=g16$4q&7+eQ&aqLCQn` zsjasv2J~}vpiy-^I*$%=hIf(&k<@QtgMI)YZ}c0a$JAO8KvJocVG-lj;wNpxX51ur zy1iAdTC+&0F%4R?)>Kr)bJ4h1{fEuEo5I`2X}a6QTHQMGfbz_JhqYNW_XbPac%IiX z=*a8F@W^$6S4E8_0F<_P)E;HW*bSNVAaFv*u~*y;yV~423+trU}y*f1A$5% zGiV)*5h=moJIl3mG-dV(6#U_mWsgNR>>?NGOldI&S^yorH=lw-;W4tVL1NlSDup6# z!wu@i5?N)b&chMR8GuQu%=J_31W&QaYIfPveB^RSc$BSehCUBV+Zu$Lne|E+Sk!*1 z4osKXWKcy9Y;;+9WwqX%=w@bGn88F<^M3g?+AZl&%MBy4j3lsX31{j)~5OSvD z@mCf~3HLw}U~nq^W(fP>yysk)aqYtu zI4v3de*H;=a!~JBi-=ehxCg_wQfvw?s=55d_tcHt6&v#;D{W7p*}JrUWkgzjsq!nQ zFHPh-Esn*lOzZ_0aV?olxJB2r=-_oh5*u`>1(()$M+=hH+IIOGBhlj{24fE}$iui$y0%Z)r*T&c6||LOuZ|YSpFDkAj7QEOvV=fuCR>jg z2UHoO!X-;IF$BVF;`M671unxy?zJFRfe$lCpzq2C8g+4(b#QR6aan0-`9b_7K8nxc zYw^AK0ll;ltm6{;cM#qEL3|58ogc(Ea?tr<^g;e4KT2y&_O)Carh{B*=UdSifwe1G(j;W{NgW*9*Qj$9JG>jr3=fOPr1oM7UNgzkqN=UfRaPmSw(_${u z(cuhs2Cw=fZ{6)eBpaOzTn)~7%p7B8T#6>Hz8~zF>%%h`Z8JNnn$}&rC@;{L;DK?+ zrFA=wvjHn2cP3&H(x7e7WmeLHvsZ%{cJ!`fL$M`9O;tps|G`n^4BG@M>_*$l@WDp+ zad$PsUR?=BG| zJms3{mgOM;$#r;?K;0T1wZ=x}gU?@ZF*tdq*=+ z<0A;o;A;d*@)+8kh!}BPk~wB{w8R~o+0nA(iAZL;B7h-m@wR37YkdTmuHy$d52b1X zqOqJ`{l2Ja8755n2!zbA(M(C&koY|Gl_)t53LOs22Fy?lX!B)&+h46mMj6+5Ivo+a znb2oNh_LZQATg}>UuNbLw_qaZp3BV6i$G8Ml$Zd$KN(Q+ph_NKGR|K!$aIw zB_?3c)dm_HuLyV4FMk22i zp-u-wysJ7L+J0&UgexV9U_=Ol+8tu0ur$*9eV4FaI-v;M6}((~_T-cXv{|HO{Dx*B zGhC9n0Iz^idA0V?OM}6;@OIH_;6Ji8;@*B{Hnhvpys&dKFCa6vlw8*Qb~3CF1_2R~;nGY9}!n8ANa3 zjZaleqZA;QN^|>uxe5HJf_V~08*^~m+EBbUwQMwWi8H)qqp8O*noJoI7~JY$O!wi; zdbND>Aehh5=rA=w{UC%?$2PSH=TNngu<5Zn%5^=cSIO=gvuG_z=AHGiTVs>vdr)&q~E+Mv`PHGrSf? z7i{#s!O3z;n#bwUas&WSK(D`KizaKhqlmQApC|B{Ug^(1e1_(8Fde&C7WIt8>dgqs z^G)nvyKOX_D7L@pe2HghY4-_!O0bmP(Z<11>`zsmi1w$V`N{rN+;fu|h$k6onMBB} zWdW9%a>i^jrIldo&Qf0;2SgfQ6=%b z4i|=AV@WWhl}0$%VN=tFJ*bocvL7EcdB4H!E^>_%ujj}OJ^EHhrwaCL#>mn z>ZF~L>#3HC^(o35;mj-9EFo|XHW9JFiCA(vv58m-W5$$o8z%Ci1U5_~oIx{u#11A! zmAeHVLI)jL*!-kwVK#zMxUj zaW4o2cy|oWyorzfoM%WB?Z4)^>J3mS~rj*bnW?lKtvn%$5l}*aBp)MQfvO!B( z+}@ISP@Bj>H!2+jCR+0*Z-(Q)1%LD1g~r=EGQN-kYkLHKT-_m_=_OrBk8_k+gCmwF z>4q@4;Pv-3%vJl`#ywU6Nt15eMFL{OB2Vu)&XA;QImGRRc+8-8ho@ebhc7NXAB~bj zI898T>>R!ZK76dCLLU@%Q9n3_5G0t(>8i4j!dH_sXgGYB6EJA@*v%wGVi^(0ndiF! z-#IT$#*{S_`|fY(>gC8SBu5V<-6b9<2HmbGjwEL3$e^>ll7sR3xbWAUbc5~^K@?YV zh($UbQ5<6toqvW{SyT)FjBp`4EXg>OSdW6G=R>mM3Cos@vhU$la`|qQPtwj}D)AMT zOe{KbF0y0fClNF53*a>HF%wZo#-r$}&kF^nP+$s0SjZ%I=hH_CK46blkblDYaAepV7Ty3S8coH@xQwK<$;(pE*n(NxKyx%7TAP68L znd;w}EGMV})%Tt;az+|}%$gmaAX`yn_P^5Hg##;?ykG`8E@1MHy2bJEvTr7Mv0#>@ zwUf^-oOT@-z#Me0tab6AmIu$yB9HQos7-i8o0;91m1d?Cv`4YQ8zV9>`@A}5h{o}l z9zgol>dP-FI`BrDOZ3fI=EYkpp4h;=dDrcZu*?R^T&_kQ#A%Q^@(uw(BxKrRIE1j2 zay2H%cQAL}0TdIy!{v&&gU;5wp?BD8z`1w&B=fFY>#(E}ZvlMbhX`CnrVS>*?G=~= zZfwL&)O3V@q&`H&KQe4%;?sZk)NofE>AMV(OpcOKRu@V$nORY^EWg(DrO$A>Yc7-) zAdf&wEk_G|Z2+mgmF(9+oqIlz*H--X#qE% zl5LthW1?p^PI2_E{1AV%d&;bo9`*~?lI8cE=Lss+4u5Vibf=wSLrZ4x@7AO4HWJC0GTKGtCwcqjmp@sIgmZn31{`ZO zzrJ=n@j+gfiK>x^Kt4S_ejwnf`w6Z&-vv>jT+h$Nhp{R{swB=9tG=m>bMbCrA}4ss z555BYDwWpHGNGRT-0kXqPbQzI%&SwNgKCtNo3VlUQid{L!x$T9e&jW}h*&zY@*=Rm zU+)-DlPwBOX?k_dyb>#RSPWZ!NNyJujjPD3TOb4T7MBqzQs$QGS}Od(m15{7<2Al+ zJYM>1;4k0o`i;1QorQ6>U0Nbm43CsCIsgbX(Xu_Yl$z0Dxi9jvN!tp=(k^ld^{k;0 zm~%}zS-!n4+Dm5usr7xd@%7K0Z;Eta)OFNI$K6)<`Qu=vq*VB;&$(AB%Ys{sqEA!g zx-4=iJNa0_U*$89H>S2vWj27&ah&b0Oo-a|a2IB`vfQ7EAVz6lTdao*)5CGSYfX<9 zqa`pY?ayYDr7>4?&imy!T6>J3m988Ei!3h-0AY(`ba|az;m;j%3P9ZWD-n-Z z{zj}hryN#$#dqTr=O1b%g2jQZ47;C#d zMCnk2f{wO!qZAGbhdQ7V{2+L4*-;*bTXI1i*F4wtliWC~u2s?WGGddDOS6v__q;Ym zz5;XCiIRDcEqh_6w^GRvzl=q|b4psUB-|X-ruocy*=?~>ah^>bv64-nW@1xC{W(b@ z6~qvES4I9M$Q8ugmNDk?Bt%_TQGbKSyA;OVS8?WU6U5zAaX+ft5BF<``&7l5E3FXs zL7F1fDp~v_KQvsXiH{IPe!wN1yncv~IM=yz5H8=L;}^$Noxf!Arrsg-W+`$d7) z))u5rNy+rt;MWTRrUbCc%$Xh*MHI&KUaqp-T~g(qA8KqO6QA2t{h}Oe6{L|@JoY!9UGWg`@ zpa1!%-ce`ldXt~058Fp{cnHn_|MaE9a@A{ibcs%0?`Z6fCAc$my+<^e!Zw+RsfU36 zG=LnA*Kz(-+m(xnx8A+*f%rs|cvWhv_^Xryaqi*WPVD33recjH-;{0Z)~wo8h4~8E zr=95{jRS&cWwrvDqpa6=O4p%EyA6Q9i&p+}VlBqmkO6f_dmGKa7)aTN-%B~;YS$a^ zcl7+YHH(?|{r&~Kq&Pe~y?{$#?+0SpKF6(F*?m#P{?*)}Oj4FS-{tm|oHzM-15qVE z-$7t)Q@+hU0PO(kO{7LGg6sY7EVzpOg6lPXecQehp4EncCpk}KZ^08qtIP`wTWi_2 zXv(~0UFJo*iq5Q+FP6`U!SyaDYJ`IH47XHMvR0DVC&I z8U>Zr%9!f%4-W(544CQ6*Ed0?!c4*Yv=I;>sU?N+99wh)Z_@AB8@2-QVJ}LwmdB)X zO@zTyM0n*O4Y+uCxhP5a7}Nb2)@Gl>ZzsP{Uz&5TV3#qnb`f0cj=rdEnK9d0W-ND? z8PCe|?}If;@Rrrcs%15@X<3cjvDJveOt-ts6TaN}FBSZPwes~2H*2FsPuaBKKSTAY zzU=vrC<(|;1s6Y!l=D+c`Ke4n%a(T({jnB3IH&l}Jf2nXbrt`Qkiq%B5&umTtk!By z$v^O9Ue9+tfmie`8ozxz`81W^PCnqDpYYE|{PP+Ae2ss;$3H*dpYOCy*te4m0|oxM z$3GGNxxqg({IkSAYy7joKXd%E!ap1QbBBL!@y|6tGk5d9*%jQs$ZuMgjwG6fFH`}` zOsb5s+qX0qt4TiHKBMdf?kz+&-7~Nq;@!~?LYStxaVPh+yZEwZUx}t{;I2AfDOK+F zIq;Es*ElVA9q|PwC_$kZ{5^))xDYjB+)93YTw*&#Cc6Xk0&Ay}U8d#Hi9#zWH^zBn zrr(k&b?cc2FiMwC?7-md70}XMKds>b%|avZ=9ZDL5#)QD_T!XP*j80w%2BW zC0-O~1cpo*5x89S8ikwBg10JcFg(8)zQ>#wgEO#f8Dh@<#c*IUu02ucjD2|Y?Bqme z9Kf61?{&WSXZ@4@=>Rh>%DYd4!TC|v9h{4^e&0M5CWiQxbqjP;buyi{iZk7)&fpxH z4`owhcW2r+R=(=s*D-(;VVN{ENnQLphB~T6|N020DuA+tkJN)Q3-|~8zTKr zp#|MR@9g9PUOqTGQr+I^`*&w2gHt@6Puy|hx%nvbBqrFkp-po!a&}u->_;-^ES|So_l$Zzc5FbtT zj;@Ke30PtzofBA6B%-p|2*H9NhE5PE)z`K$kN4MZMQW}*hww9Gi|0vb;LQ@Wggi&0w|+o<4u}c@+p7YMl+y_(njexxeL=u0{ZLZF!P0hosbmgm$E^}BK>1cE{ z#NrH{=VO=G#_H0i)q6qq+dz80yBBo?mrg1wPG5y>-!tek@JxQa9K~{aOrLPW3Yj=} z(XDUmyNS3f)e^~qW03=zQMgnbaO>jd>%(Jfby=@TM26i|6lfer^#pQYUO+m|e7Dq~l_b){tNY78KRZHGQSmUAfcIj$!~>v&L4PuF@D%lK|A zj(S_!U-0R;5WnPFunah>uahXqRqN$B_!f0lVOy1+IO|Z&)Tc00-I*03&U7!BQiJeN zA8VrR!!l0mXurxa5zK$p{d%+DcT%-L?Esw!rMN4Q!yjf}W^You9Nip?DqSF-N(Fzs zZOw7C$tCHvEW7g|QdxIdtKVAD2$_cqtDO?8-e`KhC zgoOYZn7?atAeb1ADDp5mhV<*ozxK}g?w)M^;9{UV;`JVeG-)0mK^IX{;jg**ty>uH zdFwC6O(L}$3+iiX{VvXu)hdYRKEAxTO77H0?STjd3uqZJsu>~t;3Vi(RVh!kR@H(4 zzH$Ztv{&ZW)w`QBn9u9kG*phG|B6EG*Of%lPH1BYAM7D?fUU=t2H4U7TiV1VvGt>1 z#w;R690+PFO%dwho7J`N_7M!09sPjPCQ1(_CGs5;QA?)D6v>3Yqv|b$rFHzalI8)o z1Q$<=KJOqlRr3PIcmQihJpNPlh-LC^czK+n;*28S@Rr(9GAHd=eJ8?{?8zE{AfM~{;e0H^@e_+cXh8Rdsid?Me zBNc@}&Ji=btNfjgB*J?FORR%1#sc`;%>M(#vFupoB8+k%*V=xx3_@M|5gA||JQGf2W(cO=# z>`&5zN|fZ7>oPzAMuN4sZX?0r|2YXmOWYTVACf3s@_3!W3na@L#mepiioZEKsbl^z z-$caOYPy|{N{3K+y3qwAP&{z^2H*)rU)~F$Vd0sIag-|iv5$t|=u|4KGt*Gc%{GeC zKl{q#IHl4$BbB{Tfi~1p^tBJdpG`6Wq3i@_ji$arncsade!xV6V6syAY>lo0gt8y| zAbixR1j1$}7`M@8z08ENANyeZRi_dRn_0skuX$mv`;!Is!TPDpLGV~1f*FOkOJFtg zyLXgeA^|a3QEt*x-XhVyxLoq^kIkg7M8uUlo)OfCOb?sP^wqj1iYEkWI)2I6LuCyR z@&l7M*DENQl3Tb0pW_LHvQ?rTH$=~tSQR5SmB$7m=HX(2 z?>r#bXGYGp<}@wh2eGAH(@Z{4N#CI_N03bL9r|(vHC9JcK&Le2o$oYb96^&h%fzE7 z7fr~JN}rA>R|vjSeiA;Ez(bB`PP~wz8O3rnP+~EVholN5(x;9^I64kLFowoHM$)$< zXgp)A`GPnap%6)*5KChYV(AlO+33L(7IXxS2uv_v4mYqX*k%VdC@?QD%-H#JWubQ7 z*9+g*dePLb0_b{_n~(F3;~$upqiLTk7Ek!fDtE}l&?CpvXhBhKN9wcp>+2|t)iu6z zpew|XtfIZjeh*jmj)#MJ732-uJWTV4{WIOrU-g)K;3oA4tZQqr#-bI=krPyuPJ1>x z0D|4y@W^8k?CRPpi1?}RA<|t!%(f*lrXlJFP-4%D94x^0+n(DN5dkJHf-LW5If|Ta zd7$%}JrmIm0@6+{G_{}eve^2LKeI3z0MSZTVZ@^?urdwkQ{N0rJ>2_}Df}tjoYI-- zMgLc!MPT^-FJoXhCPONpCt8ESF&#`nfk54BOwT{2FNn@d=OD-ofUM*VahdqSg7S z26av8H2zqU-3#~7VW4y5_&Y~h6Ck=~2ftpBY^y96HBxOXq#FipB%4S`#ckLCJGf@7RD3X3>r~COTg@OlfB|y%&hhMR-$Jjb zdu1_i7v@)#c;I}IIr`;G{Yu4Gq5vpLCNA!{iU-|HpTWWfXXU`ZM_pE0f>0aBDGUcc zvJZ%76Z174mtUA1xKvL`PFrNWqu}^9Il;$9RrE zjTDUM4WKcC@f=SY0T};Y%i7ad$l9hTjqCD{gzMg(ZI!dkh|3Phl)jLIP{^90Co=ld z@dbo%phobkJN-kXP>c9aQ)vS8P^?F*PSgi#uBwfl#4Vt~Cj9`=0y?U>IQSwngU1nA zz>LDQJik}=3*b@YUYI5s-pFFm%Q&ippa_C&YnzUN_%yyKOLhkZHKRQhPDbw=P6HJVRt}W|fc1eM@XYdt&27f7+v;>db z2Qzyrp?~%En7t-in{X+Pk}la*mkv@!uh(cyzC9{6y@$|A0%6x# z=p3|3-PeN}R>t3ED9o}HG(G@W=m&Vn&AI{Fae7Xt5GfwVeN`d8DnJ6mcbXrdzr_Op z@Kq&yvVU`Ay?gV{E#ey>LZq($l_hb6Co-?^Wj=>bO5?fu0y#0cGH*;@<%tdUpeLoo zn@qGpQgs~l*g+C2?Ec9Y*_8KQ3GQD>7`qM(GEV?J-yC=&wpmsA8`aqgyMcfRUenjR z{eYc5)SdqR%{qN|!I$ijvccm{MSPj1J%rYEw#03&cM6d`rL*Y* z8c0S8)1U=_QP&R)92}fRw3N!y;6NF55`+r5d6~&s^+wDCX%hXZV-=7Lz6D?Um`bkA z_HB|{g~T?PsU?gATjUTIA$i8BjC1Mu=2zN}EBb{9YNPh0?EFdhl9c#raOs(}YV=n& z!@&2d=<88Nf|toU~blqgN8pBqIqcxWiGQ8e5cMgAXfXq4WG zf4!FT+=SS^L4(ueyZ&#z>R?qry(iqh=Ud1<+qu!N)5qxhK-r7XH6!d*eJ(U=8!2sH zQO<)B$OnaTDly$0SB7I7Q!2(8w8Mf^*5r|jqG7Sa6F_5p3HTdEv*3ULJ5q)NfM1|^)3Z-;& zYCkZfDT)k6b1dMrLDHms6)0W8!diegx2wplaN2=HDZ1(6(UJ+22cZNEeADqusl@8>ktqsz<#r`&*I}s} ziQ2}PgO?e%V@WfE8A26}tUib8oB@KnH4W$t0gPJhslpU$6-Ww!Ho#z8sUF={xLkx+ ziju?|bo@ivQ8Pg}j1#u)yY(RpDwb4&i+{ z4SF+4wIiMh>V)lp49{{pY9eZONv)44d)c72nX{_+*I0#%4Vv%W$sNKI^`s;K)m__L zd3YzTC7-P+kJd4uYxbs@K~IxcYdU5T_cGX3J8Vu9Y6_TAVElVBS7YI;?UsfS*TIk> zYv?{c-jhIT(aBa}mLc1uVC)s9YF_GIq>RBnqG;ZMU+tBNtS6atd;$Runh8Ht3bSI3 z`lp(s+~ZU%H+1DYm=JHl@|#sVDP=^Lz&X?LQy5VGC#v`Fnw6j=XB9l%M$G&KbWgPK z_Te>ihS22ir~9;QkyG_%n3Y|OJ$nE9ES50hr2PQ>)#uN8xi$DLb|q=Xc;&GdCYJXm zX}O*FuBvVYfSFpH!{C_xvUODR)i;tY23G7F0Rr~dDTzsG@rNcOFT1G&ePC~G9>OB-ac*tS|W#%w%C^iun- z_9fiRa?i3fJ6P8atWxWyB*j~-kB>D~a)yU{D$JKKs~QtMRCn}!*v9bI1YV#5Yp2jT zej`ZFm>Y!i@^zV&?2lGpby^*Hk5*(nxsgk2k3L!9`!E|UXf$K|YN)z1fwAJNd9jW{ z6le#!>_Ir!J4~X~A)^iM4A1pCIE)pnBfm055q@R4tKIw4bzfkiXYCSqY!LTfW=?l; zpX6|)hKM3Dp~siuO$hQ?E9!uRX$X|D)cW9|ywNp0?bH@?F@7&mLi zNP!KdEiU*}sfuT){3p=g3;~>suxIZ~&-$&fzACftSZvK{frhk2H>0;HCOG=F4$T{e zsPw49(uUzWMEN=$s;7ywrL^y@dnja6H?k*)YA zG)7u%^;icrdn<6J_#>g3?L~F_CKizGs@;B*#Qk$7Y6T}RvMEFw*UMdKZQ|wj+63zj zY@Ep60K2GRRU(4gj;v|U{|E9HGMPBG`RFvO>>p!lThRWC4zkt6<6|+&rl#(wvSo0x z&FUu63oZr=9hHVKhP&Y^xK)@4qB+F}knC-~aa73&^rjSuuZm0?6!3CfB%1qUjw#M| z-%&2+z#iR2sG@nTDy>mMXn$R-U`t)5e621|L?oNS-F0=q<~-Y;7V{9SbB5p ztb;SEmky-87urPa8sfb>{XI{BUcN@*?3&sulo`d->x6g>q5bulqG8<>l?k$-Zn7Ic zjt1@s_2g!LFNKGB_rYmWXeO}mUhbQDQ|7PuZS6$g{r+~MFSOYT z-Lz#JI2f11H5Dd)zXc@P6o;!~g$slPH&BzFjj2I_LZH$|D$5S?We~$3bzt+EJx;SJ zDaz6sba2l>UqK?qw1U3X{!LN_9kcF2H?ePE?E3Efk0f-OrmZ#kj3+w~vq!2b)yr6VLD*YJ z{3)G#1|}{kBQng6QRbuc^LZGUgojzf-fyzrFA(sFUwSif3$<*S8Og#(C0C8LF{rP+ z&YE=ix{3PAil>5!r-&{@rJ~eZ{58&%rFV_M!^ZV!J;8R_b^Kf{f+EUUbPCZ88xFN^ zWx`uIuhu2Ax0ZSr|9_=3qUQUY%4n3sZ2weQ5)R#iwQP%w5SWA2N$J&xaBcj)BI5+PnQAqQNIVvM&;ak5L-`E}`UW#2?j4V(iV-rey zAwC9Zr^UxIWI$`g5m%B@Qj%EDXLj%68mP5@6`bi)_acoPtrC`Ijz&YIJwKg6I0)%u z_*psAa{qhjUG^K&C)HN+OQF!P?yJD;^;k>P;6Q^aS&K}N_?Gw=d|@J%OiUTeyIYlD zpF6&dehCe1877h$0Swr?aITV90o5g*0;$(}uL7w{JOy$V#CJjVDww9o9-wwUA$Wm- zhh3<9p5W>bHyF{MnLi>puCDl8oYAwS)=BeQ)2`^vla(NpIGRv}hcXgDlA)%V5 z2i|ndb&+cC{Z;_U#NCsfuKIf-G+QM5v+87<6P2|6Id!thY4%9>XT@~NyXJ0@nnm{R zk`h8m@q)5CU%hbM4bEPY`|xfFmtp%)_+N6#y?qn;nGQvH*@DCVyY4UFl78-b{F8gs z?HSnxc`ejh3>S#>Gz{J$rF(kj@~|&>lhd>B5YhxFd$NCl8+r5w@xPL0gaJUt;MA(<-Y%nA?S%>#3 z!oFriJ~H&>gnTJ6D7&UXbG$r*`QRN44E-A9-Wb{<@_lgs-z~#^D>xIrl$0hjG1IdHhw;!X zNz!>3g9v`Alrh%wPi^ssw!~pWoFOuN1iiE^CNs5VC;#t^JdO94Vo$jdz;B732!Npg z@;>fFfm$e}5uwjXCm1$cD{g`E^QW>2Lx8qMgH{ruP(z&S=J!w+NV%Zv>NzPA2p*JmQIxXoZu`6X(>2{rzDA9nAzxOl-GoyLZeVo zvv^ zvhXI1!hF-t8amx@K%B&STvse=6R~X!%{K;0w0JwPduaORc$?wm;7@lJtera0($8C) zX}M?^T%*(>EN+TCM-*tdi46RfrVVT`6EdT&9DOFdS?ze6r&j$c)I)~XuA|E8b*LMK z@aybVWf(^MHJVmj$iBj#Jn#lmwNt8Cqxek4_ypry)UE5%b-ytekuY}5M_0dbkDCu~ z)uZbK8qLH%!v>R(ji_#Xqz6Ut-d<#?(%=B$ZgHmbl0S&!~hTHx@vx_GN(DC zzMe2#K{Pf*K@=sQy2+hNqhS4}HL#{~b0ut>3Esv@s#xoP&&rcE77C)@qf)^ws7egd zBoFdX_W)4hExCRbtdZyMLiGu^67V}H@}$oH7~?!gr3_YI`^5`WG+r-d_El*~^=8Dd za!7m%=lK#pmP&6Vpk|j~3?~X^c3#zsgl=~o%;zLO_U)rEjhd>Q^o9Q4v?(Y4O^P<~ z6%P&SLSAe>lAzBcacyJ`(=^?;soZ&Cub`Xs*6RY@|O*PVQmOZ-=L%S z(^PZ4-f#S)2-}7z(Lo~q9~Vao{@WsPJuyUGE;a~k|_*7$!FSspGnZ#7sWwZIWd$1?Dxr-AxlHHps-*C3uPlk}}H zt1u!Q2{RbQYpYS^$qK(5i0NWBrwn0c8#MVSy^NqNuWc%ggCM?*_K(NYvxYA422AkW zw1`<>qwl;uhJ?lQip}pKt$r)TW`F;f(63i)u(&bK#MfrtdR0=aq3>rwrUS4Lr@;P2 zNjqU*qo#wKqV>mcx?{)smXS+NWMhO1^Q<>YXE~}%_f{44U)ASZP5Yb zq$HN3@o=W4;3|zrj6TGXW7MMMk@Lj5iJOP$P1JQ_0u4M%Njc~Z&cqN@@RNRt&q-4* zbD01BmdC($1fiq@teyX_h5pa^_baL+ZdeAxo4wWxXDvNAcymPP_>!(;nA1obz^R=A zbQVd$#<3Yi8wJ4zNiI^behyi|0a2yF1$uOZLH4Hl4xL&jFxr6NO|9+?wo|ysX?7VW zI77y8+Friv>;K*WH(q<=-0INr4KC{d7lkn@aYU*j$G&gF^7qC`G6ndZko}W z^n3g2?04)dLg{~xWTyI`W8UAc-aXUfGn3nIgw7vj3L<>|7?aR0ZKf51#u6i&1(EvQ zaI0zuIRPdIf20YCBlf?2R1+G1j6p`ym@I|$fyZx;8%N?3W?NA+OhmY2nCK<6D_u_Mm7wN`S_is#8yzf%R>EDcJI8# z7QYFE!HqV$idB|%p^5*--XcTz`Ax*O>LKr2R6lr4^;wV?X@Jo$81CJ{oAy2Wf5gw< zzve|SSKaw@4L|9>rKDShQ3N9%8a>aPavbuDxlR@Mz2-^UOyX7ZEhQfR8*MD{I(~04 zRQGB^4Dlj)k+ms`6P?o;{ua<(D=v z(@vYq;H}DkAVAP)7X9~6F}c?ITd-0UgfRQ4f=JC-#DAp8XBD%E5BR!*HfG!d@-Hfz zrQteH(lUc#7Rt~b9Wp#Jz@iK+Ql&mumEoH^z-AT=5Ihxqii&yv=f}VQ4a7smvFjks z6vkjm`7&d;*ic*rCaS>vSCams(h5+OX;x+W2Z*6}-$cP`t>(JN+ww1&_qo#1@M4mK zOIsIz&mks4KLfv)`g!-4j}QF%o-cGVegZ=`RjMzBr$4*U+2)?n<7`4 zSGp5?QYgq=C}hN&;3nF9G;h0Q7T9=iit9k7w-G*w`1trlE_IJe9=0Hex@8f38+@mx z?8zFkmqJD+Z3jUK`%7=z7{JUoX+{ga<2J6;c}DQ-$t?#)}F!}anv3)mmxiR z^{^f7>r44inogmqOc1S?0Zw}vjEz|s88va8FX5w{YFb`*aQD53jcygme{CxJB9ys( z7Op!Og;%ma3cFpyp|Q*-;dJEm^!t+ITstA30UL^e=Q}+c?bhN&+Ua;ch>2!20L7=W zjPu+P1V^ct_lh`MhKt-qXeAft+otzSD45%c!?T$v3=l_EdnQv6ViPW@QKJy>Q7$$_ zgd&I8Gc{g#F{TfW z`I^cfus{0gPcF zL99p!E8wE;pyDr$Q2u&^^2f*c@zKqt)58$xX~^dt*~B*A3XVz(Qy9GRidt9#E2{FE zM&)uxhe0Ol&4MU$%l;PqvT=+;*ho=#sM^L1`AeAr@oRDdAGM5Bx;?1^Ej}!HoN(ZS zyJC6;!&a5U7G`rzpoyA}RHws+I2TtbFnyUbouX7J(NS0Fc!HzA3_1l8NOfT7<+2=m zdPo*G&=MGvLa_wJ63VJ$S!Wv0xFW8_1X4eyyaF=B7Eh7b5A-D)hyvPKTn3{8S_Qok zPl_ozFNPoQA(O@ECRM>NTdEUZT7n`O6d`!Jq}Je(0i z&$pu&&DR>02xY2Cbv2VA!N%D*C6L|0ks>lmDV1?fTveD-g_H~H#R_3=-D#ACud6$m zZbwFfIycBiPH^K?m3rgmyh_YYc`$P8@5!am>$|H;mhC7{)JtwXJ(7)sVqhZl+B#EN zrbo~Ng}|++1s zenNMoEV&l8rR#+oWgA87CI2Hzf*cchh)R};JV+(~k`%DG(WyL0 zWmz(XDLqfj1t>_OPbx*ZA&jF9!}yEgS+d?h5Pu+a9cF*lZZjor+wg@smwzH9Ct zW6~K&DZ_DWM8@#sJ$m{@kM5qIN>#n#g77b)(6H}4v}6{w%u1$Rtoi)%a?pQNU0v?+ z{Os)H95Tj56q&amQ4?$jhIu>?`QS5@aKooUFNgipD&p$u{1Lnfi}RB&)g$D@47w7Q zV=#Oi4o?N<{qp<-bFu6!+q=i%X^V=CrFE8IwU!&8t}Y)rPkTd7B$6?6gy!tg{;F&b|# zDt9&%&_{xe@+N7@k~$9+Rjg7z%3ofZswP3OBlgW32&lZnpOJR?4+FkZ2@nXfZO0ourIs9NcRP-l9{C^<^8TBtLf8p5S`WJdGJo|!4^-E4C8od(dN zDqtUoOzK8bJzFSL%Jr7zgL??G=wV(7fBoR86&wEG%seB}d?GF6EBB{ocim=i$1FD` z9uPgweVokg94>UGb&|=xU^J3cmfBK6=K2__dYDPS#x28%LO`9)ROB5wJb!n3a&~%l ze&hm6ewlhAML}LJ&fChIK#BJkC+|+q-@T&L>B;+d{nPWa!C=roeMPym^Wpo`_wUb6 zPKSe&!SEF&FNXcIi?jEq{gaFL!wdL*McMxSyMFDzy@jhamtAjtuuqj70P({(*YEwT zl2n-o`v(03WYNswuV2^^ff6!`l9@Z`^M#VZYtSF%S8_1Yih+*0lBu^-`(ML56;svo zL}l?;`N1O04l9Q;l+r63KqDz1hqVv>{u#U{OYJ{HLaqi;GUyAH_?He{3%wy{J4*d(G0b zmzAb@uUUNg(&B$McYK@W*DppsyjSy+VYB?=#l+hKVE!ru&QF`=SFb~W0PHA<8(=IW zjvpWOn;ADcpr3j%{Vs8VY=OuDeE%88mK;*-$xxnYPGaO2cXYQ~?K|F*H>mfu)oS7O zRGpOPh14_R>`8!>i9_6rA#u|VL>wh0R4T4yI?-{Y14x|il`!kt+;?{}JW5w*@h&ef zUY2ce`m%h(L75N7jvjsRA8*vY-bQdj?GEjc-W0g@sI^SJpkm$O2($qyOVZ#@tfvon zE_1z4mwN!ZQrYb?p$iL3TqDrtJ+|WiTf)dYA@2Oj@bYvV1Er2aKR#lj4bX9j? zIeJgewX}dYzf z#XCoodGZ~W#q(TKrJg{3ZH;ED_(k>n0CqmAWqeTAK2zmnTFoc<$Wvx-W~WGrK&{q~ zzg4v#pRSh};jQZ>!29YYIr+x5YOwq2Bw6~_l^VGFYNZ+Vt*a%#dpYVitN7zHHPg)d z))f=ry)FLDD*o77GwON%?s?J$tR3}kwv?n38?ykCNqmaCf{9_|(HrKrkQR6z<$411 zMmgIr9@8VrSJ2fV<$!kVu8_ft?rN<~ba0Wb%>xgdj`BuKgV@^rvY&$6mhIa5+VS%8 z2t`mk+?JBXd{bO@23@R^*uT_FYEFI>plzk63^0wD zy>Q>{h5Kc9z(Kb+OY1a?D1jc&k8T+T24CVVYUXc*&acC!IV0y4ugDIN^{U#%(e`l( zX{ElquWR_o*D7I-n@aFOdrAlh1`nn^LejosE*^Er3$Ic7H!6r_F1~~e9{xvtwM(8h zG0-0mkGgqx;17>-D#~<@{Y6VXw5*Y9o>WSjNcbKZiLzmP-59$AS9zk=JF3Yndq#}n zhcYi6hm`->aY(Ak3;CW3?1f7_%vEPTN72sDOX$-$jZk{GsGU(JDV^*67<_8q@Tl^S zG)%s$qIA`?3rh*zbQJ21S2P+=McCYUNonNsW`vv?p+%|kpsp{<>~R*24os+auu;-W>fC=H_Li!Pf*iG`ml7&QwLmp)r^)+|Z$*Yic!J2ZNE z*+sJ~%_q+no$plp^0F&P;Nwm2;q5E8pT%^9s~XD0%YfO;9Gs1+0Dk;;A%5HeX=(Ig zh?to}v{4+#e-q+I4w4Ck7Xc(~eMg)y1phs79~nG0slA?KSYZUl=B8iIFj$&^(G2q| zJA#V4sxj$54UZ8Ql57!x;ce@-WNqf{={WV<;xiR3#`wqIe?e$$e&FIN8m3jJ8a^1M z>67e>7n`QBCf!RrId7!m2PvX|HDrRc ztpIz2=QBeloq1J6`SZCkm(D&9@1D;MnRI4zgZBCSCZ9nk$iIIXMkb>!RKy`Gv8MoL zav}3trR!%iVHbpPyetWyW$FJ4^W|RplsP`CwVUJU(NyKp4GGj*J9d!jQr`&b zGU_dqY{YzR^aFF^vVSK7`@KP8PKGSygi=QJE>P6Mwg&}oeOjSQAMea?NMuwOe zk03NtHkKe;5u#Q6ol0}rM*M?N-*cYfR2PnOzjn_PGLG#mgSPL;rJkRc_paXU&UtK_ z^B#8g5Hpqk6s}ZK>GE5K#w*IY^|tBUC;uZjWG z`}&|y=M2GWZHX6;cSKoSnlN z=|-YgY`fzyUdcIKHb?xwx80InP93ae7vxzugbIAR~LCPYk^gGdr#+JsZ8`pw!cBC`~0 zv5=*vhZi9a*4%ouxd)}fEtX!lmFC?#<^ex0AwbD^yLHXh z%3PDjG#SY;TJ&Od5B1J|X}KPQ1JsC%-P?M|hC9($1FzaK8o-Vb%fQTyCTVvtm1P>9 ztFO$l3)X08?}@>oEc@#5aRUbbZUGZ-#4oZJ{9akvUAL%~|SFNH%iWd@?c@X221n;3_p1 zpg}jiI`8)l>lPA%oq>p?(!VoV8dw&dSjyhn5k}x>b%#f@;}cJ;O(f~dv!msaTXdJ+ zap4`gQMWiA!iF|%W)D2EFwnrshnos^u%Nop(ek+HtUXW6E93Z}mZt+yBaiZpOmi1v z4$akqWTo#03RM2?WT1r|QY;n96B*3b!BnigE4Y4TVgnG0mv=w{%D54Cp4fCc;tmW| zu)qcjT=qvEL~3w4_D+L=Sje`;>-`v+V&qr@1}MIJ2VgLC2i17u?$TaQyX)Ys!b^Dv zp+Mes2V8PC?hNRQj`&Av@c2iDJC?qrvs@}9aek%71HaGL&4!JJ{XSzOs0Gc+4_QPE zT$O0g0+oz}JA8Zg3`+38v3`qm)fdcy)qI@0G2Y7mxKz;sw+OMo*35j2=gUUrL;}sa z4_mu6BEfR~{L}=NQdI$b#`Q;);nm;6!;}S0at77jsSKr&3FiUeOkiiA8P*lRDigYD zaQlz72(L3>y`>0MtA_RkY0!i;{%E%rQW5Iumimi{;x*ExvAF{%(|oT@r4&-5I#Up# zh(&_!3S@s2R5q!Bxk8#sWcS{u$4B#v?&w5lB9}JOIOP{`8!OaeAT|giHh+&5o*C%7 z&UC$NgkD#Eh=Lh%vIcN3V_Ye~Cu-}cT_<)b(%1TV56~pnugI43GM5hflA)rO~Gn$UZulE#3y)0K$COe|>)S;)v@ zB4%tF#BoWU2P{hSbKh~J}DPJh_OZ9n=UVMbnmZYEn1D+Xm zRpLf&3R@eVn8EJ=eg{G^M6!w=)+5?~r~pFB5$n>&lV3nCLDl#+qejdTtWtln#LY%e ztl?+lP5END;QOj&v+&OGl^m$kG27lz#{+fZb(~)uUnib45<$C#KPG)-ai2wn_Ld2& zmo-AZ){@6pJair0+@$I*M9*_IdPbbU@9)2va}a_;R;wJFfTaX zh#vyQ{1C_t7j&f>#yDP#`#}9QI2Yy(3m@-yqZ6^*KN}21oXpinkRCp0kU(^NKN5a} zdD~tzACZuE1e56uzLQA7T6m>g2k;1@1N?T#Yl5>*)jCKOm;sg^9-ITsQJJ#?fhIze zE_1TsKu1w-;5GAq0A^14Rkk*v0r%P(@nLM@$um$QJAVO&?!{m=?~N*HG>P%T_{I&z zT&zS529ZtZDQP1Vb9x+WGv&+&}nYeqb|Yz$*~MSDE9|DTrVg zb(3;7Ww^C9>2=7q5R>;HZI+{-FpKH_E6xqPuC><`LE9S*D#Q)d+3Il?dvwX567;o8v?j(oMUWcN~idzB+@B{+`K)g`P8T0+?>O zlAzCF5o0^4WNv6_=_&)L5UwIX5%8dGzn&Zcv?uz;8_d(t2Hi}<8q{FK1ViB_ad+?> zls-Vn8hCUE1Z38uR?;@^%r^>R6JVoz%<`_{xaJ~{7$gH}i|eoHC@HHlEMg|yK{W$U zCTvD*>BS=#kEr5q>UrY%oEyj)dfpVY*WfnuvsQ-0*lDk(6Ts38@4Q!Rw)Z#_mG8DO zFDlOoVvo+`Z3RiBy(1W%!nLvOachg&C{TLP_D6Bm9WisuFo~xl+IifY-Vg!~WY zn)-&>Yy>Sg zS2$ne21_h*wg=C49vPJ5p{HGpX}@Cj%r*HGyD481Jhd~&_4#La`}W(vAn|Ksr)nK0 zK@4wury~rm#hNz;w;#ni*>^OI&?fy-nd5ORLk-?k@L*Rktdh0s2}ZF#grIh%e&N-( z)P-l>>wQ-tD4$3r@6J&U8?;1P){|}yZN@&-T$Q>YKBq#V+sDhk=V?D{qr_Dr)ax`E zqO3w}Us=7CEi@=CCb0x_?#@62GKRmX?%}T6CG4^yA~7P8AtEqBGZ}j#proLl6nIcr zN;C+q=1mj&W@p#nPCl}b$R4NAT zOJw;b!WB_a>R~%)lkx;lFM8U^tSnQtCcB&WROi*s?K74c)n8PP$0=+=C7=F}a6VVD zR6b~GVeeW`v~yRV)!eu|i-+KNk;4IGA#6N`*bw8XW{+b*MP{HBB&%=Z4Be_=jz$#B zi=LoTI@uCOCY~q&yIfGcOptS`#<~Q~>XkplvGaeOIGxyn1;GwNt>dg&oHa@S(?Y*|h9Mo6#45k_ow$(l zxrepU^Z3YvY%oG8<&hvPVYw;0Tzu`u9$cr1B_bA!6jiOQS+Pdt6ra${pI9f2%tyMb zfX5^*fiP#zxJIA1?RAZg1wHW*{$f7zF7G-kW3BFZFylWyvV^&DevVYsiKRL+a}Acb z1|da5)AzGWt=~ZFW2kiO;AKJc?K@7{gT!;LGa*;;PG{3`rjBrsW?>LHdjI|tg4`+f zqq+sRK}@vK?Qv~%f)sL6bqhkw(TM)k3Itc<-WTZ&7=_mlNj! zFyA^_F`gS5LsDNSO(1FNfM}@bbF+s&0P}!RKQ=C~iHF8w6JCaSQi@xD)rgj*6g_H?17S z4w41?)+}^g_I)ayubdA0>F<@E`ymmgy)~XZy2t-?9-TiO-wMZJkzZlN&p&^~<9`0x zf!ME{ue=U`+#Ou0Ag9OWZpm%EPaI%AL9cyy{;DnY#u(c}@}`lD>wHJ(A4oM%0W>y< zO|>utI@(@jZ|~=xW_7;nOPd6hGD?TRA}iStwhS^b=L)=UT_p@a+#DL)Q`$9wsnP_@ zf1YpCoyv`HygRGJ=n!;;hEmWeKhHaVItJ0b135;B$URAgK2J^T!dYY@LQaU}GjB~m zOK^^`8YODYTM=RIaVDc)2ETlG{8i!OHpd_JPi>U=&1}td4NR-sJZB3ePkif!8YwrB z*qJf*mM1cZuw#a%ji{&5_Fyv~;Nqq0G0t>0T4?X5K95Pe0{~P_J3r%W(;aBEl5s|E zrZKuUjv03yfXpH{+$JYE8yKxF~Podn&_Uw8ledP*Pt?tAdD?*N=J&_1As4Frki?hqg_90TFtY~ldw zSm1>cgvGg9{&<)h@-|_UKq)0k(9v^P#tu&EtNy--Wo{ppaa*nH!%j!21_z*rbBxbB zilJNd`-7XGCqK`Bo{v{XMAGtquw~xhV=(p_r#LgY+D$r4w2rSj0Q$fINrU}tds#pf z#oL*RX1cL8 z+da>wU+HblcGLC>3`_sS(m%jAEcPa5-FRR$fhl&(_ncOkkIJ;IF|px?wMu^4UkPeG zEmeHnDdCny^b}Q=d3@wX@+Of1`pj^p$W}sq-O{m-kGs5pk<@!Ej=GA+QNQpwrf{@j zfh}shxU_#Ru8RG@isj()dhGOZTu=dYz3JD2tn7ER)u#6%us_hB3P8lU?EgrLG{fr~ zHvD}U7rEjwANAW}7&Eow&@X4}iOzu_T~GXFVjv`OzI45*P?Z0`Vc2|&B4AWL8hE9GRL=R zwt{d1*iXHYNuHOCV8qj@2g5e=(&n z!;Xub*c(Bv6iCi;jp-a#CqN#bB9tv80^F>ih8d%DV>Md#uwDY=rjE6;E_I3B-DK7< z-JU)0M!HFH!Z4K*@TeHTY&aYaMx{BSj`~IXh+8mN%}sF|C3V|#jpi>XOn;FI&E$K3 z`}s_6pa1b!5KVaSEOT6Wu3>n66J$7S4}U~^Qz(g)G*f~L`pJ#nGs0itgfP8> zP{;u^t({=lg!2&=Z9W;JB#lhl_K-DvRHr`h^?^RJ&m3W_r?fie6GBvGiqe5X1v+XOKL&Z&^X&`^i)N$offAbh67shY$0 zK!0yk6eXV^c!I&LpnW{~U^Q9aLCB6UvyktY0*a3dXSjK((lE~uclw6GT5eYFnnoTfl(BsK zgPCSFwkbndImL(T23|fvZ}?NG^e?lZ+W#EPZ-1eGr^9?W6A}Cg8bOqSloNd(asI@a zN$)=uZVIF2gW-rMyg9zpaXG~G{)MgD%}sU^t%VjQX@A-8f{jYsN=BG~<*>DF$Y66X z#GV={!#lATFebm(MEO;o5HuKIKkniIp`|6x9EqEXwC)5iHJ)xm z_WaKz)O)N`8G2j0-Hz01HmGiiha}t0Qa1SAYcDN@A~DUb3`Xdt2AN@yV>;wnx^8j3 zzFElJev`3_><(-Ujy4(EfO&XbCZa)6Ol_y>KuUa@GMvjg75yP5Aa#}JpO{RDRWsWu zBq4iMaO z!w`Eikmrs0G1$(FNw}-hM`N{W1(2Y_e^8188RPmw8|nyiOGbnp>85Z=U4b3)5p>oD z2Fa#Wj6*#n^aDTIo~BD(*|1CvH3wvJ0$w410Yk>v5oGV|d>6*n?Tn6$Hn&OaK*em0 zg+{17V#A&gPqBSo?%HP<~u zNtW$y3PX419T&!qYGUK=I}yZnA(wy{GG}kIb`NVN`W{%kPwj+gp7>gZZ5Dy4C!$(f zE@ri`5=#^2W8B4ivsPwI%4uy%dkkfa*=sl$_~w=1iIKua@GiN<@B*ZzT*4nT*;>kl zh~1?(GA2zL#L(YUGIp_8E$@lWyOaUI5G_S8)!cu>qLh-Az|dN0i;PL7#!I;b#Qe2% z(Dh5`bk^opy=>eeY2F!G*KUg}xBQMtLtUWts1weeP}`6pYtM1|#&7ub#2oErnt~h@ z*$b_;y#F<78r^cYItQv!#ybL6T~7P&&$(^fuKq&W%4Evb6&5yXr-^CTU}_cA3Q=sE zj&mlp0z>U+>M#S7Y}#eg%v1(xRMa$bS4lFd*LBlmqXGFRl!~pU6b@ahPpChUN@H^+ zZt8IbipvU1`Il)?jZ7d?M@pK95%YRGhbEFcOGo@Ej(nLLj46^{S3o-LL__2`uc?f^ zpjhq=-dK&7KD4!_MLK%hI%u@VZj_9~8~an}aTc#fw)4!c%(od1^r_SV`kjF#IdjeDJP^F4PR@?q@^MHl?T$jaNNnynSMAs@o#CW1N)t6D25wjcL;mH{e~8AypDK6Oi_l!aOu;JN%jHRaqr@ zfO0cwA}T)_SX$0ZeM=d+yaq_p6Zm9_h1x4w>q@xjT4EWBswyHVa_x!0gQ*6wR{4P*8doi<(X>CeajKh>4~7+;l^#BSSi6 zu726MBWJjhTW(uO5|x8Vq~-bFsCnEg(=m(#6TG%2%Ui!ZjHC=0X31tlm{RjE(DzP% z{4m#3LX|JSgvbnpTov_D)Pio_G=a!Hv5OGIA+yM|V|7iKz`;dB79(ecER&kS7@ zI^FdR#ILJ8Fc@C{%98l{QySo*Lu0}yzxAu3)kfO?+)eze0ra1_j9H4+@Bhm{munQn z?G^jO!9eUFi_t>?tpUaCT#M<~UDnpqK&dX}b+u?$6QUxhDDIvzL+lv;SQ{?31(oX` z6Ojg=NJOCuVbjKw>ZPm!oZ4r;YTG#49TkM{-l;Dhsx|SKluf6$2 zy;Wc9kTQdsh4M!Kqh(2RLhA;T)y|{)_QLm=^5g!e8S-dWV?pUYGKLEj)$$r7IXOQO zbHVjOK1c6uVbb45mLt_7}Acox2H(K%>>qAbm24CbNvX=h`b7JkLv z9Or~A&(U1!(Dt~QQYjN(`RqQW%KC&80=v8E8{8d;dL~b>(u_n@nE3*Chk~-~7Ui^~ zvfTAI^gLy1DILbV+NKBZQ$abJ<%*{Zo(as-S~A-$`H>erM>@3^rLJK`xl?lYLhwAh z2H{qea}J*w4j(lQ%e#2q+C>9_Nu0hK$1-oNhM_R2JiA7?74(TPi9C1Nfc6SbMU{g)4cRZ77J}c~ z-(C0B1=r#YwwS0d8w;OkuP`sW_L*&^aeZYL><4&8{LsG5#Tqbq2)w?kA0ejF7g)ZSITX3R^8r@I&ZnYIVeqZSGJAWXm^E-bi z?D?I4vK1?h5`haWxB?RlJt--&NlQ%93V}^n+k`pY=N#-@+ojz~ew9+hEC{Ak2@9T0 zMbnsmwC^fy$+{^n0XF86V5OepzDf*{pi>hTHi-8dH*kvl_?V(%y`>_VC~B52iH8pU z#7tHT|I1nB+0QKL#abql<&c7@(i~K5w|G#NVGO(AU7pJf z&c!?H=_n22d9s3$%4~7ZE4_VzJ5$diIa&aUu)PrDu26Xo&7C+YJUkHM$%V5@=0$`b zwjs_`IIcF?^ISB&@f=SqrkWGyzYb}!!rj0XqL7JrGH=BMtJMuVkOwvjun64D14Ksd zf(UvrKB&I^gM~$MrS9CbPmg13LTt^0)8W0m*>`UQ64(36_w|q01OpN;&W62{!Re6dK6^vgudy3G=kayI_&@f1 zsG|2@%Ov^fqofaXX3E{b64NxCtLhtKBJdsp8DNo-^_|jj#!hGA=(W1jNnM@K6OOUx zgD5xXnQz$14$-{wc#ZdRgp;ZCE}SWo#ReeHe|`TEQ%OD1sWt$qgC6`3({V7V%vN9n zkPg?!z7N(Ke43d=_<)2DKYaYFfAa3^0@JipLzAjM;l%#z9O8|WLz7^>DFx>V4X`xY z|FXK0$L>E5b#*Hs4s0=UDB?iFRxxQA}_f}-v3x#+?zH|{ec*>MfKF|S))9;-OfkDhr zH{uJ-nLT%S3b4q06H2@1UeDN3!Z%)v6y<+U?u)cHK<#S)oj#@R5Gg%RW?C`m0lTJ~ zk1EnzGhYKrPH&~zHo?o-Xx1(=Y4j@n$N|ldg@|C*H%7y~Fjr{+<)^MUI&>517BbR) z@NuS^C$aKI2#yY53Zo#6(q8C>y})y4-nP2a5Mad_-dPG`pwUMA`agtgf>F=(cJ<|Y Zlu3Imw`Y>*?gW&<{~swOLqSX@2LKnnGqC^w diff --git a/public/assets/js/newnote.js b/public/assets/js/newnote.js index fdd07b21..bfbbdfae 100644 --- a/public/assets/js/newnote.js +++ b/public/assets/js/newnote.js @@ -1,24 +1,3265 @@ -!function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=20)}([function(t,e){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";function n(t){var e=/POINT\((.*)\)/.exec(t),r=e[1].split(" ")[0],n=e[1].split(" ")[1];return{latitude:n,longitude:r}}e.a=n},function(t,e,r){"use strict";function n(t){return Array.isArray(t)?t:Array.from(t)}function i(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t.dataset.latitude,o=t.dataset.longitude,l=t.dataset.id,c=window["geojson"+l];if(null==c&&(c={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[o,i]},properties:{title:"Current Location",icon:"circle-stroked",uri:"current-location"}}]}),null!=n){var p=!0,f=!1,d=void 0;try{for(var m,y=n[Symbol.iterator]();!(p=(m=y.next()).done);p=!0){var v=m.value,g=r.i(s.a)(v.location).longitude,_=r.i(s.a)(v.location).latitude;c.features.push({type:"Feature",geometry:{type:"Point",coordinates:[g,_]},properties:{title:v.name,icon:"circle",uri:v.slug}})}}catch(t){f=!0,d=t}finally{try{!p&&y.return&&y.return()}finally{if(f)throw d}}}if(null!=e){e.coords.longitude,e.coords.latitude}var map=new a.a.Map({container:t,style:"mapbox://styles/mapbox/streets-v9",center:[o,i],zoom:15});if(null==e&&map.scrollZoom.disable(),map.addControl(new a.a.NavigationControl),t.appendChild(h(map)),map.on("load",function(){map.addSource("points",{type:"geojson",data:c}),map.addLayer({id:"points",interactive:!0,type:"symbol",source:"points",layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})}),null!=e&&map.on("click",function(t){var e=map.queryRenderedFeatures(t.point,{layer:["points"]});e.length&&(map.flyTo({center:e[0].geometry.coordinates}),r.i(u.a)(e[0].properties.uri))}),c.features&&c.features.length>1){var x=new a.a.LngLatBounds,b=!0,w=!1,E=void 0;try{for(var T,S=c.features[Symbol.iterator]();!(b=(T=S.next()).done);b=!0){var z=T.value;x.extend(z.geometry.coordinates)}}catch(t){w=!0,E=t}finally{try{!b&&S.return&&S.return()}finally{if(w)throw E}}map.fitBounds(x,{padding:65})}return map}var o=r(9),a=r.n(o),s=r(1),u=r(4);e.a=i,a.a.accessToken="pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw";var l=function(t){return t.split("-").map(function(t){var e=n(t),r=e[0],i=e.slice(1);return r.toUpperCase()+i.join("").toLowerCase()}).join(" ")},c=function(map,t,e){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],n=document.createElement("input");n.setAttribute("id",e),n.setAttribute("type","radio"),n.setAttribute("name","toggle"),n.setAttribute("value",e),1==r&&n.setAttribute("checked","checked"),n.addEventListener("click",function(){map.setStyle("mapbox://styles/mapbox/"+e+"-v9")});var i=document.createElement("label");i.setAttribute("for",e),i.appendChild(document.createTextNode(l(e))),t.appendChild(n),t.appendChild(i)},h=function(map){var t=document.createElement("div");return t.classList.add("map-menu"),c(map,t,"streets",!0),c(map,t,"satellite-streets"),t}},function(t,e,r){(function(t){var n;!function(){"use strict";function i(){var t={parent:document.body,version:"1.0.12",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"

",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,r="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(r+=this.dialogs.input),r=(r+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(){a(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?a(t):e>0&&setTimeout(function(){a(t)},e)},dialog:function(t,e,r,n){return this.setup({type:e,message:t,onOkay:r,onCancel:n})},log:function(t,e,r){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var o=0,a=i+1;a>o;o++)this.close(n[o],-1)}this.notify(t,e,r)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,r,n){var i=this.setupLogContainer(),o=document.createElement("div");o.className=r||"default",t.logTemplateMethod?o.innerHTML=t.logTemplateMethod(e):o.innerHTML=e,"function"==typeof n&&o.addEventListener("click",n),i.appendChild(o),setTimeout(function(){o.className+=" show"},10),this.close(o,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),n&&n.addEventListener("click",function(n){t.onOkay&&"function"==typeof t.onOkay&&(o?t.onOkay(o.value,n):t.onOkay(n)),e(o?{buttonClicked:"ok",inputValue:o.value,event:n}:{buttonClicked:"ok",event:n}),a(r)}),i&&i.addEventListener("click",function(n){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(n),e({buttonClicked:"cancel",event:n}),a(r)}),o&&o.addEventListener("keyup",function(t){13===t.which&&n.click()})}var r=document.createElement("div");r.className="alertify hide",r.innerHTML=this.build(t);var n=r.querySelector(".ok"),i=r.querySelector(".cancel"),o=r.querySelector("input"),s=r.querySelector("label");o&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:o.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(o.value=this.promptValue));var u;return"function"==typeof Promise?u=new Promise(e):e(),this.parent.appendChild(r),setTimeout(function(){r.classList.remove("hide"),o&&t.type&&"prompt"===t.type?(o.select(),o.focus()):n&&n.focus()},100),u},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,r,n){return t.dialog(e,"alert",r,n)||this},confirm:function(e,r,n){return t.dialog(e,"confirm",r,n)||this},prompt:function(e,r,n){return t.dialog(e,"prompt",r,n)||this},log:function(e,r){return t.log(e,"default",r),this},theme:function(e){return t.theme(e),this},success:function(e,r){return t.log(e,"success",r),this},error:function(e,r){return t.log(e,"error",r),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var o=500,a=function(t){if(t){var e=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",e),setTimeout(e,o)}};if("undefined"!=typeof t&&t&&t.exports){t.exports=function(){return new i};var s=new i;for(var u in s)t.exports[u]=s[u]}else n=function(){return new i}.call(e,r,e,t),!(void 0!==n&&(t.exports=n))}()}).call(e,r(17)(t))},function(t,e,r){"use strict";function n(t){document.querySelector("select")&&("current-location"==t?document.querySelector('select [id="option-coords"]').selected=!0:document.querySelector('select [value="'+t+'"]').selected=!0)}e.a=n},function(t,e,r){"use strict";function n(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function i(t){return 3*t.length/4-n(t)}function o(t){var e,r,i,o,a,s,u=t.length;a=n(t),s=new h(3*u/4-a),i=a>0?u-4:u;var l=0;for(e=0,r=0;e>16&255,s[l++]=o>>8&255,s[l++]=255&o;return 2===a?(o=c[t.charCodeAt(e)]<<2|c[t.charCodeAt(e+1)]>>4,s[l++]=255&o):1===a&&(o=c[t.charCodeAt(e)]<<10|c[t.charCodeAt(e+1)]<<4|c[t.charCodeAt(e+2)]>>2,s[l++]=o>>8&255,s[l++]=255&o),s}function a(t){return l[t>>18&63]+l[t>>12&63]+l[t>>6&63]+l[63&t]}function s(t,e,r){for(var n,i=[],o=e;oc?c:u+a));return 1===n?(e=t[r-1],i+=l[e>>2],i+=l[e<<4&63],i+="=="):2===n&&(e=(t[r-2]<<8)+t[r-1],i+=l[e>>10],i+=l[e>>4&63],i+=l[e<<2&63],i+="="),o.push(i),o.join("")}e.byteLength=i,e.toByteArray=o,e.fromByteArray=u;for(var l=[],c=[],h="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=p.length;f=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|t}function y(t){return+t!=t&&(t=0),a.alloc(+t)}function v(t,e){if(a.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(t).length;default:if(n)return G(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return I(this,e,r);case"utf8":case"utf-8":return P(this,e,r);case"ascii":return C(this,e,r);case"latin1":case"binary":return k(this,e,r);case"base64":return M(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function _(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function x(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,i);if("number"==typeof e)return e&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function b(t,e,r,n,i){function o(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}var a=1,s=t.length,u=e.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;ls&&(r=s-u),l=r;l>=0;l--){for(var h=!0,p=0;pi&&(n=i)):n=i;var o=e.length;if(o%2!==0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a239?4:o>223?3:o>191?2:1;if(i+s<=r){var u,l,c,h;switch(s){case 1:o<128&&(a=o);break;case 2:u=t[i+1],128===(192&u)&&(h=(31&o)<<6|63&u,h>127&&(a=h));break;case 3:u=t[i+1],l=t[i+2],128===(192&u)&&128===(192&l)&&(h=(15&o)<<12|(63&u)<<6|63&l,h>2047&&(h<55296||h>57343)&&(a=h));break;case 4:u=t[i+1],l=t[i+2],c=t[i+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(h=(15&o)<<18|(63&u)<<12|(63&l)<<6|63&c,h>65535&&h<1114112&&(a=h))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=s}return L(n)}function L(t){var e=t.length;if(e<=tt)return String.fromCharCode.apply(String,t);for(var r="",n=0;nn)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function O(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function B(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function j(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function F(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(t,e,r,n,i){return i||F(t,e,r,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(t,e,r,n,23,4),r+4}function N(t,e,r,n,i){return i||F(t,e,r,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(t,e,r,n,52,8),r+8}function V(t){if(t=q(t).replace(et,""),t.length<2)return"";for(;t.length%4!==0;)t+="=";return t}function q(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function Z(t){return t<16?"0"+t.toString(16):t.toString(16)}function G(t,e){e=e||1/0;for(var r,n=t.length,i=null,o=[],a=0;a55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function X(t){for(var e=[],r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function H(t){return K.toByteArray(V(t))}function Y(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function J(t){return t!==t}/*! +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 20); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = parseLocation; +//parse-location.js + +//text = `POINT(lon lat)` +function parseLocation(text) { + var coords = /POINT\((.*)\)/.exec(text); + var parsedLongitude = coords[1].split(' ')[0]; + var parsedLatitude = coords[1].split(' ')[1]; + + return { 'latitude': parsedLatitude, 'longitude': parsedLongitude }; +} + +/***/ }), +/* 2 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__ = __webpack_require__(9); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__parse_location__ = __webpack_require__(1); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__select_place__ = __webpack_require__(4); +/* harmony export (immutable) */ __webpack_exports__["a"] = addMap; +function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } + +//mapbox-utils.js + + + + +__WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.accessToken = 'pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw'; + +//define some functions to be used in the default function. +var titlecase = function titlecase(string) { + return string.split('-').map(function (_ref) { + var _ref2 = _toArray(_ref), + first = _ref2[0], + rest = _ref2.slice(1); + + return first.toUpperCase() + rest.join('').toLowerCase(); + }).join(' '); +}; + +var addMapTypeOption = function addMapTypeOption(map, menu, option) { + var checked = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + var input = document.createElement('input'); + input.setAttribute('id', option); + input.setAttribute('type', 'radio'); + input.setAttribute('name', 'toggle'); + input.setAttribute('value', option); + if (checked == true) { + input.setAttribute('checked', 'checked'); + } + input.addEventListener('click', function () { + map.setStyle('mapbox://styles/mapbox/' + option + '-v9'); + }); + var label = document.createElement('label'); + label.setAttribute('for', option); + label.appendChild(document.createTextNode(titlecase(option))); + menu.appendChild(input); + menu.appendChild(label); +}; + +var makeMapMenu = function makeMapMenu(map) { + var mapMenu = document.createElement('div'); + mapMenu.classList.add('map-menu'); + addMapTypeOption(map, mapMenu, 'streets', true); + addMapTypeOption(map, mapMenu, 'satellite-streets'); + return mapMenu; +}; + +//the main function +function addMap(div) { + var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var places = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + var dataLatitude = div.dataset.latitude; + var dataLongitude = div.dataset.longitude; + var dataId = div.dataset.id; + var data = window['geojson' + dataId]; + if (data == null) { + data = { + 'type': 'FeatureCollection', + 'features': [{ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [dataLongitude, dataLatitude] + }, + 'properties': { + 'title': 'Current Location', + 'icon': 'circle-stroked', + 'uri': 'current-location' + } + }] + }; + } + if (places != null) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = places[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var place = _step.value; + + var placeLongitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).longitude; + var placeLatitude = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__parse_location__["a" /* default */])(place.location).latitude; + data.features.push({ + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [placeLongitude, placeLatitude] + }, + 'properties': { + 'title': place.name, + 'icon': 'circle', + 'uri': place.slug + } + }); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + if (position != null) { + dataLongitude = position.coords.longitude; + dataLatitude = position.coords.latitude; + } + var map = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.Map({ + container: div, + style: 'mapbox://styles/mapbox/streets-v9', + center: [dataLongitude, dataLatitude], + zoom: 15 + }); + if (position == null) { + map.scrollZoom.disable(); + } + map.addControl(new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.NavigationControl()); + div.appendChild(makeMapMenu(map)); + map.on('load', function () { + map.addSource('points', { + 'type': 'geojson', + 'data': data + }); + map.addLayer({ + 'id': 'points', + 'interactive': true, + 'type': 'symbol', + 'source': 'points', + 'layout': { + 'icon-image': '{icon}-15', + 'text-field': '{title}', + 'text-offset': [0, 1] + } + }); + }); + if (position != null) { + map.on('click', function (e) { + var features = map.queryRenderedFeatures(e.point, { + layer: ['points'] + }); + // if there are features within the given radius of the click event, + // fly to the location of the click event + if (features.length) { + // Get coordinates from the symbol and center the map on those coordinates + map.flyTo({ center: features[0].geometry.coordinates }); + __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__select_place__["a" /* default */])(features[0].properties.uri); + } + }); + } + if (data.features && data.features.length > 1) { + var bounds = new __WEBPACK_IMPORTED_MODULE_0_mapbox_gl_dist_mapbox_gl_js___default.a.LngLatBounds(); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = data.features[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var feature = _step2.value; + + bounds.extend(feature.geometry.coordinates); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + map.fitBounds(bounds, { padding: 65 }); + } + + return map; +} + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;!function(){"use strict";function t(){var t={parent:document.body,version:"1.0.12",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,o="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(o+=this.dialogs.input),o=(o+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",function(){o(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?o(t):e>0&&setTimeout(function(){o(t)},e)},dialog:function(t,e,o,n){return this.setup({type:e,message:t,onOkay:o,onCancel:n})},log:function(t,e,o){var n=document.querySelectorAll(".alertify-logs > div");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var a=0,l=i+1;l>a;a++)this.close(n[a],-1)}this.notify(t,e,o)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,o,n){var i=this.setupLogContainer(),a=document.createElement("div");a.className=o||"default",t.logTemplateMethod?a.innerHTML=t.logTemplateMethod(e):a.innerHTML=e,"function"==typeof n&&a.addEventListener("click",n),i.appendChild(a),setTimeout(function(){a.className+=" show"},10),this.close(a,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),i&&i.addEventListener("click",function(i){t.onOkay&&"function"==typeof t.onOkay&&(l?t.onOkay(l.value,i):t.onOkay(i)),e(l?{buttonClicked:"ok",inputValue:l.value,event:i}:{buttonClicked:"ok",event:i}),o(n)}),a&&a.addEventListener("click",function(i){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(i),e({buttonClicked:"cancel",event:i}),o(n)}),l&&l.addEventListener("keyup",function(t){13===t.which&&i.click()})}var n=document.createElement("div");n.className="alertify hide",n.innerHTML=this.build(t);var i=n.querySelector(".ok"),a=n.querySelector(".cancel"),l=n.querySelector("input"),s=n.querySelector("label");l&&("string"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:l.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(l.value=this.promptValue));var r;return"function"==typeof Promise?r=new Promise(e):e(),this.parent.appendChild(n),setTimeout(function(){n.classList.remove("hide"),l&&t.type&&"prompt"===t.type?(l.select(),l.focus()):i&&i.focus()},100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,o,n){return t.dialog(e,"alert",o,n)||this},confirm:function(e,o,n){return t.dialog(e,"confirm",o,n)||this},prompt:function(e,o,n){return t.dialog(e,"prompt",o,n)||this},log:function(e,o){return t.log(e,"default",o),this},theme:function(e){return t.theme(e),this},success:function(e,o){return t.log(e,"success",o),this},error:function(e,o){return t.log(e,"error",o),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var e=500,o=function(t){if(t){var o=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",o),setTimeout(o,e)}};if("undefined"!=typeof module&&module&&module.exports){module.exports=function(){return new t};var n=new t;for(var i in n)module.exports[i]=n[i]}else true?!(__WEBPACK_AMD_DEFINE_RESULT__ = function(){return new t}.call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):window.alertify=new t}(); +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)(module))) + +/***/ }), +/* 4 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (immutable) */ __webpack_exports__["a"] = selectPlaceInForm; +//select-place.js + +function selectPlaceInForm(uri) { + if (document.querySelector('select')) { + if (uri == 'current-location') { + document.querySelector('select [id="option-coords"]').selected = true; + } else { + document.querySelector('select [value="' + uri + '"]').selected = true; + } + } +} + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function placeHoldersCount (b64) { + var len = b64.length + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0 +} + +function byteLength (b64) { + // base64 is 4/3 + up to two characters of the original data + return b64.length * 3 / 4 - placeHoldersCount(b64) +} + +function toByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + var len = b64.length + placeHolders = placeHoldersCount(b64) + + arr = new Arr(len * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? len - 4 : len + + var L = 0 + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)] + arr[L++] = (tmp >> 16) & 0xFF + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + if (placeHolders === 2) { + tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[L++] = tmp & 0xFF + } else if (placeHolders === 1) { + tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[L++] = (tmp >> 8) & 0xFF + arr[L++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var output = '' + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + output += lookup[tmp >> 2] + output += lookup[(tmp << 4) & 0x3F] + output += '==' + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + (uint8[len - 1]) + output += lookup[tmp >> 10] + output += lookup[(tmp >> 4) & 0x3F] + output += lookup[(tmp << 2) & 0x3F] + output += '=' + } + + parts.push(output) + + return parts.join('') +} + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -var K=r(5),Q=r(7),$=r(8);e.Buffer=a,e.SlowBuffer=y,e.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:n(),e.kMaxLength=i(),a.poolSize=8192,a._augment=function(t){return t.__proto__=a.prototype,t},a.from=function(t,e,r){return s(null,t,e,r)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(t,e,r){return l(null,t,e,r)},a.allocUnsafe=function(t){return c(null,t)},a.allocUnsafeSlow=function(t){return c(null,t)},a.isBuffer=function(t){return!(null==t||!t._isBuffer)},a.compare=function(t,e){if(!a.isBuffer(t)||!a.isBuffer(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},a.prototype.compare=function(t,e,r,n,i){if(!a.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(e>>>=0,r>>>=0,n>>>=0,i>>>=0,this===t)return 0;for(var o=i-n,s=r-e,u=Math.min(o,s),l=this.slice(n,i),c=t.slice(e,r),h=0;hi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return w(this,t,e,r);case"utf8":case"utf-8":return E(this,t,e,r);case"ascii":return T(this,t,e,r);case"latin1":case"binary":return S(this,t,e,r);case"base64":return z(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var tt=4096;a.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),e0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return e||D(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return e||D(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return e||D(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var n=this[t],i=1,o=0;++o=i&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||D(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return e||D(t,1,this.length),128&this[t]?(255-this[t]+1)*-1:this[t]},a.prototype.readInt16LE=function(t,e){e||D(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){e||D(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return e||D(t,4,this.length),Q.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return e||D(t,8,this.length),Q.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e|=0,r|=0,!n){var i=Math.pow(2,8*r)-1;O(this,t,e,r,i,0)}var o=1,a=0;for(this[e]=255&t;++a=0&&(a*=256);)this[e+o]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,255,0),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):j(this,t,e,!0),e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);O(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);O(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,1,127,-128),a.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):B(this,t,e,!0),e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):B(this,t,e,!1),e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):j(this,t,e,!0),e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||O(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),a.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):j(this,t,e,!1),e+4},a.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return N(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return N(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0);var o;if("number"==typeof t)for(o=e;o>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,n),o-=l}return(f?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,u,l=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){(function(e,r){var n,n;!function(e){t.exports=e()}(function(){var t;return function t(e,r,i){function o(s,u){if(!r[s]){if(!e[s]){var l="function"==typeof n&&n;if(!u&&l)return n(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var h=r[s]={exports:{}};e[s][0].call(h.exports,function(t){var r=e[s][1][t];return o(r?r:t)},h,h.exports,t,e,r,i)}return r[s].exports}for(var a="function"==typeof n&&n,s=0;sa.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},a.prototype.prepareSegment2=function(t){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+t>a.MAX_VERTEX_ARRAY_LENGTH)&&(e=new o(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},a.prototype.populatePaintArrays=function(t){var e=this;for(var r in this.layerData){var n=e.layerData[r];0!==n.paintVertexArray.bytesPerElement&&n.programConfiguration.populatePaintArray(n.layer,n.paintVertexArray,e.layoutVertexArray.length,e.globalProperties,t)}},a.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},a.prototype.serialize=function(t){return{layoutVertexArray:this.layoutVertexArray.serialize(t),elementArray:this.elementArray&&this.elementArray.serialize(t),elementArray2:this.elementArray2&&this.elementArray2.serialize(t),paintVertexArrays:n(this.layerData,t),segments:this.segments,segments2:this.segments2}},a.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,e.exports=a},{"./program_configuration":15}],2:[function(t,e,r){"use strict";var n=t("./array_group"),i=t("./buffer_group"),o=t("../util/util"),a=function(t,e){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,t.arrays?this.buffers=new i(e,t.layers,t.zoom,t.arrays):this.arrays=new n(e,t.layers,t.zoom)};a.prototype.populate=function(t,e){for(var r=this,n=0,i=t;n=u||p<0||p>=u)){var f=e.prepareSegment(4),d=f.vertexLength;n(e.layoutVertexArray,h,p,-1,-1),n(e.layoutVertexArray,h,p,1,-1),n(e.layoutVertexArray,h,p,1,1),n(e.layoutVertexArray,h,p,-1,1),e.elementArray.emplaceBack(d,d+1,d+2),e.elementArray.emplaceBack(d,d+3,d+2),f.vertexLength+=4,f.primitiveLength+=2}}e.populatePaintArrays(t.properties)},e}(i);e.exports=c},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],4:[function(t,e,r){"use strict";var n=t("../bucket"),i=t("../vertex_array_type"),o=t("../element_array_type"),a=t("../load_geometry"),s=t("earcut"),u=t("../../util/classify_rings"),l=500,c={layoutVertexArrayType:i([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:o(3),elementArrayType2:o(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},h=function(t){function e(e){t.call(this,e,c)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,n=u(a(t),l);rl)||t.y===e.y&&(t.y<0||t.y>l)}var o=t("../bucket"),a=t("../vertex_array_type"),s=t("../element_array_type"),u=t("../load_geometry"),l=t("../extent"),c=t("earcut"),h=t("../../util/classify_rings"),p=500,f={layoutVertexArrayType:a([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:s(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},d=Math.pow(2,13),m=function(t){function e(e){t.call(this,e,f)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this.arrays,r=0,o=h(u(t),p);r=1){var S=b[E-1];if(!i(T,S)){var z=T.sub(S)._perp()._unit();n(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,0,w),n(e.layoutVertexArray,T.x,T.y,z.x,z.y,0,1,w),w+=S.dist(T),n(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,0,w),n(e.layoutVertexArray,S.x,S.y,z.x,z.y,0,1,w);var A=m.vertexLength;e.elementArray.emplaceBack(A,A+1,A+2),e.elementArray.emplaceBack(A+1,A+2,A+3),m.vertexLength+=4,m.primitiveLength+=2}}y.push(T.x),y.push(T.y)}}}for(var M=c(y,v),P=0;P>6)}var i=t("../bucket"),o=t("../vertex_array_type"),a=t("../element_array_type"),s=t("../load_geometry"),u=t("../extent"),l=63,c=Math.cos(37.5*(Math.PI/180)),h=15,p=15,f=.5,d=Math.pow(2,p-1)/f,m={layoutVertexArrayType:o([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:a()},y=function(t){function e(e){t.call(this,e,m)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addFeature=function(t){for(var e=this,r=this.layers[0].layout,n=r["line-join"],i=r["line-cap"],o=r["line-miter-limit"],a=r["line-round-limit"],u=0,l=s(t,p);u2&&t[s-1].equals(t[s-2]);)s--;if(!(t.length<2)){"bevel"===r&&(i=1.05);var l=h*(u/(512*this.overscaling)),p=t[0],f=t[s-1],d=p.equals(f),m=this.arrays,y=m.prepareSegment(10*s);if(2!==s||!d){this.distance=0;var v,g,_,x,b,w,E,T=n,S=d?"butt":n,z=!0;this.e1=this.e2=this.e3=-1,d&&(v=t[s-2],b=p.sub(v)._unit()._perp());for(var A=0;A0){var k=v.dist(g);if(k>2*l){var I=v.sub(v.sub(g)._mult(l/k)._round());a.distance+=I.dist(g),a.addCurrentVertex(I,a.distance,x.mult(1),0,0,!1,y),g=I}}var R=g&&_,D=R?r:_?T:S;if(R&&"round"===D&&(Li&&(D="bevel"),"bevel"===D&&(L>2&&(D="flipbevel"),L100)M=b.clone().mult(-1);else{var O=x.x*b.y-x.y*b.x>0?-1:1,B=L*x.add(b).mag()/x.sub(b).mag();M._perp()._mult(B*O)}a.addCurrentVertex(v,a.distance,M,0,0,!1,y),a.addCurrentVertex(v,a.distance,M.mult(-1),0,0,!1,y)}else if("bevel"===D||"fakeround"===D){var j=x.x*b.y-x.y*b.x>0,F=-Math.sqrt(L*L-1);if(j?(E=0,w=F):(w=0,E=F),z||a.addCurrentVertex(v,a.distance,x,w,E,!1,y),"fakeround"===D){for(var U,N=Math.floor(8*(.5-(P-.5))),V=0;V=0;q--)U=x.mult((q+1)/(N+1))._add(b)._unit(),a.addPieSliceVertex(v,a.distance,U,j,y)}_&&a.addCurrentVertex(v,a.distance,b,-w,-E,!1,y)}else"butt"===D?(z||a.addCurrentVertex(v,a.distance,x,0,0,!1,y),_&&a.addCurrentVertex(v,a.distance,b,0,0,!1,y)):"square"===D?(z||(a.addCurrentVertex(v,a.distance,x,1,1,!1,y),a.e1=a.e2=-1),_&&a.addCurrentVertex(v,a.distance,b,-1,-1,!1,y)):"round"===D&&(z||(a.addCurrentVertex(v,a.distance,x,0,0,!1,y),a.addCurrentVertex(v,a.distance,x,1,1,!0,y),a.e1=a.e2=-1),_&&(a.addCurrentVertex(v,a.distance,b,-1,-1,!0,y),a.addCurrentVertex(v,a.distance,b,0,0,!1,y)));if(C&&A2*l){var G=v.add(_.sub(v)._mult(l/Z)._round());a.distance+=G.dist(v),a.addCurrentVertex(G,a.distance,b.mult(1),0,0,!1,y),v=G}}z=!1}m.populatePaintArrays(e)}}},e.prototype.addCurrentVertex=function(t,e,r,i,o,a,s){var u,l=a?1:0,c=this.arrays,h=c.layoutVertexArray,p=c.elementArray;u=r.clone(),i&&u._sub(r.perp()._mult(i)),n(h,t,u,l,0,i,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,u=r.mult(-1),o&&u._sub(r.perp()._mult(o)),n(h,t,u,l,1,-o,e),this.e3=s.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),s.primitiveLength++),this.e1=this.e2,this.e2=this.e3,e>d/2&&(this.distance=0,this.addCurrentVertex(t,this.distance,r,i,o,a,s))},e.prototype.addPieSliceVertex=function(t,e,r,i,o){var a=i?1:0;r=r.mult(i?-1:1);var s=this.arrays,u=s.layoutVertexArray,l=s.elementArray;n(u,t,r,0,a,0,e),this.e3=o.vertexLength++,this.e1>=0&&this.e2>=0&&(l.emplaceBack(this.e1,this.e2,this.e3),o.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},e}(i);e.exports=y},{"../bucket":2,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17}],7:[function(t,e,r){"use strict";function n(t,e,r,n,i,o,a,s,u,l,c){t.emplaceBack(e,r,Math.round(64*n),Math.round(64*i),o/4,a/4,10*(l||0),c,10*(s||0),10*Math.min(u||25,25))}function i(t,e,r,n,i){return t.emplaceBack(e.x,e.y,Math.round(r.x),Math.round(r.y),10*n,10*i)}var o=t("point-geometry"),a=t("../array_group"),s=t("../buffer_group"),u=t("../vertex_array_type"),l=t("../element_array_type"),c=t("../extent"),h=t("../../symbol/anchor"),p=t("../../symbol/get_anchors"),f=t("../../util/token"),d=t("../../symbol/quads"),m=t("../../symbol/shaping"),y=t("../../symbol/resolve_text"),v=t("../../symbol/mergelines"),g=t("../../symbol/clip_line"),_=t("../../util/util"),x=t("../../util/script_detection"),b=t("../load_geometry"),w=t("../../symbol/collision_feature"),E=t("../../util/find_pole_of_inaccessibility"),T=t("../../util/classify_rings"),S=t("vector-tile").VectorTileFeature,z=t("../../source/rtl_text_plugin"),A=m.shapeText,M=m.shapeIcon,P=m.WritingMode,L=d.getGlyphQuads,C=d.getIconQuads,k=l(),I=u([{name:"a_pos",components:2,type:"Int16"},{name:"a_offset",components:2,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),R={glyph:{layoutVertexArrayType:I,elementArrayType:k},icon:{layoutVertexArrayType:I,elementArrayType:k},collisionBox:{layoutVertexArrayType:u([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:l(2)}},D=function(t){var e=this;if(this.collisionBoxArray=t.collisionBoxArray,this.symbolQuadsArray=t.symbolQuadsArray,this.symbolInstancesArray=t.symbolInstancesArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.index=t.index,this.sdfIcons=t.sdfIcons,this.iconsNeedLinear=t.iconsNeedLinear,this.adjustedTextSize=t.adjustedTextSize,this.adjustedIconSize=t.adjustedIconSize,this.fontstack=t.fontstack,t.arrays){this.buffers={};for(var r in t.arrays)t.arrays[r]&&(e.buffers[r]=new s(R[r],t.layers,t.zoom,t.arrays[r]))}};D.prototype.populate=function(t,e){var r=this,n=this.layers[0].layout,i=n["text-field"],o=n["text-font"],a=n["icon-image"],s=i&&o,u=a;if(this.features=[],s||u){for(var l=e.iconDependencies,c=e.glyphDependencies,h=c[o]=c[o]||{},p=0;pc||o.y<0||o.y>c);if(!m||a){var s=a||w;n.addSymbolInstance(o,i,e,r,n.layers[0],s,n.symbolInstancesArray.length,n.collisionBoxArray,t.index,t.sourceLayerIndex,n.index,u,y,x,f,v,b,{zoom:n.zoom},t.properties)}};if("line"===S)for(var M=0,L=g(t.geometry,0,0,c,c);M=0;o--)if(r.dist(i[o])7*Math.PI/4)continue}else if(o&&a&&y<=3*Math.PI/4||y>5*Math.PI/4)continue}else if(o&&a&&(y<=Math.PI/2||y>3*Math.PI/2))continue;var v=m.tl,g=m.tr,_=m.bl,x=m.br,b=m.tex,w=m.anchorPoint,E=Math.max(p+Math.log(m.minScale)/Math.LN2,f),T=Math.min(p+Math.log(m.maxScale)/Math.LN2,25);if(!(T<=E)){E===f&&(E=0);var S=Math.round(m.glyphAngle/(2*Math.PI)*256),z=t.prepareSegment(4),A=z.vertexLength;n(h,w.x,w.y,v.x,v.y,b.x,b.y,E,T,f,S),n(h,w.x,w.y,g.x,g.y,b.x+b.w,b.y,E,T,f,S),n(h,w.x,w.y,_.x,_.y,b.x,b.y+b.h,E,T,f,S),n(h,w.x,w.y,x.x,x.y,b.x+b.w,b.y+b.h,E,T,f,S),c.emplaceBack(A,A+1,A+2),c.emplaceBack(A+1,A+2,A+3),z.vertexLength+=4,z.primitiveLength+=2}}},D.prototype.addToDebugBuffers=function(t){for(var e=this,r=this.arrays.collisionBox,n=r.layoutVertexArray,a=r.elementArray,s=-t.angle,u=t.yStretch,l=this.symbolInstancesStartIndex;lD.MAX_QUADS&&_.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),I>D.MAX_QUADS&&_.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var N=(r[P.vertical]?P.vertical:0)|(r[P.horizontal]?P.horizontal:0);return this.symbolInstancesArray.emplaceBack(R,O,F,U,M,I,B,j,t.x,t.y,a,N)},D.prototype.addSymbolQuad=function(t){return this.symbolQuadsArray.emplaceBack(t.anchorPoint.x,t.anchorPoint.y,t.tl.x,t.tl.y,t.tr.x,t.tr.y,t.bl.x,t.bl.y,t.br.x,t.br.y,t.tex.h,t.tex.w,t.tex.x,t.tex.y,t.anchorAngle,t.glyphAngle,t.maxScale,t.minScale,t.writingMode)},D.MAX_QUADS=65535,e.exports=D},{"../../source/rtl_text_plugin":49,"../../symbol/anchor":75,"../../symbol/clip_line":77,"../../symbol/collision_feature":79,"../../symbol/get_anchors":81,"../../symbol/mergelines":84,"../../symbol/quads":85,"../../symbol/resolve_text":86,"../../symbol/shaping":87,"../../util/classify_rings":113,"../../util/find_pole_of_inaccessibility":119,"../../util/script_detection":126,"../../util/token":128,"../../util/util":129,"../array_group":1,"../buffer_group":9,"../element_array_type":10,"../extent":11,"../load_geometry":13,"../vertex_array_type":17,"point-geometry":197,"vector-tile":206}],8:[function(t,e,r){"use strict";var n={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},i=function(t,e,r){this.arrayBuffer=t.arrayBuffer,this.length=t.length,this.attributes=e.members,this.itemSize=e.bytesPerElement,this.type=r,this.arrayType=e};i.fromStructArray=function(t,e){return new i(t.serialize(),t.constructor.serialize(),e)},i.prototype.bind=function(t){var e=t[this.type];this.buffer?t.bindBuffer(e,this.buffer):(this.gl=t,this.buffer=t.createBuffer(),t.bindBuffer(e,this.buffer),t.bufferData(e,this.arrayBuffer,t.STATIC_DRAW),this.arrayBuffer=null)},i.prototype.setVertexAttribPointers=function(t,e,r){for(var i=this,o=0;o0?t["line-gap-width"]+2*t["line-width"]:t["line-width"]}function a(t,e,r,n,i){if(!e[0]&&!e[1])return t;e=u.convert(e),"viewport"===r&&e._rotate(-n);for(var o=[],a=0;ar.max||h.yr.max)&&i.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return s}},{"../util/util":129,"./extent":11}],14:[function(t,e,r){"use strict";var n=t("../util/struct_array"),i=n({members:[{name:"a_pos",type:"Int16",components:2}]});e.exports=i},{"../util/struct_array":127}],15:[function(t,e,r){"use strict";function n(t,e,r,n){if(!t.zoomStops)return e.getPaintValue(t.property,r,n);var i=t.zoomStops.map(function(i){return e.getPaintValue(t.property,a.extend({},r,{zoom:i}),n)});return 1===i.length?i[0]:i}function i(t,e){var r=t.property.replace(e.type+"-","").replace(/-/g,"_"),n="color"===e._paintSpecifications[t.property].type;return a.extend({name:"a_"+r,components:n?4:1,multiplier:n?255:1},t)}var o=t("./vertex_array_type"),a=t("../util/util"),s=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};s.createDynamic=function(t,e,r){for(var n=new s,a=0,u=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};i.prototype.wrap=function(){return new i(n(this.lng,-180,180),this.lat)},i.prototype.toArray=function(){return[this.lng,this.lat]},i.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},i.convert=function(t){if(t instanceof i)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new i(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new i(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},e.exports=i},{"../util/util":129}],20:[function(t,e,r){"use strict";var n=t("./lng_lat"),i=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};i.prototype.setNorthEast=function(t){return this._ne=n.convert(t),this},i.prototype.setSouthWest=function(t){return this._sw=n.convert(t),this},i.prototype.extend=function(t){var e,r,o=this._sw,a=this._ne;if(t instanceof n)e=t,r=t;else{if(!(t instanceof i))return Array.isArray(t)?t.every(Array.isArray)?this.extend(i.convert(t)):this.extend(n.convert(t)):this;if(e=t._sw,r=t._ne,!e||!r)return this}return o||a?(o.lng=Math.min(e.lng,o.lng),o.lat=Math.min(e.lat,o.lat),a.lng=Math.max(r.lng,a.lng),a.lat=Math.max(r.lat,a.lat)):(this._sw=new n(e.lng,e.lat),this._ne=new n(r.lng,r.lat)),this},i.prototype.getCenter=function(){return new n((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},i.prototype.getSouthWest=function(){return this._sw},i.prototype.getNorthEast=function(){return this._ne},i.prototype.getNorthWest=function(){return new n(this.getWest(),this.getNorth())},i.prototype.getSouthEast=function(){return new n(this.getEast(),this.getSouth())},i.prototype.getWest=function(){return this._sw.lng},i.prototype.getSouth=function(){return this._sw.lat},i.prototype.getEast=function(){return this._ne.lng},i.prototype.getNorth=function(){return this._ne.lat},i.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},i.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},i.convert=function(t){return!t||t instanceof i?t:new i(t)},e.exports=i},{"./lng_lat":19}],21:[function(t,e,r){"use strict";var n=t("./lng_lat"),i=t("point-geometry"),o=t("./coordinate"),a=t("../util/util"),s=t("../util/interpolate"),u=t("../source/tile_coord"),l=t("../data/extent"),c=t("@mapbox/gl-matrix"),h=c.vec4,p=c.mat4,f=c.mat2,d=function(t,e,r){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=e||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new n(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},m={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};m.minZoom.get=function(){return this._minZoom},m.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},m.maxZoom.get=function(){return this._maxZoom},m.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},m.worldSize.get=function(){return this.tileSize*this.scale},m.centerPoint.get=function(){return this.size._div(2)},m.size.get=function(){return new i(this.width,this.height)},m.bearing.get=function(){return-this.angle/Math.PI*180},m.bearing.set=function(t){var e=-a.wrap(t,-180,180)*Math.PI/180;this.angle!==e&&(this._unmodified=!1,this.angle=e,this._calcMatrices(),this.rotationMatrix=f.create(),f.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},m.pitch.get=function(){return this._pitch/Math.PI*180},m.pitch.set=function(t){var e=a.clamp(t,0,60)/180*Math.PI;this._pitch!==e&&(this._unmodified=!1,this._pitch=e,this._calcMatrices())},m.fov.get=function(){return this._fov/Math.PI*180},m.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},m.zoom.get=function(){return this._zoom},m.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},m.center.get=function(){return this._center},m.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},d.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},d.prototype.coveringTiles=function(t){var e=this.coveringZoomLevel(t),r=e;if(et.maxzoom&&(e=t.maxzoom);var n=this.pointCoordinate(this.centerPoint,e),o=new i(n.column-.5,n.row-.5),a=[this.pointCoordinate(new i(0,0),e),this.pointCoordinate(new i(this.width,0),e),this.pointCoordinate(new i(this.width,this.height),e),this.pointCoordinate(new i(0,this.height),e)];return u.cover(e,a,t.reparseOverscaled?r:e,this._renderWorldCopies).sort(function(t,e){return o.dist(t)-o.dist(e)})},d.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},m.unmodified.get=function(){return this._unmodified},d.prototype.zoomScale=function(t){return Math.pow(2,t)},d.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},d.prototype.project=function(t){return new i(this.lngX(t.lng),this.latY(t.lat))},d.prototype.unproject=function(t){return new n(this.xLng(t.x),this.yLat(t.y))},m.x.get=function(){return this.lngX(this.center.lng)},m.y.get=function(){return this.latY(this.center.lat)},m.point.get=function(){return new i(this.x,this.y)},d.prototype.lngX=function(t){return(180+t)*this.worldSize/360},d.prototype.latY=function(t){var e=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-e)*this.worldSize/360},d.prototype.xLng=function(t){return 360*t/this.worldSize-180},d.prototype.yLat=function(t){var e=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90},d.prototype.setLocationAtPoint=function(t,e){var r=this.pointCoordinate(e)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(r))},d.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},d.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},d.prototype.locationCoordinate=function(t){return new o(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},d.prototype.coordinateLocation=function(t){var e=t.zoomTo(this.zoom);return new n(this.xLng(e.column*this.tileSize),this.yLat(e.row*this.tileSize))},d.prototype.pointCoordinate=function(t,e){void 0===e&&(e=this.tileZoom);var r=0,n=[t.x,t.y,0,1],i=[t.x,t.y,1,1];h.transformMat4(n,n,this.pixelMatrixInverse),h.transformMat4(i,i,this.pixelMatrixInverse);var a=n[3],u=i[3],l=n[0]/a,c=i[0]/u,p=n[1]/a,f=i[1]/u,d=n[2]/a,m=i[2]/u,y=d===m?0:(r-d)/(m-d);return new o(s(l,c,y)/this.tileSize,s(p,f,y)/this.tileSize,this.zoom)._zoomTo(e)},d.prototype.coordinatePoint=function(t){var e=t.zoomTo(this.zoom),r=[e.column*this.tileSize,e.row*this.tileSize,0,1];return h.transformMat4(r,r,this.pixelMatrix),new i(r[0]/r[3],r[1]/r[3])},d.prototype.calculatePosMatrix=function(t,e){var r=t.toCoordinate(e),n=this.worldSize/this.zoomScale(r.zoom),i=p.identity(new Float64Array(16));return p.translate(i,i,[r.column*n,r.row*n,0]),p.scale(i,i,[n/l,n/l,1]),p.multiply(i,this.projMatrix,i),new Float32Array(i)},d.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,e,r,n,o,a,s,u,l=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),e=this.latY(this.latRange[0]),o=e-te&&(u=e-f)}if(this.lngRange){var d=this.x,m=l.x/2;d-mn&&(s=n-m)}void 0===s&&void 0===u||(this.center=this.unproject(new i(void 0!==s?s:this.x,void 0!==u?u:this.y))),this._unmodified=c,this._constraining=!1}},d.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,e=Math.PI/2+this._pitch,r=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-e-t),n=Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance,i=1.01*n,o=new Float64Array(16);p.perspective(o,this._fov,this.width/this.height,1,i),p.scale(o,o,[1,-1,1]),p.translate(o,o,[0,0,-this.cameraToCenterDistance]),p.rotateX(o,o,this._pitch),p.rotateZ(o,o,this.angle),p.translate(o,o,[-this.x,-this.y,0]);var a=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(p.scale(o,o,[1,1,a,1]),this.projMatrix=o,o=p.create(),p.scale(o,o,[this.width/2,-this.height/2,1]),p.translate(o,o,[1,-1,0]),this.pixelMatrix=p.multiply(new Float64Array(16),o,this.projMatrix),o=p.invert(new Float64Array(16),this.pixelMatrix),!o)throw new Error("failed to invert matrix");this.pixelMatrixInverse=o}},Object.defineProperties(d.prototype,m),e.exports=d},{"../data/extent":11,"../source/tile_coord":53,"../util/interpolate":121,"../util/util":129,"./coordinate":18,"./lng_lat":19,"@mapbox/gl-matrix":133,"point-geometry":197}],22:[function(t,e,r){"use strict";var n,i=t("./util/worker_pool");e.exports=function(){return n||(n=new i),n}},{"./util/worker_pool":132}],23:[function(t,e,r){"use strict";var n={" ":[16,[]],"!":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],'"':[16,[4,21,4,14,-1,-1,12,21,12,14]],"#":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],$:[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],"%":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],"&":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],"'":[10,[5,19,4,20,5,21,6,20,6,18,5,16,4,15]],"(":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],")":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],"*":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],"+":[26,[13,18,13,0,-1,-1,4,9,22,9]],",":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"-":[26,[4,9,22,9]],".":[10,[5,2,4,1,5,0,6,1,5,2]],"/":[22,[20,25,2,-7]],0:[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],1:[20,[6,17,8,18,11,21,11,0]],2:[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],3:[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],4:[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],5:[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],6:[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],7:[20,[17,21,7,0,-1,-1,3,21,17,21]],8:[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],9:[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],":":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],";":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"<":[24,[20,18,4,9,20,0]],"=":[26,[4,12,22,12,-1,-1,4,6,22,6]],">":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]], -C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]};e.exports=function(t,e,r,i){i=i||1;var o,a,s,u,l,c,h,p,f=[];for(o=0,a=t.length;o0?1/(1-t):1+t}function s(t){return t>0?1-1/(1.001-t):-t}function u(t,e,r,n){var i=r.paint["raster-fade-duration"];if(t.sourceCache&&i>0){var o=Date.now(),a=(o-t.timeAdded)/i,s=e?(o-e.timeAdded)/i:-1,u=t.sourceCache.getSource(),c=n.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!e||Math.abs(e.coord.z-c)>Math.abs(t.coord.z-c),p=l.clamp(h?a:1-s,0,1);return e?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var l=t("../util/util");e.exports=n},{"../util/util":129}],33:[function(t,e,r){"use strict";function n(t,e,r,n){if(!t.isOpaquePass){var o=!(r.layout["text-allow-overlap"]||r.layout["icon-allow-overlap"]||r.layout["text-ignore-placement"]||r.layout["icon-ignore-placement"]),a=t.gl;o?a.disable(a.STENCIL_TEST):a.enable(a.STENCIL_TEST),t.setDepthSublayer(0),t.depthMask(!1),i(t,e,r,n,!1,r.paint["icon-translate"],r.paint["icon-translate-anchor"],r.layout["icon-rotation-alignment"],r.layout["icon-rotation-alignment"],r.layout["icon-size"],r.paint["icon-halo-width"],r.paint["icon-halo-color"],r.paint["icon-halo-blur"],r.paint["icon-opacity"],r.paint["icon-color"]),i(t,e,r,n,!0,r.paint["text-translate"],r.paint["text-translate-anchor"],r.layout["text-rotation-alignment"],r.layout["text-pitch-alignment"],r.layout["text-size"],r.paint["text-halo-width"],r.paint["text-halo-color"],r.paint["text-halo-blur"],r.paint["text-opacity"],r.paint["text-color"]),e.map.showCollisionBoxes&&l(t,e,r,n)}}function i(t,e,r,n,i,s,u,l,c,h,p,f,d,m,y){if(i||!t.style.sprite||t.style.sprite.loaded()){var v=t.gl,g="map"===l,_="map"===c,x=_;x?v.enable(v.DEPTH_TEST):v.disable(v.DEPTH_TEST);for(var b,w,E=0,T=n;Ethis.previousZoom;i--)n.changeTimes[i]=t,n.changeOpacities[i]=n.opacities[i];for(i=0;i<256;i++){var o=t-n.changeTimes[i],a=255*(r?o/r:1);i<=e?n.opacities[i]=n.changeOpacities[i]+a:n.opacities[i]=n.changeOpacities[i]-a}this.changed=!0,this.previousZoom=e},n.prototype.bind=function(t){this.texture?(t.bindTexture(t.TEXTURE_2D,this.texture),this.changed&&(t.texSubImage2D(t.TEXTURE_2D,0,0,0,256,1,t.ALPHA,t.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.ALPHA,256,1,0,t.ALPHA,t.UNSIGNED_BYTE,this.array))},e.exports=n},{}],35:[function(t,e,r){"use strict";var n=t("../util/util"),i=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};i.prototype.setSprite=function(t){this.sprite=t},i.prototype.getDash=function(t,e){var r=t.join(",")+e;return this.positions[r]||(this.positions[r]=this.addDash(t,e)),this.positions[r]},i.prototype.addDash=function(t,e){var r=this,i=e?7:0,o=2*i+1,a=128;if(this.nextRow+o>this.height)return n.warnOnce("LineAtlas out of space"),null;for(var s=0,u=0;u0?e.pop():null},v.prototype.getViewportTexture=function(t,e){var r=this.reusableTextures.viewport;if(r)return r.width===t&&r.height===e?r:(this.gl.deleteTexture(r),void(this.reusableTextures.viewport=null))},v.prototype.lineWidth=function(t){this.gl.lineWidth(l.clamp(t,this.lineWidthRange[0],this.lineWidthRange[1]))},v.prototype.showOverdrawInspector=function(t){if(t||this._showOverdrawInspector){this._showOverdrawInspector=t;var e=this.gl;if(t){e.blendFunc(e.CONSTANT_COLOR,e.ONE);var r=8,n=1/r;e.blendColor(n,n,n,0),e.clearColor(0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)}else e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA)}},v.prototype.createProgram=function(t,e){var r=this.gl,i=r.createProgram(),o=m[t],a="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+n.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(a+="#define OVERDRAW_INSPECTOR;\n");var s=r.createShader(r.FRAGMENT_SHADER);r.shaderSource(s,e.applyPragmas(a+m.prelude.fragmentSource+o.fragmentSource,"fragment")),r.compileShader(s),r.attachShader(i,s);var u=r.createShader(r.VERTEX_SHADER);r.shaderSource(u,e.applyPragmas(a+m.prelude.vertexSource+o.vertexSource,"vertex")),r.compileShader(u),r.attachShader(i,u),r.linkProgram(i);for(var l=r.getProgramParameter(i,r.ACTIVE_ATTRIBUTES),c={program:i,numAttributes:l},h=0;h>16,u>>16),i.uniform2f(r.u_pixel_coord_lower,65535&s,65535&u)}},{"../source/pixels_to_tile_units":46}],38:[function(t,e,r){"use strict";t("path");e.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\nuniform lowp vec4 u_outline_color;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n#ifdef OUTLINE\n color = u_outline_color;\n#endif\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n 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, pos);\n 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, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\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\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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n", -vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n"},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_opacity;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * u_opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp vec4 u_color;\nuniform lowp float u_opacity;\nuniform lowp float u_buffer;\nuniform lowp float u_gamma;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n lowp float gamma = u_gamma * v_gamma_scale;\n lowp float alpha = smoothstep(u_buffer - gamma, u_buffer + gamma, dist) * fade_alpha;\n\n gl_FragColor = u_color * (alpha * u_opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec2 a_pos;\nattribute vec2 a_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}},{path:194}],39:[function(t,e,r){"use strict";var n=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};n.prototype.bind=function(t,e,r,n,i,o){void 0===t.extVertexArrayObject&&(t.extVertexArrayObject=t.getExtension("OES_vertex_array_object"));var a=!this.vao||this.boundProgram!==e||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==i||this.boundElementBuffer!==n||this.boundVertexOffset!==o;!t.extVertexArrayObject||a?(this.freshBind(t,e,r,n,i,o),this.gl=t):t.extVertexArrayObject.bindVertexArrayOES(this.vao)},n.prototype.freshBind=function(t,e,r,n,i,o){var a,s=e.numAttributes;if(t.extVertexArrayObject)this.vao&&this.destroy(),this.vao=t.extVertexArrayObject.createVertexArrayOES(),t.extVertexArrayObject.bindVertexArrayOES(this.vao),a=0,this.boundProgram=e,this.boundVertexBuffer=r,this.boundVertexBuffer2=i,this.boundElementBuffer=n,this.boundVertexOffset=o;else{a=t.currentNumAttributes||0;for(var u=s;uthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,i={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:n,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",i,function(n,i){if(t.unloadVectorData(),!t.aborted)return n?e(n):(t.loadVectorData(i,r.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(r)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(i);e.exports=u},{"../data/extent":11,"../util/evented":118,"../util/util":129,"../util/window":112}],42:[function(t,e,r){"use strict";var n=t("../util/ajax"),i=t("geojson-rewind"),o=t("./geojson_wrapper"),a=t("vt-pbf"),s=t("supercluster"),u=t("geojson-vt"),l=t("./vector_tile_worker_source"),c=function(t){function e(e,r,n){t.call(this,e,r),n&&(this.loadGeoJSON=n),this._geoJSONIndexes={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.loadVectorData=function(t,e){var r=t.source,n=t.coord;if(!this._geoJSONIndexes[r])return e(null,null);var i=this._geoJSONIndexes[r].getTile(Math.min(n.z,t.maxZoom),n.x,n.y);if(!i)return e(null,null);var s=new o(i.features);s.name="_geojsonTileLayer";var u=a({layers:{_geojsonTileLayer:s}});0===u.byteOffset&&u.byteLength===u.buffer.byteLength||(u=new Uint8Array(u)),s.rawData=u.buffer,e(null,s)},e.prototype.loadData=function(t,e){var r=function(r,n){var o=this;return r?e(r):"object"!=typeof n?e(new Error("Input data is not a valid GeoJSON object.")):(i(n,!0),void this._indexData(n,t,function(r,n){return r?e(r):(o._geoJSONIndexes[t.source]=n,void e(null))}))}.bind(this);this.loadGeoJSON(t,r)},e.prototype.loadGeoJSON=function(t,e){if(t.url)n.getJSON(t.url,e);else{if("string"!=typeof t.data)return e(new Error("Input data is not a valid GeoJSON object."));try{return e(null,JSON.parse(t.data))}catch(t){return e(new Error("Input data is not a valid GeoJSON object."))}}},e.prototype.removeSource=function(t){this._geoJSONIndexes[t.source]&&delete this._geoJSONIndexes[t.source]},e.prototype._indexData=function(t,e,r){try{e.cluster?r(null,s(e.superclusterOptions).load(t.features)):r(null,u(t,e.geojsonVtOptions))}catch(t){return r(t)}},e}(l);e.exports=c},{"../util/ajax":109,"./geojson_wrapper":43,"./vector_tile_worker_source":55,"geojson-rewind":140,"geojson-vt":144,supercluster:201,"vt-pbf":210}],43:[function(t,e,r){"use strict";var n=t("point-geometry"),i=t("vector-tile").VectorTileFeature,o=t("../data/extent"),a=function(t){var e=this;if(this.type=t.type,1===t.type){this.rawGeometry=[];for(var r=0;re)){var s=Math.pow(2,Math.min(a.coord.z,n._source.maxzoom)-Math.min(t.z,n._source.maxzoom));if(Math.floor(a.coord.x/s)===t.x&&Math.floor(a.coord.y/s)===t.y)for(r[o]=!0,i=!0;a&&a.coord.z-1>t.z;){var u=a.coord.parent(n._source.maxzoom).id;a=n._tiles[u],a&&a.hasData()&&(delete r[o],r[u]=!0)}}}return i},e.prototype.findLoadedParent=function(t,e,r){for(var n=this,i=t.z-1;i>=e;i--){t=t.parent(n._source.maxzoom);var o=n._tiles[t.id];if(o&&o.hasData())return r[t.id]=!0,o;if(n._cache.has(t.id))return r[t.id]=!0, -n._cache.get(t.id)}},e.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/t.tileSize)+1,r=Math.ceil(t.height/t.tileSize)+1,n=e*r,i=5;this._cache.setMaxSize(Math.floor(n*i))},e.prototype.update=function(t){var r=this;if(this._sourceLoaded){var n,i,a,s;this.updateCacheSize(t);var u=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(t)),c=Math.max(u-e.maxOverzooming,this._source.minzoom),h=Math.max(u+e.maxUnderzooming,this._source.minzoom),f={};this._coveredTiles={};var d;for(d=this.used?this._source.coord?[this._source.coord]:t.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],n=0;n=Date.now())&&(r.findLoadedChildren(i,h,f)&&(f[g]=!0),s=r.findLoadedParent(i,c,m),s&&r.addTile(s.coord))}var _;for(_ in m)f[_]||(r._coveredTiles[_]=!0);for(_ in m)f[_]=!0;var x=p.keysDifference(this._tiles,f);for(n=0;nthis._source.maxzoom?Math.pow(2,n-this._source.maxzoom):1;e=new s(r,this._source.tileSize*i,this._source.maxzoom),this.loadTile(e,this._tileLoaded.bind(this,e,t.id))}return e.uses++,this._tiles[t.id]=e,this._source.fire("dataloading",{tile:e,coord:e.coord,dataType:"tile"}),e},e.prototype._setTileReloadTimer=function(t,e){var r=this,n=e.getExpiry();n&&(this._timers[t]=setTimeout(function(){r.reloadTile(t,"expired"),r._timers[t]=void 0},n-(new Date).getTime()))},e.prototype._setCacheInvalidationTimer=function(t,e){var r=this,n=e.getExpiry();n&&(this._cacheTimers[t]=setTimeout(function(){r._cache.remove(t),r._cacheTimers[t]=void 0},n-(new Date).getTime()))},e.prototype.removeTile=function(t){var e=this._tiles[t];if(e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),this._timers[t]=void 0),this._source.fire("data",{tile:e,coord:e.coord,dataType:"tile"}),!(e.uses>0)))if(e.hasData()){var r=e.coord.wrapped().id;this._cache.add(r,e),this._setCacheInvalidationTimer(r,e)}else e.aborted=!0,this.abortTile(e),this.unloadTile(e)},e.prototype.clearTiles=function(){var t=this;for(var e in this._tiles)t.removeTile(e);this._cache.reset()},e.prototype.tilesIn=function(t){for(var e=this,r={},i=this.getIds(),o=1/0,a=1/0,s=-(1/0),u=-(1/0),c=t[0].zoom,p=0;p=0&&g[1].y>=0){for(var _=[],x=0;xe.row){var r=t;t=e,e=r}return{x0:t.column,y0:t.row,x1:e.column,y1:e.row,dx:e.column-t.column,dy:e.row-t.row}}function i(t,e,r,n,i){var o=Math.max(r,Math.floor(e.y0)),a=Math.min(n,Math.ceil(e.y1));if(t.x0===e.x0&&t.y0===e.y0?t.x0+e.dy/t.dy*t.dx0,h=e.dx<0,p=o;pc.dy&&(u=l,l=c,c=u),l.dy>h.dy&&(u=l,l=h,h=u),c.dy>h.dy&&(u=c,c=h,h=u),l.dy&&i(h,l,o,a,s),c.dy&&i(h,c,o,a,s)}function a(t,e,r){for(var n,i="",o=t;o>0;o--)n=1<t?new l(this.z-1,this.x,this.y,this.w):new l(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},l.prototype.wrapped=function(){return new l(this.z,this.x,this.y,0)},l.prototype.children=function(t){if(this.z>=t)return[new l(this.z+1,this.x,this.y,this.w)];var e=this.z+1,r=2*this.x,n=2*this.y;return[new l(e,r,n,this.w),new l(e,r+1,n,this.w),new l(e,r,n+1,this.w),new l(e,r+1,n+1,this.w)]},l.cover=function(t,e,r,n){function i(t,e,i){var o,u,c,h;if(i>=0&&i<=a)for(o=t;othis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,i={url:a(t.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:t.uid,coord:t.coord,zoom:t.coord.z,tileSize:this.tileSize*n,type:this.type,source:this.id,overscaling:n,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID&&"expired"!==t.state?"loading"===t.state?t.reloadCallback=e:this.dispatcher.send("reloadTile",i,r.bind(this),t.workerID):t.workerID=this.dispatcher.send("loadTile",i,r.bind(this))},e.prototype.abortTile=function(t){this.dispatcher.send("abortTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},null,t.workerID)},e}(n);e.exports=s},{"../util/evented":118,"../util/mapbox":125,"../util/util":129,"./load_tilejson":45}],55:[function(t,e,r){"use strict";var n=t("../util/ajax"),i=t("vector-tile"),o=t("pbf"),a=t("./worker_tile"),s=t("../util/util"),u=function(t,e,r){this.actor=t,this.layerIndex=e,r&&(this.loadVectorData=r),this.loading={},this.loaded={}};u.prototype.loadTile=function(t,e){function r(t,r){return delete this.loading[n][i],t?e(t):r?(o.vectorTile=r,o.parse(r,this.layerIndex,this.actor,function(t,n,i){if(t)return e(t);var o={};r.expires&&(o.expires=r.expires),r.cacheControl&&(o.cacheControl=r.cacheControl),e(null,s.extend({rawTileData:r.rawData},n,o),i)}),this.loaded[n]=this.loaded[n]||{},void(this.loaded[n][i]=o)):e(null,null)}var n=t.source,i=t.uid;this.loading[n]||(this.loading[n]={});var o=this.loading[n][i]=new a(t);o.abort=this.loadVectorData(t,r.bind(this))},u.prototype.reloadTile=function(t,e){function r(t,r){if(this.reloadCallback){var n=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,o.layerIndex,o.actor,n)}e(t,r)}var n=this.loaded[t.source],i=t.uid,o=this;if(n&&n[i]){var a=n[i];"parsing"===a.status?a.reloadCallback=e:"done"===a.status&&a.parse(a.vectorTile,this.layerIndex,this.actor,r.bind(a))}},u.prototype.abortTile=function(t){var e=this.loading[t.source],r=t.uid;e&&e[r]&&e[r].abort&&(e[r].abort(),delete e[r])},u.prototype.removeTile=function(t){var e=this.loaded[t.source],r=t.uid;e&&e[r]&&delete e[r]},u.prototype.loadVectorData=function(t,e){function r(t,r){if(t)return e(t);var n=new i.VectorTile(new o(r.data));n.rawData=r.data,n.cacheControl=r.cacheControl,n.expires=r.expires,e(t,n)}var a=n.getArrayBuffer(t.url,r.bind(this));return function(){a.abort()}},u.prototype.redoPlacement=function(t,e){var r=this.loaded[t.source],n=this.loading[t.source],i=t.uid;if(r&&r[i]){var o=r[i],a=o.redoPlacement(t.angle,t.pitch,t.showCollisionBoxes);a.result&&e(null,a.result,a.transferables)}else n&&n[i]&&(n[i].angle=t.angle)},e.exports=u},{"../util/ajax":109,"../util/util":129,"./worker_tile":58,pbf:196,"vector-tile":206}],56:[function(t,e,r){"use strict";var n=t("../util/ajax"),i=t("./image_source"),o=function(t){function e(e,r,n,i){t.call(this,e,r,n,i),this.roundZoom=!0,this.type="video",this.options=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,n.getVideo(e.urls,function(e,r){if(e)return t.fire("error",{error:e});t.video=r,t.video.loop=!0;var n;t.video.addEventListener("playing",function(){n=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(n)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(i);e.exports=o},{"../util/ajax":109,"./image_source":44}],57:[function(t,e,r){"use strict";var n=t("../util/actor"),i=t("../style/style_layer_index"),o=t("./vector_tile_worker_source"),a=t("./geojson_worker_source"),s=t("./rtl_text_plugin"),u=function(t){var e=this;this.self=t,this.actor=new n(t,this),this.layerIndexes={},this.workerSourceTypes={vector:o,geojson:a},this.workerSources={},this.self.registerWorkerSource=function(t,r){if(e.workerSourceTypes[t])throw new Error('Worker source with name "'+t+'" already registered.');e.workerSourceTypes[t]=r},this.self.registerRTLTextPlugin=function(t){if(s.applyArabicShaping||s.processBidirectionalText)throw new Error("RTL text plugin already registered.");s.applyArabicShaping=t.applyArabicShaping,s.processBidirectionalText=t.processBidirectionalText}};u.prototype.setLayers=function(t,e){this.getLayerIndex(t).replace(e)},u.prototype.updateLayers=function(t,e){this.getLayerIndex(t).update(e.layers,e.removedIds,e.symbolOrder)},u.prototype.loadTile=function(t,e,r){this.getWorkerSource(t,e.type).loadTile(e,r)},u.prototype.reloadTile=function(t,e,r){this.getWorkerSource(t,e.type).reloadTile(e,r)},u.prototype.abortTile=function(t,e){this.getWorkerSource(t,e.type).abortTile(e)},u.prototype.removeTile=function(t,e){this.getWorkerSource(t,e.type).removeTile(e)},u.prototype.removeSource=function(t,e){var r=this.getWorkerSource(t,e.type);void 0!==r.removeSource&&r.removeSource(e)},u.prototype.redoPlacement=function(t,e,r){this.getWorkerSource(t,e.type).redoPlacement(e,r)},u.prototype.loadWorkerSource=function(t,e,r){try{this.self.importScripts(e.url),r()}catch(t){r(t)}},u.prototype.loadRTLTextPlugin=function(t,e,r){try{s.applyArabicShaping||s.processBidirectionalText||this.self.importScripts(e)}catch(t){r(t)}},u.prototype.getLayerIndex=function(t){var e=this.layerIndexes[t];return e||(e=this.layerIndexes[t]=new i),e},u.prototype.getWorkerSource=function(t,e){var r=this;if(this.workerSources[t]||(this.workerSources[t]={}),!this.workerSources[t][e]){var n={send:function(e,n,i,o){r.actor.send(e,n,i,o,t)}};this.workerSources[t][e]=new this.workerSourceTypes[e](n,this.getLayerIndex(t))}return this.workerSources[t][e]},e.exports=function(t){return new u(t)}},{"../style/style_layer_index":71,"../util/actor":108,"./geojson_worker_source":42,"./rtl_text_plugin":49,"./vector_tile_worker_source":55}],58:[function(t,e,r){"use strict";function n(t,e){for(var r=0,n=t.layers;r=P.maxzoom||P.layout&&"none"===P.layout.visibility)){for(var L=0,C=M;L=0;D--){var O=y[e.symbolOrder[D]];O&&f.symbolBuckets.push(O)}if(0===this.symbolBuckets.length)return R(new a(this.angle,this.pitch,this.collisionBoxArray));var B=0,j=Object.keys(g.iconDependencies),F=l.mapObject(g.glyphDependencies,function(t){return Object.keys(t).map(Number)}),U=function(t){if(t)return p(t);if(B++,2===B){for(var e=new a(f.angle,f.pitch,f.collisionBoxArray),r=0,i=f.symbolBuckets;r=(new Date).getTime()}),!this.times.length},n.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},n.prototype.cancel=function(t){this.times=this.times.filter(function(e){return e.id!==t})},e.exports=n},{}],60:[function(t,e,r){"use strict";var n=t("../util/evented"),i=t("../util/ajax"),o=t("../util/browser"),a=t("../util/mapbox").normalizeSpriteURL,s=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},u=function(t){function e(e,r){var n=this;t.call(this),this.base=e,this.retina=o.devicePixelRatio>1,this.setEventedParent(r);var s=this.retina?"@2x":"";i.getJSON(a(e,s,".json"),function(t,e){return t?void n.fire("error",{error:t}):(n.data=e,void(n.imgData&&n.fire("data",{dataType:"style"})))}),i.getImage(a(e,s,".png"),function(t,e){if(t)return void n.fire("error",{error:t});n.imgData=o.getImageData(e);for(var r=0;r1!==this.retina){var r=new e(this.base);r.on("data",function(){t.data=r.data,t.imgData=r.imgData,t.width=r.width,t.retina=r.retina})}},e.prototype.getSpritePosition=function(t){if(!this.loaded())return new s;var e=this.data&&this.data[t];return e&&this.imgData?e:new s},e}(n);e.exports=u},{"../util/ajax":109,"../util/browser":110,"../util/evented":118,"../util/mapbox":125}],61:[function(t,e,r){"use strict";var n=t("./style_spec"),i=t("../util/util"),o=t("../util/evented"),a=t("./validate_style"),s=t("./style_declaration"),u=t("./style_transition"),l="-transition",c=function(t){function e(e){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=n.light,this.set(e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.set=function(t){var e=this;if(!this._validate(a.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=i.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var r=0,n=this.properties;rMath.floor(t)&&(e.lastIntegerZoom=Math.floor(t+1),e.lastIntegerZoomTime=Date.now()),e.lastZoom=t},e.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},e.prototype.update=function(t,e){var r=this;if(this._changed){var n=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(n.length||i.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(n,i);for(var o in this._updatedSources){var a=r._updatedSources[o];"reload"===a?r._reloadSource(o):"clear"===a&&r._clearSource(o)}this._applyClasses(t,e),this._resetUpdates(),this.fire("data",{dataType:"style"})}},e.prototype._updateWorkerLayers=function(t,e){var r=this,n=this._updatedSymbolOrder?this._order.filter(function(t){return"symbol"===r._layers[t].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(t),removedIds:e,symbolOrder:n})},e.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={}, -this._updatedAllPaintProps=!1},e.prototype.setState=function(t){var e=this;if(this._checkLoaded(),y.emitErrors(this,y(t)))return!1;t=c.extend({},t),t.layers=E(t.layers);var r=T(this.serialize(),t).filter(function(t){return!(t.command in A)});if(0===r.length)return!1;var n=r.filter(function(t){return!(t.command in z)});if(n.length>0)throw new Error("Unimplemented: "+n.map(function(t){return t.command}).join(", ")+".");return r.forEach(function(t){"setTransition"!==t.command&&e[t.command].apply(e,t.args)}),this.stylesheet=t,!0},e.prototype.addSource=function(t,e,r){if(this._checkLoaded(),void 0!==this.sourceCaches[t])throw new Error("There is already a source with this ID");if(!e.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(e)+".");var n=["vector","raster","geojson","video","image","canvas"],i=n.indexOf(e.type)>=0;if(!i||!this._validate(y.source,"sources."+t,e,null,r)){var o=this.sourceCaches[t]=new _(t,e,this.dispatcher);o.style=this,o.setEventedParent(this,function(){return{isSourceLoaded:o.loaded(),source:o.serialize(),sourceId:t}}),o.onAdd(this.map),this._changed=!0}},e.prototype.removeSource=function(t){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error("There is no source with this ID");var e=this.sourceCaches[t];delete this.sourceCaches[t],delete this._updatedSources[t],e.setEventedParent(null),e.clearTiles(),e.onRemove&&e.onRemove(this.map),this._changed=!0},e.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},e.prototype.addLayer=function(t,e,r){this._checkLoaded();var n=t.id;if("object"==typeof t.source&&(this.addSource(n,t.source),t=c.extend(t,{source:n})),!this._validate(y.layer,"layers."+n,t,{arrayIndex:-1},r)){var o=i.create(t);this._validateLayer(o),o.setEventedParent(this,{layer:{id:n}});var a=e?this._order.indexOf(e):this._order.length;if(this._order.splice(a,0,n),this._layers[n]=o,this._removedLayers[n]&&o.source){var s=this._removedLayers[n];delete this._removedLayers[n],this._updatedSources[o.source]=s.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(n)}},e.prototype.moveLayer=function(t,e){this._checkLoaded(),this._changed=!0;var r=this._layers[t];if(!r)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be moved.")});var n=this._order.indexOf(t);this._order.splice(n,1);var i=e?this._order.indexOf(e):this._order.length;this._order.splice(i,0,t),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},e.prototype.removeLayer=function(t){this._checkLoaded();var e=this._layers[t];if(!e)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be removed.")});e.setEventedParent(null);var r=this._order.indexOf(t);this._order.splice(r,1),"symbol"===e.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[t]=e,delete this._layers[t],delete this._updatedLayers[t],delete this._updatedPaintProps[t]},e.prototype.getLayer=function(t){return this._layers[t]},e.prototype.setLayerZoomRange=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);return n?void(n.minzoom===e&&n.maxzoom===r||(null!=e&&(n.minzoom=e),null!=r&&(n.maxzoom=r),this._updateLayer(n))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot have zoom extent.")})},e.prototype.setFilter=function(t,e){this._checkLoaded();var r=this.getLayer(t);return r?void(null!==e&&void 0!==e&&this._validate(y.filter,"layers."+r.id+".filter",e)||c.deepEqual(r.filter,e)||(r.filter=c.clone(e),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be filtered.")})},e.prototype.getFilter=function(t){return c.clone(this.getLayer(t).filter)},e.prototype.setLayoutProperty=function(t,e,r){this._checkLoaded();var n=this.getLayer(t);return n?void(c.deepEqual(n.getLayoutProperty(e),r)||(n.setLayoutProperty(e,r),this._updateLayer(n))):void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")})},e.prototype.getLayoutProperty=function(t,e){return this.getLayer(t).getLayoutProperty(e)},e.prototype.setPaintProperty=function(t,e,r,n){this._checkLoaded();var i=this.getLayer(t);if(!i)return void this.fire("error",{error:new Error("The layer '"+t+"' does not exist in the map's style and cannot be styled.")});if(!c.deepEqual(i.getPaintProperty(e,n),r)){var o=i.isPaintValueFeatureConstant(e);i.setPaintProperty(e,r,n);var a=!(r&&b.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&o||this._updateLayer(i),this.updateClasses(t,e)}},e.prototype.getPaintProperty=function(t,e,r){return this.getLayer(t).getPaintProperty(e,r)},e.prototype.getTransition=function(){return c.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},e.prototype.updateClasses=function(t,e){if(this._changed=!0,t){var r=this._updatedPaintProps;r[t]||(r[t]={}),r[t][e||"all"]=!0}else this._updatedAllPaintProps=!0},e.prototype.serialize=function(){var t=this;return c.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:c.mapObject(this.sourceCaches,function(t){return t.serialize()}),layers:this._order.map(function(e){return t._layers[e].serialize()})},function(t){return void 0!==t})},e.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&(this._updatedSources[t.source]="reload"),this._changed=!0},e.prototype._flattenRenderedFeatures=function(t){for(var e=this,r=[],n=this._order.length-1;n>=0;n--)for(var i=e._order[n],o=0,a=t;o=this.maxzoom)||"none"===this.layout.visibility},e.prototype.updatePaintTransitions=function(t,e,r,n,o){for(var a=this,s=i.extend({},this._paintDeclarations[""]),u=0;u=this.endTime)return n;var o=this.oldTransition.calculate(t,e,this.startTime),a=i.easeCubicInOut((r-this.startTime-this.delay)/this.duration);return this.interp(o,n,a)},s.prototype._calculateTargetValue=function(t,e){if(!this.zoomTransitioned)return this.declaration.calculate(t,e);var r=t.zoom,n=this.zoomHistory.lastIntegerZoom,i=r>n?2:.5,a=this.declaration.calculate({zoom:r>n?r-1:r+1},e),s=this.declaration.calculate({zoom:r},e),u=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(r-n),c=o(u,1,l);return void 0!==a&&void 0!==s?{from:a,fromScale:i,to:s,toScale:1,t:c}:void 0},e.exports=s},{"../util/interpolate":121,"../util/util":129}],74:[function(t,e,r){"use strict";e.exports=t("mapbox-gl-style-spec/lib/validate_style.min"),e.exports.emitErrors=function(t,e){if(e&&e.length){for(var r=0;r-r/2;){if(a--,a<0)return!1;s-=t[a].dist(o),o=t[a]}s+=t[a].dist(t[a+1]),a++;for(var u=[],l=0;sn;)l-=u.shift().angleDelta;if(l>i)return!1;a++,s+=h.dist(p)}return!0}e.exports=n},{}],77:[function(t,e,r){"use strict";function n(t,e,r,n,o){for(var a=[],s=0;s=n&&p.x>=n||(h.x>=n?h=new i(n,h.y+(p.y-h.y)*((n-h.x)/(p.x-h.x)))._round():p.x>=n&&(p=new i(n,h.y+(p.y-h.y)*((n-h.x)/(p.x-h.x)))._round()),h.y>=o&&p.y>=o||(h.y>=o?h=new i(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round():p.y>=o&&(p=new i(h.x+(p.x-h.x)*((o-h.y)/(p.y-h.y)),o)._round()),u&&h.equals(u[u.length-1])||(u=[h],a.push(u)),u.push(p)))))}return a}var i=t("point-geometry");e.exports=n},{"point-geometry":197}],78:[function(t,e,r){"use strict";var n=t("../util/struct_array"),i=t("point-geometry"),o=n({members:[{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:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(o.prototype.StructType.prototype,"anchorPoint",{get:function(){return new i(this.anchorPointX,this.anchorPointY)}}),e.exports=o},{"../util/struct_array":127,"point-geometry":197}],79:[function(t,e,r){"use strict";var n=function(t,e,r,n,i,o,a,s,u,l,c){var h=a.top*s-u,p=a.bottom*s+u,f=a.left*s-u,d=a.right*s+u;if(this.boxStartIndex=t.length,l){var m=p-h,y=d-f;if(m>0)if(m=Math.max(10*s,m),c){var v=e[r.segment+1].sub(e[r.segment])._unit()._mult(y),g=[r.sub(v),r.add(v)];this._addLineCollisionBoxes(t,g,r,0,y,m,n,i,o)}else this._addLineCollisionBoxes(t,e,r,r.segment,y,m,n,i,o)}else t.emplaceBack(r.x,r.y,f,h,d,p,1/0,n,i,o,0,0,0,0,0);this.boxEndIndex=t.length};n.prototype._addLineCollisionBoxes=function(t,e,r,n,i,o,a,s,u){var l=o/2,c=Math.floor(i/l),h=-o/2,p=this.boxes,f=r,d=n+1,m=h;do{if(d--,d<0)return p;m-=e[d].dist(f),f=e[d]}while(m>-i/2);for(var y=e[d].dist(e[d+1]),v=0;v=e.length)return p;y=e[d].dist(e[d+1])}var _=g-m,x=e[d],b=e[d+1],w=b.sub(x)._unit()._mult(_)._add(x)._round(),E=Math.max(Math.abs(g-h)-l/2,0),T=i/2/E;t.emplaceBack(w.x,w.y,-o/2,-o/2,o/2,o/2,T,a,s,u,0,0,0,0,0)}return p},e.exports=n},{}],80:[function(t,e,r){"use strict";var n=t("point-geometry"),i=t("../data/extent"),o=t("grid-index"),a=t("../util/intersection_tests"),s=function(t,e,r){if("object"==typeof t){var n=t;r=e,t=n.angle,e=n.pitch,this.grid=new o(n.grid),this.ignoredGrid=new o(n.ignoredGrid)}else this.grid=new o(i,12,6),this.ignoredGrid=new o(i,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),s=Math.cos(t);if(this.rotationMatrix=[s,-a,a,s],this.reverseRotationMatrix=[s,a,-a,s],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=r,0===r.length){r.emplaceBack();var u=32767;r.emplaceBack(0,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(i,0,0,-u,0,u,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,0,-u,0,u,0,u,0,0,0,0,0,0,0,0,0),r.emplaceBack(0,i,-u,0,u,0,u,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=r.get(0),this.edges=[r.get(1),r.get(2),r.get(3),r.get(4)]};s.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),r=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(r)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:r}},s.prototype.placeCollisionFeature=function(t,e,r){for(var i=this,o=this.collisionBoxArray,a=this.minScale,s=this.rotationMatrix,u=this.yStretch,l=t.boxStartIndex;l=i.maxScale)return a}if(r){var w;if(i.angle){var E=i.reverseRotationMatrix,T=new n(c.x1,c.y1).matMult(E),S=new n(c.x2,c.y1).matMult(E),z=new n(c.x1,c.y2).matMult(E),A=new n(c.x2,c.y2).matMult(E);w=i.tempCollisionBox,w.anchorPointX=c.anchorPoint.x,w.anchorPointY=c.anchorPoint.y,w.x1=Math.min(T.x,S.x,z.x,A.x),w.y1=Math.min(T.y,S.x,z.x,A.x),w.x2=Math.max(T.x,S.x,z.x,A.x),w.y2=Math.max(T.y,S.x,z.x,A.x),w.maxScale=c.maxScale}else w=c;for(var M=0;M=i.maxScale)return a}}}return a},s.prototype.queryRenderedSymbols=function(t,e){var r={},i=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return i;for(var o=this.collisionBoxArray,s=this.rotationMatrix,u=this.yStretch,l=[],c=1/0,h=1/0,p=-(1/0),f=-(1/0),d=0;dE.maxScale)){var z=E.anchorPoint.matMult(s),A=z.x+E.x1/e,M=z.y+E.y1/e*u,P=z.x+E.x2/e,L=z.y+E.y2/e*u,C=[new n(A,M),new n(P,M),new n(P,L),new n(A,L)];a.polygonIntersectsPolygon(l,C)&&(r[T][S]=!0,i.push(g[w]))}}return i},s.prototype.getPlacementScale=function(t,e,r,n,i){var o=e.x-n.x,a=e.y-n.y,s=(i.x1-r.x2)/o,u=(i.x2-r.x1)/o,l=(i.y1-r.y2)*this.yStretch/a,c=(i.y2-r.y1)*this.yStretch/a;(isNaN(s)||isNaN(u))&&(s=u=1),(isNaN(l)||isNaN(c))&&(l=c=1);var h=Math.min(Math.max(s,u),Math.max(l,c)),p=i.maxScale,f=r.maxScale;return h>p&&(h=p),h>f&&(h=f),h>t&&h>=i.placementScale&&(t=h),t},s.prototype.insertCollisionFeature=function(t,e,r){for(var n=this,i=r?this.ignoredGrid:this.grid,o=this.collisionBoxArray,a=t.boxStartIndex;a=0&&S=0&&z=0&&v+f<=d){var A=new a(S,z,E,_)._round();n&&!s(t,A,l,n,u)||g.push(A)}}y+=w}return h||g.length||c||(g=i(t,y/2,r,n,u,l,c,!0,p)),g}var o=t("../util/interpolate"),a=t("../symbol/anchor"),s=t("./check_max_angle");e.exports=n},{"../symbol/anchor":75,"../util/interpolate":121,"./check_max_angle":76}],82:[function(t,e,r){"use strict";var n=t("shelf-pack"),i=t("../util/util"),o=4,a=128,s=2048,u=function(){ -this.width=a,this.height=a,this.bin=new n(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};u.prototype.getGlyphs=function(){var t,e,r,n={};for(var i in this.ids)t=i.split("#"),e=t[0],r=t[1],n[e]||(n[e]=[]),n[e].push(r);return n},u.prototype.getRects=function(){var t,e,r,n=this,i={};for(var o in this.ids)t=o.split("#"),e=t[0],r=t[1],i[e]||(i[e]={}),i[e][r]=n.index[o];return i},u.prototype.addGlyph=function(t,e,r,n){var o=this;if(!r)return null;var a=e+"#"+r.id;if(this.index[a])return this.ids[a].indexOf(t)<0&&this.ids[a].push(t),this.index[a];if(!r.bitmap)return null;var s=r.width+2*n,u=r.height+2*n,l=1,c=s+2*l,h=u+2*l;c+=4-c%4,h+=4-h%4;var p=this.bin.packOne(c,h);if(p||(this.resize(),p=this.bin.packOne(c,h)),!p)return i.warnOnce("glyph bitmap overflow"),null;this.index[a]=p,this.ids[a]=[t];for(var f=this.data,d=r.bitmap,m=0;m=s||r>=s)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=o,this.height*=o,this.bin.resize(this.width,this.height);for(var n=new ArrayBuffer(this.width*this.height),i=0;i65535)return r("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var i=this.loading[t];if(i[e])i[e].push(r);else{i[e]=[r];var a=256*e+"-"+(256*e+255),u=n(t,a,this.url);o.getArrayBuffer(u,function(t,r){for(var n=!t&&new s(new l(r.data)),o=0;o1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},u.prototype.addIcons=function(t,e){for(var r=this,n=0;n1||(E?(clearTimeout(E),E=null,v("dblclick",e)):E=setTimeout(f,300))}function c(t){g("touchmove",t)}function h(t){g("touchend",t)}function p(t){g("touchcancel",t)}function f(){E=null}function d(t){var e=n.mousePos(_,t);e.equals(w)&&v("click",t)}function m(t){v("dblclick",t),t.preventDefault()}function y(e){var r=t.dragRotate&&t.dragRotate.isActive();b||r?b&&(x=e):v("contextmenu",e),e.preventDefault()}function v(e,r){var i=n.mousePos(_,r);return t.fire(e,{lngLat:t.unproject(i),point:i,originalEvent:r})}function g(e,r){var o=n.touchPos(_,r),a=o.reduce(function(t,e,r,n){return t.add(e.div(n.length))},new i(0,0));return t.fire(e,{lngLat:t.unproject(a),point:a,lngLats:o.map(function(e){return t.unproject(e)},this),points:o,originalEvent:r})}var _=t.getCanvasContainer(),x=null,b=!1,w=null,E=null;for(var T in o)t[T]=new o[T](t,e),e.interactive&&e[T]&&t[T].enable(e[T]);_.addEventListener("mouseout",r,!1),_.addEventListener("mousedown",a,!1),_.addEventListener("mouseup",s,!1),_.addEventListener("mousemove",u,!1),_.addEventListener("touchstart",l,!1),_.addEventListener("touchend",h,!1),_.addEventListener("touchmove",c,!1),_.addEventListener("touchcancel",p,!1),_.addEventListener("click",d,!1),_.addEventListener("dblclick",m,!1),_.addEventListener("contextmenu",y,!1)}},{"../util/dom":117,"./handler/box_zoom":97,"./handler/dblclick_zoom":98,"./handler/drag_pan":99,"./handler/drag_rotate":100,"./handler/keyboard":101,"./handler/scroll_zoom":102,"./handler/touch_zoom_rotate":103,"point-geometry":197}],92:[function(t,e,r){"use strict";var n=t("../util/util"),i=t("../util/interpolate"),o=t("../util/browser"),a=t("../geo/lng_lat"),s=t("../geo/lng_lat_bounds"),u=t("point-geometry"),l=t("../util/evented"),c=function(t){function e(e,r){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=r.bearingSnap}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCenter=function(){return this.transform.center},e.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e),this},e.prototype.panBy=function(t,e,r){return this.panTo(this.transform.center,n.extend({offset:u.convert(t).mult(-1)},e),r),this},e.prototype.panTo=function(t,e,r){return this.easeTo(n.extend({center:t},e),r)},e.prototype.getZoom=function(){return this.transform.zoom},e.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},e.prototype.zoomTo=function(t,e,r){return this.easeTo(n.extend({zoom:t},e),r)},e.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},e.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},e.prototype.getBearing=function(){return this.transform.bearing},e.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},e.prototype.rotateTo=function(t,e,r){return this.easeTo(n.extend({bearing:t},e),r)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,n.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())180&&(c.center.lng>0&&m.lng<0?m.lng+=360:c.center.lng<0&&m.lng>0&&(m.lng-=360));var _=c.zoomScale(y-p),x=c.point,b="center"in t?c.project(m).sub(h.div(_)):x,w=t.curve,E=Math.max(c.width,c.height),T=E/_,S=b.sub(x).mag();if("minZoom"in t){var z=n.clamp(Math.min(t.minZoom,p,y),c.minZoom,c.maxZoom),A=E/c.zoomScale(z-p);w=Math.sqrt(A/S*2)}var M=w*w,P=r(0),L=function(t){return s(P)/s(P+w*t)},C=function(t){return E*((s(P)*l(P+w*t)-o(P))/M)/S},k=(r(1)-P)/w;if(Math.abs(S)<1e-6){if(Math.abs(E-T)<1e-6)return this.easeTo(t);var I=T=0)return!1;return!0}),this._container.innerHTML=t.join(" | "),this._editLink=null}},o.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},e.exports=o},{"../../util/dom":117,"../../util/util":129}],94:[function(t,e,r){"use strict";function n(t){void 0!==i?t(i):void 0!==s.navigator.permissions?s.navigator.permissions.query({name:"geolocation"}).then(function(e){i="denied"!==e.state,t(i)}):(i=!!s.navigator.geolocation,t(i))}var i,o=t("../../util/evented"),a=t("../../util/dom"),s=t("../../util/window"),u=t("../../util/util"),l={enableHighAccuracy:!1,timeout:6e3},c="mapboxgl-ctrl",h=function(t){function e(e){t.call(this),this.options=e||{},u.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onAdd=function(t){return this._map=t,this._container=a.create("div",c+" "+c+"-group"),n(this._setupUI),this._container},e.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},e.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},e.prototype._onError=function(t){this.fire("error",t),this._finish()},e.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},e.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=a.create("button",c+"-icon "+c+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},e.prototype._onClickGeolocate=function(){var t=u.extend(l,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),s.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=s.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(s.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},e}(o);e.exports=h},{"../../util/dom":117,"../../util/evented":118,"../../util/util":129,"../../util/window":112}],95:[function(t,e,r){"use strict";function n(t){return new o.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var i=t("../../util/dom"),o=t("../../util/window"),a=t("../../util/util"),s="mapboxgl-ctrl",u=function(){a.bindAll(["_rotateCompassArrow"],this)};u.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},u.prototype.onAdd=function(t){return this._map=t,this._container=i.create("div",s+" "+s+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(s+"-icon "+s+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(s+"-icon "+s+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(s+"-icon "+s+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=i.create("span","arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},u.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},u.prototype._onContextMenu=function(t){t.preventDefault()},u.prototype._onCompassDown=function(t){0===t.button&&(i.disableDrag(),o.document.addEventListener("mousemove",this._onCompassMove),o.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(n(t)),t.stopPropagation())},u.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(n(t)),t.stopPropagation())},u.prototype._onCompassUp=function(t){0===t.button&&(o.document.removeEventListener("mousemove",this._onCompassMove),o.document.removeEventListener("mouseup",this._onCompassUp), -i.enableDrag(),this._map.getCanvasContainer().dispatchEvent(n(t)),t.stopPropagation())},u.prototype._createButton=function(t,e,r){var n=i.create("button",t,this._container);return n.type="button",n.setAttribute("aria-label",e),n.addEventListener("click",function(){r()}),n},e.exports=u},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],96:[function(t,e,r){"use strict";function n(t,e,r){var n=r&&r.maxWidth||100,a=t._container.clientHeight/2,s=o(t.unproject([0,a]),t.unproject([n,a]));if(r&&"imperial"===r.unit){var u=3.2808*s;if(u>5280){var l=u/5280;i(e,n,l,"mi")}else i(e,n,u,"ft")}else i(e,n,s,"m")}function i(t,e,r,n){var i=a(r),o=i/r;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*o+"px",t.innerHTML=i+n}function o(t,e){var r=6371e3,n=Math.PI/180,i=t.lat*n,o=e.lat*n,a=Math.sin(i)*Math.sin(o)+Math.cos(i)*Math.cos(o)*Math.cos((e.lng-t.lng)*n),s=r*Math.acos(Math.min(a,1));return s}function a(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),r=t/e;return r=r>=10?10:r>=5?5:r>=3?3:r>=2?2:1,e*r}var s=t("../../util/dom"),u=t("../../util/util"),l=function(t){this.options=t,u.bindAll(["_onMove"],this)};l.prototype.getDefaultPosition=function(){return"bottom-left"},l.prototype._onMove=function(){n(this._map,this._container,this.options)},l.prototype.onAdd=function(t){return this._map=t,this._container=s.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},l.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},e.exports=l},{"../../util/dom":117,"../../util/util":129}],97:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../geo/lng_lat_bounds"),o=t("../../util/util"),a=t("../../util/window"),s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),o.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.isActive=function(){return!!this._active},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},s.prototype._onMouseDown=function(t){t.shiftKey&&0===t.button&&(a.document.addEventListener("mousemove",this._onMouseMove,!1),a.document.addEventListener("keydown",this._onKeyDown,!1),a.document.addEventListener("mouseup",this._onMouseUp,!1),n.disableDrag(),this._startPos=n.mousePos(this._el,t),this._active=!0)},s.prototype._onMouseMove=function(t){var e=this._startPos,r=n.mousePos(this._el,t);this._box||(this._box=n.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var i=Math.min(e.x,r.x),o=Math.max(e.x,r.x),a=Math.min(e.y,r.y),s=Math.max(e.y,r.y);n.setTransform(this._box,"translate("+i+"px,"+a+"px)"),this._box.style.width=o-i+"px",this._box.style.height=s-a+"px"},s.prototype._onMouseUp=function(t){if(0===t.button){var e=this._startPos,r=n.mousePos(this._el,t),o=(new i).extend(this._map.unproject(e)).extend(this._map.unproject(r));this._finish(),e.x===r.x&&e.y===r.y?this._fireEvent("boxzoomcancel",t):this._map.fitBounds(o,{linear:!0}).fire("boxzoomend",{originalEvent:t,boxZoomBounds:o})}},s.prototype._onKeyDown=function(t){27===t.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",t))},s.prototype._finish=function(){this._active=!1,a.document.removeEventListener("mousemove",this._onMouseMove,!1),a.document.removeEventListener("keydown",this._onKeyDown,!1),a.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),n.enableDrag()},s.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},e.exports=s},{"../../geo/lng_lat_bounds":20,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],98:[function(t,e,r){"use strict";var n=function(t){this._map=t,this._onDblClick=this._onDblClick.bind(this)};n.prototype.isEnabled=function(){return!!this._enabled},n.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},n.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},n.prototype._onDblClick=function(t){this._map.zoomTo(this._map.getZoom()+(t.originalEvent.shiftKey?-1:1),{around:t.lngLat},t)},e.exports=n},{}],99:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/window"),a=.3,s=i.bezier(0,0,a,1),u=1400,l=2500,c=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(o.document.addEventListener("touchmove",this._onMove),o.document.addEventListener("touchend",this._onTouchEnd)):(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onMouseUp)),this._active=!1,this._startPos=this._pos=n.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=n.mousePos(this._el,t),r=this._map;r.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),r.transform.setLocationAtPoint(r.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},c.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var r=function(){return e._fireEvent("moveend",t)},n=this._inertia;if(n.length<2)return void r();var i=n[n.length-1],o=n[0],c=i[1].sub(o[1]),h=(i[0]-o[0])/1e3;if(0===h||i[1].equals(o[1]))return void r();var p=c.mult(a/h),f=p.mag();f>u&&(f=u,p._unit()._mult(f));var d=f/(l*a),m=p.mult(-d/2);this._map.panBy(m,{duration:1e3*d,easing:s,noMoveStart:!0},{originalEvent:t})}},c.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onMouseUp))},c.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onTouchEnd))},c.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},c.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var r=1,n=0;return"mousemove"===t.type?t.buttons&0===r:t.button!==n},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],100:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/window"),a=.25,s=i.bezier(0,0,a,1),u=180,l=720,c=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,i.bindAll(["_onDown","_onMove","_onUp"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.isActive=function(){return!!this._active},c.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},c.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(o.document.addEventListener("mousemove",this._onMove),o.document.addEventListener("mouseup",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=n.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},c.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var r=this._pos,i=n.mousePos(this._el,t),o=.8*(r.x-i.x),a=(r.y-i.y)*-.5,s=e.getBearing()-o,u=e.getPitch()-a,l=this._inertia,c=l[l.length-1];this._drainInertiaBuffer(),l.push([Date.now(),e._normalizeBearing(s,c[1])]),e.transform.bearing=s,this._pitchWithRotate&&(e.transform.pitch=u),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=i}},c.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(o.document.removeEventListener("mousemove",this._onMove),o.document.removeEventListener("mouseup",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var r=this._map,n=r.getBearing(),i=this._inertia,c=function(){Math.abs(n)u&&(g=u);var _=g/(l*a),x=y*g*(_/2);d+=x,Math.abs(r._normalizeBearing(d,0))1;var r=t.ctrlKey?1:2,n=t.ctrlKey?0:2,i=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&o.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(i=0),"mousemove"===t.type?t.buttons&0===r:i!==n},c.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>0&&e-t[0][0]>r;)t.shift()},e.exports=c},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],101:[function(t,e,r){"use strict";function n(t){return t*(2-t)}var i=100,o=15,a=10,s=function(t){this._map=t,this._el=t.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};s.prototype.isEnabled=function(){return!!this._enabled},s.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},s.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},s.prototype._onKeyDown=function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e=0,r=0,s=0,u=0,l=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?r=-1:(t.preventDefault(),u=-1);break;case 39:t.shiftKey?r=1:(t.preventDefault(),u=1);break;case 38:t.shiftKey?s=1:(t.preventDefault(),l=-1);break;case 40:t.shiftKey?s=-1:(l=1,t.preventDefault())}var c=this._map,h=c.getZoom(),p={duration:300,delayEndEvents:500,easing:n,zoom:e?Math.round(h)+e*(t.shiftKey?2:1):h,bearing:c.getBearing()+r*o,pitch:c.getPitch()+s*a,offset:[-u*i,-l*i],center:c.getCenter()};c.easeTo(p,{originalEvent:t})}},e.exports=s},{}],102:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/browser"),a=t("../../util/window"),s=a.navigator.userAgent.toLowerCase(),u=s.indexOf("firefox")!==-1,l=s.indexOf("safari")!==-1&&s.indexOf("chrom")===-1,c=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onWheel","_onTimeout"],this)};c.prototype.isEnabled=function(){return!!this._enabled},c.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},c.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},c.prototype._onWheel=function(t){var e;"wheel"===t.type?(e=t.deltaY,u&&t.deltaMode===a.WheelEvent.DOM_DELTA_PIXEL&&(e/=o.devicePixelRatio),t.deltaMode===a.WheelEvent.DOM_DELTA_LINE&&(e*=40)):"mousewheel"===t.type&&(e=-t.wheelDeltaY,l&&(e/=3));var r=o.now(),i=r-(this._time||0);this._pos=n.mousePos(this._el,t),this._time=r,0!==e&&e%4.000244140625===0?this._type="wheel":0!==e&&Math.abs(e)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=e,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(i*e)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,e+=this._lastValue)),t.shiftKey&&e&&(e/=4),this._type&&this._zoom(-e,t),t.preventDefault()},c.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},c.prototype._zoom=function(t,e){if(0!==t){var r=this._map,n=2/(1+Math.exp(-Math.abs(t/100)));t<0&&0!==n&&(n=1/n);var i=r.ease?r.ease.to:r.transform.scale,o=r.transform.scaleZoom(i*n);r.zoomTo(o,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?r.getCenter():r.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:e})}},e.exports=c},{"../../util/browser":110,"../../util/dom":117,"../../util/util":129,"../../util/window":112}],103:[function(t,e,r){"use strict";var n=t("../../util/dom"),i=t("../../util/util"),o=t("../../util/window"),a=.15,s=i.bezier(0,0,a,1),u=12,l=2.5,c=.15,h=4,p=function(t){this._map=t,this._el=t.getCanvasContainer(),i.bindAll(["_onStart","_onMove","_onEnd"],this)};p.prototype.isEnabled=function(){return!!this._enabled},p.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},p.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},p.prototype.disableRotation=function(){this._rotationDisabled=!0},p.prototype.enableRotation=function(){this._rotationDisabled=!1},p.prototype._onStart=function(t){if(2===t.touches.length){var e=n.mousePos(this._el,t.touches[0]),r=n.mousePos(this._el,t.touches[1]);this._startVec=e.sub(r),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],o.document.addEventListener("touchmove",this._onMove,!1),o.document.addEventListener("touchend",this._onEnd,!1)}},p.prototype._onMove=function(t){if(2===t.touches.length){var e=n.mousePos(this._el,t.touches[0]),r=n.mousePos(this._el,t.touches[1]),i=e.add(r).div(2),o=e.sub(r),a=o.mag()/this._startVec.mag(),s=this._rotationDisabled?0:180*o.angleWith(this._startVec)/Math.PI,u=this._map;if(this._gestureIntent){var l={duration:0,around:u.unproject(i)};"rotate"===this._gestureIntent&&(l.bearing=this._startBearing+s),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(l.zoom=u.transform.scaleZoom(this._startScale*a)),u.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,i]),u.easeTo(l,{originalEvent:t})}else{var p=Math.abs(1-a)>c,f=Math.abs(s)>h;f?this._gestureIntent="rotate":p&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=o,this._startScale=u.transform.scale,this._startBearing=u.transform.bearing)}t.preventDefault()}},p.prototype._onEnd=function(t){o.document.removeEventListener("touchmove",this._onMove),o.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,r=this._map;if(e.length<2)return void r.snapToNorth({},{originalEvent:t});var n=e[e.length-1],i=e[0],c=r.transform.scaleZoom(this._startScale*n[1]),h=r.transform.scaleZoom(this._startScale*i[1]),p=c-h,f=(n[0]-i[0])/1e3,d=n[2];if(0===f||c===h)return void r.snapToNorth({},{originalEvent:t});var m=p*a/f;Math.abs(m)>l&&(m=m>0?l:-l);var y=1e3*Math.abs(m/(u*a)),v=c+m*y/2e3;v<0&&(v=0),r.easeTo({zoom:v,duration:y,easing:s,around:this._aroundCenter?r.getCenter():r.unproject(d)},{originalEvent:t})},p.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),r=160;t.length>2&&e-t[0][0]>r;)t.shift()},e.exports=p},{"../../util/dom":117,"../../util/util":129,"../../util/window":112}],104:[function(t,e,r){"use strict";var n=t("../util/util"),i=t("../util/window"),o=function(){n.bindAll(["_onHashChange","_updateHash"],this)};o.prototype.addTo=function(t){return this._map=t,i.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},o.prototype.remove=function(){return i.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},o.prototype._onHashChange=function(){var t=i.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},o.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),r=this._map.getBearing(),n=this._map.getPitch(),o=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),a="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(o)+"/"+t.lng.toFixed(o);(r||n)&&(a+="/"+Math.round(10*r)/10),n&&(a+="/"+Math.round(n)),i.history.replaceState("","",a)},e.exports=o},{"../util/util":129,"../util/window":112}],105:[function(t,e,r){"use strict";function n(t){t.parentNode&&t.parentNode.removeChild(t)}var i=t("../util/util"),o=t("../util/browser"),a=t("../util/window"),s=t("../util/dom"),u=t("../style/style"),l=t("../style/animation_loop"),c=t("../render/painter"),h=t("../geo/transform"),p=t("./hash"),f=t("./bind_handlers"),d=t("./camera"),m=t("../geo/lng_lat"),y=t("../geo/lng_lat_bounds"),v=t("point-geometry"),g=t("./control/attribution_control"),_=t("mapbox-gl-supported"),x=0,b=20,w={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:x,maxZoom:b,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0},E=function(t){function e(e){var r=this;e=i.extend({},w,e);var n=new h(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,n,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,"string"==typeof e.container){if(this._container=a.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new l,e.maxBounds&&this.setMaxBounds(e.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){r.animationLoop.set(300),r._rerender()}),"undefined"!=typeof a&&(a.addEventListener("online",this._onWindowOnline,!1),a.addEventListener("resize",this._onWindowResize,!1)),f(this,e),this._hash=e.hash&&(new p).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new g),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var r=t.onAdd(this),n=this._controlPositions[e];return e.indexOf("bottom")!==-1?n.insertBefore(r,n.firstChild):n.appendChild(r),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var r=this._classes.indexOf(t);return r<0||""===t?this:(this._classes.splice(r,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var r={},n=0;n=0},e.prototype.getClasses=function(){return i.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],r=t[1];this._resizeCanvas(e,r),this.transform.resize(e,r),this.painter.resize(e,r);var n=this.painter.gl,o=n.getParameter(n.MAX_RENDERBUFFER_SIZE)/2;return(this._canvas.width>o||this._canvas.height>o)&&i.warnOnce("Map is larger than maximum size supported by this system ("+o+"px by "+o+"px)."),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new y(this.transform.pointLocation(new v(0,this.transform.height)),this.transform.pointLocation(new v(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new v(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new v(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=y.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?x:t,t>=x&&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")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(m.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(v.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof v||Array.isArray(t)}var e,r={};return 2===arguments.length?(e=arguments[0],r=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(r=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),r,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[v.convert([0,0]),v.convert([this.transform.width,this.transform.height])]);var r,n=t instanceof v||"number"==typeof t[0];if(n){var i=v.convert(t);r=[i]}else{var o=[v.convert(t[0]),v.convert(t[1])];r=[o[0],new v(o[1].x,o[0].y),o[1],new v(o[0].x,o[1].y),o[0]]}return r=r.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var r=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof u)&&"string"!=typeof t;if(r)try{return this.style.setState(t)&&this._update(!0),this}catch(t){i.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof u?this.style=t:this.style=new u(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,r){return this.style.addSourceType(t,e,r)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,r){return this.style.setLayerZoomRange(t,e,r),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,r,n){return this.style.setPaintProperty(t,e,r,n),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,r){return this.style.getPaintProperty(t,e,r)},e.prototype.setLayoutProperty=function(t,e,r){return this.style.setLayoutProperty(t,e,r),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=s.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=s.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",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");var r=this._containerDimensions();this._resizeCanvas(r[0],r[1]);var n=this._controlContainer=s.create("div","mapboxgl-control-container",t),i=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){i[t]=s.create("div","mapboxgl-ctrl-"+t,n)})},e.prototype._resizeCanvas=function(t,e){var r=a.devicePixelRatio||1;this._canvas.width=r*t,this._canvas.height=r*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=i.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},_.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new c(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&o.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),o.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof a&&a.removeEventListener("resize",this._onWindowResize,!1);var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),n(this._canvasContainer),n(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=o.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},r.showTileBoundaries.get=function(){return!!this._showTileBoundaries},r.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},r.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},r.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},r.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},r.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},r.repaint.get=function(){return!!this._repaint},r.repaint.set=function(t){this._repaint=t,this._update()},r.vertices.get=function(){return!!this._vertices},r.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,r),e}(d);e.exports=E},{"../geo/lng_lat":19, -"../geo/lng_lat_bounds":20,"../geo/transform":21,"../render/painter":36,"../style/animation_loop":59,"../style/style":63,"../util/browser":110,"../util/dom":117,"../util/util":129,"../util/window":112,"./bind_handlers":91,"./camera":92,"./control/attribution_control":93,"./hash":104,"mapbox-gl-supported":193,"point-geometry":197}],106:[function(t,e,r){"use strict";var n=t("../util/dom"),i=t("../geo/lng_lat"),o=t("point-geometry"),a=function(t,e){this._offset=o.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=n.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};a.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},a.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),n.remove(this._element),this._popup&&this._popup.remove(),this},a.prototype.getLngLat=function(){return this._lngLat},a.prototype.setLngLat=function(t){return this._lngLat=i.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},a.prototype.getElement=function(){return this._element},a.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},a.prototype._onMapClick=function(t){var e=t.originalEvent.target,r=this._element;this._popup&&(e===r||r.contains(e))&&this.togglePopup()},a.prototype.getPopup=function(){return this._popup},a.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},a.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),n.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},e.exports=a},{"../geo/lng_lat":19,"../util/dom":117,"point-geometry":197}],107:[function(t,e,r){"use strict";function n(t){if(t){if("number"==typeof t){var e=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new l(0,t),"top-left":new l(e,e),"top-right":new l(-e,e),bottom:new l(0,-t),"bottom-left":new l(e,-e),"bottom-right":new l(-e,-e),left:new l(t,0),right:new l(-t,0)}}if(i(t)){var r=l.convert(t);return{top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return{top:l.convert(t.top||[0,0]),"top-left":l.convert(t["top-left"]||[0,0]),"top-right":l.convert(t["top-right"]||[0,0]),bottom:l.convert(t.bottom||[0,0]),"bottom-left":l.convert(t["bottom-left"]||[0,0]),"bottom-right":l.convert(t["bottom-right"]||[0,0]),left:l.convert(t.left||[0,0]),right:l.convert(t.right||[0,0])}}return n(new l(0,0))}function i(t){return t instanceof l||Array.isArray(t)}var o=t("../util/util"),a=t("../util/evented"),s=t("../util/dom"),u=t("../geo/lng_lat"),l=t("point-geometry"),c=t("../util/window"),h={closeButton:!0,closeOnClick:!0},p=function(t){function e(e){t.call(this),this.options=o.extend(Object.create(h),e),o.bindAll(["_update","_onClickClose"],this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},e.prototype.isOpen=function(){return!!this._map},e.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},e.prototype.getLngLat=function(){return this._lngLat},e.prototype.setLngLat=function(t){return this._lngLat=u.convert(t),this._update(),this},e.prototype.setText=function(t){return this.setDOMContent(c.document.createTextNode(t))},e.prototype.setHTML=function(t){var e,r=c.document.createDocumentFragment(),n=c.document.createElement("body");for(n.innerHTML=t;e=n.firstChild,e;)r.appendChild(e);return this.setDOMContent(r)},e.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},e.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=s.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=s.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},e.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=s.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=s.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,e=n(this.options.offset),r=this._map.project(this._lngLat).round();if(!t){var i=this._container.offsetWidth,o=this._container.offsetHeight;t=r.y+e.bottom.ythis._map.transform.height-o?["bottom"]:[],r.xthis._map.transform.width-i/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var a=r.add(e[t]),u={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%)"},l=this._container.classList;for(var c in u)l.remove("mapboxgl-popup-anchor-"+c);l.add("mapboxgl-popup-anchor-"+t),s.setTransform(this._container,u[t]+" translate("+a.x+"px,"+a.y+"px)")}},e.prototype._onClickClose=function(){this.remove()},e}(a);e.exports=p},{"../geo/lng_lat":19,"../util/dom":117,"../util/evented":118,"../util/util":129,"../util/window":112,"point-geometry":197}],108:[function(t,e,r){"use strict";var n=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};n.prototype.send=function(t,e,r,n,i){var o=r?this.mapId+":"+this.callbackID++:null;r&&(this.callbacks[o]=r),this.target.postMessage({targetMapId:i,sourceMapId:this.mapId,type:t,id:String(o),data:e},n)},n.prototype.receive=function(t){var e,r=this,n=t.data,i=n.id;if(!n.targetMapId||this.mapId===n.targetMapId){var o=function(t,e,n){r.target.postMessage({sourceMapId:r.mapId,type:"",id:String(i),error:t?String(t):null,data:e},n)};if(""===n.type)e=this.callbacks[n.id],delete this.callbacks[n.id],e&&e(n.error||null,n.data);else if("undefined"!=typeof n.id&&this.parent[n.type])this.parent[n.type](n.sourceMapId,n.data,o);else if("undefined"!=typeof n.id&&this.parent.getWorkerSource){var a=n.type.split("."),s=this.parent.getWorkerSource(n.sourceMapId,a[0]);s[a[1]](n.data,o)}else this.parent[n.type](n.data)}},n.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},e.exports=n},{}],109:[function(t,e,r){"use strict";function n(t){var e=i.document.createElement("a");return e.href=t,e.protocol===i.document.location.protocol&&e.host===i.document.location.host}var i=t("./window");r.getJSON=function(t,e){var r=new i.XMLHttpRequest;return r.open("GET",t,!0),r.setRequestHeader("Accept","application/json"),r.onerror=function(t){e(t)},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var t;try{t=JSON.parse(r.response)}catch(t){return e(t)}e(null,t)}else e(new Error(r.statusText))},r.send(),r},r.getArrayBuffer=function(t,e){var r=new i.XMLHttpRequest;return r.open("GET",t,!0),r.responseType="arraybuffer",r.onerror=function(t){e(t)},r.onload=function(){return 0===r.response.byteLength&&200===r.status?e(new Error("http status 200 returned without content.")):void(r.status>=200&&r.status<300&&r.response?e(null,{data:r.response,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):e(new Error(r.statusText)))},r.send(),r};var o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";r.getImage=function(t,e){return r.getArrayBuffer(t,function(t,r){if(t)return e(t);var n=new i.Image,a=i.URL||i.webkitURL;n.onload=function(){e(null,n),a.revokeObjectURL(n.src)};var s=new i.Blob([new Uint8Array(r.data)],{type:"image/png"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?a.createObjectURL(s):o})},r.getVideo=function(t,e){var r=i.document.createElement("video");r.onloadstart=function(){e(null,r)};for(var o=0;o=s+n?t.call(i,1):(t.call(i,(u-s)/n),r.frame(o)))}if(!n)return t.call(i,1),null;var a=!1,s=e.exports.now();return r.frame(o),function(){a=!0}},r.getImageData=function(t){var e=n.document.createElement("canvas"),r=e.getContext("2d");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height).data},r.supported=t("mapbox-gl-supported"),r.hardwareConcurrency=n.navigator.hardwareConcurrency||4,Object.defineProperty(r,"devicePixelRatio",{get:function(){return n.devicePixelRatio}}),r.supportsWebp=!1;var a=n.document.createElement("img");a.onload=function(){r.supportsWebp=!0},a.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="},{"./window":112,"mapbox-gl-supported":193}],111:[function(t,e,r){"use strict";var n=t("webworkify"),i=t("../window"),o=i.URL.createObjectURL(new n(t("../../source/worker"),{bare:!0}));e.exports=function(){return new i.Worker(o)}},{"../../source/worker":57,"../window":112,webworkify:213}],112:[function(t,e,r){"use strict";e.exports=self},{}],113:[function(t,e,r){"use strict";function n(t,e){return e.area-t.area}var i=t("quickselect"),o=t("./util").calculateSignedArea;e.exports=function(t,e){var r=t.length;if(r<=1)return[t];for(var a,s,u=[],l=0;l1)for(var h=0;ht.y!=h.y>t.y&&t.x<(h.x-c.x)*(t.y-c.y)/(h.y-c.y)+c.x&&(r=!r),n=Math.min(n,l(t,c,h))}return(r?1:-1)*Math.sqrt(n)}function a(t){for(var e=0,r=0,n=0,o=t[0],a=0,s=o.length,u=s-1;al)&&(l=f.x),(!p||f.y>c)&&(c=f.y)}for(var d=l-o,m=c-u,y=Math.min(d,m),v=y/2,g=new s(null,n),_=o;_b.d&&(b=E,r&&console.log("found best %d after %d probes",Math.round(1e4*E.d)/1e4,w)),E.max-b.d<=e||(v=E.h/2,g.push(new i(E.p.x-v,E.p.y-v,v,t)),g.push(new i(E.p.x+v,E.p.y-v,v,t)),g.push(new i(E.p.x-v,E.p.y+v,v,t)),g.push(new i(E.p.x+v,E.p.y+v,v,t)),w+=4)}return r&&(console.log("num probes: "+w),console.log("best distance: "+b.d)),b.p}},{"./intersection_tests":122,"point-geometry":197,tinyqueue:202}],120:[function(t,e,r){"use strict";function n(t,e){this.stacks=t.readFields(i,[],e)}function i(t,e,r){if(1===t){var n=r.readMessage(o,{glyphs:{}});e.push(n)}}function o(t,e,r){if(1===t)e.name=r.readString();else if(2===t)e.range=r.readString();else if(3===t){var n=r.readMessage(a,{});e.glyphs[n.id]=n}}function a(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())}e.exports=n},{}],121:[function(t,e,r){"use strict";function n(t,e,r){return t*(1-r)+e*r}e.exports=n,n.number=n,n.vec2=function(t,e,r){return[n(t[0],e[0],r),n(t[1],e[1],r)]},n.color=function(t,e,r){return[n(t[0],e[0],r),n(t[1],e[1],r),n(t[2],e[2],r),n(t[3],e[3],r)]},n.array=function(t,e,r){return t.map(function(t,i){return n(t,e[i],r)})}},{}],122:[function(t,e,r){"use strict";function n(t,e){for(var r=0;r=3)for(var u=0;u1){if(u(t,e))return!0;for(var n=0;n1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function p(t,e){for(var r,n,i,o=!1,a=0;ae.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(o=!o)}return o}function f(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=a.y>e.y&&e.x<(a.x-o.x)*(e.y-o.y)/(a.y-o.y)+o.x&&(r=!r)}return r}var d=t("./util").isCounterClockwise;e.exports={multiPolygonIntersectsBufferedMultiPoint:i,multiPolygonIntersectsMultiPolygon:o,multiPolygonIntersectsBufferedMultiLine:a,polygonIntersectsPolygon:n,distToSegmentSquared:h}},{"./util":129}],123:[function(t,e,r){"use strict";var n={"Latin-1 Supplement":function(t){return t>=128&&t<=255},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};e.exports=n},{}],124:[function(t,e,r){"use strict";var n=function(t,e){this.max=t,this.onRemove=e,this.reset()};n.prototype.reset=function(){var t=this;for(var e in this.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},n.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},n.prototype.has=function(t){return t in this.data},n.prototype.keys=function(){return this.order},n.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},n.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},n.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},e.exports=n},{}],125:[function(t,e,r){"use strict";function n(t,e){var r=a(u.API_URL);if(t.protocol=r.protocol,t.authority=r.authority,!u.REQUIRE_ACCESS_TOKEN)return s(t);if(e=e||u.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+c);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+c);return t.params.push("access_token="+e),s(t)}function i(t){return 0===t.indexOf("mapbox:")}function o(t){for(var e=0;e=2||512===r?"@2x":"",c=l.supportsWebp?".webp":"$1";return n.path=n.path.replace(h,""+u+c),o(n.params),s(n)};var p=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/},{"./browser":110,"./config":114}],126:[function(t,e,r){"use strict";var n=t("./is_char_in_unicode_block");e.exports.allowsIdeographicBreaking=function(t){for(var e=0,n=t;e=65097&&t<=65103)||n["CJK Compatibility Ideographs"](t)||n["CJK Compatibility"](t)||n["CJK Radicals Supplement"](t)||n["CJK Strokes"](t)||!(!n["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||n["CJK Unified Ideographs Extension A"](t)||n["CJK Unified Ideographs"](t)||n["Enclosed CJK Letters and Months"](t)||n["Hangul Compatibility Jamo"](t)||n["Hangul Jamo Extended-A"](t)||n["Hangul Jamo Extended-B"](t)||n["Hangul Jamo"](t)||n["Hangul Syllables"](t)||n.Hiragana(t)||n["Ideographic Description Characters"](t)||n.Kanbun(t)||n["Kangxi Radicals"](t)||n["Katakana Phonetic Extensions"](t)||n.Katakana(t)&&12540!==t||!(!n["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)||!(!n["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||n["Unified Canadian Aboriginal Syllabics"](t)||n["Unified Canadian Aboriginal Syllabics Extended"](t)||n["Vertical Forms"](t)||n["Yijing Hexagram Symbols"](t)||n["Yi Syllables"](t)||n["Yi Radicals"](t)))},r.charHasNeutralVerticalOrientation=function(t){return!!(n["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||n["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)||n["Letterlike Symbols"](t)||n["Number Forms"](t)||n["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)||n["Control Pictures"](t)&&9251!==t||n["Optical Character Recognition"](t)||n["Enclosed Alphanumerics"](t)||n["Geometric Shapes"](t)||n["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||n["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||n["CJK Symbols and Punctuation"](t)||n.Katakana(t)||n["Private Use Area"](t)||n["CJK Compatibility Forms"](t)||n["Small Form Variants"](t)||n["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)},r.charHasRotatedVerticalOrientation=function(t){return!(r.charHasUprightVerticalOrientation(t)||r.charHasNeutralVerticalOrientation(t))}},{"./is_char_in_unicode_block":123}],127:[function(t,e,r){"use strict";function n(t){var e=JSON.stringify(t);if(y[e])return y[e];var r=void 0===t.alignment?1:t.alignment,n=0,a=0,u=["Uint8"],h=t.members.map(function(t){u.indexOf(t.type)<0&&u.push(t.type);var e=o(t.type),s=n=i(n,Math.max(r,e)),l=t.components||1;return a=Math.max(a,e),n+=e*l,{name:t.name,type:t.type,components:l,offset:s}}),f=i(n,Math.max(a,r)),d=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(p);d.prototype.alignment=r,d.prototype.size=f;for(var v=0,g=h;vthis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*d),f),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},m.prototype._refreshViews=function(){for(var t=this,e=0,r=this._usedTypes;e=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)},r.bezier=function(t,e,r,i){var o=new n(t,e,r,i);return function(t){return o.solve(t)}},r.ease=r.bezier(.25,.1,.25,1),r.clamp=function(t,e,r){return Math.min(r,Math.max(e,t))},r.wrap=function(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i},r.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),o=null;t.forEach(function(t,a){e(t,function(t,e){t&&(o=t),i[a]=e,0===--n&&r(o,i)})})},r.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},r.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},r.extend=function(t,e,r,n){for(var i=arguments,o=1;o=0)return!0;return!1};var a={};r.warnOnce=function(t){a[t]||("undefined"!=typeof console&&console.warn(t),a[t]=!0)},r.isCounterClockwise=function(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)},r.calculateSignedArea=function(t){for(var e,r,n=0,i=0,o=t.length,a=o-1;i0||Math.abs(e.y-n.y)>0)&&Math.abs(r.calculateSignedArea(t))>.01},r.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(r)*Math.sin(n),e*Math.sin(r)*Math.sin(n),e*Math.cos(n)]},r.parseCacheControl=function(t){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,r={};if(t.replace(e,function(t,e,n,i){var o=n||i;return r[e]=!o||o.toLowerCase(),""}),r["max-age"]){var n=parseInt(r["max-age"],10);isNaN(n)?delete r["max-age"]:r["max-age"]=n}return r}},{"../geo/coordinate":18,"@mapbox/unitbezier":134,"point-geometry":197}],130:[function(t,e,r){"use strict";var n=function(t,e,r,n){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,null!=t.id&&(this.id=t.id)},i={geometry:{}};i.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},i.geometry.set=function(t){this._geometry=t},n.prototype.toJSON=function(){var t=this,e={geometry:this.geometry};for(var r in this)"_geometry"!==r&&"_vectorTileFeature"!==r&&(e[r]=t[r]);return e},Object.defineProperties(n.prototype,i),e.exports=n},{}],131:[function(t,e,r){"use strict";var n=t("./script_detection");e.exports=function(t){for(var r="",i=0;i":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}},{"./script_detection":126}],132:[function(t,e,r){"use strict";var n=t("./web_worker"),i=function(){this.active={}};i.prototype.acquire=function(e){var r=this;if(!this.workers){var i=t("../mapbox-gl").workerCount;for(this.workers=[];this.workers.lengthn)return n;for(;ro?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},{}],135:[function(t,e,r){function n(t){return t=Math.round(t),t<0?0:t>255?255:t}function i(t){return t<0?0:t>1?1:t}function o(t){return n("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return i("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}function u(t){var e=t.replace(/ /g,"").toLowerCase();if(e in l)return l[e].slice();if("#"===e[0]){if(4===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=4095?[(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1]:null}if(7===e.length){var r=parseInt(e.substr(1),16);return r>=0&&r<=16777215?[(16711680&r)>>16,(65280&r)>>8,255&r,1]:null}return null}var i=e.indexOf("("),u=e.indexOf(")");if(i!==-1&&u+1===e.length){var c=e.substr(0,i),h=e.substr(i+1,u-(i+1)).split(","),p=1;switch(c){case"rgba":if(4!==h.length)return null;p=a(h.pop());case"rgb":return 3!==h.length?null:[o(h[0]),o(h[1]),o(h[2]),p];case"hsla":if(4!==h.length)return null;p=a(h.pop());case"hsl":if(3!==h.length)return null;var f=(parseFloat(h[0])%360+360)%360/360,d=a(h[1]),m=a(h[2]),y=m<=.5?m*(d+1):m+d-m*d,v=2*m-y;return[n(255*s(v,y,f+1/3)),n(255*s(v,y,f)),n(255*s(v,y,f-1/3)),p];default:return null}}return null}var l={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{r.parseCSSColor=u}catch(t){}},{}],136:[function(t,e,r){"use strict";function n(t,e,r){r=r||2;var n=e&&e.length,o=n?e[0]*r:t.length,s=i(t,0,o,r,!0),u=[];if(!s)return u;var l,c,p,f,d,m,y;if(n&&(s=h(t,e,s,r)),t.length>80*r){l=p=t[0],c=f=t[1];for(var v=r;vp&&(p=d),m>f&&(f=m);y=Math.max(p-l,f-c)}return a(s,u,r,l,c,y),u}function i(t,e,r,n,i){var o,a;if(i===C(t,e,r,n)>0)for(o=e;o=e;o-=n)a=M(o,t[o],t[o+1],a);return a&&w(a,a.next)&&(P(a),a=a.next),a}function o(t,e){if(!t)return t;e||(e=t);var r,n=t;do if(r=!1,n.steiner||!w(n,n.next)&&0!==b(n.prev,n,n.next))n=n.next;else{if(P(n),n=e=n.prev,n===n.next)return null;r=!0}while(r||n!==e);return e}function a(t,e,r,n,i,h,p){if(t){!p&&h&&m(t,n,i,h);for(var f,d,y=t;t.prev!==t.next;)if(f=t.prev,d=t.next,h?u(t,n,i,h):s(t))e.push(f.i/r),e.push(t.i/r),e.push(d.i/r),P(t),t=d.next,y=d.next;else if(t=d,t===y){p?1===p?(t=l(t,e,r),a(t,e,r,n,i,h,2)):2===p&&c(t,e,r,n,i,h):a(o(t),e,r,n,i,h,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(b(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(_(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&b(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function u(t,e,r,n){var i=t.prev,o=t,a=t.next;if(b(i,o,a)>=0)return!1;for(var s=i.xo.x?i.x>a.x?i.x:a.x:o.x>a.x?o.x:a.x,c=i.y>o.y?i.y>a.y?i.y:a.y:o.y>a.y?o.y:a.y,h=v(s,u,e,r,n),p=v(l,c,e,r,n),f=t.nextZ;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=h;){if(f!==t.prev&&f!==t.next&&_(i.x,i.y,o.x,o.y,a.x,a.y,f.x,f.y)&&b(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function l(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!w(i,o)&&E(i,n,n.next,o)&&S(i,o)&&S(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),P(n),P(n.next),n=t=o),n=n.next}while(n!==t);return n}function c(t,e,r,n,i,s){var u=t;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&x(u,l)){var c=A(u,l);return u=o(u,u.next),c=o(c,c.next),a(u,e,r,n,i,s),void a(c,e,r,n,i,s)}l=l.next}u=u.next}while(u!==t)}function h(t,e,r,n){var a,s,u,l,c,h=[];for(a=0,s=e.length;a=n.next.y){var s=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>a){if(a=s,s===i){if(o===n.y)return n;if(o===n.next.y)return n.next}r=n.x=n.x&&n.x>=c&&_(or.x)&&S(n,t)&&(r=n,p=u)),n=n.next;return r}function m(t,e,r,n){var i=t;do null===i.z&&(i.z=v(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,y(i)}function y(t){var e,r,n,i,o,a,s,u,l=1;do{for(r=t,t=null,o=null,a=0;r;){for(a++,n=r,s=0,e=0;e0||u>0&&n;)0===s?(i=n,n=n.nextZ,u--):0!==u&&n?r.z<=n.z?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;r=n}o.nextZ=null,l*=2}while(a>1);return t}function v(t,e,r,n,i){return t=32767*(t-r)/i,e=32767*(e-n)/i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function g(t){var e=t,r=t;do e.x=0&&(t-a)*(n-s)-(r-a)*(e-s)>=0&&(r-a)*(o-s)-(i-a)*(n-s)>=0}function x(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!T(t,e)&&S(t,e)&&S(e,t)&&z(t,e)}function b(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function w(t,e){return t.x===e.x&&t.y===e.y}function E(t,e,r,n){return!!(w(t,e)&&w(r,n)||w(t,n)&&w(r,e))||b(t,e,r)>0!=b(t,e,n)>0&&b(r,n,t)>0!=b(r,n,e)>0}function T(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&&E(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function S(t,e){return b(t.prev,t,t.next)<0?b(t,e,t.next)>=0&&b(t,t.prev,e)>=0:b(t,e,t.prev)<0||b(t,t.next,e)<0}function z(t,e){var r=t,n=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do r.y>o!=r.next.y>o&&i<(r.next.x-r.x)*(o-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function A(t,e){var r=new L(t.i,t.x,t.y),n=new L(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,o.next=n,n.prev=o,n}function M(t,e,r,n){var i=new L(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 P(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 L(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function C(t,e,r,n){for(var i=0,o=e,a=r-n;o0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],137:[function(t,e,r){function n(t){var e,r,i,l,c,h;switch(typeof t){case"object":if(null===t)return null;if(o(t)){for(i="[",r=t.length-1,e=0;e-1&&(i+=n(t[e])),i+"]"}for(l=a(t).sort(),r=l.length,i="{",c=l[e=0],h=r>0&&void 0!==t[c];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};e.exports=function(t){if(void 0!==t)return""+n(t)},e.exports.stringSearch=s,e.exports.stringReplace=u},{}],138:[function(t,e,r){"use strict";function n(t){return new Function("f","var p = (f && f.properties || {}); return "+i(t))}function i(t){if(!t)return"true";var e=t[0];if(t.length<=1)return"any"===e?"false":"true";var r="=="===e?a(t[1],t[2],"===",!1):"!="===e?a(t[1],t[2],"!==",!1):"<"===e||">"===e||"<="===e||">="===e?a(t[1],t[2],e,!0):"any"===e?s(t.slice(1),"||"):"all"===e?s(t.slice(1),"&&"):"none"===e?c(s(t.slice(1),"||")):"in"===e?u(t[1],t.slice(2)):"!in"===e?c(u(t[1],t.slice(2))):"has"===e?l(t[1]):"!has"===e?c(l([t[1]])):"true";return"("+r+")"}function o(t){return"$type"===t?"f.type":"$id"===t?"f.id":"p["+JSON.stringify(t)+"]"}function a(t,e,r,n){var i=o(t),a="$type"===t?p.indexOf(e):JSON.stringify(e);return(n?"typeof "+i+"=== typeof "+a+"&&":"")+i+r+a}function s(t,e){return t.map(i).join(e)}function u(t,e){"$type"===t&&(e=e.map(function(t){return p.indexOf(t)}));var r=JSON.stringify(e.sort(h)),n=o(t);return e.length<=200?r+".indexOf("+n+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+n+", "+r+",0,"+(e.length-1)+")"}function l(t){return JSON.stringify(t)+" in p"}function c(t){return"!("+t+")"}function h(t,e){return te?1:0}e.exports=n;var p=["Unknown","Point","LineString","Polygon"]},{}],139:[function(t,e,r){function n(t){if("Polygon"===t.type)return i(t.coordinates);if("MultiPolygon"===t.type){for(var e=0,r=0;r0){e+=Math.abs(o(t[0]));for(var r=1;r2){for(var r,n,i=0;i=0}var l=t("geojson-area");e.exports=n},{"geojson-area":139}],141:[function(t,e,r){"use strict";function n(t,e,r,n,a,u,l,c){if(r/=e,n/=e,l>=r&&c<=n)return t;if(l>n||c=r&&d<=n)h.push(m);else if(!(f>n||d=e&&s<=r&&i.push(a)}return i}function o(t,e,r,n,i,o){for(var s=[],u=0;ur?(x.push(i(l,d,e),i(l,d,r)),o||(x=a(s,x,y,v,g))):f>=e&&x.push(i(l,d,e)):p>r?fr&&(x.push(i(l,d,r)),o||(x=a(s,x,y,v,g))));l=m[_-1],p=l[n],p>=e&&p<=r&&x.push(l),h=x[x.length-1],o&&h&&(x[0][0]!==h[0]||x[0][1]!==h[1])&&x.push(x[0]),a(s,x,y,v,g)}return s}function a(t,e,r,n,i){return e.length&&(e.area=r,e.dist=n,void 0!==i&&(e.outer=i),t.push(e)),[]}e.exports=n;var s=t("./feature")},{"./feature":143}],142:[function(t,e,r){"use strict";function n(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n1?1:n,[r,n,0]}function s(t){for(var e,r,n=0,i=0,o=0;o1)return!1;var o=i.geometry[0].length;if(5!==o)return!1;for(var a=0;a1&&console.time("creation"),_=this.tiles[g]=d(t,v,r,n,x,e===f.maxZoom),this.tileCoords.push({z:e,x:r,y:n}),m)){m>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,_.numFeatures,_.numPoints,_.numSimplified),console.timeEnd("creation"));var b="z"+e;this.stats[b]=(this.stats[b]||0)+1,this.total++}if(_.source=t,i){if(e===f.maxZoom||e===i)continue;var w=1<1&&console.time("clipping");var E,T,S,z,A,M,P=.5*f.buffer/f.extent,L=.5-P,C=.5+P,k=1+P;E=T=S=z=null,A=p(t,v,r-P,r+C,0,a,_.min[0],_.max[0]),M=p(t,v,r+L,r+k,0,a,_.min[0],_.max[0]),A&&(E=p(A,v,n-P,n+C,1,s,_.min[1],_.max[1]),T=p(A,v,n+L,n+k,1,s,_.min[1],_.max[1])),M&&(S=p(M,v,n-P,n+C,1,s,_.min[1],_.max[1]),z=p(M,v,n+L,n+k,1,s,_.min[1],_.max[1])),m>1&&console.timeEnd("clipping"),t.length&&(h.push(E||[],e+1,2*r,2*n),h.push(T||[],e+1,2*r,2*n+1),h.push(S||[],e+1,2*r+1,2*n),h.push(z||[],e+1,2*r+1,2*n+1))}else i&&(y=e)}return y},i.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var c,p=t,f=e,d=r;!c&&p>0;)p--,f=Math.floor(f/2),d=Math.floor(d/2),c=this.tiles[o(p,f,d)];if(!c||!c.source)return null;if(a>1&&console.log("found parent tile z%d-%d-%d",p,f,d),l(c,i,n.buffer))return h.tile(c,i);a>1&&console.time("drilling down");var m=this.splitTile(c.source,p,f,d,t,e,r); -if(a>1&&console.timeEnd("drilling down"),null!==m){var y=1<n&&(a=r,n=o);n>s?(t[a][2]=n,h.push(l),h.push(a),l=a):(c=h.pop(),l=h.pop())}}function i(t,e,r){var n=e[0],i=e[1],o=r[0],a=r[1],s=t[0],u=t[1],l=o-n,c=a-i;if(0!==l||0!==c){var h=((s-n)*l+(u-i)*c)/(l*l+c*c);h>1?(n=o,i=a):h>0&&(n+=l*h,i+=c*h)}return l=s-n,c=u-i,l*l+c*c}e.exports=n},{}],146:[function(t,e,r){"use strict";function n(t,e,r,n,o,a){for(var s={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:n,z2:e,transformed:!1,min:[2,1],max:[-1,0]},u=0;us.max[0]&&(s.max[0]=c[0]),c[1]>s.max[1]&&(s.max[1]=c[1])}return s}function i(t,e,r,n){var i,a,s,u,l=e.geometry,c=e.type,h=[],p=r*r;if(1===c)for(i=0;ip)&&(f.push(u),t.numSimplified++),t.numPoints++;3===c&&o(f,s.outer),h.push(f)}else t.numPoints+=s.length;if(h.length){var d={geometry:h,type:c,tags:e.tags||null};null!==e.id&&(d.id=e.id),t.features.push(d)}}function o(t,e){var r=a(t);r<0===e&&t.reverse()}function a(t){for(var e,r,n=0,i=0,o=t.length,a=o-1;i=l[p+0]&&n>=l[p+1]?(a[h]=!0,o.push(u[h])):a[h]=!1}}},n.prototype._forEachCell=function(t,e,r,n,i,o,a){for(var s=this._convertToCellCoord(t),u=this._convertToCellCoord(e),l=this._convertToCellCoord(r),c=this._convertToCellCoord(n),h=s;h<=l;h++)for(var p=u;p<=c;p++){var f=this.d*p+h;if(i.call(this,t,e,r,n,f,o,a))return}},n.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},n.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=i+this.cells.length+1+1,r=0,n=0;n>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(f?-1:1)*(1/0);a+=Math.pow(2,n),o-=l}return(f?-1:1)*a*Math.pow(2,o-n)},r.write=function(t,e,r,n,i,o){var a,s,u,l=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),e+=a+h>=1?p/u:p*Math.pow(2,1-h),e*u>=2&&(a++,u/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*u-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,l-=8);t[r+f-d]|=128*m}},{}],151:[function(t,e,r){"use strict";function n(t,e,r,n,o){return new i(t,e,r,n,o)}function i(t,e,r,n,i){e=e||o,r=r||a,i=i||Array,this.nodeSize=n||64,this.points=t,this.ids=new i(t.length),this.coords=new i(2*t.length);for(var u=0;u=r&&s<=i&&u>=n&&u<=o&&c.push(t[d]);else{var m=Math.floor((f+p)/2);s=e[2*m],u=e[2*m+1],s>=r&&s<=i&&u>=n&&u<=o&&c.push(t[m]);var y=(h+1)%2;(0===h?r<=s:n<=u)&&(l.push(f),l.push(m-1),l.push(y)),(0===h?i>=s:o>=u)&&(l.push(m+1),l.push(p),l.push(y))}}return c}e.exports=n},{}],153:[function(t,e,r){"use strict";function n(t,e,r,o,a,s){if(!(a-o<=r)){var u=Math.floor((o+a)/2);i(t,e,u,o,a,s%2),n(t,e,r,o,u-1,s+1),n(t,e,r,u+1,a,s+1)}}function i(t,e,r,n,a,s){for(;a>n;){if(a-n>600){var u=a-n+1,l=r-n+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(n,Math.floor(r-l*h/u+p)),d=Math.min(a,Math.floor(r+(u-l)*h/u+p));i(t,e,r,f,d,s)}var m=e[2*r+s],y=n,v=a;for(o(t,e,n,r),e[2*a+s]>m&&o(t,e,n,a);ym;)v--}e[2*n+s]===m?o(t,e,n,v):(v++,o(t,e,v,a)),v<=r&&(n=v+1),r<=v&&(a=v-1)}}function o(t,e,r,n){a(t,r,n),a(e,2*r,2*n),a(e,2*r+1,2*n+1)}function a(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}e.exports=n},{}],154:[function(t,e,r){"use strict";function n(t,e,r,n,o,a){for(var s=[0,t.length-1,0],u=[],l=o*o;s.length;){var c=s.pop(),h=s.pop(),p=s.pop();if(h-p<=a)for(var f=p;f<=h;f++)i(e[2*f],e[2*f+1],r,n)<=l&&u.push(t[f]);else{var d=Math.floor((p+h)/2),m=e[2*d],y=e[2*d+1];i(m,y,r,n)<=l&&u.push(t[d]);var v=(c+1)%2;(0===c?r-o<=m:n-o<=y)&&(s.push(p),s.push(d-1),s.push(v)),(0===c?r+o>=m:n+o>=y)&&(s.push(d+1),s.push(h),s.push(v))}}return u}function i(t,e,r,n){var i=t-r,o=e-n;return i*i+o*o}e.exports=n},{}],155:[function(t,e,r){function n(t){return!!t&&"object"==typeof t}function i(t,e){for(var r=-1,n=t.length;++rl))return!1;for(;++u-1&&t%1==0&&t<=c}function u(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function l(t){return!!t&&"object"==typeof t}var c=9007199254740991,h="[object Arguments]",p="[object Function]",f="[object GeneratorFunction]",d=Object.prototype,m=d.hasOwnProperty,y=d.toString,v=d.propertyIsEnumerable;e.exports=n},{}],159:[function(t,e,r){function n(t){return!!t&&"object"==typeof t}function i(t,e){var r=null==t?void 0:t[e];return u(r)?r:void 0}function o(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=g}function a(t){return s(t)&&m.call(t)==c}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function u(t){return null!=t&&(a(t)?y.test(f.call(t)):n(t)&&h.test(t))}var l="[object Array]",c="[object Function]",h=/^\[object .+?Constructor\]$/,p=Object.prototype,f=Function.prototype.toString,d=p.hasOwnProperty,m=p.toString,y=RegExp("^"+f.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v=i(Array,"isArray"),g=9007199254740991,_=v||function(t){return n(t)&&o(t.length)&&m.call(t)==l};e.exports=_},{}],160:[function(t,e,r){function n(t,e,r,n){r="function"==typeof r?o(r,n,3):void 0;var a=r?r(t,e):void 0;return void 0===a?i(t,e,r):!!a}var i=t("lodash._baseisequal"),o=t("lodash._bindcallback");e.exports=n},{"lodash._baseisequal":155,"lodash._bindcallback":156}],161:[function(t,e,r){function n(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=a}function i(t){return!!t&&"object"==typeof t}function o(t){return i(t)&&n(t.length)&&!!C[I.call(t)]}var a=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object Boolean]",c="[object Date]",h="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",m="[object Object]",y="[object RegExp]",v="[object Set]",g="[object String]",_="[object WeakMap]",x="[object ArrayBuffer]",b="[object DataView]",w="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",S="[object Int16Array]",z="[object Int32Array]",A="[object Uint8Array]",M="[object Uint8ClampedArray]",P="[object Uint16Array]",L="[object Uint32Array]",C={};C[w]=C[E]=C[T]=C[S]=C[z]=C[A]=C[M]=C[P]=C[L]=!0,C[s]=C[u]=C[x]=C[l]=C[b]=C[c]=C[h]=C[p]=C[f]=C[d]=C[m]=C[y]=C[v]=C[g]=C[_]=!1;var k=Object.prototype,I=k.toString;e.exports=o},{}],162:[function(t,e,r){function n(t){return function(e){return null==e?void 0:e[t]}}function i(t){return null!=t&&a(g(t))}function o(t,e){return t="number"==typeof t||f.test(t)?+t:-1,e=null==e?v:e,t>-1&&t%1==0&&t-1&&t%1==0&&t<=v}function s(t){for(var e=l(t),r=e.length,n=r&&t.length,i=!!n&&a(n)&&(p(t)||h(t)),s=-1,u=[];++s0;++nv?Math.pow(t,1/3):t/y+d}function i(t){return t>m?t*t*t:y*(t-d)}function o(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function a(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function s(t){var e=a(t[0]),r=a(t[1]),i=a(t[2]),o=n((.4124564*e+.3575761*r+.1804375*i)/h),s=n((.2126729*e+.7151522*r+.072175*i)/p),u=n((.0193339*e+.119192*r+.9503041*i)/f);return[116*s-16,500*(o-s),200*(s-u),t[3]]}function u(t){var e=(t[0]+16)/116,r=isNaN(t[1])?e:e+t[1]/500,n=isNaN(t[2])?e:e-t[2]/200;return e=p*i(e),r=h*i(r),n=f*i(n),[o(3.2404542*r-1.5371385*e-.4985314*n),o(-.969266*r+1.8760108*e+.041556*n),o(.0556434*r-.2040259*e+1.0572252*n),t[3]]}function l(t){var e=s(t),r=e[0],n=e[1],i=e[2],o=Math.atan2(i,n)*_;return[o<0?o+360:o,Math.sqrt(n*n+i*i),r,t[3]]}function c(t){var e=t[0]*g,r=t[1],n=t[2];return u([n,Math.cos(e)*r,Math.sin(e)*r,t[3]])}var h=.95047,p=1,f=1.08883,d=4/29,m=6/29,y=3*m*m,v=m*m*m,g=Math.PI/180,_=180/Math.PI;e.exports={lab:{forward:s,reverse:u},hcl:{forward:l,reverse:c}}},{}],164:[function(t,e,r){"use strict";function n(t){return t}function i(t,e){var r;if(p(t)){var l,c=t.stops&&"object"==typeof t.stops[0][0],h=c||void 0!==t.property,d=c||!h,m=t.stops&&typeof(c?t.stops[0][0].property:t.stops[0][0]),y=t.type||e||("string"===m?"categorical":"exponential");if("exponential"===y)l=s;else if("interval"===y)l=a;else if("categorical"===y)l=o;else{if("identity"!==y)throw new Error('Unknown function type "'+y+'"');l=u}var v;if(t.colorSpace&&"rgb"!==t.colorSpace){if(!f[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);var g=f[t.colorSpace];t=JSON.parse(JSON.stringify(t));for(var _=0;_=t.stops.length)&&!(e<=t.stops[n][0]);)n++;return 0===n?t.stops[n][1]:n===t.stops.length?t.stops[n-1][1]:l(e,r,t.stops[n-1][0],t.stops[n][0],t.stops[n-1][1],t.stops[n][1])}function u(t,e){return e}function l(t,e,r,n,i,o){return"function"==typeof i?function(){var a=i.apply(void 0,arguments),s=o.apply(void 0,arguments);return l(t,e,r,n,a,s)}:i.length?h(t,e,r,n,i,o):c(t,e,r,n,i,o)}function c(t,e,r,n,i,o){var a,s=n-r,u=t-r;return a=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),i*(1-a)+o*a}function h(t,e,r,n,i,o){for(var a=[],s=0;s7)return[new n(c,u,"constants have been deprecated as of v8")];if(!(u in p.constants))return[new n(c,u,'constant "%s" not found',u)];e=o({},e,{value:p.constants[u]})}return l.function&&"object"===i(u)?r(e):l.type&&s[l.type]?s[l.type](e):a(o({},e,{valueSpec:l.type?h[l.type]:l}))}},{"../error/validation_error":167,"../util/extend":169,"../util/get_type":170,"./validate_array":174,"./validate_boolean":175,"./validate_color":176,"./validate_constants":177,"./validate_enum":178,"./validate_filter":179,"./validate_function":180,"./validate_layer":182,"./validate_light":184,"./validate_number":185,"./validate_object":186,"./validate_source":188,"./validate_string":189}],174:[function(t,e,r){"use strict";var n=t("../util/get_type"),i=t("./validate"),o=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.valueSpec,a=t.style,s=t.styleSpec,u=t.key,l=t.arrayElementValidator||i;if("array"!==n(e))return[new o(u,e,"array expected, %s found",n(e))];if(r.length&&e.length!==r.length)return[new o(u,e,"array length %d expected, length %d found",r.length,e.length)];if(r["min-length"]&&e.length7)return r?[new n(e,r,"constants have been deprecated as of v8")]:[];var a=i(r);if("object"!==a)return[new n(e,r,"object expected, %s found",a)];var s=[];for(var u in r)"@"!==u[0]&&s.push(new n(e+"."+u,r[u],'constants must start with "@"'));return s}},{"../error/validation_error":167,"../util/get_type":170}],178:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint");e.exports=function(t){var e=t.key,r=t.value,o=t.valueSpec,a=[];return Array.isArray(o.values)?o.values.indexOf(i(r))===-1&&a.push(new n(e,r,"expected one of [%s], %s found",o.values.join(", "),r)):Object.keys(o.values).indexOf(i(r))===-1&&a.push(new n(e,r,"expected one of [%s], %s found",Object.keys(o.values).join(", "),r)),a}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172}],179:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("./validate_enum"),o=t("../util/get_type"),a=t("../util/unbundle_jsonlint");e.exports=function t(e){var r,s=e.value,u=e.key,l=e.styleSpec,c=[];if("array"!==o(s))return[new n(u,s,"array expected, %s found",o(s))];if(s.length<1)return[new n(u,s,"filter array must have at least 1 element")];switch(c=c.concat(i({key:u+"[0]",value:s[0],valueSpec:l.filter_operator,style:e.style,styleSpec:e.styleSpec})),a(s[0])){case"<":case"<=":case">":case">=":s.length>=2&&"$type"==s[1]&&c.push(new n(u,s,'"$type" cannot be use with operator "%s"',s[0]));case"==":case"!=":3!=s.length&&c.push(new n(u,s,'filter array for operator "%s" must have 3 elements',s[0]));case"in":case"!in":s.length>=2&&(r=o(s[1]),"string"!==r?c.push(new n(u+"[1]",s[1],"string expected, %s found",r)):"@"===s[1][0]&&c.push(new n(u+"[1]",s[1],"filter key cannot be a constant")));for(var h=2;hl(r[0].zoom))return[new n(s,r[0].zoom,"stop zoom values must appear in ascending order")];l(r[0].zoom)!==f&&(f=l(r[0].zoom),p=void 0),e=e.concat(a({key:s+"[0]",value:r[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:u,value:c}}))}else e=e.concat(c({key:s+"[0]",value:r[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec}));return e=e.concat(o({key:s+"[1]",value:r[1],valueSpec:d,style:t.style,styleSpec:t.styleSpec})),"number"===i(r[0])&&"piecewise-constant"===d.function&&r[0]%1!==0&&e.push(new n(s+"[0]",r[0],"zoom level for piecewise-constant functions must be an integer")),e}function c(t){var e=i(t.value),r=l(t.value);if(h){if(e!==h)return[new n(t.key,t.value,"%s stop domain type must match previous stop domain type %s",e,h)]}else h=e,m||"string"!==e||(m="categorical");return"number"!==e&&"string"!==e?[new n(t.key,t.value,"property value must be a number or string")]:"number"!==e&&"categorical"!==m?[new n(t.key,t.value,"number expected, %s found",e)]:"categorical"!==m||"number"!==e||isFinite(r)&&Math.floor(r)===r?"number"===e&&void 0!==p&&r=8&&(g&&!t.valueSpec["property-function"]?x.push(new n(t.key,t.value,"property functions not supported")):v&&!t.valueSpec["zoom-function"]&&x.push(new n(t.key,t.value,"zoom functions not supported"))),"categorical"!==m&&!_||void 0!==t.value.property||x.push(new n(t.key,t.value,'"property" property is required')),x}},{"../error/validation_error":167,"../util/get_type":170,"../util/unbundle_jsonlint":172,"./validate":173,"./validate_array":174,"./validate_number":185,"./validate_object":186}],181:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("./validate_string");e.exports=function(t){var e=t.value,r=t.key,o=i(t);return o.length?o:(e.indexOf("{fontstack}")===-1&&o.push(new n(r,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&o.push(new n(r,e,'"glyphs" url must include a "{range}" token')),o)}},{"../error/validation_error":167,"./validate_string":189}],182:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_filter"),s=t("./validate_paint_property"),u=t("./validate_layout_property"),l=t("../util/extend");e.exports=function(t){var e=[],r=t.value,c=t.key,h=t.style,p=t.styleSpec;r.type||r.ref||e.push(new n(c,r,'either "type" or "ref" is required'));var f=i(r.type),d=i(r.ref);if(r.id)for(var m=0;mo.maximum?[new i(e,r,"%s is greater than the maximum value %s",r,o.maximum)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],186:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/get_type"),o=t("./validate");e.exports=function(t){var e=t.key,r=t.value,a=t.valueSpec||{},s=t.objectElementValidators||{},u=t.style,l=t.styleSpec,c=[],h=i(r);if("object"!==h)return[new n(e,r,"object expected, %s found",h)];for(var p in r){var f,d=p.split(".")[0],m=a[d]||a["*"];if(s[d])f=s[d];else if(a[d])f=o;else if(s["*"])f=s["*"];else{if(!a["*"]){c.push(new n(e,r[p],'unknown property "%s"',p));continue}f=o}c=c.concat(f({key:(e?e+".":e)+p,value:r[p],valueSpec:m,style:u,styleSpec:l,object:r,objectKey:p}))}for(d in a)a[d].required&&void 0===a[d].default&&void 0===r[d]&&c.push(new n(e,r,'missing required property "%s"',d));return c}},{"../error/validation_error":167,"../util/get_type":170,"./validate":173}],187:[function(t,e,r){"use strict";var n=t("./validate"),i=t("../error/validation_error");e.exports=function(t){var e=t.key,r=t.style,o=t.styleSpec,a=t.value,s=t.objectKey,u=o["paint_"+t.layerType];if(!u)return[];var l=s.match(/^(.*)-transition$/);return l&&u[l[1]]&&u[l[1]].transition?n({key:e,value:a,valueSpec:o.transition,style:r,styleSpec:o}):t.valueSpec||u[s]?n({key:t.key,value:a,valueSpec:t.valueSpec||u[s],style:r,styleSpec:o}):[new i(e,a,'unknown property "%s"',s)]}},{"../error/validation_error":167,"./validate":173}],188:[function(t,e,r){"use strict";var n=t("../error/validation_error"),i=t("../util/unbundle_jsonlint"),o=t("./validate_object"),a=t("./validate_enum");e.exports=function(t){var e=t.value,r=t.key,s=t.styleSpec,u=t.style;if(!e.type)return[new n(r,e,'"type" is required')];var l=i(e.type);switch(l){case"vector":case"raster":var c=[];if(c=c.concat(o({key:r,value:e,valueSpec:s.source_tile,style:t.style,styleSpec:s})),"url"in e)for(var h in e)["type","url","tileSize"].indexOf(h)<0&&c.push(new n(r+"."+h,e[h],'a source with a "url" property may not include a "%s" property',h));return c;case"geojson":return o({key:r,value:e,valueSpec:s.source_geojson,style:u,styleSpec:s});case"video":return o({key:r,value:e,valueSpec:s.source_video,style:u,styleSpec:s});case"image":return o({key:r,value:e,valueSpec:s.source_image,style:u,styleSpec:s});case"canvas":return o({key:r,value:e,valueSpec:s.source_canvas,style:u,styleSpec:s});default:return a({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:u,styleSpec:s})}}},{"../error/validation_error":167,"../util/unbundle_jsonlint":172,"./validate_enum":178,"./validate_object":186}],189:[function(t,e,r){"use strict";var n=t("../util/get_type"),i=t("../error/validation_error");e.exports=function(t){var e=t.value,r=t.key,o=n(e);return"string"!==o?[new i(r,e,"string expected, %s found",o)]:[]}},{"../error/validation_error":167,"../util/get_type":170}],190:[function(t,e,r){"use strict";function n(t,e){e=e||u;var r=[];return r=r.concat(s({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:l,"*":function(){return[]}}})),e.$version>7&&t.constants&&(r=r.concat(a({key:"constants",value:t.constants,style:t,styleSpec:e}))),i(r)}function i(t){return[].concat(t).sort(function(t,e){return t.line-e.line})}function o(t){return function(){return i(t.apply(this,arguments))}}var a=t("./validate/validate_constants"),s=t("./validate/validate"),u=t("../reference/latest.min"),l=t("./validate/validate_glyphs_url");n.source=o(t("./validate/validate_source")),n.light=o(t("./validate/validate_light")),n.layer=o(t("./validate/validate_layer")),n.filter=o(t("./validate/validate_filter")),n.paintProperty=o(t("./validate/validate_paint_property")),n.layoutProperty=o(t("./validate/validate_layout_property")),e.exports=n},{"../reference/latest.min":191,"./validate/validate":173,"./validate/validate_constants":177,"./validate/validate_filter":179,"./validate/validate_glyphs_url":181,"./validate/validate_layer":182,"./validate/validate_layout_property":183,"./validate/validate_light":184,"./validate/validate_paint_property":187,"./validate/validate_source":188}],191:[function(t,e,r){e.exports=t("./v8.min.json")},{"./v8.min.json":192}],192:[function(t,e,r){e.exports={$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"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_tile","source_geojson","source_video","source_image","source_canvas"],source_tile:{type:{required:!0,type:"enum",values:{vector:{},raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"}},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"}}},source_canvas:{type:{required:!0,type:"enum",values:{canvas:{}}},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}},animate:{type:"boolean",default:"true"},canvas:{type:"string",required:!0}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},"fill-extrusion":{},raster:{},background:{}}},metadata:{type:"*"},ref:{type:"string"},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"},"paint.*":{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_fill-extrusion","layout_symbol","layout_raster","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_fill:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_circle:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_line:{"line-cap":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{butt:{},round:{},square:{}},default:"butt"},"line-join":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{bevel:{},round:{},miter:{}},default:"miter"},"line-miter-limit":{type:"number",default:2,function:"interpolated","zoom-function":!0,requires:[{"line-join":"miter"}]},"line-round-limit":{type:"number",default:1.05,function:"interpolated","zoom-function":!0,requires:[{"line-join":"round"}]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_symbol:{"symbol-placement":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{point:{},line:{}},default:"point"},"symbol-spacing":{type:"number",default:250,minimum:1,function:"interpolated","zoom-function":!0,units:"pixels",requires:[{"symbol-placement":"line"}]},"symbol-avoid-edges":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1},"icon-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image"]},"icon-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image","text-field"]},"icon-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"]},"icon-size":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,requires:["icon-image"]},"icon-text-fit":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"]},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",function:"interpolated","zoom-function":!0,requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}]},"icon-image":{type:"string",function:"piecewise-constant","zoom-function":!0,tokens:!0},"icon-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,"property-function":!0,units:"degrees",requires:["icon-image"]},"icon-padding":{type:"number",default:2,minimum:0,function:"interpolated","zoom-function":!0,units:"pixels",requires:["icon-image"]},"icon-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":"line"}]},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,"property-function":!0,requires:["icon-image"]},"text-pitch-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-rotation-alignment":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"]},"text-field":{type:"string",function:"piecewise-constant","zoom-function":!0,default:"",tokens:!0},"text-font":{type:"array",value:"string",function:"piecewise-constant","zoom-function":!0,default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"]},"text-size":{type:"number",default:16,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-line-height":{type:"number",default:1.2,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-letter-spacing":{type:"number",default:0,units:"ems",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-justify":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{left:{},center:{},right:{}},default:"center",requires:["text-field"]},"text-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field"]},"text-max-angle":{type:"number",default:45,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field",{"symbol-placement":"line"}]},"text-rotate":{type:"number",default:0,period:360,units:"degrees",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",function:"interpolated","zoom-function":!0,requires:["text-field"]},"text-keep-upright":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":"line"}]},"text-transform":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"]},"text-offset":{type:"array",value:"number",units:"ems",function:"interpolated","zoom-function":!0,length:2,default:[0,0],requires:["text-field"]},"text-allow-overlap":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-ignore-placement":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field"]},"text-optional":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!1,requires:["text-field","icon-image"]},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{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"}},function_stop:{type:"array",minimum:0,maximum:22,value:["number","color"],length:2},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},transition:!1},position:{type:"array",default:[1.15,210,30],length:3,value:"number",transition:!0,function:"interpolated","zoom-function":!0,"property-function":!1},color:{type:"color",default:"#ffffff",function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0},intensity:{type:"number",default:.5,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!1,transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",function:"piecewise-constant","zoom-function":!0,default:!0},"fill-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"fill-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"}]},"fill-outline-color":{type:"color",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}]},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-translate"]},"fill-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!1,default:1,minimum:0,maximum:1,transition:!0},"fill-extrusion-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"fill-extrusion-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"]},"fill-extrusion-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"fill-extrusion-height":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"]}},paint_line:{"line-opacity":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:1,minimum:0,maximum:1,transition:!0},"line-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:[{"!":"line-pattern"}]},"line-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["line-translate"]},"line-width":{type:"number",default:1,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"line-gap-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-offset":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"line-dasharray":{type:"array",value:"number",function:"piecewise-constant","zoom-function":!0,minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}]},"line-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-blur":{type:"number",default:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels"},"circle-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["circle-translate"]},"circle-pitch-scale":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map"},"circle-stroke-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels"},"circle-stroke-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"]},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate":{type:"array",value:"number",length:2,default:[0,0],function:"interpolated","zoom-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-translate-anchor":{type:"enum",function:"piecewise-constant","zoom-function":!0,values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"]}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-hue-rotate":{type:"number",default:0,period:360,function:"interpolated","zoom-function":!0,transition:!0,units:"degrees"},"raster-brightness-min":{type:"number",function:"interpolated","zoom-function":!0,default:0,minimum:0,maximum:1,transition:!0},"raster-brightness-max":{type:"number",function:"interpolated","zoom-function":!0,default:1,minimum:0,maximum:1,transition:!0},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,function:"interpolated","zoom-function":!0,transition:!0},"raster-fade-duration":{type:"number",default:300,minimum:0,function:"interpolated","zoom-function":!0,transition:!0,units:"milliseconds"}},paint_background:{"background-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,transition:!0,requires:[{"!":"background-pattern"}]},"background-pattern":{type:"string",function:"piecewise-constant","zoom-function":!0,transition:!0},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,function:"interpolated","zoom-function":!0,transition:!0}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}}}},{}],193:[function(t,e,r){"use strict";function n(t){return!!(i()&&o()&&a()&&s()&&u()&&l()&&c()&&h(t&&t.failIfMajorPerformanceCaveat))}function i(){return"undefined"!=typeof window&&"undefined"!=typeof document}function o(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function a(){return Function.prototype&&Function.prototype.bind}function s(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function u(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function l(){return"Worker"in window}function c(){return"Uint8ClampedArray"in window}function h(t){return void 0===f[t]&&(f[t]=p(t)),f[t]}function p(t){var e=document.createElement("canvas"),r=Object.create(n.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=t,e.probablySupportsContext?e.probablySupportsContext("webgl",r)||e.probablySupportsContext("experimental-webgl",r):e.supportsContext?e.supportsContext("webgl",r)||e.supportsContext("experimental-webgl",r):e.getContext("webgl",r)||e.getContext("experimental-webgl",r)}"undefined"!=typeof e&&e.exports?e.exports=n:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=n);var f={};n.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}},{}],194:[function(t,e,r){(function(t){function e(t,e){for(var r=0,n=t.length-1;n>=0;n--){var i=t[n];"."===i?t.splice(n,1):".."===i?(t.splice(n,1),r++):r&&(t.splice(n,1),r--)}if(e)for(;r--;r)t.unshift("..");return t}function n(t,e){if(t.filter)return t.filter(e);for(var r=[],n=0;n=-1&&!i;o--){var a=o>=0?arguments[o]:t.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,i="/"===a.charAt(0))}return r=e(n(r.split("/"),function(t){return!!t}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(t){var i=r.isAbsolute(t),o="/"===a(t,-1);return t=e(n(t.split("/"),function(t){return!!t}),!i).join("/"),t||i||(t="."),t&&o&&(t+="/"),(i?"/":"")+t},r.isAbsolute=function(t){return"/"===t.charAt(0)},r.join=function(){var t=Array.prototype.slice.call(arguments,0);return r.normalize(n(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},r.relative=function(t,e){function n(t){for(var e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r-e+1)}t=r.resolve(t).substr(1),e=r.resolve(e).substr(1);for(var i=n(t.split("/")),o=n(e.split("/")),a=Math.min(i.length,o.length),s=a,u=0;u55295&&e<57344){if(!r){e>56319||o+1===n?i.push(239,191,189):r=e;continue}if(e<56320){i.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(i.push(239,191,189),r=null);e<128?i.push(e):e<2048?i.push(e>>6|192,63&e|128):e<65536?i.push(e>>12|224,e>>6&63|128,63&e|128):i.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return i}e.exports=n;var o,a,s,u=t("ieee754");o={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return u.read(this,t,!0,23,4)},readDoubleLE:function(t){return u.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return u.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return u.write(this,t,e,!0,52,8)},toString:function(t,e,r){var n="",i="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(e.pos>=r)throw new Error("Given varint doesn't fit into 10 bytes");var n=255&t;e.buf[e.pos++]=n|(t>=128?128:0),t/=128}}function a(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.ceil(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 s(t,e){for(var r=0;r>3,o=this.pos;t(i,e,this),this.pos===o&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*v;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*v;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,e,r=this.buf;return e=r[this.pos++],t=127&e,e<128?t:(e=r[this.pos++],t|=(127&e)<<7,e<128?t:(e=r[this.pos++],t|=(127&e)<<14,e<128?t:(e=r[this.pos++],t|=(127&e)<<21,e<128?t:i(t,this))))},readVarint64:function(){var t=this.pos,e=this.readVarint();if(e<_)return e;for(var r=this.pos-2;255===this.buf[r];)r--;r127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.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?void o(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(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);var e=y.byteLength(t);this.writeVarint(e),this.realloc(e),this.buf.write(t,this.pos),this.pos+=e},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&a(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,n.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){this.writeMessage(t,s,e)},writePackedSVarint:function(t,e){this.writeMessage(t,u,e)},writePackedBoolean:function(t,e){this.writeMessage(t,h,e)},writePackedFloat:function(t,e){this.writeMessage(t,l,e)},writePackedDouble:function(t,e){this.writeMessage(t,c,e)},writePackedFixed32:function(t,e){this.writeMessage(t,p,e)},writePackedSFixed32:function(t,e){this.writeMessage(t,f,e)},writePackedFixed64:function(t,e){this.writeMessage(t,d,e)},writePackedSFixed64:function(t,e){this.writeMessage(t,m,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}}).call(this,"undefined"!=typeof r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./buffer":195}],197:[function(t,e,r){"use strict";function n(t,e){this.x=t,this.y=e}e.exports=n,n.prototype={clone:function(){return new n(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},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[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,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},_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=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},n.convert=function(t){return t instanceof n?t:Array.isArray(t)?new n(t[0],t[1]):t}},{}],198:[function(t,e,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function o(t){if(h===setTimeout)return setTimeout(t,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(t,0);try{return h(t,0)}catch(e){try{return h.call(null,t,0)}catch(e){return h.call(this,t,0)}}}function a(t){if(p===clearTimeout)return clearTimeout(t);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(t);try{return p(t)}catch(e){try{return p.call(null,t)}catch(e){return p.call(this,t)}}}function s(){y&&d&&(y=!1,d.length?m=d.concat(m):v=-1,m.length&&u())}function u(){if(!y){var t=o(s);y=!0;for(var e=m.length;e;){for(d=m,m=[];++v1)for(var r=1;rr;){if(a-r>600){var u=a-r+1,l=e-r+1,c=Math.log(u),h=.5*Math.exp(2*c/3),p=.5*Math.sqrt(c*h*(u-h)/u)*(l-u/2<0?-1:1),f=Math.max(r,Math.floor(e-l*h/u+p)),d=Math.min(a,Math.floor(e+(u-l)*h/u+p));n(t,e,f,d,s)}var m=t[e],y=r,v=a;for(i(t,r,e),s(t[a],m)>0&&i(t,r,a);y0;)v--}0===s(t[r],m)?i(t,r,v):(v++,i(t,v,a)),v<=e&&(r=v+1),e<=v&&(a=v-1)}}function i(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function o(t,e){return te?1:0}e.exports=n},{}],200:[function(e,r,n){!function(e,i){"object"==typeof n&&"undefined"!=typeof r?r.exports=i():"function"==typeof t&&t.amd?t(i):e.ShelfPack=i()}(this,function(){function t(t,e,r){r=r||{},this.w=t||64,this.h=e||64,this.autoResize=!!r.autoResize,this.shelves=[],this.stats={},this.count=function(t){this.stats[t]=(0|this.stats[t])+1}}function e(t,e,r){this.x=0,this.y=t,this.w=this.free=e,this.h=r}return t.prototype.pack=function(t,e){t=[].concat(t),e=e||{};for(var r,n,i,o=[],a=0;a0){for(var s=0,u=0,l=0;ln.h||t>n.free||rc)&&(h=2*Math.max(t,c)),(uu)&&(l=2*Math.max(r,u)),this.resize(h,l),this.packOne(t,r)}return null},t.prototype.clear=function(){this.shelves=[],this.stats={}},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var r=0;rthis.free||e>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,{x:r,y:this.y,w:t,h:e,width:t,height:e}},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t})},{}],201:[function(t,e,r){"use strict";function n(t){return new i(t)}function i(t){this.options=f(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function o(t,e,r,n){return{x:t,y:e,zoom:1/0,id:n,numPoints:r}}function a(t,e){var r=t.geometry.coordinates;return o(l(r[0]),c(r[1]),1,e)}function s(t){return{type:"Feature",properties:u(t),geometry:{type:"Point",coordinates:[h(t.x),p(t.y)]}}}function u(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:r}}function l(t){return t/360+.5}function c(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function h(t){return 360*(t-.5)}function p(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function f(t,e){for(var r in e)t[r]=e[r];return t}function d(t){return t.x}function m(t){return t.y}var y=t("kdbush");e.exports=n,i.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var r="prepare "+t.length+" points";e&&console.time(r),this.points=t;var n=t.map(a);e&&console.timeEnd(r);for(var i=this.options.maxZoom;i>=this.options.minZoom;i--){var o=+Date.now();this.trees[i+1]=y(n,d,m,this.options.nodeSize,Float32Array),n=this._cluster(n,i),e&&console.log("z%d: %d clusters in %dms",i,n.length,+Date.now()-o)}return this.trees[this.options.minZoom]=y(n,d,m,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var r=this.trees[this._limitZoom(e)],n=r.range(l(t[0]),c(t[3]),l(t[2]),c(t[1])),i=[],o=0;o=0;r--)this._down(r)}function i(t,e){return te?1:0}function o(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}e.exports=n,n.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,r=this.compare;t>0;){var n=Math.floor((t-1)/2);if(!(r(e[t],e[n])<0))break;o(e,n,t),t=n}},_down:function(t){for(var e=this.data,r=this.compare,n=this.length;;){var i=2*t+1,a=i+1,s=t;if(i=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(e)?r.showHidden=e:e&&n._extend(r,e),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,t,r.depth)}function o(t,e){var r=i.styles[e];return r?"["+i.colors[r][0]+"m"+t+"["+i.colors[r][1]+"m":t}function a(t,e){return t}function s(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}function u(t,e,r){if(t.customInspect&&e&&z(e.inspect)&&e.inspect!==n.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(r,t);return _(i)||(i=u(t,i,r)),i}var o=l(t,e);if(o)return o;var a=Object.keys(e),m=s(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),S(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(e);if(0===a.length){if(z(e)){var y=e.name?": "+e.name:"";return t.stylize("[Function"+y+"]","special")}if(w(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(T(e))return t.stylize(Date.prototype.toString.call(e),"date");if(S(e))return c(e)}var v="",g=!1,x=["{","}"];if(d(e)&&(g=!0,x=["[","]"]),z(e)){var b=e.name?": "+e.name:"";v=" [Function"+b+"]"}if(w(e)&&(v=" "+RegExp.prototype.toString.call(e)),T(e)&&(v=" "+Date.prototype.toUTCString.call(e)),S(e)&&(v=" "+c(e)),0===a.length&&(!g||0==e.length))return x[0]+v+x[1];if(r<0)return w(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var E;return E=g?h(t,e,r,m,a):a.map(function(n){return p(t,e,r,m,n,g)}),t.seen.pop(),f(E,v,x)}function l(t,e){if(b(e))return t.stylize("undefined","undefined");if(_(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return g(e)?t.stylize(""+e,"number"):m(e)?t.stylize(""+e,"boolean"):y(e)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,n,i){for(var o=[],a=0,s=e.length;a-1&&(s=o?s.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n"))):s=t.stylize("[Circular]","special")),b(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function f(t,e,r){var n=0,i=t.reduce(function(t,e){return n++,e.indexOf("\n")>=0&&n++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function d(t){return Array.isArray(t)}function m(t){return"boolean"==typeof t}function y(t){return null===t}function v(t){return null==t}function g(t){return"number"==typeof t}function _(t){return"string"==typeof t}function x(t){return"symbol"==typeof t}function b(t){return void 0===t}function w(t){return E(t)&&"[object RegExp]"===M(t)}function E(t){return"object"==typeof t&&null!==t}function T(t){return E(t)&&"[object Date]"===M(t)}function S(t){return E(t)&&("[object Error]"===M(t)||t instanceof Error)}function z(t){return"function"==typeof t}function A(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function M(t){return Object.prototype.toString.call(t)}function P(t){return t<10?"0"+t.toString(10):t.toString(10)}function L(){var t=new Date,e=[P(t.getHours()),P(t.getMinutes()),P(t.getSeconds())].join(":");return[t.getDate(),D[t.getMonth()],e].join(" ")}function C(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var k=/%[sdj%]/g;n.format=function(t){if(!_(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),s=n[r];r>3}if(i--,1===n||2===n)o+=t.readSVarint(),a+=t.readSVarint(),1===n&&(e&&s.push(e),e=[]),e.push(new u(o,a));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&s.push(e),s},n.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,o=0,a=1/0,s=-(1/0),u=1/0,l=-(1/0);t.pos>3}if(n--,1===r||2===r)i+=t.readSVarint(),o+=t.readSVarint(),is&&(s=i),ol&&(l=o);else if(7!==r)throw new Error("unknown command "+r)}return[a,u,s,l]},n.prototype.toGeoJSON=function(t,e,r){function i(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}var a=t("./vectortilefeature.js");e.exports=n,n.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 a(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":208}],210:[function(t,e,r){function n(t){var e=[];for(var r in t.layers)e.push(o(t.layers[r]));var n=new c;return h.tile.write({layers:e},n),n.finish()}function i(t){var e={};for(var r in t)e[r]=new p(t[r].features),e[r].name=r;return n({layers:e})}function o(t){for(var e={name:t.name||"",version:t.version||1,extent:t.extent||4096,keys:[],values:[],features:[]},r={},n={},i=0;i>31}function u(t){for(var e=[],r=0,n=0,i=t.length,o=0;o0&&(i=n.places);var map=r.i(a.a)(t,e,i),s=document.createElement("div"),c=l(map,e,i);s.appendChild(c);var h=r.i(u.a)(map);s.appendChild(h);var p=document.querySelector("fieldset");p.insertBefore(s,document.querySelector(".map"))}).catch(function(t){console.error(t)})}var i=r(3),o=r.n(i),a=r(2),s=r(1),u=r(14);e.a=n;var l=function(map,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=document.createElement("select");n.setAttribute("name","location");var i=document.createElement("option");i.setAttribute("selected","selected"),i.setAttribute("value","no-location"),i.appendChild(document.createTextNode("Don’t send location")),n.appendChild(i);var o=document.createElement("option");if(o.setAttribute("id","option-coords"),o.setAttribute("value","geo:"+t.coords.latitude+","+t.coords.longitude),o.dataset.latitude=t.coords.latitude,o.dataset.longitude=t.coords.longitude,o.appendChild(document.createTextNode("Send co-ordinates")),n.appendChild(o),null!=e){var a=!0,u=!1,l=void 0;try{for(var c,h=e[Symbol.iterator]();!(a=(c=h.next()).done);a=!0){var p=c.value,f=r.i(s.a)(p.location),d=document.createElement("option");d.setAttribute("value",p.slug),d.dataset.latitude=f.latitude,d.dataset.longitude=f.longitude,d.appendChild(document.createTextNode(p.name)),n.appendChild(d)}}catch(t){u=!0,l=t}finally{try{!a&&h.return&&h.return()}finally{if(u)throw l}}}return n.addEventListener("change",function(){if("no-location"!==n.value){var t=n[n.selectedIndex].dataset.latitude,e=n[n.selectedIndex].dataset.longitude;map.flyTo({center:[e,t]})}}),n}},function(t,e,r){"use strict";function n(){var t=document.querySelector("fieldset"),e=document.createElement("div");e.classList.add("map"),t.appendChild(e),navigator.geolocation.getCurrentPosition(function(t){e.dataset.latitude=t.coords.latitude,e.dataset.longitude=t.coords.longitude,e.dataset.accuracy=t.coords.accuracy,r.i(i.a)(e,t)})}var i=r(12);e.a=n},function(t,e,r){"use strict";function n(map){var t=document.createElement("button");return t.setAttribute("type","button"),t.setAttribute("id","create-new-place"),t.appendChild(document.createTextNode("Create New Place?")),t.addEventListener("click",function(){var t=document.createElement("div"),e=document.createElement("label");e.setAttribute("for","place-name"),e.classList.add("place-label"),e.appendChild(document.createTextNode("Name:"));var n=document.createElement("input");n.setAttribute("placeholder","Name"),n.setAttribute("name","place-name"),n.setAttribute("id","place-name"),n.setAttribute("type","text"),t.appendChild(e),t.appendChild(n);var o=document.createElement("div"),a=document.createElement("label");a.setAttribute("for","place-description"),a.classList.add("place-label"),a.appendChild(document.createTextNode("Description:"));var s=document.createElement("input");s.setAttribute("placeholder","Description"),s.setAttribute("name","place-description"),s.setAttribute("id","place-description"),s.setAttribute("type","text"),o.appendChild(a),o.appendChild(s);var u=document.createElement("div"),l=document.createElement("label");l.setAttribute("for","place-latitude"),l.classList.add("place-label"),l.appendChild(document.createTextNode("Latitude:"));var c=document.createElement("input");c.setAttribute("name","place-latitude"),c.setAttribute("id","place-latitude"),c.setAttribute("type","text"),c.value=map.getCenter().lat,u.appendChild(l),u.appendChild(c);var h=document.createElement("div"),p=document.createElement("label");p.setAttribute("for","place-longitude"),p.classList.add("place-label"),p.appendChild(document.createTextNode("Longitude:"));var f=document.createElement("input");f.setAttribute("name","place-longitude"),f.setAttribute("id","place-longitude"),f.setAttribute("type","text"),f.value=map.getCenter().lng,h.appendChild(p),h.appendChild(f);var d=document.createElement("button");d.setAttribute("id","place-submit"),d.setAttribute("name","place-submit"),d.setAttribute("type","button"),d.appendChild(document.createTextNode("Submit New Place")),d.addEventListener("click",function(){r.i(i.a)(map)});var m=document.querySelector("fieldset");m.appendChild(t),m.appendChild(o),m.appendChild(u),m.appendChild(h),m.appendChild(d)}),t}var i=r(15);e.a=n},function(t,e,r){"use strict";function n(map){var t=new FormData;t.append("place-name",document.querySelector("#place-name").value),t.append("place-description",document.querySelector("#place-description").value),t.append("place-latitude",document.querySelector("#place-latitude").value),t.append("place-longitude",document.querySelector("#place-longitude").value),fetch("/places/new",{credentials:"same-origin",method:"post",body:t}).then(function(t){return t.json()}).then(function(t){if(t.error===!0)throw new Error(t.error_description);var e=document.querySelector("fieldset"),r=document.querySelectorAll(".place-label"),n=!0,i=!1,o=void 0;try{for(var a,s=r[Symbol.iterator]();!(n=(a=s.next()).done);n=!0){var u=a.value;e.removeChild(u.parentNode)}}catch(t){i=!0,o=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw o}}e.removeChild(document.querySelector("#place-submit"));var l=document.querySelector("#create-new-place");l.parentNode.removeChild(l);var c=map.getSource("points"),h=c._data.features.filter(function(t){return"Current Location"!=t.properties.title});h.push({type:"Feature",geometry:{type:"Point",coordinates:[t.longitude,t.latitude]},properties:{title:t.name,icon:"circle",uri:t.uri}});var p={type:"FeatureCollection",features:h};map.getSource("points").setData(p);var f=document.querySelector("select"),d=document.createElement("option");d.setAttribute("value",t.uri),d.appendChild(document.createTextNode(t.name)),d.dataset.latitude=t.latitude,d.dataset.longitude=t.longitude,f.appendChild(d),document.querySelector('select [value="'+t.uri+'"]').selected=!0}).catch(function(t){o.a.reset(),o.a.error(t)})}var i=r(3),o=r.n(i);e.a=n},function(t,e,r){/*! +/* eslint-disable no-proto */ + + + +var base64 = __webpack_require__(5) +var ieee754 = __webpack_require__(8) +var isArray = __webpack_require__(7) + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, Buffer) {var require;var require;(function(f){if(true){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.mapboxgl = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0){for(var o=0,a=0,u=0;uh.maxh||t>h.maxw||i<=h.maxh&&t<=h.maxw&&(r=h.maxw*h.maxh-t*i,rn.free)){if(i===n.h)return this.allocShelf(f,t,i,s);i>n.h||ic)&&(p=2*Math.max(t,c)),(uu)&&(l=2*Math.max(i,u)),this.resize(p,l),this.packOne(t,i,s)}return null},t.prototype.allocFreebin=function(t,e,i,s){var h=this.freebins.splice(t,1)[0];return h.id=s,h.w=e,h.h=i,h.refcount=0,this.bins[s]=h,this.ref(h),h},t.prototype.allocShelf=function(t,e,i,s){var h=this.shelves[t],n=h.alloc(e,i,s);return this.bins[s]=n,this.ref(n),n},t.prototype.getBin=function(t){return this.bins[t]},t.prototype.ref=function(t){if(1===++t.refcount){var e=t.h;this.stats[e]=(0|this.stats[e])+1}return t.refcount},t.prototype.unref=function(t){return 0===t.refcount?0:(0===--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},t.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},t.prototype.resize=function(t,e){this.w=t,this.h=e;for(var i=0;ithis.free||e>this.h)return null;var h=this.x;return this.x+=t,this.free-=t,new i(s,h,this.y,t,e,t,this.h)},e.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0},t}); +},{}],3:[function(require,module,exports){ +function UnitBezier(t,i,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(r-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=e,this.p2y=r}module.exports=UnitBezier,UnitBezier.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},UnitBezier.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},UnitBezier.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},UnitBezier.prototype.solveCurveX=function(t,i){"undefined"==typeof i&&(i=1e-6);var e,r,s,h,n;for(s=t,n=0;n<8;n++){if(h=this.sampleCurveX(s)-t,Math.abs(h)r)return r;for(;eh?e=s:r=s,s=.5*(r-e)+e}return s},UnitBezier.prototype.solve=function(t,i){return this.sampleCurveY(this.solveCurveX(t,i))}; +},{}],4:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.WhooTS=e.WhooTS||{})}(this,function(e){function t(e,t,r,n,i,s){s=s||{};var f=e+"?"+["bbox="+o(r,n,i),"format="+(s.format||"image/png"),"service="+(s.service||"WMS"),"version="+(s.version||"1.1.1"),"request="+(s.request||"GetMap"),"srs="+(s.srs||"EPSG:3857"),"width="+(s.width||256),"height="+(s.height||256),"layers="+t].join("&");return f}function o(e,t,o){t=Math.pow(2,o)-t-1;var n=r(256*e,256*t,o),i=r(256*(e+1),256*(t+1),o);return n[0]+","+n[1]+","+i[0]+","+i[1]}function r(e,t,o){var r=2*Math.PI*6378137/256/Math.pow(2,o),n=e*r-2*Math.PI*6378137/2,i=t*r-2*Math.PI*6378137/2;return[n,i]}e.getURL=t,e.getTileBBox=o,e.getMercCoords=r,Object.defineProperty(e,"__esModule",{value:!0})}); +},{}],5:[function(require,module,exports){ +"use strict";function earcut(e,n,r){r=r||2;var t=n&&n.length,i=t?n[0]*r:e.length,x=linkedList(e,0,i,r,!0),a=[];if(!x)return a;var o,l,u,s,v,f,y;if(t&&(x=eliminateHoles(e,n,x,r)),e.length>80*r){o=u=e[0],l=s=e[1];for(var d=r;du&&(u=v),f>s&&(s=f);y=Math.max(u-o,s-l)}return earcutLinked(x,a,r,o,l,y),a}function linkedList(e,n,r,t,i){var x,a;if(i===signedArea(e,n,r,t)>0)for(x=n;x=n;x-=t)a=insertNode(x,e[x],e[x+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(e,n){if(!e)return e;n||(n=e);var r,t=e;do if(r=!1,t.steiner||!equals(t,t.next)&&0!==area(t.prev,t,t.next))t=t.next;else{if(removeNode(t),t=n=t.prev,t===t.next)return null;r=!0}while(r||t!==n);return n}function earcutLinked(e,n,r,t,i,x,a){if(e){!a&&x&&indexCurve(e,t,i,x);for(var o,l,u=e;e.prev!==e.next;)if(o=e.prev,l=e.next,x?isEarHashed(e,t,i,x):isEar(e))n.push(o.i/r),n.push(e.i/r),n.push(l.i/r),removeNode(e),e=l.next,u=l.next;else if(e=l,e===u){a?1===a?(e=cureLocalIntersections(e,n,r),earcutLinked(e,n,r,t,i,x,2)):2===a&&splitEarcut(e,n,r,t,i,x):earcutLinked(filterPoints(e),n,r,t,i,x,1);break}}}function isEar(e){var n=e.prev,r=e,t=e.next;if(area(n,r,t)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(pointInTriangle(n.x,n.y,r.x,r.y,t.x,t.y,i.x,i.y)&&area(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function isEarHashed(e,n,r,t){var i=e.prev,x=e,a=e.next;if(area(i,x,a)>=0)return!1;for(var o=i.xx.x?i.x>a.x?i.x:a.x:x.x>a.x?x.x:a.x,s=i.y>x.y?i.y>a.y?i.y:a.y:x.y>a.y?x.y:a.y,v=zOrder(o,l,n,r,t),f=zOrder(u,s,n,r,t),y=e.nextZ;y&&y.z<=f;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.nextZ}for(y=e.prevZ;y&&y.z>=v;){if(y!==e.prev&&y!==e.next&&pointInTriangle(i.x,i.y,x.x,x.y,a.x,a.y,y.x,y.y)&&area(y.prev,y,y.next)>=0)return!1;y=y.prevZ}return!0}function cureLocalIntersections(e,n,r){var t=e;do{var i=t.prev,x=t.next.next;!equals(i,x)&&intersects(i,t,t.next,x)&&locallyInside(i,x)&&locallyInside(x,i)&&(n.push(i.i/r),n.push(t.i/r),n.push(x.i/r),removeNode(t),removeNode(t.next),t=e=x),t=t.next}while(t!==e);return t}function splitEarcut(e,n,r,t,i,x){var a=e;do{for(var o=a.next.next;o!==a.prev;){if(a.i!==o.i&&isValidDiagonal(a,o)){var l=splitPolygon(a,o);return a=filterPoints(a,a.next),l=filterPoints(l,l.next),earcutLinked(a,n,r,t,i,x),void earcutLinked(l,n,r,t,i,x)}o=o.next}a=a.next}while(a!==e)}function eliminateHoles(e,n,r,t){var i,x,a,o,l,u=[];for(i=0,x=n.length;i=t.next.y){var o=t.x+(x-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(o<=i&&o>a){if(a=o,o===i){if(x===t.y)return t;if(x===t.next.y)return t.next}r=t.x=t.x&&t.x>=s&&pointInTriangle(xr.x)&&locallyInside(t,e)&&(r=t,f=l)),t=t.next;return r}function indexCurve(e,n,r,t){var i=e;do null===i.z&&(i.z=zOrder(i.x,i.y,n,r,t)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,sortLinked(i)}function sortLinked(e){var n,r,t,i,x,a,o,l,u=1;do{for(r=e,e=null,x=null,a=0;r;){for(a++,t=r,o=0,n=0;n0||l>0&&t;)0===o?(i=t,t=t.nextZ,l--):0!==l&&t?r.z<=t.z?(i=r,r=r.nextZ,o--):(i=t,t=t.nextZ,l--):(i=r,r=r.nextZ,o--),x?x.nextZ=i:e=i,i.prevZ=x,x=i;r=t}x.nextZ=null,u*=2}while(a>1);return e}function zOrder(e,n,r,t,i){return e=32767*(e-r)/i,n=32767*(n-t)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),n=16711935&(n|n<<8),n=252645135&(n|n<<4),n=858993459&(n|n<<2),n=1431655765&(n|n<<1),e|n<<1}function getLeftmost(e){var n=e,r=e;do n.x=0&&(e-a)*(t-o)-(r-a)*(n-o)>=0&&(r-a)*(x-o)-(i-a)*(t-o)>=0}function isValidDiagonal(e,n){return e.next.i!==n.i&&e.prev.i!==n.i&&!intersectsPolygon(e,n)&&locallyInside(e,n)&&locallyInside(n,e)&&middleInside(e,n)}function area(e,n,r){return(n.y-e.y)*(r.x-n.x)-(n.x-e.x)*(r.y-n.y)}function equals(e,n){return e.x===n.x&&e.y===n.y}function intersects(e,n,r,t){return!!(equals(e,n)&&equals(r,t)||equals(e,t)&&equals(r,n))||area(e,n,r)>0!=area(e,n,t)>0&&area(r,t,e)>0!=area(r,t,n)>0}function intersectsPolygon(e,n){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==n.i&&r.next.i!==n.i&&intersects(r,r.next,e,n))return!0;r=r.next}while(r!==e);return!1}function locallyInside(e,n){return area(e.prev,e,e.next)<0?area(e,n,e.next)>=0&&area(e,e.prev,n)>=0:area(e,n,e.prev)<0||area(e,e.next,n)<0}function middleInside(e,n){var r=e,t=!1,i=(e.x+n.x)/2,x=(e.y+n.y)/2;do r.y>x!=r.next.y>x&&i<(r.next.x-r.x)*(x-r.y)/(r.next.y-r.y)+r.x&&(t=!t),r=r.next;while(r!==e);return t}function splitPolygon(e,n){var r=new Node(e.i,e.x,e.y),t=new Node(n.i,n.x,n.y),i=e.next,x=n.prev;return e.next=n,n.prev=e,r.next=i,i.prev=r,t.next=r,r.prev=t,x.next=t,t.prev=x,t}function insertNode(e,n,r,t){var i=new Node(e,n,r);return t?(i.next=t.next,i.prev=t,t.next.prev=i,t.next=i):(i.prev=i,i.next=i),i}function removeNode(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Node(e,n,r){this.i=e,this.x=n,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function signedArea(e,n,r,t){for(var i=0,x=n,a=r-t;x0&&(t+=e[i-1].length,r.holes.push(t))}return r}; +},{}],6:[function(require,module,exports){ +function geometry(r){if("Polygon"===r.type)return polygonArea(r.coordinates);if("MultiPolygon"===r.type){for(var e=0,n=0;n0){e+=Math.abs(ringArea(r[0]));for(var n=1;n2){for(var n,t,o=0;o=0}var geojsonArea=require("geojson-area");module.exports=rewind; +},{"geojson-area":6}],8:[function(require,module,exports){ +"use strict";function clip(e,r,t,n,u,i,l,s){if(t/=r,n/=r,l>=t&&s<=n)return e;if(l>n||s=t&&c<=n)h.push(o);else if(!(a>n||c=r&&s<=t&&u.push(l)}return u}function clipGeometry(e,r,t,n,u,i){for(var l=[],s=0;st?(d.push(u(h,f,r),u(h,f,t)),i||(d=newSlice(l,d,v,m,w))):o>=r&&d.push(u(h,f,r)):c>t?ot&&(d.push(u(h,f,t)),i||(d=newSlice(l,d,v,m,w))));h=g[S-1],c=h[n],c>=r&&c<=t&&d.push(h),a=d[d.length-1],i&&a&&(d[0][0]!==a[0]||d[0][1]!==a[1])&&d.push(d[0]),newSlice(l,d,v,m,w)}return l}function newSlice(e,r,t,n,u){return r.length&&(r.area=t,r.dist=n,void 0!==u&&(r.outer=u),e.push(r)),[]}module.exports=clip;var createFeature=require("./feature"); +},{"./feature":10}],9:[function(require,module,exports){ +"use strict";function convert(e,t){var r=[];if("FeatureCollection"===e.type)for(var o=0;o1?1:o,[r,o,0]}function calcSize(e){for(var t,r,o=0,a=0,i=0;i1)return!1;var r=n.geometry[0].length;if(5!==r)return!1;for(var s=0;s1&&console.time("creation"),m=this.tiles[d]=createTile(e,p,i,o,f,t===a.maxZoom),this.tileCoords.push({z:t,x:i,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,i,o,m.numFeatures,m.numPoints,m.numSimplified),console.timeEnd("creation"));var h="z"+t;this.stats[h]=(this.stats[h]||0)+1,this.total++}if(m.source=e,n){if(t===a.maxZoom||t===n)continue;var x=1<1&&console.time("clipping");var g,v,M,T,b,y,S=.5*a.buffer/a.extent,Z=.5-S,q=.5+S,w=1+S;g=v=M=T=null,b=clip(e,p,i-S,i+q,0,intersectX,m.min[0],m.max[0]),y=clip(e,p,i+Z,i+w,0,intersectX,m.min[0],m.max[0]),b&&(g=clip(b,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),v=clip(b,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),y&&(M=clip(y,p,o-S,o+q,1,intersectY,m.min[1],m.max[1]),T=clip(y,p,o+Z,o+w,1,intersectY,m.min[1],m.max[1])),u>1&&console.timeEnd("clipping"),e.length&&(l.push(g||[],t+1,2*i,2*o),l.push(v||[],t+1,2*i,2*o+1),l.push(M||[],t+1,2*i+1,2*o),l.push(T||[],t+1,2*i+1,2*o+1))}else n&&(c=t)}return c},GeoJSONVT.prototype.getTile=function(e,t,i){var o=this.options,n=o.extent,r=o.debug,s=1<1&&console.log("drilling down to z%d-%d-%d",e,t,i);for(var a,u=e,c=t,p=i;!a&&u>0;)u--,c=Math.floor(c/2),p=Math.floor(p/2),a=this.tiles[toID(u,c,p)];if(!a||!a.source)return null;if(r>1&&console.log("found parent tile z%d-%d-%d",u,c,p),isClippedSquare(a,n,o.buffer))return transform.tile(a,n);r>1&&console.time("drilling down");var d=this.splitTile(a.source,u,c,p,e,t,i);if(r>1&&console.timeEnd("drilling down"),null!==d){var m=1<p&&(s=e,p=r);p>o?(t[s][2]=p,g.push(u),g.push(s),u=s):(n=g.pop(),u=g.pop())}}function getSqSegDist(t,i,e){var p=i[0],r=i[1],s=e[0],o=e[1],f=t[0],u=t[1],n=s-p,g=o-r;if(0!==n||0!==g){var l=((f-p)*n+(u-r)*g)/(n*n+g*g);l>1?(p=s,r=o):l>0&&(p+=n*l,r+=g*l)}return n=f-p,g=u-r,n*n+g*g}module.exports=simplify; +},{}],13:[function(require,module,exports){ +"use strict";function createTile(e,n,r,i,t,u){for(var a={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z2:n,transformed:!1,min:[2,1],max:[-1,0]},m=0;ma.max[0]&&(a.max[0]=l[0]),l[1]>a.max[1]&&(a.max[1]=l[1])}return a}function addFeature(e,n,r,i){var t,u,a,m,s=n.geometry,l=n.type,o=[],f=r*r;if(1===l)for(t=0;tf)&&(d.push(m),e.numSimplified++),e.numPoints++;3===l&&rewind(d,a.outer),o.push(d)}else e.numPoints+=a.length;if(o.length){var g={geometry:o,type:l,tags:n.tags||null};null!==n.id&&(g.id=n.id),e.features.push(g)}}function rewind(e,n){var r=signedArea(e);r<0===n&&e.reverse()}function signedArea(e){for(var n,r,i=0,t=0,u=e.length,a=u-1;t=a[u+0]&&s>=a[u+1]?(n[f]=!0,h.push(l[f])):n[f]=!1}}},GridIndex.prototype._forEachCell=function(t,r,e,s,i,h,n){for(var o=this._convertToCellCoord(t),l=this._convertToCellCoord(r),a=this._convertToCellCoord(e),d=this._convertToCellCoord(s),f=o;f<=a;f++)for(var u=l;u<=d;u++){var y=this.d*u+f;if(i.call(this,t,r,e,s,y,h,n))return}},GridIndex.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},GridIndex.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,r=NUM_PARAMS+this.cells.length+1+1,e=0,s=0;s>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:(s?-1:1)*(1/0);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l}; +},{}],18:[function(require,module,exports){ +"use strict";function kdbush(t,i,e,s,n){return new KDBush(t,i,e,s,n)}function KDBush(t,i,e,s,n){i=i||defaultGetX,e=e||defaultGetY,n=n||Array,this.nodeSize=s||64,this.points=t,this.ids=new n(t.length),this.coords=new n(2*t.length);for(var r=0;r=s&&a<=h&&t>=u&&t<=e&&f.push(p[i]);else{var c=Math.floor((g+v)/2);a=r[2*c],t=r[2*c+1],a>=s&&a<=h&&t>=u&&t<=e&&f.push(p[c]);var d=(l+1)%2;(0===l?s<=a:u<=t)&&(n.push(g),n.push(c-1),n.push(d)),(0===l?h>=a:e>=t)&&(n.push(c+1),n.push(v),n.push(d))}}return f}module.exports=range; +},{}],20:[function(require,module,exports){ +"use strict";function sortKD(t,a,o,s,r,e){if(!(r-s<=o)){var f=Math.floor((s+r)/2);select(t,a,f,s,r,e%2),sortKD(t,a,o,s,f-1,e+1),sortKD(t,a,o,f+1,r,e+1)}}function select(t,a,o,s,r,e){for(;r>s;){if(r-s>600){var f=r-s+1,p=o-s+1,w=Math.log(f),m=.5*Math.exp(2*w/3),n=.5*Math.sqrt(w*m*(f-m)/f)*(p-f/2<0?-1:1),c=Math.max(s,Math.floor(o-p*m/f+n)),h=Math.min(r,Math.floor(o+(f-p)*m/f+n));select(t,a,o,c,h,e)}var i=a[2*o+e],l=s,M=r;for(swapItem(t,a,s,o),a[2*r+e]>i&&swapItem(t,a,s,r);li;)M--}a[2*s+e]===i?swapItem(t,a,s,M):(M++,swapItem(t,a,M,r)),M<=o&&(s=M+1),o<=M&&(r=M-1)}}function swapItem(t,a,o,s){swap(t,o,s),swap(a,2*o,2*s),swap(a,2*o+1,2*s+1)}function swap(t,a,o){var s=t[a];t[a]=t[o],t[o]=s}module.exports=sortKD; +},{}],21:[function(require,module,exports){ +"use strict";function within(s,p,r,t,u,h){for(var i=[0,s.length-1,0],o=[],n=u*u;i.length;){var e=i.pop(),a=i.pop(),f=i.pop();if(a-f<=h)for(var v=f;v<=a;v++)sqDist(p[2*v],p[2*v+1],r,t)<=n&&o.push(s[v]);else{var l=Math.floor((f+a)/2),c=p[2*l],q=p[2*l+1];sqDist(c,q,r,t)<=n&&o.push(s[l]);var D=(e+1)%2;(0===e?r-u<=c:t-u<=q)&&(i.push(f),i.push(l-1),i.push(D)),(0===e?r+u>=c:t+u>=q)&&(i.push(l+1),i.push(a),i.push(D))}}return o}function sqDist(s,p,r,t){var u=s-r,h=p-t;return u*u+h*h}module.exports=within; +},{}],22:[function(require,module,exports){ +"use strict";function isSupported(e){return!!(isBrowser()&&isArraySupported()&&isFunctionSupported()&&isObjectSupported()&&isJSONSupported()&&isWorkerSupported()&&isUint8ClampedArraySupported()&&isWebGLSupportedCached(e&&e.failIfMajorPerformanceCaveat))}function isBrowser(){return"undefined"!=typeof window&&"undefined"!=typeof document}function isArraySupported(){return Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray}function isFunctionSupported(){return Function.prototype&&Function.prototype.bind}function isObjectSupported(){return Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions}function isJSONSupported(){return"JSON"in window&&"parse"in JSON&&"stringify"in JSON}function isWorkerSupported(){return"Worker"in window}function isUint8ClampedArraySupported(){return"Uint8ClampedArray"in window}function isWebGLSupportedCached(e){return void 0===isWebGLSupportedCache[e]&&(isWebGLSupportedCache[e]=isWebGLSupported(e)),isWebGLSupportedCache[e]}function isWebGLSupported(e){var t=document.createElement("canvas"),r=Object.create(isSupported.webGLContextAttributes);return r.failIfMajorPerformanceCaveat=e,t.probablySupportsContext?t.probablySupportsContext("webgl",r)||t.probablySupportsContext("experimental-webgl",r):t.supportsContext?t.supportsContext("webgl",r)||t.supportsContext("experimental-webgl",r):t.getContext("webgl",r)||t.getContext("experimental-webgl",r)}"undefined"!=typeof module&&module.exports?module.exports=isSupported:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=isSupported);var isWebGLSupportedCache={};isSupported.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}; +},{}],23:[function(require,module,exports){ +(function (process){ +function normalizeArray(r,t){for(var e=0,n=r.length-1;n>=0;n--){var s=r[n];"."===s?r.splice(n,1):".."===s?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e--;e)r.unshift("..");return r}function filter(r,t){if(r.filter)return r.filter(t);for(var e=[],n=0;n=-1&&!t;e--){var n=e>=0?arguments[e]:process.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(r=n+"/"+r,t="/"===n.charAt(0))}return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),(t?"/":"")+r||"."},exports.normalize=function(r){var t=exports.isAbsolute(r),e="/"===substr(r,-1);return r=normalizeArray(filter(r.split("/"),function(r){return!!r}),!t).join("/"),r||t||(r="."),r&&e&&(r+="/"),(t?"/":"")+r},exports.isAbsolute=function(r){return"/"===r.charAt(0)},exports.join=function(){var r=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(r,function(r,t){if("string"!=typeof r)throw new TypeError("Arguments to path.join must be strings");return r}).join("/"))},exports.relative=function(r,t){function e(r){for(var t=0;t=0&&""===r[e];e--);return t>e?[]:r.slice(t,e-t+1)}r=exports.resolve(r).substr(1),t=exports.resolve(t).substr(1);for(var n=e(r.split("/")),s=e(t.split("/")),i=Math.min(n.length,s.length),o=i,u=0;u55295&&e<57344){if(!r){e>56319||o+1===n?i.push(239,191,189):r=e;continue}if(e<56320){i.push(239,191,189),r=e;continue}e=r-55296<<10|e-56320|65536,r=null}else r&&(i.push(239,191,189),r=null);e<128?i.push(e):e<2048?i.push(e>>6|192,63&e|128):e<65536?i.push(e>>12|224,e>>6&63|128,63&e|128):i.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}return i}module.exports=Buffer;var ieee754=require("ieee754"),BufferMethods,lastStr,lastStrEncoded;BufferMethods={readUInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},writeUInt32LE:function(t,e){this[e]=t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24},readInt32LE:function(t){return(this[t]|this[t+1]<<8|this[t+2]<<16)+(this[t+3]<<24)},readFloatLE:function(t){return ieee754.read(this,t,!0,23,4)},readDoubleLE:function(t){return ieee754.read(this,t,!0,52,8)},writeFloatLE:function(t,e){return ieee754.write(this,t,e,!0,23,4)},writeDoubleLE:function(t,e){return ieee754.write(this,t,e,!0,52,8)},toString:function(t,e,r){var n="",i="";e=e||0,r=Math.min(this.length,r||this.length);for(var o=e;o=1;){if(i.pos>=e)throw new Error("Given varint doesn't fit into 10 bytes");var r=255&t;i.buf[i.pos++]=r|(t>=128?128:0),t/=128}}function reallocForRawMessage(t,i,e){var r=i<=16383?1:i<=2097151?2:i<=268435455?3:Math.ceil(Math.log(i)/(7*Math.LN2));e.realloc(r);for(var s=e.pos-1;s>=t;s--)e.buf[s+r]=e.buf[s]}function writePackedVarint(t,i){for(var e=0;e>3,n=this.pos;t(s,i,this),this.pos===n&&this.skip(r)}return i},readMessage:function(t,i){return this.readFields(t,i,this.readVarint()+this.pos)},readFixed32:function(){var t=this.buf.readUInt32LE(this.pos);return this.pos+=4,t},readSFixed32:function(){var t=this.buf.readInt32LE(this.pos);return this.pos+=4,t},readFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readUInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+this.buf.readInt32LE(this.pos+4)*SHIFT_LEFT_32;return this.pos+=8,t},readFloat:function(){var t=this.buf.readFloatLE(this.pos);return this.pos+=4,t},readDouble:function(){var t=this.buf.readDoubleLE(this.pos);return this.pos+=8,t},readVarint:function(){var t,i,e=this.buf;return i=e[this.pos++],t=127&i,i<128?t:(i=e[this.pos++],t|=(127&i)<<7,i<128?t:(i=e[this.pos++],t|=(127&i)<<14,i<128?t:(i=e[this.pos++],t|=(127&i)<<21,i<128?t:readVarintRemainder(t,this))))},readVarint64:function(){var t=this.pos,i=this.readVarint();if(i127;);else if(i===Pbf.Bytes)this.pos=this.readVarint()+this.pos;else if(i===Pbf.Fixed32)this.pos+=4;else{if(i!==Pbf.Fixed64)throw new Error("Unimplemented type: "+i);this.pos+=8}},writeTag:function(t,i){this.writeVarint(t<<3|i)},realloc:function(t){for(var i=this.length||16;i268435455?void writeBigVarint(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),void(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);var i=Buffer.byteLength(t);this.writeVarint(i),this.realloc(i),this.buf.write(t,this.pos),this.pos+=i},writeFloat:function(t){this.realloc(4),this.buf.writeFloatLE(t,this.pos),this.pos+=4},writeDouble:function(t){this.realloc(8),this.buf.writeDoubleLE(t,this.pos),this.pos+=8},writeBytes:function(t){var i=t.length;this.writeVarint(i),this.realloc(i);for(var e=0;e=128&&reallocForRawMessage(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,i,e){this.writeTag(t,Pbf.Bytes),this.writeRawMessage(i,e)},writePackedVarint:function(t,i){this.writeMessage(t,writePackedVarint,i)},writePackedSVarint:function(t,i){this.writeMessage(t,writePackedSVarint,i)},writePackedBoolean:function(t,i){this.writeMessage(t,writePackedBoolean,i)},writePackedFloat:function(t,i){this.writeMessage(t,writePackedFloat,i)},writePackedDouble:function(t,i){this.writeMessage(t,writePackedDouble,i)},writePackedFixed32:function(t,i){this.writeMessage(t,writePackedFixed32,i)},writePackedSFixed32:function(t,i){this.writeMessage(t,writePackedSFixed32,i)},writePackedFixed64:function(t,i){this.writeMessage(t,writePackedFixed64,i)},writePackedSFixed64:function(t,i){this.writeMessage(t,writePackedSFixed64,i)},writeBytesField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeBytes(i)},writeFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFixed32(i)},writeSFixed32Field:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeSFixed32(i)},writeFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeFixed64(i)},writeSFixed64Field:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeSFixed64(i)},writeVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeVarint(i)},writeSVarintField:function(t,i){this.writeTag(t,Pbf.Varint),this.writeSVarint(i)},writeStringField:function(t,i){this.writeTag(t,Pbf.Bytes),this.writeString(i)},writeFloatField:function(t,i){this.writeTag(t,Pbf.Fixed32),this.writeFloat(i)},writeDoubleField:function(t,i){this.writeTag(t,Pbf.Fixed64),this.writeDouble(i)},writeBooleanField:function(t,i){this.writeVarintField(t,Boolean(i))}}; +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./buffer":24}],26:[function(require,module,exports){ +"use strict";function Point(t,n){this.x=t,this.y=n}module.exports=Point,Point.prototype={clone:function(){return new Point(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(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)},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 n=t.x-this.x,i=t.y-this.y;return n*n+i*i},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,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},_matMult:function(t){var n=t[0]*this.x+t[1]*this.y,i=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=i,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_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 n=Math.cos(t),i=Math.sin(t),s=n*this.x-i*this.y,r=i*this.x+n*this.y;return this.x=s,this.y=r,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Point.convert=function(t){return t instanceof Point?t:Array.isArray(t)?new Point(t[0],t[1]):t}; +},{}],27:[function(require,module,exports){ +function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex1)for(var u=1;ur;){if(o-r>600){var f=o-r+1,e=t-r+1,l=Math.log(f),s=.5*Math.exp(2*l/3),i=.5*Math.sqrt(l*s*(f-s)/f)*(e-f/2<0?-1:1),n=Math.max(r,Math.floor(t-e*s/f+i)),h=Math.min(o,Math.floor(t+(f-e)*s/f+i));partialSort(a,t,n,h,p)}var u=a[t],M=r,w=o;for(swap(a,r,t),p(a[o],u)>0&&swap(a,r,o);M0;)w--}0===p(a[r],u)?swap(a,r,w):(w++,swap(a,w,o)),w<=t&&(r=w+1),t<=w&&(o=w-1)}}function swap(a,t,r){var o=a[t];a[t]=a[r],a[r]=o}function defaultCompare(a,t){return at?1:0}module.exports=partialSort; +},{}],29:[function(require,module,exports){ +"use strict";function supercluster(t){return new SuperCluster(t)}function SuperCluster(t){this.options=extend(Object.create(this.options),t),this.trees=new Array(this.options.maxZoom+1)}function createCluster(t,e,o,n){return{x:t,y:e,zoom:1/0,id:n,numPoints:o}}function createPointCluster(t,e){var o=t.geometry.coordinates;return createCluster(lngX(o[0]),latY(o[1]),1,e)}function getClusterJSON(t){return{type:"Feature",properties:getClusterProperties(t),geometry:{type:"Point",coordinates:[xLng(t.x),yLat(t.y)]}}}function getClusterProperties(t){var e=t.numPoints,o=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return{cluster:!0,point_count:e,point_count_abbreviated:o}}function lngX(t){return t/360+.5}function latY(t){var e=Math.sin(t*Math.PI/180),o=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return o<0?0:o>1?1:o}function xLng(t){return 360*(t-.5)}function yLat(t){var e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}function extend(t,e){for(var o in e)t[o]=e[o];return t}function getX(t){return t.x}function getY(t){return t.y}var kdbush=require("kdbush");module.exports=supercluster,SuperCluster.prototype={options:{minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1},load:function(t){var e=this.options.log;e&&console.time("total time");var o="prepare "+t.length+" points";e&&console.time(o),this.points=t;var n=t.map(createPointCluster);e&&console.timeEnd(o);for(var r=this.options.maxZoom;r>=this.options.minZoom;r--){var i=+Date.now();this.trees[r+1]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),n=this._cluster(n,r),e&&console.log("z%d: %d clusters in %dms",r,n.length,+Date.now()-i)}return this.trees[this.options.minZoom]=kdbush(n,getX,getY,this.options.nodeSize,Float32Array),e&&console.timeEnd("total time"),this},getClusters:function(t,e){for(var o=this.trees[this._limitZoom(e)],n=o.range(lngX(t[0]),latY(t[3]),lngX(t[2]),latY(t[1])),r=[],i=0;i=0;a--)this._down(a)}function defaultCompare(t,i){return ti?1:0}function swap(t,i,a){var n=t[i];t[i]=t[a],t[a]=n}module.exports=TinyQueue,TinyQueue.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){var t=this.data[0];return this.data[0]=this.data[this.length-1],this.length--,this.data.pop(),this._down(0),t},peek:function(){return this.data[0]},_up:function(t){for(var i=this.data,a=this.compare;t>0;){var n=Math.floor((t-1)/2);if(!(a(i[t],i[n])<0))break;swap(i,n,t),t=n}},_down:function(t){for(var i=this.data,a=this.compare,n=this.length;;){var e=2*t+1,h=e+1,s=t;if(e=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),isBoolean(r)?t.showHidden=r:r&&exports._extend(t,r),isUndefined(t.showHidden)&&(t.showHidden=!1),isUndefined(t.depth)&&(t.depth=2),isUndefined(t.colors)&&(t.colors=!1),isUndefined(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=stylizeWithColor),formatValue(t,e,t.depth)}function stylizeWithColor(e,r){var t=inspect.styles[r];return t?"["+inspect.colors[t][0]+"m"+e+"["+inspect.colors[t][1]+"m":e}function stylizeNoColor(e,r){return e}function arrayToHash(e){var r={};return e.forEach(function(e,t){r[e]=!0}),r}function formatValue(e,r,t){if(e.customInspect&&r&&isFunction(r.inspect)&&r.inspect!==exports.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(t,e);return isString(n)||(n=formatValue(e,n,t)),n}var i=formatPrimitive(e,r);if(i)return i;var o=Object.keys(r),s=arrayToHash(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),isError(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return formatError(r);if(0===o.length){if(isFunction(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(isRegExp(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(isDate(r))return e.stylize(Date.prototype.toString.call(r),"date");if(isError(r))return formatError(r)}var c="",a=!1,l=["{","}"];if(isArray(r)&&(a=!0,l=["[","]"]),isFunction(r)){var p=r.name?": "+r.name:"";c=" [Function"+p+"]"}if(isRegExp(r)&&(c=" "+RegExp.prototype.toString.call(r)),isDate(r)&&(c=" "+Date.prototype.toUTCString.call(r)),isError(r)&&(c=" "+formatError(r)),0===o.length&&(!a||0==r.length))return l[0]+c+l[1];if(t<0)return isRegExp(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var f;return f=a?formatArray(e,r,t,s,o):o.map(function(n){return formatProperty(e,r,t,s,n,a)}),e.seen.pop(),reduceToSingleString(f,c,l)}function formatPrimitive(e,r){if(isUndefined(r))return e.stylize("undefined","undefined");if(isString(r)){var t="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(t,"string")}return isNumber(r)?e.stylize(""+r,"number"):isBoolean(r)?e.stylize(""+r,"boolean"):isNull(r)?e.stylize("null","null"):void 0}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatArray(e,r,t,n,i){for(var o=[],s=0,u=r.length;s-1&&(u=o?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),isUndefined(s)){if(o&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function reduceToSingleString(e,r,t){var n=0,i=e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?t[0]+(""===r?"":r+"\n ")+" "+e.join(",\n ")+" "+t[1]:t[0]+r+" "+e.join(", ")+" "+t[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return"boolean"==typeof e}function isNull(e){return null===e}function isNullOrUndefined(e){return null==e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isSymbol(e){return"symbol"==typeof e}function isUndefined(e){return void 0===e}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(e){return"function"==typeof e}function isPrimitive(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function objectToString(e){return Object.prototype.toString.call(e)}function pad(e){return e<10?"0"+e.toString(10):e.toString(10)}function timestamp(){var e=new Date,r=[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds())].join(":");return[e.getDate(),months[e.getMonth()],r].join(" ")}function hasOwnProperty(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var formatRegExp=/%[sdj%]/g;exports.format=function(e){if(!isString(e)){for(var r=[],t=0;t=i)return e;switch(e){case"%s":return String(n[t++]);case"%d":return Number(n[t++]);case"%j":try{return JSON.stringify(n[t++])}catch(e){return"[Circular]"}default:return e}}),s=n[t];t>3}if(a--,1===i||2===i)o+=e.readSVarint(),n+=e.readSVarint(),1===i&&(t&&s.push(t),t=[]),t.push(new Point(o,n));else{if(7!==i)throw new Error("unknown command "+i);t&&t.push(t[0].clone())}}return t&&s.push(t),s},VectorTileFeature.prototype.bbox=function(){var e=this._pbf;e.pos=this._geometry;for(var t=e.readVarint()+e.pos,r=1,i=0,a=0,o=0,n=1/0,s=-(1/0),p=1/0,h=-(1/0);e.pos>3}if(i--,1===r||2===r)a+=e.readSVarint(),o+=e.readSVarint(),as&&(s=a),oh&&(h=o);else if(7!==r)throw new Error("unknown command "+r)}return[n,p,s,h]},VectorTileFeature.prototype.toGeoJSON=function(e,t,r){function i(e){for(var t=0;t>3;t=1===a?e.readString():2===a?e.readFloat():3===a?e.readDouble():4===a?e.readVarint64():5===a?e.readVarint():6===a?e.readSVarint():7===a?e.readBoolean():null}return t}var VectorTileFeature=require("./vectortilefeature.js");module.exports=VectorTileLayer,VectorTileLayer.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];var t=this._pbf.readVarint()+this._pbf.pos;return new VectorTileFeature(this._pbf,t,this.extent,this._keys,this._values)}; +},{"./vectortilefeature.js":36}],38:[function(require,module,exports){ +function fromVectorTileJs(e){var r=[];for(var o in e.layers)r.push(prepareLayer(e.layers[o]));var t=new Pbf;return vtpb.tile.write({layers:r},t),t.finish()}function fromGeojsonVt(e){var r={};for(var o in e)r[o]=new GeoJSONWrapper(e[o].features),r[o].name=o;return fromVectorTileJs({layers:r})}function prepareLayer(e){for(var r={name:e.name||"",version:e.version||1,extent:e.extent||4096,keys:[],values:[],features:[]},o={},t={},n=0;n>31}function encodeGeometry(e){for(var r=[],o=0,t=0,n=e.length,a=0;aArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray.length),this.segments.push(e)),e},ArrayGroup.prototype.prepareSegment2=function(r){var e=this.segments2[this.segments2.length-1];return(!e||e.vertexLength+r>ArrayGroup.MAX_VERTEX_ARRAY_LENGTH)&&(e=new Segment(this.layoutVertexArray.length,this.elementArray2.length),this.segments2.push(e)),e},ArrayGroup.prototype.populatePaintArrays=function(r){var e=this;for(var t in e.layerData){var a=e.layerData[t];0!==a.paintVertexArray.bytesPerElement&&a.programConfiguration.populatePaintArray(a.layer,a.paintVertexArray,a.paintPropertyStatistics,e.layoutVertexArray.length,e.globalProperties,r)}},ArrayGroup.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ArrayGroup.prototype.serialize=function(r){return{layoutVertexArray:this.layoutVertexArray.serialize(r),elementArray:this.elementArray&&this.elementArray.serialize(r),elementArray2:this.elementArray2&&this.elementArray2.serialize(r),paintVertexArrays:serializePaintVertexArrays(this.layerData,r),segments:this.segments,segments2:this.segments2}},ArrayGroup.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,module.exports=ArrayGroup; +},{"./program_configuration":58}],45:[function(require,module,exports){ +"use strict";var ArrayGroup=require("./array_group"),BufferGroup=require("./buffer_group"),util=require("../util/util"),Bucket=function(r,t){this.zoom=r.zoom,this.overscaling=r.overscaling,this.layers=r.layers,this.index=r.index,r.arrays?this.buffers=new BufferGroup(t,r.layers,r.zoom,r.arrays):this.arrays=new ArrayGroup(t,r.layers,r.zoom)};Bucket.prototype.populate=function(r,t){for(var e=this,i=0,a=r;i=EXTENT||o<0||o>=EXTENT)){var n=r.prepareSegment(4),u=n.vertexLength;addCircleVertex(r.layoutVertexArray,y,o,-1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,-1),addCircleVertex(r.layoutVertexArray,y,o,1,1),addCircleVertex(r.layoutVertexArray,y,o,-1,1),r.elementArray.emplaceBack(u,u+1,u+2),r.elementArray.emplaceBack(u,u+3,u+2),n.vertexLength+=4,n.primitiveLength+=2}}r.populatePaintArrays(e.properties)},r}(Bucket);CircleBucket.programInterface=circleInterface,module.exports=CircleBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60}],47:[function(require,module,exports){ +"use strict";var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"}]),elementArrayType:createElementArrayType(3),elementArrayType2:createElementArrayType(2),paintAttributes:[{property:"fill-color",type:"Uint8"},{property:"fill-outline-color",type:"Uint8"},{property:"fill-opacity",type:"Uint8",multiplier:255}]},FillBucket=function(e){function r(r){e.call(this,r,fillInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);tEXTENT)||e.y===r.y&&(e.y<0||e.y>EXTENT)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),earcut=require("earcut"),classifyRings=require("../../util/classify_rings"),EARCUT_MAX_RINGS=500,fillExtrusionInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal",components:3,type:"Int16"},{name:"a_edgedistance",components:1,type:"Int16"}]),elementArrayType:createElementArrayType(3),paintAttributes:[{property:"fill-extrusion-base",type:"Uint16"},{property:"fill-extrusion-height",type:"Uint16"},{property:"fill-extrusion-color",type:"Uint8"}]},FACTOR=Math.pow(2,13),FillExtrusionBucket=function(e){function r(r){e.call(this,r,fillExtrusionInterface)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.addFeature=function(e){for(var r=this.arrays,t=0,a=classifyRings(loadGeometry(e),EARCUT_MAX_RINGS);t=1){var A=d[h-1];if(!isBoundaryEdge(g,A)){var _=g.sub(A)._perp()._unit();addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,g.x,g.y,_.x,_.y,0,1,m),m+=A.dist(g),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,0,m),addVertex(r.layoutVertexArray,A.x,A.y,_.x,_.y,0,1,m);var v=p.vertexLength;r.elementArray.emplaceBack(v,v+1,v+2),r.elementArray.emplaceBack(v+1,v+2,v+3),p.vertexLength+=4,p.primitiveLength+=2}}u.push(g.x),u.push(g.y)}}}for(var E=earcut(u,c),T=0;T>6)}var Bucket=require("../bucket"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),loadGeometry=require("../load_geometry"),EXTENT=require("../extent"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTRUDE_SCALE=63,COS_HALF_SHARP_CORNER=Math.cos(37.5*(Math.PI/180)),SHARP_CORNER_OFFSET=15,LINE_DISTANCE_BUFFER_BITS=15,LINE_DISTANCE_SCALE=.5,MAX_LINE_DISTANCE=Math.pow(2,LINE_DISTANCE_BUFFER_BITS-1)/LINE_DISTANCE_SCALE,lineInterface={layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}]),paintAttributes:[{property:"line-color",type:"Uint8"},{property:"line-blur",multiplier:10,type:"Uint8"},{property:"line-opacity",multiplier:10,type:"Uint8"},{property:"line-gap-width",multiplier:10,type:"Uint8",name:"a_gapwidth"},{property:"line-offset",multiplier:1,type:"Int8"}],elementArrayType:createElementArrayType()},LineBucket=function(e){function t(t){e.call(this,t,lineInterface)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.addFeature=function(e){for(var t=this,r=this.layers[0].layout,i=r["line-join"],a=r["line-cap"],n=r["line-miter-limit"],d=r["line-round-limit"],s=0,u=loadGeometry(e,LINE_DISTANCE_BUFFER_BITS);s=2&&e[l-1].equals(e[l-2]);)l--;if(!(l<(u?3:2))){"bevel"===r&&(a=1.05);var o=SHARP_CORNER_OFFSET*(EXTENT/(512*this.overscaling)),p=e[0],c=this.arrays,_=c.prepareSegment(10*l);this.distance=0;var y,h,m,E,x,C,v,A=i,f=u?"butt":i,L=!0;this.e1=this.e2=this.e3=-1,u&&(y=e[l-2],x=p.sub(y)._unit()._perp());for(var V=0;V0){var b=y.dist(h);if(b>2*o){var R=y.sub(y.sub(h)._mult(o/b)._round());d.distance+=R.dist(h),d.addCurrentVertex(R,d.distance,E.mult(1),0,0,!1,_),h=R}}var g=h&&m,F=g?r:m?A:f;if(g&&"round"===F&&(Ia&&(F="bevel"),"bevel"===F&&(I>2&&(F="flipbevel"),I100)S=x.clone().mult(-1);else{var B=E.x*x.y-E.y*x.x>0?-1:1,k=I*E.add(x).mag()/E.sub(x).mag();S._perp()._mult(k*B)}d.addCurrentVertex(y,d.distance,S,0,0,!1,_),d.addCurrentVertex(y,d.distance,S.mult(-1),0,0,!1,_)}else if("bevel"===F||"fakeround"===F){var D=E.x*x.y-E.y*x.x>0,P=-Math.sqrt(I*I-1);if(D?(v=0,C=P):(C=0,v=P),L||d.addCurrentVertex(y,d.distance,E,C,v,!1,_),"fakeround"===F){for(var U=Math.floor(8*(.5-(T-.5))),q=void 0,M=0;M=0;O--)q=E.mult((O+1)/(U+1))._add(x)._unit(),d.addPieSliceVertex(y,d.distance,q,D,_)}m&&d.addCurrentVertex(y,d.distance,x,-C,-v,!1,_)}else"butt"===F?(L||d.addCurrentVertex(y,d.distance,E,0,0,!1,_),m&&d.addCurrentVertex(y,d.distance,x,0,0,!1,_)):"square"===F?(L||(d.addCurrentVertex(y,d.distance,E,1,1,!1,_),d.e1=d.e2=-1),m&&d.addCurrentVertex(y,d.distance,x,-1,-1,!1,_)):"round"===F&&(L||(d.addCurrentVertex(y,d.distance,E,0,0,!1,_),d.addCurrentVertex(y,d.distance,E,1,1,!0,_),d.e1=d.e2=-1),m&&(d.addCurrentVertex(y,d.distance,x,-1,-1,!0,_),d.addCurrentVertex(y,d.distance,x,0,0,!1,_)));if(N&&V2*o){var H=y.add(m.sub(y)._mult(o/X)._round());d.distance+=H.dist(y),d.addCurrentVertex(H,d.distance,x.mult(1),0,0,!1,_),y=H}}L=!1}c.populatePaintArrays(s)}},t.prototype.addCurrentVertex=function(e,t,r,i,a,n,d){var s,u=n?1:0,l=this.arrays,o=l.layoutVertexArray,p=l.elementArray;s=r.clone(),i&&s._sub(r.perp()._mult(i)),addLineVertex(o,e,s,u,0,i,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,s=r.mult(-1),a&&s._sub(r.perp()._mult(a)),addLineVertex(o,e,s,u,1,-a,t),this.e3=d.vertexLength++,this.e1>=0&&this.e2>=0&&(p.emplaceBack(this.e1,this.e2,this.e3),d.primitiveLength++),this.e1=this.e2,this.e2=this.e3,t>MAX_LINE_DISTANCE/2&&(this.distance=0,this.addCurrentVertex(e,this.distance,r,i,a,n,d))},t.prototype.addPieSliceVertex=function(e,t,r,i,a){var n=i?1:0;r=r.mult(i?-1:1);var d=this.arrays,s=d.layoutVertexArray,u=d.elementArray;addLineVertex(s,e,r,0,n,0,t),this.e3=a.vertexLength++,this.e1>=0&&this.e2>=0&&(u.emplaceBack(this.e1,this.e2,this.e3),a.primitiveLength++),i?this.e2=this.e3:this.e1=this.e3},t}(Bucket);LineBucket.programInterface=lineInterface,module.exports=LineBucket; +},{"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"vector-tile":34}],50:[function(require,module,exports){ +"use strict";function addVertex(e,t,o,r,a,i,n,l,s,c,y){e.emplaceBack(t,o,Math.round(64*r),Math.round(64*a),i/4,n/4,10*(c||0),y,10*(l||0),10*Math.min(s||25,25))}function addCollisionBoxVertex(e,t,o,r,a){return e.emplaceBack(t.x,t.y,Math.round(o.x),Math.round(o.y),10*r,10*a)}var Point=require("point-geometry"),ArrayGroup=require("../array_group"),BufferGroup=require("../buffer_group"),createVertexArrayType=require("../vertex_array_type"),createElementArrayType=require("../element_array_type"),EXTENT=require("../extent"),Anchor=require("../../symbol/anchor"),getAnchors=require("../../symbol/get_anchors"),resolveTokens=require("../../util/token"),Quads=require("../../symbol/quads"),Shaping=require("../../symbol/shaping"),resolveText=require("../../symbol/resolve_text"),mergeLines=require("../../symbol/mergelines"),clipLine=require("../../symbol/clip_line"),util=require("../../util/util"),scriptDetection=require("../../util/script_detection"),loadGeometry=require("../load_geometry"),CollisionFeature=require("../../symbol/collision_feature"),findPoleOfInaccessibility=require("../../util/find_pole_of_inaccessibility"),classifyRings=require("../../util/classify_rings"),VectorTileFeature=require("vector-tile").VectorTileFeature,rtlTextPlugin=require("../../source/rtl_text_plugin"),shapeText=Shaping.shapeText,shapeIcon=Shaping.shapeIcon,WritingMode=Shaping.WritingMode,getGlyphQuads=Quads.getGlyphQuads,getIconQuads=Quads.getIconQuads,elementArrayType=createElementArrayType(),layoutVertexArrayType=createVertexArrayType([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_texture_pos",components:2,type:"Uint16"},{name:"a_data",components:4,type:"Uint8"}]),symbolInterfaces={glyph:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"text-color",type:"Uint8"},{name:"a_halo_color",property:"text-halo-color",type:"Uint8"},{name:"a_halo_width",property:"text-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"text-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"text-opacity",type:"Uint8",multiplier:255}]},icon:{layoutVertexArrayType:layoutVertexArrayType,elementArrayType:elementArrayType,paintAttributes:[{name:"a_fill_color",property:"icon-color",type:"Uint8"},{name:"a_halo_color",property:"icon-halo-color",type:"Uint8"},{name:"a_halo_width",property:"icon-halo-width",type:"Uint16",multiplier:10},{name:"a_halo_blur",property:"icon-halo-blur",type:"Uint16",multiplier:10},{name:"a_opacity",property:"icon-opacity",type:"Uint8",multiplier:255}]},collisionBox:{layoutVertexArrayType:createVertexArrayType([{name:"a_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"},{name:"a_data",components:2,type:"Uint8"}]),elementArrayType:createElementArrayType(2)}},SymbolBucket=function(e){var t=this;if(this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.index=e.index,this.sdfIcons=e.sdfIcons,this.iconsNeedLinear=e.iconsNeedLinear,this.adjustedTextSize=e.adjustedTextSize,this.adjustedIconSize=e.adjustedIconSize,this.fontstack=e.fontstack,e.arrays){this.buffers={};for(var o in e.arrays)e.arrays[o]&&(t.buffers[o]=new BufferGroup(symbolInterfaces[o],e.layers,e.zoom,e.arrays[o]))}};SymbolBucket.prototype.populate=function(e,t){var o=this,r=this.layers[0],a=r.layout,i=a["text-font"],n=a["icon-image"],l=i&&(!r.isLayoutValueFeatureConstant("text-field")||a["text-field"]),s=n;if(this.features=[],l||s){for(var c=t.iconDependencies,y=t.glyphDependencies,p=y[i]=y[i]||{},x=0;xEXTENT||i.y<0||i.y>EXTENT);if(!x||n){var l=n||f;r.addSymbolInstance(i,a,t,o,r.layers[0],l,r.collisionBoxArray,e.index,e.sourceLayerIndex,r.index,s,h,m,y,u,g,{zoom:r.zoom},e.properties)}};if("line"===b)for(var S=0,T=clipLine(e.geometry,0,0,EXTENT,EXTENT);S=0;i--)if(o.dist(a[i])7*Math.PI/4)continue}else if(r&&a&&d<=3*Math.PI/4||d>5*Math.PI/4)continue}else if(r&&a&&(d<=Math.PI/2||d>3*Math.PI/2))continue;var m=u.tl,g=u.tr,f=u.bl,b=u.br,v=u.tex,I=u.anchorPoint,S=Math.max(y+Math.log(u.minScale)/Math.LN2,p),T=Math.min(y+Math.log(u.maxScale)/Math.LN2,25);if(!(T<=S)){S===p&&(S=0);var M=Math.round(u.glyphAngle/(2*Math.PI)*256),B=e.prepareSegment(4),A=B.vertexLength;addVertex(c,I.x,I.y,m.x,m.y,v.x,v.y,S,T,p,M),addVertex(c,I.x,I.y,g.x,g.y,v.x+v.w,v.y,S,T,p,M),addVertex(c,I.x,I.y,f.x,f.y,v.x,v.y+v.h,S,T,p,M),addVertex(c,I.x,I.y,b.x,b.y,v.x+v.w,v.y+v.h,S,T,p,M),s.emplaceBack(A,A+1,A+2),s.emplaceBack(A+1,A+2,A+3),B.vertexLength+=4,B.primitiveLength+=2}}e.populatePaintArrays(n)},SymbolBucket.prototype.addToDebugBuffers=function(e){for(var t=this,o=this.arrays.collisionBox,r=o.layoutVertexArray,a=o.elementArray,i=-e.angle,n=e.yStretch,l=0,s=t.symbolInstances;lSymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),z>SymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var _=(o[WritingMode.vertical]?WritingMode.vertical:0)|(o[WritingMode.horizontal]?WritingMode.horizontal:0);this.symbolInstances.push({textBoxStartIndex:M,textBoxEndIndex:B,iconBoxStartIndex:A,iconBoxEndIndex:z,glyphQuads:I,iconQuads:v,anchor:e,featureIndex:l,featureProperties:g,writingModes:_})},SymbolBucket.programInterfaces=symbolInterfaces,SymbolBucket.MAX_INSTANCES=65535,module.exports=SymbolBucket; +},{"../../source/rtl_text_plugin":90,"../../symbol/anchor":157,"../../symbol/clip_line":159,"../../symbol/collision_feature":161,"../../symbol/get_anchors":163,"../../symbol/mergelines":166,"../../symbol/quads":167,"../../symbol/resolve_text":168,"../../symbol/shaping":169,"../../util/classify_rings":195,"../../util/find_pole_of_inaccessibility":201,"../../util/script_detection":209,"../../util/token":211,"../../util/util":212,"../array_group":44,"../buffer_group":52,"../element_array_type":53,"../extent":54,"../load_geometry":56,"../vertex_array_type":60,"point-geometry":26,"vector-tile":34}],51:[function(require,module,exports){ +"use strict";var AttributeType={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},Buffer=function(e,t,r){this.arrayBuffer=e.arrayBuffer,this.length=e.length,this.attributes=t.members,this.itemSize=t.bytesPerElement,this.type=r,this.arrayType=t};Buffer.fromStructArray=function(e,t){return new Buffer(e.serialize(),e.constructor.serialize(),t)},Buffer.prototype.bind=function(e){var t=e[this.type];this.buffer?e.bindBuffer(t,this.buffer):(this.gl=e,this.buffer=e.createBuffer(),e.bindBuffer(t,this.buffer),e.bufferData(t,this.arrayBuffer,e.STATIC_DRAW),this.arrayBuffer=null)},Buffer.prototype.setVertexAttribPointers=function(e,t,r){for(var f=this,i=0;i0?t+2*e:e}function translate(e,t,r,i,a){if(!t[0]&&!t[1])return e;t=Point.convert(t),"viewport"===r&&t._rotate(-i);for(var n=[],s=0;sr.max||d.yr.max)&&util.warnOnce("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return u}; +},{"../util/util":212,"./extent":54}],57:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),PosArray=createStructArrayType({members:[{name:"a_pos",type:"Int16",components:2}]});module.exports=PosArray; +},{"../util/struct_array":210}],58:[function(require,module,exports){ +"use strict";function getPaintAttributeValue(t,r,e,i){if(!t.zoomStops)return r.getPaintValue(t.property,e,i);var a=t.zoomStops.map(function(a){return r.getPaintValue(t.property,util.extend({},e,{zoom:a}),i)});return 1===a.length?a[0]:a}function normalizePaintAttribute(t,r){var e=t.name;e||(e=t.property.replace(r.type+"-","").replace(/-/g,"_"));var i="color"===r._paintSpecifications[t.property].type;return util.extend({name:"a_"+e,components:i?4:1,multiplier:i?255:1,dimensions:i?4:1},t)}var createVertexArrayType=require("./vertex_array_type"),util=require("../util/util"),ProgramConfiguration=function(){this.attributes=[],this.uniforms=[],this.interpolationUniforms=[],this.pragmas={vertex:{},fragment:{}},this.cacheKey=""};ProgramConfiguration.createDynamic=function(t,r,e){for(var i=new ProgramConfiguration,a=0,n=t;a90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};LngLat.prototype.wrap=function(){return new LngLat(wrap(this.lng,-180,180),this.lat)},LngLat.prototype.toArray=function(){return[this.lng,this.lat]},LngLat.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},LngLat.convert=function(t){if(t instanceof LngLat)return t;if(t&&t.hasOwnProperty("lng")&&t.hasOwnProperty("lat"))return new LngLat(t.lng,t.lat);if(Array.isArray(t)&&2===t.length)return new LngLat(t[0],t[1]);throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, or an array of [, ]")},module.exports=LngLat; +},{"../util/util":212}],63:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),LngLatBounds=function(t,n){t&&(n?this.setSouthWest(t).setNorthEast(n):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};LngLatBounds.prototype.setNorthEast=function(t){return this._ne=LngLat.convert(t),this},LngLatBounds.prototype.setSouthWest=function(t){return this._sw=LngLat.convert(t),this},LngLatBounds.prototype.extend=function(t){var n,e,s=this._sw,o=this._ne;if(t instanceof LngLat)n=t,e=t;else{if(!(t instanceof LngLatBounds))return Array.isArray(t)?t.every(Array.isArray)?this.extend(LngLatBounds.convert(t)):this.extend(LngLat.convert(t)):this;if(n=t._sw,e=t._ne,!n||!e)return this}return s||o?(s.lng=Math.min(n.lng,s.lng),s.lat=Math.min(n.lat,s.lat),o.lng=Math.max(e.lng,o.lng),o.lat=Math.max(e.lat,o.lat)):(this._sw=new LngLat(n.lng,n.lat),this._ne=new LngLat(e.lng,e.lat)),this},LngLatBounds.prototype.getCenter=function(){return new LngLat((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},LngLatBounds.prototype.getSouthWest=function(){return this._sw},LngLatBounds.prototype.getNorthEast=function(){return this._ne},LngLatBounds.prototype.getNorthWest=function(){return new LngLat(this.getWest(),this.getNorth())},LngLatBounds.prototype.getSouthEast=function(){return new LngLat(this.getEast(),this.getSouth())},LngLatBounds.prototype.getWest=function(){return this._sw.lng},LngLatBounds.prototype.getSouth=function(){return this._sw.lat},LngLatBounds.prototype.getEast=function(){return this._ne.lng},LngLatBounds.prototype.getNorth=function(){return this._ne.lat},LngLatBounds.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},LngLatBounds.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},LngLatBounds.convert=function(t){return!t||t instanceof LngLatBounds?t:new LngLatBounds(t)},module.exports=LngLatBounds; +},{"./lng_lat":62}],64:[function(require,module,exports){ +"use strict";var LngLat=require("./lng_lat"),Point=require("point-geometry"),Coordinate=require("./coordinate"),util=require("../util/util"),interp=require("../util/interpolate"),TileCoord=require("../source/tile_coord"),EXTENT=require("../data/extent"),glmatrix=require("@mapbox/gl-matrix"),vec4=glmatrix.vec4,mat4=glmatrix.mat4,mat2=glmatrix.mat2,Transform=function(t,i,o){this.tileSize=512,this._renderWorldCopies=void 0===o||o,this._minZoom=t||0,this._maxZoom=i||22,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this._center=new LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0},prototypeAccessors={minZoom:{},maxZoom:{},worldSize:{},centerPoint:{},size:{},bearing:{},pitch:{},fov:{},zoom:{},center:{},unmodified:{},x:{},y:{},point:{}};prototypeAccessors.minZoom.get=function(){return this._minZoom},prototypeAccessors.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},prototypeAccessors.maxZoom.get=function(){return this._maxZoom},prototypeAccessors.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},prototypeAccessors.worldSize.get=function(){return this.tileSize*this.scale},prototypeAccessors.centerPoint.get=function(){return this.size._div(2)},prototypeAccessors.size.get=function(){return new Point(this.width,this.height)},prototypeAccessors.bearing.get=function(){return-this.angle/Math.PI*180},prototypeAccessors.bearing.set=function(t){var i=-util.wrap(t,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=mat2.create(),mat2.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},prototypeAccessors.pitch.get=function(){return this._pitch/Math.PI*180},prototypeAccessors.pitch.set=function(t){var i=util.clamp(t,0,60)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices())},prototypeAccessors.fov.get=function(){return this._fov/Math.PI*180},prototypeAccessors.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},prototypeAccessors.zoom.get=function(){return this._zoom},prototypeAccessors.zoom.set=function(t){var i=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==i&&(this._unmodified=!1,this._zoom=i,this.scale=this.zoomScale(i),this.tileZoom=Math.floor(i),this.zoomFraction=i-this.tileZoom,this._constrain(),this._calcMatrices())},prototypeAccessors.center.get=function(){return this._center},prototypeAccessors.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Transform.prototype.coveringZoomLevel=function(t){return(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize))},Transform.prototype.coveringTiles=function(t){var i=this.coveringZoomLevel(t),o=i;if(it.maxzoom&&(i=t.maxzoom);var e=this.pointCoordinate(this.centerPoint,i),r=new Point(e.column-.5,e.row-.5),n=[this.pointCoordinate(new Point(0,0),i),this.pointCoordinate(new Point(this.width,0),i),this.pointCoordinate(new Point(this.width,this.height),i),this.pointCoordinate(new Point(0,this.height),i)];return TileCoord.cover(i,n,t.reparseOverscaled?o:i,this._renderWorldCopies).sort(function(t,i){return r.dist(t)-r.dist(i)})},Transform.prototype.resize=function(t,i){this.width=t,this.height=i,this.pixelsToGLUnits=[2/t,-2/i],this._constrain(),this._calcMatrices()},prototypeAccessors.unmodified.get=function(){return this._unmodified},Transform.prototype.zoomScale=function(t){return Math.pow(2,t)},Transform.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Transform.prototype.project=function(t){return new Point(this.lngX(t.lng),this.latY(t.lat))},Transform.prototype.unproject=function(t){return new LngLat(this.xLng(t.x),this.yLat(t.y))},prototypeAccessors.x.get=function(){return this.lngX(this.center.lng)},prototypeAccessors.y.get=function(){return this.latY(this.center.lat)},prototypeAccessors.point.get=function(){return new Point(this.x,this.y)},Transform.prototype.lngX=function(t){return(180+t)*this.worldSize/360},Transform.prototype.latY=function(t){var i=180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360));return(180-i)*this.worldSize/360},Transform.prototype.xLng=function(t){return 360*t/this.worldSize-180},Transform.prototype.yLat=function(t){var i=180-360*t/this.worldSize;return 360/Math.PI*Math.atan(Math.exp(i*Math.PI/180))-90},Transform.prototype.setLocationAtPoint=function(t,i){var o=this.pointCoordinate(i)._sub(this.pointCoordinate(this.centerPoint));this.center=this.coordinateLocation(this.locationCoordinate(t)._sub(o))},Transform.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Transform.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Transform.prototype.locationCoordinate=function(t){return new Coordinate(this.lngX(t.lng)/this.tileSize,this.latY(t.lat)/this.tileSize,this.zoom).zoomTo(this.tileZoom)},Transform.prototype.coordinateLocation=function(t){var i=t.zoomTo(this.zoom);return new LngLat(this.xLng(i.column*this.tileSize),this.yLat(i.row*this.tileSize))},Transform.prototype.pointCoordinate=function(t,i){void 0===i&&(i=this.tileZoom);var o=0,e=[t.x,t.y,0,1],r=[t.x,t.y,1,1];vec4.transformMat4(e,e,this.pixelMatrixInverse),vec4.transformMat4(r,r,this.pixelMatrixInverse);var n=e[3],s=r[3],a=e[0]/n,h=r[0]/s,c=e[1]/n,m=r[1]/s,p=e[2]/n,l=r[2]/s,u=p===l?0:(o-p)/(l-p);return new Coordinate(interp(a,h,u)/this.tileSize,interp(c,m,u)/this.tileSize,this.zoom)._zoomTo(i)},Transform.prototype.coordinatePoint=function(t){var i=t.zoomTo(this.zoom),o=[i.column*this.tileSize,i.row*this.tileSize,0,1];return vec4.transformMat4(o,o,this.pixelMatrix),new Point(o[0]/o[3],o[1]/o[3])},Transform.prototype.calculatePosMatrix=function(t,i){var o=t.toCoordinate(i),e=this.worldSize/this.zoomScale(o.zoom),r=mat4.identity(new Float64Array(16));return mat4.translate(r,r,[o.column*e,o.row*e,0]),mat4.scale(r,r,[e/EXTENT,e/EXTENT,1]),mat4.multiply(r,this.projMatrix,r),new Float32Array(r)},Transform.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var t,i,o,e,r,n,s,a,h=this.size,c=this._unmodified;this.latRange&&(t=this.latY(this.latRange[1]),i=this.latY(this.latRange[0]),r=i-ti&&(a=i-l)}if(this.lngRange){var u=this.x,f=h.x/2;u-fe&&(s=e-f)}void 0===s&&void 0===a||(this.center=this.unproject(new Point(void 0!==s?s:this.x,void 0!==a?a:this.y))),this._unmodified=c,this._constraining=!1}},Transform.prototype._calcMatrices=function(){if(this.height){this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var t=this._fov/2,i=Math.PI/2+this._pitch,o=Math.sin(t)*this.cameraToCenterDistance/Math.sin(Math.PI-i-t),e=Math.cos(Math.PI/2-this._pitch)*o+this.cameraToCenterDistance,r=1.01*e,n=new Float64Array(16);mat4.perspective(n,this._fov,this.width/this.height,1,r),mat4.scale(n,n,[1,-1,1]),mat4.translate(n,n,[0,0,-this.cameraToCenterDistance]),mat4.rotateX(n,n,this._pitch),mat4.rotateZ(n,n,this.angle),mat4.translate(n,n,[-this.x,-this.y,0]);var s=this.worldSize/(2*Math.PI*6378137*Math.abs(Math.cos(this.center.lat*(Math.PI/180))));if(mat4.scale(n,n,[1,1,s,1]),this.projMatrix=n,n=mat4.create(),mat4.scale(n,n,[this.width/2,-this.height/2,1]),mat4.translate(n,n,[1,-1,0]),this.pixelMatrix=mat4.multiply(new Float64Array(16),n,this.projMatrix),n=mat4.invert(new Float64Array(16),this.pixelMatrix),!n)throw new Error("failed to invert matrix");this.pixelMatrixInverse=n}},Object.defineProperties(Transform.prototype,prototypeAccessors),module.exports=Transform; +},{"../data/extent":54,"../source/tile_coord":94,"../util/interpolate":204,"../util/util":212,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":1,"point-geometry":26}],65:[function(require,module,exports){ +"use strict";var browser=require("./util/browser"),mapboxgl=module.exports={};mapboxgl.version=require("../package.json").version,mapboxgl.workerCount=Math.max(Math.floor(browser.hardwareConcurrency/2),1),mapboxgl.Map=require("./ui/map"),mapboxgl.NavigationControl=require("./ui/control/navigation_control"),mapboxgl.GeolocateControl=require("./ui/control/geolocate_control"),mapboxgl.AttributionControl=require("./ui/control/attribution_control"),mapboxgl.ScaleControl=require("./ui/control/scale_control"),mapboxgl.FullscreenControl=require("./ui/control/fullscreen_control"),mapboxgl.Popup=require("./ui/popup"),mapboxgl.Marker=require("./ui/marker"),mapboxgl.Style=require("./style/style"),mapboxgl.LngLat=require("./geo/lng_lat"),mapboxgl.LngLatBounds=require("./geo/lng_lat_bounds"),mapboxgl.Point=require("point-geometry"),mapboxgl.Evented=require("./util/evented"),mapboxgl.supported=require("./util/browser").supported;var config=require("./util/config");mapboxgl.config=config;var rtlTextPlugin=require("./source/rtl_text_plugin");mapboxgl.setRTLTextPlugin=rtlTextPlugin.setRTLTextPlugin,Object.defineProperty(mapboxgl,"accessToken",{get:function(){return config.ACCESS_TOKEN},set:function(o){config.ACCESS_TOKEN=o}}); +},{"../package.json":43,"./geo/lng_lat":62,"./geo/lng_lat_bounds":63,"./source/rtl_text_plugin":90,"./style/style":146,"./ui/control/attribution_control":173,"./ui/control/fullscreen_control":174,"./ui/control/geolocate_control":175,"./ui/control/navigation_control":177,"./ui/control/scale_control":178,"./ui/map":187,"./ui/marker":188,"./ui/popup":189,"./util/browser":192,"./util/config":196,"./util/evented":200,"point-geometry":26}],66:[function(require,module,exports){ +"use strict";function drawBackground(r,t,e){var a=r.gl,i=r.transform,n=i.tileSize,o=e.paint["background-color"],l=e.paint["background-pattern"],u=e.paint["background-opacity"],f=!l&&1===o[3]&&1===u;if(r.isOpaquePass===f){a.disable(a.STENCIL_TEST),r.setDepthSublayer(0);var s;l?(s=r.useProgram("fillPattern",r.basicFillProgramConfiguration),pattern.prepare(l,r,s),r.tileExtentPatternVAO.bind(a,s,r.tileExtentBuffer)):(s=r.useProgram("fill",r.basicFillProgramConfiguration),a.uniform4fv(s.u_color,o),r.tileExtentVAO.bind(a,s,r.tileExtentBuffer)),a.uniform1f(s.u_opacity,u);for(var c=i.coveringTiles({tileSize:n}),g=0,p=c;g":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"\\":[14,[0,21,14,-3]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]}; +},{"../data/buffer":51,"../data/extent":54,"../data/pos_array":57,"../util/browser":192,"./vertex_array_object":80,"@mapbox/gl-matrix":1}],70:[function(require,module,exports){ +"use strict";function drawFill(t,e,r,i){var a=t.gl;a.enable(a.STENCIL_TEST);var l=!r.paint["fill-pattern"]&&r.isPaintValueFeatureConstant("fill-color")&&r.isPaintValueFeatureConstant("fill-opacity")&&1===r.paint["fill-color"][3]&&1===r.paint["fill-opacity"];t.isOpaquePass===l&&(t.setDepthSublayer(1),drawFillTiles(t,e,r,i,drawFillTile)),!t.isOpaquePass&&r.paint["fill-antialias"]&&(t.lineWidth(2),t.depthMask(!1),t.setDepthSublayer(r.getPaintProperty("fill-outline-color")?2:0),drawFillTiles(t,e,r,i,drawStrokeTile))}function drawFillTiles(t,e,r,i,a){for(var l=!0,n=0,o=i;n0?1/(1-r):1+r}function saturationFactor(r){return r>0?1-1/(1.001-r):-r}function getFadeValues(r,t,e,a){var i=e.paint["raster-fade-duration"];if(r.sourceCache&&i>0){var o=Date.now(),n=(o-r.timeAdded)/i,u=t?(o-t.timeAdded)/i:-1,s=r.sourceCache.getSource(),c=a.coveringZoomLevel({tileSize:s.tileSize,roundZoom:s.roundZoom}),f=!t||Math.abs(t.coord.z-c)>Math.abs(r.coord.z-c),d=f&&r.refreshedUponExpiration?1:util.clamp(f?n:1-u,0,1);return r.refreshedUponExpiration&&n>=1&&(r.refreshedUponExpiration=!1),t?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return{opacity:1,mix:0}}var util=require("../util/util");module.exports=drawRaster; +},{"../util/util":212}],74:[function(require,module,exports){ +"use strict";function drawSymbols(e,t,a,i){if(!e.isOpaquePass){var o=!(a.layout["text-allow-overlap"]||a.layout["icon-allow-overlap"]||a.layout["text-ignore-placement"]||a.layout["icon-ignore-placement"]),r=e.gl;o?r.disable(r.STENCIL_TEST):r.enable(r.STENCIL_TEST),e.setDepthSublayer(0),e.depthMask(!1),drawLayerSymbols(e,t,a,i,!1,a.paint["icon-translate"],a.paint["icon-translate-anchor"],a.layout["icon-rotation-alignment"],a.layout["icon-rotation-alignment"],a.layout["icon-size"]),drawLayerSymbols(e,t,a,i,!0,a.paint["text-translate"],a.paint["text-translate-anchor"],a.layout["text-rotation-alignment"],a.layout["text-pitch-alignment"],a.layout["text-size"]),t.map.showCollisionBoxes&&drawCollisionDebug(e,t,a,i)}}function drawLayerSymbols(e,t,a,i,o,r,n,l,s,u){if(o||!e.style.sprite||e.style.sprite.loaded()){var f=e.gl,m="map"===l,p="map"===s,c=p;c?f.enable(f.DEPTH_TEST):f.disable(f.DEPTH_TEST);for(var d,_,h=0,g=i;hthis.previousZoom;a--)r.changeTimes[a]=e,r.changeOpacities[a]=r.opacities[a];for(a=0;a<256;a++){var s=e-r.changeTimes[a],o=255*(i?s/i:1);a<=t?r.opacities[a]=r.changeOpacities[a]+o:r.opacities[a]=r.changeOpacities[a]-o}this.changed=!0,this.previousZoom=t},FrameHistory.prototype.bind=function(e){this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.changed&&(e.texSubImage2D(e.TEXTURE_2D,0,0,0,256,1,e.ALPHA,e.UNSIGNED_BYTE,this.array),this.changed=!1)):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,256,1,0,e.ALPHA,e.UNSIGNED_BYTE,this.array))},module.exports=FrameHistory; +},{}],76:[function(require,module,exports){ +"use strict";var util=require("../util/util"),LineAtlas=function(t,i){this.width=t,this.height=i,this.nextRow=0,this.bytes=4,this.data=new Uint8Array(this.width*this.height*this.bytes),this.positions={}};LineAtlas.prototype.setSprite=function(t){this.sprite=t},LineAtlas.prototype.getDash=function(t,i){var e=t.join(",")+i;return this.positions[e]||(this.positions[e]=this.addDash(t,i)),this.positions[e]},LineAtlas.prototype.addDash=function(t,i){var e=this,h=i?7:0,s=2*h+1,a=128;if(this.nextRow+s>this.height)return util.warnOnce("LineAtlas out of space"),null;for(var r=0,n=0;n0?r.pop():null},Painter.prototype.getViewportTexture=function(e,r){var t=this.reusableTextures.viewport;if(t)return t.width===e&&t.height===r?t:(this.gl.deleteTexture(t),void(this.reusableTextures.viewport=null))},Painter.prototype.lineWidth=function(e){this.gl.lineWidth(util.clamp(e,this.lineWidthRange[0],this.lineWidthRange[1]))},Painter.prototype.showOverdrawInspector=function(e){if(e||this._showOverdrawInspector){this._showOverdrawInspector=e;var r=this.gl;if(e){r.blendFunc(r.CONSTANT_COLOR,r.ONE);var t=8,i=1/t;r.blendColor(i,i,i,0),r.clearColor(0,0,0,1),r.clear(r.COLOR_BUFFER_BIT)}else r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA)}},Painter.prototype.createProgram=function(e,r){var t=this.gl,i=t.createProgram(),a=shaders[e],s="#define MAPBOX_GL_JS\n#define DEVICE_PIXEL_RATIO "+browser.devicePixelRatio.toFixed(1)+"\n";this._showOverdrawInspector&&(s+="#define OVERDRAW_INSPECTOR;\n");var o=r.applyPragmas(s+shaders.prelude.fragmentSource+a.fragmentSource,"fragment"),n=r.applyPragmas(s+shaders.prelude.vertexSource+a.vertexSource,"vertex"),l=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(l,o),t.compileShader(l),t.attachShader(i,l);var h=t.createShader(t.VERTEX_SHADER);t.shaderSource(h,n),t.compileShader(h),t.attachShader(i,h),t.linkProgram(i);for(var u=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES),c={program:i,numAttributes:u},p=0;p>16,n>>16),o.uniform2f(i.u_pixel_coord_lower,65535&u,65535&n)}; +},{"../source/pixels_to_tile_units":87}],79:[function(require,module,exports){ +"use strict";var path=require("path");module.exports={prelude:{fragmentSource:"#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n",vertexSource:"#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif\n\nfloat evaluate_zoom_function_1(const vec4 values, const float t) {\n if (t < 1.0) {\n return mix(values[0], values[1], t);\n } else if (t < 2.0) {\n return mix(values[1], values[2], t - 1.0);\n } else {\n return mix(values[2], values[3], t - 2.0);\n }\n}\nvec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 value2, const vec4 value3, const float t) {\n if (t < 1.0) {\n return mix(value0, value1, t);\n } else if (t < 2.0) {\n return mix(value1, value2, t - 1.0);\n } else {\n return mix(value2, value3, t - 2.0);\n }\n}\n\n\n// To minimize the number of attributes needed in the mapbox-gl-native shaders,\n// we encode a 4-component color into a pair of floats (i.e. a vec2) as follows:\n// [ floor(color.r * 255) * 256 + color.g * 255,\n// floor(color.b * 255) * 256 + color.g * 255 ]\nvec4 decode_color(const vec2 encodedColor) {\n float r = floor(encodedColor[0]/256.0)/255.0;\n float g = (encodedColor[0] - r*256.0*255.0)/255.0;\n float b = floor(encodedColor[1]/256.0)/255.0;\n float a = (encodedColor[1] - b*256.0*255.0)/255.0;\n return vec4(r, g, b, a);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nfloat unpack_mix_vec2(const vec2 packedValue, const float t) {\n return mix(packedValue[0], packedValue[1], t);\n}\n\n// Unpack a pair of paint values and interpolate between them.\nvec4 unpack_mix_vec4(const vec4 packedColors, const float t) {\n vec4 minColor = decode_color(vec2(packedColors[0], packedColors[1]));\n vec4 maxColor = decode_color(vec2(packedColors[2], packedColors[3]));\n return mix(minColor, maxColor, t);\n}\n\n// The offset depends on how many pixels are between the world origin and the edge of the tile:\n// vec2 offset = mod(pixel_coord, size)\n//\n// At high zoom levels there are a ton of pixels between the world origin and the edge of the tile.\n// The glsl spec only guarantees 16 bits of precision for highp floats. We need more than that.\n//\n// The pixel_coord is passed in as two 16 bit values:\n// pixel_coord_upper = floor(pixel_coord / 2^16)\n// pixel_coord_lower = mod(pixel_coord, 2^16)\n//\n// The offset is calculated in a series of steps that should preserve this precision:\nvec2 get_pattern_pos(const vec2 pixel_coord_upper, const vec2 pixel_coord_lower,\n const vec2 pattern_size, const float tile_units_to_pixels, const vec2 pos) {\n\n vec2 offset = mod(mod(mod(pixel_coord_upper, pattern_size) * 256.0, pattern_size) * 256.0 + pixel_coord_lower, pattern_size);\n return (tile_units_to_pixels * pos + offset) / pattern_size;\n}\n"},circle:{fragmentSource:"#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n float extrude_length = length(v_extrude);\n float antialiased_blur = -max(blur, v_antialiasblur);\n\n float opacity_t = smoothstep(0.0, antialiased_blur, extrude_length - 1.0);\n\n float color_t = stroke_width < 0.01 ? 0.0 : smoothstep(\n antialiased_blur,\n 0.0,\n extrude_length - radius / (radius + stroke_width)\n );\n\n gl_FragColor = opacity_t * mix(color * opacity, stroke_color * stroke_opacity, color_t);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform bool u_scale_with_map;\nuniform vec2 u_extrude_scale;\n\nattribute vec2 a_pos;\n\n#pragma mapbox: define lowp 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 lowp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize lowp 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 lowp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\n\n // unencode the extrusion vector that we snuck into the a_pos vector\n v_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);\n\n vec2 extrude = v_extrude * (radius + stroke_width) * u_extrude_scale;\n // multiply a_pos by 0.5, since we had it * 2 in order to sneak\n // in extrusion data\n gl_Position = u_matrix * vec4(floor(a_pos * 0.5), 0, 1);\n\n if (u_scale_with_map) {\n gl_Position.xy += extrude;\n } else {\n gl_Position.xy += extrude * gl_Position.w;\n }\n\n // This is a minimum blur distance that serves as a faux-antialiasing for\n // the circle. since blur is a ratio of the circle's size and the intent is\n // to keep the blur at roughly 1px, the two are inversely related.\n v_antialiasblur = 1.0 / DEVICE_PIXEL_RATIO / (radius + stroke_width);\n}\n"},collisionBox:{fragmentSource:"uniform float u_zoom;\nuniform float u_maxzoom;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n\n float alpha = 0.5;\n\n gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0) * alpha;\n\n if (v_placement_zoom > u_zoom) {\n gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0) * alpha;\n }\n\n if (u_zoom >= v_max_zoom) {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0) * alpha * 0.25;\n }\n\n if (v_placement_zoom >= u_maxzoom) {\n gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0) * alpha * 0.2;\n }\n}\n",vertexSource:"attribute vec2 a_pos;\nattribute vec2 a_extrude;\nattribute vec2 a_data;\n\nuniform mat4 u_matrix;\nuniform float u_scale;\n\nvarying float v_max_zoom;\nvarying float v_placement_zoom;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos + a_extrude / u_scale, 0.0, 1.0);\n\n v_max_zoom = a_data.x;\n v_placement_zoom = a_data.y;\n}\n"},debug:{fragmentSource:"uniform lowp vec4 u_color;\n\nvoid main() {\n gl_FragColor = u_color;\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, step(32767.0, a_pos.x), 1);\n}\n"},fill:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_FragColor = color * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n}\n"},fillOutline:{fragmentSource:"#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n gl_FragColor = outline_color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"attribute vec2 a_pos;\n\nuniform mat4 u_matrix;\nuniform vec2 u_world;\n\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillOutlinePattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n // find distance to outline for alpha interpolation\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = smoothstep(1.0, 0.0, dist);\n\n\n gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_world;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec2 v_pos;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n\n v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;\n}\n"},fillPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n gl_FragColor = mix(color1, color2, u_mix) * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\n\nattribute vec2 a_pos;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\n\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n 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);\n 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);\n}\n"},fillExtrusion:{fragmentSource:"varying vec4 v_color;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n gl_FragColor = v_color;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec4 v_color;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\n#pragma mapbox: define lowp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize lowp vec4 color\n\n float ed = a_edgedistance; // use each attrib in order to not trip a VAO assert\n float t = mod(a_normal.x, 2.0);\n\n gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);\n\n // Relative luminance (how dark/bright is the surface color?)\n float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;\n\n v_color = vec4(0.0, 0.0, 0.0, 1.0);\n\n // Add slight ambient lighting so no extrusions are totally black\n vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);\n color += ambientlight;\n\n // Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray\n float directional = clamp(dot(a_normal / 16384.0, u_lightpos), 0.0, 1.0);\n\n // Adjust directional so that\n // the range of values for highlight/shading is narrower\n // with lower light intensity\n // and with lighter/brighter surface colors\n directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);\n\n // Add gradient along z axis of side surfaces\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n // Assign final color based on surface + ambient light color, diffuse light directional, and light color\n // with lower bounds adjusted to hue of light\n // so that shading is tinted with the complementary (opposite) color to the light color\n v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);\n v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);\n v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);\n}\n"},fillExtrusionPattern:{fragmentSource:"uniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_mix;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n vec2 imagecoord = mod(v_pos_a, 1.0);\n vec2 pos = mix(u_pattern_tl_a, u_pattern_br_a, imagecoord);\n vec4 color1 = texture2D(u_image, pos);\n\n vec2 imagecoord_b = mod(v_pos_b, 1.0);\n vec2 pos2 = mix(u_pattern_tl_b, u_pattern_br_b, imagecoord_b);\n vec4 color2 = texture2D(u_image, pos2);\n\n vec4 mixedColor = mix(color1, color2, u_mix);\n\n gl_FragColor = mixedColor * v_lighting;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pixel_coord_upper;\nuniform vec2 u_pixel_coord_lower;\nuniform float u_scale_a;\nuniform float u_scale_b;\nuniform float u_tile_units_to_pixels;\nuniform float u_height_factor;\n\nuniform vec3 u_lightcolor;\nuniform lowp vec3 u_lightpos;\nuniform lowp float u_lightintensity;\n\nattribute vec2 a_pos;\nattribute vec3 a_normal;\nattribute float a_edgedistance;\n\nvarying vec2 v_pos_a;\nvarying vec2 v_pos_b;\nvarying vec4 v_lighting;\nvarying float v_directional;\n\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n\n float t = mod(a_normal.x, 2.0);\n float z = t > 0.0 ? height : base;\n\n gl_Position = u_matrix * vec4(a_pos, z, 1);\n\n vec2 pos = a_normal.x == 1.0 && a_normal.y == 0.0 && a_normal.z == 16384.0\n ? a_pos // extrusion top\n : vec2(a_edgedistance, z * u_height_factor); // extrusion side\n\n 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, pos);\n 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, pos);\n\n v_lighting = vec4(0.0, 0.0, 0.0, 1.0);\n float directional = clamp(dot(a_normal / 16383.0, u_lightpos), 0.0, 1.0);\n directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);\n\n if (a_normal.y != 0.0) {\n directional *= clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0);\n }\n\n v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));\n}\n"},extrusionTexture:{fragmentSource:"uniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_texture, v_pos) * u_opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(0.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform int u_xdim;\nuniform int u_ydim;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n\n v_pos.x = a_pos.x / float(u_xdim);\n v_pos.y = 1.0 - a_pos.y / float(u_ydim);\n}\n"},line:{fragmentSource:"#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_width2;\nvarying vec2 v_normal;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\n// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_width2 = vec2(outset, inset);\n}\n"},linePattern:{fragmentSource:"uniform vec2 u_pattern_size_a;\nuniform vec2 u_pattern_size_b;\nuniform vec2 u_pattern_tl_a;\nuniform vec2 u_pattern_br_a;\nuniform vec2 u_pattern_tl_b;\nuniform vec2 u_pattern_br_b;\nuniform float u_fade;\n\nuniform sampler2D u_image;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float x_a = mod(v_linesofar / u_pattern_size_a.x, 1.0);\n float x_b = mod(v_linesofar / u_pattern_size_b.x, 1.0);\n float y_a = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_a.y);\n float y_b = 0.5 + (v_normal.y * v_width2.s / u_pattern_size_b.y);\n vec2 pos_a = mix(u_pattern_tl_a, u_pattern_br_a, vec2(x_a, y_a));\n vec2 pos_b = mix(u_pattern_tl_b, u_pattern_br_b, vec2(x_b, y_b));\n\n vec4 color = mix(texture2D(u_image, pos_a), texture2D(u_image, pos_b), u_fade);\n\n gl_FragColor = color * alpha * opacity;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform mediump float u_width;\nuniform vec2 u_gl_units_to_pixels;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying float v_linesofar;\nvarying float v_gamma_scale;\n\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\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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset; \n\n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist = outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_linesofar = a_linesofar;\n v_width2 = vec2(outset, inset);\n}\n"},lineSDF:{fragmentSource:"\nuniform sampler2D u_image;\nuniform float u_sdfgamma;\nuniform float u_mix;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n\n // Calculate the distance of the pixel from the line in pixels.\n float dist = length(v_normal) * v_width2.s;\n\n // Calculate the antialiasing fade factor. This is either when fading in\n // the line in case of an offset line (v_width2.t) or when fading out\n // (v_width2.s)\n float blur2 = (blur + 1.0 / DEVICE_PIXEL_RATIO) * v_gamma_scale;\n float alpha = clamp(min(dist - (v_width2.t - blur2), v_width2.s - dist) / blur2, 0.0, 1.0);\n\n float sdfdist_a = texture2D(u_image, v_tex_a).a;\n float sdfdist_b = texture2D(u_image, v_tex_b).a;\n float sdfdist = mix(sdfdist_a, sdfdist_b, u_mix);\n alpha *= smoothstep(0.5 - u_sdfgamma, 0.5 + u_sdfgamma, sdfdist);\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"// floor(127 / 2) == 63.0\n// the maximum allowed miter limit is 2.0 at the moment. the extrude normal is\n// stored in a byte (-128..127). we scale regular normals up to length 63, but\n// there are also \"special\" normals that have a bigger length (of up to 126 in\n// this case).\n// #define scale 63.0\n#define scale 0.015873016\n\n// We scale the distance before adding it to the buffers so that we can store\n// long distances for long segments. Use this value to unscale the distance.\n#define LINE_DISTANCE_SCALE 2.0\n\n// the distance over which the line edge fades out.\n// Retina devices need a smaller distance to avoid aliasing.\n#define ANTIALIASING 1.0 / DEVICE_PIXEL_RATIO / 2.0\n\nattribute vec2 a_pos;\nattribute vec4 a_data;\n\nuniform mat4 u_matrix;\nuniform mediump float u_ratio;\nuniform vec2 u_patternscale_a;\nuniform float u_tex_y_a;\nuniform vec2 u_patternscale_b;\nuniform float u_tex_y_b;\nuniform vec2 u_gl_units_to_pixels;\nuniform mediump float u_width;\n\nvarying vec2 v_normal;\nvarying vec2 v_width2;\nvarying vec2 v_tex_a;\nvarying vec2 v_tex_b;\nvarying float v_gamma_scale;\n\n#pragma mapbox: define lowp 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\nvoid main() {\n #pragma mapbox: initialize lowp 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\n vec2 a_extrude = a_data.xy - 128.0;\n float a_direction = mod(a_data.z, 4.0) - 1.0;\n float a_linesofar = (floor(a_data.z / 4.0) + a_data.w * 64.0) * LINE_DISTANCE_SCALE;\n\n // We store the texture normals in the most insignificant bit\n // transform y so that 0 => -1 and 1 => 1\n // In the texture normal, x is 0 if the normal points straight up/down and 1 if it's a round cap\n // y is 1 if the normal points up, and -1 if it points down\n mediump vec2 normal = mod(a_pos, 2.0);\n normal.y = sign(normal.y - 0.5);\n v_normal = normal;\n\n // these transformations used to be applied in the JS and native code bases. \n // moved them into the shader for clarity and simplicity. \n gapwidth = gapwidth / 2.0;\n float width = u_width / 2.0;\n offset = -1.0 * offset;\n \n float inset = gapwidth + (gapwidth > 0.0 ? ANTIALIASING : 0.0);\n float outset = gapwidth + width * (gapwidth > 0.0 ? 2.0 : 1.0) + ANTIALIASING;\n\n // Scale the extrusion vector down to a normal and then up by the line width\n // of this vertex.\n mediump vec2 dist =outset * a_extrude * scale;\n\n // Calculate the offset when drawing a line that is to the side of the actual line.\n // We do this by creating a vector that points towards the extrude, but rotate\n // it when we're drawing round end points (a_direction = -1 or 1) since their\n // extrude vector points in another direction.\n mediump float u = 0.5 * a_direction;\n mediump float t = 1.0 - abs(u);\n mediump vec2 offset2 = offset * a_extrude * scale * normal.y * mat2(t, -u, u, t);\n\n // Remove the texture normal bit to get the position\n vec2 pos = floor(a_pos * 0.5);\n\n vec4 projected_extrude = u_matrix * vec4(dist / u_ratio, 0.0, 0.0);\n gl_Position = u_matrix * vec4(pos + offset2 / u_ratio, 0.0, 1.0) + projected_extrude;\n\n // calculate how much the perspective view squishes or stretches the extrude\n float extrude_length_without_perspective = length(dist);\n float extrude_length_with_perspective = length(projected_extrude.xy / gl_Position.w * u_gl_units_to_pixels);\n v_gamma_scale = extrude_length_without_perspective / extrude_length_with_perspective;\n\n v_tex_a = vec2(a_linesofar * u_patternscale_a.x, normal.y * u_patternscale_a.y + u_tex_y_a);\n v_tex_b = vec2(a_linesofar * u_patternscale_b.x, normal.y * u_patternscale_b.y + u_tex_y_b);\n\n v_width2 = vec2(outset, inset);\n}\n" +},raster:{fragmentSource:"uniform float u_fade_t;\nuniform float u_opacity;\nuniform sampler2D u_image0;\nuniform sampler2D u_image1;\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nuniform float u_brightness_low;\nuniform float u_brightness_high;\n\nuniform float u_saturation_factor;\nuniform float u_contrast_factor;\nuniform vec3 u_spin_weights;\n\nvoid main() {\n\n // read and cross-fade colors from the main and parent tiles\n vec4 color0 = texture2D(u_image0, v_pos0);\n vec4 color1 = texture2D(u_image1, v_pos1);\n vec4 color = mix(color0, color1, u_fade_t);\n color.a *= u_opacity;\n vec3 rgb = color.rgb;\n\n // spin\n rgb = vec3(\n dot(rgb, u_spin_weights.xyz),\n dot(rgb, u_spin_weights.zxy),\n dot(rgb, u_spin_weights.yzx));\n\n // saturation\n float average = (color.r + color.g + color.b) / 3.0;\n rgb += (average - rgb) * u_saturation_factor;\n\n // contrast\n rgb = (rgb - 0.5) * u_contrast_factor + 0.5;\n\n // brightness\n vec3 u_high_vec = vec3(u_brightness_low, u_brightness_low, u_brightness_low);\n vec3 u_low_vec = vec3(u_brightness_high, u_brightness_high, u_brightness_high);\n\n gl_FragColor = vec4(mix(u_high_vec, u_low_vec, rgb) * color.a, color.a);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"uniform mat4 u_matrix;\nuniform vec2 u_tl_parent;\nuniform float u_scale_parent;\nuniform float u_buffer_scale;\n\nattribute vec2 a_pos;\nattribute vec2 a_texture_pos;\n\nvarying vec2 v_pos0;\nvarying vec2 v_pos1;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos, 0, 1);\n v_pos0 = (((a_texture_pos / 32767.0) - 0.5) / u_buffer_scale ) + 0.5;\n v_pos1 = (v_pos0 * u_scale_parent) + u_tl_parent;\n}\n"},symbolIcon:{fragmentSource:"uniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\n\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n lowp float alpha = texture2D(u_fadetexture, v_fade_tex).a * opacity;\n gl_FragColor = texture2D(u_texture, v_tex) * alpha;\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp float opacity\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\n\nvoid main() {\n #pragma mapbox: initialize lowp float opacity\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n if (u_rotate_with_map) {\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n } else {\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"},symbolSDF:{fragmentSource:"#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105/DEVICE_PIXEL_RATIO\n\nuniform bool u_is_halo;\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp 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\n\nuniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform lowp float u_font_scale;\nuniform highp float u_gamma_scale;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp 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\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / u_gamma_scale;\n lowp float buff = (256.0 - 64.0) / 256.0;\n if (u_is_halo) {\n color = halo_color;\n gamma = (halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / u_gamma_scale;\n buff = (6.0 - halo_width / u_font_scale) / SDF_PX;\n }\n\n lowp float dist = texture2D(u_texture, v_tex).a;\n lowp float fade_alpha = texture2D(u_fadetexture, v_fade_tex).a;\n highp float gamma_scaled = gamma * v_gamma_scale;\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist) * fade_alpha;\n\n gl_FragColor = color * (alpha * opacity);\n\n#ifdef OVERDRAW_INSPECTOR\n gl_FragColor = vec4(1.0);\n#endif\n}\n",vertexSource:"const float PI = 3.141592653589793;\n\nattribute vec4 a_pos_offset;\nattribute vec2 a_texture_pos;\nattribute vec4 a_data;\n\n#pragma mapbox: define lowp vec4 fill_color\n#pragma mapbox: define lowp 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\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform mediump float u_zoom;\nuniform bool u_rotate_with_map;\nuniform bool u_pitch_with_map;\nuniform mediump float u_pitch;\nuniform mediump float u_bearing;\nuniform mediump float u_aspect_ratio;\nuniform vec2 u_extrude_scale;\n\nuniform vec2 u_texsize;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\n\nvoid main() {\n #pragma mapbox: initialize lowp vec4 fill_color\n #pragma mapbox: initialize lowp 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\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_texture_pos.xy;\n mediump float a_labelminzoom = a_data[0];\n mediump vec2 a_zoom = a_data.pq;\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // u_zoom is the current zoom level adjusted for the change in font size\n mediump float z = 2.0 - step(a_minzoom, u_zoom) - (1.0 - step(a_maxzoom, u_zoom));\n\n // pitch-alignment: map\n // rotation-alignment: map | viewport\n if (u_pitch_with_map) {\n lowp float angle = u_rotate_with_map ? (a_data[1] / 256.0 * 2.0 * PI) : u_bearing;\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, asin, -1.0 * asin, acos);\n vec2 offset = RotationMatrix * a_offset;\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos + extrude, 0, 1);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: map\n } else if (u_rotate_with_map) {\n // foreshortening factor to apply on pitched maps\n // as a label goes from horizontal <=> vertical in angle\n // it goes from 0% foreshortening to up to around 70% foreshortening\n lowp float pitchfactor = 1.0 - cos(u_pitch * sin(u_pitch * 0.75));\n\n lowp float lineangle = a_data[1] / 256.0 * 2.0 * PI;\n\n // use the lineangle to position points a,b along the line\n // project the points and calculate the label angle in projected space\n // this calculation allows labels to be rendered unskewed on pitched maps\n vec4 a = u_matrix * vec4(a_pos, 0, 1);\n vec4 b = u_matrix * vec4(a_pos + vec2(cos(lineangle),sin(lineangle)), 0, 1);\n lowp float angle = atan((b[1]/b[3] - a[1]/a[3])/u_aspect_ratio, b[0]/b[3] - a[0]/a[3]);\n lowp float asin = sin(angle);\n lowp float acos = cos(angle);\n mat2 RotationMatrix = mat2(acos, -1.0 * asin, asin, acos);\n\n vec2 offset = RotationMatrix * (vec2((1.0-pitchfactor)+(pitchfactor*cos(angle*2.0)), 1.0) * a_offset);\n vec2 extrude = u_extrude_scale * (offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n gl_Position.z += z * gl_Position.w;\n // pitch-alignment: viewport\n // rotation-alignment: viewport\n } else {\n vec2 extrude = u_extrude_scale * (a_offset / 64.0);\n gl_Position = u_matrix * vec4(a_pos, 0, 1) + vec4(extrude, 0, 0);\n }\n\n v_gamma_scale = gl_Position.w;\n\n v_tex = a_tex / u_texsize;\n v_fade_tex = vec2(a_labelminzoom / 255.0, 0.0);\n}\n"}}; +},{"path":23}],80:[function(require,module,exports){ +"use strict";var VertexArrayObject=function(){this.boundProgram=null,this.boundVertexBuffer=null,this.boundVertexBuffer2=null,this.boundElementBuffer=null,this.boundVertexOffset=null,this.vao=null};VertexArrayObject.prototype.bind=function(e,t,r,i,n,o){void 0===e.extVertexArrayObject&&(e.extVertexArrayObject=e.getExtension("OES_vertex_array_object"));var s=!this.vao||this.boundProgram!==t||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==o;!e.extVertexArrayObject||s?(this.freshBind(e,t,r,i,n,o),this.gl=e):e.extVertexArrayObject.bindVertexArrayOES(this.vao)},VertexArrayObject.prototype.freshBind=function(e,t,r,i,n,o){var s,u=t.numAttributes;if(e.extVertexArrayObject)this.vao&&this.destroy(),this.vao=e.extVertexArrayObject.createVertexArrayOES(),e.extVertexArrayObject.bindVertexArrayOES(this.vao),s=0,this.boundProgram=t,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=o;else{s=e.currentNumAttributes||0;for(var b=u;bthis.maxzoom?Math.pow(2,t.coord.z-this.maxzoom):1,r={type:this.type,uid:t.uid,coord:t.coord,zoom:t.coord.z,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,overscaling:i,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};t.workerID=this.dispatcher.send("loadTile",r,function(i,r){if(t.unloadVectorData(),!t.aborted)return i?e(i):(t.loadVectorData(r,o.map.painter),t.redoWhenDone&&(t.redoWhenDone=!1,t.redoPlacement(o)),e(null))},this.workerID)},e.prototype.abortTile=function(t){t.aborted=!0},e.prototype.unloadTile=function(t){t.unloadVectorData(),this.dispatcher.send("removeTile",{uid:t.uid,type:this.type,source:this.id},function(){},t.workerID)},e.prototype.onRemove=function(){this.dispatcher.broadcast("removeSource",{type:this.type,source:this.id},function(){})},e.prototype.serialize=function(){return{type:this.type,data:this._data}},e}(Evented);module.exports=GeoJSONSource; +},{"../data/extent":54,"../util/evented":200,"../util/util":212,"../util/window":194}],83:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),rewind=require("geojson-rewind"),GeoJSONWrapper=require("./geojson_wrapper"),vtpbf=require("vt-pbf"),supercluster=require("supercluster"),geojsonvt=require("geojson-vt"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=function(e){function r(r,t,o){e.call(this,r,t),o&&(this.loadGeoJSON=o),this._geoJSONIndexes={}}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadVectorData=function(e,r){var t=e.source,o=e.coord;if(!this._geoJSONIndexes[t])return r(null,null);var n=this._geoJSONIndexes[t].getTile(Math.min(o.z,e.maxZoom),o.x,o.y);if(!n)return r(null,null);var u=new GeoJSONWrapper(n.features);u.name="_geojsonTileLayer";var a=vtpbf({layers:{_geojsonTileLayer:u}});0===a.byteOffset&&a.byteLength===a.buffer.byteLength||(a=new Uint8Array(a)),u.rawData=a.buffer,r(null,u)},r.prototype.loadData=function(e,r){var t=function(t,o){var n=this;return t?r(t):"object"!=typeof o?r(new Error("Input data is not a valid GeoJSON object.")):(rewind(o,!0),void this._indexData(o,e,function(t,o){return t?r(t):(n._geoJSONIndexes[e.source]=o,void r(null))}))}.bind(this);this.loadGeoJSON(e,t)},r.prototype.loadGeoJSON=function(e,r){if(e.url)ajax.getJSON(e.url,r);else{if("string"!=typeof e.data)return r(new Error("Input data is not a valid GeoJSON object."));try{return r(null,JSON.parse(e.data))}catch(e){return r(new Error("Input data is not a valid GeoJSON object."))}}},r.prototype.removeSource=function(e){this._geoJSONIndexes[e.source]&&delete this._geoJSONIndexes[e.source]},r.prototype._indexData=function(e,r,t){try{r.cluster?t(null,supercluster(r.superclusterOptions).load(e.features)):t(null,geojsonvt(e,r.geojsonVtOptions))}catch(e){return t(e)}},r}(VectorTileWorkerSource);module.exports=GeoJSONWorkerSource; +},{"../util/ajax":191,"./geojson_wrapper":84,"./vector_tile_worker_source":96,"geojson-rewind":7,"geojson-vt":11,"supercluster":29,"vt-pbf":38}],84:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),VectorTileFeature=require("vector-tile").VectorTileFeature,EXTENT=require("../data/extent"),FeatureWrapper=function(e){var t=this;if(this.type=e.type,1===e.type){this.rawGeometry=[];for(var r=0;rt)){var n=Math.pow(2,Math.min(a.coord.z,i._source.maxzoom)-Math.min(e.z,i._source.maxzoom));if(Math.floor(a.coord.x/n)===e.x&&Math.floor(a.coord.y/n)===e.y)for(o[s]=!0,r=!0;a&&a.coord.z-1>e.z;){var d=a.coord.parent(i._source.maxzoom).id;a=i._tiles[d],a&&a.hasData()&&(delete o[s],o[d]=!0)}}}return r},t.prototype.findLoadedParent=function(e,t,o){for(var i=this,r=e.z-1;r>=t;r--){e=e.parent(i._source.maxzoom);var s=i._tiles[e.id];if(s&&s.hasData())return o[e.id]=!0,s;if(i._cache.has(e.id))return o[e.id]=!0,i._cache.getWithoutRemoving(e.id)}},t.prototype.updateCacheSize=function(e){var t=Math.ceil(e.width/e.tileSize)+1,o=Math.ceil(e.height/e.tileSize)+1,i=t*o,r=5;this._cache.setMaxSize(Math.floor(i*r))},t.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded){var i,r,s,a;this.updateCacheSize(e);var n=(this._source.roundZoom?Math.round:Math.floor)(this.getZoom(e)),d=Math.max(n-t.maxOverzooming,this._source.minzoom),c=Math.max(n+t.maxUnderzooming,this._source.minzoom),h={};this._coveredTiles={};var u;for(u=this.used?this._source.coord?[this._source.coord]:e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}):[],i=0;i=Date.now())&&(o.findLoadedChildren(r,c,h)&&(h[_]=!0),a=o.findLoadedParent(r,d,l),a&&o.addTile(a.coord))}var f;for(f in l)h[f]||(o._coveredTiles[f]=!0);for(f in l)h[f]=!0;var T=util.keysDifference(this._tiles,h);for(i=0;ithis._source.maxzoom?Math.pow(2,r-this._source.maxzoom):1;t=new Tile(o,this._source.tileSize*s,this._source.maxzoom),this.loadTile(t,this._tileLoaded.bind(this,t,e.id,t.state))}return t.uses++,this._tiles[e.id]=t,i||this._source.fire("dataloading",{tile:t,coord:t.coord,dataType:"source"}),t},t.prototype._setTileReloadTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._timers[e]=setTimeout(function(){o.reloadTile(e,"expired"),o._timers[e]=void 0},i))},t.prototype._setCacheInvalidationTimer=function(e,t){var o=this,i=t.getExpiryTimeout();i&&(this._cacheTimers[e]=setTimeout(function(){o._cache.remove(e),o._cacheTimers[e]=void 0},i))},t.prototype.removeTile=function(e){var t=this._tiles[e];if(t&&(t.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),this._timers[e]=void 0),!(t.uses>0)))if(t.hasData()){var o=t.coord.wrapped().id;this._cache.add(o,t),this._setCacheInvalidationTimer(o,t)}else t.aborted=!0,this.abortTile(t),this.unloadTile(t)},t.prototype.clearTiles=function(){var e=this;for(var t in e._tiles)e.removeTile(t);this._cache.reset()},t.prototype.tilesIn=function(e){for(var t=this,o={},i=this.getIds(),r=1/0,s=1/0,a=-(1/0),n=-(1/0),d=e[0].zoom,c=0;c=0&&p[1].y>=0){for(var _=[],f=0;fo)r=!1;else if(t)if(this.expirationTimei.row){var o=t;t=i,i=o}return{x0:t.column,y0:t.row,x1:i.column,y1:i.row,dx:i.column-t.column,dy:i.row-t.row}}function scanSpans(t,i,o,r,e){var n=Math.max(o,Math.floor(i.y0)),h=Math.min(r,Math.ceil(i.y1));if(t.x0===i.x0&&t.y0===i.y0?t.x0+i.dy/t.dy*t.dx0,l=i.dx<0,u=n;ua.dy&&(h=s,s=a,a=h),s.dy>d.dy&&(h=s,s=d,d=h),a.dy>d.dy&&(h=a,a=d,d=h),s.dy&&scanSpans(d,s,r,e,n),a.dy&&scanSpans(d,a,r,e,n)}function getQuadkey(t,i,o){for(var r,e="",n=t;n>0;n--)r=1<t?new TileCoord(this.z-1,this.x,this.y,this.w):new TileCoord(this.z-1,Math.floor(this.x/2),Math.floor(this.y/2),this.w)},TileCoord.prototype.wrapped=function(){return new TileCoord(this.z,this.x,this.y,0)},TileCoord.prototype.children=function(t){if(this.z>=t)return[new TileCoord(this.z+1,this.x,this.y,this.w)];var i=this.z+1,o=2*this.x,r=2*this.y;return[new TileCoord(i,o,r,this.w),new TileCoord(i,o+1,r,this.w),new TileCoord(i,o,r+1,this.w),new TileCoord(i,o+1,r+1,this.w)]},TileCoord.cover=function(t,i,o,r){function e(t,i,e){var s,a,d,y;if(e>=0&&e<=n)for(s=t;sthis.maxzoom?Math.pow(2,e.coord.z-this.maxzoom):1,r={url:normalizeURL(e.coord.url(this.tiles,this.maxzoom,this.scheme),this.url),uid:e.uid,coord:e.coord,zoom:e.coord.z,tileSize:this.tileSize*o,type:this.type,source:this.id,overscaling:o,angle:this.map.transform.angle,pitch:this.map.transform.pitch,showCollisionBoxes:this.map.showCollisionBoxes};e.workerID&&"expired"!==e.state?"loading"===e.state?e.reloadCallback=t:this.dispatcher.send("reloadTile",r,i.bind(this),e.workerID):e.workerID=this.dispatcher.send("loadTile",r,i.bind(this))},t.prototype.abortTile=function(e){this.dispatcher.send("abortTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t.prototype.unloadTile=function(e){e.unloadVectorData(),this.dispatcher.send("removeTile",{uid:e.uid,type:this.type,source:this.id},null,e.workerID)},t}(Evented);module.exports=VectorTileSource; +},{"../util/evented":200,"../util/mapbox":208,"../util/util":212,"./load_tilejson":86}],96:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),vt=require("vector-tile"),Protobuf=require("pbf"),WorkerTile=require("./worker_tile"),util=require("../util/util"),VectorTileWorkerSource=function(e,r,t){this.actor=e,this.layerIndex=r,t&&(this.loadVectorData=t),this.loading={},this.loaded={}};VectorTileWorkerSource.prototype.loadTile=function(e,r){function t(e,t){return delete this.loading[o][i],e?r(e):t?(a.vectorTile=t,a.parse(t,this.layerIndex,this.actor,function(e,o,i){if(e)return r(e);var a={};t.expires&&(a.expires=t.expires),t.cacheControl&&(a.cacheControl=t.cacheControl),r(null,util.extend({rawTileData:t.rawData},o,a),i)}),this.loaded[o]=this.loaded[o]||{},void(this.loaded[o][i]=a)):r(null,null)}var o=e.source,i=e.uid;this.loading[o]||(this.loading[o]={});var a=this.loading[o][i]=new WorkerTile(e);a.abort=this.loadVectorData(e,t.bind(this))},VectorTileWorkerSource.prototype.reloadTile=function(e,r){function t(e,t){if(this.reloadCallback){var o=this.reloadCallback;delete this.reloadCallback,this.parse(this.vectorTile,a.layerIndex,a.actor,o)}r(e,t)}var o=this.loaded[e.source],i=e.uid,a=this;if(o&&o[i]){var l=o[i];"parsing"===l.status?l.reloadCallback=r:"done"===l.status&&l.parse(l.vectorTile,this.layerIndex,this.actor,t.bind(l))}},VectorTileWorkerSource.prototype.abortTile=function(e){var r=this.loading[e.source],t=e.uid;r&&r[t]&&r[t].abort&&(r[t].abort(),delete r[t])},VectorTileWorkerSource.prototype.removeTile=function(e){var r=this.loaded[e.source],t=e.uid;r&&r[t]&&delete r[t]},VectorTileWorkerSource.prototype.loadVectorData=function(e,r){function t(e,t){if(e)return r(e);var o=new vt.VectorTile(new Protobuf(t.data));o.rawData=t.data,o.cacheControl=t.cacheControl,o.expires=t.expires,r(e,o)}var o=ajax.getArrayBuffer(e.url,t.bind(this));return function(){o.abort()}},VectorTileWorkerSource.prototype.redoPlacement=function(e,r){var t=this.loaded[e.source],o=this.loading[e.source],i=e.uid;if(t&&t[i]){var a=t[i],l=a.redoPlacement(e.angle,e.pitch,e.showCollisionBoxes);l.result&&r(null,l.result,l.transferables)}else o&&o[i]&&(o[i].angle=e.angle)},module.exports=VectorTileWorkerSource; +},{"../util/ajax":191,"../util/util":212,"./worker_tile":99,"pbf":25,"vector-tile":34}],97:[function(require,module,exports){ +"use strict";var ajax=require("../util/ajax"),ImageSource=require("./image_source"),VideoSource=function(t){function e(e,o,i,r){t.call(this,e,o,i,r),this.roundZoom=!0,this.type="video",this.options=o}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this,e=this.options;this.urls=e.urls,ajax.getVideo(e.urls,function(e,o){if(e)return t.fire("error",{error:e});t.video=o,t.video.loop=!0;var i;t.video.addEventListener("playing",function(){i=t.map.style.animationLoop.set(1/0),t.map._rerender()}),t.video.addEventListener("pause",function(){t.map.style.animationLoop.cancel(i)}),t.map&&t.video.play(),t._finishLoading()})},e.prototype.getVideo=function(){return this.video},e.prototype.onAdd=function(t){this.map||(this.load(),this.map=t,this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},e.prototype.prepare=function(){!this.tile||this.video.readyState<2||this._prepareImage(this.map.painter.gl,this.video)},e.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},e}(ImageSource);module.exports=VideoSource; +},{"../util/ajax":191,"./image_source":85}],98:[function(require,module,exports){ +"use strict";var Actor=require("../util/actor"),StyleLayerIndex=require("../style/style_layer_index"),VectorTileWorkerSource=require("./vector_tile_worker_source"),GeoJSONWorkerSource=require("./geojson_worker_source"),globalRTLTextPlugin=require("./rtl_text_plugin"),Worker=function(e){var r=this;this.self=e,this.actor=new Actor(e,this),this.layerIndexes={},this.workerSourceTypes={vector:VectorTileWorkerSource,geojson:GeoJSONWorkerSource},this.workerSources={},this.self.registerWorkerSource=function(e,o){if(r.workerSourceTypes[e])throw new Error('Worker source with name "'+e+'" already registered.');r.workerSourceTypes[e]=o},this.self.registerRTLTextPlugin=function(e){if(globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText)throw new Error("RTL text plugin already registered.");globalRTLTextPlugin.applyArabicShaping=e.applyArabicShaping,globalRTLTextPlugin.processBidirectionalText=e.processBidirectionalText}};Worker.prototype.setLayers=function(e,r){this.getLayerIndex(e).replace(r)},Worker.prototype.updateLayers=function(e,r){this.getLayerIndex(e).update(r.layers,r.removedIds,r.symbolOrder)},Worker.prototype.loadTile=function(e,r,o){this.getWorkerSource(e,r.type).loadTile(r,o)},Worker.prototype.reloadTile=function(e,r,o){this.getWorkerSource(e,r.type).reloadTile(r,o)},Worker.prototype.abortTile=function(e,r){this.getWorkerSource(e,r.type).abortTile(r)},Worker.prototype.removeTile=function(e,r){this.getWorkerSource(e,r.type).removeTile(r)},Worker.prototype.removeSource=function(e,r){var o=this.getWorkerSource(e,r.type);void 0!==o.removeSource&&o.removeSource(r)},Worker.prototype.redoPlacement=function(e,r,o){this.getWorkerSource(e,r.type).redoPlacement(r,o)},Worker.prototype.loadWorkerSource=function(e,r,o){try{this.self.importScripts(r.url),o()}catch(e){o(e)}},Worker.prototype.loadRTLTextPlugin=function(e,r,o){try{globalRTLTextPlugin.applyArabicShaping||globalRTLTextPlugin.processBidirectionalText||this.self.importScripts(r)}catch(e){o(e)}},Worker.prototype.getLayerIndex=function(e){var r=this.layerIndexes[e];return r||(r=this.layerIndexes[e]=new StyleLayerIndex),r},Worker.prototype.getWorkerSource=function(e,r){var o=this;if(this.workerSources[e]||(this.workerSources[e]={}),!this.workerSources[e][r]){var t={send:function(r,t,i,n){o.actor.send(r,t,i,n,e)}};this.workerSources[e][r]=new this.workerSourceTypes[r](t,this.getLayerIndex(e))}return this.workerSources[e][r]},module.exports=function(e){return new Worker(e)}; +},{"../style/style_layer_index":154,"../util/actor":190,"./geojson_worker_source":83,"./rtl_text_plugin":90,"./vector_tile_worker_source":96}],99:[function(require,module,exports){ +"use strict";function recalculateLayers(e,i){for(var r=0,o=e.layers;r=B.maxzoom||B.layout&&"none"===B.layout.visibility)){for(var b=0,k=x;b=0;w--){var A=n[i.symbolOrder[w]];A&&t.symbolBuckets.push(A)}if(0===this.symbolBuckets.length)return T(new CollisionTile(this.angle,this.pitch,this.collisionBoxArray));var D=0,I=Object.keys(c.iconDependencies),O=util.mapObject(c.glyphDependencies,function(e){return Object.keys(e).map(Number)}),L=function(e){if(e)return o(e);if(D++,2===D){for(var i=new CollisionTile(t.angle,t.pitch,t.collisionBoxArray),r=0,s=t.symbolBuckets;r"===i||"<="===i||">="===i?compileComparisonOp(e[1],e[2],i,!0):"any"===i?compileLogicalOp(e.slice(1),"||"):"all"===i?compileLogicalOp(e.slice(1),"&&"):"none"===i?compileNegation(compileLogicalOp(e.slice(1),"||")):"in"===i?compileInOp(e[1],e.slice(2)):"!in"===i?compileNegation(compileInOp(e[1],e.slice(2))):"has"===i?compileHasOp(e[1]):"!has"===i?compileNegation(compileHasOp(e[1])):"true";return"("+n+")"}function compilePropertyReference(e){return"$type"===e?"f.type":"$id"===e?"f.id":"p["+JSON.stringify(e)+"]"}function compileComparisonOp(e,i,n,r){var o=compilePropertyReference(e),t="$type"===e?types.indexOf(i):JSON.stringify(i);return(r?"typeof "+o+"=== typeof "+t+"&&":"")+o+n+t}function compileLogicalOp(e,i){return e.map(compile).join(i)}function compileInOp(e,i){"$type"===e&&(i=i.map(function(e){return types.indexOf(e)}));var n=JSON.stringify(i.sort(compare)),r=compilePropertyReference(e);return i.length<=200?n+".indexOf("+r+") !== -1":"function(v, a, i, j) {while (i <= j) { var m = (i + j) >> 1; if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;}return false; }("+r+", "+n+",0,"+(i.length-1)+")"}function compileHasOp(e){return"$id"===e?'"id" in f':JSON.stringify(e)+" in p"}function compileNegation(e){return"!("+e+")"}function compare(e,i){return ei?1:0}module.exports=createFilter;var types=["Unknown","Point","LineString","Polygon"]; +},{}],104:[function(require,module,exports){ +"use strict";function xyz2lab(r){return r>t3?Math.pow(r,1/3):r/t2+t0}function lab2xyz(r){return r>t1?r*r*r:t2*(r-t0)}function xyz2rgb(r){return 255*(r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}function rgb2xyz(r){return r/=255,r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function rgbToLab(r){var t=rgb2xyz(r[0]),a=rgb2xyz(r[1]),n=rgb2xyz(r[2]),b=xyz2lab((.4124564*t+.3575761*a+.1804375*n)/Xn),o=xyz2lab((.2126729*t+.7151522*a+.072175*n)/Yn),g=xyz2lab((.0193339*t+.119192*a+.9503041*n)/Zn);return[116*o-16,500*(b-o),200*(o-g),r[3]]}function labToRgb(r){var t=(r[0]+16)/116,a=isNaN(r[1])?t:t+r[1]/500,n=isNaN(r[2])?t:t-r[2]/200;return t=Yn*lab2xyz(t),a=Xn*lab2xyz(a),n=Zn*lab2xyz(n),[xyz2rgb(3.2404542*a-1.5371385*t-.4985314*n),xyz2rgb(-.969266*a+1.8760108*t+.041556*n),xyz2rgb(.0556434*a-.2040259*t+1.0572252*n),r[3]]}function rgbToHcl(r){var t=rgbToLab(r),a=t[0],n=t[1],b=t[2],o=Math.atan2(b,n)*rad2deg;return[o<0?o+360:o,Math.sqrt(n*n+b*b),a,r[3]]}function hclToRgb(r){var t=r[0]*deg2rad,a=r[1],n=r[2];return labToRgb([n,Math.cos(t)*a,Math.sin(t)*a,r[3]])}var Xn=.95047,Yn=1,Zn=1.08883,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1,deg2rad=Math.PI/180,rad2deg=180/Math.PI;module.exports={lab:{forward:rgbToLab,reverse:labToRgb},hcl:{forward:rgbToHcl,reverse:hclToRgb}}; +},{}],105:[function(require,module,exports){ +"use strict";function identityFunction(t){return t}function createFunction(t,e){var o,n="color"===e.type;if(isFunctionDefinition(t)){var r=t.stops&&"object"==typeof t.stops[0][0],a=r||void 0!==t.property,i=r||!a,s=t.type||("interpolated"===e.function?"exponential":"interval");n&&(t=extend({},t),t.stops&&(t.stops=t.stops.map(function(t){return[t[0],parseColor(t[1])]})),t.default?t.default=parseColor(t.default):t.default=parseColor(e.default));var u,p,l;if("exponential"===s)u=evaluateExponentialFunction;else if("interval"===s)u=evaluateIntervalFunction;else if("categorical"===s){u=evaluateCategoricalFunction,p=Object.create(null);for(var c=0,f=t.stops;c=t.stops[n-1][0])return t.stops[n-1][1];var r=binarySearchForIndex(t.stops,o);return t.stops[r][1]}function evaluateExponentialFunction(t,e,o){var n=void 0!==t.base?t.base:1;if("number"!==getType(o))return coalesce(t.default,e.default);var r=t.stops.length;if(1===r)return t.stops[0][1];if(o<=t.stops[0][0])return t.stops[0][1];if(o>=t.stops[r-1][0])return t.stops[r-1][1];var a=binarySearchForIndex(t.stops,o);return interpolate(o,n,t.stops[a][0],t.stops[a+1][0],t.stops[a][1],t.stops[a+1][1])}function evaluateIdentityFunction(t,e,o){return"color"===e.type?o=parseColor(o):getType(o)!==e.type&&(o=void 0),coalesce(o,t.default,e.default)}function binarySearchForIndex(t,e){for(var o,n,r=t.length,a=0,i=r-1,s=0;a<=i;){if(s=Math.floor((a+i)/2),o=t[s][0],n=t[s+1][0],e>=o&&ee&&(i=s-1)}return Math.max(s-1,0)}function interpolate(t,e,o,n,r,a){return"function"==typeof r?function(){var i=r.apply(void 0,arguments),s=a.apply(void 0,arguments);if(void 0!==i&&void 0!==s)return interpolate(t,e,o,n,i,s)}:r.length?interpolateArray(t,e,o,n,r,a):interpolateNumber(t,e,o,n,r,a)}function interpolateNumber(t,e,o,n,r,a){var i,s=n-o,u=t-o;return i=1===e?u/s:(Math.pow(e,u)-1)/(Math.pow(e,s)-1),r*(1-i)+a*i}function interpolateArray(t,e,o,n,r,a){for(var i=[],s=0;s255?255:e}function clamp_css_float(e){return e<0?0:e>1?1:e}function parse_css_int(e){return clamp_css_byte("%"===e[e.length-1]?parseFloat(e)/100*255:parseInt(e))}function parse_css_float(e){return clamp_css_float("%"===e[e.length-1]?parseFloat(e)/100:parseFloat(e))}function css_hue_to_rgb(e,r,l){return l<0?l+=1:l>1&&(l-=1),6*l<1?e+(r-e)*l*6:2*l<1?r:3*l<2?e+(r-e)*(2/3-l)*6:e}function parseCSSColor(e){var r=e.replace(/ /g,"").toLowerCase();if(r in kCSSColorTable)return kCSSColorTable[r].slice();if("#"===r[0]){if(4===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=4095?[(3840&l)>>4|(3840&l)>>8,240&l|(240&l)>>4,15&l|(15&l)<<4,1]:null}if(7===r.length){var l=parseInt(r.substr(1),16);return l>=0&&l<=16777215?[(16711680&l)>>16,(65280&l)>>8,255&l,1]:null}return null}var a=r.indexOf("("),t=r.indexOf(")");if(a!==-1&&t+1===r.length){var n=r.substr(0,a),s=r.substr(a+1,t-(a+1)).split(","),o=1;switch(n){case"rgba":if(4!==s.length)return null;o=parse_css_float(s.pop());case"rgb":return 3!==s.length?null:[parse_css_int(s[0]),parse_css_int(s[1]),parse_css_int(s[2]),o];case"hsla":if(4!==s.length)return null;o=parse_css_float(s.pop());case"hsl":if(3!==s.length)return null;var i=(parseFloat(s[0])%360+360)%360/360,u=parse_css_float(s[1]),g=parse_css_float(s[2]),d=g<=.5?g*(u+1):g+u-g*u,c=2*g-d;return[clamp_css_byte(255*css_hue_to_rgb(c,d,i+1/3)),clamp_css_byte(255*css_hue_to_rgb(c,d,i)),clamp_css_byte(255*css_hue_to_rgb(c,d,i-1/3)),o];default:return null}}return null}var kCSSColorTable={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};try{exports.parseCSSColor=parseCSSColor}catch(e){} +},{}],108:[function(require,module,exports){ +function sss(r){var e,t,s,n,u,a;switch(typeof r){case"object":if(null===r)return null;if(isArray(r)){for(s="[",t=r.length-1,e=0;e-1&&(s+=sss(r[e])),s+"]"}for(n=objKeys(r).sort(),t=n.length,s="{",u=n[e=0],a=t>0&&void 0!==r[u];e15?"\\u00"+e.toString(16):"\\u000"+e.toString(16)}};module.exports=function(r){if(void 0!==r)return""+sss(r)},module.exports.stringSearch=strReg,module.exports.stringReplace=strReplace; +},{}],109:[function(require,module,exports){ +function isObjectLike(r){return!!r&&"object"==typeof r}function arraySome(r,e){for(var a=-1,t=r.length;++as))return!1;for(;++c-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isObject(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function isObjectLike(t){return!!t&&"object"==typeof t}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]",objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,objectToString=objectProto.toString,propertyIsEnumerable=objectProto.propertyIsEnumerable;module.exports=isArguments; +},{}],113:[function(require,module,exports){ +function isObjectLike(t){return!!t&&"object"==typeof t}function getNative(t,r){var e=null==t?void 0:t[r];return isNative(e)?e:void 0}function isLength(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=MAX_SAFE_INTEGER}function isFunction(t){return isObject(t)&&objToString.call(t)==funcTag}function isObject(t){var r=typeof t;return!!t&&("object"==r||"function"==r)}function isNative(t){return null!=t&&(isFunction(t)?reIsNative.test(fnToString.call(t)):isObjectLike(t)&&reIsHostCtor.test(t))}var arrayTag="[object Array]",funcTag="[object Function]",reIsHostCtor=/^\[object .+?Constructor\]$/,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),nativeIsArray=getNative(Array,"isArray"),MAX_SAFE_INTEGER=9007199254740991,isArray=nativeIsArray||function(t){return isObjectLike(t)&&isLength(t.length)&&objToString.call(t)==arrayTag};module.exports=isArray; +},{}],114:[function(require,module,exports){ +function isEqual(a,l,i,e){i="function"==typeof i?bindCallback(i,e,3):void 0;var s=i?i(a,l):void 0;return void 0===s?baseIsEqual(a,l,i):!!s}var baseIsEqual=require("lodash._baseisequal"),bindCallback=require("lodash._bindcallback");module.exports=isEqual; +},{"lodash._baseisequal":109,"lodash._bindcallback":110}],115:[function(require,module,exports){ +function isLength(a){return"number"==typeof a&&a>-1&&a%1==0&&a<=MAX_SAFE_INTEGER}function isObjectLike(a){return!!a&&"object"==typeof a}function isTypedArray(a){return isObjectLike(a)&&isLength(a.length)&&!!typedArrayTags[objectToString.call(a)]}var MAX_SAFE_INTEGER=9007199254740991,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var objectProto=Object.prototype,objectToString=objectProto.toString;module.exports=isTypedArray; +},{}],116:[function(require,module,exports){ +function baseProperty(e){return function(t){return null==t?void 0:t[e]}}function isArrayLike(e){return null!=e&&isLength(getLength(e))}function isIndex(e,t){return e="number"==typeof e||reIsUint.test(e)?+e:-1,t=null==t?MAX_SAFE_INTEGER:t,e>-1&&e%1==0&&e-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function shimKeys(e){for(var t=keysIn(e),r=t.length,n=r&&e.length,s=!!n&&isLength(n)&&(isArray(e)||isArguments(e)),o=-1,i=[];++o0;++n":{},">=":{},"<":{},"<=":{},"in":{},"!in":{},"all":{},"any":{},"none":{},"has":{},"!has":{}}},"geometry_type":{"type":"enum","values":{"Point":{},"LineString":{},"Polygon":{}}},"function":{"stops":{"type":"array","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0},"property":{"type":"string","default":"$zoom"},"type":{"type":"enum","values":{"identity":{},"exponential":{},"interval":{},"categorical":{}},"default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{},"lab":{},"hcl":{}},"default":"rgb"},"default":{"type":"*","required":false}},"function_stop":{"type":"array","minimum":0,"maximum":22,"value":["number","color"],"length":2},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{},"viewport":{}},"transition":false},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","transition":true,"function":"interpolated","zoom-function":true,"property-function":false},"color":{"type":"color","default":"#ffffff","function":"interpolated","zoom-function":true,"property-function":false,"transition":true},"intensity":{"type":"number","default":0.5,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":false,"transition":true}},"paint":["paint_fill","paint_line","paint_circle","paint_fill-extrusion","paint_symbol","paint_raster","paint_background"],"paint_fill":{"fill-antialias":{"type":"boolean","function":"piecewise-constant","zoom-function":true,"default":true},"fill-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"}]},"fill-outline-color":{"type":"color","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}]},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-translate"]},"fill-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":false,"default":1,"minimum":0,"maximum":1,"transition":true},"fill-extrusion-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}]},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"fill-extrusion-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["fill-extrusion-translate"]},"fill-extrusion-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"fill-extrusion-height":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true},"fill-extrusion-base":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":0,"minimum":0,"units":"meters","transition":true,"requires":["fill-extrusion-height"]}},"paint_line":{"line-opacity":{"type":"number","function":"interpolated","zoom-function":true,"property-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"line-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":[{"!":"line-pattern"}]},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["line-translate"]},"line-width":{"type":"number","default":1,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"line-gap-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-offset":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"line-dasharray":{"type":"array","value":"number","function":"piecewise-constant","zoom-function":true,"minimum":0,"transition":true,"units":"line widths","requires":[{"!":"line-pattern"}]},"line-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-blur":{"type":"number","default":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels"},"circle-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["circle-translate"]},"circle-pitch-scale":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels"},"circle-stroke-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true},"circle-stroke-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true}},"paint_symbol":{"icon-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["icon-image"]},"icon-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["icon-image"]},"icon-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["icon-image","icon-translate"]},"text-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"requires":["text-field"]},"text-halo-width":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-halo-blur":{"type":"number","default":0,"minimum":0,"function":"interpolated","zoom-function":true,"property-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"function":"interpolated","zoom-function":true,"transition":true,"units":"pixels","requires":["text-field"]},"text-translate-anchor":{"type":"enum","function":"piecewise-constant","zoom-function":true,"values":{"map":{},"viewport":{}},"default":"map","requires":["text-field","text-translate"]}},"paint_raster":{"raster-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-hue-rotate":{"type":"number","default":0,"period":360,"function":"interpolated","zoom-function":true,"transition":true,"units":"degrees"},"raster-brightness-min":{"type":"number","function":"interpolated","zoom-function":true,"default":0,"minimum":0,"maximum":1,"transition":true},"raster-brightness-max":{"type":"number","function":"interpolated","zoom-function":true,"default":1,"minimum":0,"maximum":1,"transition":true},"raster-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"function":"interpolated","zoom-function":true,"transition":true,"units":"milliseconds"}},"paint_background":{"background-color":{"type":"color","default":"#000000","function":"interpolated","zoom-function":true,"transition":true,"requires":[{"!":"background-pattern"}]},"background-pattern":{"type":"string","function":"piecewise-constant","zoom-function":true,"transition":true},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"function":"interpolated","zoom-function":true,"transition":true}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds"},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds"}}} +},{}],119:[function(require,module,exports){ +"use strict";module.exports=function(r){for(var t=arguments,e=1;e7)return[new ValidationError(u,a,"constants have been deprecated as of v8")];if(!(a in l.constants))return[new ValidationError(u,a,'constant "%s" not found',a)];e=extend({},e,{value:l.constants[a]})}return n.function&&"object"===getType(a)?r(e):n.type&&i[n.type]?i[n.type](e):t(extend({},e,{valueSpec:n.type?o[n.type]:n}))}; +},{"../error/validation_error":102,"../util/extend":119,"../util/get_type":120,"./validate_array":125,"./validate_boolean":126,"./validate_color":127,"./validate_constants":128,"./validate_enum":129,"./validate_filter":130,"./validate_function":131,"./validate_layer":133,"./validate_light":135,"./validate_number":136,"./validate_object":137,"./validate_source":140,"./validate_string":141}],125:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),validate=require("./validate"),ValidationError=require("../error/validation_error");module.exports=function(e){var r=e.value,t=e.valueSpec,a=e.style,n=e.styleSpec,l=e.key,i=e.arrayElementValidator||validate;if("array"!==getType(r))return[new ValidationError(l,r,"array expected, %s found",getType(r))];if(t.length&&r.length!==t.length)return[new ValidationError(l,r,"array length %d expected, length %d found",t.length,r.length)];if(t["min-length"]&&r.length7)return t?[new ValidationError(e,t,"constants have been deprecated as of v8")]:[];var o=getType(t);if("object"!==o)return[new ValidationError(e,t,"object expected, %s found",o)];var n=[];for(var i in t)"@"!==i[0]&&n.push(new ValidationError(e+"."+i,t[i],'constants must start with "@"'));return n}; +},{"../error/validation_error":102,"../util/get_type":120}],129:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint");module.exports=function(e){var r=e.key,n=e.value,u=e.valueSpec,o=[];return Array.isArray(u.values)?u.values.indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",u.values.join(", "),n)):Object.keys(u.values).indexOf(unbundle(n))===-1&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",Object.keys(u.values).join(", "),n)),o}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123}],130:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateEnum=require("./validate_enum"),getType=require("../util/get_type"),unbundle=require("../util/unbundle_jsonlint");module.exports=function e(r){var t,a=r.value,n=r.key,l=r.styleSpec,s=[];if("array"!==getType(a))return[new ValidationError(n,a,"array expected, %s found",getType(a))];if(a.length<1)return[new ValidationError(n,a,"filter array must have at least 1 element")];switch(s=s.concat(validateEnum({key:n+"[0]",value:a[0],valueSpec:l.filter_operator,style:r.style,styleSpec:r.styleSpec})),unbundle(a[0])){case"<":case"<=":case">":case">=":a.length>=2&&"$type"===unbundle(a[1])&&s.push(new ValidationError(n,a,'"$type" cannot be use with operator "%s"',a[0]));case"==":case"!=":3!==a.length&&s.push(new ValidationError(n,a,'filter array for operator "%s" must have 3 elements',a[0]));case"in":case"!in":a.length>=2&&(t=getType(a[1]),"string"!==t&&s.push(new ValidationError(n+"[1]",a[1],"string expected, %s found",t)));for(var o=2;ounbundle(r[0].zoom))return[new ValidationError(o,r[0].zoom,"stop zoom values must appear in ascending order")];unbundle(r[0].zoom)!==l&&(l=unbundle(r[0].zoom),i=void 0,s={}),t=t.concat(validateObject({key:o+"[0]",value:r[0],valueSpec:{zoom:{}},style:e.style,styleSpec:e.styleSpec,objectElementValidators:{zoom:validateNumber,value:a}}))}else t=t.concat(a({key:o+"[0]",value:r[0],valueSpec:{},style:e.style,styleSpec:e.styleSpec}));return t.concat(validate({key:o+"[1]",value:r[1],valueSpec:u,style:e.style,styleSpec:e.styleSpec}))}function a(e){var t=getType(e.value),r=unbundle(e.value);if(n){if(t!==n)return[new ValidationError(e.key,e.value,"%s stop domain type must match previous stop domain type %s",t,n)]}else n=t;if("number"!==t&&"string"!==t&&"boolean"!==t)return[new ValidationError(e.key,e.value,"stop domain value must be a number, string, or boolean")];if("number"!==t&&"categorical"!==p){var a="number expected, %s found";return u["property-function"]&&void 0===p&&(a+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new ValidationError(e.key,e.value,a,t)]}return"categorical"!==p||"number"!==t||isFinite(r)&&Math.floor(r)===r?"number"===t&&void 0!==i&&r=8&&(d&&!e.valueSpec["property-function"]?v.push(new ValidationError(e.key,e.value,"property functions not supported")):y&&!e.valueSpec["zoom-function"]&&v.push(new ValidationError(e.key,e.value,"zoom functions not supported"))),"categorical"!==p&&!c||void 0!==e.value.property||v.push(new ValidationError(e.key,e.value,'"property" property is required')),v}; +},{"../error/validation_error":102,"../util/get_type":120,"../util/unbundle_jsonlint":123,"./validate":124,"./validate_array":125,"./validate_number":136,"./validate_object":137}],132:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),validateString=require("./validate_string");module.exports=function(r){var e=r.value,t=r.key,a=validateString(r);return a.length?a:(e.indexOf("{fontstack}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{fontstack}" token')),e.indexOf("{range}")===-1&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{range}" token')),a)}; +},{"../error/validation_error":102,"./validate_string":141}],133:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateFilter=require("./validate_filter"),validatePaintProperty=require("./validate_paint_property"),validateLayoutProperty=require("./validate_layout_property"),extend=require("../util/extend");module.exports=function(e){var r=[],t=e.value,a=e.key,i=e.style,l=e.styleSpec;t.type||t.ref||r.push(new ValidationError(a,t,'either "type" or "ref" is required'));var u=unbundle(t.type),n=unbundle(t.ref);if(t.id)for(var o=unbundle(t.id),s=0;sm.maximum?[new ValidationError(r,i,"%s is greater than the maximum value %s",i,m.maximum)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],137:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),getType=require("../util/get_type"),validateSpec=require("./validate");module.exports=function(e){var r=e.key,t=e.value,i=e.valueSpec||{},a=e.objectElementValidators||{},o=e.style,l=e.styleSpec,n=[],u=getType(t);if("object"!==u)return[new ValidationError(r,t,"object expected, %s found",u)];for(var d in t){var p=d.split(".")[0],s=i[p]||i["*"],c=void 0;if(a[p])c=a[p];else if(i[p])c=validateSpec;else if(a["*"])c=a["*"];else{if(!i["*"]){n.push(new ValidationError(r,t[d],'unknown property "%s"',d));continue}c=validateSpec}n=n.concat(c({key:(r?r+".":r)+d,value:t[d],valueSpec:s,style:o,styleSpec:l,object:t,objectKey:d}))}for(var v in i)i[v].required&&void 0===i[v].default&&void 0===t[v]&&n.push(new ValidationError(r,t,'missing required property "%s"',v));return n}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],138:[function(require,module,exports){ +"use strict";var validateProperty=require("./validate_property");module.exports=function(r){return validateProperty(r,"paint")}; +},{"./validate_property":139}],139:[function(require,module,exports){ +"use strict";var validate=require("./validate"),ValidationError=require("../error/validation_error"),getType=require("../util/get_type");module.exports=function(e,t){var r=e.key,i=e.style,a=e.styleSpec,n=e.value,o=e.objectKey,l=a[t+"_"+e.layerType];if(!l)return[];var y=o.match(/^(.*)-transition$/);if("paint"===t&&y&&l[y[1]]&&l[y[1]].transition)return validate({key:r,value:n,valueSpec:a.transition,style:i,styleSpec:a});var p=e.valueSpec||l[o];if(!p)return[new ValidationError(r,n,'unknown property "%s"',o)];var s;if("string"===getType(n)&&p["property-function"]&&!p.tokens&&(s=/^{([^}]+)}$/.exec(n)))return[new ValidationError(r,n,'"%s" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": %s` }`.',o,JSON.stringify(s[1]))];var u=[];return"symbol"===e.layerType&&"text-field"===o&&i&&!i.glyphs&&u.push(new ValidationError(r,n,'use of "text-field" requires a style "glyphs" property')),u.concat(validate({key:e.key,value:n,valueSpec:p,style:i,styleSpec:a}))}; +},{"../error/validation_error":102,"../util/get_type":120,"./validate":124}],140:[function(require,module,exports){ +"use strict";var ValidationError=require("../error/validation_error"),unbundle=require("../util/unbundle_jsonlint"),validateObject=require("./validate_object"),validateEnum=require("./validate_enum");module.exports=function(e){var a=e.value,t=e.key,r=e.styleSpec,l=e.style;if(!a.type)return[new ValidationError(t,a,'"type" is required')];var u=unbundle(a.type),i=[];switch(u){case"vector":case"raster":if(i=i.concat(validateObject({key:t,value:a,valueSpec:r.source_tile,style:e.style,styleSpec:r})),"url"in a)for(var s in a)["type","url","tileSize"].indexOf(s)<0&&i.push(new ValidationError(t+"."+s,a[s],'a source with a "url" property may not include a "%s" property',s));return i;case"geojson":return validateObject({key:t,value:a,valueSpec:r.source_geojson,style:l,styleSpec:r});case"video":return validateObject({key:t,value:a,valueSpec:r.source_video,style:l,styleSpec:r});case"image":return validateObject({key:t,value:a,valueSpec:r.source_image,style:l,styleSpec:r});case"canvas":return validateObject({key:t,value:a,valueSpec:r.source_canvas,style:l,styleSpec:r});default:return validateEnum({key:t+".type",value:a.type,valueSpec:{values:["vector","raster","geojson","video","image","canvas"]},style:l,styleSpec:r})}}; +},{"../error/validation_error":102,"../util/unbundle_jsonlint":123,"./validate_enum":129,"./validate_object":137}],141:[function(require,module,exports){ +"use strict";var getType=require("../util/get_type"),ValidationError=require("../error/validation_error");module.exports=function(r){var e=r.value,t=r.key,i=getType(e);return"string"!==i?[new ValidationError(t,e,"string expected, %s found",i)]:[]}; +},{"../error/validation_error":102,"../util/get_type":120}],142:[function(require,module,exports){ +"use strict";function validateStyleMin(e,a){a=a||latestStyleSpec;var t=[];return t=t.concat(validate({key:"",value:e,valueSpec:a.$root,styleSpec:a,style:e,objectElementValidators:{glyphs:validateGlyphsURL,"*":function(){return[]}}})),a.$version>7&&e.constants&&(t=t.concat(validateConstants({key:"constants",value:e.constants,style:e,styleSpec:a}))),sortErrors(t)}function sortErrors(e){return[].concat(e).sort(function(e,a){return e.line-a.line})}function wrapCleanErrors(e){return function(){return sortErrors(e.apply(this,arguments))}}var validateConstants=require("./validate/validate_constants"),validate=require("./validate/validate"),latestStyleSpec=require("./reference/latest"),validateGlyphsURL=require("./validate/validate_glyphs_url");validateStyleMin.source=wrapCleanErrors(require("./validate/validate_source")),validateStyleMin.light=wrapCleanErrors(require("./validate/validate_light")),validateStyleMin.layer=wrapCleanErrors(require("./validate/validate_layer")),validateStyleMin.filter=wrapCleanErrors(require("./validate/validate_filter")),validateStyleMin.paintProperty=wrapCleanErrors(require("./validate/validate_paint_property")),validateStyleMin.layoutProperty=wrapCleanErrors(require("./validate/validate_layout_property")),module.exports=validateStyleMin; +},{"./reference/latest":117,"./validate/validate":124,"./validate/validate_constants":128,"./validate/validate_filter":130,"./validate/validate_glyphs_url":132,"./validate/validate_layer":133,"./validate/validate_layout_property":134,"./validate/validate_light":135,"./validate/validate_paint_property":138,"./validate/validate_source":140}],143:[function(require,module,exports){ +"use strict";var AnimationLoop=function(){this.n=0,this.times=[]};AnimationLoop.prototype.stopped=function(){return this.times=this.times.filter(function(t){return t.time>=(new Date).getTime()}),!this.times.length},AnimationLoop.prototype.set=function(t){return this.times.push({id:this.n,time:t+(new Date).getTime()}),this.n++},AnimationLoop.prototype.cancel=function(t){this.times=this.times.filter(function(i){return i.id!==t})},module.exports=AnimationLoop; +},{}],144:[function(require,module,exports){ +"use strict";var Evented=require("../util/evented"),ajax=require("../util/ajax"),browser=require("../util/browser"),normalizeURL=require("../util/mapbox").normalizeSpriteURL,SpritePosition=function(){this.x=0,this.y=0,this.width=0,this.height=0,this.pixelRatio=1,this.sdf=!1},ImageSprite=function(t){function i(i,e){var a=this;t.call(this),this.base=i,this.retina=browser.devicePixelRatio>1,this.setEventedParent(e);var r=this.retina?"@2x":"";ajax.getJSON(normalizeURL(i,r,".json"),function(t,i){return t?void a.fire("error",{error:t}):(a.data=i,void(a.imgData&&a.fire("data",{dataType:"style"})))}),ajax.getImage(normalizeURL(i,r,".png"),function(t,i){if(t)return void a.fire("error",{error:t});a.imgData=browser.getImageData(i);for(var e=0;e1!==this.retina){var e=new i(this.base);e.on("data",function(){t.data=e.data,t.imgData=e.imgData,t.width=e.width,t.retina=e.retina})}},i.prototype.getSpritePosition=function(t){if(!this.loaded())return new SpritePosition;var i=this.data&&this.data[t];return i&&this.imgData?i:new SpritePosition},i}(Evented);module.exports=ImageSprite; +},{"../util/ajax":191,"../util/browser":192,"../util/evented":200,"../util/mapbox":208}],145:[function(require,module,exports){ +"use strict";var styleSpec=require("../style-spec/reference/latest"),util=require("../util/util"),Evented=require("../util/evented"),validateStyle=require("./validate_style"),StyleDeclaration=require("./style_declaration"),StyleTransition=require("./style_transition"),TRANSITION_SUFFIX="-transition",Light=function(t){function i(i){t.call(this),this.properties=["anchor","color","position","intensity"],this._specifications=styleSpec.light,this.set(i)}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.set=function(t){var i=this;if(!this._validate(validateStyle.light,t)){this._declarations={},this._transitions={},this._transitionOptions={},this.calculated={},t=util.extend({anchor:this._specifications.anchor.default,color:this._specifications.color.default,position:this._specifications.position.default,intensity:this._specifications.intensity.default},t);for(var e=0,o=i.properties;eMath.floor(e)&&(t.lastIntegerZoom=Math.floor(e+1),t.lastIntegerZoomTime=Date.now()),t.lastZoom=e},t.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},t.prototype.update=function(e,t){var r=this;if(this._changed){var i=Object.keys(this._updatedLayers),o=Object.keys(this._removedLayers);(i.length||o.length||this._updatedSymbolOrder)&&this._updateWorkerLayers(i,o);for(var s in r._updatedSources){var a=r._updatedSources[s];"reload"===a?r._reloadSource(s):"clear"===a&&r._clearSource(s)}this._applyClasses(e,t),this._resetUpdates(),this.fire("data",{dataType:"style"})}},t.prototype._updateWorkerLayers=function(e,t){var r=this,i=this._updatedSymbolOrder?this._order.filter(function(e){return"symbol"===r._layers[e].type}):null;this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(e),removedIds:t,symbolOrder:i})},t.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSymbolOrder=!1,this._updatedSources={},this._updatedPaintProps={},this._updatedAllPaintProps=!1},t.prototype.setState=function(e){var t=this;if(this._checkLoaded(),validateStyle.emitErrors(this,validateStyle(e)))return!1;e=util.extend({},e),e.layers=deref(e.layers);var r=diff(this.serialize(),e).filter(function(e){return!(e.command in ignoredDiffOperations)});if(0===r.length)return!1;var i=r.filter(function(e){return!(e.command in supportedDiffOperations)});if(i.length>0)throw new Error("Unimplemented: "+i.map(function(e){return e.command}).join(", ")+".");return r.forEach(function(e){"setTransition"!==e.command&&t[e.command].apply(t,e.args)}),this.stylesheet=e,!0},t.prototype.addSource=function(e,t,r){var i=this;if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!t.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(t)+".");var o=["vector","raster","geojson","video","image","canvas"],s=o.indexOf(t.type)>=0;if(!s||!this._validate(validateStyle.source,"sources."+e,t,null,r)){var a=this.sourceCaches[e]=new SourceCache(e,t,this.dispatcher);a.style=this,a.setEventedParent(this,function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}}),a.onAdd(this.map),this._changed=!0}},t.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");var t=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],t.setEventedParent(null),t.clearTiles(),t.onRemove&&t.onRemove(this.map),this._changed=!0},t.prototype.getSource=function(e){return this.sourceCaches[e]&&this.sourceCaches[e].getSource()},t.prototype.addLayer=function(e,t,r){this._checkLoaded();var i=e.id;if("object"==typeof e.source&&(this.addSource(i,e.source),e=util.extend(e,{source:i})),!this._validate(validateStyle.layer,"layers."+i,e,{arrayIndex:-1},r)){var o=StyleLayer.create(e);this._validateLayer(o),o.setEventedParent(this,{layer:{id:i}});var s=t?this._order.indexOf(t):this._order.length;if(this._order.splice(s,0,i),this._layers[i]=o,this._removedLayers[i]&&o.source){var a=this._removedLayers[i];delete this._removedLayers[i],this._updatedSources[o.source]=a.type!==o.type?"clear":"reload"}this._updateLayer(o),"symbol"===o.type&&(this._updatedSymbolOrder=!0),this.updateClasses(i)}},t.prototype.moveLayer=function(e,t){this._checkLoaded(),this._changed=!0;var r=this._layers[e];if(!r)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")});var i=this._order.indexOf(e);this._order.splice(i,1);var o=t?this._order.indexOf(t):this._order.length;this._order.splice(o,0,e),"symbol"===r.type&&(this._updatedSymbolOrder=!0,r.source&&!this._updatedSources[r.source]&&(this._updatedSources[r.source]="reload"))},t.prototype.removeLayer=function(e){this._checkLoaded();var t=this._layers[e];if(!t)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")});t.setEventedParent(null);var r=this._order.indexOf(e);this._order.splice(r,1),"symbol"===t.type&&(this._updatedSymbolOrder=!0),this._changed=!0,this._removedLayers[e]=t,delete this._layers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e]},t.prototype.getLayer=function(e){return this._layers[e]},t.prototype.setLayerZoomRange=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(i.minzoom===t&&i.maxzoom===r||(null!=t&&(i.minzoom=t),null!=r&&(i.maxzoom=r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")})},t.prototype.setFilter=function(e,t){this._checkLoaded();var r=this.getLayer(e);return r?void(null!==t&&void 0!==t&&this._validate(validateStyle.filter,"layers."+r.id+".filter",t)||util.deepEqual(r.filter,t)||(r.filter=util.clone(t),this._updateLayer(r))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")})},t.prototype.getFilter=function(e){return util.clone(this.getLayer(e).filter)},t.prototype.setLayoutProperty=function(e,t,r){this._checkLoaded();var i=this.getLayer(e);return i?void(util.deepEqual(i.getLayoutProperty(t),r)||(i.setLayoutProperty(t,r),this._updateLayer(i))):void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")})},t.prototype.getLayoutProperty=function(e,t){return this.getLayer(e).getLayoutProperty(t)},t.prototype.setPaintProperty=function(e,t,r,i){this._checkLoaded();var o=this.getLayer(e);if(!o)return void this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")});if(!util.deepEqual(o.getPaintProperty(t,i),r)){var s=o.isPaintValueFeatureConstant(t);o.setPaintProperty(t,r,i);var a=!(r&&MapboxGLFunction.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property);a&&s||this._updateLayer(o),this.updateClasses(e,t)}},t.prototype.getPaintProperty=function(e,t,r){return this.getLayer(e).getPaintProperty(t,r)},t.prototype.getTransition=function(){return util.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},t.prototype.updateClasses=function(e,t){if(this._changed=!0,e){var r=this._updatedPaintProps;r[e]||(r[e]={}),r[e][t||"all"]=!0}else this._updatedAllPaintProps=!0},t.prototype.serialize=function(){var e=this;return util.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:util.mapObject(this.sourceCaches,function(e){return e.serialize()}),layers:this._order.map(function(t){return e._layers[t].serialize()})},function(e){return void 0!==e})},t.prototype._updateLayer=function(e){this._updatedLayers[e.id]=!0,e.source&&!this._updatedSources[e.source]&&(this._updatedSources[e.source]="reload"),this._changed=!0},t.prototype._flattenRenderedFeatures=function(e){for(var t=this,r=[],i=this._order.length-1;i>=0;i--)for(var o=t._order[i],s=0,a=e;s=this.maxzoom)||"none"===this.layout.visibility)},i.prototype.updatePaintTransitions=function(t,i,a,e,n){for(var o=this,r=util.extend({},this._paintDeclarations[""]),s=0;s=this.endTime)return e;var a=this.oldTransition.calculate(t,i,this.startTime),n=util.easeCubicInOut((o-this.startTime-this.delay)/this.duration);return this.interp(a,e,n)},StyleTransition.prototype._calculateTargetValue=function(t,i){if(!this.zoomTransitioned)return this.declaration.calculate(t,i);var o=t.zoom,e=this.zoomHistory.lastIntegerZoom,a=o>e?2:.5,n=this.declaration.calculate({zoom:o>e?o-1:o+1},i),r=this.declaration.calculate({zoom:o},i),s=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(o-e),u=interpolate(s,1,l);return void 0!==n&&void 0!==r?{from:n,fromScale:a,to:r,toScale:1,t:u}:void 0},module.exports=StyleTransition; +},{"../util/interpolate":204,"../util/util":212}],156:[function(require,module,exports){ +"use strict";module.exports=require("../style-spec/validate_style.min"),module.exports.emitErrors=function(r,e){if(e&&e.length){for(var t=0;t-a/2;){if(s--,s<0)return!1;f-=e[s].dist(i),i=e[s]}f+=e[s].dist(e[s+1]),s++;for(var l=[],o=0;f
r;)o-=l.shift().angleDelta;if(o>n)return!1;s++,f+=c.dist(g)}return!0}module.exports=checkMaxAngle; +},{}],159:[function(require,module,exports){ +"use strict";function clipLine(n,x,y,o,e){for(var r=[],t=0;t=o&&w.x>=o||(P.x>=o?P=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round():w.x>=o&&(w=new Point(o,P.y+(w.y-P.y)*((o-P.x)/(w.x-P.x)))._round()),P.y>=e&&w.y>=e||(P.y>=e?P=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round():w.y>=e&&(w=new Point(P.x+(w.x-P.x)*((e-P.y)/(w.y-P.y)),e)._round()),u&&P.equals(u[u.length-1])||(u=[P],r.push(u)),u.push(w)))))}return r}var Point=require("point-geometry");module.exports=clipLine; +},{"point-geometry":26}],160:[function(require,module,exports){ +"use strict";var createStructArrayType=require("../util/struct_array"),Point=require("point-geometry"),CollisionBoxArray=createStructArrayType({members:[{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:"Float32",name:"maxScale"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"},{type:"Int16",name:"bbox0"},{type:"Int16",name:"bbox1"},{type:"Int16",name:"bbox2"},{type:"Int16",name:"bbox3"},{type:"Float32",name:"placementScale"}]});Object.defineProperty(CollisionBoxArray.prototype.StructType.prototype,"anchorPoint",{get:function(){return new Point(this.anchorPointX,this.anchorPointY)}}),module.exports=CollisionBoxArray; +},{"../util/struct_array":210,"point-geometry":26}],161:[function(require,module,exports){ +"use strict";var CollisionFeature=function(t,e,i,o,s,a,n,r,l,d,u){var h=n.top*r-l,x=n.bottom*r+l,f=n.left*r-l,m=n.right*r+l;if(this.boxStartIndex=t.length,d){var _=x-h,b=m-f;if(_>0)if(_=Math.max(10*r,_),u){var v=e[i.segment+1].sub(e[i.segment])._unit()._mult(b),c=[i.sub(v),i.add(v)];this._addLineCollisionBoxes(t,c,i,0,b,_,o,s,a)}else this._addLineCollisionBoxes(t,e,i,i.segment,b,_,o,s,a)}else t.emplaceBack(i.x,i.y,f,h,m,x,1/0,o,s,a,0,0,0,0,0);this.boxEndIndex=t.length};CollisionFeature.prototype._addLineCollisionBoxes=function(t,e,i,o,s,a,n,r,l){var d=a/2,u=Math.floor(s/d),h=-a/2,x=this.boxes,f=i,m=o+1,_=h;do{if(m--,m<0)return x;_-=e[m].dist(f),f=e[m]}while(_>-s/2);for(var b=e[m].dist(e[m+1]),v=0;v=e.length)return x;b=e[m].dist(e[m+1])}var g=c-_,p=e[m],C=e[m+1],B=C.sub(p)._unit()._mult(g)._add(p)._round(),M=Math.max(Math.abs(c-h)-d/2,0),y=s/2/M;t.emplaceBack(B.x,B.y,-a/2,-a/2,a/2,a/2,y,n,r,l,0,0,0,0,0)}return x},module.exports=CollisionFeature; +},{}],162:[function(require,module,exports){ +"use strict";var Point=require("point-geometry"),EXTENT=require("../data/extent"),Grid=require("grid-index"),intersectionTests=require("../util/intersection_tests"),CollisionTile=function(t,e,i){if("object"==typeof t){var r=t;i=e,t=r.angle,e=r.pitch,this.grid=new Grid(r.grid),this.ignoredGrid=new Grid(r.ignoredGrid)}else this.grid=new Grid(EXTENT,12,6),this.ignoredGrid=new Grid(EXTENT,12,0);this.minScale=.5,this.maxScale=2,this.angle=t,this.pitch=e;var a=Math.sin(t),o=Math.cos(t);if(this.rotationMatrix=[o,-a,a,o],this.reverseRotationMatrix=[o,a,-a,o],this.yStretch=1/Math.cos(e/180*Math.PI),this.yStretch=Math.pow(this.yStretch,1.3),this.collisionBoxArray=i,0===i.length){i.emplaceBack();var n=32767;i.emplaceBack(0,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(EXTENT,0,0,-n,0,n,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,0,-n,0,n,0,n,0,0,0,0,0,0,0,0,0),i.emplaceBack(0,EXTENT,-n,0,n,0,n,0,0,0,0,0,0,0,0,0)}this.tempCollisionBox=i.get(0),this.edges=[i.get(1),i.get(2),i.get(3),i.get(4)]};CollisionTile.prototype.serialize=function(t){var e=this.grid.toArrayBuffer(),i=this.ignoredGrid.toArrayBuffer();return t&&(t.push(e),t.push(i)),{angle:this.angle,pitch:this.pitch,grid:e,ignoredGrid:i}},CollisionTile.prototype.placeCollisionFeature=function(t,e,i){for(var r=this,a=this.collisionBoxArray,o=this.minScale,n=this.rotationMatrix,l=this.yStretch,h=t.boxStartIndex;h=r.maxScale)return o}if(i){var S=void 0;if(r.angle){var P=r.reverseRotationMatrix,b=new Point(s.x1,s.y1).matMult(P),T=new Point(s.x2,s.y1).matMult(P),w=new Point(s.x1,s.y2).matMult(P),N=new Point(s.x2,s.y2).matMult(P);S=r.tempCollisionBox,S.anchorPointX=s.anchorPoint.x,S.anchorPointY=s.anchorPoint.y,S.x1=Math.min(b.x,T.x,w.x,N.x),S.y1=Math.min(b.y,T.x,w.x,N.x),S.x2=Math.max(b.x,T.x,w.x,N.x),S.y2=Math.max(b.y,T.x,w.x,N.x),S.maxScale=s.maxScale}else S=s;for(var B=0;B=r.maxScale)return o}}}return o},CollisionTile.prototype.queryRenderedSymbols=function(t,e){var i={},r=[];if(0===t.length||0===this.grid.length&&0===this.ignoredGrid.length)return r;for(var a=this.collisionBoxArray,o=this.rotationMatrix,n=this.yStretch,l=[],h=1/0,s=1/0,x=-(1/0),c=-(1/0),g=0;gS.maxScale)){var T=S.anchorPoint.matMult(o),w=T.x+S.x1/e,N=T.y+S.y1/e*n,B=T.x+S.x2/e,G=T.y+S.y2/e*n,E=[new Point(w,N),new Point(B,N),new Point(B,G),new Point(w,G)];intersectionTests.polygonIntersectsPolygon(l,E)&&(i[P][b]=!0,r.push(u[v]))}}return r},CollisionTile.prototype.getPlacementScale=function(t,e,i,r,a){var o=e.x-r.x,n=e.y-r.y,l=(a.x1-i.x2)/o,h=(a.x2-i.x1)/o,s=(a.y1-i.y2)*this.yStretch/n,x=(a.y2-i.y1)*this.yStretch/n;(isNaN(l)||isNaN(h))&&(l=h=1),(isNaN(s)||isNaN(x))&&(s=x=1);var c=Math.min(Math.max(l,h),Math.max(s,x)),g=a.maxScale,y=i.maxScale;return c>g&&(c=g),c>y&&(c=y),c>t&&c>=a.placementScale&&(t=c),t},CollisionTile.prototype.insertCollisionFeature=function(t,e,i){for(var r=this,a=i?this.ignoredGrid:this.grid,o=this.collisionBoxArray,n=t.boxStartIndex;n=0&&k=0&&q=0&&p+c<=s){var M=new Anchor(k,q,y,f)._round();n&&!checkMaxAngle(e,M,l,n,a)||x.push(M)}}g+=A}return i||x.length||o||(x=resample(e,g/2,t,n,a,l,o,!0,h)),x}var interpolate=require("../util/interpolate"),Anchor=require("../symbol/anchor"),checkMaxAngle=require("./check_max_angle");module.exports=getAnchors; +},{"../symbol/anchor":157,"../util/interpolate":204,"./check_max_angle":158}],164:[function(require,module,exports){ +"use strict";var ShelfPack=require("@mapbox/shelf-pack"),util=require("../util/util"),SIZE_GROWTH_RATE=4,DEFAULT_SIZE=128,MAX_SIZE=2048,GlyphAtlas=function(){this.width=DEFAULT_SIZE,this.height=DEFAULT_SIZE,this.atlas=new ShelfPack(this.width,this.height),this.index={},this.ids={},this.data=new Uint8Array(this.width*this.height)};GlyphAtlas.prototype.getGlyphs=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]=[]),r[i].push(e);return r},GlyphAtlas.prototype.getRects=function(){var t,i,e,h=this,r={};for(var s in h.ids)t=s.split("#"),i=t[0],e=t[1],r[i]||(r[i]={}),r[i][e]=h.index[s];return r},GlyphAtlas.prototype.addGlyph=function(t,i,e,h){var r=this;if(!e)return null;var s=i+"#"+e.id;if(this.index[s])return this.ids[s].indexOf(t)<0&&this.ids[s].push(t),this.index[s];if(!e.bitmap)return null;var a=e.width+2*h,E=e.height+2*h,n=1,l=a+2*n,T=E+2*n;l+=4-l%4,T+=4-T%4;var u=this.atlas.packOne(l,T);if(u||(this.resize(),u=this.atlas.packOne(l,T)),!u)return util.warnOnce("glyph bitmap overflow"),null;this.index[s]=u,this.ids[s]=[t];for(var d=this.data,p=e.bitmap,A=0;A=MAX_SIZE||e>=MAX_SIZE)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=SIZE_GROWTH_RATE,this.height*=SIZE_GROWTH_RATE,this.atlas.resize(this.width,this.height);for(var h=new ArrayBuffer(this.width*this.height),r=0;r65535)return a("glyphs > 65535 not supported");void 0===this.loading[t]&&(this.loading[t]={});var l=this.loading[t];if(l[e])l[e].push(a);else{l[e]=[a];var i=256*e+"-"+(256*e+255),r=glyphUrl(t,i,this.url);ajax.getArrayBuffer(r,function(t,a){for(var i=!t&&new Glyphs(new Protobuf(a.data)),r=0;r1?2:1,this.canvas&&(this.canvas.width=this.width*this.pixelRatio,this.canvas.height=this.height*this.pixelRatio)),this.sprite=t},i.prototype.addIcons=function(t,i){for(var e=this,r=0;r1||(b?(clearTimeout(b),b=null,h("dblclick",t)):b=setTimeout(l,300))}function i(e){f("touchmove",e)}function c(e){f("touchend",e)}function d(e){f("touchcancel",e)}function l(){b=null}function s(e){var t=DOM.mousePos(g,e);t.equals(L)&&h("click",e)}function v(e){h("dblclick",e),e.preventDefault()}function m(t){var n=e.dragRotate&&e.dragRotate.isActive();E||n?E&&(p=t):h("contextmenu",t),t.preventDefault()}function h(t,n){var o=DOM.mousePos(g,n);return e.fire(t,{lngLat:e.unproject(o),point:o,originalEvent:n})}function f(t,n){var o=DOM.touchPos(g,n),r=o.reduce(function(e,t,n,o){return e.add(t.div(o.length))},new Point(0,0));return e.fire(t,{lngLat:e.unproject(r),point:r,lngLats:o.map(function(t){return e.unproject(t)},this),points:o,originalEvent:n})}var g=e.getCanvasContainer(),p=null,E=!1,L=null,b=null;for(var q in handlers)e[q]=new handlers[q](e,t),t.interactive&&t[q]&&e[q].enable(t[q]);g.addEventListener("mouseout",n,!1),g.addEventListener("mousedown",o,!1),g.addEventListener("mouseup",r,!1),g.addEventListener("mousemove",a,!1),g.addEventListener("touchstart",u,!1),g.addEventListener("touchend",c,!1),g.addEventListener("touchmove",i,!1),g.addEventListener("touchcancel",d,!1),g.addEventListener("click",s,!1),g.addEventListener("dblclick",v,!1),g.addEventListener("contextmenu",m,!1)}; +},{"../util/dom":199,"./handler/box_zoom":179,"./handler/dblclick_zoom":180,"./handler/drag_pan":181,"./handler/drag_rotate":182,"./handler/keyboard":183,"./handler/scroll_zoom":184,"./handler/touch_zoom_rotate":185,"point-geometry":26}],172:[function(require,module,exports){ +"use strict";var util=require("../util/util"),interpolate=require("../util/interpolate"),browser=require("../util/browser"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),Evented=require("../util/evented"),Camera=function(t){function i(i,e){t.call(this),this.moving=!1,this.transform=i,this._bearingSnap=e.bearingSnap}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.getCenter=function(){return this.transform.center},i.prototype.setCenter=function(t,i){return this.jumpTo({center:t},i),this},i.prototype.panBy=function(t,i,e){return this.panTo(this.transform.center,util.extend({offset:Point.convert(t).mult(-1)},i),e),this},i.prototype.panTo=function(t,i,e){return this.easeTo(util.extend({center:t},i),e)},i.prototype.getZoom=function(){return this.transform.zoom},i.prototype.setZoom=function(t,i){return this.jumpTo({zoom:t},i),this},i.prototype.zoomTo=function(t,i,e){return this.easeTo(util.extend({zoom:t},i),e)},i.prototype.zoomIn=function(t,i){return this.zoomTo(this.getZoom()+1,t,i),this},i.prototype.zoomOut=function(t,i){return this.zoomTo(this.getZoom()-1,t,i),this},i.prototype.getBearing=function(){return this.transform.bearing},i.prototype.setBearing=function(t,i){return this.jumpTo({bearing:t},i),this},i.prototype.rotateTo=function(t,i,e){return this.easeTo(util.extend({bearing:t},i),e)},i.prototype.resetNorth=function(t,i){return this.rotateTo(0,util.extend({duration:1e3},t),i),this},i.prototype.snapToNorth=function(t,i){return Math.abs(this.getBearing())i?1:0}),["bottom","left","right","top"]))return void util.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'");t=LngLatBounds.convert(t);var n=[i.padding.left-i.padding.right,i.padding.top-i.padding.bottom],r=Math.min(i.padding.right,i.padding.left),s=Math.min(i.padding.top,i.padding.bottom);i.offset=[i.offset[0]+n[0],i.offset[1]+n[1]];var a=Point.convert(i.offset),h=this.transform,u=h.project(t.getNorthWest()),p=h.project(t.getSouthEast()),c=p.sub(u),g=(h.width-2*r-2*Math.abs(a.x))/c.x,m=(h.height-2*s-2*Math.abs(a.y))/c.y;return m<0||g<0?void util.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."):(i.center=h.unproject(u.add(p).div(2)),i.zoom=Math.min(h.scaleZoom(h.scale*Math.min(g,m)),i.maxZoom),i.bearing=0,i.linear?this.easeTo(i,e):this.flyTo(i,e))},i.prototype.jumpTo=function(t,i){this.stop();var e=this.transform,o=!1,n=!1,r=!1;return"zoom"in t&&e.zoom!==+t.zoom&&(o=!0,e.zoom=+t.zoom),"center"in t&&(e.center=LngLat.convert(t.center)),"bearing"in t&&e.bearing!==+t.bearing&&(n=!0,e.bearing=+t.bearing),"pitch"in t&&e.pitch!==+t.pitch&&(r=!0,e.pitch=+t.pitch),this.fire("movestart",i).fire("move",i),o&&this.fire("zoomstart",i).fire("zoom",i).fire("zoomend",i),n&&this.fire("rotate",i),r&&this.fire("pitch",i),this.fire("moveend",i)},i.prototype.easeTo=function(t,i){var e=this;this.stop(),t=util.extend({offset:[0,0],duration:500,easing:util.ease},t);var o,n,r=this.transform,s=Point.convert(t.offset),a=this.getZoom(),h=this.getBearing(),u=this.getPitch(),p="zoom"in t?+t.zoom:a,c="bearing"in t?this._normalizeBearing(t.bearing,h):h,g="pitch"in t?+t.pitch:u;"center"in t?(o=LngLat.convert(t.center),n=r.centerPoint.add(s)):"around"in t?(o=LngLat.convert(t.around),n=r.locationPoint(o)):(n=r.centerPoint.add(s),o=r.pointLocation(n));var m=r.locationPoint(o);return t.animate===!1&&(t.duration=0),this.zooming=p!==a,this.rotating=h!==c,this.pitching=g!==u,t.smoothEasing&&0!==t.duration&&(t.easing=this._smoothOutEasing(t.duration)),t.noMoveStart||(this.moving=!0,this.fire("movestart",i)),this.zooming&&this.fire("zoomstart",i),clearTimeout(this._onEaseEnd),this._ease(function(t){this.zooming&&(r.zoom=interpolate(a,p,t)),this.rotating&&(r.bearing=interpolate(h,c,t)),this.pitching&&(r.pitch=interpolate(u,g,t)),r.setLocationAtPoint(o,m.add(n.sub(m)._mult(t))),this.fire("move",i),this.zooming&&this.fire("zoom",i),this.rotating&&this.fire("rotate",i),this.pitching&&this.fire("pitch",i)},function(){t.delayEndEvents?e._onEaseEnd=setTimeout(e._easeToEnd.bind(e,i),t.delayEndEvents):e._easeToEnd(i)},t),this},i.prototype._easeToEnd=function(t){var i=this.zooming;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,i&&this.fire("zoomend",t),this.fire("moveend",t)},i.prototype.flyTo=function(t,i){function e(t){var i=(y*y-z*z+(t?-1:1)*E*E*_*_)/(2*(t?y:z)*E*_);return Math.log(Math.sqrt(i*i+1)-i)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function n(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/n(t)}this.stop(),t=util.extend({offset:[0,0],speed:1.2,curve:1.42,easing:util.ease},t);var s=this.transform,a=Point.convert(t.offset),h=this.getZoom(),u=this.getBearing(),p=this.getPitch(),c="center"in t?LngLat.convert(t.center):this.getCenter(),g="zoom"in t?+t.zoom:h,m="bearing"in t?this._normalizeBearing(t.bearing,u):u,f="pitch"in t?+t.pitch:p;Math.abs(s.center.lng)+Math.abs(c.lng)>180&&(s.center.lng>0&&c.lng<0?c.lng+=360:s.center.lng<0&&c.lng>0&&(c.lng-=360));var d=s.zoomScale(g-h),l=s.point,v="center"in t?s.project(c).sub(a.div(d)):l,b=t.curve,z=Math.max(s.width,s.height),y=z/d,_=v.sub(l).mag();if("minZoom"in t){var M=util.clamp(Math.min(t.minZoom,h,g),s.minZoom,s.maxZoom),T=z/s.zoomScale(M-h);b=Math.sqrt(T/_*2)}var E=b*b,x=e(0),L=function(t){return n(x)/n(x+b*t)},Z=function(t){return z*((n(x)*r(x+b*t)-o(x))/E)/_},P=(e(1)-x)/b;if(Math.abs(_)<1e-6){if(Math.abs(z-y)<1e-6)return this.easeTo(t,i);var j=y=0)return!1;return!0}),this._container.innerHTML=i.join(" | "),this._editLink=null}},AttributionControl.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("compact")},module.exports=AttributionControl; +},{"../../util/dom":199,"../../util/util":212}],174:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),FullscreenControl=function(){this._fullscreen=!1,util.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in window.document&&(this._fullscreenchange="MSFullscreenChange")};FullscreenControl.prototype.onAdd=function(e){var n="mapboxgl-ctrl",t=this._container=DOM.create("div",n+" mapboxgl-ctrl-group"),l=this._fullscreenButton=DOM.create("button",n+"-icon "+n+"-fullscreen",this._container);return l.setAttribute("aria-label","Toggle fullscreen"),l.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),this._mapContainer=e.getContainer(),window.document.addEventListener(this._fullscreenchange,this._changeIcon),t},FullscreenControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},FullscreenControl.prototype._isFullscreen=function(){return this._fullscreen},FullscreenControl.prototype._changeIcon=function(e){if(e.target===this._mapContainer){this._fullscreen=!this._fullscreen;var n="mapboxgl-ctrl";this._fullscreenButton.classList.toggle(n+"-shrink"),this._fullscreenButton.classList.toggle(n+"-fullscreen")}},FullscreenControl.prototype._onClickFullscreen=function(){this._isFullscreen()?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._mapContainer.requestFullscreen?this._mapContainer.requestFullscreen():this._mapContainer.mozRequestFullScreen?this._mapContainer.mozRequestFullScreen():this._mapContainer.msRequestFullscreen?this._mapContainer.msRequestFullscreen():this._mapContainer.webkitRequestFullscreen&&this._mapContainer.webkitRequestFullscreen()},module.exports=FullscreenControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],175:[function(require,module,exports){ +"use strict";function checkGeolocationSupport(t){void 0!==supportsGeolocation?t(supportsGeolocation):void 0!==window.navigator.permissions?window.navigator.permissions.query({name:"geolocation"}).then(function(o){supportsGeolocation="denied"!==o.state,t(supportsGeolocation)}):(supportsGeolocation=!!window.navigator.geolocation,t(supportsGeolocation))}var Evented=require("../../util/evented"),DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),defaultGeoPositionOptions={enableHighAccuracy:!1,timeout:6e3},className="mapboxgl-ctrl",supportsGeolocation,GeolocateControl=function(t){function o(o){t.call(this),this.options=o||{},util.bindAll(["_onSuccess","_onError","_finish","_setupUI"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group"),checkGeolocationSupport(this._setupUI),this._container},o.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},o.prototype._onSuccess=function(t){this._map.jumpTo({center:[t.coords.longitude,t.coords.latitude],zoom:17,bearing:0,pitch:0}),this.fire("geolocate",t),this._finish()},o.prototype._onError=function(t){this.fire("error",t),this._finish()},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},o.prototype._setupUI=function(t){t!==!1&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=DOM.create("button",className+"-icon "+className+"-geolocate",this._container),this._geolocateButton.type="button",this._geolocateButton.setAttribute("aria-label","Geolocate"),this.options.watchPosition&&this._geolocateButton.setAttribute("aria-pressed",!1),this._geolocateButton.addEventListener("click",this._onClickGeolocate.bind(this)))},o.prototype._onClickGeolocate=function(){var t=util.extend(defaultGeoPositionOptions,this.options&&this.options.positionOptions||{});this.options.watchPosition?void 0!==this._geolocationWatchID?(this._geolocateButton.classList.remove("watching"),this._geolocateButton.setAttribute("aria-pressed",!1),window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("watching"),this._geolocateButton.setAttribute("aria-pressed",!0),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t)):(window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,t),this._timeoutId=setTimeout(this._finish,1e4))},o}(Evented);module.exports=GeolocateControl; +},{"../../util/dom":199,"../../util/evented":200,"../../util/util":212,"../../util/window":194}],176:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),LogoControl=function(){util.bindAll(["_updateLogo"],this)};LogoControl.prototype.onAdd=function(o){return this._map=o,this._container=DOM.create("div","mapboxgl-ctrl"),this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._container},LogoControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("sourcedata",this._updateLogo)},LogoControl.prototype.getDefaultPosition=function(){return"bottom-left"},LogoControl.prototype._updateLogo=function(o){if(o&&"metadata"===o.sourceDataType)if(!this._container.childNodes.length&&this._logoRequired()){var t=DOM.create("a","mapboxgl-ctrl-logo");t.target="_blank",t.href="https://www.mapbox.com/",t.setAttribute("aria-label","Mapbox logo"),this._container.appendChild(t),this._map.off("data",this._updateLogo)}else this._container.childNodes.length&&!this._logoRequired()&&this.onRemove()},LogoControl.prototype._logoRequired=function(){if(this._map.style){var o=this._map.style.sourceCaches;for(var t in o){var e=o[t].getSource();if(e.mapbox_logo)return!0}return!1}},module.exports=LogoControl; +},{"../../util/dom":199,"../../util/util":212}],177:[function(require,module,exports){ +"use strict";function copyMouseEvent(t){return new window.MouseEvent(t.type,{button:2,buttons:2,bubbles:!0,cancelable:!0,detail:t.detail,view:t.view,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY,movementX:t.movementX,movementY:t.movementY,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey})}var DOM=require("../../util/dom"),window=require("../../util/window"),util=require("../../util/util"),className="mapboxgl-ctrl",NavigationControl=function(){util.bindAll(["_rotateCompassArrow"],this)};NavigationControl.prototype._rotateCompassArrow=function(){var t="rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassArrow.style.transform=t},NavigationControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div",className+" "+className+"-group",t.getContainer()),this._container.addEventListener("contextmenu",this._onContextMenu.bind(this)),this._zoomInButton=this._createButton(className+"-icon "+className+"-zoom-in","Zoom In",t.zoomIn.bind(t)),this._zoomOutButton=this._createButton(className+"-icon "+className+"-zoom-out","Zoom Out",t.zoomOut.bind(t)),this._compass=this._createButton(className+"-icon "+className+"-compass","Reset North",t.resetNorth.bind(t)),this._compassArrow=DOM.create("span",className+"-compass-arrow",this._compass),this._compass.addEventListener("mousedown",this._onCompassDown.bind(this)),this._onCompassMove=this._onCompassMove.bind(this),this._onCompassUp=this._onCompassUp.bind(this),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._container},NavigationControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("rotate",this._rotateCompassArrow),this._map=void 0},NavigationControl.prototype._onContextMenu=function(t){t.preventDefault()},NavigationControl.prototype._onCompassDown=function(t){0===t.button&&(DOM.disableDrag(),window.document.addEventListener("mousemove",this._onCompassMove),window.document.addEventListener("mouseup",this._onCompassUp),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassMove=function(t){0===t.button&&(this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._onCompassUp=function(t){0===t.button&&(window.document.removeEventListener("mousemove",this._onCompassMove),window.document.removeEventListener("mouseup",this._onCompassUp),DOM.enableDrag(),this._map.getCanvasContainer().dispatchEvent(copyMouseEvent(t)),t.stopPropagation())},NavigationControl.prototype._createButton=function(t,o,e){var n=DOM.create("button",t,this._container);return n.type="button",n.setAttribute("aria-label",o),n.addEventListener("click",function(){e()}),n},module.exports=NavigationControl; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],178:[function(require,module,exports){ +"use strict";function updateScale(t,e,o){var n=o&&o.maxWidth||100,i=t._container.clientHeight/2,a=getDistance(t.unproject([0,i]),t.unproject([n,i]));if(o&&"imperial"===o.unit){var r=3.2808*a;if(r>5280){var l=r/5280;setScale(e,n,l,"mi")}else setScale(e,n,r,"ft")}else setScale(e,n,a,"m")}function setScale(t,e,o,n){var i=getRoundNum(o),a=i/o;"m"===n&&i>=1e3&&(i/=1e3,n="km"),t.style.width=e*a+"px",t.innerHTML=i+n}function getDistance(t,e){var o=6371e3,n=Math.PI/180,i=t.lat*n,a=e.lat*n,r=Math.sin(i)*Math.sin(a)+Math.cos(i)*Math.cos(a)*Math.cos((e.lng-t.lng)*n),l=o*Math.acos(Math.min(r,1));return l}function getRoundNum(t){var e=Math.pow(10,(""+Math.floor(t)).length-1),o=t/e;return o=o>=10?10:o>=5?5:o>=3?3:o>=2?2:1,e*o}var DOM=require("../../util/dom"),util=require("../../util/util"),ScaleControl=function(t){this.options=t,util.bindAll(["_onMove"],this)};ScaleControl.prototype.getDefaultPosition=function(){return"bottom-left"},ScaleControl.prototype._onMove=function(){updateScale(this._map,this._container,this.options)},ScaleControl.prototype.onAdd=function(t){return this._map=t,this._container=DOM.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ScaleControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("move",this._onMove),this._map=void 0},module.exports=ScaleControl; +},{"../../util/dom":199,"../../util/util":212}],179:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),LngLatBounds=require("../../geo/lng_lat_bounds"),util=require("../../util/util"),window=require("../../util/window"),BoxZoomHandler=function(o){this._map=o,this._el=o.getCanvasContainer(),this._container=o.getContainer(),util.bindAll(["_onMouseDown","_onMouseMove","_onMouseUp","_onKeyDown"],this)};BoxZoomHandler.prototype.isEnabled=function(){return!!this._enabled},BoxZoomHandler.prototype.isActive=function(){return!!this._active},BoxZoomHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onMouseDown,!1),this._enabled=!0)},BoxZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onMouseDown),this._enabled=!1)},BoxZoomHandler.prototype._onMouseDown=function(o){o.shiftKey&&0===o.button&&(window.document.addEventListener("mousemove",this._onMouseMove,!1),window.document.addEventListener("keydown",this._onKeyDown,!1),window.document.addEventListener("mouseup",this._onMouseUp,!1),DOM.disableDrag(),this._startPos=DOM.mousePos(this._el,o),this._active=!0)},BoxZoomHandler.prototype._onMouseMove=function(o){var e=this._startPos,t=DOM.mousePos(this._el,o);this._box||(this._box=DOM.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",o));var n=Math.min(e.x,t.x),i=Math.max(e.x,t.x),s=Math.min(e.y,t.y),r=Math.max(e.y,t.y);DOM.setTransform(this._box,"translate("+n+"px,"+s+"px)"),this._box.style.width=i-n+"px",this._box.style.height=r-s+"px"},BoxZoomHandler.prototype._onMouseUp=function(o){if(0===o.button){var e=this._startPos,t=DOM.mousePos(this._el,o),n=(new LngLatBounds).extend(this._map.unproject(e)).extend(this._map.unproject(t));this._finish(),e.x===t.x&&e.y===t.y?this._fireEvent("boxzoomcancel",o):this._map.fitBounds(n,{linear:!0}).fire("boxzoomend",{originalEvent:o,boxZoomBounds:n})}},BoxZoomHandler.prototype._onKeyDown=function(o){27===o.keyCode&&(this._finish(),this._fireEvent("boxzoomcancel",o))},BoxZoomHandler.prototype._finish=function(){this._active=!1,window.document.removeEventListener("mousemove",this._onMouseMove,!1),window.document.removeEventListener("keydown",this._onKeyDown,!1),window.document.removeEventListener("mouseup",this._onMouseUp,!1),this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.parentNode.removeChild(this._box),this._box=null),DOM.enableDrag()},BoxZoomHandler.prototype._fireEvent=function(o,e){return this._map.fire(o,{originalEvent:e})},module.exports=BoxZoomHandler; +},{"../../geo/lng_lat_bounds":63,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],180:[function(require,module,exports){ +"use strict";var DoubleClickZoomHandler=function(o){this._map=o,this._onDblClick=this._onDblClick.bind(this)};DoubleClickZoomHandler.prototype.isEnabled=function(){return!!this._enabled},DoubleClickZoomHandler.prototype.enable=function(){this.isEnabled()||(this._map.on("dblclick",this._onDblClick),this._enabled=!0)},DoubleClickZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._map.off("dblclick",this._onDblClick),this._enabled=!1)},DoubleClickZoomHandler.prototype._onDblClick=function(o){this._map.zoomTo(this._map.getZoom()+(o.originalEvent.shiftKey?-1:1),{around:o.lngLat},o)},module.exports=DoubleClickZoomHandler; +},{}],181:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.3,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=1400,inertiaDeceleration=2500,DragPanHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onDown","_onMove","_onUp","_onTouchEnd","_onMouseUp"],this)};DragPanHandler.prototype.isEnabled=function(){return!!this._enabled},DragPanHandler.prototype.isActive=function(){return!!this._active},DragPanHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},DragPanHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._el.removeEventListener("touchstart",this._onDown),this._enabled=!1)},DragPanHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(t.touches?(window.document.addEventListener("touchmove",this._onMove),window.document.addEventListener("touchend",this._onTouchEnd)):(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onMouseUp)),window.addEventListener("blur",this._onMouseUp),this._active=!1,this._startPos=this._pos=DOM.mousePos(this._el,t),this._inertia=[[Date.now(),this._pos]])},DragPanHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("dragstart",t),this._fireEvent("movestart",t));var e=DOM.mousePos(this._el,t),n=this._map;n.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),e]),n.transform.setLocationAtPoint(n.transform.pointLocation(this._pos),e),this._fireEvent("drag",t),this._fireEvent("move",t),this._pos=e,t.preventDefault()}},DragPanHandler.prototype._onUp=function(t){var e=this;if(this.isActive()){this._active=!1,this._fireEvent("dragend",t),this._drainInertiaBuffer();var n=function(){e._map.moving=!1,e._fireEvent("moveend",t)},i=this._inertia;if(i.length<2)return void n();var o=i[i.length-1],r=i[0],a=o[1].sub(r[1]),s=(o[0]-r[0])/1e3;if(0===s||o[1].equals(r[1]))return void n();var u=a.mult(inertiaLinearity/s),d=u.mag();d>inertiaMaxSpeed&&(d=inertiaMaxSpeed,u._unit()._mult(d));var h=d/(inertiaDeceleration*inertiaLinearity),v=u.mult(-h/2);this._map.panBy(v,{duration:1e3*h,easing:inertiaEasing,noMoveStart:!0},{originalEvent:t})}},DragPanHandler.prototype._onMouseUp=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onMouseUp),window.removeEventListener("blur",this._onMouseUp))},DragPanHandler.prototype._onTouchEnd=function(t){this._ignoreEvent(t)||(this._onUp(t),window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onTouchEnd))},DragPanHandler.prototype._fireEvent=function(t,e){return this._map.fire(t,{originalEvent:e})},DragPanHandler.prototype._ignoreEvent=function(t){var e=this._map;if(e.boxZoom&&e.boxZoom.isActive())return!0;if(e.dragRotate&&e.dragRotate.isActive())return!0;if(t.touches)return t.touches.length>1;if(t.ctrlKey)return!0;var n=1,i=0;return"mousemove"===t.type?t.buttons&0===n:t.button&&t.button!==i},DragPanHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),n=160;t.length>0&&e-t[0][0]>n;)t.shift()},module.exports=DragPanHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],182:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.25,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaMaxSpeed=180,inertiaDeceleration=720,DragRotateHandler=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=e.pitchWithRotate!==!1,util.bindAll(["_onDown","_onMove","_onUp"],this)};DragRotateHandler.prototype.isEnabled=function(){return!!this._enabled},DragRotateHandler.prototype.isActive=function(){return!!this._active},DragRotateHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("mousedown",this._onDown),this._enabled=!0)},DragRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("mousedown",this._onDown),this._enabled=!1)},DragRotateHandler.prototype._onDown=function(t){this._ignoreEvent(t)||this.isActive()||(window.document.addEventListener("mousemove",this._onMove),window.document.addEventListener("mouseup",this._onUp),window.addEventListener("blur",this._onUp),this._active=!1,this._inertia=[[Date.now(),this._map.getBearing()]],this._startPos=this._pos=DOM.mousePos(this._el,t),this._center=this._map.transform.centerPoint,t.preventDefault())},DragRotateHandler.prototype._onMove=function(t){if(!this._ignoreEvent(t)){this.isActive()||(this._active=!0,this._map.moving=!0,this._fireEvent("rotatestart",t),this._fireEvent("movestart",t));var e=this._map;e.stop();var i=this._pos,n=DOM.mousePos(this._el,t),r=.8*(i.x-n.x),a=(i.y-n.y)*-.5,o=e.getBearing()-r,s=e.getPitch()-a,h=this._inertia,v=h[h.length-1];this._drainInertiaBuffer(),h.push([Date.now(),e._normalizeBearing(o,v[1])]),e.transform.bearing=o,this._pitchWithRotate&&(e.transform.pitch=s),this._fireEvent("rotate",t),this._fireEvent("move",t),this._pos=n}},DragRotateHandler.prototype._onUp=function(t){var e=this;if(!this._ignoreEvent(t)&&(window.document.removeEventListener("mousemove",this._onMove),window.document.removeEventListener("mouseup",this._onUp),window.removeEventListener("blur",this._onUp),this.isActive())){this._active=!1,this._fireEvent("rotateend",t),this._drainInertiaBuffer();var i=this._map,n=i.getBearing(),r=this._inertia,a=function(){Math.abs(n)inertiaMaxSpeed&&(p=inertiaMaxSpeed);var l=p/(inertiaDeceleration*inertiaLinearity),g=u*p*(l/2);v+=g,Math.abs(i._normalizeBearing(v,0))1;var i=t.ctrlKey?1:2,n=t.ctrlKey?0:2,r=t.button;return"undefined"!=typeof InstallTrigger&&2===t.button&&t.ctrlKey&&window.navigator.platform.toUpperCase().indexOf("MAC")>=0&&(r=0),"mousemove"===t.type?t.buttons&0===i:!this.isActive()&&r!==n},DragRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),i=160;t.length>0&&e-t[0][0]>i;)t.shift()},module.exports=DragRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],183:[function(require,module,exports){ +"use strict";function easeOut(e){return e*(2-e)}var panStep=100,bearingStep=15,pitchStep=10,KeyboardHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),this._onKeyDown=this._onKeyDown.bind(this)};KeyboardHandler.prototype.isEnabled=function(){return!!this._enabled},KeyboardHandler.prototype.enable=function(){this.isEnabled()||(this._el.addEventListener("keydown",this._onKeyDown,!1),this._enabled=!0)},KeyboardHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("keydown",this._onKeyDown),this._enabled=!1)},KeyboardHandler.prototype._onKeyDown=function(e){if(!(e.altKey||e.ctrlKey||e.metaKey)){var t=0,n=0,a=0,i=0,r=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?n=-1:(e.preventDefault(),i=-1);break;case 39:e.shiftKey?n=1:(e.preventDefault(),i=1);break;case 38:e.shiftKey?a=1:(e.preventDefault(),r=-1);break;case 40:e.shiftKey?a=-1:(r=1,e.preventDefault())}var s=this._map,o=s.getZoom(),d={duration:300,delayEndEvents:500,easing:easeOut,zoom:t?Math.round(o)+t*(e.shiftKey?2:1):o,bearing:s.getBearing()+n*bearingStep,pitch:s.getPitch()+a*pitchStep,offset:[-i*panStep,-r*panStep],center:s.getCenter()};s.easeTo(d,{originalEvent:e})}},module.exports=KeyboardHandler; +},{}],184:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),browser=require("../../util/browser"),window=require("../../util/window"),ua=window.navigator.userAgent.toLowerCase(),firefox=ua.indexOf("firefox")!==-1,safari=ua.indexOf("safari")!==-1&&ua.indexOf("chrom")===-1,ScrollZoomHandler=function(e){this._map=e,this._el=e.getCanvasContainer(),util.bindAll(["_onWheel","_onTimeout"],this)};ScrollZoomHandler.prototype.isEnabled=function(){return!!this._enabled},ScrollZoomHandler.prototype.enable=function(e){this.isEnabled()||(this._el.addEventListener("wheel",this._onWheel,!1),this._el.addEventListener("mousewheel",this._onWheel,!1),this._enabled=!0,this._aroundCenter=e&&"center"===e.around)},ScrollZoomHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("wheel",this._onWheel),this._el.removeEventListener("mousewheel",this._onWheel),this._enabled=!1)},ScrollZoomHandler.prototype._onWheel=function(e){var t;"wheel"===e.type?(t=e.deltaY,firefox&&e.deltaMode===window.WheelEvent.DOM_DELTA_PIXEL&&(t/=browser.devicePixelRatio),e.deltaMode===window.WheelEvent.DOM_DELTA_LINE&&(t*=40)):"mousewheel"===e.type&&(t=-e.wheelDeltaY,safari&&(t/=3));var o=browser.now(),i=o-(this._time||0);this._pos=DOM.mousePos(this._el,e),this._time=o,0!==t&&t%4.000244140625===0?this._type="wheel":0!==t&&Math.abs(t)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=t,this._timeout=setTimeout(this._onTimeout,40)):this._type||(this._type=Math.abs(i*t)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,t+=this._lastValue)),e.shiftKey&&t&&(t/=4),this._type&&this._zoom(-t,e),e.preventDefault()},ScrollZoomHandler.prototype._onTimeout=function(){this._type="wheel",this._zoom(-this._lastValue)},ScrollZoomHandler.prototype._zoom=function(e,t){if(0!==e){var o=this._map,i=2/(1+Math.exp(-Math.abs(e/100)));e<0&&0!==i&&(i=1/i);var l=o.ease?o.ease.to:o.transform.scale,s=o.transform.scaleZoom(l*i);o.zoomTo(s,{duration:"wheel"===this._type?200:0,around:this._aroundCenter?o.getCenter():o.unproject(this._pos),delayEndEvents:200,smoothEasing:!0},{originalEvent:t})}},module.exports=ScrollZoomHandler; +},{"../../util/browser":192,"../../util/dom":199,"../../util/util":212,"../../util/window":194}],185:[function(require,module,exports){ +"use strict";var DOM=require("../../util/dom"),util=require("../../util/util"),window=require("../../util/window"),inertiaLinearity=.15,inertiaEasing=util.bezier(0,0,inertiaLinearity,1),inertiaDeceleration=12,inertiaMaxSpeed=2.5,significantScaleThreshold=.15,significantRotateThreshold=4,TouchZoomRotateHandler=function(t){this._map=t,this._el=t.getCanvasContainer(),util.bindAll(["_onStart","_onMove","_onEnd"],this)};TouchZoomRotateHandler.prototype.isEnabled=function(){return!!this._enabled},TouchZoomRotateHandler.prototype.enable=function(t){this.isEnabled()||(this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},TouchZoomRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.removeEventListener("touchstart",this._onStart),this._enabled=!1)},TouchZoomRotateHandler.prototype.disableRotation=function(){this._rotationDisabled=!0},TouchZoomRotateHandler.prototype.enableRotation=function(){this._rotationDisabled=!1},TouchZoomRotateHandler.prototype._onStart=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]);this._startVec=e.sub(o),this._startScale=this._map.transform.scale,this._startBearing=this._map.transform.bearing,this._gestureIntent=void 0,this._inertia=[],window.document.addEventListener("touchmove",this._onMove,!1),window.document.addEventListener("touchend",this._onEnd,!1)}},TouchZoomRotateHandler.prototype._onMove=function(t){if(2===t.touches.length){var e=DOM.mousePos(this._el,t.touches[0]),o=DOM.mousePos(this._el,t.touches[1]),i=e.add(o).div(2),n=e.sub(o),a=n.mag()/this._startVec.mag(),r=this._rotationDisabled?0:180*n.angleWith(this._startVec)/Math.PI,s=this._map;if(this._gestureIntent){var h={duration:0,around:s.unproject(i)};"rotate"===this._gestureIntent&&(h.bearing=this._startBearing+r),"zoom"!==this._gestureIntent&&"rotate"!==this._gestureIntent||(h.zoom=s.transform.scaleZoom(this._startScale*a)),s.stop(),this._drainInertiaBuffer(),this._inertia.push([Date.now(),a,i]),s.easeTo(h,{originalEvent:t})}else{var u=Math.abs(1-a)>significantScaleThreshold,d=Math.abs(r)>significantRotateThreshold;d?this._gestureIntent="rotate":u&&(this._gestureIntent="zoom"),this._gestureIntent&&(this._startVec=n,this._startScale=s.transform.scale,this._startBearing=s.transform.bearing)}t.preventDefault()}},TouchZoomRotateHandler.prototype._onEnd=function(t){window.document.removeEventListener("touchmove",this._onMove),window.document.removeEventListener("touchend",this._onEnd),this._drainInertiaBuffer();var e=this._inertia,o=this._map;if(e.length<2)return void o.snapToNorth({},{originalEvent:t});var i=e[e.length-1],n=e[0],a=o.transform.scaleZoom(this._startScale*i[1]),r=o.transform.scaleZoom(this._startScale*n[1]),s=a-r,h=(i[0]-n[0])/1e3,u=i[2];if(0===h||a===r)return void o.snapToNorth({},{originalEvent:t});var d=s*inertiaLinearity/h;Math.abs(d)>inertiaMaxSpeed&&(d=d>0?inertiaMaxSpeed:-inertiaMaxSpeed);var l=1e3*Math.abs(d/(inertiaDeceleration*inertiaLinearity)),c=a+d*l/2e3;c<0&&(c=0),o.easeTo({zoom:c,duration:l,easing:inertiaEasing,around:this._aroundCenter?o.getCenter():o.unproject(u)},{originalEvent:t})},TouchZoomRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now(),o=160;t.length>2&&e-t[0][0]>o;)t.shift()},module.exports=TouchZoomRotateHandler; +},{"../../util/dom":199,"../../util/util":212,"../../util/window":194}],186:[function(require,module,exports){ +"use strict";var util=require("../util/util"),window=require("../util/window"),Hash=function(){util.bindAll(["_onHashChange","_updateHash"],this)};Hash.prototype.addTo=function(t){return this._map=t,window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Hash.prototype.remove=function(){return window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),delete this._map,this},Hash.prototype._onHashChange=function(){var t=window.location.hash.replace("#","").split("/");return t.length>=3&&(this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:+(t[3]||0),pitch:+(t[4]||0)}),!0)},Hash.prototype._updateHash=function(){var t=this._map.getCenter(),e=this._map.getZoom(),a=this._map.getBearing(),h=this._map.getPitch(),i=Math.max(0,Math.ceil(Math.log(e)/Math.LN2)),n="#"+Math.round(100*e)/100+"/"+t.lat.toFixed(i)+"/"+t.lng.toFixed(i);(a||h)&&(n+="/"+Math.round(10*a)/10),h&&(n+="/"+Math.round(h)),window.history.replaceState("","",n)},module.exports=Hash; +},{"../util/util":212,"../util/window":194}],187:[function(require,module,exports){ +"use strict";function removeNode(t){t.parentNode&&t.parentNode.removeChild(t)}var util=require("../util/util"),browser=require("../util/browser"),window=require("../util/window"),DOM=require("../util/dom"),Style=require("../style/style"),AnimationLoop=require("../style/animation_loop"),Painter=require("../render/painter"),Transform=require("../geo/transform"),Hash=require("./hash"),bindHandlers=require("./bind_handlers"),Camera=require("./camera"),LngLat=require("../geo/lng_lat"),LngLatBounds=require("../geo/lng_lat_bounds"),Point=require("point-geometry"),AttributionControl=require("./control/attribution_control"),LogoControl=require("./control/logo_control"),isSupported=require("mapbox-gl-supported"),defaultMinZoom=0,defaultMaxZoom=22,defaultOptions={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:defaultMinZoom,maxZoom:defaultMaxZoom,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,bearingSnap:7,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0},Map=function(t){function e(e){var o=this;if(e=util.extend({},defaultOptions,e),null!=e.minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than minZoom");var i=new Transform(e.minZoom,e.maxZoom,e.renderWorldCopies);if(t.call(this,i,e),this._interactive=e.interactive,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,"string"==typeof e.container){if(this._container=window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else this._container=e.container;this.animationLoop=new AnimationLoop,e.maxBounds&&this.setMaxBounds(e.maxBounds),util.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored","_update","_render","_onData","_onDataLoading"],this),this._setupContainer(),this._setupPainter(),this.on("move",this._update.bind(this,!1)),this.on("zoom",this._update.bind(this,!0)),this.on("moveend",function(){o.animationLoop.set(300),o._rerender()}),"undefined"!=typeof window&&(window.addEventListener("online",this._onWindowOnline,!1),window.addEventListener("resize",this._onWindowResize,!1)),bindHandlers(this,e),this._hash=e.hash&&(new Hash).addTo(this),this._hash&&this._hash._onHashChange()||this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),this._classes=[],this.resize(),e.classes&&this.setClasses(e.classes),e.style&&this.setStyle(e.style),e.attributionControl&&this.addControl(new AttributionControl),this.addControl(new LogoControl,e.logoPosition),this.on("style.load",function(){this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this.style.update(this._classes,{transition:!1})}),this.on("data",this._onData),this.on("dataloading",this._onDataLoading)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var o={showTileBoundaries:{},showCollisionBoxes:{},showOverdrawInspector:{},repaint:{},vertices:{}};return e.prototype.addControl=function(t,e){void 0===e&&t.getDefaultPosition&&(e=t.getDefaultPosition()),void 0===e&&(e="top-right");var o=t.onAdd(this),i=this._controlPositions[e];return e.indexOf("bottom")!==-1?i.insertBefore(o,i.firstChild):i.appendChild(o),this},e.prototype.removeControl=function(t){return t.onRemove(this),this},e.prototype.addClass=function(t,e){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes.indexOf(t)>=0||""===t?this:(this._classes.push(t),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.removeClass=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");var o=this._classes.indexOf(t);return o<0||""===t?this:(this._classes.splice(o,1),this._classOptions=e,this.style&&this.style.updateClasses(),this._update(!0))},e.prototype.setClasses=function(t,e){util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.");for(var o={},i=0;i=0},e.prototype.getClasses=function(){return util.warnOnce("Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS."),this._classes},e.prototype.resize=function(){var t=this._containerDimensions(),e=t[0],o=t[1];return this._resizeCanvas(e,o),this.transform.resize(e,o),this.painter.resize(e,o),this.fire("movestart").fire("move").fire("resize").fire("moveend")},e.prototype.getBounds=function(){var t=new LngLatBounds(this.transform.pointLocation(new Point(0,this.transform.height)),this.transform.pointLocation(new Point(this.transform.width,0)));return(this.transform.angle||this.transform.pitch)&&(t.extend(this.transform.pointLocation(new Point(this.transform.size.x,0))),t.extend(this.transform.pointLocation(new Point(0,this.transform.size.y)))),t},e.prototype.setMaxBounds=function(t){if(t){var e=LngLatBounds.convert(t);this.transform.lngRange=[e.getWest(),e.getEast()],this.transform.latRange=[e.getSouth(),e.getNorth()],this.transform._constrain(),this._update()}else null!==t&&void 0!==t||(this.transform.lngRange=[],this.transform.latRange=[],this._update());return this},e.prototype.setMinZoom=function(t){if(t=null===t||void 0===t?defaultMinZoom:t,t>=defaultMinZoom&&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")},e.prototype.getMaxZoom=function(){return this.transform.maxZoom},e.prototype.project=function(t){return this.transform.locationPoint(LngLat.convert(t))},e.prototype.unproject=function(t){return this.transform.pointLocation(Point.convert(t))},e.prototype.queryRenderedFeatures=function(){function t(t){return t instanceof Point||Array.isArray(t)}var e,o={};return 2===arguments.length?(e=arguments[0],o=arguments[1]):1===arguments.length&&t(arguments[0])?e=arguments[0]:1===arguments.length&&(o=arguments[0]),this.style.queryRenderedFeatures(this._makeQueryGeometry(e),o,this.transform.zoom,this.transform.angle)},e.prototype._makeQueryGeometry=function(t){var e=this;void 0===t&&(t=[Point.convert([0,0]),Point.convert([this.transform.width,this.transform.height])]);var o,i=t instanceof Point||"number"==typeof t[0];if(i){var r=Point.convert(t);o=[r]}else{var s=[Point.convert(t[0]),Point.convert(t[1])];o=[s[0],new Point(s[1].x,s[0].y),s[1],new Point(s[0].x,s[1].y),s[0]]}return o=o.map(function(t){return e.transform.pointCoordinate(t)})},e.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},e.prototype.setStyle=function(t,e){var o=(!e||e.diff!==!1)&&this.style&&t&&!(t instanceof Style)&&"string"!=typeof t;if(o)try{return this.style.setState(t)&&this._update(!0),this}catch(t){util.warnOnce("Unable to perform style diff: "+(t.message||t.error||t)+". Rebuilding the style from scratch.")}return this.style&&(this.style.setEventedParent(null),this.style._remove(),this.off("rotate",this.style._redoPlacement),this.off("pitch",this.style._redoPlacement)),t?(t instanceof Style?this.style=t:this.style=new Style(t,this),this.style.setEventedParent(this,{style:this.style}),this.on("rotate",this.style._redoPlacement),this.on("pitch",this.style._redoPlacement),this):(this.style=null,this)},e.prototype.getStyle=function(){if(this.style)return this.style.serialize()},e.prototype.addSource=function(t,e){return this.style.addSource(t,e),this._update(!0),this},e.prototype.isSourceLoaded=function(t){var e=this.style&&this.style.sourceCaches[t];return void 0===e?void this.fire("error",{error:new Error("There is no source with ID '"+t+"'")}):e.loaded()},e.prototype.addSourceType=function(t,e,o){return this.style.addSourceType(t,e,o)},e.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0),this},e.prototype.getSource=function(t){return this.style.getSource(t)},e.prototype.addImage=function(t,e,o){this.style.spriteAtlas.addImage(t,e,o)},e.prototype.removeImage=function(t){this.style.spriteAtlas.removeImage(t)},e.prototype.addLayer=function(t,e){return this.style.addLayer(t,e),this._update(!0),this},e.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0),this},e.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0),this},e.prototype.getLayer=function(t){return this.style.getLayer(t)},e.prototype.setFilter=function(t,e){return this.style.setFilter(t,e),this._update(!0),this},e.prototype.setLayerZoomRange=function(t,e,o){return this.style.setLayerZoomRange(t,e,o),this._update(!0),this},e.prototype.getFilter=function(t){return this.style.getFilter(t)},e.prototype.setPaintProperty=function(t,e,o,i){return this.style.setPaintProperty(t,e,o,i),this._update(!0),this},e.prototype.getPaintProperty=function(t,e,o){return this.style.getPaintProperty(t,e,o)},e.prototype.setLayoutProperty=function(t,e,o){return this.style.setLayoutProperty(t,e,o),this._update(!0),this},e.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},e.prototype.setLight=function(t){return this.style.setLight(t),this._update(!0),this},e.prototype.getLight=function(){return this.style.getLight()},e.prototype.getContainer=function(){return this._container},e.prototype.getCanvasContainer=function(){return this._canvasContainer},e.prototype.getCanvas=function(){return this._canvas},e.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.offsetWidth||400,e=this._container.offsetHeight||300),[t,e]},e.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map");var e=this._canvasContainer=DOM.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=DOM.create("canvas","mapboxgl-canvas",e),this._canvas.style.position="absolute",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");var o=this._containerDimensions();this._resizeCanvas(o[0],o[1]);var i=this._controlContainer=DOM.create("div","mapboxgl-control-container",t),r=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(function(t){r[t]=DOM.create("div","mapboxgl-ctrl-"+t,i)})},e.prototype._resizeCanvas=function(t,e){var o=window.devicePixelRatio||1;this._canvas.width=o*t,this._canvas.height=o*e,this._canvas.style.width=t+"px",this._canvas.style.height=e+"px"},e.prototype._setupPainter=function(){var t=util.extend({failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer},isSupported.webGLContextAttributes),e=this._canvas.getContext("webgl",t)||this._canvas.getContext("experimental-webgl",t);return e?void(this.painter=new Painter(e,this.transform)):void this.fire("error",{error:new Error("Failed to initialize WebGL")})},e.prototype._contextLost=function(t){t.preventDefault(),this._frameId&&browser.cancelFrame(this._frameId),this.fire("webglcontextlost",{originalEvent:t})},e.prototype._contextRestored=function(t){this._setupPainter(),this.resize(),this._update(),this.fire("webglcontextrestored",{originalEvent:t})},e.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!(!this.style||!this.style.loaded())},e.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this._rerender(),this):this},e.prototype._render=function(){return this.style&&this._styleDirty&&(this._styleDirty=!1,this.style.update(this._classes,this._classOptions),this._classOptions=null,this.style._recalculate(this.transform.zoom)),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.rotating,zooming:this.zooming}),this.fire("render"),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire("load")),this._frameId=null,this.animationLoop.stopped()||(this._styleDirty=!0),(this._sourcesDirty||this._repaint||this._styleDirty)&&this._rerender(),this},e.prototype.remove=function(){this._hash&&this._hash.remove(),browser.cancelFrame(this._frameId),this.setStyle(null),"undefined"!=typeof window&&(window.removeEventListener("resize",this._onWindowResize,!1),window.removeEventListener("online",this._onWindowOnline,!1));var t=this.painter.gl.getExtension("WEBGL_lose_context");t&&t.loseContext(),removeNode(this._canvasContainer),removeNode(this._controlContainer),this._container.classList.remove("mapboxgl-map"),this.fire("remove")},e.prototype._rerender=function(){this.style&&!this._frameId&&(this._frameId=browser.frame(this._render))},e.prototype._onWindowOnline=function(){this._update()},e.prototype._onWindowResize=function(){this._trackResize&&this.stop().resize()._update()},o.showTileBoundaries.get=function(){return!!this._showTileBoundaries},o.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update())},o.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},o.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,this.style._redoPlacement())},o.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},o.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update())},o.repaint.get=function(){return!!this._repaint},o.repaint.set=function(t){this._repaint=t,this._update()},o.vertices.get=function(){return!!this._vertices},o.vertices.set=function(t){this._vertices=t,this._update()},e.prototype._onData=function(t){this._update("style"===t.dataType),this.fire(t.dataType+"data",t)},e.prototype._onDataLoading=function(t){this.fire(t.dataType+"dataloading",t)},Object.defineProperties(e.prototype,o),e}(Camera);module.exports=Map; +},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../geo/transform":64,"../render/painter":77,"../style/animation_loop":143,"../style/style":146,"../util/browser":192,"../util/dom":199,"../util/util":212,"../util/window":194,"./bind_handlers":171,"./camera":172,"./control/attribution_control":173,"./control/logo_control":176,"./hash":186,"mapbox-gl-supported":22,"point-geometry":26}],188:[function(require,module,exports){ +"use strict";var DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),Marker=function(t,e){this._offset=Point.convert(e&&e.offset||[0,0]),this._update=this._update.bind(this),this._onMapClick=this._onMapClick.bind(this),t||(t=DOM.create("div")),t.classList.add("mapboxgl-marker"),this._element=t,this._popup=null};Marker.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this._update(),this._map.on("click",this._onMapClick),this},Marker.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map=null),DOM.remove(this._element),this._popup&&this._popup.remove(),this},Marker.prototype.getLngLat=function(){return this._lngLat},Marker.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},Marker.prototype.getElement=function(){return this._element},Marker.prototype.setPopup=function(t){return this._popup&&(this._popup.remove(),this._popup=null),t&&(this._popup=t,this._popup.setLngLat(this._lngLat)),this},Marker.prototype._onMapClick=function(t){var e=t.originalEvent.target,p=this._element;this._popup&&(e===p||p.contains(e))&&this.togglePopup()},Marker.prototype.getPopup=function(){return this._popup},Marker.prototype.togglePopup=function(){var t=this._popup;t&&(t.isOpen()?t.remove():t.addTo(this._map))},Marker.prototype._update=function(t){if(this._map){var e=this._map.project(this._lngLat)._add(this._offset);t&&"moveend"!==t.type||(e=e.round()),DOM.setTransform(this._element,"translate("+e.x+"px, "+e.y+"px)")}},module.exports=Marker; +},{"../geo/lng_lat":62,"../util/dom":199,"point-geometry":26}],189:[function(require,module,exports){ +"use strict";function normalizeOffset(t){if(t){if("number"==typeof t){var o=Math.round(Math.sqrt(.5*Math.pow(t,2)));return{top:new Point(0,t),"top-left":new Point(o,o),"top-right":new Point(-o,o),bottom:new Point(0,-t),"bottom-left":new Point(o,-o),"bottom-right":new Point(-o,-o),left:new Point(t,0),right:new Point(-t,0)}}if(isPointLike(t)){var e=Point.convert(t);return{top:e,"top-left":e,"top-right":e,bottom:e,"bottom-left":e,"bottom-right":e,left:e,right:e}}return{top:Point.convert(t.top||[0,0]),"top-left":Point.convert(t["top-left"]||[0,0]),"top-right":Point.convert(t["top-right"]||[0,0]),bottom:Point.convert(t.bottom||[0,0]),"bottom-left":Point.convert(t["bottom-left"]||[0,0]),"bottom-right":Point.convert(t["bottom-right"]||[0,0]),left:Point.convert(t.left||[0,0]),right:Point.convert(t.right||[0,0])}}return normalizeOffset(new Point(0,0))}function isPointLike(t){return t instanceof Point||Array.isArray(t)}var util=require("../util/util"),Evented=require("../util/evented"),DOM=require("../util/dom"),LngLat=require("../geo/lng_lat"),Point=require("point-geometry"),window=require("../util/window"),defaultOptions={closeButton:!0,closeOnClick:!0},Popup=function(t){function o(o){t.call(this),this.options=util.extend(Object.create(defaultOptions),o),util.bindAll(["_update","_onClickClose"],this)}return t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o,o.prototype.addTo=function(t){return this._map=t,this._map.on("move",this._update),this.options.closeOnClick&&this._map.on("click",this._onClickClose),this._update(),this},o.prototype.isOpen=function(){return!!this._map},o.prototype.remove=function(){return this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._container&&(this._container.parentNode.removeChild(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("click",this._onClickClose),delete this._map),this.fire("close"),this},o.prototype.getLngLat=function(){return this._lngLat},o.prototype.setLngLat=function(t){return this._lngLat=LngLat.convert(t),this._update(),this},o.prototype.setText=function(t){return this.setDOMContent(window.document.createTextNode(t))},o.prototype.setHTML=function(t){var o,e=window.document.createDocumentFragment(),n=window.document.createElement("body");for(n.innerHTML=t;;){if(o=n.firstChild,!o)break;e.appendChild(o)}return this.setDOMContent(e)},o.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},o.prototype._createContent=function(){this._content&&this._content.parentNode&&this._content.parentNode.removeChild(this._content),this._content=DOM.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=DOM.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClickClose))},o.prototype._update=function(){if(this._map&&this._lngLat&&this._content){this._container||(this._container=DOM.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=DOM.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content));var t=this.options.anchor,o=normalizeOffset(this.options.offset),e=this._map.project(this._lngLat).round();if(!t){var n=this._container.offsetWidth,i=this._container.offsetHeight;t=e.y+o.bottom.ythis._map.transform.height-i?["bottom"]:[],e.xthis._map.transform.width-n/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var r=e.add(o[t]),s={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%)"},p=this._container.classList;for(var a in s)p.remove("mapboxgl-popup-anchor-"+a);p.add("mapboxgl-popup-anchor-"+t),DOM.setTransform(this._container,s[t]+" translate("+r.x+"px,"+r.y+"px)")}},o.prototype._onClickClose=function(){this.remove()},o}(Evented);module.exports=Popup; +},{"../geo/lng_lat":62,"../util/dom":199,"../util/evented":200,"../util/util":212,"../util/window":194,"point-geometry":26}],190:[function(require,module,exports){ +"use strict";var Actor=function(t,e,a){this.target=t,this.parent=e,this.mapId=a,this.callbacks={},this.callbackID=0,this.receive=this.receive.bind(this),this.target.addEventListener("message",this.receive,!1)};Actor.prototype.send=function(t,e,a,r,s){var i=a?this.mapId+":"+this.callbackID++:null;a&&(this.callbacks[i]=a),this.target.postMessage({targetMapId:s,sourceMapId:this.mapId,type:t,id:String(i),data:e},r)},Actor.prototype.receive=function(t){var e,a=this,r=t.data,s=r.id;if(!r.targetMapId||this.mapId===r.targetMapId){var i=function(t,e,r){a.target.postMessage({sourceMapId:a.mapId,type:"",id:String(s),error:t?String(t):null,data:e},r)};if(""===r.type)e=this.callbacks[r.id],delete this.callbacks[r.id],e&&e(r.error||null,r.data);else if("undefined"!=typeof r.id&&this.parent[r.type])this.parent[r.type](r.sourceMapId,r.data,i);else if("undefined"!=typeof r.id&&this.parent.getWorkerSource){var p=r.type.split("."),d=this.parent.getWorkerSource(r.sourceMapId,p[0]);d[p[1]](r.data,i)}else this.parent[r.type](r.data)}},Actor.prototype.remove=function(){this.target.removeEventListener("message",this.receive,!1)},module.exports=Actor; +},{}],191:[function(require,module,exports){ +"use strict";function sameOrigin(e){var t=window.document.createElement("a");return t.href=e,t.protocol===window.document.location.protocol&&t.host===window.document.location.host}var window=require("./window");exports.getJSON=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.setRequestHeader("Accept","application/json"),n.onerror=function(e){t(e)},n.onload=function(){if(n.status>=200&&n.status<300&&n.response){var e;try{e=JSON.parse(n.response)}catch(e){return t(e)}t(null,e)}else t(new Error(n.statusText))},n.send(),n},exports.getArrayBuffer=function(e,t){var n=new window.XMLHttpRequest;return n.open("GET",e,!0),n.responseType="arraybuffer",n.onerror=function(e){t(e)},n.onload=function(){return 0===n.response.byteLength&&200===n.status?t(new Error("http status 200 returned without content.")):void(n.status>=200&&n.status<300&&n.response?t(null,{data:n.response,cacheControl:n.getResponseHeader("Cache-Control"),expires:n.getResponseHeader("Expires")}):t(new Error(n.statusText)))},n.send(),n};var transparentPngUrl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";exports.getImage=function(e,t){return exports.getArrayBuffer(e,function(e,n){if(e)return t(e);var r=new window.Image,o=window.URL||window.webkitURL;r.onload=function(){t(null,r),o.revokeObjectURL(r.src)};var a=new window.Blob([new Uint8Array(n.data)],{type:"image/png"});r.cacheControl=n.cacheControl,r.expires=n.expires,r.src=n.data.byteLength?o.createObjectURL(a):transparentPngUrl})},exports.getVideo=function(e,t){var n=window.document.createElement("video");n.onloadstart=function(){t(null,n)};for(var r=0;r=a+n?e.call(t,1):(e.call(t,(i-a)/n),exports.frame(o)))}if(!n)return e.call(t,1),null;var r=!1,a=module.exports.now();return exports.frame(o),function(){r=!0}},exports.getImageData=function(e){var n=window.document.createElement("canvas"),t=n.getContext("2d");return n.width=e.width,n.height=e.height,t.drawImage(e,0,0),t.getImageData(0,0,e.width,e.height).data},exports.supported=require("mapbox-gl-supported"),exports.hardwareConcurrency=window.navigator.hardwareConcurrency||4,Object.defineProperty(exports,"devicePixelRatio",{get:function(){return window.devicePixelRatio}}),exports.supportsWebp=!1;var webpImgTest=window.document.createElement("img");webpImgTest.onload=function(){exports.supportsWebp=!0},webpImgTest.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="; +},{"./window":194,"mapbox-gl-supported":22}],193:[function(require,module,exports){ +"use strict";var WebWorkify=require("webworkify"),window=require("../window"),workerURL=window.URL.createObjectURL(new WebWorkify(require("../../source/worker"),{bare:!0}));module.exports=function(){return new window.Worker(workerURL)}; +},{"../../source/worker":98,"../window":194,"webworkify":41}],194:[function(require,module,exports){ +"use strict";module.exports=self; +},{}],195:[function(require,module,exports){ +"use strict";function compareAreas(e,r){return r.area-e.area}var quickselect=require("quickselect"),calculateSignedArea=require("./util").calculateSignedArea;module.exports=function(e,r){var a=e.length;if(a<=1)return[e];for(var t,u,c=[],i=0;i1)for(var n=0;n0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)},Evented.prototype.setEventedParent=function(e,t){return this._eventedParent=e,this._eventedParentData=t,this},module.exports=Evented; +},{"./util":212}],201:[function(require,module,exports){ +"use strict";function compareMax(e,t){return t.max-e.max}function Cell(e,t,n,r){this.p=new Point(e,t),this.h=n,this.d=pointToPolygonDist(this.p,r),this.max=this.d+this.h*Math.SQRT2}function pointToPolygonDist(e,t){for(var n=!1,r=1/0,o=0;oe.y!=h.y>e.y&&e.x<(h.x-a.x)*(e.y-a.y)/(h.y-a.y)+a.x&&(n=!n),r=Math.min(r,distToSegmentSquared(e,a,h))}return(n?1:-1)*Math.sqrt(r)}function getCentroidCell(e){for(var t=0,n=0,r=0,o=e[0],i=0,l=o.length,u=l-1;ii)&&(i=a.x),(!s||a.y>l)&&(l=a.y)}var h=i-r,p=l-o,y=Math.min(h,p),x=y/2,d=new Queue(null,compareMax);if(0===y)return[r,o];for(var g=r;gm.d||!m.d)&&(m=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,c)),v.max-m.d<=t||(x=v.h/2,d.push(new Cell(v.p.x-x,v.p.y-x,x,e)),d.push(new Cell(v.p.x+x,v.p.y-x,x,e)),d.push(new Cell(v.p.x-x,v.p.y+x,x,e)),d.push(new Cell(v.p.x+x,v.p.y+x,x,e)),c+=4)}return n&&(console.log("num probes: "+c),console.log("best distance: "+m.d)),m.p}; +},{"./intersection_tests":205,"point-geometry":26,"tinyqueue":30}],202:[function(require,module,exports){ +"use strict";var WorkerPool=require("./worker_pool"),globalWorkerPool;module.exports=function(){return globalWorkerPool||(globalWorkerPool=new WorkerPool),globalWorkerPool}; +},{"./worker_pool":215}],203:[function(require,module,exports){ +"use strict";function Glyphs(a,e){this.stacks=a.readFields(readFontstacks,[],e)}function readFontstacks(a,e,r){if(1===a){var t=r.readMessage(readFontstack,{glyphs:{}});e.push(t)}}function readFontstack(a,e,r){if(1===a)e.name=r.readString();else if(2===a)e.range=r.readString();else if(3===a){var t=r.readMessage(readGlyph,{});e.glyphs[t.id]=t}}function readGlyph(a,e,r){1===a?e.id=r.readVarint():2===a?e.bitmap=r.readBytes():3===a?e.width=r.readVarint():4===a?e.height=r.readVarint():5===a?e.left=r.readSVarint():6===a?e.top=r.readSVarint():7===a&&(e.advance=r.readVarint())}module.exports=Glyphs; +},{}],204:[function(require,module,exports){ +"use strict";function interpolate(t,e,n){return t*(1-n)+e*n}module.exports=interpolate,interpolate.number=interpolate,interpolate.vec2=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n)]},interpolate.color=function(t,e,n){return[interpolate(t[0],e[0],n),interpolate(t[1],e[1],n),interpolate(t[2],e[2],n),interpolate(t[3],e[3],n)]},interpolate.array=function(t,e,n){return t.map(function(t,r){return interpolate(t,e[r],n)})}; +},{}],205:[function(require,module,exports){ +"use strict";function polygonIntersectsPolygon(n,t){for(var e=0;e=3)for(var u=0;u1){if(lineIntersectsLine(n,t))return!0;for(var r=0;r1?n.distSqr(e):n.distSqr(e.sub(t)._mult(o)._add(t))}function multiPolygonContainsPoint(n,t){for(var e,r,o,i=!1,l=0;lt.y!=o.y>t.y&&t.x<(o.x-r.x)*(t.y-r.y)/(o.y-r.y)+r.x&&(i=!i)}return i}function polygonContainsPoint(n,t){for(var e=!1,r=0,o=n.length-1;rt.y!=l.y>t.y&&t.x<(l.x-i.x)*(t.y-i.y)/(l.y-i.y)+i.x&&(e=!e)}return e}var isCounterClockwise=require("./util").isCounterClockwise;module.exports={multiPolygonIntersectsBufferedMultiPoint:multiPolygonIntersectsBufferedMultiPoint,multiPolygonIntersectsMultiPolygon:multiPolygonIntersectsMultiPolygon,multiPolygonIntersectsBufferedMultiLine:multiPolygonIntersectsBufferedMultiLine,polygonIntersectsPolygon:polygonIntersectsPolygon,distToSegmentSquared:distToSegmentSquared}; +},{"./util":212}],206:[function(require,module,exports){ +"use strict";var unicodeBlockLookup={"Latin-1 Supplement":function(n){return n>=128&&n<=255},"Hangul Jamo":function(n){return n>=4352&&n<=4607},"Unified Canadian Aboriginal Syllabics":function(n){return n>=5120&&n<=5759},"Unified Canadian Aboriginal Syllabics Extended":function(n){return n>=6320&&n<=6399},"General Punctuation":function(n){return n>=8192&&n<=8303},"Letterlike Symbols":function(n){return n>=8448&&n<=8527},"Number Forms":function(n){return n>=8528&&n<=8591},"Miscellaneous Technical":function(n){return n>=8960&&n<=9215},"Control Pictures":function(n){return n>=9216&&n<=9279},"Optical Character Recognition":function(n){return n>=9280&&n<=9311},"Enclosed Alphanumerics":function(n){return n>=9312&&n<=9471},"Geometric Shapes":function(n){return n>=9632&&n<=9727},"Miscellaneous Symbols":function(n){return n>=9728&&n<=9983},"Miscellaneous Symbols and Arrows":function(n){return n>=11008&&n<=11263},"CJK Radicals Supplement":function(n){return n>=11904&&n<=12031},"Kangxi Radicals":function(n){return n>=12032&&n<=12255},"Ideographic Description Characters":function(n){return n>=12272&&n<=12287},"CJK Symbols and Punctuation":function(n){return n>=12288&&n<=12351},Hiragana:function(n){return n>=12352&&n<=12447},Katakana:function(n){return n>=12448&&n<=12543},Bopomofo:function(n){return n>=12544&&n<=12591},"Hangul Compatibility Jamo":function(n){return n>=12592&&n<=12687},Kanbun:function(n){return n>=12688&&n<=12703},"Bopomofo Extended":function(n){return n>=12704&&n<=12735},"CJK Strokes":function(n){return n>=12736&&n<=12783},"Katakana Phonetic Extensions":function(n){return n>=12784&&n<=12799},"Enclosed CJK Letters and Months":function(n){return n>=12800&&n<=13055},"CJK Compatibility":function(n){return n>=13056&&n<=13311},"CJK Unified Ideographs Extension A":function(n){return n>=13312&&n<=19903},"Yijing Hexagram Symbols":function(n){return n>=19904&&n<=19967},"CJK Unified Ideographs":function(n){return n>=19968&&n<=40959},"Yi Syllables":function(n){return n>=40960&&n<=42127},"Yi Radicals":function(n){return n>=42128&&n<=42191},"Hangul Jamo Extended-A":function(n){return n>=43360&&n<=43391},"Hangul Syllables":function(n){return n>=44032&&n<=55215},"Hangul Jamo Extended-B":function(n){return n>=55216&&n<=55295},"Private Use Area":function(n){return n>=57344&&n<=63743},"CJK Compatibility Ideographs":function(n){return n>=63744&&n<=64255},"Vertical Forms":function(n){return n>=65040&&n<=65055},"CJK Compatibility Forms":function(n){return n>=65072&&n<=65103},"Small Form Variants":function(n){return n>=65104&&n<=65135},"Halfwidth and Fullwidth Forms":function(n){return n>=65280&&n<=65519}};module.exports=unicodeBlockLookup; +},{}],207:[function(require,module,exports){ +"use strict";var LRUCache=function(t,e){this.max=t,this.onRemove=e,this.reset()};LRUCache.prototype.reset=function(){var t=this;for(var e in t.data)t.onRemove(t.data[e]);return this.data={},this.order=[],this},LRUCache.prototype.add=function(t,e){if(this.has(t))this.order.splice(this.order.indexOf(t),1),this.data[t]=e,this.order.push(t);else if(this.data[t]=e,this.order.push(t),this.order.length>this.max){var r=this.get(this.order[0]);r&&this.onRemove(r)}return this},LRUCache.prototype.has=function(t){return t in this.data},LRUCache.prototype.keys=function(){return this.order},LRUCache.prototype.get=function(t){if(!this.has(t))return null;var e=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),e},LRUCache.prototype.getWithoutRemoving=function(t){if(!this.has(t))return null;var e=this.data[t];return e},LRUCache.prototype.remove=function(t){if(!this.has(t))return this;var e=this.data[t];return delete this.data[t],this.onRemove(e),this.order.splice(this.order.indexOf(t),1),this},LRUCache.prototype.setMaxSize=function(t){var e=this;for(this.max=t;this.order.length>this.max;){var r=e.get(e.order[0]);r&&e.onRemove(r)}return this},module.exports=LRUCache; +},{}],208:[function(require,module,exports){ +"use strict";function makeAPIURL(r,e){var t=parseUrl(config.API_URL);if(r.protocol=t.protocol,r.authority=t.authority,!config.REQUIRE_ACCESS_TOKEN)return formatUrl(r);if(e=e||config.ACCESS_TOKEN,!e)throw new Error("An API access token is required to use Mapbox GL. "+help);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+help);return r.params.push("access_token="+e),formatUrl(r)}function isMapboxURL(r){return 0===r.indexOf("mapbox:")}function replaceTempAccessToken(r){for(var e=0;e=2||512===t?"@2x":"",s=browser.supportsWebp?".webp":"$1";return o.path=o.path.replace(imageExtensionRe,""+a+s),replaceTempAccessToken(o.params),formatUrl(o)};var urlRe=/^(\w+):\/\/([^\/?]+)(\/[^?]+)?\??(.+)?/; +},{"./browser":192,"./config":196}],209:[function(require,module,exports){ +"use strict";var isChar=require("./is_char_in_unicode_block");module.exports.allowsIdeographicBreaking=function(a){for(var i=0,r=a;i=65097&&a<=65103)||(!!isChar["CJK Compatibility Ideographs"](a)||(!!isChar["CJK Compatibility"](a)||(!!isChar["CJK Radicals Supplement"](a)||(!!isChar["CJK Strokes"](a)||(!(!isChar["CJK Symbols and Punctuation"](a)||a>=12296&&a<=12305||a>=12308&&a<=12319||12336===a)||(!!isChar["CJK Unified Ideographs Extension A"](a)||(!!isChar["CJK Unified Ideographs"](a)||(!!isChar["Enclosed CJK Letters and Months"](a)||(!!isChar["Hangul Compatibility Jamo"](a)||(!!isChar["Hangul Jamo Extended-A"](a)||(!!isChar["Hangul Jamo Extended-B"](a)||(!!isChar["Hangul Jamo"](a)||(!!isChar["Hangul Syllables"](a)||(!!isChar.Hiragana(a)||(!!isChar["Ideographic Description Characters"](a)||(!!isChar.Kanbun(a)||(!!isChar["Kangxi Radicals"](a)||(!!isChar["Katakana Phonetic Extensions"](a)||(!(!isChar.Katakana(a)||12540===a)||(!(!isChar["Halfwidth and Fullwidth Forms"](a)||65288===a||65289===a||65293===a||a>=65306&&a<=65310||65339===a||65341===a||65343===a||a>=65371&&a<=65503||65507===a||a>=65512&&a<=65519)||(!(!isChar["Small Form Variants"](a)||a>=65112&&a<=65118||a>=65123&&a<=65126)||(!!isChar["Unified Canadian Aboriginal Syllabics"](a)||(!!isChar["Unified Canadian Aboriginal Syllabics Extended"](a)||(!!isChar["Vertical Forms"](a)||(!!isChar["Yijing Hexagram Symbols"](a)||(!!isChar["Yi Syllables"](a)||!!isChar["Yi Radicals"](a))))))))))))))))))))))))))))))},exports.charHasNeutralVerticalOrientation=function(a){return!(!isChar["Latin-1 Supplement"](a)||167!==a&&169!==a&&174!==a&&177!==a&&188!==a&&189!==a&&190!==a&&215!==a&&247!==a)||(!(!isChar["General Punctuation"](a)||8214!==a&&8224!==a&&8225!==a&&8240!==a&&8241!==a&&8251!==a&&8252!==a&&8258!==a&&8263!==a&&8264!==a&&8265!==a&&8273!==a)||(!!isChar["Letterlike Symbols"](a)||(!!isChar["Number Forms"](a)||(!(!isChar["Miscellaneous Technical"](a)||!(a>=8960&&a<=8967||a>=8972&&a<=8991||a>=8996&&a<=9e3||9003===a||a>=9085&&a<=9114||a>=9150&&a<=9165||9167===a||a>=9169&&a<=9179||a>=9186&&a<=9215))||(!(!isChar["Control Pictures"](a)||9251===a)||(!!isChar["Optical Character Recognition"](a)||(!!isChar["Enclosed Alphanumerics"](a)||(!!isChar["Geometric Shapes"](a)||(!(!isChar["Miscellaneous Symbols"](a)||a>=9754&&a<=9759)||(!(!isChar["Miscellaneous Symbols and Arrows"](a)||!(a>=11026&&a<=11055||a>=11088&&a<=11097||a>=11192&&a<=11243))||(!!isChar["CJK Symbols and Punctuation"](a)||(!!isChar.Katakana(a)||(!!isChar["Private Use Area"](a)||(!!isChar["CJK Compatibility Forms"](a)||(!!isChar["Small Form Variants"](a)||(!!isChar["Halfwidth and Fullwidth Forms"](a)||(8734===a||8756===a||8757===a||a>=9984&&a<=10087||a>=10102&&a<=10131||65532===a||65533===a)))))))))))))))))},exports.charHasRotatedVerticalOrientation=function(a){return!(exports.charHasUprightVerticalOrientation(a)||exports.charHasNeutralVerticalOrientation(a))}; +},{"./is_char_in_unicode_block":206}],210:[function(require,module,exports){ +"use strict";function createStructArrayType(t){var e=JSON.stringify(t);if(structArrayTypeCache[e])return structArrayTypeCache[e];var r=void 0===t.alignment?1:t.alignment,i=0,n=0,a=["Uint8"],o=t.members.map(function(t){a.indexOf(t.type)<0&&a.push(t.type);var e=sizeOf(t.type),o=i=align(i,Math.max(r,e)),s=t.components||1;return n=Math.max(n,e),i+=e*s,{name:t.name,type:t.type,components:s,offset:o}}),s=align(i,Math.max(n,r)),p=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Struct);p.prototype.alignment=r,p.prototype.size=s;for(var y=0,c=o;ythis.capacity){this.capacity=Math.max(t,Math.floor(this.capacity*RESIZE_MULTIPLIER),DEFAULT_CAPACITY),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},StructArray.prototype._refreshViews=function(){for(var t=this,e=0,r=t._usedTypes;e=1)return 1;var e=r*r,t=e*r;return 4*(r<.5?t:3*(r-e)+t-.75)},exports.bezier=function(r,e,t,n){var o=new UnitBezier(r,e,t,n);return function(r){return o.solve(r)}},exports.ease=exports.bezier(.25,.1,.25,1),exports.clamp=function(r,e,t){return Math.min(t,Math.max(e,r))},exports.wrap=function(r,e,t){var n=t-e,o=((r-e)%n+n)%n+e;return o===e?t:o},exports.asyncAll=function(r,e,t){if(!r.length)return t(null,[]);var n=r.length,o=new Array(r.length),a=null;r.forEach(function(r,i){e(r,function(r,e){r&&(a=r),o[i]=e,0===--n&&t(a,o)})})},exports.values=function(r){var e=[];for(var t in r)e.push(r[t]);return e},exports.keysDifference=function(r,e){var t=[];for(var n in r)n in e||t.push(n);return t},exports.extend=function(r,e,t,n){for(var o=arguments,a=1;a=0)return!0;return!1};var warnOnceHistory={};exports.warnOnce=function(r){warnOnceHistory[r]||("undefined"!=typeof console&&console.warn(r),warnOnceHistory[r]=!0)},exports.isCounterClockwise=function(r,e,t){return(t.y-r.y)*(e.x-r.x)>(e.y-r.y)*(t.x-r.x)},exports.calculateSignedArea=function(r){for(var e=0,t=0,n=r.length,o=n-1,a=void 0,i=void 0;t0||Math.abs(e.y-t.y)>0)&&Math.abs(exports.calculateSignedArea(r))>.01},exports.sphericalToCartesian=function(r){var e=r[0],t=r[1],n=r[2];return t+=90,t*=Math.PI/180,n*=Math.PI/180,[e*Math.cos(t)*Math.sin(n),e*Math.sin(t)*Math.sin(n),e*Math.cos(n)]},exports.parseCacheControl=function(r){var e=/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,t={};if(r.replace(e,function(r,e,n,o){var a=n||o;return t[e]=!a||a.toLowerCase(),""}),t["max-age"]){var n=parseInt(t["max-age"],10);isNaN(n)?delete t["max-age"]:t["max-age"]=n}return t}; +},{"../geo/coordinate":61,"@mapbox/unitbezier":3,"point-geometry":26}],213:[function(require,module,exports){ +"use strict";var Feature=function(e,t,r,o){this.type="Feature",this._vectorTileFeature=e,e._z=t,e._x=r,e._y=o,this.properties=e.properties,null!=e.id&&(this.id=e.id)},prototypeAccessors={geometry:{}};prototypeAccessors.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},prototypeAccessors.geometry.set=function(e){this._geometry=e},Feature.prototype.toJSON=function(){var e=this,t={geometry:this.geometry};for(var r in e)"_geometry"!==r&&"_vectorTileFeature"!==r&&(t[r]=e[r]);return t},Object.defineProperties(Feature.prototype,prototypeAccessors),module.exports=Feature; +},{}],214:[function(require,module,exports){ +"use strict";var scriptDetection=require("./script_detection");module.exports=function(t){for(var o="",e=0;e":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}; +},{"./script_detection":209}],215:[function(require,module,exports){ +"use strict";var WebWorker=require("./web_worker"),WorkerPool=function(){this.active={}};WorkerPool.prototype.acquire=function(r){var e=this;if(!this.workers){var o=require("../").workerCount;for(this.workers=[];this.workers.length 2 && arguments[2] !== undefined ? arguments[2] : null; + + //create the

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 z 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 BlfeK0 literal 107486 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 axIp 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 z zb54u<$q~nSJekomw1PccwnOwD;br$wDhqvHuaIbZe6!hY*;B9(r~;_A3RSS)64674 z2*N@XiuSq?sK7hpusp9TkbYv;mto>(iX*_ro=j9CI5ME?E)T)1Whxfp7RmxtinHBK z-aG#UB#8sK2^rTe+&qGv@$doyQhSOIQ*9MG`&DgFoZn`5Z+u`b-o1B)48UJ{R!4ei zQgQuK;@j&TG!USNIrjEG7{8Rq8CEWzE;lUge>>VV*>epdGMe!lFAjCv48si#LmRc` zv3ZHbM7Kn`mSwRTmviO-k6{DE)*-C|k6K|4X|X)slKxh2;eqjHrw*~3)&aEUah`$n zJgGXx*wGWSw6mgEI%C59_XRC%1#@K5KC`79r2N?qfcZ8UR!B+;!;k{zXQdK~ zB_@5wwIS9c@P&Ehv6SW}Rbq@zO#2)fijg`o?QhOyIKVE<%VISRRa%=|T?%;Tdlr0h zfu|EXg;R;a1Sx#b4rV~j>o1LnjXV7n=^&#I1Jyq&?HbDE)NDT_3CR;tfnE6)Fn)wjq$tRmI45z5D8B=c;^F2fmN+D zLRPOcFgKx;EO{7j``anryr2b4iahVty!{c<)-e#D)LGQBj3`}R35pT1*kKq5(L@_( zL^HRoe@7JrkhfO?JJ(sZ9t(6N3OO>C(>ARoZL-@s%(Wx@g}mTyw|OfOJnpvM`Uzrp z+i!gZ)w}st5Tx(sTS23Lx43CdX@2|8cdQP~rbyNnKaD5*EP25T?}S@U@Wb1<6$Mqi z^{p*oZrQPwF6;2M9I@RkOPEF-ThOQkCNu>?n@`UbTq3*W${z#8y{V^fEY1N^A*SSd z7f`YAB~s7YX=*|AUFp#j9=20qepyCyuI`|Rz*%2-^NDXvG63P4I-ruyGy}8G%n?9UQIpj{e?01sc<#q$@ zkU6B?=_`C2kNnEE(X*}wQUD&x&BhE-R5Mz;NoCh|5%LbqeAs3+vBfxB6C$w{RpM8= zX9p2)$-4KD>S8l~!>?y@L``Cgw3 zSWo>Eh-)mmAKMRdn23u%m{^u_n-(FAM}lZ^gNSXSU;)*213F8=6TseS$CPM9io zhLyqEjX!VgMJmP{r5X0fKi=Q*IjBKR`>9myOQAEzxJBPvma5>3@MKV zZPH%mnk@21r^+L1nqTcGz0%6~gTrdyDXJK&G^m+sqlWks>9(q&9(|o2YJFr8sOd0- zFNL4y;pg~O#pw}#_M(>KZ$7)g!?i=&rWCf5t6>hwV?TJv)$y|V*h~VeONaZ1_?(k=Q&8 zHb3dsO45d_G+^qJq&B))q;|UrBYrcgua|bJGiF6zpM^5{6CpT6F?M~-{OZRgiY1YT z{%JF}dTxqAQ^4sV{p-pwF(j2e~X&IvrAl#;7$C~~k&!-?Un zXFo~IE+rq7uN;v#3eU8jbolrp+GlB+x0p3;tO}e)^+|Zd%YXXDh9C-PpygUvGnVt_ z>Qbq6b0~m+oPn=q?0RR_KmYuDT)&*`uC?;{=xiHo@6$3J2W@n}4#rq@t})NQ@mw1) z#Y9qVj0#Ci&(pqEnp}`7J~gI7@j6&PL*c4K-d$4WzpyQDsglNNbaAL2}Qc=@Fe zm$Dyvtmp3I(f)>89TnTodP<}BnBK5(&yH*f&xf9sqxsbc!}(r3I$u*6lPCglbTZ%O z?tiz5=)r3!zIwSV|3uNFkVXkH#do+AD6{h!%7s13eRon-r28CXo=m(Jxe_eQ6zr07 zdWfu>{!HKK<^`MR%27e*@lF&fcemZk6+w#l7-V#%68(&?MtyxT2tKDEY)$V}z5hbn3&)q$OOPre;`s5+CTW9~Cl*R==_x-86?uxJbA+~h@Bq)W&4ius`Szzv8ZZ0|lVhAqAp zBbHfDyDu|JOjEJ&kaJkF3CF@~&sc#NvGz%{DXGpZr&cA+gy^VKc2JBmHQ~k#ok_Fe z^_V{Dtnz}x?eXN(#w%w|0F45k-bM)Yl&fiuLI_Y7G9QQCOdj)58n)9l`ou;mW~3#t zZ?z?ddH}9a9Jf>;co}#h(B0tPhj+ZJLO>{lV5r@0qpt)R4vo+JJ9`CO&^$j_&hUJa zS-`bdj~=v0toBNin+qV!4Uiz!sRKqM15c)W(kF}dNDCJP5I{V@*%>nECQ2bVwpzu< zU4^FCltJq9+;M9e_IV5kGFhJ`SZ_q86)b`Gp3sli8@o=%AC^S!oI4o0J~!tW(fA6* zmGzx-ww3XOW4zGAG77f_F7aChnMG@+z@?G}I=OQgrhQ96XAX%S`J&~Uk|AE+_O(uG zjyx7AcEKCEGPrE7@f7hX0dwntzuRyXu^yxwhggXW6OF4#cj@d%FkV!Yg%2A&3G#7> zHc!gUm(itag7!FKNb3y(Xl-q1BLb6LsC%M*%s1~k zBu>{WI$<#}_{?oAR43{GAmWMl++9 zo3`~b>@CHm3pt>)2KN9Gn4#$oK0nk|af7We?7wEMMd3Z?|Mz^gnFc#T^TQQ#S0^ef zJvLirjxmlLGgfF5x~@mAf$n@-DEsvgW*bHyn}@X~W>2eOl4%HX3bJ(!A;5am(J z#M+{G>gJnv?2G|-lFZjrOS!45}a4WZj6yTe$e%1gAr(sU%pyX zDD$0!Z>3DeHHrm(^Apv1iQfIY{1@XO2G`!jUEHcB5u2-3hPsK)dWfD2H1{$1AIM%n zvY?^HWs<0COFKc2#YZ^Kq=Yo0$iuNmU2i(blI2?52A6a)htkq@pa`K@UChNzgp|cE z0s{d75}5AvrGMC0e`Ca6Yb!TxikTE*I_eoaRQM2WQ-1ZNWmuO}{3=@l{De>Gd;?2P zb-0YvqR=t9WOx|gK&US&OW4PWMhqBhtgzJK%rPDW*{*0xDnqf*y3nE{Mv8Z&t$4B> zgy%_Gz;5{gjQ_TJ8Eeu$=K#Z-iBk$5o;l|<<(bXzcn#TCk5TokrHV22gFE;)1tg&99 z!m~7sa>BAVb+*~Qt6R^B>l~2BrTQDaiBef^%fYvxN?SH{-TjC}f~aiSUS^JBa^N7P z!)p@z$r51Nw<`w95n|kfyrHZFiI(Ua%11i!Q8AF{T6$rc6=ac?A&Y|*q6B_e(ICpC zbI4WhEJZI2yA;|X)w;-=PT|N~=ZQwy(HHR;*7g;uQy`oR2yrE6?6#gMea)yB<*tnP zmr6}@fqIlrkwG@G#VFG0HDWP$GeG)FPWY`exPRXP`RN7Pv zT<0UX^oWpNEa$|6$vSON*8i{?f|-Uol;h}hk#?I4H0Ekocn#{?p76N+dKQt$Jl%;q zlcV$mmG|^+nb+CcmZiSsFKbTUCZOe@7+C z_q%7|8SY3N$0v@O)SJS1{}7DPS3PFJEeNz$|? z=KC|DTgmhtmhEnG!cm#?zWKPfjxCfeVtxrI_d`wMBm?6z@PiiY4F!s&y;%i zRkR1hd)K2ecW>XaZJMnL#)!U8cB>(x(g=yfoU3qdFAR_XU3-$4p4S)jpRx73P+Odf z=ImHI8u!-hu4~&RwYX>hc>PjlidgaOfRJP$`hUO9KSmgavBa$4D> zYbTNqVtaOq&PFj?n&+`rfI*5z<0yalw5{G9k)1%#32SdYmy;G`RLzKEasN%h{-39I zrG+|(sCg>&jta|3J$uxHy=bzc02Q^SN8VCe(BjheFYu!oXekiLHA4r z$!<>tKU2byX?gb^6-#GYMBcxgT4;7JB(DhDJj&>&0GZgHo>yhmYh*V7)iq)yeHm-U{ z@>i3z@d#S^o$V)u7ie|7gtWt(CsvoJ!z5ge+*rbE`WSbZQGTkG8c-u>R;CjxG#UU^ ziMSmf7$)tbjJ%T`Z49kRR3LRYYR4W1=KKK@0-3@FpP^$?kHBQ_5fRu;W1!}Q1e<3J z(tJ@K3(46`!A75lSGi571wb@v@4B~00-gupAjA4--9mm|TvPp+YdGE8CY#{(SbJ0p zDyprS!QDi3J%eLLW={}8Mi38{IFk+f`(mYS)%DV~YL$hEYC3c?k`FrG1Y95U>TJ+X z_Zg{88hOzv?pqCg@@bmwhsJ_HU^zFmg*gt+91wegPBK6NDr@B7aAa(=ySGW&D^|(D zioTnMsa{MD-6$6IM3Dhfj*qv`1aO@1NslJ5f6IcH(A<8!LMXkgmi7TCiM~94*LQNF zS9oiUL4tF_QC{6>c^5*bw?2@vNc}0lwux^^2u%q>h3Io8qkGxX!l?bpI?7htiM3=Q zo*Yq`cntN48f7@Y4~Bw{Y&LEi!IU)M^!0IoT9L)TM;#9r zUh9HAMX5{#u^AR)U2n8{`7$b92cM^b2FPx8zalNEr3^N+>9|K0UDw>I+&#)n4O*XoLxGth*^tERfuMj9&w+%n#tW{GgWODIhsjiqN%JN zSMteKRhEMKxI`=K4FHh4%GEnOPc14yK^lN{9U=c^hw6k5R=~dleM%Px0_oZjrXXL- zT(ROXejZd;!(s{ZgeTOdhHuIq*zLjPnSo7!TyC_p6$b{Zlc@$C%7g# z(Jg}eLV^>6IwlKncmXJc{JpNt2BU88_l@wQLv!-A;CN*u9mf2y=)1~XRd0^JpwU-T zl$4~AbNSXih38;Ed|EqU*+XuZ!;fz*{H>jj+wx5aw4Ath{nUs6$i?d_B5XY5L|W3F z#-zY_Pa29Ia)5}cfG&ed;KbVrzB#VyE^n*PkM9wN1P0Qp19YSw(AM(gLbO%;!oY@u z^8=j+gp#B&X>W_?sSHX$QpViWPO)lKZa+#xx_L9324+n;6ErZ)K!8?+$ulN?RH&@{TMEHc}_`A7Y6N?X< z=0@B(cO%>`cI2lov@WXu9JhS6uqFYkB5@+o=AON!XF?|9jn7A|dWjcTAVHqU^1&c* zyH5AbJB>*WH#naHSTnytN`Q%`8k=Btzy%rUBB4N*x|Xhf&hWyL3>x%k0`Dn@};Vhv(U_ z5sHQ;);lgz0oh^RW+GiTDtTYn8=L>>SnV|CysMX|KnpCw*y(mNPa*9UTuTWbftL(g z?6jb|i_HGc|)oNf?6T?BtWE#iKh%WY5%KfE}rgo+!Z;O4E>HFee0#+ZXGhiqRz%{z< zOd|aWT$LbQ2+0uo{yzYZdQhQE*$eotdAQsH^q>4{;QAc10ZRWP8YnVq3#XYL6~m_i zDXg{FhNsmD!UuPi!=Ve;f7n3ByZ^g|0Z@I>%O8)5AyX+<@4Mb79p#YrJ3-OFnV*>X z+E2p3X9f2}aS(c`I6!?@46_F^Y(7x7}|K+wFEO@G!Uww0r{#{ZCHHI$B~3(e6!2r)BnSE6+sSrWlHe zr3aHv>3BHO$UBsfMiNrAZ@5G-uHjYI>N>o$ZM}WEqjY_EUa$C>c}B?h?KeE-2=V27 zi(iMj0=e0+qkpO8;-e`pOple|BNx_|fx?YW=2fLBVRgmb-&BuP1IB8_|B^5K@NSk$ zKHx^yty!y!Two`i7l$Ywo$|pgi`Mw@>AG7}=+0#bXB5DI;YUYm=zg%+hVC`gs!MzT zQlPDEzIG$6Zdi3BQ*qcCFGJ&uWWRQBrlg9)Xj2GO!lX7v|6II8bNg`>gSh>g^-1H zxGfExY{@~)4WBu5uMJlpD}kW^kLDF|y7RkAS3_v6@R~0QaIQp=Kxr?)bWp~zQnh8y zGm=u+_~r8Tn5{Qu|HDt4ex0prO3pfRbr`*%8g*R&_ z?1XC}nXH24Q__~BOKp<2=6rN9Q9Fa8DU*kVA{)86^6Iz7lQFmU;Cl+jX5@X+ml9QY zRGVnvI6dCqY56gh=n!RBzMPLq3$BcAzd(1cqpYG3BUZ>Z&NUqwsGd zC=z7lX?tpL7w^)Bb6f!f-IjA716ClI14QKP7ob+}2GI1S@xbtkI|IbAaOFnVAC9@E zcd230;yyCB0#{OiCc&K`Z{ql2PO>V-x&s4`Mmy==m@nzCDrE4<=L|U*@~ZeZ z2@X^f^XNDeCTd@nfD0HmsiJsGtKUN^}m{Io?Tb!L$FnN<;)7$hKwAw4){r9FXtC@1WoN*3u zSDf@oeGYONdBr-9rx2k+P$&jN5jIKTu$=B$E7?5Lr(T8|!Qf zM9%F4M*UE|Y|j_O+l{bimu?EXUtEuOhPiabNFPw_B;!TW%7laM0a*s7M^c&RT(uxD zB&b-FZYo`gEs@si>;<)uk5I3mgASkz0&&Dngz50!^2Mki6z0cZLaL+~m2`F>O)XN5 zY_QyIciWxsQV@;gqY8gu!#CDp5e6fL_z#<>h8t54SKQ;ewrZ2wL<=p(B^2{oXteVi z>0igdkCJ>MxGOTC{3z;edkm?aPED>a8 zfsL?M0j45Z-7UmpX2ESvKOIn7uxKaxjaWEcn&uy#zGKxE6I^eGcy$D{iHt%eda}uq z=A*~5^rNwn^wqoHbT~0ktjmY`NP?B?P8D<1`H4Pw8ELM6N@LNg zzOSHAA9|DEqVEDjf(IAK!BE8E-OF0?uE8|G{VF>$Czi1%So@k~6#Vo>EJjQuJv`kZ zms1*vCu%c+K5HwbH2!7OWlkV;psKBjOy()>xl@5T@q{ZNMwD|6HK3xJZu-m7nDRt~ z#;hjWq@&xTzm>#Xxxj1h{&RR{uIA(PCN(_ZLi2I1n9fBlbAnXOlbW0@N$k`B5bK`C z3TJTkZD*mvgU>nESm~^Xg8hD#jHuD$(`jx|?GJBj6yGb8f8nxr!j%BRU;liS#r1B= zgut(rW_*lek9Vk-ZTHIjt?}1N|M6=)c|Slj7IvO`&mV&;v$b8xdm#G--a}$FO4OK< zBvzKtZI>f59SmIFxjJ`=0XC+yHTk(xB`5-|=qJjwf!B(Y%ic)KF ze#349!Msgpci?mEgm5!KpTfV(R*%Th{UMfOU7?@y z=;G{%r%Ko=E-XJAZ1nL_Ob`z`9({ZI&<(cFZp8q_?Wij!eb)QYNA9itF)6g|n%4f9 zbajX?#$L_UG0B4zx9gXH_z{0SKZcE!WE4pP)v-j16cQx8Ys!8f>OwMEbmDe>b;t$V zx{Nt>HNU^UpiRE)kbJ4ko5Hp8@=A>xA0x-+tFWar2;6uWNd@xdISz)Qm4l%@6ldX0 z(jpPrHP`a$;pI^oRA(dnh3N%FCQcP@d`v6Nbf~?q?PnE!-iix!&Y&BIw$PhJFs48O zZigl=YZ@~$6I%xxtP<4le8#VIYp=uV)-y%Hp|_A;L(%gJ*%|%r^x@C% zfYq(1N)a&MzpO7a1~~)a-LXcYe4ykI<>5qc=)f#rEZKiVYTnjed^TV{yMd^gwFt z;&TNr6onn}fdF;*1Mk+Tj(tX;a997|o)!0y`up86)z_Koub)C#_yuU!KutnUc^3%P zKECIeHVy$O5)Y$!vI<^4_PYD5?W3elC^E;1pw(i+HfIns0a7T~r-?UmXmrJsVSVKu zY`4^jA1V>K8m>}tadx-hxB9G~#S!w}OwJCSzojXG)3!o{!&U%7yL?NoZtJgZ2n=;8 zvD~FVE9BX7*~!swlEG@{iA}zn&h4B=5SWoUm;;V2?jW9$1|WCh=V2Wq_}A zt6kdn?cET#O)Wh82?Ya}=%I0W4$q{C_OY~2X>I_?3z=XqJ<2I4v^8U$6lNg@Klch> zLRrRw9`b7*FBHp9xwy5URIK6M{yx8a>hT|+G`%Ma=C4pJoFRJO=UcJ3b)d{td5K?W zSI&4V$%%F3X2O|njLCaw?BA;Q9W`NT=rmp6Y(fY8@3lRRjE*R~OP=cz+q1APhAIQR~?0xt?z!F}f4R4gS9zsvky-W_OcyI+pLhn8Z1 z@x+=1oH5fzT!fi21@@%8gCU>Y@B3`9&*Z90REi_}IDMx15InFP4V}058lJ0Lp+{yW z&7oH%EAkmfet=HA6gmWwzt)(N3SVX#`_-f@5Juid6siZQUrq8hB$`whR;y_m0W-1G z%r)?2u`&B=oJRaQoz-pEfrwP5b}b0TCHGw`LTXXJYeX7W*6-R+X?5E*BTXrL+clli z>g~M^aW0nQX|v_QEDqd6$WXLkp%_pP8Js;{(BihdxCx$GcoPFk$zTO%XKzsGK@^Jb z;MfUC$$;$8%EjV_gst^Z0}E1*^rrngY`|SonGQSyRy21c{O(@+*N|@5fGsrYlX;FJ zgQtSN%eb?4HT#mS4KbjcBovpgro1DA&U-dst>07L`^;A`Wal?TAvEWT5FT#Snr7G9 zlCw*HVeqmO2KHSOs@uWlfT4`h^#prUHOrO8WBiBi1#sY625-FVIO&h5TG_8p*}@NvQhX>fpQS062h@sSA(e z)e+X?1eKk+R8G=&J#gW?k&#REC)-SR7a#d2ndIq!^ENYP1y2y%O_1mjB>mutg7bM~ zo-zBzSe$&o0SPQD)r%vp+#TTZ#Sv=qxdt73O%oc&XcHB4#lirf73)zTUrS|VuCerc z0QY^E4zvH1L^9HKiZEo0z3VjB$Amw8XUo9HK9p((Mrcl>;rTZ+>TwM%ljX;YeLJF2 z>fJ&aNZQmxmqULEq^;uHReC z;9aH7+eTTiR3MHP=aU*+)`cI~EB-PcCN+(1-AwP6p50T!WHRCasN5NXPS}rH(lvc< zM4i8Amf+d7#s#%nI9{+(BqHdw{Yp-P%@CU_TZe?QptMm$ClB*>F>2#dfoz$i&g)-38wx)b8{13gefCzkcMBvw3^V4RI%d zcJ$W02ZG>eKyQ2llN~J=Xcs&|=8!3g@b7QU+blg=oC~YO4?^*wigiU2q{0XrA7)@M zY6#t87YQRsh2;YnRrjI&+^8ov=EBCyAEbjqXrcQ8{wkx(?I+4s%!w90RVxq^-AU8;cF2fjZ6f zk44$$Ql|~)Q+B?iPDUFDuDmbKvfvdAq<-Hqo!Wv#xkUBLocl&1m!Z2Jzj2C^xc*RPppu;9#gwQ`5NSVWJ ze-}_?M$P@li?u%~qFo6)354syChN`w0+5SCnO*jsg(bmp19bblk(OD!4m@aI3My$fgUB5mKjgCH`}$CMWJBpu1!z27i-oPflo>JtO^F2FJ7kCSbCo6ea?--+edH-lDK zNS-DT-7dC{5trtJeZ!t!Uw)+}eE|ldC{q_ETwb5=?T~qRP3u*F6~wD((kK9}>5qwv z*VOD6QPn~n%V0=j3k0W5Nd-5+)1Otn9vG6_Dghd!XSCLYI(?WRMUOV!Rn!dT^=gOB5iVpw!+A@ey2HG z-4;p8DIl$<5u!m-`7ys*&8Mah`ZxjEp(O}KrR(5A`83hs@x+RTtj*w_cC)?^37HXs zh?!&F9cF+e3lb3Tn_qhmOvQ`Llp1#f30(}2pQQ`Ny)Bra?&ExhM!}d^y^iDcRg8eu z*?{CC&Oc$WSQ7Hj)`XV*HG>nLs(}1}AjnyZ0M0jm8$01Fk7BUrFjw$Jao}rl-eu;N z_7R_UX_eM3?Xr+)we%XK7UtPk^cV=UkKpjJf3rxTwOp7B51-F-Mc0^YOemY`=P-pp z=&mpbt=52<>u-UwYQ@cRL2RW9Zv?f01?4Sgyf=a08idPDYf7d{+zTgEZO)+Ee>T*T zKN<|CQtP53AV-vtuxgQ?Sn*=Jxv*Za$k#zfnojtCJ$y8J@0$c_Eh8QlECHP;(mb3j zyImpj{`hpb=Wt$58W$U5gHR9%dWODtsc;O-<5H>FevhKYkJPKc=rC{axSEug$9yT>XQ5??HY&9fI}lLe(fe zz3{d@L0Mvn^pFQIo<6FE!^`4sZ9hZCS79yfeHw7lnYg%@PN3L7?6 zG`UQa*sFrM%2mVq9k~Xe^BfR>kVa3+(bHD91gC$rMO<5J<@)MCIe}Tk&QNJyUCl@@ z=gu5{592!!6?EOBquRwhT!f?Cu)Tbcj#OV@D#Jkzaw?ttVRfT$m2f+F95#f zH_ns%v;OG@q{KtGovBlAd^-QfQg5bZamd8(9N3eLQO@?j*5&edyEazNm$r+HhgpB{ zE=Eaed$F?G%)07OOS2CBQ?JOPqRggpf+%u4Q$rC|C&DH!bny`xAeq?`4VsUtVHI*^O`sI*1Qv77QdO)N7B63MXU3*j%c)=bhN79q z#~ux?9>(qJytq{Lj$#snMg}UG5mG^uuP26VALy%5#5|Z+{6>)EDzYjh%eVDBo7b3= zvb6KDlw#l-XL0q`yoVgM&&@A+bYOgu_(~;U`7(W(@==h|;LMIvN&x}@FOsY$Ly7Gd zNG6E2znc#vHz1bQbI~juUly!1g}XHfOW}k6#B~m`UNOIQi`+K+@ReJ;NrZgGh1(3n z9Q9M-P8L|?9NYidBDF^D{j+!=!k_7{>;s7K#6Nun;FB8SRU^Cuhh()jztiN;HG0Za zmce>R_|ZaMZoVj3zEXW4uK;cVeRoq=sxLy)^Ox}{& zN9HW21WUNCZvsDM@9Z|(9*M2R#AJ7XRjd&yXhEM(*85GY5ExF-QYFNkSCY)4Q!b+0 zcQGEGzWmC(H$VI7uQH|-L#s=VvQRB@3*9c;&WX=ZJ8T`DN}Tm1Qb3G1JnNw9Cl9@< z|8=p~%?$Hk&Q4gfF$$p?8x&z=2l6|8#K!$pFHI1LVkaLU!b7(&+~=gYm2MUqV+{n^ zby!w8KKGEqgI@1vLANK0TPH)`2+|uj-2Q*}Z(X%~ zD|5bFeYSG)Y(^&^;jf~9`_EtH_J?)aPbL{Qzllv3q0i2* zWlHF@gaD%Y3TW)IIaN&{2D7HeBE$Lmk(c{XaZ8bt3sQ^F}#H zHFeB&k@p!Vnx4D+GUG_2(yg`pS|yO(x4tj$1Y_!%`5HYT6J$s1=TTWdmdVTscdNtOh|Pp%mkJ!;DFvsyF5f8=xgR5E&JPFf2+n_-CFz@(j)vLM3ZCd_cKCx7~s>^RxlW9FVlz$+1SvX!|7Cnk$rV)IRu? zNh9{@_Y*047yMRZs7@qbm>17r0rlf)Jy`Kqg~}x7AlDp+Hez|fQJT2qW7T2L@r_9U zvL}<%6`0@-^QJQ{_r+4jnl25+q!^rlREVHnWpS+5H&Uw>E<0mg__;Z7YM6ZNjQl&i zZ66ICl7+Nen0{aQaG9tnuYBXbB*PF$xMSMx_;cmd@SBJFl>Y=T>yPOVJ#{2fq*|35 z{QODztE1aPAr<}i^f%y;A9AP^f7YQs z@>~3JANs?3Bx_L6^)ADi3u?5*Pt@E{pz?D{)r14KVqHi~ZI!_gj}>xZ{?yJ?o>U~i z0$tQIwOdsi8_Bl3CEb>08xnX=U4G-^V5si$C(nvJyJ<*}H?Z0;tpvSDT@Ku%;JAk4 zzNEvm6|tIsLc$X{KgGqSrcUj2a(7eDFZjWLT-Mw7+Fk#t-z~j#QI2iuNrB$9B0k>K zOtPuhn_+b71p{1DUvE@2tI^X9LX{>x|ET!AOTVHztv2<$63a2j5&AJjbd~Zgo&J!{ zx};9fBdlzop}#AkX0|(SU#nu%`S!}*X`J|PmHJ?DcYAPX{lV@=9_)16O2uL_Q_-W~ zaJw9iqC$7{@VL`oX-lk#6{5F}=EIe)>-Nww?I%S#Ym_Se>@Rp0W!+Rc#7Y<+dNl5t z*KC{DB(#%Y-|`em3~z5>u_##(ugjzy(+Ju z%ck>i9QY!#Q|1X5s_!ySb34YtE2#`9M3HD%?cIlszN?V96^96Wi54|C718Wc(!py5 zJZf#x@*$~!jbm7ZFkWaXRE0pNQ=nC?%3-YvO%0{~Jnss7OP5}(rL@(TsI^`1~zknMf6uRZIS9n)K<2WYspk*r!+G z=#SyV@K7UH@#x0V)#rFX89%^1aPH7I5g-;6(}2wk!#t})f@3*xR;&(&6_j!*;pk{b~it{|u;R-uN7umhPJyq>NspG*RxxYOG6-URR(NQa(5c9MOIB2Zv2To=>UNlcHdnY z)jr@@tYV~LscX6+gy05kXJA#v(N6++j1%8tDMpamK2eJS#kO8wQ6^gv18zR18)v&o z{ZpscTLe~sF$r!xFz1`L5S}+HcXyGuMIM9xZgk;jzZ$KT43M+POTc13W29K5B%p1P zAvfkMHF1R}tARmgin-ZgI%{jt=X;U1sK#fy({cwyr!a*CGaM*#m=MRuxtC!W<6W`H z!fHau%6Kfr$eu`px{Gr;r{(t-4U2U-CJI{Iglm$9aT-wDb9!Ni&=eS#f|!;}K;_(3 z^g%5`!I>9pQ0E|un=@D)m(|y!La+1m}BCI%U zoAXVRBN-)rvQ9a&qy@!-wHa~eVPNzU@kf4Bh7vv3-N4lku2|jq7IX=%ptboJE=iR( zRtvV-EP?K(6m#Qu14t)NYfvViY$x0%4pCCm#<4#1M?LugKK{SK&{A~eg;=wXo^i)4 z!FsG-ja>1W^~B*g!weECasO`)ZQ2GClqSSKfD>nU#FREQAiRrvmyAKGaZU=LVy|H` z>txhpY{g)mm$`vnf(o_c-JCmsqPS*eOnur0lsilSU4e&ojg%=oQmrpFTFt~8qcHU7 z(Nq_cuduLVW$u}_X}NZ2HS4i$vm+nTYd)hu9NX670Urbp8vJvGu>N{Np-)FeToFF# zpqKemZPN?tFmdd#vC+c_EgJ0NB5?2qLeb*&fdvK#!sp^R!5=)_^*Sk2g+<;n;5~{2 zt^>`8wOCr$6rn$%>DBjQRv^?llAOyjzY~VDu~Z!81PlOM-RWHkCnW3I&x;skO+aS; z(5^{(lC*?t&7Tw`YUn-TmAJ`nwttMi52bA;FF^l3II1baYD<;6sbbC&aj~T0xond2Ebi^}hDctG2}^{oZmV`Cwq)lkOSxG34<;vC8rnqrfZ#Vv za;edq0DiKv=%t=53dpnEooqzuddUWh>|Afjt+d%YR-DCy$$8)m4E5KmSr$N(VrThh zLHvJ1%AfhAuN%YpsjRYN=^uk$?Pw#|@;k`TAa`*)z&~Vb(s|wiwPQEXS|09GonP)0 zROb1N-6c-Fyq6qTbbia86L~{xI_;jy(o)KQxai!NNEEEOvO~QRJYK9#=3S`cM2g?d ztPJ&>MtQa7nZbsxL+_86Z_A$HWL5ug?#JxR`@UWs4556CI4Q-xK$np7`J(>P~0l-=Qs8qQ_%xe@WIqK zh&tt*WGJ6b_I()1X9GF@Qm4Xn$0_ENy$#!_bd~Pnc_%m`_|3SX8!M+hj_1l1-rWD@ zO^rxufnxz9vKPaVRD0@`hTuvZ$ygD1knk>J3(#EL^a=~FP9xjRSR&qBPO^SPL5 zs<&o-2FnDUz1O#BiFAqkfMjX?F-*9Nx*ShAY27?J&v=nV(xT~; zN+e?Rj+f}LBz!dkXSMn4u{snoCN$~kO2;c-FT{Jjzi;g~XJ?U>hbXL+%b z(4XXO5TX4`Ge4r2xQ`ZAZ-PTgmtU0Cp(i}Ijk>gR$`GH6wn`%iBkmSK=5H?%2IiD2 zp^SpUb@7|?yh3Ia5uSs|;Sqf8COk{yl?x?Lt^uLdz^z^el)o_qa#m0Py=y#mBKafQ zgMTE4F1jwC3$+QHw%LTGF{r5OOD@$`ey|%0v54plrpxsR6tbWE8nS$J$U?+%Oio1{ zf?H@X!i5vWDXsW)SxrcnUDVFR*~O~6*X{j#@hBuxU6A&=c6cmoQ;4f?cRn(xp5(~& zZpu$2ZMBIrUTi0Fw5ng1Xx3hQ*9qN3%u(C>baERtX#8 zi|UD!V!p_6_{EOct{Yr=tR+5hKk!^MxL>zGRn)HO^?`@7|4_Bht)WB#_!6p&HL_o| zRoUc!P&&ePLyj$JRINn6;?TAW9RT=-#+6+A%mdl4FN5wopbA}?_o8f2OU7MQEZfC& zwxZHfQ#-Y6bX&Y9gD_oi1#XBC$uz=&32Mo6GLbvioNGyae@57P%ij2o?l=j%*ruhm zP5hYxG;HZTt^`2~(=h&z|F#j2fmj%557ZaKtOp`dz1V%)nEG)MJBjf|?7GM)BpqKx qWtPZB#~^;PLHUS&D5=7ayknIMwHS1)x;aY_kF@i*hX|THS!psgn11yD diff --git a/public/assets/js/maps.js.gz b/public/assets/js/maps.js.gz index 8be727ed100fd32f8832184d735c221cf824d950..edcbc0eb5c9ef3f95dce2d65d2504a156c099422 100644 GIT binary patch literal 141926 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 P9L1C`a2<%0N-+JGr{Ox6ssEXzDFnL8V!5 zduhIzE4=LupuV0NsQ2gKI&(nyf5YsYDdabc$0w$L2V@Fs%n<7x>InlxWsX6;=IrtR zpzNu3mbzDS>-ZNb%H4fx|FP55=BX)5TtJ)hPd^#xQ%;VNU#PqA0xUNkLK~5TY-*Wl z_bh3zR%dYYIkq*Io-*JDmoEXV#K~mqf1*0}=pt!%&*}g6c~Ez&enArF!qel0kdLe~ zjKcwJh4lq$D>}jyHzk4J7N(p})CW~8j7TO=Oab{~`?5%a&+gv(`APpT8!h=5bM8?g zi1tLhHvo-e)c1J*A-|yNgbv|0y9-ApzB&pE5_Z1zrpQu88qWwi5cl_vVM)4Djx<8E zWvkQJGWBLg9QRkqiYqp)bCIap#Z)ePQ&@ba#KHK8XsT3-N2szk`LV8m3|5YmrOIu8 zPE2n$kP|pL-=7;?fEcC*0RSsi^ZdCn0@@LX4|%d-=#6kaXhJy{ z6cfC?wROZ`G1CiRVW=`vWBH*aLg{6~AgG+e;!T#N3{l~<$_oa@{sUD2*vm_^8Hq0U zXmSVSNLwQ)$L(e*?TMAJVN)Z#4C0k9?7f)pg2Wk?6FEl%rJ4KMnONxBI80I; z%4C)!F>OqmEG)Qg$<2bYVX0PSm0z(%)y|9mM6K3GFNO{xwdS9y-YPz(_YL~60(RRK zV<+G7ENuB6H`?{8MI2U$fl<3iJS$?yMGdM;KS@~SLyAh>@W7>6SplgX&R5zO56C5O$mxHGI z+Y14p>Jo+}sL;Z099o18Zc!!)al`jzlC^!`>Rjscs;Von4`HQE8_v}VqrQd=^IeWn zy5|dgj%(L9Y)-!IR_^D>TUMIFW1@Jwn7;KAZk3`!JRywVdGDMA{1VgG!i5bMAgsvg zB8p%Q0UiUJ0yuxAGWO^`7s!<$vy-sD0Aau8X77&87E@VI1bsuL^+opm@&!1x)`8Q; zi`LfKaKTAdV}B1fCVqEszKRp@tpfi~KKuS+56V#P@?W%IbJL?tJeI2Q6_bTv9fZj6 z77cJ?F5sV=p$r6?FIC%{77OlY1?lXA((L3G+MKB6BmZiS)6HG`Kxf1-2Upvc##Ri@1VBZ3lG8zw|iuaLP?H(HVgwhFQ#-b z1y4?8l*Op7#7_&sO>JVsB ztP2&P)OhzQ=H5ak!k3BK_NXJlB9yK@n`rsj1oFQRNU!Z_=F)%?qK?%JZlv2S0u_=G zcfb={gt%gJ1e*Fi@m-@A^JdJ#-eo>g5fjTY~wYZ%{^%QJ%jvTspG=wtU*Ztg{LM` zgElcF;M<785Jq*ZsE)WsyVd*wav(z5GG~{2@WsHChRNl`uVFL;zo^T=k0rm<1?yA_ z1*;IAyGfv57{?S`Zec5k3KW?^;+wDW4KL!M%45VdR2EAz~b%`Td zJeU~iB0XQ9UiyZ?bh>WFAh7;kB-u`CB6ulL9P}+j7svw2YW>} zL(i4VybvGFPTPrwAJ9Ji`5Ai$`watxr6NoW#%XkVHvvCYt@r_`;Sb`@Iq{1z!O%Va zS*x6BsheIAxn_zRGP+70m%?nsBl%l%rZU1DSBh}3*a6{eoU2jhIkb-lO^>4>jg4r{SfGJT~DNXzP&h4+vb!H zG^6llBPb^d0293!>&Izop1cnd-LnY8Y)8j}o_n*xHQ>s-hEB zAC6|;96PZEN@dr4D6VHzv#kdSs=Ny;8VKy`(dI$=*2V!$asDzBX|~#YxN*|LnaOOO zr*@%9%=#0vL%yPMe{ADS2vD7~e7LfvFqcG>GTuv#(~QmSaZOu?4}oCxnCbBIAy*hg zU+)=z!qN$u$t(<`EDfRGM4rN01`P{7t%qE9de8=U$KGUS_h^3-$YZ$+bfR{%QkwZO z3iWKb2ewl%>fxcH2N_HzJ2#Z2Df9dwyz`OkWoAf4aT~tKs2yR>*v7rfBjWOEROcZ@ zc$L7nu#@a_8$u|g#w9d~ux-EuiikUkL?m+(i^p_d7gDMkWW1~Ln|J;Q)b z$t#6Z6JGd4;EG5Z*K@U|zj-WtRP4hCUNGpFmS#It!m_r2@hZ4Gd~wy>C1)$2A$vhC z+bd9?JLr#JS(l(w{r9Pd1b=)Mc7qBDTwmiiC3v=3r^oCPw~>AY?xun;$lgKP#TY_( zVhQ1d4Lyk)Uxz=wg(L1Hmi^8Ftlpi2V6fw~DV^Xv9Uo;83|87AW_D$IO5OA>2*d)(2D!A(EDypGoYHW9?MuS##(zezxY!!=Phyois zu*8!BQ!7hWQiE~w&mw09qQ#b$i8V!Ag5G0XGSEg17KSF{3{W7klOG+iVn1r~)(W(M zL?^4sJ#F0XgVckZ4PVL??SY6m+=g%uwSLV+R}M4p$nk}5tkSeky`n z-_w35577^0gg>4{*P#as^ooNYu^2&28)N1W)5e%3#B?xb1~DCsS;-|db#~V3I$>k! z9yl}j+bgFgQmZ;1K8};8l{9T6=A2fbBetChwh|A|+O3p>j>O6dM3hj48ZX_#l5P)0 zSm<_F@R}B4=Z4thVZTjZ6^%jBii}>vn93>Vq|GF>c&PAYZo$cI7Q?jNkwi^$GZ+I0 z#h0y>uR6TdaB@WF8toG|8%zbtUKWtL`l0SMUxccspmzqYKu{952+Ti7J>_K|Z4H&$ zuC5(Tt04YRTk#rOhR|V$5Q-|giUm_so(Lx9qVe=8i@)&A(l0uvwWZqtc-@y`94L;} z#8FCh;fqK)lL2~`nKBP1Oj=1XRrR$3psC8$iru8nZx4o`rt&*0yI0|B?& za)oBpx{6RT>*h3Fh+mnC2mo7Xgiyu(8T>nNAb?e}8;WL1X4_3o!+W3ISnCKEW`T56>vZ2 zrLTg1W8!Y~;($+aWZxbsF1Gg@Kjd*1>#obW|hjjk0orB5d@j)gjv(B*N?i(f0e3C}82>6B9x}m%jAwLF=a(#8h2N_&iPy?rl z@cH@htb&G7fx92pA1PHtvJDE$eSD6yj8XO!KU?|{T3F$$e$IjwmB#Vcfzf)=7Lmm+ z7h)m$ZP92mhh&zk5?i7r8jqlk$cJ5MoKHhzSDa9jpbU1TV?p4M-%kQ4F zg>7^oN>0za?J{REXr6HVP38$VFaojV$eXZC<7=)U6s9w2cN0F(qLZ397J1*hnHX!QvL^tTy}KYQvf|7aCO{$d1cnJd~Z7xlBZv>Ff` zKvK;Bc<0>(({y{dNTP6-10PZB!6Jhjrcq`o;DAN#GX2L3nQE}IGW5l&t*CemSXK@S zx?Avw5u_~do7HR<14Hq*pfJ&Jr5Jn&m#ciYFEOrWjSLQQVQ?_gY7IJjGNEFOpuZ+u z!I%a+TTdAqkj;52z=t;~)y%cU9)|%h?vTNc3$wVg<_gD@uT5xY@XxJKKz=dvqvxoSBoB4Lzg) z@RoNuEmG{Zk50tac?w|94n_4`VyGig$vPP5SX479hI%GSXFmfx7t9*F?dJ&3lM!PO zfG06Tybw02BGikHun7|5PDE}3;F8y>TByFmiP<>vKBL$5DS6e3&~Iwy!mbHq7s!a! z6=ER+R%?VZeaov~yUB`ZkZYlVn3bk3VRZdy0qLvK^blwdA0ox8vrlGEpW+2mRCv(W z3S~X?D)WBnfos_hUK~U0#Qoyo;g)v;BAnN}0)4@&%eTYpi>qr_sAJ;S{xZ3}THPqO zhfcaRjeD~*Cx+%h$D~&v$pPkv6i3K=m$~$4hAMQUWrT zZS81V?YR58hPX!NHg&?-zY9jbf>Q%0^u~h{K48K}Ou(##2|h9>xUSir)?st0zr{l2 zM={G#8*o~cpWcDX1iqB$_kET<`UkHu-W6YCyq9+AMQ7-gbrQ|6!shv@i@>@;tBM(K%Q154V^b0YtmCpU+f;1bu=A zcCr%dZDR_})mx@3oqlZBB>C3 zKQSL}ECJ9HD543Z*ZQO&EgOWkU&Xhz8&S{T!>gS1I>!2ejg(A+l{Er9ADmp#m=9D;Y3EX@g zqfmpYRqgGTJRMtZXFBf0ddo_ApMgJhymw8qPx+Ji&g7BDtLL)x9pB!Z`(swwi}ar< z#`zh0^IYD|O|@@l$6zE;k&*o2?#K8nNx$Dft@l9SFaD$<3=G5=x@LTOue)ZfdF+k6 z?~e!DsUoLjS1&~Or~5Z}eHwq-15~${4*V62`7D#+%X_7zX=^)qZm)wUUI{7D^b^XA z9ldDN)DbHYiiuc=nV5@Mp!YpBKmk3=t-CEaT`BL_>bh_o0Acy}Z$gk~qJA(K5R-`M zVUAF?kUXJdbms7M(hHF!F|r>Hq?C>J)29@ww<&x^*}Kk6`t=lWKS2jZ4GoB4IDAaq z>EXGKIsz4QTpPdKcV}Xae*Vz2*8;`bMBiJU?kH-g!G83DTN5F+UzVe(Qv{$jddu_n z70=r1$zCiKcwd#{n~VXg(KZH7eyQ!%y8ZTv=))wbJ;Cpm=pTztTO5mLLQN?FL2)GT zwX!^Avjix1rPiT%da8w#<$~Dp=%@Uev3FVWy zc7RzrqL1_jQPiRq&AAs@Zy%*|0!aXe;s}d?FYFoo1L@SuMD{eba3W!nNeZ|ox2beY zCc>apED2IOlzNnvhoete&}``#go|mqq7xN7))a}8UQI(R^pFZg@&Q1abQ%z+y2cl$ zfaU^3o=18fJh$fo6naF3BC+FOBm2o%Cq=?vto=9zRMq1jVt9xuR)(~xXVBr-qj8d! zeqysf;w$ZJ4m_huX$~N^2#_DZ!;Aq^hf+!hfHbGXoP;}41rp1%wEkyQo2Fvw0E`5f z=LEwHS+NNmW8#g^G*{^8?m$jKXgnjhP6Z#QBMk)M*%r zwPh>kGfdOd_t@mYICXI5s9wQnmAjR#sH%)ZjoJ&E0K{+!HR!2x8W|$uZ0b^wr?Q%# zG}(VZnNEv-44}u4xGS<YQYKfU`AR1sOxEkB$9eXSm^%d ziA^}XV7`~J8KfZigP~*100B^Cp-G!AanDu9yndveZDRpC(T$`Jm0v|1+l*UdegPf+ zqP$#esog6bqnmgwdqZQkdl8W5$N$(4Q?2HekEA`Q_9v7r3aBEbtG_J^)#rrjWw&p% z4kG@UgsW_KajZsw<~x>gk}|eKq!*9Zqnv)?7{kXLR_U~>qzHuNt>bUMrRC7Xhr~mS9;C4^XgA8*k5*p$ zaYzwdKJF_qg3AA&>FyHuH^f?zP#Ct|A#yQxniN4qIi%cB8qQ3b3$_2Hx0U4rIqDhc z3o-C$%}PbFW8JwdE7PnXVd{v4&s1K1o~jG*FJeX84Fpixv7>IvS40Fn$!(BWsBfo} z1aM&Z|-$I6%=muiAb~SX*vdui=lPWfzXN9l|Shuy6s%eih z*&w0$p6))680%K)WM5f5uf!58P|FF_NKMJS4nWR3T3tHSYc}!I`tzA&5F|%aFld*B zO^SYD)N)T<5u>nt73ZuFM%1&M!1=z83r3yj8CjHE%qHJqCBj5#mX^<4eMXiNuW zw1x+vj|uukDpWkwG!w#srMOMnuw&gYTq%%fNz4Llbi*_|MA3sArn6wAZW#6jNfgH^ z?J9c3PQrNn4`ZoiD5>Kgt7X(K{12nGzNex7V5jJo9jC4M|D|duEEdx>`%pP?+sJeL zMC)v|Zdo@)XC(a&f?^s^Pt^g>_4u&@5M(QUeAhhk>mIj7>3yTZAs$3O6QxE?qT+0@ z`@B_tpJ)TR+1B@&f}pvtlc)>B{A?bYZg^-VRJ3!}#syCzZSaQH!)$H+^y%ZTc@j98 zZo9hyYfEjHOtZOSE@^;<+l5rligo}wTkaX&b}kyMwq2pSg$$3=zOiCmS3I!`#Fm&9 zdkghMm=|M@Ks{{i(s4zSvxqH0gI@qW}u2ewmaA!WD%w_T#Y8(+e}hO?Qp|Cb0)SKUQ(}Rw^@Qx zqk303;J0~#E&^QO3gtkSaebu7On9k%eN?coFIML4?O!NBU!}U)TZLi1r&X!bn+jUjf^g^5C34Eus7pocn1_s}!HOs-m zM>F4xULhBAT0;Go#X^m*-oJhSarnchH*YTB=koeNBf(MD1CX%F1iZ?SF>Z#B?jl%m z5S!Jah)>)k|Bcrn+_84d*~l1vE#-I@7RO7(iN@mDia}@KMhC*Mr{2f=qyYzuP^75|Q9z zP9&JvBEiIx{XQ1Nf=N;K`&cR#*n$CdLUubhQdeO_06*#?b#sR4!jl2tgB;_?1d3{7 z+4q_-KFu}!`$Ju^^OD2N2THGY7x)Fe_i9h&a7BGw)hJi5vg0y#1KXuSy4x7JU9wNWm1F4FFx$x#a>hG z$C?aROw$=MVsmw|77%3FzoaylR#E9rIca*z9a09@yavVp^AE!-h2)hmgg}u2a0Su=jC3B3#__0Ppm#2WWb0S&fBx|P9rRxNq`JUw8#%kJ+Xt`EWxJO~ zZQ;^Hp= zE52$EA^RGGK`v+P-T5W!3$yOW`pn#tRW5JBUeH98yJYO=iihoa9gIOV1? z(~~J(^w^7UsW}5Nw$pe&uRM)BJjD90dHX=StiYO;(+cSNwg`Be!tS;)GkEfyLH$_j zc{20V*~x3D*_o=*7d7SF1$Rmw?IAS^BX5bbZB>yu3AbhK(cX4OB)E_Dr5>2Ytz2cX zNvPs_OGC--!-Pq@fc$%S;_l#DG-jFeN>@Aze*^HhqOmH2Zxehxo=m;@+!NeB?J3jg z9G~oG&lz2dTetf5I264>xo8jidaU$5bLg>n83hUV*@txN>Wrz=(c8-KQLrRbKu_lI zj_xq^E?m_`L-f21T{Lgv2i{s8b6+3ai6OHt4I84GJ z5vFJ#1dn=(*#dyIOh8>UJ#%=(0##XnLOXK5Wo{{2@=|1uCNZXEap;jttf9kZ&2?4c zjaZc>&S4n=l6Bqg7;yY11bNgMMI38$Z0@YVNoHzrli4FMH<5z5i5@Knhj?o_2*c%Y z+b7=G7h`OEA&C|ln}w-3rS%G`oq_bo2~Du=^dYeeFP=VdN>T6DTNcFv-x3S%i%lYD zKU>%>yBA??-i>UDk&IZIcXK+@+Ps@goA+6c`Zt5#XVT_*tj$}Z2Dwa|7v;2hVTm^H zb55JLw6%FlOPlw(pv_wrwRxXQwRt;Ug)j77*%Pt^gbW1NEn+9d(;&U@>b17qQP?it z!L$hEr&^vWBNXw(Ny-TNRJL4K5B37zaIad`&s5CS>o>J-Qogzq1gqKU^m&4o5wTJV zN4=PJ!Er`CD>*|iWw_Gl!-N&CDD#4svY~eNKGcT^1rKFY>F17M#n|2sgko87Sa~Nw zI2k{Yaw@Ln0)FS(lTPmreB*6DzQj=wSc*FV!?obLu?O3z zb0(Q`3$1mZSJ+CShQsk&ZY;(S{u${|c;!T9o>B5iW;Vk@IK!B4Q z^8hh;tbkkidb9-ZzO01UOVSqV!!?e1qavJqp$q^87E45@vIwcm)8UHJbh2I6VcLB$ z2n)l{N{EjI27aaQLNT{1zd>&Ou^>8M7b7u|VUs5RD{piQPf=LG<^-19w;_!4_=ATG z5Gbi7z983;Ku<_B%4jfla9igKgA8%NZ6PnPggjFr5||2+khLL|CA3{JIddK8Oq2D_YfK^ z2A4ra5aQ(oDN53D8V(bXJVE#_q-qTkB&T2ddCExRZQ>6wGYRZ~ctuKEwDrR;VUwIf zlc4qR5H+dvAB0_F{_FizM&=ecwL zd<@*cJ%BNi$r;2ZR&2M?7O}L-G*%v*YhKBFv+P;ect|UIB^M&I?~RMX3;5Q`o(@T} zDLryuX0Z{+BD0#Had6~MB0s+M$Dfwr;^KZ8P&b^lyT(h}le0y)-B>BzrZ%;!%nA;+ zUdlG?bSojGGA=&*l1{R2Tfi)Z3dWmm7B^OLt<8q2V^|%J!+|Ik_Y(N0xEWyif&{$6 z+Ziai9etnVcD0`0gfm!YaPKLCYRAN(eB!YF3%O;(o55<{Kq{D_ChXyX(*u|}73rKm zm@dM|Z=f1i?c9n*lz_M*qCHJ`7G=U!WD8f_hy=_+g4k*2M6x(0=6VOj8{UQ^euWJ> zrxZ8nBG)$k7CrP6G!t9*Z7`^{!hWg7y2ZF*#}}~XlxnOsL^VbXLq3_S0Wy^F#pz`; zz70RWGF-9xa0j61u~Rq4l)x*S9I98_X3B^KNje1mqPDsrz0|{l9d6E)eB`*=C|_;a z=2H8eo{44ljgKZSd!w_7CbNmTkLga3E(`IzcNvSJxK$R?LGPCBqHnW(?^;g#w*zr) zY!BA1xRKY!zSmRx-W%=TI6S-2yG6izy}a#m7^wt-@1H)s&-68Et(5;t-t&H$)HLF= zyehY*yOYqHH%(A1UqZog4^)IV%}EGlCU6!5-7|!9#N5{U?yMH8AyR6B^c%C+#AjE0 z&KcQ_g;%{%22dL9*T}wr7-_p4iaRkEOJSfQRuBph$9KLz#?7@C3G66u{Pz{GRV50l z<%**aCya8do%`ZgOp3dp@pd2BYeUs{jTGwAti>8M1!G%0NWE7rS_-A`Fd7BheGo&- zDbJW0#a=3(8${~~(R#wYtqx>zdSBXiuoLpo6?qUf^BE#S2wV7{@b;mQn~%$drxiM| zI44BWBz)i$_z{Cjv5dM^T(OqM*}-z`C0w0RODEHOBmWW0^cdtwEcN-x5gl@IeXqzJ=e1UwcTUz z@Bl+Tes~yGH^$DW8)nCHBP$1`otZ!U6vQCDu2UR}V}&AUI$nDFa4WO7vq4DV7uMnV z$R1}WyfdHFsgK%Q*D{7>ViIZB;B(sh+0%1H;2YmVVHCjAuWcDT^@3lj0H3E_Hcvar z*o*K4typ5TmWi(Nn3D*mRD9q>XPu)iy-zvQR9#fJ2VxE=k~(K)4syY<|57Y1GM!XB zBd|Z;QqZLAfrC*=bQ_}8)0hkWEC@78t>m??l0j;2z1Fz(W?`y52BLoAJ$fH;>^?kb z(E}EnTRGo%W@p(hZlWJDgpS*5Yo?(=EP;&fKLX&B2H zYC_|}GYCk}e%Wb^pF53-M4UT&@$9n~&pLaF3uiB0@$4o3p0k&toM=EFVCrzBlZRtW z|8oy)j6Kx%Y2if`y4@3X5$M|@iSSRKrz_x&zswxJeMjWCRBXNt>S8RLe|k z6h>q7U@d!8o8I8<eB+EczmXw8E*HyQ&~vvd2m7z znWND62GSRi-QyG;HA5rVQ>GYc@jdTlN!g9Yx0X%Cwg6`sFho)_55JKwQG~K{e7x@j zXYoORYaF)o%q~xs)maa_J3uwUjX{B980HdcNH(H;=#jOV1MhyZ4AC9mQV09h)_f)o zNFA60>H}?DZRMofYS3{4_W)!kh&=oH_x!f0 z1I1fy;lo6%c$aadFtIKZ1{7KV1$+!YYbJKHPJksJQ2;FrOBpZOsTrm1b7msb>}C?a zdb{am*cmepcb#g(VPKr%8&f>Y){>0c;4artZDjxVFjzP>0a9k5b-6Y|eIIR?3vrT$ zaXiMdRgtbJ0F@$ynJN*&BE+o>&YpGAfT6R0TW zi9Pll@7S=Ddbehz4v~KKFbz)%u6^qkU&wAG!m6 z-nk_*q+#_GpXy$Ewe3!RS*QG;$Dw)bT93)oPZy}pidMbejW)&v;ZkIr&i)`u*0_w` z6{)_sVkY?&b7%W^t_%j&thp_c-0GPWR?n(?N#(ban60_)f8nLEj~5><&ac1zwixC6 zKkAwo4@hz8%!uxh6Rod*YV*&1vc_EA&CTQl~vlVGnsxXjW z=m4UdR~1k+K+)5ag>;IB^jWYdreY+d;gz038b(4|?!Hg06mH1ruApu#z)>`$^E=E1 z7)}B>rA)|!XpP85C{3Mt@62*zLH;OMv8jDhME(j7x-^50rLq8syI(d!Urz6$6tf|4 zx+(@x6t)!2q=7IZ2qcEpY^kreEmm`VY#U2s`r)ej32%d?I{A7o?fo4mwW%m|;Cr!* zgBeg(`@pa*YNtvHb~N@8cW30#BIB|S?i?=9uYl>PhwFa5d<~~CA3^hVLD?UF0$P?u zrmGd6)&wJ`Un4J0qQ;gzRI)!`ChO8tu@B1TB~*YRoXRCqR*>%rHB$FU3X0OL2A-Egu}u zpp;SpuM-ig!kgJu*W;qf>v3EVKT%$OU(N#LC)F$A$*9Zjl%&`xNkyk5k2b!d$BN|> z)`}@U-bKllE}}9XZ*8E`3M*;xf}|*1lH{g~!_KplXJvOKZHS8e^g|#T5b-ZD`}>y5 zl!c-yd!%gMvlFPtCV!c$s5I8`3$CKv%8IUlOh>_NTU8p4?1o|r;MB&w9M{Y|WS6>? zMbfsK3Cht9H4L7@E!He*TdhO7J)JjgFfX8(I&xvG3FMX~WoAPEzlc=3`bu%tW6&b8 zJM`$e5%qov;Qw-Q@j>Vx+&sNKe|4d+8Mk}He3M+OE?=X_k*P>LiCP;Ubk(ueqYK{)lzeNizq5oe>pyk)0i?mr~byGo^NRp8? z3{g|9#G;ZG`aX^!j!{|l+Hn`PJvJw08FaZnhDWAy!9#{``ISIvxfCs&um$-%RX36$ zTPme%1C>-p=X;{k=WoF}*({Mm#bnm(IvS8h*)+|Oz8NZt_~}`k!v@I&W1Dyh@*Ib8 z0d-+hTRIbbZiI9xybf@TW|}$%Ee&xqfK%Xd5ifl*(Jqf?GS*uFX!{TvkWGnt$K5Y% zO!f==3o6Gnsm)HZXjC!Eam&EkWnetW)FPZJYI*gdz>iso*MwnOamRgHZ=1jSIRDFG zT+qV~dI?!!k|?7VT``6 zrz|{Wp?A)LOnuyKiDEJ_fYPCTct~lN7bps+n})6q`iqiOb0vXQM5AFIl_t71L=*j> zpIEJd?v2wfeOS_CS7|C`S9no|uECbkg zx&0ROOD;zGno)5nkhzq}GR`)qC7S_6_NQPx_7_eG-*Vvus%EHM)cFRM`tYDB#MRgZ zV{G|YDWm!XHPH2xVOBI-FIf)T4aaHM3lpb=Mb&+`j7!O=f%z?-*VBE+QRoAu6vv{) zYq1l_V`#sHZmbjZf}q_X_aMRcXh`ky_@Yk(aVdH)jQR3UIYcj!eXMdnZeW%Bo=_pL zu0ru(LxNwwXp|QzNKrQ0q8z$i0S%=r*vRIvLwl$8Np?9U_jvvSO`2V?D5VAO4#gv_ zbt@r-GUXiY#!>n~z0aT*okipz%6Gdvz)L(Ttw4sII292pFIo?@^owQE`v2|i8|W?t z514wThO1W*d6y%7WO=3K?I`NTs@sE9oSpL~sqRclADJm>xF8grC0&Q-)y(G;s>Bs| zZ0T(2HEcsEpJ1hBaS*06PIZi{Qhu4blgPdp-5!+JTe{3zI6%(;D|}>8Ml>rErQfrK z{$PTIMuu`Pg3bQBtLyW3*F&}I7ZK|D+*GslTm+!!O?qh#5)=c0|DjT?s77dKu})M} zBhZPjRXx@wqEg*r*_uY$UcEJZOb?3!k`0YMvL&5qAi;}R*8XYiPhhC_em?*3!~4Gt ze|$Uq=d0fqI`;L&FPE<_h955fcJUUp)Yq5q_iFVjRc$i~-#}pOwB35`w?(b@$hg3Y z7T3A<_n`TC{qg+Q;pMxl4;Qbl-+$~u0s6Lk)by6i8K|zk>D-GUW7-6iUS_MY-<)8I zzepvLx|fR(H62Fli0#GE*_AHL3W^$q@GK|m-7CnieFpxBKK;N(^&ETy;)a~crp(Sv zgtYseFN2xRHp3_{NkCvrV*)YLmhpuuNJUmv!L3*nE4VGG0ON3u{;nw_Fg>3uX+2Hh zql*BtoWHuh{N)1O7k<3_;S=n|@lNNLC4qJW0ph}W0!#SK3IxUOY9p2)>n=}My`>g% z$5i^cx=28*g|E zh+VD0%S;BkFFF;L;zhFwQF7$lJvkBfxiv&R%c8V#`3qqkQFouUMEO}XB(;Tk)D00_ zG4%jM9SZv}9iomz-g*Kej|CsgL-55nc{Y6hO{OB>WB#8OtM}VHUub({zUl+)pwjbQ zWH`us6pS3?^+15c`zoPv2`ex?v4y77iXiV)%|~Zw)i5`ag1Lz*VA!eJ)^ZTWDyKaG z5OOF7jj77a&i!b&u?T>SHZGvWm_a=elN8bYQuOT^Ot~h6=hBs_8FwSr~_ZD+?SJ z&H~bO#M*o(3R^7L`+x3lm2l1GXaSI@YTUrBD`+&lmM0w5@eqO8i3rfFw9ODmHg z2!bF8f*{Gi6OTZTu9sq&F zMF1wrlq-kuKmSev0I>Q&2|tI~cxu!5AM342t_KDIEtCZpIe!qvxqAU&Vla`)nCQ2oFwa{gtguKE8crb}afuNXXe}4DS2gRXD)g$FQB~2N zs#J!E9XM&jDu5_}kmTkY5tqND8#K^sJ;*0{Wz0gDE`gUXn~Z$G5XI%IIA*DNF}A90 z%P7d8x*-16Sxp)7l8;-rjy_k+6`GxW_0p=y-U#8ukOtk3rlAbs@m_sQfHc$?3Kp)o zF(c|&v_X=cvuA01B7i%ED2DWy+gVi?7Lll*`fY~F6lCq#;YHXmL zST{I|G5jrN1&R&INymmnMObnLRVB5CLQ-IN6@^i_A-3vOCRK^J8g4a>R#irIWD}VG z7j0NB;n}S%TvqT#pA%X7v=x&EMVu!wx4$UkO~LH~bO>$NOX3J-zl_;gqWnSHxtnp3 zSgnXQS>b2_&l-o8Ts6K~k{u9TX*Kjn>ypJOniV`^4NhMm?f*WFPOUQ6jHi2&;lyu; z3)&cBUnSZ}hrkPC`W5jzt-Dxv=XDqD z?nJeg?9DP}yA>8-J_c3K4qfBQ_Gi4jAYNesy192i-$Ap#v8dLi%(@`0QoP8r@;T|x z!4&m{hd5|bChGtfBXg1PIlRFo2I8E-hx8XbtJkFq2d_fS!czLnqeG+$CNPk%6Q}l} zDXOHd))!x3H(9eqxiDe_gxdfkn;uwXlHTaOz_!`om$kpYeb-tw8*t1o{4aOU%w~A@LQ4NhtiK!;a6`Gy@Qj5<%{Eu>Qw?p zPTnhvq1NkvrUe837aGsh_618lEalQP)9<{tKo|nU;Pva%YBbY0N9}9Tu}l~Xcr5H@ zbX);%h0^*(fqqu-LbF;J^1HvZ`cZ@#d>zLd&Sg|IlC$mVIri>sa~*I7E!x7IigQFM zX63PY6qxZe)ekI4_+Zi!=dyo(RRh0v_iWS5*I7*5FYGeKqRnKqUL;5LrKn2ElVV<0 zb+fSm_?E3>Hmx_$Ls*a)66oH!nN6V?{UKjGO1ZQnw$1wC18Jbj@17bIxnG0Iq>c|k zzYuQps$;sp4jzj0hgwxvn- zT@TGDI`KrC0~1S*vQX8e(gO===lI%i(<4YBcGW25fQ9|TQ>WmqnSI+D<@dTm_wCR9 zopTE|2EfY-K7mP`gr$6 z>6P&jxG&o-;bd1cA{{QncV@hJYkJ;9IPd7pI~1V%mz0A>8x>%_An2g6FqpWj0XQ)R z%Y+wXBjvL{WaT~vf8@Fy<;0Qs-KddYn%i17>MR?z+0!gGnqGu>dqJGfKLZJS+ao