From 71d59bc0d17b098d91f8a13a9fefb622c00d1cc7 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 26 May 2017 15:28:15 +0100 Subject: [PATCH] Generated compressed assets --- public/assets/js/links.js.map | 2 +- public/assets/js/maps.js | 2 +- public/assets/js/maps.js.br | Bin 114878 -> 115116 bytes public/assets/js/maps.js.gz | Bin 131615 -> 131628 bytes public/assets/js/maps.js.map | 2 +- public/assets/js/newnote.js | 2 +- public/assets/js/newnote.js.br | Bin 120978 -> 120977 bytes public/assets/js/newnote.js.gz | Bin 138636 -> 138653 bytes public/assets/js/newnote.js.map | 2 +- public/assets/js/piwik.js.map | 2 +- public/assets/js/places.js | 2 +- public/assets/js/places.js.br | Bin 115222 -> 115282 bytes public/assets/js/places.js.gz | Bin 131948 -> 131859 bytes public/assets/js/places.js.map | 2 +- 14 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/assets/js/links.js.map b/public/assets/js/links.js.map index 08200dca..d780c8a2 100644 --- a/public/assets/js/links.js.map +++ b/public/assets/js/links.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:/webpack/bootstrap aba61f32f26de47ad2ef?e271***","webpack:///links.js"],"names":["__webpack_require__","moduleId","installedModules","exports","module","i","l","modules","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","youtubeRegex","spotifyRegex","notes","document","querySelectorAll","_step","_iterator","Symbol","iterator","_iteratorNormalCompletion","next","done","note","ytid","textContent","match","ytcontainer","createElement","classList","add","ytiframe","setAttribute","appendChild","spotifyid","sid","replace","siframe"],"mappings":"mBAIA,QAAAA,qBAAAC,UAGA,GAAAC,iBAAAD,UACA,MAAAC,kBAAAD,UAAAE,OAGA,IAAAC,QAAAF,iBAAAD,WACAI,EAAAJ,SACAK,GAAA,EACAH,WAUA,OANAI,SAAAN,UAAAO,KAAAJ,OAAAD,QAAAC,OAAAA,OAAAD,QAAAH,qBAGAI,OAAAE,GAAA,EAGAF,OAAAD,QAvBA,GAAAD,oBA4BAF,qBAAAS,EAAAF,QAGAP,oBAAAU,EAAAR,iBAGAF,oBAAAK,EAAA,SAAAM,OAA2C,MAAAA,QAG3CX,oBAAAY,EAAA,SAAAT,QAAAU,KAAAC,QACAd,oBAAAe,EAAAZ,QAAAU,OACAG,OAAAC,eAAAd,QAAAU,MACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,UAMAd,oBAAAqB,EAAA,SAAAjB,QACA,GAAAU,QAAAV,QAAAA,OAAAkB,WACA,WAA2B,MAAAlB,QAAA,SAC3B,WAAiC,MAAAA,QAEjC,OADAJ,qBAAAY,EAAAE,OAAA,IAAAA,QACAA,QAIAd,oBAAAe,EAAA,SAAAQ,OAAAC,UAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,OAAAC,WAGtDxB,oBAAA2B,EAAA,GAGA3B,oBAAAA,oBAAA4B,EAAA,gEC9DA,IAAIC,cAAe,+BACfC,aAAe,wCAEfC,MAAQC,SAASC,iBAAiB,0FAEtC,IAAA,GAAAC,OAAAC,UAAiBJ,MAAjBK,OAAAC,cAAAC,2BAAAJ,MAAAC,UAAAI,QAAAC,MAAAF,2BAAA,EAAwB,CAAA,GAAfG,MAAeP,MAAAvB,MAChB+B,KAAOD,KAAKE,YAAYC,MAAMf,aAClC,IAAIa,KAAM,CACN,GAAIG,aAAcb,SAASc,cAAc,MACzCD,aAAYE,UAAUC,IAAI,YAC1B,IAAIC,UAAWjB,SAASc,cAAc,SACtCG,UAASF,UAAUC,IAAI,WACvBC,SAASC,aAAa,MAAO,iCAAmCR,KAAK,IACrEO,SAASC,aAAa,cAAe,GACrCD,SAASC,aAAa,kBAAmB,QACzCL,YAAYM,YAAYF,UACxBR,KAAKU,YAAYN,aAErB,GAAIO,WAAYX,KAAKE,YAAYC,MAAMd,aACvC,IAAIsB,UAAW,CACX,GAAIC,KAAMD,UAAU,GAAGE,QAAQ,IAAK,KAChCC,QAAUvB,SAASc,cAAc,SACrCS,SAAQR,UAAUC,IAAI,WACtBO,QAAQL,aAAa,MAAO,0CAA4CG,KACxEE,QAAQL,aAAa,cAAe,GACpCK,QAAQL,aAAa,oBAAqB,QAC1CT,KAAKU,YAAYI","file":"public/assets/js/links.js.map","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap aba61f32f26de47ad2ef","//links.js\n\nlet youtubeRegex = /watch\\?v=([A-Za-z0-9\\-_]+)\\b/;\nlet spotifyRegex = /https\\:\\/\\/play\\.spotify\\.com\\/(.*)\\b/;\n\nlet notes = document.querySelectorAll('.e-content');\n\nfor (let note of notes) {\n let ytid = note.textContent.match(youtubeRegex);\n if (ytid) {\n let ytcontainer = document.createElement('div');\n ytcontainer.classList.add('container');\n let ytiframe = document.createElement('iframe');\n ytiframe.classList.add('youtube');\n ytiframe.setAttribute('src', 'https://www.youtube.com/embed/' + ytid[1]);\n ytiframe.setAttribute('frameborder', 0);\n ytiframe.setAttribute('allowfullscreen', 'true');\n ytcontainer.appendChild(ytiframe);\n note.appendChild(ytcontainer);\n }\n let spotifyid = note.textContent.match(spotifyRegex);\n if (spotifyid) {\n let sid = spotifyid[1].replace('/', ':');\n let siframe = document.createElement('iframe');\n siframe.classList.add('spotify');\n siframe.setAttribute('src', 'https://embed.spotify.com/?uri=spotify:' + sid);\n siframe.setAttribute('frameborder', 0);\n siframe.setAttribute('allowtransparency', 'true');\n note.appendChild(siframe);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./links.js"]} \ No newline at end of file +{"version":3,"sources":["webpack:/webpack/bootstrap 43ebdd943e2791855d4e?c4b5***","webpack:///links.js"],"names":["__webpack_require__","moduleId","installedModules","exports","module","i","l","modules","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","youtubeRegex","spotifyRegex","notes","document","querySelectorAll","_step","_iterator","Symbol","iterator","_iteratorNormalCompletion","next","done","note","ytid","textContent","match","ytcontainer","createElement","classList","add","ytiframe","setAttribute","appendChild","spotifyid","sid","replace","siframe"],"mappings":"mBAIA,QAAAA,qBAAAC,UAGA,GAAAC,iBAAAD,UACA,MAAAC,kBAAAD,UAAAE,OAGA,IAAAC,QAAAF,iBAAAD,WACAI,EAAAJ,SACAK,GAAA,EACAH,WAUA,OANAI,SAAAN,UAAAO,KAAAJ,OAAAD,QAAAC,OAAAA,OAAAD,QAAAH,qBAGAI,OAAAE,GAAA,EAGAF,OAAAD,QAvBA,GAAAD,oBA4BAF,qBAAAS,EAAAF,QAGAP,oBAAAU,EAAAR,iBAGAF,oBAAAK,EAAA,SAAAM,OAA2C,MAAAA,QAG3CX,oBAAAY,EAAA,SAAAT,QAAAU,KAAAC,QACAd,oBAAAe,EAAAZ,QAAAU,OACAG,OAAAC,eAAAd,QAAAU,MACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,UAMAd,oBAAAqB,EAAA,SAAAjB,QACA,GAAAU,QAAAV,QAAAA,OAAAkB,WACA,WAA2B,MAAAlB,QAAA,SAC3B,WAAiC,MAAAA,QAEjC,OADAJ,qBAAAY,EAAAE,OAAA,IAAAA,QACAA,QAIAd,oBAAAe,EAAA,SAAAQ,OAAAC,UAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,OAAAC,WAGtDxB,oBAAA2B,EAAA,GAGA3B,oBAAAA,oBAAA4B,EAAA,gEC9DA,IAAIC,cAAe,+BACfC,aAAe,wCAEfC,MAAQC,SAASC,iBAAiB,0FAEtC,IAAA,GAAAC,OAAAC,UAAiBJ,MAAjBK,OAAAC,cAAAC,2BAAAJ,MAAAC,UAAAI,QAAAC,MAAAF,2BAAA,EAAwB,CAAA,GAAfG,MAAeP,MAAAvB,MAChB+B,KAAOD,KAAKE,YAAYC,MAAMf,aAClC,IAAIa,KAAM,CACN,GAAIG,aAAcb,SAASc,cAAc,MACzCD,aAAYE,UAAUC,IAAI,YAC1B,IAAIC,UAAWjB,SAASc,cAAc,SACtCG,UAASF,UAAUC,IAAI,WACvBC,SAASC,aAAa,MAAO,iCAAmCR,KAAK,IACrEO,SAASC,aAAa,cAAe,GACrCD,SAASC,aAAa,kBAAmB,QACzCL,YAAYM,YAAYF,UACxBR,KAAKU,YAAYN,aAErB,GAAIO,WAAYX,KAAKE,YAAYC,MAAMd,aACvC,IAAIsB,UAAW,CACX,GAAIC,KAAMD,UAAU,GAAGE,QAAQ,IAAK,KAChCC,QAAUvB,SAASc,cAAc,SACrCS,SAAQR,UAAUC,IAAI,WACtBO,QAAQL,aAAa,MAAO,0CAA4CG,KACxEE,QAAQL,aAAa,cAAe,GACpCK,QAAQL,aAAa,oBAAqB,QAC1CT,KAAKU,YAAYI","file":"public/assets/js/links.js.map","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 43ebdd943e2791855d4e","//links.js\n\nlet youtubeRegex = /watch\\?v=([A-Za-z0-9\\-_]+)\\b/;\nlet spotifyRegex = /https\\:\\/\\/play\\.spotify\\.com\\/(.*)\\b/;\n\nlet notes = document.querySelectorAll('.e-content');\n\nfor (let note of notes) {\n let ytid = note.textContent.match(youtubeRegex);\n if (ytid) {\n let ytcontainer = document.createElement('div');\n ytcontainer.classList.add('container');\n let ytiframe = document.createElement('iframe');\n ytiframe.classList.add('youtube');\n ytiframe.setAttribute('src', 'https://www.youtube.com/embed/' + ytid[1]);\n ytiframe.setAttribute('frameborder', 0);\n ytiframe.setAttribute('allowfullscreen', 'true');\n ytcontainer.appendChild(ytiframe);\n note.appendChild(ytcontainer);\n }\n let spotifyid = note.textContent.match(spotifyRegex);\n if (spotifyid) {\n let sid = spotifyid[1].replace('/', ':');\n let siframe = document.createElement('iframe');\n siframe.classList.add('spotify');\n siframe.setAttribute('src', 'https://embed.spotify.com/?uri=spotify:' + sid);\n siframe.setAttribute('frameborder', 0);\n siframe.setAttribute('allowtransparency', 'true');\n note.appendChild(siframe);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./links.js"]} \ No newline at end of file diff --git a/public/assets/js/maps.js b/public/assets/js/maps.js index 655aa29c..7e1a7584 100644 --- a/public/assets/js/maps.js +++ b/public/assets/js/maps.js @@ -1,2 +1,2 @@ -!function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};__webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.i=function(value){return value},__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=9)}([function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _toArray(arr){return Array.isArray(arr)?arr:Array.from(arr)}function addMap(div){var position=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,places=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,dataLatitude=div.dataset.latitude,dataLongitude=div.dataset.longitude,data=window["geojson"+div.dataset.id];if(null==data&&(data={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[dataLongitude,dataLatitude]},properties:{title:"Current Location",icon:"circle-stroked",uri:"current-location"}}]}),null!=places){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=places[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var place=_step.value,placeLongitude=(0,_parseLocation2.default)(place.location).longitude,placeLatitude=(0,_parseLocation2.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=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}null!=position&&(dataLongitude=position.coords.longitude,dataLatitude=position.coords.latitude);var map=new _mapboxGl2.default.Map({container:div,style:"mapbox://styles/mapbox/streets-v9",center:[dataLongitude,dataLatitude],zoom:15});if(null==position&&map.scrollZoom.disable(),map.addControl(new _mapboxGl2.default.NavigationControl),div.appendChild(makeMapMenu(map)),map.on("load",function(){map.addLayer({id:"points",type:"symbol",source:{type:"geojson",data:data},layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})}),null!=position&&map.on("click",function(e){var features=map.queryRenderedFeatures(e.point,{layer:["points"]});features.length&&(map.flyTo({center:features[0].geometry.coordinates}),(0,_selectPlace2.default)(features[0].properties.uri))}),data.features&&data.features.length>1){var bounds=new _mapboxGl2.default.LngLatBounds,_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=data.features[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var feature=_step2.value;bounds.extend(feature.geometry.coordinates)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}map.fitBounds(bounds,{padding:65})}return map}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=addMap;var _mapboxGl2=_interopRequireDefault(__webpack_require__(3)),_parseLocation2=_interopRequireDefault(__webpack_require__(1)),_selectPlace2=_interopRequireDefault(__webpack_require__(2));_mapboxGl2.default.accessToken="pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw";var titlecase=function(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(" ")},addMapTypeOption=function(map,menu,option){var checked=arguments.length>3&&void 0!==arguments[3]&&arguments[3],input=document.createElement("input");input.setAttribute("id",option),input.setAttribute("type","radio"),input.setAttribute("name","toggle"),input.setAttribute("value",option),1==checked&&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)},makeMapMenu=function(map){var mapMenu=document.createElement("div");return mapMenu.classList.add("map-menu"),addMapTypeOption(map,mapMenu,"streets",!0),addMapTypeOption(map,mapMenu,"satellite-streets"),mapMenu}},function(module,exports,__webpack_require__){"use strict";function parseLocation(text){var coords=/POINT\((.*)\)/.exec(text),parsedLongitude=coords[1].split(" ")[0];return{latitude:coords[1].split(" ")[1],longitude:parsedLongitude}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=parseLocation},function(module,exports,__webpack_require__){"use strict";function selectPlaceInForm(uri){document.querySelector("select")&&("current-location"==uri?document.querySelector('select [id="option-coords"]').selected=!0:document.querySelector('select [value="'+uri+'"]').selected=!0)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=selectPlaceInForm},function(module,exports){!function(f){if("object"==typeof exports&&void 0!==module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).mapboxgl=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(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||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,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)n.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 n=this.shelves[t].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]=1+(0|this.stats[e])}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(_dereq_,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){void 0===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(_dereq_,module,exports){!function(e,t){t("object"==typeof exports&&void 0!==module?exports:e.WhooTS=e.WhooTS||{})}(this,function(e){function t(e,t,r,n,i,s){return s=s||{},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("&")}function o(e,t,o){var n=r(256*e,256*(t=Math.pow(2,o)-t-1),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);return[e*r-2*Math.PI*6378137/2,t*r-2*Math.PI*6378137/2]}e.getURL=t,e.getTileBBox=o,e.getMercCoords=r,Object.defineProperty(e,"__esModule",{value:!0})})},{}],5:[function(_dereq_,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.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)===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(_dereq_,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=_dereq_("geojson-area");module.exports=rewind},{"geojson-area":6}],8:[function(_dereq_,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))));(c=(h=g[S-1])[n])>=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=_dereq_("./feature")},{"./feature":10}],9:[function(_dereq_,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(_dereq_,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){signedArea(e)<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:1/0*(s?-1:1);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))*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(_dereq_,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(_dereq_,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);select(t,a,o,Math.max(s,Math.floor(o-p*m/f+n)),Math.min(r,Math.floor(o+(f-p)*m/f+n)),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(_dereq_,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(_dereq_,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)}void 0!==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(_dereq_,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("/"))||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 BufferMethods,lastStr,lastStrEncoded,ieee754=_dereq_("ieee754");(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)+4294967296*this.buf.readUInt32LE(this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+4294967296*this.buf.readInt32LE(this.pos+4);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,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./buffer":24}],26:[function(_dereq_,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(_dereq_,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);partialSort(a,t,Math.max(r,Math.floor(t-e*s/f+i)),Math.min(o,Math.floor(t+(f-e)*s/f+i)),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(_dereq_,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;return{cluster:!0,point_count:e,point_count_abbreviated:e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e}}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=_dereq_("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)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),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)).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;return e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0)>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||void 0===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=_dereq_("./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(_dereq_,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,"./vertex_array_type":60}],45:[function(_dereq_,module,exports){"use strict";var ArrayGroup=_dereq_("./array_group"),BufferGroup=_dereq_("./buffer_group"),util=_dereq_("../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||y<0||y>=EXTENT)){var n=r.prepareSegment(4),u=n.vertexLength;addCircleVertex(r.layoutVertexArray,o,y,-1,-1),addCircleVertex(r.layoutVertexArray,o,y,1,-1),addCircleVertex(r.layoutVertexArray,o,y,1,1),addCircleVertex(r.layoutVertexArray,o,y,-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}],47:[function(_dereq_,module,exports){"use strict";var Bucket=_dereq_("../bucket"),createElementArrayType=_dereq_("../element_array_type"),loadGeometry=_dereq_("../load_geometry"),earcut=_dereq_("earcut"),classifyRings=_dereq_("../../util/classify_rings"),fillInterface={layoutAttributes:[{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 t(t){e.call(this,t,fillInterface)}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.arrays,r=0,a=classifyRings(loadGeometry(e),500);rEXTENT)||e.y===t.y&&(e.y<0||e.y>EXTENT)}var Bucket=_dereq_("../bucket"),createElementArrayType=_dereq_("../element_array_type"),loadGeometry=_dereq_("../load_geometry"),EXTENT=_dereq_("../extent"),earcut=_dereq_("earcut"),classifyRings=_dereq_("../../util/classify_rings"),fillExtrusionInterface={layoutAttributes:[{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 t(t){e.call(this,t,fillExtrusionInterface)}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.arrays,r=0,a=classifyRings(loadGeometry(e),500);r=1){var A=d[h-1];if(!isBoundaryEdge(g,A)){var E=g.sub(A)._perp()._unit();addVertex(t.layoutVertexArray,g.x,g.y,E.x,E.y,0,0,m),addVertex(t.layoutVertexArray,g.x,g.y,E.x,E.y,0,1,m),m+=A.dist(g),addVertex(t.layoutVertexArray,A.x,A.y,E.x,E.y,0,0,m),addVertex(t.layoutVertexArray,A.x,A.y,E.x,E.y,0,1,m);var v=u.vertexLength;t.elementArray.emplaceBack(v,v+1,v+2),t.elementArray.emplaceBack(v+1,v+2,v+3),u.vertexLength+=4,u.primitiveLength+=2}}p.push(g.x),p.push(g.y)}}}for(var _=earcut(p,s),T=0;T<_.length;T+=3)t.elementArray.emplaceBack(c[_[T]],c[_[T+1]],c[_[T+2]]);u.primitiveLength+=_.length/3}t.populatePaintArrays(e.properties)},t}(Bucket);FillExtrusionBucket.programInterface=fillExtrusionInterface,module.exports=FillExtrusionBucket},{"../../util/classify_rings":198,"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,earcut:5}],49:[function(_dereq_,module,exports){"use strict";function addLineVertex(e,t,r,i,a,n,d){e.emplaceBack(t.x<<1|i,t.y<<1|a,Math.round(EXTRUDE_SCALE*r.x)+128,Math.round(EXTRUDE_SCALE*r.y)+128,1+(0===n?0:n<0?-1:1)|(d*LINE_DISTANCE_SCALE&63)<<2,d*LINE_DISTANCE_SCALE>>6)}var Bucket=_dereq_("../bucket"),createElementArrayType=_dereq_("../element_array_type"),loadGeometry=_dereq_("../load_geometry"),EXTENT=_dereq_("../extent"),VectorTileFeature=_dereq_("vector-tile").VectorTileFeature,EXTRUDE_SCALE=63,COS_HALF_SHARP_CORNER=Math.cos(Math.PI/180*37.5),LINE_DISTANCE_SCALE=.5,MAX_LINE_DISTANCE=Math.pow(2,14)/LINE_DISTANCE_SCALE,lineInterface={layoutAttributes:[{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,15);s=2&&e[l-1].equals(e[l-2]);)l--;for(var o=0;oo){var R=y.dist(m);if(R>2*p){var g=y.sub(y.sub(m)._mult(p/R)._round());d.distance+=g.dist(m),d.addCurrentVertex(g,d.distance,x.mult(1),0,0,!1,h),m=g}}var F=m&&E,B=F?r:E?A:L;if(F&&"round"===B&&(Na&&(B="bevel"),"bevel"===B&&(N>2&&(B="flipbevel"),N100)I=C.clone().mult(-1);else{var k=x.x*C.y-x.y*C.x>0?-1:1,D=N*x.add(C).mag()/x.sub(C).mag();I._perp()._mult(D*k)}d.addCurrentVertex(y,d.distance,I,0,0,!1,h),d.addCurrentVertex(y,d.distance,I.mult(-1),0,0,!1,h)}else if("bevel"===B||"fakeround"===B){var P=x.x*C.y-x.y*C.x>0,U=-Math.sqrt(N*N-1);if(P?(f=0,v=U):(v=0,f=U),S||d.addCurrentVertex(y,d.distance,x,v,f,!1,h),"fakeround"===B){for(var q=Math.floor(8*(.5-(T-.5))),M=void 0,O=0;O=0;X--)M=x.mult((X+1)/(q+1))._add(C)._unit(),d.addPieSliceVertex(y,d.distance,M,P,h)}E&&d.addCurrentVertex(y,d.distance,C,-v,-f,!1,h)}else"butt"===B?(S||d.addCurrentVertex(y,d.distance,x,0,0,!1,h),E&&d.addCurrentVertex(y,d.distance,C,0,0,!1,h)):"square"===B?(S||(d.addCurrentVertex(y,d.distance,x,1,1,!1,h),d.e1=d.e2=-1),E&&d.addCurrentVertex(y,d.distance,C,-1,-1,!1,h)):"round"===B&&(S||(d.addCurrentVertex(y,d.distance,x,0,0,!1,h),d.addCurrentVertex(y,d.distance,x,1,1,!0,h),d.e1=d.e2=-1),E&&(d.addCurrentVertex(y,d.distance,C,-1,-1,!0,h),d.addCurrentVertex(y,d.distance,C,0,0,!1,h)));if(b&&V2*p){var w=y.add(E.sub(y)._mult(p/H)._round());d.distance+=w.dist(y),d.addCurrentVertex(w,d.distance,C.mult(1),0,0,!1,h),y=w}}S=!1}_.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,"vector-tile":34}],50:[function(_dereq_,module,exports){"use strict";function addVertex(e,t,o,a,i,r,n,s,l,c,u,y){e.emplaceBack(t,o,Math.round(64*a),Math.round(64*i),r/4,n/4,packUint8ToFloat(10*(u||0),y%256),packUint8ToFloat(10*(l||0),10*Math.min(c||25,25)),s?s[0]:void 0,s?s[1]:void 0,s?s[2]:void 0)}function addCollisionBoxVertex(e,t,o,a,i){return e.emplaceBack(t.x,t.y,Math.round(o.x),Math.round(o.y),10*a,10*i)}function getSizeData(e,t,o){var a={isFeatureConstant:t.isLayoutValueFeatureConstant(o),isZoomConstant:t.isLayoutValueZoomConstant(o)};if(a.isFeatureConstant&&(a.layoutSize=t.getLayoutValue(o,{zoom:e+1})),!a.isZoomConstant){for(var i=t.getLayoutValueStopZoomLevels(o),r=0;rEXTENT||r.y<0||r.y>EXTENT);if(!h||n){var s=n||v;a.addSymbolInstance(r,i,t,o,a.layers[0],s,a.collisionBoxArray,e.index,e.sourceLayerIndex,a.index,u,x,f,p,d,b,{zoom:a.zoom},e.properties)}};if("line"===s["symbol-placement"])for(var B=0,M=clipLine(e.geometry,0,0,EXTENT,EXTENT);B=0;r--)if(o.dist(i[r])7*Math.PI/4)continue}else if(i&&r&&d<=3*Math.PI/4||d>5*Math.PI/4)continue}else if(i&&r&&(d<=Math.PI/2||d>3*Math.PI/2))continue;var g=x.tl,f=x.tr,b=x.bl,v=x.br,S=x.tex,I=x.anchorPoint,z=Math.max(y+Math.log(x.minScale)/Math.LN2,p),B=Math.min(y+Math.log(x.maxScale)/Math.LN2,25);if(!(B<=z)){z===p&&(z=0);var M=Math.round(x.glyphAngle/(2*Math.PI)*256),L=e.prepareSegment(4),A=L.vertexLength;addVertex(u,I.x,I.y,g.x,g.y,S.x,S.y,a,z,B,p,M),addVertex(u,I.x,I.y,f.x,f.y,S.x+S.w,S.y,a,z,B,p,M),addVertex(u,I.x,I.y,b.x,b.y,S.x,S.y+S.h,a,z,B,p,M),addVertex(u,I.x,I.y,v.x,v.y,S.x+S.w,S.y+S.h,a,z,B,p,M),c.emplaceBack(A,A+1,A+2),c.emplaceBack(A+1,A+2,A+3),L.vertexLength+=4,L.primitiveLength+=2}}e.populatePaintArrays(s)},SymbolBucket.prototype.addToDebugBuffers=function(e){for(var t=this,o=this.arrays.collisionBox,a=o.layoutVertexArray,i=o.elementArray,r=-e.angle,n=e.yStretch,s=0,l=t.symbolInstances;sSymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),A>SymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var T=(o[WritingMode.vertical]?WritingMode.vertical:0)|(o[WritingMode.horizontal]?WritingMode.horizontal:0);this.symbolInstances.push({textBoxStartIndex:B,textBoxEndIndex:M,iconBoxStartIndex:L,iconBoxEndIndex:A,glyphQuads:S,iconQuads:v,anchor:e,featureIndex:s,featureProperties:g,writingModes:T})},SymbolBucket.programInterfaces=symbolInterfaces,SymbolBucket.MAX_INSTANCES=65535,module.exports=SymbolBucket},{"../../shaders/encode_attribute":81,"../../symbol/anchor":160,"../../symbol/clip_line":162,"../../symbol/collision_feature":164,"../../symbol/get_anchors":166,"../../symbol/mergelines":169,"../../symbol/quads":170,"../../symbol/shaping":171,"../../symbol/transform_text":173,"../../util/classify_rings":198,"../../util/find_pole_of_inaccessibility":204,"../../util/script_detection":211,"../../util/token":214,"../../util/util":215,"../array_group":44,"../buffer_group":52,"../element_array_type":53,"../extent":54,"../load_geometry":56,"point-geometry":26,"vector-tile":34}],51:[function(_dereq_,module,exports){"use strict";var AttributeType={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},Buffer=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};Buffer.fromStructArray=function(t,e){return new Buffer(t.serialize(),t.constructor.serialize(),e)},Buffer.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)},Buffer.prototype.enableAttributes=function(t,e){for(var r=this,f=0;f0?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":215,"./extent":54}],57:[function(_dereq_,module,exports){"use strict";var PosArray=_dereq_("../util/struct_array")({members:[{name:"a_pos",type:"Int16",components:2}]});module.exports=PosArray},{"../util/struct_array":213}],58:[function(_dereq_,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=_dereq_("./vertex_array_type"),util=_dereq_("../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;a4)for(;p90||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(Array.isArray(t)&&2===t.length)return new LngLat(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new LngLat(Number(t.lng),Number(t.lat));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":215}],63:[function(_dereq_,module,exports){"use strict";var LngLat=_dereq_("./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(_dereq_,module,exports){"use strict";var LngLat=_dereq_("./lng_lat"),Point=_dereq_("point-geometry"),Coordinate=_dereq_("./coordinate"),util=_dereq_("../util/util"),interp=_dereq_("../style-spec/util/interpolate"),TileCoord=_dereq_("../source/tile_coord"),EXTENT=_dereq_("../data/extent"),glmatrix=_dereq_("@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:{},renderWorldCopies:{},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.renderWorldCopies.get=function(){return this._renderWorldCopies},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.getVisibleWrappedCoordinates=function(t){for(var i=this.pointCoordinate(new Point(0,0),0),o=this.pointCoordinate(new Point(this.width,0),0),e=Math.floor(i.column),r=Math.floor(o.column),n=[t],s=e;s<=r;s++)0!==s&&n.push(new TileCoord(t.z,t.x,t.y,s));return n},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){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))*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)),this._renderWorldCopies&&(this.center=this.center.wrap())},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 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:(0-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=-90,n=90,s=-180,a=180,h=this.size,c=this._unmodified;if(this.latRange){var m=this.latRange;r=this.latY(m[1]),t=(n=this.latY(m[0]))-rn&&(e=n-f)}if(this.lngRange){var d=this.x,g=h.x/2;d-ga&&(o=a-g)}void 0===o&&void 0===e||(this.center=this.unproject(new Point(void 0!==o?o:this.x,void 0!==e?e: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),r=1.01*(Math.cos(Math.PI/2-this._pitch)*o+this.cameraToCenterDistance),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)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=n}},Object.defineProperties(Transform.prototype,prototypeAccessors),module.exports=Transform},{"../data/extent":54,"../source/tile_coord":96,"../style-spec/util/interpolate":123,"../util/util":215,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":1,"point-geometry":26}],65:[function(_dereq_,module,exports){"use strict";var browser=_dereq_("./util/browser"),mapboxgl=module.exports={};mapboxgl.version=_dereq_("../package.json").version,mapboxgl.workerCount=Math.max(Math.floor(browser.hardwareConcurrency/2),1),mapboxgl.Map=_dereq_("./ui/map"),mapboxgl.NavigationControl=_dereq_("./ui/control/navigation_control"),mapboxgl.GeolocateControl=_dereq_("./ui/control/geolocate_control"),mapboxgl.AttributionControl=_dereq_("./ui/control/attribution_control"),mapboxgl.ScaleControl=_dereq_("./ui/control/scale_control"),mapboxgl.FullscreenControl=_dereq_("./ui/control/fullscreen_control"),mapboxgl.Popup=_dereq_("./ui/popup"),mapboxgl.Marker=_dereq_("./ui/marker"),mapboxgl.Style=_dereq_("./style/style"),mapboxgl.LngLat=_dereq_("./geo/lng_lat"),mapboxgl.LngLatBounds=_dereq_("./geo/lng_lat_bounds"),mapboxgl.Point=_dereq_("point-geometry"),mapboxgl.Evented=_dereq_("./util/evented"),mapboxgl.supported=_dereq_("./util/browser").supported;var config=_dereq_("./util/config");mapboxgl.config=config;var rtlTextPlugin=_dereq_("./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":91,"./style/style":149,"./ui/control/attribution_control":176,"./ui/control/fullscreen_control":177,"./ui/control/geolocate_control":178,"./ui/control/navigation_control":180,"./ui/control/scale_control":181,"./ui/map":190,"./ui/marker":191,"./ui/popup":192,"./util/browser":195,"./util/config":199,"./util/evented":203,"point-geometry":26}],66:[function(_dereq_,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 g=0,p=i.coveringTiles({tileSize:n});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":195,"./vertex_array_object":80,"@mapbox/gl-matrix":1}],70:[function(_dereq_,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=_dereq_("../util/util");module.exports=drawRaster},{"../util/util":215}],74:[function(_dereq_,module,exports){"use strict";function drawSymbols(t,e,i,o){if(!t.isOpaquePass){var a=!(i.layout["text-allow-overlap"]||i.layout["icon-allow-overlap"]||i.layout["text-ignore-placement"]||i.layout["icon-ignore-placement"]),n=t.gl;a?n.disable(n.STENCIL_TEST):n.enable(n.STENCIL_TEST),t.setDepthSublayer(0),t.depthMask(!1),drawLayerSymbols(t,e,i,o,!1,i.paint["icon-translate"],i.paint["icon-translate-anchor"],i.layout["icon-rotation-alignment"],i.layout["icon-rotation-alignment"]),drawLayerSymbols(t,e,i,o,!0,i.paint["text-translate"],i.paint["text-translate-anchor"],i.layout["text-rotation-alignment"],i.layout["text-pitch-alignment"]),e.map.showCollisionBoxes&&drawCollisionDebug(t,e,i,o)}}function drawLayerSymbols(t,e,i,o,a,n,r,s,l){if(a||!t.style.sprite||t.style.sprite.loaded()){var u=t.gl,m="map"===s,f="map"===l,c=f;c?u.enable(u.DEPTH_TEST):u.disable(u.DEPTH_TEST);for(var p,_,g=0,y=o;gthis.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);r.opacities[a]=a<=t?r.changeOpacities[a]+o: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(_dereq_,module,exports){"use strict";var util=_dereq_("../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;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);r.blendColor(1/8,1/8,1/8,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":88}],79:[function(_dereq_,module,exports){"use strict";_dereq_("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// Unpack a pair of values that have been packed into a single float.\n// The packed values are assumed to be 8-bit unsigned integers, and are\n// packed like so:\n// packedValue = floor(input[0]) * 256 + input[1],\nvec2 unpack_float(const float packedValue) {\n int packedIntValue = int(packedValue);\n int v0 = packedIntValue / 256;\n return vec2(v0, packedIntValue - v0 * 256);\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 return vec4(\n unpack_float(encodedColor[0]) / 255.0,\n unpack_float(encodedColor[1]) / 255.0\n );\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 highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize highp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\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 highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize highp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\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 highp 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 highp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 highp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = 1.0 - smoothstep(0.0, 1.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 highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 = 1.0 - smoothstep(0.0, 1.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 highp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize highp 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 highp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize highp vec4 color\n\n base = max(0.0, base);\n height = max(0.0, height);\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 base = max(0.0, base);\n height = max(0.0, 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_image;\nuniform float u_opacity;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_image, 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 vec2 u_world;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\n\n v_pos.x = a_pos.x;\n v_pos.y = 1.0 - a_pos.y;\n}\n"},line:{fragmentSource:"#pragma mapbox: define highp 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 highp 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 highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\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 highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\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 vec4 a_data;\n\n// icon-size data (see symbol_sdf.vertex.glsl for more)\nattribute vec3 a_size;\nuniform bool u_is_size_zoom_constant;\nuniform bool u_is_size_feature_constant;\nuniform mediump float u_size_t; // used to interpolate between zoom stops when size is a composite function\nuniform mediump float u_size; // used when size is both zoom and feature constant\nuniform mediump float u_layout_size; // used when size is feature constant\n\n#pragma mapbox: define lowp float opacity\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform bool u_is_text;\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_data.xy;\n mediump vec2 label_data = unpack_float(a_data[2]);\n mediump float a_labelminzoom = label_data[0];\n mediump vec2 a_zoom = unpack_float(a_data[3]);\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n float size;\n // In order to accommodate placing labels around corners in\n // symbol-placement: line, each glyph in a label could have multiple\n // "quad"s only one of which should be shown at a given zoom level.\n // The min/max zoom assigned to each quad is based on the font size at\n // the vector tile\'s zoom level, which might be different than at the\n // currently rendered zoom level if text-size is zoom-dependent.\n // Thus, we compensate for this difference by calculating an adjustment\n // based on the scale of rendered text size relative to layout text size.\n mediump float layoutSize;\n if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\n layoutSize = a_size[2] / 10.0;\n } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = a_size[0] / 10.0;\n layoutSize = size;\n } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\n size = u_size;\n layoutSize = u_layout_size;\n } else {\n size = u_size;\n layoutSize = u_size;\n }\n\n float fontScale = u_is_text ? size / 24.0 : size;\n\n mediump float zoomAdjust = log2(size / layoutSize);\n mediump float adjustedZoom = (u_zoom - zoomAdjust) * 10.0;\n // result: z = 0 if a_minzoom <= adjustedZoom < a_maxzoom, and 1 otherwise\n mediump float z = 2.0 - step(a_minzoom, adjustedZoom) - (1.0 - step(a_maxzoom, adjustedZoom));\n\n vec2 extrude = fontScale * 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 highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\nuniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform highp float u_gamma_scale;\nuniform bool u_is_text;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\nvarying float v_size;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 fill_color\n #pragma mapbox: initialize highp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n float fontScale = u_is_text ? v_size / 24.0 : v_size;\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / (fontScale * 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) / (fontScale * u_gamma_scale);\n buff = (6.0 - halo_width / fontScale) / 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 vec4 a_data;\n\n// contents of a_size vary based on the type of property value\n// used for {text,icon}-size.\n// For constants, a_size is disabled.\n// For source functions, we bind only one value per vertex: the value of {text,icon}-size evaluated for the current feature.\n// For composite functions:\n// [ text-size(lowerZoomStop, feature),\n// text-size(upperZoomStop, feature),\n// layoutSize == text-size(layoutZoomLevel, feature) ]\nattribute vec3 a_size;\nuniform bool u_is_size_zoom_constant;\nuniform bool u_is_size_feature_constant;\nuniform mediump float u_size_t; // used to interpolate between zoom stops when size is a composite function\nuniform mediump float u_size; // used when size is both zoom and feature constant\nuniform mediump float u_layout_size; // used when size is feature constant\n\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform bool u_is_text;\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;\nvarying float v_size;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 fill_color\n #pragma mapbox: initialize highp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_data.xy;\n\n mediump vec2 label_data = unpack_float(a_data[2]);\n mediump float a_labelminzoom = label_data[0];\n mediump float a_labelangle = label_data[1];\n\n mediump vec2 a_zoom = unpack_float(a_data[3]);\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // In order to accommodate placing labels around corners in\n // symbol-placement: line, each glyph in a label could have multiple\n // \"quad\"s only one of which should be shown at a given zoom level.\n // The min/max zoom assigned to each quad is based on the font size at\n // the vector tile's zoom level, which might be different than at the\n // currently rendered zoom level if text-size is zoom-dependent.\n // Thus, we compensate for this difference by calculating an adjustment\n // based on the scale of rendered text size relative to layout text size.\n mediump float layoutSize;\n if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\n v_size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\n layoutSize = a_size[2] / 10.0;\n } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\n v_size = a_size[0] / 10.0;\n layoutSize = v_size;\n } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\n v_size = u_size;\n layoutSize = u_layout_size;\n } else {\n v_size = u_size;\n layoutSize = u_size;\n }\n\n float fontScale = u_is_text ? v_size / 24.0 : v_size;\n\n mediump float zoomAdjust = log2(v_size / layoutSize);\n mediump float adjustedZoom = (u_zoom - zoomAdjust) * 10.0;\n // result: z = 0 if a_minzoom <= adjustedZoom < a_maxzoom, and 1 otherwise\n // Used below to move the vertex out of the clip space for when the current\n // zoom is out of the glyph's zoom range.\n mediump float z = 2.0 - step(a_minzoom, adjustedZoom) - (1.0 - step(a_maxzoom, adjustedZoom));\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_labelangle / 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 = fontScale * 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_labelangle / 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 = fontScale * 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 = fontScale * 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(_dereq_,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,s){void 0===e.extVertexArrayObject&&(e.extVertexArrayObject=e.getExtension("OES_vertex_array_object"));var o=!this.vao||this.boundProgram!==t||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==s;!e.extVertexArrayObject||o?(this.freshBind(e,t,r,i,n,s),this.gl=e):e.extVertexArrayObject.bindVertexArrayOES(this.vao)},VertexArrayObject.prototype.freshBind=function(e,t,r,i,n,s){var o,u=t.numAttributes;if(e.extVertexArrayObject)this.vao&&this.destroy(),this.vao=e.extVertexArrayObject.createVertexArrayOES(),e.extVertexArrayObject.bindVertexArrayOES(this.vao),o=0,this.boundProgram=t,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=s;else{o=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":203,"../util/util":215,"../util/window":197}],84:[function(_dereq_,module,exports){"use strict";var ajax=_dereq_("../util/ajax"),rewind=_dereq_("geojson-rewind"),GeoJSONWrapper=_dereq_("./geojson_wrapper"),vtpbf=_dereq_("vt-pbf"),supercluster=_dereq_("supercluster"),geojsonvt=_dereq_("geojson-vt"),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}(_dereq_("./vector_tile_worker_source"));module.exports=GeoJSONWorkerSource},{"../util/ajax":194,"./geojson_wrapper":85,"./vector_tile_worker_source":98,"geojson-rewind":7,"geojson-vt":11,supercluster:29,"vt-pbf":38}],85:[function(_dereq_,module,exports){"use strict";var Point=_dereq_("point-geometry"),VectorTileFeature=_dereq_("vector-tile").VectorTileFeature,EXTENT=_dereq_("../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.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 i=(Math.ceil(e.width/e.tileSize)+1)*(Math.ceil(e.height/e.tileSize)+1);this._cache.setMaxSize(Math.floor(5*i))},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(this.used?this._source.coord?u=e.getVisibleWrappedCoordinates(this._source.coord):(u=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(u=u.filter(function(e){return o._source.hasTile(e)}))):u=[],i=0;i=Date.now())&&(o.findLoadedChildren(r,c,h)&&(h[_]=!0),(a=o.findLoadedParent(r,d,l))&&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.expirationTime=a.minX&&t.x=a.minY&&t.yi.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":203,"../util/mapbox":210,"../util/util":215,"./load_tilejson":87,"./tile_bounds":95}],98:[function(_dereq_,module,exports){"use strict";var ajax=_dereq_("../util/ajax"),vt=_dereq_("vector-tile"),Protobuf=_dereq_("pbf"),WorkerTile=_dereq_("./worker_tile"),util=_dereq_("../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 l=t[i].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":194,"../util/util":215,"./worker_tile":101,pbf:25,"vector-tile":34}],99:[function(_dereq_,module,exports){"use strict";var ajax=_dereq_("../util/ajax"),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}(_dereq_("./image_source"));module.exports=VideoSource},{"../util/ajax":194,"./image_source":86}],100:[function(_dereq_,module,exports){"use strict";var Actor=_dereq_("../util/actor"),StyleLayerIndex=_dereq_("../style/style_layer_index"),VectorTileWorkerSource=_dereq_("./vector_tile_worker_source"),GeoJSONWorkerSource=_dereq_("./geojson_worker_source"),globalRTLTextPlugin=_dereq_("./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":157,"../util/actor":193,"./geojson_worker_source":84,"./rtl_text_plugin":91,"./vector_tile_worker_source":98}],101:[function(_dereq_,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(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")+")"}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"]},{}],106:[function(_dereq_,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);return[116*o-16,500*(b-o),200*(o-xyz2lab((.0193339*t+.119192*a+.9503041*n)/Zn)),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];return labToRgb([r[2],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}}},{}],107:[function(_dereq_,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)).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=findStopLessThanOrEqualTo(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=findStopLessThanOrEqualTo(t.stops,o),i=interpolationFactor(o,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],u=t.stops[a+1][1],p=interpolate[e.type]||identityFunction;return"function"==typeof s?function(){var t=s.apply(void 0,arguments),e=u.apply(void 0,arguments);if(void 0!==t&&void 0!==e)return p(t,e,i)}:p(s,u,i)}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 findStopLessThanOrEqualTo(t,e){for(var o,n,a=0,i=t.length-1,s=0;a<=i;){if(s=Math.floor((a+i)/2),o=t[s][0],n=t[s+1][0],e===o||e>o&&ee&&(i=s-1)}return Math.max(s-1,0)}function isFunctionDefinition(t){return"object"==typeof t&&(t.stops||"identity"===t.type)}function interpolationFactor(t,e,o,n){var r=n-o,a=t-o;return 1===e?a/r:(Math.pow(e,a)-1)/(Math.pow(e,r)-1)}var colorSpaces=_dereq_("./color_spaces"),parseColor=_dereq_("../util/parse_color"),extend=_dereq_("../util/extend"),getType=_dereq_("../util/get_type"),interpolate=_dereq_("../util/interpolate");module.exports=createFunction,module.exports.isFunctionDefinition=isFunctionDefinition,module.exports.interpolationFactor=interpolationFactor,module.exports.findStopLessThanOrEqualTo=findStopLessThanOrEqualTo},{"../util/extend":121,"../util/get_type":122,"../util/interpolate":123,"../util/parse_color":124,"./color_spaces":106}],108:[function(_dereq_,module,exports){"use strict";function key(r){return stringify(refProperties.map(function(e){return r[e]}))}function groupByLayout(r){for(var e={},t=0;t255?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)return(l=parseInt(r.substr(1),16))>=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(-1!==a&&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){}},{}],110:[function(_dereq_,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(t=(n=objKeys(r).sort()).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},{}],111:[function(_dereq_,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},{}],115:[function(_dereq_,module,exports){function isObjectLike(t){return!!t&&"object"==typeof t}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 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.*?")+"$"),MAX_SAFE_INTEGER=9007199254740991,isArray=function(t,r){var e=null==t?void 0:t[r];return isNative(e)?e:void 0}(Array,"isArray")||function(t){return isObjectLike(t)&&isLength(t.length)&&"[object Array]"==objToString.call(t)};module.exports=isArray},{}],116:[function(_dereq_,module,exports){function isEqual(a,l,i,e){var s=(i="function"==typeof i?bindCallback(i,e,3):void 0)?i(a,l):void 0;return void 0===s?baseIsEqual(a,l,i):!!s}var baseIsEqual=_dereq_("lodash._baseisequal"),bindCallback=_dereq_("lodash._bindcallback");module.exports=isEqual},{"lodash._baseisequal":111,"lodash._bindcallback":112}],117:[function(_dereq_,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,typedArrayTags={};typedArrayTags["[object Float32Array]"]=typedArrayTags["[object Float64Array]"]=typedArrayTags["[object Int8Array]"]=typedArrayTags["[object Int16Array]"]=typedArrayTags["[object Int32Array]"]=typedArrayTags["[object Uint8Array]"]=typedArrayTags["[object Uint8ClampedArray]"]=typedArrayTags["[object Uint16Array]"]=typedArrayTags["[object Uint32Array]"]=!0,typedArrayTags["[object Arguments]"]=typedArrayTags["[object Array]"]=typedArrayTags["[object ArrayBuffer]"]=typedArrayTags["[object Boolean]"]=typedArrayTags["[object DataView]"]=typedArrayTags["[object Date]"]=typedArrayTags["[object Error]"]=typedArrayTags["[object Function]"]=typedArrayTags["[object Map]"]=typedArrayTags["[object Number]"]=typedArrayTags["[object Object]"]=typedArrayTags["[object RegExp]"]=typedArrayTags["[object Set]"]=typedArrayTags["[object String]"]=typedArrayTags["[object WeakMap]"]=!1;var objectToString=Object.prototype.toString;module.exports=isTypedArray},{}],118:[function(_dereq_,module,exports){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:!1}},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,maximum:65535,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,maximum:65535,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,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-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,"property-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-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"}}}},{}],121:[function(_dereq_,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":104,"../util/extend":121,"../util/get_type":122,"./validate_array":128,"./validate_boolean":129,"./validate_color":130,"./validate_constants":131,"./validate_enum":132,"./validate_filter":133,"./validate_function":134,"./validate_layer":136,"./validate_light":138,"./validate_number":139,"./validate_object":140,"./validate_source":143,"./validate_string":144}],128:[function(_dereq_,module,exports){"use strict";var getType=_dereq_("../util/get_type"),validate=_dereq_("./validate"),ValidationError=_dereq_("../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":104,"../util/get_type":122}],132:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),unbundle=_dereq_("../util/unbundle_jsonlint");module.exports=function(e){var r=e.key,n=e.value,u=e.valueSpec,o=[];return Array.isArray(u.values)?-1===u.values.indexOf(unbundle(n))&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",u.values.join(", "),n)):-1===Object.keys(u.values).indexOf(unbundle(n))&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",Object.keys(u.values).join(", "),n)),o}},{"../error/validation_error":104,"../util/unbundle_jsonlint":126}],133:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),validateEnum=_dereq_("./validate_enum"),getType=_dereq_("../util/get_type"),unbundle=_dereq_("../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&&"string"!==(t=getType(a[1]))&&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":104,"../util/get_type":122,"../util/unbundle_jsonlint":126,"./validate":127,"./validate_array":128,"./validate_number":139,"./validate_object":140}],135:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),validateString=_dereq_("./validate_string");module.exports=function(r){var e=r.value,t=r.key,a=validateString(r);return a.length?a:(-1===e.indexOf("{fontstack}")&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{range}" token')),a)}},{"../error/validation_error":104,"./validate_string":144}],136:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),unbundle=_dereq_("../util/unbundle_jsonlint"),validateObject=_dereq_("./validate_object"),validateFilter=_dereq_("./validate_filter"),validatePaintProperty=_dereq_("./validate_paint_property"),validateLayoutProperty=_dereq_("./validate_layout_property"),extend=_dereq_("../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":104,"../util/get_type":122}],140:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),getType=_dereq_("../util/get_type"),validateSpec=_dereq_("./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":104,"../util/get_type":122,"./validate":127}],141:[function(_dereq_,module,exports){"use strict";var validateProperty=_dereq_("./validate_property");module.exports=function(r){return validateProperty(r,"paint")}},{"./validate_property":142}],142:[function(_dereq_,module,exports){"use strict";var validate=_dereq_("./validate"),ValidationError=_dereq_("../error/validation_error"),getType=_dereq_("../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":104,"../util/get_type":122,"./validate":127}],143:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),unbundle=_dereq_("../util/unbundle_jsonlint"),validateObject=_dereq_("./validate_object"),validateEnum=_dereq_("./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 i=[];switch(unbundle(a.type)){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":104,"../util/unbundle_jsonlint":126,"./validate_enum":132,"./validate_object":140}],144:[function(_dereq_,module,exports){"use strict";var getType=_dereq_("../util/get_type"),ValidationError=_dereq_("../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":104,"../util/get_type":122}],145:[function(_dereq_,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=_dereq_("./validate/validate_constants"),validate=_dereq_("./validate/validate"),latestStyleSpec=_dereq_("./reference/latest"),validateGlyphsURL=_dereq_("./validate/validate_glyphs_url");validateStyleMin.source=wrapCleanErrors(_dereq_("./validate/validate_source")),validateStyleMin.light=wrapCleanErrors(_dereq_("./validate/validate_light")),validateStyleMin.layer=wrapCleanErrors(_dereq_("./validate/validate_layer")),validateStyleMin.filter=wrapCleanErrors(_dereq_("./validate/validate_filter")),validateStyleMin.paintProperty=wrapCleanErrors(_dereq_("./validate/validate_paint_property")),validateStyleMin.layoutProperty=wrapCleanErrors(_dereq_("./validate/validate_layout_property")),module.exports=validateStyleMin},{"./reference/latest":119,"./validate/validate":127,"./validate/validate_constants":131,"./validate/validate_filter":133,"./validate/validate_glyphs_url":135,"./validate/validate_layer":136,"./validate/validate_layout_property":137,"./validate/validate_light":138,"./validate/validate_paint_property":141,"./validate/validate_source":143}],146:[function(_dereq_,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},{}],147:[function(_dereq_,module,exports){"use strict";var Evented=_dereq_("../util/evented"),ajax=_dereq_("../util/ajax"),browser=_dereq_("../util/browser"),normalizeURL=_dereq_("../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 e(e,i){var r=this;t.call(this),this.base=e,this.retina=browser.devicePixelRatio>1,this.setEventedParent(i);var a=this.retina?"@2x":"";ajax.getJSON(normalizeURL(e,a,".json"),function(t,e){return t?void r.fire("error",{error:t}):(r.data=e,void(r.imgData&&r.fire("data",{dataType:"style"})))}),ajax.getImage(normalizeURL(e,a,".png"),function(t,e){return t?void r.fire("error",{error:t}):(r.imgData=browser.getImageData(e),r.width=e.width,void(r.data&&r.fire("data",{dataType:"style"})))})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toJSON=function(){return this.base},e.prototype.loaded=function(){return!(!this.data||!this.imgData)},e.prototype.resize=function(){var t=this;if(browser.devicePixelRatio>1!==this.retina){var i=new e(this.base);i.on("data",function(){t.data=i.data,t.imgData=i.imgData,t.width=i.width,t.retina=i.retina})}},e.prototype.getSpritePosition=function(t){if(!this.loaded())return new SpritePosition;var e=this.data&&this.data[t];return e&&this.imgData?e:new SpritePosition},e}(Evented);module.exports=ImageSprite},{"../util/ajax":194,"../util/browser":195,"../util/evented":203,"../util/mapbox":210}],148:[function(_dereq_,module,exports){"use strict";var styleSpec=_dereq_("../style-spec/reference/latest"),util=_dereq_("../util/util"),Evented=_dereq_("../util/evented"),validateStyle=_dereq_("./validate_style"),StyleDeclaration=_dereq_("./style_declaration"),StyleTransition=_dereq_("./style_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)).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)+".");if(!(["vector","raster","geojson","video","image","canvas"].indexOf(t.type)>=0)||!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){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"))}else this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")})},t.prototype.removeLayer=function(e){this._checkLoaded();var t=this._layers[e];if(t){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]}else this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")})},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){if(!util.deepEqual(o.getPaintProperty(t,i),r)){var s=o.isPaintValueFeatureConstant(t);o.setPaintProperty(t,r,i),!(r&&MapboxGLFunction.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property)&&s||this._updateLayer(o),this.updateClasses(e,t)}}else this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")})},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,o){for(var n=this,r=util.extend({},this._paintDeclarations[""]),s=0;s=this.endTime)return o;var a=this.oldTransition.calculate(t,i,this.startTime),n=util.easeCubicInOut((e-this.startTime-this.delay)/this.duration);return this.interp(a,o,n)},StyleTransition.prototype._calculateTargetValue=function(t,i){if(!this.zoomTransitioned)return this.declaration.calculate(t,i);var e=t.zoom,o=this.zoomHistory.lastIntegerZoom,a=e>o?2:.5,n=this.declaration.calculate({zoom:e>o?e-1:e+1},i),r=this.declaration.calculate({zoom:e},i),s=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(e-o),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},{"../style-spec/util/interpolate":123,"../util/util":215}],159:[function(_dereq_,module,exports){"use strict";module.exports=_dereq_("../style-spec/validate_style.min"),module.exports.emitErrors=function(r,e){if(e&&e.length){for(var t=0;t-a/2;){if(--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},{}],162:[function(_dereq_,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=_dereq_("point-geometry");module.exports=clipLine},{"point-geometry":26}],163:[function(_dereq_,module,exports){"use strict";var createStructArrayType=_dereq_("../util/struct_array"),Point=_dereq_("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":213,"point-geometry":26}],164:[function(_dereq_,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<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],B=e[m+1].sub(p)._unit()._mult(g)._add(p)._round(),y=s/2/Math.max(Math.abs(c-h)-d/2,0);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},{}],165:[function(_dereq_,module,exports){"use strict";var Point=_dereq_("point-geometry"),EXTENT=_dereq_("../data/extent"),Grid=_dereq_("grid-index"),intersectionTests=_dereq_("../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).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+h<=s){var M=new Anchor(k,q,A,f)._round();n&&!checkMaxAngle(e,M,l,n,a)||x.push(M)}}g+=y}return i||x.length||o||(x=resample(e,g/2,t,n,a,l,o,!0,c)),x}var interpolate=_dereq_("../style-spec/util/interpolate"),Anchor=_dereq_("../symbol/anchor"),checkMaxAngle=_dereq_("./check_max_angle");module.exports=getAnchors},{"../style-spec/util/interpolate":123,"../symbol/anchor":160,"./check_max_angle":161}],167:[function(_dereq_,module,exports){"use strict";var ShelfPack=_dereq_("@mapbox/shelf-pack"),util=_dereq_("../util/util"),GlyphAtlas=function(){this.width=128,this.height=128,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,l=a+2,T=E+2;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=2048||e>=2048)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=4,this.height*=4,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 r=glyphUrl(t,256*e+"-"+(256*e+255),this.url);ajax.getArrayBuffer(r,function(t,a){for(var i=!t&&new Glyphs(new Protobuf(a.data)),r=0;r=0^o,r=Math.abs(n),h=new Point(e.x,e.y),c=getSegmentEnd(l,a,i),g={anchor:h,end:c,index:i,minScale:getMinScaleForSegment(r,h,c),maxScale:1/0};;){if(insertSegmentGlyph(t,g,l,o),g.minScale<=e.scale)return e.scale;var u=getNextVirtualSegment(g,a,r,l);if(!u)return g.minScale;g=u}}function insertSegmentGlyph(t,e,n,a){var i=Math.atan2(e.end.y-e.anchor.y,e.end.x-e.anchor.x),o=n?i:i+Math.PI;t.push({anchorPoint:e.anchor,upsideDown:a,minScale:e.minScale,maxScale:e.maxScale,angle:(o+2*Math.PI)%(2*Math.PI)})}function getVirtualSegmentAnchor(t,e,n){var a=e.sub(t)._unit();return t.sub(a._mult(n))}function getMinScaleForSegment(t,e,n){return t/e.dist(n)}function getSegmentEnd(t,e,n){return t?e[n+1]:e[n]}function getNextVirtualSegment(t,e,n,a){for(var i=t.end,o=i,l=t.index;o.equals(i);){if(a&&l+21?2:1,this.dirty=!0}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.allocateImage=function(t,i){var r=(t/=this.pixelRatio)+2+(4-(t+2)%4),a=(i/=this.pixelRatio)+2+(4-(i+2)%4),h=this.shelfPack.packOne(r,a);return h||(util.warnOnce("SpriteAtlas out of space."),null)},i.prototype.addImage=function(t,i,e){var r,a,h;if(i instanceof window.HTMLImageElement?(r=i.width,a=i.height,i=browser.getImageData(i),h=1):(r=e.width,a=e.height,h=e.pixelRatio||1),ArrayBuffer.isView(i)&&(i=new Uint32Array(i.buffer)),!(i instanceof Uint32Array))return this.fire("error",{error:new Error("Image provided in an invalid format. Supported formats are HTMLImageElement and ArrayBufferView.")});if(this.images[t])return this.fire("error",{error:new Error("An image with this name already exists.")});var s=this.allocateImage(r,a);if(!s)return this.fire("error",{error:new Error("There is not enough space to add this image.")});var o={rect:s,width:r/h,height:a/h,sdf:!1,pixelRatio:h/this.pixelRatio};this.images[t]=o,this.copy(i,r,s,{pixelRatio:h,x:0,y:0,width:r,height:a},!1),this.fire("data",{dataType:"style"})},i.prototype.removeImage=function(t){var i=this.images[t];return delete this.images[t],i?(this.shelfPack.unref(i.rect),void this.fire("data",{dataType:"style"})):this.fire("error",{error:new Error("No image with this name exists.")})},i.prototype.getImage=function(t,i){if(this.images[t])return this.images[t];if(!this.sprite)return null;var e=this.sprite.getSpritePosition(t);if(!e.width||!e.height)return null;var r=this.allocateImage(e.width,e.height);if(!r)return null;var a={rect:r,width:e.width/e.pixelRatio,height:e.height/e.pixelRatio,sdf:e.sdf,pixelRatio:e.pixelRatio/this.pixelRatio};if(this.images[t]=a,!this.sprite.imgData)return null;var h=new Uint32Array(this.sprite.imgData.buffer);return this.copy(h,this.sprite.width,r,e,i),a},i.prototype.getPosition=function(t,i){var e=this.getImage(t,i),r=e&&e.rect;if(!r)return null;var a=e.width*e.pixelRatio,h=e.height*e.pixelRatio;return{size:[e.width,e.height],tl:[(r.x+1)/this.width,(r.y+1)/this.height],br:[(r.x+1+a)/this.width,(r.y+1+h)/this.height]}},i.prototype.allocate=function(){var t=this;if(!this.data){var i=Math.floor(this.width*this.pixelRatio),e=Math.floor(this.height*this.pixelRatio);this.data=new Uint32Array(i*e);for(var 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){DOM.mousePos(g,e).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":202,"./handler/box_zoom":182,"./handler/dblclick_zoom":183,"./handler/drag_pan":184,"./handler/drag_rotate":185,"./handler/keyboard":186,"./handler/scroll_zoom":187,"./handler/touch_zoom_rotate":188,"point-geometry":26}],175:[function(_dereq_,module,exports){"use strict";var util=_dereq_("../util/util"),interpolate=_dereq_("../style-spec/util/interpolate"),browser=_dereq_("../util/browser"),LngLat=_dereq_("../geo/lng_lat"),LngLatBounds=_dereq_("../geo/lng_lat_bounds"),Point=_dereq_("point-geometry"),Camera=function(t){function e(e,i){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=i.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)},e.prototype.panBy=function(t,e,i){return t=Point.convert(t).mult(-1),this.panTo(this.transform.center,util.extend({offset:t},e),i)},e.prototype.panTo=function(t,e,i){return this.easeTo(util.extend({center:t},e),i)},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,i){return this.easeTo(util.extend({zoom:t},e),i)},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,i){return this.easeTo(util.extend({bearing:t},e),i)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,util.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())e?1:0}),["bottom","left","right","top"])){t=LngLatBounds.convert(t);var n=[e.padding.left-e.padding.right,e.padding.top-e.padding.bottom],r=Math.min(e.padding.right,e.padding.left),a=Math.min(e.padding.top,e.padding.bottom);e.offset=[e.offset[0]+n[0],e.offset[1]+n[1]];var s=Point.convert(e.offset),h=this.transform,p=h.project(t.getNorthWest()),u=h.project(t.getSouthEast()),c=u.sub(p),f=(h.width-2*r-2*Math.abs(s.x))/c.x,m=(h.height-2*a-2*Math.abs(s.y))/c.y;return m<0||f<0?void util.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."):(e.center=h.unproject(p.add(u).div(2)),e.zoom=Math.min(h.scaleZoom(h.scale*Math.min(f,m)),e.maxZoom),e.bearing=0,e.linear?this.easeTo(e,i):this.flyTo(e,i))}util.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'")}},e.prototype.jumpTo=function(t,e){this.stop();var i=this.transform,o=!1,n=!1,r=!1;return"zoom"in t&&i.zoom!==+t.zoom&&(o=!0,i.zoom=+t.zoom),"center"in t&&(i.center=LngLat.convert(t.center)),"bearing"in t&&i.bearing!==+t.bearing&&(n=!0,i.bearing=+t.bearing),"pitch"in t&&i.pitch!==+t.pitch&&(r=!0,i.pitch=+t.pitch),this.fire("movestart",e).fire("move",e),o&&this.fire("zoomstart",e).fire("zoom",e).fire("zoomend",e),n&&this.fire("rotate",e),r&&this.fire("pitchstart",e).fire("pitch",e).fire("pitchend",e),this.fire("moveend",e)},e.prototype.easeTo=function(t,e){var i=this;this.stop(),!1===(t=util.extend({offset:[0,0],duration:500,easing:util.ease},t)).animate&&(t.duration=0),t.smoothEasing&&0!==t.duration&&(t.easing=this._smoothOutEasing(t.duration));var o=this.transform,n=this.getZoom(),r=this.getBearing(),a=this.getPitch(),s="zoom"in t?+t.zoom:n,h="bearing"in t?this._normalizeBearing(t.bearing,r):r,p="pitch"in t?+t.pitch:a,u=o.centerPoint.add(Point.convert(t.offset)),c=o.pointLocation(u),f=LngLat.convert(t.center||c);this._normalizeCenter(f);var m,g,d=o.project(c),l=o.project(f).sub(d),v=o.zoomScale(s-n);return t.around&&(m=LngLat.convert(t.around),g=o.locationPoint(m)),this.zooming=s!==n,this.rotating=r!==h,this.pitching=p!==a,this._prepareEase(e,t.noMoveStart),clearTimeout(this._onEaseEnd),this._ease(function(t){if(this.zooming&&(o.zoom=interpolate(n,s,t)),this.rotating&&(o.bearing=interpolate(r,h,t)),this.pitching&&(o.pitch=interpolate(a,p,t)),m)o.setLocationAtPoint(m,g);else{var i=o.zoomScale(o.zoom-n),c=s>n?Math.min(2,v):Math.max(.5,v),f=Math.pow(c,1-t),b=o.unproject(d.add(l.mult(t*f)).mult(i));o.setLocationAtPoint(o.renderWorldCopies?b.wrap():b,u)}this._fireMoveEvents(e)},function(){t.delayEndEvents?i._onEaseEnd=setTimeout(function(){return i._easeToEnd(e)},t.delayEndEvents):i._easeToEnd(e)},t),this},e.prototype._prepareEase=function(t,e){this.moving=!0,e||this.fire("movestart",t),this.zooming&&this.fire("zoomstart",t),this.pitching&&this.fire("pitchstart",t)},e.prototype._fireMoveEvents=function(t){this.fire("move",t),this.zooming&&this.fire("zoom",t),this.rotating&&this.fire("rotate",t),this.pitching&&this.fire("pitch",t)},e.prototype._easeToEnd=function(t){var e=this.zooming,i=this.pitching;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,e&&this.fire("zoomend",t),i&&this.fire("pitchend",t),this.fire("moveend",t)},e.prototype.flyTo=function(t,e){function i(t){var e=(M*M-z*z+(t?-1:1)*L*L*E*E)/(2*(t?M:z)*L*E);return Math.log(Math.sqrt(e*e+1)-e)}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)}var a=this;this.stop(),t=util.extend({offset:[0,0],speed:1.2,curve:1.42,easing:util.ease},t);var s=this.transform,h=this.getZoom(),p=this.getBearing(),u=this.getPitch(),c="zoom"in t?+t.zoom:h,f="bearing"in t?this._normalizeBearing(t.bearing,p):p,m="pitch"in t?+t.pitch:u,g=s.zoomScale(c-h),d=s.centerPoint.add(Point.convert(t.offset)),l=s.pointLocation(d),v=LngLat.convert(t.center||l);this._normalizeCenter(v);var b=s.project(l),y=s.project(v).sub(b),_=t.curve,z=Math.max(s.width,s.height),M=z/g,E=y.mag();if("minZoom"in t){var T=util.clamp(Math.min(t.minZoom,h,c),s.minZoom,s.maxZoom),x=z/s.zoomScale(T-h);_=Math.sqrt(x/E*2)}var L=_*_,j=i(0),w=function(t){return n(j)/n(j+_*t)},P=function(t){return z*((n(j)*r(j+_*t)-o(j))/L)/E},Z=(i(1)-j)/_;if(Math.abs(E)<1e-6){if(Math.abs(z-M)<1e-6)return this.easeTo(t,e);var q=M180?-360:i<-180?360:0}},e.prototype._smoothOutEasing=function(t){var e=util.ease;if(this._prevEase){var i=this._prevEase,o=(Date.now()-i.start)/i.duration,n=i.easing(o+.01)-i.easing(o),r=.27/Math.sqrt(n*n+1e-4)*.01,a=Math.sqrt(.0729-r*r);e=util.bezier(r,a,.25,1)}return this._prevEase={start:(new Date).getTime(),duration:t,easing:e},e},e}(_dereq_("../util/evented"));module.exports=Camera},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../style-spec/util/interpolate":123,"../util/browser":195,"../util/evented":203,"../util/util":215,"point-geometry":26}],176:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),AttributionControl=function(t){this.options=t,util.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};AttributionControl.prototype.getDefaultPosition=function(){return"bottom-right"},AttributionControl.prototype.onAdd=function(t){var i=this.options&&this.options.compact;return this._map=t,this._container=DOM.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),i&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===i&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},AttributionControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0},AttributionControl.prototype._updateEditLink=function(){if(this._editLink||(this._editLink=this._container.querySelector(".mapboxgl-improve-map")),this._editLink){var t=this._map.getCenter();this._editLink.href="https://www.mapbox.com/map-feedback/#/"+t.lng+"/"+t.lat+"/"+Math.round(this._map.getZoom()+1)}},AttributionControl.prototype._updateData=function(t){t&&"metadata"===t.sourceDataType&&(this._updateAttributions(),this._updateEditLink())},AttributionControl.prototype._updateAttributions=function(){if(this._map.style){var t=[],i=this._map.style.sourceCaches;for(var o in i){var n=i[o].getSource();n.attribution&&t.indexOf(n.attribution)<0&&t.push(n.attribution)}t.sort(function(t,i){return t.length-i.length}),t=t.filter(function(i,o){for(var n=o+1;n=0)return!1;return!0}),this._container.innerHTML=t.join(" | "),this._editLink=null}},AttributionControl.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("mapboxgl-compact")},module.exports=AttributionControl},{"../../util/dom":202,"../../util/util":215}],177:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../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",l=this._container=DOM.create("div",n+" mapboxgl-ctrl-group"),t=this._fullscreenButton=DOM.create("button",n+"-icon "+n+"-fullscreen",this._container);return t.setAttribute("aria-label","Toggle fullscreen"),t.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),this._mapContainer=e.getContainer(),window.document.addEventListener(this._fullscreenchange,this._changeIcon),l},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(){if((window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._mapContainer!==this._fullscreen){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":202,"../../util/util":215,"../../util/window":197}],178:[function(_dereq_,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 supportsGeolocation,Evented=_dereq_("../../util/evented"),DOM=_dereq_("../../util/dom"),window=_dereq_("../../util/window"),util=_dereq_("../../util/util"),defaultGeoPositionOptions={enableHighAccuracy:!1,timeout:6e3},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","mapboxgl-ctrl mapboxgl-ctrl-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){!1!==t&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=DOM.create("button","mapboxgl-ctrl-icon mapboxgl-ctrl-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("mapboxgl-watching"),this._geolocateButton.setAttribute("aria-pressed",!1),window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("mapboxgl-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":202,"../../util/evented":203,"../../util/util":215,"../../util/window":197}],179:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../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)if(o[t].getSource().mapbox_logo)return!0;return!1}},module.exports=LogoControl},{"../../util/dom":202,"../../util/util":215}],180:[function(_dereq_,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=_dereq_("../../util/dom"),window=_dereq_("../../util/window"),util=_dereq_("../../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":202,"../../util/util":215,"../../util/window":197}],181:[function(_dereq_,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;r>5280?setScale(e,n,r/5280,"mi"):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 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);return 6371e3*Math.acos(Math.min(r,1))}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=_dereq_("../../util/dom"),util=_dereq_("../../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":202,"../../util/util":215}],182:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),LngLatBounds=_dereq_("../../geo/lng_lat_bounds"),util=_dereq_("../../util/util"),window=_dereq_("../../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._map.dragPan&&this._map.dragPan.disable(),this._el.addEventListener("mousedown",this._onMouseDown,!1),this._map.dragPan&&this._map.dragPan.enable(),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),a=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=a-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":202,"../../util/util":215,"../../util/window":197}],183:[function(_dereq_,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},{}],184:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../util/window"),inertiaEasing=util.bezier(0,0,.3,1),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.classList.add("mapboxgl-touch-drag-pan"),this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},DragPanHandler.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove("mapboxgl-touch-drag-pan"),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(.3/s),d=u.mag();d>1400&&(d=1400,u._unit()._mult(d));var h=d/750,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;return"mousemove"===t.type?!1&t.buttons:t.button&&0!==t.button},DragPanHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now();t.length>0&&e-t[0][0]>160;)t.shift()},module.exports=DragPanHandler},{"../../util/dom":202,"../../util/util":215,"../../util/window":197}],185:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../util/window"),inertiaEasing=util.bezier(0,0,.25,1),DragRotateHandler=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=!1!==e.pitchWithRotate,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),this._pitchWithRotate&&this._fireEvent("pitchstart",t));var e=this._map;e.stop();var i=this._pos,n=DOM.mousePos(this._el,t),r=.8*(i.x-n.x),a=-.5*(i.y-n.y),o=e.getBearing()-r,s=e.getPitch()-a,h=this._inertia,_=h[h.length-1];this._drainInertiaBuffer(),h.push([Date.now(),e._normalizeBearing(o,_[1])]),e.transform.bearing=o,this._pitchWithRotate&&(this._fireEvent("pitch",t),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)180&&(u=180);var l=u/180;_+=p*u*(l/2),Math.abs(i._normalizeBearing(_,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();t.length>0&&e-t[0][0]>160;)t.shift()},module.exports=DragRotateHandler},{"../../util/dom":202,"../../util/util":215,"../../util/window":197}],186:[function(_dereq_,module,exports){"use strict";function easeOut(e){return e*(2-e)}var 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,a=0,n=0,r=0,i=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?a=-1:(e.preventDefault(),r=-1);break;case 39:e.shiftKey?a=1:(e.preventDefault(),r=1);break;case 38:e.shiftKey?n=1:(e.preventDefault(),i=-1);break;case 40:e.shiftKey?n=-1:(i=1,e.preventDefault());break;default:return}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()+15*a,pitch:s.getPitch()+10*n,offset:[100*-r,100*-i],center:s.getCenter()};s.easeTo(d,{originalEvent:e})}},module.exports=KeyboardHandler},{}],187:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),browser=_dereq_("../../util/browser"),window=_dereq_("../../util/window"),ua=window.navigator.userAgent.toLowerCase(),firefox=-1!==ua.indexOf("firefox"),safari=-1!==ua.indexOf("safari")&&-1===ua.indexOf("chrom"),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":195,"../../util/dom":202,"../../util/util":215,"../../util/window":197}],188:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../util/window"),inertiaEasing=util.bezier(0,0,.15,1),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.classList.add("mapboxgl-touch-zoom-rotate"),this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},TouchZoomRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove("mapboxgl-touch-zoom-rotate"),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)>.15;Math.abs(r)>4?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)o.snapToNorth({},{originalEvent:t});else{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){var l=.15*s/h;Math.abs(l)>2.5&&(l=l>0?2.5:-2.5);var d=1e3*Math.abs(l/(12*.15)),c=a+l*d/2e3;c<0&&(c=0),o.easeTo({zoom:c,duration:d,easing:inertiaEasing,around:this._aroundCenter?o.getCenter():o.unproject(u)},{originalEvent:t})}else o.snapToNorth({},{originalEvent:t})}},TouchZoomRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now();t.length>2&&e-t[0][0]>160;)t.shift()},module.exports=TouchZoomRotateHandler},{"../../util/dom":202,"../../util/util":215,"../../util/window":197}],189:[function(_dereq_,module,exports){"use strict";var util=_dereq_("../util/util"),window=_dereq_("../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":215,"../util/window":197}],190:[function(_dereq_,module,exports){"use strict";function removeNode(t){t.parentNode&&t.parentNode.removeChild(t)}var util=_dereq_("../util/util"),browser=_dereq_("../util/browser"),window=_dereq_("../util/window"),DOM=_dereq_("../util/dom"),ajax=_dereq_("../util/ajax"),Style=_dereq_("../style/style"),AnimationLoop=_dereq_("../style/animation_loop"),Painter=_dereq_("../render/painter"),Transform=_dereq_("../geo/transform"),Hash=_dereq_("./hash"),bindHandlers=_dereq_("./bind_handlers"),Camera=_dereq_("./camera"),LngLat=_dereq_("../geo/lng_lat"),LngLatBounds=_dereq_("../geo/lng_lat_bounds"),Point=_dereq_("point-geometry"),AttributionControl=_dereq_("./control/attribution_control"),LogoControl=_dereq_("./control/logo_control"),isSupported=_dereq_("mapbox-gl-supported"),defaultOptions={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:0,maxZoom:22,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(null!=(e=util.extend({},defaultOptions,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()}),void 0!==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-1!==e.indexOf("bottom")?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?0:t)>=0&&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.on=function(e,o,i){var r=this;if(void 0===i)return t.prototype.on.call(this,e,o);var s=function(){if("mouseenter"===e||"mouseover"===e){var t=!1;return{layer:o,listener:i,delegates:{mousemove:function(s){var n=r.queryRenderedFeatures(s.point,{layers:[o]});n.length?t||(t=!0,i.call(r,util.extend({features:n},s,{type:e}))):t=!1},mouseout:function(){t=!1}}}}if("mouseleave"===e||"mouseout"===e){var a=!1;return{layer:o,listener:i,delegates:{mousemove:function(t){r.queryRenderedFeatures(t.point,{layers:[o]}).length?a=!0:a&&(a=!1,i.call(r,util.extend({},t,{type:e})))},mouseout:function(t){a&&(a=!1,i.call(r,util.extend({},t,{type:e})))}}}}var u=function(t){var e=r.queryRenderedFeatures(t.point,{layers:[o]});e.length&&i.call(r,util.extend({features:e},t))};return{layer:o,listener:i,delegates:(d={},d[e]=u,d)};var d}();this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(s);for(var n in s.delegates)r.on(n,s.delegates[n]);return this},e.prototype.off=function(e,o,i){var r=this;if(void 0===i)return t.prototype.off.call(this,e,o);if(this._delegatedListeners&&this._delegatedListeners[e])for(var s=this._delegatedListeners[e],n=0;nthis._map.transform.height-n?["bottom"]:[],this._pos.xthis._map.transform.width-e/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var i=this._pos.add(o[t]).round(),r={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%)"},s=this._container.classList;for(var p in r)s.remove("mapboxgl-popup-anchor-"+p);s.add("mapboxgl-popup-anchor-"+t),DOM.setTransform(this._container,r[t]+" translate("+i.x+"px,"+i.y+"px)")}},o.prototype._onClickClose=function(){this.remove()},o}(Evented);module.exports=Popup},{"../geo/lng_lat":62,"../util/dom":202,"../util/evented":203,"../util/smart_wrap":212,"../util/util":215,"../util/window":197,"point-geometry":26}],193:[function(_dereq_,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(void 0!==r.id&&this.parent[r.type])this.parent[r.type](r.sourceMapId,r.data,i);else if(void 0!==r.id&&this.parent.getWorkerSource){var p=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,p[0])[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},{}],194:[function(_dereq_,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=_dereq_("./window"),AJAXError=function(e){function t(t,r){e.call(this,t),this.status=r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Error);exports.getJSON=function(e,t){var r=new window.XMLHttpRequest;return r.open("GET",e,!0),r.setRequestHeader("Accept","application/json"),r.onerror=function(e){t(e)},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var e;try{e=JSON.parse(r.response)}catch(e){return t(e)}t(null,e)}else t(new AJAXError(r.statusText,r.status))},r.send(),r},exports.getArrayBuffer=function(e,t){var r=new window.XMLHttpRequest;return r.open("GET",e,!0),r.responseType="arraybuffer",r.onerror=function(e){t(e)},r.onload=function(){return 0===r.response.byteLength&&200===r.status?t(new Error("http status 200 returned without content.")):void(r.status>=200&&r.status<300&&r.response?t(null,{data:r.response,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):t(new AJAXError(r.statusText,r.status)))},r.send(),r};exports.getImage=function(e,t){return exports.getArrayBuffer(e,function(e,r){if(e)return t(e);var n=new window.Image,o=window.URL||window.webkitURL;n.onload=function(){t(null,n),o.revokeObjectURL(n.src)};var s=new window.Blob([new Uint8Array(r.data)],{type:"image/png"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?o.createObjectURL(s):"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="})},exports.getVideo=function(e,t){var r=window.document.createElement("video");r.onloadstart=function(){t(null,r)};for(var n=0;n=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,e.width,e.height),t.getImageData(0,0,e.width,e.height).data},exports.supported=_dereq_("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":197,"mapbox-gl-supported":22}],196:[function(_dereq_,module,exports){"use strict";var WebWorkify=_dereq_("webworkify"),window=_dereq_("../window"),workerURL=window.URL.createObjectURL(new WebWorkify(_dereq_("../../source/worker"),{bare:!0}));module.exports=function(){return new window.Worker(workerURL)}},{"../../source/worker":100,"../window":197,webworkify:41}],197:[function(_dereq_,module,exports){"use strict";module.exports=self},{}],198:[function(_dereq_,module,exports){"use strict";function compareAreas(e,r){return r.area-e.area}var quickselect=_dereq_("quickselect"),calculateSignedArea=_dereq_("./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":215}],204:[function(_dereq_,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":207,"point-geometry":26,tinyqueue:30}],205:[function(_dereq_,module,exports){"use strict";var globalWorkerPool,WorkerPool=_dereq_("./worker_pool");module.exports=function(){return globalWorkerPool||(globalWorkerPool=new WorkerPool),globalWorkerPool}},{"./worker_pool":218}],206:[function(_dereq_,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},{}],207:[function(_dereq_,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=_dereq_("./util").isCounterClockwise;module.exports={multiPolygonIntersectsBufferedMultiPoint:multiPolygonIntersectsBufferedMultiPoint,multiPolygonIntersectsMultiPolygon:multiPolygonIntersectsMultiPolygon,multiPolygonIntersectsBufferedMultiLine:multiPolygonIntersectsBufferedMultiLine,polygonIntersectsPolygon:polygonIntersectsPolygon,distToSegmentSquared:distToSegmentSquared}},{"./util":215}],208:[function(_dereq_,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},{}],209:[function(_dereq_,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){return this.has(t)?this.data[t]:null},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},{}],210:[function(_dereq_,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))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":195,"./config":199}],211:[function(_dereq_,module,exports){"use strict";var isChar=_dereq_("./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":208}],212:[function(_dereq_,module,exports){"use strict";var LngLat=_dereq_("../geo/lng_lat");module.exports=function(n,t,l){if(n=new LngLat(n.lng,n.lat),t){var a=new LngLat(n.lng-360,n.lat),i=new LngLat(n.lng+360,n.lat),o=l.locationPoint(n).distSqr(t);l.locationPoint(a).distSqr(t)180;){var e=l.locationPoint(n);if(e.x>=0&&e.y>=0&&e.x<=l.width&&e.y<=l.height)break;n.lng>l.center.lng?n.lng-=360:n.lng+=360}return n}},{"../geo/lng_lat":62}],213:[function(_dereq_,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(5*this.capacity),128),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}],216:[function(_dereq_,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},{}],217:[function(_dereq_,module,exports){"use strict";var scriptDetection=_dereq_("./script_detection");module.exports=function(t){for(var o="",e=0;e":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}},{"./script_detection":211}],218:[function(_dereq_,module,exports){"use strict";var WebWorker=_dereq_("./web_worker"),WorkerPool=function(){this.active={}};WorkerPool.prototype.acquire=function(r){var e=this;if(!this.workers){var o=_dereq_("../").workerCount;for(this.workers=[];this.workers.length1&&void 0!==arguments[1]?arguments[1]:null,places=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,dataLatitude=div.dataset.latitude,dataLongitude=div.dataset.longitude,data=window["geojson"+div.dataset.id];if(null==data&&(data={type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Point",coordinates:[dataLongitude,dataLatitude]},properties:{title:"Current Location",icon:"circle-stroked",uri:"current-location"}}]}),null!=places){var _iteratorNormalCompletion=!0,_didIteratorError=!1,_iteratorError=void 0;try{for(var _step,_iterator=places[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=!0){var place=_step.value,placeLongitude=(0,_parseLocation2.default)(place.location).longitude,placeLatitude=(0,_parseLocation2.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=!0,_iteratorError=err}finally{try{!_iteratorNormalCompletion&&_iterator.return&&_iterator.return()}finally{if(_didIteratorError)throw _iteratorError}}}null!=position&&(dataLongitude=position.coords.longitude,dataLatitude=position.coords.latitude);var map=new _mapboxGl2.default.Map({container:div,style:"mapbox://styles/mapbox/streets-v9",center:[dataLongitude,dataLatitude],zoom:15});if(null==position&&map.scrollZoom.disable(),map.addControl(new _mapboxGl2.default.NavigationControl),div.appendChild(makeMapMenu(map)),map.on("load",function(){map.addLayer({id:"points",type:"symbol",source:{type:"geojson",data:data},layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})}),null!=position&&map.on("click",function(e){var features=map.queryRenderedFeatures(e.point,{layer:["points"]});features.length&&(map.flyTo({center:features[0].geometry.coordinates}),(0,_selectPlace2.default)(features[0].properties.uri))}),data.features&&data.features.length>1){var bounds=new _mapboxGl2.default.LngLatBounds,_iteratorNormalCompletion2=!0,_didIteratorError2=!1,_iteratorError2=void 0;try{for(var _step2,_iterator2=data.features[Symbol.iterator]();!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=!0){var feature=_step2.value;bounds.extend(feature.geometry.coordinates)}}catch(err){_didIteratorError2=!0,_iteratorError2=err}finally{try{!_iteratorNormalCompletion2&&_iterator2.return&&_iterator2.return()}finally{if(_didIteratorError2)throw _iteratorError2}}map.fitBounds(bounds,{padding:65})}return map}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=addMap;var _mapboxGl2=_interopRequireDefault(__webpack_require__(3)),_parseLocation2=_interopRequireDefault(__webpack_require__(1)),_selectPlace2=_interopRequireDefault(__webpack_require__(2));_mapboxGl2.default.accessToken="pk.eyJ1Ijoiam9ubnliYXJuZXMiLCJhIjoiY2l2cDhjYW04MDAwcjJ0cG1uZnhqcm82ayJ9.qA2zeVA-nsoMh9IFrd5KQw";var titlecase=function(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(" ")},addMapTypeOption=function(map,menu,option){var checked=arguments.length>3&&void 0!==arguments[3]&&arguments[3],input=document.createElement("input");input.setAttribute("id",option),input.setAttribute("type","radio"),input.setAttribute("name","toggle"),input.setAttribute("value",option),1==checked&&input.setAttribute("checked","checked"),input.addEventListener("click",function(){var source=map.getSource("points");map.setStyle("mapbox://styles/mapbox/"+option+"-v9"),map.on("style.load",function(){map.addLayer({id:"points",type:"symbol",source:{type:"geojson",data:source._data},layout:{"icon-image":"{icon}-15","text-field":"{title}","text-offset":[0,1]}})})});var label=document.createElement("label");label.setAttribute("for",option),label.appendChild(document.createTextNode(titlecase(option))),menu.appendChild(input),menu.appendChild(label)},makeMapMenu=function(map){var mapMenu=document.createElement("div");return mapMenu.classList.add("map-menu"),addMapTypeOption(map,mapMenu,"streets",!0),addMapTypeOption(map,mapMenu,"satellite-streets"),mapMenu}},function(module,exports,__webpack_require__){"use strict";function parseLocation(text){var coords=/POINT\((.*)\)/.exec(text),parsedLongitude=coords[1].split(" ")[0];return{latitude:coords[1].split(" ")[1],longitude:parsedLongitude}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=parseLocation},function(module,exports,__webpack_require__){"use strict";function selectPlaceInForm(uri){document.querySelector("select")&&("current-location"==uri?document.querySelector('select [id="option-coords"]').selected=!0:document.querySelector('select [value="'+uri+'"]').selected=!0)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=selectPlaceInForm},function(module,exports){!function(f){if("object"==typeof exports&&void 0!==module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).mapboxgl=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(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||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,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)n.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 n=this.shelves[t].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]=1+(0|this.stats[e])}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(_dereq_,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){void 0===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(_dereq_,module,exports){!function(e,t){t("object"==typeof exports&&void 0!==module?exports:e.WhooTS=e.WhooTS||{})}(this,function(e){function t(e,t,r,n,i,s){return s=s||{},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("&")}function o(e,t,o){var n=r(256*e,256*(t=Math.pow(2,o)-t-1),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);return[e*r-2*Math.PI*6378137/2,t*r-2*Math.PI*6378137/2]}e.getURL=t,e.getTileBBox=o,e.getMercCoords=r,Object.defineProperty(e,"__esModule",{value:!0})})},{}],5:[function(_dereq_,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.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)===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(_dereq_,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=_dereq_("geojson-area");module.exports=rewind},{"geojson-area":6}],8:[function(_dereq_,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))));(c=(h=g[S-1])[n])>=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=_dereq_("./feature")},{"./feature":10}],9:[function(_dereq_,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(_dereq_,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){signedArea(e)<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:1/0*(s?-1:1);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))*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(_dereq_,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(_dereq_,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);select(t,a,o,Math.max(s,Math.floor(o-p*m/f+n)),Math.min(r,Math.floor(o+(f-p)*m/f+n)),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(_dereq_,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(_dereq_,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)}void 0!==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(_dereq_,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("/"))||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 BufferMethods,lastStr,lastStrEncoded,ieee754=_dereq_("ieee754");(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)+4294967296*this.buf.readUInt32LE(this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=this.buf.readUInt32LE(this.pos)+4294967296*this.buf.readInt32LE(this.pos+4);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,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./buffer":24}],26:[function(_dereq_,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(_dereq_,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);partialSort(a,t,Math.max(r,Math.floor(t-e*s/f+i)),Math.min(o,Math.floor(t+(f-e)*s/f+i)),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(_dereq_,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;return{cluster:!0,point_count:e,point_count_abbreviated:e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e}}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=_dereq_("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)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),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)).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;return e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0)>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||void 0===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=_dereq_("./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(_dereq_,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,"./vertex_array_type":60}],45:[function(_dereq_,module,exports){"use strict";var ArrayGroup=_dereq_("./array_group"),BufferGroup=_dereq_("./buffer_group"),util=_dereq_("../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||y<0||y>=EXTENT)){var n=r.prepareSegment(4),u=n.vertexLength;addCircleVertex(r.layoutVertexArray,o,y,-1,-1),addCircleVertex(r.layoutVertexArray,o,y,1,-1),addCircleVertex(r.layoutVertexArray,o,y,1,1),addCircleVertex(r.layoutVertexArray,o,y,-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}],47:[function(_dereq_,module,exports){"use strict";var Bucket=_dereq_("../bucket"),createElementArrayType=_dereq_("../element_array_type"),loadGeometry=_dereq_("../load_geometry"),earcut=_dereq_("earcut"),classifyRings=_dereq_("../../util/classify_rings"),fillInterface={layoutAttributes:[{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 t(t){e.call(this,t,fillInterface)}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.arrays,r=0,a=classifyRings(loadGeometry(e),500);rEXTENT)||e.y===t.y&&(e.y<0||e.y>EXTENT)}var Bucket=_dereq_("../bucket"),createElementArrayType=_dereq_("../element_array_type"),loadGeometry=_dereq_("../load_geometry"),EXTENT=_dereq_("../extent"),earcut=_dereq_("earcut"),classifyRings=_dereq_("../../util/classify_rings"),fillExtrusionInterface={layoutAttributes:[{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 t(t){e.call(this,t,fillExtrusionInterface)}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.arrays,r=0,a=classifyRings(loadGeometry(e),500);r=1){var A=d[h-1];if(!isBoundaryEdge(g,A)){var E=g.sub(A)._perp()._unit();addVertex(t.layoutVertexArray,g.x,g.y,E.x,E.y,0,0,m),addVertex(t.layoutVertexArray,g.x,g.y,E.x,E.y,0,1,m),m+=A.dist(g),addVertex(t.layoutVertexArray,A.x,A.y,E.x,E.y,0,0,m),addVertex(t.layoutVertexArray,A.x,A.y,E.x,E.y,0,1,m);var v=u.vertexLength;t.elementArray.emplaceBack(v,v+1,v+2),t.elementArray.emplaceBack(v+1,v+2,v+3),u.vertexLength+=4,u.primitiveLength+=2}}p.push(g.x),p.push(g.y)}}}for(var _=earcut(p,s),T=0;T<_.length;T+=3)t.elementArray.emplaceBack(c[_[T]],c[_[T+1]],c[_[T+2]]);u.primitiveLength+=_.length/3}t.populatePaintArrays(e.properties)},t}(Bucket);FillExtrusionBucket.programInterface=fillExtrusionInterface,module.exports=FillExtrusionBucket},{"../../util/classify_rings":198,"../bucket":45,"../element_array_type":53,"../extent":54,"../load_geometry":56,earcut:5}],49:[function(_dereq_,module,exports){"use strict";function addLineVertex(e,t,r,i,a,n,d){e.emplaceBack(t.x<<1|i,t.y<<1|a,Math.round(EXTRUDE_SCALE*r.x)+128,Math.round(EXTRUDE_SCALE*r.y)+128,1+(0===n?0:n<0?-1:1)|(d*LINE_DISTANCE_SCALE&63)<<2,d*LINE_DISTANCE_SCALE>>6)}var Bucket=_dereq_("../bucket"),createElementArrayType=_dereq_("../element_array_type"),loadGeometry=_dereq_("../load_geometry"),EXTENT=_dereq_("../extent"),VectorTileFeature=_dereq_("vector-tile").VectorTileFeature,EXTRUDE_SCALE=63,COS_HALF_SHARP_CORNER=Math.cos(Math.PI/180*37.5),LINE_DISTANCE_SCALE=.5,MAX_LINE_DISTANCE=Math.pow(2,14)/LINE_DISTANCE_SCALE,lineInterface={layoutAttributes:[{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,15);s=2&&e[l-1].equals(e[l-2]);)l--;for(var o=0;oo){var R=y.dist(m);if(R>2*p){var g=y.sub(y.sub(m)._mult(p/R)._round());d.distance+=g.dist(m),d.addCurrentVertex(g,d.distance,x.mult(1),0,0,!1,h),m=g}}var F=m&&E,B=F?r:E?A:L;if(F&&"round"===B&&(Na&&(B="bevel"),"bevel"===B&&(N>2&&(B="flipbevel"),N100)I=C.clone().mult(-1);else{var k=x.x*C.y-x.y*C.x>0?-1:1,D=N*x.add(C).mag()/x.sub(C).mag();I._perp()._mult(D*k)}d.addCurrentVertex(y,d.distance,I,0,0,!1,h),d.addCurrentVertex(y,d.distance,I.mult(-1),0,0,!1,h)}else if("bevel"===B||"fakeround"===B){var P=x.x*C.y-x.y*C.x>0,U=-Math.sqrt(N*N-1);if(P?(f=0,v=U):(v=0,f=U),S||d.addCurrentVertex(y,d.distance,x,v,f,!1,h),"fakeround"===B){for(var q=Math.floor(8*(.5-(T-.5))),M=void 0,O=0;O=0;X--)M=x.mult((X+1)/(q+1))._add(C)._unit(),d.addPieSliceVertex(y,d.distance,M,P,h)}E&&d.addCurrentVertex(y,d.distance,C,-v,-f,!1,h)}else"butt"===B?(S||d.addCurrentVertex(y,d.distance,x,0,0,!1,h),E&&d.addCurrentVertex(y,d.distance,C,0,0,!1,h)):"square"===B?(S||(d.addCurrentVertex(y,d.distance,x,1,1,!1,h),d.e1=d.e2=-1),E&&d.addCurrentVertex(y,d.distance,C,-1,-1,!1,h)):"round"===B&&(S||(d.addCurrentVertex(y,d.distance,x,0,0,!1,h),d.addCurrentVertex(y,d.distance,x,1,1,!0,h),d.e1=d.e2=-1),E&&(d.addCurrentVertex(y,d.distance,C,-1,-1,!0,h),d.addCurrentVertex(y,d.distance,C,0,0,!1,h)));if(b&&V2*p){var w=y.add(E.sub(y)._mult(p/H)._round());d.distance+=w.dist(y),d.addCurrentVertex(w,d.distance,C.mult(1),0,0,!1,h),y=w}}S=!1}_.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,"vector-tile":34}],50:[function(_dereq_,module,exports){"use strict";function addVertex(e,t,o,a,i,r,n,s,l,c,u,y){e.emplaceBack(t,o,Math.round(64*a),Math.round(64*i),r/4,n/4,packUint8ToFloat(10*(u||0),y%256),packUint8ToFloat(10*(l||0),10*Math.min(c||25,25)),s?s[0]:void 0,s?s[1]:void 0,s?s[2]:void 0)}function addCollisionBoxVertex(e,t,o,a,i){return e.emplaceBack(t.x,t.y,Math.round(o.x),Math.round(o.y),10*a,10*i)}function getSizeData(e,t,o){var a={isFeatureConstant:t.isLayoutValueFeatureConstant(o),isZoomConstant:t.isLayoutValueZoomConstant(o)};if(a.isFeatureConstant&&(a.layoutSize=t.getLayoutValue(o,{zoom:e+1})),!a.isZoomConstant){for(var i=t.getLayoutValueStopZoomLevels(o),r=0;rEXTENT||r.y<0||r.y>EXTENT);if(!h||n){var s=n||v;a.addSymbolInstance(r,i,t,o,a.layers[0],s,a.collisionBoxArray,e.index,e.sourceLayerIndex,a.index,u,x,f,p,d,b,{zoom:a.zoom},e.properties)}};if("line"===s["symbol-placement"])for(var B=0,M=clipLine(e.geometry,0,0,EXTENT,EXTENT);B=0;r--)if(o.dist(i[r])7*Math.PI/4)continue}else if(i&&r&&d<=3*Math.PI/4||d>5*Math.PI/4)continue}else if(i&&r&&(d<=Math.PI/2||d>3*Math.PI/2))continue;var g=x.tl,f=x.tr,b=x.bl,v=x.br,S=x.tex,I=x.anchorPoint,z=Math.max(y+Math.log(x.minScale)/Math.LN2,p),B=Math.min(y+Math.log(x.maxScale)/Math.LN2,25);if(!(B<=z)){z===p&&(z=0);var M=Math.round(x.glyphAngle/(2*Math.PI)*256),L=e.prepareSegment(4),A=L.vertexLength;addVertex(u,I.x,I.y,g.x,g.y,S.x,S.y,a,z,B,p,M),addVertex(u,I.x,I.y,f.x,f.y,S.x+S.w,S.y,a,z,B,p,M),addVertex(u,I.x,I.y,b.x,b.y,S.x,S.y+S.h,a,z,B,p,M),addVertex(u,I.x,I.y,v.x,v.y,S.x+S.w,S.y+S.h,a,z,B,p,M),c.emplaceBack(A,A+1,A+2),c.emplaceBack(A+1,A+2,A+3),L.vertexLength+=4,L.primitiveLength+=2}}e.populatePaintArrays(s)},SymbolBucket.prototype.addToDebugBuffers=function(e){for(var t=this,o=this.arrays.collisionBox,a=o.layoutVertexArray,i=o.elementArray,r=-e.angle,n=e.yStretch,s=0,l=t.symbolInstances;sSymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many symbols being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),A>SymbolBucket.MAX_INSTANCES&&util.warnOnce("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");var T=(o[WritingMode.vertical]?WritingMode.vertical:0)|(o[WritingMode.horizontal]?WritingMode.horizontal:0);this.symbolInstances.push({textBoxStartIndex:B,textBoxEndIndex:M,iconBoxStartIndex:L,iconBoxEndIndex:A,glyphQuads:S,iconQuads:v,anchor:e,featureIndex:s,featureProperties:g,writingModes:T})},SymbolBucket.programInterfaces=symbolInterfaces,SymbolBucket.MAX_INSTANCES=65535,module.exports=SymbolBucket},{"../../shaders/encode_attribute":81,"../../symbol/anchor":160,"../../symbol/clip_line":162,"../../symbol/collision_feature":164,"../../symbol/get_anchors":166,"../../symbol/mergelines":169,"../../symbol/quads":170,"../../symbol/shaping":171,"../../symbol/transform_text":173,"../../util/classify_rings":198,"../../util/find_pole_of_inaccessibility":204,"../../util/script_detection":211,"../../util/token":214,"../../util/util":215,"../array_group":44,"../buffer_group":52,"../element_array_type":53,"../extent":54,"../load_geometry":56,"point-geometry":26,"vector-tile":34}],51:[function(_dereq_,module,exports){"use strict";var AttributeType={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT"},Buffer=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};Buffer.fromStructArray=function(t,e){return new Buffer(t.serialize(),t.constructor.serialize(),e)},Buffer.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)},Buffer.prototype.enableAttributes=function(t,e){for(var r=this,f=0;f0?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":215,"./extent":54}],57:[function(_dereq_,module,exports){"use strict";var PosArray=_dereq_("../util/struct_array")({members:[{name:"a_pos",type:"Int16",components:2}]});module.exports=PosArray},{"../util/struct_array":213}],58:[function(_dereq_,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=_dereq_("./vertex_array_type"),util=_dereq_("../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;a4)for(;p90||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(Array.isArray(t)&&2===t.length)return new LngLat(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new LngLat(Number(t.lng),Number(t.lat));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":215}],63:[function(_dereq_,module,exports){"use strict";var LngLat=_dereq_("./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(_dereq_,module,exports){"use strict";var LngLat=_dereq_("./lng_lat"),Point=_dereq_("point-geometry"),Coordinate=_dereq_("./coordinate"),util=_dereq_("../util/util"),interp=_dereq_("../style-spec/util/interpolate"),TileCoord=_dereq_("../source/tile_coord"),EXTENT=_dereq_("../data/extent"),glmatrix=_dereq_("@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:{},renderWorldCopies:{},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.renderWorldCopies.get=function(){return this._renderWorldCopies},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.getVisibleWrappedCoordinates=function(t){for(var i=this.pointCoordinate(new Point(0,0),0),o=this.pointCoordinate(new Point(this.width,0),0),e=Math.floor(i.column),r=Math.floor(o.column),n=[t],s=e;s<=r;s++)0!==s&&n.push(new TileCoord(t.z,t.x,t.y,s));return n},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){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))*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)),this._renderWorldCopies&&(this.center=this.center.wrap())},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 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:(0-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=-90,n=90,s=-180,a=180,h=this.size,c=this._unmodified;if(this.latRange){var m=this.latRange;r=this.latY(m[1]),t=(n=this.latY(m[0]))-rn&&(e=n-f)}if(this.lngRange){var d=this.x,g=h.x/2;d-ga&&(o=a-g)}void 0===o&&void 0===e||(this.center=this.unproject(new Point(void 0!==o?o:this.x,void 0!==e?e: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),r=1.01*(Math.cos(Math.PI/2-this._pitch)*o+this.cameraToCenterDistance),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)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=n}},Object.defineProperties(Transform.prototype,prototypeAccessors),module.exports=Transform},{"../data/extent":54,"../source/tile_coord":96,"../style-spec/util/interpolate":123,"../util/util":215,"./coordinate":61,"./lng_lat":62,"@mapbox/gl-matrix":1,"point-geometry":26}],65:[function(_dereq_,module,exports){"use strict";var browser=_dereq_("./util/browser"),mapboxgl=module.exports={};mapboxgl.version=_dereq_("../package.json").version,mapboxgl.workerCount=Math.max(Math.floor(browser.hardwareConcurrency/2),1),mapboxgl.Map=_dereq_("./ui/map"),mapboxgl.NavigationControl=_dereq_("./ui/control/navigation_control"),mapboxgl.GeolocateControl=_dereq_("./ui/control/geolocate_control"),mapboxgl.AttributionControl=_dereq_("./ui/control/attribution_control"),mapboxgl.ScaleControl=_dereq_("./ui/control/scale_control"),mapboxgl.FullscreenControl=_dereq_("./ui/control/fullscreen_control"),mapboxgl.Popup=_dereq_("./ui/popup"),mapboxgl.Marker=_dereq_("./ui/marker"),mapboxgl.Style=_dereq_("./style/style"),mapboxgl.LngLat=_dereq_("./geo/lng_lat"),mapboxgl.LngLatBounds=_dereq_("./geo/lng_lat_bounds"),mapboxgl.Point=_dereq_("point-geometry"),mapboxgl.Evented=_dereq_("./util/evented"),mapboxgl.supported=_dereq_("./util/browser").supported;var config=_dereq_("./util/config");mapboxgl.config=config;var rtlTextPlugin=_dereq_("./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":91,"./style/style":149,"./ui/control/attribution_control":176,"./ui/control/fullscreen_control":177,"./ui/control/geolocate_control":178,"./ui/control/navigation_control":180,"./ui/control/scale_control":181,"./ui/map":190,"./ui/marker":191,"./ui/popup":192,"./util/browser":195,"./util/config":199,"./util/evented":203,"point-geometry":26}],66:[function(_dereq_,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 g=0,p=i.coveringTiles({tileSize:n});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":195,"./vertex_array_object":80,"@mapbox/gl-matrix":1}],70:[function(_dereq_,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=_dereq_("../util/util");module.exports=drawRaster},{"../util/util":215}],74:[function(_dereq_,module,exports){"use strict";function drawSymbols(t,e,i,o){if(!t.isOpaquePass){var a=!(i.layout["text-allow-overlap"]||i.layout["icon-allow-overlap"]||i.layout["text-ignore-placement"]||i.layout["icon-ignore-placement"]),n=t.gl;a?n.disable(n.STENCIL_TEST):n.enable(n.STENCIL_TEST),t.setDepthSublayer(0),t.depthMask(!1),drawLayerSymbols(t,e,i,o,!1,i.paint["icon-translate"],i.paint["icon-translate-anchor"],i.layout["icon-rotation-alignment"],i.layout["icon-rotation-alignment"]),drawLayerSymbols(t,e,i,o,!0,i.paint["text-translate"],i.paint["text-translate-anchor"],i.layout["text-rotation-alignment"],i.layout["text-pitch-alignment"]),e.map.showCollisionBoxes&&drawCollisionDebug(t,e,i,o)}}function drawLayerSymbols(t,e,i,o,a,n,r,s,l){if(a||!t.style.sprite||t.style.sprite.loaded()){var u=t.gl,m="map"===s,f="map"===l,c=f;c?u.enable(u.DEPTH_TEST):u.disable(u.DEPTH_TEST);for(var p,_,g=0,y=o;gthis.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);r.opacities[a]=a<=t?r.changeOpacities[a]+o: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(_dereq_,module,exports){"use strict";var util=_dereq_("../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;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);r.blendColor(1/8,1/8,1/8,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":88}],79:[function(_dereq_,module,exports){"use strict";_dereq_("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// Unpack a pair of values that have been packed into a single float.\n// The packed values are assumed to be 8-bit unsigned integers, and are\n// packed like so:\n// packedValue = floor(input[0]) * 256 + input[1],\nvec2 unpack_float(const float packedValue) {\n int packedIntValue = int(packedValue);\n int v0 = packedIntValue / 256;\n return vec2(v0, packedIntValue - v0 * 256);\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 return vec4(\n unpack_float(encodedColor[0]) / 255.0,\n unpack_float(encodedColor[1]) / 255.0\n );\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 highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize highp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\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 highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\n\nvarying vec2 v_extrude;\nvarying lowp float v_antialiasblur;\n\nvoid main(void) {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize mediump float radius\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize highp vec4 stroke_color\n #pragma mapbox: initialize mediump float stroke_width\n #pragma mapbox: initialize lowp float stroke_opacity\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 highp 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 highp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 highp vec4 color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvarying vec2 v_pos;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 outline_color\n #pragma mapbox: initialize lowp float opacity\n\n float dist = length(v_pos - gl_FragCoord.xy);\n float alpha = 1.0 - smoothstep(0.0, 1.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 highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 = 1.0 - smoothstep(0.0, 1.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 highp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize highp 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 highp vec4 color\n\nvoid main() {\n #pragma mapbox: initialize lowp float base\n #pragma mapbox: initialize lowp float height\n #pragma mapbox: initialize highp vec4 color\n\n base = max(0.0, base);\n height = max(0.0, height);\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 base = max(0.0, base);\n height = max(0.0, 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_image;\nuniform float u_opacity;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_FragColor = texture2D(u_image, 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 vec2 u_world;\nattribute vec2 a_pos;\nvarying vec2 v_pos;\n\nvoid main() {\n gl_Position = u_matrix * vec4(a_pos * u_world, 0, 1);\n\n v_pos.x = a_pos.x;\n v_pos.y = 1.0 - a_pos.y;\n}\n"},line:{fragmentSource:"#pragma mapbox: define highp 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 highp 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 highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\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 highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n\nvoid main() {\n #pragma mapbox: initialize highp 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 highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 color\n #pragma mapbox: initialize lowp float blur\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize mediump float gapwidth\n #pragma mapbox: initialize lowp float offset\n\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 vec4 a_data;\n\n// icon-size data (see symbol_sdf.vertex.glsl for more)\nattribute vec3 a_size;\nuniform bool u_is_size_zoom_constant;\nuniform bool u_is_size_feature_constant;\nuniform mediump float u_size_t; // used to interpolate between zoom stops when size is a composite function\nuniform mediump float u_size; // used when size is both zoom and feature constant\nuniform mediump float u_layout_size; // used when size is feature constant\n\n#pragma mapbox: define lowp float opacity\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform bool u_is_text;\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_data.xy;\n mediump vec2 label_data = unpack_float(a_data[2]);\n mediump float a_labelminzoom = label_data[0];\n mediump vec2 a_zoom = unpack_float(a_data[3]);\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n float size;\n // In order to accommodate placing labels around corners in\n // symbol-placement: line, each glyph in a label could have multiple\n // "quad"s only one of which should be shown at a given zoom level.\n // The min/max zoom assigned to each quad is based on the font size at\n // the vector tile\'s zoom level, which might be different than at the\n // currently rendered zoom level if text-size is zoom-dependent.\n // Thus, we compensate for this difference by calculating an adjustment\n // based on the scale of rendered text size relative to layout text size.\n mediump float layoutSize;\n if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\n layoutSize = a_size[2] / 10.0;\n } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\n size = a_size[0] / 10.0;\n layoutSize = size;\n } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\n size = u_size;\n layoutSize = u_layout_size;\n } else {\n size = u_size;\n layoutSize = u_size;\n }\n\n float fontScale = u_is_text ? size / 24.0 : size;\n\n mediump float zoomAdjust = log2(size / layoutSize);\n mediump float adjustedZoom = (u_zoom - zoomAdjust) * 10.0;\n // result: z = 0 if a_minzoom <= adjustedZoom < a_maxzoom, and 1 otherwise\n mediump float z = 2.0 - step(a_minzoom, adjustedZoom) - (1.0 - step(a_maxzoom, adjustedZoom));\n\n vec2 extrude = fontScale * 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 highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\nuniform sampler2D u_texture;\nuniform sampler2D u_fadetexture;\nuniform highp float u_gamma_scale;\nuniform bool u_is_text;\n\nvarying vec2 v_tex;\nvarying vec2 v_fade_tex;\nvarying float v_gamma_scale;\nvarying float v_size;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 fill_color\n #pragma mapbox: initialize highp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n float fontScale = u_is_text ? v_size / 24.0 : v_size;\n\n lowp vec4 color = fill_color;\n highp float gamma = EDGE_GAMMA / (fontScale * 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) / (fontScale * u_gamma_scale);\n buff = (6.0 - halo_width / fontScale) / 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 vec4 a_data;\n\n// contents of a_size vary based on the type of property value\n// used for {text,icon}-size.\n// For constants, a_size is disabled.\n// For source functions, we bind only one value per vertex: the value of {text,icon}-size evaluated for the current feature.\n// For composite functions:\n// [ text-size(lowerZoomStop, feature),\n// text-size(upperZoomStop, feature),\n// layoutSize == text-size(layoutZoomLevel, feature) ]\nattribute vec3 a_size;\nuniform bool u_is_size_zoom_constant;\nuniform bool u_is_size_feature_constant;\nuniform mediump float u_size_t; // used to interpolate between zoom stops when size is a composite function\nuniform mediump float u_size; // used when size is both zoom and feature constant\nuniform mediump float u_layout_size; // used when size is feature constant\n\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\n\n// matrix is for the vertex position.\nuniform mat4 u_matrix;\n\nuniform bool u_is_text;\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;\nvarying float v_size;\n\nvoid main() {\n #pragma mapbox: initialize highp vec4 fill_color\n #pragma mapbox: initialize highp vec4 halo_color\n #pragma mapbox: initialize lowp float opacity\n #pragma mapbox: initialize lowp float halo_width\n #pragma mapbox: initialize lowp float halo_blur\n\n vec2 a_pos = a_pos_offset.xy;\n vec2 a_offset = a_pos_offset.zw;\n\n vec2 a_tex = a_data.xy;\n\n mediump vec2 label_data = unpack_float(a_data[2]);\n mediump float a_labelminzoom = label_data[0];\n mediump float a_labelangle = label_data[1];\n\n mediump vec2 a_zoom = unpack_float(a_data[3]);\n mediump float a_minzoom = a_zoom[0];\n mediump float a_maxzoom = a_zoom[1];\n\n // In order to accommodate placing labels around corners in\n // symbol-placement: line, each glyph in a label could have multiple\n // \"quad\"s only one of which should be shown at a given zoom level.\n // The min/max zoom assigned to each quad is based on the font size at\n // the vector tile's zoom level, which might be different than at the\n // currently rendered zoom level if text-size is zoom-dependent.\n // Thus, we compensate for this difference by calculating an adjustment\n // based on the scale of rendered text size relative to layout text size.\n mediump float layoutSize;\n if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {\n v_size = mix(a_size[0], a_size[1], u_size_t) / 10.0;\n layoutSize = a_size[2] / 10.0;\n } else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {\n v_size = a_size[0] / 10.0;\n layoutSize = v_size;\n } else if (!u_is_size_zoom_constant && u_is_size_feature_constant) {\n v_size = u_size;\n layoutSize = u_layout_size;\n } else {\n v_size = u_size;\n layoutSize = u_size;\n }\n\n float fontScale = u_is_text ? v_size / 24.0 : v_size;\n\n mediump float zoomAdjust = log2(v_size / layoutSize);\n mediump float adjustedZoom = (u_zoom - zoomAdjust) * 10.0;\n // result: z = 0 if a_minzoom <= adjustedZoom < a_maxzoom, and 1 otherwise\n // Used below to move the vertex out of the clip space for when the current\n // zoom is out of the glyph's zoom range.\n mediump float z = 2.0 - step(a_minzoom, adjustedZoom) - (1.0 - step(a_maxzoom, adjustedZoom));\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_labelangle / 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 = fontScale * 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_labelangle / 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 = fontScale * 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 = fontScale * 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(_dereq_,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,s){void 0===e.extVertexArrayObject&&(e.extVertexArrayObject=e.getExtension("OES_vertex_array_object"));var o=!this.vao||this.boundProgram!==t||this.boundVertexBuffer!==r||this.boundVertexBuffer2!==n||this.boundElementBuffer!==i||this.boundVertexOffset!==s;!e.extVertexArrayObject||o?(this.freshBind(e,t,r,i,n,s),this.gl=e):e.extVertexArrayObject.bindVertexArrayOES(this.vao)},VertexArrayObject.prototype.freshBind=function(e,t,r,i,n,s){var o,u=t.numAttributes;if(e.extVertexArrayObject)this.vao&&this.destroy(),this.vao=e.extVertexArrayObject.createVertexArrayOES(),e.extVertexArrayObject.bindVertexArrayOES(this.vao),o=0,this.boundProgram=t,this.boundVertexBuffer=r,this.boundVertexBuffer2=n,this.boundElementBuffer=i,this.boundVertexOffset=s;else{o=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":203,"../util/util":215,"../util/window":197}],84:[function(_dereq_,module,exports){"use strict";var ajax=_dereq_("../util/ajax"),rewind=_dereq_("geojson-rewind"),GeoJSONWrapper=_dereq_("./geojson_wrapper"),vtpbf=_dereq_("vt-pbf"),supercluster=_dereq_("supercluster"),geojsonvt=_dereq_("geojson-vt"),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}(_dereq_("./vector_tile_worker_source"));module.exports=GeoJSONWorkerSource},{"../util/ajax":194,"./geojson_wrapper":85,"./vector_tile_worker_source":98,"geojson-rewind":7,"geojson-vt":11,supercluster:29,"vt-pbf":38}],85:[function(_dereq_,module,exports){"use strict";var Point=_dereq_("point-geometry"),VectorTileFeature=_dereq_("vector-tile").VectorTileFeature,EXTENT=_dereq_("../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.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 i=(Math.ceil(e.width/e.tileSize)+1)*(Math.ceil(e.height/e.tileSize)+1);this._cache.setMaxSize(Math.floor(5*i))},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(this.used?this._source.coord?u=e.getVisibleWrappedCoordinates(this._source.coord):(u=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(u=u.filter(function(e){return o._source.hasTile(e)}))):u=[],i=0;i=Date.now())&&(o.findLoadedChildren(r,c,h)&&(h[_]=!0),(a=o.findLoadedParent(r,d,l))&&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.expirationTime=a.minX&&t.x=a.minY&&t.yi.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":203,"../util/mapbox":210,"../util/util":215,"./load_tilejson":87,"./tile_bounds":95}],98:[function(_dereq_,module,exports){"use strict";var ajax=_dereq_("../util/ajax"),vt=_dereq_("vector-tile"),Protobuf=_dereq_("pbf"),WorkerTile=_dereq_("./worker_tile"),util=_dereq_("../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 l=t[i].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":194,"../util/util":215,"./worker_tile":101,pbf:25,"vector-tile":34}],99:[function(_dereq_,module,exports){"use strict";var ajax=_dereq_("../util/ajax"),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}(_dereq_("./image_source"));module.exports=VideoSource},{"../util/ajax":194,"./image_source":86}],100:[function(_dereq_,module,exports){"use strict";var Actor=_dereq_("../util/actor"),StyleLayerIndex=_dereq_("../style/style_layer_index"),VectorTileWorkerSource=_dereq_("./vector_tile_worker_source"),GeoJSONWorkerSource=_dereq_("./geojson_worker_source"),globalRTLTextPlugin=_dereq_("./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":157,"../util/actor":193,"./geojson_worker_source":84,"./rtl_text_plugin":91,"./vector_tile_worker_source":98}],101:[function(_dereq_,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(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")+")"}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"]},{}],106:[function(_dereq_,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);return[116*o-16,500*(b-o),200*(o-xyz2lab((.0193339*t+.119192*a+.9503041*n)/Zn)),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];return labToRgb([r[2],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}}},{}],107:[function(_dereq_,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)).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=findStopLessThanOrEqualTo(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=findStopLessThanOrEqualTo(t.stops,o),i=interpolationFactor(o,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],u=t.stops[a+1][1],p=interpolate[e.type]||identityFunction;return"function"==typeof s?function(){var t=s.apply(void 0,arguments),e=u.apply(void 0,arguments);if(void 0!==t&&void 0!==e)return p(t,e,i)}:p(s,u,i)}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 findStopLessThanOrEqualTo(t,e){for(var o,n,a=0,i=t.length-1,s=0;a<=i;){if(s=Math.floor((a+i)/2),o=t[s][0],n=t[s+1][0],e===o||e>o&&ee&&(i=s-1)}return Math.max(s-1,0)}function isFunctionDefinition(t){return"object"==typeof t&&(t.stops||"identity"===t.type)}function interpolationFactor(t,e,o,n){var r=n-o,a=t-o;return 1===e?a/r:(Math.pow(e,a)-1)/(Math.pow(e,r)-1)}var colorSpaces=_dereq_("./color_spaces"),parseColor=_dereq_("../util/parse_color"),extend=_dereq_("../util/extend"),getType=_dereq_("../util/get_type"),interpolate=_dereq_("../util/interpolate");module.exports=createFunction,module.exports.isFunctionDefinition=isFunctionDefinition,module.exports.interpolationFactor=interpolationFactor,module.exports.findStopLessThanOrEqualTo=findStopLessThanOrEqualTo},{"../util/extend":121,"../util/get_type":122,"../util/interpolate":123,"../util/parse_color":124,"./color_spaces":106}],108:[function(_dereq_,module,exports){"use strict";function key(r){return stringify(refProperties.map(function(e){return r[e]}))}function groupByLayout(r){for(var e={},t=0;t255?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)return(l=parseInt(r.substr(1),16))>=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(-1!==a&&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){}},{}],110:[function(_dereq_,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(t=(n=objKeys(r).sort()).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},{}],111:[function(_dereq_,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},{}],115:[function(_dereq_,module,exports){function isObjectLike(t){return!!t&&"object"==typeof t}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 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.*?")+"$"),MAX_SAFE_INTEGER=9007199254740991,isArray=function(t,r){var e=null==t?void 0:t[r];return isNative(e)?e:void 0}(Array,"isArray")||function(t){return isObjectLike(t)&&isLength(t.length)&&"[object Array]"==objToString.call(t)};module.exports=isArray},{}],116:[function(_dereq_,module,exports){function isEqual(a,l,i,e){var s=(i="function"==typeof i?bindCallback(i,e,3):void 0)?i(a,l):void 0;return void 0===s?baseIsEqual(a,l,i):!!s}var baseIsEqual=_dereq_("lodash._baseisequal"),bindCallback=_dereq_("lodash._bindcallback");module.exports=isEqual},{"lodash._baseisequal":111,"lodash._bindcallback":112}],117:[function(_dereq_,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,typedArrayTags={};typedArrayTags["[object Float32Array]"]=typedArrayTags["[object Float64Array]"]=typedArrayTags["[object Int8Array]"]=typedArrayTags["[object Int16Array]"]=typedArrayTags["[object Int32Array]"]=typedArrayTags["[object Uint8Array]"]=typedArrayTags["[object Uint8ClampedArray]"]=typedArrayTags["[object Uint16Array]"]=typedArrayTags["[object Uint32Array]"]=!0,typedArrayTags["[object Arguments]"]=typedArrayTags["[object Array]"]=typedArrayTags["[object ArrayBuffer]"]=typedArrayTags["[object Boolean]"]=typedArrayTags["[object DataView]"]=typedArrayTags["[object Date]"]=typedArrayTags["[object Error]"]=typedArrayTags["[object Function]"]=typedArrayTags["[object Map]"]=typedArrayTags["[object Number]"]=typedArrayTags["[object Object]"]=typedArrayTags["[object RegExp]"]=typedArrayTags["[object Set]"]=typedArrayTags["[object String]"]=typedArrayTags["[object WeakMap]"]=!1;var objectToString=Object.prototype.toString;module.exports=isTypedArray},{}],118:[function(_dereq_,module,exports){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:!1}},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,maximum:65535,units:"meters",transition:!0},"fill-extrusion-base":{type:"number",function:"interpolated","zoom-function":!0,"property-function":!0,default:0,minimum:0,maximum:65535,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,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["icon-image"]},"icon-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["icon-image"]},"icon-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-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,"property-function":!0,transition:!0,requires:["text-field"]},"text-color":{type:"color",default:"#000000",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,requires:["text-field"]},"text-halo-width":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-function":!0,transition:!0,units:"pixels",requires:["text-field"]},"text-halo-blur":{type:"number",default:0,minimum:0,function:"interpolated","zoom-function":!0,"property-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"}}}},{}],121:[function(_dereq_,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":104,"../util/extend":121,"../util/get_type":122,"./validate_array":128,"./validate_boolean":129,"./validate_color":130,"./validate_constants":131,"./validate_enum":132,"./validate_filter":133,"./validate_function":134,"./validate_layer":136,"./validate_light":138,"./validate_number":139,"./validate_object":140,"./validate_source":143,"./validate_string":144}],128:[function(_dereq_,module,exports){"use strict";var getType=_dereq_("../util/get_type"),validate=_dereq_("./validate"),ValidationError=_dereq_("../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":104,"../util/get_type":122}],132:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),unbundle=_dereq_("../util/unbundle_jsonlint");module.exports=function(e){var r=e.key,n=e.value,u=e.valueSpec,o=[];return Array.isArray(u.values)?-1===u.values.indexOf(unbundle(n))&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",u.values.join(", "),n)):-1===Object.keys(u.values).indexOf(unbundle(n))&&o.push(new ValidationError(r,n,"expected one of [%s], %s found",Object.keys(u.values).join(", "),n)),o}},{"../error/validation_error":104,"../util/unbundle_jsonlint":126}],133:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),validateEnum=_dereq_("./validate_enum"),getType=_dereq_("../util/get_type"),unbundle=_dereq_("../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&&"string"!==(t=getType(a[1]))&&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":104,"../util/get_type":122,"../util/unbundle_jsonlint":126,"./validate":127,"./validate_array":128,"./validate_number":139,"./validate_object":140}],135:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),validateString=_dereq_("./validate_string");module.exports=function(r){var e=r.value,t=r.key,a=validateString(r);return a.length?a:(-1===e.indexOf("{fontstack}")&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&a.push(new ValidationError(t,e,'"glyphs" url must include a "{range}" token')),a)}},{"../error/validation_error":104,"./validate_string":144}],136:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),unbundle=_dereq_("../util/unbundle_jsonlint"),validateObject=_dereq_("./validate_object"),validateFilter=_dereq_("./validate_filter"),validatePaintProperty=_dereq_("./validate_paint_property"),validateLayoutProperty=_dereq_("./validate_layout_property"),extend=_dereq_("../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":104,"../util/get_type":122}],140:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),getType=_dereq_("../util/get_type"),validateSpec=_dereq_("./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":104,"../util/get_type":122,"./validate":127}],141:[function(_dereq_,module,exports){"use strict";var validateProperty=_dereq_("./validate_property");module.exports=function(r){return validateProperty(r,"paint")}},{"./validate_property":142}],142:[function(_dereq_,module,exports){"use strict";var validate=_dereq_("./validate"),ValidationError=_dereq_("../error/validation_error"),getType=_dereq_("../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":104,"../util/get_type":122,"./validate":127}],143:[function(_dereq_,module,exports){"use strict";var ValidationError=_dereq_("../error/validation_error"),unbundle=_dereq_("../util/unbundle_jsonlint"),validateObject=_dereq_("./validate_object"),validateEnum=_dereq_("./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 i=[];switch(unbundle(a.type)){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":104,"../util/unbundle_jsonlint":126,"./validate_enum":132,"./validate_object":140}],144:[function(_dereq_,module,exports){"use strict";var getType=_dereq_("../util/get_type"),ValidationError=_dereq_("../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":104,"../util/get_type":122}],145:[function(_dereq_,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=_dereq_("./validate/validate_constants"),validate=_dereq_("./validate/validate"),latestStyleSpec=_dereq_("./reference/latest"),validateGlyphsURL=_dereq_("./validate/validate_glyphs_url");validateStyleMin.source=wrapCleanErrors(_dereq_("./validate/validate_source")),validateStyleMin.light=wrapCleanErrors(_dereq_("./validate/validate_light")),validateStyleMin.layer=wrapCleanErrors(_dereq_("./validate/validate_layer")),validateStyleMin.filter=wrapCleanErrors(_dereq_("./validate/validate_filter")),validateStyleMin.paintProperty=wrapCleanErrors(_dereq_("./validate/validate_paint_property")),validateStyleMin.layoutProperty=wrapCleanErrors(_dereq_("./validate/validate_layout_property")),module.exports=validateStyleMin},{"./reference/latest":119,"./validate/validate":127,"./validate/validate_constants":131,"./validate/validate_filter":133,"./validate/validate_glyphs_url":135,"./validate/validate_layer":136,"./validate/validate_layout_property":137,"./validate/validate_light":138,"./validate/validate_paint_property":141,"./validate/validate_source":143}],146:[function(_dereq_,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},{}],147:[function(_dereq_,module,exports){"use strict";var Evented=_dereq_("../util/evented"),ajax=_dereq_("../util/ajax"),browser=_dereq_("../util/browser"),normalizeURL=_dereq_("../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 e(e,i){var r=this;t.call(this),this.base=e,this.retina=browser.devicePixelRatio>1,this.setEventedParent(i);var a=this.retina?"@2x":"";ajax.getJSON(normalizeURL(e,a,".json"),function(t,e){return t?void r.fire("error",{error:t}):(r.data=e,void(r.imgData&&r.fire("data",{dataType:"style"})))}),ajax.getImage(normalizeURL(e,a,".png"),function(t,e){return t?void r.fire("error",{error:t}):(r.imgData=browser.getImageData(e),r.width=e.width,void(r.data&&r.fire("data",{dataType:"style"})))})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toJSON=function(){return this.base},e.prototype.loaded=function(){return!(!this.data||!this.imgData)},e.prototype.resize=function(){var t=this;if(browser.devicePixelRatio>1!==this.retina){var i=new e(this.base);i.on("data",function(){t.data=i.data,t.imgData=i.imgData,t.width=i.width,t.retina=i.retina})}},e.prototype.getSpritePosition=function(t){if(!this.loaded())return new SpritePosition;var e=this.data&&this.data[t];return e&&this.imgData?e:new SpritePosition},e}(Evented);module.exports=ImageSprite},{"../util/ajax":194,"../util/browser":195,"../util/evented":203,"../util/mapbox":210}],148:[function(_dereq_,module,exports){"use strict";var styleSpec=_dereq_("../style-spec/reference/latest"),util=_dereq_("../util/util"),Evented=_dereq_("../util/evented"),validateStyle=_dereq_("./validate_style"),StyleDeclaration=_dereq_("./style_declaration"),StyleTransition=_dereq_("./style_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)).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)+".");if(!(["vector","raster","geojson","video","image","canvas"].indexOf(t.type)>=0)||!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){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"))}else this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")})},t.prototype.removeLayer=function(e){this._checkLoaded();var t=this._layers[e];if(t){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]}else this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")})},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){if(!util.deepEqual(o.getPaintProperty(t,i),r)){var s=o.isPaintValueFeatureConstant(t);o.setPaintProperty(t,r,i),!(r&&MapboxGLFunction.isFunctionDefinition(r)&&"$zoom"!==r.property&&void 0!==r.property)&&s||this._updateLayer(o),this.updateClasses(e,t)}}else this.fire("error",{error:new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")})},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,o){for(var n=this,r=util.extend({},this._paintDeclarations[""]),s=0;s=this.endTime)return o;var a=this.oldTransition.calculate(t,i,this.startTime),n=util.easeCubicInOut((e-this.startTime-this.delay)/this.duration);return this.interp(a,o,n)},StyleTransition.prototype._calculateTargetValue=function(t,i){if(!this.zoomTransitioned)return this.declaration.calculate(t,i);var e=t.zoom,o=this.zoomHistory.lastIntegerZoom,a=e>o?2:.5,n=this.declaration.calculate({zoom:e>o?e-1:e+1},i),r=this.declaration.calculate({zoom:e},i),s=Math.min((Date.now()-this.zoomHistory.lastIntegerZoomTime)/this.duration,1),l=Math.abs(e-o),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},{"../style-spec/util/interpolate":123,"../util/util":215}],159:[function(_dereq_,module,exports){"use strict";module.exports=_dereq_("../style-spec/validate_style.min"),module.exports.emitErrors=function(r,e){if(e&&e.length){for(var t=0;t-a/2;){if(--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},{}],162:[function(_dereq_,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=_dereq_("point-geometry");module.exports=clipLine},{"point-geometry":26}],163:[function(_dereq_,module,exports){"use strict";var createStructArrayType=_dereq_("../util/struct_array"),Point=_dereq_("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":213,"point-geometry":26}],164:[function(_dereq_,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<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],B=e[m+1].sub(p)._unit()._mult(g)._add(p)._round(),y=s/2/Math.max(Math.abs(c-h)-d/2,0);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},{}],165:[function(_dereq_,module,exports){"use strict";var Point=_dereq_("point-geometry"),EXTENT=_dereq_("../data/extent"),Grid=_dereq_("grid-index"),intersectionTests=_dereq_("../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).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+h<=s){var M=new Anchor(k,q,A,f)._round();n&&!checkMaxAngle(e,M,l,n,a)||x.push(M)}}g+=y}return i||x.length||o||(x=resample(e,g/2,t,n,a,l,o,!0,c)),x}var interpolate=_dereq_("../style-spec/util/interpolate"),Anchor=_dereq_("../symbol/anchor"),checkMaxAngle=_dereq_("./check_max_angle");module.exports=getAnchors},{"../style-spec/util/interpolate":123,"../symbol/anchor":160,"./check_max_angle":161}],167:[function(_dereq_,module,exports){"use strict";var ShelfPack=_dereq_("@mapbox/shelf-pack"),util=_dereq_("../util/util"),GlyphAtlas=function(){this.width=128,this.height=128,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,l=a+2,T=E+2;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=2048||e>=2048)){this.texture&&(this.gl&&this.gl.deleteTexture(this.texture),this.texture=null),this.width*=4,this.height*=4,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 r=glyphUrl(t,256*e+"-"+(256*e+255),this.url);ajax.getArrayBuffer(r,function(t,a){for(var i=!t&&new Glyphs(new Protobuf(a.data)),r=0;r=0^o,r=Math.abs(n),h=new Point(e.x,e.y),c=getSegmentEnd(l,a,i),g={anchor:h,end:c,index:i,minScale:getMinScaleForSegment(r,h,c),maxScale:1/0};;){if(insertSegmentGlyph(t,g,l,o),g.minScale<=e.scale)return e.scale;var u=getNextVirtualSegment(g,a,r,l);if(!u)return g.minScale;g=u}}function insertSegmentGlyph(t,e,n,a){var i=Math.atan2(e.end.y-e.anchor.y,e.end.x-e.anchor.x),o=n?i:i+Math.PI;t.push({anchorPoint:e.anchor,upsideDown:a,minScale:e.minScale,maxScale:e.maxScale,angle:(o+2*Math.PI)%(2*Math.PI)})}function getVirtualSegmentAnchor(t,e,n){var a=e.sub(t)._unit();return t.sub(a._mult(n))}function getMinScaleForSegment(t,e,n){return t/e.dist(n)}function getSegmentEnd(t,e,n){return t?e[n+1]:e[n]}function getNextVirtualSegment(t,e,n,a){for(var i=t.end,o=i,l=t.index;o.equals(i);){if(a&&l+21?2:1,this.dirty=!0}return t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i,i.prototype.allocateImage=function(t,i){var r=(t/=this.pixelRatio)+2+(4-(t+2)%4),a=(i/=this.pixelRatio)+2+(4-(i+2)%4),h=this.shelfPack.packOne(r,a);return h||(util.warnOnce("SpriteAtlas out of space."),null)},i.prototype.addImage=function(t,i,e){var r,a,h;if(i instanceof window.HTMLImageElement?(r=i.width,a=i.height,i=browser.getImageData(i),h=1):(r=e.width,a=e.height,h=e.pixelRatio||1),ArrayBuffer.isView(i)&&(i=new Uint32Array(i.buffer)),!(i instanceof Uint32Array))return this.fire("error",{error:new Error("Image provided in an invalid format. Supported formats are HTMLImageElement and ArrayBufferView.")});if(this.images[t])return this.fire("error",{error:new Error("An image with this name already exists.")});var s=this.allocateImage(r,a);if(!s)return this.fire("error",{error:new Error("There is not enough space to add this image.")});var o={rect:s,width:r/h,height:a/h,sdf:!1,pixelRatio:h/this.pixelRatio};this.images[t]=o,this.copy(i,r,s,{pixelRatio:h,x:0,y:0,width:r,height:a},!1),this.fire("data",{dataType:"style"})},i.prototype.removeImage=function(t){var i=this.images[t];return delete this.images[t],i?(this.shelfPack.unref(i.rect),void this.fire("data",{dataType:"style"})):this.fire("error",{error:new Error("No image with this name exists.")})},i.prototype.getImage=function(t,i){if(this.images[t])return this.images[t];if(!this.sprite)return null;var e=this.sprite.getSpritePosition(t);if(!e.width||!e.height)return null;var r=this.allocateImage(e.width,e.height);if(!r)return null;var a={rect:r,width:e.width/e.pixelRatio,height:e.height/e.pixelRatio,sdf:e.sdf,pixelRatio:e.pixelRatio/this.pixelRatio};if(this.images[t]=a,!this.sprite.imgData)return null;var h=new Uint32Array(this.sprite.imgData.buffer);return this.copy(h,this.sprite.width,r,e,i),a},i.prototype.getPosition=function(t,i){var e=this.getImage(t,i),r=e&&e.rect;if(!r)return null;var a=e.width*e.pixelRatio,h=e.height*e.pixelRatio;return{size:[e.width,e.height],tl:[(r.x+1)/this.width,(r.y+1)/this.height],br:[(r.x+1+a)/this.width,(r.y+1+h)/this.height]}},i.prototype.allocate=function(){var t=this;if(!this.data){var i=Math.floor(this.width*this.pixelRatio),e=Math.floor(this.height*this.pixelRatio);this.data=new Uint32Array(i*e);for(var 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){DOM.mousePos(g,e).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":202,"./handler/box_zoom":182,"./handler/dblclick_zoom":183,"./handler/drag_pan":184,"./handler/drag_rotate":185,"./handler/keyboard":186,"./handler/scroll_zoom":187,"./handler/touch_zoom_rotate":188,"point-geometry":26}],175:[function(_dereq_,module,exports){"use strict";var util=_dereq_("../util/util"),interpolate=_dereq_("../style-spec/util/interpolate"),browser=_dereq_("../util/browser"),LngLat=_dereq_("../geo/lng_lat"),LngLatBounds=_dereq_("../geo/lng_lat_bounds"),Point=_dereq_("point-geometry"),Camera=function(t){function e(e,i){t.call(this),this.moving=!1,this.transform=e,this._bearingSnap=i.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)},e.prototype.panBy=function(t,e,i){return t=Point.convert(t).mult(-1),this.panTo(this.transform.center,util.extend({offset:t},e),i)},e.prototype.panTo=function(t,e,i){return this.easeTo(util.extend({center:t},e),i)},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,i){return this.easeTo(util.extend({zoom:t},e),i)},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,i){return this.easeTo(util.extend({bearing:t},e),i)},e.prototype.resetNorth=function(t,e){return this.rotateTo(0,util.extend({duration:1e3},t),e),this},e.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())e?1:0}),["bottom","left","right","top"])){t=LngLatBounds.convert(t);var n=[e.padding.left-e.padding.right,e.padding.top-e.padding.bottom],r=Math.min(e.padding.right,e.padding.left),a=Math.min(e.padding.top,e.padding.bottom);e.offset=[e.offset[0]+n[0],e.offset[1]+n[1]];var s=Point.convert(e.offset),h=this.transform,p=h.project(t.getNorthWest()),u=h.project(t.getSouthEast()),c=u.sub(p),f=(h.width-2*r-2*Math.abs(s.x))/c.x,m=(h.height-2*a-2*Math.abs(s.y))/c.y;return m<0||f<0?void util.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset."):(e.center=h.unproject(p.add(u).div(2)),e.zoom=Math.min(h.scaleZoom(h.scale*Math.min(f,m)),e.maxZoom),e.bearing=0,e.linear?this.easeTo(e,i):this.flyTo(e,i))}util.warnOnce("options.padding must be a positive number, or an Object with keys 'bottom', 'left', 'right', 'top'")}},e.prototype.jumpTo=function(t,e){this.stop();var i=this.transform,o=!1,n=!1,r=!1;return"zoom"in t&&i.zoom!==+t.zoom&&(o=!0,i.zoom=+t.zoom),"center"in t&&(i.center=LngLat.convert(t.center)),"bearing"in t&&i.bearing!==+t.bearing&&(n=!0,i.bearing=+t.bearing),"pitch"in t&&i.pitch!==+t.pitch&&(r=!0,i.pitch=+t.pitch),this.fire("movestart",e).fire("move",e),o&&this.fire("zoomstart",e).fire("zoom",e).fire("zoomend",e),n&&this.fire("rotate",e),r&&this.fire("pitchstart",e).fire("pitch",e).fire("pitchend",e),this.fire("moveend",e)},e.prototype.easeTo=function(t,e){var i=this;this.stop(),!1===(t=util.extend({offset:[0,0],duration:500,easing:util.ease},t)).animate&&(t.duration=0),t.smoothEasing&&0!==t.duration&&(t.easing=this._smoothOutEasing(t.duration));var o=this.transform,n=this.getZoom(),r=this.getBearing(),a=this.getPitch(),s="zoom"in t?+t.zoom:n,h="bearing"in t?this._normalizeBearing(t.bearing,r):r,p="pitch"in t?+t.pitch:a,u=o.centerPoint.add(Point.convert(t.offset)),c=o.pointLocation(u),f=LngLat.convert(t.center||c);this._normalizeCenter(f);var m,g,d=o.project(c),l=o.project(f).sub(d),v=o.zoomScale(s-n);return t.around&&(m=LngLat.convert(t.around),g=o.locationPoint(m)),this.zooming=s!==n,this.rotating=r!==h,this.pitching=p!==a,this._prepareEase(e,t.noMoveStart),clearTimeout(this._onEaseEnd),this._ease(function(t){if(this.zooming&&(o.zoom=interpolate(n,s,t)),this.rotating&&(o.bearing=interpolate(r,h,t)),this.pitching&&(o.pitch=interpolate(a,p,t)),m)o.setLocationAtPoint(m,g);else{var i=o.zoomScale(o.zoom-n),c=s>n?Math.min(2,v):Math.max(.5,v),f=Math.pow(c,1-t),b=o.unproject(d.add(l.mult(t*f)).mult(i));o.setLocationAtPoint(o.renderWorldCopies?b.wrap():b,u)}this._fireMoveEvents(e)},function(){t.delayEndEvents?i._onEaseEnd=setTimeout(function(){return i._easeToEnd(e)},t.delayEndEvents):i._easeToEnd(e)},t),this},e.prototype._prepareEase=function(t,e){this.moving=!0,e||this.fire("movestart",t),this.zooming&&this.fire("zoomstart",t),this.pitching&&this.fire("pitchstart",t)},e.prototype._fireMoveEvents=function(t){this.fire("move",t),this.zooming&&this.fire("zoom",t),this.rotating&&this.fire("rotate",t),this.pitching&&this.fire("pitch",t)},e.prototype._easeToEnd=function(t){var e=this.zooming,i=this.pitching;this.moving=!1,this.zooming=!1,this.rotating=!1,this.pitching=!1,e&&this.fire("zoomend",t),i&&this.fire("pitchend",t),this.fire("moveend",t)},e.prototype.flyTo=function(t,e){function i(t){var e=(M*M-z*z+(t?-1:1)*L*L*E*E)/(2*(t?M:z)*L*E);return Math.log(Math.sqrt(e*e+1)-e)}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)}var a=this;this.stop(),t=util.extend({offset:[0,0],speed:1.2,curve:1.42,easing:util.ease},t);var s=this.transform,h=this.getZoom(),p=this.getBearing(),u=this.getPitch(),c="zoom"in t?+t.zoom:h,f="bearing"in t?this._normalizeBearing(t.bearing,p):p,m="pitch"in t?+t.pitch:u,g=s.zoomScale(c-h),d=s.centerPoint.add(Point.convert(t.offset)),l=s.pointLocation(d),v=LngLat.convert(t.center||l);this._normalizeCenter(v);var b=s.project(l),y=s.project(v).sub(b),_=t.curve,z=Math.max(s.width,s.height),M=z/g,E=y.mag();if("minZoom"in t){var T=util.clamp(Math.min(t.minZoom,h,c),s.minZoom,s.maxZoom),x=z/s.zoomScale(T-h);_=Math.sqrt(x/E*2)}var L=_*_,j=i(0),w=function(t){return n(j)/n(j+_*t)},P=function(t){return z*((n(j)*r(j+_*t)-o(j))/L)/E},Z=(i(1)-j)/_;if(Math.abs(E)<1e-6){if(Math.abs(z-M)<1e-6)return this.easeTo(t,e);var q=M180?-360:i<-180?360:0}},e.prototype._smoothOutEasing=function(t){var e=util.ease;if(this._prevEase){var i=this._prevEase,o=(Date.now()-i.start)/i.duration,n=i.easing(o+.01)-i.easing(o),r=.27/Math.sqrt(n*n+1e-4)*.01,a=Math.sqrt(.0729-r*r);e=util.bezier(r,a,.25,1)}return this._prevEase={start:(new Date).getTime(),duration:t,easing:e},e},e}(_dereq_("../util/evented"));module.exports=Camera},{"../geo/lng_lat":62,"../geo/lng_lat_bounds":63,"../style-spec/util/interpolate":123,"../util/browser":195,"../util/evented":203,"../util/util":215,"point-geometry":26}],176:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),AttributionControl=function(t){this.options=t,util.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};AttributionControl.prototype.getDefaultPosition=function(){return"bottom-right"},AttributionControl.prototype.onAdd=function(t){var i=this.options&&this.options.compact;return this._map=t,this._container=DOM.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),i&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===i&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},AttributionControl.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0},AttributionControl.prototype._updateEditLink=function(){if(this._editLink||(this._editLink=this._container.querySelector(".mapboxgl-improve-map")),this._editLink){var t=this._map.getCenter();this._editLink.href="https://www.mapbox.com/map-feedback/#/"+t.lng+"/"+t.lat+"/"+Math.round(this._map.getZoom()+1)}},AttributionControl.prototype._updateData=function(t){t&&"metadata"===t.sourceDataType&&(this._updateAttributions(),this._updateEditLink())},AttributionControl.prototype._updateAttributions=function(){if(this._map.style){var t=[],i=this._map.style.sourceCaches;for(var o in i){var n=i[o].getSource();n.attribution&&t.indexOf(n.attribution)<0&&t.push(n.attribution)}t.sort(function(t,i){return t.length-i.length}),t=t.filter(function(i,o){for(var n=o+1;n=0)return!1;return!0}),this._container.innerHTML=t.join(" | "),this._editLink=null}},AttributionControl.prototype._updateCompact=function(){var t=this._map.getCanvasContainer().offsetWidth<=640;this._container.classList[t?"add":"remove"]("mapboxgl-compact")},module.exports=AttributionControl},{"../../util/dom":202,"../../util/util":215}],177:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../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",l=this._container=DOM.create("div",n+" mapboxgl-ctrl-group"),t=this._fullscreenButton=DOM.create("button",n+"-icon "+n+"-fullscreen",this._container);return t.setAttribute("aria-label","Toggle fullscreen"),t.type="button",this._fullscreenButton.addEventListener("click",this._onClickFullscreen),this._mapContainer=e.getContainer(),window.document.addEventListener(this._fullscreenchange,this._changeIcon),l},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(){if((window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._mapContainer!==this._fullscreen){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":202,"../../util/util":215,"../../util/window":197}],178:[function(_dereq_,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 supportsGeolocation,Evented=_dereq_("../../util/evented"),DOM=_dereq_("../../util/dom"),window=_dereq_("../../util/window"),util=_dereq_("../../util/util"),defaultGeoPositionOptions={enableHighAccuracy:!1,timeout:6e3},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","mapboxgl-ctrl mapboxgl-ctrl-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){!1!==t&&(this._container.addEventListener("contextmenu",function(t){return t.preventDefault()}),this._geolocateButton=DOM.create("button","mapboxgl-ctrl-icon mapboxgl-ctrl-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("mapboxgl-watching"),this._geolocateButton.setAttribute("aria-pressed",!1),window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0):(this._geolocateButton.classList.add("mapboxgl-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":202,"../../util/evented":203,"../../util/util":215,"../../util/window":197}],179:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../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)if(o[t].getSource().mapbox_logo)return!0;return!1}},module.exports=LogoControl},{"../../util/dom":202,"../../util/util":215}],180:[function(_dereq_,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=_dereq_("../../util/dom"),window=_dereq_("../../util/window"),util=_dereq_("../../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":202,"../../util/util":215,"../../util/window":197}],181:[function(_dereq_,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;r>5280?setScale(e,n,r/5280,"mi"):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 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);return 6371e3*Math.acos(Math.min(r,1))}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=_dereq_("../../util/dom"),util=_dereq_("../../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":202,"../../util/util":215}],182:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),LngLatBounds=_dereq_("../../geo/lng_lat_bounds"),util=_dereq_("../../util/util"),window=_dereq_("../../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._map.dragPan&&this._map.dragPan.disable(),this._el.addEventListener("mousedown",this._onMouseDown,!1),this._map.dragPan&&this._map.dragPan.enable(),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),a=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=a-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":202,"../../util/util":215,"../../util/window":197}],183:[function(_dereq_,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},{}],184:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../util/window"),inertiaEasing=util.bezier(0,0,.3,1),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.classList.add("mapboxgl-touch-drag-pan"),this._el.addEventListener("mousedown",this._onDown),this._el.addEventListener("touchstart",this._onDown),this._enabled=!0)},DragPanHandler.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove("mapboxgl-touch-drag-pan"),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(.3/s),d=u.mag();d>1400&&(d=1400,u._unit()._mult(d));var h=d/750,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;return"mousemove"===t.type?!1&t.buttons:t.button&&0!==t.button},DragPanHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now();t.length>0&&e-t[0][0]>160;)t.shift()},module.exports=DragPanHandler},{"../../util/dom":202,"../../util/util":215,"../../util/window":197}],185:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../util/window"),inertiaEasing=util.bezier(0,0,.25,1),DragRotateHandler=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._bearingSnap=e.bearingSnap,this._pitchWithRotate=!1!==e.pitchWithRotate,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),this._pitchWithRotate&&this._fireEvent("pitchstart",t));var e=this._map;e.stop();var i=this._pos,n=DOM.mousePos(this._el,t),r=.8*(i.x-n.x),a=-.5*(i.y-n.y),o=e.getBearing()-r,s=e.getPitch()-a,h=this._inertia,_=h[h.length-1];this._drainInertiaBuffer(),h.push([Date.now(),e._normalizeBearing(o,_[1])]),e.transform.bearing=o,this._pitchWithRotate&&(this._fireEvent("pitch",t),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)180&&(u=180);var l=u/180;_+=p*u*(l/2),Math.abs(i._normalizeBearing(_,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();t.length>0&&e-t[0][0]>160;)t.shift()},module.exports=DragRotateHandler},{"../../util/dom":202,"../../util/util":215,"../../util/window":197}],186:[function(_dereq_,module,exports){"use strict";function easeOut(e){return e*(2-e)}var 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,a=0,n=0,r=0,i=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?a=-1:(e.preventDefault(),r=-1);break;case 39:e.shiftKey?a=1:(e.preventDefault(),r=1);break;case 38:e.shiftKey?n=1:(e.preventDefault(),i=-1);break;case 40:e.shiftKey?n=-1:(i=1,e.preventDefault());break;default:return}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()+15*a,pitch:s.getPitch()+10*n,offset:[100*-r,100*-i],center:s.getCenter()};s.easeTo(d,{originalEvent:e})}},module.exports=KeyboardHandler},{}],187:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),browser=_dereq_("../../util/browser"),window=_dereq_("../../util/window"),ua=window.navigator.userAgent.toLowerCase(),firefox=-1!==ua.indexOf("firefox"),safari=-1!==ua.indexOf("safari")&&-1===ua.indexOf("chrom"),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":195,"../../util/dom":202,"../../util/util":215,"../../util/window":197}],188:[function(_dereq_,module,exports){"use strict";var DOM=_dereq_("../../util/dom"),util=_dereq_("../../util/util"),window=_dereq_("../../util/window"),inertiaEasing=util.bezier(0,0,.15,1),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.classList.add("mapboxgl-touch-zoom-rotate"),this._el.addEventListener("touchstart",this._onStart,!1),this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},TouchZoomRotateHandler.prototype.disable=function(){this.isEnabled()&&(this._el.classList.remove("mapboxgl-touch-zoom-rotate"),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)>.15;Math.abs(r)>4?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)o.snapToNorth({},{originalEvent:t});else{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){var l=.15*s/h;Math.abs(l)>2.5&&(l=l>0?2.5:-2.5);var d=1e3*Math.abs(l/(12*.15)),c=a+l*d/2e3;c<0&&(c=0),o.easeTo({zoom:c,duration:d,easing:inertiaEasing,around:this._aroundCenter?o.getCenter():o.unproject(u)},{originalEvent:t})}else o.snapToNorth({},{originalEvent:t})}},TouchZoomRotateHandler.prototype._drainInertiaBuffer=function(){for(var t=this._inertia,e=Date.now();t.length>2&&e-t[0][0]>160;)t.shift()},module.exports=TouchZoomRotateHandler},{"../../util/dom":202,"../../util/util":215,"../../util/window":197}],189:[function(_dereq_,module,exports){"use strict";var util=_dereq_("../util/util"),window=_dereq_("../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":215,"../util/window":197}],190:[function(_dereq_,module,exports){"use strict";function removeNode(t){t.parentNode&&t.parentNode.removeChild(t)}var util=_dereq_("../util/util"),browser=_dereq_("../util/browser"),window=_dereq_("../util/window"),DOM=_dereq_("../util/dom"),ajax=_dereq_("../util/ajax"),Style=_dereq_("../style/style"),AnimationLoop=_dereq_("../style/animation_loop"),Painter=_dereq_("../render/painter"),Transform=_dereq_("../geo/transform"),Hash=_dereq_("./hash"),bindHandlers=_dereq_("./bind_handlers"),Camera=_dereq_("./camera"),LngLat=_dereq_("../geo/lng_lat"),LngLatBounds=_dereq_("../geo/lng_lat_bounds"),Point=_dereq_("point-geometry"),AttributionControl=_dereq_("./control/attribution_control"),LogoControl=_dereq_("./control/logo_control"),isSupported=_dereq_("mapbox-gl-supported"),defaultOptions={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:0,maxZoom:22,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(null!=(e=util.extend({},defaultOptions,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()}),void 0!==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-1!==e.indexOf("bottom")?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?0:t)>=0&&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.on=function(e,o,i){var r=this;if(void 0===i)return t.prototype.on.call(this,e,o);var s=function(){if("mouseenter"===e||"mouseover"===e){var t=!1;return{layer:o,listener:i,delegates:{mousemove:function(s){var n=r.queryRenderedFeatures(s.point,{layers:[o]});n.length?t||(t=!0,i.call(r,util.extend({features:n},s,{type:e}))):t=!1},mouseout:function(){t=!1}}}}if("mouseleave"===e||"mouseout"===e){var a=!1;return{layer:o,listener:i,delegates:{mousemove:function(t){r.queryRenderedFeatures(t.point,{layers:[o]}).length?a=!0:a&&(a=!1,i.call(r,util.extend({},t,{type:e})))},mouseout:function(t){a&&(a=!1,i.call(r,util.extend({},t,{type:e})))}}}}var u=function(t){var e=r.queryRenderedFeatures(t.point,{layers:[o]});e.length&&i.call(r,util.extend({features:e},t))};return{layer:o,listener:i,delegates:(d={},d[e]=u,d)};var d}();this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(s);for(var n in s.delegates)r.on(n,s.delegates[n]);return this},e.prototype.off=function(e,o,i){var r=this;if(void 0===i)return t.prototype.off.call(this,e,o);if(this._delegatedListeners&&this._delegatedListeners[e])for(var s=this._delegatedListeners[e],n=0;nthis._map.transform.height-n?["bottom"]:[],this._pos.xthis._map.transform.width-e/2&&t.push("right"),t=0===t.length?"bottom":t.join("-")}var i=this._pos.add(o[t]).round(),r={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%)"},s=this._container.classList;for(var p in r)s.remove("mapboxgl-popup-anchor-"+p);s.add("mapboxgl-popup-anchor-"+t),DOM.setTransform(this._container,r[t]+" translate("+i.x+"px,"+i.y+"px)")}},o.prototype._onClickClose=function(){this.remove()},o}(Evented);module.exports=Popup},{"../geo/lng_lat":62,"../util/dom":202,"../util/evented":203,"../util/smart_wrap":212,"../util/util":215,"../util/window":197,"point-geometry":26}],193:[function(_dereq_,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(void 0!==r.id&&this.parent[r.type])this.parent[r.type](r.sourceMapId,r.data,i);else if(void 0!==r.id&&this.parent.getWorkerSource){var p=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,p[0])[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},{}],194:[function(_dereq_,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=_dereq_("./window"),AJAXError=function(e){function t(t,r){e.call(this,t),this.status=r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Error);exports.getJSON=function(e,t){var r=new window.XMLHttpRequest;return r.open("GET",e,!0),r.setRequestHeader("Accept","application/json"),r.onerror=function(e){t(e)},r.onload=function(){if(r.status>=200&&r.status<300&&r.response){var e;try{e=JSON.parse(r.response)}catch(e){return t(e)}t(null,e)}else t(new AJAXError(r.statusText,r.status))},r.send(),r},exports.getArrayBuffer=function(e,t){var r=new window.XMLHttpRequest;return r.open("GET",e,!0),r.responseType="arraybuffer",r.onerror=function(e){t(e)},r.onload=function(){return 0===r.response.byteLength&&200===r.status?t(new Error("http status 200 returned without content.")):void(r.status>=200&&r.status<300&&r.response?t(null,{data:r.response,cacheControl:r.getResponseHeader("Cache-Control"),expires:r.getResponseHeader("Expires")}):t(new AJAXError(r.statusText,r.status)))},r.send(),r};exports.getImage=function(e,t){return exports.getArrayBuffer(e,function(e,r){if(e)return t(e);var n=new window.Image,o=window.URL||window.webkitURL;n.onload=function(){t(null,n),o.revokeObjectURL(n.src)};var s=new window.Blob([new Uint8Array(r.data)],{type:"image/png"});n.cacheControl=r.cacheControl,n.expires=r.expires,n.src=r.data.byteLength?o.createObjectURL(s):"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="})},exports.getVideo=function(e,t){var r=window.document.createElement("video");r.onloadstart=function(){t(null,r)};for(var n=0;n=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,e.width,e.height),t.getImageData(0,0,e.width,e.height).data},exports.supported=_dereq_("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":197,"mapbox-gl-supported":22}],196:[function(_dereq_,module,exports){"use strict";var WebWorkify=_dereq_("webworkify"),window=_dereq_("../window"),workerURL=window.URL.createObjectURL(new WebWorkify(_dereq_("../../source/worker"),{bare:!0}));module.exports=function(){return new window.Worker(workerURL)}},{"../../source/worker":100,"../window":197,webworkify:41}],197:[function(_dereq_,module,exports){"use strict";module.exports=self},{}],198:[function(_dereq_,module,exports){"use strict";function compareAreas(e,r){return r.area-e.area}var quickselect=_dereq_("quickselect"),calculateSignedArea=_dereq_("./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":215}],204:[function(_dereq_,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":207,"point-geometry":26,tinyqueue:30}],205:[function(_dereq_,module,exports){"use strict";var globalWorkerPool,WorkerPool=_dereq_("./worker_pool");module.exports=function(){return globalWorkerPool||(globalWorkerPool=new WorkerPool),globalWorkerPool}},{"./worker_pool":218}],206:[function(_dereq_,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},{}],207:[function(_dereq_,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=_dereq_("./util").isCounterClockwise;module.exports={multiPolygonIntersectsBufferedMultiPoint:multiPolygonIntersectsBufferedMultiPoint,multiPolygonIntersectsMultiPolygon:multiPolygonIntersectsMultiPolygon,multiPolygonIntersectsBufferedMultiLine:multiPolygonIntersectsBufferedMultiLine,polygonIntersectsPolygon:polygonIntersectsPolygon,distToSegmentSquared:distToSegmentSquared}},{"./util":215}],208:[function(_dereq_,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},{}],209:[function(_dereq_,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){return this.has(t)?this.data[t]:null},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},{}],210:[function(_dereq_,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))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":195,"./config":199}],211:[function(_dereq_,module,exports){"use strict";var isChar=_dereq_("./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":208}],212:[function(_dereq_,module,exports){"use strict";var LngLat=_dereq_("../geo/lng_lat");module.exports=function(n,t,l){if(n=new LngLat(n.lng,n.lat),t){var a=new LngLat(n.lng-360,n.lat),i=new LngLat(n.lng+360,n.lat),o=l.locationPoint(n).distSqr(t);l.locationPoint(a).distSqr(t)180;){var e=l.locationPoint(n);if(e.x>=0&&e.y>=0&&e.x<=l.width&&e.y<=l.height)break;n.lng>l.center.lng?n.lng-=360:n.lng+=360}return n}},{"../geo/lng_lat":62}],213:[function(_dereq_,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(5*this.capacity),128),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}],216:[function(_dereq_,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},{}],217:[function(_dereq_,module,exports){"use strict";var scriptDetection=_dereq_("./script_detection");module.exports=function(t){for(var o="",e=0;e":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"}},{"./script_detection":211}],218:[function(_dereq_,module,exports){"use strict";var WebWorker=_dereq_("./web_worker"),WorkerPool=function(){this.active={}};WorkerPool.prototype.acquire=function(r){var e=this;if(!this.workers){var o=_dereq_("../").workerCount;for(this.workers=[];this.workers.lengthKrTU&pn#5PNFmKU{Ovx47-g!kmKUC)cIw`OKsqVihki$q==%e%YhE^hm3 zx9HqKu7J=`Upup7C!E))kYO29(hqOE0&2ou(@_X1V=WJZ)Q0(T${e$=3 zy4d>N`h{ZWRRlS$C%0yWJlxTg>vM~3n%|6-0n22~Rct3OsnIFD8fj%?c_UfvmYVdj zihl_efohNUc3k*lmhtGhV>55!huTL*juR~oTQ2JPbuUnExwVDviD-pDWgfSE%CGpI zy4~6~sU?i-r-kURMbSp*ti^JaIaBr+ly@AlT&MVjQ23iqCrsrf$Lmows-mOkp1G&nlrpU|>@zGj8e7ek7(btafyKH0hOe+svx_D;Dy z3p-imEoA0SoA8gVg)1gz?(r4|vB%fmu4c(_nh+4nwvc1;29D!m{u2eBDqYdFd!${r zyYAQjXa3Q-i?3hX$#vw~;-&U&RnPX{IKwwnlCj^#w(qI3{qle}H-4R7SzGV>b+2E7 zVz;Ye(tW1x9wsMljU~%@G}xB!`w{wb_C2*%MYk-w&NJGc4tTUu_yV)T!MgaR)0S&% z@7?e!P+>E}%GqxU&u;VDd}{e5UG_$P1(TCMUYzjono+Z_>V9Ord^P`0ZNa-?-uoWk zv(00>x0*LD$U$!3!R12VZe)ZjoKjYQzToC}-_7gqi>Ax7txO7EV7&L@>vLZ`s+QGO zZsGBqb83l`Q<>3Gy+4cBZqMK9J5^*>cmLcd`yD&XS6?jZ6|+?hYxzH)ao_vZQ~zeo z?p&E+^N3}l=GnSR7k#t6uVufksh{QY*U4FF@e9L(%`5+gzm@)X-gjp4%7bjlu|~~D zHhOQqQnPgH-@|CPV~hi!e=W4U>u>qmx}2OcjE zUKb;EuITBt$Q{4-M#b-MS(~)mwfS1nJJTJ#@|%ixZB?2-@$;e(8KGt;Nwz*YPYZ3o z{a4nnzwfcReUI_Im(%9#+}j{}x^2U>$9t}wmYe6W;#uVRl!WV);<|8;8)lEy)~H)aC2%XOouj!Z&2z%N;(M3)^c7@t@A)UcUscug=jY?<;B6mM zs_J4Ecutjxd>H=%d(mDu!smHpSu_TJN#w*1K)QC7B)@r zSUrDN|Fc5 z@7Lb{bK9IbBkf(ntliBM8zu)bH?6T^P+r}onQqi17^!qLbK#M+gCch)$C^gzhHaj= zR9R^^zp;Dj^Pae`TmIjlwZ8WI+qwLF0pdOPeP?k5r)n{8R<~wk_<3?_M*Ym(-Zjn- zS82~#5zNc?Co9xGdgj&7={m|+?R6SINE}buH!EfJrd7%P(VsZ`1By4@zPmYQdZ0w& zL0vxKceRe%5uaMu{;Yp&#j5>J?__BYW0;_alWxtSx~%_CMI9}sPg}3Kn~}@ZI$Hb4 z!w{2I8`)1!`u1_Z|BRNuKLHQsNj*KB(mxwf2( zxu=GWrC#$wuJh@%^(xVq&xy^*6A(JrTu>(%yt**!_)Uwo@3SVdDB3A}{VvbDwb!Sx3B#1CMIs~l4xEIMLoqM znh!ST>SXW!f7Q-7+|h+2-rekie+?Gh0x>()uQO!rE%ToMjT&*Urx9nTmdPwfX z)VJMAW{k(DGDbeCdHvDwqmAC<0}gYh+bv&oI{u5pg%dfeji0VGin{n`ZREbcdUA7o zWOTpJ`jd9+`JpJ?_?lOp$k=C=55lb)^NL)R=;NZy|y{gl{~Lq7B+wXBy?_V4Re|C z{XQ3Yg%1H%JO3m!Sl_V`Z#!Zrt(4+At9Adp&9+-u zRemp>e?)q>wvGI^MoO4N7Q_rS6({5 zHE!vaEx9hnY4^M%U#)zxod4DBZPlMyFPu|rVA`iTf4xUl3um-)nPkbU@VdOZPqn$b z_vKnI7cf?MlWsTv+oBf3rwRUSO7D8_znFHuuj1x@*F7K8KOJmTH4Xmm_iyuc`GZH# zU1P9SSsdana_!j?!^{AM+s7{1NS)W1yTK>zjNA)V+4n_hB{gaf)@;4TH!*H<*@LYY zxVoRr4OnzN`p;yRV}XYcUSn5eyjmK6#O;#F^54o=rgY}F{CBKxW|*Jqzq__)(u=Of zP?Plr>sL?O>=Ax6|6k&UgS~A*1z|_Rxn3Lj3B6m#{_5f03x98KvsV4T{^*fz;ctr^ z&P+Qp$1`zqb;~0mrqY049uv>~V!iH{Yppte{`GeorPp;WKF-Rw_WR7lxt4F-=UIf! zdSLx2U}NoMpG}@gUyJH~F*n)qx$_!c{=UoLxoXZ+sfw?uZ^f1}h5fvEEiSf^^W4@O zVd?iwjxg{QdLQ6ra^-p?+3|Gh(lbY2tgc(F{L)`uHu&^zR}R*o>uat&d@474$wSj+ z6`3+uleq$Y<>pS@Y*@AC-P(!4g;!oY$zI94{qnlY(x;mr9r@X9GFQTR67%wpZ?}GI zY_8dJXm#?uy6QC_G_J|0xju^PY}n*z8Wu5G;?ObY+xsH^A6A>hIQx#eT3Gbi>V592 ztVip#H67MH&-edbZFcvru8fLq?v3*HZJUKyR~@`Eab@L$do3(}kDo68eN!QrbK{#l zKR?N%Ub5NQZ5hn0Z2Nz8-;C+bzWceP+3~>d&97b@PBh?Sapy%r}%JP6>AS_NMDJyVk;_&D&g*PUoyNcJr-&z2T8UmgQ=-KY4+k`sMsCElc;5 z=65csQ+0T;+n_#wWBrEN@{|7*_SYLmhgSyQ=2c((@4MT>8(CADCq;eu`cL(*-e2da ztbcEo>MgsU@x(^zPIvv;$MxI7{_U|`C-?7X)%?1>|2_WCu2Fn=^>xY1<=(aCdbKO& z9pt!TY^!LJZn0RaH#aKM%FM_%HRX!SS2tE45o0w%uyKUC6f1r=Uuus`8+o ze@(aH{>}4$y}4qz(z;c?y5Jz^v>czsq89Sj*1{7ur{;Er#rb(O$}bS*xUX~w zcJkGc(j|$lEXr1Xnc1I@UcG13sxxH)uTAoWxbkU>m_D{x-O^c|y1AYuX7yt!t-UAC z`2UqndATK~tysC3|9F9crhV1IpAE0;h1-(cmTY9}l{f53_UT$RSz-3?bANve$2)a@iHqhLrrDDpA8RzJjL|?uiO>$FptsNe9iTfo&EalA9G#jPfyIXNSps7d&$|*t-#Wc2A@^_dB-J^zie1wtsa{x}`A5<8Fq5&L(SC_b+Lt5s^yi8S9}MrT zIq>$l4r@6>$hOkQGyFv){|UX+KX`g-@L#=K)-w93Lbv}bug&joEYO*I=h^hA%$WZi zTQmJ?`ks4MNgg=;`)1~%fD?CEo+K}pjd`kTSjJO!*K1R_;9Pd|dj4(Nl2N~(KC4LA zc~|^4?@oC0rz@Gi8*{^^+sM10DSK`eFY|MH(UVUm!uQRZgC?z=&3CfNYW_q{<8JDnL!&-f>wPy7;)=azM5 zfyvfK{a+_>{qs~4xzfIhJIX)k#~hiHSB~+Wj!QR)^naa@y=nV#lQ~5{d=?#k#phM6 zpC0wXQas*X=u?UZQ`w1?Oj7-G+P&;QTnzelbe5`HMsv!End zcBg%X;dI?4i|<4#Y2K|V`%?GVUoVK8DYTV*pGewCbyv%qqGi!-@mCP3pec3s=-Fv&G%&F<KF?8XN<3D~ zJLzU4oBot3n$7&NX5Ps7z(Pl_yJ z?B`9hpTlR~w|s8K<5vaO1HDB$x0V{*HdAE@*4wd7_jBpFTw$*u*Of;dc-z#1yO-+n zUOgDW6nW{k1V7t6Q9i>(Mx6wz=#<{Xm@&C;jf+;4S+E4xp@y|LFa9@k+4H*Q z`pZU7)Tg`tlHk2; zwu58RBEf0#my^ZV!pMIXC>tW{zv8 zuIX(&=J5Yul0`#)m3D3aT?U@2HSRykBw<TN%icX7_AQFxd%}FrWZ$1f)9=?< zSvJ34@lK}nw1eo{D2R3 zYWd4QJ5x6=_lkJ(UH!`HCFX*eObme!Jvgq{uh_7x`P8-rV)i1~FT6E5S>4Njs`;&9``MGD8&&(Hf=eVhP@BIX^kC9($HS#`W^zExRjlT9s9lZn(!qVYEFFm;>L;-OL>3&;WIk;YW)Ur+oeUz*hRgk zaxPpsi|y~xk9%xgdArP%cPBevIcOmGXV0sm2lM3aEag+tR!_Fkuy5o!G<(tx%kawA zySBPO&t(Z`qhGy?S3q*SFvC#>D|;FI}+%&Pb> zzF1$wkLPQ*il^nvPXBLSSk<{K&-VGo9si5{>`sL!{>-0$a#6c+Mp1sk9iK;fC-tgY znPO{{lC~{9ZvDdb#*2F%Hi3W6c%3@Dq3>OoyR(JV`j@9PA~^Q(>n^K3@#yh~Y1?x& z)i%3FzR>ARSr@SWiI_#4_ME`{pA55ppFa`IBF(?{n)JusGcNbkpZ;HLy^439gx$qE z9()}B6O*g=2Q0h2t9$qF%iCV_T5Y+{^2%}Lj%?faxwm58$!Vx>>xUEkyN$Yjl(2|Nl{;oxT{x9G5y8eW8!0gZA+pAyh_1vPB*qAr*Qo+W*<%}ZlraJ9@`yt!< zgV~h4w(z6h;(Ko26!5zDZccBDkA3zooA-AUt!-p_Cpwj`y)u0pr&NmF*^-r~T>l*6 zHkYaevqLL&y-)h-?B)3JV`<;#pkJrXrQe$N`tB9Sk7slCJ<3@fb7Y%T*Q_16`wKTU zcTC^nnG`N35qLT3`n(rMqn~vN&)a(8wL?AstHP#^tV=FVtkSh?njXgzSFh8VD7ZRO zF;P3ZNqXywsLnp|XAx&B&c(m&Kl)^C#O(gBA9l*vC8pogT)Iz1`}Tpavy9(d4_&`T zMcm9jVXfo+zeTniSH;FPm4Cmq@U~$K>)|6TxrOC5#}!U44Zm>fJ)hW$pDNp?^)J1e z@hN(8d&z}DvFS5pySH4ZlJnfVwc;0th2p2{LX5{!3asPqFM0TCIzRI_@5w$(3sO@| zS2OJ3q|iFw5<+ zGKpBs=QuZP3-gM2*61Sk6Lws=apeuGK5wjy)O1c;SGRx1G9ORl=Upcb)f;Ty-^F?) zz-To?X7@y=2w#Pw57B2&E&HY6XTfOQx{=NQbbVmOKdtWED6S9wt5;Re<5%8Xdz9(w zQrpIaRE24s-|U`xn$BArAHON<@sgVdOJt@qDOt?m)QY#@Z`~-9?6YVckIK35#^c+W z%yWv0x@SEb6mw-2A`+bueGYxS3B zy22&Q7eD4bnI4|E`KW2p+{%-y4nvt_B1roM~XD?Q?vGTl~-}_}d zr)-Q>$9e5~QQx)FlHOBPEZ5FARQnWa;-$%Oq3B}J>l)+d(?4uFa-I7_thsJA%ZwA( zQ&lb&yFUFnt5l=uRLrcCdPz!Arh0uTrOmFD;_;y5 zI~M~N8mCr=Nwj^-%-BimnU#4ju7g*5UzID@??ubsSTFxlrQUXLBZ!EXg zBG)j37Q-VG`ZaIyxf>oxtdwlvHgTVO(CPGXH!piBxqHitet-P5n0rp+;m5G_PPVDkAvYyY|?x}F) zzR$|c624hikIGJbnH6*;V%Mxl?Ke6*j>auZi?s3m|2H~!YV?{FTXj08g;=iO&r<8l zEc&6c=!db+&dWXrrbM1r2;(zayJut3%~x_CAGow{-6WC|<3CwvujkEI&N~iOt@`hM z?fsRt_ar>eIKR&~?ulRWP~gP01~tB=KPNi6c}b?EWUo+^JHUAA$6KG7Q_Gep?tBv1 z$n>GebOD>7|JCP<4zf9BN^DQx^Kj?p?fXszS)G6Lz^J?8)Sm7mdP)VJ+m}jkKKNd! z;cMZ1^YVpDe>To~w##789hbc&Yl@`e?p12L=60z&?3omzxFb%xb)Bx&y4T_@R)Q>U z<~O^PnRm5m2Z;wOH-rbh6`6jscXhtPx``z@n_rb(T=(Op)!VWyHeG!8ST<|NevL2H zysp}paZGDLkx9><7w5Okcc1)LS~06E$UxG*;Z#M`>!s4%H$Les zrrXQ96I&+)oPVnv$^7Ij`^%KRZ1)qNw?3DXvVL}GdwF%^i4I=Pwh3l;MW=;^Nq^z) zNz*%Ot9HvimF@3uo}A~!&h~q^$6KW>Nfppu##jIQ*{$2n)mn9WhbE?^e&Xn2`TqEm zetRc>F#EiWRW61PWgL^_tfz|2-JAScf1+gam(@mHsUE&L3DrHx%U#}{*t^Kq%Ru>e zuYWPup+`$~c&p+f=Y8ah?(nYpyG2%P)}+)~&m_w)e30S^S~{ak;&GDKg^rR(T*v-x z@=6YO60`lc!r{lf>3Kor>e^*?2C90VX+mo!%vxuy+8b`r%hk=&ylhdpr`^+~uLTyg z_;a5*5?aK|XO!G7?T~VvWk%G$`Pa^U3|{o?+LNaLpUwn|suxQ=vRNonv!!pJIqK44 zRRJbNx_33ab-d4ZX0Cf?ocl5AshIBBJv~RC{JOM*z0EerO=aQbmtEdV4{s2rEje}R-( zS1lve(l1xGXq?r) z?Td4xVf&VaQC&BG9JXOO;$$_k?LUXWM?SkFZ(L-gq?pf6DRbUso7b5j^w1}2(xx4; z+~JesPh2C-RJpPzJ{DX)&ju&9vXK zu*-M*u605ErzbCtbj%1$m7TZig!k6VV%nve_O%HUw{32W%&PHpGCNm)zk6$g%_<%r zsaw|y9d=E)q3yx?esa{OB`Ob+-KNxAofA3kqnq#5|0LRQhD^=tSIKvOyL;xZz_|pcqo?ziEWTH8PUZ6FCx_;) zUR&JZsPFeNBT_%cUb{P1`$OiP6sJA4r~Q(8CEx7*vSo{KnCSGT_w8~%t;&_gC+(6q zicg!j#P90k+DAS~&o#0ao;7ehvTawG)#>@$R!vLuoorB*>$Z8vn_0bX z=!?0E?%Z0O(5^Pu#BR2k&0~S3wUaWPE}p;9Rpx$Vs|Tl`i_=9hp8)$MUeYJu#6CRw z?_!qguO(~;mf75U*#GGI%K{m@b|>TIx6SuRYXzuT$MUjn+bXg5^NA@6^*YC&7l>c5 zlk8mJay|3E{DQ8Yr+=J(eBZu)zx}M~>pKsH3Cr^}Jn&J7dE9r=I5^8qkY~ahuQcB~ zT5mrsRqCSY$Md+sFu?YzdHSUPWVar5@cIX_l7T3A~ju~R#C?52=U z^R>m6q08Q_-EG^nyu8HhtV@Q0?%A!sXKU?q-@dAa=}~ z93>t%eq8iVYlhf4hJCAjf6eAy@I0}{+4;mtPiL!~yH?UCuTE%O+w1YgYQ^L=IcsW; z&cAqNS6`9j+xbCq#ts=Bxfe`QChYQ!THh9Zd|LCJqbJ>$6l(FGoj+H@@vYF#*?%V= z^I!d0$(CXHgN>dcYvUYRPc}7+vzt9Rsc&@tto4ee!jVhd=CwzEnHCr2R`uqn#`{@w zkH-Y~on0pJr{K$qz-PxY(k7fc>Z6}|CFJL&lDoaDr`COzzNYB--skJh=YFB-d5fp= zF50eTyX)(uXFngk+tf07R>oz+HN26wyNmAJ^FO?0npwzo$*7Z>GVLxm_cH!slG?8o zzhjZ7w5E&6=V`}pW-i$Cn*Y#_U_J-qz2`y`_OleQ#ZP(^v@~?)?4#@pnr7XUWo*Cq zN`*bpW#i)yAuFatJ}s!+na=iduJrp$6R-cf9N!Zp6+XYnrq*xr=Wy@cUuwGh_f+@U zSGQb$w(vb;u+#J6MJ@$r)8+l87w^w9YkpMmbd#p?x)uG?C!g2OIr+QxpyCw$^~Fg? zj<9X(n75CoJ!d~(0OvUUb#4ZNvDeg2NH^@?_72`h8a5~Em-{U< z{PBLigT%sD^B&$in_V7M_Ly6(J6Z2lu#K~C?hRuTL8h(g>y1~|E@PPU{bKSNd-=^) zn@`wXw<|h)NOVC(m_?WPovoMmKbD^Od6VfgVfif+FV9%HMSY*4aGZ}oWL(F?ba91y z<+B(PemyjtJR@#m>A}apY!wSvo$X)Uq4?~mVU>0cXFHXdYAOdi*E{wo)*skR^Gn6H_0M_*=_Bzy9a0g ziCDs;vc}P7r*%k0^iG3Lo5&?!0#*k%ZnSRCNLc3c+R%5w@%I4%7W#9PZ*E^5za;+k z)A=h`9J!Iqub^#mXseUJPLZiQ`!=Lam|uENv^tOX>)yAwXPo_eXL@o!uT7}&p>>yX zZdbkCAAj=Bp}VDbm3aiB}>8%yweCbKDrYfi2VY516Z)AJJV6O{|8DNp$4mno-PSl!c~>GN9Q z`QD&C^~?WSB`#@t@>wJ5RI;vLDeDwo?F@s@%OiXE75=ems2sEkdB)RG>e98RX>zgJ zrwwe!_v%DdSBGWGZaif0$bHLRg)f#BPj@ekP>!A;@zHd*<4VU$rybAC*B;*D{7h)u zvIMDTheTW+_?8>#g}c4eeBAjV=I5Dxfr>}^7S3^zm_7e}sbuV@_UM(-i~BVf{=JvF ztDRY>&^`Zq!%FWKZ~gf{<~-yq^W%7a_}`sv)gOPKYJHp%ALMJk>C@ZhWR8C#KMyCR zy-q(}cV*xDvzPn>#ck^!$Oi4a{i*hQL1~Bwhkaz^J-IIjUjinRFXzpY-s3H%?0^T`AkY?%3|=remVBZ2AA~y{aSi@%r>#&Idn# zid$D}zw^pY{i4UORklenI>|>C-Jf_*;g5OXkJm{-Y?nVxlQ=N%EPJx(tRv@b@6Gmp z+@;rky*v58bDbow-K8msHyh=39+Dczbp7GQ?=eBd<#*50ALmqU@ONx$YR}G1s zv~B+ED36&*pZyYS!rE^fo1-Vp5Ni3&urMtrdd7y8TT(u-7(UDS>Am8^H>LJVHE%AM zp7n`{x82?^oKx54z9&cQnib0%!D(y0UW#1SqZZ?m?Q+ofl(d44PR|CnuMV*xFPfuF zS$0O~d^om-DJ7J1bCg+(=+9ENn}%1{mUeAn7JBmh_XOqpdLRDz?AGja<|&grX;Kop zwI)WH-J09vS&xnCi?6f2B7U@R_PjX$=crYWlEhNS&XV%54G%0%Uk%bK*->t+7_OUO zb78gjI`?+#iq{?TYQpKBdOB7-%UF)>bw7GUg{z(CXyD5YuBT+Ty^fe*WB2{w3H4*g z8C{aUU%zx}A0OL(pcE%UhA*DDE5Ixl|!!Q>>V%Xz9_F?9!KU8|r@s+)DdHj6$xnc@ldwVa{ z%3sS=DY|#!mf@P4E)%nK!n7}5k?>imP<(U7yx@+9^-o>(ul2W^o_=_fX*fa;tAwcG_}UO zotjp7wDKkl0GGW)F0CYk9yvA@$(b~oq7(SA>s z?2iU_+t>@L+WFmAhRz6H+VkUeWDsjv$J%!5-6k)^XRIr&=l3sJu6QV)@ptmhm7>n; zWb6$aqc2%3XK?(}+S?R0-J{e^W^GWeo^9mvz1OVNlURdpR;8WT5?#I1j&o;geZiKK zE(`bGnCU-z?{C9K>+6>mhp%d|Y&~y$>Erp2r|QiNZijxZIs0O3L)`40UpTLB5uJK| z-MS)WyN~W$cXja9_HRy4)R@!z#_@~xjP<&w1l~lfZ_7TE8Myq>q8-bY>TeS~&Hm-W zniHA++2V2k=AYUqd3li{>$M1zo>_svM3U`Sefm@N_)XW$qG?H8&%RHtJJzIMTb|lp zQ=*e4sjx?9cdveyU}e&xC%5nU8%QiS+93R3-{)sf%_Z9A3MI@ASX-94N36`M?XkSw zmy9*apD!w)beDclERqW@E=ZM%oY-0&cP%a{dSwhR$JCWS<)YP- zSI>O5RV9BGd&rgPd=b;u=QG}awCv{^4bh%6O`0nhLbgm&UVThpU!v@?V%5vHb!Iei zYQsHyGD;b$L#K5Vq%&_Sv$r7k4|K zyDPbJ8^`jUk~TQudnFj1s+k83iaw%mR>WwP~ddn^{lBm z+cXQ*O*|CDGCERQAJzMPIA(W5PdT7o^c+W!)T2_45UB>$$C+zS7kt0J+KTDbo()%e zj$GlB-F1#teuAqsTlF2LbP18-q*b%;sW*MMTB0H}D_G!Z*m?dU4O^K?naejko^mrT zovg0LEbRRE%aKLvts?4wzMstaCR4nlVYB)ojb9u1jz90c^wssqX{}7n6+g4)GA~;+ zae-wqhrGw+m6eYoT^ugoi3{pX+ToUZ_FB8f8_!7>R$S`ollWWb_x`zza^r?A9=pqK znBFbY%6obC_O(()&(6yoGcvQ*czd+VPHs|2&rfaT6Y}_KJ$Xv?f0M52qjL%h7jE?_ zP+-buzNhuR+9x(c>tlBC-$QlRCphoxJRfiHH!%1{*1*Pdd!9=|YP3b)ZmG}q*F32g^y${|`sjZ<551r2 z%NuGdZ<75h)VM|T+~3!#e&6_cECBRy@|U_%wY{Q|#%4+sbFW zuD$;HR+L>`@lbGJL-Re`+cV4bs~0LSS@c|5i@CMv(;u~X-u3x%j7wjpY*)0u!gf$t z>Cw8wZ#fi=r~a1uov`TQ|JOErx;uNOUs@flzw4cw`C*eezq5`6>?rm!7LWjR?-@ijocKXabUlYhB^GpBFMp4h*>^_J1e@oA>bmQv1GT~zLEAE?4TLLPL!#H}( zlja6obX2>!H+a#-drw5K8E?_~slBY%;e5?)t)|UAth}ANmv}#aU-ek3E!ks7c9^}! z>2EhgHk>=TT2VZ$sd!khCL0>m-*q*s?%EThOwV9ehk{Lc>?WqhWJ}1nZZnbS< zV*IbQ(rWs$)1>|!S$uQNn|*=byv&3BFUMT4GssjClT9zsjZDvva%4(2{PRwvy(2zL zI_u8mWtuUH%DgjtUCMeSE*kO$R^H55m;ACIsi=MViYW{8X1uOT+c)KxDNn4ZU)HL^ z70bfCni(qsYZslHe0q`cX`_aQ3eKt|lfdBEh07NzTTHs1yWn2i-xK$n!g3D&53ick zzo#n3OT_lC-=v){9+@xaslGQ^f&FH2W?Sn8_gfPcZ!LZKI`wZQcjuaedOLqMPmzw` zao8y8^1MS^L+{?7mnTjX|7<+tw*G5XXitz%$J5i7to$~&?QhwfD>h}T+}@AVDyNj` zq#W03?{KJazA=BFd(AFGt{>-C)hthYm9yrKO#ait=)=+TG78-ms4m|4F#etJ**kw8 zEejDc+|`(W)>qhB?s+m__5aTPm}#1U{2jG73)s6hX6Du zWAo5v>i_9;r%(U+nZKZfulxV|fU|~=Uw-zT!?es}JDYmjzWCM2do^B|s@uCdXLny- ztL1O(^!!Dsf$wJ#+iw%!{yl0K_u|r{bGN^(UgG)o%W|#s12@{vhJ6-a{k^~K*SwS0 zgzTQ_mE2;K-`O(z*MxZYl21#U;_Xj=ws<$W_m7jsF6sPh4As8R5?^g9ZgcfA7FGG{ zTJuwf^KIc4as6+TTGJl?Ke+U4(HqMyx8~;+m3JTb9X8+++t2bwKk#E^-o;zW7yWpT zd7ZISelKxUvm#*e-w7TKk5XP{{_9w0yXxlq#SiNz@J;e8u9l3j&B``>{?>f z>OQAMoF0^jh%z(9`uzMRv1Zon-?mIPXSn(^f{HEd&M03QDS$-@h(6pSk$YdY@y{xaZX!+%_TYQgrzKJlTB`>uQX8TMz!% z`Ih?VQta}l)vZ@wBpo(Cb7p_qy3JDqtX`g)G>x7Z*=NYi#sPj zo67a=;lCfhz506@^|Om6*!>9fs=Kl0%B6=9-p?<)tcyKz&29dRvb+fiACoWtS!*Kw zc=Mv?y9%r~?w^&vh^zBSxxa~r%g6bjQUacZdAa?*7qu}&xg#q`XuiCD;0F)6p1(5- z_g8bS_;})15BH_t-p3StzAQ5Exo)4<^uPc1A6A=h;%D#A4qdpqX~x>~)ARMx*GnFK za=cKcVN1Ak$@4^Ym&fvrf9vxfUX!nuxg7X8lKGhl&%fw|%q8u2Vk38+_+c<>+CK}P ziA$us*3a}>w0(x}x=E96tv@Ce%Qutt50Co1waZVRul(*L&~sRvTdODRRNe79cC~rw zt780YKYV)bo$lw+S60boCap2`=SyaP>pMGA_i10BnmpCQH2l@xsOuk#eg^u#c=lww z_u8q#kvpuzFVy|{A#&V5`=y^p%3jAan^Jd~Pw82mC7e<{OQNN|Y*Sg5o63qH+Xn(7 z=5yz*3wZ5$Mb3Nb#>TUbSD<8|qK|FQ$q zzP>g#xtq8oLa{t5_ehcD{}(Iv>~ARjdg&6ww;k)|vU)sOF=wZ=-r;p_eIC_IGz1He zd|7nnTGW{?%M#Ja2Tm<{R=a4aW{qWJ%35_Zt9Y~DJu-`qZ7fO^Fv)7!Q0v^Tr+s*r z!JqTLUc8)c_R(4L>h6hI(b-$_`q{SJk~?w#jz>f2My}I~G~?ghirezlV?&9*l`)HoyLPH9O+;SZ*k z=Z(*2PRMIi+A~u@MrYgKsobY8Z@YV)Ri?mJ%|o#?-L`z&e&yNu&9n8*4{ewo>g{@X z+Cqs_mu_8=;5S=$@7TP%Eh|oTO?qVCcf#7v`0}kO=jT*=cr7?8u5OijFmCOfkPqpX z<*M#KDV^NSdA#Q}2UYxLws_v+I5y`m>Sc zyv20QsKd{Sew5wX^QZR8>e@UlkLgSGmaaYDW&4t2ZuLi*&!@eAO9{(F6<$^0;Z@=i>v9h=96kJv zFF?WkO1;q0`FR&@-#lDhwQ2WU`MTQ8l3BZ*|9%awOy2f-{Tu67soE{SG1D@f^L)Ujm8sKZ(w$fSW!TsDfMs)Y7*pLQSC05&FC`y#@#ZI( z9GV&Z<;lHGd!`F^WXT1rv0q=1b@=Cp;)@neI(2i7h&H*F+t@GMvB`LPkkgLnl^0c}$No~{NMp^hVoEWcmQ(Ss=3IHN zZFoG7z}A(Cch1hd{iMbx{P%gKo-{@icLeJqLVGpc+h zZeRM#`bVmZx4|90rdhL@d*2@Uo;Jm@$nxX+$tyS5%ACw7;P(s@)l-YV*4DB6R9Dy3 zjW<;c3q*QWIF`(rzlT{z%H;UG{vFn*XP&qd66}#z_`^i&+DnD+FXk&I?tOQ1^^3!= z)@xe3>vzUxZ9h>p*}2ENwn=8kuWJ{sZl3k{bb#2kr>^F2vOcrMx9|RTPW+#m>EGL? z`TeJFeLfu}wunnp_1DYG?qAt%YWjYznYsQ|%+w!MUpaSOmYn5yyt+Z~pG4V-ZWGIJ zEukwr%z%PTYh{# zUct1S{g&qJOev9AN&i64n#~DOx@Vq#xj8MSKJw?ahFX=IwKt!yos)dfP51GHspgyc zKDa%L>u_at`h5TQ1RvF?pg%94C;xO#f1sIHwCUi4!V`b@8S%@@3q6~EXGcNl+8y@; zU#mRM+yC{rgQROyV3yIAp06{a&RmBVqN$N_VQI6_jhv-~4-J z-lm6DW?#Qm{A*fJ`QyW)fRFK#U2b|?uRZ9#yt~+(+314%+tv4acs*}6>3vGCwfnW| zR!{!(r?qM2vo0UHJbPza#p*Znx;+{1UU-p{e3}j*KBwgQm;%ef7r;KPYKT zbeSsOW|+Ib`w6FG`7X}(y-A&uSRTs!x_&uYWy8c2SEF|&Gg4VAZ~b_9c}kbXkA$ux z=a>%Ud~JI3Sf6L%J&l8hw`FtxJ=L@S#Sg9QFS9I5Uc8ydQo7)jyFIhM%$~jF3nwni zW0*2Wgk{v8QSZHVj7;{$)PBT=u7d+e2;IM)TDlr@Fegan?_a z+*IVcotr%%KH0R`uOYZ-}t?6qMw+0KKXWk?W31P*ZVSFeOs=%aJl}6 zImg~z`+M%|{l)+NZ)~rB<@cMZa8mG^19Ri29OL@7|59E5oBVrECS0{HzSyy`{M+Yg zg#oh4##%>ST+B8Mxb$IXBTH-Gz5lx=?n#b|;H$gfEp+PG^^J$P4d1!7tX~;imDpnQ z_RW#~d^@JUvVO;DA{X*RBhsdAV)_aFBD=OaLqGdX^OuzbBz2pYet&xL+^fy||Mm(! z%-UDJ+j?j2-BnSWj2`jY>^{#cdC2$Rwc}kY1uwWf3jZB)>DV@BA#o$u*{QrQ3sRhv zcU448urMp>TV89FCZ1?{Z%@$Wk8ElWcTH+&a|-X9p;+L!_3l*3;+Avui|!a+wK8wq z+;aAr`iwt%JEv4|YnwD!R8CUsU6JT<6n2HPhRu?r#8d1A36HV zj$A((zI4{qwlzBrF|ukct~_d4=c?9bvCg(wGgkfRAC388@dy8ZT>B&G`D6~J()bon zd&Sn`!jMIhG7EjX_dnyMqj0gE?>V{Ir&cyP-s$)Co$7wgT5!{zdiLmPMwh+^vU9xo zw&=uZJNbeQ<_es#vpWQLb!R632}t>0s9`$isH%OWsSMx#nk|zq?B)D@??U|?J#*j6 zGh#JQTavgAPO3a(FMTudgxHZtv#YIZ=G@>p>(z4oZ@%nom${Q?pO$BowX;#Ll~riX z?~U6Y8|YQuv0{~#ae(6E&fN^Z)=kdQ4;9vwN$yhIqxC`gSxsZ!h3y-5WIHrnJic>% z0)OWjwzh8@4AX)-qW;^@`QKPEB}^vgX~FeR4{uK0_@+FNH8;OlucPya-IBrif`p84Cw1cB7K8snG)LpilIQjHhdqbg3Px@1Y*!-D{4ENk_19?5NxOl&{1<}&{^p99U$`qMy)W*=nVcKS7 z6y45!lW}Kt$=dz%dg(;n%_n&36K|IaO(Pzg zccPA;zHXensNewq%V!d6O7&c$CN^3QOvwymqZ$j~_8@1v8Y}>;BU#V@_>-iw> zV1=>jmOX#Y3mjvN_K0Qlj6Bl2XzuOoIW3=51XOnwAJ9o!l+pP5ncS(#4N7;WvKDt} zAKTTDr*+}plM}Bhgey86ADq!DG8Sud(+>Z1W9EDucX`)-gUM`Ox3>I$ zUZS(vKV!;L)eN&mdweXdjMNN+Q+sY~erMcZH&fw4!u!6@UIP+;OxdY2lr^ z)UTRJ^7#99C&Mo%Wtj$uH?Yr@_CnMvk!X1H!eI9S+`dq}-cdl=0*s*otiza2}^{lzsm?C(* zbI#F^Ta2GGzcR2s>p4g9Me>!)s;}O*8nb>aOqpTIvVLR3rBipR>-epUj%%;G6S?T< zBaXSXc?YW3TRMMIllB&o+qt^P<;nA|rTtr@e9n{_-)HmKe)#Ez*5@jkdycBFHE21S zZ+&>F;cd~|FXm3;nDl&8;YRN@i_cX|UYEK$d8vE+^oqF`9+n z?P5oE{moGl>E3#~u=V4#7a^RY+1r{=+OPe*+p&F3<($?W{WRs zL6#Hu7XLlePU6cZ-Kz_XorVAU zAC`L3lgA;v?t6-j0bg}PWmk6V)!-b5oS)Nnzxyec-l28jXdmm^57j3v(lrE&S`HZ; z>RY$4-R#4L&8LM;4=tI%^j|{k_xariV|BNyv+TW?K6!!Cys29c_*x&YII5^i93DYPhmd z---U~{O9&{FL*sUg0cHr!{Gz$hO6aP*n3J9k71b$He!uCwPjtTchlEMF{M%vjvGu{#%b(*MXP>-UBl5oOmF%wE;1m6JZ?b>g;JMMqV_x!NUHQ|0zPn#v{&=Ux zn<@L)UCrmV-&mH1imlP&TU8dl(%fwtk4@f7U-$m6ogubqBD4Pf%3bkZ_2C}>y6iQY znWwZlkNz(@`h3CE2S;R8+&_B92+6eM=~j!s;{LNOtIA)}=Fd;QziX%6=l|MbeL}5p zt*YvjhuI~cyp9-7`FZ?=>F-s1ruy8MS<~WYTnt*jeXZ-RZkIjI$q#2$Oxaj+;^X^! zHfO?@J*)h&@y_*`R@3(^d|ugCyIVc-)f@}=YQHP`O8-Y@5~i``TSAm?1b!!U(?LqThFz!t>s7-H`sC3qI9*)>MPyANqd2yIJ-o3h*?5|sS6cIW?Oh%3 zOZF=6RI|_D*LQ2qgW%P3cZ=>2R@j>C>DLfEL-?xQRF75;xjy6PyJr=B)?4c-efs`8 z_V)5i`#ZkoyIwH98XwsHAbsIY%UedmA&VyNSQBQJRd8heza)O2uB*?#l-Iw>t&@LM z{z1M$ylQ*dlKb||XRh0&sxhaV?@(*I`~9oRjdtdgM{^IqpAuiOgz4f_hMCh?UE*Zk z8)RA9gtC6*Qs0&x>ocdgL$B{n4!dk%@6pB<@B6Q2gzs*=W&39xXQV>*#A7nE1eRan z72(@E@qv+;yYZXn=Y-SFod~_X@@j7y*Z16s^s z?q>?0uFd*v|Nk8Oj+Dbc5>IcO-YEX`1ouRXS*hCspZ1$(G~LK>K4+q?7p zTZ@Mwl^KtA>`OLUyI|szkF&SDt!=*Kmd&r}6|}g@$n+-10-vM%+!oKae>eNdc{@fs zS)sQVPUSOwDBd7$-f%j2jo)Lo(AYy~Id_YlHQKoH&Bc>%*f_6lQ2y04lOtM&`zk%!dECY}{al>-h0m+E ze{p#8x+zO_%hbNgqKz{ni?T&d{!>bvQkm*Q4L-oKIZ; zfVXnd`lEYJ&x*Sxy>HqyJ>TfEcM^L)k4uKOX~!QEefwxn^(yWPRb8do-S z_)eU&bmza*YaeX9xQ^pw-%N{WO+#a=SNo-Yb#|{dE8AkbJyD&r@AIBDd$z>g_!iZ; zZmps_Q>5LRCZRp&UsSg~;{F`tH+N=cZ&B{S-8#Vs{rQEbe{VjQ6LHOLuOe%2MxE<3 zv+u2EU*2X2n<2Y7GMxGE{T*{HE*&m#Ua_Ue-=v@MpiixJ=ercwg9Xpjk7X{qDBhpy zJBL4*rzLPnwQQ!ZzvzW~>8=7#54;q)H&4S>WA$vauDt%EH6ORn|DW3xlH;|!#7k-B z^&4)lwy1lU6{Jdf-1JMi-#@LyD|(u&(Z1PILdUBME%~B0^}PGy%CehV<>{1nTPEgD zi@)+{U-s5+$;KwW`;32&y*haDhU2}}dIoR!gsPj|L}qeiJl`bx@3@JeQnTNTtP+JZJIepRZCaD^kAN1~2xiOuBz_?)6W*Q?E5__f3p{?fdKq$DKe!4SSVT&8Gjc z%l5rt&5qUIEcl{V@|k)}2lw~m7S9&R@BV3Ym*aJpknlSB*>k$3M5Bb+7^YltzLvD& z{kAq%`FxH`xpV*3hWi<8)UH*+by|%_I%8BH8tbE?Xpt2*HZ`xedd*{A<7P_3Vi82(m3J{KNN9aK53Y>Jmxw4GdR`CvLgFyESR9 znCJCbAv=DtXJ#(v(4Tqs!m+h7Y%Ooho?c(}X2Qm&VupXYHwSRHO;WwP({N_^oC24U z@DS#pb$%ir_8k4oBFU4v{P7~+iAq)X`dUt#^h;DF)F0$ez2W&R!0++Ad=L4&HOF46 zPp_V=aWJ#W;qqqB*$lY{p9+7w#HRaU+JQyoOD0&eHExvNy!gYv3mwuf+nmY|q^KBL zNlb3`JTqfz&Y2^dq>daFmEIh9Wn1Pfu4eboqS2z)<_muO{3x#RVNGzWs?3XTnin1V zZCk#oiG;U=n_E6loa@zK@}TwO58uP8ha%UpS@GK%JUH{Pzi`*->j?}q{y0yb&~ryn zjbDkWu66eW*)S;+j@uovyqEG)rSWox6^L6V<7qr=ng{#zT_}UgBELRs_+Ej9aU3C2yw>gi} z6q&bX&)0NKY|zq+;^BOK@XReg3m!eblCnJ*yS-jAAF4p6&6@m07ECjLq}k?rQ?BD?FZA1xsw+y7DV!DGwzc$S@mv<$dtaVdq3U2hjcT8ml}C6P z-Zx*fF6Y$gX?JYfx1@aAe$FG^TK&|F!!}V(3F=Ee{hBIwdiE)cWtaBPNUPUhy0*OA z@wCv!wmxoG)951ZlKG(q5Bv>xv^dLo2_$M>G*J1SInm~y=!Xs8m;cC5m7g5csdaJo z#8{TbV)c^cnQv_GoPBdQ^y24>fws%G9Ge=qwQX;Q|IMpqM_nxHZrb0fzVDw`ms0S~ zbOl?oipk_A!3(o;9=B{(S$0~K=bLoqk?q~QM-iPU-zHdvu##?jF9-wc|T?@w-#A4pRs9~*oE+IMz?zxc@71cCLP{-?(H^mRD@g>;u0IKkaglK7P=HgXxFc6qZ`kL$Mv}|G)Tk{>}Tj z^Vi?LKezerp4D%f4qlzoy7T@>$l7g9n~@`3t9iXx6>IVf&ZP3G-z%4P}nHDq1PDKT)r2RS-<` z`;}zeqbQvn^|I9GpW((M(&dTat><&Oi(X%9TJZ7E#)((;oaU6UiJiCq=QDvLp?dFP z?V!m&O_&-iOK2T!I?AzID;cRvnzvd|$A4`2W zW9>wFrNYn0GH=ab(Ox@m-JeCFZ+b7BQ(3L&;`3-h&;Bf5o!wkUv$q#s{<-oo)8Zo+ zm+15Tw_%DGouoQp(qRoL=5yzl@V`Ix;cx!?^M9_~6g^~Nf5m@Gw?xh1nzb(TH8w?e zJluDyhh6=-4%hPc3W+ItFX|GH>7+GZRppwNdA4AU!kN%xyW&0H&v(8oB%dWpkA>R;m$O&8^cD7Z^43cD}%_x##_50sfX=A6zJUZG%f>d}Ye z$}_aWm#HtAy6E*g?)PH1N_bOl7KiqqOqeotmFl@Hp2ym+8NOz{WGyRvyr)@1t$gd> zS4TxYPk;0+ci+wy<0&i7o;%ualKVVm&c;I@{@>I8dMS(=}ASlpb(Ip^eQ<7UA#53X!}C*aHW zF)gn9?CHRmc}h1gzdR`aDfsN`(@UN$7JKiu%3pHPns=?c#N94^DswpB9C)H@qVu1r zQ-06)e1Cj-kn8Gil3GT-{#v`T=9r!qc!cR^-?#RRna`KyyYk95 z?F-lXl`Wa)*EDhQg+u?tO;=@{(af*wTvigVuD;87$IQEF4Py_2PM6|(X?g?6zVxzDFOf9ea1 zmvSz;*Y-1*U1AcL`q1}ll#|U%@s}H(PGT?hx>U6Lg;JOK!R-Gv&H$ zGu-9M7{BoCs#iYiUQ;olaMt@A{dcP#{alkHpRyzNqKTQ#yRwJZH@-TaBsE)%ySb$C z+q-Y`#YEN zZhTa6q=Pa1N=CWpoSrSocE>jEo}K^WW4D3)9MkOJ@_B8_>Kp!rzCXI~VQ}uMs&AYt zWX^1?a(~=uy*@yG>1W<+dsyZrc?o^aO3n&ybTg^z6izsHz`N|>b9ue(wHgg(E#KRV zcd=didq?fY?V`77G9SXEr<9es*{8=`f2mY(Y@&epV;z&#Mv2EtcSf^Ym|mJ5!P&I; z&5`e4EMFyVNYZ{5`eUZv?Y2pUdMjG?>&ZNPsJQZhj;+?Scv0XpV=nOzBJu0qQ`n!)Vm)C8824(*{}W>;h=EA{>v<>s~ty9e4Kmn+V_{2Is#4B z$X6O}s?3*4ylJsvVYv21hHw+J71b9upP9FI>#ubklD=~vXP^BL9=Latj%UnU)Bnn` z4)M<(o4+nnICfSw=FZ2|e~x z+0!X$GyI-7oRm!WiAYQjzj4;!tdaznpU z$5tMdHT{!fk+^Kath@R@4d=vKmc-7yx=H)o6@IhFhh`~TI0%TIkEwt2WP6gh_}R=y zF@}(40M8Rs zmiJd;ZDMXeIc})^?6j{%t$d4y|M>;#wa52Q$&T}Bll=O9r{zxr%hN|ZHq9*+zrEwk zeWAK4V>QcJx3oDm=Qt)dh5R`_$@!1qacS$zs+FzhO?|@8dncZiy}t1O(@3_(_oC)* zHeXvfvH#M>o5~wZj887DFlK3~SYnhR<0YFUlRioRT|}YImm9)SGao$(v)f_Fyksd) z@5$m>Nt4d-+>D;GJN%`QT>V0Y!!vk2D{6je8ZS2dJ)x^o<-_+CC!{auuC1w^cyo_P zB$q-)*q@^jTeMW>@VxswvvZB2(_+a@ z5A3Hby%_stdR*`Ex-Z2dy5Fu|pSNqLarlC(^UN~^);+(j;2^kl$(0#Ntncn#?K!?f zNl>C(b9PrsTQY~F;x@&FotD>E=#{zg-I3u*KFp^2;iLFB7uoY_vtG4{-w6FEleES0 z&^+eAL~ZUX8})+)Q$0c!Xnze!pQq*8!JEtV?XAwzP^%3Yhp+XV5}G~nb~Iz++GAX* zm0MOsZ1B_wTsrfhmDwwu#?_}v#4If4HO`zFy6MpL=y@I)bHATUd72xr?sw+lRaIS6 zRTR?Gyh3G^|4qnv>bzQT{&weQ{C;}B|GDq||G(DmfP9L5-DAeuyZ}F8n}ZX%&kN4_ zICI6SsN<{7gmr&sa+u}ln7{TJ*T!RcOPM#m9FZIKfBb-J`^@{^z681=IF zvtT0M(#Km9U)n5NephJ0u4#;Fxzd`Z)q;VuX2~}EnWMU4g=I@swN7qS)!7a&-Ab9y zx3;)F43uiUVwyCOA?|V8Gab*3(Y({dAG|KU{54SRe8#O=8iz$*1q*DMpE=K1LP+BC zdF^}CKMM2imge3Oe@ft4+35*e7Ziy0T5u=dvH1La{VNT&UvJ$0pPg?nGC}VB(ck8G z%r5@FTVzmqqGRvwx(z1{uFjZr=h2_C7oCc4KdOJ`-Dt*DA~f$|`@B7|37f?xmKC#= zNZZb+VgIh4?|9}=`II|WmNPRAU5~lc9r0qaxKbq1^R8>D0n7d63GRB9esZU03AkC< zY_5{?LPZ2kc}{R<@1MOZ?DdYN z8$=)H?)lsLritN!fKu}Y{eOo3e>#<#f7UH={lsqfQEn^Gi~XCwe$c;HxLQWS>tCGv z{;)pgFRz)dO^(s_=a$|%`Ob^Z=r3;$y=2#P&5$|bZt1!}V}0O~n?D5}`OW3mf2$i2 zXv@=k^;u&2qJ0kd{%gYM@hnpeN(ndw*8gpF*9#nzvO@IiixeKdj*7^&(m8Gtjd#m z>dA%=6B7%0e{xOyr2l+R@TJ+`IHv9?`x4~x?UC{s?Tu4Uv)^=Y$d5Y5z?p8oO{B?5 zFhP6Gj48SSHZzsKSjzrXFzPloT;(pCe0iPJ35_S$OYUVchAweQ7xYizyZ-6S!5s;1 zNda}=rRVDMm@0Ejo5yaoroH`2zw`B#oUSci*F-fhOK=4rnPf*sWL6>uHh!00W z&R=06OWn6l23fPNI~Ccku3 zH*faZf`3x$Omq(VUXp7N|MH`nV{Xforv+Q2w^jK{Kf0m8S`vSs*K1Kl%$AF0U$%UZ zGfD8-@hvm)tICo!Gmdhb3SF((_OSCw`pMTX*e`uc+Irk;^^XPrqV9aN73<2idp+&o z4C}lpJDWB+GX_6@@-kz|qwS}?W*RH+^Rps)%R z?oj%_f5k5^$Jr<3+}?g_-Q7ytx>}um*QOP$v;Vz$-X*cPSmnn*^>*`?S=i>HfcOi{(!K<@wvJU!R#9b}}Nh_SzP^v?Y6mUz?pa{VCEZ zANjvwPQ2UQC27;b8q@G)mFTvUwROoRoZ?$H$DH(5UH0Ak-G{FIFPV%deGPwiq%P0Vu-{oSz5l|NLnm70VO-qS&Q~&f8E8i%c zQ16s)cz;Ulx@68aiO01@ip8KN8v9N(D*j@x;@`;idhMd#n#$}iKM8N0V{b8KKr3;WFZ z>SFV@hgYUPQ>rx--W^`RAl%!rfBC))r3`iVS<%uz7x3M?GhbTdK-d42mTR161qx)I zvQBN}njtJZC6gty?m)`@lLbVR3a?LDuXIa}5#N)`Bed<*1tIzG!q7(903)pK1N}Q!<}`h8%j194ByO{RT*4$X!g7NdFL18om_NC=lB-pv`wcD@MV2kRkDUPditEd4}$#D@@Bcj zEm9Qvk`d85wfjTtrP-?-|IMtNy~bN|tBq=J@l5A!3tPEUqdrIM3sP8AZTX9*?)LR| z7PIJ&h6z`MqmHPYSfJaz#`k7`b5>ye)G)7~Ymf3(oc1_W@ceAT4|~(VWS*(Bl2@zZbYr&SlNRegSG z%KOb{_v^GXWJnhDBFcUH{nVeDGef zu*1f5=I41|lEo*#?#?OEPjE`CE#F=3{dv(luilfV-x)sFUjH%+2{W}x&Ajfqdxed>vPe- zrTbJk4(H_LaTWJ{;nP}n{C?TXjpwFV^Ik0fcJ;K}%$eF^8@~9;7QRf1FwC2;C%Go< zRN9BLU%bOU-*dWsD#1Ueef}J_?%I_{*dIHFL@TYoqA=IaZN>l9T-w^zN&ZeA;r6?~ z&U|C;|E$}kfBw2F4)0%oo?vX`#ji4XWsmQ^H9iYoipqPtlsdgWEW7)GmaT>Kri1HO zWT`FPXt=ZW)T%=B<6HLqH#qA0IJ%MFWOtl<&yE8u5Bb@auo|D!UtqnX=HqvvKR@iA zJX?8t=f4@p{d?rQ|1)yctP5Ggldbn_!!KKlS($n_oOz0tE%d+SQtMu@&&hOr8E^G7V<<(Q49{P3F{+QZsvE;hp)~2k-ogw*?rvLV+5bI%?|07f;yX;C` zXm4{$qS~aj0mb`PoC(`9^QWs{?b(?A?^5$kOk|d?uUuyw9&eL0|8ZrH-;Dc~KKHB+ zrpL=_yVjJ-#h>22ao#_vJKHwgc=O8c-TQrJaod{ry?eSm>*@`;L#q}$zmNZrvi;q} zJ38qx3v4YetmYT%={Jb^d;CIy*&_S;8uvhV=RU#v+1G;7=jcU$$y@erm;RYwj0}e_ z${x>u_^HgTuI*UIn|O)pFTr1=!?*d#Fk76v_V-_sZo#RVkD<$I1Zx*Ctxhw$->9f~ z#w5L>BYt;K7rV~7{S}5c-@g0t>6!bl(uTqVA3nXGaqIIXv$~}#mae$Y=Fzn$#mU#F zfBBV5(~sOv6KK+|zPfa|U-Fu756-5#eUlCRb1!k1ug``b>#J9ENv_Ih{ol4a_fhWL zM=yTWuAeHtLf>kaPMVR@yLc6EwwvEKWUkcTawL9b?V8gQ7aE(r`^D(j*~E2j4}BFr3IE-4`a*|u^Q=T+``;_7uIa?a_a1uq_Zde7~CL>^{ZCHZ6J%L5`$KmW1#R`GaMd-S9!r{1eYvRnO>ay@Ih zvHGQ)zdL{CG#24p!E-zh-Pk4Ozq-CoPSIGh$L0H#*k0L-Y{ehjWSuHCj#wXzd~1E6 z`FV)U+vzHcZ*Xr&Xo_+dJ}e~hpUdUVjLNJx@y-1Y7f)|j-XLi7M^0&r<4m2j=p9BY zyG2hfTx!E4c4F?0_piQhnRz8|Dwk5%>)Xk%7hKKW!fyXBP@k(jrYv^SmPHTCa;{hR z?tI@MEwR5QFOOy8lj@#=Liw1R6SOlA%$z7H{nTaM`&ZH)&x&u{S;Vr^_rOJ)s zY-+j0I#oEBgMCU(%$*N+*L~}`u}|>mx@YXQwJ$z4*LfeFk<5PQs##H+zTCt`TeUe) zsjPJNtG_wxYlwFDN-@QIc6Kv9ZET*Ex=#4+wXaVy!m=*Rb^N+1Hg3_1(Acu=A#*MM zA6>fMiM{Y`nYPKY=*yD}{UtBy$N2?6oo;6lWLi4?O!oxYH*>CMwpA!=l_}WWt)C{j zHEX`uvdIF|uW{SWQEb`s^MYSz^16zOh%$${e`Y1JZ~gh<{pvGQee!gU*3LZJpZ8g^ z@)*mHRoi3&?;J_{QTZcBTI+4gYrFTU*$d9Pa3}k*oSML1(XJP{Pfcv&-&4{(`iu64 z{gbjfTjv?HMt}FjV=hxm%H7_}O*r+yQoB5ScIwuetQMBKg7Y0S8&bZ`o4YPQ_dzJ9 zfY7$AbJ`MBpQhbN^vvF@^V6yj45@rX_ z+AVU6=njZkQWf_jVcGtqtp|O#oP207FEu*-UAOwr9hZ{3jZ?qbn9TlrboE1zvr?ar zmd;!mTP^Rk>wof+ufkV%^H!qb$Db09EsVic@rL(ucgV;|o||=Z_F;=( zmm|2%x1Knu*SC6d_{=&-p6AQWCUZY>RIW5VB(XRB)xV8;7tjBF^kJiHd~>eQ!y~*i z|K!v=OVnpCyL^AkR{xsoKm5&3q)$xyBeCS*|Epqu9Kvo?hHdWAe^vX`W&R#dyBjm@ zBX#3{>d#Y?`v2fwz+^e5^<9?0f&Rgu&d;jNW{6F>Y&9jaR2b1!x+}aEO zM%I}|o>-OgTW|A&`>&6D6=pc%>>~VqUp)KqSC18I>$ujaZu|4>ZCjprnK?uFw8hb4 z(Th7+R&dwI{d@f7ecIoRMa=(G7d!8hxqRJtd+T+}?X7j6U%ZO`V>HNKAhy7oRE=%hM2V=%Fr#Q>ro!xeG?bZd`*PL)J(wWg+_}ihv z-t5nI$prazk8AxBjt2`Jblk83cDnuV$Hl6B}}iHEc(RFJ&eyE<~OnzD3P1Odtzmr>GytC`8AvD zt0sF)ef&&beC-Q;{bY_-AAeiBTZ<#hzE^qabr^Qd-}aEJQvY10n)c$SYbLVW&i78> z%dYpE_1gBlWa)~RF<)mWh2Gh`;^S(e%`Ka*NU6!1M;MFqxu1W)c3}>`@ydE`=_QPsc!CafP-fu?7?xn2^b38byo|9Eq(CmN9pGAUlahwS` z>lx(k*ZeTe6+ff+FSJTv^;T#1%Xxyi;)i0KQnVSlqrZ0@@UU}rTq~5hUw^W!E8|38 zrBw&7xG~hun7A+NL*zvX&%AZXrxWaT_-7nHaBtR!n~NM;qk9`x2Hg3YE_>{pwWitm ztC41tt$u~7A99o{bZZV;Bsbv~`?h^)Pkx+Qb$S2NS?}VXZauw&y==prvR8bE!#W@6 zwpiI^Y(DI3l5|sek?PCx_q+a|@_EkldiIO3&uQ{yH{bF9pIiQTyZ9Hq9|39l%JZkn z=!YcSzc**cVvciFpx|LxU#Q*=(B}!`wLfg_Z?+rJIZv8 z`%F{-Ms(Z;#!h%Mp72x5^s#_cJNzp=+$c#f4_Wo*88f%_Ze6>{j{sxYQOyT zj2%;SPVStOx--jY|Hj{zlRHG)@){rWEN^{(E}=H$+=}w0lPaIbPO0&~cGviD-1VDx zPnxwb8!PBfVg1i;ytb5kcJb+kpHqKL+P`Je6anMZtNwRxwfdi1@%7H`W{dy-+kY%J z-OU^F{?(zT-TOE2%-*}9X7;WR``_ufihizsD=OFIIP1?s4UU1#oj15W4P&ulM8 z{n?Xc-6MKhHT}8iwsps+FFyZPjQdk&>cvMJ?HPR!dD|B$p5cGSkht_=YC)IJR-w4Q z&dwRnrZ+tN{8E77bG=t!>_3)?@08~F*wu0|{`|VS``hc=8%~)Td-ly+^ttX(JWp2q znk503gFFS+1aUZ4%;j~sR(P)@Wyd5V<3-c9D|V(&$(;K5f~-QP(7p#3JzTXWW*=F& zxy7b0L?LEH$>lJv>Lvipb1L=CevF-bYu4Rm_$X z<5t%3yd@r@G0kJn3D!F?ZtUtE>n@aC%H*CgWry#-HN`2pT)Aaa#e%+V(5+mz>Yes> z@wB#MkJHRm4R7rDQ0N)+#p2Aw#mfYv0`HjC|1uVO)xMEu^3_YL-X*9_i`<(Su{qF5 zO}yH{$>Pd3;rCPS?t8#k`cc5a?4?Z4)`)k1CKt?Gm*=$SW?yC3GVPSiY$UU#zT=Xa^im)|bXIb|wz_5OkjyvJTSs;*9ZTB(%hJ#pTx=(eC%Q<<3(mK5|Av>GF%r$Wt9w&K&aY z{6|wbR3mzAK`HfK)F3Vq((d9`Ax_20Zs&ugvt@0+ulowrEndwtuM zhs||OM|ZqYESHRlSaV4BURuD6O2dT@bBp}zc1?>t^lpLhon75Oq%Tg(?#NVH`mhh#1ORJrs`|M7k`n~;+>q;1<=Xojr{;wjv>-pZpe`~dm8VUb@a6dY= zeJQutB8}DFkt)3lUe*0Imgbh`T76R8=u6RS4fm?*pL5=Fmrj1kU>|(_|7DIo&QekJ zJ71!<^BZ3ke6rEzy4bRDrKZnzT9Nm*)TCUB z@L~C4skJKLQ2&859u94DJ0{=WC(1J`S7*|l*q@PNS~gs_j(e3Kdc<3G;O(1)l{wq@ zCFU<=m|lH*#j`h`*$*Cw<9TecBHJgnqkMm(y|_s7Yvy`W+XIi6AHOww`>FCxHmT~* zLb@;R-#7ow<*ti0VRzWme+2*Czx|riVV2))f|p)i+xmG)&ZX6X^@&$>AN3eY$6hyD zdf6c3h?NCL^{MG52?q^wj6)ZetEN8xbNyxe+$Ae+7d+a1*+R;7LAc(;RLg?d2W=Lz z^V|N`*t-4q76Z*CuM;>w-kbXN*ra#IzWT~7H^1I>Wrh9?N3T2I9|u1ZpTD9n^M1`G zfFavvad92KMesJ?O@+zCb4?YjMb$o$vC$E)y0OOgZ@bOU7P%pS)gS*NeMnJ9?a~ zm-_#EL%EF2bc5gnE4A0>O_;sYA}GOL^|Rt5g~a)DS_EEucRk&5nMHAv`ND7Kn3`RU z?z~yKmutf1+~Q@wXFRE6yA!|CDDh;*F@}kZVe^tFO<8v;@#UN?{o7v4)Y$CiyX&90 zH{Yb#*WlN$Z8D2~otmavwO?KS)waUtpBU{KKe!xGEWD>{>m&HE-z{nG48~0}N)oeD z_jkSDH@oj?_1PRXE4#`=_OA-7^TQTI=C4jo-BOtu*yr=U`_mWQV}HG>{lxjLh41I9 zD)>Eps($tQdBdRN4zpt?O#88BnSN{5*N$JF+`d=e+Wz?Q%PZxg)d&ezwz%}wn$sVk{94(+u&lev7UWog0YJ5#*=6>mtN zApV`p#s{U2JgIATMaRUjl=6BU|L!8UI_%fZ_7}fr zegAy)`F$s)Rb^aDa$aWzEu6CRmc)(>X}_blZYI>e{~UWwk!klbA5ndtB*x>~*YDrr z-<_EIe`$Q$+x}$kODy>em!I;wEE93NPfT*4*vyo|AcWR=S+|-qSno zs?Es1Hskk)@Y@S+Obytm5w}S^wA{^!(|F6is&D6iG4UPszof9#cLnGCM~O#4q_Jm)pPFaCT-rXS^s2q>U!?4%gT>V`rG;D^kRLJf9IZd-nu9* z75Ct_L-lP*KdyBJg}qNL_q`H6S0wYya?_2lo)4Wr_O3g8$%_B*pXc|c-JZYX>!WqE ztq*jc&+$K>7!~=lg}29AYDt5W|Qqfsnua>%)>iv=^4}53&G0gVjx<4yL*S5}Q zvj|t=b>XVx5xT>1D&$iCk$sYlqLy!(!elm`yO+G}|3bCkNBdc_cmMW0+L)j|S59A5 zMpOIL&Wn>He%936JXqQ)5OkNN=Z;Y8lFy#=+E2`i|0yQBHhr&Kg!u1UvDaAJB9k^~u|MOx8w)@SB-0wMO^7zXAKh)kS$uD9oua+5A z`+LKM0&cr+#YJbo?`Zg%AKe%CWXf>cz&vL zciikRJTo&Iy=UF5mz>?e6lHsOf&Qew6WP4EKcD8(}&C}G@j+|GO<5=YxnnCLN*oOzuc;>kUXn( z?{HH>{oS}%p*!>R7~Ar;1U~)x|BZIamOP%>-V9fy_xC6~-7nMiV{6pKBK!T%eS>Z! zbZXI`2VpqVJ4lw+-`b7u&yV+vA`a zy7kqz?drxecg(q`b$98y%nJdN1geiTX~VZ`{BN4j z+Kt5*U(MRsrF6BOcXqD(w)YzTZ~kZbJeb7d7T)+tM=?I+-ksguN{7tNy?7?uubz;Bl<6{K?(eh! z(Yx<9oNc;1<=}^mDvp1~$=Ve@7TndxR9(+SObc7^$?j5#PE9WU?ldd>#n;I7W zdC|G14SX?{VwbF*PTBriIVCx$V?o6mP5Wi9PI~nTF27;4)2uML@?-Ru{0*;eg{4*g zZJz&c_PS>8j`9$Hbi*e^ok9P zzc-X#KEul#aU1L# zErZ5^>1&c6ZCe|^_CV9$irdSQZay>Fk(u^!{rpbl{gUUy3e$I9T6OW4;s4dUw#i=; zYrJdvk>SeOwEvEEzgJv&IQy{sw2UvmE^1!*_IKT_;Iox+j>5-49 z`ZSIE-AeN#;8lSxfg8GqNp^eKegp$97xq+!Ga3?Zo{VC;Dd1 zGUB(GT$^w3#rge8;U3Rvi8q(-40rvs{)Y|U&9jw$6A$y{los7)`#1Ob43))M7XmLi zOT2Ha`Tz6jwGV!BN)hw*B;95HTLo|SUmU1gXuaP3=wGKgF&7>7#ZzBwxNf?)?vd52 zCE`aci|lMB20l45bE#K^#$3;(VV~BpF1)sLb=Qn2yKaRIJ<}EyUfb0X$@f||_IAi~ ziIYEnOYl7U5OU&>pQ>ET?(T_dUt1+lnm;*Gll^UjNy($dvliL}MAb`WFST3~v+C3G zt4yU=t5sWUZvR{8C;4}RU|DN_fm8Rd*I$l1itOH}I_XK#)S}yOrYP<4Q#&B)_CzB; zRkdbgXSoHx-IDJKQP1Vrx94!(IMbGGy7~9K?!>Ic%sY0tPfGaK$J5E!)5^5Dw(8|8 z_62U&;(eX@=gzJ^eBwymw!3n(+D_=&FFAa3{e;^S&VQaMcQZoemKyVi2X!n*^G|)- zaJc0#<01|bfpp`$DJDFzZ1tN{u5f))j5YAv)1JCRap4I8)vnXJm8#Q|ie5|EG_0%L zbRe6N{SII&70R=SUz1%zjPYc9BXrjx1tTT zM$hI=f9IdH>_QTYmShj5ZvO^36+T zFP%BtTJiQOksh2G9G$AE;y3O%7U+&wyK75N!q^5>F%4&0Mh&{)J ziOb7*?`WnUE`9bxE-ycYGdUvr{GFu_f_oQegmxw~G4m)i>I*y!+@hZMecGK_N~eDP z)ZVXm{^y+&4`&)xiH}kzqzd^a*56yX(jw*Pl4K#Cokon( zPh_`0bdFAscfDE4Vf8_)PW{xvJwj@M(R)-Sudgs%$*UvV@kr<5_PeVa9{xHl!RK_4 z(VyqI^iH;q2{Ka~pVxX-%Gv~9|Gq(LadODv_LWDj89sPdm|yTe=}6@i-O$_}cc)KF z{h)auS?9FS>~m8qRX=SDSe$QK-Qh5Q)#O!ALhrS`3f^^g(l^Hp+y5JaZaYfPoiY9C zo$Zn#*A<_Ot@qz9c6odG-W}5VrYFMUByKOSnjROm-1hnX{pTltH{DjG-qrVb<+Q-` zT-EPfmO8lwtuMokbTbQLZkoI8{=rkAIr)D7mX2kiS06s$>pGBpp}Ei3SYME*U2WT8 zMUPKPmqZR|M;-D>_}mk5pEvwmwt%)UA`2s-|^Qh$)#VIQq`C1ZD;-U z)J~LH%j9ODN5{*#T~P{AwkFT?7R$}kF01Ox)qAA6_UdBSiT^J$NXP5F_79r8-j02J zugGuROPL>6r8iz!Rk~)6z5Eiz>6?x<^IJ-OOWS;(-}Cg2#f))pir!rReeBMYV}%Vd zR~9eWSGQnVzVoXEw-Zn9%bwHn>855W|Ma8GhnG4g{GOgNtAoMcLVr)K74LEexs284 zZa%mWQt|2DJ_Uy<-~X_>&Qj<+#=&K4xjq^g?9#6$t{e5I21kR-|dinB6xaHyvdy_*OcCeL9OSZrB>U)8C8~48Z zD&0FQX87&i`F!1-3ieZ-ixmwy{KNcaRy4nP zn{c{skHYT#McJ<>CVmLJr2Fp2wg=q@J(d?OU-44Rp{0A_o+maw{QI(&PWiwW?IqqB z8~5hdx7ziJm4SQMCg@p6H95Cmvyt?R{JpuOMe?Jz$=gq{ySDqRdbIoNtsW68hFL4C z&b80`D>82nN5NF3jn}Spdl-D0i@fqp+$ZOHBu&|t z|5x1TB3GP8g;c4L7Qe9bql4{z?`z-fs`9TDtBtJpcFoLKZZ7V$;(|wOy}j^ck=>8i zB~A}gS1?$b>bG_J;s;(DzE2yDOnH^oI5lHkLde4Jm(mv+Z}$;YkZNTuxI%Z z?M(IOH^@v}u=d#e_cQL7MTuV)Yvu8~GZEN_Es-~U~iPqw~&&}|&OFk&R zVnc^y!kb>zqR)Fz&o^oHhABwFw;_owGJZHZCqk`K^d3g?A z%~HlzbKkblE!lq}rtMhN1Hbi&x7)sdjD29W(Q@m`RG+o|7XrQgNdaQ0-x8&7wMibt;zn*`Djq~qryfCXq z#;MFE^320fRm0qMR$kv&Goo*<(_TDr)r*kx^N$=|vVC7z;fkg6Voz}CZG0juqF%ma zpS$YmO$-4K?4`p#dOr5BXK0kPek3>Tmvn(-lX1k6x%o<87XCikGVjRp&E9 zZ!N#M=vC0wSsyiLud}q<`smxbjLsP^i`<<`6({mpMl89^&ga?0xIVg9Rd(|Ef=>!l zb(WOrvK-hr^YqTCUv{rqcVqc^{zTcIZ)UPBs!M#nVG;Wy!Ly&(Z7$4_^ZfI>`x_5; zhE-kbW9$7p-#hI;?-wI6<;|q?7n-~h;x}EB_P*vmHNHT_XMM%S19E)}z26tL)_(mJ zU0B`pv3MQdAGVz-c{juU9pPcIuyeebZu~bU<>9Z7C7LqJ&t;}teQCdvVe%!UN$A1K zEdkmkg(bB!PetE0^(<>Y75-c!>v_ndCu)^5mPmW4%Kq49G3l4<#BZ+``EJ{zsxS4e zuD;~*z6ReToBY)IjQ@5nJ*DcHCwa{4a=HIng_yU}482{uPfwlwFzSQ_b?3d5`E?e{KykC%WdT?-2 zs5uA!lgD*$u3;_%kBW!sH3N>7V1WFKRFam%jcif&@Y=Em- z)>GBxR<)mhspqF*RlCgZ8PD@C{uk8C{@ZN-_~`e^N*6|-KkLi|LJ&B!~ z&-QOh-@Qh@q_O;r@|MQA8acJi3+AvKj@~GJ;OeENzt1!Dy)UmQU{AL5<2mp}Z5_i# z9^)gz8&ApXHq;haGKu};+=>gYQlIL!-qC+5)vub|qG#G|tr51_Hg3C7sG!Ve#e2SM zBiwzg1uq_4T`*5Q{KEf7Yi1u=dRX23M2o<+^Jn||$d)8~I-em~Y(y04C* zYP#5(Ri6(3`f)T<-XL*TmfZV}itEd2{U+;!b>q${oRcVW`{Ir&cOCb{qx zJX^f>VwI$tdw^ib!`a2Rg%2Oik&g>Lt+*%G=|=9_Niq2s?roP3O?t4uZjtPUi1Qi7 zVvAN1%&5#UrVWQf2ox9PHIDx^_p$l-hbaFBYR;&TDY_;#!B$GE*7ALGU_-o@9+Zq0lN?E_;P+POe z^|*Q8|18*3m$KFU(&p>-H;=EguPD9yX=R4Hk4d5=Tymu6O%^B4*1E&sG;>7C``)R{eBYx49xJYU@lPTus^Uq5}`?WX-RE;-9@Qhk%A^Rc2O+@-;URn+qD-qUtU z&AX%$Ql4{9d-ZAe#4q(qiEP`h{6Bt;txU>BxXn1ARku~0GvKka*1m`{k-f?>QCHdB zs|;(l+c}37}cqq^sUirmR3RoPo}Ck5QRzm?C!*lO_|9^cn(cTz6brZ`?*d7xNw zr_W^*U&~E-|N3WW@96v2ExhfhO-1zHW1S~&9{#v{{kP=RvH`!odVP~`l=#K>S^np& zEsp$+fB)ru4rmBWZJB*&?)040INbwhTR3)V7_`jUTI1H1T+<#tTb=o!T7gXS?)^{G zIfHd_n3%K^G74w>E;;%6vXKs#rc_W*OX`fsj`5>#3Gz<*jUT;yT?cPViu@Oa#H9d|9ran`-Gp>!4F4PPqHc57P@v#ru@VW$CpUGnKMTvAt!I9>pxrR zzQy;xYo>j^7iF8Aq51K+w|PI$-MHV@vzT`At`m;>xHh?P;p=8S^MKd?-gfP-t7hu^ zag0Tbi~q{Lk9!VG5!G8|$gtbZ`a^_d|6^XBryXs!?%fB3^!1lr%b8Z$J!ReIN5Te) z5<)6F-nu=RVR%e2$Yk!D?2~%MJTrbJJaZKb4Qx2GGP8!|^uqWEll(L5^6%fg`@_~@ z$G5*qC6zb-x12i8c+GY>@2-}0|GDd$_8)0Yl2(w~cIV5It9eCCn|82zcquA8SU-V1 zeO~*!wZXx=i!Qm~{Nw3_Lz$b6)cyWnoGboh z!(ZNuoLAYeWFLQZStHVM2xqS#|3l5BXVqit!) z@rI6sL+=?x)U1x2ykU{!aj2kW;mL-Ue{Cy5xXYZ_w%ChCf9p{{yWfA6(){bH%`rzS zKNc>2v(@{&`nvnlM<+zx(0I9fop!Ue^i{#QAHoNlQa}6_o!lZ9X=VA~qL1S9v*)>2 zyDYoCh@p0_3D4;zvnRJau&dgkFuAI$BUt|iU%|Ue5u!&zr)8FFr<~(TnlSlw)b&zx zm*9l=U)b~yYwC(|Mb+$Hboyd)h6MXQ7AcLU|LoxjlAkB6i2GDg67w)6qfhpt@uRD^ zO>K8iyEL~;JL~e63Co;Lw)|uLV&gyYO~J*;t-R&h6AmYfue1FjyXBN+chq%Rvu_Kc ze>#?HEWCQ-z2b~(4>M+-by9z0ao`$HySK2(jJK{=e2>lV{&{VIvwkT1T8;I|u6Nc( z*BM$lPK++e6gcu%c2n@8y^k+(mKNQ%@;MQ9*7*;|&qL4Hmp858Wv=Bc4}Mowc-Hjo z+ml{1E}n1rB2w&>k>{iRO|n+=&gYMRfA4z{uUpdFzUjOB8VT3qwS3FCj?d#;k*B3D z7x1~~X;r|>B8wmHcdxXil&pL)e`QD2=b!p9>Dm=9Wwx$5%fEm{W5d~d`~OJh?MX}8 z@$pb6>y9G|1q|2LaU4D%p>Wl3BCqE5_Xo1Pvlc1-@3MMzEp5wsw}9&oo0n^G9$qOI z(QO#3wfOG@UXAKyOgA@wsGRw{@8m6i)k_X5ue)DrDD=Ho^V-zRjeVwr`>!;cMls$7 z&5)Bi_g=k=x#QdvQN8(nO#8LYlqH(pYEnY?(_)?|)L$|3)Jp4m8qsl;oz*!>FsSHb zTVqR`?$lGOKG>;!b8<3Rov~%ru9g1#*~~teyJ&7v$-cHnoLg^=#dFuoVFF1-3;vu~ zU%u??o)rP?hFjRCKNI*;-H>K_dDW2#L3Sw@4z2aM^|h~5^Fr>KlpcPS2ZyuYTl)2E zGcXg5-8xlgk3WOjv9QJ+pE9ezr~m!;P1fajJ@b^Txg!$%WSJwRd9ahrO!J51^;qscOHRU(B4JUj~ zn`bsZbD}l_`};F>3HR?RxQFfwDPNYBKjZVixBDMT+tvR){r}H5-9rb$na}llO2}Wc zTYa{aW$W6ufFjld6CIo{s8(eLOeoJ{$ULu8-}Ue6h2$Tb?Ppso{Kq__bmx*a|L5E` z*e37Qm~gE2*G!*<3)?F%il|!a_brNj@{B)>X*$^Tm1IZ`$h7md`GPuHXT>Ul6Y3W%w4DT z#>XBzUcGG_vj0k4ia7PMv8u8ssiUy&cZExm?M0U*f4H}9_-cxlRTaN%eO0Y8U1+Ip1C%%?eMl0WsUFODr}gWbHj7JqZm)DYctQmz5m7L z|2(L?=Ja997YizCxx6R+WpeD%I`jE-b$jg7%|V;LZ})QM`{W$g-eofRQ0}|^NnNQ2 z6W%qRe)ObFow?0QUi1mm2KAhiFQzlx%T?HLeUYfw`wNVp1=vIcg6)rNWR49DF>F4S zt#XAyN7vBLa^CZgv$8WLti3yXos4YqE*5SZt!bN>rmQyK7jdQaqolm;$F6eS`b(St z@8??i?M$BlYyF(KMIWcX5!({c?E0deu+fD-GDWP4~xGG)kZ1)VThE_2+LV&Cb2N3pdL7pX{mq^F-6}Qa_VG zv{cl?#!YJKHn&5kKC#Z6^5dH09Dkl%UxVBWE6=nq*7^2UVcq&;T4&d8vzo2^Z>@<= z_Twe{-)UtXI`k>=?JwKT#o6zSKQgi8J-=>x{>aMzeuwpbaW${{(X(XlsZS~|&#tm( zx^(Ne?nZ{RzU-v>Utz-1Rk=j+e^$@>57E2NtDLZG;uBdG8``JI zcx}zJ`%DjNb2m%>`t(k!>Cd-pPRrttVowYNZ!g-j_;-JQMSh&%Z<8r!&MZk%|0?^j z`mO(_OsVKqIy)Yyn{MykSu@LX<-4Exfrp;j{Px_;^jKbX&gvPz@*Y--&W?C~=Eafb z{fp1KE=#(c8TChemXc9njdab57aVIui%i)MXnIHa@j02@GB1U{ZZ-GpDg${+|=;rl!U^Jv*^2;eQc_ zf$Iiq#r2{>2d3)pUomCk(zy;7ozp84vL)y4srceB@zK>u)%$~w2RNyU^XaX5=31$G zUt&>|-`+=MC!gtF$o;_~@;$I*<(-A!WeY|BGF{gyd61=h``j{x(Dn9f7+d&GS|r+C zJ*W8WmfXTtX|t`SiM|&;vzE>I_5OpZ;@_X?%`<)qwaz~D<^K9&p1S{gHXd?zi43Zn zwPs54R~L0>-GTX*Vx#*nme!S(|PtApkPaH9}jof_J>gqAOk9Qp}{uC(mJ>6X$ z?ti?#T3s{vOM=h(QmmP+5q zb7h$jXTkERYQn{AoAqwpGAmwuxzpX-EnydaR>FTzod3#y_oi~p-_o|qI^gch^7+Ci z7T3&sb|*>cP5K3a6{lQBs1Fe^o7SKJ-q(W80cF zudjZr^N+r<<9MHANU)7>Pqm5CgKI~wm&e zrbqf}0nJ&t2db#1**n-=x*k3ZETcoU)H0LNn6k{$`2gmCJG#@A}@)Aa>PG zXxH;wOsr2#kDQr#v%ABuVX5MI!;jbXr*3)w!u73;sr2IRE#f`XUupv>nIX`FL6^qMhAM2eC20dTBjP3s>vCL-^ zmpv&=PWZmn+I7ay7Sk+oQ?(NfUZN~}%F=HfSE%*}mt6g)wC;OKCbSZ^2hN5$& zu`4cXUbgCa^8Ung%Y5~%+3NQWKYT3trd`>kNNnMm+pB-(tU3GR&Q!5gsWVpf%$xe| z$qIkpx|v;#tJ*AYD4qGq@?}NB>;&oNd%MDV<;5?!vT?ub_#Zy6f@@ix^8(i$yR0`T zPw&$?Q2%V@!mg9guV+7+rS`XAv1Y;PU!EIg*IQXtofOyGv-+8>nSvftkJ&>9e`{IHqgAk^9RH4f;O@%{&ma+cKl_v-HDFlE)4o z=2kgYy<$$QwBaX>Sq7cwF55RusAIhGVx7ajrB5eV^~_+AmM^z`fBwYxrJHrv*FOB} zp8hk@Vp80P$iNiWs}FC4y!YCv^62!;(8%pwCy#FbFJbF3-_p4vYu)+kB32OB$bB<1`bbk?P^?v!Ly2|C;N?)Gu+GY0Y?M)+t_;SH#PvlPn_QdcbqghG*$)o=wj}FW@71h)iPY zsVp#DVf!@2Z;haH$&`FCuQLZ@-2F_xDo?i8_lPs_m@C#16qICSf8q2u54VGp)ZZRn zvA&1Fe71%5#j1rxu1uBJu0D_SJTqx_&ml2$+pBZ$Xz!ePszV_{Q>ACaCbs!I799QN zy7khYL#%zuORg=s(YWT>w1jm_pM6rOJlPm{=R~WLX`S1pqhj2t-62mIH}zF2Xo|Xd zM+q~zUp?smuyVUu>zqT0Q||_Jy-MU&UEXxPOEdavbC$$vfwo!E8;jRjp0Ay?{mhiy z+gA27%DX-LVbQ#Mv!^0!y-v3@+I zxn}2^h~^CoEIw#uXun*N=Cd|4f{D3d#=@rXrCp7&8%yXAbRj-Q0+rGBjsX?Ir2#GNrRUFkeiPdp3~kT(}SPg-dWmv@}CIfU$#u?pi95FCTh>q-*rXs=mYMTlB*XKN~%BV zeO&a)By-!&m;F6PCqB$szK$*BY=7Lml0Vi9a`^oZDCkbVqq4c7bJ~ilDS3gfQ_rq_ z*)@6dz7oZ62RH9#uZm5W$TB(jZ_+{Tzqi#wDjhGV`E1{_)8;Z;rq{`}Cp8{3&uIIn zXVKZbcKfdld71N-FJ7=}D)Cv%*LNu6cCMxNL~rNaArr4Zm>sqy-A|Kq+O!xMYo2Y= zHOeO{`0P%U#yMA9vC;W3(S2i&*xQBik)gjcgY@Oz=h)XZSFktce0Y0onx-3LMNn1V zzsRLe4jDC$dXW(;@L8F^{g3Zw;wnw$MaqCYKBPc zifLCA99OP6%W!APvr|&fm)_dNH?!r{?q&R2_+u^jKAF8`{%g8pUuK!E^QP8m=VQL# z7B1bqYrRFj$(o(1_BkKds_pglitR0%E4|)%`$3QF8E4#DKfEcHP~F3D#@pWXWUq=T zSMyeFIk~z7p@ZpmB|2KY%cn}(?+f^6;9r>yPrQ>Wm(_Z8{g7RH53lw<Q^_KRx*3gk;5y z{T%O)sg$o|N2d#b{C5iM?C*7zXDUbT8fC6p>cFrPIS;8FNc}X!N@ln>!2sUHG&hkT0Hj zUZ;M|g6)$mul-8S^v1f|eEIXDEP3jNdI`gtq6<;g_8SauY(BI+^MdXL<*$||cUE~XY~>ceH|6?= zRPTUoey_8&^8&zwkeNFs`9KuL@q~bMJHSC+)#9=NKxVXsPFJU*PKY>HVdr+i&ib-e8iQ z_~VY5>@FVrDZ2%D{L+7DpKTADy)a@W!|AZAPj774*vIMNms@{vsp{%^Q!;}37JG$U zbLUj3WZTZL$1Ypn-=klql!yCQPVT=YKYoSotStEa;mqvGpKH(B=KJySd2Lkb5VDO- zb$z?z{$-2T^@R(bJ)HSn=hb#?FNf}#rQ(OUq#Vw@{(O5@{moUAjf`hZY;j>JW;*9x z`}^>RZ9%TPbq`y`T*}BdyQg)eSVHmliL^{v9lI~z|GEgxQ23-L@K-oo@ZbYm-Gl$w zD$1TU9o3DvCE{b=tpDag`28bduL4DR@^{p6Cfs=wa^gl%VfVMQD{k>9w!VL(`eW6R zsoU(DR!V)nmL+g@#vAv%o9suOE*Z*coJ-c~_`9*NF!ozCw`1$oEkWmM=e^{PX{fj! zRr9`Nu1e0`1MLTHT|8o-CGhU?n$>+-4C`96j&Z5*YxLM0W3AO)X(rH=Eq0TqMiVV$Au@ho;89?4R)^o-K0e={DmRj@Wriqlno;|16 z{`&j%_%w4y_a)Oze!ly?xtvM)$WoSXCN;UQ9~STC*~T*MSP`?yv$bYT=I2k|5IcW} zvo>|A_w}!@FHR6OSuOJ^jqlvmZM~MhiCr%h%(u>#{r^-~w&6>e(7|g(VQ0VYFS0Xz zv_|i7^t9OH!90o&H_cmPx^_y``{*zKPEY!nx5kq5;*p2%%_Yqlr$w)QH6iDX^A)Y> zGvao<{kbdlyU*DrDSAzdwDh8-%Wv-6mhIM(+LT=R(eQzgbA|J4T?bKrE1evk)zQ*o zF;O1f0+V(scC_4As@9X~iCOiS|Lwe(^V7FKSi7`u-}Q5smOMS_wy98br|!l}%&~h; zO^OO@aMDa)x? zSzOM2D(4R0gGWt2o?ccznXo)3EGxRb{0W!V@p%C|9(+vZbnlx#XU^-wdnb3)|2zG4 z*&)l%Hy&?PKT)(MvHd~Qj{C=!se0Y9WHZ<j)74Z_^s?o9c&88fMo%N2tL#_wi zIlr*`lh>Ymyr*Y-ZHdt2Sa)(#)tQ+mYn+yB^4))Mrr=Jea_hQ?at*l|SL~04WZ8%p zo?tptY_BH&_sGrzp=Zse1Tj6i_V|hS@jLf7-OpLpZLiciv6JK4&EAJSYdBYzSc+Pn zOWs?kcT_XKT=J;bp%t5t*R8ca`2WXs3zIyNZ)+c3f6A4>n{uJR@WtLOS8JEft*<|p z|KCSv$4>p)zuTAO9DHliEiFONKE*sRkVFz@2T!f9_iS!Sxfy4S^+E!b|?7`*+%kze+bLS?pR?9#YI ze>85o>}xLE(d{d|F>_;hzS_-%X~NUrK6rG}Zn-eW3H8IJ`b(MG*e}X&n;Wp>?YFw= zAv_74i|^Rfop`uTZvUYmqcS0(g&*F0I&14AU8A>I+I`#ZyXPXNZj-7eVuWgF( z>%*+q&YYR5#ki>GZC^xmn%#;wH#;<1H6I_yle#4s7a%64lcLtGHO)oV*WhE~`Byt_ z9rZ3O-z&uIXn9PXqda}Vj=A%_+-sP(xxOnCpT)W){rib2liof5Y*U!{*RykGkL#0) zvy)VlelKO3dg7(gZ2q;O>35R!|rsu0ZIV7EzpwM;mXK7L{)A#M31sRXST&6x)_Gd@nf9^{K zEK7w=H?DS+zE|pfx&L;-6#h9~irEfI;_JD#Je>A=X5Hg&tus#9%@T`A*SojBF8y_Nye0rrgc1b--(@(`z0t`n)-8!v39p@mtFAuJ--hw{xPxY*L;T) zEI;bLU-^Hn=ni|)P1VAg_j=(o8}5I?X*@N1=bSLTUpddl{Cs_!f_}w2 zubl<^|E?^(ucT0+)LnJK`{uIMZHFHIG;4?oixY~JVLGMpQJF*Yv2Wx8i&xua^O}$B zJly!_%sid!{V$$ex7sx4A?GR2+G9F*ZzOSroYG~9cCTOdnsrfS=c{+>^E^t=&XGG` z_kHrqTW4o(QawI_@7sMZrSu22t15G*9$v05<6D-yNaM4+iD5b&l4* zB%$=|XMswHQSV}fuhBOiUS95yx+A;V`=56+*QN6N^Od);uyz_m{mSE>uDN<)@|&X^ zuAJ#BwjL-wu;qxB^u77EO(I^hk-Hgkn{F4~pCx-n$K!T))WzUE@xI2XiCoFQGbY_# zwTS)mxvzqfNxN>u8RRPTS{-XmU{cR#F-kq)>7aHl?%}FQyQ8Y&Ee~v2eD;}N0jI^= zzdmn5H;dJ!SsHvjwd8ue%$$$Ynwl-77k!;{!tuu|E4??0pR#tS{O0TZJEK?Z?1 zIN4KFE#Ac+oTTFy_v8BeV%cl2vV1d*=gir9^6^p;l{AG5(~7nhOI|vadA;?HZpZU^ zu~847{t8arRLOi(AZlXW-XBYE&A3;3-re}AWqkLcsLLPo+1^!NX%77`t@%LZv|js9 z4Ejv6^7qbV#+$v)`=BoQpjKF{Ik;u+JI<$P9cR8WWaoaV>@$ty{;Jpy?{#hmOT7x( zT$f<|H2gf*)6cW^GybaL_xZ@{A9?)UznL=~8-(fup41k;+OoUvTxViUkHg|i?FTLx zyT2%EI@s`hrO)qm*J~Rdq%3;1C_Gj8y5gnww8sytwCe-5PZjoFaJ|Wc?>4K_%M868YueZ|AU(|hFyi%p= zyjrDAu8OWsZNt|c`x9 zcgwocJ+r?Yj8DJL5?H@Yz1`r-wF5I6ZVOM($)51=^R$UA4>oOc>{-)V$~ZakU-P=U zEpG3(E~;TGyJw&rvi9kme`lQKjaN!r(g6 zFLD*n+PSYiUf8$h=Kc@Y9`kA&&fy2dYUg6?he}8fn?_PZ8;7Z}!@0Y&5ch(?zjw|yvwOcBj z7qSDMH0mvuczje~t*k)dnN=kvyeDPW{@H&%!8C=%qHINcX|g_hl?dVlPI^-J}N%VKIeCbQNg!uH*8|f9{>2A+2pg= zF#G2DXM9IaCMPsoZcDs0AzC1cBQ$;!=Lgx#C#{M?XU{v>zH+I-X-m1+;ZN2~dXu&9 zLcs3Xl_6a{PiHvlKK^>lHSD>(>DhZn_|lqp6@2e%c;J7+{>8s+FFOsvc!b%n2d96A0KCPI7d*= zo~;XW!fW|Iwq9SQ<)s;`{m<9(meB8MVQR)l+m^XY{+ql!;ID9Vv2n~H^_@``>{^zQ zq6_}4p15k?to@fdJiBd8bG&zUb=d^H3{C&?+B~%CvHP`Cl^d>pSm@-=xg{}VlkXF5 zi;rsCjU?J%A8q*&KUMmiZ$yws*2bzc`WN=HF`tW(_`|qsy~RbXuXbOz@L92*zu6gE z)OKgRf>NL$=SKSrejhDFI8XTB6!9|Wuu1*a*faOpqc?7sE6z5hCyV`vd;WCt!KI&k zW~BZTR^puLZfvLbIaQil$mr%bb%_?lo_Iy0_VK>YB7nK4#mej(hho zAC&y5^6f~q=SI^*IkM)yQFdX8!6BZVd)4OH?~}gdw&8od`Oy|#+Y_7O!&g+QY zX`*r8Cn-Bzb7c@|e{jHdrMfzUPd+y6WdoW&9%U=B%RJ zk7YL;USG^8bZO^$Z{{@?yh05#9~?JvPCMe@wp#eW<8!VXzI&{H@#^+|uZQIl{PV)a z(%lq(@jrk6X5RAs@dqb-=2_xbRsT=K{>*uzZs0Z_|4jrO*DwJwA{$|4q+(;mZ4M zAOCfKdi!GUV!!xb>E4y=FKv;oOuYD^{m0evINKk*FH-(^n;#JJUlq7{|Mc|d_y20V z@6VloH1+M3rO&TDpOvlmXnW1=DM#h4mIOW4xI5kV^!dvxkKflk8J%8N{d@n9eXnny z@B78LdGe!AmUZ+0?AtO|enI8$eCb~cPwt<4L}t3lpBXO}GB$w++sjwISmt}|6?ay^-X%WXF@1k8SLfe9zaTZ-eEoc# z=U??ieG*yAD;TbpC;vHOSnzfXr)CTB{z;hf=n{_yo5)f} zRo!Wlk5YoXBbHv?=Gs*m7^DONy(G>3>QLUbV}Vhh2M$r>olJ^q|Ft z=jZOdDUrl8z4vy@xymPL_iko#?&-bk(e>fgsrCK8tv9kf=WEib@9uNoG~06Z>eDh; zq`Q`G{I>C)lhM7Gaa`<84E_;`dXhgSt~k8i&29NX=lr^hS9NzW*N2BiE?@SZSNnF@ zrRp7WH>Wc`4fp@DS;U-v@>h{_S;X- z`^pqt*lS>TEa}-t);|$71=|}0qJytE%$4ppY&VtNyxGRm$L8#(oK@2!*OmQyY+iS0 zN^UT>VfBI^%c6wsI3><5c<`!h=abE9v2x~@&+HdD|Ge*6?S;2pOSjhE4z;$QabNpK z`t~oAo23rjO_Vy-BygbRgWZ3Q>EZScPvp1%Ivjg3;{VxnjvlVo=C|9XybPJ_KjWp# z9^P$-UtgZT$6(U-yD^VWhyC0$-OgpvOf32D3hs`=2`~iS5 z!*d{eOZ()IIOc>qmzl~7TQYlvDi^Ie!!+fbg9SfVj?;6o=dzFP-%~wm7toWhKhfur z%Yp2h*N+@c$aFU0=3|z!KA3fiVVkc-YER7G9Se0{F1674_I+=gM*L5eXKh8DN^EoV zJF3OP@;R+9w9YIynZ?B?o^H0T_)CXuyT&CWw@d#jUKLz_qYFQb@3(Ooo=*Puf>GcL%a^;mOU%BX zPS=QXzqoOh{q|Gm1yoJ7@2&}R@hd*-o5IeOyyaI>-eup7->&lCDSTHFy8pPR;(~XU z+DdnO{$%)EC@~1B-Pa)eu_gH4Rlc-ag^L#~+IqVFYo+4-3I$&E2Od)2c1`7u$B_40KY4h#d75(UQr;TXC-=9gFBE`sap}#tF?YZ{Nn& z9a)h0hwMv^-`#+w`h8cW>JW zo2{KbX@X+F^3%0p-!>+C%vId*Oxk%3udcG-iiAKlw!719?HH8$SnpNMIAN3f)jZ^F zw^~R?b;i2m3PMM>nLJ;hUaj_U=}e)W^Piigde79Cs64u-(mMF^1eJ*88CniiyEku7 zm~{Pz_v}=+yrYZf94Sh8v~;ob`uPH_d($ok%N{<g=cQhdH)sFhv!`dwHZSe}8)m?~JV1%cK4;V3~X6g7D|E zLe?9tnOr{}_oV1VZOXj;X||L>V@AF629YbOIu<-~^O_&a{_8(E<=>ZP4!)aAZILg6 zGABpv-mvnyv6ubw6Y&M7%vkztl=Kcq_Os9NX6gHDbo52pwe|EiPJ^w(4ho}?#hd4f#WnK)^Eu_R! z%Rjqq+x)6H^8GsH(5opXZJcN4ufOiPdvmyml;rdFsku(#4rV7cRiCkanj3ae)_(PF zxf~16Ck|Q53g_i%79^LsF4i&X`xI=DS$fdwS@ph|U$Yl}OxpV1*T`{t)CI=NMe&ke zB|N+8?d?{#)@+u0Ccdatc2jbY+7iF$xgoobD)82GrHees_1JN6@rzhT?!c9}Jnm#>Sn6dkJtG}W5mMP3z!`E5tj=hrOE>p`_*ExBvNdFUYWszAd@2Vox z+OFj7RxVGNYh5_;>#v8l{NYO$w_ILr6xS{_AuMs&d{$N2VtuS6eeUyX7&;X7yA zef8c)impe``jl^d98$blRPoh4J%NsOj?Zr2;d)jPY%pJ_#D=zpVKaPT%CA^%lWQGoHM`DIvKZbn}5WX_E=>YXy~QQ>0fx~;>72D z_A_`={S|KopAu1B?%Mu%snSAj{eQ0UY14aFX1aw=cL*|@JI!W;n`YdT!$K3+hVNRD z*dV$kd*@HD7joA$PSm!{Pdndnb6r#5)ByFsXC{aIPP+$%_WHlGJmdD|`lVUZbsdt5 z0)*wd`5bp7>?)c6`P-!^(Vx59 zc02XmJ9V%?Fzw~ey8l%IfuEWEAGGAz-T8j2)$H7bnFk)v_-Om)CwJd*^)i>4A3nT% zuJ_Yz?z6+?y3AkiedI4R|L^~8y;j=R`S$WRq{^LNJVcgZR6WIQpSn2h+-vXhSdl7Ep0I?iKEel6W7<`%_Z^Nj5S?w#$E=yk7nyd{ z`R$v-lb3p##i#vqzLW9K=5qH*ZXWI%*Gr!6i2VOmiZ}k|htkDw!_)S&Mb^%JBR;+F z-t#7L*Evyr$82&~`5P7sNp6t6t7f?1+WpE)?hez0xKGV-w^$!nSSKCqyi~Z+{ZP%u zB|2H+Y!Zw{Ic9b9H<^_8zJm-rtyXR|Sn-f_|U=I@Umi&&#?E!R8i zu<_6S`~_+8wg(+DXPx(Nv}^P-c0aOsx{s{&v|Hab`rKpYSMd66Irm29VV3?k$L;x# zTaR!`adUw@k7>8e_5ELRUfAB`Q#^g6e}(mV zr30%}PKtkz6>i(G`|^xk`BtA^1nzqu`Ff`5KR&M|J!u<0KRYjR;C^p1hlfqD%|)4{ zISk)p74<(KTY2sM60!YO&E<0@ddhF=*zNA35$0~Q$J%4YZQ~~s=1h>hCfj<0%_62Q zwS9x)F$;(Lw~FFF^lv;}WG2bY$B@HglD~b8D^I*&<)3*+KWJ&bpUshYEp?4dR()E; zmzM#r6smU{Z(k4}awJEU^We$Gw-Otk9nxF*(oV|j*@g^iK#fxnB2&5I& zd^VCXKXuF{JGo<9hQ&`UFU~15Z+9(hPG{kqeL+pk(l#(CzHIWb*;gV?m&Y&I@<0Ay z@GT#gdh11A(WZ07SKbx({B87&m*bpwfJtKsw?Rdw?ERo4n4LY zXmu1|{!n(NlTnk88__e1)M z>#ehSza6qUU$FiN`>NZkCQP{eGWvn*-p}_1X9<40D%$xk-jp-!pAdE3w5Tr80?M{-YUhsr29O3w$1$v_H`l` z%~DofOIDMbJL$UTm!C10on9X}b57Ru+x@l6B26u_;6YCy;j~J;e2xgcZR^i>I;?1w&(k7wHTc~uKL!cAi^#pwRFGp5(6;B~wB|!+lJdWD)~IR3@(A-TQ0W&*pih zCF%jp&KaBkY&z)?KjYEf2eoNOyABE`r^Fn4vWH;iynP8`wcJLoPWW5CwKF%0^0=#zHD&v{r*_4 zPRZjfo5k9IN5UMs8oZN#m_+&3ME4#D`P#m%d+I^er*HN&YN|etXkGXJ#zk?JZH#ht zM;$ea*WHruWNkYzp|EFLR$|E41f~EBnFZEojwPsxJezwV&A{~NDnYh}zt1_R8#yiN z*qOueUSF&|TL0`!h4Vc(nF7{Z=UsVRn)qew^Pd8a5^HN@XY1Z5&VDuD^kvx(*^4g{ z+7hSDc~>*BpZlTSINgzh&Fg1F@|@Gc{j3Fh zEFyN_S-<()*8Rt}MZZ1w@72RQ{^5q1A0M21}|vyZmjJ)3B}< zwjI~{eopkRzg>Jv^T%Zyt@g&|<}E(ysg~%`sMdY8F#!tyEOFN_M$hnN7u!n}=m5GK+j##weL2_oQOFowD#5 z`|JOXoc}ZTbdKZnKCKe&=U3l#$u55}?U7_=qnpK~$Ru0wSDZ;Ni@#;b%uiWfZRMNL z%6G?ba`^w}FTIzsYK7jE@M2ylT2WOOb@X8~ACq*?pOWXrVa=H*wKl5DG6?34t3IduO3^KYwmmm~ zuzMa$6im47K6UZ)FBy&UU(WH^x-58{Xj)!bJ9(K(=)N_E$3#q$=RE$BnaHhpz~a(w zO;gU(n|)iA)Rj%{T9v4CT$?dpgFo4b72oqp}}LE0*__ zxBlXi3n}q-y4`XpblvP9hm+RK`enV?z<)!8y{c{c5v4k>>e|%eKgx4wf3J`^{@7OT zaABMbd!Kmw!s3(h`CHfj*l8HeCcEeO;bW<_d+)g(3OlfO_T(E&gl};iQRtdW0mXZ24#o2D7BAF%iAdbPIeFIo;}$cALTPCC1O$GXR!QEw_1 zvVNJv_x63ZPv$;@t1Esz_^>K-j#8s(am!A1uJUCaw z%C(Xe7VqydFW^a8`B!I6SXZI^M7Q_Fr(e9P;cGfzs66{7=hwhbO+rucpx)HC@>~A5X_^dAOsusN3(qVYI3nRV~Nc^SS;{<470-)h<9dF{FKv1@vch|gJNqWs0^O{hSg zQJw7Sf9l5`e7+~)Yw2-E?Aj^E=GohCeAe@vc&2S;)5=qC&b+OEFSq@0MRtF@%@>tB z#cdmw)=8SIsdywOV-xw%&)8|v(L?Xm?zTH(aBYF0PW-W$Ep6>0o2j(M}PZ*j1uGe^*b`Z2s+bQ`4KpYLe^vCiBgH zzG}0>&GgdE6S;DFkF%F}>{~JOy6I%Mg;Q!+=T4iTe0<_%--loA19zMf-5F56_}bF` znyp*``AW=R6M6zCon71K-+j1-7vt64uYsPt2@@xz?c0PIM?5f5u94&i<_BJr|Fh4zV^6T8A zbt^2VRzy9THq+wxsRc8bzT8XEJ+^`))ZaI?STox-c*dTkKT~FKuljdRq{}=>^mIaR z%JGJVU&V^l2@f3yK7W-QA^w*@M=dNi+ zxjl!a=1!aFwk;#JGyb!c%*+Sxsyrhc?$^dhtNf{!Z_Jo<`AgCHYjLdli`rHOSuB{x zDAg%3XYHvEeVfC#--+8S-@)db+namJJzr#w*fot}@8XatE9QGSNzB;n%6{yQ8m}%F zo3N0_yoXMS*VJa3GGCB$7KyT5WPK&B^^j-C=7x#KL>)B_O;?Q;`u+51|CtNbWsTjz z6P9%BzPFrXQ;TQB;iCdyiry%_-7@FZ)HPdXEUdXSN#~1!Nm<^^j^u^Kk1wsMb`00& zo_S)$54qk&c^hs>Jt#lmcj0_Xqim9*Yu(Ent;3-K{~MItnLdUep3+dIXmGtfgIW9b z`GsG?KRr0@xbX3n3)5Z%>1O6RYqew>}jscE!Gsd&4tCESR4;#(!#8$CsmrGEt$J-95g?4jtA1?wAb@BZkTRLXLw({e{G zzwgX*@zD?FDbDO)t;#OiE~L?y|6-fxs>Z0ClP7;?i#dcFJwG6ksbY3gLnQv_(L1Y7 zZ+*A-+W+h}_J?9qV;*jb*xK$l`R2;_-xB-d^*?IL*C{Rc-g7L^$WY$u)ymg8hu?ix z<2PC!7$@nn>d;hyM{8N@&t1uzZ0F@C{#~@>L$-^}nR@4A-3l6Aoxk2FwG02QT2Nr_ zZ?sEQ=)_$iP7Q_4kxxw58-HIe_2HwmI1Ae@Cx`#9`Hoz$CkUt?!>C}U-x$@u7 z{d4Zi_j8`+C+`1O`+xTSVzvCWGd4~4soI$7mSP|ve)flow_f*}M>g3@dX8V5^yQ0< ze(1&x`)rM~S6)}%9T*&7_F`uJgs&fDUTHHQY+3W{eO~Z9miQm{EBHgWCpe~F75~EW zLt4+Fb;0r(R=o3)Ui(S@{vhvu__}$}%lGBgm9;^+Q(hUdaf*9hTCpmcO>{xw*4{tC zJbYa)__eb{+f=9xq@V?l@P_*j4uSZb%p+(Hc!~`c$NxO~ZrUTAYi;YEnrd(OdB87V8IxYIm}5cX5sBYr^|SpP zJs5-EyHD+E)bY}O_-o_l7g1jir*OvPcc*1-y_d52o%7oZY#My6eFCTW7R`(d&ziDv zoBy+kD`mt!EoWd$WfkNKQ9XMkktObNodpd$d%|u5WJq_P)9uFVAQQoPK9gQ+g}l@ypWd&CUF)uG_XVW>m+uC&y0OV{l|ua`sIzrbA{LyXy5H zE@d+E_mn%E`eNt5;_wn-&o%Ca>jJI>1hze>+9D&G11t7Mee@S{e2^&SkjK@ z39kOWA&KL7f5q+x-_x8=cqk_Elpjw&c)>WCo9E=txwnHSFUoxU`)N!4tm)rBEIKY~ z?s|kbq?lDla8(Se3g0}ftw(2y&)73_#a7M78B6rn-}ACx=YH$_!ujcwo+?f}UpSqc zKWX33h=wSG)vu-}>8L*|SgNUSt;n*`QutA@ZwXr;Q@F#sX+l?@@vt3bSgI^Bb7G1J z#;@DEA<_Kltm2`e6Qn>4LDykG3k(__bWbhr8W?zH>-)HC$@A-uC!U%9AyH4+;m@6yof}tkL>@9q5^i|TVl9`mCh*k*`nQfWcw=Zoo>eG>3>Ul5knPcK7&RK6xWcqITC8M_D%^?yP^;9N^hiFV_P(dmo*x&xUhnW< z)%WawyU=~f-gx;5nemT*EM9Zs_Uh9P)&Yexq~56|KbZbT{IQy0R()>=kL?Ga*X^G} zvkw1unleB5gK5*{zozXQ=hj&NcPlIYXFBh4e(Uk`>)$-nt6R9N`FrcJ{CDEg6%6|i z%@q3i^UjK=*|)`KaXSCG(epQbU7MJvLwe1GLmpdA9y8nvIG?wxi`Vp=7w7m4m&Rck34#Gac zWk5&YvfhPCifk&HdZvm6Z*(l>mq^t9Rg>a6e{7wNpr=&x9j)g6Ir~qyYQ{v*{*m?T z@c-Y7(w<(Dk<#56CN8jilMy=)$Ck7cD~@F!nSbfb$s)hUe?{fz<}9jRsiu4G#edE< zOZtl@aB!b^a$2)f^DECSH>Iq_Z#R|Mm7A~B)L(V=Nr6uWUqRX8gN&u?wghao`V-@s zyvwKH{@IM{3%&$YSQIWi(zGwQJWlwV?~PK?{EbPII4*LkL7B(#T>efD&@eM0pI6W7gDO#HsOIR3Wo<7C#DWb2?;nLO`wr1PAb zr`%s0?ZMbq*LU#VpS1MwH#|{&T3OBuj?eGy+umQnsr)mdSAMd-+&0O{{%>|I`juRI z&uMPk4@uWBiREsGSjy+ETEh|EUc5i|M7VS5$IbgTPh{ENrMS0ZyJKe>M^;#J&y(s$ zVLfsyLl@6oTr)Lhs#B33S0~47FV~p(_njHil0{le(--`ZxL|+Cj_p$amQNRB7dTi} z)h(UJ@a;Rh{qD8rTVEG%`F18_;;JJTURds~wXACllr+@ly(Fpbw~Q@G!{y;ZwVjh+ zT{f~(Kc1`}z2xf;34yC`vrkv=s&cgaobuyZ@cbW*oV#yDD|(21`rSF_-oIs4U-%;} zzb^jbxIsQz!^y9FtDC~bO*L*QGi;=n+^`CI(6M)qYVXfS$3E}=V<=JPRQTvlZ~o%0 zn6qp4>Fs0^-s>b#vue`1pP_p9vp$|yZFYHfXO+_GLkTvx?6AB>o!5bW}%}SGewHOM3k7j7J4o_oqXrQq7~aEO+p;AcL%%7yCd59 z((Sr^FRyzhv$_9g%gQ)cX1#N$gu=>oT5PhZQY@dL1);XVqs-8{FyZ3PB zn&*WY|K4xw%scjF(`LJ?TNzr*&%eIqsm|hYxx2v5DzP~9Q<=c^W1YHZt*pm;^1Qq?j%(}6E8NbJn~LtHt@YenZn|UsYVJVY;@uCg-2VQhCM@fB zn|%M7&*kTnRaVG4*d0rXz0qYAa9F;6VcM5xQ$2on>znQnbhi{?jQ$a@^UgGA%oBQ*Bgx1#*>~Z=n7E7yYx+2@-C>VAvn+b1^e>KycUBp?m)3oi z-H@sNcGETAo!#6i(=~i9Ij*c!Wb=(kTy~F%Gv#jR<|ZC>>2<;(ehY=e@A&j=kA8Xg zR7Ik0TM)x?)uvYmFET#6;1js%m_kTw(yp&(6514BUV8o^>1Qt7hNE17}UEAJ-YR zFH>AoF7dL#ch&WcrN92wo_%D{zeGs$T4RU8IS-b-8)Zzg=SFrv+p)wrcqaEP%g}jy zE^e`dK;!L-hHW`ZLVr$ z_|p)_tCO4q{|R&SuRB`2Y+cn674|}JZ#=YExL|Y2!lMT&7U?^Sd39{` z3DMOkJ(k-tE8wYMo7VmCV!yvRTYIBIcTW49RIe9QuD*Nf_o!AgF6UP5oy*=|l5~62 z#Qn2phmz-xl}d8;$@>^NPCECyc<7aBM7U_#7W*np%VxbjYw|k9^E;}YWgeVg^6kEp zQnci1_Q`e*A+a`>SDU!sy19u>f1y-VmZWhohyHD$2Ty(ZOZP5{GHk1jSfbKbd-PB5 zk*=22s*BEK zW2nh_Y36sa>Zk5APnSI&V0h{G($sZEyOw^tuej!3Y3(BiL-Vj*M-Bwv-60n~W$M$G zw1X#(epdd+mpCCjVt?7by-%wOrrIh$zintJ_hHfPK&B9zuV*&0ItH~ndS=Bl9rDbw zJ<_m5^YoMS=;GZo?Q%_a*_srj*F-R=Kh>OKRh~7?@!V#Y#jnhgi~bj!TKnC%t-}tp1eu zea#l@h$EgZKUghd>}NV1SYjUaLFsDs_k#*i%`Qi#ZoG7D^1IE4dmeAA4i?hZnCWuZ z?y%77n@7EM3eHCLS^e2_;)dFqkR_p&I%`j?5trMas1(k;s(Z`PNbq4PF()}H#iGtz09Gw&A5 z+lNn13r*_as?z^blQa9$ML))+)t=uPRu=~>Gm&4No#NVJ{JuZlTHvp5Xy&zv4=lO% zvOZ&Lx}A9QL8JSw&_!>nUe}#@QxtD+Ds^1;-#oRf<>~(0K5w$kWDehx{qH;HS$2tE zwLjYqsW^OR67AW!TaKf{zWk=z)b$U3NbfegQU6{4$n>u7cVsUKB^Bn(FTQ7$KkMII z3o~{@jo-=z`ty#mq&>N6wAg#DN0|H`!?-?b?@8=wn(k?9dcf?lbqv!hlxmjc| zd%>EOhyR4#P_|j$srO7{@99dVn0cCw8&BI-Yu~!JP$X}+)35vcb-g7L4nF9rluVMl zP|~+yO~P@`c`5g<-qg8$yms5%+zIz$f1E6^T(KGwwS( zCwVp7pHs0Hzux#b`{hQt);9TjPp3bg7#gpA=JkRbNAEK|dt$Tacnb@o)!uKBubyt_Udp%2P~YKsj^LiAP|b3!y=75O7c3mD&kIZuK6poYqw1P@ zb2K-Wr%g8!l0Em)L|tl+@@4=3_78QhTR3hItLC1NYg-j^(y=~qU&Z0c1sP{jK3wB9 zP@CPlA<%ZGga?-Wt3B+HBZQ~D;)|9b8;t4d=S0z;Eahj z5)I8$TV@E`l`nq2)auyhZO*OAJ3Ie=eGtN`KwQO{tk`G zTHV|p#Cd6t%T1HwOFK&Q!yUf)Sw6|#vc-9J`=9^kPI|vkkB@v^qWh3mGOef6f7+`d=e0zZQ3PHfeZ% zk!Ab*q;}cDEz4(I+v@S@tX14Tk(0NMr>)s`{uW=o0ekc+mt)tO6l?AZi+C@t_#Jib z)j#vIlebR#$sUj^&gZc!zVxes(1cmn-(K7DYxjp$n|-uSIj>Aky=Gm0QIJFHD>ioYJD6cCg6)4&R;RrlLQ`?H}m={r{Lf!FA@pjV%)w?zQ@H_(1Ff z9cS11x8|;Wl(y>ftAGD>^QH$>ysWq)%p-Y6Wm5=WMYe*b-kGV2GP$BFwrJd*sBuQb zpTTB!%kdiBg`Ztz-ZnIH*@{hZP`!P2{j4=s3mZ;0ES6ec|HNP~$DL2oJ~nfA9QctW z_eac0Fgr~2$t@u>OS_M+CuOuvtrdN;RcqU(iLS?aw_TW5`?%_(h>P_k#47?Vj#*xdvs6ONmAg>(y+t>t8zyVAt`Y$D@zqeT*84|tv@ zKXI1pjr6+{Ue2Rv=>F-_^oZroYaX4C+AO^KRsZTgw+w~6;y$gKzG8djjid9q@BI2} zv1fI;i`80R-YcJN96864*Gr~{ss7r}v~#_BGRv}ULU-5{to&Sj_wI2) zi^#s~nOzo}?s&IqFKBi3dFRk`LfK+!$Gn7u??wcfXYKhPCs{RAFa+fr$ z7px1P<8h_tR+84U`VGeOMArYW+&%wr=Prd>g=1%CKTghZsM`|y&)ah5jlX{)PFAn` zp~-&Qf5-hjbIS8xamf@a&w6%mM(vTK6HcosO7Lwv^L$t2M&8NX3e8gtCB9EeZ~qqP zU+BaYkQx1CT6xsW>6P0P$_l={5!k@HNpNA@N@>saZVj!P-&z@__SE-GjY$rQ*Z39V zE$N}X-b_#4-fw1p-kIxjX8$VV4~a9_u{qDtld;8usfRJL_q$T%KF2cm@ON5&g#tK} zofI@;r*>YtpI59bxmt#${eRu|z3<;X(-f4S_ASTrm{oJMn?5g#KvipP9VSE@LZmewyKqUuV~p%v%=Zw0B1NJ^}vyzYc8u zlQ7d^S;5nzDXO~vOpecq+rf9E=pLso57$M7_eDpzO&C25H1n;0eSc~&ss7CwsjqHa zhNo;zgdU{*|8~YRqj2tvYo52lB`xb{Qc1=Ba?u6LT%5^~AtymRsNCzBr+E?;7p^_ETB?}!}lzOIH!hij@I zqci8sm{Fi&t6+9aIUss|-M0;^6_?uG+Ofs`l5$SwG#8;;6;ompVy?#ctn<$l?^wLV zO8()eG^S6%{#8{kySLt)5nm?zUUy3kk7> zn`1uR z^<&@Xr@j{5el##krA~ey$6I+Jo27ke$ya8ToJ-`NHX*9CvPpGjz`dAz6V_R;=8SrJ zpH0ldxnOPe%f`mm+lLdExl7)YTs9@;uh3zhaDhvkM8$oLrsrs;X6|_E_+YB`l$%M< z=Vxq=>#^J4QutZvWyw~ayak`cGi>!V9jXhJc^>U45)(3RJmG;?36+@a)ZH{!qYl=}fl&`-Oi#A2ZwYt0g$9*yxRPO4lle!wWy& zRLI@FODt29aTRw;|8b{6-5+x&<{2GI|B=<1{Qm%3gxaqFg`%K8qH3>xUI=B1lj14n zy))xTgoujexBBx}^L1@20vimiIXBrERR!dPGG_hq5S$&eMW)9vi&570cD#D*AFY#* zA1WF!{4!Zk(v|Z>}Z;KeCq#I^g=Ihq1 z@}KaRF?rQgnOpVO-t)9A$$1_3g5illpiNdnkAhqF#a?b_HG`}2K40!uUR7HpvRiNM z)@OCflCL@*y-3k+SChOOaw%+awch66j-+V9BPRU>RvZ8yn zgqz=~%Rif9_q!IAhf4V5eXrwe?8%h7lMCwhMbmmhXt_U8Xu8*5e5R>$A>3~Lfi4`qC1d-JNW@NM&}uoGwVFC5tWGBeff z*gNeqPs_Xt#)8({sRtSDg3rCxu4?$JFi%N0{F`*7?fR`Tv$u6?_^w)2xVgCe`R^xl zc2yM%yNW57Ik;Wz_F0l;7^U*`?EO=Kc*@4Y~sX4TmH_l%bg-wof46`PUro{zfEaNG)r%P{I~sy)T>n0 z{OpJF8tFz=+gy*n-e<_x*qFy8FgN7>we9(mMUC4R6rGXVxlweQ zMa(8&g`2;4DaGqB0FVY$_wxQ54N0@t(4GD}_PYiiMcrr>gM<;_JGZmsw< zC(XTe=VFVv+;EerC;w=soiMr+)8E5$XyS#}XR?zvZ|rv0pERYsEa=T7iA5HjhClO< z|MYpq`i{+9g5u^Ei9F-_~G!%KZcSKA`{O3Tz9YXOaI~8qwagHC402$su^wEoj)b)zw{vu9-%0k zwvJA{lV={znKo-l8drCkc2n`3=pUPuj*D|Iul#S*p7meg;?vjpzB4YEbS;iKl%;2R zYDTSTdh569w+xJzrsc_>S}c4BBcc)p}-ovlcw$^+IIg)*iRd>?f?;g4S*}FC7 zrW&pIrhn5~B5L*m=F=VzPKvj9znoE{yfJ3xW4U!*uJ=<yPUkQD(4DJoxca4bdC7fW4J*#t^5##Rd)9xSu$=YVt|!q~Z@yT6a^tS-^T$I4 zJ~^+Rzcq>G~tV0^zWgU5WxT_x>^e#4P?V??&b?V_i|vo!*hJ{^v%qoZrs$)m7BA zMdw)NGjGqwvwd7v2Hm^g)_hW-i0_cCo7_{GPM38RW-sT@teW=en0xSgCEv?cFJn*J zxk(&f-@Jal!5+~FLw~)l%>ivmdrv3MI$fT>(Wv)FxL6Z!$&wxQ|E6WEJSfokn`PUA zXG?0Y9KBIn?R3OXBUwl6yU~R*fzBz1|89A|l~rgIR3)@T8*6fz8B^}~)^%MEtZcX9kN#-GzBp&qzIML9yC28z?<_1ebiEU4 zBL1=CtuOD|{PIbA1Z=$BonEzDPu4P+=eVk7i&OLtL93q79hYvbEdFtLUC^Eb^8BB~ z#c$O8x!UqM?ZYRpwI#=&&9A%vxb%?nk97uLH=K1UPOV~Iu;q7AO8@HGZN~yDExQHw zO8t6O_;&vKy?=WB;&j(?wCU(P3K7d^HBHgiNuJ%We~D2jgFjh%Qv4D}cO!`@>&#o$ zF<%UonXGWBsQb)~9iido^;#fv8`C~MRYjAkWg55Xv<)=tqRPDL9J%#((j{5U!QhnYvoLi*Lc)5GJ zsG`XcUDr=bb2YcIaUWgPKQYDe!unI4*S!A)#QHD4P-tMJa9T{*bPe}nEw6`85i(zs z(nAYM<2p?*p3Z)MEOfnn#zNHyPx13p*G>i3`Ce_pYC_H?(s^Pp zXP2DANA27eiQ~Ctb&3vb{;OT?F@1i&_m-viOh((N*BcB~%sF@0zhR2FSyTM?-w)Z< z+8edR4b6QPXQ&B$O8U6JP}XSOoLT2L)V$m9OJTCU^8MLzkN4`g`E6F*^<`?=pG$v^ z+lGDhyWPt(VP4qA_13e5{v9!8-Q%mcH$J7Bv83NcYWwDn6f5`2_ld$n_TkUCnAj`A z(}k*%PPJstuG}P8?dAUX#iiq=5%aBgikjv3E%2||IRD|-?y0uNPd8Vx@;HB9dszSL zpS`9v4k|m7E(ZVD-}OGLxcsEAL;FR}PcN<=?a^B7@SmY>qQ_KQnH)x?>J#B6#r#g4TShXK8RdnJKsCaIj(I z^|_W+it+dBrB-ZPnRnGK-zsw2yehL_v8x_xu8e&w_}F~;cgKS~^|$9FseTh%d81(c zr}qxuqg}Aq{6>2V!L=i}yLrvgvI(_^>(t(3dy{hvSmXmWmAmPjy>$3SW6m75D_Al-F^F#?jrb}-v=YM)Kvz(*I;pohX zyJBays2dn>T*Gg)`GgOH(bn3yn>>ZiY-Ky!5BXnxxx&J}yJ^dP|LbjYW|S{{Id|9M z)&eoDsbAk*`=_?SXxD3Q7S*})R(Jm5PPF@Z(a~X=Tu{>+mw(SKr+?pYvRwE2R>jW} zyO|3oJeaF2bb_`1N7eM7`>vR_dsV9*x}KMMf^E;wjeiX*G($WNe6f5Wdtr;kl3Q<` ziyIhj^d0k$>)WB=p73n*i`Q=?Rb-T3|DL?@T=A>5mt!|ik1lTN%j9O%cCWqN_-^?I zxx9Nj6VhTgur|15Se~8Gq*1oBfv4$jZijv-O+>FRijSaj!e}(<`;%z|ZLA*B@2wIw`FD;9E|Os>_~s&!FRq!a2%U zra!w}vu}HYgVXJhIa&QI=kKj{e5>(CqV}s;t9-B7;X}81MV|g&ns{dM@)ech3cvR% z$?0}J`?E&nW>_s>=}DzZ@xQe-8|2NVYF*yz$?Wc5&+g>0S|CC?eaY0d-@FdZt=Rad z<=WZ2+y5V~KRPj7`T5=}Tc;lWb6)9n_L5M=pZY(u)2~=_EhyJX*t{xxN$lre&)ohd zUg29E?~_pY<>5iub5Vb#{ieUmIB@mR#f+1)+Dr@naMXTd+_gWXR`$oO_~}o+o;VwD zeEn5ZFS{+J&T@ZtN$!sKPOFH_T)VM`PwVbFiK1Dp3zbgH+dAp^y6ev+F77Vwy!$iO zY`&fTv+0!wO06GkK6XxEo0&S7{33z9;j@z_{F*g+=^p2O&wlhvZs59jC-f!fW5&=| zs#|vM>e%+@`2!9nEiGB&lf2v8w?F>>y7Rv*O-!u$7{8B28CEpwXp?)$FXqc?i? zzF=)wk-wqg?tF8jUqTn|MsYJAnALszz`sJ~H7gG6<2IEk+j{f=*`qo;id>Gk#L4x| z60moAyZ_z$lbyVx)vrUHz8im@sBQknBFUrq2djmub>D+eTW&wR=MXA(*+bH5hZ{>* z%8Kd zdWvgzJ%77f!MtjN=9^b}lh(IhFAcrvd8ChlK~sI&ig{9774(BM%FQQl>vDUp-!G8Z zDF5(Exz#l@&gj_>Y8T0vD$DR#t870SFXZ|D?F1{e>5}2c=B6IG^7UH!^uU@UPu9(0 z;F&dp>*DL>iJU$+owYx=&Y7Kmd+zmfKQ1xe6I-m2t~Mi6yrhyVu%P_VEe_8Ir=Gkv znJTUIIwasr4s84bz8;W zC;jB=6L_N7o%&?Y%S_3&`=%~DJooj?iq?;OMZMq5nR!<5`WL)@$@=Y1V)Nyt1wGr| zcCXIPJ-1rl;yLF;tIVBt?<(D5c_Q?_*)yu=&-RGhmN03>jJHn`Uv1suWN}GY{r8jw z`6(wSe`*(+DH~pWMBtG%vmwt}jj6smStTo5%AdQO>PtIOp4V6szf^1S+GjyrBA5JP z9!)Af+GIWR%}m#eTXroJUwiU~RjTf+M?RLTtEO3s&wRH(_58E))}I-3cZy&3h@Wn~ zDrR2VURP6}y0e+0mF$OSTs>11rmpet)K?j4_frmzDH>1G6Sg;7iQZJbHe*jy z){@g=U)Qgc%k`MLz_82t-u;Y{k`-tEZ;ee9eUp5%5bP%@3XCZqz7YoWE9t%e<%X&OE0|(`7cUm$bFm7tUYPw(#t+7{z9d z>~$=4^-p7Bn>^aM4y3;{k*YWII@_>Y*EzEK`r0evcI^-PIgTCZcb$DBhlk1JhP_Je z?tJb1@>XI5^64&~S!dhqw_FX~^Fl7qec`TGY6p9(415(PlsBsG&-Y;X zbA@SQ!@`IyA2-!6wz9}*yHt^KWbG-j=l3oySs87zE7geUbw9KFhHd6IY@QsAb-T48 zwes52%H+%6?Rdpw^q-ycNG zcb^{@%jX9No;L}V=kQ(iX2*o}{dQ`{e@6YBr*q57Y{%C7f?xcUIGFMd@Gs}f(0jj6 zEWbMUiOA09Ha43)C%v1dq_`pRz{80iR#^)=T8bnO=16{YxSQSe=z;my3$>lq-0L|f zhH4%vba^fKBYinG8Ku1^Wtx%s(#~`uklM)^Pf+C-IlA@x}t)P z?~)5TH!q>qs$fmR#cd0(aU2ePaew7%ruN%;$?9FR%iNbdJGL;CEvqL?bgGGCu=}!< zogTNHr)(3I$^Tk?Krh5KWABcsLDd4O7I$6;Rqz}abNNvkc;nsNa2x4aUqu3^&E2Fa zetE(}lX8>Nb*7%4o5PeHpZl#hHdWSIFmqgl(dW%tvEx z<#rGHUi)s%INPFR@~4OGWB%%A-W=VWrA7K(TKm6k z-rO4=uPo)Re=|FO-QB;f*Y^cnyXO4;p5DGVzVbJHtP6ZwlbK)1S%&S4wK1zZ`P6IX zulY-OPi>yn#K*0nW@|dbdJ`Ydv_2_AyN%Nrp9d|N{#o#izPD3t+pS1^y3%X?2 zoj9!|>9eKN?B~@eiBk1P=})t(YvxXkDF4?K%)0MTZSLN>#O+JJNvvHIf5F5ii06Uu z*+s|Pe}v9T`uKiz)2*_NpKp~;*V}RP{2S)|5m(-I)rcfAHSg~YvTfg+wNmFCER0L1AEbcDZw<$hF zK%rVGsJ7Iqe*eRkhJpz%v_HO&YLd0iOPhITr=_s*yNvRVUsa*8E)_3VPh8Hn?Ed2U zdEswNRTG<9%#Qurn6>`&omxZ7jdxt%?Tfhg$Y$~x-K{f9+_#8tE)kF~51u3MRk&kW zVx~^;{%hM=hq$r1gzxG-zs z8X=iujDabSHIhi&Sk zVe1vHO~-PMRW@&|S>?4mIOl?)esW6pk}l53kA@Ee&uyQ7)?!u9)0~}|>Z|(GEho0; z6` z$~gbz?@;W~nAeQ>qFI$bHjNy{lV*MA|$DKrf zy)fD4mEKwW^^8&8!p~Rt8O}XW@;9cdlXdI04bu~2X55()^Lh5Wx|+v#`5#}17h^i< zvPyHh%ZddHrkvA%HQUmS?Oebz0*F*p?bxORqLl%e3`xRu8mJ1 zQ{KKNotNYGxODR(NA;ZTG5v#sB?{irF##KeTjxzAzqdEC@gSvuFR2)l-g4 z{B!o`lqFYY%_yAZ@YI=UM(=ZtrH$$vKdcR%{$_2$xsz4N2d4`(8c#~!F?YhjuuDP9 zWy15=!-S0v?_BM>bXxP$?VTsOgcp0a{M|LDtZPcN+q^|N(>d5p7CoGJX3eW!UG8q# zdoD?Fb}QSQo%UDUoFEnVNi*lzJpU_mni;f@UD|54QL9j8!F~0Ydxe6R{}q_gwd}@A zS>p#17blBzJ~ofr`Srol{I!q?OIn zx36Wq@cf{vkn63J#v1XDQ zr-pstlA5G1*JcUuKiL&P#f@dQa)`Cr%k{=DQ0gXgD7 zI~Mv*TXJyG5oPrU8e29f9&ujHDlpCK;Ny+If4GL{X4x3A&Ite0rt8uiW_5d_>w?bR zuNK}Y+I_H9PID=5>8qzPyfG@>K9kNGE%S12*H$nH-X7i_%_wjWJW9dFrn850{fC2(w?ca zmrYaUmFjuJ{^d#cQBLdMTmJm}a5`e@j93r1?&zC!e|Qcxx3NDl(wC56>bNjr$vWPE zN!ylOH*(;a7FwmZdxPSU^al?^HyLR$t+!sudqn-gk?^MnoGScwJ$d`CO%Sh*Lero;&5;r?5}U;)2x< z9lZYGrr(+BcQL!~&zFwiTBFipe5%tvq+b2sr(NswuZ1badbpQeJUMSh5BDhv_C0@> zZ4J<0_BCDT+R3MD?V9>q!!7!y&RHl-u59O6xK!j^ub2LuX|-V=QX+&TmS(Paw@~Sb zUQt1)KR>hMAg+B6@H~iL|P?2ES z%OfkPdinLw(=T2e{ZwLYY3?w^Y2B>!Hs1>~*0A!6x!mtwlDO!3`M0fqBceWpCDqOO z+2j4T`KQk6Z5NltzvBM#R`s6KHFxv7Qg=1})VyCFdhMUCtFgx!t1s;)6HmULn7e7u z!qbz2<^IV@T`Ir+UzOVK(s>`2FrVI7JMYr6n%9_`Ovqa{eRG&~B()ss^@w|d&BaU*8eI;H?)Q?@>t(EMd zB6`E#BrK2r-?xi4e-rnfd%msgMcfL;r{RSQ_TS3$n_GL{ZdGOXneQ|H$|uN0=WOi! zu*C4Ki__lQILWSi&Fyop%~PMlTSw2$bN-H)6_0Cw6rL(KpLu+Cj8s(!%46P>JeUhmKruC(CRw-+s6{J$4h$)hvF zFvfP)Q7@h|%G2A#+b{fCuQzF-N5D3_g+H_TIA+atm0Wjmf39!S|6+!s6%#(Mu$rYG z)xY&sM#zME-Gtr0Rg;qA*W0YhUeNik*xtA9^2@vrhMxPaqtBlCpQxNNpHVYJQhSeH z-OdiFs*5!ta~Ihh_Hge}3cpt=r(Z2!@Mv!7cHghz%&Xs=n6ds%xQ?8V>Y2D(6}cQcH*x*6WzR8-X#M$SYWuBq ze|#4`+rQiJ|2oO0t<(I^Tf`UopWpface=syhd*DNR4Tssk@?S^qjU40*@mxO(~{Ny zzs#ysTNC~DV}5pH>AjwRg+?2UOTKsfUw6%0?y&f4ueXLzK6b90c7DPyTe&Fjms@=n z$h`BEPBL)JQ(I{+G}kO$VPl+_=wyQ&o$LNLQhGxQ&)6}1jzHT=K+dTpPdr_?0%@JG9j-x6w)R7wftTWKPE(}j0-4C7sgIREAy z56zT{b-w-xooKrG(6tO(cOKa(M>35ZyPw+Z-B22P(Z2T0?N;{G*Zg;^xX$mrp0F(- z_@BjMtC-yHff4y%t4r(h`af+8vvFMdn(_5A=ZQ%ZFU6^@t9IFq_a}wq-!|(XHdiV7`{JSSTdp+i|%Y=g8$8V%XG5vb>P2J>M;A+wDaz7vC z)i^Hu(Ym+%I3{jY z+?H)=>v5u6;=z|EUmFjtp5|g!@c8e(Z1;`H7FNGD9r$r$_x=?3g4O%>o%fZz82n(( zJ?mYY9)GqB|7W!QcHYO`tn!ruY^ez1s!!75FofWlx<}SNFmwY)Nc;>{8 z`I&DuOam5`PjO<}mtY<@&;HfC`48+|_P=;hBN6>edHvQmCO_g13ix$j-T2ul+Vo2w1zwl+kXJ!8cgMkIVeuFY`Dzz0zsoSIIM7=9z2O?yP#_?#Zh9Z1Gts>F|F6Sqemz`u{E)ot@AncFX7ctqyz}lxZ#XShz_ZFS_)@}em7}v3)$RC| zw@l3V$27mqt9IwhP0MTbJbmlOrjSFEr}DDA=w7#{X|HO}>Rlq4a~I_+7qrQ8N`(Z} z?J3+RswE*@yQ6wVm$|>4P&$|S#3u|-yJnm>S{A2Q@L|_H7fGkRVW+|pxvm?zoygvr zk-q($?s}Fb+daG=Bnv#^_WTxgD=9td&z_?xitAFNC;r^EscxB|z4y#57ldM(cAa~z z{611h(Vu2N%rv7Us^ezG+~kO)m187&Zibj zZISu?;>^Bf*RL*kGym;LrAl+@RdQjcxK<^ewGWx~*i=gF4D-ud>+E;#zP;D+gN0~; zZ+k&n^`ttMJ%OJpKWc60UE=R^`}gZ_dPl5^(tj_w`rCT#CBCC+H3eCBW6d{qr#5O{ z@?s8HEY#4cdH+LdpzqY^tCv3r&GanZC6z0|_^YG9pZ9fa%KjZY=jTnAS#elZ=B@qX z5>e?Z+iRjSF1?KP6?=ShacICf z_2l*m#ZRmrFNv4R!{NA6fcJg_pl6d^cFaJorhx3{jKL1(D{N#wj zygM-ura5>oTKM+KpYvX(X^GrK+YDJ68{I|4TR$j6-vTudh4FA%jeD8BVERQ~-?skHC&Z+8S zoF*KvQ;jx#=Ukw1dEEhridVVb$zI>Nw{=vdP5eCT!;zmy<>j)k9}}{DCgM~PzPOL; z$YkDJQ4ulUosXV*_I!BXxz55#sA9Q3%hVf}vd;3Ke|}vouq|ob@hd_7yDX*&?fTgM zsW!59w)oU!ovUWE+Uvx(di`;?{t>dvefM#>Y=xgf*)qSU-itP0cDRgN{%g||8~M~7 zi_#mMFFky%=u_fZE|l23?Dp1hr88B`8}#?_7t8mCZ~k1lHD;y)uR~|c?pG`O91TA% zS`{yp@pN(E`4~p6za7h3&7j5aeF)BYR}d8A`<>b^(mKlAM_QdY*o>$L*IKlL7x z>{}ekRey2b?r?#H7Ki38tF`oFe#=GU_KHgz}s+Y%lA zSoy<=*Ac=NaW`Y!%wPY>*A+EmjrVH^agUJMc_q5SYo_e=i*NmOeH;#XPxCo2K~SDC zXzJ!?3b&jWM{yh74ZQ!*VR^&nrkIPtPklDz_+Ct2>8D?)msk}a_IE-v^vdvHfDUKIryefiaW^^#YEuFWk_$(!iX5&HUa znIfy%`Lz|D4voPlUcR|zBl^KI>etO6)%b|MW7X^Dty*oR=c2#X;gLPkr_!hgVZL zKD$M%wo^7%)}B!t9<)f1i{-k6uSZ$t*6Ou9mrli>TK-dDukxV+pB3Fpl?(o5SPDGU z_+xwH!QHSYe1^75Vi(^v{gGU`cWKto#FaCaojINKDuGA*Gw-X19%)%0cuxf-IZJe| zIhvHRY{ue;T^py&ZRcw!O#iT!#Y!l_F}N;);r}_2yTXMI&JUNkhn;?|yovSXh`ScJRG>F=d6Y)7gOM4}wY;e~F6C z6Wx=rt@GR+$>M-!PPe0;KFb?^Y2;=6Robv7M=!K$*W#jb*}RX}7QIpVey)mD)UNF* zvxr}X6!&qi(`P=FM9g-mn99ku>z(t?eOi4XabNm}t1HZArI`J@ku4?> zePHd>?;U-vMsCl2pZ3YNtgtF_GPxSiJm-^0)ZRn0mb`nYvut&3ZuSQMggY;r4;Vfz zE|a)m{Qmaz2S%TN-L!T*RUIv+sd49)o^HMm?>gU4XP5T=Sj5EYzI5uc6XFK^?a$XJ zTc+`t~}Xek)wR$2QRhI9nl$E zLvOPG&py(Td-AgGJ`a&*{{uUvR`PdxB>8R?n!2GxQA;DbXww%#rra~mg*VMtv-EP> zu9Vb$yvgKrvRA{WpQmP7t_t}2BzM_C8yUUm#;j8@b5=jvEd6Y)&l44kq!#522Y#au zFXwTpY&AG=g){Deru`kkqub7}S?Ik-bIAr4o|8^NZbAFcGu`6qzqR#6k!bjOze2C& zH|O4rGtbwyF@KdUFi}Ow3)<7hf2OuV3J+$0{$h^|0j!iyNMrvfL|oEEQnV zi|<)KW#>PkUmHF@R!`sd-R{JHS-W3pW!-i;h5g=c2X^QjG>s`QJ2|!f!{YayGyk3S zS8U2U{`$?%vVSvD+jmEP4A8TQ<$t;6_=^Xh_xdN-pDi!B^TSg{cyUwxpY4~Xs7^We zFwg7xiaSld0pGV5x>O&1SnzjBX2s>Lk<-g<4qjR&{4{czxMFjdm*nK@WmUSxCoi{1 z)y95e(tabf(7Qu#_HNf3ZBM4LFvWiJ+yK< zyN6p@E(z@@j-F9z&8vHp<=%GYp9i?*%p6^h@vYi<`R22KPJO)-ubK50JIWr~<1<%4 zF}U#39tCl`zcGp5mMaF`nDo1YH)&t(#A4yF+%5hg*IQn+b82fk_m5H#H0_+W_z6GWFyH8S`R@f9th>bK_ie6Ra%=DT znP2+C?aLMZbw8gIBCGet-zD&_@W+YicRw>uv8cCw8!vM$bzj$s>#GwseKwq?S^6VU z=E$w|R!^CP_yX^|tFxtMwutTPd8{J7f63XjPb<`4PcQSmwZtrJ<*_Gk51MwI@k+PR z>vJx8pAwfmLsnd);^VYL>n$D+p1(hKly!N#Z@~=rR~oA?{QA3dMfn4S;Gpg|EN4Q zXNUXs?)^H6`#u#;bN{2-bN{=^oVik4tl4ulpD+k^=p9}2oUhJwSz{Ofo;x42*(WHp zEcNNTaJ}cP+jD){FUKFbUpAS0@%5bRjq%QA>Tl*qKMvVrvGilq_^XR|{W6 zEmQK3d^|r$H2zeN^5Ouqs|tsOm!IT5y-D5uT+!5zUbl?hS0!IMQ{ek~$l= z(Ogv*e{S!ImwT_w+Sz1Y{VFZ3thXe8@AUNfA6>%cu6k2?VAd9&=bYTq=XYmjluP!q z+FNjNF@8GEa5{DWlf>Ouo!rlg>GDI;k2}^5kz% zs#kaYRqOM9o74L>HfDyeW+@a-5Q%@PX=&b)b}IT?WJOQxl!~NBYa%>sm1?{Ht5_Gc z-`c3%x?u)m9pCo}Y3#m~x0KvVvsFse_&$4_xmqc4 z(JygL?3xX?L?^f^$?D!b#K5)X$&JUx`yQuk&&%O%3|P8ou5I_a{o9>HWG+m&a{N}f z?V%@?wKuABx8GgvrYE)vE%|q4`n68g%gi}bo-PX6 z`KvLy|D=RSx^tb`?b6QPTU#G%Y`t?X((9d}U&GSN?menscQf|iQvA};(S4h5L(g0d z`ISC0e!S1#7v18S`(PrM_TqV0*%wFnzqVbslR>$)e;uo+aSmJjJnqJp=QkF%-!^Mj zYVL}=qxWie+SW}Me|er*sb=jj@58;!d`0yc-_XjE-LD_=c~o%dKa7pv_E#v1_0z8O z>#n!HyPH(cWIy#t_QSg!HFE#$|Np9AC+xMQwNIy1TCB{5&%f-FZs8>HKQ`}}YGv6Ciwrsjy~>NP@h+)Vu|ZC5wMZaLXCO=Du}C;dBj)}0Pf z)~;-|nep&f>CV5Czi-?#H#Cz=N2H>`VoOMqf9c$`tD+U@=kF=Y7N|Qm`$wcE%lTyF zs$6~;VDU^rH^?#LpHpJrj*lOiJGRbI-n=Bar)xRK6y0X-uQhfqwj2toCeiYrH4mP1 zm{a{``@S1GQg6!N&6iimKl|SEPju<4V7GTm|HrO8HPg&Vj6vq{fM3I)htlRu!Mk%vmP1CUHlC^#YmhPt1~z#n(4m2KxHlIop0S!aBDsLxk(%MYf6D zHrrdgQ?&LR5Pa}jDqL1` zh9u``)u|~i(i$0?RL!l6Px5Z*4ES8E?C7mEW5Df#wEM01{e9>Kd5Mm*{stL#?{UHN%ZsS9nmG5_4oXW zT4T!1K7EVs-rL27U0y$eCO?|Cs4jcCq;SS*G#!^_Rs2f5Br3IN`6U5+ z$LAiWH@?%qoTT`A?z?lrY2m?cXU=p#ae2My0Gm4ZB>RT*DK2+Kc8S@1XaBX{(YGvR ze$J}N&2jR(cc0QYo#8^Xq+i-m1Pd zh*HuxGmR-OFysxxo^3u$zDoRmU~1!jq4|DlrQN3c@2mS7mN=K(DmHi;_demU$og;J z9v931{9dyq%qns1gO>s-1% zwe0!$qkM_pC$BRznl_#P@b~GGJyA0=&$3QqGTqQQN42BosoxK&f^8PzcM^0tttFbX z8l3P`@JeynWSTerHZ=i06d=eL@y(XkCpK7WAExoM|g@}aJ0d`Bil$=^7Z z+Q!+v_Kb1Y{X_mC8z->8nz-a4pVKEZ@tYAReYo}(Pi!oG`tEIxGN-|J@kxmm*CuOd zbgo|W{)1Ic&S4>ay^N^(=gcc-gnM2%b75D@y8g^FN8WHbp5VN6FgWc~>%WOR6{r77 z+;+{$`JjcG+!B}I3zA|iffq#k_ycoKuISMDq%`dbx6A=m&2axF=SLxqmQ(&|G?Z~nQHh^8KPPl&eq>cnSa8PzH<_=JSy%gAm|R)IuI(-O zIp^yXVRaS7lH#i@S@U1@zIztkx!6?QetNohE6=3%icQX`j|{i?UeVakaOchJ+=)y1 zMES%EA1>9}kZPXS$QUJaV{L`!9G&28UQOz@d)c@p8ZIw*W}QEu(?DKoda-MAq15pL zwFQUIu|0c}*_dU^!ItZIobT~A*=#Qci@KgyjFV=3eVnkT`ODXYhkbshPOkKl>&z_> z|MTqpMeF*kBkZM#$&2*Rv!Sk{& zU;8cJy3gxQe70I6FEa6DKleFXLuo+x@*f@E?2{zQgw=JfU+Phtq%Cf?q?_G&euqnOxTCzl= zUWs$;C|t)VygPVS_@TuS78}l<`lPk6MrBF#thv(9H6*;rd_6HmRZ8` zB(?Xy@3?%ppK^23$@f;z^6WQFes;o!H1SAN@~8y7Mgda#9$@s>pulRJ@p4&tH&Xdy8iQE4uKHN8NU2vt%t*W0NC$*g|=XiLd zQ1J+-OCjU#%KzU^^mphuSso0wmiO##)XBAUyz6*{K`+*d{ZQrm%Xz8uFHY<|{&1&) zL!Y_$rMb+FbDKpUo}A8CctJ(ysr84Vu6KN!8yKpTbPgLRm&eM*>N%MvmL;6IEmL)) zq9&2J9&|Gf}euOYSf@v{TkI?JW_BV-o&uCQbX zDmLoOtG=Dwv@&#R{I+!uv|c{?p0fDgn-^|A#+PSidRx~Re_N)!{%z@w_kwLZCkbqN zb)eW%^RFj!*va@g%!}sweq-Xc4b(C#yX7*|?w6Rsx;)(zVP}fmc(#h`U9%QF@N52_ z+uJ8RFtOP!qMz_SFHmqsfph1N=Xp$lvoO14JHwW+$3^=&K9sV%w|{&&e*=Bw7Zk0lcf?mXRT*fwXoxzqAzM|AWW3VWH~ zzB)X$GjnqMPTr4A8;$3jDieu4_50SY@?&YK7maw{?Fe#}*>ke1azcFE9KE9(EDe6G z_5HZmR5^Ka!ffrY!ChKL0p7gZd32)wJf0?%*Xg;fFXr)*bnyet!VOZJPp~%1#oqtY zz!_RpLF;H;gAU)eIj8OT z%2?*R#LQImIUilaZnCcDFFVhh-BK^FN?+2ucI|Ah#^<1k0;>{a%{H%^eOWNint7|; z9ObC3yZP_DvTj^ZXE|%;rO24(N$E4Le!r>Fe{@%>(e|&;&;E*YDieM7?y0D0 zqKdR%qU5aP6|DaCE-M<-a#l)4N-xklu)<2$@GIM`rAtC|@>Z5SQ-6F*@k9EjH9}T# z9j%}LUs~LBNi!loeT~mivGTy>*)ua!YC^=GpM7S^wBz3r#lsKVEdAFuy%LBHSkP7J zn-RL?+yTdp2Q;tpRZT49*HiV!PrQCT@%FQ$mF7X32XE)!_;XfgTDVW?lM}ms zoVb7c=6lK8c8jNJ&wKSPV~1-q-wGtEXN1}eskch}|B zW#>q|RJS|PXucpL_ewx)x9RJ3d#^S8esncw!xZ^#hfeOgd-|C9rBD|)%dRtTlf!-* zTw&WTd#Jd|Y4J5xsW zf^P>~9$m39?f-Vb{7J@V`CIE(zID32GIqbL*Rjt|dP`64e!8>g{!-DahEGpVOfUbx z_ISarSW=Q4N%QLde0(0`z3#f?mQ%*j=_%VTe~dfr!=3fo{qMqid2e5{GG2*eq4(q`mf5ws#y7z;rx>V z|4L6?E&OK3zq7G!k2ddJ^g2a$!TRd&v5N&QR?F}l`;}j3ZEvxD^6^gJl8dHEE?Jz< z9?$#d_|f=s+?7>ki%-RJUb5e@jYpa_*X7W{+bQc8%<0>*gEQ!h&}3EHz@=f! zzPPbW`o+~Yb%yzi8C%t4_huSj{cBP4<#1y{_2P@&8x&R67gsK6JG%5fhZu8?asJ!y zp1Q)v9`1|Tbn&%PG~fMWo`Jv3-5HbHmcC?He#Lq^oO9jNg0(x&diEY+kv$jlbN6w} z4Jx63%~_wGGhOIZfR%7{ztFC0f*Ptyv$_6m*}*-h z*zcY6m3tQrEPpxF+%SITAjE2a?tzhc6!+n$9!VAlzj{2p(Jo|azy3hxJI}mo_VXtl zBxM%8ILs80D1uQ-NQ$7Dxg4zse(}RB`HgOxexca`iAaA7klKuO1 zjUbkrOpjN8sFAsIv1;3cEt~Heq;GqE&3ZQucXAmiy zBO~?Tx?s`GfJ09;4NF|T&d9I_FJHKV*=@SG{WI6r4F)R<|0tLLvwSeoBKeDsTg_}u zzpmNSCXAyTC)d5n32!(UzHUkUHM807eB9vK)J1)aEcaFW5E z#KP!LT{|S>78R%|JN=k{@!AISp!J7+j(o~GbZ5#u-rPR-!uv(@oWmWqKRe749w64a zYU+|@^N!BWy!ET^OSqN9eWuwRrggO~_G_=T$8Rgzn*Df<)m!~Nxjy}~cnu1FWlfRl z6*bl=+2(&Mq^xDy^RHWDkGyr>%$L$iG?LG?95A)6cR($D+8{>|8MFwEjG<5MNI zn{_wCHOp=}mh|M!Kc8yO%cy1Wf??CL)9d?xw2K}8w@!mSq|W7E?X_plnbwSlZgZsA zPnG<%TI5*84O7;+Q|!xr{xy3tL1xnI+2`0E^AvPG`)tTtu;N+Hyo9jnj)$x2_wEu} ztmGnf80aG--+ri4Uy*5{M0Lx&T)gQ`4i7%ClAe!B{y|$ z@*J7JL+yQ_s^DAKKtJGlJEQ{3>I7LHj%R@nHdb;z{4jUfxwFnpZ?C)m+I&*SB&_L* zTSXtoYVq>jOP|+m$eJZ1aOjgcAJ0_H-$8kLn=&^r$A4SmG3%E1+c5q6*5ba;7M840 zm=v3};^gz=I$zSCJvM$c-KDak zSl#W;)@W-t*YJC@CUo#9Bp!@*bG-a2;Z5Vgy2t5fO6JN}F>&sAGofAjuJ5<>o73Lk z+&o`J{HYk@s?){X{>!U)KFi#HIBWaa-P+R}EZ%zj+u6GK7Sy7N={ zZq0Nmm^1J3nXK7!)_qWx^3BY#EZx8ERK&T}GkzQhYrHyZszvePx2@M+-+s|p>z$>a zvsZBXN0qp0Pu25}BjpQauFpTweecEIw1X=AR$F&0s{3Afvh;On_vcT$Pp7K=u06Cd z!|eRbe3#$P6S|cTZEVkz?qHYHXWy~tN=E zEv~{_AqI==kG)p@Y$~u@?#WKC!m`sdADz{CX1Fv+oJ&Mkc#6hRv-ykfoVuJ)__pW- zpXbW1QVa2g@q!E2e^u+aIN|Q^3yL4!I)4v0+bP#Bd292!QN)I(#v=<4Nn;eTgE%fN%>pji?ZB4!y%f?t+ z{K>0)nKA3FV=imgxy2F3SFrAQq#9vTHLHAXi`o64WVwIhQ{5g-Tgmj8M?>!ZyGimM zrzQUWd~P<`mUUCmz5TX%4Z-Zk6s_F$8FtUU(Q@Jc zv(lf<3vJ-tzjoQzIkU5sXFt7Bc30`Jm`?fEXn&o^#=Ge{9~qZ&i`u4s-IScU%S`9` zkr@Xr_PurF->;ODLFCi-1h8Z7nfiAfr4k#Uxwa4b++0}hQasIw70LH)bG0bW?{R)&3g9-SsIUa z**x7g^;+ZtoizJ}XAI_Di~3o4=fFDVNe5VG&V2p#)}&u+E$a?Gl9NuFl6Ut=+LThs z8;2bpwy9s*#OwL+_^jX`k9fu3TNgY#Q@8fpX~pvjQs-@R_Flhi)9E9>?6&WQ$<=03 z)6}>GUzvGqbH4TCh~4A1AO1VKgmx{xWqc_{!a1U2x2D&G!=6&dx0NM3f2hviuvtm^ zm!%KS@+TJ!6upX1=RLoiI%&$Q-Z`$DJ7-VNo+q9bhRMczvJ$mNvc8hWf zHP8MZUf8~?{LRsi=kxeBoWEJtymDjPDc<_Gx3ttmKh^J9rWrWF-g80skJl~i8oTCc zEnXjFy+G~bmxr9|uRW3ZBC5%u_V@3@gN}jUZFMSlnanXyvHElD#-`w6p(Z|FiJd2Q zpT6_oce>gV%Y)t?cCT_-zHqsGI<<}0@|BEzR*I{i;7KFi?m3LmB2su10Ku!y$O(?SCg7`qSUXQEB4x7hC?j&&o#74 zPxPjo%1>9O>zCpDqOyPyX)jAvCW$(Nq2DQ3t1#NW=3H->TO*r~W^;zIjGi z(#yl;i%n<8UQ_UjFE-F}aQ?ngtNF&n8H>G}d8@YzNF7=s+3>R9$RTF4o1c^Ojz11e zzGL-!L*2*3ZOvx;=QrtvXYcGOKfn96EJv>q3-b&eR9^&)#4j634G}@4v2AWf7mo zg*)>1pK3mt7+>9S>d1*er{~Wfot+qHR;bQ)bNVlON+V6_DN4k z5qqKZpIyW3X7Su@ah-a<9OwKBR?B@h-?iGBuao7q#K#A>u5K%GUbpyo53{7$!%G&; zS1x@Km0lw5l`*UCS;X<1M;~e1y~)4v_PO1y8dJ-3t7meuthB%IXM+U`8^7KDsFuJc_14(nXEl88e+nZ- zvO||Lh&V_;V2YL3e0c8ui)1m+f0v9bPcB_FCF}SC$qU(=Gk6>4N=fDSu`y}Y&g8vZ z>%3RYEK%+4mVlf5)!us=?2;xM-rn}g{L8 zyd|M`zbYBE>a^+c#lyZ~(#;iwYEoV-DAZ$80t9V_8+kvaMmsBl{@fKk_ z_w%w&VSLtJ(ReeiD-8dw9OnoMNXmsJAKrHH@wV4|@7~l+Y)eRNxqmC@ky{J5qDY8? zw{~+KPt|M2Q}g#cn-y|@iCuE>BW{N!8$%YEPFgReGkxpoub1v0GK2hkIw6q7Wi^IoEzV&yt7wRVH z?$PYie3Qek*)%zA2IrT17k8;T(7g+eJ=mf`49HYyA!kQ$jS+O&J=H+ z)aIYv?X&#Q&DPkO^jYfk&vJ*M@StLN^=SN0EB z+88a*Gbp}&utb6N;U0-IKYw4BGY+h0us9T2d;3Ca#Ri{4jtWoTAMIVzAsw=cufF2f z^Rw#NooA<}v&)=d@vppg^S0_v$Cuv|6AgemRMUjdz{6^$O|pTbdNZICTCL8TDS9Bh~uwo#1Kbt#e|G4rT5-{b&9k zl@G>@2RQTRwd=@A%@cumM3nq%DC=w z^kvqGHv&gi2K4Stn3SLMcB+(=;{0!$x1E0$r}lQa3-1fncQ4=Pz0UeJqvD~$!~fm^ zM-N??u*`^c?&)w=H#Lvlo2$-?NO9jT$gq1RwM);SYI5t{%@6POOcPnW<@dFPvofPP zK0AJE+Sqc!>`=|tZ(<*|82va|CT*}m#QMt-VW<5~yitlLxBT0|`eVjS)vR@=&w0#N zy?az(RanF~%|jDd_G$I6;Y(G2u#;5)d9K^;iN$v;yi)oi`)QkxS=4cvvMs5J zRVuGL(-ls1rdldh9;>VRr2U}wNA*9qHQz5iVLMpIcezP(_Vtg;Kd%2cz5kl>{T>@` zNER+*a_f~WPWJy|+4=B+!Yx}>si@=o@p7F)~h`abF&y(d$6 z%1QN1n`MH=T^V&2ONReyhbvXzNi}-zZqPAsnDteVdy4t;E!&K5>s{J?g8NZyPiMoN zy{?5JOOpG{FMQoBvV7I4`Tvt|7`|Dedgb2CPjSHkyx&3;=YQW^!7dy5#c00QA@0i? z&%U@dvowE$nWHEZo5G#EN&FRTmF-P;CwR1nE?D>}$oox#^RHyTe(kvP`Mm$63Qk+h zQc?Xj=`Ca6lOm=$%@^eE*vb3zVyM=Ye?oZ2}1){6h{c&1(DbVyrs z>1K)hL;2?&%dJ??ZJNj`QCOz4I_BW)8Rg2=lYjhg;ap-+6I^#D^zZd47eeyBHvfE&Ic8z4Ch=C=*aef#&` zhvzoE%U@4;n7h6|MB2UTNaU||x_Wy=1?-upzLMrFxcMxu&g|PKu`4!hO#5GjG%~0^ zI`H!3{MfSg#y@(VVQrO5_jb46)03)<4N2O?A++ntWpV8ji%m}Luy~T9+5ALjuHLtz zHQC(C8qXgEoN=9Wa_O{v(-u^RHHu8s{is%UHT#9q=_A&2KHhtA;f&v<(-+SkTp_2S zSJ!olY0BeG)q=l*=H$v-sTW8-ZvHN@pKs#=_lfHhN@Gja^>_bFn=epw>VW0Fp9;dY zh2}?dUP%@0I>>!o()yD^jYqn;UVnLH{?lY@KTp^HpXTj*bM?onira#{_nixz9w%K} ztrgC*qs3|xr|pfaPVN2;G6!nA9gk+;n)9ST)kOEv8WwKPCEU*rf1jXadBe_xz4?dF zEA{pF>KKG}H&k8j@1LtG*Zq2Fpnyo~vr`67OCqxQObyw0PZF85d;Re;pRkhbbmPM9 zfl7ZAI6Si-1!XtZA7(n2c_2dj>!v67+!$sbRr2MC)pXm+*f%57;%D}%0__bOMXNIJ zG)YIUY~1r(NVP)h?V=L(Bqm-r^@r=#=6XpPJaPE8S?6Npop%dcVmGKBd~e#6uRfb= ziGzlG_lMeCw+CI*HJl>rnU~%9y8P(l=>n_PT#@D8Yq7piSJJdLrtr0@^xBL3n_h;? zWzPDmx{`0B=(5>tE0?RZyyZzONWIhEvSrtr_6OhkR?Zfjc56EC?GlYvXO>CFt{V#( z)ZI#Sx|TfaN>t$=k%1TUcUCbt-6yf>#*XtIUycGb?5#xK1wLMDEUm7@y=w& zpXYZn->6@x=he%9>ENytvu4jz-0`q^A9GwQr_qba6VwgkR@8e=`S;9*;pwTP@1OX{ zg|)}c*tuzbuu1Zqmro9DG8Z~F%U5`#%GR6hDXR{2U#R+^uy&69lJc66N34f*>>r7` z*%_*-Gpv1lvpML872~gYJCBF#y%qGwh~H$}>Dl`?`RqE*v*oOboAW{?J&Vf1j;Dt; z_;@PM@;t5Rxxc<3Rw&sNoR z-fOCUAj+ZjYMXHF#&?3>PN=)OJvsGES?w+BnFqYd4_6CFa35S$c--Jw;OWA3*OEt#%s^Qz}?{+^F-w}%PtW!;x4QR25v^$^ ziegF%3lqYAx@5&C$}U$B>{(g9$9?tF6NXn-oZmEK=897#^ZOoX$WE!&o%VC*k4KC) z>vtZn;V#?UIIl>t)+}*X;k{3LRN&g51+mY+X1{dd+CK68 z1`n1tk!ryyX%m!cZmux=783aN%PC>y!p;Lbk8XP~#fY{1x5gCqm{${}zD?NM^dO=0 z#gR1YL)|l57k{V{TXkn^$jsX-IcG^8egDEK^#*IyO7+{G3jSUmH>gWX_y+$Z>~4mxZXl zhu0L|vmsnB)t-g>3Y`h*XWpWJ*kC3?eXa>rI*xql+HQv?c<3VEE;TfbyLdp z&(ASl;8CJ4kvYM_cXiLLeQMKWyjV}0PWiH3*YS9=Ua-}|MgQ*g+t$@xu@iUu_3Hbs zc~OTecQG1XX6|4;8eh3=abWNDpc1)~s;NzON8TO#To%aJH$$&~g+AZm&muwXh8oJp zcCBXeb2Icie*TB6$%zDyM`sds1@A4NCI0>NooRbk&fBW*xajmr`DY8JEdOZm<@=3? zPp2B}R4e`UTX92S#rFD(7CZjOKHFp&Ffo31@f5}$zc$kpJHa?+JuwfN|E z*Wep_4*riTyd`GZdgbVumb(#RH|^U#_^2D z{@L37ZkZ^&TW!Wo1Bq?i$Fe@YHc&oudg>afeI$p#7 zZ&+EUy{r#zi>6wEIvRZi*E^W%Xb%rlbCO7W)+704vWqbDZSg-kajEjGFfcNx} z?6Q-y4Y-b_ZI<`uUvaKM`;l|}ZgtJP=MPRVKWBL7=9A@(hd;U=c$It8tefvk&9An# zZh}vwxdTq*-<{~KZFMg|;lk^#Oo_`%ArDnAGE2{!vj6K7RtH;?Ydc%>?PbC=`S+b_ z{pRyVpYh__10F&iVHccuA_EVV2pw59Yeq!V%1IjY`Bkn@-6Q3cajJ5WZA?Y|YAxA^ z&lr8{44gzaHlI;$l~|IPcX>$!{Uxi46H)Xrb(^5yIs z6SiMZa#}xJK2iTaAaH+3)@xfMh4O$K{^}YNZiY#}b+$1(CK1$U%d8mi^u6gEG3zVJ z)umt3T=*@IwA{{qu|RTDcx~gOi`OL2Mh4yMeswdA%W|q6uZMFum)g(AIx#D=1H{r^ zxd^XImEt_iAW{*%+4F5xI+K^dtYQOqj@rF*nhdnQXslGyvBfnPu`>731B{N#A58rP2`NqsT8!};LnU{9f@?xVUXVYG8e6Iar%K{U% z!ZngB9$lykRJARMmUO<{$g|+6bM*H68BZ_NzRY>8vuuZ?yVE|otc!L50=t>hFZcdg zx=&Gkx@UZ3$=Ra$D_`i$oMRO0SZQm1Lu%eq%_YWRrkZ7aBH90$WEU%TMg6dP#>?sx zeS5{7*ri1Z_q(|k+^#l?sE@O?J}rE&=~~*^!bzJR-@TEt_?q*Ac8R$EH`~%*-D!Uk zf9=wFUb8Eo?_8K}BVd!YbMFfFj+KukO!=%Mw=TK0`}t(v?nLDqmwNs@zI^$sz{y|F zD)}B%WayQ99#;&oxhy~=?no(G3>nl(H`cz}t-!adf?r@7P zeX(uUyTwNgl&nsPH?=(|_O+72ZUUkhHjZebS8V;IDUC&|L*6WS6exB|PfgT(ar_(0Nf+0JUVoX?nEs^By0ji-b)g=ZTJJU#A} zs3sAg9IQp@6jOl@Gf$sdv>aP3}@PD=FfRFKa!+Gocm|AkOS06Mvth8{S z(Bx>#{dKMv)i=MK{949L-s|mKrmq??$3?#uXQ@Q1&X3#iC&1unv;8Fnzv7wNlQ}Ky zybNVTVwbU=y12L7RsM!>zk{#Z@B54&O3U=0TvdKOG3`p+3XU~f)%>{+d~M=-tGD)s zC&Qw^1g-X?Q!+)X_a&>hJ!RP2=bpQ=FOhFm07q0&v3UgZo#aprjfX7nJQQ;uSG{>J zuCwRjjPnsDIg#5Feoo81&U-iZNZsDNp!L&Mo4Y?)63qB(xBBmsm(#W;6j`)HD%d>F zR1=L|+b3X(!$AziO&L-Fl|G@2{P0P|ZE`XtNM|*~zbx zt-CVkh3v0d@NEY7?mMDewQ6K}nws_YM|fEEtE>|b(c8I>rTg=hhyLGON|-tJZ#wiV zG;-A(bN#Q<(``Ql{ffHO)mCBou=h;lN`2$yW#t)tq8`73CaX>N{@(OCTd_U;^!FO$ zYtpL=8J@K1Zi%?G;K{u*H{M5|&fAqV?l!voU{cE6Z4a&8KW@@jz5D7aQ@w`sKgYe# zXKudaw3`1y(B@5+ayq4-CJp+9Yq&wH9B#zt?;`Z^_9``zmE`6-#?EUk;V{ zA@bHEZA8m%k*=ELrlP%>Q@O1BUodv*vxXZ25cUN7?GLt7|W@{oXg>+xG?U zrY_wQm)kTk(#>vSM8#?s%L=`g^?Q$Ke@F_hc`E)^g8z6*so%*<9J}jPdO{zzhyC&Y z-t^0GQXbE-RliujxJ+4QC6clE=FH1VffCWP*}i0C{;%TIQQx&ysHE$w#55iOtA=}v zl9bp#7fhLWHT!_vE3J#JU2m&SSFDL^F3;~3%PTUySMQ+xb;oIw8!ubqs-g>KZPt7L zlB>{T@zrxa>YE)U^KkO!koivA!^##1KKOpuK-m5Tb85xAO8DZ{Gbu0ilhD(E z>_@+O^+T`JPk+APy8Zj#lVq*?r@VUTv&ghi=I~{!&77<3s-!RP`g*5*>8HSx7rPbC z&EVL4VuIz5b3(u7$0;xH-f>V>@8qH>!G_!ZT%__XW%nxfPTQlP*MI#+#)Xqkd|hW&f6o2>s%~4t!Qh$iKJ+?$sSN*e)4%@x^KUhK z)@}J(byUYB>hN<@fxl-bzE!YZeJ{^GuHDu2@pki|$1J-Yluz_?{r}GtBsa_N(1EXM zsjN$`elE9L^TWBA^SaMF?>f^buE+cB@0>nw_3~e{{TBD_&dKHic6QJBt1XY%9{VMD zCVz|V@;TxLTKk^7NDuY6yT0&c!-qGKefhB=m~zJ2-skb?nH$yu68zqnJ_t?5DP^ z7EgBvpPKv5=I!-kCjEU+YWM`&eRGxUmpo?R6;faP<4(Wvbk3iu%$i#m1RAfrbx_?| z&lDiIkSkNX=ia2JFWB!ke>v}^ueH|FY;}6>D&Yy!%`Mv}dz4S( z_sPHb{*15f!qDRmZR>AtvXt?j_QjcR)+LXa)!*c2l(sI8xwL(;?;&HycM7bh&3m&~ zsu<5{jLy4yW#2ij*LEv5y76V_n+Sfp_n@-C_m{cWLbbX4GHvYd^LVpv7-_l$CPb#1 zu6M5VzvgB*@dMYr)aOe~7K?g%SvyBAklDMdNAv33r*BoR?oUXaFe6Mey+n4&G$Drj z85a2ZT^eoq9)7!RyY~8%=eiRk zzJ6>JPv>LHKKVfI=%oD|L9wS6O8%0)`&%GH+4S`dBkxBx>+fxj(WpL~zKPXh(Q~`? z`=^z@p7z;!SwY-=;rBgZcIKfL3!IP4{9Ez$`zgWp+O3mY)t8n04ZT6bI! zo9>@ov>|4}y3%_L592rv@Lu|)U1I-rYYsaT$7D^u6WePyiat~js+7NUb^BxQ-Ls?Y zG_-DneXO4NDB#rnuE*8W?p^6N5Zj5w!te6J+kB4G`@qRoZ+>Q6+`d=GE#T7Xht~x- zH+_8mZ1#`eW@fu5g@tZdcw&cyM!ePjYwQ;6{H;&6uj)wgn=G<-1Kz64j==Y=Px(%00>{~W)r(VDm;{@Y>ZqxCbUEcQE}V&ynx!p;hFXTJvf-|7!h%IQJ+kaZIYm+)uX7@_f}l93t4Zw zJkey1A%FFkr|M=qzBVm9I{%f(+o^o#rk~67Fxm6R!ev|iu2%oZ#_eaG)a+)>QYyLBVg|EWvW{7uK9qgB=Ti}tgc-kuN z=wR{9-~KFbi>$eA_9XGmv?t_En-*tMWK07Dd?=s&d(*5mtk_m@#mBxW!CvlxQRu3KjFR;JX zojjMfOp{%%htu=U!E5pcOZxu)I$X-WP>%8S!+B>7Nq=9csh;(jc2n(xiiqpcc{_8K zE?w^uytydjr$=m)Y)5e^Z}zS4pO<>ilCWLsc;)5gcKuhSQOUnr_wGFO(#fXWG}!UG zRMYHM?>V_2_BJi#)R1JiiD}9?Z_*gM@Ig-S`tqie^8V73Y85!RmLxw>(Vf%k|Dj0q zaMMS9efCtr#jhWPZ>mrd{(Di=VeRktE{8-e@Eb&MK$HMnlfu_9WKfm-@e(gyq!rm?hCAG(29$v|GFQ_mj z{%gyfOOWynfT?->F)@v-q0BT~@xEnw!d9)%AbF z`rM^ZZwvXa8&{owU3r_P?@>ik`}xs2Q0Dl+2e!RYYGszr2+Bz|DIn ztIJEBrdLn7Wl?hS+tPzkuKbTnSW_oPed?ULV3*yI<6Y5we>&aMP93}LbowNlebg!+ zj~l|a{8f7;|D1Rq_pHlUvMR%VU3GCPBThE_=uWs=?BWue==T9k> zycCGsD7+;vY=-BRnrCiFrz%Rty=qL_)?fOw_nCO$mZX~-)Xw}UR4_a4Q6g8~V_#Or zvg_V$&y#9}`bx9s#%e^Ezkl|2L*b{rwG$7|Yuo;m`C#|SKIb+s?<1=;S3Er=eQv+~ z+c$Pu$CxwY=VbpdnA!Q{{x=WPDwE7M)tij_P8qMaD?Ip1*tqZe?kA_5N{aRzPpDXA zyx2YRN3F#U>Gp-+BCT_dDBeE#bwjvZ#-D7zeJPv?noE>xIfX20j+>b-%ey91zuR+@ zc)QX5$)}J8!;tVanD6$@`7%i{-_urfsjjo@FrmMVyV( zhnG!r6D(pr7_Kbn;D2r>c6`av$GeOA=81h zeCLo)PwvKbYt*dv#MYWzzE`y?_m_*;fw?9hJj^aE{+Fq)e^`f4_L}Aq`99$!se5Z{ z|4r2XrTE-i+5D+_z6H^k+<@_FGm*X>Un?=7PPsi$(&rPDTtA1*wtoXZuyaov+Q z*Ux0ko5ywD!Buo_yioM7Q;#1We|fxfZhY>R-REq$7gcUAmeYRzaqpdPj}LJ%itq^B zU(Rfu$&_dHY(4k0woOsfIql5Cba>t$%xOGWVyBw$#cfSY5TNBt3P%WADirJ z>u2jT)%^#9$=-5<^7Lh$oky=c{=8J_TPhs=19R8h zy)XEIsp)RkBi1>A=`jm#`W$$`Kl7aUq(8yp5B>g^XZ61O{k7P6Z5o&G-)U8fpUxG0 zycE0rTEscEo$Gx5ZqvBg^z_M!S^a#Mk2jav2eta{?&jS5R_&S%$Lu1pjt5bT>g9J? zn7l6U%;0n?bF$8MvG^8Hk=USg#yo%WteGbnHKf{j4}~)~vMl=Z-tNq%w|DP6cX!{o zVtU5M_1?_>d$f{yixlic&NTSs#%}-nFlp-YztWD^XT9Xh^s3+08T|J1vBOu{PJGio zcxbjHOWfL({@XP_{(V1Z;WMKO@%gziQxDp^^Ui#l&-7UE)ZZ049HCQko;ltuy2xO2 z{@KCc388TZ;!Bqvi=UL!f5q!-U*ntIx|+f4TN3;p_-ZTXpS-+Huv&1J!>jNWCAW4I z+XPE*6@Px=(W908Q~zY=gjwD&?VUBhg1hTdPUZV5{Vf&C*BC4+tWeKid#UiMy=&=* z4@IvQZeH^8^(@t8MbXzRY7CxT*z=>e{N0AQsAaKTUb8R1)Mjt`H}C3UxwY@kTWb9L z|KO{#Tb!P4*FguK@JhA25BC3?*3GAC7<-rh`wRCkN^cd-5ARj)yVSFSf3e!Bo%+XZ zN;N(D`dqY5aW(3HJhu1uMJ9=Ducn$k?AQLjG9h#4BDN144~y^aFIuqnZOesyGuFs; zKR(vPDfMnX)AW`(>td##e7&ys>{d>n&ZzTQ?yXW+)&8xX?$DRF>WJL*&lTk>OTE5C zbLYgZki7h`OLBeC<@FLqf3yu&S1Yu9%YQ1a@%x|e_xT%sZ87ouD(&Sh9Iw8u>DZr2YPv&xD z1q3`5|9Q{%4V&vK#b4HvJqL@w=>6e1*j~HOzCflUZ>5rCpIq9P+4-yt{Oo+3dk>ua z`8IariD<#@(wfbQ&(|OE-4J}ZP4-?+QMP)tt6SNY%?}E#r6-i0+E?$ftJwVAsk~j* zi&oFwwPFI}krVr+KYC6$W~$hc5@W|GbXb_-(1-aSr&ndkN6*gY>X$ld9CFQT)wYxI z0?$01ZZjM{7SCcias8d>Em!Q+^u0{3T$>Z8`{L+Xk=hScTFo({ot|25KN2_%1+`T2 zye70B&6-e=?fE0W&BnOu?o5YUq3e6u+)mmqT$?$q$E5a6()sdL`(LRQZjILNV%_;r zH1(A2oSXmNuD99PzdC5IeOhju{e`L()f>V-Nb?@pxj^0c()?x*@e_%*FRt^2?6SLG zQF?oc;48J(mG;#e;2qMBA;Y4zO08-BWVuphU!m(B!ji+pg}KeSX0g+Xoe{Cib2>8}~nYH@$4x zmN)yQ9XlqZ@4d8fdv+bi5zp7Wy(xBEw%sWEm3-5KebvEdhjLn?r)Vr*sswIQS`e!XwSJFr$f06M|=0#T|^`TF+~f zGpT>d-i!Iw&W5KJOqzcDlF6Fs7tHwEG==}9Wx1*9SzG$5vWHLfwf9?DXxJSSY3v-o zX`7~8_w9R8#)@3}mj4yps~MTMJ10i0x0yNb`w=PA-1+lDuW}eVt^LrXB~yQ4n{Gg{ zt&OhIN2aIeFF)H>9+k|Zx+BK(>A#RC^Crv=NV{73ZA#W^7w@|)*%MslFa2{0-n-$* z%Fu=r=TY(DAlcCN18^nbWFl}AtApKmJm%V6_Mp`ywMCsuAQ)SdXv$DZZM5tc13^{w9Z`Kc+NDz|=I z(Rh4HpzfKvBHbd}-*TDa8Pz$@X3b0DKk#!_oxAr^)}HAv5>%xxeXtdC5Yu}0bnm*_ zpD)}@Un#HL$)lirbGm@;zpLUFR@EssyaoJcd{@o=V-~ZtZRhPPSNP*rU2;2dBdU3Z z!8?vbxnFiWIUK7~z%|7VlWNr|UgWMQ;V z9{Oo&8op~$Y*fdk?jq){4}IJA&MDaHdCX{d}bvKpyrJOu7h2Iy(R43JJ{dnk)*-0+{7q!u69<%a#Do`h)ICQqnsQyj#ufh-IeY{I7+SY#EIscgWyzuL}e((Neotey~ z_2v13qtjm&fBWeAE7aoD=a02EHL}jN>pyz#5t$ggZ{bmeuwADQB&KdmofGYymM6~c zD6%)8=<$Tc=P(sO3(c;o74ZIza+d^^vxsyfC!i%BTl z^)P->=YNM&VO71_-$JW-rH(dTTClFl}*sUrysw@js8Q>t0{~ zqc>Oksoe_KFRAUHpZ?stX!-ldSnieXvo_d9UXx@DPCjuq>CGqUMF|!zkNW<-$db>O zE#0N6cCJQim8RZ$&5jA*Q>XBXGg#V7p9?wO9wMLU!*TUl@4WkK#o`4{wy!DJAZ~is z=;Fx@I}gOnX1aACr}VAG4;F`1g$?sIOf@mHm`W%i^va zJH_{ijrpdXtNsCHAMLu5kbf^L&Meli+f;rt^B`aK1ZBxjAA^ncAH4Y+^3HZ+*SX^T zOVewdmTcIWZhJt`f}e}mvZ7;Nl6_61@0*#j&tLx7XZcT}+;*3Azwfv3>MJST_tXEp z2&{cM(fa+)?=Op<=YPvOCN6iT`bqyD=F^kU3+=7{Y54J2Yy1zn11mCQ0wQ7)ct2ig4V*M>qQsRm@0E+W>rWJ{`BJX%us2yt zTf=?nLchS1lBoWg&W@B(!+*)B9W9jm$ZB_*SPXM6X`Nl{iBo zDQDZlsQ9NGDi1?8)RuDp(EQ@(QW7QD*YjIS&H8lt4O4Z!hm2BHvuh4rc=%)8iJkX8 zt>|8sv8#91jrFycmfY!fVtTMp^m^tR5PGjK=*wF%FXnw5YBLVYKeub& z&+dG0lV;1xS7*}?KJ=O28y&7(#Axuvc!R*qWe>wTPxW3(Y>9M^+;%K`7XQ-6T>me! zOn$W}HSdSS%{|ZSBCajws5*J@^6Gi4o9=ME5;smMe;mSkEaCo|iJN0SJrY?YWG|jk zGJmaH>$HxIEIbFre$FsU-ryiExR-0$&lR07=Z4N<^;rFJ_p!Da=MLNwUH9{1?Zw3V z2B%+6Jrei$;3Kh~<7YQt5t+%(Q8zOo!%{KFXrYPJo4)T&2CZTo9d~a&d@Q2q9I)JM z#pIheZZ)Ugc;WHqTXI9YxI%mJ83;|Ngz+QIw;6VSnhH zzlLF|9Yz-Kv+e&Eu80o%wB+%kZ_hIn|40iM-)%Vcg+FQ11h(K`tGPqCEL60k^`3DW zb!YPwklgg;GV$Ho9idW~jW;X7cb)}Lo zZ2G$i>op@S1arGxA9Jl#utUg>kBx?V7YVow` z$-lW5{o?F>H^W`()!E10s*LX#?j2Fr{cW4_$-TyP@67xRyK_tJn&)p$o-e-Y^hCYw ztX#X#2ivR=F}?b0y0OpV3Gu78iGQEvrDMIMOPWJ}>B(1fGio(=FIqNz*940cmbcp& zqRro2kKMNFVWhmng*O3bE=@@1o9LtPLhWGHAKghZ27mWnzu&9GoDtUF!<2dXMWBEA zPrt zzgMaqEI+<}lQ_>-6E@*U(~@glpFGd4{gKJ*SswFt^XAI=LSKAJULPy}7UJ*wJv&ao zuSI_Q6jANTmZj6yRCgqQPMUYvDY>a%M(iCF02d?S?_r6g*vzFo#Q(CF@>4ieg1Zf zc|SkhlJIolKgQ~l@5F7FRGvD%`Mk@f9ZBaC($+V%ZCILl-dM$TZCLYB{d0SaICq8% zPg=6=d>Y4;FHxD1e%@7SlhlM)J#O8@e_Ht1-X@W`>Syk2Jy=NzqtGRra`F^Pcyw8nBlfQOXc{uhz~5}ftKytK zrc$ow2gFni4(^zfqQUc-FYuK{)W@GLTxZVyYdE@m!*su-S4%ori)Nhrdeg?;;N_|W zk(Za`XUp2G`aN}S;o0v3+J}yBN>Y5gF3g_Y;Z5D!W?}CK4`eli?N27NhxiIUxVnNRmexqZK zhWCU%N%68ilTudsx%1~A9^H?wpTgc|81LpMiI-J&_+lh`Tq z!_kb@$HiZ!oN-`0SzQ!aKBddQ?V3l?{M+RcxwH749n&gq1>RV+?Jmbe?bx07Uohui z_#bijqW#AWi`%caH#_v7`5@5mIjyiyFmQ|KMusAmSp*B;CKMQ`rdS)bme>e#;ZYi0LV3#koNPC?$2-!(Cu zE4_C0_0d58w?|l$pYbo{+Y%}*(V|y!XTzjBFPE!owx6lH+xBu#$Gg9$zGvSQNZ2sj z%XyBZ@wEPlJluXv2Y=)|d$n`+M@yaL1li`LHJX%ZIDh(BwH`t_1D-geNf~n8cU&~-Z_OlxOLg7^+ z7T!+tBT^R$nvwaMinY+uhep63m8ai9hCljq2X?U3xc1QO#$jO~qAGm#UXu zi@M>lLBZ}hLshxg;jJvzwI{MQI`4e4;aAKt-gs9w%j0gyF4jonvsrVw9tZRtoZZsS z`6}b$MaTYax=k%}_B9^5_G|9iA0Z)Od|n|(zlN?l#rpXDlF+F8KU2JK9{O3n%5`dq zuJE=aQ+IS-V)$SG@xbGs0q#;Rtj3d<`!8;Cef?netPkv~026NRhmQZkO5m5vYY zdcRJ7PWf(Ug?}0AllY}I*ZchyC~S#t?)K=9bzi!(Q zI@c!jVHF!7I=(V-HYW=zAMvu~*4_mIU4}Ut#=H8o&OOE@C>zCKen5=={#-$rECDZ|^s5pI){9_wjxIWEC_#6;JNp+OPC}_35lvqQ^f>7XO-d zJe>9S6ZgX(;+g_%Yk%C*OVrudc5`1tgTsdaCVSYEn#^Bz^*|(47z7OGeck#iEKOO8!s~7Tl zMg2KtaCIs3<J&smxC-MxF!Na)nArkxEp56at?{LlMm zxbVvA8eiVje7Bh^KM6!c+`icU=3RxQ@8#XSM-SSF&QyNOccJxU&ga)P-^`@n$>g8Z z<*nY-6rO%Thim8U8S+K$o2&c#A8s&VGSYZ?^w=_o$!p@h6iwSRo~4wFm3=G8T4Q!l zsqqHa`U{( z54=jeGhh1GBksrdLq6Q-j=xgth3c7dI|03htK+HZPnRTDmlaZ*SZs#_TQ{N?A9n*t{Cg^ zXTx?G$?Xy?ksaw<@3?euy4+7FxOH^j?SPJ%$>!BfZD0N-f63p&CHY_CYUXo|^cOL8 zcbaCpuJ)3AR2JEFCs;1y!;(-z?~d6AcI|$3r6$~kV^)OC93_9Ysm&ixDc)XC_gElR zp>q1dlMQcAUH($~CV$1#joSYInq}76`0@w+KQhJk#%ouwS}Qk;j?~LaYJv)sCnIv%9D)nRxLcr~IA&=U(}lcG|eibmDluC(35U zUU#mazd2|BzMVVMn>VOS zi$(-I?>Hjy#lB?;U(U4q6ZdycPYBemeZaPO`sK2NQ-9^HvANDWui|nPs}@7a?G&Er z`Jc9(om8NlYpZ+vTnX2&#)!JO{8h}h+g8T;C7Lh4dpYI#ZsQ4i%6GNhHGJ{*n?CdP z_iwkAb{jNSZ2GtTLdvK2)6UG5y326rAOEf5yO}HO<_Jh0*&Vju-p{I~uye2V3h9i$ zZ<@i{Nq4SuHYq=!c)m?YG;DvL#q%vkbQACH@haKdUfE$B^KfqAhfqfck>Y;K$KKBu zo=RQK5LUSSeELzZ*D;KfqGT1;{tD-r@N03i-r8Ha+az)xRz96k*65s4q5YxwQoqOI zbDcaCr00pr)FO|SDNUwv10kLS>5+qNSVccu9LNLguUq#-*Y_;9HtQtZ;{rw#N`X*wutLkU3g#;#M8I>>7U*En)1bE zH*{Ud-=bmjeyi24`{v@u8sBKmPd&zJ`}~yb&wm@QrX1BgAbD9|berK(HroTvD%(VY z<#$}FyYMf!T+4TH?4~ZAt?d!p1h<~P9h8!J(^ACyXxhOJ9`#=&&qe2%a;DpoV=VN%+uo420=@K-brOw#8XaRi7k>3bf4YSytC!s>PU;}yb(>= zaSv3L&+Ro@;CjhpLg!TRndS4dt?o&4@5Yj%8U+woU z4|$e4Q{~Q|iVdj`)%kS_D~=arNUELCygHFFa?QF`HM?z!F2Daa^ReNR3-{h_V3rI? z5^I-O^&((nuCGU%V<@Ox! z)bmi7FVFrdF7Wy}^`~VWJB+vN5;tXgUZ`UvsaJehVt2Ohvf^uYm)`XrZ1IWa?{*><$~9ft4e1qt+>B=Nz4b2wJZLgx|dyRbTRb?du!*KpBq0( ztma?xlIM8f{V&hXtG`lhJ{L7LcgMZfllO%)vf?u4@=kl6tR(kLT=tpK{zpQF_xkJ^ zSN#zz{;4nc{dS0FpU0*JLX1qhGt$myPh$L*&^oF5sDV&|j;b}Mu0y8C> zm#;tGz3+zU(?`4R=+&Q^v-ri+%cuNOo_-iTFFK!%D?om2stpDZS z+~3XY2N{`--%b2i`7U1Y>pl6cui`EDaNPY^dH3_L)=z&*9lx?)NnZSi`NWak+UJh` zZT-~md(Z#w$Fuv_KM;DEoO9gd{FaI*mnECTx{L#F)qEv!!Y3llld- z_Fw;V^yvTU*5dUqr#}0A(fG-Qb?LDi$~>>vZ}l)Q5Zd(0mwEQnq@U);{?FcNKS4ZnxPZcy)@!WW@>}2?|@9%35 z<`_Quc=W?PpMNrTv6B_#jr=Y}KyOrLC<%gTB}LN)VSeVO0l4UAq?=Dl%dUfp~*4Iv73x4_EwBVRsU-EB( zk2ibYlF(9){LU?}7Hph;?91=@AESK!r2b6a!#uTDfV05T(X1=DS=#(rqlr7W`wwM5 z*5BLXXE8BW2(Q>(n_n|=+kxxr&K!JpizV&loc>m(2q}>r%RJu1%aq6V-uNdV^;sdL zZM$os{+{Cto!o5O%=Ax6RJjHmRsYNu`+K+j`h_0y>W}tLI8{?5ZnITeEJtRM-aM}! z9!{y^B(-1cEpM_}S=pbyl)A@0jg2p6>H5QwogyCX#V;Qw3Vp8dJhp4U+3wVWU9Y#z zY|r-WllXjGBZHwRgEb-9UB|A@P^IW3-y-dtDaU>p@?OpPe}y*LLXXaAS#%Id9qa<6)c`L%l&%zjMUEwRhj=bH4il!vDJE8UNlpX2h)x@*nV{P6Ah z>8BrO_$E|Z7~G0FSg>fCW7f8xB_1#COQ}beZ~8UmK+#gkrINvBE=lb7K2P)c+U;}b z_G95_*=hGZxKvCmq`pfrzu9s{J^h19OG@gLG)8vrxn?W99V-*=?a#g4vScQEg0Tau zYW}}K*YYEQqAtWHn6sTkw2 z@ArLOf>rD0HXqq1=J{euLf|3gyud9VzZ595>beE#9Z^!%e60L)R3i{0mK7W033tj@dO=Coy-rr!R`v~-5KE0f5#kITPb zS-m{#ko^92uj;GX)c)nyUq8QS$M3Jkre7N-nFQaTaO7b&ug7i!uG`6<6xC*W#6IVF z>7dfOK6OX%ow?J$RrtO6pHlqlSMm4m`1?nM%l<5$ZI-#m;LdgFb#HXE)<29~lv{B> zpvxv*B9|@sOyf#@9u2_3?ZRQ_aLIgD(+B@ry zv(1c}Z_L2&nsIi=?YK&T-@Y@7YWzH8Lay9UoA2?^hHGQ(y}Fkgy6w^TmYnj=eOmQL z=!4ZewJo0wo<7?2XX>Nb0nuW`rgcZAd6iDyyX0^0SGgrR48MDS_}>xTFj4#PcHMnH zcX75I`o$|}d+E*8q=wdoH$<1as=9y5=bG1kD$XJ@dGhABE;4WT`g!|5&pmyeyQ0MF zS2yp3@?9rIUI;Dk;#{=soOZ)$-@xbmA&U#FWp|$THqX%77uVmiC*-U3%D(vrUr#x- zmA~!J45#n!_qb%T?y~PG&JA^5Qs;i`?Wu3=hE@BoZkZ&`e0A@ddvT{z$~aW}t^3Xi zT-)(BK~teA+uC&1A-4w64z_2Rfj^6RC$MKlsd)!m6Oi#W4d3U+>W%IKw zS3d{cl<0i?YQxJ%*$3;SmOoM0;m>}JKdrEq?ao8ygKJeZey}5uglgNHOY;7{2MPw@gGr4%Iuixq%RVkJbmSn(%ds0oSAobT~}v4 zmpS9-lPzpbsn;*qwE3BIn)ROydZB$WROw{M3}riw^>UgkuN3M#F;88cS6jG}VS~j# zr|-H`zKcz5JN)U%rX3p-%S!ewt}ZuKzTtnY*2|26ucaWrJHo5%J zty}Nfrq<7$E4bWX$K=e53mLQ18yh#jnmUu+{ovQ+6;E0|RVBVvW{&Jz@>d~+>9pLt zt&Kcphqpv(Z#es`RdEg{6|s10H4?s8h&-Y+{=|I=xU()k(N`BruvSg+|m zQKzmoqi@-%IeIT=Kitms;$rK+1MIa|?)9`be|aRX>v-#r;Qo!O8#X6+Pkb)4j+a5` z_D$1i*RAc6w_Wk@D4w$PJfr*5%90JA)|Uv*z2Il(pKdE(X8Q84%A60|tSjy8&Mo#aC*g#Y3}9(@jd=cJm4OB*hHj57Gh7!xz~INy@sfF&QC(f1Mc$u^j^EPNj|g=8A{!pmptvOX`y<_Rd+)7( zcy+UTFt2}k1>^D4`FS4%XQ;ICGcs2F{ugj4PpPeP@9TLXJx>K{Dt|mk{>oYRENc1P z+Ov~op3XbqqU*iiu0~30PQmwkZ9iF9Tr~N_I8F8hHXpp$5O2}iD;8McU~x)!%h^lT z5v!l=tDfb)g=2f=4VhO<~|5qr~>*vhA zJ9WC<;cYd{KK^k^Z!&)cXUt34y{0qJDeXdj_P<-(o>r+w#edqBYbXEri^@0uM-$RL z{umW=7FM0klW?9?qxX4#KF7M>tRGt1g$-3WmTa+n|QB% zxaH8hRr^5d4@2pVyO(D@`E{F(_oP+K=j9Q9tDVjJ%(pkz@->V2YVc)EwV1n8p2ux- z>EF*Six;G=DT%*gc)}s;)5^UEO_$w%S+*zs&##E;_md*_U9X>;d9wV=jEhh5@=snk zahI_)KY1&ts3^DSYfqtQ?7^5Tyqqt(pWN+M@v4}h z`fURXtEtD|M*IE2=NFXOhdo^^qSW8~nS=M|y+10uUal{mw45<2;8>Ve;E8;_^`|DZ z+;^CEG3VvAZ$6^-$NOh+Y&pMoOWf!5=geuRa!%S#sNNQ1`fxsDx4YJqZK4l5HlO6% zqu%KELYDQDbUB+~d1jlh(ep>|)XUtC>RfBzvtwC6Qe5Rs{~d-q<2_CD3ty;2HyQpp zsQ6vAa_gJyIA8pSnhpG6 zTQ$~8Ue!LaU+~_`>3)YI$~4TTxtplpRfwG#~&OHMCVV@a<$_{6p~uT`*L zA^y=MI9`q?mUGY^|YH~l9XwlV)5%LFTonkw= zyU**!#CNYg?&~=2$Fth4Q|!jw!izm`C$Dgc3+gQF`r^9w&f6_~TVAX^yMFJwPV1)v z3%6?B`JC7yG{ex@CM_>c_4}M(*-_uPJ|z~t;}6T&_U6;2p0AUSy)rCQj+|zxx+L;? z&CAI*Ht{(sO#E?SRF<) z%K{CHJ6{CueYkkK=7YB%caf)ondOV4JA$?|SjGv>VR@nYeA>F)&%1?9XBP4;Nt~9h z`|hW`-l+xuUajuG)yQD*_QaHr(gC-0gzl`my63(=?3wQArP4T+Cd#Tl*q>_3p|HeZI=uae&%VtTUyau`PApiZfnEK@BEMZe7W+bWu=4V`dtg|n7RgL zl6yInB;S>o;Pb&pl5{|j1#mHz#{@M`;`U51Kt1Xl~)*%z?q%5TqwN}IEm z&aLMTX;0m_BUkxn+@rf+l0IdwblSr%8Fbg+Iorar@<7o^e_YS%`2~DT5jx5BUyNhY z9pT=JN!;{%)fU#`&A;4i+j$KuTTlYA{c$sf*GysEo-rTyaOr&HS>zRiibYvKK^ zcBRhjNFBCJ^%%{COKp9AR-K&SGqLzQTh6WS{VsBOE;l}&e74qXQ${Sw10 zY!_W!|6Jcac+(??wyj&d3YU3Iy)>7u;WW!4>c><>mu+I-&BctmTp-TNO=Id25abAPAthp<0>zWv^`i@VCsn47qs`tr-M zeyh^&XAUJH!39ga0$#M3%geZD22M9{?c`HppKWOvKil%-=HHjo5-WuglOyE%N>iUQyZgL+64H%hkD@P+Rx* zl=gw6lJ6P4oxKwR?DBWDoSK~U^}gEa`_E^;7w4;V(cH!KB`rHe)a}m7Hof`txKbba z{Qo|i=_L1_-*ba~|4uE`xO7clF)QjKgY472j?)-<>l^!T2WdTGs9T|0I^2Jk;I!Y}ZDq^2blp{#B@VU(M+|%(E!x@`b#q z4##CyXq=w+qjYY0%$w4pX14dLCsMu%24`MOyTh$1>ublfa(}MkJAJ>X!O6n2EO)LH zO*FQ7&$7Mi&%ZP8bxz2d4-v1Z-misPe>sa%+?@#I^o43dMdzrr<&0Tn>P+jW#hs6_kZXBFt zw%XLp{=@7ap;Ol}mGC~^_nhlyy?E#QAb}Li2uJ5Thmn&*mH&MNc!klp1qWIa8K*Lm-YL1nyrw2Q`5qv5j!DQ z#cQtp&wsz8^1p_yUJ|&vT3_9(|JKPzA9hM~?wx%*clNE!+TSZ5+*`gf>X@d^4ef28 z=QxJnFZHvY7IKQI@7|4e#xK4%jNiOGT>ggH;J>N)3DZS-yg926w)3=k{}yJQIBDCTjD0NJ+=Oy_VMZcqGJykuU)(R>zGm7q}?IE zZT}oHUq40cUxmYzt!sX_iQStXBU_VhSXy>}+oyH)>$aXv+x0ifWsc-A!H;e`Us+5n zaC+mrn`2+mPX_ZTc^^H6{vmRrE%@yukwkr3VpC5lQ zd6tRNf7j}k(@m1v?3Vho7Zgj)x-D6f%yM{b?RI5v%?Ux@w|bWG>{x0Nm45Hf;Z0KC z7JOvc#jJYs*@3w;LZ|O&(TY6y*U?tqXVWf&8xGHV%qNMdKEE*es%u16F5@{KQMVI! z&ZV8HKmTQ8!p=oswT`U0Hd7|(!hY-T?bFSL7K0)Ro}`vN!uk?x2uc;RTn$kY3pV4R-67e!> z$E|B+#;Fek7#_uSo!=aEv;9G3SK@`68s`p&Ja~I^O~>1Xl~;Qew4JWZk@Dd=dv$-1 z)x8rR)IX|th$!A(F7WP5>P+*{IqwB;pS7+sedBn%_C)ea>sfvG?-`!XtGO*&SuJ`~ z?cz(j_s;yaJo+)^N7Pc!UF{Jd}BE!}I2x{)P(1R1<$A%f^Mr=l$Gy>T=Q49TNoDtlu&l zUrBYmmGivz{=IC=Q|6Kysh?f8{Z0ORQ1akqr(F?Gqqgv{U*Wthkn&*HZ`J*cl8dY> zmlf1i32pe#T+HYx7j^N@gTrj8-vsR~ME=dT*|N;?$nA?ag%jr3sW8r|eQ(B@8L;o` zo;-I2D?9IyBl(gc%V+%iv{GiK-I1>?S|+ozVtSU{H#*uHBLC)1jo-1IJ;IWL!bji# z+tc}4dBTj3hc_r4bZ9z1xm4?ouF!0!E>X7?iHTFi6dTm;Nxc_SF%x-_=MgI6tTXrh zrOQ`3A8CDBUE^Pa$Z^Zb{ev%Io(vm?KpQ>}cp*KdpdD^8z={FSrpcEnUQgpS;Zuu%EwV zpm3>)-{ri_#`cEGb0#0?wC8>DN&E?;=AT-IJ3ox>Uuv(>6I%FXak*Z=od2^9{ho4i zN^$R%14>K^qR+V{vYq1X7X_^QV;NYaxi@9@JwbU}hF}*zBgZ{`najfKDmycmq}()_ zvpHg2+{_dep(Noo5m%Qas2%BEH|J`}+`ehWp}S6%dF~S2>Ux>=>dK2>5+~e#Zn@#c z*$0g$*SoU^&3=$1b9nh8#uM#x^?0^y{^RnDFX}*{wCjnNi&k)dH9mXgVg4k(D_R-7 zR?W35&6M?&gl$hW-mICEvy6MfqE8Oanb+>uoxSw`(w4PR`Z4d@Y_me2bbE<7u3xd* z?{@V>owsw0g(h`SZE)I#k70t)G(&yQ`n~9IhHuW;J>|R-L(mdE>H8HIllej@Ci;a@jBiF)S6KJzt>MS>rf*%?chcMAO5eV1*I&+hf5&ST zpY^V`Kj%Ee0?NX-G~}-m47tM}EtC_x-Kkmd!t*&dGG<=TJbXSlOH`cqokxVq&T~`6 z%GPiHVBpv~YnS+vi}j9^UI|V)lihws#dyM5l|ye@cK-GC&}3e*Ho1Xmv&wGo`PJo? zmo+ZjV~o9QzFeP2sI2DHNv1%KBY~muC(88{-COErRT#W*i4VTlH~9gB!`*k9hg*A! z_5JPQ%{X3f*m7s*_1K#&eybnfomNoj>%C@!?Z5xIvqKkIxFqwnmrXK#yj03o=hVl9 znE^JTHPe~npSGtzzR>W3*=pMLNo9MDCtlwE=0{MxZ~Y{+H9jm^1IdrnTRt*&Y)ttfow^)~IKYuR+3w=))=JEN-QG+_o) zdOgdVxq$(btY;+^9q~P%lEPoJu_5r}{yj6I^_Cyl%6xRqKfTNeg<;=KR6d2io$OQT zQfwPzPXXaFHo3nFPi&0r@y>I}-+?=)@_W};&&it7dB!9{9Nz`n8 zMdo}%@oDv;{eE*Euk?&-4dLWcP;c5O8+w0J)VUWc_dc4O^>6hh#!rPmTwZU>;=CIi zq$~R{;LIs0-;{>c5o&G=EAq1!@5+cyZ`YjtKvg!HH_G8$I`@*rQyi*KrQY^P0 zmsiR5y`EwJ$v2L}{OY@X+9^Mum7ch&`R%1b$~!aDThEhjSpGh|?}G#96%N*S3&nek z!n|hdEa5Hl;5-y8m%rn}%d=8~%Rb0oYjY`?!F;=G-G%wa94=FDZ*cSS@d*ARd9LJs z*~$v$8@n#8i95f`vgN<(xwZOyo0ds!^jLVLEkLb!eTG*2v9&v$OYQT;r|wec`M8AP z*;`k;o2r{j7S@?`=004%qPFf!*wpIELn>VgkM$+KywdK{)v*U zc}%B*o+aP9_VBK;kN;fZ0V8Qdq_pEY^ou@gQ|Gv{W@9MR!;74Eij%^RnK$)-(i zMk~Lq6mpn&f%}?(?*f_IyQfv1sL$G&c6g8e-A@-U3hWC_&$at?xKQSGLSy2ObqabX zByRg2Y{(1uk<*&I>+l@QscM=Mv8zmKcO*m#gfTWH^jzF6CRVflhTNGF!%DYxo6qgZ zvPqS$JE~Va-NLrA{N%l9SatY~l3Y#J@7E;}e~;%;BQFaCS8eeViw#t4Crn-@6p-s#Dt|9tV7cG9^`K_+OpOlnsP5ap z4GdGyMSh(r&2?dsY%^z^4)51hpDm?U?%16?>tnf;*n_=6`){w})aeSn>FpI&5xkkF7CM68;%<`#~e9+h2OTxNI&C)Tm+{gH-j1#xuXs;=%?Qaqc}kmC;@h%`tJ{?JXoXAF z&rtuOe#%YITq%0>^|o2d{pUR}Wv!Db|6&>{W4_kqzK-J2m3vo3HTKkeYEm%Zc|*t0arR z#>dBOZL4D3w}#D8IjAIL zRqnjevHri{x|8R*mwv(Smp~4&JA*p)=K&L^W(XNtAA}Rc&Yun ze(o;j0^iu{_YQpx*)OIu%QK-!rG4?HE9-pB>rVVS8fPP3xg~

%YX|TF1c2mG>j^ z4A$5vEb;ow>5#f^-ji(|k_k$iSG^QouH$~m@vgQ!TcgRI`7vsqx9nCoO^we#w5!HH zIq&?Dw9lc-+07OwTc54v$(o`UF*!$;YwJXHWs?~T9(dh-*cHFhoJ;%rT!xUS{LFY( z--vI#I!k{|Oj59!)!wV|<*{<^aqhw&9urL*>egl5c9?QzE>HBzf|r^MjmC35-*csG zdw6u~!vMvF>YIOGt;}xI343x_yh(HaGKFvRo|k>t5FlV27P0%!)QSqZPYbu7trA)G zzU%o(gTJ=V^@6W#cRJN-HBZWt!*F@W5mP1An^Q!^@0@fM?fuiWYU56&&GouR)HhG8 zH?HBjczVMYORj0A75oS08^5UVVEBJQ;IX;%Or}X*8>+AD6kI9P6uU1|=p^Tlmg5aV zb-R3SuuK24X!`RuD*DieDc`i%oY&6eoap5^-E*~yzo3hU_zbtkW?R3_nej`rCHWdx zi_hq6Q0@v{<~sFi>+!J3B8%h_qS>BKt*>&l*;TuuTeE(1>!sN{PhE+a?qu1pILm3` zBkl%8r-07_AJj8A(84+RvC&awXK$g+YzDl76<%A~n^dp!WqV#b<8dPB$lBHFI~J;$e7YgB#&6#b zl`CsD&1sqBKl{zomaGWw>4##JCq~S$-5(juE_Z?Zu8a_GfwUfg*Gn1iaVV*IWS5s5RZ!u|EzfL-`RwwM2526<&!VpnD@@+`-V%hIXgdJ zns%Hy=(N&myLH{38&|fh)Hkj+?05Q>wfVcCZPBaEbM|g}6RZBd@``I@>eSgCtIggx zo>i?lu2%8hy_%WF)Zndg>P&`te|$5gjFFJNaeqWcXUQ)!9U7Dv?*tFhPP2Ts? z=f|@784u51$ax@B|MlphAKW+P=I;HodNWr5_a?7mj=2(DsUZ&ylmEYZkd}Px$&To0 zMVhs(XJYJ1ji2l9-yYGHr<* z4=gK!UNSHQFD+)8xlri-JV_r}7LHX8TdHDyM=P!D`FH=WdtJ^ii5Qb$aZQmB&8No$ z(r>cNbz9N4;+bT}y~caH>b5f4AFP)M-qup6ZPXaIZo^#TncZ;*T8bDs41fI%&Wk*x zFX(p6x9-x7r#Y1pIu=Vdo@u&$cWz1jjZTfpwpW9#ry4$9lECn{LF1UuYPH?Usu3N| zK3C@bn=kxzt76i$oP9DaGqRV~u|Ird5F1*yvsi4B$=p}|0$c1#MSfY%VQNejQmMRP zuq7<_CC_I!Lu=R-s&myREQ(JCp1*rqvi8@>swlK9kNZ+FFB=-Ix2 z;{Cj<7sPm~`rfvM&o=vp=nKW~{#Lgv`Zm4(tt@JzeK3gS>@3zLN zX%?E>XBz{Z-h?*$sBU__>W*%E^wS#`l^iAI<}bNjVE)ME?PT?( zFVo~*^@@5b?4RvyU&C;DqqKp?xfdCSIo2Pap;~6rHgEe{o7)d(Jb!hxQ0i*7%i*?z z!P-*o-4g2s_bJYM6t?AM=&XRN%+ASG9`03p1@3Y3_|3WS;JshmOO;Pg-tNA#*Rtf^ zff#dU{c?G~J8hhHf;r~>#?^5e+a0x6T|BbWyI<&&m*__iGxM0$Ni?uiJ1W$K>J_N3Yy~%T_x3T-F7Bvz<_&|0JS$%_#+bwd7kIS!^%V z3f)EIS-K-FHazWkzcgw^_v^Ww&MWLIEbTpn>I^;{pE*G%B}uAi(kX!xm-t0LJgGm# zRL7*Ck2} z@fnI<;imp(mYEy>U%&dR=Co+%ygd#!1$#uBZb{BeonBklalWDY#;YH5?TZ8F@jFYT zES=TrlyA)X$KjN{LWbspr3xKVy@&nNrbzFMu#&U%^;Vksby3W$&FAuZgnnGwTeAOM z{+x{~>t}M-yvnAk9xC}YcgwbSS$^LOXZGt{l(_q2L&f&8{-?q(=GgxC{^=wA z_SB>eiFPG>RG6+TzR=INhn4B`^s}80Ozs@Jad-BibFZQ#t}S^P!Xr@KQ}o*fXGxON=T0 z?YSD0pRbIu;%3juV&oMqc^0$>Xtw$Ib7gQus4@7Z>}Xi?{0weraIK@Sb0{+b?gWfCl2bwXBIRZu_j z4|B2Eyrn99b4yrj|A{!yUwr93+x-_&CcSa*%WXd`vwpqq(7OWBlb>(7I2m2+&g)mQ z%VceOcItH3Di6Eptf~38Yl3&WghhPO*Lc5GIZZ4&h4Fr{<(kz-#>s4VlpfA()=^F6 z*vVsZZ4Fmu{@s=LohO}5;97gOy;wW@^&OEgPDOX+@}D0Rs`trV`rOpMrTe(?$>~e3 zxp8$_?21~par;7F34TGdYiC)u1O|3>p4j1KV*2*;{BIb12=x_5ih?gaZz|93^(7@2A=FS#GLi0k39 zSJ?}8`z}tp5cJ~k!7q1b_Xh7*?fS(x|K$och3Xf*;+MlWKE2{^w9C*^YvQd13R~0~ zZt199-LT7SUTo}V!=~M?wug;3@-Vtc|rC|Jr z|8u#0PQAKNHUHb!Z$IR;KL7CeePK_Th0(_3TUK$`R@+=V>%O-=^sCj^O;txfzT;i? zKKNETL-XRJX_LD2lV)7{;&n2+<;aWlm52VlfBW;ry;}vT;y+Bag3sMK_8=f+-EB6f zwJ+ZtZZi<6Ns=xS>y^GYQOv1qv&-hql4>SBPgB3A%J}^JcSG7IUGQuIhn4AY@$RNbm>T0*>zu88U(WoLP&ocJrE@#v7X6#G>cBmf%XfcSZ8oeD^N4146fwESk@h+6)-CWJl?ixL7?o`jBy)%#Z-w-tCSi*JVYt7?awVq?fp?-Bu zrGKqcl>QZp{{7zn;C@|X;`4Xs_e{_GzvI%D*!u6Q%_T0+yWHh9>%X3#{I|pM^>tRE ze~!P4UVCee=l)bZsb5R9r?dTe`fI^6ag}Y+t2ZS5arZquVftdVY_*$`rA_CI_b;lN zn7dldb#rmZ*_mB2N!^Y$>mKi#)V4z*FgEE}mrLwLm$caL7HKoL>mRkUQnKV==x8tKdHM&s}d!z7l%)7$$zmF@XvHI|YX-C&T zfAMr`!^7DA@^hXy(wT+UPM`Akb(2Prm(7N?ilNzYCSMP|JE)wTdcP`N+3IK8$IE;_ zXGGle+nAGNVe(vRHk5M;dbKL{8wfD{@96r@%ld}0{?C}#hAHD{Ly`I(b_R-D%kGFN?^={(( z9P)MB`*ljW?_?L;P1*j#&~f_=N2dLI<9@#Ge|Y)+U+ME7PMgk%UU5yV+PGdl851>A0S z{E$dYG?WQi8noY~RB!HzcWjTU-TLRvn?1k5p2YEB(W?C~H(iE1F-!Atq_rKD!Mec6rUmx?`T~%^rSLG_<%C5RUpCA2w zC(o-x_`G=HZ74@cI5j{-Ydt7%(hGC&Zz4A?E26*Ws%gg zmAsDWIch$8nD44|7Ir@<tarS|W z>-`JXz6uB47u?#zvFb?hbjT^3+b#|ZhQ$E3I47R+WcOyBZE^Nc6(7Z#iRhkNA`UGpA~ zXv@xB+CR;w?@qHaU}x@n`e2DtT=m0=IlOb;IY>k=asS}@dFiox)xo)HW@mks{x03o zy*TaJw+l9+EK_(~zN=4Ew6cEwr|HF$=od02nOlvj{{`-Q%(}`(p8MRUEhl67D)vD#b4(q;i&X0a! z{a2DpLla@-+hC57BKX`5*^?Rke zs)!{o&){CdQn*BoY;9ThZs7xv)P{cRPUf8Q=`nsupbyH*%ut(}ADeG0SPUYT-TIVABYijMEnO?bQ_2SRF7k=(tAE!2pvb2i`eOqhruwzTp z+xW+ddq14t-1K?YvWPRW(~J~(qusJuEcQ_N{0eu4^xv#hjX9NB7FK?`IqlP# zvdpueCYqmF!YAr~;L+y#6$-ozJ5t}o?*HFuIq9F2&dwdqs-m0KWn_ERcO8scy-etb z>?*yLu804yYd_2=e3m7$OU-1@PG8nNO`k14_FZP?DA~i4`qVgR#hpH_dp-|m{dDh6 z7U0%QOBXV^{KIB%ckJc~juSV^@7uw^{J>kbh;zmB%wjW1F<#!;n;eU_<*z=J_~e%6 zbAKb>oi|Tz*yMNeg!}5x@zUE3LN{l4F=$hd>x4WM zQQo~<`pL0bXyzQzOTCVVF-83 z@_o8fp8MtoecrD{a(E###rc!yNfd037dBb702amY?e3i&swl2W=`SRJ?3ofzFcqLwDKgo zZ+jQTz)^DbN{Qe)F4n1c_xkx=wdpOpa_pJuUH_v^rX{bpEbnBp6%pRJ;^6H${szAk z-&dK5m<6{gn}|(pxu#UYo?kjk=542DNWhkfJsG;`Z;KLNYOJ18_s1`8wi3(a{cJJP z&)2R!y7aep>CMM8*|U1J550G-?c-WKSMk;l`(N`cSMn_XbZ*1v^+5>D*MxtXs6k@V&HDcj`$$qY27ohKnaJd?IUi^>TjhC7$&?Gt1Sq z4ogi}mHCxdZojL4<$J~4DX0J5X1;sg{L+Q@7cSe+cFk5uoEp4gwcs7y+;zILEAAQP zpA?Q$6DlEeUISPmj`2gcT4x{T}|rkP&j$}e%NNS2XAaR&KYj!2>ia{ zUJ=`YO&uKv-Yu~V&(_m7oO#+I^?_$l{fz1bzjzaTdcHneeBphKUbMpH&7VJsyxEZM zsr*PJ%Jk)7gVO8EuDv$RD0DO}-&)(EOR512I+&Jz3hBveC1sq}{hNY|f9hJmbp*0_j?iB1~SR~!uwtfb$ z+mDRTCm{dlcNj8pKxxA|LdO=!@q?q;{cb`xo;;7q?N7uwoN{{_^9Ce zf-aLc7v{{=o!Y>5e|N~b1eWjy?oATi``aS_iSKrMG3VHJou*9LYc>U~jpq#gXJh7S3b0vA{uTvfS3~zlqw*5)$4ZF_A*20_r`j$EU39r#u zeqDntx@q=gWy3d{{KCcJ6h3Kd{hf0DGF_#_Ub?oh_z69FDU$u2iUTZsU7)Z%x_J zE}5=>+ihQ;%#4dZ{n$rAFP6c6LG*1Vr@L|0O{HQicK*#(_SvuG?e}PDN=B&JuzkvH z|HF5%CNMC=KIA{ECY$0+wmDgMo%qXU_L=TZ*VvPPRp;#tmm4nkGTB6wSx20p&$n}@~i5F?znR{zf>#@wx48?{x(a01(V}ejr`rR2Td}rIJ!RE{zGzpPVUA#5AQ#$xiK@rHT|MZ~gJ$AXr0g=hDEL+A<6u zZfT|D`xWPXt7vBZCMs##rpTzQerjurgF5@U(vrLVo{ST>vM0alu+MP*Hml0}N%Nn( z1!A_d*1osg7=HS7fWkb5rJRnrg{s<{vsQl7&tPfZ;(ng}$!vGdy(=ExzN0W9PG)us zQ^g#Qtl9Z(lTI!3{Z%uKxYdw#P27;Qg~Q9#_R%x6a>OQ(-M~vn*;`m%>K(oYimK zBNnN(o{VLm=3Du^V^`*vcL`#>>=`>4xqm<5u`izFzfEA-3X|-s^X%&LDmGip%(xq* zAIiL3=vq?_(=qdw<&$@stzJFPCjb5Xa|bF`YB83+ZRx!6XzQmnsXkv8?SFdFoJ;*R z`}p)&-)&0zJ%WP z(+1xXpI9oV>T5eZtXv&m8twhC*!H@{0pHy>obp)ow(dx)`Ma?qb93;)4aREubtyA% z*trHDyg1i!2~?ynmY!x*_@_5$dJ5~DlP{8+DhHlhpUA*ym)i%$xLp)=cgIBH5cxU36#Hmz%`T0$Sd^YRGxd+R@$k? zcPMvRa+oYy+j-k@zOC&AjkqTPtA%Qtc+~VQ0>UkHRqoatzxzXWMdH)1+qG?E;+=Kp zW%39vd!W6w^R?Kf|8@Gek8!OtUZC{U@Ms)&({A7Pqdexj_MDYf)$r?9%KoIW^{D40 z+nyO!Z+Z~=?0@P$*Y6DRi|X(3tgpLu;dpTU#?{;Z=RNQJ`7J8@-=js}ru7-h zKPw23+H^TI_xHxF=l9xf4_t9?zhTtmdClutD1mi)iToAutB{_sEZU;TvB z3MGs4FF23fQC_UdpwhA`w?=N$8=TQv|W;KAH9}(dPpzSX5ae> z-HW0>n|8~oU%7nQbn$bm7gbh$tJ=?pZVb=P?#=nX_|1>Z1rbuO`naca#5es-y1VJs zv$ZFeKCE|ofQ!7Q~*ZoL1cXk8+^~;Lw2ewG<;C;M!yR1ioer2xA#xobR zxB|jc7_v_IhAmtWexo}r$2>M=icS6%w|~Yh4fj)p&t9mRd3cY!-#XL#Mho?iUp;i#0nQVllbyAWOtjCKf9_1f<_4Cd%+>9-&K_klca+WBzpYoC`1Es0+0!@E-dxq| zzcc&Z^b4ou&A$o8m8z6|S+7{Av%&2c_v*!4i~n1=xyGM9_;-QpN0T*nRu?AjD=g7` zdHPJVzu=Nj>KV(T|1IAC^54^mzn5+9beeB)uZwd+s&v(%hr2_5oIQM8YF^Hn-;aHJ zKRs${Q*>9J{7N}Sz5M6)6V6qAv*xdAFuUMd>SZ+5{O;B4Wrr?5_|OvVKlkPTi>&`* zomcV2O_o+P+EvD?|IW{<{av(L*zUc%BZ}{rL?~A~etOU1IsKeM`}L@j=S$4J+kZzl zAD(m7y`*CQ*Pk8|&t`1=zvM@|TxifKXT8KjG9vqK>FpPM8@k;1|Lj-h{ri4;9Qhag zIe)P*^OFsmn{(fW8m*e2@c7DWo-T_^|DTn67f;VQ=-=_Sa=!%U&tGp=cqYA2?!VJ< z#A8B5hsg?$#+Ib1%13pd`=2ifyP+|H5TJnmd$z{{#B86p3t-ObY0mSwY%_3%9;W3T=z3KQuL)DOFkO#^3Do_YCI91lbA1?>Z@c>O2Qu z)xy+>KAp7m-Kx_Mt?uh^5~_Y*{9$iY?4;BbbND{bqIg#D%z_t#ptc-@%N!N}>vCb+zYw4x4ap#0i&w9(Loqczfr=_QCIjE+} zyLkIq)%p6LzqfF1KB$_?XAagnb}v1FR1Zr@Tko7qj__u@_7^Y;-+L_f=Z# z#OKUg6BDAc_}?wa3sX9_aLVDp=&83PW~p@io^n-Q^@sViJIhY3tzPb_w$aErY>RBp zg+{mjqM00ZeOj+$o|;^6x>GJ;xZ;IsoyDrRt5a0WKPJ0yl)cv~TeoU$?@O*Vu4WT6 z?$ph(*&oLb;l(r4y>hqlN<2K|WU^>c z>xR1aD@RnObjM67ec`llyHZaC>+h|dH!Aoy-6(u_;_%*V0p3IRq!RuyAOCn_jUZox zkj&oC&u@NsJl}A}PKG(Hx$9&LO8zFc*6Eq=)3UWXtr;Do*E`LtS8r0Db#8W1^}GA` z-2cryrSbIAwmJ8im$`qdoHVED*6v!rNyTh|y3x_bO9P(wY__?PUTIaB70B`2>6eAx z)XL1VCZ(_OYi$3r=W3hicduZaDJOZ|`dCbtrH##gkIL#lHusEf>YkLl7ri$r^tjxa zPkk?i{H2byF5cMl@nE^A(W1=QWm8XCKQ>gPeDC{zaf#P~yP3{gdv69!T5;NkE#bD% z3&UPcUES#mHws68&n%2NDJ^5i{AUaEH2wRNmh3x{`0Tumt?*|3gi}Wr?EWdvZB&|Y z<@ZTn#%e{sga-n;ZF?WvN5;8tzTRzI)10Q`Gc{(`-ha1cKYG+1Imom2zl4`}yhiMu zvmD1`8Sh&#=U>fc>GP7)8>B1v8PzLW_9P!>Syt$mQ06P;<2x(n;2MQaqv>lt8}WF5 zI&W}Qb)M2}*VYGV*lOuH?jT~j}a^H zy(1Hfe%_!!-w=-PE=NBr+RAK%tV-j_N) zda+eQ(2CA6dU{-u9Tn zeeZTbz|qom=X1r*JnMWEdQbdN#5M!_uh&%V-`CZ?-tn0Ee0lb*x>FllG9>aRtv)fs z#xM4Ff+Vxp!6PO!?zoNcbn6hid;Ifx+`k)C5`I4W6_E79Z{zbKk;BIYCcW;P zc1@weer>pFqukpjjp*$Hsbwu!IJesf$;f9o_-_rJ_C3Mj_{r?`XFm$AU80z#5$--! zcZtTMsbNc6u0)3`#k@6Q+7vMJKkJT!i?^$1Rhq-;y78_I+f9>$bEPU1tRME;oIUxGK~n>wd6z zvWS9x>&e-RD=p;LcV$G?bQ#C-#D(l+b%piDG`_?%}mmh3<%gZlF_m?!uR`RuX3fnxi58bC7YBT*&-@~mzKFJSS zC9Gwi-Sd`N91`-NdM@+)`&ZjNoQxL-EqxafW!v!W$y2`eZuT>)m{;cCu(S5^xNBCW zTvTscK9j$7uk9zf+FHHG^Rmtf<};sO^;GUe>oHy>C50(TLPFm+TdQt(w6$!@{?E%x zFSt!O_Tj{ivo0mE#DlDO?bmunnG zzXCV1T-y(VHM=JH+um6! za^#lGbnCTidYEIZqoP{2w+sGorYi4ss_&ByjHvO!t_dZuMM{f%3WGT?N%PW9x$6} zR`J6f<#MHaOV4@!sqL6mEId_a(VxbH{%$4pE0YZt%C6Q~Vs$)T+{eL1^7Jb+AKC2I zOKZ38KVRYS_iMfSGyweJ!Rqbf49iKUZ2%_ZaK&KlU%GeFQ3;{#NRqtr!r~UtImvN zwtSX4y-l8r6K0pkY`8orRyt3Z{j<{#KYuy3ziu2sdzammx_o8&gn}a1v})Um+rM74 zERo~pF^!&Z+CBehQEY+2_4%LWKdjZaN@wc)dwuEMh)Ev%A3xnX`J@GF%G2eGzi;fW z?O%QJ!iJbesrg&)Z`jr+#yo>#;lb`jh`d`!%!UbYVi^I(Z#YRzQC!5(9 zb`*8EL@RLeO;)o#|Nr22bw08ZyCkRB`FgxxVWtU@s)kT;f=cj zBo0f=Gf?B;Q_!1WTzSS@?#6Wa6<3z${N!iQEmKh8_@@*d6ma-)>oe_ReM^!wIr${y zjx^b9ckN1lyxHIBsgtw&^pAgPYc_ag@7^nC_|K7yrzTs`|HY$42w_ySg?_|2=QY4r%#g`4f5tRxXNA5B14@q4(s6bbz*> z+KIZgw+>#mjcy4K*R`Ir(?Y26d#AD0dp`~z3!}S|sffz1dT-e8U;WSG`?EPAFI3rGzW#sFe5_n$k4q&Z02}(m AhX4Qo literal 114878 zcma!M|60zp{BYB0f%+3>YyoXwpY8EY4A*%4jb(0f^l2N-5{u2dV()J3diXt0nDN-W z5Y@9g#22hur6xBy`Op22+k2TpLf<<#Wj)eNRmr zs=t2I|-_Et@G+?;sAXbH3G zTo1$I#cIKuMR}v-VvYR^&v;w!VV5c@;F~nl|Bd#+vTjR-{hp%DLO~gu zK3tbB%l~=k^V&_8xtwN3CP!;5c3p`6-8frVnp^&S!^PU9=6)@2h2wc`&X1q$zWHpG zIak>&V{Q2zcP5BmP0k2f;pb6a@#K*9lnqX&`Z%ASbm}Vm?xpnH#d7}4hxI>Mq;&rt z-BTzo!`t-BKV0Kv>s68R7xJQcOvmm2TRi0EocScX%zWoP=7^r??fSEcF| zcDK)&{zcb!g?r6W|3C5Dw#40Ek%q230l9!g-#VHU#VGt%7nZ3v~z6s`%k$)YyS%E*V=#WLYu8$W!0SKlX{jX z3xlRy-)3O>#BFt6&!NK~YUjUyZ9Pj%r#q3En<4Xm`DX!1AERnxuBp3Hg9YzDzvLQt zjy=Ql+CR^m%y(YynZHC+R?9WR-!P*@s=kOZ`evHx*ZqsWOf5UV(^|~06*6F37J># zd9v+1URc}_drR$&%k>%aCbi@-&Rl+f_1FJjtC#$qwDI+ww9|fRY^$pi)%_kYXJ0eE z^vtH^fX2k5X}vc?eKy{B)hD>2Wb!9_o%YR}&j>oXb+3OGJ#SsKJP)st+>47p-@3O4 zD<;4H%f^{2{CXnKB)RXCzy1ID+gJP6`gPkGAHUh@zUcT{^`t4*ANS;Nt$ZPQBkzrL z=l}iYTeE)GGbk)Mvqo>CQLfDG-E*B8mfU!IxupN==}4n>mD4}QsvPbTWL&`6@PLEi zr1FK-Nt1ru`z`KF=j*n|?=LAUf3JIVqOjcK%dH1zPT9LNC#sxBPSW%D!t(Bk z87(dzt-%NWe=c5aU7aCvntN&E|JV?xpp{QnEqxTeIqs!T|C88P{1f?K89h)t^Qvy| z+qo|#Lr)%O?SG^>PwVZkNl#uoG-@;~YWcfCVEz7uPrs`;`dWNvxN2g&n>?36)If6aP>&=`O81f1x(vEg+Y;5_|xr(Yd7-ctKXhk zso286D457vt-teYzNiKN(;xAd&DQ#pniRl5E2?)OK2tvdAWj%8-Ji_0XH zZs?bM(?xOEX$N-q>w^<+@s*@cP{k4%NzK{%}m(Gk*bpvXEd`7%kz5D zpm%nUd`oOSa^HXMjZydKEIw?f*7E#FW>Jv96~8sR=VttPAaU4f;rc@ug?;*Cy!R(^NrdPhI3WGy zTiJ`nF1u_Jrdq5vSf@SVuwBg4+U@+=(q~qvvm~q5h&ta|z}tTN_2efXEdKl|%Q$y% z|4F-zk9zjr5bRdtTsr^76Fxi3*aRDm|14^AzN)`<%$?KxJeGg{?2=&KyWRyEnR6wt zy-AceEL@{-aQhQq=Wm>nZHG_13aa^~oczPWGV8;Peb;X$Mc?oWFZjK&-F0O{XkEzG z@Yx$0i!SBQ_P=M+$+YEwF7tFrkxZ6(iW~0KXs(s0J-D9jS=}?aDN*-)r2`TQ3zzau zzqY|sDlU1!)MbITY;3D;F5)h7TUz~Xgz-SP)!lc(NO>3_w(N&j+5l7R=` zl#JVpU-~uI#9Vu$aXOD*M9g(1bF#{>bBr2KLu^}*o)9pViz?6i%ddTcYfZx384)I{ z%j=Yi5AKUMW_j}Z)8Dd~k9V)$5tVV#oqGFv`?kw(SXV8)A$ZN^f<7C2)Z?ed$?JQ& zd`pUJX1P3CIXTO)YnxjBLH&PEQ_Ho@TBD_9D$1t{uV38#CVR52YW4b(qPW<2l_|EW zzt^79%QAe+@Kd$%P2**~Ut#kMBKG`T%QCxc;@`59^QP_XezV>2+q+HHP1j6)*yJTz zr_XQ+QG6bMd;hy=miU%8@1reOwtvd`tQhCW$vgXG{YK^197pvYrTtd}3U%i`kxe|?;QpTW!AuXb~T%-tQ9>^@+hzj6Pi4I6*{@wJHcepUWnO>+Co_s{c}U4Q=m z^3Qwb+Pn9!ub-aw_wMp*@%8qmRX=YYci;c-*!~*M_v`{>J9`-=~ha-<<4`+MyT4c7MAM>zt@O zHPhHaX6?t}KCe%!S6FX(&Af8Mq&X8yw%kxVefDOYIg9?A1$lR}#T;iJei_L6s%p+5 zp8c1~r%7zio3P;Oi9c(E9W__n_|za7vqkmJ_HD|WCC|U{=u`~bU?Schm+t$ZM*h!w zPmM+PPTy>I3tSE4GwO3QbK7w5sF{BHdH-)06ZTbb_=j{c_y+JdygA}|V}9ek16dz; zHNMQ`*{{a_{LZ>Xn|r#>bFlAUzkI_{B_wZF{f&E>0keqmvNmq^Zso6g1FgJuK&5c zwYfrU?F^SBRn7a)XL+1Fy<6g&sM!<$d7AaQS2KTvTF&_T(}mNK=S-#X|8wVyUdz6G zP^Ix_(|%jEXM5-E-|^Spi6M{O-)O=2535qX_g8&Zu(f?~Yi3pA&8_F&XwKksd%b7D z@zcllPW-Tx>DoSx_~Yt#th@_;ObBlgQB&D=Bhs$z zdO%NH{7=_UhYxASFZ(*}_-3PzQ~vGSRu<}Dmlb~9Sn%qht>*W%)Q+cT#I~Mhh?$qt z-sQCPITyqH6PpEAmjtbNc2ZaSM4p2czgYad9LvSqeFb`Q!3N9l_6^Y`#sn6e?U6ng6|X;&xACv5j9M zHs)QN+xB7eJ!a0+clJ9vD6DWXkT~}8)647X(~}&u!#fPN<}P-Y{$&u5^m204ZqCr# zuObZ2dL$auI7K81cDSjAUzli^ARi?r+dcpDmuq_#91H+54K=%1p;I&7|UO{=UwQUc07Fk2)2x@c{=l8c-Ox>HSzmu?XABy8hwb9v0+%i znPAUTmeO?J?VRozHaq4Sp=s;v=GG>L&$G|ApV<57s3qI%0JT#+Vcg|QC-KHqm`_d9 z6aH=-XZp`t>*fiESrNYqGf&2RojHHP4C$T50e%IcJF~mWzPkn;d>n83&)C1Uq{qzA zN>pK!ket4%-S&WmcUs$Y3aagLejNDStnnV3aU1zE6RV^ki#v&(&lipXaA(e;hBDLp$ikib=574Pym+wN!Hy5(t63&*RlceyFv6CbKR|0Cm&dDqGKxW_|+5E_m8<1jws(JizU75y#+=X3&#~5Dx>4#P+r5L~MTnQHg;LRe#@=~TJDsZ5 zs=jSFSNmVacD=jYvx@Uaj80{j^>3UPG2_>}#VK-oDABVfmzRX6VXI*ae;c(S3c_+NJP^L%BI5BIKIt2sWGS?MbGj?`m|*U#Iu;k0JB zi+t0Tg*H|pQ@ZR*nf7WPHS{SCSr!ueNB4A@;u`h>hsABHOVr-1%Fk-w7J1%wwXw_U ze!Izav76P6jjmRm<$-k`BQS@cq%Uce@Tb8`mGJ5P#znRCa*hevvb=v73sy6@8wRN`0M%3VVjhB-z4Lwp@nSs{BB!C1s-54jozRZDXkzM zu_ceg@8N=$0|}Difqa+M)eX8A-C6nl`Epi|j(e-r#hlyB@8vGa>Up!jXX2x)AJ3gI zUC5vBeUSO#{KDyX)f(^oPT2c5{_~3BuK}CGo6Y9$kY93q_UQ{NjY60FHh#%^Db}Hj z?ILT`h4DJ?9fy?$D%22s1`gkV)f7G0x4F%d$ZOY zT68ORb#}0da`dvVym=Fs&B?dj_~7xypWl2}9AtQ~DU&X)1u+5n>%ZA&>!1tibr|!o)@4J^eZ4=m?>OF%| zR`84Yo%toc{An**azqUlHeWS9c)_-dr^I@Td33UnrWb ztvI)EN8Rbu?44-=|Ngd07FhT!D_{;Wmb6#9!Mkq4q1C-E8}#qKcJklt_q}Msj7Qnh z!84jlKTOCnZ3%lE+I5S|jN|?^oyOWp{?cvXYb&`=%(R*{vF{|`bK_!F+d~H<4!_*~ zjNj?<{)zKs%t09Ju$Q^X~BoE>G@5LQfAEu6vUie!c8ZvDMbv z=5IOM)1NJnxw}-X&n#zs+BwO{J9;P7wg{|yZ`M&08Ps<9c28&ieTkq6lA?+`LZ>No zK6O~4;O6jFM9cQKtJ#|GF&~+>jb#dJ+PkKW z2hx`%C`wy7Z})nnF}ZN%pVWz3ex*829vjZte39`@V4d0Rqhfz+t<}L`lYJRo@?Y&X zO%dXn{QQyruJUmGH}P#VSek8bTH0wX`(i5OckKHbgSH9P^`5mdmGXa+pUmZde*3fi z?i;lqcYK~-_&2@XY02fAHWxNcJ`~ule>UgurgkOJTKkbT>89p&TciUHwJ&hI~*3b%u4M0Qq$p+EAaU4T=%>! zGqsK>`~K6Jy!lT2rBacJr&+$crbx`0di(0x{&{J0+*^N$747)heZIuu>jsvGIWyGe zoZ5Y7mjCBnp7Pf>C~HmFq&es3;l~WibnMU8`2L;#Yijo~lh@Ph-rttL_<8!FZN8}{ zds(-i-(0mXMwM*`XV&B$zAj2jE_QS54H4zqUwfSGdvQ;F1Ds`D|^Jmp>@w_to@wSYAMqAISHnsi@`<}C` zU{B(Xy8DtDX?~N9%{11eeU>j0xA|Y?@iSlo>z6~^;qzwLE~(Kt;rjI9=d9jEW#120 ze>Xd~^_ANGiTk2{9x~IAE&N`3cd`z*ukjR}%=p?1Rt$aD_V5OkSu$P;(7ihE#Us_t zFK1L=eUQ7rzTaTKV4&%a_JCFkTX748bBXIiT$NNzgZuVRxVd7E#7+yQhilWXISU_ZzW-y=oJV(F zD{bT7_aij+sMb5T*Yhmywp^Ry^5whXiDZv0ERVbPw}?pvW*p2gRGrCi)LbAqj$w0O z!m0ae2hu+0{CjmxPXFxt)zMlZ^Hsu`#Qw%k`fHWOnu5&! zOHn)@Dl|_$}COgU9+tb_doRM(RZ+GXl+V%%48!gQALVZIW((M9*3Tm%K z7=)hl6fk0#)xGM*v)L2YAB=fq$Xpw;xUHD+*Vlb68hgz{^rq{4=kobfXz{wCa6|99 zi7mPAZJ)%<6C19|*IwnC`cC$D*NdmReb4rtOV81(D(A8-kB~m_b5C5z-@VC48DG4V z3=aHh$h=`eVAR2_b0U^_e*gScQY0o)gTX55xI^@c4oe@u$!ER1)qQ={iq6l=dT(hU z)KI|n=yz&ONmj-7@&&wmr!lW&yi$Cy?5t{g)D7o3j7yih23(kSV|B{x4fe0R@;9I0 zWSMf5`N_G*Oo>T~`Abho3#uws}wId-))bb>ZU=JI{!{^N`bj z{xnARwmDY}m?jr;XEYUOqFmDNH@-QG>6YJR6I(`=Vo}!W^kyMjt|& zc%<@7+86SRv9D*0FkRgA^_Dir>DT33?eha#Q)m4WQ-{9J z*8^ht7@!7Ig4ezHnoP5rH#Wq#*RexFJ{f>uK!XJ+W zew<=Dcjj9vfQFeWw~jw>)s_)@^Rl`-Dw*3m-~FC)WM}WJ~UN!t(9-IYl$RF5U*QncPb|cfJVI*~Zx}bWBL}+wLVy z5=-pwAGNza?U=TBJny3YMwUk-53}`}#pg76%-$ckGcoZ0_K8=;Bm3oje^xXcS^aqL zU#YGa;;bsX3#86Bos~HD%wpQaXwTj9j&2vF&j);JdX#jrVaNM(&-KpAB|Mw` zcY<8Py+4)GixMwSN)(kiqs406bjVe2vcSrjORau-hf3X6`XiZNH=%Qj%#wE@^HWq$ zu{R!3V*eGO%@TEe?vaMw5>2N~niT^tMtRP=bVSzZNwK-B|0LDe2MLDTwjUO7HDz2U zHT%}Ho1Si$i;KP$)ohrUt>foB^Y;sC}6u35JGz@(F`N_A&@)_gY37uplH zz4}L&%AWUc?EA7gK<#K!?PRGAF`dIf>-_OMp^fxU1 z&SYNOHdAyXOU(QJOobE5X%bv#efn-5S?b-ed^zvY4~ow>)E{Nqm=nTNs1-Cd{&mPx zq28u>oHolc1sHZe>227tsdb)5&}5U%3eJq5z9*FF?Vj^kC^Ku7(Za(^9&M9a+mJc& zB{$dJ2V2DF{BkO&Q_R>KKQrs%-N@B7Uh{8cTF%q)XnYha`rBi|$&P8E*@mfg4OI(5 zW_T^RC(4|3XW{NAa~lu)CO??D?2f>LzpvVitrqdGQ@z=JE=py#(S-GRbNFs-Xs%xq zc9MhX`t~ck0)5P$@0z*Ap65_^@MW*=iP0{iO`k$Twq3v1EGYfO@%62+_UpoXUovHc zEbZQ-TzV^LvEG5Z?rNDmrJEbNc~yO${#ibMspf>hvu9Z5=FL@GBCY%_XlG-2gje4o z=9&VxpQ~e2LwTYrEhX2MCn>sCtO(rO5;|99!sRLN4a1(srs%sIeX^)y*`W=uclj1> zT0fI_8^?=>5A@DW=)Ra>zo&YuOs`0z_Ilfa588(0(ML^@*jZH_K*na!P7WcEJdnc}Q}l|I6} zf4^+Wy56>9nV?{zhsMvQt+%UF?tJhr>QyQ8kBfabNvvVVCKdO*m+wCo2;}m%dih-M z-^(o(;Nd6Ud~oaTo7U%fBwsAPXuo`S!`F`;kF8!9rTk|~HF>st{lDvET{nx! zfANV?F(do6+bu(@*$Y?6Ffw!Io2-6tD`U3)8Hv=!9UkRY2L&6ngJx`1yLaf<-?jH! z_I_ZTd)g|l{?PL&9^BJ|Uosm_Ti<1n8aMw%#+g;ymVOc3^l9O??(CL>n@pz5iJy&G zvV&`vdj?Mkzn9TEA+=?t3&Izg+Y2{$shGq~mNgcuR7~l8rusihh?DJ_rHZDWS5Az? zJyofneGge~b}2c3ZLeoASoZZc<0^?m4Kj0PQ@PUwOxg@mVvAO0{~(H6EUWZ$dvOES(Zyyp9V+QUu;m%bzH`tLYz^zMk`2-ojz z`r^A-d7Fjg?=*FFw-vcn_wM{-y!?Cbhtn?@D@vubJubiEGV8D@C`f$jwePd(vpXq` z)5@NYRax26rr{hXi`ctf&+>eF?_HSDIsBwDz{-Eh^~(nZuD@aoxP07O^ol;?q=UbM zLbc7W-^r?E(1xk08rlCJvM;=PY)SBk z-Pr{tbrZLEcXyXxekUnY!m+;Z!gq%m7p#u7uuQMH`0>KZAKYn2SM#GIeAs%f=4H~mk3$h{8Rrt#BRTrrqm}! zYc1Cuvu9^(9my5yNO<~C?0VM6GLdiT%K3YaEeW&Cc1MN~RT=~8_ zpK3}}K0E!7IJhP!%k0gvJ3$&R%48>UIc_(MjNw|98QM1?h*dPdPK&iPs`v5NJy$su zFHS0JJjw8b*QPc*gE4QhZI2A|<-n|rE!$T7yy(1BYwipFIdk5%#uuvAPmELQIno;C za!P82LVv!7$AS4ym8v|E5@%Bl-*fH%qTy&L;NjuNxs>z5(xg51ZHqMbny%Sr9QS1U z%^7DEk9jbf%G^zGyu9R(Iyb|?oGqI_yb8MA9cdf0VW-xtOuJ5|(3H!zM>-d*kY&FU z@OG!y@s+=&TK3N|663nC?}%O48S%M|;-@9qb~x>o`}@oP`q3#rpjnd~R|TIcHRq2pyu9VLoYaNM zvNl|~evk)PYQGS1gv)_>}i@;!R_it8$q1m4V@)Kc`KRbc~%!Cfgw?O3sE?s_aI zp2wF>o2hsD_pGB!)o12+?0I`GR&L@#r<2d?ie{^aB)ty$AU!LIAXU~;0PjgNk7M3Y5dVTY4#NN~+QU{jUyWQgcI8Xibebuwl=bE|&<2M;c zo;@<#C7^E6@`Vh?Q#YKNx^Pl_(NWE?>hxKu#YtNwk00`WV*ID8)uUXX*eGd@&6*6? z-Dh?$2?}>#8+<7CQ0uK9_Tq)=nduB!6FD=|4yLd1yO1xhBl>q{$&TH5DTy2}P4C?C z`21UamGcM9yWeLqMc1!MxV$^!Me=(j4V#+?l#|98CUpk)z?@A0_otsRJvbN-MiA#a<6sFJS%jH}_SY zotf}5l_>NZ}>5gvUzEzaE z!oqU3{hMiL1P&F|E?4HLsC$2HQI>mVs%@LlwYt*0isxQNPbM+xT(Ni*@m%ndSca>= zrtX@f(-!OfvztFV*n>6M`@e?RGFv?Z-P0^Pitd+vd~{~Ywhbqfy-!YHODa(O=^OX( z`6`7^yV71H83`W^Kc91$B|lzR%wN`ZgL;YJHxbQjoN=r!FU`GTv;Jd0i6>>2%euHB9^7>-u^^)xM7acYA2M82m>-+1P- z_di+s$Yz@Vmp;)Bwsq?Fy?g}^>Upf1`AkQ_)%ut6(YGh+gua)3OaGW`d`@~}PEn`Y z+C}AVE;}uLe-!!iKljC9w#?-gM`RRMC#IX-6s(`_Hs|bnZ%c1$KJzJlyZ)_MQc`*6 zl1{_qO&(t^_^$oZa_)3se7mWPVUWwwEZ_ z9ZwPFep0O|cav32>wb^t3%}>R;yf#tiKm@E7VrLjOGz99`?7aG?foz5s>r=`ljFCz zzI6H9n?GK!n5QRtnrVl9-gTurA3i>fIx;0E&taZz!lTp~+?yXS2>ov{LvU~RmvtPs z3YWWGFwO5@Z?bJ}pL$h+R`2l}3m1A6$2K3o^m=OH#Dd1o?&T3%;wNh@N?mWYr&2|` z;;W_9+m%txfr<}3Wm%^cJwNkET4^ooxy51gE+sqWm6p#x6uv|HZNI{fHQWmEzgDbL5nZ z-&oIPd%(0uioNizpiZG&0#}vCqD;vP8XG&dHGe$1V8MZXK}?=ar2$tGHs36(bG}r1 z*jd~@gH!FYVq7)z*OLCV?h|&ZY`bLgBYI{ot6_2bjgSiA>1N-#ovw%MR}y}E*7b?5 zK>ZYxt7jq~|G2?&aS7*A2IoJMwY860xz93QbHVGXWYwm$HQV;7E%Ii3KUZ32{k6Dt zhZj`;nVR^p<6=JFs>>Jt{AO;`UaK2<)XzYDqosE2zd7swxHG%*P5-kZV=J5O&Vm=h zU0a@CF*h^6(pEaDf6+Ec*!5n|#ZmH0ar-43xl|f~lSvEW0 zof3O3G4rxBTcYUA(8`T&Pj0vb=T!>@drHh^*v+}eZe8JHX{N(rF9l|w(AiZcSIYm? z^RxWCs$f0okB_y^TzA>LONsS%XWUb!S(n-kwE6>O-}KdLcN9!_{VSRyJ-M6lfZ4Vy zlglnmmRxoH&z^4k3jyorF4UWUi&<`OT4mgoS95v_EuULuWc(Bl^mY0X;qQF%Y>mw0 zqH~3-D!%S~Hi@;-PMdT72{waG+jO%}Gkv%TJ9n2a zj@{kHXxx?^Z2fzSO1jU?XNnu;uL$#c=Q6hM+t!;V%j)04$GVuWpZUnYi1^99H?Kx8 z7tc(d-16*Wx?kpu@&%una&O9=N*5NiVPD(MfB9aKs9=}7H`kfo{A=g3_)f7Jf0#6B zlG5yuH!W>~9h!5JUM~8c+i32oSSs20lUG8yaaBkE@qR0t4fzZ`0hbCR+iw5g+@;{4 zH+#w~!_us7KC|M3$2#%-M~}Y^|QLFD^m(H z9~Y}%W_JGQ^)NL0Uh;$1Wi`7)uJ|i`w>X=4vtqflNqq?Cp4GcbZ{AtIbRW+L;n^xX zAL)2iJ34PzIc>qNy)tLF_no%xc_(Jya-c16bCcA`gN7>$cFsD%mK9<9?Qj*xvO=v@ zA(K8WnQfB9I{Vn;jO%x}c2CV^e5f?buYWtQ99^8NOl$d4Zr|;E| zC;zDnFfnf_xtFo?XXu(kT&ExH@`$`2g|(0 z9@Q;jCpY!Q#jYq4%B*<6kzli2us{SL>BfO7U%{OS7&)?@6w)eAnC&R^nLs3uL zFDoo@ba@pTeO2JlvODT0!#h6xSpOkpYYON0S1xN-ubW$HZFYF)`nKMAyKk60alCvg z^DbYOt!(QS=e!hK=_}vPbgw(GqT*q(N6IT6E6(zX<}A-#f_E%y%d~N^o9Ndfe0BH4 zrld7&t51muRYps>e$|#~X~D`GpJx#aAt?cuHOld zjI0?Z^k7b$_*YTr?B&DE3$MkUt_tbN)e$*uUYossi&R~2illDnIn~p>;f?N- zdmlw6YiT9vtoTpd#%8Ci+-nf6Bz_(U-&5RE(?}VrSSzb_-+F4cvx0gtw9JyoN7BD3#FvBB?3 zkD{842{t=B9?iWJb7bfG#VX7<&n)$@bnst&R_s&v?C<7H_ZnTd9yxD(PxI=^qoLk& zUWC?dT{QVRm!(|@^HrP3$75cN#!*V>(h&hz{ur@Mr-I38s<^qyINrk1$-6&KF0>`!hgl*g{_ zZq8lV&zI7+o&R8*3NFeG;7ZZ*`7d;S zscxE8Uu?K6#^W=$R;!85&eEm*zS(Rvh~fn|C6HA z&qjMLweSCZ?%9sR4Jxfjn4Jsq~6D;|2= zy$#Y?dOKPBFnGt5m7Hy8g)ixaHrNwqWcRNvD|3p ziNDs%1Y;xq?zmLWb7_XqrQMq@nLf_Uin{yTDylI_BeM0A^7aUY+iPxo>(1|u;mu>M znHE_!Z{z&c*DZw>9N<2tLFXFH-@o5)(0r6{{mt_D%EIZF(<9>w zM7a6QcTZDT3~s@1?XF+MkN> z)PC~5{X<@B{WhmQo^F<%X%G8$Oj>ezX4UJuhg+Pt8gH1Ht$6$R@r@svw$y4H7OpQ& z*4xLEVR&9c`g?)k;ct~&6^@HvjA|;+oATDuxxbhVZl^Z8vr`|kNM!@Ku=zQN0BM{b<_Y`s6xt?k_MjTKf`Ubz?F zc(e3-$L+REqo(I2-%95GKhpG3F*>}$Q`%TES@H&prj(?CO1_!w)P2RtpQn0;>))-i zeYWS=n>1~ww9~gYa`IZ)UAK;M{h>T?B}aW)x zGPCl88KzAaUFB1DRMBje{52ux{v-R2*obcZ*rV7U8e&u-x;kyIu&UZV8U3`i>WZ`U zo!?uquf4e9%fp`!d8}LZ=^QulubQj;=lq_sofhBHGDG6K*5BUyIBfo#`mLP~-`=?i z1uV_pDH8g$=zLxI@9qYhGVk1DDsA&3V;0`1UvMi$<(a9DZJ!pqN8`2)OY8cT%q_&q zb7}>aelw6zD}8>bT~=?}ZWj&5HO(pujyuo4leCU=W$v2^?|C`JI91iIYER}p_99!h z{9jZjibZu;(&V3e>GqWd8JqCz^z*wMT^F zeP+`Hy0qe@ddn`Za8iHW?R`f6M24|nzR21fOWA$zwjaFze9x`fliTi?Yz_MTtK_YV zYsL9T?*c0_?;m1Wo^|V6#~bCgfCjyPjJAg*=CiVYkhq=0_H$iTp}x|US!U@Ad>OUZ zn0^1rSt++iYT>R!FK&eME{K@5msxLx>6QJ>N$0(5em!g1_fo9d;@79ww@a_zWG=hE z|H}I#dHKgD=l_y>vU%UP?o#W!x?w8$`{r-GZ)*Kdq#@8*;qaC9W1^>Q;Te^(jC@cEj3A7oqxl7nboqXV%WubrP}n z&l7cWTOZeF`H@vMUe4OOFzkze!rGwveKSQSNN(ErFnP|}JMTJ!@{%`B)>*rWHS0i_ z-z`?z+Pj|9{S9A8oagv-WyR4tsmUF`Ycw)Wa0?Xr99Dd?{=uuFnvfIeG7k4{ty&zX z@O)ZVM{RRXgQWeBfHPiF67dHNdCkHuTd4>2Zq877Kjrn-4X%Z}vt74oWv1=BF^6r_ z=8dmcYQ$gBd3QZ;dmNwp%VU2zj~SQ*imbfWx0?B++k0R8r|&wuw6k+He=aCrE4B8? zrnY#VmX}ToWE+AfPvV{aJbLf@)3INj1Ux56vDrS|aq;Qoy|?yrFdC`#Ec>=;L&9WR)jF)J%-riaWg zqlu4t*Kp6)kephV_lmd z>w7DD+MY~kIa2IcF8SB{l86@L?AakabGY1GQe-|~oE|0~INP?|ebU^erYU_FMfA4c zsJ7V{k)3JkUO%n%*{pS!ZaCc0$uF0Qk_eoT3njL&nP-&TBS^V6Qkr#o)8 zgl(%xm>cD1;`((*tY48qpa z=}Aw&E|;nOZIk`LZ{?IFN9_%dvdv=O>bbIFrO4ZF>N{2L>8@DA^J(VJ$h|MFKYgEn zfnR;w_1bf3hKsjOTY2i#-IC11{D)&tK5Ghi`kf`LP|>&L{oc5`e+yX8eS9#P*Fj@K zosNAge=EzM&Sq}$xt(17}C@97== zs|7}ahm@r)US6(`Ei-?qDXmxBy8Z1}(YDfmWvT@)S1Wt>$9QqtS?}8Wmn&mI_m|NA zQfH=p%{rex&(ohCf3j_5-KpON_MdBSdHhP7clg8OZ{ixB2c$p#X=~(D(hFeysP|LT zNsy1ldCjelll>c4H+K50-SoNf!Yhx>Dm;5O&-&95A`)b@^FrId(p`+6hJUUrNmeVb z+SGI@r{?`f6|dr_%`(z+Ss8L3I^8^OZ|U@KbLYh$2D^^!#CZ@p*jtEFv=v-tD_ z1Gsmkd|`ih>A{oq8HKM*roNdZRCsz;+Nx_E;qy3sC(nL0Vb@x}CfCQxw^B0a@?3oF z<#3aehwZ>p7TZ=en+rR7Szqqnn!siM)G}IdYlWhXVn`EL>_&0lFXE~X_m=8g^y;de znzgZ?&AnFAUs=>8q^7%Fq`3YNr&ox@Mcfbm(aZFEQzO&9bNUnce+vQ zl{VHJtBd}p%YU^^-1C0r^~iN~6K3@@y$JSvc_X6i=#~5X^NKcq|EN6uv)DT&&iMbC zp=&?KEn-^^mG79xGV|~50X(Y~_jd?PcF}j;aiHyan~;ddp8u}Np6t(KocG&A&o7wss53{V z;J8waX#Y1?lP4vYmH(6qRB7(no9DQ9>X9|7-pLY{*I#V9)jmD{%H{Gewq8zsrhX;g zt1gA@`RN(HttEGMZMpjHU4iet!>o*C_1@jza;9qXrO%4O)00h9>NdK6zI)nNb>2eF zy4x!=t$KV`oX?%t>!!Ce?*-TUyB8x;J|3I8yY5}`zW18!xPUdxC1;e`Hz;Z}U-JIVpUD=EUdApQb;awlnmkc7oacwT<7;-nTz` z-{HFH43Dba>4{!i>hTkt!X`uHI9W$W*PIhu0~ zFWY$?X;!H=d>AyP&tkjgH@hd*sk0+mvQl^5lHdF0enX7YX}&*hU!N2_{B`lv_g7}e z_U^22(7qOYsYU z-2Jf*@vKY!{yzCTF}!T)aTU$0+j*2u)NpW32vm2~F%?+r!4&-9;q;>>C*Jt|a;xMv zkC$4Q;P<#jN5H+)iS6*S3l?eDO-g^*+y5^vyqwm#Jf>Mq4{KG|N}>?2zm-)a3Z|Ek)V2g0-ebj?#vi&N>Z%4gefvO}uA^z+}( z->!eJIM*Kker52vgR><&SIoH|s5g!4tEnen{>lx;`~N)qy(MPSoj1IbE-2Nje6Iaf z)1GP(J-gst9>?x^Ypsjl-WNP#o6P=sZt($s`{?$9d8IWbAXV-LKXg|8@_(N`|Lpve zKlxj^gg;)W`!o0SL)m}Ie{`PaJYZiU_dr~4d4St#=R+ciuNeL+YsA(;XWOPll~NbhpX(W?O;p zPu`wSKk6QJ6`1EWt$n&ZqF-uG!qur$wC*1ZD4NPKZ;5d9Kkj0)YKtW|PqTLBZQ{~;P#cPk1DSSK@d@i_C;P6kyjh5&AU2p9? zoX6L){r9~0!B4E`#JNgK%#xOIbp8Ip|FB{ovu?{3pR>^`|FZLc_Hgo;TA=B3#kphhaqT(p&;Hc23Ow66bA@lm)EM{b ztaIgMho;_{*}BUxQ|scyBCC1-4_M1J$})-99O#xgDqC|xHtw-U59=J2a>tgN?Pfd6 zEZ7poj%XaSyu_&{;+MGa_xp@HllIJit1-1)B5?8aJ7u}ihGw_8?@6>xGZcNWyJBfk z`@Ki`yt}*ePPDcr+b}}E4yRcW7D=; zo2{J>j~)K3TVtf-{c>yh-2cf5b#l3j)240~eBe82{ra9CryBgWw5qkA?ql#go|$YP zbHSroBKQ2>m`%D?&CfP&NwGZ~5GU3u$vTP8H??oeZhfQ1e&E z))%JUIQa0@86ki1?}0Ch#cy%(wxmc&yNTS}RB}pCw|d*DIqP^ACEg2s`CjDbccLb&#hu(=JcHxkH>e;y;s?`;C2k3j-N;BY`?pKhu^$Da&htfz{t55vUSt6 zBi8;|U$Zp1IA~XtaMEQ}jlkl(-hVqTf0!1P&oTXa9eeP<9gFkN$eQzB`C59oedn3J z7e_AjNUq>~sq2*1`^ae9mxivGSre9jkZUo>U#T-op=L(fwBsTUHs0EsICox3&PJuvG(R>ZYCe^IBR*$iwHQ;>8Ig(|NtJ)JF1VdIdd*&?sMJ`Fd!d`vTd3t7pYV3C33tAh^ z*KFlknsP2c$NkicSwExoD^I;K+Tu3x%C-abtgk;-Chyv`i&wJeyAnHd=&v_Bny$QY z3J#p@@hR21%*FBWZeytj`p+tPO16gan#(?9iI{HpYNu)DlE){0T|S(hs-5-eg)gJJ zYw^}Exr-A_Hy+d7@^kA!#a)wj{SV;VFi*&V&tm0r?S|9K=D%}GoOJ40#^ozwi3Y1y ze_x&IyZcEn^ZNAjS5}J3f0$|f{KOW+SFK4*Yj1`fcgU|=rz-TT?BXufrEj7IBHvv5 zd&u_2scY7u;rYw`{EL_Q3hywu_3GrF&N!$@0#VcetY)pe=eLYeVofn zH(am&^kbFwYsvlZ_enJ>O`h7e`Cp37WhU-9UB^OeZ=dZt+({3W z`s!WFkozIDRm4^OB&sbO`r<~2* z=llDyj(*bO&d{cdWny!Vs?9YkGF!OE=gHq6kJLZiKO`r9Va>xcNAvF|&$>O|uKcl9 zL(SufyLU`yDt-9>c=d66OWyQzF}9(zy^{}h>x*=rjtIFY9BMDYIjzh;-aToSn~L+Z zYgYn0=f(f<)wxj>l`h~W7R>f6>Fcb3GcvO_?2B5kO>ND~w8Lg!ZkWuOpEm&A>!zD2Djzi#y;oAwl+6EOmwznv@XJs${nHtW zU+(d7_{Ya$hb1%Cg{n<|@_u)}^h>`FA=llnmsZQJsMDFrxkY4I=GNS8 z3yulcn55mhF7b4&w34}bcekkT08bj9<>bjQuz+gig`<+$5?yz-!Z zpJ=zFisy9s#QTQ}bKliYKK8(#<^7j?Mfv+|n0mI`F4bbQEq%F&@Abzjxf|_lEx+_W zUB9HSvzVz2AcYiW_cjt2b;$$8M`KcG*y_$TYx9qun{cGm6DThC9sgz4`oozGQMdf0eaIVM? zX5BK!9$}XD?|;lS{XTE@U%PwuikS)9=9k5>bwpM7Cq)_ZeLU6YU6zo%{HSE+8(Xof zx#^~tYm?HiE(w|Z=SOKZw~cVo%R-D!mmZPx{}8jp&mtEbo>CO zxVo?6h>6Kjwha4w{^xnvTAHst?M=Dm@Y1QucYDYx`NX8qT@ydfikZQcGmB~GS;iM8 zPs+sG1wYOKdOSI>E^8vVoaf!;oi?O-ik5UV*dv-f4>gUt64qtmu zv|jS?tUK{W^Ay&;|GLs}$*kxl%RHXF$on4{eBwsNY==q7W^sX>XM?&#VhI!CrHJA3FQ;HiKCF+)0tQ9sjncr9b(?5z`+SbL?2uv4)1t zhrTVgj$E9u9jnLU-C@0DOqGdbDo)~_w{5iQdX@=XSsP`im$s?RnoV=E1LWq{Wl#wo4=~<#7DoF z^kqvwtniONqHw*@$IiESR^RsB+S_-m&(1Ye4!H1ed-DI_Bh7biY~2$YD{wNoUY=69l=?$Sahx4Hb@r>j0Af@RY289nE-Og&fp*L}15 zzIW`K7vU$@*GZoel)7x#CL_Iv&)jF${4dw|t2Y;<-FjUpZ~x@_)bN;3s+?)JHp`yM zy}wGS&Wrt-%G2wDADsQSSaAG$_wIF-$dlRSXLfDdza?Vo^p*Mh8ib@fyH{18^V?@* zee7oX!je2T-Xjf9=A^w$FAq?bYUlX+)h#^Wx2mc+fhFHEP&I>oLt zy1f5@sn3B4I;Z`<^AGAyh_^3qA#SVT)eM2vCXsKjMu4jp*X=p&!fjaXkttJ0dsO!ZRlbCYNvYY$-ef5d+ly6O}uLO)FyJd&;j0v#8dkILJL%23)6Cnm<(1qT9rA9!{KoNiN%HpvOG;K+zgly=Dm;CQ zcZ7I__T{B*7bFuiu1|Ptzh}RVi~5rdGPQ@+H8_9SseJK*rz?9RkK)<74RfvD^%<>Q zx8kyx1)!eG7(^pn)R}GEK$ZDCrfqRpe;X|W5nYBmUEIljZ zvP4`vP8`gAb#vLTdD#x9W;|7N*IQ$ebg^T%lwHW0sn@!%+FB0_CZ z*B(cBcP+O$$iC-UW2eR*-iOor?*Fmg*Im%pUvy%#RA1qTuL+A^MR_|O-1tURtoU2d z=HFRzsk~Yb1h^%8R(xy-W!wDs(4oU@`_=^AEuJw;=UbTc%beHd4Hh$9KR?a-NG^SdTf+#kx5A zK6$o$zkfOZbKh*^c)D8PX3rZX!5t+|=7-NEJ-l~n(Yh`@_2pU7kEBlT&En_o4!?AD z+v+y!eedGa*LEMiJ^SUH&8$-F%`%UcB=EejxW~qs{Ly!sug)fE#{=7s@=cm7mcL~a zOX&fLv+9N0YD*3Y`6PJAN1MhuUvze{P|{@1A=hB_?xDn2iRD0Ziulh3QaKD>TRsjkRT>&47dGbT%P+?+NdixA2tA77W#t zx2ykr?*G@zd+q=K3h3*I`PH_+Z1U4joBckvF~5;~RNJNaIL+##^9`mq4Dnq|t7SK3 z{7ITw=-d{(zl^`EU2)Cv)>ALo_xVRKoK?OT!z^8vqxs#akWD%#TX5~tqfYZ5YBKu$ zStKLb;rK`~OtGDH{msT(Oo`{%JgxWky;NuNzHy;7R=Tb%-m&^*n8cRNW;trTuRkyA zWqeb(S=cd3;jXm(O-qwVH9;nwJ%{7Veo8-*b1?2pzOAHr`{BygnFYOHS(HxiQZ#vX zb7!;P*3~n-7OAz{UX;#ZHoLyZcWIQZ@H4h(p}LTL?{DQ^ogC2R_xX9YadTPmX4fU3 z73MSUy?26Vmd=x#O8*~pJ}&RdtWx%nx za_8BWxNq0Bqg`*7|G2^(j!?R0T;){*=u%2Qg}^k(*J z`G1E^uLkHnvS`}4Y2}@a^$(3YJ_)q@-usbpSSbBt-0`bx>NT5t;INr%c+Q^x^-l>Z>~qbQd~K zVJ!=3Nlc4tyL@>HTR>s>!NUG8)MBthj6(V5zNgtnm3v`S~sUOlvw6E-_qU{JpGXi*GKQ`2&B6luTXMcdGN9m&Vtf zn7VnclyP(L=}9&r5gU(J>V~~L|LD`3ljqjh|K02FfAqTdy4U<`vU@e{)H}L%q~Ct0 zvwUuJ+dS6A8^nZLKfX!$JU{mT1-mI)S*I5-JfUE_@<_Lu=Vm5DjU`jtepN|KQhK*` z{)Er*cTQexXZ;)VbJyg{)9m!ZRy?zKamS+b`jPz$&ap3lu>4@n+05u0+m1f}cE{@P zD)B!nX1reh_TAotd`mC?+xtlU6wltj=L0J8-n387z1sd}3g7m2o3-V>4<~msJ7rb+ zUe_00yIpK?)|XkUH>E`x|GF==uqNUBy{K;oR=ucaELoD}65=8KCj7I(O=o2KTFOzucBTJ=b@|(@$%S)Jso$ z$w$Y!PS`E0QdVy*Rkl6Z+0@6lS44`B6=cAc1<_vjxmx6Wyf0TbPJE~P<=CE`X3i!{ zo;&r4yqIyZ@^Aap%ysMA7u%b@&)TYH&-ecB(yzy*^YiR1Dy8|JEtZL?$>Xn^ak+K% z!?O>Jg{OXvTg%FNG4c0xaoYu@)(%3NbDtP5@~B*@b?Gh7lg%^Zq{_LM{+{F}wK#0& zxoPp__v%A-aof5sbR6b;I-q>QFqUZ?=~FwJnP?F(pkeR z`AE2D^5dP$c872IsMb5#H`teJ+53~91I{dvt*qc)Q2pVpdZFF2#XiRrZ|&Y&zI#=L zneOd&j;wH#4&Lt9u|KwMiHh^7yk3*|KyTr`XjAoNHam{Z>p66)W9z4g^x}y3=^hRH zyb@hFT4p}}ELBzzv1;b|(|0~)uCCDkJbOiM=agg0$5^)9aJjuYAw@^_k0gt+`Rxyn zyYuXJc}?)WTXE`YFw;x@Jxz^Mrrl;!N|$E-&i470Y3J{}J#9aZ%+1~KOg2HY=-~GC z%Z^KNn@sv-Ey7d4vuBNX*{`_S@0=O8$nB`x;%}s2aW2&5d6 zUuMO!@JX{C=`9p{w94nf4!!Ns49nfBdYAes_~-AjtnHg5za}Es)Odbu$S%S3NnBZn z?hEyNC^!-$q0Aon$93U}Lqgw8d6a#0_lSHuta~Br0jtIFOVejXe~If{bmN1twM(ky z+a(zr6&eow=e^<*rflTax4w7VzS9NCJ&O{v%<@t`U$byxetYA@s?q@V>D#O%@*ST$ z=-rB{*xj>u<>ee*zWS+0UWZtGyc731{=L%&)A+g@-_;#&#qF%#zBu^q-rE!94(gox ze$c>h?tznE^$fmk4W6|>(q-9J#UjUq6`pC|oyD^{EGsTo#;I9kwd~x+&_BUyZB*E$ zQYTHuj zZ_TG#=| zIArGR{Jxh<>+dxO#p<{jJ~j=^mA*~oUaj^rZ!bM=nR4l=+1VKRmK8qd6(-m1wLfJl zKDlx6Kf7XYE1z?hw$I5~@;>ME_uK0^?YGEIc;fqZ3WNBq1qO}Um0Zss)K_dgcB{lQ zZh7(BFw^tiiAJ|yU-%!k$;str*j(e;)9O!%T?#y@ydlf*-|7lu3l{x0qY4=>U9~>r zlh4XcUKdxqnIXnm=%p=xX$E8KQiC4N;#rdvB>8UM)+m>k)|>oMTK;lSjQyNRBze4cZ{b^g)N@=%rPC2nAOfKvVOT+XSJ$s(ZQ+%yi=6ZY=xniNd za>B`_(|hObvRv|g{vpZ#+dib+>sC8{ga490=hc%&$EVG-m^MqL&8qMCWj}?>f7za$ zoW=6y;fpI~0%6{gkKGLgeD_WWSCA0@#IB;j*YT%(ax_QSWI^sFPYoxJt*XdHPA1V5ubF9QcFtnEA8<6` zefsLN9}jHdi@vP%;U0J4 zU{i)?n>;O*6RsDk8XnYrDedw`ap$Xw=54%p7qn@{Y0TetiT~ms<4w6{>z-dQnit0I zc9vsC7k|#D!mgYsulB6W%iNkqbJS|fK2G8+ueMjebLG^R?rrY`4bQK6U8^hO5kTNO_JyLlZ#r!g!mo$Z|UamgMN zbIXR86IBX=i&(z)W!~BHaiYN0%P$JsuP-#^a?VII66tqko^k4|Z{(#M{#Pct2VNB$ zZw*vDo8fs~pvm>aas`R=dyUc!_!46F<*3IV_czJT(s{5qh#_EW^syzTjnNat^c(qd zJpTL?H{tTy@a5QlZGZVw9sT{uf5UH^UHmV(GjMJy%jI697-Iu$}yF&fm z`Vecivx~c&7Pv78Zrpa(I#buNWG8HjA?flO#Ia@ zU$bQ!!xsJw{(nCnkw60t9 z7F$kTobgTL(xV!VpJyj*n(oIgbfw(6ICb-e)3)yYGvfO1G3d3oZmW>Eb0f9FUeA78 zsaWQ%{^nHUo1yGmjixE29(aAcioYdE=*j!y{rgxQY!}Sqaf~u=n03T+_RJgn37eK0 z)~Nr>U+89VeYS$il6i4~;@N7au3St^%`W~Ub)(DV*?phP572qXUk|>@-aRY#k>4j(9b(lc(&UyXg^5tGQhVTe|A~ zpS_NDkkz{xaizKQ^U^&v!af`Nb7uViGQC%q-_)36`n=@@Hzash&Tn65JV8K^+j5KJ z%&R9G=DI%EzB|jsUEsm4lD#1^g6{WzsV{xLF2}ql@{&ON+C_FuipBzu4>0#R+0U3E zFC;Zden(g-e@o##X;QyA-?^1!eqc=kA#yGC}2E$ikxAA$mP2eSFizcmtlzko{q- zxOsWNq3Z{=wq>-nmuOD2zVT*3YUcb{^@!^yUq9KR9lU1SES8uz_j0^FiW22t8twPk zuGbsMYwsTNf7_yK^CzvXTettS_v%3XWjnW?`Z>8Isy=DI=yf%Q{2w2mXSSKHU7Xd% zU;0D${frw?ToJXE(@%Cjiks#(S95u%tp`J>#m_|cM`t(mt%{84ytlzTu-%;Xzx?~T z_akn(Zg<{!llzhXt)u57PE7taC6+BUuQJ+w+k)T~39BmS&2ovktGm23pRnzY&x}8@}o$ebL{FaKZgV9Isf%vW_?rqU9k9F(b|1{+KMix1%GX>{}a4g z-&>A*jkyT-`iH?2?wyu?z3bVmJ)7#jPg)sXulZGtcXQ6Rz6kyo@0!gV?$|BZrZ;tq zdD^{%6xF8=hu%!MW}LBS=IWW}QdWAGa~1`e44^oOK`dBNBd{N}TR#^PFw+ji$+fPj zPJ8AT#cZMJE=!Fa#lx2`t(1>@>+_J8y@q2=YnVis#BZ0<9)3*|i5C5QZ{x*@(Gw5O z<>G#R+iRKf2NzxD;({=i)vJ87;&1dCco*mSexLRg zoo>PF6{0(R9L@Z;S8JBL-aOzn{nBQeMf-weZ(PpEmw0<$(e1a$;@bYjvh#zcM;N%h zw~U(jgsZ@k&7!rVDky1{wpYbI$(n`>kN<8iYPXtnEnwEoV(WQNem(i4){w4N7JEXm zG3sWI#iU96MJCz4eX42Y)k&2xx6E#T zUCAxGr*QjJfdgglO&65L_R9Dv?cqw@!0^zR;gxZdiS&lu%MX40^{x1=W1fi;k3N(6 z@xS8YPLXDLr8{5iFJ;W;@_1(xS~u@OR|?P8=3oEXG@Wj)Fa3I5w`8xN{!*RLciyU@ zXZ0k1CTce1PUoG)`GaNdr@ZYJVGG-@>$pn)tP9Hf)8RhLBcz{+=MwV;z0&8`bIP(i zHr{R9@Vatc=-se)U7Swpsej@h++NG}%DdgLTlZ?art{uX{)-bbgSPl*38>v#5;IX; zb&l7>$7%YRQ!?hf zD94i$s=B^4ditI(jY0m2d9#G}q_~!xTvR9;Ci3w2oEQ_{Px@zWKjB-h@zgbL?^er{ z_6-GV{j%qs4%c$|Qug)Uf&BirYK>>N?dFyEx+~3;($1AvQa_QH~nMr?+&0OKltR%-6LwKre3zB%BUz2SzKca6zi zj}Z z_}ZoU?$&#o$8&01SeH$2n#b;a@A$S)TB}w(w4Z%ur zJv~o2W7o~xZ!6-ieM-JvzA&`vf|*jY{o++KPxgK~DH;;dxBKSeuYcve>n=W6+pzwn z{%_qca^fo#e#SCX>UM^oODHX<{J2?VU%k}sh=eM+dimpVa@In>!!~W-br}ee(3*oSNMfld~M?X zQd2xv6|M-5l={=J?Kb!Ig+mwEkKHV-dBADqb@h44Yv1-wwrhhjdpf#ncLaZN-qf}- zIbf|h+g0rkPwkkzn+y+{-@Ump&AlYNx4BYK>6z|R%lI9x8;{M5UlR~_`0_=+d!9~v z%Xak{^ZJ|ByV$ZRSE)O#Pn{edZ&mZ{;*}K-LM!(y6HlF6XL@g2%D$UN@5#N3m)3vn zcAb5vs=mpY3`TAJlfexl;Oh?gMB2 zW&Gv)?oZfsWv{iM*1UCd!&a2!J&;wH&F`%Iv2>U8jQ*Zy&&?u|j-%sb|7cVX6lcQ<#ha8%tH-GUz{7xiavRqPE{_j7x1UB;vm%XR*r^}?fT)$<NLVCtUxogNaJ;ddU-cpNA@*Qz>)d%d(<_#DaS|2Ic1@DK=jbYUWc8o%1fji(+i zojpG!fo*w7X#%H~XCE(U7j?G!!~earqGs~Phl^j!{j1)(XaB6J_xmTjf9J^S z;J?s`ck`opwIOq#Ct3F&N=!TaVA>uVt^KzYj%<+JC+U9WmTbfS^SgHZk*V2L`PE_b ziu&s>exEpAf9kaUgpT;S_3lldtTop1W_jfQeQ~;Y_ouD}*~Y*0p5)EGk~Se>xr%T! zKd1P8565kL+t*!Pdf9h^YUPZqR837L56*vSzbcEuCbjMBI{)p8^QqcL?k#L0MlWR4 znRQO3@67yF@w@J9-p63Adei1og~{^Eor*uAHcx^5wR3Uh}2%n{{*AriH7tPyfW>p-`H%e|7z@w@b>nLlP!VJFUo> zWxweBpC8iaGB3Yc_g!i2>+{Ja_vYO76L%=6+-hp>6!FQhz2bGVw)Cbs)<%0+UO!je zu`l;h@r0i}!PC7atm2S4Z~X23(L)pY=lq-~to+`^W@YH-pT5z;g%?h3%6*>y_3Mdp z`EPsUgmalWj-S2z@gV=v2<1q5P#g2kMfX*h;IccDr+#5AoAWJUy4{?V zh=or-Pd#vG@67KOb2qq$&13$!YBF;e_qU!ST~0bytiI<2oZi_@n*3)*>VdCf?+%>M zm(;zJocE^sHdph>r@AYqud#W>m!96IwIKXrnM>hpzSX8R+cLKaE6;JNI~P5(b5_OK z6P68^jMXc=BOa`861h?Lw={uq+pO)M!mp|P-Zy2*)bqZ&kHRM3U9+u#TdDbJ$6pfes_UD~4`oiNoVn{N`vxt)H#0V0HrO^} z;V0&Wnn}Df=an9}nk2qV%S!RA-6R*6u7H>&1?y~VSEWpnzN0etjc;q@wyoEW=$!mq z6{gyLM$cKW?98f*9%oM--uRL$@NQU+#_4~zJqxp+>%$174yvFJ+d{V!sahpio zowqi|C-Ks>2K|KAKX;Yh=qpVy|Cq7oNOsj_!Iy_i9vSreso0BmRs9U<*d6?1|0Ky>R|Do~ z`qUJxJ9y!C+EKIp*K+utzEN4%=@Q+Y#dK=V+M++b+&o^%Rd230RDW0OJn?tFhl7^1 zY)hkn|MCeT$EW<;epmR??}hJwZB$`5$lx$Is{Uf9>CLp=bv)4Z28z8(sp>~1GiOA8JF$|@D04| zRJUx^;pLfj5j{uN_6L<2?EZY3S>JiK09&AGvx6M_KGVz0j?X$LF{)mZp8ZR`XaB}i z|Bje+=+W~0lSpZ2GzoP6i_e)4Cfl1Hm|-8=9;$@B1%o>!|f&!=Bp zdDv|J+EZXlLh3$ z_#Py$XR7%1{*&FL!h<~*u1h-Q+&Z^=LyYa(`A#$L2}EvoK71`Q?ZpRei7R)$vz-oF zvSLH$VZoZ${0?$I6eFf)id|`*ynWk((+lhm@vmS{eD70oO+(007)r_Jknlb<1t$o)TRFTIHi@y71&&B+&`FGaF#&g7W1dC1C zXryZyRgf6JTnC_ymX-$AAv&$Y?v;NFONvE^Bvo9$0ES=OC z+UbAD>4D$0OLZQS67F|)il6dRH468AZXPz@_~g<WB+HJxohqcdxrUW_^;^7T-CFR>8Ey?FI)SdttaYnobSP( z|K*p=mohUG+Ixw&XZ8I9hgXJC6{&V%yr7}($CO@?w#w={@uAN%>d9I!3 z#OilnKRuuP=iR!!8cW&h_yQ(e58(cvRZzM^XxhQ;xqmkuJxO79KYX zbUd|P{O#oE`|BnZf12lhJ^AU2aP4FMt7%7)ttOMDL^lN{#M=h8$#CA`V^V0I(M75p3!9A zO}z!nmvSj96-hN2tmSp&+j#GhQIOw8iNI)O)sJt~1ysds887WD-&dHqM0v_7)27!s z4M#7kpLo9NY>DkRTd#$oI!TW%J!6!)BYQ&9GqK1vqV0*N^VFHw4c66c3einDX1*aa zrzJ!+Gd?_Zs>4g8%nu7WgzX(mTg&F~&pogt@5Ph)L)s$8rH}i6je8)P7kzopiprI@ z_Hink%-hZ}AwbMo|~ewuPW=wyk2w9e2e8A zCw1}T9u87h%jPVZayMC1@Z4!vhQE=|Qr67=8dn!~EcoTZAMKA2BZUoeTc{Z*vt>S@Q{c4XH6 zlb-bYPE>j;i|@`85wp(qCf|>ediFf4;lSLvv8T$vZn&O&ezkCVMElfPd~)-){q#I_ zd%>FGl0{VtIx;61gigPadvQ}VwKhv${*A)oQwy)m*igD-^V(@SjDk}owa*$)Q}Oe4 z2*1F@qu{cpAWue=$HM%KqVS{X*SfrRsO{}@u=Yy4ZR1)YI6ZJt=BEx7-;TM4+}%k$ zijtdymN?2ZcUDO!{pow@D01*^3X}XSjw{a+H>>;ZLy;8`)#jg8Bk ziXydzwV03RZCJTNciX2GW)o9(Ea~0B*SBh0=CNdBPsteRhYB!< zIDdV*`jO?Fo6>xxQ}nKdO!1Ss*Nx4MOQ#++{?UB%pI*vap?_IxTwg9t z+jZm_!zYh0lj1!2>QfgQ>aJhg$kAPq-1@Q0N7>A+P1d! zQ$C1BRHQBAh@R<~v(=kRD|gMLJ-Z%tYs6HFZ1L}X$J6WnzOip-bCl}t&!+uSTm{;8 z%WO4&{|PKPpltD=FhEPORO|1@u}Qr0_iI-DgP|Oc#h3a2 z$TxQT+*as+@Zl?~8>L*SeJ@`Ke)4*5P`9x;LIcteu zTQ)6eENHuG)@^%ny2`1<4e`da=Pg*lXYtXSTgKuj$0OkfC{8~ffO$Hy{C^&tX`uT$Y+f||&yHwuJ{jK>eYF=#9yX7nHny<8My0rY= z@!t#X?G_IYngFNf^Ar!twlBhyX%^4SC-)}?#rY+=}{ zuvgD>ZS|rZ%e|{bPUhUZw4|oz(t1Yisb=otHOCm5Ll5QWK0mt3xNv#NUz_i$_B+?< z_xxv?mG@Pemop;knA@hjrEO>G%5Jaf{pT00e&<_(b>xc-(-%t;m&{yp=wHZ&>Y~M3 ziP;f8>Y1Li&oPL9>e?|^yohP#QvRcFmz8eI+@UJV{BXiEWhs@QxjXJDYI{Z38E#*- zd!}bfp2&0?{W;He3B-S~{?Gs5io+@{*M09^$v6Bk4U{Nw`RMU@qHAkrX~RXauL*}O z>!-7OU;g~n_R@P3-!p9wJ;dLAHH+RG%lXFXgBHIwv$FrElmp8iZ2bM$Vav*Jt4p;B zX(FlHu1_;LRR36~=KZ9O9~&ZHS1z+r*cN%J?$c+Z;7>{sx6fGIX(?%+r@*IR`OVN0-)^E_uh2 z7IlKxA#g`mmYL+q(z`boFM8p(;Crb3hLsmD%T#II&1}5=Wn0)M`xbY(9bvy&_r)>D zzx)<#+x63vZPl!#6&A8L9x$GJy~d)a@M`Sy_Eih~n1c4DKiPQfYTdbnKXzVac6)zL zpX6~h%zsjDtcTZBtMJS0e=66FxYr zEUUjcJGbD)skn`SdsEa+%H0le8eiHMwDJ5$VT&iWi`f_r7Mi)raIf`Re7>UM+Rnc8 zreindzp1U5F(=(y-uJV7;jX)x$M|>a|I|BZHF5jQ&91wQXU*8_+ z%iBJQ??`&a7huu1+4|J{t{Yc$pS#s(SX4f~_hniwZ<(`-+@8mOf)DXtK4{Gse#4_; z%DjsU9t7F@EZ%ry{-rnRnQX<4Oz))KZdCjUt6ufBt?j4$|GGWZZP(;yRYWq>XQWme z{Z33}-JIX>Y(|{ay!)p2Zoc#sbo#n{_vOhZMpaIa4Grwr0;1j>wEdI7WM9#L$oBBj z-oqC+MlZW_r}$OPG^ba(y7%sAn$FeywzipFud1W`+ReaAYYXPYK3CU>61HFa@Y)2E zh07DZI|?y7p7gBod~=s!+4Bv&GwV)F$$Gu{ulHG}XZu^NYOCBr)wCD+>0h1Vo_%@s zxi3dP>)n^*i+JpG#0ZqS+TYv0oXWXxlE<|l_sm{q%&hC%AU5sR-Q6?WkF3f*zGmwh zjiPyR6D(frXRkEN^<1OGy*SQu`ibWaJp0^(89l|%FG&~s$L(*-W|PcQBljfn>)XW& z8)kpFl`D|F=QYd4x;53;RMO9WYh!hu#cy`;NBpD?Po7T4BOO~VJ0AW1tEAuR$ad*J z3prHI*%UMN^l8b2%E)bcveV|n#C|ssR^2(Ab6%_6___NM%kJ|g2M_M_oFSZWeyXwE z#z*Dv`j z@QhG95bJ)}V~Vif)t9qnx4PR+pW!w|qfqUp-#U+kqqYtkdkzYBu20jp-R)W(_h_Zc zf30YV&Bm(wy^;~Cx(R=FY@Ru3wK#9!1LmTAUk);4!J)1pg z>#a%o@lyWVe_TCXpvwIJnEb9~PrdJWYPqzWyA#`>E1RTzbEk0ntaA0aIT@O2=lTy^ zJYDKoYH7W~*7Kd@p1jlZ!keEy=#)8rM)q>Qu4C8BX+Au&`Zy=C7H~*z zme+(o-hO;ud~N@v%xki1?fTrZxA5ClJTd=V{kZO<$&+gHooh@Yl^eoNwPnx2Tf5g^cah$+eeL&o+j<(g z=Dgjv_s;5KSzU%Ut%8usulcp@Js0~7cd?j!KeoSn&GP@7XG#9sD!k_Y|Hr2fE(yQX zqNZ-HlJm%_DOst;D0U7LPx4ZWKRd4mt4MvFr{1LbKrF92NnOhLt?{SL(g(Or7OlQ2 za(~{w?v}Eu?FB#gFfLq}$MStIsXkexxc6(W#!1Vp8|J!!2i=F=U>-pMG z^4G6FXnS~c@g~LB^2fZ@%G#&stXPwKw3dHgLY@02zG>T6bd}Woy6wNSU~YtNcAtvW zoZYP}88103&Ny9sb#~P2%&7N2uJ}T z#^Jh?E069n{gnLah1Js+R+%MxnH7N`|Q2kUrd{{7bG>u}GBiEqlC|Mi}AXPS&` zccr<<`n=h7U9-sNX#ekPa+hm8o9CrJ`}^rJ{{!>A+FIYLJc7-m?!Vms>cX+R{h~KY zMb|U7-^?k0vb*}|xpG#!O_9BJ_e!O%etWy^)}^yQy(~**V}lp3eob1pl1UO?? zi&vb_zoYLp|Dc4_xAmviF0cL;{-sRM`z_nU4gqfEPV>k2>bqwqpVhOh6?k~^cx1=* zwU^_&mcRQpX^wt;hI+{}4)fKw4wmaVGbSl)lW6(scjU%bpJyxQ*S?SL=;+}vP1Ugo zuDPk>P=5GgaP+QZ=nE5%}Mt)tz$%%^@bGB;bD*eAz+`zv&>q1c3>fd>Z zKcCdhNjlfc&OdQE-?53;_VZPL(=1=4dhqkE`zCr%KBpw?^;^x;zE|bv*V*e9GwpRT zcGo*MS*>eMdfLge!Y9{kxpr{#GM=dC+l>6PeoC~RFv|40b0%u}$`gsJ79aLCFJz2QY-k$3)_85MKP-b!b69QYG3XLIc$k%{M@XU+V|74J5Mal;Pz$d|L1O?<19 zVd)^#*L8GnP}`ceM5}}M1$;Ir%rDG)bmVwQ%kN1a&RDwE`UPw4cowXa&BdU#yZNzB z-MOr1JWE$KoqlgEy;A1&<+G|Dp`oWY-!xK)NONFa_gG&GDFFIYKwfd%}`keI*rIXiLT}wMQ-#10W@{7c;PfvG+u9}$Q z7xeACG1Knu2(h1=`By!g9{XvtQHa=lNu3hI{Jh!iyL@+VxOsi=f(bi>CW+0l^}Kz| zlX<;i>;wPFlkKMluYDS0zRGp)-)S$u#!bmPY+hJjT+*F4QT$i`cat|id-D75eTz7K zd0xl6cLIge6jC1eADH5D!a(FUL#eOSHj7y&O9Xgta$8=Q8L_HL&+K@{zx8d56W_j@ z9lN%3>)ONnj6%I`G~Q9~zL@5tEatX&SIUl?OYif1vboc+>2CS5Wy!bPYuyh_+w*Jf9rXUps7W|GKmVDYdl&CFKrZguj_mJvDWMJu~#!? zpD~|&*m!W>c6W}BuN#gYWagR4xZUb~+p|=YQ%kn0{I0o@7wqux3vq!O4n>(a#@O*b?d>k%roOzew7so=Uk|lyb-8l@%ZG& z9}3q@IwdC=eW~QHz8h}7^7V3;FDDIOK2$DAnyvBSNtQtIZ;n4bm(5n0-+9&A%5jZz z!=DWT7Ch_Dh@3bQken1;&FB7ljeF`xt@!qG%lm1{Cj{Nj+poV`CYCzsQ{-&?%Kvm4vjK4yRSyGCg@H1 zxS=Q_KPi0n{av3gddr6YIJQRIzMU;z<9)yHwORQmtB=o}+VFfu`;N04Quz<@_{y}^ zPI;2bv4&-RM)QvCr+*)Cdfl+uNop_4`V|xQ3BCwdS+R6u&E_XtYpxwyt!3T1$wuVK z^yu_6FD^WZSQ_GUKl4ZPq^risl18suQx)}e=URw;ERLGpFQxkLxYp4xMVEy|%uoMm^Sf@u_;DT5IF)IX zFK~}9xh%!V^5+uX>x&HzM&EtuaeaGh{fxepRlG;fZeK97pm8eaIpv-Q*#Xg<@}Gm+ zJ?5M{x-RwGV~$UY>hu(1%Zys4^X0znGEU7E7t}QUl%99*>FzTtC$9dH_d4|CLgfWd zA5E|Man%3k&2EbeqUtdlmFc4*0rlwQma*qUyACl%HvwQ&U)SLxpGdQ{FG*D z(fyw zZC{vZo+KbJ=klgSM^8_Fpcgu8)FR)~jQGcjfL0 z`&TcQxdO zn!BaCG0zS%7iekuI!s&7`ZxOEhij^f=l)BK>Zv%k>CqX%huT86jv+rfn!EQdKH_Ls zd{{gxK~U|$4IkA-+ArQsTszfD%%8{WBGDT+(ti_~MYKN8aUc|sCLo;^Cdz<%XdUETxlEB^`Z*4tsQ z?We<9f&IJ1%(R?Vii$m((HJo?|3cMe?iW9oZ~b;NZkj;b&D@*~E7tD26}iv;MR>#I zP?plC9tkfrx+CTZv>nKPzV+iGlY5&VJhk1gy36ZRWn{S7VUOGITN53Ad|m&zI6ycu zJbP0bhvmnVoh{czRUX8AU81=zp?%k>vah*IwaRv_FQ0jIiTQrv>NTkqTNQ8Hv}?}K zDEj2`V*AUOz(oQ9&-P1%Z*1{wncp;%)%FmFcP@)w@hhHdS3fv6*7?jitXvYsidv7= zMPKg|T_YX#s`%@~-~2~QvM;miy?#l0v3yR#?*M-P77T$f0{g#WaKZMY?Jz@51KZyCw*x9A;}-MT(KiJF3IS@ zhGjubN6PCSpU6m0yWYP%b*~G@+663rCb@g}FRQ)ulT|3O?s&K9_X4JvUnOBT@?-yK zY_@IuWvSnHmvLom`suQV{(24y|2Ze`xBj=YgsQuSnPc|W!^E)=K6#kc(*s6&v3&E((JN#x_ z)wjK}+vvRS+4d`nyEZFLK2~z*j_SGS2_<{iM!5ywbz<&FjZ3hVNOlh`OrCr8Pu7*K z9w%*9*nBOpt$DIrW#fx`?VrD-cPswA{z5V9_w#GF-}n3R+c2j8<6pVixyI&v9dGTy zj8%UBE-T+|t+~NwXJmUpBf+)vyJ?pY$Ft;(vkg}-m3}RCaO1tti>>E;@(f}~G$}Oo zOl?t}_u|BfjlVZ5JL**kXg^3?dwuTqE9)Ky$^D2j+Gf(4_L0LkdTDo6Zs*sfaeHiL)qjr8 z&b_->{=mJ|lxtys1#AEOI?BT^W8GZ#<{xXOUzp@{$ial)wX6J6VY2FD<0bP$WtN}S zGTv%!W%6TlZ@2EOKJ^++XYVEX$D(v^6&_aHnc8csG+~*s#!UYi`@Za&*>ywT_I{n} z`tZNi^VTi8Tfb}Xl7`#&EsH0zyf&FVT{~u;%`2nRp39PFavTqT9C)hDW}d~a1$Ot6 z&!6m9TvZ^j`q}<$le%ZYbxZ%gzQr_6d476s>=}QX$&x|N67NrV?7SlSJVA5kwDi>4 zw0oI+eb=X&B;F`GwEK^nrl#md~E? zbJmj+ibtgOo{jKc<}^jk@Xx!3$L-6X>eigUWOtn9{G~H({#({9e%@&~`Rx&zo%!8s zTbN#6TK%eg{@?2_+N(valpXkMrPn*D*sY4qJ6jmF$jVA(F} zYge3P|Em->BO)!qp)Wu22cKi(H@!ZY^?&8KZmJg_(5bYX`+b1}n@D(E@xx2!ZkV^^ zs?``zS9WtUyO*b|Ka=;>`3JjF_0MjL`*mqwR=(cLM5f|Se&euP6)eV4t*1pw3U0Yi zuQgo8YkT6vNsrj-n|Vvj13azOPk*RCdy8Rt<7Af|`nwu5E$ZvSuAgnv&r4f-l{+Tt zwz~T-r-~cz7d*V<_www0o}y2ilIzb%{hY}A>FRY`qqx28=i=Y}Ugs0b`z3f^>Dw2d zq}Wu8t1OaZUhEKv;@!|%eD>+%&CkBJRc)&9zgm#@efdULTm9HOx^L94bg!GHRc7!z z>5;Jh!iS%)otJ<7NMZZ^w9c5bhj=e-YWL6nIa4^=$WBP(o%R##3%l>4p;H?h*eA6~sXSvKd z!g#6v--QrE5r;2(lYL@!B9c{R#_hZJwP?!1TlGuS4;fAG^p=>mW3^PS@l>5PrROgk zmR#!K9pTitw%sf#?tolU0aH}dhrVBI&N6eO6#o5KC;#4R>5KQfQ+`kDJp4WJ+uApa zGCxELT;AQRk+6>GF!RM@Qxk+n1o(%Gv*MD1T zbBsxtBciv)+o<|b(;gc==1`f%f@fVK=Lc0UTpHC;(WkoO&bRE`?0HY7OiQ`?#i!3e z#z0ZUy<+#>-3B7@Gv_@D+%!FJSKOj`&553o=NSC9oxEv2ec{AS!UlYH-xK=6j!Q1u zeOf1@v7u-GoaSkz^HcWkD&6(>uHbuy*W%nRdj#Je{cbkdt&c}!&*TkvT9$2o>2&wh z#cLeu8+$JX9|K0O>$yxPB zFJfkJEWBd;^WaCJ;Qe}&Y}q=bPAsgmKKIeD%_~G$S8-y5m2qO>OYt-8M?$_&mTqmS zbP9ODce^<`Qqg%!*2_29w(-j)6uvdyG*?`=j3v^;#C~((5AhYp8h-x!kiKj4TZT_3 zw}<|ycvx5T@!;WQwYMH9``nHHW?wY@PC!oZm$uxnS$p=*7V2LkC+TsNJ!Mb!#`0r@ zFYIhWUAH-1Wa+&7)-29%je}O}#WJtXy1ne~6)!nj4JYaQYt-h3Eqwf?enIge?xb4h zOACLAd^xuNYT?^1%b%?R$uh&gJ`KtQsM^6c+i4P^X3x1o-2oznyxi6kQJy^dNA_KFo_R*G z>x15NJ4yLVNoS89<=4I?W2?wF`GC0tqw5#*y$r7>xQFyEK0Ns?m${Snmqj**XRVF7 zT^p+83d>Yj!JH^29Bv*`T}S?9TRx+p^n|Vi%o{E$0>skvkSH_57obC#uL1J z(xdc0auecI)^M!tQGIH)*#3F=r>8HcX#9FFV)cFchg-25y+z``sZP?0uTopEZ{?(d z1HQ)B-a0;g?D3@EdI#&tA1j^+%RI8v`F`|mj_Z+>)mI-BGJCbLwaYv{?N{JDyYpj1 zoABukotX)Y3gJH!lg>DlhPEhv{jmJv)`e?Lrfgra`2049ebNqlkA&88g(Ysd=3Hv{ zY%$l9=R6{t-E{=|SpORJcbznwFXXAbG)`8K@t~Pu#9LD{_b{I&%Jm$52e{czi0Ez7 z*uKhE?7NKqHp?$(N+ae+IL*48vdHpb?)*(MQ`mLgBj@QZl$qjUbwv71C57 z`Zk8VXv&PcdHUnQ3x*S3-CF6I-*C3(X~t2Xt~A}fE(J#)9qM)uo0j0UAm^dE-O;Z; zfiId{cCZx{ulP~TwsBtO-4hcg+owdG4s&^Xj6FoF@bv!EZ!$T|oe|((V{O|SsUqAndBp$GBSZvVw;Ea8``YiDbfEm_=R+CiTFF6)07EWP|ijqi%Z z3NabY&_`R%zg65X?5)Wx{qHE1<<>0%TIEZonLm4<#G60g+pc-p zjeXwhg>L2lQ2uCClXPIs{^>R{8(p?Oe_6VYqihmS^%c+d*4pq`1>=CX`@g1FeX#TR zT;O**(=O%^*QWm_g+5FnPp{rf4E=fG)uqp8i^7@gpO)@$+MIoJTHOKlZ8O-s&10^$ z_q#s~xcHOVr|w>%?Ect+HPA0 z>FkcnJ%4TN3RroY-ae~(`j2tl^ny0`c1`QPs_lomXYaDGIebkxxc1ba#eJ{mn?3m? zIqkx$HwJqh59?poJk!cqJ1z3zT>pto@oRL0grXBd}0Y(2xNp`orEfB5><^)q9HmOpn&v~@ezbNtJ_$;~N3k_vohrXF%m z^0YH0PuZ;R5>^L0%Z}H-Ju2k?zg*I<_kDu-(V$Dx-*R}3bNByQS+eWzUxAVs zu^K6#CGTR79T1gDf6@8Z{lp)!7eYcj;kIu#M)q8s#pK(jymoak!>nmbts49Te)C0c z`KkTpf|(Nkl%S%XNBcFScBhLd%4|HQ;C6hCjB57Nc}^>JUdFIKVi3IZ^W4!naW~q( zYq@XalAn1_CsBNkYPnGI{h3+E9(-yste4)A|N3>^T+fPNR<%V3-e(m%ac|gKRH?yu zKe%15f4kC)-Dg$OpFUbVVROX$7n93P_VFg?#YKMG`^2^TrfzxEuZ{Cg{aL=WlIMEp zwg*jbukP75yTkLa_E+BjzTfN?+4jE0S<-WY_I$-Dn=V-f+pTb&+S;v)=Bp zF0JTQXAu5i>%6mZk5kTiX7A6IW=HlekPTV$z2&0xY{ktJc(-1D7oKxK^^5&O0n;U{ zFYdivl6&2M@3x-(|DT@NsB!iG{cqAM;+DrA;j-p`_MYMA`}+B{JI>^tu5GLB)vV#) zEtjL7|NQ!U_x;_|{`nb-ulZ!acRge(W5>7mPj)VQ_ww#J)7{snl{N~vl-Z^xx?!T&~Kc5+enz5k&u6;jWhtdvzeX1&+p@pAor{T$bHgZAtR-8g@~+)DHWp7~8th+yKG~URz?OFT7 z=z{d6`P;W{EKNV6a7)uo{4txeSVirF2eRoZ{=KVTZ$0>(^ZyxWxMyulryIxpbYcjOm`}Kx+`P@l59S#mX z4!aIsOq6}q__4TS(Yyo|W?^fi6}uPu_h#;}`1fH+u?y@$J4asyc%4rpJ0V;B8%d#IAZLo02DHz(H`%&$HBYx@@o zSMe=xmM@E4_d8&=+1$@tS(~zBYaT8W%jEq%^OM3GuCQ%Zkz20)+~68hofng}WTS#Y z(z^1V-Wa8|nTLuDE6BBzx8nyTtD)R7pUARkhl@} zsz1i@f3kiF@0nTt*N>R$o+uF&+VyR^>xSKb{yd3{KmDe4=H7qhcD2nGym|4vSvNlQ zdq1t`pSPJ+(Gy$ebhf!~wYDr+`n>V-XB}bd1A1#2Gt!>CsrdJMk)n%{v3nTbZl(wB zCclHY&+e&wukp9+<*YkmQ7iTDu{@qE70&j{qcr>KN%2SBH%~fz@7q?p?VE$pySnHe%HQn8xqb{S`dE?y`)-e0er|ZS?PX>^wCm=5y0`k`!W+x-pRq4)zviB9;P>?Ec&uRttYrM``nc2SB+f-vV(ZHI&Zu!Q@YOLZ0gLQ#PHx0 z{}o?ensdD1Oqs>H@qDY(`k0R0A5G%S^=|OqkV!px$3J8FmZye?zY4}JogZ;qwj!qN zNMqmwnH}j_%_TR}W<9z*fkklhl+Ro-GdF%e+8# zthmCI3zn*vCMbmb`M#9tkI@?u9{p~kuM^viv}dV0bJ%6QpO?14$J_h5oMem=V^o9a z{Ef3+o(9Ks)!QrXo4kJAhsQM?4E5dVl5Vf-SWj5aQ*XD>ktk7|vXgtm=_xJRGpEHE zFI{@3x87ySQSNg)k9RqS{r&op@A!VkJwX-h9GC7jN%!kGEaG3sSdAC!FWnqYY^oQ^Nc5*!Z&+4|??(UyQmwdXHbE=p(2Obj^@YQ*1+I7%v z?Y8yNH`F(qn?z4oqj|V7Fe2A(`k7P<-p?fpYj>{CD@pOuG@JG;VvZKiC$@NQqdCod zpX_B~Dnc#JJUq;u?Y7P-@y!aYl3N?5_iejB{XWm4vV;@Q_QkI8uMy#sUpn#SeBK~g ztwUU2lA@>0u)Jeq_UG<0brqEp%=#Qm0``kk&YVj1^Lb|cd|3?3Z=S3pUCTOWRVkb} zVZ__FI&s~a0=uxAuO~UK__q9?qREot+6TFJ*uSP%YaY51cyVRHuSA`xSM4NLpPGGr`QCI}&KyPddgtf_;~K`x z7bi~^a<#nE|3Bby(t+NDx!DOjRK%)!U(f!Od8@1J!2X8@yNdYazRi5F^vu@m!f3C5 z+f1&W#U8YpE zd86OqOYIAa-`y_iRl2`v7rXkqj5WtAtnKXH+%vWK?=a!Xx^Mp;mn+Q;b;#?mn!C+y zmfX($Q|yeFHf_A|gMGruGybz*v?N+B{J;}X-|*F0kSsOdTPp;*%A)S1ppj@W&?UhBGFaE+hgt5+haO)LLT&)#)!9c3+sONm=JX4iEd)vobnOC0O?;rD3%l1c{v*&4#ulJ4*5?0IF>C_UrnM+V!&P8JS6F*sp zfnIz4g`8wNHFvqO$F_hs^TlnECL>-U~OfZ@PM&xtC(N=S*<>xzou7 z&s!Yd34Qfiy)aZ-#8Z4jX6S_E4`jWIMLF=D6-G zr<*(XS82K$W*)P2;Lyxqv|k^)ee17Hx$f%19i4(+x=s#)A0D;es z6Me_B+r^H%pE##IZQA^r7xp#(`TGyBD6(?eE}GjS_;H>cV;}bhA*H;7#{vxRGVLp9 zivP<{eZoC7wBqo+hYWY#$ep+m^{L|nU3sEE881fYQFv&@4w&(YdQG^ zOdBP?=az*8XXu5T4pgkXknqGZ??v|AWz3d4($?N!7p+-ov`O*hzpW<}vK2ZvO+Nqk ziP;g}ZRPe#UGFFD3%J^LXv4)jwX^@|9MkY_cP`Tj{$OH%)obUCx{3>1w>^C*^jA~h z)zn8%+fJYG+WDu1b>}CRv)9ay|I@zsO51!VQ`YBs@sn*!%HpKYtzng}TG*PhZ;`LG z>Ep!K*z++5#i!41?5ciQP<&;bK~2(?%u5;PuHRGZ-?uK6CGX+AzP2@zzb2=8RYfiT zQ=_=)ly&>;4Q_(1ek&vlKa`#Ixi$4(7;zfSRfb}J&YNzG#+N4@04!Wi3b$zNJg*Q0ae{rw^j z&dQ#^|3=e1gS+?^v)JW_i&yTw_A$QXrs9c7VuzMK&6!5;)1Os)yStKt9%(df z(tVkjYm@l@%8EC_rk#I2on78&V%&0l%f04xzeEq+s!FKc^0CW1e3I3Yly}^^E&KZ< z#Ql!jnJ#oz@2;--Dc~9N`h~mgiEBId7+V|L|bZ7-)^$_ws^{8#3mj&9$1Y(~o$ z*%`;!yKXl7ecjRV?-29jec@rXS+8oC_p?83J^6gc?{oRx29vgbde~K_Da&?Xhf-bY zFB8c-E1g+qm40hn+0^x>mOdJc^ySoq%Z34c?4kGl#MVVl_$KQ2=%7T?y0=z0tv@Kd zj#D{1qvQXnhxZ<)nr*NaVZNyJ!;UpLw4mtUe1pzzIkESrpYiS398q{W{lk&3>pU%H z+_-Xkdy0X}il+w4Z%)*`qRH?@`q?sHWd)n=cLgt64#}4FLfdDhOpRkI?*C$8f{gF%Aa z7R9{F|3vtwC+`1W$GLCIyH$3r5sfVYk*7jCH;1$z^n12Nc=iI`YlqHF&0<(kG+TD% zHoH2H+nZ|_i7xYFUS63Y{CIi+q?z^x$tY%<*Jj+VQ@qH!oiXJ2ap#jS7Fg_cn9IgFjXz?u z$>}{`P86vYAMO?IV44iOLx z|8qx6+ZEf%(y?N14>{(qd1dk3-RrCG-ZkZa7YK3`rM%Vm(KgGUzP7KujQ>HYaHeoh zxpm1?!+->#b5|VqKcA+)@50{N?JXMf_dGvsWtRVVnbF;XH?g0Vp1D=DuXcxalXoPe zvW;-gsSEEGCVaf$e(|N%RE2aOL!T)%%k+-^P+aiCEB4>{$;^^9$82x+>m9dE663fYhTT+B?DaZ*!BeO-uU~+zkMGI#JPJbRoVBQUbtGGFFQv6&YLSDZc%#- zRgRxoU@8>ABlqo%Zf0MNy0zmQ#Vyy8Wv6pE*pMD>Q_UNhCwfTIuhi&U8P2XSQ zSNEmn$D*b4+Vztk*l!WI7=6`e-ABF0Q~ntJyUdb$XnAO+c;5B>H}>UsDzYfKT0U8t zbD=>)rgb~#g4DGlF4K-QIHlC7teR379+olf*S^o^y3*bi_zG_NZTxcj-*?xqt8qV^ zId$4^AJ<)RI+_ozS)cgS_>X7n=AKK3GjH$zAQ*D}!)b5V^JNCHw|Sj5K4ECd_&=9p zDZ~4zp2wfb#m%h<*|u2OW#<2`!l(qzOQ#>sVxFLHysb1;!6?YqpFMeT!J~-}KZi?B z_n)sk^6Iosuv0^#9i0sBrYA_rIUF z-(+qo4PB~LaLMEEYj1a<2#LmRN$av^+iMw$Mo!W{dgPPnyv&C|zXOYRE|ohi$8#`V ze0RX*&$sKIEM9nOj{eegko9ZFOFSc|;B{)~U``xk2@mLG4)T>$H@^g6EfKzf_N_ zPHN0q^lj4oS!~;!pYq3giQhW>hf`M9$U9>-tE5a(%()9+rOpM+zm#)}_w-}_{VVDX zHa?mB$Kaww_yy67Lmaa`b~b(wT=Qy2dDgk3+P4x*_POeRtr$(zN}{EsoiCTJxt*)Nge(FP|*-+qO)j z<`9BApd9Xwsh?8KLv3@5D}cjP7rWmh^MV3}RtyZ`@{4fa{Cf6vJ5Nu0kr zEBET3=SF`%CQbj8pmTN0B^5b8hG~4P4B2nQBKxcg*JbWamihWq`GZdSblv0XYce+1 zHkkcR2)oHH$5R#IZSbH{r$Ue-=C{#Vug~I zn4D@J+MV7wEkgUx3D5b{Gb*cQtE^nUaPIY%o;&QE9JjfT&pL35W5)$ay*=@vZ*2Lv zmd`u(;@;oFB3q8{@4krr-@8?Zdk)*izm95k0Y`%#uPIH)S>!ye;g3((p7kGj&b>_X zy5{FudgfNiHr~6dv!4DpW-ATIP;rW2;ggWmT={cGo5*>Al;Wai_Y@kYExDPzGPo@B zh0NV_{&kZ>I=|07w7I7KL&ukE9C1H>WxtzzpMPuRso08N3HDAo-cn&LYuX~$>$C;z zm~`x~n2yCKkwxD+xn{7M&$}bON_6^u0d)?g1r^bO`nlI1ef)l&S?g=t%GCYg;v8Y~ zl%;2E?48iQ$4}CE#ls+<1Nv%yCp2ttU+R!sIQ>wa=Eohy&YD^;@4pe3I=EYMb&!aO zx=xnliRRv%^ZQeDq#iMB_KbbyD<|^zY|`iu3;Jil5+9F)0z*~xZIu;T98p(fZ`m^H87S2X*>^A*yU$f|Iu+EaYTS@X)G>d0tul`<_#BrB>_w{#z>0fp< z-m-okepc}e#hF6Ny*P1ThxS0{eB*J zv76og<(UUQ)~~O>S*+&F_WtEHgT>x$CCgbnl68CvoQ3o?ZLi4gUurGf z9)FFq6vcG|Ta8zC3hPc?yfvVG+BvI#%bNrKpS!p-HTQx;-h{&r%T=-&m;A|^KYM*z zxm2Nv5gTv&r&o&>xoGTv-Q&r8wTZj#$%3}#*Nd%03stx9Ev~xdvafG?*5lBFMl+_r zRz32gJ~ER>s`#X$WY68?y17r61V8wcxx!u{{x)-j_E%2b2=%!^59Tb<3sm@i-^piT zqCidkqPa&lXv|WaCnb8yglkVnf1_&iGpE92hq%pRM`xJ+m3sB@aOB!oMf+I(pA~9~ zJ-09I%$?X{rpvXLIr$v-_BNR-68-C@W=E9ey(8xy+8#=}!1=>%CNrbZ?*iq|UW;c> zRNChix-{jTro7Sex9{%mv#DJh^}5!1`z!0`YwG*7ZccTmte)F;cl(vAV?;pF6@biJ+T!-|Nr{vgvus zI}gUaimP7xl!hGkRf+ihNz<=;LtPEqr7++3|2N+IG)L;ZtI*eagO2hvzLncd?dC-6 z@H75(r08Do?@tS?jHaBv#j3K&M!O(s&W!E$D~^f1nkM>NaD8}t@`>g-EFbTkyuEYl z0WY5ae=GN<%FL)=d)*}AaKn{*(vKz|Hj*xik-O@#m$P5AB61H;n8uOd!sY#;XTDFk z8P&;9A5~v8InlvD%xsBmdA$tF-6>Na&nx&>P)nT^@M zaz^weMfSJ`ePx<0HseX);Q*N@?uqQ&Z67Bk^?hXT`g7cM(zWeX?pM#9bvt|L2*WlP zU2}!RnYY_a6x5%)G9B2Pf5tlHSj34JH+Uax{GOSke93$F?{EDpY9`!~b^mx+wBujR zzbjv5{`*)TzLTz?dgAY=n{|l-Z;k}7NvYL~UTL;-|MZaKYi_*h@h?~*qIfXn@t0C> zwpU;Nt=AEp9#yCBw(Q|@0qHrdw*&3;ADzEheBcd>x!dpEg$q9Ie&29o-EHIIOLr`s zkH-|Bl+h3homs}dL`ZjXiTn2RhuqrvZ(Xyn^3ksn3)h>)IN!hC+Z$@z7Pmi7BKoo*6U&#k zaVN{TwXXb{qO)qcW{~duc$4k+n~#69VDU9PJ9+MRrqidRTzP{F4kar-xaqH?^I*@O z)UE4J?>rd%d->|X$L{}Xrw1tB?=HV@Wm4X3aI?fz6PEMx=Gqlc zd*_9=9bXfobYzm^#&y|&NsCil4Mfv~ucsZ(&$U#2U!%-7Q`~R%JiT1Q;}0HhUOP4C znxppH?Gc@u+~z+t+ugG3EbmMMR++A7JGzM{WwP4=E$iAjTw9L1$BOFi zI4oi1#=*U3lJFTY46Jlb+Z>H4ij{*U;XIvWy9R!SjSIp&Kob@?y2QDnealbg_*TMeZApy zzZ##{K99NITNqDi&-FR0#dSw-;I zU#AWJ|LfnZqS>-kf8X}gx1XlY{IdGFeu@#d=Kgz9^EzzuMw9C&9t)d1Gb&@HrzL$RPzL9G|kjDI*oy9YoXDQ_+3VbxY<@aT`{Qu-M`H4lVpDo^| zzG?ZarjFC!B4Ztj{2x3u{G774=5gE?{#`!=wKAXWZ+>cJ zSsWr)wkYezf7SMc%W2p6gL6NA*`alrVS1yPr^m(T_4AG_Q<30`tUWB>kg3%%KW>Uh z*0aVBYyX5z?NAW?#oBsSE%4@?HbLs?f+n{n3hc z-??^%z`CbrR&IY$bI`AEci@`Jj>jL4njdjxDK1*7VDLBMuav3Q^mhJgwcCd`IdZLK zS?XM~a%1;ar9+dtPhV~LE-bd*Xj$EbxH`9w#k@1`BrpiQpO`Y0zrk?!mQ}lV^gBFK znYTn^v)fwZ8FK?!w{>q&t^D{UKkrzY{F&oMs)C-ZEDEjbPr9#I>U&b>6WgY;rngfx z=lDgY`o-+6neyh+zCyA7{y8O{`<^+T>OC6d%M+k?Le2XO`=z#*Q#skru2OnGDJP^< zr9Z(kWb!o2pq}HG)4vDp+qKmqYeTV$pbSaD$o10&TL0Q z!EeXQx7HT?*kf|9LaSH(gO^la`?T|AyS82yDoArYx@WbLyfeF%p?Xr`Ars4AWtNE!6$Fa#MXIx9{#g?@#W9ES48y&?WvH+6qP%lv_+M9 z+QU^j%iibRtSP(}P^cGPR%R@x@A2orQWNZ<_z2>;6lLN$;QSh>Z$U zy0FsqX6ZFy!;hK|3QeD$ect-^a+q}B)_CIu2ER94JFYQl$u^tU57Mj4CZCRCEU=Hi zb<_K%sWw;yI=K|f}SeV z@qI4AMdmKw=0CXHXBk`Zbo%zE=0BJFIPZUCQ1j`Q@R!r!Ykssb810Ydp1uD+$1K-h zy&X}nFZ;aXWb8i4z*p?BB7}2=YTu{3Yj(|E{&u>>vrTLGm#muLbLzm2KYQwn^EQOb zNK2Z0Zz=T=*T~uAq`1-~VBd_6{V(EfEM0Z@pS2;!td-&O@-?p<%L$$t*;yzwf3fFV zuVppQ+ppg${;IY4?N{Z4(>>S|q82>+oT+lz@b&BCmY3I+@IBd5ujqDrA-kGr(krLg zPcGfPV)Bo5YM}D^3kPGq~gk{&RcoJmhWL zW7{cdXc{mpHhkX63p2h|Oj-4(?Lvk&|Eo8X9^Xh`>2dqiw1C5&NCDoSftyT=-=nwYOgPRAAazM)b}~xO`d+7A!qf9amz#QX0D&V^}GJucj@og z^tY^H;tHz^Z2DcL3u~tdPZhqkDI->TX|0&|o;PMC|M}OvuDw6YT$wpcUCCPbmD)?G zN{)i3HXG)DwO`nrX8crn&1Xa3@{*5lYAz*nvhX~OV7ql$LqK)St;EAv0`mu#^J>{;Sm{^e7Ox%}b4mYX+n_wSeT+4=J! zQ{#ctvs8Dy7x`5+Z{gwcM}-Ie%=-3c@;Ui`%bYuy`{w;|-uGbcGv&s(2Ybu^$ZUUM zzbfB!R;%55X0GRV1=EoyU6DC5b01J|!p`^u{!5CTA>>kG6{A(wF(CVj;EP=#IoG z;Vr@^w!h$h(suUz_JH5Q+w8YT*E#)+Jl#G2ac$zWN$hrN3uknmTxrgId@plCJ~5<)5<%PcIaC z5F3}#`#UqW^*VE)5kK21-8+vxqnc`7)bMBAvRIb5x%z<(N9}P2=zA@|Q|&tWu9>PS)vUoKeQn*ui_< zQufv6h1|*u&atP5EH?VM%<|krHFeSF%YT363Yh)2nO(tm&Bp#^ZTWo-%R+MMmz+^u zak)UzVv}dQyIj^o<&Mj8*MG+~i>+~%RGRh1RWBoH&-106!pqbRez~rHysJE?A=y6J z;d*ZokL!-8Dh9#X7rnXG7%SK3roXhk&1dL+UOGfR?eO7alT@N_T>tHGXx(bg()}+F zOm@DRmmJ5pe@Xfx4=&T@*~hOlOxUe##4|Z%fs0_d;W>kM3R8nwo?I_SL(J!mhRRr-SGT7xBOpyji&bIHxAy7 zxtSZ591^=~H*dnEOr3d5EQ=P2sXv-1cS9>=wk^Z);-(+Y-}*eKC7sdR>pgMdY^S_? zzaQ)=zPeiA!QB~c!rFH^x4NwLzjU|GHp4*ty}$>r^T&T4J?-&mg}wfkve_#_4==Wl zv}_dK(JWymAdr@GYSyYEsmM#~cV|A&z7o^j?Kkq^-ij~ z8QuN%Q~*m%@x-U*`H%Ni&N&(xu|K>+@D9U9>DYN|jV7N;u$Xx6g5)xRTOv6kjINH? z58gPZDbwW_5Hw@OgPHGlc}{+>q22jO_LgVpOz9(j|4hwae!82co_NyKUbA&Ue9F3I zPK)L??DN_YZ1nQB`?<~~S;lPt7f)ab-ckLm&fTxHATLIO^L+92`WrV@pYOUP^<9mr z?|`*oS&*aA!X%$d`L=cIj=DW!)Xcg2hCBOTr;Ehnl@iU~wVkr!N^6Y^8mc3k9Uab@ zmgvt9um8d6{n53bQ=U~&=(@5=w}e9dtssL(1(W5kXb5drGQL(Vv`ABHsqdoGwcgy@ z8xx=Rar`ak&OG&|@z9>5V)wGjIvj7L-E`_%y2$z32g&n`9{zVcGV9^J{~Hg_o4$Or z%5w{?*v2*2A5Fj2pmJW?%^~gbUAJBlgW!#}O=@2pWDbaD@~vgNWB2r-uXOWL8Lhrj zhiu1v?BUtVraxGbu6jTtPNlrUz}GTSHg+Coz)`pR*5C9~#D4QGhb;Po{)% zP3edaZG6-Biv7vf_WOG88{`F@PM@s}%TtRy@a&|hSo#dTyfe#oP2K&9eU`g$*R)TY zg0Hr(Il&TfLF=lmaIN0$s}o*sd8;|$_Hrp5g^79|QhYg69*2KonR>u!b3~=uRKJxf zU0!aYK`blwUA`f_Luz%L$eFgQXQqe!Q4II`>A-c|E68(0j?W4nr2}7^UVojuVUB3x z{TmudyHDsZl}xpmRkm$Hp6Mg@XP(xY)6W(=mu3CeEWSHgb$3tpDeWD{e^$G6W!QR3 z`YKHn&%0oIW+jW_saYkyGG-ejJzNj()BkYbKTE7qe}{POQIDPW;Wrhn^EOsamtQw; z(h9Ho^-2$BYyW)0p|Ne^lZ@*>!q%>TIYr;K@yCN<(#*|1F-OX(;7Mv=sOzNM7hj#z)NNxzCa;*OX|ifZO!5`|Lm%S0_9bk{ zbzI83sL^W0oRwyr+wH23W#8I&yiO?c>TKi4?3H#q_fPHkTNIT0DWp^P>&iJ6PoMw& z9=LS&B#WbNqRj`=rx>1Ob9~|z?aZ`WChFA_KlSDFPKtiGs}Qifmrr97Q%YGz@Gd?k z&RaY}GoM>C&wbNX7qQ!5t@m|fFQ4aAvsRt2{xjS2l?u}pQK=Z#L|M1Cm%FTPF(ltU zd%);xd-#!8PcHp^bLPku+s6rq%j>@y1-iU(u-UPp?wC#V6XO!@GYc0s^rV-hX1>0u zvY^H)!Nw_}LRDnF^~3~+Sxvdi7_-o>@NotJ`6YVJc;JaSs-K>Lq*q-qxKMSg5oE#_j zUUJK+n{WTTS{B+XoNhNEZrQ_>3A6YWC(oH*wX-Q^^_;az-=o)T`o@2w>uT1i)t@8% zYP(|;{yN6oY<6Ovo%QUm=jA+{wo!eP=Y0<>?x8awsmt#-}0tv>Cn*OrTixa%Gkf0?Q%{XQo6$6V*S^mm_h zkE>RA9?kY%aZh5JXQ%Fisl0Jn-(stB?lxXhU-R>QhhAD?)V0DL9*U)+HQzqIbJu8? z%Oqo+>o#de>Op4bRjY&E9BDthF1UFuL+N#=m0D6QxgqTn&zJtz>oxtc`@$*rxnVbF zdKT_oSfr5kaK@bf3vaZ0f0@9%nD5qa4dH%yj_&`R9>=^NewCQH^sjA5xYH|xJsHPY zQ$$0hwM6xTR$Y3SD!8uHa)IByHLDeVs2zX(Nz(a1{;vP~<~*5p?}pQiZ?n&BZH(J; z{jJ4;%RzH`x2iw2KcuQvlsHe}WvyPI?<#Av;LC{$+D-+h9nO8!cmFm+D=}#5OZRmu zS6UAL%Y2&2lf{#hE3!QL|11%M?86f`wYjS?Ukby!(yg}l3icAb#=?|g$aX4U zM&;qOq_Y`Q zp7~E63qE8!nf8&9GC9wEgY- zH__n1S&om{s>_3GL}oZ&?qR4jy2Bm%xb>0SmzS_RV4ZWftBoqV_6g>0=dp(c@h{ zd$_qbt8{k-Z(F2f*B<#(?c0-bpDpFnb*~4k+ZyA#GiOIz!P$AEl*z@)r{?}HIU;LbPcdD*# z@V?LoRg2fFJ-hy5%F$~kt1pEmo?UOZ_Hkz1oCO>BqKd6Pe_we}N&mU{^bmQW$gSZE zJcQ0pI(Nri>HD@_$KJC!x8Kt`KIaPRoZRg`d6=S z*cT?ZCg|(KQ0Ge<>#uxU>M>W-*;^Ds*|>EynntrCT*&iM;ZdZ8`q_3+KYn?1+ zxApCVBZ6)_)!kklzG?n^yP@8Tc`Y5uq6Pk?|GGu`mfp`$W^`#?uwv)AhWKg0X0l9r z{h2Kyx8{Bc@n3oOtGSUwN&Be)aW|&exepVxHx*cy8ul-3|HC^me0$vGNe>?C2-d%4 zxcM)$>PAyw-_JGA_k6wh^rVMQQP$-qyAuj4J@U9R?_T`zKB_&wu-mYAuTj>=H8Mqa z-iO(~-!*I+vJJ#3#Fq*jIc~64&?bHpYE-ty;*=(*gS5;wA zsdk0!N4sm6w=%_AE|;@-y{7%poLRCgmOO87XKNWOWSRT_=ZU>;4ZL$0I+D%XCi0!@ zEIVt^pxZi2?$m^LYgGg9zxtp$*Z*mEobkQ#x;|;XJISwfK7H%n6?2T~joA|BlBin4 z3rnKCXSG&M(URHPG{>bcPL6H;|Fn%FtS7ZgzrTL^LODB(@#d@(KGt)R=Olez@NAn@ z%!$XPGXqZjKA-CuX1Cg{CjMF1LgW8`40JAinwxseWnZwp+mH2z`}AZp%D(e-_uOsh zvCnjzuxitepD(xmEYdbvaZ^K4+y8{o3-#`0lQv7A`Zepy@-;8?c`t7A33Im$LhuwK=op?J4eW`a!j73BE^X zt~+&4J)h|lhm$rxkLninRJI449O|m7jLZ@)66)tRt`GhFaKR##(>2lQLY<)woa`s` zT)G*hzV@mIZ4Kpe&2F}g)LPyi@Zn3jg@&9dU)X^~mku{HU&=GEIX}5QTS9-`wS7yf z*j#td&=IgaEbuC~;ayN?+N3#~w)w@?PyRW{CfcQKM^1xtw_oVZMHMEg4BwaX9@i<@ z9^1TrLH_)CS}MElvMMGOO0D^tb5`nu+qDClt-@!F53s*v&0TBs=i{+O>lDjBHeV1} zadnIS&mXN#-HT1d@+@64&-`K(YvELl?n;`+}snwz(3PO5cSk^O!4vcdluq*>x_O$E?#r%@%IA?SKlAi6pG?` zpSGmo&^y2WxldTirp=#}cSYj#b9=GbS{A)om^x{;4W2&{BS)z#(a1=BnWq|MaNF)u(TdH(&VAYn%R|VNU48 zrii`EF0)vCJUT`uN*iZvi%~j}HH9*)y_q&X$!)%_D0hRNud6X1yvII5|>fTEQi2)jjL|zUe&JuO#qj=eNUu z8to4~z8}xhl`}m*ad|yg%lQY}dmD~@Nw&Mty+8Zlwd<)xEe8Ak)jmntS+lXbV! zucQPWy^?tk?qo3Ayn{)j9HQni)NP?oP@45E)iH zYsTUIjbhKa4PW?I%{^y-cH8_8Ba6-uk5lY@dEEgFQeC-6Le!rm@SWaht0|bs@XC7H z*AS*%)~>E41zq+_>hCq3_t0_Q$#rHnHn1WVz zTrJ8@`TDP9*6limS+~5i`lL(xcAk_h=RO+0AUcP&P`IeSB_q!J#Wa~4zLh5xCI;E> zNt!v`p?5<|$K+(2T6W)xmy#=ko7uOh$@`={4V@Ia{w$2f0xwiL+?2BI_NLj6bIdKb)b5bp;y7=z9p9uV*|r1AxTc=jT$?06Q|p63I&06B7ZXZ) zgO~~#BkzCs6KJ&X_6MyqnR5;tnv=E4K6lPCi4gOpZzsH77GiB{ov5KVN90-Iq^q`J zd$zSa-}pKA^$+)`b8pz6ZgST>cTP%r=Jo#di+2f3TP3~fdTytwk9Nc?=38x|WxrAgBHg}v&#QTx6*89plYYPVb&=4siqcZs8bO5*2RHszf9cPC!Dy+9$*~K`|2~JT z7Ib~=Y8kSob@`gO{A8=%-k*IxN}uz_E_t&kakBs6h$uEO6QPOAzjsLeYKx!CI`_rf z?ti^Ohb797x1W2`diY)UiiX%-OVvt$OWe1Yzj(Ru+H3!^AYY%9J14e>d>43`vE;y+ zgENAn_kLz_7yp0cw%lV05#fA|uEuPQLzZ{l6c%cARP^r-s<`s0_c_xRzOPvos~;9> zwcPfteA99%@L64o-PTmY~U{lFeyK*$$fANn}vJ8B(Em{h6_xU?YA{-SnYb7V}>46{X~gwr90m) z+D7-rUy__?m=dj|zbkv^l+4)H<3aOOnOkOU3(*qu>t0;D@WBlW_x)}Q?^$hQsXw-G zi7S&*TlRhqK_KRJl!PEblE<%{*<#mO*_w?JAX@isWs)g?@!PCkJmZdno;9bNke1Wn1=Y{y+OM{>c0N|0U!& z-Y&S-DO-DF$HZ@MURkPSFNitA%sszmnN(2V_9v?=pLZ=b|K$;UWmS5O%ZAe4iEDmT zKHd1_&n!(d?rk+!-PYC`uj^4i^Xttv)5~e`cdg$zR8BZl)#<)!`-xQ-B+surw(<1! zZ_0PRHQsq%$o?UA>d7ws#Zw$A{Y)Mtru0@_+pnrCH2YimQB&>zVnV8ZGM`#l+86km zsQgw6;5#>YrS#4BGuM4#ul%fQxJ%Mvt^B3VE$3I6Hh5qDyt$BXgX`@k?NtWKC(Z3v zybog#oGGAhyRIfLcDY%`$sM9wj{mxnqOl{aQ1*A4ww+EvPUy>}|32@jV_C?vBxUB^ zBSC$UPvk`}XqQ=>mwVrRI|87^Ao4uE#x_1 zHv813oK+^B`7)V%-d)CDw{-~BmZO|lj<>+|H$WwjvzXH+Em zmQUwsb3CAU=(_3IiQoVK6cA)Pb5ZJJoPR_8qT6-rnIC@b)4ZJMw~F)e|8^leA*ubQ z9Ls7?EbV7HG3RRPG6|kJ?9G`*X?9=sNVrc4_|5Ke@PhIDj9R<(vn0Q_u6W=5V}i%a ze-}J&yxaHw{z|2m z)6&3dlbG>%SLe=0(^j?3XE>Li9q!aIWr>`^;WuD@^Vyyp>x2%ZATYY=Yv08Mi$$nPe6@ zu!c`v_jSX$=UHpp{OuHal%#_0tj=)dWnTR9$G({GomVXWJ$U@m$%3tor6nx+LsHD# z{EZz}B@KNZC1Ia-@DYUj6E#qdZ>4u zhsD*&mIY25%#BYO#~J^>V$grAIH)!J*x%)obra(=J-H?S*7Fu$^R+paAZ{^n{RWj~ zX~t_Ulq46wohCK6T6^QNi5U(y&yx>rIB;{dqu7;7#}%2SRr?PVn{*fKpQ>2QQmZu2 zKW4?o1zSUl-!|nt0DPXv^s@hD-xYTVUHNseP zSMSa_myi>9G-1P+KdUc&{Hku#I>~P9WXw7k~YB?Lt>QVdrT5v;Ob8CWW%jn7XXrk&`Be7#%Ifgh2eyW7|K7`! zxTu`tkbZ8^_i(3_^Jz;{E=;m4_nsJ+xFF?%nU+NE_b9QKs&myZ9#~Yd!_U)l%fk8t zRl$+#W*=2B)L6U2D)%VYUMXA8z?~|eKT7a#S@GJWrA=$~?P9Itr;AGSN|LkYUFUIM z+nlcdFtYsRA;#$`Q^Jj{RHDnpf2_I?eff1#!CARkC49kO^wLY1KFhvy3>ROn{Ma__ zVz%J@zU|RdxjJh7_f|Qmw=^xA9=LPOg3r@VCoAVoHamN%X36{`GiU!_==NZ~FPCtY z-=aH99hOq zmW_(Hwm(&nD*5D~JVD0#At(Qrmxd0V6-BokJ$WWs)|}<7{Be$_KB#3^^6v7y`8S&u%r3?!x+~t=D`1%Ly|JZ`taqJJ<5w`qSl;&c9u}QQ+j#%FUN< zEx0L?J<&5N%h~u!+Ctm-OH*dPE<0(r>bfH9_UO`ulTy!_m+bnxZEBdu+wkgm%paJKVD0#2LiXYPmyup2sNLveBXtYiXOW@3LMKhaVt9U)ne_6ZwhlO^fecH9seuq zrq3|-n{Ub8+S+Iznf8hEEVyh00*~ChuDo~ShNvrj%UloZ?%lbHk9D@8>bx15YvZ0+ zn;EX!U94KJDG_B{4!P z4)QMS`Onhre*LWWvh!6(^1hyF(|A#Gy}mxMVC9yCx9_s5_wj{iozH0x<1Tn^JzMT6 zW}^%S2q1#Nw> zL~?!dm6j~M)D@p*XX#eHsXn_nZ>82$nD8^XrKi)gI)?E_N`BS{{|8-B6 z)%@QQPR(@TJ!)X@>3!kcHO&g43M@TmmznQbo(*N4aGIu=-&;9=Ty zg6VU4F0YT(l$nl6_5R#W!v33r1L_pwrv}e3b8Jr$eO>T!`n}Ld=GS`nCR|Vpt_a-B zc{bdK@%lo6)aeIG4;qTQRY~g>Z(kUl_jB%}S5rR=xA!q5FZb}Vd3*M6;nA0oeru-b z?yT5$%5w$mKDCSRG$ zAUa7=uY2a~s846_9X@m5_F;v0Js96M7i+ET`z2GP9D+gs5iAZF)T==7D3O<*P%xPTt_C(z>L3RU&%l#<)FykIlQo$1(e}ymP}>9_zF6$rCyl z-(6dG@lIoU@LT@(1__a$%obmH%*k?d!Qsqvx$K5p`Pe<4uyOXKuRkov^YM2qBeO+A zfCbmD%+4G!ef1Rvag8UtrW`2jE1Fv@^k_xR*}Q!z%eLpdTfOew^!1_Z^?8ME$+Jx{ zd%nYR=R7XM5T;tG${X9>e!S+#yRq6im0?nG&@#iE)zvAfoauEob#g5)@;AP@%F6j> z@rUAs6oC`%rETuamzsqtug`wJcjKw!-xf}?lzSb$X~knv|837xuAgAue*5~v@1Rh9*Wid^eKpsoZ4esqpVo-s~%TxQ^eyvvd02^4-e&bbj2(c6{li)A=r)JKy`Z z$=j(aR?9aAeN#WQw}M}I#;of%Bw{sPnrc5dPPBVG>5RSF{q-UFn%}Co3LJX#{G_M8 zpS_R!*I6grK5&`sn_D-*xAV+$wK@OK^L~n#;ycxPOMh+nvuB}Qv&0ootHxj8Ka?J_ zhxzkSFN0*}l|s*o;;w&hY*~Ce`+>3Lsf4^KXXmnf-m77#fA{mm{kqfVFY4zIZ!?-8 z<#ys`!JA83H?Dt5wiNvx@#e1V>2+2Uu5+!LYoueW^fSKxRP2ZH6(%nWdGB{dK9_st z7ks^CCbP)pjlZv5m?Wn2dd>9nYbM>7G_7#Fb0VWJ_FEe3s--7wO%&1|A1}$+z5Z;# z!93Zk?-~O4d`v0$)%-jma<5)C=iVUe2j3UpopO<_+>!m}UFii1UY{#$lZ$`w@Jx95 zEjq$%jH;?sWXQ+73Z1Gws(%+h`;B$Jv#`>@PqL+@}eW9}akA#d)+EV+fk8VO;&o-=A<%rD8 zE%JTAd*rj$97~12ruM6jx3IX?ba!{8ib<*LKdK|F?i**GDJL49`y}Y+3;@ID$``_cd%73yS7Jc)~%lpk$GaJkOKTqi0wmT*Hex3FY zx1IfKWjD;+{pj2EHy-Rt;!{jN;fBni`P+22p_{I$wH9P&fy*7t8yKKZu%X!={RW_^aTjNQINJ!fLn zPgge`a=d2~UQv~sDRun#=b4|aHitMoPZIfKv?A%d*5j9XoUV`cUjAfqo~qt*uxjn; zCz>}^znv@4FunLwcV64_i@TTpd-(tQUa_mfDa9MNyKTD5*{)+bL#J2&Ua5Rk29ME< zOy-#>Awt)5+nvvNZ4>6Rc7LzhnOu8P_V(pT#$_F-st32*3O?;!b4}~*JmohL$=5HKPguYheBHe1{^B(@54`p|njV#nnIFIM&ZKYR znb~LAnN5Y4Ty(u@Q~Gen*B_@E-aIbi_`D>$eVy!~{ga!g-|(qveqHkV&<)4iUA*pl z^Y(r3|JoK1y){fgzj?~tbvZ)5=f1AHcJ8touh%b*C(qyA?5g?Q-@2+QId*37{z-2% zbyPdAr5Tjn`+jxWM}f-=-8_BxK7K1#+T4@4IqdhgZI|t}4qgjZD$ZjR+$YD~^;M}V z+A_WR|K(@R&n7(;U9pkF-Er61T~$Uby=PZjnX6XbuIBL3npL}od2^-^hu~)Z#D{#A zrqAy0>TIxGFJTu@G?AfVllYnnKkWj3j;DYAA8j!ITJit7gKOje8x9996z2X(G+KA? z^o9lV_r9x6&AesY_3yv#%@>P4e0sRzy5y~0nF%ZNK3ww&iFq}3p~+jZ3#(l%x49(7 zKV(TUQnGla%{fp1aK>_;fEQO6FxqU)HOs$wMVU)TG9kSAx4M)u-|4mcSAHt_+w^_9 z!DCx?WwSM_PQKse@U-Unb>6*F+xqoRR0rnxs!Lm~zua1w&?S95w)Pj}wZ96rY8Mh% z=cY91HCc)uXy6Unn@hoi=bJ7QXL@ z-pzPLZL6n3ujrID6X#{=iZIzET)W`JWFxj~m+G~H!nv}E0W-a{FLPb{aN9-Tu;`96 zr#C(|Hr3iZbHn;9k%fxxRkJ)+To%rG9B=Ymc=MY6)kO~(S}p}^*7H{F=FzT+dw9<5 z@t;-m3{_%wuJzlYIeFLImG26x^)9eo*E%SbYS&)Vo_LtGtm;7EmZ!DxS-*F4ZLj3< z5&K=L?)wfxNSs(i*nZ`&Hy z&-~lDYjB&mEN~W<3E*<}}YxS1(4PIQG z1`k)S-n9D1_Vzn3rB=^j>-}H&-L`N2t4smmYqxjmT`iCPsF$sN^G8SRj#-*F-2E>7 z(7h;n%u?;m%-&<^PmiuxuQ8q5{%ebg6$KR$n};d1en%ZEP@Z`bVgY10jS=`ycx%RAM$TS=Q= zd<_X$CfC+=_L<||@`vWHY7abj+^95b4eK`tiR#668jWGWXZ2gu-ppSV+PB|Heut!r zZ=#L9;GOl#tm?kL(+kA6=I-aIG*noeD(78%y|?x8$BGlhS8qA5-BI!_;%F?(RK}gc zM*B^^H+Am(D|4pTkYVfB=k{q9M=z}C=hMqouvMCt#yaW3!Nrf-9;|v;d*Z8QO{0Kn zY-Nk~S(Yi^=b5CvYv_K*)Juw zwD^x;)#>k-kFS-{%B)zvuEEi@<4DWF?u*CRId=029|{cUoLrr*XtsU1w#TRAHj{QU ze!E;CT-LWWGE=nMDAgmT`K9!?=W;)rmpp&-q)}s%)TEl@jVdbd557)$DSf$SpH`g1 zY+-hBd-J{bKkh0>StnG_v^V_L{K-{b`)BcnX5X?*FTSCab@y$o*2yP*XOA}4++C=a zJ-wDkui)90t@D=obLl*2Z+7gr+S9yj;)c4DiEO+rn{sz|s72n&U3vV{hbq3t@b?8v zj-C_S61mw;-hN78gm-6o4&krA4?SFdC{+pM(RT%sKEY%6vs55J6q2Kl61yQ`4=d_+R zQaRwW>*VBxdtD!StM`a`Zl1;Q3YSg1+2J zn3K(5+__U@>Jyv)w)%CKzC7^ce747P!q#0ECns&!dEt9MXr1r6Y(6!Kt!#dPn-i1j6^kqE z8k(kk(TGt$a&%jez3R24-)=Ha7I&G)$9aI4<#oo_YbJ{8<)eSHnw{Lz(mY8p!+d3# zbMn=K1#@_2U05^a%is38^9g59Y@64{>Y+E`VW6|xBAKn1cUW`rEU;&E-v6 zK4r)H>rrQOm0Rx#e(jx{+pZ>gImF0p@x)E_JedpU>UAz)vKBVU`Mu6UvwSbeIPdxHbfP=?OukCciT8Kc zRf@0vlCEc5@X6$(>^aT83GRVQUp{^#v25bQi}RK&PFmJ=&3S&#tzEX$XGXIwFW*xd zXf!`}4co~{iXC1lt%5=%<>qkqOR^EPg>ra~Q zo!RrlzFoW_d{oc&2=C;E@+HAya~>L>eXu@5;I@j}M6uq#jH{nF&&&SoC)m4al`Oyd z_mF$);aj5pOEosJ++bu4)eoMq>R86qDgIjN6T~N9GH%rLG7es5maHgqQI1dPWa^yf zo3DOdE`HI}|JJ{SDYNz1_MFn*+|eQ_q510T{AqDzYggHFIcM&(`R$@FZPqsJ%G(>K zy&p=wdcJi-`SW*{>6`wqn*FN0IN68E_->0rSx~L#vE@ff*C}!P9C7~g;t1n=Zprv8 zorvoyJ7474ba~2Lf3m6iO`z-??MmB&KAYuVd%UtNSz~d|#^~`nevbOx+AGvgCVi5b z$M@}|axBw_h$-*R{`e!Y>yz8VMH6;+?JijNLZJKuLpS>@K8v%<;@rOEKF`XWbwcs% z<;B+zd8PSHQ*b^Pw`+^~qQW5a7mE&a{$!7Mx=izNrg_HnSKcvs5zm)icJ#RFw>R_3 z0i6{wTes@m=<=4y-0sV@NnSs&{^|Yqms?6+9lYz8AH$SsRM+$`BT4pCO#654f(OkO z8he`-?SCIPQ_HdXlZ9-xu$2uI|Ma_aB9rn0EdVY2L(X{#{wwLx9saeV=X^d-cOd8k0Vq^yJbz zsmSH&bE01ToOqD_C-a&GG4)(6XB6BDJyMo>PMwmm?A3vqM1yB%`r{8zjGo=t@c;cr!j6mKtF)W01zw2IKEVI|$NIYlE{*M$`;Th#|KIUIJm~cDLkU|}`z+p& zU3%TgcH?>DHSLaZkNIos>{G)unTz&GG)vVwOD@;xSzh~S$%{iG#lP=(Di^1hXHO0L zzbqh(jYHRtv7kfmuF;{L)1xL`bGlKoQun*g&YR1*)%HbHPyGE{R6}C@iX$ztB8x3f zs@|D2ZLyC_}q%$!vE#*LLR5y7rJamLbcLhsXcFsUhD}O+P!i*w{RaBi9oq%zQNA zShiic(h19h!lyGFt|u|vVbO|}VCuX%+x`)|-v49?KV!*_AteRVHyQpr9n})w#nSd# zEvqZ?%w-$BrQ-1=N?N_2%=p_UIJ)pD?RA^?L}qDs%-^6F^DkD1eLChJCm%ZN+1X3G zr`P5L9zDF0ug0mLpRBU*J|3`U=iEy%*J|gMTm(+ zjn>`ImDqCf*;4*iOgiEw6`{tla{kjUEd!4UTI<3jxXr!Vcb-~dVo};?KZoNe_nV4< zxR{2&AKrK*o_%oEZ*9%-WBQlBZ}6{Xd3SDs+>JBmr#>}en0h(9$#&h@)kf||%N#oH z@zx$*_4WLt>HD*nmSt;CQq}HO={?Hc+4E*4n(*wFS}=e4 zhQd0dG_`g09A~-yPpe>zTAN&aXi`o6a+lv+hnc)I9MmpZUtbcCTX|1xLjIQd%^ zw(x+SqP?qAc79=X>2YVzxO4Zk@N;d;DZs&7Sgg>n1<&o-*?v^S!yb*()czDF~g|V7{jO=nJEkyCv>Z%f3c* zYM(x&w7A30fnVY8#{8CzeYYR|VQb*=>vp-v(m(&!*T8_Z1N~Y4?2F&2oqTuxoWqpf z?-KR(n$wplhov&^bTm`q5-2kKDgR#c$+EP&glDebgoKnM1G%I>zQnq3*GWZ(>B(Kq>3BZbH8P< zD!DIHr+HL<^~1S``bDLUTmP5Vth3M;tu_);Qs}RW_SwII>r4Lwcd?Zl-J5hBTF(FM z@?wx))zs}!?mec3p6*27<%K3(jMydApc z`r$@7lV-K=;+oFW;}@p_o(%i*t}`7?Nie;fkno*j#_Ed<)we=_cmGb6pL_IXyU<*o2tiBlkeClsc3*tW z$#d^Q$n&}XLi!(Bo>OZn&~d%{%`#Tc?&!YQE63Nz9V?s3d~(XesjtH~#vML<+1l}j zmbf9f>cz@-jkV@~riFIg4DYLHRrt{=#OBUl$@OwCi&WOR84{d~IRTlPYocye-A{86 zdLvZ$#m;$=Z;O}= znz$A7)^zMha2NOxx#V!?(ZXeh$6x6GJ?ZdsO~vyS?7zMwxZVAEM`@Pn=KmKQaEN^gFgm-?zy=2wHP z)z{P?eD~$oGDl*0m>-tuKCgwEUSD+|x@R9G*YzN!*?A0$KYd znqKqbZ%s&_ZekhS!sgMOA&evrecA{)|nZUl$n@ zr^kGu?7?$}ln#%xo^RT{T=I>IExaO&e|f$Sm?rx_w0W6;uG-S&JJKgyd0kXeDqHz; z{Q=h$0j;^k!A5!K&maGPyE9+hak4?pr|;LRB#ozbsvjx3{en+4+U(mZ5r(dN3A{V^ zyTxdDJ6sLnHg4e!o^|k_X|qSj%6&{+?Nif!+Xqd3D(s#z^~KAY0H;43SGT`1w6t8D zG-ZaeO7{yEby`Y3y1pZ5ll8q_d1cne*s?Z1aLc;Q*u}BwIU{4|;*ZX|nNl!K)Px>Vk zdGo~7)OnvD)ZTfp)cBf3!}X&U5B8NBuix*;{ zKYZ1n`sq>hTiML@(;tgR#4B9SsBV-M-QCCKKI!DQi@h5275D@}bZ^j4-k z`pAUER>6V%x~re~u323e$zfc$$in@1LAhMRpUUo7!HLh@ILuO1?l_e0EIKxK-;y&z z$+zygq$K`QnIqiw%p*84@cgZ(i@yKP-?hk2^NjoIopDa8wW8)FnGK?OrHUNKCJCw8 zmt?uxu}N%d{F?r@;;4P#xxxuc?A8SEas8cm^UVTT_X(Z1UE%_{Pm6B;#XqI5Jy(UL zHvh%>>ryhjTATOtX}2sY)ww;rQvX-h%8o6POwaFhZA@ELXm($5qov`3GpaMDZr^og zeU{`O*Yb63Tlai>%04+OT6Wg&Goh|t0(sYuz0FI_yu13r;#;%in7vjKg@Jfuz{}G)P-}VOjntw z=&8YZXEJMhv>49J>T>zDz(!pX2jQl^YYj zD&9-%E=W*b6M6JQJHNl<&mA$`d>L=bl`nri;P>)W=o3ThtIC$n3Vv(ct*2Wn9sYIb z?uKh&j5h3=VRy_AR9GB+6uLXO6YPfyckYm-L@^e){p{@5>)zzcDV` z_oVww=o!-+&+PX+(5krm`RIzBEAwXU{%biwlflbY=jp12mLJ42l#aG5UwHTT$K7j* zH9}e|c5!SybuEAG;+IR)F8*lBWPW3RZcc0I4!`XSMaptBKL7c&U@3o&)l|NZ_bp;h z6^YugJT`c;a$@v{`S(g6yjg1T`iGB(pWL*?*YD_UU0}Iqr;}>@B8h8Tl%ES!L|#@D zTW+|1&rM0|FJ_OwG+*j-QK=BSzD(SFHKT^k#5EU!*S}j=JGFTF@1FlFbM3?yzt70B z7nxns{@5u}y0)qN^VCnekv&IykF%}&wwwR2mJ)~4pD$M#*FK4sKYM#cuh_)uCl4!U zEO{YUt&(EIHpiCJ!~JZFhsG(6hbLnALu9qPHlKgBugYtfd|uWl*-J9i=f<-_-%4zAl~6>-sPR>buer!1eX)fevz zb>5P^f;VBusoL4Q#3uA?yIm{1cD7&ml4t)KwVMqVmoA*N?AMh}&BpF6!7fkNPN-P@ zmQj6!cE;WVOHJZjX0ED^Z9Xngkf7QU-+gG>?tPDIUR(?J-&A1bW4V`CQfl|&JC?6J zJcGlM7ZkIXclvnTO}%``+Jp=_|kaxIgA^ZPjd1b(`C?XvMkmIdgsQm&j+li8&-a zD|`F?4{fcRcF8^1J9nRNyY<113>T(Y=`DEo;^N<31v!6$`n6M!&0q5B)MY-$qfB1g z=DoS{_I2livWsSyoBvH^Om}LCt?v3Ip-?$fZ*}3W{U1L4`+w#7k4gV_UTIbTvv{A% zkD3GG8;>VEuDb8L^`UUdsq*`Go^4|&++bdQJ7FoC%k3{``*L#o_SSBno^bCAPo}>#3P17Vx&V=i7Okt?$KRRx*Dx?OJtg z(YGZ^`@g51{2AxBeu>V1cD2up5*i(U*Cq*z`#W=ktGmL^$#y>s>|xBgpra-K(!5Qy`)|zD zj_uu(vajb_$*KN6z}I~%cV@lQi}kbHJ#%ArnD`4mTWa#n#fCL-vznbqpnr8p{res7 z?UR?ur5Bb4Z{IOnM{?@RRVT0aYN=^Qp7v3ada}BE%fFMyeIpn*DJPx{H~uLd=yae! z;Q4%;y71B)fv?lVe(m01e6ZC0_T#7X(=WF=cmEgpcqHMM;p@(I6<4MlWa0GhKf(Mo zaQdI)B}GZvdPU{SKTUfwv*%7wsAoA(o#9sVkA=2Je_k_b&5oOP%oISXZ;fPDrm1y1I)a(mO-mN+#VB&v!`?6@m><1hdvW{zA~#_LnL zDr&c-Yr%%A&SuBCW+-agy^ufqaNA}{_r{AF)6ee^zN+5*=67|?{I@X$_mV}_zt>sU zHf_IX$r+^`+PQhfpE=9{$D-;=S2gYumAW925}Yy#0**tEEBwz*n@hkJsLJyU=gle=AvcTV!KWTQW9~gtsCM1DYRUiWnKNd8eP305gz0{f z7^`NDF00@4!;9YWmoS~N*crF_QMt(Fm(~m0wB7mcie==>Em2|IUL;t}`KCQ|>%UbT z^P1MFBuIY~t(AB9sof@+9h2{Mb(_IO)(OlX*R6UbS^x1}kdgbR@UY@3LZynyZJt63 zS({umx6d(fU3Ya?*m|+f$zR!=_!sj>O|V(=w&h6buBlsiWXKs&Uyi5j(eJTsuIuvI+9%s=t?@zNr0nXJhbQHC{QYR# zy7AgW!-&l{^Nntvc~hrvqSF8w=ep}NS=G?*J!s#)xWA|Zk%iFQRz|tl3D#r8uQkrXD;Ne6D@xie82M3wOsyO&0Qz9 zNSoYQeo>`VvnW>dRFC|+Er+{~u;lj6S^j$7zc`5%oIz)%{!6s2odeRfMZ=j^=v+f?vw7o(W2RlY3_U|8urvs*QTl6@!Q_ zkNj6zPnP-S&Yrm>FF43J`^f1vOTNb_&z-OBS$b{8z9u(~$9+f6OZ*ql_UtYGEPRsNo-f4yALGveUnRjFJubI)J`&Hg)Pe}=4mkt+t zS#s!`q)W+xI>p|dA;!-fR~2vdQQCOup5la^(bf~qzcv~P@@>DoZEj2QJDZA#d9x$3 zu6S~$hX~cF{P+78V5wb~+kEX!Wb2j``M|QA9=9o)JQ1gTSNp_zY<8c#?(ge`c1>pw zd7ss~lD2B~i8Wi(19TtWS&{N^%NuWY@1~>Xq7uB%ZKt$ZtXP@L|M%jt;F)O_eb0O* zhXqf~VEy`QRuIbpjlZecTcq}9lnHVOedH}~_#HPPMPcQWFD9>k+5tRHa?zpd=noBUt&DvwZi-;dol-8Gi0Z#%i^m!7NNQm!JSQ&TtoSoePY zJFDokIvR5{E^yqw?s>E1!NM-V8L*7S(xXk_l6)We;-T#F${>+Qa+ zNvl*3sRf+~s0t|FA{D~&cAm&hmIo5gT zAW_LJwK7%KZSxYw{M#Jv3zYa4SAF#>O*6hWal#}MdyCk=T|V_wAN>9xE#GFNQyKB_ z@bCNWy*Hokp8w>E%~ex<`DOjzEA~z}U;o3JZ}$_Q-COuA-tS)MbxDvn?%%t$W;$#C zBx=tn(r`EZZutBE*7LpTrCMuJ%GRd{MeMP;R_<*eAg?>``xEX}6Smxc`D3--f!jZ` zmb4iC{oByWuyKCuu}AqHY!BTMx|jF-V3Dm2P37ra%Je%r-D9D>ysiJdyKCEvqi=uy zHCHBJU!T{WyLC~!Ze9KIc(?uFYt!Pg_s{bDm(njD zG`nrv`z3AsQjLPy2A|)Utk`KXEq2}f)(iiyzH8PD{~cI8-PH7Kd+qVo;#ZwB{!MQD z@`R&rt^bRf_%3x_okDt8sE`UE;R0y=7NRxQ{IQY+!vaaryK! z*3VzgntS}Clv8kcR@}=V^WM!Je)E=T>fd~Rf5z8>ccGSN*1G?-z8`kUpXHZ*dR2Mt zt95;+%cYJidMIeH`WKtugZ>MC_IIog20Y}BId;fHwcy}{cg}XM-_1W7*EaaDpDzqs zT@qOGbHX2wM91Z}JM|auP?OQGH&@x-dwyDZ7;|95Gx^VN&M`c=p%*$?`{38`mxnao z-3#93HD!ZE=Fe?e9@9fl_`iE_=$w{Uy7~XfPs8d|{bM$3{Cne~|0d7v_lnwV{ac&A z{LWrC%YA;lan63>Ex!)!=b2DAt=^f~!iOq4&q_Xcz_>5;P$Whab?(&-*c0A0SXSJt- z^y$*iIh&5ft~_VQ@HU$wHhX#qK57&R?4R?$bSqQ+vX! z9G3>q?6@rVI&z80>!YRzKmPCV=G_|YZ5^`xlfV9=(79}mHGBKES@+=eY{BDa^SAag z&!6`?@h_uN@uKpI6F0i+TDJc?Cc&<%yQDIpz2$1#&2_2I4mia%HC*|7d2UPiS^1j> ze5d{H>q|Ob@L|nmmgmm*zY59qW-tF$n_<;Bk174(yT~cb^UuHhG=1mAmqPnie=)P* zcAv9bfvMwP$h=Gw4YTDMR)Xu}FEvicU$MFR-EuCUUstnPmoA&|LUy4-Tl~dy)1~Y* z=gog)=Mr5~QfI%FXY)tDc``fVcsbKsUcLJ26|%XM?||=5i77uzI`+t}l6uAbWd9_v^$-v{ShsL#?7ke6ddl!BC#c|QXiWg_q zi`$&sG+*3Ic2tpwS)Jn5;40QK^XIRd60ZNu@2q;PUovIF%Ab#_gsOkJsaKso_O`C< zxo_P+z3nUNO4;IG==9#!&U@G2d}3M2mvsftSfb*8aXmaIQ&D|&{r*$ec-O@B)|I@P zzxsmr*IN%0Uc9+CDY}oX++nNBQt@r_OTB_mpEavzzglHjcQ<$PD)skfz1u%6NzJX( zo%!L*Z62nwqakqz?}@y)7u&tXFZP+B%GJJ>5G{@Rtt*RG<^*_bNibj0HB;?=xF}b- zONgA7sNsCwDM5M%s^7Y5IIp{$byMrj!L2>IheC8CZ{((ni!&L;Emi#>Ebwu)p!?d~ zEt|vd*2q4I+V*yXUD`E%sgLs)xM@c0ogFy6wCc%iGk+mTqnuTby5|}0o20IkXDV$u zh&dJA?`IP@Lu@0Bw{Fhq8D6?+^@0045SMN)2-@6*m#>lHO`Bl>=4&9)ZV}~v* zyc~7YE}iGG#yzjq3x6+oX2vBaUsO`G-OTgPgyMX5<>Pj0&F^3Onp&Jrm-bXC-nQ^{ zLhr4EZ*La!Pk%OJ@3YF!KD){u`QQ8S?c2@=j-rLStu<-Ym-1ZptWB}}xOUDtmD;RV zFV{bwF7WzA>)Xw0@8z#|af`IC+MHQiHUH?kW2|Bqqop0pv>dHCUz`7l&2(G*u1ss2 zk#VM;=`}H?11w_iRz~jaej{%7J^1S^W@m$m8UJm6>*d~wTV3{^OSjMcnuSKh*#xdL zO9k(HSFP2}dUUwq_jK)c@%VT5qqjS3PwGFN9z}Jum1OUAx2H#6dO@6WYrb)>|NE@+cYEt|MP;8)mR-Iu<$UQgPkFfTz ze~->fvi1AIAAZbb%H&p!qGnybiD4^G+{$&? zIPFy0X1A>iN>=HWReV3#c3f08PRnBI@qNB)r5EIhF#eu!!gt24P0*>Bl z4_C5v&v9>6KPSGgZk^AyM>d~&81G#RV`qJKvTavRSI4rLUG>Jwf1;bTuTEeI``Y;+ zXlq$^-Tj*VZx}^`KUBHcPG8~eq}lws)@GkR_pJNU^9$BD=G@uAe^+gWcl~01U(LO# zetJ2KD^G4S+1b1MgzvwPRov0vnyx>&X>@p#wfvNds}IGUwnV7r*k5E@x_Ww?q+NDt zLiC>Rul9$BtbV9pzi!&uqv_Ts7{BNXy;G8MJnrgvUp!&)dtUuco`Y-CH?>vPR5);c z*vT7m`Mn z9KNltwO_lv8N&oMe*`NA%>TDI6jI{V)4*l@!ooWWc1o7jgX841B(OADJb zW%e#!wK(I!vKq||odsQq1)=%VPF$Jh9%`e_s{6-uy;i?I!?V!s)7Lx_nei~0EmmJ? zW7I-V+x1UX?=JT$n6{wqvBHtBI$C+>r!&m8_cnE_y|;&r@9Z7twiQ1tMAGk`>-@@? z*`deju&?*~(tB6zkM9ywyLq+jfMLkI2`6^2>{;S+!#yFzEZHEB? zQ^bd*XM_&eA3bsXGceHzUx zZ@z4ts^Q-9xow8&|H;+`yE44W9~myZ5+GlAr(@To-v`1%gQ{ZA7q02i@{CrRrckVP zi1DE1w7M7k&n7yH7R~yi@N)4^W=2mv`|YxN&W16urWJOx1)T){``uf@=V*Llb5pVH znaT6^JY>}iJ>bmJzK(gy3=Vf+|H@0jr9VrfBdoY=FJ(NI`ImY|k<%>mfyKuR5rO#! zQn!gWwmyD1DcbpI&-Yu4g5Iy1GVhGG-d+)A{=}ag(>VW4(s^@I_izh)_cluoeIa?H ziWK``hS`$t@wz)RzlyWAe$H2}xZTyPR%}wY&6{BXw@r8{x8$@*hLZZvZC#C)WvSP? z1+(y&ozk4L>$FEe?X1HgTl&SEbC_z{`DEEo&F0c6@C@nGKbTVS`xw)Qm0KhhDioBi z4%wQTWw3U=wQX+2b5RzHh}#i@pIP4=E@_pef z{PncMdhwdm7uU(GzhKB6r>`H#Y4T%(a%`Y#OAqhq%4Lf(E(ytTyKI}a{!rt@<8yB1 z9T(gqR&n;NLip!~bJtre`At%k8T7(a+U}cN*_QNW;eS&Do7huNt?o~7Ir+1vK+na? zQzlU z%MRN4c*`7gnb8_!V}AGS>P^po>`>=lzJSp(;-K+#VF^zve_J3cXe%^S}+n)(0OU*sDhgKNw;GWpeUURUKMGYRS{jhcc{3HIoS^mDx?eAt>m+&%1w2P+!#D^k(pif4XtA z5AAuz(Pg$bCN8B)u&Bhf1D^S7ww^n;bAeQ1-UShv7A?P7=}RAciAbC7Y}m3vHjGjF$e%Ty z-{$5ozo-`&G27+7wu!TYX(CJc$)jxXeHrbKns@RYn{&+X@tk9td?L?3e_LVt-tnsE zNo%JN|A~b+{AWFk-S0esX-#FY@nhQyk81grm+yU@%J?zf=CRM;yRCoU6+C4&m~Z-0 zj(@?CKYuU$Pna?3cC5?3yar!O`{j;HSFkx?;*8QGLUo0{e4Sl* zwYU5G><5PK(e@!3fBz+JVZX-7vyAi5FHu+P{hyBa-&Wju!omD{MXZ!Q)5X=SjQ=ad zul+4kdc9?D!NKi2zX-hbaa~n(Yu6^059gxyU(@gkKcO1@bjgD{{`-C<>6Z_P?)#ZB zPwqx&C0o@O*L_J^U&L06>w3O55%RKOoodZe$0}NPYT;_-&C}dNFE7^FGiBrEGJfVl zfy*s&KG*KA^UqkiFY}@0&~b~?ESQ%l|?G>z`~9LFTS3>*kX|Ka@E7bLO%q3 z-`H;Me!rkkGbBrj+2@n8i`*>TeHCo;l&!X2nJ(lPo)vW|k+=WA?cj$tRccqoci7~; zx0zS1UOe%n__?jOew_O*yJzz6{qHx`y79K>Ki~Ij_oMvsI=LtNex2*L{}Qk#{MLfI zlEurs_&6Az&*H24_CRe#V^{wkyAQdHlNH)T7r$AsdgbljXY09rem^>%Rj8AGdFNBx zwLjf%{#9yflD#D1^|4ClaeKugqmW9S<4sJONB8_Rd=wlS%G#E`^>S3lx6XMv)hQSH zykCZduMFR%bT9J#k_$N@Gk54qnix)5dm>l<sQ*{f@f4US$8nPIsx z-S^t|)fLKuiMt{ulx*1&-Foh|SXq2o-GaNin_@pOtE>VtxHjEmst2r&b}f%p)R204?M}RPLhH0S z)qncl+l0off2ZAEvc++Cxuox&HS87^3m5M6|FXVz%IW7{&Yp~}zMH+7WXyt8Q;k+U$6SYHf_`E838(K z_Q{&QA`^plX&2?PUw%99^0iK0%4&_S7b@2=QCG@0SA5Kw9L>ZV*DKl{de zSJm$=Wr+5gz0NgPENA{1ZSI+3=dT_v-`;!3O-E_ZLiEbp8ern<8EG+y385vs>SOczdtwUhSd2tHw;;oDz><;i=Wo;X|YqT z!nK1^flZg|*4nMt*GiDj*`!-MK||=~%-QDAA5EQ3=m+yIo3sCA*6r&1h3}VW__DS- z&sUgNQ8dTj`RnFiOnZutR_{=Lmp9?T>#zl9E_cS>o}^mWw0_oBw^f~U>s8|vGb{dx zEYb}>p}Hx#XVY|sDa^GGU;T{g5L0h>W^lzWjgv8X!8zM+v*X|I>U}r==K1Ga^3RI@ zyR`gEAkUrVf8Wakzb@$2NSnZ~yyDeyXWqX31x+dS(>rHwi%_1f<#eqkizD%M$l8qL zgUMd*?2U#0oUL^>PjCNyq?gO->n3rtxSQtRs?+ZC{qMI@&*3W0zj7(_)U^|$YZ7N9 z++H|G{0V!u%H5kW>sQ&9Pd~hLN3GPaEc+*mCUZ^9w&818efTdy zXZviitHwetrhi&wG>-1ADa|Dsyx*;H_3^!F7rYC;X3VgSP9KONm>&h+qxT)p;67h>^&Mo3oJg#y6_A1=d(6=zM z{b+4f-lF7v2R^b?o-|>M(%6?XVZV<2@yBLj@jssSr>&hSS@rtso!!ahOCvb6%~oDM zzQX>_Lbq1Ct-6_aj!shEaH3Fa>tSzwcjE~H_S4+1aldWaF(>2Sud2usv;MuClwG!! z{eV-{5|xPQlIxT#Cls;Utr6U=RdT*E&-zz<(>xgm`=b%dS@v*d7Ehfyo%=$S#^x!! zi)(d!MP!2G!+H`Mucc?REZliSz2MaO;^O&>a-&|R=vcH)UAADKsI0BS-^R`z^ETL5 zu-@jVyZ-j)i~kRA6s!2Exs+==POaYB9Jj2Zx&M3ouX*+7Kd;y%#20p@T*q(e^xGz~ z`OQ0bFz46h?!Lxuvrm=tx0(Ldy+@`-8}?L%E2dT^-7ENOeM+EGG%G^!YI+2B*QcoS zXMX6Kh-MtnIPtf|HqMYE-uTR{orl}9J&))LY+=51v3a$&lW)VF3Hw&c-@Tj|%=@_G z%GT4x1=eBLns)6HPe?yI^_gr(W4M~Xg4vsz$98(ZCnelCRq^RVbis2?v82hOp0i{v zL=wB#_{z-m%#Dpn$=dbl$-eidofY$R!q^ICs0U6H+#Xqf%l7TNLvnF3*B+mXmS5u) zk&(7*sg!NcSBY7XooyV#*VqrAopSPD^3qQ_Uq3T(mRg5cNvO|owz@dQpt()q)Gzn1 z&L%fWZ6bsqaWkH3MIJGCsY z+@7E=A{^eZbgog~oulHRMjcF&b8i1MWcX8~s=WHa$1{^|EI+z(Q_PAG)(w@4UYpmy zTfN`)-Rx9VS-*A`Z6y5OK zvohnsL*^CfClVe!&av72p=w*gbA_n|t0pBD_`JKc;pg->*5&Jtie7bjJS$T_-{78u zqJPVicXwxR>z8=4%R_q#t03c~<`##Pxx5^5vWq{@f4D_na{7WEe$~9l%9Ar$wB|By z@?&36cTB?vIz=HkKd!HYFlKX8p+-18cue?7)n60Dq7EiFnqf0YY*b*P@dg>T; z!KGZQ$!$Z0*#{MsF3HpujXm?*zbq1Ck9yqAa%caUMpxU3&!+zI)bYqU9F@YEI&s3P z39&q%W5RjXpKE9`n>@ieW#8JF3%xrd!(MH@V|wbZlX*(U^0zNHd|IG4`+`Z*`V9Xn zt&g*Ab^e{f9PeNGjqzfUY|*#OTT`?}x%a&P%rO0j@9Akil`kT8{yw2MYjLH(i$9ao zC!fl2aT0X z1Q}jlvJ^h}+wk#=Xg7C0!S=#LURHmOm*-|S=rwvhIFi~v!=!U*P5UpGlJW&kOi#{L zEoASi2)EfGuyB@*y}|R7LHx?!IaCETv)AjiE?H>v+GNR>N&ffU>Mgsc=PXa2dNJk( zhe%2Fl7&3y!VQc>_ITaX@bjr-=l*6j-BM{R4Lf3N$e<#qbz(>J^L z{$?kdSby5|e}=4k!^#k$*E!Z-Zh0-S&pcK1P257k>Sl`m#uIaUn>L?TJN4&azm)aU z(z|!o&JgvJxOJx`qF9IF$NQ>O?vwM{#jih7y}LX*L`CghfYSa;z6w%$YgA8VpD2qc z%DHng-hT3dy#J;5er|5eJ#|4NQEtI3`J3u{m{NZ|JU_47II!K=F7>s;;f1*o3~iTV zkBJI2Z8tAE{_Kj9-jc_R?6sb6#r zv*)dO!&Ffw6i{pyBao3$`-GD@K=u61oa^B{(lefa-}TO3IWNp2``+zBcAm)}T4$%3 z+lyZ+W(`;V*PP1ze@i7z|!bGI!>5V|%!jQMf%q&eoZ z!w=8CQ12Gp_OMIUU)QnpM0DVTJv*j1l*+9%PSE&xApO$2Ga5$rP1chYYBgM(cg+94 zyouevKeg;UdkuS>%bU-CCdc#MspPxK@bnM6NkEDY=h@HR=PYYly;J5HZ`WymlU%IN z*e`bPmrjb@zwd9=3+gOdE+#byO4oJVJy)I+%J*_-|6!AYXX0t1^(!tY)z^LdnOAe- zTyZep^Y-A!%stPX-<9o~UF31Tc5$Qeegj6s$P0_vbRT6O8x8ulGL9BcnF1tiOvENoD$6~6HH+p&ck887(PUJ%W9 zxVtS-xl)%eXiwkr#_30;m)r}APimWdxI|NW^|I9&GnZ)m%9Y=IR{hqp%-f0*mtITl zRk~PUIpf%y1fIGAE90t}+m}rI7IFOBJto1*s1@6uG=>~L_K|5?#AQcYHfCAz(@8h? zANk|Z=T`sSPOLoqmhLfKm`Y)^$rOfzd%QoEYdc!+2WcIXelaIyBxDc_5dsElBE$2k{Hk|#qXj75<>Lt(L z*Z(f^~C%qFH%$AKa!ttY{vIf-)96A9SgJgJmuvA zKTRPki76|ln@jxo@_L{8mZhKWel+d=mgTWYabq5@|E^t6*Y4nPUdpQY$zbVbr;rCO z7G|+)H}6$zSCa|8W?FhJuWt|6onP}6%8#!TH2m$U_;sJ%%X@Y{ZhxiA^Zbh*|KoLa zJ9IPdW2qDS!>?aHnq{b*Gi%?w@&A#Be;lHgvm902@k7c|VJ-8n<>J#HY(*7VU5hjv|FK?mJE*4g@WSkj+>$wcYZh|{ePKH>Y2KaGfY4*!Oq!{zkA2RBFFav2 zq3K?Z(eu9+)gMpyCEQ;6_-~NAhu`#19=u1E+H;68>l(lRCNH(k=f=a|VZ3|ab>{B; zuu51a>wlttf>W>V-+x_Vhd+fL3bqW=jtlqbKf)5rapKQi2ln@M>G!#IZ