diff --git a/config/dev.env.js b/config/dev.env.js index 8ad345d7..86969884 100644 --- a/config/dev.env.js +++ b/config/dev.env.js @@ -4,5 +4,5 @@ const prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV: '"development"', - VUE_APP_BASE_API:'"/dev-api"' + VUE_APP_BASE_API: '"/api"' }) diff --git a/config/index.js b/config/index.js index 39faa0ae..7e58e1c7 100644 --- a/config/index.js +++ b/config/index.js @@ -10,20 +10,20 @@ module.exports = { assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { - "/dev-api": { + "/api": { // 请求的目标主机 - target: 'http://116.255.135.38:8081/nsgk_test/', - //target: 'http://192.168.31.107:8080/', + //target: 'http://116.255.135.38:8081/nsgk_test/', + target: 'http://localhost:8080/', changeOrigin: true, pathRewrite: { - '^/dev-api': '' + '^/api': '' } } }, // Various Dev Server settings host: '0.0.0.0', // can be overwritten by process.env.HOST - port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined + port: 85, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined autoOpenBrowser: false, errorOverlay: true, notifyOnErrors: true, diff --git a/config/prod.env.js b/config/prod.env.js index a6f99761..3e6df50f 100644 --- a/config/prod.env.js +++ b/config/prod.env.js @@ -1,4 +1,5 @@ 'use strict' module.exports = { - NODE_ENV: '"production"' + NODE_ENV: '"production"', + VUE_APP_BASE_API: '"/api"' } diff --git a/index.html b/index.html index 75a333e9..d25baa43 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,9 @@ + + 农燊高科 diff --git a/package-lock.json b/package-lock.json index 18df452b..7dd78f75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5676,6 +5676,11 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "jquery": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-3.6.0.tgz?cache=0&sync_timestamp=1614705639458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjquery%2Fdownload%2Fjquery-3.6.0.tgz", + "integrity": "sha1-xyoJ8Vwb3OFC9J2/EXC9+K2sJHA=" + }, "js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", diff --git a/package.json b/package.json index dc260985..f5d12287 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "axios": "^0.21.1", + "jquery": "^3.6.0", "global": "^4.4.0", "js-cookie": "^2.2.1", "lib-flexible": "^0.3.2", diff --git a/src/api/authenticRight/index.js b/src/api/authenticRight/index.js new file mode 100644 index 00000000..c354a048 --- /dev/null +++ b/src/api/authenticRight/index.js @@ -0,0 +1,80 @@ +import request from '@/utils/request' + + +//查询列表 +export function listSampling(data){ + return request({ + url:'service/sampling/list', + method:'get', + params:data + }) +} +// 删除农户抽样 +export function delSampling(id) { + return request({ + url: '/service/sampling/remove/' + id, + method: 'get' + }) +} +export function updateSampling(data) { + return request({ + url: '/service/sampling/edit', + method: 'post', + data: data + }) +} +// 查询农户抽样详细 +export function getInvestigate(id) { + return request({ + url: '/service/sampling/getInvestigate/' + id, + method: 'get' + }) +} +// 新增农户抽样 +export function addSampling(data) { + return request({ + url: '/service/sampling/add', + method: 'post', + data: data + }) +} +// 新增农户抽样 +export function addInvestigate(data) { + return request({ + url: '/service/sampling/addInvestigate', + method: 'post', + data: data + }) +} +// 修改农户抽样 +export function updateInvestigate(data) { + return request({ + url: '/service/sampling/editInvestigate', + method: 'post', + data: data + }) +} +//查询列表 +export function listSamplingDept(data){ + return request({ + url:'service/sampling/listSamplingDept', + method:'get', + params:data + }) +} +// 修改农户抽样 +export function uploadFile(data) { + return request({ + url: '/service/sampling/ocr/idcard', + method: 'post', + data: data + }) +} +// 修改农户抽样 +export function uploadFileBase(data) { + return request({ + url: '/common/upload', + method: 'post', + data: data + }) +} diff --git a/src/api/homestead/index.js b/src/api/homestead/index.js new file mode 100644 index 00000000..7420f76f --- /dev/null +++ b/src/api/homestead/index.js @@ -0,0 +1,153 @@ +import request from '@/utils/request' + +// 获取区下拉 +export function bigDataHcAreaInfo(query) { + return request({ + url: '/bigData/hc/hcAreaInfo', + method: 'get', + params: query + }) +} + + +// 获取乡镇下拉 +export function bigDataHcCountyInfo(query) { + return request({ + url: '/bigData/hc/hcCountyInfo', + method: 'get', + params: query + }) +} + +//获取村级下拉 +export function bigDataHcVillageInfo(query) { + return request({ + url: '/bigData/hc/hcVillageInfo', + method: 'get', + params: query + }) +} + +//右侧详情农房农地列表 +export function hcBottomSearch(query) { + return request({ + url: '/bigData/hc/hcBottomSearch', + method: 'get', + params: query + }) +} + +//上传附件图片 +export function commonUpload(query) { + return request({ + url: '/common/upload', + method: 'post', + data: query + }) +} + +//农房新增 +export function houseAdd(query) { + return request({ + url: '/geo/house/add', + method: 'post', + data: query + }) +} +//农房编辑 +export function houseEdit(query) { + return request({ + url: '/geo/house/edit', + method: 'post', + data: query + }) +} + + + +//农地新增 +export function landAdd(query) { + return request({ + url: '/geo/land/add', + method: 'post', + data: query + }) +} + +//农地编辑 +export function landEdit(query) { + return request({ + url: '/geo/land/edit', + method: 'post', + data: query + }) +} + +//获取区、镇、村地区 +export function treeselectByUser(query) { + return request({ + url: '/system/dept/treeselectByUser', + method: 'get', + params: query + }) +} + + +//获取村的经纬度 +export function deptGetId(id) { + return request({ + url: '/system/dept/get/' + id, + method: 'get', + + }) +} + +//查询农地地信息 +export function getLand(id) { + return request({ + url: '/geo/land/get/' + id, + method: 'get', + }) +} + +//查询农房信息 +export function getHouse(id) { + return request({ + url: '/geo/house/get/' + id, + method: 'get', + }) +} + +//获取接口地图地址 +export function currentLocation(query) { + return request({ + url: '/bigData/common/currentLocation', + method: 'get', + params: query + }) +} + +//修改坐标数据同步 +export function coordinatesUpdateGeo(data) { + return request({ + url: '/geo/geo/coordinatesEdit', + method: 'post', + data: data + }) +} + +//删除农房信息 +export function houseRemove(id) { + return request({ + url: '/geo/house/remove/' + id, + method: 'get', + }) +} + +//删除农地信息 +export function landRemove(id) { + return request({ + url: '/geo/land/remove/' + id, + method: 'get', + }) +} \ No newline at end of file diff --git a/src/api/login/index.js b/src/api/login/index.js index 7f83f7ff..4543b611 100644 --- a/src/api/login/index.js +++ b/src/api/login/index.js @@ -11,7 +11,10 @@ export function login(username, password, code, uuid) { return request({ url: '/login', method: 'post', - data: data + data: data, + headers: { + isToken: false + } }) } @@ -25,7 +28,10 @@ export function smsLogin(mobile, smsCode, uuid) { return request({ url: '/sms/login', method: 'post', - data: data + data: data, + headers: { + isToken: false + } }) } @@ -49,7 +55,10 @@ export function logout() { export function getCodeImg() { return request({ url: '/captchaImage', - method: 'get' + method: 'get', + headers: { + isToken: false + } }) } @@ -63,7 +72,7 @@ export function getSmsCode(mobile) { return request({ url: '/sms/code', method: 'post', - data:data + data: data }) } diff --git a/src/assets/images/homestead/cun.jpg b/src/assets/images/homestead/cun.jpg new file mode 100644 index 00000000..75edb272 Binary files /dev/null and b/src/assets/images/homestead/cun.jpg differ diff --git a/src/assets/images/homestead/delete_icon.png b/src/assets/images/homestead/delete_icon.png new file mode 100644 index 00000000..8b1c89c9 Binary files /dev/null and b/src/assets/images/homestead/delete_icon.png differ diff --git a/src/assets/images/homestead/jia.png b/src/assets/images/homestead/jia.png new file mode 100644 index 00000000..e956f801 Binary files /dev/null and b/src/assets/images/homestead/jia.png differ diff --git a/src/assets/images/homestead/jian.png b/src/assets/images/homestead/jian.png new file mode 100644 index 00000000..afa05886 Binary files /dev/null and b/src/assets/images/homestead/jian.png differ diff --git a/src/assets/images/homestead/login_bg.jpg b/src/assets/images/homestead/login_bg.jpg index b06ff882..e6b21092 100644 Binary files a/src/assets/images/homestead/login_bg.jpg and b/src/assets/images/homestead/login_bg.jpg differ diff --git a/src/assets/images/homestead/mark.png b/src/assets/images/homestead/mark.png new file mode 100644 index 00000000..f5f29b0c Binary files /dev/null and b/src/assets/images/homestead/mark.png differ diff --git a/src/assets/images/homestead/no_img.png b/src/assets/images/homestead/no_img.png new file mode 100644 index 00000000..d97ab083 Binary files /dev/null and b/src/assets/images/homestead/no_img.png differ diff --git a/src/assets/images/homestead/zhen.jpg b/src/assets/images/homestead/zhen.jpg new file mode 100644 index 00000000..dee77046 Binary files /dev/null and b/src/assets/images/homestead/zhen.jpg differ diff --git a/src/assets/maps/plotPremises_huancui.json b/src/assets/maps/plotPremises_huancui.json new file mode 100644 index 00000000..f41b1b10 --- /dev/null +++ b/src/assets/maps/plotPremises_huancui.json @@ -0,0 +1,12 @@ +{ +"type": "FeatureCollection", +"name": "huancui", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3857" } }, +"features": [ +{ "type": "Feature", "properties": { "name": "温泉镇" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13605386.017499998211861, 4487317.417900003492832 ], [ 13605414.626599997282028, 4487193.214599996805191 ], [ 13605505.463299997150898, 4486973.377099997363985 ], [ 13605651.0692, 4486564.939700002782047 ], [ 13605732.8891, 4486331.953999997116625 ], [ 13605777.750799998641014, 4486204.262100003659725 ], [ 13605806.359899997711182, 4485984.585299994796515 ], [ 13605827.399300001561642, 4485887.27929999306798 ], [ 13605837.4181, 4485841.21679999306798 ], [ 13605846.546299997717142, 4485827.496099997311831 ], [ 13605851.778300002217293, 4485819.655699995346367 ], [ 13605863.46679999679327, 4485820.495699996128678 ], [ 13605978.3485, 4485829.316200000233948 ], [ 13606035.678099993616343, 4485724.171299997717142 ], [ 13606083.4341000020504, 4485755.252599999308586 ], [ 13606093.007599998265505, 4485762.392899997532368 ], [ 13606090.669899998232722, 4485776.673600002191961 ], [ 13606083.4341000020504, 4485786.334099995903671 ], [ 13606059.61179999820888, 4485824.555899998173118 ], [ 13606047.589299995452166, 4485884.199100000783801 ], [ 13606088.220899997279048, 4485896.099799993447959 ], [ 13606109.705499995499849, 4485893.719700001180172 ], [ 13606100.1321, 4485857.877699999138713 ], [ 13606121.727999998256564, 4485791.094299998134375 ], [ 13606186.181999988853931, 4485802.994899997487664 ], [ 13606183.733000002801418, 4485810.135199999436736 ], [ 13606179.0576, 4485874.678599998354912 ], [ 13606210.1157, 4485874.678599998354912 ], [ 13606226.81360000371933, 4485848.357199989259243 ], [ 13606248.298299998044968, 4485857.877699999138713 ], [ 13606264.9962, 4485860.257799997925758 ], [ 13606272.120700001716614, 4485848.357199989259243 ], [ 13606288.929899998009205, 4485841.21679999306798 ], [ 13606293.716700004413724, 4485793.474399999715388 ], [ 13606348.597199998795986, 4485731.311599996872246 ], [ 13606386.779799997806549, 4485750.492399997077882 ], [ 13606389.228799998760223, 4485769.533299997448921 ], [ 13606463.2562, 4485786.334099995903671 ], [ 13606501.438800001516938, 4485845.976999996230006 ], [ 13606515.7989999987185, 4485836.456500000320375 ], [ 13606499.10109999589622, 4485764.773100004531443 ], [ 13606527.710199996829033, 4485683.569700003601611 ], [ 13606625.671400001272559, 4485693.090099996887147 ], [ 13606618.546899994835258, 4485564.145900005474687 ], [ 13606661.5163, 4485573.666199996136129 ], [ 13606694.912100002169609, 4485597.606799995526671 ], [ 13606718.8458, 4485666.909099998883903 ], [ 13606723.632499996572733, 4485700.230299997143447 ], [ 13606721.183499995619059, 4485733.691699995659292 ], [ 13606735.543699998408556, 4485752.872500002384186 ], [ 13606761.815100001171231, 4485764.773100004531443 ], [ 13606776.175300003960729, 4485788.714199992828071 ], [ 13606778.513, 4485810.135199999436736 ], [ 13606835.842600002884865, 4485779.053700000979006 ], [ 13606852.651800001040101, 4485767.153199994936585 ], [ 13606869.349699998274446, 4485769.533299997448921 ], [ 13606871.6875, 4485791.094299998134375 ], [ 13606864.563000002875924, 4485814.895400002598763 ], [ 13606864.563000002875924, 4485843.596899999305606 ], [ 13606847.865099996328354, 4485869.918300003744662 ], [ 13606864.563000002875924, 4485886.579299997538328 ], [ 13606890.834399998188019, 4485905.760399997234344 ], [ 13606948.163900002837181, 4485903.38019999768585 ], [ 13606981.671099996194243, 4485920.041199994273484 ], [ 13606984.008799996227026, 4485941.6025 ], [ 13607017.404700001701713, 4485963.023899999447167 ], [ 13607015.06700000166893, 4486115.914800000376999 ], [ 13607010.280199995264411, 4486144.617099998518825 ], [ 13607015.06700000166893, 4486199.501699997112155 ], [ 13607055.698599997907877, 4486232.964599996805191 ], [ 13607110.579099996015429, 4486247.245899996720254 ], [ 13607203.7535, 4486204.262100003659725 ], [ 13607232.4739, 4486213.782899996265769 ], [ 13607282.567699998617172, 4486249.626199997961521 ], [ 13607344.684000002220273, 4486256.906799998134375 ], [ 13607399.119199998676777, 4486286.029500000178814 ], [ 13607406.800300002098083, 4486290.229899999685585 ], [ 13607480.827699998393655, 4486340.494799996726215 ], [ 13607502.312399996444583, 4486359.536799997091293 ], [ 13607507.09909999743104, 4486400.141000002622604 ], [ 13607547.7307, 4486505.292599998414516 ], [ 13607550.179799994453788, 4486584.121999997645617 ], [ 13607531.032799996435642, 4486691.655799998901784 ], [ 13607490.40119999460876, 4486725.120300002396107 ], [ 13607480.382399996742606, 4486738.142099997960031 ], [ 13607466.467500001192093, 4486756.064599992707372 ], [ 13607468.916500002145767, 4486787.148999996483326 ], [ 13607444.9828, 4486889.924099993892014 ], [ 13607397.2268, 4487011.74339999910444 ], [ 13607349.47070000320673, 4487073.773699995130301 ], [ 13607306.501400001347065, 4487138.324900002218783 ], [ 13607311.288099996745586, 4487267.288300001062453 ], [ 13607320.861599998548627, 4487286.331900000572205 ], [ 13607299.265600005164742, 4487305.515600003302097 ], [ 13607344.684000002220273, 4487369.92809999641031 ], [ 13607354.257499998435378, 4487401.014300003647804 ], [ 13607351.919699998572469, 4487439.242099999450147 ], [ 13607342.3462999984622, 4487441.622500000521541 ], [ 13607361.3819, 4487465.567500001750886 ], [ 13607382.8666, 4487491.752899992279708 ], [ 13607378.191100003197789, 4487520.458999999798834 ], [ 13607359.04420000500977, 4487520.458999999798834 ], [ 13607354.257499998435378, 4487537.262599997222424 ], [ 13607380.417499996721745, 4487564.708499998785555 ], [ 13607442.5337999984622, 4487645.926299996674061 ], [ 13607471.142899997532368, 4487684.154999998398125 ], [ 13607471.142899997532368, 4487727.144899998791516 ], [ 13607447.320500003173947, 4487717.482600004412234 ], [ 13607404.351200001314282, 4487746.189299996942282 ], [ 13607351.808399997651577, 4487755.711499996483326 ], [ 13607318.301299996674061, 4487750.950400000438094 ], [ 13607303.940999997779727, 4487774.89599999319762 ], [ 13607213.215699996799231, 4487774.89599999319762 ], [ 13607170.246299995109439, 4487841.691999999806285 ], [ 13607136.7392, 4487875.160199996083975 ], [ 13607103.3433, 4487903.867299997247756 ], [ 13607118.928000003099442, 4487923.332199996337295 ], [ 13607122.490299997851253, 4487927.813299998641014 ], [ 13607077.183200001716614, 4488012.394900004379451 ], [ 13607073.954999998211861, 4488018.276399996131659 ], [ 13607069.168200001120567, 4488070.790099995210767 ], [ 13607082.303900003433228, 4488093.476199999451637 ], [ 13607130.06, 4488140.10869999602437 ], [ 13607157.5559, 4488160.414200000464916 ], [ 13607182.602799993008375, 4488186.74139999691397 ], [ 13607194.62529999576509, 4488207.047099999152124 ], [ 13607196.962999997660518, 4488252.419699993915856 ], [ 13607218.4477, 4488358.710199994966388 ], [ 13607223.234399994835258, 4488423.129199996590614 ], [ 13607235.256899997591972, 4488457.859599997289479 ], [ 13607245.943599998950958, 4488473.404299997724593 ], [ 13607266.203699996694922, 4488482.927199994213879 ], [ 13607287.799699995666742, 4488488.949 ], [ 13607354.591399995610118, 4488527.040700003504753 ], [ 13607444.203599998727441, 4488595.241899998858571 ], [ 13607460.901500001549721, 4488641.736599997617304 ], [ 13607427.505700001493096, 4488701.535899996757507 ], [ 13607372.513799998909235, 4488749.291500000283122 ], [ 13607365.389399997889996, 4488769.598200002685189 ], [ 13607367.83839999884367, 4488779.121299995109439 ], [ 13607502.757700003683567, 4488788.644500001333654 ], [ 13607513.555600002408028, 4488799.42809999641031 ], [ 13607529.029099997133017, 4488795.786899997852743 ], [ 13607545.727, 4488776.740500002168119 ], [ 13607561.311699997633696, 4488773.099299996159971 ], [ 13607610.2923, 4488771.978999999351799 ], [ 13607661.610599998384714, 4488739.768399995751679 ], [ 13607712.928800001740456, 4488739.768399995751679 ], [ 13607803.765600005164742, 4488761.19539999961853 ], [ 13607874.230800002813339, 4488787.524099997244775 ], [ 13607892.1532, 4488803.069300003349781 ], [ 13607924.324600003659725, 4488820.995300003327429 ], [ 13607966.180699996650219, 4488835.28010000102222 ], [ 13608187.149899994954467, 4488860.348600000143051 ], [ 13608184.81220000423491, 4488914.126999996602535 ], [ 13608159.765299996361136, 4488898.581699992530048 ], [ 13608127.482600001618266, 4488896.200800000689924 ], [ 13608105.997999997809529, 4488891.4392 ], [ 13608084.5133, 4488874.633500001393259 ], [ 13608037.870399996638298, 4488874.633500001393259 ], [ 13608034.308200001716614, 4488881.775899994187057 ], [ 13608019.948, 4488890.178800002671778 ], [ 13608006.812299996614456, 4488893.820000001229346 ], [ 13607990.1144, 4488890.178800002671778 ], [ 13607982.9899, 4488908.104900001548231 ], [ 13607984.103100003674626, 4488923.650300002656877 ], [ 13607979.427699998021126, 4488943.957299996167421 ], [ 13607965.0675, 4488945.077699995599687 ], [ 13607935.233900001272559, 4488936.814799996092916 ], [ 13607910.07570000179112, 4488928.411899998784065 ], [ 13607875.344, 4488933.173599999397993 ], [ 13607818.014399997889996, 4488961.743499998934567 ], [ 13607756.009499993175268, 4488971.266900000162423 ], [ 13607679.532999997958541, 4488961.743499998934567 ], [ 13607684.319700002670288, 4489105.154600001871586 ], [ 13607502.869, 4489171.958999999798834 ], [ 13607555.411799997091293, 4489214.954999996349216 ], [ 13607622.203500002622604, 4489262.712899995967746 ], [ 13607736.862499995157123, 4489267.474699997343123 ], [ 13607837.272699996829033, 4489243.665799998678267 ], [ 13607885.028800003230572, 4489281.9002 ], [ 13607956.718500005081296, 4489286.661999998614192 ], [ 13608076.053000003099442, 4489248.427499998360872 ], [ 13608052.2307, 4489315.232900000177324 ], [ 13608061.8040999956429, 4489377.416900001466274 ], [ 13608018.723499998450279, 4489401.22620000038296 ], [ 13607961.394000001251698, 4489396.464299997314811 ], [ 13607913.637900002300739, 4489391.702499997802079 ], [ 13607913.637900002300739, 4489410.889999999664724 ], [ 13607956.718500005081296, 4489444.223099997267127 ], [ 13607956.718500005081296, 4489487.220200000330806 ], [ 13607990.1144, 4489482.458299998193979 ], [ 13607999.687899995595217, 4489563.69099999871105 ], [ 13608085.7378, 4489554.167099993675947 ], [ 13608200.396899998188019, 4489496.884000002406538 ], [ 13608276.762100003659725, 4489496.884000002406538 ], [ 13608353.2386, 4489458.64879999961704 ], [ 13608429.71509999781847, 4489487.220200000330806 ], [ 13608556.17400000244379, 4489467.052099999040365 ], [ 13608557.398500002920628, 4489487.3602 ], [ 13608882.228799998760223, 4489600.806099999696016 ], [ 13608882.228799998760223, 4489603.187099998816848 ], [ 13608885.9023, 4489622.374999999068677 ], [ 13608910.949199996888638, 4489629.517899993807077 ], [ 13608913.286899998784065, 4489642.683399997651577 ], [ 13608925.3094, 4489645.064400001429021 ], [ 13608928.8716000020504, 4489631.898900002241135 ], [ 13608963.492, 4489642.683399997651577 ], [ 13608963.492, 4489652.207299997098744 ], [ 13608956.3676, 4489666.493299995549023 ], [ 13608965.8297, 4489672.515799999237061 ], [ 13608982.638999998569489, 4489680.919299995526671 ], [ 13609008.910400003194809, 4489686.801699997857213 ], [ 13609018.4838, 4489678.538299998268485 ], [ 13609014.8103, 4489652.207299997098744 ], [ 13608998.1124, 4489643.80379999987781 ], [ 13608969.503300001844764, 4489637.921399997547269 ], [ 13608970.616499997675419, 4489628.39750000089407 ], [ 13608976.627700002864003, 4489625.876400001347065 ], [ 13608988.538900004699826, 4489625.876400001347065 ], [ 13608984.976699998602271, 4489610.470100002363324 ], [ 13608974.289999997243285, 4489602.066600002348423 ], [ 13608961.15429999679327, 4489594.923699996434152 ], [ 13608957.480800004675984, 4489575.73589999973774 ], [ 13608953.918499998748302, 4489561.450099996291101 ], [ 13608963.492, 4489566.211999996565282 ], [ 13608976.627700002864003, 4489564.951499996706843 ], [ 13608983.8635, 4489555.427599993534386 ], [ 13608964.71650000102818, 4489526.715999994426966 ], [ 13608979.076700003817677, 4489510.0493 ], [ 13609000.56139999628067, 4489493.242599996738136 ], [ 13609019.597000004723668, 4489498.00450000166893 ], [ 13609045.8684, 4489440.72169999871403 ], [ 13609065.015399996191263, 4489385.680099998600781 ], [ 13609081.713299993425608, 4489376.156400002539158 ], [ 13609115.2205, 4489352.347199997864664 ], [ 13609100.860299997031689, 4489347.58530000038445 ], [ 13609086.5, 4489330.77889999654144 ], [ 13609136.705099998041987, 4489323.636099999770522 ], [ 13609186.7989, 4489314.112499992363155 ], [ 13609203.608199998736382, 4489318.874299999326468 ], [ 13609203.608199998736382, 4489283.020599994808435 ], [ 13609196.372399996966124, 4489259.211599997244775 ], [ 13609277.6356, 4489194.64739999268204 ], [ 13609320.604900002479553, 4489173.219499998725951 ], [ 13609325.391700001433492, 4489154.032399996183813 ], [ 13609346.8763, 4489149.270700000226498 ], [ 13609375.5968, 4489127.702799996361136 ], [ 13609397.0814, 4489130.223699998110533 ], [ 13609411.330300005152822, 4489118.179300001822412 ], [ 13609356.449800001457334, 4489036.950099996291101 ], [ 13609351.663099996745586, 4489017.903300002217293 ], [ 13609401.868199998512864, 4488931.913199997507036 ], [ 13609451.961900003254414, 4488953.340600000694394 ], [ 13609459.197699997574091, 4488931.913199997507036 ], [ 13609406.6549, 4488915.247399995103478 ], [ 13609404.205899998545647, 4488862.589399999007583 ], [ 13609432.926299998536706, 4488788.644500001333654 ], [ 13609389.84570000320673, 4488738.367899998091161 ], [ 13609444.8375, 4488714.560099991969764 ], [ 13609456.748699998483062, 4488714.560099991969764 ], [ 13609468.8825, 4488652.240000002086163 ], [ 13609528.5497, 4488676.187699999660254 ], [ 13609557.2702, 4488688.091499994508922 ], [ 13609597.7905, 4488704.896999998018146 ], [ 13609664.6935, 4488712.039300001226366 ], [ 13609712.449500001966953, 4488680.949199995957315 ], [ 13609757.8679, 4488640.336199998855591 ], [ 13609772.228100001811981, 4488628.432399996556342 ], [ 13609824.770900005474687, 4488606.865599991753697 ], [ 13609882.1004, 4488568.633599996566772 ], [ 13609917.945299994200468, 4488563.872100003063679 ], [ 13609939.429999997839332, 4488573.395099994726479 ], [ 13609958.465599995106459, 4488561.49139999691397 ], [ 13609975.274899993091822, 4488571.014300001785159 ], [ 13610020.693199995905161, 4488559.110600001178682 ], [ 13610056.538099996745586, 4488571.014300001785159 ], [ 13610120.9921, 4488590.200299999676645 ], [ 13610159.285999998450279, 4488580.677399998530746 ], [ 13610230.8644, 4488590.200299999676645 ], [ 13610211.8288, 4488540.064699996262789 ], [ 13610216.615500003099442, 4488494.690799996256828 ], [ 13610226.07769999653101, 4488411.085599998012185 ], [ 13610235.09459999576211, 4488408.28479999769479 ], [ 13610257.135799996554852, 4488401.422799996100366 ], [ 13610312.127600001171231, 4488391.899999999441206 ], [ 13610376.581600001081824, 4488399.042099999263883 ], [ 13610414.875499997287989, 4488394.280699997209013 ], [ 13610469.755999997258186, 4488379.996499995701015 ], [ 13610519.961099993437529, 4488396.661399992182851 ], [ 13610567.717200005427003, 4488427.750600000843406 ], [ 13610598.775300005450845, 4488492.310099996626377 ], [ 13610644.082400001585484, 4488552.108499996364117 ], [ 13610699.074199996888638, 4488638.095499998889863 ], [ 13610739.705799996852875, 4488685.85080000013113 ], [ 13610734.919100001454353, 4488657.141599995084107 ], [ 13610756.4037000015378, 4488623.670900001190603 ], [ 13610761.190499994903803, 4488587.959599999710917 ], [ 13610773.101699996739626, 4488583.058099999092519 ], [ 13610785.0128, 4488552.108499996364117 ], [ 13610799.373099995777011, 4488530.541799999773502 ], [ 13610835.21789999678731, 4488516.257399997673929 ], [ 13610849.5781, 4488499.452200001105666 ], [ 13610873.400499997660518, 4488494.690799996256828 ], [ 13610909.245399992913008, 4488482.787199994549155 ], [ 13610935.516799997538328, 4488473.2643 ], [ 13610937.965799998492002, 4488489.929299999028444 ], [ 13610940.30349999293685, 4488530.541799999773502 ], [ 13610949.877, 4488556.869900002144277 ], [ 13610964.237199997529387, 4488561.631399997510016 ], [ 13610964.237199997529387, 4488537.684000000357628 ], [ 13610980.935099994763732, 4488535.303299995139241 ], [ 13610978.5974, 4488506.734499997459352 ], [ 13610992.846299996599555, 4488499.452200001105666 ], [ 13611011.9933, 4488506.734499997459352 ], [ 13611043.051399994641542, 4488475.645000004209578 ], [ 13611078.896300004795194, 4488480.406499997712672 ], [ 13611086.020699996501207, 4488492.310099996626377 ], [ 13611131.439099997282028, 4488499.452200001105666 ], [ 13611136.2258, 4488511.495899993926287 ], [ 13611162.49719999730587, 4488494.690799996256828 ], [ 13611186.3196, 4488501.97299999371171 ], [ 13611195.893100002780557, 4488513.87669999524951 ], [ 13611226.951200002804399, 4488513.87669999524951 ], [ 13611258.009400002658367, 4488537.684000000357628 ], [ 13611293.85419999808073, 4488542.5855 ], [ 13611367.8817, 4488513.87669999524951 ], [ 13611520.723399993032217, 4488475.645000004209578 ], [ 13611563.804, 4488492.310099996626377 ], [ 13611580.501900002360344, 4488475.645000004209578 ], [ 13611604.3243, 4488466.122100002132356 ], [ 13611652.191699998453259, 4488470.88359999563545 ], [ 13611650.521899996325374, 4488479.286099996417761 ], [ 13611649.742600003257394, 4488482.787199994549155 ], [ 13611625.9203, 4488506.734499997459352 ], [ 13611621.133500004187226, 4488547.347 ], [ 13611573.377499997615814, 4488580.677399998530746 ], [ 13611580.501900002360344, 4488592.72110000345856 ], [ 13611575.715200001373887, 4488616.52860000077635 ], [ 13611592.413099998608232, 4488616.52860000077635 ], [ 13611652.191699998453259, 4488568.773599995300174 ], [ 13611664.1029, 4488590.34039999730885 ], [ 13611633.044699996709824, 4488621.290099998936057 ], [ 13611551.781499993056059, 4488692.993099996820092 ], [ 13611487.327499998733401, 4488747.890999998897314 ], [ 13611410.851000001654029, 4488821.975599990226328 ], [ 13611317.787899997085333, 4488905.584099999628961 ], [ 13611286.729799997061491, 4488941.436499994248152 ], [ 13611241.31139999628067, 4488970.146499995142221 ], [ 13611205.4666, 4488989.193099997937679 ], [ 13611193.5554, 4489001.097299999557436 ], [ 13611100.381, 4489046.473499999381602 ], [ 13611047.838200004771352, 4489065.660300003364682 ], [ 13610966.57489999756217, 4489075.183799997903407 ], [ 13610985.721900001168251, 4489108.655899997800589 ], [ 13610997.633100003004074, 4489108.655899997800589 ], [ 13611021.5668, 4489175.460299997590482 ], [ 13611054.962599996477365, 4489285.401500001549721 ], [ 13611043.051399994641542, 4489314.112499992363155 ], [ 13611057.41160000115633, 4489464.53109999652952 ], [ 13611224.6135, 4489450.245499997399747 ], [ 13611157.710500001907349, 4489560.049500003457069 ], [ 13611115.409100003540516, 4489608.089099997654557 ], [ 13611072.439800001680851, 4489603.187099998816848 ], [ 13611029.4704, 4489591.282200000248849 ], [ 13610988.838799998164177, 4489565.091499998234212 ], [ 13610322.369, 4489493.38260000012815 ], [ 13610341.515999998897314, 4489531.617999999783933 ], [ 13610336.72919999808073, 4489569.853499997407198 ], [ 13610358.213899996131659, 4489588.901199996471405 ], [ 13610365.338399996981025, 4489617.612999995239079 ], [ 13610345.078199993818998, 4489654.028099998831749 ], [ 13610324.706699995324016, 4489669.434500000439584 ], [ 13610303.222099997103214, 4489692.263999997638166 ], [ 13610292.535400001332164, 4489719.715499993413687 ], [ 13610299.65990000218153, 4489719.715499993413687 ], [ 13610290.0864, 4489784.142899996601045 ], [ 13610265.039499996230006, 4489880.92469999473542 ], [ 13610346.191399998962879, 4489898.852499996311963 ], [ 13610486.0087, 4489919.161500001326203 ], [ 13610459.737300001084805, 4490027.849899998866022 ], [ 13610337.842399997636676, 4490000.397499999031425 ], [ 13610316.3578, 4490023.087700000964105 ], [ 13610304.446599997580051, 4490030.230899995192885 ], [ 13610306.784299997612834, 4490057.823399998247623 ], [ 13610297.210800001397729, 4490128.27559999935329 ], [ 13610291.3109, 4490180.939999998547137 ], [ 13610298.435299998149276, 4490188.08330000191927 ], [ 13610297.210800001397729, 4490221.418899999000132 ], [ 13610285.2996, 4490285.989399997517467 ], [ 13610290.0864, 4490293.132799995131791 ], [ 13610288.8619, 4490305.178499993868172 ], [ 13610275.726199997588992, 4490412.610299997031689 ], [ 13610255.466, 4490414.991499993950129 ], [ 13610236.319099996238947, 4490411.489699995145202 ], [ 13610229.1946, 4490504.635499997064471 ], [ 13610236.319099996238947, 4490511.779099998995662 ], [ 13610236.319099996238947, 4490533.34979999717325 ], [ 13610220.8457, 4490540.493399998173118 ], [ 13610119.322300003841519, 4490517.802100003696978 ], [ 13610097.8376, 4490515.42090000025928 ], [ 13610052.419299997389317, 4490524.945600002072752 ], [ 13610048.857000002637506, 4490548.897599998861551 ], [ 13610036.9459, 4490554.780499996617436 ], [ 13610002.214199995622039, 4490557.301799996756017 ], [ 13609991.527500003576279, 4490550.018099996261299 ], [ 13609833.899099994450808, 4490551.278800002299249 ], [ 13609836.2368, 4490602.684600001201034 ], [ 13609812.414399996399879, 4490625.376100000925362 ], [ 13609817.201199997216463, 4490631.259099997580051 ], [ 13609832.67459999397397, 4490622.854799999855459 ], [ 13609837.4613, 4490626.496699995361269 ], [ 13609843.472599996253848, 4490700.594499997794628 ], [ 13609903.139799995347857, 4490717.263099998235703 ], [ 13609918.6131999976933, 4490735.1924 ], [ 13609911.488799996674061, 4490762.646699998527765 ], [ 13609875.643899995833635, 4490821.197300001978874 ], [ 13609851.82150000333786, 4490874.985699994489551 ], [ 13609801.616499993950129, 4490925.13249999564141 ], [ 13609821.876599997282028, 4490957.489900001324713 ], [ 13609839.799, 4490958.610499997623265 ], [ 13609845.810299996286631, 4490975.419599998742342 ], [ 13609845.810299996286631, 4490992.088600000366569 ], [ 13609862.508199993520975, 4491029.068700001575053 ], [ 13609932.973499994724989, 4491030.329400002025068 ], [ 13609999.876500004902482, 4490816.574900000356138 ], [ 13610027.3724, 4490820.0767 ], [ 13610026.1479, 4490831.982999995350838 ], [ 13610042.845799997448921, 4490834.364200000651181 ], [ 13610040.508100003004074, 4490889.413399997167289 ], [ 13610027.3724, 4490930.03509999345988 ], [ 13610065.555, 4490943.062100000679493 ], [ 13610104.962100001052022, 4490827.220499997958541 ], [ 13610121.771300004795194, 4490833.243600001558661 ], [ 13610131.233499996364117, 4490835.624899997375906 ], [ 13610133.682499997317791, 4490845.149899996817112 ], [ 13610140.806900002062321, 4490846.410599999129772 ], [ 13610157.5049, 4490855.935599994845688 ], [ 13610167.078300001099706, 4490853.554399992339313 ], [ 13610169.527400001883507, 4490818.9561 ], [ 13610176.6518, 4490817.69550000037998 ], [ 13610180.214000003412366, 4490803.407999999821186 ], [ 13610188.563000001013279, 4490805.789200002327561 ], [ 13610180.214000003412366, 4490877.366999996826053 ], [ 13610170.640600003302097, 4490910.844800001010299 ], [ 13610164.740599997341633, 4490962.252499995753169 ], [ 13610176.6518, 4490967.015000001527369 ], [ 13610197.023299995809793, 4490958.7506 ], [ 13610193.3496999964118, 4490987.325999991968274 ], [ 13610205.37219999730587, 4490990.968000002205372 ], [ 13610217.2834, 4490998.111899997107685 ], [ 13610205.37219999730587, 4491068.570299996063113 ], [ 13610207.71, 4491104.430099997669458 ], [ 13610228.081399995833635, 4491082.9983000010252 ], [ 13610241.217099998146296, 4491079.356299992650747 ], [ 13610272.2753000035882, 4491079.356299992650747 ], [ 13610232.756800003349781, 4491222.656199998222291 ], [ 13610373.7986, 4491242.96760000102222 ], [ 13610363.000600002706051, 4491176.149999996647239 ], [ 13610339.178300002589822, 4491153.457299994304776 ], [ 13610324.818099996075034, 4491104.430099997669458 ], [ 13610309.233299998566508, 4491076.974999997764826 ], [ 13610285.411, 4491068.570299996063113 ], [ 13610290.197700001299381, 4491041.115299998782575 ], [ 13610379.6986, 4491080.617000000551343 ], [ 13610388.047499995678663, 4491075.854399998672307 ], [ 13610385.709799995645881, 4491073.332999998703599 ], [ 13610402.407699998468161, 4491075.854399998672307 ], [ 13610404.856799997389317, 4491092.523500002920628 ], [ 13610415.543399995192885, 4491100.928199994377792 ], [ 13610456.1751, 4491108.072099996730685 ], [ 13610457.399600001052022, 4491222.796199997887015 ], [ 13610546.9004, 4491255.014499999582767 ], [ 13610541.000500001013279, 4491270.563300000503659 ], [ 13610457.399600001052022, 4491252.633100003935397 ], [ 13610471.648500002920628, 4491323.093299997039139 ], [ 13610476.435199994593859, 4491323.093299997039139 ], [ 13610554.136200003325939, 4491313.567799997515976 ], [ 13610585.194399997591972, 4491323.093299997039139 ], [ 13610748.833999998867512, 4491397.196099990978837 ], [ 13610801.3768, 4491436.699099997989833 ], [ 13610872.955200001597404, 4491506.039899997413158 ], [ 13610902.900200001895428, 4491525.091200000606477 ], [ 13610966.129600005224347, 4491546.523899999447167 ], [ 13611010.323500001803041, 4491550.166099996306002 ], [ 13611041.381600001826882, 4491564.454599999822676 ], [ 13611007.985799998044968, 4491626.65189999807626 ], [ 13610987.61429999768734, 4491672.03929999936372 ], [ 13611090.3622, 4491715.185599997639656 ], [ 13611061.7531, 4491746.144599996507168 ], [ 13611044.943800002336502, 4491771.219999997876585 ], [ 13611021.1215, 4491790.411799993366003 ], [ 13610913.586799997836351, 4491837.0608000010252 ], [ 13610822.8614999987185, 4491835.799999999813735 ], [ 13610687.830899998545647, 4491888.3328 ], [ 13610698.628899998962879, 4491911.027099996805191 ], [ 13610814.512500002980232, 4491860.875600003637373 ], [ 13610815.625699996948242, 4491889.593599998392165 ], [ 13610808.501199996098876, 4491897.858800002373755 ], [ 13610711.764600001275539, 4491942.126699998043478 ], [ 13610684.268700001761317, 4491967.202599999494851 ], [ 13610669.9085, 4492000.683999995701015 ], [ 13610625.82599999755621, 4492040.049199997447431 ], [ 13610603.1168, 4492013.852399995550513 ], [ 13610589.98110000230372, 4492022.257700003683567 ], [ 13610575.6209, 4492005.446999994106591 ], [ 13610536.213799998164177, 4492062.74369999486953 ], [ 13610532.651600003242493, 4492150.020299999043345 ], [ 13610544.562700005248189, 4492156.044299999251962 ], [ 13610552.911700002849102, 4492184.623000002466142 ], [ 13610563.709700003266335, 4492185.883799994364381 ], [ 13610576.8454, 4492199.052399999462068 ], [ 13610572.0587, 4492268.398199996910989 ], [ 13610582.745300002396107, 4492323.314800001680851 ], [ 13610611.4658, 4492390.139700003899634 ], [ 13610600.667800003662705, 4492393.642099997960031 ], [ 13610582.745300002396107, 4492359.038800001144409 ], [ 13610567.271899998188019, 4492351.894000000320375 ], [ 13610579.1831, 4492384.115699998103082 ], [ 13610582.745300002396107, 4492400.927000001072884 ], [ 13610599.4432, 4492419.979900003410876 ], [ 13610612.578900001943111, 4492458.22590000089258 ], [ 13610626.9391999989748, 4492482.042199997231364 ], [ 13610636.5126, 4492513.003399993292987 ], [ 13610594.767800003290176, 4492511.8827 ], [ 13610591.094300001859665, 4492521.409199995920062 ], [ 13610574.3964, 4492552.510600000619888 ], [ 13610560.036100002005696, 4492552.510600000619888 ], [ 13610519.5159, 4492540.462300001643598 ], [ 13610469.310800002887845, 4492533.317399998195469 ], [ 13610463.299500003457069, 4492550.128999997861683 ], [ 13610454.950499996542931, 4492557.273900003172457 ], [ 13610457.399600001052022, 4492579.969599996693432 ], [ 13610454.950499996542931, 4492612.192000002600253 ], [ 13610425.116899996995926, 4492621.718699995428324 ], [ 13610420.330200001597404, 4492647.916999997571111 ], [ 13610395.283299997448921, 4492640.772000001743436 ], [ 13610382.147600004449487, 4492567.921299998648465 ], [ 13610348.6404, 4492560.776399995200336 ], [ 13610334.391500003635883, 4492564.418899997137487 ], [ 13610304.446599997580051, 4492603.7862000009045 ], [ 13610303.333400003612041, 4492644.414499997161329 ], [ 13610211.383499998599291, 4492714.744000003673136 ], [ 13610208.934499997645617, 4492751.730099995620549 ], [ 13610170.751900002360344, 4492807.910199998877943 ], [ 13610279.3997, 4492836.630699993111193 ], [ 13610280.6242, 4492861.708799996413291 ], [ 13610265.150799997150898, 4492937.22339999396354 ], [ 13610250.7906, 4492984.9983 ], [ 13610219.7325, 4492996.906999998725951 ], [ 13610148.154, 4492920.551299991086125 ], [ 13610145.704999998211861, 4492865.631600001826882 ], [ 13610107.5224, 4492772.464899998158216 ], [ 13610052.530599998310208, 4492731.836000001989305 ], [ 13610040.619400002062321, 4492753.271199999377131 ], [ 13609952.231700003147125, 4492705.497399996034801 ], [ 13609904.4757, 4492777.228299996815622 ], [ 13609892.56449999846518, 4492748.507900000549853 ], [ 13609878.204300001263618, 4492741.362799997441471 ], [ 13609878.204300001263618, 4492729.4543999992311 ], [ 13609904.4757, 4492645.815499997697771 ], [ 13609792.15429999306798, 4492602.805499996989965 ], [ 13609792.15429999306798, 4492612.332099994644523 ], [ 13609758.758499998599291, 4492607.568799997679889 ], [ 13609742.06050000153482, 4492593.278899994678795 ], [ 13609737.2738, 4492602.805499996989965 ], [ 13609708.5534, 4492590.897200004197657 ], [ 13609711.002400001510978, 4492574.225699994713068 ], [ 13609653.672899996861815, 4492552.650699999183416 ], [ 13609567.622900003567338, 4492507.259499998763204 ], [ 13609543.8005, 4492557.413999997079372 ], [ 13609476.8975, 4492528.834299992769957 ], [ 13609350.327200001105666, 4492492.969699995592237 ], [ 13609300.122100003063679, 4492452.341899995692074 ], [ 13609245.2416, 4492418.859199997968972 ], [ 13609233.219099996611476, 4492507.259499998763204 ], [ 13609183.1254, 4492514.404399998486042 ], [ 13609109.097900003194809, 4492500.114600001834333 ], [ 13609078.039800003170967, 4492476.29829999897629 ], [ 13609039.745899997651577, 4492471.394900000654161 ], [ 13609025.497, 4492459.486799999140203 ], [ 13608960.820299994200468, 4492478.679899997077882 ], [ 13608922.526399997994304, 4492500.114600001834333 ], [ 13608843.7122, 4492483.443199994042516 ], [ 13608836.5878, 4492531.215999997220933 ], [ 13608836.5878, 4492571.843999990262091 ], [ 13608862.859199998900294, 4492621.99889999628067 ], [ 13608798.405199993401766, 4492614.7137999990955 ], [ 13608743.4134, 4492576.607299993745983 ], [ 13608688.532899998128414, 4492557.413999997079372 ], [ 13608626.416599996387959, 4492588.515600003302097 ], [ 13608528.344099996611476, 4492676.917299998924136 ], [ 13608463.890100002288818, 4492688.825699997134507 ], [ 13608382.7382, 4492684.062299992889166 ], [ 13608320.622, 4492636.288800000213087 ], [ 13608203.513800002634525, 4492621.99889999628067 ], [ 13608186.8158999979496, 4492595.660499994643033 ], [ 13608055.45889999344945, 4492576.607299993745983 ], [ 13608053.009900003671646, 4492502.49620000179857 ], [ 13608019.613999998196959, 4492454.723599997349083 ], [ 13607881.021300001069903, 4492340.126099998131394 ], [ 13607835.7142, 4492335.362899991683662 ], [ 13607773.598, 4492277.924599995836616 ], [ 13607725.730600001290441, 4492266.016699996776879 ], [ 13607635.005199998617172, 4492266.016699996776879 ], [ 13607587.249099995940924, 4492277.924599995836616 ], [ 13607503.648199997842312, 4492277.924599995836616 ], [ 13607331.659599997103214, 4492215.863499995321035 ], [ 13607312.0674, 4492216.844099998474121 ], [ 13607283.903499998152256, 4492218.24509999807924 ], [ 13607214.55150000192225, 4492304.262100003659725 ], [ 13607116.590299997478724, 4492337.744499991647899 ], [ 13607071.283299995586276, 4492368.705300003290176 ], [ 13607052.136399997398257, 4492395.04309999383986 ], [ 13607030.651699993759394, 4492476.29829999897629 ], [ 13606966.086399998515844, 4492507.259499998763204 ], [ 13606906.419100001454353, 4492559.795699996873736 ], [ 13606889.721199996769428, 4492595.660499994643033 ], [ 13606858.663099996745586, 4492636.288800000213087 ], [ 13606827.604900002479553, 4492648.197200001217425 ], [ 13606777.399800004437566, 4492648.197200001217425 ], [ 13606665.189800001680851, 4492702.555399994365871 ], [ 13606626.895900001749396, 4492747.947499996051192 ], [ 13606586.3756, 4492762.237599997781217 ], [ 13606536.170500002801418, 4492799.364100001752377 ], [ 13606524.2593, 4492835.089599995873868 ], [ 13606521.8103, 4492918.729999996721745 ], [ 13606507.56139999255538, 4492947.450900002382696 ], [ 13606476.503300003707409, 4492967.765699993818998 ], [ 13606416.724699998274446, 4492964.123000004328787 ], [ 13606346.259499996900558, 4492983.177000000141561 ], [ 13606314.08810000307858, 4493008.255299999378622 ], [ 13606293.716700004413724, 4493045.382700002752244 ], [ 13606139.650499995797873, 4493091.897099998779595 ], [ 13606140.874999998137355, 4493269.830600001849234 ], [ 13606253.085000002756715, 4493235.224399999715388 ], [ 13606304.514700001105666, 4493175.539499999023974 ], [ 13606321.2126, 4493116.975699996575713 ], [ 13606336.686, 4493124.120999992825091 ], [ 13606321.2126, 4493213.788199999369681 ], [ 13606316.425800003111362, 4493314.104299996048212 ], [ 13606277.018700003623962, 4493386.67989999987185 ], [ 13606217.908100001513958, 4493459.536300004459918 ], [ 13606188.074500001966953, 4493513.198099997825921 ], [ 13606142.0995, 4493578.909699996002018 ], [ 13606179.72550000436604, 4493576.527900003828108 ], [ 13606192.861199997365475, 4493574.70639999769628 ], [ 13606208.4459, 4493580.170699995011091 ], [ 13606210.783600004389882, 4493581.852099999785423 ], [ 13606217.908100001513958, 4493589.137799998745322 ], [ 13606216.12699999846518, 4493592.08009999897331 ], [ 13606205.44030000269413, 4493592.08009999897331 ], [ 13606201.210199996829033, 4493596.843900000676513 ], [ 13606204.995, 4493612.816499996930361 ], [ 13606194.865, 4493617.580299999564886 ], [ 13606188.853699998930097, 4493621.783600000664592 ], [ 13606184.734899995848536, 4493624.165499999187887 ], [ 13606188.297100001946092, 4493629.629899993538857 ], [ 13606203.770499998703599, 4493627.107899996452034 ], [ 13606209.225199997425079, 4493625.4265 ], [ 13606213.344, 4493626.547399997711182 ], [ 13606214.011899998411536, 4493632.57219999935478 ], [ 13606204.438400002196431, 4493639.577699993737042 ], [ 13606204.438400002196431, 4493663.396700001321733 ], [ 13606211.562899997457862, 4493677.828199995681643 ], [ 13606206.776100002229214, 4493689.737699997611344 ], [ 13606214.011899998411536, 4493706.410999992862344 ], [ 13606199.651699995622039, 4493713.556800002232194 ], [ 13606199.651699995622039, 4493739.897900001145899 ], [ 13606187.7405, 4493742.279799998737872 ], [ 13606180.504699997603893, 4493744.661699997261167 ], [ 13606182.953799998387694, 4493780.530599992722273 ], [ 13606194.865, 4493818.781599998474121 ], [ 13606223.5854, 4493840.218999994918704 ], [ 13606268.892399996519089, 4493866.560500002466142 ], [ 13606280.914899993687868, 4493854.510599998757243 ], [ 13606307.186299998313189, 4493868.94240000192076 ], [ 13606314.3108, 4493892.761899998411536 ], [ 13606311.9731, 4493935.777199995703995 ], [ 13606285.5903, 4494019.426299994811416 ], [ 13606271.341399997472763, 4494017.044299996457994 ], [ 13606268.892399996519089, 4494002.612300001084805 ], [ 13606268.892399996519089, 4493961.978699995204806 ], [ 13606249.856799993664026, 4493957.214800001122057 ], [ 13606225.9231, 4493957.214800001122057 ], [ 13606221.1364, 4493974.028700002469122 ], [ 13606211.562899997457862, 4494009.75819999538362 ], [ 13606211.562899997457862, 4494033.71809999179095 ], [ 13606211.562899997457862, 4494062.301999999210238 ], [ 13606201.989400001242757, 4494064.683899992145598 ], [ 13606182.953799998387694, 4494069.587999996729195 ], [ 13606173.380299996584654, 4494067.206100000999868 ], [ 13606151.895599998533726, 4494052.773999993689358 ], [ 13606135.197700001299381, 4494048.009999992325902 ], [ 13606123.1752, 4494026.572199998423457 ], [ 13606108.926299996674061, 4493990.702499999664724 ], [ 13606096.903800005093217, 4493988.320500002242625 ], [ 13606077.868199996650219, 4493995.466399998404086 ], [ 13606073.081400001421571, 4494024.190200002864003 ], [ 13606080.205899998545647, 4494067.206100000999868 ], [ 13606068.294699996709824, 4494100.553900003433228 ], [ 13606056.383500004187226, 4494110.081899997778237 ], [ 13606034.787500001490116, 4494114.845899997279048 ], [ 13606008.516099996864796, 4494100.553900003433228 ], [ 13605989.480499997735023, 4494079.115999997593462 ], [ 13605967.9958, 4494045.62809999845922 ], [ 13605946.399899996817112, 4494028.954199998639524 ], [ 13605932.151, 4494038.482099995948374 ], [ 13605924.915199998766184, 4494059.920000001788139 ], [ 13605936.937700005248189, 4494110.081899997778237 ], [ 13605932.151, 4494129.278099999763072 ], [ 13605951.186599997803569, 4494148.334099998697639 ], [ 13605958.422399997711182, 4494184.204400004819036 ], [ 13605951.186599997803569, 4494210.406599998474121 ], [ 13605936.937700005248189, 4494239.130999993532896 ], [ 13605946.399899996817112, 4494253.423199996352196 ], [ 13605948.848899997770786, 4494310.732199995778501 ], [ 13605929.701899994164705, 4494332.31069999653846 ], [ 13605915.452999997884035, 4494353.749200002290308 ], [ 13605896.306100003421307, 4494356.131199999712408 ], [ 13605872.3724, 4494356.131199999712408 ], [ 13605855.674500003457069, 4494339.456899998709559 ], [ 13605841.3143, 4494339.456899998709559 ], [ 13605829.403099998831749, 4494339.456899998709559 ], [ 13605793.558199997991323, 4494313.114200002513826 ], [ 13605776.860299995169044, 4494296.4399000024423 ], [ 13605762.500099997967482, 4494267.855499998666346 ], [ 13605757.713299997150898, 4494262.951299999840558 ], [ 13605745.8021, 4494267.855499998666346 ], [ 13605726.655199997127056, 4494286.911799997091293 ], [ 13605738.677699994295835, 4494305.968099995516241 ], [ 13605738.677699994295835, 4494322.782499998807907 ], [ 13605745.8021, 4494348.985100002028048 ], [ 13605736.228699993342161, 4494365.659500003792346 ], [ 13605769.735799994319677, 4494387.238099996931851 ], [ 13605769.735799994319677, 4494403.912499996833503 ], [ 13605824.616299998015165, 4494439.783699997700751 ], [ 13605834.1898, 4494461.22240000218153 ], [ 13605834.1898, 4494478.037100002169609 ], [ 13605819.829599997028708, 4494501.857899997383356 ], [ 13605793.558199997991323, 4494501.857899997383356 ], [ 13605757.713299997150898, 4494501.857899997383356 ], [ 13605750.588899996131659, 4494518.532499997876585 ], [ 13605745.8021, 4494544.87569999601692 ], [ 13605743.4644, 4494592.657899997197092 ], [ 13605721.868400001898408, 4494597.422099996358156 ], [ 13605712.4063, 4494606.950499995611608 ], [ 13605693.25930000282824, 4494614.096799993887544 ], [ 13605676.56139999628067, 4494635.675999994389713 ], [ 13605647.841, 4494633.29389999806881 ], [ 13605645.5033, 4494618.861100004054606 ], [ 13605659.863499997183681, 4494597.422099996358156 ], [ 13605662.201200002804399, 4494583.129399994388223 ], [ 13605650.29, 4494583.129399994388223 ], [ 13605571.4758, 4494585.511499997228384 ], [ 13605516.484, 4494571.078799999319017 ], [ 13605494.999299997463822, 4494561.55039999447763 ], [ 13605444.7942, 4494559.168300003744662 ], [ 13605420.971900001168251, 4494521.054699999280274 ], [ 13605373.215799998492002, 4494494.711599998176098 ], [ 13605314.6617, 4494484.342600002884865 ], [ 13605301.525999998673797, 4494481.960500000976026 ], [ 13605239.409799996763468, 4494513.067699993029237 ], [ 13605142.673100002110004, 4494541.652799994684756 ], [ 13605015.991499997675419, 4494541.652799994684756 ], [ 13604867.157399997115135, 4494554.123800002038479 ], [ 13604689.936800003051758, 4494569.117099993862212 ], [ 13604689.936800003051758, 4494563.231899996288121 ], [ 13604687.599000001326203, 4494539.270799999125302 ], [ 13604687.599000001326203, 4494501.157300001941621 ], [ 13604681.587800005450845, 4494483.221600003540516 ], [ 13604676.8011, 4494455.757600002922118 ], [ 13604664.889899998903275, 4494419.886399999260902 ], [ 13604645.8542, 4494381.633299998939037 ], [ 13604582.402099994942546, 4494285.090199998579919 ], [ 13604578.839900003746152, 4494286.211199996061623 ], [ 13604571.715499997138977, 4494299.382399997673929 ], [ 13604566.928700001910329, 4494316.056699994020164 ], [ 13604557.355199996381998, 4494328.107100000604987 ], [ 13604544.219499994069338, 4494333.992200002074242 ], [ 13604529.859300002455711, 4494333.992200002074242 ], [ 13604521.5104, 4494338.75630000140518 ], [ 13604501.250200003385544, 4494338.75630000140518 ], [ 13604497.688000001013279, 4494328.107100000604987 ], [ 13604463.0675999969244, 4494322.081900001503527 ], [ 13604417.6493, 4494322.081900001503527 ], [ 13604394.940099995583296, 4494314.93579999729991 ], [ 13604362.657499995082617, 4494313.674699997529387 ], [ 13604372.230899997055531, 4494298.261500000953674 ], [ 13604359.0952, 4494288.593199995346367 ], [ 13604360.3197, 4494275.56209999974817 ], [ 13604317.350399998947978, 4494248.098600000143051 ], [ 13604316.125899998471141, 4494250.480699997395277 ], [ 13604301.765699995681643, 4494243.334599995985627 ], [ 13604311.339199997484684, 4494219.37419999577105 ], [ 13604316.125899998471141, 4494199.056999991647899 ], [ 13604328.0371, 4494177.61879999935627 ], [ 13604348.408599998801947, 4494156.040599996224046 ], [ 13604316.125899998471141, 4494116.667499996721745 ], [ 13604294.6412, 4494102.375500001944602 ], [ 13604274.269800001755357, 4494089.204399996437132 ], [ 13604257.571899998933077, 4494079.676499996334314 ], [ 13604238.536200001835823, 4494084.440499996766448 ], [ 13604224.176, 4494078.415399996563792 ], [ 13604209.815800003707409, 4494082.058500000275671 ], [ 13604199.017800005152822, 4494080.797399995848536 ], [ 13604184.7689, 4494085.561399991624057 ], [ 13604176.419900001958013, 4494061.741499991156161 ], [ 13604187.106600003316998, 4494052.213499999605119 ], [ 13604177.533100001513958, 4494040.303599996492267 ], [ 13604168.071000002324581, 4494042.685599997639656 ], [ 13604156.048500003293157, 4494029.514699999243021 ], [ 13604148.92400000244379, 4494023.48960000090301 ], [ 13604142.9128, 4494019.986699997447431 ], [ 13604135.7883, 4494033.0176 ], [ 13604122.65259999781847, 4494033.0176 ], [ 13604123.877099998295307, 4493953.011299996636808 ], [ 13604116.530100002884865, 4493948.107299999333918 ], [ 13604104.618900001049042, 4493945.725299999117851 ], [ 13604095.0454, 4493931.433600001968443 ], [ 13604087.920999998226762, 4493940.961399999447167 ], [ 13604061.6496, 4493943.343400001525879 ], [ 13604052.076099997386336, 4493938.579499997198582 ], [ 13604037.715899994596839, 4493917.00169999524951 ], [ 13604023.467000002041459, 4493914.619800001382828 ], [ 13603935.0793, 4493957.635099994949996 ], [ 13603920.719099996611476, 4493940.961399999447167 ], [ 13603880.087499994784594, 4493957.635099994949996 ], [ 13603894.447699997574091, 4494024.470499998889863 ], [ 13603872.963, 4494034.138499998487532 ], [ 13603829.993699997663498, 4494034.138499998487532 ], [ 13603798.935599997639656, 4494017.324500000104308 ], [ 13603810.8467, 4493974.308899995870888 ], [ 13603789.362099997699261, 4493960.017099993303418 ], [ 13603612.5867, 4493988.740799996070564 ], [ 13603586.3153, 4493967.163000002503395 ], [ 13603555.2572, 4493917.00169999524951 ], [ 13603478.780699998140335, 4493871.604599996469915 ], [ 13603435.81139999628067, 4493778.428900002501905 ], [ 13603500.821999998763204, 4493779.129499999806285 ], [ 13603681.827399995177984, 4493780.950999995693564 ], [ 13603708.098800003528595, 4493766.51929999794811 ], [ 13603751.0682, 4493766.51929999794811 ], [ 13603765.428400002419949, 4493752.227799997664988 ], [ 13603746.3928, 4493678.108400001190603 ], [ 13603622.1602, 4493592.220200002193451 ], [ 13603509.5049, 4493596.98399999551475 ], [ 13603397.628799995407462, 4493601.747799997217953 ], [ 13603385.606299998238683, 4493587.456499999389052 ], [ 13603349.872699998319149, 4493577.788900002837181 ], [ 13603299.6676, 4493594.602099996060133 ], [ 13603270.9472, 4493613.657199996523559 ], [ 13603240.000400001183152, 4493651.907499995082617 ], [ 13603194.582000004127622, 4493666.19889999460429 ], [ 13603015.357699995860457, 4493673.344599998556077 ], [ 13602993.873000003397465, 4493644.761900001205504 ], [ 13602993.873000003397465, 4493623.184699996374547 ], [ 13603015.357699995860457, 4493611.275300001725554 ], [ 13603027.380199998617172, 4493527.6294 ], [ 13603024.931100003421307, 4493434.597000003792346 ], [ 13602993.873000003397465, 4493384.438199991360307 ], [ 13602967.601599998772144, 4493389.20189999602735 ], [ 13602967.601599998772144, 4493470.324699996039271 ], [ 13602950.9037000015378, 4493491.901499996893108 ], [ 13602946.116899995133281, 4493637.616199999116361 ], [ 13602857.729299996048212, 4493649.525700003840029 ], [ 13602831.457900002598763, 4493627.9485 ], [ 13602757.4304, 4493624.866100000217557 ], [ 13602691.751900002360344, 4493624.866100000217557 ], [ 13602678.6162, 4493675.025999994017184 ], [ 13602652.344800004735589, 4493672.644100002944469 ], [ 13602637.984600001946092, 4493653.588899994269013 ], [ 13602637.984600001946092, 4493628.508999997749925 ], [ 13602645.109, 4493592.640599997714162 ], [ 13602653.458, 4493562.797099997289479 ], [ 13602652.344800004735589, 4493536.596500003710389 ], [ 13602646.333499994128942, 4493506.75309999845922 ], [ 13602628.411099996417761, 4493488.8191 ], [ 13602609.264199998229742, 4493475.64879999961704 ], [ 13602575.868299998342991, 4493474.387899995781481 ], [ 13602554.383599994704127, 4493463.739600002765656 ], [ 13602541.247899997979403, 4493463.739600002765656 ], [ 13602519.7633, 4493456.593999995850027 ], [ 13602489.8183, 4493423.108099994249642 ], [ 13602455.197999998927116, 4493407.555999996140599 ], [ 13602424.1398, 4493372.949399998411536 ], [ 13602389.5195, 4493346.609199999831617 ], [ 13602353.674599997699261, 4493293.08829999435693 ], [ 13602358.4613, 4493259.602899998426437 ], [ 13602387.070500003173947, 4493158.026299992576241 ], [ 13602409.779600001871586, 4493095.960099996067584 ], [ 13602431.264300005510449, 4493039.778499996289611 ], [ 13602394.3062, 4493023.106200000271201 ], [ 13602379.946000002324581, 4493052.948200001381338 ], [ 13602364.4726, 4493084.051200001500547 ], [ 13602359.685899998992682, 4493089.935599997639656 ], [ 13602347.663400001823902, 4493095.960099996067584 ], [ 13602345.325599998235703, 4493103.10540000256151 ], [ 13602339.314400002360344, 4493116.27519999910146 ], [ 13602333.4145, 4493117.39599999692291 ], [ 13602336.9767, 4493130.565800004638731 ], [ 13602326.1787, 4493153.262799996882677 ], [ 13602323.841, 4493161.669099999591708 ], [ 13602327.4032, 4493168.814400003291667 ], [ 13602325.065499998629093, 4493179.602499994449317 ], [ 13602313.042999997735023, 4493175.959799997508526 ], [ 13602310.705300003290176, 4493166.432599995285273 ], [ 13602310.705300003290176, 4493143.735699995420873 ], [ 13602305.9185, 4493137.711199998855591 ], [ 13602303.4695, 4493118.656999998725951 ], [ 13602298.794100001454353, 4493112.632500001229346 ], [ 13602294.007399998605251, 4493091.196500002406538 ], [ 13602298.794100001454353, 4493007.554799997247756 ], [ 13602311.929799996316433, 4493005.173100000247359 ], [ 13602317.829700002446771, 4492993.2643 ], [ 13602336.9767, 4492992.003399993292987 ], [ 13602336.9767, 4492977.712999993935227 ], [ 13602358.4613, 4492943.107699994929135 ], [ 13602358.4613, 4492907.24169999640435 ], [ 13602321.392, 4492891.690399996004999 ], [ 13602341.763400003314018, 4492762.7980000032112 ], [ 13602298.794100001454353, 4492762.7980000032112 ], [ 13602292.782799998298287, 4492808.190399996936321 ], [ 13602276.084900001063943, 4492804.547799997031689 ], [ 13602276.084900001063943, 4492815.335500001907349 ], [ 13602287.9961, 4492815.335500001907349 ], [ 13602289.220600003376603, 4492822.480599999427795 ], [ 13602264.062399998307228, 4492820.098899997770786 ], [ 13602260.500200003385544, 4492836.770800000987947 ], [ 13602230.666599998250604, 4492836.770800000987947 ], [ 13602228.328900003805757, 4492853.582899999804795 ], [ 13602254.6003, 4492855.964599998667836 ], [ 13602231.779799997806549, 4493027.169200000353158 ], [ 13602231.779799997806549, 4493117.956399998627603 ], [ 13602219.868600003421307, 4493277.95679999422282 ], [ 13602207.8461, 4493304.296799999661744 ], [ 13602191.148100003600121, 4493340.164199999533594 ], [ 13602160.090000003576279, 4493406.995599995367229 ], [ 13602138.6053, 4493442.863399998284876 ], [ 13602100.422799993306398, 4493459.536300004459918 ], [ 13602055.004399996250868, 4493457.154500001110137 ], [ 13602002.461599998176098, 4493514.459099997766316 ], [ 13601902.162699997425079, 4493626.827600001357496 ], [ 13601873.4423, 4493684.133199997246265 ], [ 13601861.531099997460842, 4493724.765699996612966 ], [ 13601747.651299998164177, 4493803.088899992406368 ], [ 13601708.689499992877245, 4493829.850599995814264 ], [ 13601636.999699998646975, 4493968.424000001512468 ], [ 13601513.435099994763732, 4493941.802100001834333 ], [ 13601460.892300002276897, 4493970.525799996219575 ], [ 13601382.078100005164742, 4494020.687299993820488 ], [ 13601382.078100005164742, 4494027.833299999125302 ], [ 13601281.779200004413724, 4493970.525799996219575 ], [ 13601262.632299996912479, 4493822.424500001594424 ], [ 13601145.635499998927116, 4493745.9227 ], [ 13601124.150799995288253, 4493707.671999998390675 ], [ 13601083.51919999346137, 4493690.998699998483062 ], [ 13601023.852, 4493674.325399999506772 ], [ 13600789.747100003063679, 4493554.8108 ], [ 13600562.766599997878075, 4493440.201299997977912 ], [ 13600581.91359999589622, 4493440.201299997977912 ], [ 13600388.44030000269413, 4493277.816699991002679 ], [ 13600290.4792, 4493220.513299996033311 ], [ 13600197.749999998137355, 4493223.03520000167191 ], [ 13600137.971499998122454, 4493175.25929999910295 ], [ 13599901.528899997472763, 4493098.762199995107949 ], [ 13599942.160499997437, 4492855.12399999704212 ], [ 13599839.412600003182888, 4492644.974899994209409 ], [ 13599791.656499994918704, 4492633.0666000014171 ], [ 13599795.663999998942018, 4492618.91669999808073 ], [ 13599813.141199998557568, 4492556.57349999807775 ], [ 13599712.842299997806549, 4492523.090399996377528 ], [ 13599676.997399998828769, 4492556.57349999807775 ], [ 13599676.997399998828769, 4492508.800499995239079 ], [ 13599521.706799998879433, 4492501.655599996447563 ], [ 13599521.929399993270636, 4492484.844099994748831 ], [ 13599524.37839999422431, 4492262.794499997980893 ], [ 13599385.896999998018146, 4492253.268200001679361 ], [ 13599068.413800001144409, 4492217.544600003398955 ], [ 13598893.976199997588992, 4492205.636799997650087 ], [ 13598817.611000001430511, 4492219.926199996843934 ], [ 13598712.080099998041987, 4492210.960299998521805 ], [ 13598699.9463, 4492209.979599993675947 ], [ 13598647.960100004449487, 4492205.636799997650087 ], [ 13598628.924400001764297, 4492370.106200002133846 ], [ 13598539.868900001049042, 4492356.937399998307228 ], [ 13598386.359299998730421, 4492353.435000003315508 ], [ 13598349.289899997413158, 4492289.552299998700619 ], [ 13598294.4094, 4492283.668399995192885 ], [ 13598291.960299998521805, 4492365.483099996112287 ], [ 13598237.6364, 4492365.483099996112287 ], [ 13598237.6364, 4492324.155399999581277 ], [ 13598226.28180000372231, 4492322.474299995228648 ], [ 13598228.063000001013279, 4492275.262799999676645 ], [ 13598190.8822, 4492273.861900000832975 ], [ 13598198.67459999397397, 4492215.863499995321035 ], [ 13598103.719099996611476, 4492136.431500002741814 ], [ 13598071.43639999628067, 4492123.823299994692206 ], [ 13598064.312, 4492173.415600002743304 ], [ 13598052.957400001585484, 4492221.186999998055398 ], [ 13598030.804799996316433, 4492223.568599994294345 ], [ 13598030.804799996316433, 4492182.941899994388223 ], [ 13597982.4922, 4492178.1787 ], [ 13597982.4922, 4492149.46000000089407 ], [ 13597964.569700002670288, 4492141.054499997757375 ], [ 13597961.5641, 4492027.581200000829995 ], [ 13597964.0131, 4491993.539399992674589 ], [ 13597817.071400001645088, 4491975.608 ], [ 13597809.279, 4491977.989500000141561 ], [ 13597806.941299997270107, 4492096.225399998016655 ], [ 13597810.5035, 4492115.417799999006093 ], [ 13597783.675499998033047, 4492151.141099994070828 ], [ 13597732.245899993926287, 4492152.4019 ], [ 13597710.204700002446771, 4492152.962200001813471 ], [ 13597659.443000003695488, 4492118.359700000844896 ], [ 13597545.8971, 4492125.084099997766316 ], [ 13597471.3131, 4492081.375799998641014 ], [ 13597449.8284, 4492082.636600001715124 ], [ 13597380.476400002837181, 4492038.508199996314943 ], [ 13597337.6183, 4492042.150499999523163 ], [ 13597323.258100003004074, 4492069.608199997805059 ], [ 13597363.889700004830956, 4492119.760599999688566 ], [ 13597365.002899998798966, 4492142.455399996601045 ], [ 13597251.457099996507168, 4492411.434100001119077 ], [ 13597115.313299994915724, 4492327.797799993306398 ], [ 13597158.282599996775389, 4492072.269899999722838 ], [ 13597148.7092, 4492071.009099997580051 ], [ 13596944.549199998378754, 4492188.12529999576509 ], [ 13596882.433, 4492105.611399999819696 ], [ 13596987.5186, 4491924.055299998261034 ], [ 13596974.3829, 4491881.188399999402463 ], [ 13596923.0646, 4491828.51549999602139 ], [ 13596825.548699997365475, 4491864.097699999809265 ], [ 13596695.416199997067451, 4491876.005099995061755 ], [ 13596663.133599996566772, 4491944.087999996729195 ], [ 13596535.338799998164177, 4491915.369800000451505 ], [ 13596470.884800001978874, 4491909.346099997870624 ], [ 13596387.2839, 4491850.929399993270636 ], [ 13596273.849299997091293, 4491985.834499999880791 ], [ 13596214.070699997246265, 4492027.721199994906783 ], [ 13596117.334100002422929, 4491948.851000003516674 ], [ 13596073.1403, 4491912.988300001248717 ], [ 13596001.89580000191927, 4491876.985699996352196 ], [ 13595931.4305, 4491873.483499996364117 ], [ 13595878.88769999705255, 4491881.748699998483062 ], [ 13595814.322400003671646, 4491883.009499997831881 ], [ 13595779.702100001275539, 4491867.459799996577203 ], [ 13595657.91860000230372, 4491862.69679999910295 ], [ 13595626.860399998724461, 4491831.597400000318885 ], [ 13595563.519599992781878, 4491808.903300002217293 ], [ 13595543.370800005272031, 4491524.951099999248981 ], [ 13595548.1575, 4491443.843299995176494 ], [ 13595457.320799997076392, 4491338.642200001515448 ], [ 13595509.8636, 4491195.340800002217293 ], [ 13595452.534100001677871, 4491190.578099999576807 ], [ 13595395.3158999979496, 4491219.294299995526671 ], [ 13595385.74239999614656, 4491290.874899999238551 ], [ 13595242.36289999820292, 4491052.041299997828901 ], [ 13595223.327299995347857, 4491071.231799994595349 ], [ 13595180.914499998092651, 4491047.418700002133846 ], [ 13595194.0502, 4491010.298499999567866 ], [ 13595106.3305, 4490967.995600000955164 ], [ 13595045.9953, 4490972.758100003004074 ], [ 13595028.072899997234344, 4490897.537699996493757 ], [ 13594993.007200002670288, 4490897.257599998265505 ], [ 13594975.641400001943111, 4490859.717599998228252 ], [ 13594923.098600002005696, 4490765.307999996468425 ], [ 13594908.7384, 4490849.492199996486306 ], [ 13594894.823399994522333, 4490855.795599995180964 ], [ 13594890.0367, 4490913.786399994976819 ], [ 13594872.670899998396635, 4490959.871200002729893 ], [ 13594872.670899998396635, 4490962.812799993902445 ], [ 13594835.0449, 4490973.598599998280406 ], [ 13594829.924199998378754, 4491059.185199996456504 ], [ 13594818.012999998405576, 4491060.445899999700487 ], [ 13594811.445099998265505, 4490948.104799997061491 ], [ 13594775.043700003996491, 4490822.177799997851253 ], [ 13594754.672200001776218, 4490812.512699997983873 ], [ 13594659.160099996253848, 4490811.392099999822676 ], [ 13594632.888699997216463, 4490883.670400001108646 ], [ 13594597.043799996376038, 4490887.872599993832409 ], [ 13594622.0907, 4490817.415299992077053 ], [ 13594596.3759, 4490804.948799995705485 ], [ 13594675.858, 4490599.603099997155368 ], [ 13594684.763599997386336, 4490591.759099993854761 ], [ 13594703.242599997669458, 4490590.638499991968274 ], [ 13594712.259499996900558, 4490582.234299999661744 ], [ 13594775.600299997255206, 4490579.292799997143447 ], [ 13594803.541499998420477, 4490564.305299990810454 ], [ 13594817.345099998638034, 4490561.924099996685982 ], [ 13594824.469499994069338, 4490555.340799994766712 ], [ 13594831.037399997934699, 4490546.516400001011789 ], [ 13594835.824099998921156, 4490486.14639999717474 ], [ 13594830.4808, 4490472.979900003410876 ], [ 13594829.812899997457862, 4490440.203799996525049 ], [ 13594843.616499997675419, 4490425.776699994690716 ], [ 13594847.735299995169044, 4490410.92949999589473 ], [ 13594817.901699995622039, 4490388.238399994559586 ], [ 13594804.209399996325374, 4490367.368299996480346 ], [ 13594829.812899997457862, 4490307.559600003063679 ], [ 13594802.428299998864532, 4490296.214199991896749 ], [ 13594810.777199994772673, 4490271.14229999948293 ], [ 13594814.895999997854233, 4490272.963200003840029 ], [ 13594834.042999997735023, 4490193.545799999497831 ], [ 13594802.428299998864532, 4490180.379699996672571 ], [ 13594752.2232, 4490171.975799999199808 ], [ 13594764.691, 4490089.898 ], [ 13594776.0455, 4490061.185000001452863 ], [ 13594736.638400003314018, 4490047.458699995651841 ], [ 13594705.580300003290176, 4490048.159000001847744 ], [ 13594683.427699998021126, 4490048.159000001847744 ], [ 13594651.813000001013279, 4490056.422799992375076 ], [ 13594607.619199998676777, 4490080.933899997733533 ], [ 13594586.134499998763204, 4490086.956699996255338 ], [ 13594574.7799, 4490099.982600003480911 ], [ 13594569.436600001528859, 4490138.220199997536838 ], [ 13594577.785499997437, 4490154.327600001357496 ], [ 13594577.785499997437, 4490163.992099997587502 ], [ 13594569.436600001528859, 4490167.493699996732175 ], [ 13594543.165200002491474, 4490136.539399996399879 ], [ 13594531.142700001597404, 4490129.256099998019636 ], [ 13594515.001299995929003, 4490126.875 ], [ 13594460.120800003409386, 4490129.256099998019636 ], [ 13594460.120800003409386, 4490134.01829999499023 ], [ 13594453.553, 4490187.242899995297194 ], [ 13594461.9019, 4490194.946500001475215 ], [ 13594461.345299992710352, 4490203.350399998947978 ], [ 13594433.404200002551079, 4490203.350399998947978 ], [ 13594423.830700004473329, 4490199.848800003528595 ], [ 13594407.800700001418591, 4490227.861900001764297 ], [ 13594409.581799998879433, 4490258.396300000138581 ], [ 13594405.90820000320673, 4490283.468199998140335 ], [ 13594392.215899992734194, 4490301.956999999471009 ], [ 13594389.878200002014637, 4490304.898400000296533 ], [ 13594355.1466, 4490300.696399996988475 ], [ 13594349.8032, 4490299.575799996964633 ], [ 13594358.820100001990795, 4490184.301499994471669 ], [ 13594297.81699999794364, 4490184.301499994471669 ], [ 13594285.3492, 4490174.777099994942546 ], [ 13594254.847699996083975, 4490190.884599997662008 ], [ 13594254.847699996083975, 4490200.409000001847744 ], [ 13594200.5238, 4490211.754400000907481 ], [ 13594200.5238, 4490229.122500002384186 ], [ 13594216.6651, 4490251.81319999601692 ], [ 13594179.5957, 4490265.539700001478195 ], [ 13594140.18860000371933, 4490296.494400002993643 ], [ 13594151.209200002253056, 4490320.44579999614507 ], [ 13594032.987899992614985, 4490374.791900001466274 ], [ 13594037.218099996447563, 4490387.95830000191927 ], [ 13593987.5696, 4490413.59080000128597 ], [ 13593960.073700001463294, 4490442.865099994465709 ], [ 13593926.009900003671646, 4490458.412699998356402 ], [ 13593910.536500001326203, 4490475.080899992957711 ], [ 13593869.9049, 4490511.638999992981553 ], [ 13593783.409599998965859, 4490579.71299999859184 ], [ 13593741.664800003170967, 4490586.856599997729063 ], [ 13593743.446000002324581, 4490602.404499999247491 ], [ 13593722.629199996590614, 4490610.808699999004602 ], [ 13593740.551600003615022, 4490655.491400003433228 ], [ 13593624.6681, 4490673.420599995180964 ], [ 13593539.286, 4490693.170699999667704 ], [ 13593482.624399997293949, 4490650.168700000271201 ], [ 13593468.264200001955032, 4490612.629600002430379 ], [ 13593342.2505, 4490633.500200003385544 ], [ 13593269.336199998855591, 4490654.931100003421307 ], [ 13593246.070500001311302, 4490666.417000005021691 ], [ 13593243.732799995690584, 4490628.737800002098083 ], [ 13593256.868499998003244, 4490626.356600002385676 ], [ 13593327.890299996361136, 4490560.103200001642108 ], [ 13593347.037199994549155, 4490557.721999997273088 ], [ 13593381.6576, 4490562.48439999576658 ], [ 13593410.2667, 4490570.188199992291629 ], [ 13593438.98709999397397, 4490592.879699993878603 ], [ 13593487.967699997127056, 4490583.915199997834861 ], [ 13593520.027699995785952, 4490570.888599998317659 ], [ 13593612.534199997782707, 4490505.756099998019636 ], [ 13593601.179599998518825, 4490456.731899994425476 ], [ 13593603.628700003027916, 4490423.955799995921552 ], [ 13593622.107699993997812, 4490404.76649999897927 ], [ 13593672.201499996706843, 4490391.039800001308322 ], [ 13593695.578599996864796, 4490330.250499997287989 ], [ 13593705.0407, 4490297.895000002346933 ], [ 13593742.66669999808073, 4490212.45469999872148 ], [ 13593745.004399998113513, 4490187.943199996836483 ], [ 13593751.572300001978874, 4490181.360200001858175 ], [ 13593700.253999998793006, 4490129.39609999768436 ], [ 13593636.913199998438358, 4490121.132299995049834 ], [ 13593601.179599998518825, 4490240.467799998819828 ], [ 13593567.672499997541308, 4490244.669799993745983 ], [ 13593554.536799995228648, 4490258.396300000138581 ], [ 13593529.4898999966681, 4490256.575399999506772 ], [ 13593511.567499998956919, 4490248.311499994248152 ], [ 13593492.4205, 4490233.324500001966953 ], [ 13593429.191000001505017, 4490242.288699998520315 ], [ 13593424.960900003090501, 4490233.884699995629489 ], [ 13593379.542499996721745, 4490241.728400000371039 ], [ 13593356.833400003612041, 4490201.109399996697903 ], [ 13593358.057899996638298, 4490117.4907 ], [ 13593344.365599997341633, 4490107.966300003230572 ], [ 13593332.45440000295639, 4490095.360500000417233 ], [ 13593308.520700002089143, 4490090.598300000652671 ], [ 13593305.515100004151464, 4490079.813399999402463 ], [ 13593320.431900003924966, 4490063.145799998193979 ], [ 13593320.431900003924966, 4490057.823399998247623 ], [ 13593311.5263, 4490054.741999998688698 ], [ 13593324.5506999976933, 4489991.013300000689924 ], [ 13593346.035400005057454, 4489989.192500001750886 ], [ 13593361.063500002026558, 4489966.502400004304945 ], [ 13593402.2516999989748, 4489935.548699994571507 ], [ 13593395.6839, 4489889.188299999572337 ], [ 13593414.719499997794628, 4489874.902099995873868 ], [ 13593408.819600002840161, 4489861.736299999058247 ], [ 13593294.1605, 4489934.568300001323223 ], [ 13593288.1492, 4489997.876399997621775 ], [ 13593212.897299997508526, 4490008.66119999717921 ], [ 13593134.083099994808435, 4490046.898500004783273 ], [ 13593099.4627, 4490074.3509 ], [ 13593092.3382, 4490150.825999994762242 ], [ 13593091.113699998706579, 4490167.493699996732175 ], [ 13593123.39639999344945, 4490180.659799999557436 ], [ 13593111.37389999628067, 4490209.373199993744493 ], [ 13593063.6178, 4490199.708700000308454 ], [ 13593015.861799996346235, 4490249.992299996316433 ], [ 13592988.365800002589822, 4490233.18439999781549 ], [ 13593082.764799997210503, 4490082.754799996502697 ], [ 13593039.795400001108646, 4490120.992299997247756 ], [ 13592980.01690000295639, 4490128.135499999858439 ], [ 13592944.172, 4490147.184299996122718 ], [ 13592934.598499998450279, 4490168.754299997352064 ], [ 13592908.327100001275539, 4490143.682700000703335 ], [ 13592915.562900001183152, 4490036.113599999807775 ], [ 13592866.47099999897182, 4489989.192500001750886 ], [ 13592823.612999998033047, 4489948.294299991801381 ], [ 13592692.144699996337295, 4490074.911200001835823 ], [ 13592665.87329999729991, 4490063.005800000391901 ], [ 13592687.357900001108646, 4489914.95959999691695 ], [ 13592694.593699997290969, 4489907.816499999724329 ], [ 13592625.352999998256564, 4489898.152199996635318 ], [ 13592484.4225, 4489943.532199998386204 ], [ 13592460.488799996674061, 4489888.628100000321865 ], [ 13592489.209200002253056, 4489850.3914 ], [ 13592458.151100002229214, 4489778.820600001141429 ], [ 13592513.031599998474121, 4489764.394500002264977 ], [ 13592575.147899998351932, 4489838.486299998126924 ], [ 13592615.7795, 4489795.487700001336634 ], [ 13592634.8151, 4489671.255199998617172 ], [ 13592513.031599998474121, 4489640.162299999035895 ], [ 13592396.0348, 4489628.257399999536574 ], [ 13592391.2481, 4489527.97649999614805 ], [ 13592357.740900004282594, 4489520.833599998615682 ], [ 13592305.198099996894598, 4489697.586199998855591 ], [ 13592324.3451, 4489805.011799996718764 ], [ 13592360.19, 4489843.2483000010252 ], [ 13592352.9542, 4489879.10389999486506 ], [ 13592352.9542, 4489934.007999998517334 ], [ 13592374.550200002267957, 4489984.150299998931587 ], [ 13592388.799099998548627, 4490017.625299998559058 ], [ 13592341.042999997735023, 4490063.005800000391901 ], [ 13592145.231999998912215, 4490031.911700000986457 ], [ 13592145.231999998912215, 4490079.67339999973774 ], [ 13592307.647200003266335, 4490244.529700003564358 ], [ 13592314.771599998697639, 4490297.054599995724857 ], [ 13592271.802299996837974, 4490313.862599995918572 ], [ 13592073.5423, 4490244.529700003564358 ], [ 13591992.390399998053908, 4490180.2396 ], [ 13591899.215899998322129, 4490127.575300000607967 ], [ 13591696.169200003147125, 4490161.050699996761978 ], [ 13591641.177399998530746, 4490170.575199998915195 ], [ 13591657.986599996685982, 4490011.742600001394749 ], [ 13591653.19990000128746, 4489916.220199996605515 ], [ 13591810.8283, 4489920.982299998402596 ], [ 13591882.518000001087785, 4489873.221299997530878 ], [ 13591925.48730000294745, 4489801.510300002060831 ], [ 13591968.4567, 4489725.17779999691993 ], [ 13591820.401699997484684, 4489672.515799999237061 ], [ 13591815.615000002086163, 4489619.994 ], [ 13592040.14639999717474, 4489605.708100000396371 ], [ 13592030.5729, 4489381.198399996384978 ], [ 13591648.413099994882941, 4489328.678099998272955 ], [ 13591653.19990000128746, 4489237.783500001765788 ], [ 13591495.571500001475215, 4489213.974599998444319 ], [ 13591638.839699998497963, 4488855.726999995298684 ], [ 13591619.803999997675419, 4488043.482899997383356 ], [ 13591887.304799996316433, 4488057.906700000166893 ], [ 13591911.1271, 4488511.775999997742474 ], [ 13592279.037999998778105, 4488621.570200005546212 ], [ 13592207.348300002515316, 4488115.181999991647899 ], [ 13592465.386899996548891, 4488205.926700001582503 ], [ 13592379.336900003254414, 4488593.001199997030199 ], [ 13592336.367600001394749, 4488683.750100000761449 ], [ 13592484.4225, 4488659.802399999462068 ], [ 13592460.600100003182888, 4488569.053699996322393 ], [ 13592570.472499992698431, 4488497.351599998772144 ], [ 13592804.577399998903275, 4488406.60429999884218 ], [ 13593052.931100003421307, 4488416.127099994570017 ], [ 13593041.4652, 4488406.884400000795722 ], [ 13592833.186499997973442, 4488239.396099995821714 ], [ 13592675.5581, 4488162.934900001622736 ], [ 13592670.7713, 4487947.978399993851781 ], [ 13592656.411099996417761, 4487866.758100003004074 ], [ 13592718.527400001883507, 4487838.051200003363192 ], [ 13592737.674400003626943, 4487780.777399999089539 ], [ 13592809.252800004556775, 4487785.538599997758865 ], [ 13592866.5823, 4487752.070699996314943 ], [ 13592890.516000002622604, 4487771.255199994891882 ], [ 13592919.236400002613664, 4487771.255199994891882 ], [ 13592895.302699998021126, 4487675.753099995665252 ], [ 13592966.9925, 4487709.080700002610683 ], [ 13592986.028099998831749, 4487694.797399998642504 ], [ 13593033.7842, 4487690.036300002597272 ], [ 13593081.651600003242493, 4487618.340199997648597 ], [ 13593091.113699998706579, 4487537.122499997727573 ], [ 13593110.26070000231266, 4487479.850399998947978 ], [ 13593167.590199995785952, 4487479.850399998947978 ], [ 13593181.950399998575449, 4487546.644599995575845 ], [ 13593167.590199995785952, 4487647.046599993482232 ], [ 13593234.493199996650219, 4487604.056999997235835 ], [ 13593224.919799998402596, 4487661.329800002276897 ], [ 13593363.512500002980232, 4487632.763399998657405 ], [ 13593315.645099993795156, 4487776.01630000025034 ], [ 13593449.4512, 4487783.157999998889863 ], [ 13593544.963299995288253, 4487658.949299998581409 ], [ 13593621.439800001680851, 4487611.198599997907877 ], [ 13593885.044299995526671, 4487658.249100001528859 ], [ 13593888.940499998629093, 4487658.949299998581409 ], [ 13593946.270099997520447, 4487506.035899998620152 ], [ 13594032.32, 4487343.602899996563792 ], [ 13594090.428800001740456, 4487241.943599997088313 ], [ 13594046.235, 4487083.015299997292459 ], [ 13593966.196299998089671, 4487072.233400001190603 ], [ 13593938.811700003221631, 4487055.570599997416139 ], [ 13593966.196299998089671, 4486906.306599997915328 ], [ 13594004.490199998021126, 4486905.046400000341237 ], [ 13594021.188100002706051, 4486930.110299997031689 ], [ 13594080.85530000180006, 4486934.870999995619059 ], [ 13594116.7002, 4486936.131200002506375 ], [ 13594153.769599996507168, 4486956.434399996884167 ], [ 13594183.603200003504753, 4486915.828100001439452 ], [ 13594200.3011, 4486915.828100001439452 ], [ 13594208.6501, 4486692.4958999985829 ], [ 13594207.648199995979667, 4486571.240399998612702 ], [ 13594207.4256, 4486549.257799998857081 ], [ 13594305.386699996888638, 4486560.039099998772144 ], [ 13594280.228500001132488, 4486725.960400001145899 ], [ 13594330.433600001037121, 4486734.361599996685982 ], [ 13594324.422399997711182, 4486757.044699997641146 ], [ 13594312.511200001463294, 4486796.530299996957183 ], [ 13594416.483599998056889, 4486883.623199999332428 ], [ 13594447.54169999808073, 4486692.4958999985829 ], [ 13594451.103999998420477, 4486686.615099994465709 ], [ 13594526.355899995192885, 4486712.798599998466671 ], [ 13594498.859999997541308, 4486961.755299995653331 ], [ 13594532.25590000487864, 4486990.459900001063943 ], [ 13594549.0651, 4486897.345200002193451 ], [ 13594558.5273, 4486873.401599999517202 ], [ 13594637.452799998223782, 4486897.345200002193451 ], [ 13594630.217, 4486945.092699993401766 ], [ 13594725.840499997138977, 4486964.135700001381338 ], [ 13594806.992399998009205, 4486964.135700001381338 ], [ 13594821.3526, 4486988.079499997198582 ], [ 13594830.926099997013807, 4486751.583999998867512 ], [ 13595045.884000005200505, 4486763.485600000247359 ], [ 13595127.035899993032217, 4486792.189699997194111 ], [ 13595201.1747, 4486892.584499998949468 ], [ 13595248.930699996650219, 4486878.162299998104572 ], [ 13595189.152199998497963, 4486753.964300001040101 ], [ 13595408.896899996325374, 4486746.963299996219575 ], [ 13595430.492799995467067, 4486844.417300001718104 ], [ 13595478.137599997222424, 4487059.771300002932549 ], [ 13595502.071299996227026, 4487143.365699994377792 ], [ 13595564.18749999627471, 4487188.873899995349348 ], [ 13595669.273100003600121, 4487449.184100000187755 ], [ 13595779.145499998703599, 4487499.314499992877245 ], [ 13596015.6994, 4487563.728200002573431 ], [ 13596144.829999998211861, 4487403.8149000024423 ], [ 13596228.4309, 4487332.260700004175305 ], [ 13596228.4309, 4487119.561599995940924 ], [ 13596324.054399998858571, 4487098.137900002300739 ], [ 13596331.290200002491474, 4487038.347700000740588 ], [ 13596290.6585, 4486983.458800002932549 ], [ 13596419.6778, 4487009.64299999922514 ], [ 13596469.771600002422929, 4486797.090400001034141 ], [ 13596508.065499998629093, 4486804.23139999806881 ], [ 13596481.794100001454353, 4487002.501799995079637 ], [ 13596510.4032, 4487016.784199995920062 ], [ 13596529.550199996680021, 4486928.429999996908009 ], [ 13596531.887900002300739, 4486832.935599995777011 ], [ 13596529.550199996680021, 4486744.582999997772276 ], [ 13596582.093, 4486706.357799997553229 ], [ 13596584.430699994787574, 4486536.656299994327128 ], [ 13596527.101099997758865, 4486496.05150000192225 ], [ 13596503.278800003230572, 4486422.123299998231232 ], [ 13596486.580799996852875, 4486393.420299998484552 ], [ 13596496.042999997735023, 4486333.634199996478856 ], [ 13596512.852200001478195, 4486297.790700002573431 ], [ 13596474.558300003409386, 4486285.889499994926155 ], [ 13596500.829700002446771, 4486192.781099992804229 ], [ 13596536.674599997699261, 4486202.301899997517467 ], [ 13596632.186699997633696, 4486042.26929999794811 ], [ 13596730.147899998351932, 4486097.153300003148615 ], [ 13596811.4111, 4486030.368399994447827 ], [ 13596847.255999997258186, 4486180.740099997259676 ], [ 13596856.718099992722273, 4486226.244000000879169 ], [ 13596878.314099997282028, 4486250.046199997887015 ], [ 13596909.3723, 4486250.046199997887015 ], [ 13596928.407899998128414, 4486245.285799999721348 ], [ 13596935.6437, 4486006.42679999768734 ], [ 13597020.8031, 4486035.688799995929003 ], [ 13597102.845499996095896, 4486063.830799993127584 ], [ 13597148.15259999781847, 4486180.880099991336465 ], [ 13597152.939299998804927, 4486316.972499997355044 ], [ 13597138.579099996015429, 4486508.09289999678731 ], [ 13597193.5709, 4486512.853499999269843 ], [ 13597253.2382, 4486367.237499993294477 ], [ 13597250.9005, 4486524.894899996928871 ], [ 13597320.141199998557568, 4486684.934899996966124 ], [ 13597453.9472, 4486692.075900001451373 ], [ 13597422.8891, 4486821.03389999922365 ], [ 13597425.226800002157688, 4486911.767499998211861 ], [ 13597518.401199996471405, 4487002.501799995079637 ], [ 13597568.606299992650747, 4486978.697999998927116 ], [ 13597585.304200001060963, 4486859.259499991312623 ], [ 13597616.473700001835823, 4486957.274599999189377 ], [ 13597757.404100002720952, 4487000.261499996297061 ], [ 13597764.5286, 4487179.492200000211596 ], [ 13597879.187700003385544, 4486978.83799999859184 ], [ 13597979.709199998527765, 4486869.060999994166195 ], [ 13598020.2295, 4486854.778800001367927 ], [ 13598058.523400001227856, 4486783.088399999774992 ], [ 13598094.368199996650219, 4486749.623700000345707 ], [ 13598206.5783, 4486732.961400000378489 ], [ 13598185.0936, 4486799.890800000168383 ], [ 13598197.00480000115931, 4486883.483099997974932 ], [ 13598259.121100001037121, 4486821.313899998553097 ], [ 13598278.268, 4486840.496699994429946 ], [ 13598230.512000001966953, 4487000.541500001214445 ], [ 13598242.423199998214841, 4487064.952200000174344 ], [ 13598294.965999998152256, 4487124.742500001564622 ], [ 13598337.935299998149276, 4487179.632200003601611 ], [ 13598435.89639999344945, 4487189.153899991884828 ], [ 13598433.5587, 4487124.742500001564622 ], [ 13598395.264799997210503, 4487093.65709999576211 ], [ 13598359.420000001788139, 4487053.050200002267957 ], [ 13598466.954599998891354, 4487048.289399994537234 ], [ 13599589.611599992960691, 4487229.761299998499453 ], [ 13599513.135200001299381, 4486455.866999998688698 ], [ 13599711.395200001075864, 4486451.106499999761581 ], [ 13599725.755400003865361, 4486313.892199999652803 ], [ 13599635.030000001192093, 4486266.007699997164309 ], [ 13599606.309600004926324, 4485936.4222 ], [ 13599606.309600004926324, 4485855.217499999329448 ], [ 13599802.231899995356798, 4485840.936800003051758 ], [ 13599835.627700001001358, 4485783.533899998292327 ], [ 13599768.836000001057982, 4485382.282700002193451 ], [ 13599784.420799998566508, 4485357.222499993629754 ], [ 13599974.220499997958541, 4485052.58500000089407 ], [ 13600064.9459, 4484718.137799996882677 ], [ 13600504.435199994593859, 4484546.228600004687905 ], [ 13600812.233599996194243, 4484612.304099999368191 ], [ 13600905.408, 4484638.622399996966124 ], [ 13601000.9202, 4484641.002300002612174 ], [ 13601060.698700001463294, 4484669.560599996708333 ], [ 13601122.815, 4484753.275999998673797 ], [ 13601172.908799996599555, 4484789.114199998788536 ], [ 13601225.4516, 4484796.253899995237589 ], [ 13601280.4434, 4484824.952599994838238 ], [ 13601316.2883, 4484863.170900001190603 ], [ 13601356.9199, 4484867.930699991062284 ], [ 13601449.983000004664063, 4484972.9271 ], [ 13601495.401299998164177, 4484992.106499997898936 ], [ 13601562.304300002753735, 4484984.966699998825788 ], [ 13601605.273699998855591, 4484994.486400000751019 ], [ 13601693.661300003528595, 4485051.744999994523823 ], [ 13601760.564400002360344, 4485037.465299998410046 ], [ 13601837.040799995884299, 4485044.605199999175966 ], [ 13601860.863200003281236, 4485059.024799997918308 ], [ 13601875.223399996757507, 4485078.064400003291667 ], [ 13601982.646700002253056, 4485154.503199999220669 ], [ 13602061.5723, 4485192.722800001502037 ], [ 13602183.5784, 4485214.1426 ], [ 13602341.206799998879433, 4485369.40259999781847 ], [ 13602362.691500002518296, 4485424.283200002275407 ], [ 13602360.242500001564622, 4485474.543899997137487 ], [ 13602371.040399998426437, 4485485.324100001715124 ], [ 13602454.641400001943111, 4485472.30390000436455 ], [ 13602504.8465, 4485492.604300000704825 ], [ 13602563.289199998602271, 4485536.705200002528727 ], [ 13602760.324699997901917, 4485573.806199996732175 ], [ 13602801.0675999969244, 4485631.067900000140071 ], [ 13602865.63289999589324, 4485655.288699992932379 ], [ 13602877.432800002396107, 4485659.768799996934831 ], [ 13602896.5798, 4485769.673299998044968 ], [ 13602957.4715, 4485847.237099994905293 ], [ 13602952.684799998998642, 4485982.20509999524802 ], [ 13603101.964199997484684, 4486051.5099 ], [ 13603137.8091000020504, 4486083.712300002574921 ], [ 13603145.0449, 4486172.059399998746812 ], [ 13603116.3244, 4486224.703899996355176 ], [ 13602969.494000002741814, 4486206.782300001010299 ], [ 13602976.618499998003244, 4486255.646700002253056 ], [ 13603005.227599997073412, 4486335.734399994835258 ], [ 13603050.6459, 4486385.859499993734062 ], [ 13603173.654, 4486415.682599995285273 ], [ 13603345.6426, 4486511.313299996778369 ], [ 13603370.8008, 4486536.376199997030199 ], [ 13603451.95269999653101, 4486583.001900003291667 ], [ 13603387.498699996620417, 4486760.965299998410046 ], [ 13603462.750699993222952, 4486815.853099997155368 ], [ 13603474.661899995058775, 4486805.07150000333786 ], [ 13603559.4873, 4486596.023500001989305 ], [ 13603628.728100003674626, 4486599.663899999111891 ], [ 13603676.4841, 4486608.064999994821846 ], [ 13603695.631099998950958, 4486623.606999999843538 ], [ 13603641.863799996674061, 4486737.021999999880791 ], [ 13603546.351599996909499, 4486885.163399998098612 ], [ 13603583.30969999730587, 4486882.782999997027218 ], [ 13603729.0269, 4486799.190700001083314 ], [ 13603781.569700002670288, 4486604.424500003457069 ], [ 13603778.007500002160668, 4486603.304399995133281 ], [ 13603738.6004, 4486591.262900000438094 ], [ 13603711.104500003159046, 4486590.142800005152822 ], [ 13603699.193300001323223, 4486600.924099994823337 ], [ 13603684.833099998533726, 4486594.903299995698035 ], [ 13603657.4485, 4486567.459999998100102 ], [ 13603647.875000001862645, 4486465.948100002482533 ], [ 13603656.224, 4486432.48439999576658 ], [ 13603700.41780000180006, 4486387.119599996134639 ], [ 13603571.398500004783273, 4486329.713799997232854 ], [ 13603486.573099996894598, 4486329.713799997232854 ], [ 13603431.69259999319911, 4486264.047499996609986 ], [ 13603334.955899998545647, 4486200.761799997650087 ], [ 13603291.986599996685982, 4486080.071999998763204 ], [ 13603256.141700001433492, 4486024.068000002764165 ], [ 13603223.8591, 4485985.845399996265769 ], [ 13603197.587700001895428, 4485927.321699995547533 ], [ 13603148.607100004330277, 4485883.079099993221462 ], [ 13603113.986699994653463, 4485866.418099996633828 ], [ 13603094.8398, 4485862.777900002896786 ], [ 13603091.2776, 4485829.316200000233948 ], [ 13603100.851000003516674, 4485757.632699998095632 ], [ 13603205.9366, 4485743.352099997922778 ], [ 13603214.2856, 4485812.655299998819828 ], [ 13603349.316100001335144, 4485783.953900001011789 ], [ 13603483.010799996554852, 4485770.793299998156726 ], [ 13603527.20469999872148, 4485896.239799997769296 ], [ 13603570.285300001502037, 4485954.763400002382696 ], [ 13603594.107699997723103, 4486003.766599996946752 ], [ 13603615.592400001361966, 4486037.088899999856949 ], [ 13603664.5729, 4486077.691899995319545 ], [ 13603683.719899997115135, 4486111.154399997554719 ], [ 13603779.343299997970462, 4486211.542700000107288 ], [ 13603839.010599996894598, 4486256.906799998134375 ], [ 13603885.653399994596839, 4486281.96919999923557 ], [ 13603908.36259999871254, 4486087.352599998004735 ], [ 13603928.622799996286631, 4486074.191600002348423 ], [ 13603991.963600002229214, 4486163.79869999550283 ], [ 13604085.026600005105138, 4486255.646700002253056 ], [ 13604039.7196, 4486333.354099997319281 ], [ 13604073.115500003099442, 4486439.625199998728931 ], [ 13604105.398100003600121, 4486491.011000000871718 ], [ 13604177.087899994105101, 4486494.511399995535612 ], [ 13604197.348, 4486505.292599998414516 ], [ 13604208.034699998795986, 4486479.109599997289479 ], [ 13604200.9102, 4486457.547200002707541 ], [ 13604354.976400002837181, 4486473.088899999856949 ], [ 13604446.926299996674061, 4486471.828799999319017 ], [ 13604441.0264, 4486414.562499999068677 ], [ 13604190.223599996417761, 4486397.760700001381338 ], [ 13604195.010300002992153, 4486266.427699993364513 ], [ 13604214.045900002121925, 4486241.36540000140667 ], [ 13604331.154, 4486259.286999999545515 ], [ 13604420.766199998557568, 4486314.172199996188283 ], [ 13604452.937600001692772, 4486354.776299992576241 ], [ 13604538.987499997019768, 4486403.781400002539158 ], [ 13604593.868, 4486428.843999995850027 ], [ 13604615.352700002491474, 4486434.864699995145202 ], [ 13604629.7129, 4486442.005500003695488 ], [ 13604655.984300004318357, 4486462.307699999772012 ], [ 13604707.302599996328354, 4486426.463799996301532 ], [ 13604700.178199995309114, 4486409.801999997347593 ], [ 13604700.178199995309114, 4486397.760700001381338 ], [ 13604706.189400002360344, 4486389.499899993650615 ], [ 13604727.674099994823337, 4486376.338499994017184 ], [ 13604740.809799997135997, 4486372.698100001551211 ], [ 13604703.74040000140667, 4486336.854500003159046 ], [ 13604666.782300001010299, 4486272.448299998417497 ], [ 13604669.119999997317791, 4486184.100400001741946 ], [ 13604684.7047, 4486187.600699996575713 ], [ 13604704.964900001883507, 4486207.902399997226894 ], [ 13604725.225000001490116, 4486216.303199994377792 ], [ 13604733.685299996286631, 4486223.443800000473857 ], [ 13604752.72099999897182, 4486232.964599996805191 ], [ 13604763.518899995833635, 4486235.344899994321167 ], [ 13604767.081200001761317, 4486255.646700002253056 ], [ 13604764.6321, 4486342.875100000761449 ], [ 13604786.2281, 4486376.338499994017184 ], [ 13604799.363799996674061, 4486410.922100001014769 ], [ 13604827.972900001332164, 4486444.385700001381338 ], [ 13604859.031099995598197, 4486456.287100002169609 ], [ 13604892.426899995654821, 4486476.589300000108778 ], [ 13604925.9341000020504, 4486479.109599997289479 ], [ 13604958.216700002551079, 4486487.370499999262393 ], [ 13604993.9503, 4486508.932999999262393 ], [ 13605020.2217, 4486531.615699999034405 ], [ 13605040.593199998140335, 4486524.474799998104572 ], [ 13605048.942100005224347, 4486494.511399995535612 ], [ 13605028.681999998167157, 4486455.166899999603629 ], [ 13604960.554399996995926, 4486420.583200000226498 ], [ 13604918.698299994692206, 4486395.380500003695488 ], [ 13604897.213600002229214, 4486316.552499999292195 ], [ 13604874.615800002589822, 4486278.328799998387694 ], [ 13604878.178, 4486258.0269 ], [ 13604897.213600002229214, 4486250.886299999430776 ], [ 13604989.163500001654029, 4486283.229299999773502 ], [ 13605003.523800002411008, 4486297.510599995031953 ], [ 13605081.2248, 4486327.333499997854233 ], [ 13605113.3961, 4486354.776299992576241 ], [ 13605132.54309999756515, 4486379.978900000452995 ], [ 13605194.6593, 4486428.843999995850027 ], [ 13605188.648100001737475, 4486437.244999998249114 ], [ 13605185.085900001227856, 4486482.609999998472631 ], [ 13605217.368500001728535, 4486489.750799995847046 ], [ 13605245.9776, 4486502.9123 ], [ 13605245.9776, 4486514.813699995167553 ], [ 13605214.9195, 4486590.142800005152822 ], [ 13605206.5705, 4486643.909500003792346 ], [ 13605213.80629999563098, 4486652.17059999704361 ], [ 13605272.249, 4486680.874399992637336 ], [ 13605310.542900001630187, 4486605.684699996374547 ], [ 13605326.016299998387694, 4486612.825599995441735 ], [ 13605308.0939, 4486665.332299998030066 ], [ 13605326.016299998387694, 4486673.733399999327958 ], [ 13605314.105099996551871, 4486705.937700001522899 ], [ 13605293.733699997887015, 4486735.761799996718764 ], [ 13605286.609199997037649, 4486753.684299996122718 ], [ 13605287.833699997514486, 4486763.345600000582635 ], [ 13605308.0939, 4486775.247299998067319 ], [ 13605334.3653, 4486781.268099998123944 ], [ 13605339.152, 4486765.72590000089258 ], [ 13605357.074499998241663, 4486750.183799996040761 ], [ 13605352.287699997425079, 4486728.620799998752773 ], [ 13605379.783600002527237, 4486690.395599996671081 ], [ 13605359.523500002920628, 4486641.529199997894466 ], [ 13605348.725500002503395, 4486635.508499997667968 ], [ 13605346.387799996882677, 4486634.24829999729991 ], [ 13605363.085699994117022, 4486604.424500003457069 ], [ 13605381.008199997246265, 4486578.24129999615252 ], [ 13605402.492799995467067, 4486596.023500001989305 ], [ 13605410.84179999679327, 4486594.903299995698035 ], [ 13605444.237599996849895, 4486610.445299993269145 ], [ 13605455.0356, 4486609.185099996626377 ], [ 13605472.9581, 4486598.543799996376038 ], [ 13605481.306999998167157, 4486596.023500001989305 ], [ 13605489.656000003218651, 4486604.424500003457069 ], [ 13605397.706100003793836, 4486822.994099996052682 ], [ 13605353.512199997901917, 4486904.206299997866154 ], [ 13605324.791799997910857, 4486906.58669999986887 ], [ 13605298.520399998873472, 4486881.52279999665916 ], [ 13605275.922600001096725, 4486867.240699998103082 ], [ 13605272.249, 4486854.078699994832277 ], [ 13605248.426600001752377, 4486832.515499998815358 ], [ 13605236.4041, 4486809.8322 ], [ 13605222.155199997127056, 4486803.951399995014071 ], [ 13605187.53490000218153, 4486802.691200004890561 ], [ 13605157.589900001883507, 4486856.459099999628961 ], [ 13605183.8613, 4486874.381800002418458 ], [ 13605199.446099992841482, 4486892.304499997757375 ], [ 13605223.268399998545647, 4486907.846899996511638 ], [ 13605231.728699993342161, 4486893.424599998630583 ], [ 13605244.864399995654821, 4486901.825900000520051 ], [ 13605253.213399996981025, 4486893.424599998630583 ], [ 13605266.5717, 4486897.065200001932681 ], [ 13605309.541000001132488, 4486949.573399995453656 ], [ 13605185.308499997481704, 4487083.295299995690584 ], [ 13605209.242200002074242, 4487097.577799996361136 ], [ 13605175.734999997541308, 4487202.736399999819696 ], [ 13605386.017499998211861, 4487317.417900003492832 ] ] ] } }, +{ "type": "Feature", "properties": { "name": "嵩山街道" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13590675.612417977303267, 4491869.7403210606426 ], [ 13590732.940189192071557, 4491764.639407167211175 ], [ 13590742.494817728176713, 4491716.86626448854804 ], [ 13590780.713331868872046, 4491621.319979134947062 ], [ 13590818.93184601329267, 4491516.219065241515636 ], [ 13590866.704988691955805, 4491411.118151349015534 ], [ 13590885.814245762303472, 4491277.353351851925254 ], [ 13590885.814245762303472, 4491153.143180888146162 ], [ 13590895.368874298408628, 4491028.933009923435748 ], [ 13590943.142016977071762, 4490895.168210424482822 ], [ 13591038.688302332535386, 4490704.075639711692929 ], [ 13591105.570702083408833, 4490503.428440463729203 ], [ 13591277.554015723988414, 4490331.445126820355654 ], [ 13591401.764186687767506, 4490197.680327321402729 ], [ 13591401.764186687767506, 4490121.243299036286771 ], [ 13591621.520643007010221, 4490083.024784894660115 ], [ 13591602.411385936662555, 4490169.016441714949906 ], [ 13591707.512299828231335, 4490169.016441714949906 ], [ 13591850.831727862358093, 4490169.016441714949906 ], [ 13591946.378013217821717, 4490169.016441714949906 ], [ 13592061.033555647358298, 4490235.898841463960707 ], [ 13592280.790011966601014, 4490293.22661267966032 ], [ 13592357.227040251716971, 4490274.117355607450008 ], [ 13592147.025212466716766, 4490083.024784894660115 ], [ 13592328.563154647126794, 4490073.470156358554959 ], [ 13592405.000182932242751, 4490025.697013680823147 ], [ 13592376.336297322064638, 4489872.822957108728588 ], [ 13592338.117783181369305, 4489700.839643466286361 ], [ 13592385.890925858169794, 4489567.074843971990049 ], [ 13592433.664068536832929, 4489614.847986648790538 ], [ 13592615.202010713517666, 4489643.511872256174684 ], [ 13592586.538125107064843, 4489786.831300287507474 ], [ 13592462.327954143285751, 4489748.612786147743464 ], [ 13592443.218697072938085, 4489825.049814431928098 ], [ 13592481.437211217358708, 4489891.932214181870222 ], [ 13592529.210353892296553, 4489930.150728325359523 ], [ 13592720.302924606949091, 4489882.377585643902421 ], [ 13592682.084410462528467, 4489997.033128073439002 ], [ 13592691.639039, 4490063.915527822449803 ], [ 13592787.185324355959892, 4489997.033128073439002 ], [ 13592920.95012385584414, 4490016.142385142855346 ], [ 13592873.176981177181005, 4490130.797927572391927 ], [ 13592920.95012385584414, 4490169.016441714949906 ], [ 13592987.832523606717587, 4490188.12569878436625 ], [ 13593112.042694566771388, 4490207.234955857507885 ], [ 13593140.706580176949501, 4490149.907184643670917 ], [ 13593217.143608460202813, 4490044.806270753033459 ], [ 13593322.244522351771593, 4490063.915527822449803 ], [ 13593341.35377942211926, 4490149.907184643670917 ], [ 13593379.572293566539884, 4490216.789584392681718 ], [ 13593503.782464530318975, 4490245.453470002859831 ], [ 13593608.883378421887755, 4490235.898841463960707 ], [ 13593694.875035241246223, 4490188.12569878436625 ], [ 13593704.429663777351379, 4490245.453470002859831 ], [ 13593666.211149636656046, 4490321.890498286113143 ], [ 13593618.438006956130266, 4490426.991412178613245 ], [ 13593551.555607207119465, 4490484.319183389656246 ], [ 13593398.68155063688755, 4490551.201583138667047 ], [ 13593274.471379673108459, 4490532.092326071113348 ], [ 13593226.698236996307969, 4490598.974725821055472 ], [ 13593226.698236996307969, 4490656.302497032098472 ], [ 13593303.135265281423926, 4490675.411754105240107 ], [ 13593427.345436245203018, 4490627.638611427508295 ], [ 13593542.000978671014309, 4490656.302497032098472 ], [ 13593637.547264028340578, 4490684.966382638551295 ], [ 13593752.202806456014514, 4490665.857125569134951 ], [ 13593809.530577670782804, 4490589.420097281225026 ], [ 13593933.740748632699251, 4490503.428440463729203 ], [ 13594029.28703399002552, 4490407.882155107334256 ], [ 13594086.614805204793811, 4490350.554383894428611 ], [ 13594163.051833489909768, 4490312.33586975093931 ], [ 13594201.270347630605102, 4490283.671984144486487 ], [ 13594296.816632987931371, 4490255.008098538033664 ], [ 13594354.144404200837016, 4490312.33586975093931 ], [ 13594459.245318096131086, 4490264.562727071344852 ], [ 13594497.46383223682642, 4490169.016441714949906 ], [ 13594554.79160345159471, 4490149.907184643670917 ], [ 13594621.674003200605512, 4490083.024784894660115 ], [ 13594717.220288556069136, 4490063.915527822449803 ], [ 13594764.99343123473227, 4490149.907184643670917 ], [ 13594803.211945377290249, 4490216.789584392681718 ], [ 13594812.76657391525805, 4490340.99975535646081 ], [ 13594793.657316841185093, 4490407.882155107334256 ], [ 13594793.657316841185093, 4490512.983068997040391 ], [ 13594688.556402949616313, 4490589.420097281225026 ], [ 13594573.900860521942377, 4490732.739525318145752 ], [ 13594564.346231985837221, 4490847.395067745819688 ], [ 13594602.564746130257845, 4490885.613581889308989 ], [ 13594679.001774415373802, 4490866.504324816167355 ], [ 13594745.884174164384604, 4490847.395067745819688 ], [ 13594803.211945377290249, 4490942.941353100351989 ], [ 13594793.657316841185093, 4491028.933009923435748 ], [ 13594860.539716592058539, 4490981.15986724384129 ], [ 13594936.976744875311852, 4490866.504324816167355 ], [ 13595022.968401696532965, 4490904.722838959656656 ], [ 13595070.741544375196099, 4490981.15986724384129 ], [ 13595166.287829730659723, 4490990.714495782740414 ], [ 13595233.17022948153317, 4491057.596895528025925 ], [ 13595347.825771909207106, 4491200.916323564015329 ], [ 13595405.153543123975396, 4491267.798723315820098 ], [ 13595481.590571409091353, 4491191.361695030704141 ], [ 13595443.372057266533375, 4491353.790380137041211 ], [ 13595491.145199945196509, 4491430.227408420294523 ], [ 13595519.809085551649332, 4491535.328322312794626 ], [ 13595529.363714085891843, 4491726.420893027447164 ], [ 13595644.019256515428424, 4491783.748664238490164 ], [ 13595825.557198690250516, 4491850.631063988432288 ], [ 13596112.196054760366678, 4491898.404206668026745 ], [ 13596255.515482796356082, 4492032.169006166979671 ], [ 13596351.061768153682351, 4491936.622720808722079 ], [ 13596503.935824723914266, 4491946.177349343895912 ], [ 13596628.145995685830712, 4491936.622720808722079 ], [ 13596752.356166649609804, 4491917.513463737443089 ], [ 13596886.120966149494052, 4491917.513463737443089 ], [ 13596867.011709079146385, 4492108.606034452095628 ], [ 13596981.667251504957676, 4492242.37083395011723 ], [ 13597115.432051004841924, 4492395.244890520349145 ], [ 13597220.532964894548059, 4492404.799519058316946 ], [ 13597440.289421215653419, 4492271.034719558432698 ], [ 13597488.062563894316554, 4492108.606034452095628 ], [ 13597688.709763143211603, 4492146.824548595584929 ], [ 13597774.701419964432716, 4492242.37083395011723 ], [ 13597774.701419964432716, 4492423.908776126801968 ], [ 13597669.600506072863936, 4492653.219860983081162 ], [ 13597717.373648749664426, 4492739.211517804302275 ], [ 13597669.600506072863936, 4492939.858717051334679 ], [ 13597640.936620464548469, 4493035.405002407729626 ], [ 13597822.474562643095851, 4493283.825344335287809 ], [ 13597984.903247749432921, 4493283.825344335287809 ], [ 13598128.22267578355968, 4493331.598487015813589 ], [ 13598175.995818460360169, 4493427.144772368483245 ], [ 13598175.995818460360169, 4493551.354943334124982 ], [ 13598099.558790175244212, 4493646.901228690519929 ], [ 13598080.449533104896545, 4493694.674371371045709 ], [ 13598023.121761890128255, 4493866.65768501162529 ], [ 13598080.449533104896545, 4493900.098884887062013 ], [ 13598218.991646870970726, 4493943.094713296741247 ], [ 13598271.542103817686439, 4493995.645170241594315 ], [ 13598328.869875032454729, 4494067.304884259589016 ], [ 13598300.205989424139261, 4494129.409969742409885 ], [ 13598223.768961139023304, 4494502.040482631884515 ], [ 13598013.567133354023099, 4495247.301508409902453 ], [ 13597908.466219464316964, 4495596.045449962839484 ], [ 13597789.033362766727805, 4495968.675962851382792 ], [ 13597655.268563266843557, 4496384.302304154261947 ], [ 13597263.52879330702126, 4498113.690069106407464 ], [ 13597105.877422468736768, 4498744.295552460476756 ], [ 13596943.448737364262342, 4499417.896864222362638 ], [ 13596781.020052256062627, 4500177.48983280453831 ], [ 13596284.17936840467155, 4500124.93937585875392 ], [ 13596212.519654387608171, 4500339.918517911806703 ], [ 13596265.070111330598593, 4500368.582403518259525 ], [ 13596288.956682670861483, 4500473.683317409828305 ], [ 13596245.960854260250926, 4500617.002745445817709 ], [ 13596255.515482796356082, 4500693.439773730002344 ], [ 13596193.410397313535213, 4500712.549030799418688 ], [ 13596140.859940368682146, 4500798.540687621571124 ], [ 13596093.086797690019011, 4500812.872630423866212 ], [ 13596102.641426226124167, 4500879.755030174739659 ], [ 13596107.4187404923141, 4501109.066115032881498 ], [ 13595787.338684549555182, 4501123.398057833313942 ], [ 13595577.136856764554977, 4501109.066115032881498 ], [ 13595376.489657515659928, 4501113.843429298140109 ], [ 13595032.523030234500766, 4501118.620743566192687 ], [ 13595414.708171660080552, 4499183.808465097099543 ], [ 13595562.804913962259889, 4498462.434010656550527 ], [ 13595237.947543749585748, 4498390.774296639487147 ], [ 13595252.279486553743482, 4498314.337268353439867 ], [ 13594244.266176043078303, 4497984.702583872713149 ], [ 13593627.992635492235422, 4497674.177156464196742 ], [ 13593489.450521724298596, 4497650.290585126727819 ], [ 13593374.794979298487306, 4497530.857728430069983 ], [ 13593040.382980549708009, 4497315.878586377948523 ], [ 13592524.43303962610662, 4497296.769329306669533 ], [ 13592471.882582681253552, 4497029.239730308763683 ], [ 13592543.542296698316932, 4496871.588359471410513 ], [ 13592524.43303962610662, 4496690.050417293794453 ], [ 13592639.088582053780556, 4496432.075446832925081 ], [ 13592538.764982428401709, 4496379.524989885278046 ], [ 13592395.445554392412305, 4496436.852761098183692 ], [ 13592486.214525483548641, 4496078.554191012866795 ], [ 13592204.352983681485057, 4496073.77687674574554 ], [ 13592075.365498449653387, 4495983.007905653677881 ], [ 13592123.138641130179167, 4495854.020420422777534 ], [ 13592218.684926485642791, 4495768.028763605281711 ], [ 13592342.895097449421883, 4495629.486649837344885 ], [ 13592405.000182932242751, 4495481.389907535165548 ], [ 13592433.664068536832929, 4495366.734365108422935 ], [ 13592438.441382804885507, 4495314.1839081607759 ], [ 13592304.676583305001259, 4495218.637622804380953 ], [ 13592347.672411717474461, 4495170.864480126649141 ], [ 13592309.453897573053837, 4495017.990423556417227 ], [ 13592256.903440628200769, 4495017.990423556417227 ], [ 13592199.575669415295124, 4495070.540880502201617 ], [ 13592089.697441253811121, 4495094.427451843395829 ], [ 13592051.478927111253142, 4495161.309851590543985 ], [ 13591922.491441879421473, 4495218.637622804380953 ], [ 13591788.72664238139987, 4495228.192251341417432 ], [ 13591549.860928989946842, 4495022.767737824469805 ], [ 13591482.978529240936041, 4494879.448309786617756 ], [ 13591358.768358275294304, 4494831.675167113542557 ], [ 13591296.663272794336081, 4494597.586767984554172 ], [ 13591310.99521560035646, 4494444.712711416184902 ], [ 13591167.675787564367056, 4494310.947911919094622 ], [ 13591105.570702083408833, 4494129.409969742409885 ], [ 13590799.822588942945004, 4494100.746084135957062 ], [ 13590689.944360781461, 4493823.661856602877378 ], [ 13590575.28881835564971, 4493799.775285262614489 ], [ 13590508.406418604776263, 4493551.354943334124982 ], [ 13590494.074475802481174, 4493408.035515298135579 ], [ 13590116.666648641228676, 4493522.691057729534805 ], [ 13590126.221277177333832, 4493231.274887389503419 ], [ 13590159.662477053701878, 4493178.724430442787707 ], [ 13590107.112020106986165, 4493025.850373873487115 ], [ 13589959.015277804806828, 4493016.295745335519314 ], [ 13589748.813450019806623, 4492944.636031321249902 ], [ 13589691.485678806900978, 4492868.199003037065268 ], [ 13589844.359735377132893, 4492586.337461235001683 ], [ 13589877.800935251638293, 4492414.354147594422102 ], [ 13589992.456477681174874, 4492342.694433577358723 ], [ 13590193.103676926344633, 4492294.921290898695588 ], [ 13590255.208762409165502, 4492175.488434199243784 ], [ 13590331.645790694281459, 4492089.496777379885316 ], [ 13590427.192076051607728, 4492041.723634703084826 ], [ 13590541.847618479281664, 4492060.832891773432493 ], [ 13590603.952703960239887, 4491927.068092275410891 ], [ 13590637.393903834745288, 4491874.517635326832533 ], [ 13590675.612417977303267, 4491869.7403210606426 ] ] ] } }, +{ "type": "Feature", "properties": { "name": "桥头镇" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13620988.8913, 4485013.665899996645749 ], [ 13621006.368500001728535, 4484999.246299992315471 ], [ 13621252.050599997863173, 4484771.755000003613532 ], [ 13621412.462, 4484682.299799999222159 ], [ 13621557.956600001081824, 4484559.8076 ], [ 13621682.9683, 4484501.57179999910295 ], [ 13621666.827, 4484304.748400002717972 ], [ 13621625.08219999819994, 4483640.251599996350706 ], [ 13621659.9252, 4483580.201199998147786 ], [ 13621712.245399996638298, 4483563.82379999384284 ], [ 13621919.2996, 4483528.969599996693432 ], [ 13621999.67230000346899, 4483518.191399994306266 ], [ 13622021.9362, 4483485.296999998390675 ], [ 13622021.9362, 4483392.353399997577071 ], [ 13621995.776100002229214, 4483323.625999998301268 ], [ 13621773.13710000552237, 4483118.426299992017448 ], [ 13621725.715, 4482828.410199998877943 ], [ 13621694.6569, 4482622.940300000831485 ], [ 13621697.662499997764826, 4482584.590099998749793 ], [ 13621725.715, 4482568.35419999808073 ], [ 13621910.505400002002716, 4482609.923600003123283 ], [ 13621976.406499993056059, 4482612.442900002002716 ], [ 13622037.298299998044968, 4482590.748499996028841 ], [ 13622095.4071, 4482541.621199997141957 ], [ 13622143.831, 4482465.061499997973442 ], [ 13622152.513999998569489, 4482421.253300004638731 ], [ 13622135.036799997091293, 4482298.507500001229346 ], [ 13622128.246299996972084, 4482134.475399997085333 ], [ 13622115.6672, 4481467.036799997091293 ], [ 13622124.350100005045533, 4481239.761799993924797 ], [ 13622082.7166, 4481073.227200001478195 ], [ 13622021.713600004091859, 4480805.238099996931851 ], [ 13622002.344, 4480758.358199995011091 ], [ 13621880.337800005450845, 4480739.326399996876717 ], [ 13621753.5449, 4480675.933999999426305 ], [ 13621573.541299998760223, 4480569.301299993880093 ], [ 13621399.326300002634525, 4480525.221199995838106 ], [ 13621233.7942, 4480527.879999997094274 ], [ 13621076.944999998435378, 4480562.864200003445148 ], [ 13621030.413500005379319, 4480598.688099998049438 ], [ 13621019.838100001215935, 4480642.348799998871982 ], [ 13621021.7306, 4480683.070899999700487 ], [ 13621045.9982, 4480789.424799999222159 ], [ 13621035.311499997973442, 4480844.141599992290139 ], [ 13620983.1027, 4480940.001500002108514 ], [ 13620867.887000001966953, 4481021.867999998852611 ], [ 13620784.6201, 4481114.650700001977384 ], [ 13620612.297499995678663, 4481349.480200001038611 ], [ 13620267.7637, 4481538.131199998781085 ], [ 13620257.410899994894862, 4481543.869099993258715 ], [ 13620104.903200002387166, 4481627.419699990190566 ], [ 13620067.1659, 4481615.103999999351799 ], [ 13619983.898999998345971, 4481441.146199997514486 ], [ 13619882.152900001034141, 4481275.588100001215935 ], [ 13619871.4663, 4481084.1428999947384 ], [ 13619833.729, 4480876.327999998815358 ], [ 13619762.0392, 4480859.67499999795109 ], [ 13619632.240699995309114, 4480912.292999993078411 ], [ 13619670.0893, 4481004.095200001262128 ], [ 13619675.877899995073676, 4481087.361599994823337 ], [ 13619562.554699998348951, 4481188.68159999512136 ], [ 13619455.131399996578693, 4481209.113700000569224 ], [ 13619278.801299996674061, 4480965.051199999637902 ], [ 13619188.7438, 4480882.765299994498491 ], [ 13618933.043, 4480646.966700000688434 ], [ 13618899.090499997138977, 4480608.623699996620417 ], [ 13618866.2513, 4480513.186599999666214 ], [ 13618854.5627, 4480336.868100001476705 ], [ 13618853.5608000010252, 4480113.95549999922514 ], [ 13618754.820500001311302, 4480102.760999999009073 ], [ 13618736.341399995610118, 4480071.136600003577769 ], [ 13618716.971800001338124, 4479857.744599998928607 ], [ 13618683.1307, 4479781.06449999473989 ], [ 13618618.23139999806881, 4479655.13119999691844 ], [ 13618609.4372, 4479600.420599994249642 ], [ 13618665.653499998152256, 4479497.99649999756366 ], [ 13618586.1714, 4479402.289599999785423 ], [ 13618412.847000002861023, 4479489.461199996061623 ], [ 13618387.688800001516938, 4479483.864299996756017 ], [ 13618365.4249, 4479464.415100000798702 ], [ 13618345.053400002419949, 4479412.643899995833635 ], [ 13618356.630599997937679, 4479302.106199997477233 ], [ 13618356.630599997937679, 4479229.20789999794215 ], [ 13618345.053400002419949, 4479173.380199995823205 ], [ 13618313.1047, 4479102.161899997852743 ], [ 13618236.516900001093745, 4479013.31449999473989 ], [ 13618164.8272, 4478797.425499995239079 ], [ 13618242.3055, 4478787.911399993114173 ], [ 13618342.047799993306398, 4478764.965599996037781 ], [ 13618351.732600001618266, 4478804.56109999679029 ], [ 13618432.2166, 4478776.158699996769428 ], [ 13618411.845099996775389, 4478662.549599994905293 ], [ 13618344.942100001499057, 4478655.693899995647371 ], [ 13618262.677, 4478664.648299997672439 ], [ 13618168.723300002515316, 4478657.652699997648597 ], [ 13618120.299400001764297, 4478660.590899995528162 ], [ 13618060.186800004914403, 4478718.794299995526671 ], [ 13618024.4533, 4478742.439599997363985 ], [ 13617873.281399998813868, 4478767.483999993652105 ], [ 13617693.166500002145767, 4478774.339799999259412 ], [ 13617637.952000001445413, 4478787.631599999032915 ], [ 13617409.413099994882941, 4478850.313 ], [ 13617205.030500002205372, 4478901.381899998523295 ], [ 13617069.443400003015995, 4478936.920399999246001 ], [ 13616812.7406, 4478944.196000002324581 ], [ 13616664.5744, 4478963.364400000311434 ], [ 13616485.461299998685718, 4479012.055299998261034 ], [ 13616261.709099996834993, 4479033.462499997578561 ], [ 13616248.016799997538328, 4478974.137999998405576 ], [ 13616231.541599996387959, 4478903.340699997730553 ], [ 13616206.494700001552701, 4478795.186899997293949 ], [ 13616453.401299998164177, 4478631.629100002348423 ], [ 13616399.188699997961521, 4478539.847599998116493 ], [ 13616178.33079999499023, 4478555.657499995082617 ], [ 13616013.6893, 4478320.190800001844764 ], [ 13615950.793799996376038, 4478175.527699995785952 ], [ 13615928.4186, 4478112.290599998086691 ], [ 13615916.841399993747473, 4478012.539199997670949 ], [ 13615934.207199994474649, 4477885.647699994966388 ], [ 13615935.2091, 4477804.784899997524917 ], [ 13615873.2041, 4477644.879899999126792 ], [ 13615840.253600001335144, 4477605.28869999665767 ], [ 13615771.569399993866682, 4477568.075999994762242 ], [ 13615714.351199995726347, 4477532.122399999760091 ], [ 13615693.089199997484684, 4477496.86849999986589 ], [ 13615686.298699993640184, 4477476.163799999281764 ], [ 13615687.300599997863173, 4477385.091899998486042 ], [ 13615691.0854, 4477156.645999998785555 ], [ 13615666.9291, 4476937.9973 ], [ 13615628.189900001510978, 4476883.160899995826185 ], [ 13615588.4489, 4476811.958099998533726 ], [ 13615560.39639999717474, 4476757.262300000526011 ], [ 13615540.024899993091822, 4476209.340899996459484 ], [ 13615547.705899996683002, 4475942.594499995931983 ], [ 13615549.598399994894862, 4475852.794699991121888 ], [ 13615538.0211, 4475815.727999999187887 ], [ 13615498.280100002884865, 4475787.05379999615252 ], [ 13615436.275099998340011, 4475765.093699998222291 ], [ 13615107.1034, 4475760.058200001716614 ], [ 13614947.359899995848536, 4475771.80759999807924 ], [ 13614883.462499998509884, 4475808.734299998730421 ], [ 13614650.1369, 4475994.208799999207258 ], [ 13614574.550899997353554, 4476063.30789999384433 ], [ 13614527.128799997270107, 4476125.13389999885112 ], [ 13614504.8649, 4476245.289899995550513 ], [ 13614478.704899996519089, 4476380.134899998083711 ], [ 13614453.5467, 4476439.025200000964105 ], [ 13614412.914999997243285, 4476463.784400002099574 ], [ 13614400.892499998211861, 4476458.4688 ], [ 13614371.281599998474121, 4476445.45979999192059 ], [ 13614196.0647, 4476360.691399996168911 ], [ 13613918.211199998855591, 4476269.628999996930361 ], [ 13613836.8367, 4476257.319599999114871 ], [ 13613796.205100001767278, 4476260.396999999880791 ], [ 13613654.9406, 4476307.396699997596443 ], [ 13613544.511699998751283, 4476336.352099998854101 ], [ 13613506.774400001391768, 4476364.88780000153929 ], [ 13613483.619900001212955, 4476396.361199991777539 ], [ 13613440.9846, 4476622.972099998034537 ], [ 13613451.671200001612306, 4476754.184799997135997 ], [ 13613471.040799995884299, 4476814.336199998855591 ], [ 13613473.601200001314282, 4476841.893999999389052 ], [ 13613474.936999998986721, 4476855.603000000119209 ], [ 13613455.5674, 4476886.658099997788668 ], [ 13613052.924800001084805, 4476973.389200002886355 ], [ 13612993.925499994307756, 4476921.630299996584654 ], [ 13612924.239500001072884, 4476863.856400000862777 ], [ 13612819.710499998182058, 4476850.287299993447959 ], [ 13612719.07769999653101, 4476836.158599999733269 ], [ 13612608.760100001469254, 4476844.411999999545515 ], [ 13612488.757600001990795, 4476855.18329999782145 ], [ 13612283.595799995586276, 4476802.725499999709427 ], [ 13612179.178099997341633, 4476791.67440000269562 ], [ 13612140.439000003039837, 4476796.990099994465709 ], [ 13612090.1225, 4476854.623799998313189 ], [ 13612037.9137, 4476993.673199997283518 ], [ 13611973.125799996778369, 4477155.247100002132356 ], [ 13611946.965699998661876, 4477182.525999999605119 ], [ 13611912.122699998319149, 4477179.448399992659688 ], [ 13611844.440399993211031, 4477116.77690000180155 ], [ 13611761.173500001430511, 4477059.001900002360344 ], [ 13611672.229199996218085, 4477047.950599996373057 ], [ 13611445.91669999808073, 4477058.582199996337295 ], [ 13611230.179499996826053, 4477093.554899993352592 ], [ 13611019.340400002896786, 4477060.54069999884814 ], [ 13610872.398599993437529, 4477053.686099993065 ], [ 13610737.9247, 4477136.221799993887544 ], [ 13610626.827799998223782, 4477195.675899998284876 ], [ 13610573.617099996656179, 4477351.796899996697903 ], [ 13610594.879099998623133, 4477424.682199999690056 ], [ 13610619.035499997437, 4477530.443699998781085 ], [ 13610650.984199997037649, 4477576.609699998050928 ], [ 13610629.722099995240569, 4477630.050699999555945 ], [ 13610553.357000002637506, 4477673.139399999752641 ], [ 13610444.48650000244379, 4477721.54449999704957 ], [ 13610413.2057, 4477735.534399998374283 ], [ 13610326.153899997472763, 4477739.171800002455711 ], [ 13610152.161500001326203, 4477715.9485 ], [ 13610014.793300004675984, 4477672.719700001180172 ], [ 13609907.59260000474751, 4477695.803000002168119 ], [ 13609822.5445, 4477721.824299995787442 ], [ 13609762.543300004675984, 4477844.516699996776879 ], [ 13609712.338200002908707, 4478020.093900000676513 ], [ 13609676.159400001168251, 4478124.881999999284744 ], [ 13609619.6091, 4478288.571800000965595 ], [ 13609527.770499996840954, 4478517.042300000786781 ], [ 13609435.04140000231564, 4478570.487999998964369 ], [ 13609201.159100003540516, 4478580.141900001093745 ], [ 13608255.277400001883507, 4478782.454800004139543 ], [ 13607966.180699996650219, 4478826.387699997983873 ], [ 13607646.9164, 4478874.938000001013279 ], [ 13606798.2166, 4478822.749899998307228 ], [ 13606499.212399996817112, 4478779.516599996946752 ], [ 13605805.024099998176098, 4478679.059199995361269 ], [ 13604742.813500002026558, 4478589.376000002026558 ], [ 13603795.818599998950958, 4478480.525899997912347 ], [ 13603280.854599993675947, 4478431.55769999884069 ], [ 13603122.781000003218651, 4478468.353699996136129 ], [ 13603092.390699995681643, 4478475.628999999724329 ], [ 13603009.0124, 4478495.356299996376038 ], [ 13602910.606, 4478547.262899999506772 ], [ 13602812.310900004580617, 4478657.932499997317791 ], [ 13602705.332900004461408, 4478749.295300000347197 ], [ 13602634.979000004008412, 4478797.425499995239079 ], [ 13602464.3262, 4478847.654600002802908 ], [ 13602367.923500001430511, 4478889.209299995563924 ], [ 13602306.252499997615814, 4478914.254099999554455 ], [ 13602253.264399997889996, 4478914.393999999389052 ], [ 13602180.016199998557568, 4478878.016099995002151 ], [ 13602107.6585, 4478841.778199997730553 ], [ 13602048.881800005212426, 4478825.54819999076426 ], [ 13602001.682400004938245, 4478820.7911 ], [ 13601981.422200001776218, 4478838.979999992996454 ], [ 13601947.6924, 4478893.826499994844198 ], [ 13601910.066399998962879, 4478941.817399996332824 ], [ 13601883.1271, 4478961.965299999341369 ], [ 13601848.395400004461408, 4478966.862299996428192 ], [ 13601806.9846, 4478963.364400000311434 ], [ 13601760.675700003281236, 4478960.426199998706579 ], [ 13601727.947700001299381, 4478963.504299998283386 ], [ 13601692.214199997484684, 4478981.833299996331334 ], [ 13601667.167300002649426, 4479003.800199998542666 ], [ 13601611.2849, 4479028.845299996435642 ], [ 13601586.237999998033047, 4479033.74229999165982 ], [ 13601529.353799998760223, 4479020.450299999676645 ], [ 13601472.469499997794628, 4478990.788000001572073 ], [ 13601406.011799998581409, 4478924.747699994593859 ], [ 13601377.068699998781085, 4478909.636899999342859 ], [ 13601326.974899996072054, 4478911.595700000412762 ], [ 13601284.562200002372265, 4478929.924599995836616 ], [ 13601241.147600002586842, 4478964.623699999414384 ], [ 13601215.0989, 4479044.236099998466671 ], [ 13601196.063199996948242, 4479058.367700003087521 ], [ 13601251.945600004866719, 4479115.314199996180832 ], [ 13601398.8873, 4479295.669899998232722 ], [ 13601492.061699997633696, 4479374.445299999788404 ], [ 13601519.557699996978045, 4479412.92369999550283 ], [ 13601616.294299997389317, 4479606.437399996444583 ], [ 13601757.224799998104572, 4479766.512100000865757 ], [ 13601758.449299998581409, 4479833.537199991755188 ], [ 13601582.787100002169609, 4479957.793399995192885 ], [ 13601588.798399997875094, 4480050.846699995920062 ], [ 13601549.391299996525049, 4480055.604299997910857 ], [ 13601542.266800001263618, 4479995.994199994020164 ], [ 13601523.1199000030756, 4480000.751800000667572 ], [ 13601496.848499998450279, 4479999.492399997077882 ], [ 13601464.565800003707409, 4479986.338999996893108 ], [ 13601441.8567, 4479968.428099999204278 ], [ 13601409.6853, 4479964.92979999538511 ], [ 13601353.469, 4479931.486799995414913 ], [ 13601305.712899997830391, 4479919.452900000847876 ], [ 13601298.588500002399087, 4479926.72919999435544 ], [ 13601328.422100001946092, 4479955.414599996991456 ], [ 13601346.3445, 4480004.249999999068677 ], [ 13601345.12, 4480064.000200002454221 ], [ 13601385.751599997282028, 4480080.651899999007583 ], [ 13601431.169999998062849, 4480091.426599999889731 ], [ 13601490.837199997156858, 4480074.774800002574921 ], [ 13601523.1199000030756, 4480074.774800002574921 ], [ 13601544.604500001296401, 4480086.6689 ], [ 13601575.662699995562434, 4480087.788399997167289 ], [ 13601613.845299996435642, 4480069.877199995331466 ], [ 13601624.643299996852875, 4480083.030699995346367 ], [ 13601629.43, 4480102.201199998147786 ], [ 13601640.116700001060963, 4480116.474199997261167 ], [ 13601642.565700002014637, 4480146.279600002802908 ], [ 13601658.039099998772144, 4480161.812000000849366 ], [ 13601624.643299996852875, 4480197.634599997662008 ], [ 13601664.05039999820292, 4480238.215099995955825 ], [ 13601730.9534, 4480263.402999996207654 ], [ 13601749.98900000192225, 4480263.402999996207654 ], [ 13601751.213500002399087, 4480233.457299998030066 ], [ 13601753.662500003352761, 4480183.361499999649823 ], [ 13601746.42679999768734, 4480160.692599990405142 ], [ 13601752.438000002875924, 4480155.794999997131526 ], [ 13601762.0115, 4480173.706200003623962 ], [ 13601785.83389999717474, 4480208.409400002099574 ], [ 13601771.585, 4480226.32079999987036 ], [ 13601769.136, 4480258.505299997515976 ], [ 13601787.058399997651577, 4480285.93229999858886 ], [ 13601809.767600001767278, 4480284.8127999920398 ], [ 13601818.116499997675419, 4480342.045699996873736 ], [ 13602003.240799997001886, 4480320.635799997486174 ], [ 13602019.9388, 4480312.239799999631941 ], [ 13602029.512199996039271, 4480331.270799999125302 ], [ 13601943.573599997907877, 4480344.424599995836616 ], [ 13601943.573599997907877, 4480364.715099995955825 ], [ 13601919.639899998903275, 4480369.472799996845424 ], [ 13601923.2021, 4480426.846199995838106 ], [ 13601912.515499997884035, 4480436.361799999140203 ], [ 13601889.8063, 4480436.361799999140203 ], [ 13601861.0859, 4480492.476000004447997 ], [ 13601834.814499996602535, 4480494.854999994859099 ], [ 13601825.241, 4480517.524599999189377 ], [ 13601798.9696, 4480539.074900002218783 ], [ 13601720.155400002375245, 4480503.251100002788007 ], [ 13601630.6545, 4480559.365799997933209 ], [ 13601561.302499998360872, 4480591.551299996674061 ], [ 13601544.604500001296401, 4480609.463299997150898 ], [ 13601508.7597, 4480596.309199992567301 ], [ 13601465.790299993008375, 4480648.925899997353554 ], [ 13601472.9148, 4480669.216899996623397 ], [ 13601490.837199997156858, 4480697.904400000348687 ], [ 13601507.646499995142221, 4480711.058600000105798 ], [ 13601505.1974, 4480733.728799998760223 ], [ 13601508.7597, 4480738.486699996516109 ], [ 13601523.1199000030756, 4480732.469300000928342 ], [ 13601568.538199994713068, 4480751.641099996864796 ], [ 13601587.573899997398257, 4480719.454999999143183 ], [ 13601551.729000002145767, 4480697.904400000348687 ], [ 13601529.131099998950958, 4480686.009599997662008 ], [ 13601520.782199997454882, 4480676.353800000622869 ], [ 13601525.457599997520447, 4480675.234300001524389 ], [ 13601609.058499995619059, 4480720.574500001035631 ], [ 13601622.194199997931719, 4480711.058600000105798 ], [ 13601611.507600001990795, 4480699.023900003172457 ], [ 13601586.460699997842312, 4480690.767499996349216 ], [ 13601537.480099994689226, 4480664.458999997004867 ], [ 13601541.0423, 4480659.701099999248981 ], [ 13601572.10050000436604, 4480662.0801 ], [ 13601575.662699995562434, 4480652.564300001598895 ], [ 13601587.573899997398257, 4480656.062700002454221 ], [ 13601619.856499997898936, 4480662.0801 ], [ 13601640.116700001060963, 4480668.097399997524917 ], [ 13601654.476899996399879, 4480677.613199998624623 ], [ 13601640.116700001060963, 4480690.767499996349216 ], [ 13601635.329899994656444, 4480700.283299993723631 ], [ 13601643.790200002491474, 4480719.454999999143183 ], [ 13601632.9922, 4480746.883099999278784 ], [ 13601639.0035, 4480755.279499997384846 ], [ 13601658.039099998772144, 4480754.02000000141561 ], [ 13601653.252400003373623, 4480744.5041000014171 ], [ 13601652.139200001955032, 4480731.349799993447959 ], [ 13601683.197300001978874, 4480688.388499998487532 ], [ 13601702.232900001108646, 4480694.266000000759959 ], [ 13601727.391099998727441, 4480712.17809999268502 ], [ 13601783.496200002729893, 4480707.42019999679178 ], [ 13601803.756300002336502, 4480716.936099998652935 ], [ 13601803.756300002336502, 4480722.953500003553927 ], [ 13601795.40739999897778, 4480738.486699996516109 ], [ 13601783.496200002729893, 4480773.191799997352064 ], [ 13601771.585, 4480777.949699996039271 ], [ 13601769.136, 4480819.651899993419647 ], [ 13601758.449299998581409, 4480848.339799994602799 ], [ 13601746.42679999768734, 4480849.599299995228648 ], [ 13601691.546300003305078, 4480883.045199992135167 ], [ 13601675.961499996483326, 4480897.319200003519654 ], [ 13601662.8258, 4480893.820699996314943 ], [ 13601662.8258, 4480880.666199997067451 ], [ 13601647.352399997413158, 4480841.202799995429814 ], [ 13601609.058499995619059, 4480809.016500001773238 ], [ 13601556.515699997544289, 4480776.690300001762807 ], [ 13601506.422, 4480751.641099996864796 ], [ 13601499.186199998483062, 4480770.672899998724461 ], [ 13601483.490099996328354, 4480780.18879999872297 ], [ 13601435.7341, 4480832.666400000452995 ], [ 13601411.911700004711747, 4480880.526199997402728 ], [ 13601368.83110000193119, 4480933.004400000907481 ], [ 13601426.1606, 4480975.966699996031821 ], [ 13601392.764799997210503, 4481038.101400002837181 ], [ 13601454.880999997258186, 4481062.03169999551028 ], [ 13601473.91669999808073, 4481081.064099999144673 ], [ 13601454.880999997258186, 4481109.7527 ], [ 13601445.3076, 4481167.129999998956919 ], [ 13601507.4238, 4481176.646300000138581 ], [ 13601502.637100003659725, 4481210.093299996107817 ], [ 13601478.7034, 4481229.265900002792478 ], [ 13601483.490099996328354, 4481253.056700000539422 ], [ 13601416.5871, 4481363.055100000463426 ], [ 13601378.4045, 4481210.093299996107817 ], [ 13601239.923100002110004, 4481229.265900002792478 ], [ 13601292.465899996459484, 4481319.951300001703203 ], [ 13601306.71480000205338, 4481434.708600000478327 ], [ 13601325.861699996516109, 4481472.914599999785423 ], [ 13601335.435199998319149, 4481554.085500002838671 ], [ 13601215.9894, 4481702.153999998234212 ], [ 13601464.454499997198582, 4481735.602600001730025 ], [ 13601583.900300001725554, 4481778.568199994042516 ], [ 13601626.869599997997284, 4481735.602600001730025 ], [ 13601693.772699993103743, 4481769.051399998366833 ], [ 13601784.498000003397465, 4481759.534599997103214 ], [ 13601884.796899996697903, 4481759.534599997103214 ], [ 13601899.1571, 4481802.500200001522899 ], [ 13602018.602899998426437, 4481850.224499999545515 ], [ 13602056.7855, 4481898.088999999687076 ], [ 13602094.968099994584918, 4481974.504600002430379 ], [ 13602204.951800003647804, 4481984.021599994972348 ], [ 13602247.921099998056889, 4482036.645199998281896 ], [ 13602343.433200003579259, 4482055.679399996064603 ], [ 13602345.548299998044968, 4482068.9753 ], [ 13602372.1536, 4482232.446499996818602 ], [ 13602443.732100004330277, 4482246.862299998290837 ], [ 13602591.898299997672439, 4482165.546199998818338 ], [ 13602639.654399994760752, 4482189.479099996387959 ], [ 13602682.623699996620417, 4482241.963699997402728 ], [ 13602677.836999997496605, 4482566.814599993638694 ], [ 13602571.6382, 4482680.185900001786649 ], [ 13602534.568799998611212, 4482719.796199994161725 ], [ 13602505.848300004377961, 4482772.28349999897182 ], [ 13602501.0616, 4482896.574499999172986 ], [ 13602343.321900002658367, 4482904.692599995061755 ], [ 13602288.441399995237589, 4482787.679799996316433 ], [ 13602149.848599998280406, 4482899.933700003661215 ], [ 13602035.189499996602535, 4482868.860799997113645 ], [ 13602039.976300001144409, 4482818.7524000024423 ], [ 13602071.034400001168251, 4482801.956399998627603 ], [ 13602082.945600003004074, 4482768.504399994388223 ], [ 13602063.91, 4482754.22779999114573 ], [ 13602073.483400002121925, 4482684.94469999987632 ], [ 13602066.2477, 4482649.113699996843934 ], [ 13602039.976300001144409, 4482646.734299997799098 ], [ 13601999.344700001180172, 4482692.082999993115664 ], [ 13601951.588600002229214, 4482747.089499997906387 ], [ 13601915.743699997663498, 4482739.951300001703203 ], [ 13601870.436700001358986, 4482716.017099998891354 ], [ 13601839.378600001335144, 4482682.565300000831485 ], [ 13601820.231599997729063, 4482704.119999993592501 ], [ 13601846.502999998629093, 4482737.571800001896918 ], [ 13601915.743699997663498, 4482801.956399998627603 ], [ 13601901.494800001382828, 4482833.029099998064339 ], [ 13601930.1039, 4482840.16739999782294 ], [ 13602028.0651, 4482931.006699997931719 ], [ 13602111.666, 4482973.977099999785423 ], [ 13602133.150700001046062, 4482971.597699997015297 ], [ 13602128.364, 4483005.050299996510148 ], [ 13602094.968099994584918, 4483031.364699994213879 ], [ 13602061.460900001227856, 4483121.925599997863173 ], [ 13602061.460900001227856, 4483152.999300003051758 ], [ 13602128.364, 4483160.137799995951355 ], [ 13602128.364, 4483253.359299996867776 ], [ 13602140.275100002065301, 4483379.895599995739758 ], [ 13602152.2976, 4483391.933399993926287 ], [ 13602207.17819999717176, 4483389.553899999707937 ], [ 13602276.530199993401766, 4483525.610200001858175 ], [ 13602159.4221, 4483580.621100001037121 ], [ 13602032.851800002157688, 4483420.48830000218004 ], [ 13601970.735600002110004, 4483444.424099996685982 ], [ 13601949.250900002196431, 4483442.04450000077486 ], [ 13601891.921400003135204, 4483420.48830000218004 ], [ 13601856.076499998569489, 4483396.692599995061755 ], [ 13601834.591799994930625, 4483379.895599995739758 ], [ 13601813.107199996709824, 4483370.377300002612174 ], [ 13601801.084700003266335, 4483379.895599995739758 ], [ 13601793.960199993103743, 4483396.692599995061755 ], [ 13601782.04900000244379, 4483518.47139999922365 ], [ 13601825.018299993127584, 4483537.648199998773634 ], [ 13601901.494800001382828, 4483604.417299999855459 ], [ 13601961.162100004032254, 4483673.706399994902313 ], [ 13601913.406000003218651, 4483692.74349999986589 ], [ 13601884.796899996697903, 4483699.882399995811284 ], [ 13601865.65, 4483716.679899997077882 ], [ 13601832.254100004211068, 4483740.476299997419119 ], [ 13601801.196000004187226, 4483742.855999995023012 ], [ 13601782.04900000244379, 4483747.755299998447299 ], [ 13601750.990899998694658, 4483757.273900003172457 ], [ 13601731.843899998813868, 4483769.172200002707541 ], [ 13601631.545100003480911, 4483671.186800002120435 ], [ 13601598.149199998006225, 4483656.909000001847744 ], [ 13601547.9441, 4483661.668200000189245 ], [ 13601528.908499997109175, 4483683.224899997934699 ], [ 13601576.6646, 4483762.03320000320673 ], [ 13601557.517600001767278, 4483773.9315 ], [ 13601545.6064, 4483793.108699998818338 ], [ 13601464.343199998140335, 4483819.284999995492399 ], [ 13601366.381999997422099, 4483855.120099995285273 ], [ 13601273.318899992853403, 4483905.373399998061359 ], [ 13601194.393399994820356, 4483965.005700001493096 ], [ 13601137.063900001347065, 4484008.120300003327429 ], [ 13601106.117099996656179, 4484024.778299994766712 ], [ 13601094.0946, 4484036.676899999380112 ], [ 13601055.911999998614192, 4484041.436300001107156 ], [ 13601039.214100001379848, 4484058.094400003552437 ], [ 13600886.261100001633167, 4484101.069399993866682 ], [ 13600867.2254, 4484156.083400002680719 ], [ 13600833.7183, 4484222.996399994939566 ], [ 13600802.660099994391203, 4484253.933300004340708 ], [ 13600790.748999997973442, 4484270.73159999679774 ], [ 13600778.837800005450845, 4484297.049099992960691 ], [ 13600788.411199998110533, 4484318.467099998146296 ], [ 13600879.136600002646446, 4484423.597900001332164 ], [ 13601020.067100003361702, 4484344.784699997864664 ], [ 13601113.241499997675419, 4484213.337299996986985 ], [ 13601108.454800002276897, 4484308.947999994270504 ], [ 13601091.756899993866682, 4484332.885799997486174 ], [ 13601094.0946, 4484414.078699997626245 ], [ 13601065.4855, 4484533.489500001072884 ], [ 13600862.438699997961521, 4484511.930999998003244 ], [ 13600762.139799993485212, 4484535.869299998506904 ], [ 13600802.660099994391203, 4484581.226099996827543 ], [ 13600812.233599996194243, 4484612.304099999368191 ], [ 13600905.408, 4484638.622399996966124 ], [ 13601000.9202, 4484641.002300002612174 ], [ 13601060.698700001463294, 4484669.560599996708333 ], [ 13601122.815, 4484753.275999998673797 ], [ 13601172.908799996599555, 4484789.114199998788536 ], [ 13601225.4516, 4484796.253899995237589 ], [ 13601280.4434, 4484824.952599994838238 ], [ 13601316.2883, 4484863.170900001190603 ], [ 13601356.9199, 4484867.930699991062284 ], [ 13601449.983000004664063, 4484972.9271 ], [ 13601495.401299998164177, 4484992.106499997898936 ], [ 13601562.304300002753735, 4484984.966699998825788 ], [ 13601605.273699998855591, 4484994.486400000751019 ], [ 13601693.661300003528595, 4485051.744999994523823 ], [ 13601760.564400002360344, 4485037.465299998410046 ], [ 13601837.040799995884299, 4485044.605199999175966 ], [ 13601860.863200003281236, 4485059.024799997918308 ], [ 13601875.223399996757507, 4485078.064400003291667 ], [ 13601982.646700002253056, 4485154.503199999220669 ], [ 13602061.5723, 4485192.722800001502037 ], [ 13602183.5784, 4485214.1426 ], [ 13602341.206799998879433, 4485369.40259999781847 ], [ 13602362.691500002518296, 4485424.283200002275407 ], [ 13602360.242500001564622, 4485474.543899997137487 ], [ 13602371.040399998426437, 4485485.324100001715124 ], [ 13602454.641400001943111, 4485472.30390000436455 ], [ 13602504.8465, 4485492.604300000704825 ], [ 13602563.289199998602271, 4485536.705200002528727 ], [ 13602760.324699997901917, 4485573.806199996732175 ], [ 13602801.0675999969244, 4485631.067900000140071 ], [ 13602865.63289999589324, 4485655.288699992932379 ], [ 13602877.432800002396107, 4485659.768799996934831 ], [ 13602896.5798, 4485769.673299998044968 ], [ 13602957.4715, 4485847.237099994905293 ], [ 13602952.684799998998642, 4485982.20509999524802 ], [ 13603101.964199997484684, 4486051.5099 ], [ 13603137.8091000020504, 4486083.712300002574921 ], [ 13603145.0449, 4486172.059399998746812 ], [ 13603116.3244, 4486224.703899996355176 ], [ 13602969.494000002741814, 4486206.782300001010299 ], [ 13602976.618499998003244, 4486255.646700002253056 ], [ 13603005.227599997073412, 4486335.734399994835258 ], [ 13603050.6459, 4486385.859499993734062 ], [ 13603173.654, 4486415.682599995285273 ], [ 13603345.6426, 4486511.313299996778369 ], [ 13603370.8008, 4486536.376199997030199 ], [ 13603451.95269999653101, 4486583.001900003291667 ], [ 13603387.498699996620417, 4486760.965299998410046 ], [ 13603462.750699993222952, 4486815.853099997155368 ], [ 13603474.661899995058775, 4486805.07150000333786 ], [ 13603559.4873, 4486596.023500001989305 ], [ 13603628.728100003674626, 4486599.663899999111891 ], [ 13603676.4841, 4486608.064999994821846 ], [ 13603695.631099998950958, 4486623.606999999843538 ], [ 13603641.863799996674061, 4486737.021999999880791 ], [ 13603546.351599996909499, 4486885.163399998098612 ], [ 13603583.30969999730587, 4486882.782999997027218 ], [ 13603729.0269, 4486799.190700001083314 ], [ 13603781.569700002670288, 4486604.424500003457069 ], [ 13603778.007500002160668, 4486603.304399995133281 ], [ 13603738.6004, 4486591.262900000438094 ], [ 13603711.104500003159046, 4486590.142800005152822 ], [ 13603699.193300001323223, 4486600.924099994823337 ], [ 13603684.833099998533726, 4486594.903299995698035 ], [ 13603657.4485, 4486567.459999998100102 ], [ 13603647.875000001862645, 4486465.948100002482533 ], [ 13603656.224, 4486432.48439999576658 ], [ 13603700.41780000180006, 4486387.119599996134639 ], [ 13603571.398500004783273, 4486329.713799997232854 ], [ 13603486.573099996894598, 4486329.713799997232854 ], [ 13603431.69259999319911, 4486264.047499996609986 ], [ 13603334.955899998545647, 4486200.761799997650087 ], [ 13603291.986599996685982, 4486080.071999998763204 ], [ 13603256.141700001433492, 4486024.068000002764165 ], [ 13603223.8591, 4485985.845399996265769 ], [ 13603197.587700001895428, 4485927.321699995547533 ], [ 13603148.607100004330277, 4485883.079099993221462 ], [ 13603113.986699994653463, 4485866.418099996633828 ], [ 13603094.8398, 4485862.777900002896786 ], [ 13603091.2776, 4485829.316200000233948 ], [ 13603100.851000003516674, 4485757.632699998095632 ], [ 13603205.9366, 4485743.352099997922778 ], [ 13603214.2856, 4485812.655299998819828 ], [ 13603349.316100001335144, 4485783.953900001011789 ], [ 13603483.010799996554852, 4485770.793299998156726 ], [ 13603527.20469999872148, 4485896.239799997769296 ], [ 13603570.285300001502037, 4485954.763400002382696 ], [ 13603594.107699997723103, 4486003.766599996946752 ], [ 13603615.592400001361966, 4486037.088899999856949 ], [ 13603664.5729, 4486077.691899995319545 ], [ 13603683.719899997115135, 4486111.154399997554719 ], [ 13603779.343299997970462, 4486211.542700000107288 ], [ 13603839.010599996894598, 4486256.906799998134375 ], [ 13603885.653399994596839, 4486281.96919999923557 ], [ 13603908.36259999871254, 4486087.352599998004735 ], [ 13603928.622799996286631, 4486074.191600002348423 ], [ 13603991.963600002229214, 4486163.79869999550283 ], [ 13604085.026600005105138, 4486255.646700002253056 ], [ 13604039.7196, 4486333.354099997319281 ], [ 13604073.115500003099442, 4486439.625199998728931 ], [ 13604105.398100003600121, 4486491.011000000871718 ], [ 13604177.087899994105101, 4486494.511399995535612 ], [ 13604197.348, 4486505.292599998414516 ], [ 13604208.034699998795986, 4486479.109599997289479 ], [ 13604200.9102, 4486457.547200002707541 ], [ 13604354.976400002837181, 4486473.088899999856949 ], [ 13604446.926299996674061, 4486471.828799999319017 ], [ 13604441.0264, 4486414.562499999068677 ], [ 13604190.223599996417761, 4486397.760700001381338 ], [ 13604195.010300002992153, 4486266.427699993364513 ], [ 13604214.045900002121925, 4486241.36540000140667 ], [ 13604331.154, 4486259.286999999545515 ], [ 13604420.766199998557568, 4486314.172199996188283 ], [ 13604452.937600001692772, 4486354.776299992576241 ], [ 13604538.987499997019768, 4486403.781400002539158 ], [ 13604593.868, 4486428.843999995850027 ], [ 13604615.352700002491474, 4486434.864699995145202 ], [ 13604629.7129, 4486442.005500003695488 ], [ 13604655.984300004318357, 4486462.307699999772012 ], [ 13604707.302599996328354, 4486426.463799996301532 ], [ 13604700.178199995309114, 4486409.801999997347593 ], [ 13604700.178199995309114, 4486397.760700001381338 ], [ 13604706.189400002360344, 4486389.499899993650615 ], [ 13604727.674099994823337, 4486376.338499994017184 ], [ 13604740.809799997135997, 4486372.698100001551211 ], [ 13604703.74040000140667, 4486336.854500003159046 ], [ 13604666.782300001010299, 4486272.448299998417497 ], [ 13604669.119999997317791, 4486184.100400001741946 ], [ 13604684.7047, 4486187.600699996575713 ], [ 13604704.964900001883507, 4486207.902399997226894 ], [ 13604725.225000001490116, 4486216.303199994377792 ], [ 13604733.685299996286631, 4486223.443800000473857 ], [ 13604752.72099999897182, 4486232.964599996805191 ], [ 13604763.518899995833635, 4486235.344899994321167 ], [ 13604767.081200001761317, 4486255.646700002253056 ], [ 13604764.6321, 4486342.875100000761449 ], [ 13604786.2281, 4486376.338499994017184 ], [ 13604799.363799996674061, 4486410.922100001014769 ], [ 13604827.972900001332164, 4486444.385700001381338 ], [ 13604859.031099995598197, 4486456.287100002169609 ], [ 13604892.426899995654821, 4486476.589300000108778 ], [ 13604925.9341000020504, 4486479.109599997289479 ], [ 13604958.216700002551079, 4486487.370499999262393 ], [ 13604993.9503, 4486508.932999999262393 ], [ 13605020.2217, 4486531.615699999034405 ], [ 13605040.593199998140335, 4486524.474799998104572 ], [ 13605048.942100005224347, 4486494.511399995535612 ], [ 13605028.681999998167157, 4486455.166899999603629 ], [ 13604960.554399996995926, 4486420.583200000226498 ], [ 13604918.698299994692206, 4486395.380500003695488 ], [ 13604897.213600002229214, 4486316.552499999292195 ], [ 13604874.615800002589822, 4486278.328799998387694 ], [ 13604878.178, 4486258.0269 ], [ 13604897.213600002229214, 4486250.886299999430776 ], [ 13604989.163500001654029, 4486283.229299999773502 ], [ 13605003.523800002411008, 4486297.510599995031953 ], [ 13605081.2248, 4486327.333499997854233 ], [ 13605113.3961, 4486354.776299992576241 ], [ 13605132.54309999756515, 4486379.978900000452995 ], [ 13605194.6593, 4486428.843999995850027 ], [ 13605188.648100001737475, 4486437.244999998249114 ], [ 13605185.085900001227856, 4486482.609999998472631 ], [ 13605217.368500001728535, 4486489.750799995847046 ], [ 13605245.9776, 4486502.9123 ], [ 13605245.9776, 4486514.813699995167553 ], [ 13605214.9195, 4486590.142800005152822 ], [ 13605206.5705, 4486643.909500003792346 ], [ 13605213.80629999563098, 4486652.17059999704361 ], [ 13605272.249, 4486680.874399992637336 ], [ 13605310.542900001630187, 4486605.684699996374547 ], [ 13605326.016299998387694, 4486612.825599995441735 ], [ 13605308.0939, 4486665.332299998030066 ], [ 13605326.016299998387694, 4486673.733399999327958 ], [ 13605314.105099996551871, 4486705.937700001522899 ], [ 13605293.733699997887015, 4486735.761799996718764 ], [ 13605286.609199997037649, 4486753.684299996122718 ], [ 13605287.833699997514486, 4486763.345600000582635 ], [ 13605308.0939, 4486775.247299998067319 ], [ 13605334.3653, 4486781.268099998123944 ], [ 13605339.152, 4486765.72590000089258 ], [ 13605357.074499998241663, 4486750.183799996040761 ], [ 13605352.287699997425079, 4486728.620799998752773 ], [ 13605379.783600002527237, 4486690.395599996671081 ], [ 13605359.523500002920628, 4486641.529199997894466 ], [ 13605348.725500002503395, 4486635.508499997667968 ], [ 13605346.387799996882677, 4486634.24829999729991 ], [ 13605363.085699994117022, 4486604.424500003457069 ], [ 13605381.008199997246265, 4486578.24129999615252 ], [ 13605402.492799995467067, 4486596.023500001989305 ], [ 13605410.84179999679327, 4486594.903299995698035 ], [ 13605444.237599996849895, 4486610.445299993269145 ], [ 13605455.0356, 4486609.185099996626377 ], [ 13605472.9581, 4486598.543799996376038 ], [ 13605481.306999998167157, 4486596.023500001989305 ], [ 13605489.656000003218651, 4486604.424500003457069 ], [ 13605397.706100003793836, 4486822.994099996052682 ], [ 13605353.512199997901917, 4486904.206299997866154 ], [ 13605324.791799997910857, 4486906.58669999986887 ], [ 13605298.520399998873472, 4486881.52279999665916 ], [ 13605275.922600001096725, 4486867.240699998103082 ], [ 13605272.249, 4486854.078699994832277 ], [ 13605248.426600001752377, 4486832.515499998815358 ], [ 13605236.4041, 4486809.8322 ], [ 13605222.155199997127056, 4486803.951399995014071 ], [ 13605187.53490000218153, 4486802.691200004890561 ], [ 13605157.589900001883507, 4486856.459099999628961 ], [ 13605183.8613, 4486874.381800002418458 ], [ 13605199.446099992841482, 4486892.304499997757375 ], [ 13605223.268399998545647, 4486907.846899996511638 ], [ 13605231.728699993342161, 4486893.424599998630583 ], [ 13605244.864399995654821, 4486901.825900000520051 ], [ 13605253.213399996981025, 4486893.424599998630583 ], [ 13605266.5717, 4486897.065200001932681 ], [ 13605309.541000001132488, 4486949.573399995453656 ], [ 13605185.308499997481704, 4487083.295299995690584 ], [ 13605209.242200002074242, 4487097.577799996361136 ], [ 13605175.734999997541308, 4487202.736399999819696 ], [ 13605386.017499998211861, 4487317.417900003492832 ], [ 13605414.626599997282028, 4487193.214599996805191 ], [ 13605505.463299997150898, 4486973.377099997363985 ], [ 13605651.0692, 4486564.939700002782047 ], [ 13605732.8891, 4486331.953999997116625 ], [ 13605777.750799998641014, 4486204.262100003659725 ], [ 13605806.359899997711182, 4485984.585299994796515 ], [ 13605827.399300001561642, 4485887.27929999306798 ], [ 13605837.4181, 4485841.21679999306798 ], [ 13605846.546299997717142, 4485827.496099997311831 ], [ 13605851.778300002217293, 4485819.655699995346367 ], [ 13605863.46679999679327, 4485820.495699996128678 ], [ 13605978.3485, 4485829.316200000233948 ], [ 13606035.678099993616343, 4485724.171299997717142 ], [ 13606083.4341000020504, 4485755.252599999308586 ], [ 13606093.007599998265505, 4485762.392899997532368 ], [ 13606090.669899998232722, 4485776.673600002191961 ], [ 13606083.4341000020504, 4485786.334099995903671 ], [ 13606059.61179999820888, 4485824.555899998173118 ], [ 13606047.589299995452166, 4485884.199100000783801 ], [ 13606088.220899997279048, 4485896.099799993447959 ], [ 13606109.705499995499849, 4485893.719700001180172 ], [ 13606100.1321, 4485857.877699999138713 ], [ 13606121.727999998256564, 4485791.094299998134375 ], [ 13606186.181999988853931, 4485802.994899997487664 ], [ 13606183.733000002801418, 4485810.135199999436736 ], [ 13606179.0576, 4485874.678599998354912 ], [ 13606210.1157, 4485874.678599998354912 ], [ 13606226.81360000371933, 4485848.357199989259243 ], [ 13606248.298299998044968, 4485857.877699999138713 ], [ 13606264.9962, 4485860.257799997925758 ], [ 13606272.120700001716614, 4485848.357199989259243 ], [ 13606288.929899998009205, 4485841.21679999306798 ], [ 13606293.716700004413724, 4485793.474399999715388 ], [ 13606348.597199998795986, 4485731.311599996872246 ], [ 13606386.779799997806549, 4485750.492399997077882 ], [ 13606389.228799998760223, 4485769.533299997448921 ], [ 13606463.2562, 4485786.334099995903671 ], [ 13606501.438800001516938, 4485845.976999996230006 ], [ 13606515.7989999987185, 4485836.456500000320375 ], [ 13606499.10109999589622, 4485764.773100004531443 ], [ 13606527.710199996829033, 4485683.569700003601611 ], [ 13606625.671400001272559, 4485693.090099996887147 ], [ 13606618.546899994835258, 4485564.145900005474687 ], [ 13606661.5163, 4485573.666199996136129 ], [ 13606694.912100002169609, 4485597.606799995526671 ], [ 13606718.8458, 4485666.909099998883903 ], [ 13606723.632499996572733, 4485700.230299997143447 ], [ 13606721.183499995619059, 4485733.691699995659292 ], [ 13606735.543699998408556, 4485752.872500002384186 ], [ 13606761.815100001171231, 4485764.773100004531443 ], [ 13606776.175300003960729, 4485788.714199992828071 ], [ 13606778.513, 4485810.135199999436736 ], [ 13606835.842600002884865, 4485779.053700000979006 ], [ 13606852.651800001040101, 4485767.153199994936585 ], [ 13606869.349699998274446, 4485769.533299997448921 ], [ 13606871.6875, 4485791.094299998134375 ], [ 13606864.563000002875924, 4485814.895400002598763 ], [ 13606864.563000002875924, 4485843.596899999305606 ], [ 13606847.865099996328354, 4485869.918300003744662 ], [ 13606864.563000002875924, 4485886.579299997538328 ], [ 13606890.834399998188019, 4485905.760399997234344 ], [ 13606948.163900002837181, 4485903.38019999768585 ], [ 13606981.671099996194243, 4485920.041199994273484 ], [ 13606984.008799996227026, 4485941.6025 ], [ 13607017.404700001701713, 4485963.023899999447167 ], [ 13607015.06700000166893, 4486115.914800000376999 ], [ 13607010.280199995264411, 4486144.617099998518825 ], [ 13607015.06700000166893, 4486199.501699997112155 ], [ 13607055.698599997907877, 4486232.964599996805191 ], [ 13607110.579099996015429, 4486247.245899996720254 ], [ 13607203.7535, 4486204.262100003659725 ], [ 13607232.4739, 4486213.782899996265769 ], [ 13607282.567699998617172, 4486249.626199997961521 ], [ 13607344.684000002220273, 4486256.906799998134375 ], [ 13607399.119199998676777, 4486286.029500000178814 ], [ 13607406.800300002098083, 4486290.229899999685585 ], [ 13607480.827699998393655, 4486340.494799996726215 ], [ 13607502.312399996444583, 4486359.536799997091293 ], [ 13607507.09909999743104, 4486400.141000002622604 ], [ 13607547.7307, 4486505.292599998414516 ], [ 13607550.179799994453788, 4486584.121999997645617 ], [ 13607531.032799996435642, 4486691.655799998901784 ], [ 13607490.40119999460876, 4486725.120300002396107 ], [ 13607480.382399996742606, 4486738.142099997960031 ], [ 13607466.467500001192093, 4486756.064599992707372 ], [ 13607468.916500002145767, 4486787.148999996483326 ], [ 13607444.9828, 4486889.924099993892014 ], [ 13607397.2268, 4487011.74339999910444 ], [ 13607349.47070000320673, 4487073.773699995130301 ], [ 13607306.501400001347065, 4487138.324900002218783 ], [ 13607311.288099996745586, 4487267.288300001062453 ], [ 13607320.861599998548627, 4487286.331900000572205 ], [ 13607299.265600005164742, 4487305.515600003302097 ], [ 13607344.684000002220273, 4487369.92809999641031 ], [ 13607354.257499998435378, 4487401.014300003647804 ], [ 13607351.919699998572469, 4487439.242099999450147 ], [ 13607342.3462999984622, 4487441.622500000521541 ], [ 13607361.3819, 4487465.567500001750886 ], [ 13607382.8666, 4487491.752899992279708 ], [ 13607378.191100003197789, 4487520.458999999798834 ], [ 13607359.04420000500977, 4487520.458999999798834 ], [ 13607354.257499998435378, 4487537.262599997222424 ], [ 13607380.417499996721745, 4487564.708499998785555 ], [ 13607442.5337999984622, 4487645.926299996674061 ], [ 13607471.142899997532368, 4487684.154999998398125 ], [ 13607471.142899997532368, 4487727.144899998791516 ], [ 13607447.320500003173947, 4487717.482600004412234 ], [ 13607404.351200001314282, 4487746.189299996942282 ], [ 13607351.808399997651577, 4487755.711499996483326 ], [ 13607318.301299996674061, 4487750.950400000438094 ], [ 13607303.940999997779727, 4487774.89599999319762 ], [ 13607213.215699996799231, 4487774.89599999319762 ], [ 13607170.246299995109439, 4487841.691999999806285 ], [ 13607136.7392, 4487875.160199996083975 ], [ 13607103.3433, 4487903.867299997247756 ], [ 13607118.928000003099442, 4487923.332199996337295 ], [ 13607122.490299997851253, 4487927.813299998641014 ], [ 13607077.183200001716614, 4488012.394900004379451 ], [ 13607073.954999998211861, 4488018.276399996131659 ], [ 13607069.168200001120567, 4488070.790099995210767 ], [ 13607082.303900003433228, 4488093.476199999451637 ], [ 13607130.06, 4488140.10869999602437 ], [ 13607157.5559, 4488160.414200000464916 ], [ 13607182.602799993008375, 4488186.74139999691397 ], [ 13607194.62529999576509, 4488207.047099999152124 ], [ 13607196.962999997660518, 4488252.419699993915856 ], [ 13607218.4477, 4488358.710199994966388 ], [ 13607223.234399994835258, 4488423.129199996590614 ], [ 13607235.256899997591972, 4488457.859599997289479 ], [ 13607245.943599998950958, 4488473.404299997724593 ], [ 13607266.203699996694922, 4488482.927199994213879 ], [ 13607287.799699995666742, 4488488.949 ], [ 13607354.591399995610118, 4488527.040700003504753 ], [ 13607444.203599998727441, 4488595.241899998858571 ], [ 13607460.901500001549721, 4488641.736599997617304 ], [ 13607427.505700001493096, 4488701.535899996757507 ], [ 13607372.513799998909235, 4488749.291500000283122 ], [ 13607365.389399997889996, 4488769.598200002685189 ], [ 13607367.83839999884367, 4488779.121299995109439 ], [ 13607502.757700003683567, 4488788.644500001333654 ], [ 13607513.555600002408028, 4488799.42809999641031 ], [ 13607529.029099997133017, 4488795.786899997852743 ], [ 13607545.727, 4488776.740500002168119 ], [ 13607561.311699997633696, 4488773.099299996159971 ], [ 13607610.2923, 4488771.978999999351799 ], [ 13607661.610599998384714, 4488739.768399995751679 ], [ 13607712.928800001740456, 4488739.768399995751679 ], [ 13607803.765600005164742, 4488761.19539999961853 ], [ 13607874.230800002813339, 4488787.524099997244775 ], [ 13607892.1532, 4488803.069300003349781 ], [ 13607924.324600003659725, 4488820.995300003327429 ], [ 13607966.180699996650219, 4488835.28010000102222 ], [ 13608187.149899994954467, 4488860.348600000143051 ], [ 13608184.81220000423491, 4488914.126999996602535 ], [ 13608159.765299996361136, 4488898.581699992530048 ], [ 13608127.482600001618266, 4488896.200800000689924 ], [ 13608105.997999997809529, 4488891.4392 ], [ 13608084.5133, 4488874.633500001393259 ], [ 13608037.870399996638298, 4488874.633500001393259 ], [ 13608034.308200001716614, 4488881.775899994187057 ], [ 13608019.948, 4488890.178800002671778 ], [ 13608006.812299996614456, 4488893.820000001229346 ], [ 13607990.1144, 4488890.178800002671778 ], [ 13607982.9899, 4488908.104900001548231 ], [ 13607984.103100003674626, 4488923.650300002656877 ], [ 13607979.427699998021126, 4488943.957299996167421 ], [ 13607965.0675, 4488945.077699995599687 ], [ 13607935.233900001272559, 4488936.814799996092916 ], [ 13607910.07570000179112, 4488928.411899998784065 ], [ 13607875.344, 4488933.173599999397993 ], [ 13607818.014399997889996, 4488961.743499998934567 ], [ 13607756.009499993175268, 4488971.266900000162423 ], [ 13607679.532999997958541, 4488961.743499998934567 ], [ 13607684.319700002670288, 4489105.154600001871586 ], [ 13607502.869, 4489171.958999999798834 ], [ 13607555.411799997091293, 4489214.954999996349216 ], [ 13607622.203500002622604, 4489262.712899995967746 ], [ 13607736.862499995157123, 4489267.474699997343123 ], [ 13607837.272699996829033, 4489243.665799998678267 ], [ 13607885.028800003230572, 4489281.9002 ], [ 13607956.718500005081296, 4489286.661999998614192 ], [ 13608076.053000003099442, 4489248.427499998360872 ], [ 13608052.2307, 4489315.232900000177324 ], [ 13608061.8040999956429, 4489377.416900001466274 ], [ 13608018.723499998450279, 4489401.22620000038296 ], [ 13607961.394000001251698, 4489396.464299997314811 ], [ 13607913.637900002300739, 4489391.702499997802079 ], [ 13607913.637900002300739, 4489410.889999999664724 ], [ 13607956.718500005081296, 4489444.223099997267127 ], [ 13607956.718500005081296, 4489487.220200000330806 ], [ 13607990.1144, 4489482.458299998193979 ], [ 13607999.687899995595217, 4489563.69099999871105 ], [ 13608085.7378, 4489554.167099993675947 ], [ 13608200.396899998188019, 4489496.884000002406538 ], [ 13608276.762100003659725, 4489496.884000002406538 ], [ 13608353.2386, 4489458.64879999961704 ], [ 13608429.71509999781847, 4489487.220200000330806 ], [ 13608556.17400000244379, 4489467.052099999040365 ], [ 13608557.398500002920628, 4489487.3602 ], [ 13608882.228799998760223, 4489600.806099999696016 ], [ 13608882.228799998760223, 4489603.187099998816848 ], [ 13608885.9023, 4489622.374999999068677 ], [ 13608910.949199996888638, 4489629.517899993807077 ], [ 13608913.286899998784065, 4489642.683399997651577 ], [ 13608925.3094, 4489645.064400001429021 ], [ 13608928.8716000020504, 4489631.898900002241135 ], [ 13608963.492, 4489642.683399997651577 ], [ 13608963.492, 4489652.207299997098744 ], [ 13608956.3676, 4489666.493299995549023 ], [ 13608965.8297, 4489672.515799999237061 ], [ 13608982.638999998569489, 4489680.919299995526671 ], [ 13609008.910400003194809, 4489686.801699997857213 ], [ 13609018.4838, 4489678.538299998268485 ], [ 13609014.8103, 4489652.207299997098744 ], [ 13608998.1124, 4489643.80379999987781 ], [ 13608969.503300001844764, 4489637.921399997547269 ], [ 13608970.616499997675419, 4489628.39750000089407 ], [ 13608976.627700002864003, 4489625.876400001347065 ], [ 13608988.538900004699826, 4489625.876400001347065 ], [ 13608984.976699998602271, 4489610.470100002363324 ], [ 13608974.289999997243285, 4489602.066600002348423 ], [ 13608961.15429999679327, 4489594.923699996434152 ], [ 13608957.480800004675984, 4489575.73589999973774 ], [ 13608953.918499998748302, 4489561.450099996291101 ], [ 13608963.492, 4489566.211999996565282 ], [ 13608976.627700002864003, 4489564.951499996706843 ], [ 13608983.8635, 4489555.427599993534386 ], [ 13608964.71650000102818, 4489526.715999994426966 ], [ 13608979.076700003817677, 4489510.0493 ], [ 13609000.56139999628067, 4489493.242599996738136 ], [ 13609019.597000004723668, 4489498.00450000166893 ], [ 13609045.8684, 4489440.72169999871403 ], [ 13609065.015399996191263, 4489385.680099998600781 ], [ 13609081.713299993425608, 4489376.156400002539158 ], [ 13609115.2205, 4489352.347199997864664 ], [ 13609100.860299997031689, 4489347.58530000038445 ], [ 13609086.5, 4489330.77889999654144 ], [ 13609136.705099998041987, 4489323.636099999770522 ], [ 13609186.7989, 4489314.112499992363155 ], [ 13609203.608199998736382, 4489318.874299999326468 ], [ 13609203.608199998736382, 4489283.020599994808435 ], [ 13609196.372399996966124, 4489259.211599997244775 ], [ 13609277.6356, 4489194.64739999268204 ], [ 13609320.604900002479553, 4489173.219499998725951 ], [ 13609325.391700001433492, 4489154.032399996183813 ], [ 13609346.8763, 4489149.270700000226498 ], [ 13609375.5968, 4489127.702799996361136 ], [ 13609397.0814, 4489130.223699998110533 ], [ 13609411.330300005152822, 4489118.179300001822412 ], [ 13609356.449800001457334, 4489036.950099996291101 ], [ 13609351.663099996745586, 4489017.903300002217293 ], [ 13609401.868199998512864, 4488931.913199997507036 ], [ 13609451.961900003254414, 4488953.340600000694394 ], [ 13609459.197699997574091, 4488931.913199997507036 ], [ 13609406.6549, 4488915.247399995103478 ], [ 13609404.205899998545647, 4488862.589399999007583 ], [ 13609432.926299998536706, 4488788.644500001333654 ], [ 13609389.84570000320673, 4488738.367899998091161 ], [ 13609444.8375, 4488714.560099991969764 ], [ 13609456.748699998483062, 4488714.560099991969764 ], [ 13609468.8825, 4488652.240000002086163 ], [ 13609528.5497, 4488676.187699999660254 ], [ 13609557.2702, 4488688.091499994508922 ], [ 13609597.7905, 4488704.896999998018146 ], [ 13609664.6935, 4488712.039300001226366 ], [ 13609712.449500001966953, 4488680.949199995957315 ], [ 13609757.8679, 4488640.336199998855591 ], [ 13609772.228100001811981, 4488628.432399996556342 ], [ 13609824.770900005474687, 4488606.865599991753697 ], [ 13609882.1004, 4488568.633599996566772 ], [ 13609917.945299994200468, 4488563.872100003063679 ], [ 13609939.429999997839332, 4488573.395099994726479 ], [ 13609958.465599995106459, 4488561.49139999691397 ], [ 13609975.274899993091822, 4488571.014300001785159 ], [ 13610020.693199995905161, 4488559.110600001178682 ], [ 13610056.538099996745586, 4488571.014300001785159 ], [ 13610120.9921, 4488590.200299999676645 ], [ 13610159.285999998450279, 4488580.677399998530746 ], [ 13610230.8644, 4488590.200299999676645 ], [ 13610211.8288, 4488540.064699996262789 ], [ 13610216.615500003099442, 4488494.690799996256828 ], [ 13610226.07769999653101, 4488411.085599998012185 ], [ 13610235.09459999576211, 4488408.28479999769479 ], [ 13610257.135799996554852, 4488401.422799996100366 ], [ 13610312.127600001171231, 4488391.899999999441206 ], [ 13610376.581600001081824, 4488399.042099999263883 ], [ 13610414.875499997287989, 4488394.280699997209013 ], [ 13610469.755999997258186, 4488379.996499995701015 ], [ 13610519.961099993437529, 4488396.661399992182851 ], [ 13610567.717200005427003, 4488427.750600000843406 ], [ 13610598.775300005450845, 4488492.310099996626377 ], [ 13610644.082400001585484, 4488552.108499996364117 ], [ 13610699.074199996888638, 4488638.095499998889863 ], [ 13610739.705799996852875, 4488685.85080000013113 ], [ 13610734.919100001454353, 4488657.141599995084107 ], [ 13610756.4037000015378, 4488623.670900001190603 ], [ 13610761.190499994903803, 4488587.959599999710917 ], [ 13610773.101699996739626, 4488583.058099999092519 ], [ 13610785.0128, 4488552.108499996364117 ], [ 13610799.373099995777011, 4488530.541799999773502 ], [ 13610835.21789999678731, 4488516.257399997673929 ], [ 13610849.5781, 4488499.452200001105666 ], [ 13610873.400499997660518, 4488494.690799996256828 ], [ 13610909.245399992913008, 4488482.787199994549155 ], [ 13610935.516799997538328, 4488473.2643 ], [ 13610937.965799998492002, 4488489.929299999028444 ], [ 13610940.30349999293685, 4488530.541799999773502 ], [ 13610949.877, 4488556.869900002144277 ], [ 13610964.237199997529387, 4488561.631399997510016 ], [ 13610964.237199997529387, 4488537.684000000357628 ], [ 13610980.935099994763732, 4488535.303299995139241 ], [ 13610978.5974, 4488506.734499997459352 ], [ 13610992.846299996599555, 4488499.452200001105666 ], [ 13611011.9933, 4488506.734499997459352 ], [ 13611043.051399994641542, 4488475.645000004209578 ], [ 13611078.896300004795194, 4488480.406499997712672 ], [ 13611086.020699996501207, 4488492.310099996626377 ], [ 13611131.439099997282028, 4488499.452200001105666 ], [ 13611136.2258, 4488511.495899993926287 ], [ 13611162.49719999730587, 4488494.690799996256828 ], [ 13611186.3196, 4488501.97299999371171 ], [ 13611195.893100002780557, 4488513.87669999524951 ], [ 13611226.951200002804399, 4488513.87669999524951 ], [ 13611258.009400002658367, 4488537.684000000357628 ], [ 13611293.85419999808073, 4488542.5855 ], [ 13611367.8817, 4488513.87669999524951 ], [ 13611520.723399993032217, 4488475.645000004209578 ], [ 13611563.804, 4488492.310099996626377 ], [ 13611580.501900002360344, 4488475.645000004209578 ], [ 13611604.3243, 4488466.122100002132356 ], [ 13611652.191699998453259, 4488470.88359999563545 ], [ 13611650.521899996325374, 4488479.286099996417761 ], [ 13611649.742600003257394, 4488482.787199994549155 ], [ 13611625.9203, 4488506.734499997459352 ], [ 13611621.133500004187226, 4488547.347 ], [ 13611573.377499997615814, 4488580.677399998530746 ], [ 13611580.501900002360344, 4488592.72110000345856 ], [ 13611575.715200001373887, 4488616.52860000077635 ], [ 13611592.413099998608232, 4488616.52860000077635 ], [ 13611652.191699998453259, 4488568.773599995300174 ], [ 13611664.1029, 4488590.34039999730885 ], [ 13611633.044699996709824, 4488621.290099998936057 ], [ 13611551.781499993056059, 4488692.993099996820092 ], [ 13611487.327499998733401, 4488747.890999998897314 ], [ 13611410.851000001654029, 4488821.975599990226328 ], [ 13611317.787899997085333, 4488905.584099999628961 ], [ 13611286.729799997061491, 4488941.436499994248152 ], [ 13611241.31139999628067, 4488970.146499995142221 ], [ 13611205.4666, 4488989.193099997937679 ], [ 13611193.5554, 4489001.097299999557436 ], [ 13611100.381, 4489046.473499999381602 ], [ 13611047.838200004771352, 4489065.660300003364682 ], [ 13610966.57489999756217, 4489075.183799997903407 ], [ 13610985.721900001168251, 4489108.655899997800589 ], [ 13610997.633100003004074, 4489108.655899997800589 ], [ 13611021.5668, 4489175.460299997590482 ], [ 13611054.962599996477365, 4489285.401500001549721 ], [ 13611043.051399994641542, 4489314.112499992363155 ], [ 13611057.41160000115633, 4489464.53109999652952 ], [ 13611224.6135, 4489450.245499997399747 ], [ 13611157.710500001907349, 4489560.049500003457069 ], [ 13611115.409100003540516, 4489608.089099997654557 ], [ 13611208.583499997854233, 4489560.18949999846518 ], [ 13611275.4864999987185, 4489548.284699996002018 ], [ 13611299.308899996802211, 4489531.617999999783933 ], [ 13611402.056800002232194, 4489543.52279999665916 ], [ 13611471.2975, 4489584.139300001785159 ], [ 13611588.405599996447563, 4489627.136899998411536 ], [ 13611686.255400002002716, 4489641.422799992375076 ], [ 13611691.487499998882413, 4489652.207299997098744 ], [ 13611750.820699997246265, 4489775.459200001321733 ], [ 13611827.185899998992682, 4489847.029999999329448 ], [ 13611858.244, 4489894.790799994021654 ], [ 13611855.906299998983741, 4490016.644799998030066 ], [ 13611886.964500002563, 4490040.59559999871999 ], [ 13611922.8094, 4490047.738899999298155 ], [ 13611958.5429, 4490050.119899998418987 ], [ 13611958.5429, 4489887.647599998861551 ], [ 13611977.689900003373623, 4489868.599299995228648 ], [ 13612044.592900002375245, 4489868.599299995228648 ], [ 13612106.709200002253056, 4489882.885599996894598 ], [ 13612123.4071, 4489897.171800004318357 ], [ 13612168.825400002300739, 4489897.171800004318357 ], [ 13612199.883599996566772, 4489899.552799995988607 ], [ 13612238.066200003027916, 4489918.74129999987781 ], [ 13612285.8222, 4489925.88440000358969 ], [ 13612312.093599993735552, 4489952.216099994257092 ], [ 13612350.27619999460876, 4489956.978200004436076 ], [ 13612374.2099, 4489937.789699998684227 ], [ 13612383.783399995416403, 4489901.933899998664856 ], [ 13612402.930299993604422, 4489878.123499996960163 ], [ 13612378.9966, 4489849.410999992862344 ], [ 13612316.8804, 4489816.07660000026226 ], [ 13612309.7559, 4489796.888299999758601 ], [ 13612304.969199998304248, 4489789.745299998670816 ], [ 13612302.520099997520447, 4489777.840199995785952 ], [ 13612299.069199997931719, 4489760.332700000144541 ], [ 13612293.05799999833107, 4489752.069200000725687 ], [ 13612296.620199996978045, 4489726.99859999679029 ], [ 13612307.4182, 4489728.119099993258715 ], [ 13612328.902900002896786, 4489679.238600000739098 ], [ 13612339.7008, 4489675.597 ], [ 13612343.263099998235703, 4489652.907599997706711 ], [ 13612363.523199997842312, 4489618.313299997709692 ], [ 13612365.972199998795986, 4489560.889799998141825 ], [ 13612374.321199998259544, 4489527.416299999691546 ], [ 13612400.592600002884865, 4489369.713899996131659 ], [ 13612391.019100002944469, 4489271.816399998031557 ], [ 13612368.310000002384186, 4489231.201099993661046 ], [ 13612387.4569, 4489142.828299994580448 ], [ 13612387.4569, 4489120.139999996870756 ], [ 13612405.379299994558096, 4489108.095700002275407 ], [ 13612411.501900002360344, 4489057.677500003948808 ], [ 13612412.5038, 4489049.554599999450147 ], [ 13612427.977200001478195, 4489023.365199998021126 ], [ 13612419.628200002014637, 4488976.728799994103611 ], [ 13612429.201700001955032, 4488913.426799996756017 ], [ 13612439.9997, 4488914.547100001014769 ], [ 13612442.337399998679757, 4488885.977300001308322 ], [ 13612485.418100001290441, 4488889.478500002063811 ], [ 13612500.891500003635883, 4488879.955300001427531 ], [ 13612530.725100003182888, 4488872.812799996696413 ], [ 13612583.267899997532368, 4488878.694899992085993 ], [ 13612595.290399998426437, 4488870.431999989785254 ], [ 13612600.0771, 4488853.626299999654293 ], [ 13612600.0771, 4488835.700299999676645 ], [ 13612595.290399998426437, 4488785.563500003889203 ], [ 13612595.290399998426437, 4488777.160700000822544 ], [ 13612611.988300001248717, 4488700.695600000210106 ], [ 13612626.348499998450279, 4488658.962099994532764 ], [ 13612628.6862, 4488581.23749999795109 ], [ 13612637.0352, 4488581.797699998132885 ], [ 13612689.689299998804927, 4488585.018700001761317 ], [ 13612761.2678, 4488573.115000000223517 ], [ 13612804.348399996757507, 4488563.451999999582767 ], [ 13612815.035099998116493, 4488555.189400003291667 ], [ 13612817.4841, 4488495.531099994666874 ], [ 13612930.918700002133846, 4488497.911799998022616 ], [ 13612938.043100001290441, 4488512.196099996566772 ], [ 13612966.76349999755621, 4488514.576899994164705 ], [ 13612979.8992, 4488508.554999996908009 ], [ 13613003.721600003540516, 4488511.075799999758601 ], [ 13613013.295100003480911, 4488524.09979999717325 ], [ 13613067.062399996444583, 4488531.241999997757375 ], [ 13613078.973599998280406, 4488489.509199996478856 ], [ 13613087.3225, 4488416.687299994751811 ], [ 13613093.333800001069903, 4488416.687299994751811 ], [ 13613096.895999997854233, 4488361.651100000366569 ], [ 13613255.74889999628067, 4488368.933199997991323 ], [ 13613253.411200001835823, 4488447.77660000231117 ], [ 13613242.6132, 4488466.822300002910197 ], [ 13613241.3887, 4488482.366999997757375 ], [ 13613282.0203, 4488478.72590000089258 ], [ 13613285.582599995657802, 4488423.82940000295639 ], [ 13613276.120399994775653, 4488420.188399996608496 ], [ 13613286.8071, 4488295.972099994309247 ], [ 13613317.865199996158481, 4488288.830100000835955 ], [ 13613351.3724, 4488288.830100000835955 ], [ 13613364.508100003004074, 4488281.688 ], [ 13613370.408, 4488272.16529999487102 ], [ 13613412.2641, 4488270.90500000026077 ], [ 13613450.446700001135468, 4488280.567699993029237 ], [ 13613475.493600005283952, 4488230.29349999409169 ], [ 13613475.493600005283952, 4488199.344899994321167 ], [ 13613469.5937, 4488173.017699999734759 ], [ 13613468.369199998676777, 4488109.720500000752509 ], [ 13613482.729400001466274, 4487665.390699997544289 ], [ 13613927.005500005558133, 4487869.558799996972084 ], [ 13613942.5902, 4487459.82630000077188 ], [ 13613943.8147, 4487433.6409 ], [ 13613954.501400001347065, 4487329.740199998952448 ], [ 13614200.628799997270107, 4487496.933999999426305 ], [ 13614367.8306, 4487591.314199996180832 ], [ 13614535.032499995082617, 4487695.217499998398125 ], [ 13614642.567199997603893, 4487721.403499998152256 ], [ 13614794.1843, 4487725.0444 ], [ 13614921.979099994525313, 4487727.4249 ], [ 13614938.788299998268485, 4487725.0444 ], [ 13615094.079000003635883, 4487704.739699997939169 ], [ 13615148.9595, 4487673.652599995024502 ], [ 13615207.5136, 4487637.804499994963408 ], [ 13615269.6298, 4487558.967200002633035 ], [ 13615377.164499996230006, 4487384.630999995395541 ], [ 13615479.799999998882413, 4487225.700599995441735 ], [ 13615638.65400000102818, 4487154.147600000724196 ], [ 13615674.498800002038479, 4487157.648299997672439 ], [ 13615745.075399998575449, 4487162.409100000746548 ], [ 13615833.463099997490644, 4487189.854000002145767 ], [ 13615906.265999998897314, 4487226.960799996741116 ], [ 13615932.537399997934699, 4487272.329300002194941 ], [ 13615958.808799996972084, 4487280.730899997055531 ], [ 13616007.789399994537234, 4487281.851099996827543 ], [ 13616055.545399997383356, 4487280.730899997055531 ], [ 13616146.3822, 4487340.382299994118512 ], [ 13616170.872400002554059, 4487361.52649999782443 ], [ 13616194.3609, 4487381.830499994568527 ], [ 13616296.8861, 4487470.608499990776181 ], [ 13616625.3899, 4487788.339199997484684 ], [ 13616889.328399997204542, 4488086.894399998709559 ], [ 13616928.735499998554587, 4488129.885899995453656 ], [ 13617099.4996, 4488269.644599992781878 ], [ 13617111.522100001573563, 4488174.137999995611608 ], [ 13617122.208800002932549, 4488164.61540000140667 ], [ 13617130.557799998670816, 4488115.602100000716746 ], [ 13617215.383199997246265, 4488129.885899995453656 ], [ 13617218.945399997755885, 4487871.379299996420741 ], [ 13617562.922700002789497, 4487909.608699997887015 ], [ 13617553.349200004711747, 4487431.820500001311302 ], [ 13617555.798199996352196, 4487420.058199999853969 ], [ 13617696.728699997067451, 4487449.884199995547533 ], [ 13617724.224600002169609, 4487463.046999995596707 ], [ 13617818.512199996039271, 4487482.230899995192885 ], [ 13617832.872399998828769, 4487489.372399996966124 ], [ 13617898.550899993628263, 4487501.274899996817112 ], [ 13617886.639799997210503, 4487472.568899996578693 ], [ 13617843.670400001108646, 4487446.383500000461936 ], [ 13617834.097000002861023, 4487442.742799995467067 ], [ 13617911.686599995940924, 4487195.455099997110665 ], [ 13617957.10499999858439, 4487214.638499996624887 ], [ 13618000.074299998581409, 4487225.420500001870096 ], [ 13618050.279399998486042, 4487246.84449999500066 ], [ 13618066.977300005033612, 4487262.387399998493493 ], [ 13618107.608900001272559, 4487177.531799998134375 ], [ 13618127.86909999512136, 4487126.282699997536838 ], [ 13618127.86909999512136, 4487099.958199999295175 ], [ 13618142.229299996048212, 4487074.893899998627603 ], [ 13618178.074199996888638, 4486992.42019999679178 ], [ 13618184.085399998351932, 4486917.228299997746944 ], [ 13618234.179200001060963, 4486921.988999998196959 ], [ 13618238.965899996459484, 4486822.854099995456636 ], [ 13618200.783399995416403, 4486803.811399993486702 ], [ 13618191.2099, 4486842.03689999692142 ], [ 13618143.453799996525049, 4486833.635700001381338 ], [ 13618161.3763, 4486785.888800003565848 ], [ 13618095.6978, 4486734.501599995419383 ], [ 13618143.453799996525049, 4486660.431699996814132 ], [ 13618123.193699998781085, 4486646.149800000712276 ], [ 13618149.46509999781847, 4486607.92499999795109 ], [ 13618166.163, 4486591.122899999842048 ], [ 13618186.423099998384714, 4486551.778099997900426 ], [ 13618202.00789999589324, 4486520.694399997591972 ], [ 13618174.512000001966953, 4486506.412699993699789 ], [ 13618203.121100001037121, 4486455.0269 ], [ 13618195.9966, 4486451.386500002816319 ], [ 13618181.636399997398257, 4486403.641299998387694 ], [ 13618221.043499998748302, 4486377.318599998019636 ], [ 13618229.39249999448657, 4486337.974599999375641 ], [ 13618244.977199997752905, 4486321.172899995930493 ], [ 13618244.977199997752905, 4486308.011600001715124 ], [ 13618233.065999997779727, 4486290.229899999685585 ], [ 13618223.4925, 4486250.746299997903407 ], [ 13618237.852700002491474, 4486235.204800000414252 ], [ 13618258.11289999447763, 4486223.303800001740456 ], [ 13618284.3843, 4486217.283200000412762 ], [ 13618290.395499994978309, 4486165.89879999589175 ], [ 13618333.3649, 4486153.99789999704808 ], [ 13618364.423, 4486140.836799999698997 ], [ 13618372.772000001743436, 4486156.37809999845922 ], [ 13618388.245399998500943, 4486174.299500003457069 ], [ 13618406.16780000180006, 4486185.080499997362494 ], [ 13618425.314800001680851, 4486203.001999996602535 ], [ 13618444.4617, 4486224.423899997957051 ], [ 13618467.170900002121925, 4486236.464999997057021 ], [ 13618490.9933, 4486198.241599997505546 ], [ 13618481.419799998402596, 4486179.059899998828769 ], [ 13618471.957599997520447, 4486181.440099999308586 ], [ 13618452.8107, 4486139.716700003482401 ], [ 13618468.284100003540516, 4486127.675700001418591 ], [ 13618481.419799998402596, 4486140.836799999698997 ], [ 13618487.431000001728535, 4486161.138400004245341 ], [ 13618539.973800003528595, 4486115.774800001643598 ], [ 13618548.322800004854798, 4486132.576099998317659 ], [ 13618591.514799997210503, 4486158.338200001977384 ], [ 13618562.905699998140335, 4486210.982699995860457 ], [ 13618534.185199998319149, 4486287.289700002409518 ], [ 13618591.514799997210503, 4486273.008299993351102 ], [ 13618725.320799998939037, 4486287.289700002409518 ], [ 13618739.7923, 4486293.310199994593859 ], [ 13618737.454599997028708, 4486305.211400003172457 ], [ 13618754.152500003576279, 4486312.492099996656179 ], [ 13618749.365799997001886, 4486343.435099996626377 ], [ 13618801.9086, 4486343.435099996626377 ], [ 13618804.357600001618266, 4486336.854500003159046 ], [ 13618818.717799998819828, 4486334.474200001917779 ], [ 13618870.036099996417761, 4486372.698100001551211 ], [ 13618871.260599996894598, 4486382.359099999070168 ], [ 13618939.2769, 4486416.942800002172589 ], [ 13618988.257399994879961, 4486422.963399997912347 ], [ 13618988.257399994879961, 4486399.020900004543364 ], [ 13618999.0554, 4486364.437299996614456 ], [ 13619002.617600001394749, 4486302.271099999547005 ], [ 13618994.268700005486608, 4486227.084099997766316 ], [ 13618988.257399994879961, 4486202.021899997256696 ], [ 13618997.8309, 4486199.641700000502169 ], [ 13619004.955399997532368, 4486180.460099999792874 ], [ 13619013.304300002753735, 4486182.840300002135336 ], [ 13619051.5982, 4486212.662799998186529 ], [ 13619079.094099998474121, 4486222.323699998669326 ], [ 13619098.12980000115931, 4486223.443800000473857 ], [ 13619209.226599998772144, 4486217.423299997113645 ], [ 13619234.384799998253584, 4486224.703899996355176 ], [ 13619243.847, 4486237.725100002251565 ], [ 13619291.714399997144938, 4486246.125799998641014 ], [ 13619304.8501, 4486258.166900002397597 ], [ 13619333.459199998527765, 4486262.927399998530746 ], [ 13619412.273400001227856, 4486316.552499999292195 ], [ 13619424.295900002121925, 4486302.271099999547005 ], [ 13619598.6222, 4486412.182299999520183 ], [ 13619412.273400001227856, 4486674.853600003756583 ], [ 13619525.819300003349781, 4486743.04279999807477 ], [ 13619647.602799996733665, 4486541.136799995787442 ], [ 13619629.6803, 4486533.995999996550381 ], [ 13619647.825399998575449, 4486517.053999999538064 ], [ 13619626.006800003349781, 4486500.111999999731779 ], [ 13619709.941699996590614, 4486391.740099995397031 ], [ 13619689.5702, 4486261.807300001382828 ], [ 13619877.922799997031689, 4485969.464299995452166 ], [ 13619982.22919999435544, 4485866.418099996633828 ], [ 13620017.294799998402596, 4485831.836299994029105 ], [ 13620174.923199996352196, 4485696.030199997127056 ], [ 13620208.875600004568696, 4485654.448600001633167 ], [ 13620631.333099998533726, 4485307.382299994118512 ], [ 13620976.200900005176663, 4485024.025700001046062 ], [ 13620982.2122, 4485019.125799996778369 ], [ 13620988.8913, 4485013.665899996645749 ] ] ] } }, +{ "type": "Feature", "properties": { "name": "张村镇" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13584004.215000003576279, 4502911.75169999524951 ], [ 13581776.711999997496605, 4502109.63750000204891 ], [ 13580988.236100003123283, 4501126.570399997755885 ], [ 13580544.2939, 4500389.92639999743551 ], [ 13579946.062999997287989, 4500532.231799997389317 ], [ 13578857.915, 4500791.190499995835125 ], [ 13577435.8085, 4501431.814799999818206 ], [ 13576913.1635, 4502541.818000002764165 ], [ 13576356.120700001716614, 4503724.86640000436455 ], [ 13576853.162299994379282, 4505692.982699998654425 ], [ 13576465.993099998682737, 4507351.974299996159971 ], [ 13576642.3231, 4507442.604999990202487 ], [ 13576806.0741, 4507465.613499996252358 ], [ 13576961.142200002446771, 4507446.673599997535348 ], [ 13577216.9543, 4507338.365799996070564 ], [ 13577349.64720000512898, 4507274.251500001177192 ], [ 13577714.997699998319149, 4507256.574500001966953 ], [ 13578097.82549999281764, 4507261.063900000415742 ], [ 13578455.494999997317791, 4507300.626699992455542 ], [ 13578830.753, 4507427.452999996952713 ], [ 13579691.586599998176098, 4507844.138999995775521 ], [ 13580087.2161, 4508044.911799995228648 ], [ 13580159.017199996858835, 4508144.387699998915195 ], [ 13580189.073399998247623, 4508205.981799996457994 ], [ 13580181.281099993735552, 4508266.874799994751811 ], [ 13580153.22860000282526, 4508340.536100000143051 ], [ 13580074.637000001966953, 4508552.262599994428456 ], [ 13580051.371200004592538, 4508680.086400000378489 ], [ 13580059.163599997758865, 4508750.663699998520315 ], [ 13580115.379900002852082, 4508818.575499993748963 ], [ 13580207.552499998360872, 4508927.880799999460578 ], [ 13580342.360399998724461, 4509108.187899997457862 ], [ 13580350.041399996727705, 4509172.173199994489551 ], [ 13580354.939499992877245, 4509317.123599993065 ], [ 13580334.568, 4509515.679399997927248 ], [ 13580337.573599997907877, 4509676.491399999707937 ], [ 13580362.731799997389317, 4509766.159899999387562 ], [ 13580434.532899998128414, 4509827.34249999653548 ], [ 13580551.86370000243187, 4509850.356299998238683 ], [ 13580615.761, 4509834.779899999499321 ], [ 13580662.292599998414516, 4509776.965000003576279 ], [ 13580748.67650000192225, 4509665.265299996361136 ], [ 13580792.2024, 4509626.395199997350574 ], [ 13580843.632, 4509617.554799994453788 ], [ 13581295.4779, 4509705.679199998266995 ], [ 13581467.132499996572733, 4509045.045000003650784 ], [ 13582460.881599996238947, 4508576.817000000737607 ], [ 13584324.035899994894862, 4508146.913199997507036 ], [ 13584966.349399998784065, 4508185.91809999756515 ], [ 13585037.593900002539158, 4508190.2676 ], [ 13585180.973399996757507, 4508204.0176 ], [ 13585313.2209, 4508180.446199997328222 ], [ 13585326.69059999845922, 4508045.192500003613532 ], [ 13585437.453499998897314, 4507683.635799994692206 ], [ 13585852.3412000015378, 4507981.775299999862909 ], [ 13585972.454899996519089, 4508032.424799998290837 ], [ 13586134.647400001063943, 4507871.357499997131526 ], [ 13586201.216499995440245, 4507913.868900001980364 ], [ 13586282.925, 4507767.39459999743849 ], [ 13586397.6954, 4507616.713399999774992 ], [ 13586665.196099994704127, 4507664.555200000293553 ], [ 13586748.574399996548891, 4507566.4868 ], [ 13586751.134800001978874, 4507549.791500002145767 ], [ 13586749.465000005438924, 4507566.4868 ], [ 13586806.460600003600121, 4507582.621000000275671 ], [ 13586819.039699997752905, 4507574.062899999320507 ], [ 13587520.352499997243285, 4507573.782300001010299 ], [ 13588046.2257, 4507683.635799994692206 ], [ 13588274.764600003138185, 4507609.137299998663366 ], [ 13588771.249599998816848, 4507447.374999999068677 ], [ 13588917.189400002360344, 4507399.814900000579655 ], [ 13589292.89270000346005, 4507277.337899997830391 ], [ 13589852.607099998742342, 4507094.957900002598763 ], [ 13589909.936599997803569, 4507076.299199998378754 ], [ 13590067.4537, 4507024.952899995259941 ], [ 13590718.2275, 4506180.861100003123283 ], [ 13590726.799099992960691, 4506169.7791 ], [ 13591438.464599993079901, 4504884.904999998398125 ], [ 13591692.606999998912215, 4504627.949100002646446 ], [ 13591844.1128, 4504474.7884 ], [ 13592307.869800003245473, 4504005.923100002110004 ], [ 13592292.841700002551079, 4503985.306399996392429 ], [ 13592240.0762, 4503913.218399995937943 ], [ 13592012.761799996718764, 4503602.432300000451505 ], [ 13591478.428299997001886, 4502872.20539999846369 ], [ 13591123.430399995297194, 4502387.005000001750886 ], [ 13589054.999999998137355, 4501990.447499997913837 ], [ 13587735.4217, 4502689.761799995787442 ], [ 13586846.646899998188019, 4503160.671899994835258 ], [ 13584004.215000003576279, 4502911.75169999524951 ] ] ] } }, +{ "type": "Feature", "properties": { "name": "羊亭镇" }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 13588968.841700002551079, 4501098.528199998661876 ], [ 13589310.3699, 4500933.781800001859665 ], [ 13589489.594200002029538, 4500709.310099991038442 ], [ 13589611.3778, 4500694.868899996392429 ], [ 13589862.180600004270673, 4500737.912099999375641 ], [ 13590086.712, 4500675.800999999046326 ], [ 13590175.09969999268651, 4500730.761599997058511 ], [ 13590444.8268, 4500623.784999998286366 ], [ 13590678.9317, 4500676.221600001677871 ], [ 13591027.6957, 4500611.727399998344481 ], [ 13590989.513099998235703, 4500501.947899996303022 ], [ 13591080.2385, 4500282.112099997699261 ], [ 13591006.211000002920628, 4500141.212099998258054 ], [ 13591206.808700002729893, 4499940.590600000694394 ], [ 13591211.818099994212389, 4499785.255199996754527 ], [ 13591269.147599998861551, 4499749.505999996326864 ], [ 13591429.225100003182888, 4499567.957800001837313 ], [ 13591352.7486, 4499491.414099994115531 ], [ 13591438.798500001430511, 4499469.965200000442564 ], [ 13591500.914800005033612, 4499314.777000000700355 ], [ 13591596.4269, 4499310.010599997825921 ], [ 13591722.9972, 4499243.001500003971159 ], [ 13591832.646899994462729, 4499037.490699996240437 ], [ 13591954.54169999435544, 4498944.409400000236928 ], [ 13591987.937600003555417, 4498791.471900001168251 ], [ 13592188.6466, 4498636.293700000271201 ], [ 13592233.953699996694922, 4498538.309800000861287 ], [ 13592320.003600001335144, 4498514.479699999094009 ], [ 13592339.039299998432398, 4498390.144099997356534 ], [ 13592362.972900003194809, 4498301.834399998188019 ], [ 13592348.6127, 4498196.704800002276897 ], [ 13592439.4494, 4498062.981499997898936 ], [ 13592371.7672, 4497853.148599995300174 ], [ 13592006.305299993604422, 4497771.991899995133281 ], [ 13591774.649400003254414, 4497540.2994 ], [ 13591805.707599997520447, 4497494.886600001715124 ], [ 13591886.859499994665384, 4497502.034900003112853 ], [ 13591898.770699996501207, 4497387.382299993187189 ], [ 13591960.886899996548891, 4497361.172199997119606 ], [ 13591991.945100001990795, 4497229.701999993994832 ], [ 13592395.7009, 4496423.116899993270636 ], [ 13592488.541299998760223, 4496084.663900000974536 ], [ 13592187.978699997067451, 4496092.231700003147125 ], [ 13592066.195200003683567, 4495972.829700002446771 ], [ 13592142.6717, 4495836.752300000749528 ], [ 13592350.393799997866154, 4495636.072899996303022 ], [ 13592407.723399996757507, 4495487.948199997656047 ], [ 13592438.781499996781349, 4495318.385099997743964 ], [ 13592313.43579999729991, 4495207.820200003683567 ], [ 13592343.269399996846914, 4495181.615500003099442 ], [ 13592319.335699997842312, 4495020.325000003911555 ], [ 13592268.240099996328354, 4495021.165799996815622 ], [ 13592245.530899997800589, 4495041.344400002621114 ], [ 13592183.414599997922778, 4495076.096699996851385 ], [ 13592069.98, 4495096.27549999486655 ], [ 13592036.472900005057454, 4495156.111500001512468 ], [ 13591917.027099996805191, 4495224.075499990954995 ], [ 13591801.2548, 4495224.075499990954995 ], [ 13591557.576399996876717, 4495027.05120000243187 ], [ 13591482.992399998009205, 4494875.291699999012053 ], [ 13591355.642899993807077, 4494818.259900003671646 ], [ 13591310.224499996751547, 4494605.689399999566376 ], [ 13591310.224499996751547, 4494433.758500001393259 ], [ 13591181.205200001597404, 4494309.47110000345856 ], [ 13591100.0533, 4494125.494899999350309 ], [ 13590818.1924, 4494094.528899997472763 ], [ 13590674.8129, 4493829.290099996142089 ], [ 13590587.98369999602437, 4493799.866300002671778 ], [ 13590516.293899994343519, 4493565.879500000737607 ], [ 13590499.59599999897182, 4493396.207300002686679 ], [ 13590119.885200003162026, 4493520.483799997717142 ], [ 13590111.091, 4493260.443499998189509 ], [ 13590139.7001, 4493176.940499998629093 ], [ 13590113.4287, 4493012.038099996745586 ], [ 13589946.2268, 4493009.656400002539158 ], [ 13589747.966799998655915, 4492933.300599997863173 ], [ 13589685.85050000436604, 4492866.332099995575845 ], [ 13589855.612699996680021, 4492590.056599996984005 ], [ 13589898.582099996507168, 4492432.308300003409386 ], [ 13589994.2055, 4492353.575099992565811 ], [ 13589889.1199000030756, 4492262.794499997980893 ], [ 13589748.1894, 4492107.432599999010563 ], [ 13589568.965000003576279, 4492016.654200003482401 ], [ 13589399.4255, 4491811.2847999939695 ], [ 13589170.107299994677305, 4491636.877999997697771 ], [ 13588965.168099995702505, 4491570.057899992913008 ], [ 13588649.911300003528595, 4491402.799299996346235 ], [ 13588715.144599994644523, 4491262.858900001272559 ], [ 13588640.671800002455711, 4491355.87219999358058 ], [ 13588582.563000001013279, 4491408.682800001464784 ], [ 13588443.3024, 4491441.8821 ], [ 13588382.2993, 4491464.855600000359118 ], [ 13588244.93100000359118, 4491577.202200003899634 ], [ 13588171.348800003528595, 4491617.126100002788007 ], [ 13588004.92620000243187, 4491623.569999994710088 ], [ 13587827.816900001838803, 4491606.199600003659725 ], [ 13587728.0746, 4491559.691699992865324 ], [ 13587632.228500002995133, 4491546.103599997237325 ], [ 13587448.328699994832277, 4491545.683399997651577 ], [ 13587276.00619999691844, 4491568.516999997198582 ], [ 13587130.845600001513958, 4491621.60880000051111 ], [ 13587049.47100000269711, 4491677.362599994055927 ], [ 13586925.572400005534291, 4491856.532899998128414 ], [ 13586832.620600001886487, 4492068.627499998547137 ], [ 13586759.038500003516674, 4492207.738100000657141 ], [ 13586650.613300001248717, 4492270.779799997806549 ], [ 13586513.0224, 4492259.992700000293553 ], [ 13586404.597199998795986, 4492243.321599997580051 ], [ 13586191.531699998304248, 4492206.19709999859333 ], [ 13585712.9692, 4492166.551099998876452 ], [ 13585570.591599997133017, 4492133.349499997682869 ], [ 13585411.627299997955561, 4492106.031700000166893 ], [ 13585370.995699997991323, 4492109.534000001847744 ], [ 13585348.731799993664026, 4492124.103500001132488 ], [ 13585324.464199993759394, 4492167.251599996350706 ], [ 13585284.7231, 4492289.9726 ], [ 13585248.878200002014637, 4492340.966600000858307 ], [ 13585222.718199998140335, 4492349.372299998998642 ], [ 13585186.8733000010252, 4492340.82660000026226 ], [ 13585155.92650000192225, 4492310.846500000916421 ], [ 13585116.1854, 4492259.712499998509884 ], [ 13585087.131, 4492189.666299996897578 ], [ 13585062.863399997353554, 4492153.10230000410229 ], [ 13585040.5995, 4492133.489600002765656 ], [ 13584957.221199998632073, 4492114.997500001452863 ], [ 13584894.214300001040101, 4492099.587499994784594 ], [ 13584852.580899994820356, 4492072.6902 ], [ 13584816.736, 4492053.077499995008111 ], [ 13584767.310099994763732, 4491992.698899992741644 ], [ 13584706.307, 4491929.939000002108514 ], [ 13584651.983099998906255, 4491898.138999999500811 ], [ 13584528.863799998536706, 4491876.42539999447763 ], [ 13584303.1079, 4491848.82810000423342 ], [ 13584243.9972, 4491830.476699998602271 ], [ 13584185.777099994942546, 4491780.325599998235703 ], [ 13584150.934100003913045, 4491765.616499993950129 ], [ 13584103.400700002908707, 4491756.931199997663498 ], [ 13584052.0824, 4491763.515299992635846 ], [ 13583980.3926, 4491791.252400003373623 ], [ 13583935.7535, 4491825.71369999088347 ], [ 13583874.750500001013279, 4491902.201599998399615 ], [ 13583834.007500002160668, 4491981.631800003349781 ], [ 13583800.055100001394749, 4491991.298000001348555 ], [ 13583764.210199994966388, 4491974.767399994656444 ], [ 13583737.048199996352196, 4491954.594600000418723 ], [ 13583673.039499998092651, 4491869.841300002299249 ], [ 13583645.988899996504188, 4491830.19649999961257 ], [ 13583565.504899997264147, 4491791.532499997876585 ], [ 13583503.500000001862645, 4491782.847199997864664 ], [ 13583365.7977, 4491787.189900001510978 ], [ 13583276.630800003185868, 4491765.616499993950129 ], [ 13583104.085600003600121, 4491696.834399998188019 ], [ 13583062.340800002217293, 4491673.580300002358854 ], [ 13583038.184499997645617, 4491645.563299997709692 ], [ 13582983.860600002110004, 4491497.49479999858886 ], [ 13582923.74800000153482, 4491394.53449999820441 ], [ 13582896.586099997162819, 4491341.443899997510016 ], [ 13582884.897499997168779, 4491258.096199992112815 ], [ 13582877.2165, 4491168.725900001823902 ], [ 13582844.154600001871586, 4491075.574199995025992 ], [ 13582780.257200002670288, 4490954.268099998123944 ], [ 13582740.4048, 4490907.903300002217293 ], [ 13582714.244800001382828, 4490896.277099996805191 ], [ 13582680.292299998924136, 4490897.957999993115664 ], [ 13582648.3436, 4490909.303999994881451 ], [ 13582626.07969999872148, 4490939.139999999664724 ], [ 13582585.336800001561642, 4491019.823700003325939 ], [ 13582564.965300003066659, 4491058.064599994570017 ], [ 13582466.113599998876452, 4491147.153800004161894 ], [ 13582354.5715, 4491239.745800004340708 ], [ 13582328.411399995908141, 4491279.248199998401105 ], [ 13582236.350199997425079, 4491466.816799991764128 ], [ 13582194.7167, 4491514.724999996833503 ], [ 13582167.554699998348951, 4491534.056500000879169 ], [ 13582113.230800002813339, 4491550.866499996744096 ], [ 13582045.325900003314018, 4491553.668099994771183 ], [ 13581931.891400003805757, 4491538.679200001060963 ], [ 13581756.451899997889996, 4491486.288199998438358 ], [ 13581694.335600003600121, 4491442.862700001336634 ], [ 13581525.686599995940924, 4491311.466599998064339 ], [ 13581481.047399997711182, 4491306.423799998126924 ], [ 13581430.6197, 4491306.283699993975461 ], [ 13581380.192000003531575, 4491329.1168 ], [ 13581189.1677, 4491474.381199998781085 ], [ 13580667.6359, 4491917.050899995490909 ], [ 13580549.303299997001886, 4492052.237000001594424 ], [ 13580432.97439999692142, 4492264.055399999022484 ], [ 13580369.077, 4492376.970899992622435 ], [ 13580242.061499997973442, 4492515.805399999022484 ], [ 13580102.466899996623397, 4492664.308499995619059 ], [ 13580067.512500004842877, 4492684.202399999834597 ], [ 13579996.71339999884367, 4492680.27970000449568 ], [ 13579808.583400001749396, 4492606.588100002147257 ], [ 13579742.6823, 4492553.491299997083843 ], [ 13579554.552299998700619, 4492360.439699997194111 ], [ 13579342.48870000243187, 4492275.262799999676645 ], [ 13579420.1897, 4492465.230700000189245 ], [ 13579356.848899995908141, 4492467.612299998290837 ], [ 13579102.483900004997849, 4492170.193499994464219 ], [ 13578919.697300001978874, 4492103.369999991729856 ], [ 13578894.650399997830391, 4492129.566999999806285 ], [ 13578923.259499996900558, 4492237.017499997280538 ], [ 13578896.988099997863173, 4492252.567699996754527 ], [ 13578828.971899997442961, 4492170.193499994464219 ], [ 13578778.766800001263618, 4492161.788000002503395 ], [ 13578757.282100001350045, 4492256.210199996829033 ], [ 13578848.34150000102818, 4492269.098700002767146 ], [ 13578885.410899996757507, 4492314.488899999298155 ], [ 13578886.635399997234344, 4492499.694299997761846 ], [ 13578928.380199998617172, 4492758.875199998728931 ], [ 13578893.759800003841519, 4492762.37769999820739 ], [ 13578848.34150000102818, 4492659.685199993662536 ], [ 13578818.507900001481175, 4492503.196699997410178 ], [ 13578684.813199996948242, 4492468.733099994249642 ], [ 13578496.126599997282028, 4492497.312700003385544 ], [ 13578505.700099995359778, 4492559.515500001609325 ], [ 13578487.777699995785952, 4492557.133799994364381 ], [ 13578296.7533999979496, 4492416.197400001809001 ], [ 13578259.684, 4492428.105399997904897 ], [ 13578259.684, 4492527.153199994936585 ], [ 13578202.354500003159046, 4492603.646099998615682 ], [ 13578207.252499997615814, 4492735.898900003172457 ], [ 13578182.205700004473329, 4492745.565800000913441 ], [ 13578163.058700002729893, 4492965.24379999935627 ], [ 13578120.0894, 4492958.098599998280406 ], [ 13578066.322099996730685, 4492786.054600001312792 ], [ 13577950.5498, 4492733.51719999872148 ], [ 13577940.976299997419119, 4492759.855899997055531 ], [ 13578038.826099997386336, 4492810.011699995957315 ], [ 13578036.488399997353554, 4492831.446999996900558 ], [ 13577919.4917, 4492778.909500000998378 ], [ 13577891.9957, 4492842.234800001606345 ], [ 13578017.3415, 4492882.864 ], [ 13578011.441599998623133, 4492911.584799996577203 ], [ 13577889.5467, 4492934.421400000341237 ], [ 13577895.335299998521805, 4492993.964799995534122 ], [ 13577909.918199997395277, 4493143.45549999922514 ], [ 13577940.976299997419119, 4493154.243500001728535 ], [ 13577819.081500003114343, 4493243.770899998024106 ], [ 13577819.081500003114343, 4493298.69259999319911 ], [ 13577762.976400004699826, 4493445.525399995036423 ], [ 13577875.186499997973442, 4493512.357500002719462 ], [ 13577885.984499998390675, 4493495.684499995782971 ], [ 13577919.3803, 4493508.854699998162687 ], [ 13577862.050800004974008, 4493671.242899995297194 ], [ 13577825.092699998989701, 4493660.454299998469651 ], [ 13577851.364100003615022, 4493586.4756999919191 ], [ 13577821.6418, 4493576.94820000231266 ], [ 13577766.761299995705485, 4493705.850599996745586 ], [ 13577856.15089999884367, 4493740.738599996082485 ], [ 13577858.711199995130301, 4493741.719400002621114 ], [ 13577822.8663, 4493787.11599999293685 ], [ 13577741.714399997144938, 4493759.653799997642636 ], [ 13577730.9164, 4493796.643700001761317 ], [ 13577820.5286, 4493831.251699996180832 ], [ 13577862.273400001227856, 4493905.372199996374547 ], [ 13577717.780699998140335, 4494059.499599997885525 ], [ 13577678.373599998652935, 4494016.483799997717142 ], [ 13577804.943899996578693, 4493875.527800001204014 ], [ 13577611.470600001513958, 4493877.909699997864664 ], [ 13577642.528800003230572, 4493765.678599998354912 ], [ 13577514.733999997377396, 4493725.045999994501472 ], [ 13577572.063500002026558, 4493868.381899995729327 ], [ 13577484.900399997830391, 4493887.437499994412065 ], [ 13577428.7953, 4493956.654299997724593 ], [ 13577380.928000001236796, 4493920.924900002777576 ], [ 13577432.357600003480911, 4493686.795399999246001 ], [ 13577328.385199997574091, 4493640.27830000128597 ], [ 13577341.5209, 4493688.056399999186397 ], [ 13577297.326999997720122, 4493730.930699998512864 ], [ 13577232.873000003397465, 4493684.413399998098612 ], [ 13577277.0669, 4493912.517999995499849 ], [ 13577108.8631, 4494206.483199999667704 ], [ 13577322.37389999628067, 4494546.136799995787442 ], [ 13577504.826599998399615, 4494780.425699999555945 ], [ 13577365.120600001886487, 4494926.15820000320673 ], [ 13577399.740999998524785, 4494951.241299998946488 ], [ 13577345.9736, 4494999.025300002656877 ], [ 13577140.589199997484684, 4495008.554099996574223 ], [ 13577158.5116, 4494852.170699995942414 ], [ 13576973.387300001457334, 4494770.897099995985627 ], [ 13576862.290399998426437, 4494815.17710000090301 ], [ 13577029.715000005438924, 4495166.200999994762242 ], [ 13576910.491800002753735, 4495544.282999999821186 ], [ 13576823.328599995002151, 4496082.982199994847178 ], [ 13576464.9912, 4496155.857299999333918 ], [ 13576442.0594, 4496167.909699999727309 ], [ 13576358.458400003612041, 4496212.055499998852611 ], [ 13576556.718399997800589, 4496247.932800001464784 ], [ 13576676.386900002136827, 4496168.750600002706051 ], [ 13576471.002400005236268, 4496777.838499997742474 ], [ 13576657.2399, 4497014.279599998146296 ], [ 13577070.457900002598763, 4497097.813100002706051 ], [ 13577053.648699998855591, 4497446.530500001274049 ], [ 13577084.706799998879433, 4497608.97959999460727 ], [ 13577261.482100002467632, 4497706.954899995587766 ], [ 13577395.288199998438358, 4497914.682300001382828 ], [ 13577502.822800004854798, 4498115.405299994163215 ], [ 13577743.606899995356798, 4498243.802699998021126 ], [ 13577293.764799997210503, 4498937.961000002920628 ], [ 13577003.332199996337295, 4499385.992299996316433 ], [ 13576611.487599994987249, 4500312.675700003281236 ], [ 13576759.542599998414516, 4500355.577100002206862 ], [ 13576511.1888, 4501019.58979999832809 ], [ 13577435.8085, 4501431.814799999818206 ], [ 13578857.915, 4500791.190499995835125 ], [ 13579946.062999997287989, 4500532.231799997389317 ], [ 13580544.2939, 4500389.92639999743551 ], [ 13580988.236100003123283, 4501126.570399997755885 ], [ 13581776.711999997496605, 4502109.63750000204891 ], [ 13584004.215000003576279, 4502911.75169999524951 ], [ 13586846.646899998188019, 4503160.671899994835258 ], [ 13587735.4217, 4502689.761799995787442 ], [ 13589054.999999998137355, 4501990.447499997913837 ], [ 13588653.473599996417761, 4501143.535999998450279 ], [ 13588968.841700002551079, 4501098.528199998661876 ] ] ] } } +] +} diff --git a/src/assets/maps/qu_huancui.json b/src/assets/maps/qu_huancui.json new file mode 100644 index 00000000..dd888eba --- /dev/null +++ b/src/assets/maps/qu_huancui.json @@ -0,0 +1,8 @@ +{ +"type": "FeatureCollection", +"name": "huancui_zhen", +"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3857" } }, +"features": [ +{ "type": "Feature", "properties": { "id": 1, "name": null }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -317476137.735576927661896, 228911954.423076897859573 ], [ 452985243.187500059604645, 223104456.576923072338104 ], [ 463954961.341346204280853, -280857300.961538553237915 ], [ -329091133.427884638309479, -276985635.730769276618958 ], [ -317476137.735576927661896, 228911954.423076897859573 ] ], [ [ 13620988.8913, 4485013.665899996645749 ], [ 13620982.2122, 4485019.125799996778369 ], [ 13620976.200900005176663, 4485024.025700001046062 ], [ 13620631.333099998533726, 4485307.382299994118512 ], [ 13620208.875600004568696, 4485654.448600001633167 ], [ 13620174.923199996352196, 4485696.030199997127056 ], [ 13620017.294799998402596, 4485831.836299994029105 ], [ 13619982.22919999435544, 4485866.418099996633828 ], [ 13619877.922799997031689, 4485969.464299995452166 ], [ 13619689.5702, 4486261.807300001382828 ], [ 13619709.941699996590614, 4486391.740099995397031 ], [ 13619626.006800003349781, 4486500.111999999731779 ], [ 13619647.825399998575449, 4486517.053999999538064 ], [ 13619629.6803, 4486533.995999996550381 ], [ 13619647.602799996733665, 4486541.136799995787442 ], [ 13619525.819300003349781, 4486743.04279999807477 ], [ 13619412.273400001227856, 4486674.853600003756583 ], [ 13619598.6222, 4486412.182299999520183 ], [ 13619424.295900002121925, 4486302.271099999547005 ], [ 13619412.273400001227856, 4486316.552499999292195 ], [ 13619333.459199998527765, 4486262.927399998530746 ], [ 13619304.8501, 4486258.166900002397597 ], [ 13619291.714399997144938, 4486246.125799998641014 ], [ 13619243.847, 4486237.725100002251565 ], [ 13619234.384799998253584, 4486224.703899996355176 ], [ 13619209.226599998772144, 4486217.423299997113645 ], [ 13619098.12980000115931, 4486223.443800000473857 ], [ 13619079.094099998474121, 4486222.323699998669326 ], [ 13619051.5982, 4486212.662799998186529 ], [ 13619013.304300002753735, 4486182.840300002135336 ], [ 13619004.955399997532368, 4486180.460099999792874 ], [ 13618997.8309, 4486199.641700000502169 ], [ 13618988.257399994879961, 4486202.021899997256696 ], [ 13618994.268700005486608, 4486227.084099997766316 ], [ 13619002.617600001394749, 4486302.271099999547005 ], [ 13618999.0554, 4486364.437299996614456 ], [ 13618988.257399994879961, 4486399.020900004543364 ], [ 13618988.257399994879961, 4486422.963399997912347 ], [ 13618939.2769, 4486416.942800002172589 ], [ 13618871.260599996894598, 4486382.359099999070168 ], [ 13618870.036099996417761, 4486372.698100001551211 ], [ 13618818.717799998819828, 4486334.474200001917779 ], [ 13618804.357600001618266, 4486336.854500003159046 ], [ 13618801.9086, 4486343.435099996626377 ], [ 13618749.365799997001886, 4486343.435099996626377 ], [ 13618754.152500003576279, 4486312.492099996656179 ], [ 13618737.454599997028708, 4486305.211400003172457 ], [ 13618739.7923, 4486293.310199994593859 ], [ 13618725.320799998939037, 4486287.289700002409518 ], [ 13618591.514799997210503, 4486273.008299993351102 ], [ 13618534.185199998319149, 4486287.289700002409518 ], [ 13618562.905699998140335, 4486210.982699995860457 ], [ 13618591.514799997210503, 4486158.338200001977384 ], [ 13618548.322800004854798, 4486132.576099998317659 ], [ 13618539.973800003528595, 4486115.774800001643598 ], [ 13618487.431000001728535, 4486161.138400004245341 ], [ 13618481.419799998402596, 4486140.836799999698997 ], [ 13618468.284100003540516, 4486127.675700001418591 ], [ 13618452.8107, 4486139.716700003482401 ], [ 13618471.957599997520447, 4486181.440099999308586 ], [ 13618481.419799998402596, 4486179.059899998828769 ], [ 13618490.9933, 4486198.241599997505546 ], [ 13618467.170900002121925, 4486236.464999997057021 ], [ 13618444.4617, 4486224.423899997957051 ], [ 13618425.314800001680851, 4486203.001999996602535 ], [ 13618406.16780000180006, 4486185.080499997362494 ], [ 13618388.245399998500943, 4486174.299500003457069 ], [ 13618372.772000001743436, 4486156.37809999845922 ], [ 13618364.423, 4486140.836799999698997 ], [ 13618333.3649, 4486153.99789999704808 ], [ 13618290.395499994978309, 4486165.89879999589175 ], [ 13618284.3843, 4486217.283200000412762 ], [ 13618258.11289999447763, 4486223.303800001740456 ], [ 13618237.852700002491474, 4486235.204800000414252 ], [ 13618223.4925, 4486250.746299997903407 ], [ 13618233.065999997779727, 4486290.229899999685585 ], [ 13618244.977199997752905, 4486308.011600001715124 ], [ 13618244.977199997752905, 4486321.172899995930493 ], [ 13618229.39249999448657, 4486337.974599999375641 ], [ 13618221.043499998748302, 4486377.318599998019636 ], [ 13618181.636399997398257, 4486403.641299998387694 ], [ 13618195.9966, 4486451.386500002816319 ], [ 13618203.121100001037121, 4486455.0269 ], [ 13618174.512000001966953, 4486506.412699993699789 ], [ 13618202.00789999589324, 4486520.694399997591972 ], [ 13618186.423099998384714, 4486551.778099997900426 ], [ 13618166.163, 4486591.122899999842048 ], [ 13618149.46509999781847, 4486607.92499999795109 ], [ 13618123.193699998781085, 4486646.149800000712276 ], [ 13618143.453799996525049, 4486660.431699996814132 ], [ 13618095.6978, 4486734.501599995419383 ], [ 13618161.3763, 4486785.888800003565848 ], [ 13618143.453799996525049, 4486833.635700001381338 ], [ 13618191.2099, 4486842.03689999692142 ], [ 13618200.783399995416403, 4486803.811399993486702 ], [ 13618238.965899996459484, 4486822.854099995456636 ], [ 13618234.179200001060963, 4486921.988999998196959 ], [ 13618184.085399998351932, 4486917.228299997746944 ], [ 13618178.074199996888638, 4486992.42019999679178 ], [ 13618142.229299996048212, 4487074.893899998627603 ], [ 13618127.86909999512136, 4487099.958199999295175 ], [ 13618127.86909999512136, 4487126.282699997536838 ], [ 13618107.608900001272559, 4487177.531799998134375 ], [ 13618066.977300005033612, 4487262.387399998493493 ], [ 13618050.279399998486042, 4487246.84449999500066 ], [ 13618000.074299998581409, 4487225.420500001870096 ], [ 13617957.10499999858439, 4487214.638499996624887 ], [ 13617911.686599995940924, 4487195.455099997110665 ], [ 13617834.097000002861023, 4487442.742799995467067 ], [ 13617843.670400001108646, 4487446.383500000461936 ], [ 13617886.639799997210503, 4487472.568899996578693 ], [ 13617898.550899993628263, 4487501.274899996817112 ], [ 13617832.872399998828769, 4487489.372399996966124 ], [ 13617818.512199996039271, 4487482.230899995192885 ], [ 13617724.224600002169609, 4487463.046999995596707 ], [ 13617696.728699997067451, 4487449.884199995547533 ], [ 13617555.798199996352196, 4487420.058199999853969 ], [ 13617553.349200004711747, 4487431.820500001311302 ], [ 13617562.922700002789497, 4487909.608699997887015 ], [ 13617218.945399997755885, 4487871.379299996420741 ], [ 13617215.383199997246265, 4488129.885899995453656 ], [ 13617130.557799998670816, 4488115.602100000716746 ], [ 13617122.208800002932549, 4488164.61540000140667 ], [ 13617111.522100001573563, 4488174.137999995611608 ], [ 13617099.4996, 4488269.644599992781878 ], [ 13616928.735499998554587, 4488129.885899995453656 ], [ 13616889.328399997204542, 4488086.894399998709559 ], [ 13616625.3899, 4487788.339199997484684 ], [ 13616296.8861, 4487470.608499990776181 ], [ 13616194.3609, 4487381.830499994568527 ], [ 13616170.872400002554059, 4487361.52649999782443 ], [ 13616146.3822, 4487340.382299994118512 ], [ 13616055.545399997383356, 4487280.730899997055531 ], [ 13616007.789399994537234, 4487281.851099996827543 ], [ 13615958.808799996972084, 4487280.730899997055531 ], [ 13615932.537399997934699, 4487272.329300002194941 ], [ 13615906.265999998897314, 4487226.960799996741116 ], [ 13615833.463099997490644, 4487189.854000002145767 ], [ 13615745.075399998575449, 4487162.409100000746548 ], [ 13615674.498800002038479, 4487157.648299997672439 ], [ 13615638.65400000102818, 4487154.147600000724196 ], [ 13615479.799999998882413, 4487225.700599995441735 ], [ 13615377.164499996230006, 4487384.630999995395541 ], [ 13615269.6298, 4487558.967200002633035 ], [ 13615207.5136, 4487637.804499994963408 ], [ 13615148.9595, 4487673.652599995024502 ], [ 13615094.079000003635883, 4487704.739699997939169 ], [ 13614938.788299998268485, 4487725.0444 ], [ 13614921.979099994525313, 4487727.4249 ], [ 13614794.1843, 4487725.0444 ], [ 13614642.567199997603893, 4487721.403499998152256 ], [ 13614535.032499995082617, 4487695.217499998398125 ], [ 13614367.8306, 4487591.314199996180832 ], [ 13614200.628799997270107, 4487496.933999999426305 ], [ 13613954.501400001347065, 4487329.740199998952448 ], [ 13613943.8147, 4487433.6409 ], [ 13613942.5902, 4487459.82630000077188 ], [ 13613927.005500005558133, 4487869.558799996972084 ], [ 13613482.729400001466274, 4487665.390699997544289 ], [ 13613468.369199998676777, 4488109.720500000752509 ], [ 13613469.5937, 4488173.017699999734759 ], [ 13613475.493600005283952, 4488199.344899994321167 ], [ 13613475.493600005283952, 4488230.29349999409169 ], [ 13613450.446700001135468, 4488280.567699993029237 ], [ 13613412.2641, 4488270.90500000026077 ], [ 13613370.408, 4488272.16529999487102 ], [ 13613364.508100003004074, 4488281.688 ], [ 13613351.3724, 4488288.830100000835955 ], [ 13613317.865199996158481, 4488288.830100000835955 ], [ 13613286.8071, 4488295.972099994309247 ], [ 13613276.120399994775653, 4488420.188399996608496 ], [ 13613285.582599995657802, 4488423.82940000295639 ], [ 13613282.0203, 4488478.72590000089258 ], [ 13613241.3887, 4488482.366999997757375 ], [ 13613242.6132, 4488466.822300002910197 ], [ 13613253.411200001835823, 4488447.77660000231117 ], [ 13613255.74889999628067, 4488368.933199997991323 ], [ 13613096.895999997854233, 4488361.651100000366569 ], [ 13613093.333800001069903, 4488416.687299994751811 ], [ 13613087.3225, 4488416.687299994751811 ], [ 13613078.973599998280406, 4488489.509199996478856 ], [ 13613067.062399996444583, 4488531.241999997757375 ], [ 13613013.295100003480911, 4488524.09979999717325 ], [ 13613003.721600003540516, 4488511.075799999758601 ], [ 13612979.8992, 4488508.554999996908009 ], [ 13612966.76349999755621, 4488514.576899994164705 ], [ 13612938.043100001290441, 4488512.196099996566772 ], [ 13612930.918700002133846, 4488497.911799998022616 ], [ 13612817.4841, 4488495.531099994666874 ], [ 13612815.035099998116493, 4488555.189400003291667 ], [ 13612804.348399996757507, 4488563.451999999582767 ], [ 13612761.2678, 4488573.115000000223517 ], [ 13612689.689299998804927, 4488585.018700001761317 ], [ 13612637.0352, 4488581.797699998132885 ], [ 13612628.6862, 4488581.23749999795109 ], [ 13612626.348499998450279, 4488658.962099994532764 ], [ 13612611.988300001248717, 4488700.695600000210106 ], [ 13612595.290399998426437, 4488777.160700000822544 ], [ 13612595.290399998426437, 4488785.563500003889203 ], [ 13612600.0771, 4488835.700299999676645 ], [ 13612600.0771, 4488853.626299999654293 ], [ 13612595.290399998426437, 4488870.431999989785254 ], [ 13612583.267899997532368, 4488878.694899992085993 ], [ 13612530.725100003182888, 4488872.812799996696413 ], [ 13612500.891500003635883, 4488879.955300001427531 ], [ 13612485.418100001290441, 4488889.478500002063811 ], [ 13612442.337399998679757, 4488885.977300001308322 ], [ 13612439.9997, 4488914.547100001014769 ], [ 13612429.201700001955032, 4488913.426799996756017 ], [ 13612419.628200002014637, 4488976.728799994103611 ], [ 13612427.977200001478195, 4489023.365199998021126 ], [ 13612412.5038, 4489049.554599999450147 ], [ 13612411.501900002360344, 4489057.677500003948808 ], [ 13612405.379299994558096, 4489108.095700002275407 ], [ 13612387.4569, 4489120.139999996870756 ], [ 13612387.4569, 4489142.828299994580448 ], [ 13612368.310000002384186, 4489231.201099993661046 ], [ 13612391.019100002944469, 4489271.816399998031557 ], [ 13612400.592600002884865, 4489369.713899996131659 ], [ 13612374.321199998259544, 4489527.416299999691546 ], [ 13612365.972199998795986, 4489560.889799998141825 ], [ 13612363.523199997842312, 4489618.313299997709692 ], [ 13612343.263099998235703, 4489652.907599997706711 ], [ 13612339.7008, 4489675.597 ], [ 13612328.902900002896786, 4489679.238600000739098 ], [ 13612307.4182, 4489728.119099993258715 ], [ 13612296.620199996978045, 4489726.99859999679029 ], [ 13612293.05799999833107, 4489752.069200000725687 ], [ 13612299.069199997931719, 4489760.332700000144541 ], [ 13612302.520099997520447, 4489777.840199995785952 ], [ 13612304.969199998304248, 4489789.745299998670816 ], [ 13612309.7559, 4489796.888299999758601 ], [ 13612316.8804, 4489816.07660000026226 ], [ 13612378.9966, 4489849.410999992862344 ], [ 13612402.930299993604422, 4489878.123499996960163 ], [ 13612383.783399995416403, 4489901.933899998664856 ], [ 13612374.2099, 4489937.789699998684227 ], [ 13612350.27619999460876, 4489956.978200004436076 ], [ 13612312.093599993735552, 4489952.216099994257092 ], [ 13612285.8222, 4489925.88440000358969 ], [ 13612238.066200003027916, 4489918.74129999987781 ], [ 13612199.883599996566772, 4489899.552799995988607 ], [ 13612168.825400002300739, 4489897.171800004318357 ], [ 13612123.4071, 4489897.171800004318357 ], [ 13612106.709200002253056, 4489882.885599996894598 ], [ 13612044.592900002375245, 4489868.599299995228648 ], [ 13611977.689900003373623, 4489868.599299995228648 ], [ 13611958.5429, 4489887.647599998861551 ], [ 13611958.5429, 4490050.119899998418987 ], [ 13611922.8094, 4490047.738899999298155 ], [ 13611886.964500002563, 4490040.59559999871999 ], [ 13611855.906299998983741, 4490016.644799998030066 ], [ 13611858.244, 4489894.790799994021654 ], [ 13611827.185899998992682, 4489847.029999999329448 ], [ 13611750.820699997246265, 4489775.459200001321733 ], [ 13611691.487499998882413, 4489652.207299997098744 ], [ 13611686.255400002002716, 4489641.422799992375076 ], [ 13611588.405599996447563, 4489627.136899998411536 ], [ 13611471.2975, 4489584.139300001785159 ], [ 13611402.056800002232194, 4489543.52279999665916 ], [ 13611299.308899996802211, 4489531.617999999783933 ], [ 13611275.4864999987185, 4489548.284699996002018 ], [ 13611208.583499997854233, 4489560.18949999846518 ], [ 13611115.409100003540516, 4489608.089099997654557 ], [ 13611072.439800001680851, 4489603.187099998816848 ], [ 13611029.4704, 4489591.282200000248849 ], [ 13610988.838799998164177, 4489565.091499998234212 ], [ 13610322.369, 4489493.38260000012815 ], [ 13610341.515999998897314, 4489531.617999999783933 ], [ 13610336.72919999808073, 4489569.853499997407198 ], [ 13610358.213899996131659, 4489588.901199996471405 ], [ 13610365.338399996981025, 4489617.612999995239079 ], [ 13610345.078199993818998, 4489654.028099998831749 ], [ 13610324.706699995324016, 4489669.434500000439584 ], [ 13610303.222099997103214, 4489692.263999997638166 ], [ 13610292.535400001332164, 4489719.715499993413687 ], [ 13610299.65990000218153, 4489719.715499993413687 ], [ 13610290.0864, 4489784.142899996601045 ], [ 13610265.039499996230006, 4489880.92469999473542 ], [ 13610346.191399998962879, 4489898.852499996311963 ], [ 13610486.0087, 4489919.161500001326203 ], [ 13610459.737300001084805, 4490027.849899998866022 ], [ 13610337.842399997636676, 4490000.397499999031425 ], [ 13610316.3578, 4490023.087700000964105 ], [ 13610304.446599997580051, 4490030.230899995192885 ], [ 13610306.784299997612834, 4490057.823399998247623 ], [ 13610297.210800001397729, 4490128.27559999935329 ], [ 13610291.3109, 4490180.939999998547137 ], [ 13610298.435299998149276, 4490188.08330000191927 ], [ 13610297.210800001397729, 4490221.418899999000132 ], [ 13610285.2996, 4490285.989399997517467 ], [ 13610290.0864, 4490293.132799995131791 ], [ 13610288.8619, 4490305.178499993868172 ], [ 13610275.726199997588992, 4490412.610299997031689 ], [ 13610255.466, 4490414.991499993950129 ], [ 13610236.319099996238947, 4490411.489699995145202 ], [ 13610229.1946, 4490504.635499997064471 ], [ 13610236.319099996238947, 4490511.779099998995662 ], [ 13610236.319099996238947, 4490533.34979999717325 ], [ 13610220.8457, 4490540.493399998173118 ], [ 13610119.322300003841519, 4490517.802100003696978 ], [ 13610097.8376, 4490515.42090000025928 ], [ 13610052.419299997389317, 4490524.945600002072752 ], [ 13610048.857000002637506, 4490548.897599998861551 ], [ 13610036.9459, 4490554.780499996617436 ], [ 13610002.214199995622039, 4490557.301799996756017 ], [ 13609991.527500003576279, 4490550.018099996261299 ], [ 13609833.899099994450808, 4490551.278800002299249 ], [ 13609836.2368, 4490602.684600001201034 ], [ 13609812.414399996399879, 4490625.376100000925362 ], [ 13609817.201199997216463, 4490631.259099997580051 ], [ 13609832.67459999397397, 4490622.854799999855459 ], [ 13609837.4613, 4490626.496699995361269 ], [ 13609843.472599996253848, 4490700.594499997794628 ], [ 13609903.139799995347857, 4490717.263099998235703 ], [ 13609918.6131999976933, 4490735.1924 ], [ 13609911.488799996674061, 4490762.646699998527765 ], [ 13609875.643899995833635, 4490821.197300001978874 ], [ 13609851.82150000333786, 4490874.985699994489551 ], [ 13609801.616499993950129, 4490925.13249999564141 ], [ 13609821.876599997282028, 4490957.489900001324713 ], [ 13609839.799, 4490958.610499997623265 ], [ 13609845.810299996286631, 4490975.419599998742342 ], [ 13609845.810299996286631, 4490992.088600000366569 ], [ 13609862.508199993520975, 4491029.068700001575053 ], [ 13609932.973499994724989, 4491030.329400002025068 ], [ 13609999.876500004902482, 4490816.574900000356138 ], [ 13610027.3724, 4490820.0767 ], [ 13610026.1479, 4490831.982999995350838 ], [ 13610042.845799997448921, 4490834.364200000651181 ], [ 13610040.508100003004074, 4490889.413399997167289 ], [ 13610027.3724, 4490930.03509999345988 ], [ 13610065.555, 4490943.062100000679493 ], [ 13610104.962100001052022, 4490827.220499997958541 ], [ 13610121.771300004795194, 4490833.243600001558661 ], [ 13610131.233499996364117, 4490835.624899997375906 ], [ 13610133.682499997317791, 4490845.149899996817112 ], [ 13610140.806900002062321, 4490846.410599999129772 ], [ 13610157.5049, 4490855.935599994845688 ], [ 13610167.078300001099706, 4490853.554399992339313 ], [ 13610169.527400001883507, 4490818.9561 ], [ 13610176.6518, 4490817.69550000037998 ], [ 13610180.214000003412366, 4490803.407999999821186 ], [ 13610188.563000001013279, 4490805.789200002327561 ], [ 13610180.214000003412366, 4490877.366999996826053 ], [ 13610170.640600003302097, 4490910.844800001010299 ], [ 13610164.740599997341633, 4490962.252499995753169 ], [ 13610176.6518, 4490967.015000001527369 ], [ 13610197.023299995809793, 4490958.7506 ], [ 13610193.3496999964118, 4490987.325999991968274 ], [ 13610205.37219999730587, 4490990.968000002205372 ], [ 13610217.2834, 4490998.111899997107685 ], [ 13610205.37219999730587, 4491068.570299996063113 ], [ 13610207.71, 4491104.430099997669458 ], [ 13610228.081399995833635, 4491082.9983000010252 ], [ 13610241.217099998146296, 4491079.356299992650747 ], [ 13610272.2753000035882, 4491079.356299992650747 ], [ 13610232.756800003349781, 4491222.656199998222291 ], [ 13610373.7986, 4491242.96760000102222 ], [ 13610363.000600002706051, 4491176.149999996647239 ], [ 13610339.178300002589822, 4491153.457299994304776 ], [ 13610324.818099996075034, 4491104.430099997669458 ], [ 13610309.233299998566508, 4491076.974999997764826 ], [ 13610285.411, 4491068.570299996063113 ], [ 13610290.197700001299381, 4491041.115299998782575 ], [ 13610379.6986, 4491080.617000000551343 ], [ 13610388.047499995678663, 4491075.854399998672307 ], [ 13610385.709799995645881, 4491073.332999998703599 ], [ 13610402.407699998468161, 4491075.854399998672307 ], [ 13610404.856799997389317, 4491092.523500002920628 ], [ 13610415.543399995192885, 4491100.928199994377792 ], [ 13610456.1751, 4491108.072099996730685 ], [ 13610457.399600001052022, 4491222.796199997887015 ], [ 13610546.9004, 4491255.014499999582767 ], [ 13610541.000500001013279, 4491270.563300000503659 ], [ 13610457.399600001052022, 4491252.633100003935397 ], [ 13610471.648500002920628, 4491323.093299997039139 ], [ 13610476.435199994593859, 4491323.093299997039139 ], [ 13610554.136200003325939, 4491313.567799997515976 ], [ 13610585.194399997591972, 4491323.093299997039139 ], [ 13610748.833999998867512, 4491397.196099990978837 ], [ 13610801.3768, 4491436.699099997989833 ], [ 13610872.955200001597404, 4491506.039899997413158 ], [ 13610902.900200001895428, 4491525.091200000606477 ], [ 13610966.129600005224347, 4491546.523899999447167 ], [ 13611010.323500001803041, 4491550.166099996306002 ], [ 13611041.381600001826882, 4491564.454599999822676 ], [ 13611007.985799998044968, 4491626.65189999807626 ], [ 13610987.61429999768734, 4491672.03929999936372 ], [ 13611090.3622, 4491715.185599997639656 ], [ 13611061.7531, 4491746.144599996507168 ], [ 13611044.943800002336502, 4491771.219999997876585 ], [ 13611021.1215, 4491790.411799993366003 ], [ 13610913.586799997836351, 4491837.0608000010252 ], [ 13610822.8614999987185, 4491835.799999999813735 ], [ 13610687.830899998545647, 4491888.3328 ], [ 13610698.628899998962879, 4491911.027099996805191 ], [ 13610814.512500002980232, 4491860.875600003637373 ], [ 13610815.625699996948242, 4491889.593599998392165 ], [ 13610808.501199996098876, 4491897.858800002373755 ], [ 13610711.764600001275539, 4491942.126699998043478 ], [ 13610684.268700001761317, 4491967.202599999494851 ], [ 13610669.9085, 4492000.683999995701015 ], [ 13610625.82599999755621, 4492040.049199997447431 ], [ 13610603.1168, 4492013.852399995550513 ], [ 13610589.98110000230372, 4492022.257700003683567 ], [ 13610575.6209, 4492005.446999994106591 ], [ 13610536.213799998164177, 4492062.74369999486953 ], [ 13610532.651600003242493, 4492150.020299999043345 ], [ 13610544.562700005248189, 4492156.044299999251962 ], [ 13610552.911700002849102, 4492184.623000002466142 ], [ 13610563.709700003266335, 4492185.883799994364381 ], [ 13610576.8454, 4492199.052399999462068 ], [ 13610572.0587, 4492268.398199996910989 ], [ 13610582.745300002396107, 4492323.314800001680851 ], [ 13610611.4658, 4492390.139700003899634 ], [ 13610600.667800003662705, 4492393.642099997960031 ], [ 13610582.745300002396107, 4492359.038800001144409 ], [ 13610567.271899998188019, 4492351.894000000320375 ], [ 13610579.1831, 4492384.115699998103082 ], [ 13610582.745300002396107, 4492400.927000001072884 ], [ 13610599.4432, 4492419.979900003410876 ], [ 13610612.578900001943111, 4492458.22590000089258 ], [ 13610626.9391999989748, 4492482.042199997231364 ], [ 13610636.5126, 4492513.003399993292987 ], [ 13610594.767800003290176, 4492511.8827 ], [ 13610591.094300001859665, 4492521.409199995920062 ], [ 13610574.3964, 4492552.510600000619888 ], [ 13610560.036100002005696, 4492552.510600000619888 ], [ 13610519.5159, 4492540.462300001643598 ], [ 13610469.310800002887845, 4492533.317399998195469 ], [ 13610463.299500003457069, 4492550.128999997861683 ], [ 13610454.950499996542931, 4492557.273900003172457 ], [ 13610457.399600001052022, 4492579.969599996693432 ], [ 13610454.950499996542931, 4492612.192000002600253 ], [ 13610425.116899996995926, 4492621.718699995428324 ], [ 13610420.330200001597404, 4492647.916999997571111 ], [ 13610395.283299997448921, 4492640.772000001743436 ], [ 13610382.147600004449487, 4492567.921299998648465 ], [ 13610348.6404, 4492560.776399995200336 ], [ 13610334.391500003635883, 4492564.418899997137487 ], [ 13610304.446599997580051, 4492603.7862000009045 ], [ 13610303.333400003612041, 4492644.414499997161329 ], [ 13610211.383499998599291, 4492714.744000003673136 ], [ 13610208.934499997645617, 4492751.730099995620549 ], [ 13610170.751900002360344, 4492807.910199998877943 ], [ 13610279.3997, 4492836.630699993111193 ], [ 13610280.6242, 4492861.708799996413291 ], [ 13610265.150799997150898, 4492937.22339999396354 ], [ 13610250.7906, 4492984.9983 ], [ 13610219.7325, 4492996.906999998725951 ], [ 13610148.154, 4492920.551299991086125 ], [ 13610145.704999998211861, 4492865.631600001826882 ], [ 13610107.5224, 4492772.464899998158216 ], [ 13610052.530599998310208, 4492731.836000001989305 ], [ 13610040.619400002062321, 4492753.271199999377131 ], [ 13609952.231700003147125, 4492705.497399996034801 ], [ 13609904.4757, 4492777.228299996815622 ], [ 13609892.56449999846518, 4492748.507900000549853 ], [ 13609878.204300001263618, 4492741.362799997441471 ], [ 13609878.204300001263618, 4492729.4543999992311 ], [ 13609904.4757, 4492645.815499997697771 ], [ 13609792.15429999306798, 4492602.805499996989965 ], [ 13609792.15429999306798, 4492612.332099994644523 ], [ 13609758.758499998599291, 4492607.568799997679889 ], [ 13609742.06050000153482, 4492593.278899994678795 ], [ 13609737.2738, 4492602.805499996989965 ], [ 13609708.5534, 4492590.897200004197657 ], [ 13609711.002400001510978, 4492574.225699994713068 ], [ 13609653.672899996861815, 4492552.650699999183416 ], [ 13609567.622900003567338, 4492507.259499998763204 ], [ 13609543.8005, 4492557.413999997079372 ], [ 13609476.8975, 4492528.834299992769957 ], [ 13609350.327200001105666, 4492492.969699995592237 ], [ 13609300.122100003063679, 4492452.341899995692074 ], [ 13609245.2416, 4492418.859199997968972 ], [ 13609233.219099996611476, 4492507.259499998763204 ], [ 13609183.1254, 4492514.404399998486042 ], [ 13609109.097900003194809, 4492500.114600001834333 ], [ 13609078.039800003170967, 4492476.29829999897629 ], [ 13609039.745899997651577, 4492471.394900000654161 ], [ 13609025.497, 4492459.486799999140203 ], [ 13608960.820299994200468, 4492478.679899997077882 ], [ 13608922.526399997994304, 4492500.114600001834333 ], [ 13608843.7122, 4492483.443199994042516 ], [ 13608836.5878, 4492531.215999997220933 ], [ 13608836.5878, 4492571.843999990262091 ], [ 13608862.859199998900294, 4492621.99889999628067 ], [ 13608798.405199993401766, 4492614.7137999990955 ], [ 13608743.4134, 4492576.607299993745983 ], [ 13608688.532899998128414, 4492557.413999997079372 ], [ 13608626.416599996387959, 4492588.515600003302097 ], [ 13608528.344099996611476, 4492676.917299998924136 ], [ 13608463.890100002288818, 4492688.825699997134507 ], [ 13608382.7382, 4492684.062299992889166 ], [ 13608320.622, 4492636.288800000213087 ], [ 13608203.513800002634525, 4492621.99889999628067 ], [ 13608186.8158999979496, 4492595.660499994643033 ], [ 13608055.45889999344945, 4492576.607299993745983 ], [ 13608053.009900003671646, 4492502.49620000179857 ], [ 13608019.613999998196959, 4492454.723599997349083 ], [ 13607881.021300001069903, 4492340.126099998131394 ], [ 13607835.7142, 4492335.362899991683662 ], [ 13607773.598, 4492277.924599995836616 ], [ 13607725.730600001290441, 4492266.016699996776879 ], [ 13607635.005199998617172, 4492266.016699996776879 ], [ 13607587.249099995940924, 4492277.924599995836616 ], [ 13607503.648199997842312, 4492277.924599995836616 ], [ 13607331.659599997103214, 4492215.863499995321035 ], [ 13607312.0674, 4492216.844099998474121 ], [ 13607283.903499998152256, 4492218.24509999807924 ], [ 13607214.55150000192225, 4492304.262100003659725 ], [ 13607116.590299997478724, 4492337.744499991647899 ], [ 13607071.283299995586276, 4492368.705300003290176 ], [ 13607052.136399997398257, 4492395.04309999383986 ], [ 13607030.651699993759394, 4492476.29829999897629 ], [ 13606966.086399998515844, 4492507.259499998763204 ], [ 13606906.419100001454353, 4492559.795699996873736 ], [ 13606889.721199996769428, 4492595.660499994643033 ], [ 13606858.663099996745586, 4492636.288800000213087 ], [ 13606827.604900002479553, 4492648.197200001217425 ], [ 13606777.399800004437566, 4492648.197200001217425 ], [ 13606665.189800001680851, 4492702.555399994365871 ], [ 13606626.895900001749396, 4492747.947499996051192 ], [ 13606586.3756, 4492762.237599997781217 ], [ 13606536.170500002801418, 4492799.364100001752377 ], [ 13606524.2593, 4492835.089599995873868 ], [ 13606521.8103, 4492918.729999996721745 ], [ 13606507.56139999255538, 4492947.450900002382696 ], [ 13606476.503300003707409, 4492967.765699993818998 ], [ 13606416.724699998274446, 4492964.123000004328787 ], [ 13606346.259499996900558, 4492983.177000000141561 ], [ 13606314.08810000307858, 4493008.255299999378622 ], [ 13606293.716700004413724, 4493045.382700002752244 ], [ 13606139.650499995797873, 4493091.897099998779595 ], [ 13606140.874999998137355, 4493269.830600001849234 ], [ 13606253.085000002756715, 4493235.224399999715388 ], [ 13606304.514700001105666, 4493175.539499999023974 ], [ 13606321.2126, 4493116.975699996575713 ], [ 13606336.686, 4493124.120999992825091 ], [ 13606321.2126, 4493213.788199999369681 ], [ 13606316.425800003111362, 4493314.104299996048212 ], [ 13606277.018700003623962, 4493386.67989999987185 ], [ 13606217.908100001513958, 4493459.536300004459918 ], [ 13606188.074500001966953, 4493513.198099997825921 ], [ 13606142.0995, 4493578.909699996002018 ], [ 13606179.72550000436604, 4493576.527900003828108 ], [ 13606192.861199997365475, 4493574.70639999769628 ], [ 13606208.4459, 4493580.170699995011091 ], [ 13606210.783600004389882, 4493581.852099999785423 ], [ 13606217.908100001513958, 4493589.137799998745322 ], [ 13606216.12699999846518, 4493592.08009999897331 ], [ 13606205.44030000269413, 4493592.08009999897331 ], [ 13606201.210199996829033, 4493596.843900000676513 ], [ 13606204.995, 4493612.816499996930361 ], [ 13606194.865, 4493617.580299999564886 ], [ 13606188.853699998930097, 4493621.783600000664592 ], [ 13606184.734899995848536, 4493624.165499999187887 ], [ 13606188.297100001946092, 4493629.629899993538857 ], [ 13606203.770499998703599, 4493627.107899996452034 ], [ 13606209.225199997425079, 4493625.4265 ], [ 13606213.344, 4493626.547399997711182 ], [ 13606214.011899998411536, 4493632.57219999935478 ], [ 13606204.438400002196431, 4493639.577699993737042 ], [ 13606204.438400002196431, 4493663.396700001321733 ], [ 13606211.562899997457862, 4493677.828199995681643 ], [ 13606206.776100002229214, 4493689.737699997611344 ], [ 13606214.011899998411536, 4493706.410999992862344 ], [ 13606199.651699995622039, 4493713.556800002232194 ], [ 13606199.651699995622039, 4493739.897900001145899 ], [ 13606187.7405, 4493742.279799998737872 ], [ 13606180.504699997603893, 4493744.661699997261167 ], [ 13606182.953799998387694, 4493780.530599992722273 ], [ 13606194.865, 4493818.781599998474121 ], [ 13606223.5854, 4493840.218999994918704 ], [ 13606268.892399996519089, 4493866.560500002466142 ], [ 13606280.914899993687868, 4493854.510599998757243 ], [ 13606307.186299998313189, 4493868.94240000192076 ], [ 13606314.3108, 4493892.761899998411536 ], [ 13606311.9731, 4493935.777199995703995 ], [ 13606285.5903, 4494019.426299994811416 ], [ 13606271.341399997472763, 4494017.044299996457994 ], [ 13606268.892399996519089, 4494002.612300001084805 ], [ 13606268.892399996519089, 4493961.978699995204806 ], [ 13606249.856799993664026, 4493957.214800001122057 ], [ 13606225.9231, 4493957.214800001122057 ], [ 13606221.1364, 4493974.028700002469122 ], [ 13606211.562899997457862, 4494009.75819999538362 ], [ 13606211.562899997457862, 4494033.71809999179095 ], [ 13606211.562899997457862, 4494062.301999999210238 ], [ 13606201.989400001242757, 4494064.683899992145598 ], [ 13606182.953799998387694, 4494069.587999996729195 ], [ 13606173.380299996584654, 4494067.206100000999868 ], [ 13606151.895599998533726, 4494052.773999993689358 ], [ 13606135.197700001299381, 4494048.009999992325902 ], [ 13606123.1752, 4494026.572199998423457 ], [ 13606108.926299996674061, 4493990.702499999664724 ], [ 13606096.903800005093217, 4493988.320500002242625 ], [ 13606077.868199996650219, 4493995.466399998404086 ], [ 13606073.081400001421571, 4494024.190200002864003 ], [ 13606080.205899998545647, 4494067.206100000999868 ], [ 13606068.294699996709824, 4494100.553900003433228 ], [ 13606056.383500004187226, 4494110.081899997778237 ], [ 13606034.787500001490116, 4494114.845899997279048 ], [ 13606008.516099996864796, 4494100.553900003433228 ], [ 13605989.480499997735023, 4494079.115999997593462 ], [ 13605967.9958, 4494045.62809999845922 ], [ 13605946.399899996817112, 4494028.954199998639524 ], [ 13605932.151, 4494038.482099995948374 ], [ 13605924.915199998766184, 4494059.920000001788139 ], [ 13605936.937700005248189, 4494110.081899997778237 ], [ 13605932.151, 4494129.278099999763072 ], [ 13605951.186599997803569, 4494148.334099998697639 ], [ 13605958.422399997711182, 4494184.204400004819036 ], [ 13605951.186599997803569, 4494210.406599998474121 ], [ 13605936.937700005248189, 4494239.130999993532896 ], [ 13605946.399899996817112, 4494253.423199996352196 ], [ 13605948.848899997770786, 4494310.732199995778501 ], [ 13605929.701899994164705, 4494332.31069999653846 ], [ 13605915.452999997884035, 4494353.749200002290308 ], [ 13605896.306100003421307, 4494356.131199999712408 ], [ 13605872.3724, 4494356.131199999712408 ], [ 13605855.674500003457069, 4494339.456899998709559 ], [ 13605841.3143, 4494339.456899998709559 ], [ 13605829.403099998831749, 4494339.456899998709559 ], [ 13605793.558199997991323, 4494313.114200002513826 ], [ 13605776.860299995169044, 4494296.4399000024423 ], [ 13605762.500099997967482, 4494267.855499998666346 ], [ 13605757.713299997150898, 4494262.951299999840558 ], [ 13605745.8021, 4494267.855499998666346 ], [ 13605726.655199997127056, 4494286.911799997091293 ], [ 13605738.677699994295835, 4494305.968099995516241 ], [ 13605738.677699994295835, 4494322.782499998807907 ], [ 13605745.8021, 4494348.985100002028048 ], [ 13605736.228699993342161, 4494365.659500003792346 ], [ 13605769.735799994319677, 4494387.238099996931851 ], [ 13605769.735799994319677, 4494403.912499996833503 ], [ 13605824.616299998015165, 4494439.783699997700751 ], [ 13605834.1898, 4494461.22240000218153 ], [ 13605834.1898, 4494478.037100002169609 ], [ 13605819.829599997028708, 4494501.857899997383356 ], [ 13605793.558199997991323, 4494501.857899997383356 ], [ 13605757.713299997150898, 4494501.857899997383356 ], [ 13605750.588899996131659, 4494518.532499997876585 ], [ 13605745.8021, 4494544.87569999601692 ], [ 13605743.4644, 4494592.657899997197092 ], [ 13605721.868400001898408, 4494597.422099996358156 ], [ 13605712.4063, 4494606.950499995611608 ], [ 13605693.25930000282824, 4494614.096799993887544 ], [ 13605676.56139999628067, 4494635.675999994389713 ], [ 13605647.841, 4494633.29389999806881 ], [ 13605645.5033, 4494618.861100004054606 ], [ 13605659.863499997183681, 4494597.422099996358156 ], [ 13605662.201200002804399, 4494583.129399994388223 ], [ 13605650.29, 4494583.129399994388223 ], [ 13605571.4758, 4494585.511499997228384 ], [ 13605516.484, 4494571.078799999319017 ], [ 13605494.999299997463822, 4494561.55039999447763 ], [ 13605444.7942, 4494559.168300003744662 ], [ 13605420.971900001168251, 4494521.054699999280274 ], [ 13605373.215799998492002, 4494494.711599998176098 ], [ 13605314.6617, 4494484.342600002884865 ], [ 13605301.525999998673797, 4494481.960500000976026 ], [ 13605239.409799996763468, 4494513.067699993029237 ], [ 13605142.673100002110004, 4494541.652799994684756 ], [ 13605015.991499997675419, 4494541.652799994684756 ], [ 13604867.157399997115135, 4494554.123800002038479 ], [ 13604689.936800003051758, 4494569.117099993862212 ], [ 13604689.936800003051758, 4494563.231899996288121 ], [ 13604687.599000001326203, 4494539.270799999125302 ], [ 13604687.599000001326203, 4494501.157300001941621 ], [ 13604681.587800005450845, 4494483.221600003540516 ], [ 13604676.8011, 4494455.757600002922118 ], [ 13604664.889899998903275, 4494419.886399999260902 ], [ 13604645.8542, 4494381.633299998939037 ], [ 13604582.402099994942546, 4494285.090199998579919 ], [ 13604578.839900003746152, 4494286.211199996061623 ], [ 13604571.715499997138977, 4494299.382399997673929 ], [ 13604566.928700001910329, 4494316.056699994020164 ], [ 13604557.355199996381998, 4494328.107100000604987 ], [ 13604544.219499994069338, 4494333.992200002074242 ], [ 13604529.859300002455711, 4494333.992200002074242 ], [ 13604521.5104, 4494338.75630000140518 ], [ 13604501.250200003385544, 4494338.75630000140518 ], [ 13604497.688000001013279, 4494328.107100000604987 ], [ 13604463.0675999969244, 4494322.081900001503527 ], [ 13604417.6493, 4494322.081900001503527 ], [ 13604394.940099995583296, 4494314.93579999729991 ], [ 13604362.657499995082617, 4494313.674699997529387 ], [ 13604372.230899997055531, 4494298.261500000953674 ], [ 13604359.0952, 4494288.593199995346367 ], [ 13604360.3197, 4494275.56209999974817 ], [ 13604317.350399998947978, 4494248.098600000143051 ], [ 13604316.125899998471141, 4494250.480699997395277 ], [ 13604301.765699995681643, 4494243.334599995985627 ], [ 13604311.339199997484684, 4494219.37419999577105 ], [ 13604316.125899998471141, 4494199.056999991647899 ], [ 13604328.0371, 4494177.61879999935627 ], [ 13604348.408599998801947, 4494156.040599996224046 ], [ 13604316.125899998471141, 4494116.667499996721745 ], [ 13604294.6412, 4494102.375500001944602 ], [ 13604274.269800001755357, 4494089.204399996437132 ], [ 13604257.571899998933077, 4494079.676499996334314 ], [ 13604238.536200001835823, 4494084.440499996766448 ], [ 13604224.176, 4494078.415399996563792 ], [ 13604209.815800003707409, 4494082.058500000275671 ], [ 13604199.017800005152822, 4494080.797399995848536 ], [ 13604184.7689, 4494085.561399991624057 ], [ 13604176.419900001958013, 4494061.741499991156161 ], [ 13604187.106600003316998, 4494052.213499999605119 ], [ 13604177.533100001513958, 4494040.303599996492267 ], [ 13604168.071000002324581, 4494042.685599997639656 ], [ 13604156.048500003293157, 4494029.514699999243021 ], [ 13604148.92400000244379, 4494023.48960000090301 ], [ 13604142.9128, 4494019.986699997447431 ], [ 13604135.7883, 4494033.0176 ], [ 13604122.65259999781847, 4494033.0176 ], [ 13604123.877099998295307, 4493953.011299996636808 ], [ 13604116.530100002884865, 4493948.107299999333918 ], [ 13604104.618900001049042, 4493945.725299999117851 ], [ 13604095.0454, 4493931.433600001968443 ], [ 13604087.920999998226762, 4493940.961399999447167 ], [ 13604061.6496, 4493943.343400001525879 ], [ 13604052.076099997386336, 4493938.579499997198582 ], [ 13604037.715899994596839, 4493917.00169999524951 ], [ 13604023.467000002041459, 4493914.619800001382828 ], [ 13603935.0793, 4493957.635099994949996 ], [ 13603920.719099996611476, 4493940.961399999447167 ], [ 13603880.087499994784594, 4493957.635099994949996 ], [ 13603894.447699997574091, 4494024.470499998889863 ], [ 13603872.963, 4494034.138499998487532 ], [ 13603829.993699997663498, 4494034.138499998487532 ], [ 13603798.935599997639656, 4494017.324500000104308 ], [ 13603810.8467, 4493974.308899995870888 ], [ 13603789.362099997699261, 4493960.017099993303418 ], [ 13603612.5867, 4493988.740799996070564 ], [ 13603586.3153, 4493967.163000002503395 ], [ 13603555.2572, 4493917.00169999524951 ], [ 13603478.780699998140335, 4493871.604599996469915 ], [ 13603435.81139999628067, 4493778.428900002501905 ], [ 13603500.821999998763204, 4493779.129499999806285 ], [ 13603681.827399995177984, 4493780.950999995693564 ], [ 13603708.098800003528595, 4493766.51929999794811 ], [ 13603751.0682, 4493766.51929999794811 ], [ 13603765.428400002419949, 4493752.227799997664988 ], [ 13603746.3928, 4493678.108400001190603 ], [ 13603622.1602, 4493592.220200002193451 ], [ 13603509.5049, 4493596.98399999551475 ], [ 13603397.628799995407462, 4493601.747799997217953 ], [ 13603385.606299998238683, 4493587.456499999389052 ], [ 13603349.872699998319149, 4493577.788900002837181 ], [ 13603299.6676, 4493594.602099996060133 ], [ 13603270.9472, 4493613.657199996523559 ], [ 13603240.000400001183152, 4493651.907499995082617 ], [ 13603194.582000004127622, 4493666.19889999460429 ], [ 13603015.357699995860457, 4493673.344599998556077 ], [ 13602993.873000003397465, 4493644.761900001205504 ], [ 13602993.873000003397465, 4493623.184699996374547 ], [ 13603015.357699995860457, 4493611.275300001725554 ], [ 13603027.380199998617172, 4493527.6294 ], [ 13603024.931100003421307, 4493434.597000003792346 ], [ 13602993.873000003397465, 4493384.438199991360307 ], [ 13602967.601599998772144, 4493389.20189999602735 ], [ 13602967.601599998772144, 4493470.324699996039271 ], [ 13602950.9037000015378, 4493491.901499996893108 ], [ 13602946.116899995133281, 4493637.616199999116361 ], [ 13602857.729299996048212, 4493649.525700003840029 ], [ 13602831.457900002598763, 4493627.9485 ], [ 13602757.4304, 4493624.866100000217557 ], [ 13602691.751900002360344, 4493624.866100000217557 ], [ 13602678.6162, 4493675.025999994017184 ], [ 13602652.344800004735589, 4493672.644100002944469 ], [ 13602637.984600001946092, 4493653.588899994269013 ], [ 13602637.984600001946092, 4493628.508999997749925 ], [ 13602645.109, 4493592.640599997714162 ], [ 13602653.458, 4493562.797099997289479 ], [ 13602652.344800004735589, 4493536.596500003710389 ], [ 13602646.333499994128942, 4493506.75309999845922 ], [ 13602628.411099996417761, 4493488.8191 ], [ 13602609.264199998229742, 4493475.64879999961704 ], [ 13602575.868299998342991, 4493474.387899995781481 ], [ 13602554.383599994704127, 4493463.739600002765656 ], [ 13602541.247899997979403, 4493463.739600002765656 ], [ 13602519.7633, 4493456.593999995850027 ], [ 13602489.8183, 4493423.108099994249642 ], [ 13602455.197999998927116, 4493407.555999996140599 ], [ 13602424.1398, 4493372.949399998411536 ], [ 13602389.5195, 4493346.609199999831617 ], [ 13602353.674599997699261, 4493293.08829999435693 ], [ 13602358.4613, 4493259.602899998426437 ], [ 13602387.070500003173947, 4493158.026299992576241 ], [ 13602409.779600001871586, 4493095.960099996067584 ], [ 13602431.264300005510449, 4493039.778499996289611 ], [ 13602394.3062, 4493023.106200000271201 ], [ 13602379.946000002324581, 4493052.948200001381338 ], [ 13602364.4726, 4493084.051200001500547 ], [ 13602359.685899998992682, 4493089.935599997639656 ], [ 13602347.663400001823902, 4493095.960099996067584 ], [ 13602345.325599998235703, 4493103.10540000256151 ], [ 13602339.314400002360344, 4493116.27519999910146 ], [ 13602333.4145, 4493117.39599999692291 ], [ 13602336.9767, 4493130.565800004638731 ], [ 13602326.1787, 4493153.262799996882677 ], [ 13602323.841, 4493161.669099999591708 ], [ 13602327.4032, 4493168.814400003291667 ], [ 13602325.065499998629093, 4493179.602499994449317 ], [ 13602313.042999997735023, 4493175.959799997508526 ], [ 13602310.705300003290176, 4493166.432599995285273 ], [ 13602310.705300003290176, 4493143.735699995420873 ], [ 13602305.9185, 4493137.711199998855591 ], [ 13602303.4695, 4493118.656999998725951 ], [ 13602298.794100001454353, 4493112.632500001229346 ], [ 13602294.007399998605251, 4493091.196500002406538 ], [ 13602298.794100001454353, 4493007.554799997247756 ], [ 13602311.929799996316433, 4493005.173100000247359 ], [ 13602317.829700002446771, 4492993.2643 ], [ 13602336.9767, 4492992.003399993292987 ], [ 13602336.9767, 4492977.712999993935227 ], [ 13602358.4613, 4492943.107699994929135 ], [ 13602358.4613, 4492907.24169999640435 ], [ 13602321.392, 4492891.690399996004999 ], [ 13602341.763400003314018, 4492762.7980000032112 ], [ 13602298.794100001454353, 4492762.7980000032112 ], [ 13602292.782799998298287, 4492808.190399996936321 ], [ 13602276.084900001063943, 4492804.547799997031689 ], [ 13602276.084900001063943, 4492815.335500001907349 ], [ 13602287.9961, 4492815.335500001907349 ], [ 13602289.220600003376603, 4492822.480599999427795 ], [ 13602264.062399998307228, 4492820.098899997770786 ], [ 13602260.500200003385544, 4492836.770800000987947 ], [ 13602230.666599998250604, 4492836.770800000987947 ], [ 13602228.328900003805757, 4492853.582899999804795 ], [ 13602254.6003, 4492855.964599998667836 ], [ 13602231.779799997806549, 4493027.169200000353158 ], [ 13602231.779799997806549, 4493117.956399998627603 ], [ 13602219.868600003421307, 4493277.95679999422282 ], [ 13602207.8461, 4493304.296799999661744 ], [ 13602191.148100003600121, 4493340.164199999533594 ], [ 13602160.090000003576279, 4493406.995599995367229 ], [ 13602138.6053, 4493442.863399998284876 ], [ 13602100.422799993306398, 4493459.536300004459918 ], [ 13602055.004399996250868, 4493457.154500001110137 ], [ 13602002.461599998176098, 4493514.459099997766316 ], [ 13601902.162699997425079, 4493626.827600001357496 ], [ 13601873.4423, 4493684.133199997246265 ], [ 13601861.531099997460842, 4493724.765699996612966 ], [ 13601747.651299998164177, 4493803.088899992406368 ], [ 13601708.689499992877245, 4493829.850599995814264 ], [ 13601636.999699998646975, 4493968.424000001512468 ], [ 13601513.435099994763732, 4493941.802100001834333 ], [ 13601460.892300002276897, 4493970.525799996219575 ], [ 13601382.078100005164742, 4494020.687299993820488 ], [ 13601382.078100005164742, 4494027.833299999125302 ], [ 13601281.779200004413724, 4493970.525799996219575 ], [ 13601262.632299996912479, 4493822.424500001594424 ], [ 13601145.635499998927116, 4493745.9227 ], [ 13601124.150799995288253, 4493707.671999998390675 ], [ 13601083.51919999346137, 4493690.998699998483062 ], [ 13601023.852, 4493674.325399999506772 ], [ 13600789.747100003063679, 4493554.8108 ], [ 13600562.766599997878075, 4493440.201299997977912 ], [ 13600581.91359999589622, 4493440.201299997977912 ], [ 13600388.44030000269413, 4493277.816699991002679 ], [ 13600290.4792, 4493220.513299996033311 ], [ 13600197.749999998137355, 4493223.03520000167191 ], [ 13600137.971499998122454, 4493175.25929999910295 ], [ 13599901.528899997472763, 4493098.762199995107949 ], [ 13599942.160499997437, 4492855.12399999704212 ], [ 13599839.412600003182888, 4492644.974899994209409 ], [ 13599791.656499994918704, 4492633.0666000014171 ], [ 13599795.663999998942018, 4492618.91669999808073 ], [ 13599813.141199998557568, 4492556.57349999807775 ], [ 13599712.842299997806549, 4492523.090399996377528 ], [ 13599676.997399998828769, 4492556.57349999807775 ], [ 13599676.997399998828769, 4492508.800499995239079 ], [ 13599521.706799998879433, 4492501.655599996447563 ], [ 13599521.929399993270636, 4492484.844099994748831 ], [ 13599524.37839999422431, 4492262.794499997980893 ], [ 13599385.896999998018146, 4492253.268200001679361 ], [ 13599068.413800001144409, 4492217.544600003398955 ], [ 13598893.976199997588992, 4492205.636799997650087 ], [ 13598817.611000001430511, 4492219.926199996843934 ], [ 13598712.080099998041987, 4492210.960299998521805 ], [ 13598699.9463, 4492209.979599993675947 ], [ 13598647.960100004449487, 4492205.636799997650087 ], [ 13598628.924400001764297, 4492370.106200002133846 ], [ 13598539.868900001049042, 4492356.937399998307228 ], [ 13598386.359299998730421, 4492353.435000003315508 ], [ 13598349.289899997413158, 4492289.552299998700619 ], [ 13598294.4094, 4492283.668399995192885 ], [ 13598291.960299998521805, 4492365.483099996112287 ], [ 13598237.6364, 4492365.483099996112287 ], [ 13598237.6364, 4492324.155399999581277 ], [ 13598226.28180000372231, 4492322.474299995228648 ], [ 13598228.063000001013279, 4492275.262799999676645 ], [ 13598190.8822, 4492273.861900000832975 ], [ 13598198.67459999397397, 4492215.863499995321035 ], [ 13598103.719099996611476, 4492136.431500002741814 ], [ 13598071.43639999628067, 4492123.823299994692206 ], [ 13598064.312, 4492173.415600002743304 ], [ 13598052.957400001585484, 4492221.186999998055398 ], [ 13598030.804799996316433, 4492223.568599994294345 ], [ 13598030.804799996316433, 4492182.941899994388223 ], [ 13597982.4922, 4492178.1787 ], [ 13597982.4922, 4492149.46000000089407 ], [ 13597964.569700002670288, 4492141.054499997757375 ], [ 13597961.5641, 4492027.581200000829995 ], [ 13597964.0131, 4491993.539399992674589 ], [ 13597817.071400001645088, 4491975.608 ], [ 13597809.279, 4491977.989500000141561 ], [ 13597806.941299997270107, 4492096.225399998016655 ], [ 13597810.5035, 4492115.417799999006093 ], [ 13597783.675499998033047, 4492151.141099994070828 ], [ 13597732.245899993926287, 4492152.4019 ], [ 13597710.204700002446771, 4492152.962200001813471 ], [ 13597659.443000003695488, 4492118.359700000844896 ], [ 13597567.771372960880399, 4492123.788664750754833 ], [ 13597688.709763143211603, 4492146.824548595584929 ], [ 13597774.701419964432716, 4492242.37083395011723 ], [ 13597774.701419964432716, 4492423.908776126801968 ], [ 13597669.600506072863936, 4492653.219860983081162 ], [ 13597717.373648749664426, 4492739.211517804302275 ], [ 13597669.600506072863936, 4492939.858717051334679 ], [ 13597640.936620464548469, 4493035.405002407729626 ], [ 13597822.474562643095851, 4493283.825344335287809 ], [ 13597984.903247749432921, 4493283.825344335287809 ], [ 13598128.22267578355968, 4493331.598487015813589 ], [ 13598175.995818460360169, 4493427.144772368483245 ], [ 13598175.995818460360169, 4493551.354943334124982 ], [ 13598099.558790175244212, 4493646.901228690519929 ], [ 13598080.449533104896545, 4493694.674371371045709 ], [ 13598023.121761890128255, 4493866.65768501162529 ], [ 13598080.449533104896545, 4493900.098884887062013 ], [ 13598218.991646870970726, 4493943.094713296741247 ], [ 13598271.542103817686439, 4493995.645170241594315 ], [ 13598328.869875032454729, 4494067.304884259589016 ], [ 13598300.205989424139261, 4494129.409969742409885 ], [ 13598223.768961139023304, 4494502.040482631884515 ], [ 13598013.567133354023099, 4495247.301508409902453 ], [ 13597908.466219464316964, 4495596.045449962839484 ], [ 13597789.033362766727805, 4495968.675962851382792 ], [ 13597655.268563266843557, 4496384.302304154261947 ], [ 13597263.52879330702126, 4498113.690069106407464 ], [ 13597105.877422468736768, 4498744.295552460476756 ], [ 13596943.448737364262342, 4499417.896864222362638 ], [ 13596781.020052256062627, 4500177.48983280453831 ], [ 13596284.17936840467155, 4500124.93937585875392 ], [ 13596212.519654387608171, 4500339.918517911806703 ], [ 13596265.070111330598593, 4500368.582403518259525 ], [ 13596288.956682670861483, 4500473.683317409828305 ], [ 13596245.960854260250926, 4500617.002745445817709 ], [ 13596255.515482796356082, 4500693.439773730002344 ], [ 13596193.410397313535213, 4500712.549030799418688 ], [ 13596140.859940368682146, 4500798.540687621571124 ], [ 13596093.086797690019011, 4500812.872630423866212 ], [ 13596102.641426226124167, 4500879.755030174739659 ], [ 13596107.4187404923141, 4501109.066115032881498 ], [ 13595787.338684549555182, 4501123.398057833313942 ], [ 13595577.136856764554977, 4501109.066115032881498 ], [ 13595376.489657515659928, 4501113.843429298140109 ], [ 13595032.523030234500766, 4501118.620743566192687 ], [ 13595414.708171660080552, 4499183.808465097099543 ], [ 13595562.804913962259889, 4498462.434010656550527 ], [ 13595237.947543749585748, 4498390.774296639487147 ], [ 13595252.279486553743482, 4498314.337268353439867 ], [ 13594244.266176043078303, 4497984.702583872713149 ], [ 13593627.992635492235422, 4497674.177156464196742 ], [ 13593489.450521724298596, 4497650.290585126727819 ], [ 13593374.794979298487306, 4497530.857728430069983 ], [ 13593040.382980549708009, 4497315.878586377948523 ], [ 13592524.43303962610662, 4497296.769329306669533 ], [ 13592471.882582681253552, 4497029.239730308763683 ], [ 13592543.542296698316932, 4496871.588359471410513 ], [ 13592524.43303962610662, 4496690.050417293794453 ], [ 13592639.088582053780556, 4496432.075446832925081 ], [ 13592538.764982428401709, 4496379.524989885278046 ], [ 13592395.445554392412305, 4496436.852761098183692 ], [ 13592437.869692161679268, 4496269.389059380628169 ], [ 13592395.7009, 4496423.116899993270636 ], [ 13591991.945100001990795, 4497229.701999993994832 ], [ 13591960.886899996548891, 4497361.172199997119606 ], [ 13591898.770699996501207, 4497387.382299993187189 ], [ 13591886.859499994665384, 4497502.034900003112853 ], [ 13591805.707599997520447, 4497494.886600001715124 ], [ 13591774.649400003254414, 4497540.2994 ], [ 13592006.305299993604422, 4497771.991899995133281 ], [ 13592371.7672, 4497853.148599995300174 ], [ 13592439.4494, 4498062.981499997898936 ], [ 13592348.6127, 4498196.704800002276897 ], [ 13592362.972900003194809, 4498301.834399998188019 ], [ 13592339.039299998432398, 4498390.144099997356534 ], [ 13592320.003600001335144, 4498514.479699999094009 ], [ 13592233.953699996694922, 4498538.309800000861287 ], [ 13592188.6466, 4498636.293700000271201 ], [ 13591987.937600003555417, 4498791.471900001168251 ], [ 13591954.54169999435544, 4498944.409400000236928 ], [ 13591832.646899994462729, 4499037.490699996240437 ], [ 13591722.9972, 4499243.001500003971159 ], [ 13591596.4269, 4499310.010599997825921 ], [ 13591500.914800005033612, 4499314.777000000700355 ], [ 13591438.798500001430511, 4499469.965200000442564 ], [ 13591352.7486, 4499491.414099994115531 ], [ 13591429.225100003182888, 4499567.957800001837313 ], [ 13591269.147599998861551, 4499749.505999996326864 ], [ 13591211.818099994212389, 4499785.255199996754527 ], [ 13591206.808700002729893, 4499940.590600000694394 ], [ 13591006.211000002920628, 4500141.212099998258054 ], [ 13591080.2385, 4500282.112099997699261 ], [ 13590989.513099998235703, 4500501.947899996303022 ], [ 13591027.6957, 4500611.727399998344481 ], [ 13590678.9317, 4500676.221600001677871 ], [ 13590444.8268, 4500623.784999998286366 ], [ 13590175.09969999268651, 4500730.761599997058511 ], [ 13590086.712, 4500675.800999999046326 ], [ 13589862.180600004270673, 4500737.912099999375641 ], [ 13589611.3778, 4500694.868899996392429 ], [ 13589489.594200002029538, 4500709.310099991038442 ], [ 13589310.3699, 4500933.781800001859665 ], [ 13588968.841700002551079, 4501098.528199998661876 ], [ 13588653.473599996417761, 4501143.535999998450279 ], [ 13589054.999999998137355, 4501990.447499997913837 ], [ 13591123.430399995297194, 4502387.005000001750886 ], [ 13591478.428299997001886, 4502872.20539999846369 ], [ 13592012.761799996718764, 4503602.432300000451505 ], [ 13592240.0762, 4503913.218399995937943 ], [ 13592292.841700002551079, 4503985.306399996392429 ], [ 13592307.869800003245473, 4504005.923100002110004 ], [ 13591844.1128, 4504474.7884 ], [ 13591692.606999998912215, 4504627.949100002646446 ], [ 13591438.464599993079901, 4504884.904999998398125 ], [ 13590726.799099992960691, 4506169.7791 ], [ 13590718.2275, 4506180.861100003123283 ], [ 13590067.4537, 4507024.952899995259941 ], [ 13589909.936599997803569, 4507076.299199998378754 ], [ 13589852.607099998742342, 4507094.957900002598763 ], [ 13589292.89270000346005, 4507277.337899997830391 ], [ 13588917.189400002360344, 4507399.814900000579655 ], [ 13588771.249599998816848, 4507447.374999999068677 ], [ 13588274.764600003138185, 4507609.137299998663366 ], [ 13588046.2257, 4507683.635799994692206 ], [ 13587520.352499997243285, 4507573.782300001010299 ], [ 13586819.039699997752905, 4507574.062899999320507 ], [ 13586806.460600003600121, 4507582.621000000275671 ], [ 13586749.465000005438924, 4507566.4868 ], [ 13586751.134800001978874, 4507549.791500002145767 ], [ 13586748.574399996548891, 4507566.4868 ], [ 13586665.196099994704127, 4507664.555200000293553 ], [ 13586397.6954, 4507616.713399999774992 ], [ 13586282.925, 4507767.39459999743849 ], [ 13586201.216499995440245, 4507913.868900001980364 ], [ 13586134.647400001063943, 4507871.357499997131526 ], [ 13585972.454899996519089, 4508032.424799998290837 ], [ 13585852.3412000015378, 4507981.775299999862909 ], [ 13585437.453499998897314, 4507683.635799994692206 ], [ 13585326.69059999845922, 4508045.192500003613532 ], [ 13585313.2209, 4508180.446199997328222 ], [ 13585180.973399996757507, 4508204.0176 ], [ 13585037.593900002539158, 4508190.2676 ], [ 13584966.349399998784065, 4508185.91809999756515 ], [ 13584324.035899994894862, 4508146.913199997507036 ], [ 13582460.881599996238947, 4508576.817000000737607 ], [ 13581467.132499996572733, 4509045.045000003650784 ], [ 13581295.4779, 4509705.679199998266995 ], [ 13580843.632, 4509617.554799994453788 ], [ 13580792.2024, 4509626.395199997350574 ], [ 13580748.67650000192225, 4509665.265299996361136 ], [ 13580662.292599998414516, 4509776.965000003576279 ], [ 13580615.761, 4509834.779899999499321 ], [ 13580551.86370000243187, 4509850.356299998238683 ], [ 13580434.532899998128414, 4509827.34249999653548 ], [ 13580362.731799997389317, 4509766.159899999387562 ], [ 13580337.573599997907877, 4509676.491399999707937 ], [ 13580334.568, 4509515.679399997927248 ], [ 13580354.939499992877245, 4509317.123599993065 ], [ 13580350.041399996727705, 4509172.173199994489551 ], [ 13580342.360399998724461, 4509108.187899997457862 ], [ 13580207.552499998360872, 4508927.880799999460578 ], [ 13580115.379900002852082, 4508818.575499993748963 ], [ 13580059.163599997758865, 4508750.663699998520315 ], [ 13580051.371200004592538, 4508680.086400000378489 ], [ 13580074.637000001966953, 4508552.262599994428456 ], [ 13580153.22860000282526, 4508340.536100000143051 ], [ 13580181.281099993735552, 4508266.874799994751811 ], [ 13580189.073399998247623, 4508205.981799996457994 ], [ 13580159.017199996858835, 4508144.387699998915195 ], [ 13580087.2161, 4508044.911799995228648 ], [ 13579691.586599998176098, 4507844.138999995775521 ], [ 13578830.753, 4507427.452999996952713 ], [ 13578455.494999997317791, 4507300.626699992455542 ], [ 13578097.82549999281764, 4507261.063900000415742 ], [ 13577714.997699998319149, 4507256.574500001966953 ], [ 13577349.64720000512898, 4507274.251500001177192 ], [ 13577216.9543, 4507338.365799996070564 ], [ 13576961.142200002446771, 4507446.673599997535348 ], [ 13576806.0741, 4507465.613499996252358 ], [ 13576642.3231, 4507442.604999990202487 ], [ 13576465.993099998682737, 4507351.974299996159971 ], [ 13576853.162299994379282, 4505692.982699998654425 ], [ 13576356.120700001716614, 4503724.86640000436455 ], [ 13576913.1635, 4502541.818000002764165 ], [ 13577435.8085, 4501431.814799999818206 ], [ 13576511.1888, 4501019.58979999832809 ], [ 13576759.542599998414516, 4500355.577100002206862 ], [ 13576611.487599994987249, 4500312.675700003281236 ], [ 13577003.332199996337295, 4499385.992299996316433 ], [ 13577293.764799997210503, 4498937.961000002920628 ], [ 13577743.606899995356798, 4498243.802699998021126 ], [ 13577502.822800004854798, 4498115.405299994163215 ], [ 13577395.288199998438358, 4497914.682300001382828 ], [ 13577261.482100002467632, 4497706.954899995587766 ], [ 13577084.706799998879433, 4497608.97959999460727 ], [ 13577053.648699998855591, 4497446.530500001274049 ], [ 13577070.457900002598763, 4497097.813100002706051 ], [ 13576657.2399, 4497014.279599998146296 ], [ 13576471.002400005236268, 4496777.838499997742474 ], [ 13576676.386900002136827, 4496168.750600002706051 ], [ 13576556.718399997800589, 4496247.932800001464784 ], [ 13576358.458400003612041, 4496212.055499998852611 ], [ 13576442.0594, 4496167.909699999727309 ], [ 13576464.9912, 4496155.857299999333918 ], [ 13576823.328599995002151, 4496082.982199994847178 ], [ 13576910.491800002753735, 4495544.282999999821186 ], [ 13577029.715000005438924, 4495166.200999994762242 ], [ 13576862.290399998426437, 4494815.17710000090301 ], [ 13576973.387300001457334, 4494770.897099995985627 ], [ 13577158.5116, 4494852.170699995942414 ], [ 13577140.589199997484684, 4495008.554099996574223 ], [ 13577345.9736, 4494999.025300002656877 ], [ 13577399.740999998524785, 4494951.241299998946488 ], [ 13577365.120600001886487, 4494926.15820000320673 ], [ 13577504.826599998399615, 4494780.425699999555945 ], [ 13577322.37389999628067, 4494546.136799995787442 ], [ 13577108.8631, 4494206.483199999667704 ], [ 13577277.0669, 4493912.517999995499849 ], [ 13577232.873000003397465, 4493684.413399998098612 ], [ 13577297.326999997720122, 4493730.930699998512864 ], [ 13577341.5209, 4493688.056399999186397 ], [ 13577328.385199997574091, 4493640.27830000128597 ], [ 13577432.357600003480911, 4493686.795399999246001 ], [ 13577380.928000001236796, 4493920.924900002777576 ], [ 13577428.7953, 4493956.654299997724593 ], [ 13577484.900399997830391, 4493887.437499994412065 ], [ 13577572.063500002026558, 4493868.381899995729327 ], [ 13577514.733999997377396, 4493725.045999994501472 ], [ 13577642.528800003230572, 4493765.678599998354912 ], [ 13577611.470600001513958, 4493877.909699997864664 ], [ 13577804.943899996578693, 4493875.527800001204014 ], [ 13577678.373599998652935, 4494016.483799997717142 ], [ 13577717.780699998140335, 4494059.499599997885525 ], [ 13577862.273400001227856, 4493905.372199996374547 ], [ 13577820.5286, 4493831.251699996180832 ], [ 13577730.9164, 4493796.643700001761317 ], [ 13577741.714399997144938, 4493759.653799997642636 ], [ 13577822.8663, 4493787.11599999293685 ], [ 13577858.711199995130301, 4493741.719400002621114 ], [ 13577856.15089999884367, 4493740.738599996082485 ], [ 13577766.761299995705485, 4493705.850599996745586 ], [ 13577821.6418, 4493576.94820000231266 ], [ 13577851.364100003615022, 4493586.4756999919191 ], [ 13577825.092699998989701, 4493660.454299998469651 ], [ 13577862.050800004974008, 4493671.242899995297194 ], [ 13577919.3803, 4493508.854699998162687 ], [ 13577885.984499998390675, 4493495.684499995782971 ], [ 13577875.186499997973442, 4493512.357500002719462 ], [ 13577762.976400004699826, 4493445.525399995036423 ], [ 13577819.081500003114343, 4493298.69259999319911 ], [ 13577819.081500003114343, 4493243.770899998024106 ], [ 13577940.976299997419119, 4493154.243500001728535 ], [ 13577909.918199997395277, 4493143.45549999922514 ], [ 13577895.335299998521805, 4492993.964799995534122 ], [ 13577889.5467, 4492934.421400000341237 ], [ 13578011.441599998623133, 4492911.584799996577203 ], [ 13578017.3415, 4492882.864 ], [ 13577891.9957, 4492842.234800001606345 ], [ 13577919.4917, 4492778.909500000998378 ], [ 13578036.488399997353554, 4492831.446999996900558 ], [ 13578038.826099997386336, 4492810.011699995957315 ], [ 13577940.976299997419119, 4492759.855899997055531 ], [ 13577950.5498, 4492733.51719999872148 ], [ 13578066.322099996730685, 4492786.054600001312792 ], [ 13578120.0894, 4492958.098599998280406 ], [ 13578163.058700002729893, 4492965.24379999935627 ], [ 13578182.205700004473329, 4492745.565800000913441 ], [ 13578207.252499997615814, 4492735.898900003172457 ], [ 13578202.354500003159046, 4492603.646099998615682 ], [ 13578259.684, 4492527.153199994936585 ], [ 13578259.684, 4492428.105399997904897 ], [ 13578296.7533999979496, 4492416.197400001809001 ], [ 13578487.777699995785952, 4492557.133799994364381 ], [ 13578505.700099995359778, 4492559.515500001609325 ], [ 13578496.126599997282028, 4492497.312700003385544 ], [ 13578684.813199996948242, 4492468.733099994249642 ], [ 13578818.507900001481175, 4492503.196699997410178 ], [ 13578848.34150000102818, 4492659.685199993662536 ], [ 13578893.759800003841519, 4492762.37769999820739 ], [ 13578928.380199998617172, 4492758.875199998728931 ], [ 13578886.635399997234344, 4492499.694299997761846 ], [ 13578885.410899996757507, 4492314.488899999298155 ], [ 13578848.34150000102818, 4492269.098700002767146 ], [ 13578757.282100001350045, 4492256.210199996829033 ], [ 13578778.766800001263618, 4492161.788000002503395 ], [ 13578828.971899997442961, 4492170.193499994464219 ], [ 13578896.988099997863173, 4492252.567699996754527 ], [ 13578923.259499996900558, 4492237.017499997280538 ], [ 13578894.650399997830391, 4492129.566999999806285 ], [ 13578919.697300001978874, 4492103.369999991729856 ], [ 13579102.483900004997849, 4492170.193499994464219 ], [ 13579356.848899995908141, 4492467.612299998290837 ], [ 13579420.1897, 4492465.230700000189245 ], [ 13579342.48870000243187, 4492275.262799999676645 ], [ 13579554.552299998700619, 4492360.439699997194111 ], [ 13579742.6823, 4492553.491299997083843 ], [ 13579808.583400001749396, 4492606.588100002147257 ], [ 13579996.71339999884367, 4492680.27970000449568 ], [ 13580067.512500004842877, 4492684.202399999834597 ], [ 13580102.466899996623397, 4492664.308499995619059 ], [ 13580242.061499997973442, 4492515.805399999022484 ], [ 13580369.077, 4492376.970899992622435 ], [ 13580432.97439999692142, 4492264.055399999022484 ], [ 13580549.303299997001886, 4492052.237000001594424 ], [ 13580667.6359, 4491917.050899995490909 ], [ 13581189.1677, 4491474.381199998781085 ], [ 13581380.192000003531575, 4491329.1168 ], [ 13581430.6197, 4491306.283699993975461 ], [ 13581481.047399997711182, 4491306.423799998126924 ], [ 13581525.686599995940924, 4491311.466599998064339 ], [ 13581694.335600003600121, 4491442.862700001336634 ], [ 13581756.451899997889996, 4491486.288199998438358 ], [ 13581931.891400003805757, 4491538.679200001060963 ], [ 13582045.325900003314018, 4491553.668099994771183 ], [ 13582113.230800002813339, 4491550.866499996744096 ], [ 13582167.554699998348951, 4491534.056500000879169 ], [ 13582194.7167, 4491514.724999996833503 ], [ 13582236.350199997425079, 4491466.816799991764128 ], [ 13582328.411399995908141, 4491279.248199998401105 ], [ 13582354.5715, 4491239.745800004340708 ], [ 13582466.113599998876452, 4491147.153800004161894 ], [ 13582564.965300003066659, 4491058.064599994570017 ], [ 13582585.336800001561642, 4491019.823700003325939 ], [ 13582626.07969999872148, 4490939.139999999664724 ], [ 13582648.3436, 4490909.303999994881451 ], [ 13582680.292299998924136, 4490897.957999993115664 ], [ 13582714.244800001382828, 4490896.277099996805191 ], [ 13582740.4048, 4490907.903300002217293 ], [ 13582780.257200002670288, 4490954.268099998123944 ], [ 13582844.154600001871586, 4491075.574199995025992 ], [ 13582877.2165, 4491168.725900001823902 ], [ 13582884.897499997168779, 4491258.096199992112815 ], [ 13582896.586099997162819, 4491341.443899997510016 ], [ 13582923.74800000153482, 4491394.53449999820441 ], [ 13582983.860600002110004, 4491497.49479999858886 ], [ 13583038.184499997645617, 4491645.563299997709692 ], [ 13583062.340800002217293, 4491673.580300002358854 ], [ 13583104.085600003600121, 4491696.834399998188019 ], [ 13583276.630800003185868, 4491765.616499993950129 ], [ 13583365.7977, 4491787.189900001510978 ], [ 13583503.500000001862645, 4491782.847199997864664 ], [ 13583565.504899997264147, 4491791.532499997876585 ], [ 13583645.988899996504188, 4491830.19649999961257 ], [ 13583673.039499998092651, 4491869.841300002299249 ], [ 13583737.048199996352196, 4491954.594600000418723 ], [ 13583764.210199994966388, 4491974.767399994656444 ], [ 13583800.055100001394749, 4491991.298000001348555 ], [ 13583834.007500002160668, 4491981.631800003349781 ], [ 13583874.750500001013279, 4491902.201599998399615 ], [ 13583935.7535, 4491825.71369999088347 ], [ 13583980.3926, 4491791.252400003373623 ], [ 13584052.0824, 4491763.515299992635846 ], [ 13584103.400700002908707, 4491756.931199997663498 ], [ 13584150.934100003913045, 4491765.616499993950129 ], [ 13584185.777099994942546, 4491780.325599998235703 ], [ 13584243.9972, 4491830.476699998602271 ], [ 13584303.1079, 4491848.82810000423342 ], [ 13584528.863799998536706, 4491876.42539999447763 ], [ 13584651.983099998906255, 4491898.138999999500811 ], [ 13584706.307, 4491929.939000002108514 ], [ 13584767.310099994763732, 4491992.698899992741644 ], [ 13584816.736, 4492053.077499995008111 ], [ 13584852.580899994820356, 4492072.6902 ], [ 13584894.214300001040101, 4492099.587499994784594 ], [ 13584957.221199998632073, 4492114.997500001452863 ], [ 13585040.5995, 4492133.489600002765656 ], [ 13585062.863399997353554, 4492153.10230000410229 ], [ 13585087.131, 4492189.666299996897578 ], [ 13585116.1854, 4492259.712499998509884 ], [ 13585155.92650000192225, 4492310.846500000916421 ], [ 13585186.8733000010252, 4492340.82660000026226 ], [ 13585222.718199998140335, 4492349.372299998998642 ], [ 13585248.878200002014637, 4492340.966600000858307 ], [ 13585284.7231, 4492289.9726 ], [ 13585324.464199993759394, 4492167.251599996350706 ], [ 13585348.731799993664026, 4492124.103500001132488 ], [ 13585370.995699997991323, 4492109.534000001847744 ], [ 13585411.627299997955561, 4492106.031700000166893 ], [ 13585570.591599997133017, 4492133.349499997682869 ], [ 13585712.9692, 4492166.551099998876452 ], [ 13586191.531699998304248, 4492206.19709999859333 ], [ 13586404.597199998795986, 4492243.321599997580051 ], [ 13586513.0224, 4492259.992700000293553 ], [ 13586650.613300001248717, 4492270.779799997806549 ], [ 13586759.038500003516674, 4492207.738100000657141 ], [ 13586832.620600001886487, 4492068.627499998547137 ], [ 13586925.572400005534291, 4491856.532899998128414 ], [ 13587049.47100000269711, 4491677.362599994055927 ], [ 13587130.845600001513958, 4491621.60880000051111 ], [ 13587276.00619999691844, 4491568.516999997198582 ], [ 13587448.328699994832277, 4491545.683399997651577 ], [ 13587632.228500002995133, 4491546.103599997237325 ], [ 13587728.0746, 4491559.691699992865324 ], [ 13587827.816900001838803, 4491606.199600003659725 ], [ 13588004.92620000243187, 4491623.569999994710088 ], [ 13588171.348800003528595, 4491617.126100002788007 ], [ 13588244.93100000359118, 4491577.202200003899634 ], [ 13588382.2993, 4491464.855600000359118 ], [ 13588443.3024, 4491441.8821 ], [ 13588582.563000001013279, 4491408.682800001464784 ], [ 13588640.671800002455711, 4491355.87219999358058 ], [ 13588715.144599994644523, 4491262.858900001272559 ], [ 13588649.911300003528595, 4491402.799299996346235 ], [ 13588965.168099995702505, 4491570.057899992913008 ], [ 13589170.107299994677305, 4491636.877999997697771 ], [ 13589399.4255, 4491811.2847999939695 ], [ 13589568.965000003576279, 4492016.654200003482401 ], [ 13589748.1894, 4492107.432599999010563 ], [ 13589889.1199000030756, 4492262.794499997980893 ], [ 13589986.163305452093482, 4492346.627666221000254 ], [ 13589992.456477681174874, 4492342.694433577358723 ], [ 13590193.103676926344633, 4492294.921290898695588 ], [ 13590255.208762409165502, 4492175.488434199243784 ], [ 13590331.645790694281459, 4492089.496777379885316 ], [ 13590427.192076051607728, 4492041.723634703084826 ], [ 13590541.847618479281664, 4492060.832891773432493 ], [ 13590603.952703960239887, 4491927.068092275410891 ], [ 13590637.393903834745288, 4491874.517635326832533 ], [ 13590675.612417977303267, 4491869.7403210606426 ], [ 13590732.940189192071557, 4491764.639407167211175 ], [ 13590742.494817728176713, 4491716.86626448854804 ], [ 13590780.713331868872046, 4491621.319979134947062 ], [ 13590818.93184601329267, 4491516.219065241515636 ], [ 13590866.704988691955805, 4491411.118151349015534 ], [ 13590885.814245762303472, 4491277.353351851925254 ], [ 13590885.814245762303472, 4491153.143180888146162 ], [ 13590895.368874298408628, 4491028.933009923435748 ], [ 13590943.142016977071762, 4490895.168210424482822 ], [ 13591038.688302332535386, 4490704.075639711692929 ], [ 13591105.570702083408833, 4490503.428440463729203 ], [ 13591277.554015723988414, 4490331.445126820355654 ], [ 13591401.764186687767506, 4490197.680327321402729 ], [ 13591401.764186687767506, 4490121.243299036286771 ], [ 13591621.520643007010221, 4490083.024784894660115 ], [ 13591602.411385936662555, 4490169.016441714949906 ], [ 13591641.3423628564924, 4490169.016441714949906 ], [ 13591657.986599996685982, 4490011.742600001394749 ], [ 13591653.19990000128746, 4489916.220199996605515 ], [ 13591810.8283, 4489920.982299998402596 ], [ 13591882.518000001087785, 4489873.221299997530878 ], [ 13591925.48730000294745, 4489801.510300002060831 ], [ 13591968.4567, 4489725.17779999691993 ], [ 13591820.401699997484684, 4489672.515799999237061 ], [ 13591815.615000002086163, 4489619.994 ], [ 13592040.14639999717474, 4489605.708100000396371 ], [ 13592030.5729, 4489381.198399996384978 ], [ 13591648.413099994882941, 4489328.678099998272955 ], [ 13591653.19990000128746, 4489237.783500001765788 ], [ 13591495.571500001475215, 4489213.974599998444319 ], [ 13591638.839699998497963, 4488855.726999995298684 ], [ 13591619.803999997675419, 4488043.482899997383356 ], [ 13591887.304799996316433, 4488057.906700000166893 ], [ 13591911.1271, 4488511.775999997742474 ], [ 13592279.037999998778105, 4488621.570200005546212 ], [ 13592207.348300002515316, 4488115.181999991647899 ], [ 13592465.386899996548891, 4488205.926700001582503 ], [ 13592379.336900003254414, 4488593.001199997030199 ], [ 13592336.367600001394749, 4488683.750100000761449 ], [ 13592484.4225, 4488659.802399999462068 ], [ 13592460.600100003182888, 4488569.053699996322393 ], [ 13592570.472499992698431, 4488497.351599998772144 ], [ 13592804.577399998903275, 4488406.60429999884218 ], [ 13593052.931100003421307, 4488416.127099994570017 ], [ 13593041.4652, 4488406.884400000795722 ], [ 13592833.186499997973442, 4488239.396099995821714 ], [ 13592675.5581, 4488162.934900001622736 ], [ 13592670.7713, 4487947.978399993851781 ], [ 13592656.411099996417761, 4487866.758100003004074 ], [ 13592718.527400001883507, 4487838.051200003363192 ], [ 13592737.674400003626943, 4487780.777399999089539 ], [ 13592809.252800004556775, 4487785.538599997758865 ], [ 13592866.5823, 4487752.070699996314943 ], [ 13592890.516000002622604, 4487771.255199994891882 ], [ 13592919.236400002613664, 4487771.255199994891882 ], [ 13592895.302699998021126, 4487675.753099995665252 ], [ 13592966.9925, 4487709.080700002610683 ], [ 13592986.028099998831749, 4487694.797399998642504 ], [ 13593033.7842, 4487690.036300002597272 ], [ 13593081.651600003242493, 4487618.340199997648597 ], [ 13593091.113699998706579, 4487537.122499997727573 ], [ 13593110.26070000231266, 4487479.850399998947978 ], [ 13593167.590199995785952, 4487479.850399998947978 ], [ 13593181.950399998575449, 4487546.644599995575845 ], [ 13593167.590199995785952, 4487647.046599993482232 ], [ 13593234.493199996650219, 4487604.056999997235835 ], [ 13593224.919799998402596, 4487661.329800002276897 ], [ 13593363.512500002980232, 4487632.763399998657405 ], [ 13593315.645099993795156, 4487776.01630000025034 ], [ 13593449.4512, 4487783.157999998889863 ], [ 13593544.963299995288253, 4487658.949299998581409 ], [ 13593621.439800001680851, 4487611.198599997907877 ], [ 13593885.044299995526671, 4487658.249100001528859 ], [ 13593888.940499998629093, 4487658.949299998581409 ], [ 13593946.270099997520447, 4487506.035899998620152 ], [ 13594032.32, 4487343.602899996563792 ], [ 13594090.428800001740456, 4487241.943599997088313 ], [ 13594046.235, 4487083.015299997292459 ], [ 13593966.196299998089671, 4487072.233400001190603 ], [ 13593938.811700003221631, 4487055.570599997416139 ], [ 13593966.196299998089671, 4486906.306599997915328 ], [ 13594004.490199998021126, 4486905.046400000341237 ], [ 13594021.188100002706051, 4486930.110299997031689 ], [ 13594080.85530000180006, 4486934.870999995619059 ], [ 13594116.7002, 4486936.131200002506375 ], [ 13594153.769599996507168, 4486956.434399996884167 ], [ 13594183.603200003504753, 4486915.828100001439452 ], [ 13594200.3011, 4486915.828100001439452 ], [ 13594208.6501, 4486692.4958999985829 ], [ 13594207.648199995979667, 4486571.240399998612702 ], [ 13594207.4256, 4486549.257799998857081 ], [ 13594305.386699996888638, 4486560.039099998772144 ], [ 13594280.228500001132488, 4486725.960400001145899 ], [ 13594330.433600001037121, 4486734.361599996685982 ], [ 13594324.422399997711182, 4486757.044699997641146 ], [ 13594312.511200001463294, 4486796.530299996957183 ], [ 13594416.483599998056889, 4486883.623199999332428 ], [ 13594447.54169999808073, 4486692.4958999985829 ], [ 13594451.103999998420477, 4486686.615099994465709 ], [ 13594526.355899995192885, 4486712.798599998466671 ], [ 13594498.859999997541308, 4486961.755299995653331 ], [ 13594532.25590000487864, 4486990.459900001063943 ], [ 13594549.0651, 4486897.345200002193451 ], [ 13594558.5273, 4486873.401599999517202 ], [ 13594637.452799998223782, 4486897.345200002193451 ], [ 13594630.217, 4486945.092699993401766 ], [ 13594725.840499997138977, 4486964.135700001381338 ], [ 13594806.992399998009205, 4486964.135700001381338 ], [ 13594821.3526, 4486988.079499997198582 ], [ 13594830.926099997013807, 4486751.583999998867512 ], [ 13595045.884000005200505, 4486763.485600000247359 ], [ 13595127.035899993032217, 4486792.189699997194111 ], [ 13595201.1747, 4486892.584499998949468 ], [ 13595248.930699996650219, 4486878.162299998104572 ], [ 13595189.152199998497963, 4486753.964300001040101 ], [ 13595408.896899996325374, 4486746.963299996219575 ], [ 13595430.492799995467067, 4486844.417300001718104 ], [ 13595478.137599997222424, 4487059.771300002932549 ], [ 13595502.071299996227026, 4487143.365699994377792 ], [ 13595564.18749999627471, 4487188.873899995349348 ], [ 13595669.273100003600121, 4487449.184100000187755 ], [ 13595779.145499998703599, 4487499.314499992877245 ], [ 13596015.6994, 4487563.728200002573431 ], [ 13596144.829999998211861, 4487403.8149000024423 ], [ 13596228.4309, 4487332.260700004175305 ], [ 13596228.4309, 4487119.561599995940924 ], [ 13596324.054399998858571, 4487098.137900002300739 ], [ 13596331.290200002491474, 4487038.347700000740588 ], [ 13596290.6585, 4486983.458800002932549 ], [ 13596419.6778, 4487009.64299999922514 ], [ 13596469.771600002422929, 4486797.090400001034141 ], [ 13596508.065499998629093, 4486804.23139999806881 ], [ 13596481.794100001454353, 4487002.501799995079637 ], [ 13596510.4032, 4487016.784199995920062 ], [ 13596529.550199996680021, 4486928.429999996908009 ], [ 13596531.887900002300739, 4486832.935599995777011 ], [ 13596529.550199996680021, 4486744.582999997772276 ], [ 13596582.093, 4486706.357799997553229 ], [ 13596584.430699994787574, 4486536.656299994327128 ], [ 13596527.101099997758865, 4486496.05150000192225 ], [ 13596503.278800003230572, 4486422.123299998231232 ], [ 13596486.580799996852875, 4486393.420299998484552 ], [ 13596496.042999997735023, 4486333.634199996478856 ], [ 13596512.852200001478195, 4486297.790700002573431 ], [ 13596474.558300003409386, 4486285.889499994926155 ], [ 13596500.829700002446771, 4486192.781099992804229 ], [ 13596536.674599997699261, 4486202.301899997517467 ], [ 13596632.186699997633696, 4486042.26929999794811 ], [ 13596730.147899998351932, 4486097.153300003148615 ], [ 13596811.4111, 4486030.368399994447827 ], [ 13596847.255999997258186, 4486180.740099997259676 ], [ 13596856.718099992722273, 4486226.244000000879169 ], [ 13596878.314099997282028, 4486250.046199997887015 ], [ 13596909.3723, 4486250.046199997887015 ], [ 13596928.407899998128414, 4486245.285799999721348 ], [ 13596935.6437, 4486006.42679999768734 ], [ 13597020.8031, 4486035.688799995929003 ], [ 13597102.845499996095896, 4486063.830799993127584 ], [ 13597148.15259999781847, 4486180.880099991336465 ], [ 13597152.939299998804927, 4486316.972499997355044 ], [ 13597138.579099996015429, 4486508.09289999678731 ], [ 13597193.5709, 4486512.853499999269843 ], [ 13597253.2382, 4486367.237499993294477 ], [ 13597250.9005, 4486524.894899996928871 ], [ 13597320.141199998557568, 4486684.934899996966124 ], [ 13597453.9472, 4486692.075900001451373 ], [ 13597422.8891, 4486821.03389999922365 ], [ 13597425.226800002157688, 4486911.767499998211861 ], [ 13597518.401199996471405, 4487002.501799995079637 ], [ 13597568.606299992650747, 4486978.697999998927116 ], [ 13597585.304200001060963, 4486859.259499991312623 ], [ 13597616.473700001835823, 4486957.274599999189377 ], [ 13597757.404100002720952, 4487000.261499996297061 ], [ 13597764.5286, 4487179.492200000211596 ], [ 13597879.187700003385544, 4486978.83799999859184 ], [ 13597979.709199998527765, 4486869.060999994166195 ], [ 13598020.2295, 4486854.778800001367927 ], [ 13598058.523400001227856, 4486783.088399999774992 ], [ 13598094.368199996650219, 4486749.623700000345707 ], [ 13598206.5783, 4486732.961400000378489 ], [ 13598185.0936, 4486799.890800000168383 ], [ 13598197.00480000115931, 4486883.483099997974932 ], [ 13598259.121100001037121, 4486821.313899998553097 ], [ 13598278.268, 4486840.496699994429946 ], [ 13598230.512000001966953, 4487000.541500001214445 ], [ 13598242.423199998214841, 4487064.952200000174344 ], [ 13598294.965999998152256, 4487124.742500001564622 ], [ 13598337.935299998149276, 4487179.632200003601611 ], [ 13598435.89639999344945, 4487189.153899991884828 ], [ 13598433.5587, 4487124.742500001564622 ], [ 13598395.264799997210503, 4487093.65709999576211 ], [ 13598359.420000001788139, 4487053.050200002267957 ], [ 13598466.954599998891354, 4487048.289399994537234 ], [ 13599589.611599992960691, 4487229.761299998499453 ], [ 13599513.135200001299381, 4486455.866999998688698 ], [ 13599711.395200001075864, 4486451.106499999761581 ], [ 13599725.755400003865361, 4486313.892199999652803 ], [ 13599635.030000001192093, 4486266.007699997164309 ], [ 13599606.309600004926324, 4485936.4222 ], [ 13599606.309600004926324, 4485855.217499999329448 ], [ 13599802.231899995356798, 4485840.936800003051758 ], [ 13599835.627700001001358, 4485783.533899998292327 ], [ 13599768.836000001057982, 4485382.282700002193451 ], [ 13599784.420799998566508, 4485357.222499993629754 ], [ 13599974.220499997958541, 4485052.58500000089407 ], [ 13600064.9459, 4484718.137799996882677 ], [ 13600504.435199994593859, 4484546.228600004687905 ], [ 13600812.233599996194243, 4484612.304099999368191 ], [ 13600802.660099994391203, 4484581.226099996827543 ], [ 13600762.139799993485212, 4484535.869299998506904 ], [ 13600862.438699997961521, 4484511.930999998003244 ], [ 13601065.4855, 4484533.489500001072884 ], [ 13601094.0946, 4484414.078699997626245 ], [ 13601091.756899993866682, 4484332.885799997486174 ], [ 13601108.454800002276897, 4484308.947999994270504 ], [ 13601113.241499997675419, 4484213.337299996986985 ], [ 13601020.067100003361702, 4484344.784699997864664 ], [ 13600879.136600002646446, 4484423.597900001332164 ], [ 13600788.411199998110533, 4484318.467099998146296 ], [ 13600778.837800005450845, 4484297.049099992960691 ], [ 13600790.748999997973442, 4484270.73159999679774 ], [ 13600802.660099994391203, 4484253.933300004340708 ], [ 13600833.7183, 4484222.996399994939566 ], [ 13600867.2254, 4484156.083400002680719 ], [ 13600886.261100001633167, 4484101.069399993866682 ], [ 13601039.214100001379848, 4484058.094400003552437 ], [ 13601055.911999998614192, 4484041.436300001107156 ], [ 13601094.0946, 4484036.676899999380112 ], [ 13601106.117099996656179, 4484024.778299994766712 ], [ 13601137.063900001347065, 4484008.120300003327429 ], [ 13601194.393399994820356, 4483965.005700001493096 ], [ 13601273.318899992853403, 4483905.373399998061359 ], [ 13601366.381999997422099, 4483855.120099995285273 ], [ 13601464.343199998140335, 4483819.284999995492399 ], [ 13601545.6064, 4483793.108699998818338 ], [ 13601557.517600001767278, 4483773.9315 ], [ 13601576.6646, 4483762.03320000320673 ], [ 13601528.908499997109175, 4483683.224899997934699 ], [ 13601547.9441, 4483661.668200000189245 ], [ 13601598.149199998006225, 4483656.909000001847744 ], [ 13601631.545100003480911, 4483671.186800002120435 ], [ 13601731.843899998813868, 4483769.172200002707541 ], [ 13601750.990899998694658, 4483757.273900003172457 ], [ 13601782.04900000244379, 4483747.755299998447299 ], [ 13601801.196000004187226, 4483742.855999995023012 ], [ 13601832.254100004211068, 4483740.476299997419119 ], [ 13601865.65, 4483716.679899997077882 ], [ 13601884.796899996697903, 4483699.882399995811284 ], [ 13601913.406000003218651, 4483692.74349999986589 ], [ 13601961.162100004032254, 4483673.706399994902313 ], [ 13601901.494800001382828, 4483604.417299999855459 ], [ 13601825.018299993127584, 4483537.648199998773634 ], [ 13601782.04900000244379, 4483518.47139999922365 ], [ 13601793.960199993103743, 4483396.692599995061755 ], [ 13601801.084700003266335, 4483379.895599995739758 ], [ 13601813.107199996709824, 4483370.377300002612174 ], [ 13601834.591799994930625, 4483379.895599995739758 ], [ 13601856.076499998569489, 4483396.692599995061755 ], [ 13601891.921400003135204, 4483420.48830000218004 ], [ 13601949.250900002196431, 4483442.04450000077486 ], [ 13601970.735600002110004, 4483444.424099996685982 ], [ 13602032.851800002157688, 4483420.48830000218004 ], [ 13602159.4221, 4483580.621100001037121 ], [ 13602276.530199993401766, 4483525.610200001858175 ], [ 13602207.17819999717176, 4483389.553899999707937 ], [ 13602152.2976, 4483391.933399993926287 ], [ 13602140.275100002065301, 4483379.895599995739758 ], [ 13602128.364, 4483253.359299996867776 ], [ 13602128.364, 4483160.137799995951355 ], [ 13602061.460900001227856, 4483152.999300003051758 ], [ 13602061.460900001227856, 4483121.925599997863173 ], [ 13602094.968099994584918, 4483031.364699994213879 ], [ 13602128.364, 4483005.050299996510148 ], [ 13602133.150700001046062, 4482971.597699997015297 ], [ 13602111.666, 4482973.977099999785423 ], [ 13602028.0651, 4482931.006699997931719 ], [ 13601930.1039, 4482840.16739999782294 ], [ 13601901.494800001382828, 4482833.029099998064339 ], [ 13601915.743699997663498, 4482801.956399998627603 ], [ 13601846.502999998629093, 4482737.571800001896918 ], [ 13601820.231599997729063, 4482704.119999993592501 ], [ 13601839.378600001335144, 4482682.565300000831485 ], [ 13601870.436700001358986, 4482716.017099998891354 ], [ 13601915.743699997663498, 4482739.951300001703203 ], [ 13601951.588600002229214, 4482747.089499997906387 ], [ 13601999.344700001180172, 4482692.082999993115664 ], [ 13602039.976300001144409, 4482646.734299997799098 ], [ 13602066.2477, 4482649.113699996843934 ], [ 13602073.483400002121925, 4482684.94469999987632 ], [ 13602063.91, 4482754.22779999114573 ], [ 13602082.945600003004074, 4482768.504399994388223 ], [ 13602071.034400001168251, 4482801.956399998627603 ], [ 13602039.976300001144409, 4482818.7524000024423 ], [ 13602035.189499996602535, 4482868.860799997113645 ], [ 13602149.848599998280406, 4482899.933700003661215 ], [ 13602288.441399995237589, 4482787.679799996316433 ], [ 13602343.321900002658367, 4482904.692599995061755 ], [ 13602501.0616, 4482896.574499999172986 ], [ 13602505.848300004377961, 4482772.28349999897182 ], [ 13602534.568799998611212, 4482719.796199994161725 ], [ 13602571.6382, 4482680.185900001786649 ], [ 13602677.836999997496605, 4482566.814599993638694 ], [ 13602682.623699996620417, 4482241.963699997402728 ], [ 13602639.654399994760752, 4482189.479099996387959 ], [ 13602591.898299997672439, 4482165.546199998818338 ], [ 13602443.732100004330277, 4482246.862299998290837 ], [ 13602372.1536, 4482232.446499996818602 ], [ 13602345.548299998044968, 4482068.9753 ], [ 13602343.433200003579259, 4482055.679399996064603 ], [ 13602247.921099998056889, 4482036.645199998281896 ], [ 13602204.951800003647804, 4481984.021599994972348 ], [ 13602094.968099994584918, 4481974.504600002430379 ], [ 13602056.7855, 4481898.088999999687076 ], [ 13602018.602899998426437, 4481850.224499999545515 ], [ 13601899.1571, 4481802.500200001522899 ], [ 13601884.796899996697903, 4481759.534599997103214 ], [ 13601784.498000003397465, 4481759.534599997103214 ], [ 13601693.772699993103743, 4481769.051399998366833 ], [ 13601626.869599997997284, 4481735.602600001730025 ], [ 13601583.900300001725554, 4481778.568199994042516 ], [ 13601464.454499997198582, 4481735.602600001730025 ], [ 13601215.9894, 4481702.153999998234212 ], [ 13601335.435199998319149, 4481554.085500002838671 ], [ 13601325.861699996516109, 4481472.914599999785423 ], [ 13601306.71480000205338, 4481434.708600000478327 ], [ 13601292.465899996459484, 4481319.951300001703203 ], [ 13601239.923100002110004, 4481229.265900002792478 ], [ 13601378.4045, 4481210.093299996107817 ], [ 13601416.5871, 4481363.055100000463426 ], [ 13601483.490099996328354, 4481253.056700000539422 ], [ 13601478.7034, 4481229.265900002792478 ], [ 13601502.637100003659725, 4481210.093299996107817 ], [ 13601507.4238, 4481176.646300000138581 ], [ 13601445.3076, 4481167.129999998956919 ], [ 13601454.880999997258186, 4481109.7527 ], [ 13601473.91669999808073, 4481081.064099999144673 ], [ 13601454.880999997258186, 4481062.03169999551028 ], [ 13601392.764799997210503, 4481038.101400002837181 ], [ 13601426.1606, 4480975.966699996031821 ], [ 13601368.83110000193119, 4480933.004400000907481 ], [ 13601411.911700004711747, 4480880.526199997402728 ], [ 13601435.7341, 4480832.666400000452995 ], [ 13601483.490099996328354, 4480780.18879999872297 ], [ 13601499.186199998483062, 4480770.672899998724461 ], [ 13601506.422, 4480751.641099996864796 ], [ 13601556.515699997544289, 4480776.690300001762807 ], [ 13601609.058499995619059, 4480809.016500001773238 ], [ 13601647.352399997413158, 4480841.202799995429814 ], [ 13601662.8258, 4480880.666199997067451 ], [ 13601662.8258, 4480893.820699996314943 ], [ 13601675.961499996483326, 4480897.319200003519654 ], [ 13601691.546300003305078, 4480883.045199992135167 ], [ 13601746.42679999768734, 4480849.599299995228648 ], [ 13601758.449299998581409, 4480848.339799994602799 ], [ 13601769.136, 4480819.651899993419647 ], [ 13601771.585, 4480777.949699996039271 ], [ 13601783.496200002729893, 4480773.191799997352064 ], [ 13601795.40739999897778, 4480738.486699996516109 ], [ 13601803.756300002336502, 4480722.953500003553927 ], [ 13601803.756300002336502, 4480716.936099998652935 ], [ 13601783.496200002729893, 4480707.42019999679178 ], [ 13601727.391099998727441, 4480712.17809999268502 ], [ 13601702.232900001108646, 4480694.266000000759959 ], [ 13601683.197300001978874, 4480688.388499998487532 ], [ 13601652.139200001955032, 4480731.349799993447959 ], [ 13601653.252400003373623, 4480744.5041000014171 ], [ 13601658.039099998772144, 4480754.02000000141561 ], [ 13601639.0035, 4480755.279499997384846 ], [ 13601632.9922, 4480746.883099999278784 ], [ 13601643.790200002491474, 4480719.454999999143183 ], [ 13601635.329899994656444, 4480700.283299993723631 ], [ 13601640.116700001060963, 4480690.767499996349216 ], [ 13601654.476899996399879, 4480677.613199998624623 ], [ 13601640.116700001060963, 4480668.097399997524917 ], [ 13601619.856499997898936, 4480662.0801 ], [ 13601587.573899997398257, 4480656.062700002454221 ], [ 13601575.662699995562434, 4480652.564300001598895 ], [ 13601572.10050000436604, 4480662.0801 ], [ 13601541.0423, 4480659.701099999248981 ], [ 13601537.480099994689226, 4480664.458999997004867 ], [ 13601586.460699997842312, 4480690.767499996349216 ], [ 13601611.507600001990795, 4480699.023900003172457 ], [ 13601622.194199997931719, 4480711.058600000105798 ], [ 13601609.058499995619059, 4480720.574500001035631 ], [ 13601525.457599997520447, 4480675.234300001524389 ], [ 13601520.782199997454882, 4480676.353800000622869 ], [ 13601529.131099998950958, 4480686.009599997662008 ], [ 13601551.729000002145767, 4480697.904400000348687 ], [ 13601587.573899997398257, 4480719.454999999143183 ], [ 13601568.538199994713068, 4480751.641099996864796 ], [ 13601523.1199000030756, 4480732.469300000928342 ], [ 13601508.7597, 4480738.486699996516109 ], [ 13601505.1974, 4480733.728799998760223 ], [ 13601507.646499995142221, 4480711.058600000105798 ], [ 13601490.837199997156858, 4480697.904400000348687 ], [ 13601472.9148, 4480669.216899996623397 ], [ 13601465.790299993008375, 4480648.925899997353554 ], [ 13601508.7597, 4480596.309199992567301 ], [ 13601544.604500001296401, 4480609.463299997150898 ], [ 13601561.302499998360872, 4480591.551299996674061 ], [ 13601630.6545, 4480559.365799997933209 ], [ 13601720.155400002375245, 4480503.251100002788007 ], [ 13601798.9696, 4480539.074900002218783 ], [ 13601825.241, 4480517.524599999189377 ], [ 13601834.814499996602535, 4480494.854999994859099 ], [ 13601861.0859, 4480492.476000004447997 ], [ 13601889.8063, 4480436.361799999140203 ], [ 13601912.515499997884035, 4480436.361799999140203 ], [ 13601923.2021, 4480426.846199995838106 ], [ 13601919.639899998903275, 4480369.472799996845424 ], [ 13601943.573599997907877, 4480364.715099995955825 ], [ 13601943.573599997907877, 4480344.424599995836616 ], [ 13602029.512199996039271, 4480331.270799999125302 ], [ 13602019.9388, 4480312.239799999631941 ], [ 13602003.240799997001886, 4480320.635799997486174 ], [ 13601818.116499997675419, 4480342.045699996873736 ], [ 13601809.767600001767278, 4480284.8127999920398 ], [ 13601787.058399997651577, 4480285.93229999858886 ], [ 13601769.136, 4480258.505299997515976 ], [ 13601771.585, 4480226.32079999987036 ], [ 13601785.83389999717474, 4480208.409400002099574 ], [ 13601762.0115, 4480173.706200003623962 ], [ 13601752.438000002875924, 4480155.794999997131526 ], [ 13601746.42679999768734, 4480160.692599990405142 ], [ 13601753.662500003352761, 4480183.361499999649823 ], [ 13601751.213500002399087, 4480233.457299998030066 ], [ 13601749.98900000192225, 4480263.402999996207654 ], [ 13601730.9534, 4480263.402999996207654 ], [ 13601664.05039999820292, 4480238.215099995955825 ], [ 13601624.643299996852875, 4480197.634599997662008 ], [ 13601658.039099998772144, 4480161.812000000849366 ], [ 13601642.565700002014637, 4480146.279600002802908 ], [ 13601640.116700001060963, 4480116.474199997261167 ], [ 13601629.43, 4480102.201199998147786 ], [ 13601624.643299996852875, 4480083.030699995346367 ], [ 13601613.845299996435642, 4480069.877199995331466 ], [ 13601575.662699995562434, 4480087.788399997167289 ], [ 13601544.604500001296401, 4480086.6689 ], [ 13601523.1199000030756, 4480074.774800002574921 ], [ 13601490.837199997156858, 4480074.774800002574921 ], [ 13601431.169999998062849, 4480091.426599999889731 ], [ 13601385.751599997282028, 4480080.651899999007583 ], [ 13601345.12, 4480064.000200002454221 ], [ 13601346.3445, 4480004.249999999068677 ], [ 13601328.422100001946092, 4479955.414599996991456 ], [ 13601298.588500002399087, 4479926.72919999435544 ], [ 13601305.712899997830391, 4479919.452900000847876 ], [ 13601353.469, 4479931.486799995414913 ], [ 13601409.6853, 4479964.92979999538511 ], [ 13601441.8567, 4479968.428099999204278 ], [ 13601464.565800003707409, 4479986.338999996893108 ], [ 13601496.848499998450279, 4479999.492399997077882 ], [ 13601523.1199000030756, 4480000.751800000667572 ], [ 13601542.266800001263618, 4479995.994199994020164 ], [ 13601549.391299996525049, 4480055.604299997910857 ], [ 13601588.798399997875094, 4480050.846699995920062 ], [ 13601582.787100002169609, 4479957.793399995192885 ], [ 13601758.449299998581409, 4479833.537199991755188 ], [ 13601757.224799998104572, 4479766.512100000865757 ], [ 13601616.294299997389317, 4479606.437399996444583 ], [ 13601519.557699996978045, 4479412.92369999550283 ], [ 13601492.061699997633696, 4479374.445299999788404 ], [ 13601398.8873, 4479295.669899998232722 ], [ 13601251.945600004866719, 4479115.314199996180832 ], [ 13601196.063199996948242, 4479058.367700003087521 ], [ 13601215.0989, 4479044.236099998466671 ], [ 13601241.147600002586842, 4478964.623699999414384 ], [ 13601284.562200002372265, 4478929.924599995836616 ], [ 13601326.974899996072054, 4478911.595700000412762 ], [ 13601377.068699998781085, 4478909.636899999342859 ], [ 13601406.011799998581409, 4478924.747699994593859 ], [ 13601472.469499997794628, 4478990.788000001572073 ], [ 13601529.353799998760223, 4479020.450299999676645 ], [ 13601586.237999998033047, 4479033.74229999165982 ], [ 13601611.2849, 4479028.845299996435642 ], [ 13601667.167300002649426, 4479003.800199998542666 ], [ 13601692.214199997484684, 4478981.833299996331334 ], [ 13601727.947700001299381, 4478963.504299998283386 ], [ 13601760.675700003281236, 4478960.426199998706579 ], [ 13601806.9846, 4478963.364400000311434 ], [ 13601848.395400004461408, 4478966.862299996428192 ], [ 13601883.1271, 4478961.965299999341369 ], [ 13601910.066399998962879, 4478941.817399996332824 ], [ 13601947.6924, 4478893.826499994844198 ], [ 13601981.422200001776218, 4478838.979999992996454 ], [ 13602001.682400004938245, 4478820.7911 ], [ 13602048.881800005212426, 4478825.54819999076426 ], [ 13602107.6585, 4478841.778199997730553 ], [ 13602180.016199998557568, 4478878.016099995002151 ], [ 13602253.264399997889996, 4478914.393999999389052 ], [ 13602306.252499997615814, 4478914.254099999554455 ], [ 13602367.923500001430511, 4478889.209299995563924 ], [ 13602464.3262, 4478847.654600002802908 ], [ 13602634.979000004008412, 4478797.425499995239079 ], [ 13602705.332900004461408, 4478749.295300000347197 ], [ 13602812.310900004580617, 4478657.932499997317791 ], [ 13602910.606, 4478547.262899999506772 ], [ 13603009.0124, 4478495.356299996376038 ], [ 13603092.390699995681643, 4478475.628999999724329 ], [ 13603122.781000003218651, 4478468.353699996136129 ], [ 13603280.854599993675947, 4478431.55769999884069 ], [ 13603795.818599998950958, 4478480.525899997912347 ], [ 13604742.813500002026558, 4478589.376000002026558 ], [ 13605805.024099998176098, 4478679.059199995361269 ], [ 13606499.212399996817112, 4478779.516599996946752 ], [ 13606798.2166, 4478822.749899998307228 ], [ 13607646.9164, 4478874.938000001013279 ], [ 13607966.180699996650219, 4478826.387699997983873 ], [ 13608255.277400001883507, 4478782.454800004139543 ], [ 13609201.159100003540516, 4478580.141900001093745 ], [ 13609435.04140000231564, 4478570.487999998964369 ], [ 13609527.770499996840954, 4478517.042300000786781 ], [ 13609619.6091, 4478288.571800000965595 ], [ 13609676.159400001168251, 4478124.881999999284744 ], [ 13609712.338200002908707, 4478020.093900000676513 ], [ 13609762.543300004675984, 4477844.516699996776879 ], [ 13609822.5445, 4477721.824299995787442 ], [ 13609907.59260000474751, 4477695.803000002168119 ], [ 13610014.793300004675984, 4477672.719700001180172 ], [ 13610152.161500001326203, 4477715.9485 ], [ 13610326.153899997472763, 4477739.171800002455711 ], [ 13610413.2057, 4477735.534399998374283 ], [ 13610444.48650000244379, 4477721.54449999704957 ], [ 13610553.357000002637506, 4477673.139399999752641 ], [ 13610629.722099995240569, 4477630.050699999555945 ], [ 13610650.984199997037649, 4477576.609699998050928 ], [ 13610619.035499997437, 4477530.443699998781085 ], [ 13610594.879099998623133, 4477424.682199999690056 ], [ 13610573.617099996656179, 4477351.796899996697903 ], [ 13610626.827799998223782, 4477195.675899998284876 ], [ 13610737.9247, 4477136.221799993887544 ], [ 13610872.398599993437529, 4477053.686099993065 ], [ 13611019.340400002896786, 4477060.54069999884814 ], [ 13611230.179499996826053, 4477093.554899993352592 ], [ 13611445.91669999808073, 4477058.582199996337295 ], [ 13611672.229199996218085, 4477047.950599996373057 ], [ 13611761.173500001430511, 4477059.001900002360344 ], [ 13611844.440399993211031, 4477116.77690000180155 ], [ 13611912.122699998319149, 4477179.448399992659688 ], [ 13611946.965699998661876, 4477182.525999999605119 ], [ 13611973.125799996778369, 4477155.247100002132356 ], [ 13612037.9137, 4476993.673199997283518 ], [ 13612090.1225, 4476854.623799998313189 ], [ 13612140.439000003039837, 4476796.990099994465709 ], [ 13612179.178099997341633, 4476791.67440000269562 ], [ 13612283.595799995586276, 4476802.725499999709427 ], [ 13612488.757600001990795, 4476855.18329999782145 ], [ 13612608.760100001469254, 4476844.411999999545515 ], [ 13612719.07769999653101, 4476836.158599999733269 ], [ 13612819.710499998182058, 4476850.287299993447959 ], [ 13612924.239500001072884, 4476863.856400000862777 ], [ 13612993.925499994307756, 4476921.630299996584654 ], [ 13613052.924800001084805, 4476973.389200002886355 ], [ 13613455.5674, 4476886.658099997788668 ], [ 13613474.936999998986721, 4476855.603000000119209 ], [ 13613473.601200001314282, 4476841.893999999389052 ], [ 13613471.040799995884299, 4476814.336199998855591 ], [ 13613451.671200001612306, 4476754.184799997135997 ], [ 13613440.9846, 4476622.972099998034537 ], [ 13613483.619900001212955, 4476396.361199991777539 ], [ 13613506.774400001391768, 4476364.88780000153929 ], [ 13613544.511699998751283, 4476336.352099998854101 ], [ 13613654.9406, 4476307.396699997596443 ], [ 13613796.205100001767278, 4476260.396999999880791 ], [ 13613836.8367, 4476257.319599999114871 ], [ 13613918.211199998855591, 4476269.628999996930361 ], [ 13614196.0647, 4476360.691399996168911 ], [ 13614371.281599998474121, 4476445.45979999192059 ], [ 13614400.892499998211861, 4476458.4688 ], [ 13614412.914999997243285, 4476463.784400002099574 ], [ 13614453.5467, 4476439.025200000964105 ], [ 13614478.704899996519089, 4476380.134899998083711 ], [ 13614504.8649, 4476245.289899995550513 ], [ 13614527.128799997270107, 4476125.13389999885112 ], [ 13614574.550899997353554, 4476063.30789999384433 ], [ 13614650.1369, 4475994.208799999207258 ], [ 13614883.462499998509884, 4475808.734299998730421 ], [ 13614947.359899995848536, 4475771.80759999807924 ], [ 13615107.1034, 4475760.058200001716614 ], [ 13615436.275099998340011, 4475765.093699998222291 ], [ 13615498.280100002884865, 4475787.05379999615252 ], [ 13615538.0211, 4475815.727999999187887 ], [ 13615549.598399994894862, 4475852.794699991121888 ], [ 13615547.705899996683002, 4475942.594499995931983 ], [ 13615540.024899993091822, 4476209.340899996459484 ], [ 13615560.39639999717474, 4476757.262300000526011 ], [ 13615588.4489, 4476811.958099998533726 ], [ 13615628.189900001510978, 4476883.160899995826185 ], [ 13615666.9291, 4476937.9973 ], [ 13615691.0854, 4477156.645999998785555 ], [ 13615687.300599997863173, 4477385.091899998486042 ], [ 13615686.298699993640184, 4477476.163799999281764 ], [ 13615693.089199997484684, 4477496.86849999986589 ], [ 13615714.351199995726347, 4477532.122399999760091 ], [ 13615771.569399993866682, 4477568.075999994762242 ], [ 13615840.253600001335144, 4477605.28869999665767 ], [ 13615873.2041, 4477644.879899999126792 ], [ 13615935.2091, 4477804.784899997524917 ], [ 13615934.207199994474649, 4477885.647699994966388 ], [ 13615916.841399993747473, 4478012.539199997670949 ], [ 13615928.4186, 4478112.290599998086691 ], [ 13615950.793799996376038, 4478175.527699995785952 ], [ 13616013.6893, 4478320.190800001844764 ], [ 13616178.33079999499023, 4478555.657499995082617 ], [ 13616399.188699997961521, 4478539.847599998116493 ], [ 13616453.401299998164177, 4478631.629100002348423 ], [ 13616206.494700001552701, 4478795.186899997293949 ], [ 13616231.541599996387959, 4478903.340699997730553 ], [ 13616248.016799997538328, 4478974.137999998405576 ], [ 13616261.709099996834993, 4479033.462499997578561 ], [ 13616485.461299998685718, 4479012.055299998261034 ], [ 13616664.5744, 4478963.364400000311434 ], [ 13616812.7406, 4478944.196000002324581 ], [ 13617069.443400003015995, 4478936.920399999246001 ], [ 13617205.030500002205372, 4478901.381899998523295 ], [ 13617409.413099994882941, 4478850.313 ], [ 13617637.952000001445413, 4478787.631599999032915 ], [ 13617693.166500002145767, 4478774.339799999259412 ], [ 13617873.281399998813868, 4478767.483999993652105 ], [ 13618024.4533, 4478742.439599997363985 ], [ 13618060.186800004914403, 4478718.794299995526671 ], [ 13618120.299400001764297, 4478660.590899995528162 ], [ 13618168.723300002515316, 4478657.652699997648597 ], [ 13618262.677, 4478664.648299997672439 ], [ 13618344.942100001499057, 4478655.693899995647371 ], [ 13618411.845099996775389, 4478662.549599994905293 ], [ 13618432.2166, 4478776.158699996769428 ], [ 13618351.732600001618266, 4478804.56109999679029 ], [ 13618342.047799993306398, 4478764.965599996037781 ], [ 13618242.3055, 4478787.911399993114173 ], [ 13618164.8272, 4478797.425499995239079 ], [ 13618236.516900001093745, 4479013.31449999473989 ], [ 13618313.1047, 4479102.161899997852743 ], [ 13618345.053400002419949, 4479173.380199995823205 ], [ 13618356.630599997937679, 4479229.20789999794215 ], [ 13618356.630599997937679, 4479302.106199997477233 ], [ 13618345.053400002419949, 4479412.643899995833635 ], [ 13618365.4249, 4479464.415100000798702 ], [ 13618387.688800001516938, 4479483.864299996756017 ], [ 13618412.847000002861023, 4479489.461199996061623 ], [ 13618586.1714, 4479402.289599999785423 ], [ 13618665.653499998152256, 4479497.99649999756366 ], [ 13618609.4372, 4479600.420599994249642 ], [ 13618618.23139999806881, 4479655.13119999691844 ], [ 13618683.1307, 4479781.06449999473989 ], [ 13618716.971800001338124, 4479857.744599998928607 ], [ 13618736.341399995610118, 4480071.136600003577769 ], [ 13618754.820500001311302, 4480102.760999999009073 ], [ 13618853.5608000010252, 4480113.95549999922514 ], [ 13618854.5627, 4480336.868100001476705 ], [ 13618866.2513, 4480513.186599999666214 ], [ 13618899.090499997138977, 4480608.623699996620417 ], [ 13618933.043, 4480646.966700000688434 ], [ 13619188.7438, 4480882.765299994498491 ], [ 13619278.801299996674061, 4480965.051199999637902 ], [ 13619455.131399996578693, 4481209.113700000569224 ], [ 13619562.554699998348951, 4481188.68159999512136 ], [ 13619675.877899995073676, 4481087.361599994823337 ], [ 13619670.0893, 4481004.095200001262128 ], [ 13619632.240699995309114, 4480912.292999993078411 ], [ 13619762.0392, 4480859.67499999795109 ], [ 13619833.729, 4480876.327999998815358 ], [ 13619871.4663, 4481084.1428999947384 ], [ 13619882.152900001034141, 4481275.588100001215935 ], [ 13619983.898999998345971, 4481441.146199997514486 ], [ 13620067.1659, 4481615.103999999351799 ], [ 13620104.903200002387166, 4481627.419699990190566 ], [ 13620257.410899994894862, 4481543.869099993258715 ], [ 13620267.7637, 4481538.131199998781085 ], [ 13620612.297499995678663, 4481349.480200001038611 ], [ 13620784.6201, 4481114.650700001977384 ], [ 13620867.887000001966953, 4481021.867999998852611 ], [ 13620983.1027, 4480940.001500002108514 ], [ 13621035.311499997973442, 4480844.141599992290139 ], [ 13621045.9982, 4480789.424799999222159 ], [ 13621021.7306, 4480683.070899999700487 ], [ 13621019.838100001215935, 4480642.348799998871982 ], [ 13621030.413500005379319, 4480598.688099998049438 ], [ 13621076.944999998435378, 4480562.864200003445148 ], [ 13621233.7942, 4480527.879999997094274 ], [ 13621399.326300002634525, 4480525.221199995838106 ], [ 13621573.541299998760223, 4480569.301299993880093 ], [ 13621753.5449, 4480675.933999999426305 ], [ 13621880.337800005450845, 4480739.326399996876717 ], [ 13622002.344, 4480758.358199995011091 ], [ 13622021.713600004091859, 4480805.238099996931851 ], [ 13622082.7166, 4481073.227200001478195 ], [ 13622124.350100005045533, 4481239.761799993924797 ], [ 13622115.6672, 4481467.036799997091293 ], [ 13622128.246299996972084, 4482134.475399997085333 ], [ 13622135.036799997091293, 4482298.507500001229346 ], [ 13622152.513999998569489, 4482421.253300004638731 ], [ 13622143.831, 4482465.061499997973442 ], [ 13622095.4071, 4482541.621199997141957 ], [ 13622037.298299998044968, 4482590.748499996028841 ], [ 13621976.406499993056059, 4482612.442900002002716 ], [ 13621910.505400002002716, 4482609.923600003123283 ], [ 13621725.715, 4482568.35419999808073 ], [ 13621697.662499997764826, 4482584.590099998749793 ], [ 13621694.6569, 4482622.940300000831485 ], [ 13621725.715, 4482828.410199998877943 ], [ 13621773.13710000552237, 4483118.426299992017448 ], [ 13621995.776100002229214, 4483323.625999998301268 ], [ 13622021.9362, 4483392.353399997577071 ], [ 13622021.9362, 4483485.296999998390675 ], [ 13621999.67230000346899, 4483518.191399994306266 ], [ 13621919.2996, 4483528.969599996693432 ], [ 13621712.245399996638298, 4483563.82379999384284 ], [ 13621659.9252, 4483580.201199998147786 ], [ 13621625.08219999819994, 4483640.251599996350706 ], [ 13621666.827, 4484304.748400002717972 ], [ 13621682.9683, 4484501.57179999910295 ], [ 13621557.956600001081824, 4484559.8076 ], [ 13621412.462, 4484682.299799999222159 ], [ 13621252.050599997863173, 4484771.755000003613532 ], [ 13621006.368500001728535, 4484999.246299992315471 ], [ 13620988.8913, 4485013.665899996645749 ] ] ], [ [ [ 13589742.509915038943291, 4492774.123067485168576 ], [ 13589685.85050000436604, 4492866.332099995575845 ], [ 13589707.975334698334336, 4492890.185210891067982 ], [ 13589691.485678806900978, 4492868.199003037065268 ], [ 13589742.509915038943291, 4492774.123067485168576 ] ] ], [ [ [ 13590122.986329125240445, 4493072.030181927606463 ], [ 13590139.7001, 4493176.940499998629093 ], [ 13590111.091, 4493260.443499998189509 ], [ 13590118.287741692736745, 4493473.247719635255635 ], [ 13590126.221277177333832, 4493231.274887389503419 ], [ 13590159.662477053701878, 4493178.724430442787707 ], [ 13590122.986329125240445, 4493072.030181927606463 ] ] ], [ [ [ 13590607.547205140814185, 4493806.495782509446144 ], [ 13590674.8129, 4493829.290099996142089 ], [ 13590739.986721133813262, 4493949.855634882114828 ], [ 13590689.944360781461, 4493823.661856602877378 ], [ 13590607.547205140814185, 4493806.495782509446144 ] ] ], [ [ [ 13591101.616728046908975, 4494129.0392846763134 ], [ 13591118.669763190671802, 4494167.699532981030643 ], [ 13591105.570702083408833, 4494129.409969742409885 ], [ 13591101.616728046908975, 4494129.0392846763134 ] ] ], [ [ [ 13591310.224499996751547, 4494443.993376852944493 ], [ 13591310.224499996751547, 4494452.933677853085101 ], [ 13591310.99521560035646, 4494444.712711416184902 ], [ 13591310.224499996751547, 4494443.993376852944493 ] ] ], [ [ [ 13591846.361161278560758, 4495224.075499990954995 ], [ 13591917.027099996805191, 4495224.075499990954995 ], [ 13591941.188321290537715, 4495210.327898621559143 ], [ 13591922.491441879421473, 4495218.637622804380953 ], [ 13591846.361161278560758, 4495224.075499990954995 ] ] ], [ [ [ 13592131.707279277965426, 4495085.294878358952701 ], [ 13592183.414599997922778, 4495076.096699996851385 ], [ 13592189.385549254715443, 4495072.756124015897512 ], [ 13592131.707279277965426, 4495085.294878358952701 ] ] ], [ [ [ 13592209.334587706252933, 4495061.595205402933061 ], [ 13592245.530899997800589, 4495041.344400002621114 ], [ 13592268.240099996328354, 4495021.165799996815622 ], [ 13592310.075636263936758, 4495020.477378320880234 ], [ 13592309.453897573053837, 4495017.990423556417227 ], [ 13592256.903440628200769, 4495017.990423556417227 ], [ 13592209.334587706252933, 4495061.595205402933061 ] ] ], [ [ [ 13592332.91434115730226, 4495111.832197889685631 ], [ 13592342.523073716089129, 4495176.585966794751585 ], [ 13592347.672411717474461, 4495170.864480126649141 ], [ 13592332.91434115730226, 4495111.832197889685631 ] ] ], [ [ [ 13592318.097298882901669, 4495203.725716606713831 ], [ 13592313.43579999729991, 4495207.820200003683567 ], [ 13592313.980133131146431, 4495208.300345221534371 ], [ 13592318.097298882901669, 4495203.725716606713831 ] ] ], [ [ [ 13592415.191557304933667, 4495297.576889946125448 ], [ 13592438.113058011978865, 4495317.795480879023671 ], [ 13592438.441382804885507, 4495314.1839081607759 ], [ 13592415.191557304933667, 4495297.576889946125448 ] ] ], [ [ [ 13592437.34795686788857, 4495326.21159347333014 ], [ 13592419.679974567145109, 4495422.670740988105536 ], [ 13592433.664068536832929, 4495366.734365108422935 ], [ 13592437.34795686788857, 4495326.21159347333014 ] ] ], [ [ [ 13592250.251239024102688, 4495732.820184234529734 ], [ 13592147.386578386649489, 4495832.19727689307183 ], [ 13592218.684926485642791, 4495768.028763605281711 ], [ 13592250.251239024102688, 4495732.820184234529734 ] ] ], [ [ [ 13592104.143915953114629, 4495905.306178396567702 ], [ 13592066.195200003683567, 4495972.829700002446771 ], [ 13592075.688077440485358, 4495982.136942377313972 ], [ 13592104.143915953114629, 4495905.306178396567702 ] ] ], [ [ [ 13592079.655552089214325, 4495986.02683228906244 ], [ 13592187.978699997067451, 4496092.231700003147125 ], [ 13592484.641859471797943, 4496084.762083161622286 ], [ 13592486.214525483548641, 4496078.554191012866795 ], [ 13592204.352983681485057, 4496073.77687674574554 ], [ 13592079.655552089214325, 4495986.02683228906244 ] ] ], [ [ [ 13597265.920171078294516, 4492377.172523990273476 ], [ 13597440.289421215653419, 4492271.034719558432698 ], [ 13597488.062563894316554, 4492108.606034452095628 ], [ 13597532.088628932833672, 4492116.991951602511108 ], [ 13597471.3131, 4492081.375799998641014 ], [ 13597449.8284, 4492082.636600001715124 ], [ 13597380.476400002837181, 4492038.508199996314943 ], [ 13597337.6183, 4492042.150499999523163 ], [ 13597323.258100003004074, 4492069.608199997805059 ], [ 13597363.889700004830956, 4492119.760599999688566 ], [ 13597365.002899998798966, 4492142.455399996601045 ], [ 13597265.920171078294516, 4492377.172523990273476 ] ] ], [ [ [ 13596669.705058390274644, 4491930.229018853977323 ], [ 13596752.356166649609804, 4491917.513463737443089 ], [ 13596886.120966149494052, 4491917.513463737443089 ], [ 13596867.011709079146385, 4492108.606034452095628 ], [ 13596981.667251504957676, 4492242.37083395011723 ], [ 13597115.432051004841924, 4492395.244890520349145 ], [ 13597220.532964894548059, 4492404.799519058316946 ], [ 13597230.641421891748905, 4492398.646545233204961 ], [ 13597115.313299994915724, 4492327.797799993306398 ], [ 13597158.282599996775389, 4492072.269899999722838 ], [ 13597148.7092, 4492071.009099997580051 ], [ 13596944.549199998378754, 4492188.12529999576509 ], [ 13596882.433, 4492105.611399999819696 ], [ 13596987.5186, 4491924.055299998261034 ], [ 13596974.3829, 4491881.188399999402463 ], [ 13596923.0646, 4491828.51549999602139 ], [ 13596825.548699997365475, 4491864.097699999809265 ], [ 13596695.416199997067451, 4491876.005099995061755 ], [ 13596669.705058390274644, 4491930.229018853977323 ] ] ], [ [ [ 13596235.021342951804399, 4492013.041142312809825 ], [ 13596255.515482796356082, 4492032.169006166979671 ], [ 13596351.061768153682351, 4491936.622720808722079 ], [ 13596503.935824723914266, 4491946.177349343895912 ], [ 13596628.145995685830712, 4491936.622720808722079 ], [ 13596629.195153828710318, 4491936.461311863735318 ], [ 13596535.338799998164177, 4491915.369800000451505 ], [ 13596470.884800001978874, 4491909.346099997870624 ], [ 13596387.2839, 4491850.929399993270636 ], [ 13596273.849299997091293, 4491985.834499999880791 ], [ 13596235.021342951804399, 4492013.041142312809825 ] ] ], [ [ [ 13595975.946882825344801, 4491875.696011344902217 ], [ 13596010.857659729197621, 4491881.514474162831903 ], [ 13596001.89580000191927, 4491876.985699996352196 ], [ 13595975.946882825344801, 4491875.696011344902217 ] ] ], [ [ [ 13595481.214326540008187, 4491192.960735728032887 ], [ 13595443.372057266533375, 4491353.790380137041211 ], [ 13595491.145199945196509, 4491430.227408420294523 ], [ 13595519.809085551649332, 4491535.328322312794626 ], [ 13595529.363714085891843, 4491726.420893027447164 ], [ 13595558.707886653020978, 4491741.092979310080409 ], [ 13595543.370800005272031, 4491524.951099999248981 ], [ 13595548.1575, 4491443.843299995176494 ], [ 13595457.320799997076392, 4491338.642200001515448 ], [ 13595509.8636, 4491195.340800002217293 ], [ 13595481.214326540008187, 4491192.960735728032887 ] ] ], [ [ [ 13595391.032141722738743, 4491251.323755012825131 ], [ 13595405.153543123975396, 4491267.798723315820098 ], [ 13595480.085323646664619, 4491192.866942793130875 ], [ 13595452.534100001677871, 4491190.578099999576807 ], [ 13595395.3158999979496, 4491219.294299995526671 ], [ 13595391.032141722738743, 4491251.323755012825131 ] ] ], [ [ [ 13595234.814008688554168, 4491059.651619536802173 ], [ 13595283.365096170455217, 4491120.340478890575469 ], [ 13595242.36289999820292, 4491052.041299997828901 ], [ 13595234.814008688554168, 4491059.651619536802173 ] ] ], [ [ [ 13595178.254199037328362, 4491002.680865088477731 ], [ 13595191.912569135427475, 4491016.339235186576843 ], [ 13595194.0502, 4491010.298499999567866 ], [ 13595178.254199037328362, 4491002.680865088477731 ] ] ], [ [ [ 13595064.57388816960156, 4490971.291617316193879 ], [ 13595070.741544375196099, 4490981.15986724384129 ], [ 13595150.07968395203352, 4490989.093681204132736 ], [ 13595106.3305, 4490967.995600000955164 ], [ 13595064.57388816960156, 4490971.291617316193879 ] ] ], [ [ [ 13595006.412544144317508, 4490897.364680047146976 ], [ 13595022.968401696532965, 4490904.722838959656656 ], [ 13595033.984454669058323, 4490922.348523716442287 ], [ 13595028.072899997234344, 4490897.537699996493757 ], [ 13595006.412544144317508, 4490897.364680047146976 ] ] ], [ [ [ 13594833.434115245938301, 4491000.521011061966419 ], [ 13594860.539716592058539, 4490981.15986724384129 ], [ 13594936.976744875311852, 4490866.504324816167355 ], [ 13594989.600146248936653, 4490889.892503204755485 ], [ 13594975.641400001943111, 4490859.717599998228252 ], [ 13594923.098600002005696, 4490765.307999996468425 ], [ 13594908.7384, 4490849.492199996486306 ], [ 13594894.823399994522333, 4490855.795599995180964 ], [ 13594890.0367, 4490913.786399994976819 ], [ 13594872.670899998396635, 4490959.871200002729893 ], [ 13594872.670899998396635, 4490962.812799993902445 ], [ 13594835.0449, 4490973.598599998280406 ], [ 13594833.434115245938301, 4491000.521011061966419 ] ] ], [ [ [ 13594635.142726134508848, 4490877.469086887314916 ], [ 13594679.001774415373802, 4490866.504324816167355 ], [ 13594745.884174164384604, 4490847.395067745819688 ], [ 13594803.211945377290249, 4490942.941353100351989 ], [ 13594793.657316841185093, 4491028.933009923435748 ], [ 13594815.268165558576584, 4491013.496689410880208 ], [ 13594811.445099998265505, 4490948.104799997061491 ], [ 13594775.043700003996491, 4490822.177799997851253 ], [ 13594754.672200001776218, 4490812.512699997983873 ], [ 13594659.160099996253848, 4490811.392099999822676 ], [ 13594635.142726134508848, 4490877.469086887314916 ] ] ], [ [ [ 13594671.591181376948953, 4490610.626624247990549 ], [ 13594573.900860521942377, 4490732.739525318145752 ], [ 13594564.346231985837221, 4490847.395067745819688 ], [ 13594599.08417085185647, 4490882.133006611838937 ], [ 13594622.0907, 4490817.415299992077053 ], [ 13594596.3759, 4490804.948799995705485 ], [ 13594671.591181376948953, 4490610.626624247990549 ] ] ], [ [ [ 13594804.922259485349059, 4490368.454855857416987 ], [ 13594793.657316841185093, 4490407.882155107334256 ], [ 13594793.657316841185093, 4490512.983068997040391 ], [ 13594688.556402949616313, 4490589.420097281225026 ], [ 13594686.783177444711328, 4490591.636629162356257 ], [ 13594703.242599997669458, 4490590.638499991968274 ], [ 13594712.259499996900558, 4490582.234299999661744 ], [ 13594775.600299997255206, 4490579.292799997143447 ], [ 13594803.541499998420477, 4490564.305299990810454 ], [ 13594817.345099998638034, 4490561.924099996685982 ], [ 13594824.469499994069338, 4490555.340799994766712 ], [ 13594831.037399997934699, 4490546.516400001011789 ], [ 13594835.824099998921156, 4490486.14639999717474 ], [ 13594830.4808, 4490472.979900003410876 ], [ 13594829.812899997457862, 4490440.203799996525049 ], [ 13594843.616499997675419, 4490425.776699994690716 ], [ 13594847.735299995169044, 4490410.92949999589473 ], [ 13594817.901699995622039, 4490388.238399994559586 ], [ 13594804.922259485349059, 4490368.454855857416987 ] ] ], [ [ [ 13594809.548443907871842, 4490299.164065273478627 ], [ 13594812.76657391525805, 4490340.99975535646081 ], [ 13594807.286233989521861, 4490360.180945096537471 ], [ 13594829.812899997457862, 4490307.559600003063679 ], [ 13594809.548443907871842, 4490299.164065273478627 ] ] ], [ [ [ 13594780.288584524765611, 4490176.67370290029794 ], [ 13594803.211945377290249, 4490216.789584392681718 ], [ 13594808.02799397520721, 4490279.398216156288981 ], [ 13594810.777199994772673, 4490271.14229999948293 ], [ 13594814.895999997854233, 4490272.963200003840029 ], [ 13594834.042999997735023, 4490193.545799999497831 ], [ 13594802.428299998864532, 4490180.379699996672571 ], [ 13594780.288584524765611, 4490176.67370290029794 ] ] ], [ [ [ 13594569.917094949632883, 4490134.781693144701421 ], [ 13594621.674003200605512, 4490083.024784894660115 ], [ 13594717.220288556069136, 4490063.915527822449803 ], [ 13594757.597654484212399, 4490136.594786492176354 ], [ 13594764.691, 4490089.898 ], [ 13594776.0455, 4490061.185000001452863 ], [ 13594736.638400003314018, 4490047.458699995651841 ], [ 13594705.580300003290176, 4490048.159000001847744 ], [ 13594683.427699998021126, 4490048.159000001847744 ], [ 13594651.813000001013279, 4490056.422799992375076 ], [ 13594607.619199998676777, 4490080.933899997733533 ], [ 13594586.134499998763204, 4490086.956699996255338 ], [ 13594574.7799, 4490099.982600003480911 ], [ 13594569.917094949632883, 4490134.781693144701421 ] ] ], [ [ [ 13594399.948270812630653, 4490291.515930381603539 ], [ 13594459.245318096131086, 4490264.562727071344852 ], [ 13594497.46383223682642, 4490169.016441714949906 ], [ 13594554.572604488581419, 4490149.98018429800868 ], [ 13594543.165200002491474, 4490136.539399996399879 ], [ 13594531.142700001597404, 4490129.256099998019636 ], [ 13594515.001299995929003, 4490126.875 ], [ 13594460.120800003409386, 4490129.256099998019636 ], [ 13594460.120800003409386, 4490134.01829999499023 ], [ 13594453.553, 4490187.242899995297194 ], [ 13594461.9019, 4490194.946500001475215 ], [ 13594461.345299992710352, 4490203.350399998947978 ], [ 13594433.404200002551079, 4490203.350399998947978 ], [ 13594423.830700004473329, 4490199.848800003528595 ], [ 13594407.800700001418591, 4490227.861900001764297 ], [ 13594409.581799998879433, 4490258.396300000138581 ], [ 13594405.90820000320673, 4490283.468199998140335 ], [ 13594399.948270812630653, 4490291.515930381603539 ] ] ], [ [ [ 13594150.390515610575676, 4490318.666528690606356 ], [ 13594163.051833489909768, 4490312.33586975093931 ], [ 13594201.270347630605102, 4490283.671984144486487 ], [ 13594296.816632987931371, 4490255.008098538033664 ], [ 13594354.144404200837016, 4490312.33586975093931 ], [ 13594374.57898205332458, 4490303.047425271943212 ], [ 13594355.1466, 4490300.696399996988475 ], [ 13594349.8032, 4490299.575799996964633 ], [ 13594358.820100001990795, 4490184.301499994471669 ], [ 13594297.81699999794364, 4490184.301499994471669 ], [ 13594285.3492, 4490174.777099994942546 ], [ 13594254.847699996083975, 4490190.884599997662008 ], [ 13594254.847699996083975, 4490200.409000001847744 ], [ 13594200.5238, 4490211.754400000907481 ], [ 13594200.5238, 4490229.122500002384186 ], [ 13594216.6651, 4490251.81319999601692 ], [ 13594179.5957, 4490265.539700001478195 ], [ 13594140.18860000371933, 4490296.494400002993643 ], [ 13594150.390515610575676, 4490318.666528690606356 ] ] ], [ [ [ 13593610.209551544860005, 4490676.765068893320858 ], [ 13593637.547264028340578, 4490684.966382638551295 ], [ 13593752.202806456014514, 4490665.857125569134951 ], [ 13593809.530577670782804, 4490589.420097281225026 ], [ 13593933.740748632699251, 4490503.428440463729203 ], [ 13594029.28703399002552, 4490407.882155107334256 ], [ 13594086.614805204793811, 4490350.554383894428611 ], [ 13594096.90381265617907, 4490345.409880168735981 ], [ 13594032.987899992614985, 4490374.791900001466274 ], [ 13594037.218099996447563, 4490387.95830000191927 ], [ 13593987.5696, 4490413.59080000128597 ], [ 13593960.073700001463294, 4490442.865099994465709 ], [ 13593926.009900003671646, 4490458.412699998356402 ], [ 13593910.536500001326203, 4490475.080899992957711 ], [ 13593869.9049, 4490511.638999992981553 ], [ 13593783.409599998965859, 4490579.71299999859184 ], [ 13593741.664800003170967, 4490586.856599997729063 ], [ 13593743.446000002324581, 4490602.404499999247491 ], [ 13593722.629199996590614, 4490610.808699999004602 ], [ 13593740.551600003615022, 4490655.491400003433228 ], [ 13593624.6681, 4490673.420599995180964 ], [ 13593610.209551544860005, 4490676.765068893320858 ] ] ], [ [ [ 13593253.158777266740799, 4490662.917632100172341 ], [ 13593303.135265281423926, 4490675.411754105240107 ], [ 13593427.345436245203018, 4490627.638611427508295 ], [ 13593478.939986616373062, 4490640.537249019369483 ], [ 13593468.264200001955032, 4490612.629600002430379 ], [ 13593342.2505, 4490633.500200003385544 ], [ 13593269.336199998855591, 4490654.931100003421307 ], [ 13593253.158777266740799, 4490662.917632100172341 ] ] ], [ [ [ 13593602.372944889590144, 4490440.76146537810564 ], [ 13593551.555607207119465, 4490484.319183389656246 ], [ 13593398.68155063688755, 4490551.201583138667047 ], [ 13593274.471379673108459, 4490532.092326071113348 ], [ 13593226.698236996307969, 4490598.974725821055472 ], [ 13593226.698236996307969, 4490656.302497032098472 ], [ 13593245.738295834511518, 4490661.062511742115021 ], [ 13593243.732799995690584, 4490628.737800002098083 ], [ 13593256.868499998003244, 4490626.356600002385676 ], [ 13593327.890299996361136, 4490560.103200001642108 ], [ 13593347.037199994549155, 4490557.721999997273088 ], [ 13593381.6576, 4490562.48439999576658 ], [ 13593410.2667, 4490570.188199992291629 ], [ 13593438.98709999397397, 4490592.879699993878603 ], [ 13593487.967699997127056, 4490583.915199997834861 ], [ 13593520.027699995785952, 4490570.888599998317659 ], [ 13593612.534199997782707, 4490505.756099998019636 ], [ 13593601.179599998518825, 4490456.731899994425476 ], [ 13593602.372944889590144, 4490440.76146537810564 ] ] ], [ [ [ 13593602.370427165180445, 4490236.490927942097187 ], [ 13593608.883378421887755, 4490235.898841463960707 ], [ 13593694.875035241246223, 4490188.12569878436625 ], [ 13593704.429663777351379, 4490245.453470002859831 ], [ 13593666.211149636656046, 4490321.890498286113143 ], [ 13593629.455433119088411, 4490402.753074619919062 ], [ 13593672.201499996706843, 4490391.039800001308322 ], [ 13593695.578599996864796, 4490330.250499997287989 ], [ 13593705.0407, 4490297.895000002346933 ], [ 13593742.66669999808073, 4490212.45469999872148 ], [ 13593745.004399998113513, 4490187.943199996836483 ], [ 13593751.572300001978874, 4490181.360200001858175 ], [ 13593700.253999998793006, 4490129.39609999768436 ], [ 13593636.913199998438358, 4490121.132299995049834 ], [ 13593602.370427165180445, 4490236.490927942097187 ] ] ], [ [ [ 13593466.90126515366137, 4490236.942423991858959 ], [ 13593503.782464530318975, 4490245.453470002859831 ], [ 13593507.486013852059841, 4490245.116783700883389 ], [ 13593492.4205, 4490233.324500001966953 ], [ 13593466.90126515366137, 4490236.942423991858959 ] ] ], [ [ [ 13593329.083232400938869, 4490094.689723047427833 ], [ 13593341.35377942211926, 4490149.907184643670917 ], [ 13593357.1776826325804, 4490177.599015261977911 ], [ 13593358.057899996638298, 4490117.4907 ], [ 13593344.365599997341633, 4490107.966300003230572 ], [ 13593332.45440000295639, 4490095.360500000417233 ], [ 13593329.083232400938869, 4490094.689723047427833 ] ] ], [ [ [ 13593113.435821570456028, 4490204.448701851069927 ], [ 13593140.706580176949501, 4490149.907184643670917 ], [ 13593217.143608460202813, 4490044.806270753033459 ], [ 13593320.093103988096118, 4490063.524360847659409 ], [ 13593320.431900003924966, 4490063.145799998193979 ], [ 13593320.431900003924966, 4490057.823399998247623 ], [ 13593311.5263, 4490054.741999998688698 ], [ 13593324.5506999976933, 4489991.013300000689924 ], [ 13593346.035400005057454, 4489989.192500001750886 ], [ 13593361.063500002026558, 4489966.502400004304945 ], [ 13593402.2516999989748, 4489935.548699994571507 ], [ 13593395.6839, 4489889.188299999572337 ], [ 13593414.719499997794628, 4489874.902099995873868 ], [ 13593408.819600002840161, 4489861.736299999058247 ], [ 13593294.1605, 4489934.568300001323223 ], [ 13593288.1492, 4489997.876399997621775 ], [ 13593212.897299997508526, 4490008.66119999717921 ], [ 13593134.083099994808435, 4490046.898500004783273 ], [ 13593099.4627, 4490074.3509 ], [ 13593092.3382, 4490150.825999994762242 ], [ 13593091.113699998706579, 4490167.493699996732175 ], [ 13593123.39639999344945, 4490180.659799999557436 ], [ 13593113.435821570456028, 4490204.448701851069927 ] ] ], [ [ [ 13593063.55459669418633, 4490199.775248491205275 ], [ 13593065.189580805599689, 4490200.026784508489072 ], [ 13593063.6178, 4490199.708700000308454 ], [ 13593063.55459669418633, 4490199.775248491205275 ] ] ], [ [ [ 13592913.464468121528625, 4490034.107958905398846 ], [ 13592873.176981177181005, 4490130.797927572391927 ], [ 13592920.95012385584414, 4490169.016441714949906 ], [ 13592987.832523606717587, 4490188.12569878436625 ], [ 13593014.10503408126533, 4490192.167623473331332 ], [ 13593082.764799997210503, 4490082.754799996502697 ], [ 13593039.795400001108646, 4490120.992299997247756 ], [ 13592980.01690000295639, 4490128.135499999858439 ], [ 13592944.172, 4490147.184299996122718 ], [ 13592934.598499998450279, 4490168.754299997352064 ], [ 13592908.327100001275539, 4490143.682700000703335 ], [ 13592915.562900001183152, 4490036.113599999807775 ], [ 13592913.464468121528625, 4490034.107958905398846 ] ] ], [ [ [ 13592735.28307693824172, 4490033.364701266400516 ], [ 13592787.185324355959892, 4489997.033128073439002 ], [ 13592890.049045505002141, 4490011.727945378981531 ], [ 13592866.47099999897182, 4489989.192500001750886 ], [ 13592823.612999998033047, 4489948.294299991801381 ], [ 13592735.28307693824172, 4490033.364701266400516 ] ] ], [ [ [ 13592528.283138887956738, 4489929.408956321887672 ], [ 13592529.210353892296553, 4489930.150728325359523 ], [ 13592645.792859205976129, 4489901.005101995542645 ], [ 13592625.352999998256564, 4489898.152199996635318 ], [ 13592528.283138887956738, 4489929.408956321887672 ] ] ], [ [ [ 13592610.875750185921788, 4489665.143174890428782 ], [ 13592586.538125107064843, 4489786.831300287507474 ], [ 13592462.327954143285751, 4489748.612786147743464 ], [ 13592443.218697072938085, 4489825.049814431928098 ], [ 13592471.313822325319052, 4489874.216283620335162 ], [ 13592489.209200002253056, 4489850.3914 ], [ 13592458.151100002229214, 4489778.820600001141429 ], [ 13592513.031599998474121, 4489764.394500002264977 ], [ 13592575.147899998351932, 4489838.486299998126924 ], [ 13592615.7795, 4489795.487700001336634 ], [ 13592634.8151, 4489671.255199998617172 ], [ 13592610.875750185921788, 4489665.143174890428782 ] ] ], [ [ [ 13592148.459393937140703, 4490082.94930165912956 ], [ 13592328.563154647126794, 4490073.470156358554959 ], [ 13592405.000182932242751, 4490025.697013680823147 ], [ 13592376.336297322064638, 4489872.822957108728588 ], [ 13592338.117783181369305, 4489700.839643466286361 ], [ 13592385.890925858169794, 4489567.074843971990049 ], [ 13592393.476457623764873, 4489574.660375736653805 ], [ 13592391.2481, 4489527.97649999614805 ], [ 13592357.740900004282594, 4489520.833599998615682 ], [ 13592305.198099996894598, 4489697.586199998855591 ], [ 13592324.3451, 4489805.011799996718764 ], [ 13592360.19, 4489843.2483000010252 ], [ 13592352.9542, 4489879.10389999486506 ], [ 13592352.9542, 4489934.007999998517334 ], [ 13592374.550200002267957, 4489984.150299998931587 ], [ 13592388.799099998548627, 4490017.625299998559058 ], [ 13592341.042999997735023, 4490063.005800000391901 ], [ 13592145.231999998912215, 4490031.911700000986457 ], [ 13592145.231999998912215, 4490079.67339999973774 ], [ 13592148.459393937140703, 4490082.94930165912956 ] ] ], [ [ [ 13592313.154896149411798, 4490285.135391633957624 ], [ 13592357.227040251716971, 4490274.117355607450008 ], [ 13592161.478994127362967, 4490096.164586404338479 ], [ 13592307.647200003266335, 4490244.529700003564358 ], [ 13592313.154896149411798, 4490285.135391633957624 ] ] ], [ [ [ 13591650.177234508097172, 4490169.016441714949906 ], [ 13591707.512299828231335, 4490169.016441714949906 ], [ 13591850.831727862358093, 4490169.016441714949906 ], [ 13591946.378013217821717, 4490169.016441714949906 ], [ 13592061.033555647358298, 4490235.898841463960707 ], [ 13592063.440275546163321, 4490236.526681438088417 ], [ 13591992.390399998053908, 4490180.2396 ], [ 13591899.215899998322129, 4490127.575300000607967 ], [ 13591696.169200003147125, 4490161.050699996761978 ], [ 13591650.177234508097172, 4490169.016441714949906 ] ] ] ] } } +] +} diff --git a/src/permission.js b/src/permission.js index e24a2902..7f070fe0 100644 --- a/src/permission.js +++ b/src/permission.js @@ -22,11 +22,15 @@ const whiteList = [ '/register/userRegister', '/register/companyRegister', '/biddingHall', + '/authenticRight', + '/authenticRight/login', '/project', '/policy', '/policyDetail', '/attestationDetail', '/noticeDetail', + '/homestead/login', + ] @@ -53,7 +57,13 @@ router.beforeEach((to, from, next) => { }).catch(err => { store.dispatch('LogOut').then(() => { // Message.error(err) - next({ path: '/' }) + if ('/authenticRight/index'.indexOf(to.path) !== -1) { + next({ path: '/authenticRight/login' }) + } else if ('/homestead/index'.indexOf(to.path) !== -1) { + next({ path: '/homestead/login' }) + } else { + next({ path: '/' }) + } }) }) } else { @@ -66,8 +76,16 @@ router.beforeEach((to, from, next) => { // 在免登录白名单,直接进入 next() } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - //next('/index'); + if ('/authenticRight/index'.indexOf(to.path) !== -1) { + next(`/authenticRight/login?redirect=${to.fullPath}`) + } else if ('/homestead/index'.indexOf(to.path) !== -1) { + next(`/homestead/login?redirect=${to.fullPath}`) + } else { + next(`/login?redirect=${to.fullPath}`) + } + + // // 否则全部重定向到登录页 + //next('/index'); NProgress.done() } } diff --git a/src/router/index.js b/src/router/index.js index f19521c4..2d76982b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -76,6 +76,14 @@ export const constantRoutes = [ title: '我的' }, component: (resolve) => require(['@/views/mynsgk'], resolve) + } , + { + path: '/authenticRight', + name: 'authenticRight', + meta: { + title: '确权颁证调查统计表', + }, + component: (resolve) => require(['@/views/authenticRight/index'], resolve) }, { path: '/biddingHall', @@ -354,10 +362,28 @@ export const constantRoutes = [ hidden: true, }, component: (resolve) => require(['@/views/homestead/login'], resolve) + }, +//两清三化宅基地 + { + path: '/authenticRight/index', + name: 'authenticRightIndex', + meta: { + title: '两清三化宅基地', + hidden: true, + }, + component: (resolve) => require(['@/views/authenticRight/index'], resolve) + }, + { + path: '/authenticRight/login', + name: 'authenticRightLogin', + meta: { + title: '登录页', + hidden: true, + }, + component: (resolve) => require(['@/views/authenticRight/login'], resolve) } - ]; diff --git a/src/utils/request.js b/src/utils/request.js index 57031da1..64b40a7b 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -70,7 +70,13 @@ service.interceptors.response.use(res => { }) .then(() => { store.dispatch('LogOut').then(() => { - location.href = '/index'; + if ('/authenticRight/index'.indexOf(to.path) !== -1) { + location.href = '/authenticRight/login'; + } else if ('/homestead/index'.indexOf(to.path) !== -1) { + location.href = '/homestead/login'; + } else { + location.href = '/index'; + } }) }) } else if (code === 500) { diff --git a/src/views/authenticRight/index.vue b/src/views/authenticRight/index.vue new file mode 100644 index 00000000..bd1c84d3 --- /dev/null +++ b/src/views/authenticRight/index.vue @@ -0,0 +1,1270 @@ + + + + + diff --git a/src/views/authenticRight/login.vue b/src/views/authenticRight/login.vue new file mode 100644 index 00000000..a776481f --- /dev/null +++ b/src/views/authenticRight/login.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/homestead/index.vue b/src/views/homestead/index.vue index f6838a8a..6d385edd 100644 --- a/src/views/homestead/index.vue +++ b/src/views/homestead/index.vue @@ -1,89 +1,155 @@ - - - \ No newline at end of file + + + + + diff --git a/src/views/index.vue b/src/views/index.vue index eeb4953c..fdebffe0 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -38,6 +38,10 @@

个人供求

+ + +

确权调查

+

新闻咨询

diff --git a/static/js/ol.js b/static/js/ol.js new file mode 100644 index 00000000..f1f1fb35 --- /dev/null +++ b/static/js/ol.js @@ -0,0 +1,9 @@ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ol=e():t.ol=e()}(window,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=10)}([function(t,e,r){"use strict";(function(t,n){r.d(e,"a",(function(){return J})),r.d(e,"b",(function(){return br})),r.d(e,"c",(function(){return $r})),r.d(e,"d",(function(){return hr})),r.d(e,"e",(function(){return Jr})),r.d(e,"f",(function(){return i}));var i={$version:8,$root:{version:{required:!0,type:"enum",values:[8],doc:"Style specification version number. Must be 8.",example:8},name:{type:"string",doc:"A human-readable name for the style.",example:"Bright"},metadata:{type:"*",doc:"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."},center:{type:"array",value:"number",doc:"Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).",example:[-73.9749,40.7736]},zoom:{type:"number",doc:"Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).",example:12.5},bearing:{type:"number",default:0,period:360,units:"degrees",doc:'Default bearing, in degrees. The bearing is the compass direction that is "up"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).',example:29},pitch:{type:"number",default:0,units:"degrees",doc:"Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).",example:50},light:{type:"light",doc:"The global light source.",example:{anchor:"viewport",color:"white",intensity:.4}},terrain:{type:"terrain",doc:"A global modifier that elevates layers and markers based on a DEM data source."},sources:{required:!0,type:"sources",doc:"Data source specifications.",example:{"mapbox-streets":{type:"vector",url:"mapbox://mapbox.mapbox-streets-v6"}}},sprite:{type:"string",doc:"A base URL for retrieving the sprite image and metadata. The extensions `.png`, `.json` and scale factor `@2x.png` will be automatically appended. This property is required if any layer uses the `background-pattern`, `fill-pattern`, `line-pattern`, `fill-extrusion-pattern`, or `icon-image` properties. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",example:"mapbox://sprites/mapbox/bright-v8"},glyphs:{type:"string",doc:"A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",example:"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"},transition:{type:"transition",doc:"A global transition definition to use as a default across properties, to be used for timing transitions between one value and the next when no property-specific transition is set. Collision-based symbol fading is controlled independently of the style's `transition` property.",example:{duration:300,delay:0}},layers:{required:!0,type:"array",value:"layer",doc:"Layers will be drawn in the order of this array.",example:[{id:"water",source:"mapbox-streets","source-layer":"water",type:"fill",paint:{"fill-color":"#00ffff"}}]}},sources:{"*":{type:"source",doc:"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{doc:"A vector tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},default:"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). Either a property name, or an object of the form `{: }`. If specified as a string for a vector tile source, the same property is used across all its source layers."},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster:{type:{required:!0,type:"enum",values:{raster:{doc:"A raster tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},default:"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{doc:"A RGB-encoded raster DEM source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},encoding:{type:"enum",values:{terrarium:{doc:"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},mapbox:{doc:"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},default:"mapbox",doc:"The encoding used by this source. Mapbox Terrain RGB is used by default"},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{doc:"A GeoJSON data source."}},doc:"The data type of the GeoJSON source."},data:{type:"*",doc:"A URL to a GeoJSON file, or inline GeoJSON."},maxzoom:{type:"number",default:18,doc:"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},buffer:{type:"number",default:128,maximum:512,minimum:0,doc:"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},filter:{type:"*",doc:"An expression for filtering features prior to processing them for rendering."},tolerance:{type:"number",default:.375,doc:"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},cluster:{type:"boolean",default:!1,doc:"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"},clusterRadius:{type:"number",default:50,minimum:0,doc:"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},clusterMaxZoom:{type:"number",doc:"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},clusterMinPoints:{type:"number",doc:"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},clusterProperties:{type:"*",doc:'An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{"property_name": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `"+"` or `"max"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{"sum": ["+", ["get", "scalerank"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `["accumulated"]` value, e.g.:\n`{"sum": [["+", ["accumulated"], ["get", "sum"]], ["get", "scalerank"]]}`'},lineMetrics:{type:"boolean",default:!1,doc:"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},generateId:{type:"boolean",default:!1,doc:"Whether to generate ids for the geojson features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). Either a property name, or an object of the form `{: }`."}},source_video:{type:{required:!0,type:"enum",values:{video:{doc:"A video data source."}},doc:"The data type of the video source."},urls:{required:!0,type:"array",value:"string",doc:"URLs to video content in order of preferred format."},coordinates:{required:!0,doc:"Corners of video specified in longitude, latitude pairs.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}},source_image:{type:{required:!0,type:"enum",values:{image:{doc:"An image data source."}},doc:"The data type of the image source."},url:{required:!0,type:"string",doc:"URL that points to an image."},coordinates:{required:!0,doc:"Corners of image specified in longitude, latitude pairs.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}},layer:{id:{type:"string",doc:"Unique layer name.",required:!0},type:{type:"enum",values:{fill:{doc:"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}}},line:{doc:"A stroked line.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}}},symbol:{doc:"An icon or a text label.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}}},circle:{doc:"A filled circle.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}}},heatmap:{doc:"A heatmap.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"fill-extrusion":{doc:"An extruded (3D) polygon.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}}},raster:{doc:"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}}},hillshade:{doc:"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},background:{doc:"The background color or pattern of the map.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}}},sky:{doc:"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{js:"2.0.0"}}}},doc:"Rendering type of this layer.",required:!0},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."},source:{type:"string",doc:"Name of a source description to be used for this layer. Required for all layer types except `background`."},"source-layer":{type:"string",doc:"Layer to use from a vector tile source. Required for vector tile sources; prohibited for all other source types, including GeoJSON sources."},minzoom:{type:"number",minimum:0,maximum:24,doc:"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},maxzoom:{type:"number",minimum:0,maximum:24,doc:"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},filter:{type:"filter",doc:"A expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `feature-state` expression is not supported in filter expressions."},layout:{type:"layout",doc:"Layout properties for the layer."},paint:{type:"paint",doc:"Default paint properties for this layer."}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background","layout_sky"],layout_background:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},"property-type":"constant"}},layout_sky:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"2.0.0"}},"property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0",macos:"0.15.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0",macos:"0.15.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},"property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.2.0",ios:"5.9.0",macos:"0.16.0"},"data-driven styling":{js:"1.2.0",android:"9.2.0",ios:"5.9.0",macos:"0.16.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},"property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},"property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},"property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{doc:"A cap with a squared-off end which is drawn to the exact endpoint of the line."},round:{doc:"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},square:{doc:"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."}},default:"butt",doc:"The display of line endings.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{doc:"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."},round:{doc:"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},miter:{doc:"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."}},default:"miter",doc:"The display of lines when joining.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,doc:"Used to automatically convert miter joins to bevel joins for sharp angles.",requires:[{"line-join":"miter"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,doc:"Used to automatically convert round joins to miter joins for shallow angles.",requires:[{"line-join":"round"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0",macos:"0.15.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0",macos:"0.15.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},"property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{doc:"The label is placed at the point where the geometry is located."},line:{doc:"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{doc:"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},default:"point",doc:"Label placement relative to its geometry.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"`line-center` value":{js:"0.47.0",android:"6.4.0",ios:"4.3.0",macos:"0.10.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",doc:"Distance between two symbol anchors.",requires:[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,doc:"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{js:"0.53.0",android:"7.4.0",ios:"4.11.0",macos:"0.14.0"},"data-driven styling":{js:"0.53.0",android:"7.4.0",ios:"4.11.0",macos:"0.14.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{doc:"Sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},source:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},default:"auto",doc:"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{js:"0.49.0",android:"6.6.0",ios:"4.5.0",macos:"0.12.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,doc:"If true, the icon will be visible even if it collides with other previously drawn symbols.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,doc:"If true, other symbols can be visible even if they collide with the icon.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,doc:"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},viewport:{doc:"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},default:"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0",macos:"0.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",doc:"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{doc:"The icon is displayed at its intrinsic aspect ratio."},width:{doc:"The icon is scaled in the x-dimension to fit the width of the text."},height:{doc:"The icon is scaled in the y-dimension to fit the height of the text."},both:{doc:"The icon is scaled in both x- and y-dimensions."}},default:"none",doc:"Scales the icon to fit around the associated text.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0",macos:"0.2.1"},"stretchable icons":{js:"1.6.0",android:"9.2.0",ios:"5.8.0",macos:"0.15.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",doc:"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0",macos:"0.2.1"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",doc:"Name of image in sprite to use for drawing an image background.",tokens:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",doc:"Rotates the icon clockwise.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",doc:"Size of the additional area around the icon bounding box used for detecting symbol collisions.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,doc:"If true, the icon may be flipped to prevent it from being rendered upside-down.",requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],doc:"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{doc:"The center of the icon is placed closest to the anchor."},left:{doc:"The left side of the icon is placed closest to the anchor."},right:{doc:"The right side of the icon is placed closest to the anchor."},top:{doc:"The top of the icon is placed closest to the anchor."},bottom:{doc:"The bottom of the icon is placed closest to the anchor."},"top-left":{doc:"The top left corner of the icon is placed closest to the anchor."},"top-right":{doc:"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the icon is placed closest to the anchor."}},default:"center",doc:"Part of the icon placed closest to the anchor.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.40.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{doc:"The icon is aligned to the plane of the map."},viewport:{doc:"The icon is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `icon-rotation-alignment`."}},default:"auto",doc:"Orientation of icon when map is pitched.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{doc:"The text is aligned to the plane of the map."},viewport:{doc:"The text is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `text-rotation-alignment`."}},default:"auto",doc:"Orientation of text when map is pitched.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0",macos:"0.2.1"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0",macos:"0.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},viewport:{doc:"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},default:"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0",macos:"0.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,doc:"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],doc:"Font stack to use for displaying text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",doc:"Font size.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",doc:"The maximum line width for text wrapping.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",doc:"Text leading value for multi-line text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",doc:"Text tracking amount.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{doc:"The text is aligned towards the anchor position."},left:{doc:"The text is aligned to the left."},center:{doc:"The text is centered."},right:{doc:"The text is aligned to the right."}},default:"center",doc:"Text justification options.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"},auto:{js:"0.54.0",android:"7.4.0",ios:"4.10.0",macos:"0.14.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,doc:"Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0",macos:"0.14.0"},"data-driven styling":{js:"0.54.0",android:"7.4.0",ios:"4.10.0",macos:"0.14.0"}},requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},requires:["text-field",{"symbol-placement":["point"]}],doc:"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0",macos:"0.14.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},default:"center",doc:"Part of the text placed closest to the anchor.",requires:["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",doc:"Maximum angle change between adjacent characters.",requires:["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{doc:"If a text's language supports horizontal writing mode, symbols with point placement would be laid out horizontally."},vertical:{doc:"If a text's language supports vertical writing mode, symbols with point placement would be laid out vertically."}},doc:"The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. The order of elements in an array define priority order for the placement of an orientation variant.",requires:["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{js:"1.3.0",android:"8.3.0",ios:"5.3.0",macos:"0.15.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",doc:"Rotates the text clockwise.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",doc:"Size of the additional area around the text bounding box used for detecting symbol collisions.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,doc:"If true, the text may be flipped vertically to prevent it from being rendered upside-down.",requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{doc:"The text is not altered."},uppercase:{doc:"Forces all letters to be displayed in uppercase."},lowercase:{doc:"Forces all letters to be displayed in lowercase."}},default:"none",doc:"Specifies how to capitalize text, similar to the CSS `text-transform` property.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",doc:"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,doc:"If true, the text will be visible even if it collides with other previously drawn symbols.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,doc:"If true, other symbols can be visible even if they collide with the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,doc:"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.",requires:["text-field","icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},"property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},"property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},"property-type":"constant"}},filter:{type:"array",value:"*",doc:"A filter selects specific features from a layer."},filter_operator:{type:"enum",values:{"==":{doc:'`["==", key, value]` equality: `feature[key] = value`'},"!=":{doc:'`["!=", key, value]` inequality: `feature[key] ≠ value`'},">":{doc:'`[">", key, value]` greater than: `feature[key] > value`'},">=":{doc:'`[">=", key, value]` greater than or equal: `feature[key] ≥ value`'},"<":{doc:'`["<", key, value]` less than: `feature[key] < value`'},"<=":{doc:'`["<=", key, value]` less than or equal: `feature[key] ≤ value`'},in:{doc:'`["in", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`'},"!in":{doc:'`["!in", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`'},all:{doc:'`["all", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`'},any:{doc:'`["any", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`'},none:{doc:'`["none", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`'},has:{doc:'`["has", key]` `feature[key]` exists'},"!has":{doc:'`["!has", key]` `feature[key]` does not exist'},within:{doc:'`["within", object]` feature geometry is within object geometry'}},doc:"The filter operator."},geometry_type:{type:"enum",values:{Point:{doc:"Filter to point geometries."},LineString:{doc:"Filter to line geometries."},Polygon:{doc:"Filter to polygon geometries."}},doc:"The geometry type for the filter to select."},function:{expression:{type:"expression",doc:"An expression."},stops:{type:"array",doc:"An array of stops.",value:"function_stop"},base:{type:"number",default:1,minimum:0,doc:"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},property:{type:"string",doc:"The name of a feature property to use as the function input.",default:"$zoom"},type:{type:"enum",values:{identity:{doc:"Return the input value as the output value."},exponential:{doc:"Generate an output by interpolating between stops just less than and just greater than the function input."},interval:{doc:"Return the output value of the stop just less than the function input."},categorical:{doc:"Return the output value of the stop equal to the function input."}},doc:"The interpolation strategy to use in function evaluation.",default:"exponential"},colorSpace:{type:"enum",values:{rgb:{doc:"Use the RGB color space to interpolate color values"},lab:{doc:"Use the LAB color space to interpolate color values."},hcl:{doc:"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},doc:"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.",default:"rgb"},default:{type:"*",required:!1,doc:"A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2,doc:"Zoom level and value pair."},expression:{type:"array",value:"*",minimum:1,doc:"An expression defines a function that can be used for data-driven style properties or feature filters."},expression_name:{doc:"",type:"enum",values:{let:{doc:'Binds expressions to named variables, which can then be referenced in the result expression using ["var", "variable_name"].',group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},var:{doc:'References variable bound using "let".',group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},literal:{doc:"Provides a literal array or object value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},array:{doc:"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},at:{doc:"Retrieves an item from an array.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},in:{doc:"Determines whether an item exists in an array or a substring exists in a string.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.6.0",android:"9.1.0",ios:"5.8.0",macos:"0.15.0"}}},"index-of":{doc:"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0"}}},slice:{doc:"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0"}}},case:{doc:"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},match:{doc:'Selects the output whose label value matches the input value, or the fallback value if no match is found. The input can be any expression (e.g. `["get", "building_type"]`). Each label must be either:\n - a single literal value; or\n - an array of literal values, whose values must be all strings or all numbers (e.g. `[100, 101]` or `["c", "b"]`). The input matches if any of the values in the array matches, similar to the `"in"` operator.\nEach label must be unique. If the input type does not match the type of the labels, the result will be the fallback value.',group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},coalesce:{doc:"Evaluates each expression in turn until the first non-null value is obtained, and returns that value.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},step:{doc:'Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},interpolate:{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\n\nInterpolation types:\n- `["linear"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `["exponential", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `["cubic-bezier", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"interpolate-hcl":{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},"interpolate-lab":{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},ln2:{doc:"Returns mathematical constant ln(2).",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},pi:{doc:"Returns the mathematical constant pi.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},e:{doc:"Returns the mathematical constant e.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},typeof:{doc:"Returns a string describing the type of the given value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},string:{doc:"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},number:{doc:"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},boolean:{doc:"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},object:{doc:"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},collator:{doc:"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",group:"Types","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},format:{doc:'Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `"text-font"`: Overrides the font stack specified by the root layout property.\n- `"text-color"`: Overrides the color specified by the root paint property.\n- `"font-scale"`: Applies a scaling factor on `text-size` as specified by the root layout property.',group:"Types","sdk-support":{"basic functionality":{js:"0.48.0",android:"6.7.0",ios:"4.6.0",macos:"0.12.0"},"text-font":{js:"0.48.0",android:"6.7.0",ios:"4.6.0",macos:"0.12.0"},"font-scale":{js:"0.48.0",android:"6.7.0",ios:"4.6.0",macos:"0.12.0"},"text-color":{js:"1.3.0",android:"7.3.0",ios:"4.10.0",macos:"0.14.0"},image:{js:"1.6.0",android:"8.6.0",ios:"5.7.0",macos:"0.15.0"}}},image:{doc:"Returns an `image` type for use in `icon-image`, `*-pattern` entries and as a section in the `format` expression. If set, the `image` argument will check that the requested image exists in the style and will return either the resolved image name or `null`, depending on whether or not the image is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `image` argument.",group:"Types","sdk-support":{"basic functionality":{js:"1.4.0",android:"8.6.0",ios:"5.7.0",macos:"0.15.0"}}},"number-format":{doc:"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",group:"Types","sdk-support":{"basic functionality":{js:"0.54.0"}}},"to-string":{doc:'Converts the input value to a string. If the input is `null`, the result is `""`. If the input is a boolean, the result is `"true"` or `"false"`. If the input is a number, it is converted to a string as specified by the ["NumberToString" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a color, it is converted to a string of the form `"rgba(r,g,b,a)"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.',group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"to-number":{doc:'Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the ["ToNumber Applied to the String Type" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.',group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"to-boolean":{doc:"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"to-rgba":{doc:"Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"to-color":{doc:"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},rgb:{doc:"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},rgba:{doc:"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},get:{doc:"Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns null if the requested property is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},has:{doc:"Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},length:{doc:"Gets the length of an array or string.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},properties:{doc:'Gets the feature properties object. Note that in some cases, it may be more efficient to use ["get", "property_name"] directly.',group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"feature-state":{doc:"Retrieves a property value from the current feature's state. Returns null if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.46.0"}}},"geometry-type":{doc:"Gets the feature's geometry type: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},id:{doc:"Gets the feature's id, if it has one.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},zoom:{doc:'Gets the current zoom level. Note that in style layout and paint properties, ["zoom"] may only appear as the input to a top-level "step" or "interpolate" expression.',group:"Zoom","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"heatmap-density":{doc:"Gets the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",group:"Heatmap","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"line-progress":{doc:"Gets the progress along a gradient line. Can only be used in the `line-gradient` property.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.6.0",macos:"0.12.0"}}},"sky-radial-progress":{doc:"Gets the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.",group:"sky","sdk-support":{"basic functionality":{js:"2.0.0"}}},accumulated:{doc:"Gets the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.53.0"}}},"+":{doc:"Returns the sum of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"*":{doc:"Returns the product of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"-":{doc:"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"/":{doc:"Returns the result of floating point division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"%":{doc:"Returns the remainder after integer division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"^":{doc:"Returns the result of raising the first input to the power specified by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},sqrt:{doc:"Returns the square root of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},log10:{doc:"Returns the base-ten logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},ln:{doc:"Returns the natural logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},log2:{doc:"Returns the base-two logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},sin:{doc:"Returns the sine of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},cos:{doc:"Returns the cosine of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},tan:{doc:"Returns the tangent of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},asin:{doc:"Returns the arcsine of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},acos:{doc:"Returns the arccosine of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},atan:{doc:"Returns the arctangent of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},min:{doc:"Returns the minimum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},max:{doc:"Returns the maximum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},round:{doc:'Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `["round", -1.5]` evaluates to -2.',group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},abs:{doc:"Returns the absolute value of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},ceil:{doc:"Returns the smallest integer that is greater than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},floor:{doc:"Returns the largest integer that is less than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},distance:{doc:"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",group:"Math","sdk-support":{"basic functionality":{android:"9.2.0",ios:"5.9.0",macos:"0.16.0"}}},"==":{doc:"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},"!=":{doc:"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},">":{doc:"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},"<":{doc:"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},">=":{doc:"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},"<=":{doc:"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}},all:{doc:"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},any:{doc:"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"!":{doc:"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},within:{doc:"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",group:"Decision","sdk-support":{"basic functionality":{js:"1.9.0",android:"9.1.0",ios:"5.8.0",macos:"0.15.0"}}},"is-supported-script":{doc:"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.6.0"}}},upcase:{doc:"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},downcase:{doc:"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},concat:{doc:"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}}},"resolved-locale":{doc:"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0",macos:"0.9.0"}}}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}}}},terrain:{source:{type:"string",doc:"Name of a source of `raster_dem` type to be used for terrain elevation.",required:!0},exaggeration:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1e3,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.","sdk-support":{"basic functionality":{js:"2.0.0"}}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,doc:"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",doc:"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.",transition:!0,requires:[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",doc:"The outline color of the fill. Matches the value of `fill-color` if unspecified.",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{doc:"The fill is translated relative to the map."},viewport:{doc:"The fill is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-translate`.",default:"map",requires:["fill-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,doc:"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",macos:"0.11.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:!0,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",doc:"The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{doc:"The fill extrusion is translated relative to the map."},viewport:{doc:"The fill extrusion is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-extrusion-translate`.",default:"map",requires:["fill-extrusion-translate"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,doc:"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",macos:"0.11.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude this layer.",transition:!0,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.",transition:!0,requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0",macos:"0.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,doc:"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.",transition:!1,"sdk-support":{"basic functionality":{js:"0.50.0",ios:"4.7.0",macos:"0.13.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",doc:"The opacity at which the line will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",doc:"The color with which the line will be drawn.",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.23.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{doc:"The line is translated relative to the map."},viewport:{doc:"The line is translated relative to the viewport."}},doc:"Controls the frame of reference for `line-translate`.",default:"map",requires:["line-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",doc:"Stroke thickness.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,doc:"Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.",transition:!0,units:"pixels","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,doc:"The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.",transition:!0,units:"pixels","sdk-support":{"basic functionality":{js:"0.12.1",android:"3.0.0",ios:"3.1.0",macos:"0.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",doc:"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,doc:"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",macos:"0.11.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",doc:'Defines a gradient with which to color a line feature. Can only be used with GeoJSON sources that specify `"lineMetrics": true`.',transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.4.0",macos:"0.11.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",doc:"Circle radius.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",doc:"The fill color of the circle.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,doc:"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",doc:"The opacity at which the circle will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{doc:"The circle is translated relative to the map."},viewport:{doc:"The circle is translated relative to the viewport."}},doc:"Controls the frame of reference for `circle-translate`.",default:"map",requires:["circle-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{doc:"Circles are scaled according to their apparent distance to the camera."},viewport:{doc:"Circles are not scaled."}},default:"map",doc:"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0",macos:"0.2.1"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{doc:"The circle is aligned to the plane of the map."},viewport:{doc:"The circle is aligned to the plane of the viewport."}},default:"viewport",doc:"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0",macos:"0.6.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"The width of the circle's stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",doc:"The stroke color of the circle.",transition:!0,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",doc:"The opacity of the circle's stroke.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",doc:"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,doc:"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},"data-driven styling":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,doc:"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],doc:'Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `["heatmap-density"]` as input.',transition:!1,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",doc:"The global opacity at which the heatmap layer will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{doc:"The opacity at which the icon will be drawn.",type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,doc:"The color of the icon. This can only be used with sdf icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,doc:"The color of the icon's halo. Icon halos can only be used with SDF icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Distance of halo to the icon outline.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Fade out the halo towards the outside.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{doc:"Icons are translated relative to the map."},viewport:{doc:"Icons are translated relative to the viewport."}},doc:"Controls the frame of reference for `icon-translate`.",default:"map",requires:["icon-image","icon-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",doc:"The opacity at which the text will be drawn.",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",doc:"The color with which the text will be drawn.",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,doc:"The color of the text's halo, which helps it stand out from backgrounds.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"The halo's fadeout distance towards the outside.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0",macos:"0.4.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{doc:"The text is translated relative to the map."},viewport:{doc:"The text is translated relative to the viewport."}},doc:"Controls the frame of reference for `text-translate`.",default:"map",requires:["text-field","text-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",doc:"The opacity at which the image will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",doc:"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the minimum brightness.",default:0,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the maximum brightness.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",doc:"Increase or reduce the saturation of the image.",default:0,minimum:-1,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",doc:"Increase or reduce the contrast of the image.",default:0,minimum:-1,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",doc:"The resampling/interpolation method to use for overscaling, also known as texture magnification filter",values:{linear:{doc:"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},nearest:{doc:"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},default:"linear","sdk-support":{"basic functionality":{js:"0.47.0",android:"6.3.0",ios:"4.2.0",macos:"0.9.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",doc:"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,doc:"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map`.",transition:!1,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{doc:"The hillshade illumination is relative to the north direction."},viewport:{doc:"The hillshade illumination is relative to the top of the viewport."}},default:"viewport",doc:"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",doc:"Intensity of the hillshade",default:.5,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",doc:"The shading color of areas that face away from the light source.",transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",doc:"The shading color of areas that faces towards the light source.",transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",doc:"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.",transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0",macos:"0.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",doc:"The color with which the background will be drawn.",transition:!0,requires:[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,doc:"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"},"data-driven styling":{}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity at which the background will be drawn.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0",macos:"0.1.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_sky:{"sky-type":{type:"enum",values:{gradient:{doc:"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},atmosphere:{doc:"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},default:"atmosphere",doc:"The type of the sky","sdk-support":{"basic functionality":{js:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{type:"array",value:"number",length:2,transition:!1,doc:"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{js:"2.0.0"}},requires:[{"sky-type":"atmosphere"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{type:"number",requires:[{"sky-type":"atmosphere"}],default:10,minimum:0,maximum:100,transition:!1,doc:"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{js:"2.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{type:"array",requires:[{"sky-type":"gradient"}],value:"number",default:[0,0],length:2,transition:!1,doc:"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{js:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{type:"number",requires:[{"sky-type":"gradient"}],default:90,minimum:0,maximum:180,transition:!1,doc:"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{js:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient":{type:"color",default:["interpolate",["linear"],["sky-radial-progress"],.8,"#87ceeb",1,"white"],doc:"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.",transition:!1,requires:[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{js:"2.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{type:"color",default:"white",doc:"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.",transition:!1,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{type:"color",default:"white",doc:"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.",transition:!1,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0"}},"property-type":"data-constant"},"sky-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire sky layer.",transition:!0,"sdk-support":{"basic functionality":{js:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds",doc:"Time allotted for transitions to complete."},delay:{type:"number",default:0,minimum:0,units:"milliseconds",doc:"Length of time before a transition begins."}},"property-type":{"data-driven":{type:"property-type",doc:"Property is interpolable and can be represented using a property expression."},"cross-faded":{type:"property-type",doc:"Property is non-interpolable; rather, its values will be cross-faded to smoothly transition between integer zooms."},"cross-faded-data-driven":{type:"property-type",doc:"Property is non-interpolable; rather, its values will be cross-faded to smoothly transition between integer zooms. It can be represented using a property expression."},"color-ramp":{type:"property-type",doc:"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{type:"property-type",doc:"Property is interpolable but cannot be represented using a property expression."},constant:{type:"property-type",doc:"Property is constant across all zoom levels and property values."}},promoteId:{"*":{type:"string",doc:"A name of a feature property to use as ID for feature state."}}};var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{};function a(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function s(t,e){return t(e={exports:{}},e.exports),e.exports}var l=s((function(t,e){!function(r){var n=e&&!e.nodeType&&e,i=t&&!t.nodeType&&t,a="object"==typeof o&&o;a.global!==a&&a.window!==a&&a.self!==a||(r=a);var s,l,u=2147483647,c=/^xn--/,h=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,f={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,g=String.fromCharCode;function y(t){throw RangeError(f[t])}function m(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function v(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+m((t=t.replace(p,".")).split("."),e).join(".")}function _(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i65535&&(e+=g((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=g(t)})).join("")}function x(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function w(t,e,r){var n=0;for(t=r?d(t/700):t>>1,t+=d(t/e);t>455;n+=36)t=d(t/35);return d(n+36*t/(t+38))}function S(t){var e,r,n,i,o,a,s,l,c,h,p,f=[],g=t.length,m=0,v=128,_=72;for((r=t.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&y("not-basic"),f.push(t.charCodeAt(n));for(i=r>0?r+1:0;i=g&&y("invalid-input"),((l=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||l>d((u-m)/a))&&y("overflow"),m+=l*a,!(l<(c=s<=_?1:s>=_+26?26:s-_));s+=36)a>d(u/(h=36-c))&&y("overflow"),a*=h;_=w(m-o,e=f.length+1,0==o),d(m/e)>u-v&&y("overflow"),v+=d(m/e),m%=e,f.splice(m++,0,v)}return b(f)}function E(t){var e,r,n,i,o,a,s,l,c,h,p,f,m,v,b,S=[];for(f=(t=_(t)).length,e=128,r=0,o=72,a=0;a=e&&pd((u-r)/(m=n+1))&&y("overflow"),r+=(s-e)*m,e=s,a=0;au&&y("overflow"),p==e){for(l=r,c=36;!(l<(h=c<=o?1:c>=o+26?26:c-o));c+=36)b=l-h,v=36-h,S.push(g(x(h+b%v,0))),l=d(b/v);S.push(g(x(l,0))),o=w(r,m,n==i),r=0,++n}++r,++e}return S.join("")}if(s={version:"1.3.2",ucs2:{decode:_,encode:b},decode:S,encode:E,toASCII:function(t){return v(t,(function(t){return h.test(t)?"xn--"+E(t):t}))},toUnicode:function(t){return v(t,(function(t){return c.test(t)?S(t.slice(4).toLowerCase()):t}))}},n&&i)if(t.exports==n)i.exports=s;else for(l in s)s.hasOwnProperty(l)&&(n[l]=s[l]);else r.punycode=s}(o)})),u=function(t){return"string"==typeof t},c=function(t){return"object"==typeof t&&null!==t},h=function(t){return null===t},p=function(t){return null==t};function f(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var d=function(t,e,r,n){e=e||"&",r=r||"=";var i={};if("string"!=typeof t||0===t.length)return i;var o=/\+/g;t=t.split(e);var a=1e3;n&&"number"==typeof n.maxKeys&&(a=n.maxKeys);var s=t.length;a>0&&s>a&&(s=a);for(var l=0;l=0?(u=d.substr(0,g),c=d.substr(g+1)):(u=d,c=""),h=decodeURIComponent(u),p=decodeURIComponent(c),f(i,h)?Array.isArray(i[h])?i[h].push(p):i[h]=[i[h],p]:i[h]=p}return i},g=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}},y=function(t,e,r,n){return e=e||"&",r=r||"=",null===t&&(t=void 0),"object"==typeof t?Object.keys(t).map((function(n){var i=encodeURIComponent(g(n))+r;return Array.isArray(t[n])?t[n].map((function(t){return i+encodeURIComponent(g(t))})).join(e):i+encodeURIComponent(g(t[n]))})).join(e):n?encodeURIComponent(g(n))+r+encodeURIComponent(g(t)):""},m=s((function(t,e){e.decode=e.parse=d,e.encode=e.stringify=y}));m.decode,m.parse,m.encode,m.stringify;function v(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var _=/^([a-z0-9.+-]+:)/i,b=/:[0-9]*$/,x=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,w=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),S=["'"].concat(w),E=["%","/","?",";","#"].concat(S),T=["/","?","#"],C=/^[+a-z0-9A-Z_-]{0,63}$/,O=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,P={javascript:!0,"javascript:":!0},R={javascript:!0,"javascript:":!0},I={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function L(t,e,r){if(t&&c(t)&&t instanceof v)return t;var n=new v;return n.parse(t,e,r),n}v.prototype.parse=function(t,e,r){if(!u(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var n=t.indexOf("?"),i=-1!==n&&n127?F+="x":F+=M[A];if(!F.match(C)){var j=w.slice(0,y),N=w.slice(y+1),D=M.match(O);D&&(j.push(D[1]),N.unshift(D[2])),N.length&&(a="/"+N.join(".")+a),this.hostname=j.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),b||(this.hostname=l.toASCII(this.hostname));var G=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+G,this.href+=this.host,b&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==a[0]&&(a="/"+a))}if(!P[h])for(y=0,L=S.length;y0)&&r.host.split("@"))&&(r.auth=L.shift(),r.host=r.hostname=L.shift());return r.search=t.search,r.query=t.query,h(r.pathname)&&h(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!S.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var T=S.slice(-1)[0],C=(r.host||t.host||S.length>1)&&("."===T||".."===T)||""===T,O=0,P=S.length;P>=0;P--)"."===(T=S[P])?S.splice(P,1):".."===T?(S.splice(P,1),O++):O&&(S.splice(P,1),O--);if(!x&&!w)for(;O--;O)S.unshift("..");!x||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),C&&"/"!==S.join("/").substr(-1)&&S.push("");var L,M=""===S[0]||S[0]&&"/"===S[0].charAt(0);E&&(r.hostname=r.host=M?"":S.length?S.shift():"",(L=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=L.shift(),r.host=r.hostname=L.shift()));return(x=x||r.host&&S.length)&&!M&&S.unshift(""),S.length?r.pathname=S.join("/"):(r.pathname=null,r.path=null),h(r.pathname)&&h(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},v.prototype.parseHost=function(){var t=this.host,e=b.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)};function M(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}class F extends Error{constructor(t,e){super(e),this.message=e,this.key=t}}class A{constructor(t,e=[]){this.parent=t,this.bindings={};for(const[t,r]of e)this.bindings[t]=r}concat(t){return new A(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}const k={kind:"null"},j={kind:"number"},N={kind:"string"},D={kind:"boolean"},G={kind:"color"},z={kind:"object"},U={kind:"value"},B={kind:"collator"},V={kind:"formatted"},Y={kind:"resolvedImage"};function W(t,e){return{kind:"array",itemType:t,N:e}}function q(t){if("array"===t.kind){const e=q(t.itemType);return"number"==typeof t.N?`array<${e}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}const X=[k,j,N,D,G,V,z,W(U),Y];function Z(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Z(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(const t of X)if(!Z(t,e))return null}return`Expected ${q(t)} but found ${q(e)} instead.`}function K(t,e){return e.some(e=>e.kind===t.kind)}function H(t,e){return e.some(e=>"null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t)}var $=s((function(t,e){var r={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function n(t){return(t=Math.round(t))<0?0:t>255?255:t}function i(t){return t<0?0:t>1?1:t}function o(t){return"%"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function a(t){return"%"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,"").toLowerCase();if(i in r)return r[i].slice();if("#"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf("("),u=i.indexOf(")");if(-1!==l&&u+1===i.length){var c=i.substr(0,l),h=i.substr(l+1,u-(l+1)).split(","),p=1;switch(c){case"rgba":if(4!==h.length)return null;p=a(h.pop());case"rgb":return 3!==h.length?null:[o(h[0]),o(h[1]),o(h[2]),p];case"hsla":if(4!==h.length)return null;p=a(h.pop());case"hsl":if(3!==h.length)return null;var f=(parseFloat(h[0])%360+360)%360/360,d=a(h[1]),g=a(h[2]),y=g<=.5?g*(d+1):g+d-g*d,m=2*g-y;return[n(255*s(m,y,f+1/3)),n(255*s(m,y,f)),n(255*s(m,y,f-1/3)),p];default:return null}}return null}}catch(t){}})).parseCSSColor;class J{constructor(t,e,r,n=1){this.r=t,this.g=e,this.b=r,this.a=n}static parse(t){if(!t)return;if(t instanceof J)return t;if("string"!=typeof t)return;const e=$(t);return e?new J(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3]):void 0}toString(){const[t,e,r,n]=this.toArray();return`rgba(${Math.round(t)},${Math.round(e)},${Math.round(r)},${n})`}toArray(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]}}J.black=new J(0,0,0,1),J.white=new J(1,1,1,1),J.transparent=new J(0,0,0,0),J.red=new J(1,0,0,1),J.blue=new J(0,0,1,1);class Q{constructor(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class tt{constructor(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i}}class et{constructor(t){this.sections=t}static fromString(t){return new et([new tt(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(t){return t instanceof et?t:et.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}serialize(){const t=["format"];for(const e of this.sections){if(e.image){t.push(["image",e.image.name]);continue}t.push(e.text);const r={};e.fontStack&&(r["text-font"]=["literal",e.fontStack.split(",")]),e.scale&&(r["font-scale"]=e.scale),e.textColor&&(r["text-color"]=["rgba"].concat(e.textColor.toArray())),t.push(r)}return t}}class rt{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new rt({name:t,available:!1}):null}serialize(){return["image",this.name]}}function nt(t,e,r,n){if(!("number"==typeof t&&t>=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255)){return`Invalid rgba value [${("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}return void 0===n||"number"==typeof n&&n>=0&&n<=1?null:`Invalid rgba value [${[t,e,r,n].join(", ")}]: 'a' must be between 0 and 1.`}function it(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof J)return!0;if(t instanceof Q)return!0;if(t instanceof et)return!0;if(t instanceof rt)return!0;if(Array.isArray(t)){for(const e of t)if(!it(e))return!1;return!0}if("object"==typeof t){for(const e in t)if(!it(t[e]))return!1;return!0}return!1}function ot(t){if(null===t)return k;if("string"==typeof t)return N;if("boolean"==typeof t)return D;if("number"==typeof t)return j;if(t instanceof J)return G;if(t instanceof Q)return B;if(t instanceof et)return V;if(t instanceof rt)return Y;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=ot(e);if(r){if(r===t)continue;r=U;break}r=t}return W(r||U,e)}return z}function at(t){const e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof J||t instanceof et||t instanceof rt?t.toString():JSON.stringify(t)}class st{constructor(t,e){this.type=t,this.value=e}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!it(t[1]))return e.error("invalid value");const r=t[1];let n=ot(r);const i=e.expectedType;return"array"!==n.kind||0!==n.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(n=i),new st(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof J?["rgba"].concat(this.value.toArray()):this.value instanceof et?this.value.serialize():this.value}}class lt{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}}const ut={string:N,number:j,boolean:D,object:z};class ct{constructor(t,e){this.type=t,this.args=e}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");let r,n=1;const i=t[0];if("array"===i){let i,o;if(t.length>2){const r=t[1];if("string"!=typeof r||!(r in ut)||"object"===r)return e.error('The item type argument of "array" must be one of string, number, boolean',1);i=ut[r],n++}else i=U;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=W(i,o)}else r=ut[i];const o=[];for(;nt.outputDefined())}serialize(){const t=this.type,e=[t.kind];if("array"===t.kind){const r=t.itemType;if("string"===r.kind||"number"===r.kind||"boolean"===r.kind){e.push(r.kind);const n=t.N;("number"==typeof n||this.args.length>1)&&e.push(n)}}return e.concat(this.args.map(t=>t.serialize()))}}class ht{constructor(t){this.type=V,this.sections=t}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");const n=[];let i=!1;for(let r=1;r<=t.length-1;++r){const o=t[r];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;let t=null;if(o["font-scale"]&&(t=e.parse(o["font-scale"],1,j),!t))return null;let r=null;if(o["text-font"]&&(r=e.parse(o["text-font"],1,W(N)),!r))return null;let a=null;if(o["text-color"]&&(a=e.parse(o["text-color"],1,G),!a))return null;const s=n[n.length-1];s.scale=t,s.font=r,s.textColor=a}else{const o=e.parse(t[r],1,U);if(!o)return null;const a=o.type.kind;if("string"!==a&&"value"!==a&&"null"!==a&&"resolvedImage"!==a)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:o,scale:null,font:null,textColor:null})}}return new ht(n)}evaluate(t){return new et(this.sections.map(e=>{const r=e.content.evaluate(t);return ot(r)===Y?new tt("",r,null,null,null):new tt(at(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)}))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor)}outputDefined(){return!1}serialize(){const t=["format"];for(const e of this.sections){t.push(e.content.serialize());const r={};e.scale&&(r["font-scale"]=e.scale.serialize()),e.font&&(r["text-font"]=e.font.serialize()),e.textColor&&(r["text-color"]=e.textColor.serialize()),t.push(r)}return t}}class pt{constructor(t){this.type=Y,this.input=t}static parse(t,e){if(2!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,N);return r?new pt(r):e.error("No image name provided.")}evaluate(t){const e=this.input.evaluate(t),r=rt.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const ft={"to-boolean":D,"to-color":G,"to-number":j,"to-string":N};class dt{constructor(t,e){this.type=t,this.args=e}static parse(t,e){if(t.length<2)return e.error("Expected at least one argument.");const r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");const n=ft[r],i=[];for(let r=1;r4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:nt(e[0],e[1],e[2],e[3]),!r))return new J(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new lt(r||`Could not parse color from value '${"string"==typeof e?e:String(JSON.stringify(e))}'`)}if("number"===this.type.kind){let e=null;for(const r of this.args){if(e=r.evaluate(t),null===e)return 0;const n=Number(e);if(!isNaN(n))return n}throw new lt(`Could not convert ${JSON.stringify(e)} to number.`)}return"formatted"===this.type.kind?et.fromString(at(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?rt.fromString(at(this.args[0].evaluate(t))):at(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){if("formatted"===this.type.kind)return new ht([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new pt(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(e=>{t.push(e.serialize())}),t}}const gt=["Unknown","Point","LineString","Polygon"];class yt{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?gt[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=J.parse(t)),e}}class mt{constructor(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(t=>t.serialize()))}static parse(t,e){const r=t[0],n=mt.definitions[r];if(!n)return e.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(n)?n[0]:n.type,o=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,a=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1);let s=null;for(const[n,o]of a){s=new zt(e.registry,e.path,null,e.scope);const a=[];let l=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(q).join(", ")})`:`(${q(e.type)}...)`;var e}).join(" | "),n=[];for(let r=1;r=e[2])&&(!(t[1]<=e[1])&&!(t[3]>=e[3])))}function xt(t,e){const r=(180+t[0])/360;const n=(i=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360);var i;const o=Math.pow(2,e.z);return[Math.round(r*o*8192),Math.round(n*o*8192)]}function wt(t,e,r){const n=t[0]-e[0],i=t[1]-e[1],o=t[0]-r[0],a=t[1]-r[1];return n*a-o*i==0&&n*o<=0&&i*a<=0}function St(t,e){let r=!1;for(let a=0,s=e.length;an[1]!=o[1]>n[1]&&n[0]<(o[0]-i[0])*(n[1]-i[1])/(o[1]-i[1])+i[0]&&(r=!r)}}var n,i,o;return r}function Et(t,e){for(let r=0;r0&&h<0||c<0&&h>0}function Ct(t,e,r,n){const i=[e[0]-t[0],e[1]-t[1]],o=[n[0]-r[0],n[1]-r[1]];return 0!=(a=o)[0]*(s=i)[1]-a[1]*s[0]&&!(!Tt(t,e,r,n)||!Tt(r,n,t,e));var a,s}function Ot(t,e,r){for(const n of r)for(let r=0;rr[2]){const e=.5*n;let i=t[0]-r[0]>e?-n:r[0]-t[0]>e?n:0;0===i&&(i=t[0]-r[2]>e?-n:r[2]-t[0]>e?n:0),t[0]+=i}_t(e,t)}function Ft(t,e,r,n){const i=8192*Math.pow(2,n.z),o=[8192*n.x,8192*n.y],a=[];for(const n of t)for(const t of n){const n=[t.x+o[0],t.y+o[1]];Mt(n,e,r,i),a.push(n)}return a}function At(t,e,r,n){const i=8192*Math.pow(2,n.z),o=[8192*n.x,8192*n.y],a=[];for(const r of t){const t=[];for(const n of r){const r=[n.x+o[0],n.y+o[1]];_t(e,r),t.push(r)}a.push(t)}if(e[2]-e[0]<=i/2){(s=e)[0]=s[1]=1/0,s[2]=s[3]=-1/0;for(const t of a)for(const n of t)Mt(n,e,r,i)}var s;return a}class kt{constructor(t,e){this.type=D,this.geojson=t,this.geometries=e}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(it(t[1])){const e=t[1];if("FeatureCollection"===e.type)for(let t=0;t{e&&!jt(t)&&(e=!1)}),e}function Nt(t){if(t instanceof mt&&"feature-state"===t.name)return!1;let e=!0;return t.eachChild(t=>{e&&!Nt(t)&&(e=!1)}),e}function Dt(t,e){if(t instanceof mt&&e.indexOf(t.name)>=0)return!1;let r=!0;return t.eachChild(t=>{r&&!Dt(t,e)&&(r=!1)}),r}class Gt{constructor(t,e){this.type=e.type,this.name=t,this.boundExpression=e}static parse(t,e){if(2!==t.length||"string"!=typeof t[1])return e.error("'var' expression requires exactly one string literal argument.");const r=t[1];return e.scope.has(r)?new Gt(r,e.scope.get(r)):e.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}class zt{constructor(t,e=[],r,n=new A,i=[]){this.registry=t,this.path=e,this.key=e.map(t=>`[${t}]`).join(""),this.scope=n,this.errors=i,this.expectedType=r}parse(t,e,r,n,i={}){return e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)}_parse(t,e){function r(t,e,r){return"assert"===r?new ct(e,[t]):"coerce"===r?new dt(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const n=t[0];if("string"!=typeof n)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[n];if(i){let n=i.parse(t,this);if(!n)return null;if(this.expectedType){const t=this.expectedType,i=n.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else n=r(n,t,e.typeAnnotation||"coerce");else n=r(n,t,e.typeAnnotation||"assert")}if(!(n instanceof st)&&"resolvedImage"!==n.type.kind&&function t(e){if(e instanceof Gt)return t(e.boundExpression);if(e instanceof mt&&"error"===e.name)return!1;if(e instanceof vt)return!1;if(e instanceof kt)return!1;const r=e instanceof dt||e instanceof ct;let n=!0;if(e.eachChild(e=>{n=r?n&&t(e):n&&e instanceof st}),!n)return!1;return jt(e)&&Dt(e,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script"])}(n)){const t=new yt;try{n=new st(n.type,n.evaluate(t))}catch(t){return this.error(t.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error(`Expected an array, but found ${typeof t} instead.`)}concat(t,e,r){const n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new zt(this.registry,n,e||null,i,this.errors)}error(t,...e){const r=`${this.key}${e.map(t=>`[${t}]`).join("")}`;this.errors.push(new F(r,t))}checkSubtype(t,e){const r=Z(t,e);return r&&this.error(r),r}}function Ut(t,e){const r=t.length-1;let n,i,o=0,a=r,s=0;for(;o<=a;)if(s=Math.floor((o+a)/2),n=t[s],i=t[s+1],n<=e){if(s===r||ee))throw new lt("Input is not a number.");a=s-1}return 0}class Bt{constructor(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[t,e]of r)this.labels.push(t),this.outputs.push(e)}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");const r=e.parse(t[1],1,j);if(!r)return null;const n=[];let i=null;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);for(let r=1;r=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',s);const u=e.parse(a,l,i);if(!u)return null;i=i||u.type,n.push([o,u])}return new Bt(i,r,n)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);return r[Ut(e,n)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){const t=["step",this.input.serialize()];for(let e=0;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t}}var Vt=Yt;function Yt(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}function Wt(t,e,r){return t*(1-r)+e*r}Yt.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},Yt.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},Yt.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},Yt.prototype.solveCurveX=function(t,e){var r,n,i,o,a;for(void 0===e&&(e=1e-6),i=t,a=0;a<8;a++){if(o=this.sampleCurveX(i)-t,Math.abs(o)(n=1))return n;for(;ro?r=i:n=i,i=.5*(n-r)+r}return i},Yt.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var qt=Object.freeze({__proto__:null,number:Wt,color:function(t,e,r){return new J(Wt(t.r,e.r,r),Wt(t.g,e.g,r),Wt(t.b,e.b,r),Wt(t.a,e.a,r))},array:function(t,e,r){return t.map((t,n)=>Wt(t,e[n],r))}});const Xt=6/29,Zt=3*Xt*Xt,Kt=Math.PI/180,Ht=180/Math.PI;function $t(t){return t>.008856451679035631?Math.pow(t,1/3):t/Zt+4/29}function Jt(t){return t>Xt?t*t*t:Zt*(t-4/29)}function Qt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function te(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function ee(t){const e=te(t.r),r=te(t.g),n=te(t.b),i=$t((.4124564*e+.3575761*r+.1804375*n)/.95047),o=$t((.2126729*e+.7151522*r+.072175*n)/1);return{l:116*o-16,a:500*(i-o),b:200*(o-$t((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function re(t){let e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Jt(e),r=.95047*Jt(r),n=1.08883*Jt(n),new J(Qt(3.2404542*r-1.5371385*e-.4985314*n),Qt(-.969266*r+1.8760108*e+.041556*n),Qt(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function ne(t,e,r){const n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}const ie={forward:ee,reverse:re,interpolate:function(t,e,r){return{l:Wt(t.l,e.l,r),a:Wt(t.a,e.a,r),b:Wt(t.b,e.b,r),alpha:Wt(t.alpha,e.alpha,r)}}},oe={forward:function(t){const{l:e,a:r,b:n}=ee(t),i=Math.atan2(n,r)*Ht;return{h:i<0?i+360:i,c:Math.sqrt(r*r+n*n),l:e,alpha:t.a}},reverse:function(t){const e=t.h*Kt,r=t.c;return re({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:ne(t.h,e.h,r),c:Wt(t.c,e.c,r),l:Wt(t.l,e.l,r),alpha:Wt(t.alpha,e.alpha,r)}}};var ae=Object.freeze({__proto__:null,lab:ie,hcl:oe});class se{constructor(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(const[t,e]of i)this.labels.push(t),this.outputs.push(e)}static interpolationFactor(t,e,r,n){let i=0;if("exponential"===t.name)i=le(e,t.base,r,n);else if("linear"===t.name)i=le(e,1,r,n);else if("cubic-bezier"===t.name){const o=t.controlPoints;i=new Vt(o[0],o[1],o[2],o[3]).solve(le(e,1,r,n))}return i}static parse(t,e){let[r,n,i,...o]=t;if(!Array.isArray(n)||0===n.length)return e.error("Expected an interpolation type expression.",1);if("linear"===n[0])n={name:"linear"};else if("exponential"===n[0]){const t=n[1];if("number"!=typeof t)return e.error("Exponential interpolation requires a numeric base.",1,1);n={name:"exponential",base:t}}else{if("cubic-bezier"!==n[0])return e.error("Unknown interpolation type "+String(n[0]),1,0);{const t=n.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:t}}}if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(i=e.parse(i,2,j),!i)return null;const a=[];let s=null;"interpolate-hcl"===r||"interpolate-lab"===r?s=G:e.expectedType&&"value"!==e.expectedType.kind&&(s=e.expectedType);for(let t=0;t=r)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',i);const u=e.parse(n,l,s);if(!u)return null;s=s||u.type,a.push([r,u])}return"number"===s.kind||"color"===s.kind||"array"===s.kind&&"number"===s.itemType.kind&&"number"==typeof s.N?new se(s,r,n,i,a):e.error(`Type ${q(s)} is not interpolatable.`)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);const o=Ut(e,n),a=e[o],s=e[o+1],l=se.interpolationFactor(this.interpolation,n,a,s),u=r[o].evaluate(t),c=r[o+1].evaluate(t);return"interpolate"===this.operator?qt[this.type.kind.toLowerCase()](u,c,l):"interpolate-hcl"===this.operator?oe.reverse(oe.interpolate(oe.forward(u),oe.forward(c),l)):ie.reverse(ie.interpolate(ie.forward(u),ie.forward(c),l))}eachChild(t){t(this.input);for(const e of this.outputs)t(e)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const e=[this.operator,t,this.input.serialize()];for(let t=0;tZ(n,t.type));return new ue(o?U:r,i)}evaluate(t){let e,r=null,n=0;for(const i of this.args)if(n++,r=i.evaluate(t),r&&r instanceof rt&&!r.available&&(e||(e=r.name),r=null,n===this.args.length&&(r=e)),null!==r)break;return r}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=["coalesce"];return this.eachChild(e=>{t.push(e.serialize())}),t}}class ce{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result)}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let n=1;n=r.length)throw new lt(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e!==Math.floor(e))throw new lt(`Array index must be an integer, but found ${e} instead.`);return r[e]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}class pe{constructor(t,e){this.type=D,this.needle=t,this.haystack=e}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,U),n=e.parse(t[2],2,U);return r&&n?K(r.type,[D,N,j,k,U])?new pe(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${q(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!H(e,["boolean","string","number","null"]))throw new lt(`Expected first argument to be of type boolean, string, number or null, but found ${q(ot(e))} instead.`);if(!H(r,["string","array"]))throw new lt(`Expected second argument to be of type array or string, but found ${q(ot(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}class fe{constructor(t,e,r){this.type=j,this.needle=t,this.haystack=e,this.fromIndex=r}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,U),n=e.parse(t[2],2,U);if(!r||!n)return null;if(!K(r.type,[D,N,j,k,U]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${q(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,j);return i?new fe(r,n,i):null}return new fe(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!H(e,["boolean","string","number","null"]))throw new lt(`Expected first argument to be of type boolean, string, number or null, but found ${q(ot(e))} instead.`);if(!H(r,["string","array"]))throw new lt(`Expected second argument to be of type array or string, but found ${q(ot(r))} instead.`);if(this.fromIndex){const n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}class de{constructor(t,e,r,n,i,o){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=o}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error("Expected an even number of arguments.");let r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);const i={},o=[];for(let a=2;aNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return u.error("Numeric branch labels must be integer values.");if(r){if(u.checkSubtype(r,ot(t)))return null}else r=ot(t);if(void 0!==i[String(t)])return u.error("Branch labels must be unique.");i[String(t)]=o.length}const c=e.parse(l,a,n);if(!c)return null;n=n||c.type,o.push(c)}const a=e.parse(t[1],1,U);if(!a)return null;const s=e.parse(t[t.length-1],t.length-1,n);return s?"value"!==a.type.kind&&e.concat(1).checkSubtype(r,a.type)?null:new de(r,n,a,i,o,s):null}evaluate(t){const e=this.input.evaluate(t);return(ot(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],e=Object.keys(this.cases).sort(),r=[],n={};for(const t of e){const e=n[this.cases[t]];void 0===e?(n[this.cases[t]]=r.length,r.push([this.cases[t],[t]])):r[e][1].push(t)}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[e,n]of r)1===n.length?t.push(i(n[0])):t.push(n.map(i)),t.push(this.outputs[e].serialize());return t.push(this.otherwise.serialize()),t}}class ge{constructor(t,e,r){this.type=t,this.branches=e,this.otherwise=r}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error("Expected an odd number of arguments.");let r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);const n=[];for(let i=1;ie.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild(e=>{t.push(e.serialize())}),t}}class ye{constructor(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,U),n=e.parse(t[2],2,j);if(!r||!n)return null;if(!K(r.type,[W(U),N,U]))return e.error(`Expected first argument to be of type array or string, but found ${q(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,j);return i?new ye(r.type,r,n,i):null}return new ye(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!H(e,["string","array"]))throw new lt(`Expected first argument to be of type array or string, but found ${q(ot(e))} instead.`);if(this.endIndex){const n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}function me(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function ve(t,e,r,n){return 0===n.compare(e,r)}function _e(t,e,r){const n="=="!==t&&"!="!==t;return class i{constructor(t,e,r){this.type=D,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");const r=t[0];let o=e.parse(t[1],1,U);if(!o)return null;if(!me(r,o.type))return e.concat(1).error(`"${r}" comparisons are not supported for type '${q(o.type)}'.`);let a=e.parse(t[2],2,U);if(!a)return null;if(!me(r,a.type))return e.concat(2).error(`"${r}" comparisons are not supported for type '${q(a.type)}'.`);if(o.type.kind!==a.type.kind&&"value"!==o.type.kind&&"value"!==a.type.kind)return e.error(`Cannot compare types '${q(o.type)}' and '${q(a.type)}'.`);n&&("value"===o.type.kind&&"value"!==a.type.kind?o=new ct(a.type,[o]):"value"!==o.type.kind&&"value"===a.type.kind&&(a=new ct(o.type,[a])));let s=null;if(4===t.length){if("string"!==o.type.kind&&"string"!==a.type.kind&&"value"!==o.type.kind&&"value"!==a.type.kind)return e.error("Cannot use collator to compare non-string types.");if(s=e.parse(t[3],3,B),!s)return null}return new i(o,a,s)}evaluate(i){const o=this.lhs.evaluate(i),a=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){const e=ot(o),r=ot(a);if(e.kind!==r.kind||"string"!==e.kind&&"number"!==e.kind)throw new lt(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const t=ot(o),r=ot(a);if("string"!==t.kind||"string"!==r.kind)return e(i,o,a)}return this.collator?r(i,o,a,this.collator.evaluate(i)):e(i,o,a)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}serialize(){const e=[t];return this.eachChild(t=>{e.push(t.serialize())}),e}}}const be=_e("==",(function(t,e,r){return e===r}),ve),xe=_e("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!ve(0,e,r,n)})),we=_e("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Ee=_e("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),Te=_e(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class Ce{constructor(t,e,r,n,i){this.type=N,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i}static parse(t,e){if(3!==t.length)return e.error("Expected two arguments.");const r=e.parse(t[1],1,j);if(!r)return null;const n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");let i=null;if(n.locale&&(i=e.parse(n.locale,1,N),!i))return null;let o=null;if(n.currency&&(o=e.parse(n.currency,1,N),!o))return null;let a=null;if(n["min-fraction-digits"]&&(a=e.parse(n["min-fraction-digits"],1,j),!a))return null;let s=null;return n["max-fraction-digits"]&&(s=e.parse(n["max-fraction-digits"],1,j),!s)?null:new Ce(r,i,o,a,s)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class Oe{constructor(t){this.type=j,this.input=t}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error(`Expected argument of type string or array, but found ${q(r.type)} instead.`):new Oe(r):null}evaluate(t){const e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new lt(`Expected value to be of type string or array, but found ${q(ot(e))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(e=>{t.push(e.serialize())}),t}}const Pe={"==":be,"!=":xe,">":Se,"<":we,">=":Te,"<=":Ee,array:ct,at:he,boolean:ct,case:ge,coalesce:ue,collator:vt,format:ht,image:pt,in:pe,"index-of":fe,interpolate:se,"interpolate-hcl":se,"interpolate-lab":se,length:Oe,let:ce,literal:st,match:de,number:ct,"number-format":Ce,object:ct,slice:ye,step:Bt,string:ct,"to-boolean":dt,"to-color":dt,"to-number":dt,"to-string":dt,var:Gt,within:kt};function Re(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const o=i?i.evaluate(t):1,a=nt(e,r,n,o);if(a)throw new lt(a);return new J(e/255*o,r/255*o,n/255*o,o)}function Ie(t,e){return t in e}function Le(t,e){const r=e[t];return void 0===r?null:r}function Me(t){return{type:t}}function Fe(t){return{result:"success",value:t}}function Ae(t){return{result:"error",value:t}}function ke(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function je(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Ne(t){return!!t.expression&&t.expression.interpolated}function De(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Ge(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function ze(t){return t}function Ue(t,e){const r="color"===e.type,n=t.stops&&"object"==typeof t.stops[0][0],i=n||void 0!==t.property,o=n||!i,a=t.type||(Ne(e)?"exponential":"interval");if(r&&((t=M({},t)).stops&&(t.stops=t.stops.map(t=>[t[0],J.parse(t[1])])),t.default?t.default=J.parse(t.default):t.default=J.parse(e.default)),t.colorSpace&&"rgb"!==t.colorSpace&&!ae[t.colorSpace])throw new Error("Unknown color space: "+t.colorSpace);let s,l,u;if("exponential"===a)s=We;else if("interval"===a)s=Ye;else if("categorical"===a){s=Ve,l=Object.create(null);for(const e of t.stops)l[e[0]]=e[1];u=typeof t.stops[0][0]}else{if("identity"!==a)throw new Error(`Unknown function type "${a}"`);s=qe}if(n){const r={},n=[];for(let e=0;et[0]),evaluate:({zoom:r},n)=>We({stops:i,base:t.base},e,r).evaluate(r,n)}}if(o){const r="exponential"===a?{name:"exponential",base:void 0!==t.base?t.base:1}:null;return{kind:"camera",interpolationType:r,interpolationFactor:se.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map(t=>t[0]),evaluate:({zoom:r})=>s(t,e,r,l,u)}}return{kind:"source",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?Be(t.default,e.default):s(t,e,i,l,u)}}}function Be(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Ve(t,e,r,n,i){return Be(typeof r===i?n[r]:void 0,t.default,e.default)}function Ye(t,e,r){if("number"!==De(r))return Be(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];const i=Ut(t.stops.map(t=>t[0]),r);return t.stops[i][1]}function We(t,e,r){const n=void 0!==t.base?t.base:1;if("number"!==De(r))return Be(t.default,e.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];const o=Ut(t.stops.map(t=>t[0]),r),a=function(t,e,r,n){const i=n-r,o=t-r;return 0===i?0:1===e?o/i:(Math.pow(e,o)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[o][0],t.stops[o+1][0]),s=t.stops[o][1],l=t.stops[o+1][1];let u=qt[e.type]||ze;if(t.colorSpace&&"rgb"!==t.colorSpace){const e=ae[t.colorSpace];u=(t,r)=>e.reverse(e.interpolate(e.forward(t),e.forward(r),a))}return"function"==typeof s.evaluate?{evaluate(...t){const e=s.evaluate.apply(void 0,t),r=l.evaluate.apply(void 0,t);if(void 0!==e&&void 0!==r)return u(e,r,a)}}:u(s,l,a)}function qe(t,e,r){return"color"===e.type?r=J.parse(r):"formatted"===e.type?r=et.fromString(r.toString()):"resolvedImage"===e.type?r=rt.fromString(r.toString()):De(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Be(r,t.default,e.default)}mt.register(Pe,{error:[{kind:"error"},[N],(t,[e])=>{throw new lt(e.evaluate(t))}],typeof:[N,[U],(t,[e])=>q(ot(e.evaluate(t)))],"to-rgba":[W(j,4),[G],(t,[e])=>e.evaluate(t).toArray()],rgb:[G,[j,j,j],Re],rgba:[G,[j,j,j,j],Re],has:{type:D,overloads:[[[N],(t,[e])=>Ie(e.evaluate(t),t.properties())],[[N,z],(t,[e,r])=>Ie(e.evaluate(t),r.evaluate(t))]]},get:{type:U,overloads:[[[N],(t,[e])=>Le(e.evaluate(t),t.properties())],[[N,z],(t,[e,r])=>Le(e.evaluate(t),r.evaluate(t))]]},"feature-state":[U,[N],(t,[e])=>Le(e.evaluate(t),t.featureState||{})],properties:[z,[],t=>t.properties()],"geometry-type":[N,[],t=>t.geometryType()],id:[U,[],t=>t.id()],zoom:[j,[],t=>t.globals.zoom],"heatmap-density":[j,[],t=>t.globals.heatmapDensity||0],"line-progress":[j,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[j,[],t=>t.globals.skyRadialProgress||0],accumulated:[U,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[j,Me(j),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],"*":[j,Me(j),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],"-":{type:j,overloads:[[[j,j],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[j],(t,[e])=>-e.evaluate(t)]]},"/":[j,[j,j],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],"%":[j,[j,j],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[j,[],()=>Math.LN2],pi:[j,[],()=>Math.PI],e:[j,[],()=>Math.E],"^":[j,[j,j],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[j,[j],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[j,[j],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[j,[j],(t,[e])=>Math.log(e.evaluate(t))],log2:[j,[j],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[j,[j],(t,[e])=>Math.sin(e.evaluate(t))],cos:[j,[j],(t,[e])=>Math.cos(e.evaluate(t))],tan:[j,[j],(t,[e])=>Math.tan(e.evaluate(t))],asin:[j,[j],(t,[e])=>Math.asin(e.evaluate(t))],acos:[j,[j],(t,[e])=>Math.acos(e.evaluate(t))],atan:[j,[j],(t,[e])=>Math.atan(e.evaluate(t))],min:[j,Me(j),(t,e)=>Math.min(...e.map(e=>e.evaluate(t)))],max:[j,Me(j),(t,e)=>Math.max(...e.map(e=>e.evaluate(t)))],abs:[j,[j],(t,[e])=>Math.abs(e.evaluate(t))],round:[j,[j],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[j,[j],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[j,[j],(t,[e])=>Math.ceil(e.evaluate(t))],"filter-==":[D,[N,U],(t,[e,r])=>t.properties()[e.value]===r.value],"filter-id-==":[D,[U],(t,[e])=>t.id()===e.value],"filter-type-==":[D,[N],(t,[e])=>t.geometryType()===e.value],"filter-<":[D,[N,U],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n{const r=t.id(),n=e.value;return typeof r==typeof n&&r":[D,[N,U],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],"filter-id->":[D,[U],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],"filter-<=":[D,[N,U],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],"filter-id-<=":[D,[U],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],"filter->=":[D,[N,U],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],"filter-id->=":[D,[U],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],"filter-has":[D,[U],(t,[e])=>e.value in t.properties()],"filter-has-id":[D,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[D,[W(N)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],"filter-id-in":[D,[W(U)],(t,[e])=>e.value.indexOf(t.id())>=0],"filter-in-small":[D,[N,W(U)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],"filter-in-large":[D,[N,W(U)],(t,[e,r])=>function(t,e,r,n){for(;r<=n;){const i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[e.value],r.value,0,r.value.length-1)],all:{type:D,overloads:[[[D,D],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[Me(D),(t,e)=>{for(const r of e)if(!r.evaluate(t))return!1;return!0}]]},any:{type:D,overloads:[[[D,D],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[Me(D),(t,e)=>{for(const r of e)if(r.evaluate(t))return!0;return!1}]]},"!":[D,[D],(t,[e])=>!e.evaluate(t)],"is-supported-script":[D,[N],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return!r||r(e.evaluate(t))}],upcase:[N,[N],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[N,[N],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[N,Me(U),(t,e)=>e.map(e=>at(e.evaluate(t))).join("")],"resolved-locale":[N,[B],(t,[e])=>e.evaluate(t).resolvedLocale()]});class Xe{constructor(t,e){var r;this.expression=t,this._warningHistory={},this._evaluator=new yt,this._defaultValue=e?"color"===(r=e).type&&Ge(r.default)?new J(0,0,0,0):"color"===r.type?J.parse(r.default)||null:void 0===r.default?null:r.default:null,this._enumValues=e&&"enum"===e.type?e.values:null}evaluateWithoutErrorHandling(t,e,r,n,i,o){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=o,this.expression.evaluate(this._evaluator)}evaluate(t,e,r,n,i,o){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=o||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||"number"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new lt(`Expected value to be one of ${Object.keys(this._enumValues).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}}}function Ze(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in Pe}function Ke(t,e){const r=new zt(Pe,[],e?function(t){const e={color:G,string:N,number:j,enum:N,boolean:D,formatted:V,resolvedImage:Y};if("array"===t.type)return W(e[t.value]||U,t.length);return e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Fe(new Xe(n,e)):Ae(r.errors)}class He{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Nt(e.expression)}evaluateWithoutErrorHandling(t,e,r,n,i,o){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,o)}evaluate(t,e,r,n,i,o){return this._styleExpression.evaluate(t,e,r,n,i,o)}}class $e{constructor(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Nt(e.expression),this.interpolationType=n}evaluateWithoutErrorHandling(t,e,r,n,i,o){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,o)}evaluate(t,e,r,n,i,o){return this._styleExpression.evaluate(t,e,r,n,i,o)}interpolationFactor(t,e,r){return this.interpolationType?se.interpolationFactor(this.interpolationType,t,e,r):0}}function Je(t,e){if("error"===(t=Ke(t,e)).result)return t;const r=t.value.expression,n=jt(r);if(!n&&!ke(e))return Ae([new F("","data expressions not supported")]);const i=Dt(r,["zoom"]);if(!i&&!je(e))return Ae([new F("","zoom expressions not supported")]);const o=function t(e){let r=null;if(e instanceof ce)r=t(e.result);else if(e instanceof ue){for(const n of e.args)if(r=t(n),r)break}else(e instanceof Bt||e instanceof se)&&e.input instanceof mt&&"zoom"===e.input.name&&(r=e);if(r instanceof F)return r;return e.eachChild(e=>{const n=t(e);n instanceof F?r=n:!r&&n?r=new F("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):r&&n&&r!==n&&(r=new F("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),r}(r);if(!o&&!i)return Ae([new F("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(o instanceof F)return Ae([o]);if(o instanceof se&&!Ne(e))return Ae([new F("",'"interpolate" expressions cannot be used with this property')]);if(!o)return Fe(new He(n?"constant":"source",t.value));const a=o instanceof se?o.interpolation:void 0;return Fe(new $e(n?"camera":"composite",t.value,o.labels,a))}class Qe{constructor(t,e){this._parameters=t,this._specification=e,M(this,Ue(this._parameters,this._specification))}static deserialize(t){return new Qe(t._parameters,t._specification)}static serialize(t){return{_parameters:t._parameters,_specification:t._specification}}}function tr(t){return"object"==typeof t?["literal",t]:t}function er(t,e){let r=t.stops;if(!r)return function(t,e){const r=["get",t.property];if(void 0===t.default)return"string"===e.type?["string",r]:r;if("enum"===e.type)return["match",r,Object.keys(e.values),r,t.default];{const n=["color"===e.type?"to-color":e.type,r,tr(t.default)];return"array"===e.type&&n.splice(1,0,e.value,e.length||null),n}}(t,e);const n=r&&"object"==typeof r[0][0],i=n||void 0!==t.property,o=n||!i;return r=r.map(t=>!i&&e.tokens&&"string"==typeof t[1]?[t[0],lr(t[1])]:[t[0],tr(t[1])]),n?function(t,e,r){const n={},i={},o=[];for(let e=0;e3&&e===t[t.length-2]||(n&&2===t.length||t.push(e),t.push(r))}function sr(t,e){return t.type?t.type:e.expression.interpolated?"exponential":"interval"}function lr(t){const e=["concat"],r=/{([^{}]+)}/g;let n=0;for(let i=r.exec(t);null!==i;i=r.exec(t)){const o=t.slice(n,r.lastIndex-i[0].length);n=r.lastIndex,o.length>0&&e.push(o),e.push(["get",i[1]])}if(1===e.length)return t;if(n=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(const e of t.slice(1))if(!ur(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}}const cr={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function hr(t){if(null==t)return{filter:()=>!0,needGeometry:!1};ur(t)||(t=fr(t));const e=Ke(t,cr);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return{filter:(t,r,n)=>e.value.evaluate(t,r,{},n),needGeometry:function t(e){if(!Array.isArray(e))return!1;if("within"===e[0])return!0;for(let r=1;re?1:0}function fr(t){if(!t)return!0;const e=t[0];if(t.length<=1)return"any"!==e;var r;return"=="===e?dr(t[1],t[2],"=="):"!="===e?mr(dr(t[1],t[2],"==")):"<"===e||">"===e||"<="===e||">="===e?dr(t[1],t[2],e):"any"===e?(r=t.slice(1),["any"].concat(r.map(fr))):"all"===e?["all"].concat(t.slice(1).map(fr)):"none"===e?["all"].concat(t.slice(1).map(fr).map(mr)):"in"===e?gr(t[1],t.slice(2)):"!in"===e?mr(gr(t[1],t.slice(2))):"has"===e?yr(t[1]):"!has"===e?mr(yr(t[1])):"within"!==e||t}function dr(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function gr(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(t=>typeof t!=typeof e[0])?["filter-in-large",t,["literal",e.sort(pr)]]:["filter-in-small",t,["literal",e]]}}function yr(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function mr(t){return["!",t]}var vr=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function _r(t,e){const r={};for(const e in t)"ref"!==e&&(r[e]=t[e]);return vr.forEach(t=>{t in e&&(r[t]=e[t])}),r}function br(t){t=t.slice();const e=Object.create(null);for(let r=0;rn.maximum?[new xr(e,r,`${r} is greater than the maximum value ${n.maximum}`)]:[]}function Rr(t){const e=t.valueSpec,r=Er(t.value.type);let n,i,o,a={};const s="categorical"!==r&&void 0===t.value.property,l=!s,u="array"===De(t.value.stops)&&"array"===De(t.value.stops[0])&&"object"===De(t.value.stops[0][0]),c=Cr({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===r)return[new xr(t.key,t.value,'identity function may not have a "stops" property')];let e=[];const n=t.value;e=e.concat(Or({key:t.key,value:n,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),"array"===De(n)&&0===n.length&&e.push(new xr(t.key,n,"array must have at least one stop"));return e},default:function(t){return Vr({key:t.key,value:t.value,valueSpec:e,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===r&&s&&c.push(new xr(t.key,t.value,'missing required property "property"')),"identity"===r||t.value.stops||c.push(new xr(t.key,t.value,'missing required property "stops"')),"exponential"===r&&t.valueSpec.expression&&!Ne(t.valueSpec)&&c.push(new xr(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!ke(t.valueSpec)?c.push(new xr(t.key,t.value,"property functions not supported")):s&&!je(t.valueSpec)&&c.push(new xr(t.key,t.value,"zoom functions not supported"))),"categorical"!==r&&!u||void 0!==t.value.property||c.push(new xr(t.key,t.value,'"property" property is required')),c;function h(t){let r=[];const n=t.value,s=t.key;if("array"!==De(n))return[new xr(s,n,`array expected, ${De(n)} found`)];if(2!==n.length)return[new xr(s,n,`array length 2 expected, length ${n.length} found`)];if(u){if("object"!==De(n[0]))return[new xr(s,n,`object expected, ${De(n[0])} found`)];if(void 0===n[0].zoom)return[new xr(s,n,"object stop key must have zoom")];if(void 0===n[0].value)return[new xr(s,n,"object stop key must have value")];if(o&&o>Er(n[0].zoom))return[new xr(s,n[0].zoom,"stop zoom values must appear in ascending order")];Er(n[0].zoom)!==o&&(o=Er(n[0].zoom),i=void 0,a={}),r=r.concat(Cr({key:s+"[0]",value:n[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Pr,value:p}}))}else r=r.concat(p({key:s+"[0]",value:n[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},n));return Ze(Tr(n[1]))?r.concat([new xr(s+"[1]",n[1],"expressions are not allowed in function stops.")]):r.concat(Vr({key:s+"[1]",value:n[1],valueSpec:e,style:t.style,styleSpec:t.styleSpec}))}function p(t,o){const s=De(t.value),l=Er(t.value),u=null!==t.value?t.value:o;if(n){if(s!==n)return[new xr(t.key,u,`${s} stop domain type must match previous stop domain type ${n}`)]}else n=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new xr(t.key,u,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==r){let n=`number expected, ${s} found`;return ke(e)&&void 0===r&&(n+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new xr(t.key,u,n)]}return"categorical"!==r||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==r&&"number"===s&&void 0!==i&&lnew xr(`${t.key}${e.key}`,t.value,e.message));const r=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!r.outputDefined())return[new xr(t.key,t.value,`Invalid data expression for "${t.propertyKey}". Output values must be contained as literals within the expression.`)];if("property"===t.expressionContext&&"layout"===t.propertyType&&!Nt(r))return[new xr(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!Nt(r))return[new xr(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!Dt(r,["zoom","feature-state"]))return[new xr(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!jt(r))return[new xr(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Lr(t){const e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(Er(r))&&i.push(new xr(e,r,`expected one of [${n.values.join(", ")}], ${JSON.stringify(r)} found`)):-1===Object.keys(n.values).indexOf(Er(r))&&i.push(new xr(e,r,`expected one of [${Object.keys(n.values).join(", ")}], ${JSON.stringify(r)} found`)),i}function Mr(t){return ur(Tr(t.value))?Ir(M({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){const r=e.value,n=e.key;if("array"!==De(r))return[new xr(n,r,`array expected, ${De(r)} found`)];const i=e.styleSpec;let o,a=[];if(r.length<1)return[new xr(n,r,"filter array must have at least 1 element")];switch(a=a.concat(Lr({key:n+"[0]",value:r[0],valueSpec:i.filter_operator,style:e.style,styleSpec:e.styleSpec})),Er(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Er(r[1])&&a.push(new xr(n,r,`"$type" cannot be use with operator "${r[0]}"`));case"==":case"!=":3!==r.length&&a.push(new xr(n,r,`filter array for operator "${r[0]}" must have 3 elements`));case"in":case"!in":r.length>=2&&(o=De(r[1]),"string"!==o&&a.push(new xr(n+"[1]",r[1],`string expected, ${o} found`)));for(let t=2;t{t in r&&e.push(new xr(n,r[t],`"${t}" is prohibited for ref layers`))}),i.layers.forEach(e=>{Er(e.id)===s&&(t=e)}),t?t.ref?e.push(new xr(n,r.ref,"ref cannot reference another ref layer")):a=Er(t.type):e.push(new xr(n,r.ref,`ref layer "${s}" not found`))}else if("background"!==a&&"sky"!==a)if(r.source){const t=i.sources&&i.sources[r.source],o=t&&Er(t.type);t?"vector"===o&&"raster"===a?e.push(new xr(n,r.source,`layer "${r.id}" requires a raster source`)):"raster"===o&&"raster"!==a?e.push(new xr(n,r.source,`layer "${r.id}" requires a vector source`)):"vector"!==o||r["source-layer"]?"raster-dem"===o&&"hillshade"!==a?e.push(new xr(n,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==a||!r.paint||!r.paint["line-gradient"]||"geojson"===o&&t.lineMetrics||e.push(new xr(n,r,`layer "${r.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):e.push(new xr(n,r,`layer "${r.id}" must specify a "source-layer"`)):e.push(new xr(n,r.source,`source "${r.source}" not found`))}else e.push(new xr(n,r,'missing required property "source"'));return e=e.concat(Cr({key:n,value:r,valueSpec:o.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":()=>[],type:()=>Vr({key:n+".type",value:r.type,valueSpec:o.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:"type"}),filter:Mr,layout:t=>Cr({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":t=>kr(M({layerType:a},t))}}),paint:t=>Cr({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":t=>Ar(M({layerType:a},t))}})}})),e}function Nr(t){const e=t.value,r=t.key,n=De(e);return"string"!==n?[new xr(r,e,`string expected, ${n} found`)]:[]}const Dr={promoteId:function({key:t,value:e}){if("string"===De(e))return Nr({key:t,value:e});{const r=[];for(const n in e)r.push(...Nr({key:`${t}.${n}`,value:e[n]}));return r}}};function Gr(t){const e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return[new xr(r,e,'"type" is required')];const o=Er(e.type);let a;switch(o){case"vector":case"raster":case"raster-dem":return a=Cr({key:r,value:e,valueSpec:n["source_"+o.replace("-","_")],style:t.style,styleSpec:n,objectElementValidators:Dr}),a;case"geojson":if(a=Cr({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,objectElementValidators:Dr}),e.cluster)for(const t in e.clusterProperties){const[n,i]=e.clusterProperties[t],o="string"==typeof n?[n,["accumulated"],["get",t]]:n;a.push(...Ir({key:`${r}.${t}.map`,value:i,expressionContext:"cluster-map"})),a.push(...Ir({key:`${r}.${t}.reduce`,value:o,expressionContext:"cluster-reduce"}))}return a;case"video":return Cr({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case"image":return Cr({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case"canvas":return[new xr(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Lr({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,styleSpec:n})}}function zr(t){const e=t.value,r=t.styleSpec,n=r.light,i=t.style;let o=[];const a=De(e);if(void 0===e)return o;if("object"!==a)return o=o.concat([new xr("light",e,`object expected, ${a} found`)]),o;for(const t in e){const a=t.match(/^(.*)-transition$/);o=a&&n[a[1]]&&n[a[1]].transition?o.concat(Vr({key:t,value:e[t],valueSpec:r.transition,style:i,styleSpec:r})):n[t]?o.concat(Vr({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r})):o.concat([new xr(t,e[t],`unknown property "${t}"`)])}return o}function Ur(t){const e=t.value,r=t.key,n=t.style,i=t.styleSpec,o=i.terrain;let a=[];const s=De(e);if(void 0===e)return a;if("object"!==s)return a=a.concat([new xr("terrain",e,`object expected, ${s} found`)]),a;for(const t in e){const r=t.match(/^(.*)-transition$/);a=r&&o[r[1]]&&o[r[1]].transition?a.concat(Vr({key:t,value:e[t],valueSpec:i.transition,style:n,styleSpec:i})):o[t]?a.concat(Vr({key:t,value:e[t],valueSpec:o[t],style:n,styleSpec:i})):a.concat([new xr(t,e[t],`unknown property "${t}"`)])}if(e.source){const t=n.sources&&n.sources[e.source],i=t&&Er(t.type);t?"raster-dem"!==i&&a.push(new xr(r,e.source,`terrain cannot be used with a source of type ${i}, it only be used with a "raster-dem" source type`)):a.push(new xr(r,e.source,`source "${e.source}" not found`))}else a.push(new xr(r,e,'terrain is missing required property "source"'));return a}const Br={"*":()=>[],array:Or,boolean:function(t){const e=t.value,r=t.key,n=De(e);return"boolean"!==n?[new xr(r,e,`boolean expected, ${n} found`)]:[]},number:Pr,color:function(t){const e=t.key,r=t.value,n=De(r);return"string"!==n?[new xr(e,r,`color expected, ${n} found`)]:null===$(r)?[new xr(e,r,`color expected, "${r}" found`)]:[]},constants:Sr,enum:Lr,filter:Mr,function:Rr,layer:jr,object:Cr,source:Gr,light:zr,terrain:Ur,string:Nr,formatted:function(t){return 0===Nr(t).length?[]:Ir(t)},resolvedImage:function(t){return 0===Nr(t).length?[]:Ir(t)}};function Vr(t){const e=t.value,r=t.valueSpec,n=t.styleSpec;if(r.expression&&Ge(Er(e)))return Rr(t);if(r.expression&&Ze(Tr(e)))return Ir(t);if(r.type&&Br[r.type])return Br[r.type](t);return Cr(M({},t,{valueSpec:r.type?n[r.type]:r}))}function Yr(t){const e=t.value,r=t.key,n=Nr(t);return n.length||(-1===e.indexOf("{fontstack}")&&n.push(new xr(r,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&n.push(new xr(r,e,'"glyphs" url must include a "{range}" token'))),n}function Wr(t,e=i){let r=[];return r=r.concat(Vr({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Yr,"*":()=>[]}})),t.constants&&(r=r.concat(Sr({key:"constants",value:t.constants,style:t,styleSpec:e}))),qr(r)}function qr(t){return[].concat(t).sort((t,e)=>t.line-e.line)}function Xr(t){return function(...e){return qr(t.apply(this,e))}}Wr.source=Xr(Gr),Wr.light=Xr(zr),Wr.terrain=Xr(Ur),Wr.layer=Xr(jr),Wr.filter=Xr(Mr),Wr.paintProperty=Xr(Ar),Wr.layoutProperty=Xr(kr);var Zr=s((function(t,e){var r=function(){var t=function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},e=[1,12],r=[1,13],n=[1,9],i=[1,10],o=[1,11],a=[1,14],s=[1,15],l=[14,18,22,24],u=[18,22],c=[22,24],h={trace:function(){},yy:{},symbols_:{error:2,JSONString:3,STRING:4,JSONNumber:5,NUMBER:6,JSONNullLiteral:7,NULL:8,JSONBooleanLiteral:9,TRUE:10,FALSE:11,JSONText:12,JSONValue:13,EOF:14,JSONObject:15,JSONArray:16,"{":17,"}":18,JSONMemberList:19,JSONMember:20,":":21,",":22,"[":23,"]":24,JSONElementList:25,$accept:0,$end:1},terminals_:{2:"error",4:"STRING",6:"NUMBER",8:"NULL",10:"TRUE",11:"FALSE",14:"EOF",17:"{",18:"}",21:":",22:",",23:"[",24:"]"},productions_:[0,[3,1],[5,1],[7,1],[9,1],[9,1],[12,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[15,2],[15,3],[20,3],[19,1],[19,3],[16,2],[16,3],[25,1],[25,3]],performAction:function(t,e,r,n,i,o,a){var s=o.length-1;switch(i){case 1:this.$=new String(t.replace(/\\(\\|")/g,"$1").replace(/\\n/g,"\n").replace(/\\r/g,"\r").replace(/\\t/g,"\t").replace(/\\v/g,"\v").replace(/\\f/g,"\f").replace(/\\b/g,"\b")),this.$.__line__=this._$.first_line;break;case 2:this.$=new Number(t),this.$.__line__=this._$.first_line;break;case 3:this.$=null;break;case 4:this.$=new Boolean(!0),this.$.__line__=this._$.first_line;break;case 5:this.$=new Boolean(!1),this.$.__line__=this._$.first_line;break;case 6:return this.$=o[s-1];case 13:this.$={},Object.defineProperty(this.$,"__line__",{value:this._$.first_line,enumerable:!1});break;case 14:case 19:this.$=o[s-1],Object.defineProperty(this.$,"__line__",{value:this._$.first_line,enumerable:!1});break;case 15:this.$=[o[s-2],o[s]];break;case 16:this.$={},this.$[o[s][0]]=o[s][1];break;case 17:this.$=o[s-2],o[s-2][o[s][0]]=o[s][1];break;case 18:this.$=[],Object.defineProperty(this.$,"__line__",{value:this._$.first_line,enumerable:!1});break;case 20:this.$=[o[s]];break;case 21:this.$=o[s-2],o[s-2].push(o[s])}},table:[{3:5,4:e,5:6,6:r,7:3,8:n,9:4,10:i,11:o,12:1,13:2,15:7,16:8,17:a,23:s},{1:[3]},{14:[1,16]},t(l,[2,7]),t(l,[2,8]),t(l,[2,9]),t(l,[2,10]),t(l,[2,11]),t(l,[2,12]),t(l,[2,3]),t(l,[2,4]),t(l,[2,5]),t([14,18,21,22,24],[2,1]),t(l,[2,2]),{3:20,4:e,18:[1,17],19:18,20:19},{3:5,4:e,5:6,6:r,7:3,8:n,9:4,10:i,11:o,13:23,15:7,16:8,17:a,23:s,24:[1,21],25:22},{1:[2,6]},t(l,[2,13]),{18:[1,24],22:[1,25]},t(u,[2,16]),{21:[1,26]},t(l,[2,18]),{22:[1,28],24:[1,27]},t(c,[2,20]),t(l,[2,14]),{3:20,4:e,20:29},{3:5,4:e,5:6,6:r,7:3,8:n,9:4,10:i,11:o,13:30,15:7,16:8,17:a,23:s},t(l,[2,19]),{3:5,4:e,5:6,6:r,7:3,8:n,9:4,10:i,11:o,13:31,15:7,16:8,17:a,23:s},t(u,[2,17]),t(u,[2,15]),t(c,[2,21])],defaultActions:{16:[2,6]},parseError:function(t,e){if(!e.recoverable)throw new Error(t);this.trace(t)},parse:function(t){var e=this,r=[0],n=[null],i=[],o=this.table,a="",s=0,l=0,u=2,c=1,h=i.slice.call(arguments,1),p=Object.create(this.lexer),f={yy:{}};for(var d in this.yy)Object.prototype.hasOwnProperty.call(this.yy,d)&&(f.yy[d]=this.yy[d]);p.setInput(t,f.yy),f.yy.lexer=p,f.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var g=p.yylloc;i.push(g);var y=p.options&&p.options.ranges;function m(){var t;return"number"!=typeof(t=p.lex()||c)&&(t=e.symbols_[t]||t),t}"function"==typeof f.yy.parseError?this.parseError=f.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,S,E,T,C={};;){if(_=r[r.length-1],this.defaultActions[_]?b=this.defaultActions[_]:(null==v&&(v=m()),b=o[_]&&o[_][v]),void 0===b||!b.length||!b[0]){var O="";for(w in T=[],o[_])this.terminals_[w]&&w>u&&T.push("'"+this.terminals_[w]+"'");O=p.showPosition?"Parse error on line "+(s+1)+":\n"+p.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(s+1)+": Unexpected "+(v==c?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(O,{text:p.match,token:this.terminals_[v]||v,line:p.yylineno,loc:g,expected:T})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+_+", token: "+v);switch(b[0]){case 1:r.push(v),n.push(p.yytext),i.push(p.yylloc),r.push(b[1]),v=null,l=p.yyleng,a=p.yytext,s=p.yylineno,g=p.yylloc;break;case 2:if(S=this.productions_[b[1]][1],C.$=n[n.length-S],C._$={first_line:i[i.length-(S||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(S||1)].first_column,last_column:i[i.length-1].last_column},y&&(C._$.range=[i[i.length-(S||1)].range[0],i[i.length-1].range[1]]),void 0!==(x=this.performAction.apply(C,[a,l,s,f.yy,b[1],n,i].concat(h))))return x;S&&(r=r.slice(0,-1*S*2),n=n.slice(0,-1*S),i=i.slice(0,-1*S)),r.push(this.productions_[b[1]][0]),n.push(C.$),i.push(C._$),E=o[r[r.length-2]][r[r.length-1]],r.push(E);break;case 3:return!0}}return!0}},p={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var r,n,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(n=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],r=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var o in i)this[o]=i[o];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),o=0;oe[0].length)){if(e=r,n=o,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[o])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,r,n){switch(r){case 0:break;case 1:return 6;case 2:return e.yytext=e.yytext.substr(1,e.yyleng-2),4;case 3:return 17;case 4:return 18;case 5:return 23;case 6:return 24;case 7:return 22;case 8:return 21;case 9:return 10;case 10:return 11;case 11:return 8;case 12:return 14;case 13:return"INVALID"}},rules:[/^(?:\s+)/,/^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,/^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,/^(?:\{)/,/^(?:\})/,/^(?:\[)/,/^(?:\])/,/^(?:,)/,/^(?::)/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:$)/,/^(?:.)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};function f(){this.yy={}}return h.lexer=p,f.prototype=h,h.Parser=f,new f}();void 0!==a&&(e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)})}));Zr.parser,Zr.Parser,Zr.parse;function Kr(t){if(t instanceof String||"string"==typeof t||t instanceof n)try{return Zr.parse(t.toString())}catch(t){throw new wr(t)}return t}function Hr(t,e=i){let r=t;try{r=Kr(r)}catch(t){return[t]}return Wr(r,e)}const $r={StyleExpression:Xe,isExpression:Ze,isExpressionFilter:ur,createExpression:Ke,createPropertyExpression:Je,normalizePropertyExpression:function(t,e){if(Ge(t))return new Qe(t,e);if(Ze(t)){const r=Je(t,e);if("error"===r.result)throw new Error(r.value.map(t=>`${t.key}: ${t.message}`).join(", "));return r.value}{let r=t;return"string"==typeof t&&"color"===e.type&&(r=J.parse(t)),{kind:"constant",evaluate:()=>r}}},ZoomConstantExpression:He,ZoomDependentExpression:$e,StylePropertyFunction:Qe},Jr={convertFunction:er,createFunction:Ue,isFunction:Ge};Hr.parsed=Hr,Hr.latest=Hr}).call(this,r(4),r(7).Buffer)},function(t,e,r){t.exports=function(){"use strict";function t(t,n,i,o,a){!function t(r,n,i,o,a){for(;o>i;){if(o-i>600){var s=o-i+1,l=n-i+1,u=Math.log(s),c=.5*Math.exp(2*u/3),h=.5*Math.sqrt(u*c*(s-c)/s)*(l-s/2<0?-1:1);t(r,n,Math.max(i,Math.floor(n-l*c/s+h)),Math.min(o,Math.floor(n+(s-l)*c/s+h)),a)}var p=r[n],f=i,d=o;for(e(r,i,n),a(r[o],p)>0&&e(r,i,o);f0;)d--}0===a(r[i],p)?e(r,i,d):e(r,++d,o),d<=n&&(i=d+1),n<=d&&(o=d-1)}}(t,n,i||0,o||t.length-1,a||r)}function e(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function r(t,e){return te?1:0}var n=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function i(t,e,r){if(!r)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function d(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function g(e,r,n,i,o){for(var a=[r,n];a.length;)if(!((n=a.pop())-(r=a.pop())<=i)){var s=r+Math.ceil((n-r)/i/2)*i;t(e,s,r,n,o),a.push(r,s,s,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(t){var e=this.data,r=[];if(!f(t,e))return r;for(var n=this.toBBox,i=[];e;){for(var o=0;o=0&&i[e].children.length>this._maxEntries;)this._split(i,e),e--;this._adjustParentBBoxes(n,i,e)},n.prototype._split=function(t,e){var r=t[e],n=r.children.length,i=this._minEntries;this._chooseSplitAxis(r,i,n);var a=this._chooseSplitIndex(r,i,n),s=d(r.children.splice(a,r.children.length-a));s.height=r.height,s.leaf=r.leaf,o(r,this.toBBox),o(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(r,s)},n.prototype._splitRoot=function(t,e){this.data=d([t,e]),this.data.height=t.height+1,this.data.leaf=!1,o(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(t,e,r){for(var n,i,o,s,l,u,h,p=1/0,f=1/0,d=e;d<=r-e;d++){var g=a(t,0,d,this.toBBox),y=a(t,d,r,this.toBBox),m=(i=g,o=y,s=Math.max(i.minX,o.minX),l=Math.max(i.minY,o.minY),u=Math.min(i.maxX,o.maxX),h=Math.min(i.maxY,o.maxY),Math.max(0,u-s)*Math.max(0,h-l)),v=c(g)+c(y);m=e;f--){var d=t.children[f];s(l,t.leaf?i(d):d),u+=h(l)}return u},n.prototype._adjustParentBBoxes=function(t,e,r){for(var n=r;n>=0;n--)s(e[n],t)},n.prototype._condense=function(t){for(var e=t.length-1,r=void 0;e>=0;e--)0===t[e].children.length?e>0?(r=t[e-1].children).splice(r.indexOf(t[e]),1):this.clear():o(t[e],this.toBBox)},n}()},function(t,e){var r={thin:100,hairline:100,"ultra-light":100,"extra-light":100,light:200,book:300,regular:400,normal:400,plain:400,roman:400,standard:400,medium:500,"semi-bold":600,"demi-bold":600,bold:700,heavy:800,black:800,"extra-bold":800,"ultra-black":900,"extra-black":900,"ultra-bold":900,"heavy-black":900,fat:900,poster:900},n=/(italic|oblique)$/i,i={};t.exports=function(t,e,o){var a=i[t];if(!a){Array.isArray(t)||(t=[t]);for(var s=400,l="normal",u=[],c=0,h=t.length;c>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+t[e+h],h+=p,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=n;c>0;a=256*a+t[e+h],h+=p,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),o-=u}return(f?-1:1)*a*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var a,s,l,u=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=c):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+h>=1?p/l:p*Math.pow(2,1-h))*l>=2&&(a++,l/=2),a+h>=c?(s=0,a=c):a+h>=1?(s=(e*l-1)*Math.pow(2,i),a+=h):(s=e*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;t[r+f]=255&s,f+=d,s/=256,i-=8);for(a=a<0;t[r+f]=255&a,f+=d,a/=256,u-=8);t[r+f-d]|=128*g}},function(t,e){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,e,r){"use strict";t.exports=i;var n=r(3);function i(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}i.Varint=0,i.Fixed64=1,i.Bytes=2,i.Fixed32=5;var o="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function a(t){return t.type===i.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function l(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function u(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function b(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}i.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,o=this.pos;this.type=7&n,t(i,e,this),this.pos===o&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=v(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=b(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=v(this.buf,this.pos)+4294967296*v(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=v(this.buf,this.pos)+4294967296*b(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=n.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=n.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,o=r.buf;if(i=o[r.pos++],n=(112&i)>>4,i<128)return s(t,n,e);if(i=o[r.pos++],n|=(127&i)<<3,i<128)return s(t,n,e);if(i=o[r.pos++],n|=(127&i)<<10,i<128)return s(t,n,e);if(i=o[r.pos++],n|=(127&i)<<17,i<128)return s(t,n,e);if(i=o[r.pos++],n|=(127&i)<<24,i<128)return s(t,n,e);if(i=o[r.pos++],n|=(1&i)<<31,i<128)return s(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&o?function(t,e,r){return o.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){var n="",i=e;for(;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(o=t[i+1]))&&(u=(31&l)<<6|63&o)<=127&&(u=null):3===c?(o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&((u=(15&l)<<12|(63&o)<<6|63&a)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&((u=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==i.Bytes)return t.push(this.readVarint(e));var r=a(this);for(t=t||[];this.pos127;);else if(e===i.Bytes)this.pos=this.readVarint()+this.pos;else if(e===i.Fixed32)this.pos+=4;else{if(e!==i.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;if(e.buf[e.pos++]|=r|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,o=0;o55295&&n<57344){if(!i){n>56319||o+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&l(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),n.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),n.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&l(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,i.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,u,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,c,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,f,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,h,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,d,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,g,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,y,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,m,e)},writeBytesField:function(t,e){this.writeTag(t,i.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,i.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,i.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,i.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,i.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,i.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,i.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,i.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,i.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,i.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e){(function(){var e;t.exports={icon:"icons/google.svg",name:"google",title:"Google Fonts",link:"google.com/fonts",getNames:function(){return e},getLink:function(t){return"https://fonts.google.com/specimen/"+t.replace(/( )/g,"+")},normalizeName:function(t){return t}},e=["ABeeZee","Abel","Abril Fatface","Aclonica","Acme","Actor","Adamina","Advent Pro","Aguafina Script","Akronim","Aladin","Aldrich","Alef","Alegreya","Alegreya SC","Alegreya Sans","Alegreya Sans SC","Alex Brush","Alfa Slab One","Alice","Alike","Alike Angular","Allan","Allerta","Allerta Stencil","Allura","Almendra","Almendra Display","Almendra SC","Amarante","Amaranth","Amatic SC","Amethysta","Amiri","Amita","Anaheim","Andada","Andika","Angkor","Annie Use Your Telescope","Anonymous Pro","Antic","Antic Didone","Antic Slab","Anton","Arapey","Arbutus","Arbutus Slab","Architects Daughter","Archivo Black","Archivo Narrow","Arimo","Arizonia","Armata","Artifika","Arvo","Arya","Asap","Asar","Asset","Astloch","Asul","Atomic Age","Aubrey","Audiowide","Autour One","Average","Average Sans","Averia Gruesa Libre","Averia Libre","Averia Sans Libre","Averia Serif Libre","Bad Script","Balthazar","Bangers","Basic","Battambang","Baumans","Bayon","Belgrano","Belleza","BenchNine","Bentham","Berkshire Swash","Bevan","Bigelow Rules","Bigshot One","Bilbo","Bilbo Swash Caps","Biryani","Bitter","Black Ops One","Bokor","Bonbon","Boogaloo","Bowlby One","Bowlby One SC","Brawler","Bree Serif","Bubblegum Sans","Bubbler One","Buda","Buenard","Butcherman","Butterfly Kids","Cabin","Cabin Condensed","Cabin Sketch","Caesar Dressing","Cagliostro","Calligraffitti","Cambay","Cambo","Candal","Cantarell","Cantata One","Cantora One","Capriola","Cardo","Carme","Carrois Gothic","Carrois Gothic SC","Carter One","Catamaran","Caudex","Caveat","Caveat Brush","Cedarville Cursive","Ceviche One","Changa One","Chango","Chau Philomene One","Chela One","Chelsea Market","Chenla","Cherry Cream Soda","Cherry Swash","Chewy","Chicle","Chivo","Chonburi","Cinzel","Cinzel Decorative","Clicker Script","Coda","Coda Caption","Codystar","Combo","Comfortaa","Coming Soon","Concert One","Condiment","Content","Contrail One","Convergence","Cookie","Copse","Corben","Courgette","Cousine","Coustard","Covered By Your Grace","Crafty Girls","Creepster","Crete Round","Crimson Text","Croissant One","Crushed","Cuprum","Cutive","Cutive Mono","Damion","Dancing Script","Dangrek","Dawning of a New Day","Days One","Dekko","Delius","Delius Swash Caps","Delius Unicase","Della Respira","Denk One","Devonshire","Dhurjati","Didact Gothic","Diplomata","Diplomata SC","Domine","Donegal One","Doppio One","Dorsa","Dosis","Dr Sugiyama","Droid Sans","Droid Sans Mono","Droid Serif","Duru Sans","Dynalight","EB Garamond","Eagle Lake","Eater","Economica","Eczar","Ek Mukta","Electrolize","Elsie","Elsie Swash Caps","Emblema One","Emilys Candy","Engagement","Englebert","Enriqueta","Erica One","Esteban","Euphoria Script","Ewert","Exo","Exo 2","Expletus Sans","Fanwood Text","Fascinate","Fascinate Inline","Faster One","Fasthand","Fauna One","Federant","Federo","Felipa","Fenix","Finger Paint","Fira Mono","Fira Sans","Fjalla One","Fjord One","Flamenco","Flavors","Fondamento","Fontdiner Swanky","Forum","Francois One","Freckle Face","Fredericka the Great","Fredoka One","Freehand","Fresca","Frijole","Fruktur","Fugaz One","GFS Didot","GFS Neohellenic","Gabriela","Gafata","Galdeano","Galindo","Gentium Basic","Gentium Book Basic","Geo","Geostar","Geostar Fill","Germania One","Gidugu","Gilda Display","Give You Glory","Glass Antiqua","Glegoo","Gloria Hallelujah","Goblin One","Gochi Hand","Gorditas","Goudy Bookletter 1911","Graduate","Grand Hotel","Gravitas One","Great Vibes","Griffy","Gruppo","Gudea","Gurajada","Habibi","Halant","Hammersmith One","Hanalei","Hanalei Fill","Handlee","Hanuman","Happy Monkey","Headland One","Henny Penny","Herr Von Muellerhoff","Hind","Hind Siliguri","Hind Vadodara","Holtwood One SC","Homemade Apple","Homenaje","IM Fell DW Pica","IM Fell DW Pica SC","IM Fell Double Pica","IM Fell Double Pica SC","IM Fell English","IM Fell English SC","IM Fell French Canon","IM Fell French Canon SC","IM Fell Great Primer","IM Fell Great Primer SC","Iceberg","Iceland","Imprima","Inconsolata","Inder","Indie Flower","Inika","Inknut Antiqua","Irish Grover","Istok Web","Italiana","Italianno","Itim","Jacques Francois","Jacques Francois Shadow","Jaldi","Jim Nightshade","Jockey One","Jolly Lodger","Josefin Sans","Josefin Slab","Joti One","Judson","Julee","Julius Sans One","Junge","Jura","Just Another Hand","Just Me Again Down Here","Kadwa","Kalam","Kameron","Kantumruy","Karla","Karma","Kaushan Script","Kavoon","Kdam Thmor","Keania One","Kelly Slab","Kenia","Khand","Khmer","Khula","Kite One","Knewave","Kotta One","Koulen","Kranky","Kreon","Kristi","Krona One","Kurale","La Belle Aurore","Laila","Lakki Reddy","Lancelot","Lateef","Lato","League Script","Leckerli One","Ledger","Lekton","Lemon","Libre Baskerville","Life Savers","Lilita One","Lily Script One","Limelight","Linden Hill","Lobster","Lobster Two","Londrina Outline","Londrina Shadow","Londrina Sketch","Londrina Solid","Lora","Love Ya Like A Sister","Loved by the King","Lovers Quarrel","Luckiest Guy","Lusitana","Lustria","Macondo","Macondo Swash Caps","Magra","Maiden Orange","Mako","Mallanna","Mandali","Marcellus","Marcellus SC","Marck Script","Margarine","Marko One","Marmelad","Martel","Martel Sans","Marvel","Mate","Mate SC","Maven Pro","McLaren","Meddon","MedievalSharp","Medula One","Megrim","Meie Script","Merienda","Merienda One","Merriweather","Merriweather Sans","Metal","Metal Mania","Metamorphous","Metrophobic","Michroma","Milonga","Miltonian","Miltonian Tattoo","Miniver","Miss Fajardose","Modak","Modern Antiqua","Molengo","Molle","Monda","Monofett","Monoton","Monsieur La Doulaise","Montaga","Montez","Montserrat","Montserrat Alternates","Montserrat Subrayada","Moul","Moulpali","Mountains of Christmas","Mouse Memoirs","Mr Bedfort","Mr Dafoe","Mr De Haviland","Mrs Saint Delafield","Mrs Sheppards","Muli","Mystery Quest","NTR","Neucha","Neuton","New Rocker","News Cycle","Niconne","Nixie One","Nobile","Nokora","Norican","Nosifer","Nothing You Could Do","Noticia Text","Noto Sans","Noto Serif","Nova Cut","Nova Flat","Nova Mono","Nova Oval","Nova Round","Nova Script","Nova Slim","Nova Square","Numans","Nunito","Odor Mean Chey","Offside","Old Standard TT","Oldenburg","Oleo Script","Oleo Script Swash Caps","Open Sans","Open Sans Condensed","Oranienbaum","Orbitron","Oregano","Orienta","Original Surfer","Oswald","Over the Rainbow","Overlock","Overlock SC","Ovo","Oxygen","Oxygen Mono","PT Mono","PT Sans","PT Sans Caption","PT Sans Narrow","PT Serif","PT Serif Caption","Pacifico","Palanquin","Palanquin Dark","Paprika","Parisienne","Passero One","Passion One","Pathway Gothic One","Patrick Hand","Patrick Hand SC","Patua One","Paytone One","Peddana","Peralta","Permanent Marker","Petit Formal Script","Petrona","Philosopher","Piedra","Pinyon Script","Pirata One","Plaster","Play","Playball","Playfair Display","Playfair Display SC","Podkova","Poiret One","Poller One","Poly","Pompiere","Pontano Sans","Poppins","Port Lligat Sans","Port Lligat Slab","Pragati Narrow","Prata","Preahvihear","Press Start 2P","Princess Sofia","Prociono","Prosto One","Puritan","Purple Purse","Quando","Quantico","Quattrocento","Quattrocento Sans","Questrial","Quicksand","Quintessential","Qwigley","Racing Sans One","Radley","Rajdhani","Raleway","Raleway Dots","Ramabhadra","Ramaraja","Rambla","Rammetto One","Ranchers","Rancho","Ranga","Rationale","Ravi Prakash","Redressed","Reenie Beanie","Revalia","Rhodium Libre","Ribeye","Ribeye Marrow","Righteous","Risque","Roboto","Roboto Condensed","Roboto Mono","Roboto Slab","Rochester","Rock Salt","Rokkitt","Romanesco","Ropa Sans","Rosario","Rosarivo","Rouge Script","Rozha One","Rubik","Rubik Mono One","Rubik One","Ruda","Rufina","Ruge Boogie","Ruluko","Rum Raisin","Ruslan Display","Russo One","Ruthie","Rye","Sacramento","Sahitya","Sail","Salsa","Sanchez","Sancreek","Sansita One","Sarala","Sarina","Sarpanch","Satisfy","Scada","Scheherazade","Schoolbell","Seaweed Script","Sevillana","Seymour One","Shadows Into Light","Shadows Into Light Two","Shanti","Share","Share Tech","Share Tech Mono","Shojumaru","Short Stack","Siemreap","Sigmar One","Signika","Signika Negative","Simonetta","Sintony","Sirin Stencil","Six Caps","Skranji","Slabo 13px","Slabo 27px","Slackey","Smokum","Smythe","Sniglet","Snippet","Snowburst One","Sofadi One","Sofia","Sonsie One","Sorts Mill Goudy","Source Code Pro","Source Sans Pro","Source Serif Pro","Special Elite","Spicy Rice","Spinnaker","Spirax","Squada One","Sree Krushnadevaraya","Stalemate","Stalinist One","Stardos Stencil","Stint Ultra Condensed","Stint Ultra Expanded","Stoke","Strait","Sue Ellen Francisco","Sumana","Sunshiney","Supermercado One","Sura","Suranna","Suravaram","Suwannaphum","Swanky and Moo Moo","Syncopate","Tangerine","Taprom","Tauri","Teko","Telex","Tenali Ramakrishna","Tenor Sans","Text Me One","The Girl Next Door","Tienne","Tillana","Timmana","Tinos","Titan One","Titillium Web","Trade Winds","Trocchi","Trochut","Trykker","Tulpen One","Ubuntu","Ubuntu Condensed","Ubuntu Mono","Ultra","Uncial Antiqua","Underdog","Unica One","UnifrakturCook","UnifrakturMaguntia","Unkempt","Unlock","Unna","VT323","Vampiro One","Varela","Varela Round","Vast Shadow","Vesper Libre","Vibur","Vidaloka","Viga","Voces","Volkhov","Vollkorn","Voltaire","Waiting for the Sunrise","Wallpoet","Walter Turncoat","Warnes","Wellfleet","Wendy One","Wire One","Work Sans","Yanone Kaffeesatz","Yantramanav","Yellowtail","Yeseva One","Yesteryear","Zeyada"]}).call(this)},function(t,e,r){"use strict";(function(t){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +var n=r(8),i=r(3),o=r(9);function a(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function d(t,e){if(l.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return z(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return U(t).length;default:if(n)return z(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return R(this,e,r);case"utf8":case"utf-8":return C(this,e,r);case"ascii":return O(this,e,r);case"latin1":case"binary":return P(this,e,r);case"base64":return T(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function y(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function m(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if("number"==typeof e)return e&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(t,e,r,n,i){var o,a=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,s/=2,l/=2,r/=2}function u(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var c=-1;for(o=r;os&&(r=s-l),o=r;o>=0;o--){for(var h=!0,p=0;pi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function T(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function C(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:u>223?3:u>191?2:1;if(i+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128==(192&(o=t[i+1]))&&(l=(31&u)<<6|63&o)>127&&(c=l);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(l=(15&u)<<12|(63&o)<<6|63&a)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(l=(15&u)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(c=l)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},l.prototype.compare=function(t,e,r,n,i){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(e>>>=0),s=Math.min(o,a),u=this.slice(n,i),c=t.slice(e,r),h=0;hi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return _(this,t,e,r);case"utf8":case"utf-8":return b(this,t,e,r);case"ascii":return x(this,t,e,r);case"latin1":case"binary":return w(this,t,e,r);case"base64":return S(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function O(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",o=e;or)throw new RangeError("Trying to access beyond buffer length")}function M(t,e,r,n,i,o){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function F(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function A(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function k(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(t,e,r,n,o){return o||k(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function N(t,e,r,n,o){return o||k(t,0,r,8),i.write(t,e,r,n,52,8),r+8}l.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},l.prototype.readUInt8=function(t,e){return e||L(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return e||L(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return e||L(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return e||L(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return e||L(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||L(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||L(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},l.prototype.readInt8=function(t,e){return e||L(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){e||L(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(t,e){e||L(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(t,e){return e||L(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return e||L(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return e||L(t,4,this.length),i.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return e||L(t,4,this.length),i.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return e||L(t,8,this.length),i.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return e||L(t,8,this.length),i.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||M(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},l.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,1,255,0),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},l.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},l.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):A(this,t,e,!0),e+4},l.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):A(this,t,e,!1),e+4},l.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);M(this,t,e,r,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+r},l.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);M(this,t,e,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+r},l.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,1,127,-128),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):F(this,t,e,!0),e+2},l.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):F(this,t,e,!1),e+2},l.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):A(this,t,e,!0),e+4},l.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||M(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):A(this,t,e,!1),e+4},l.prototype.writeFloatLE=function(t,e,r){return j(this,t,e,!0,r)},l.prototype.writeFloatBE=function(t,e,r){return j(this,t,e,!1,r)},l.prototype.writeDoubleLE=function(t,e,r){return N(this,t,e,!0,r)},l.prototype.writeDoubleBE=function(t,e,r){return N(this,t,e,!1,r)},l.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!l.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function U(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(D,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function B(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(4))},function(t,e,r){"use strict";e.byteLength=function(t){var e=u(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,n=u(t),a=n[0],s=n[1],l=new o(function(t,e,r){return 3*(e+r)/4-r}(0,a,s)),c=0,h=s>0?a-4:a;for(r=0;r>16&255,l[c++]=e>>8&255,l[c++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,l[c++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,l[c++]=e>>8&255,l[c++]=255&e);return l},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],a=0,s=r-i;as?s:a+16383));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return o.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function c(t,e,r){for(var i,o,a=[],s=e;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e,r){"use strict";function n(){return function(){throw new Error("Unimplemented abstract method.")}()}r.r(e);var i=0;function o(t){return t.ol_uid||(t.ol_uid=String(++i))}var a,s=(a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(t,e)},function(t,e){function r(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),l=function(t){function e(e){var r=this,n="Assertion failed. See https://openlayers.org/en/"+("v"+"6.5.0".split("-")[0])+"/doc/errors/#"+e+" for details.";return(r=t.call(this,n)||this).code=e,r.name="AssertionError",r.message=n,r}return s(e,t),e}(Error);function u(t){t.stopPropagation()}var c=function(){function t(t){this.propagationStopped,this.type=t,this.target=null}return t.prototype.preventDefault=function(){this.propagationStopped=!0},t.prototype.stopPropagation=function(){this.propagationStopped=!0},t}(),h="propertychange",p=function(){function t(){this.disposed=!1}return t.prototype.dispose=function(){this.disposed||(this.disposed=!0,this.disposeInternal())},t.prototype.disposeInternal=function(){},t}();function f(t,e,r){for(var n,i,o=r||d,a=0,s=t.length,l=!1;a>1)],e))<0?a=n+1:(s=n,l=!i);return l?a:~a}function d(t,e){return t>e?1:t=0}function y(t,e,r){var n=t.length;if(t[0]<=e)return 0;if(e<=t[n-1])return n-1;var i=void 0;if(r>0){for(i=1;i>>0,i=0;i0||r&&0===o)}))}function S(){return!0}function E(){return!1}function T(){}function C(t){var e,r,n,i=!1;return function(){var o=Array.prototype.slice.call(arguments);return i&&this===n&&b(o,r)||(i=!0,n=this,r=o,e=t.apply(this,arguments)),e}}var O="function"==typeof Object.assign?Object.assign:function(t,e){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(t),n=1,i=arguments.length;n0)},e.prototype.removeEventListener=function(t,e){var r=this.listeners_&&this.listeners_[t];if(r){var n=r.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(r[n]=T,++this.pendingRemovals_[t]):(r.splice(n,1),0===r.length&&delete this.listeners_[t]))}},e}(p),F="change",A="error",k="clear",j="contextmenu",N="click",D="dblclick",G="dragenter",z="dragover",U="drop",B="keydown",V="keypress",Y="load",W="resize",q="touchmove",X="wheel";function Z(t,e,r,n,i){if(n&&n!==t&&(r=r.bind(n)),i){var o=r;r=function(){t.removeEventListener(e,r),o.apply(this,arguments)}}var a={target:t,type:e,listener:r};return t.addEventListener(e,r),a}function K(t,e,r,n){return Z(t,e,r,n,!0)}function H(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),P(t))}var $=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function J(t){if(Array.isArray(t))for(var e=0,r=t.length;e0;)this.pop()},e.prototype.extend=function(t){for(var e=0,r=t.length;ei&&(l|=qt),so&&(l|=Wt),l===Vt&&(l=Yt),l}function ne(){return[1/0,1/0,-1/0,-1/0]}function ie(t,e,r,n,i){return i?(i[0]=t,i[1]=e,i[2]=r,i[3]=n,i):[t,e,r,n]}function oe(t){return ie(1/0,1/0,-1/0,-1/0,t)}function ae(t,e){var r=t[0],n=t[1];return ie(r,n,r,n,e)}function se(t,e){return fe(oe(e),t)}function le(t,e,r,n,i){return de(oe(i),t,e,r,n)}function ue(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function ce(t,e,r){return Math.abs(t[0]-e[0])t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function pe(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function fe(t,e){for(var r=0,n=e.length;re[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function Ie(t){return t[2]=a&&g<=l),n||!(o&qt)||i&qt||(n=(y=f-(p-l)*d)>=s&&y<=u),n||!(o&Xt)||i&Xt||(n=(g=p-(f-s)/d)>=a&&g<=l),n||!(o&Zt)||i&Zt||(n=(y=f-(p-a)*d)>=s&&y<=u)}return n}function Ae(t,e,r,n){var i=[];if(n>1)for(var o=t[2]-t[0],a=t[3]-t[1],s=0;s=r[2])){var i=Pe(r),o=Math.floor((n[0]-r[0])/i)*i;t[0]-=o,t[2]-=o}return t}var je=function(){function t(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}return t.prototype.canWrapX=function(){return this.canWrapX_},t.prototype.getCode=function(){return this.code_},t.prototype.getExtent=function(){return this.extent_},t.prototype.getUnits=function(){return this.units_},t.prototype.getMetersPerUnit=function(){return this.metersPerUnit_||wt[this.units_]},t.prototype.getWorldExtent=function(){return this.worldExtent_},t.prototype.getAxisOrientation=function(){return this.axisOrientation_},t.prototype.isGlobal=function(){return this.global_},t.prototype.setGlobal=function(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)},t.prototype.getDefaultTileGrid=function(){return this.defaultTileGrid_},t.prototype.setDefaultTileGrid=function(t){this.defaultTileGrid_=t},t.prototype.setExtent=function(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)},t.prototype.setWorldExtent=function(t){this.worldExtent_=t},t.prototype.setGetPointResolution=function(t){this.getPointResolutionFunc_=t},t.prototype.getPointResolutionFunc=function(){return this.getPointResolutionFunc_},t}();function Ne(t,e,r){return Math.min(Math.max(t,e),r)}var De="cosh"in Math?Math.cosh:function(t){var e=Math.exp(t);return(e+1/e)/2},Ge="log2"in Math?Math.log2:function(t){return Math.log(t)*Math.LOG2E};function ze(t,e,r,n,i,o){var a=i-r,s=o-n;if(0!==a||0!==s){var l=((t-r)*a+(e-n)*s)/(a*a+s*s);l>1?(r=i,n=o):l>0&&(r+=a*l,n+=s*l)}return Ue(t,e,r,n)}function Ue(t,e,r,n){var i=r-t,o=n-e;return i*i+o*o}function Be(t){for(var e=t.length,r=0;ri&&(i=a,n=o)}if(0===i)return null;var s=t[n];t[n]=t[r],t[r]=s;for(var l=r+1;l=0;p--){h[p]=t[p][e]/t[p][p];for(var f=p-1;f>=0;f--)t[f][e]-=t[f][p]*h[p]}return h}function Ve(t){return 180*t/Math.PI}function Ye(t){return t*Math.PI/180}function We(t,e){var r=t%e;return r*e<0?r+e:r}function qe(t,e,r){return t+r*(e-t)}var Xe=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ze=6378137*Math.PI,Ke=[-Ze,-Ze,Ze,Ze],He=[-180,-85,180,85],$e=6378137*Math.log(Math.tan(Math.PI/2)),Je=function(t){function e(e){return t.call(this,{code:e,units:St.METERS,extent:Ke,global:!0,worldExtent:He,getPointResolution:function(t,e){return t/De(e[1]/6378137)}})||this}return Xe(e,t),e}(je),Qe=[new Je("EPSG:3857"),new Je("EPSG:102100"),new Je("EPSG:102113"),new Je("EPSG:900913"),new Je("http://www.opengis.net/gml/srs/epsg.xml#3857")];function tr(t,e,r){var n=t.length,i=r>1?r:2,o=e;void 0===o&&(o=i>2?t.slice():new Array(n));for(var a=0;a$e?s=$e:s<-$e&&(s=-$e),o[a+1]=s}return o}function er(t,e,r){var n=t.length,i=r>1?r:2,o=e;void 0===o&&(o=i>2?t.slice():new Array(n));for(var a=0;ae?n:new Array(1+e-i).join("0")+n}function br(t,e){for(var r=(""+t).split("."),n=(""+e).split("."),i=0;ia)return 1;if(a>o)return-1}return 0}function xr(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function wr(t,e){var r=e.getRadius(),n=e.getCenter(),i=n[0],o=n[1],a=t[0]-i,s=t[1]-o;0===a&&0===s&&(a=1);var l=Math.sqrt(a*a+s*s);return[i+r*a/l,o+r*s/l]}function Sr(t,e){var r,n,i=t[0],o=t[1],a=e[0],s=e[1],l=a[0],u=a[1],c=s[0],h=s[1],p=c-l,f=h-u,d=0===p&&0===f?0:(p*(i-l)+f*(o-u))/(p*p+f*f||0);return d<=0?(r=l,n=u):d>=1?(r=c,n=h):(r=l+d*p,n=u+d*f),[r,n]}function Er(t,e,r){var n=We(e+180,360)-180,i=Math.abs(3600*n),o=r||0,a=Math.pow(10,o),s=Math.floor(i/3600),l=Math.floor((i-3600*s)/60),u=i-3600*s-60*l;return(u=Math.ceil(u*a)/a)>=60&&(u=0,l+=1),l>=60&&(l=0,s+=1),s+"° "+_r(l,2)+"′ "+_r(u,2,o)+"″"+(0==n?"":" "+t.charAt(n<0?1:0))}function Tr(t,e,r){return t?e.replace("{x}",t[0].toFixed(r)).replace("{y}",t[1].toFixed(r)):""}function Cr(t,e){for(var r=!0,n=t.length-1;n>=0;--n)if(t[n]!=e[n]){r=!1;break}return r}function Or(t,e){var r=Math.cos(e),n=Math.sin(e),i=t[0]*r-t[1]*n,o=t[1]*r+t[0]*n;return t[0]=i,t[1]=o,t}function Pr(t,e){return t[0]*=e,t[1]*=e,t}function Rr(t,e){var r=t[0]-e[0],n=t[1]-e[1];return r*r+n*n}function Ir(t,e){return Math.sqrt(Rr(t,e))}function Lr(t,e){return Rr(t,Sr(t,e))}function Mr(t,e){return Tr(t,"{x}, {y}",e)}function Fr(t,e){if(e.canWrapX()){var r=Pe(e.getExtent()),n=Ar(t,e,r);n&&(t[0]-=n*r)}return t}function Ar(t,e,r){var n=e.getExtent(),i=0;if(e.canWrapX()&&(t[0]n[2])){var o=r||Pe(n);i=Math.floor((t[0]-n[0])/o)}return i}function kr(t,e,r){var n;if(void 0!==e){for(var i=0,o=t.length;i=2;--u)a[s+u]=e[s+u]}return a}}function Wr(t,e,r,n){var i=Gr(t),o=Gr(e);fr(i,o,Yr(r)),fr(o,i,Yr(n))}function qr(t,e){return Hr(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")}function Xr(t,e){if(t===e)return!0;var r=t.getUnits()===e.getUnits();return(t.getCode()===e.getCode()||Zr(t,e)===kr)&&r}function Zr(t,e){var r=dr(t.getCode(),e.getCode());return r||(r=jr),r}function Kr(t,e){return Zr(Gr(t),Gr(e))}function Hr(t,e,r){return Kr(e,r)(t,void 0,t.length)}function $r(t,e,r,n){return Ae(t,Kr(e,r),void 0,n)}var Jr=null;function Qr(t){Jr=Gr(t)}function tn(){return Jr}function en(t,e){return Jr?Hr(t,e,Jr):t}function rn(t,e){return Jr?Hr(t,Jr,e):t}function nn(t,e){return Jr?$r(t,e,Jr):t}function on(t,e){return Jr?$r(t,Jr,e):t}function an(t,e,r){return function(n){var i,o,a=n[0],s=n[1];if(t.canWrapX()){var l=t.getExtent(),u=Pe(l);(o=Ar(n,t,u))&&(a-=o*u),a=Ne(a,l[0],l[2]),s=Ne(s,l[1],l[3]),i=r([a,s])}else i=r(n);return o&&e.canWrapX()&&(i[0]+=o*Pe(e.getExtent())),i}}function sn(){Ur(Qe),Ur(ar),Br(ar,Qe,tr,er)}function ln(t,e,r,n,i,o){for(var a=o||[],s=0,l=e;l1)s=r;else{if(p>0){for(var f=0;fi&&(i=u),o=s,a=l}return i}function xn(t,e,r,n,i){for(var o=0,a=r.length;o0;){for(var h=u.pop(),p=u.pop(),f=0,d=t[p],g=t[p+1],y=t[h],m=t[h+1],v=p+n;vf&&(c=v,f=_)}f>i&&(l[(c-e)/n]=1,p+ni&&(o[a++]=u,o[a++]=c,s=u,l=c);return u==s&&c==l||(o[a++]=u,o[a++]=c),a}function Fn(t,e){return e*Math.round(t/e)}function An(t,e,r,n,i,o,a){if(e==r)return a;var s,l,u=Fn(t[e],i),c=Fn(t[e+1],i);e+=n,o[a++]=u,o[a++]=c;do{if(s=Fn(t[e],i),l=Fn(t[e+1],i),(e+=n)==r)return o[a++]=s,o[a++]=l,a}while(s==u&&l==c);for(;e0&&g>f)&&(d<0&&y0&&y>d)?(s=h,l=p):(o[a++]=s,o[a++]=l,u=s,c=l,s=h,l=p)}}return o[a++]=s,o[a++]=l,a}function kn(t,e,r,n,i,o,a,s){for(var l=0,u=r.length;lo&&(u-s)*(o-l)-(i-s)*(c-l)>0&&a++:c<=o&&(u-s)*(o-l)-(i-s)*(c-l)<0&&a--,s=u,l=c}return 0!==a}function Kn(t,e,r,n,i,o){if(0===r.length)return!1;if(!Zn(t,e,r[0],n,i,o))return!1;for(var a=1,s=r.length;ax&&Kn(t,e,r,n,u=(c+h)/2,g)&&(b=u,x=w),c=h}return isNaN(b)&&(b=i[o]),a?(a.push(b,g,x),a):[b,g,x]}function Jn(t,e,r,n,i){for(var o=[],a=0,s=r.length;a=i[0]&&o[2]<=i[2]||(o[1]>=i[1]&&o[3]<=i[3]||Qn(t,e,r,n,(function(t,e){return Fe(i,t,e)})))))}function ei(t,e,r,n,i){for(var o=0,a=r.length;o0}function si(t,e,r,n,i){for(var o=void 0!==i&&i,a=0,s=r.length;at)throw new Error("Tile load sequence violation");this.state=t,this.changed()},e.prototype.load=function(){n()},e.prototype.getAlpha=function(t,e){if(!this.transition_)return 1;var r=this.transitionStarts_[t];if(r){if(-1===r)return 1}else r=e,this.transitionStarts_[t]=r;var n=e-r+1e3/60;return n>=this.transition_?1:no(n/this.transition_)},e.prototype.inTransition=function(t){return!!this.transition_&&-1!==this.transitionStarts_[t]},e.prototype.endTransition=function(t){this.transition_&&(this.transitionStarts_[t]=-1)},e}(M);function uo(t,e,r){var n=r&&r.length?r.shift():Yi?new OffscreenCanvas(t||300,e||300):document.createElement("canvas");return t&&(n.width=t),e&&(n.height=e),n.getContext("2d")}function co(t){var e=t.offsetWidth,r=getComputedStyle(t);return e+=parseInt(r.marginLeft,10)+parseInt(r.marginRight,10)}function ho(t){var e=t.offsetHeight,r=getComputedStyle(t);return e+=parseInt(r.marginTop,10)+parseInt(r.marginBottom,10)}function po(t,e){var r=e.parentNode;r&&r.replaceChild(t,e)}function fo(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}function go(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function yo(t,e){for(var r=t.childNodes,n=0;;++n){var i=r[n],o=e[n];if(!i&&!o)break;i!==o&&(i?o?t.insertBefore(o,i):(t.removeChild(i),--n):t.appendChild(o))}}var mo=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();var vo=function(t){function e(e,r,n,i,o,a){var s=t.call(this,e,r,a)||this;return s.crossOrigin_=i,s.src_=n,s.key=n,s.image_=new Image,null!==i&&(s.image_.crossOrigin=i),s.unlisten_=null,s.tileLoadFunction_=o,s}return mo(e,t),e.prototype.getImage=function(){return this.image_},e.prototype.handleImageError_=function(){var t;this.state=eo,this.unlistenImage_(),this.image_=((t=uo(1,1)).fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas),this.changed()},e.prototype.handleImageLoad_=function(){var t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=to:this.state=ro,this.unlistenImage_(),this.changed()},e.prototype.load=function(){this.state==eo&&(this.state=Ji,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==Ji&&(this.state=Qi,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=Zi(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))},e.prototype.unlistenImage_=function(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)},e}(lo),_o=function(){function t(t,e,r){this.decay_=t,this.minVelocity_=e,this.delay_=r,this.points_=[],this.angle_=0,this.initialVelocity_=0}return t.prototype.begin=function(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0},t.prototype.update=function(t,e){this.points_.push(t,e,Date.now())},t.prototype.end=function(){if(this.points_.length<6)return!1;var t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[r+2]>t;)r-=3;var n=this.points_[e+2]-this.points_[r+2];if(n<1e3/60)return!1;var i=this.points_[e]-this.points_[r],o=this.points_[e+1]-this.points_[r+1];return this.angle_=Math.atan2(o,i),this.initialVelocity_=Math.sqrt(i*i+o*o)/n,this.initialVelocity_>this.minVelocity_},t.prototype.getDistance=function(){return(this.minVelocity_-this.initialVelocity_)/this.decay_},t.prototype.getAngle=function(){return this.angle_},t}(),bo=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,xo=/^([a-z]*)$|^hsla?\(.*\)$/i;function wo(t){return"string"==typeof t?t:Ro(t)}function So(t){var e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);var r=getComputedStyle(e).color;return document.body.removeChild(e),r}return""}var Eo,To,Co=(Eo={},To=0,function(t){var e;if(Eo.hasOwnProperty(t))e=Eo[t];else{if(To>=1024){var r=0;for(var n in Eo)0==(3&r++)&&(delete Eo[n],--To)}e=function(t){var e,r,n,i,o;if(xo.exec(t)&&(t=So(t)),bo.exec(t)){var a=t.length-1,s=void 0;s=a<=4?1:2;var l=4===a||8===a;e=parseInt(t.substr(1+0*s,s),16),r=parseInt(t.substr(1+1*s,s),16),n=parseInt(t.substr(1+2*s,s),16),i=l?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,r=(r<<4)+r,n=(n<<4)+n,l&&(i=(i<<4)+i)),o=[e,r,n,i/255]}else 0==t.indexOf("rgba(")?Po(o=t.slice(5,-1).split(",").map(Number)):0==t.indexOf("rgb(")?((o=t.slice(4,-1).split(",").map(Number)).push(1),Po(o)):pt(!1,14);return o}(t),Eo[t]=e,++To}return e});function Oo(t){return Array.isArray(t)?t:Co(t)}function Po(t){return t[0]=Ne(t[0]+.5|0,0,255),t[1]=Ne(t[1]+.5|0,0,255),t[2]=Ne(t[2]+.5|0,0,255),t[3]=Ne(t[3],0,1),t}function Ro(t){var e=t[0];e!=(0|e)&&(e=e+.5|0);var r=t[1];r!=(0|r)&&(r=r+.5|0);var n=t[2];return n!=(0|n)&&(n=n+.5|0),"rgba("+e+","+r+","+n+","+(void 0===t[3]?1:t[3])+")"}function Io(t){return xo.test(t)&&(t=So(t)),bo.test(t)||0===t.indexOf("rgba(")||0===t.indexOf("rgb(")}var Lo=function(){function t(){this.cache_={},this.cacheSize_=0,this.maxCacheSize_=32}return t.prototype.clear=function(){this.cache_={},this.cacheSize_=0},t.prototype.canExpireCache=function(){return this.cacheSize_>this.maxCacheSize_},t.prototype.expire=function(){if(this.canExpireCache()){var t=0;for(var e in this.cache_){var r=this.cache_[e];0!=(3&t++)||r.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}},t.prototype.get=function(t,e,r){var n=Mo(t,e,r);return n in this.cache_?this.cache_[n]:null},t.prototype.set=function(t,e,r,n){var i=Mo(t,e,r);this.cache_[i]=n,++this.cacheSize_},t.prototype.setSize=function(t){this.maxCacheSize_=t,this.expire()},t}();function Mo(t,e,r){return e+":"+t+":"+(r?wo(r):"null")}var Fo=Lo,Ao=new Lo,ko="opacity",jo="visible",No="extent",Do="zIndex",Go="maxResolution",zo="minResolution",Uo="maxZoom",Bo="minZoom",Vo="source",Yo=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Wo=function(t){function e(e){var r=t.call(this)||this,n=O({},e);return n[ko]=void 0!==e.opacity?e.opacity:1,pt("number"==typeof n[ko],64),n[jo]=void 0===e.visible||e.visible,n[Do]=e.zIndex,n[Go]=void 0!==e.maxResolution?e.maxResolution:1/0,n[zo]=void 0!==e.minResolution?e.minResolution:0,n[Bo]=void 0!==e.minZoom?e.minZoom:-1/0,n[Uo]=void 0!==e.maxZoom?e.maxZoom:1/0,r.className_=void 0!==n.className?e.className:"ol-layer",delete n.className,r.setProperties(n),r.state_=null,r}return Yo(e,t),e.prototype.getClassName=function(){return this.className_},e.prototype.getLayerState=function(t){var e=this.state_||{layer:this,managed:void 0===t||t},r=this.getZIndex();return e.opacity=Ne(Math.round(100*this.getOpacity())/100,0,1),e.sourceState=this.getSourceState(),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==r?r:!1===e.managed?1/0:0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e},e.prototype.getLayersArray=function(t){return n()},e.prototype.getLayerStatesArray=function(t){return n()},e.prototype.getExtent=function(){return this.get(No)},e.prototype.getMaxResolution=function(){return this.get(Go)},e.prototype.getMinResolution=function(){return this.get(zo)},e.prototype.getMinZoom=function(){return this.get(Bo)},e.prototype.getMaxZoom=function(){return this.get(Uo)},e.prototype.getOpacity=function(){return this.get(ko)},e.prototype.getSourceState=function(){return n()},e.prototype.getVisible=function(){return this.get(jo)},e.prototype.getZIndex=function(){return this.get(Do)},e.prototype.setExtent=function(t){this.set(No,t)},e.prototype.setMaxResolution=function(t){this.set(Go,t)},e.prototype.setMinResolution=function(t){this.set(zo,t)},e.prototype.setMaxZoom=function(t){this.set(Uo,t)},e.prototype.setMinZoom=function(t){this.set(Bo,t)},e.prototype.setOpacity=function(t){pt("number"==typeof t,64),this.set(ko,t)},e.prototype.setVisible=function(t){this.set(jo,t)},e.prototype.setZIndex=function(t){this.set(Do,t)},e.prototype.disposeInternal=function(){this.state_&&(this.state_.layer=null,this.state_=null),t.prototype.disposeInternal.call(this)},e}(ot),qo="prerender",Xo="postrender",Zo="precompose",Ko="postcompose",Ho="rendercomplete",$o="undefined",Jo="loading",Qo="ready",ta="error",ea=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function ra(t,e){if(!t.visible)return!1;var r=e.resolution;if(r=t.maxResolution)return!1;var n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}var na=function(t){function e(e){var r=this,n=O({},e);delete n.source,(r=t.call(this,n)||this).mapPrecomposeKey_=null,r.mapRenderKey_=null,r.sourceChangeKey_=null,r.renderer_=null,e.render&&(r.render=e.render),e.map&&r.setMap(e.map),r.addEventListener(it(Vo),r.handleSourcePropertyChange_);var i=e.source?e.source:null;return r.setSource(i),r}return ea(e,t),e.prototype.getLayersArray=function(t){var e=t||[];return e.push(this),e},e.prototype.getLayerStatesArray=function(t){var e=t||[];return e.push(this.getLayerState()),e},e.prototype.getSource=function(){return this.get(Vo)||null},e.prototype.getSourceState=function(){var t=this.getSource();return t?t.getState():$o},e.prototype.handleSourceChange_=function(){this.changed()},e.prototype.handleSourcePropertyChange_=function(){this.sourceChangeKey_&&(H(this.sourceChangeKey_),this.sourceChangeKey_=null);var t=this.getSource();t&&(this.sourceChangeKey_=Z(t,F,this.handleSourceChange_,this)),this.changed()},e.prototype.getFeatures=function(t){return this.renderer_.getFeatures(t)},e.prototype.render=function(t,e){var r=this.getRenderer();if(r.prepareFrame(t))return r.renderFrame(t,e)},e.prototype.setMap=function(t){this.mapPrecomposeKey_&&(H(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(H(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=Z(t,Zo,(function(t){var e=t.frameState.layerStatesArray,r=this.getLayerState(!1);pt(!e.some((function(t){return t.layer===r.layer})),67),e.push(r)}),this),this.mapRenderKey_=Z(this,F,t.render,t),this.changed())},e.prototype.setSource=function(t){this.set(Vo,t)},e.prototype.getRenderer=function(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_},e.prototype.hasRenderer=function(){return!!this.renderer_},e.prototype.createRenderer=function(){return null},e.prototype.disposeInternal=function(){this.setSource(null),t.prototype.disposeInternal.call(this)},e}(Wo),ia=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function oa(t,e){Ao.expire()}var aa=function(t){function e(e){var r=t.call(this)||this;return r.map_=e,r}return ia(e,t),e.prototype.dispatchRenderEvent=function(t,e){n()},e.prototype.calculateMatrices2D=function(t){var e=t.viewState,r=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;kt(r,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),jt(n,r)},e.prototype.forEachFeatureAtCoordinate=function(t,e,r,n,i,o,a,s){var l,u=e.viewState;function c(t,e,r,n){return i.call(o,e,t?r:null,n)}var h=u.projection,p=Fr(t.slice(),h),f=[[0,0]];if(h.canWrapX()&&n){var d=Pe(h.getExtent());f.push([-d,0],[d,0])}for(var g=e.layerStatesArray,y=g.length,m=[],v=[],_=0;_=0;--b){var x=g[b],w=x.layer;if(w.hasRenderer()&&ra(x,u)&&a.call(s,w)){var S=w.getRenderer(),E=w.getSource();if(S&&E){var T=E.getWrapX()?p:t,C=c.bind(null,x.managed);v[0]=T[0]+f[_][0],v[1]=T[1]+f[_][1],l=S.forEachFeatureAtCoordinate(v,e,r,C,m)}if(l)return l}}if(0!==m.length){var O=1/m.length;return m.forEach((function(t,e){return t.distanceSq+=e*O})),m.sort((function(t,e){return t.distanceSq-e.distanceSq})),m.some((function(t){return l=t.callback(t.feature,t.layer,t.geometry)})),l}},e.prototype.forEachLayerAtPixel=function(t,e,r,i,o){return n()},e.prototype.hasFeatureAtCoordinate=function(t,e,r,n,i,o){return void 0!==this.forEachFeatureAtCoordinate(t,e,r,n,S,this,i,o)},e.prototype.getMap=function(){return this.map_},e.prototype.renderFrame=function(t){n()},e.prototype.scheduleExpireIconCache=function(t){Ao.canExpireCache()&&t.postRenderFunctions.push(oa)},e}(p),sa=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),la=function(t){function e(e,r,n,i){var o=t.call(this,e)||this;return o.inversePixelTransform=r,o.frameState=n,o.context=i,o}return sa(e,t),e}(c),ua=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),ca=["style","variant","weight","size","lineHeight","family"],ha=function(t){var e=t.match(ua);if(!e)return null;for(var r={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"},n=0,i=ca.length;n=0;--o)n[o].renderDeclutter(t);yo(this.element_,this.children_),this.dispatchRenderEvent(Ko,t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}else this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1)},e.prototype.forEachLayerAtPixel=function(t,e,r,n,i){for(var o=e.viewState,a=e.layerStatesArray,s=a.length-1;s>=0;--s){var l=a[s],u=l.layer;if(u.hasRenderer()&&ra(l,o)&&i(u)){var c=u.getRenderer().getDataAtPixel(t,e,r);if(c){var h=n(u,c);if(h)return h}}}},e}(aa),Ma=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Fa="layers",Aa=function(t){function e(e){var r=this,n=e||{},i=O({},n);delete i.layers;var o=n.layers;return(r=t.call(this,i)||this).layersListenerKeys_=[],r.listenerKeys_={},r.addEventListener(it(Fa),r.handleLayersChanged_),o?Array.isArray(o)?o=new ht(o.slice(),{unique:!0}):pt("function"==typeof o.getArray,43):o=new ht(void 0,{unique:!0}),r.setLayers(o),r}return Ma(e,t),e.prototype.handleLayerChange_=function(){this.changed()},e.prototype.handleLayersChanged_=function(){this.layersListenerKeys_.forEach(H),this.layersListenerKeys_.length=0;var t=this.getLayers();for(var e in this.layersListenerKeys_.push(Z(t,at,this.handleLayersAdd_,this),Z(t,st,this.handleLayersRemove_,this)),this.listenerKeys_)this.listenerKeys_[e].forEach(H);P(this.listenerKeys_);for(var r=t.getArray(),n=0,i=r.length;nthis.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_},e.prototype.disposeInternal=function(){this.relayedListenerKey_&&(H(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(q,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(H(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(H),this.dragListenerKeys_.length=0,this.element_=null,t.prototype.disposeInternal.call(this)},e}(M),qa="postrender",Xa="movestart",Za="moveend",Ka="layergroup",Ha="size",$a="target",Ja="view",Qa=function(){function t(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}return t.prototype.clear=function(){this.elements_.length=0,this.priorities_.length=0,P(this.queuedElements_)},t.prototype.dequeue=function(){var t=this.elements_,e=this.priorities_,r=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));var n=this.keyFunction_(r);return delete this.queuedElements_[n],r},t.prototype.enqueue=function(t){pt(!(this.keyFunction_(t)in this.queuedElements_),31);var e=this.priorityFunction_(t);return e!=1/0&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)},t.prototype.getCount=function(){return this.elements_.length},t.prototype.getLeftChildIndex_=function(t){return 2*t+1},t.prototype.getRightChildIndex_=function(t){return 2*t+2},t.prototype.getParentIndex_=function(t){return t-1>>1},t.prototype.heapify_=function(){var t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)},t.prototype.isEmpty=function(){return 0===this.elements_.length},t.prototype.isKeyQueued=function(t){return t in this.queuedElements_},t.prototype.isQueued=function(t){return this.isKeyQueued(this.keyFunction_(t))},t.prototype.siftUp_=function(t){for(var e=this.elements_,r=this.priorities_,n=e.length,i=e[t],o=r[t],a=t;t>1;){var s=this.getLeftChildIndex_(t),l=this.getRightChildIndex_(t),u=lt;){var a=this.getParentIndex_(e);if(!(n[a]>o))break;r[e]=r[a],n[e]=n[a],e=a}r[e]=i,n[e]=o},t.prototype.reprioritize=function(){var t,e,r,n=this.priorityFunction_,i=this.elements_,o=this.priorities_,a=0,s=i.length;for(e=0;e0;)n=(r=this.dequeue()[0]).getKey(),r.getState()!==Ji||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++i,r.load())},e}(Qa);function rs(t,e,r,n,i){if(!t||!(r in t.wantedTiles))return 1/0;if(!t.wantedTiles[r][e.getKey()])return 1/0;var o=t.viewState.center,a=n[0]-o[0],s=n[1]-o[1];return 65536*Math.log(i)+Math.sqrt(a*a+s*s)/i}var ns=0,is=1,os="center",as="resolution",ss="rotation";function ls(t,e,r){return function(n,i,o,a,s){if(n){var l=e?0:o[0]*i,u=e?0:o[1]*i,c=s?s[0]:0,h=s?s[1]:0,p=t[0]+l/2+c,f=t[2]-l/2+c,d=t[1]+u/2+h,g=t[3]-u/2+h;p>f&&(f=p=(f+p)/2),d>g&&(g=d=(g+d)/2);var y=Ne(n[0],p,f),m=Ne(n[1],d,g),v=30*i;return a&&r&&(y+=-v*Math.log(1+Math.max(0,p-n[0])/v)+v*Math.log(1+Math.max(0,n[0]-f)/v),m+=-v*Math.log(1+Math.max(0,d-n[1])/v)+v*Math.log(1+Math.max(0,n[1]-g)/v)),[y,m]}}}function us(t){return t}function cs(t,e,r,n){var i=Pe(e)/r[0],o=Ee(e)/r[1];return n?Math.min(t,Math.max(i,o)):Math.min(t,Math.min(i,o))}function hs(t,e,r){var n=Math.min(t,e);return n*=Math.log(1+50*Math.max(0,t/e-1))/50+1,r&&(n=Math.max(n,r),n/=Math.log(1+50*Math.max(0,r/t-1))/50+1),Ne(n,r/2,2*e)}function ps(t,e,r,n){return function(i,o,a,s){if(void 0!==i){var l=t[0],u=t[t.length-1],c=r?cs(l,r,a,n):l;if(s)return void 0===e||e?hs(i,c,u):Ne(i,u,c);var h=Math.min(c,i),p=Math.floor(y(t,h,o));return t[p]>c&&p1&&"function"==typeof arguments[r-1]&&(e=arguments[r-1],--r),!this.isDef()){var n=arguments[r-1];return n.center&&this.setCenterInternal(n.center),void 0!==n.zoom&&this.setZoom(n.zoom),void 0!==n.rotation&&this.setRotation(n.rotation),void(e&&bs(e,!0))}for(var i=Date.now(),o=this.targetCenter_.slice(),a=this.targetResolution_,s=this.targetRotation_,l=[],u=0;u0},e.prototype.getInteracting=function(){return this.hints_[is]>0},e.prototype.cancelAnimations=function(){var t;this.setHint(ns,-this.hints_[ns]);for(var e=0,r=this.animations_.length;e=0;--r){for(var n=this.animations_[r],i=!0,o=0,a=n.length;o0?l/s.duration:1;u>=1?(s.complete=!0,u=1):i=!1;var c=s.easing(u);if(s.sourceCenter){var h=s.sourceCenter[0],p=s.sourceCenter[1],f=h+c*(s.targetCenter[0]-h),d=p+c*(s.targetCenter[1]-p);this.targetCenter_=[f,d]}if(s.sourceResolution&&s.targetResolution){var g=1===c?s.targetResolution:s.sourceResolution+c*(s.targetResolution-s.sourceResolution);if(s.anchor){var y=this.getViewportSize_(this.getRotation()),m=this.constraints_.resolution(g,0,y,!0);this.targetCenter_=this.calculateCenterZoom(m,s.anchor)}this.targetResolution_=g,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){var v=1===c?We(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+c*(s.targetRotation-s.sourceRotation);if(s.anchor){var _=this.constraints_.rotation(v,!0);this.targetCenter_=this.calculateCenterRotate(_,s.anchor)}this.targetRotation_=v}if(this.applyTargetState_(!0),e=!0,!s.complete)break}}if(i){this.animations_[r]=null,this.setHint(ns,-1);var b=n[0].callback;b&&bs(b,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}},e.prototype.calculateCenterRotate=function(t,e){var r,n=this.getCenterInternal();return void 0!==n&&(Or(r=[n[0]-e[0],n[1]-e[1]],t-this.getRotation()),xr(r,e)),r},e.prototype.calculateCenterZoom=function(t,e){var r,n=this.getCenterInternal(),i=this.getResolution();void 0!==n&&void 0!==i&&(r=[e[0]-t*(e[0]-n[0])/i,e[1]-t*(e[1]-n[1])/i]);return r},e.prototype.getViewportSize_=function(t){var e=this.viewportSize_;if(t){var r=e[0],n=e[1];return[Math.abs(r*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(r*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e},e.prototype.setViewportSize=function(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)},e.prototype.getCenter=function(){var t=this.getCenterInternal();return t?en(t,this.getProjection()):t},e.prototype.getCenterInternal=function(){return this.get(os)},e.prototype.getConstraints=function(){return this.constraints_},e.prototype.getConstrainResolution=function(){return this.options_.constrainResolution},e.prototype.getHints=function(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()},e.prototype.calculateExtent=function(t){return nn(this.calculateExtentInternal(t),this.getProjection())},e.prototype.calculateExtentInternal=function(t){var e=t||this.getViewportSize_(),r=this.getCenterInternal();pt(r,1);var n=this.getResolution();pt(void 0!==n,2);var i=this.getRotation();return pt(void 0!==i,3),Se(r,n,i,e)},e.prototype.getMaxResolution=function(){return this.maxResolution_},e.prototype.getMinResolution=function(){return this.minResolution_},e.prototype.getMaxZoom=function(){return this.getZoomForResolution(this.minResolution_)},e.prototype.setMaxZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))},e.prototype.getMinZoom=function(){return this.getZoomForResolution(this.maxResolution_)},e.prototype.setMinZoom=function(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))},e.prototype.setConstrainResolution=function(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolution=function(){return this.get(as)},e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getResolutionForExtent=function(t,e){return this.getResolutionForExtentInternal(on(t,this.getProjection()),e)},e.prototype.getResolutionForExtentInternal=function(t,e){var r=e||this.getViewportSize_(),n=Pe(t)/r[0],i=Ee(t)/r[1];return Math.max(n,i)},e.prototype.getResolutionForValueFunction=function(t){var e=t||2,r=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,i=Math.log(r/n)/Math.log(e);return function(t){return r/Math.pow(e,t*i)}},e.prototype.getRotation=function(){return this.get(ss)},e.prototype.getValueForResolutionFunction=function(t){var e=Math.log(t||2),r=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,i=Math.log(r/n)/e;return function(t){return Math.log(r/t)/e/i}},e.prototype.getViewportSizeMinusPadding_=function(t){var e=this.getViewportSize_(t),r=this.padding;return r&&(e=[e[0]-r[1]-r[3],e[1]-r[0]-r[2]]),e},e.prototype.getState=function(){var t=this.getProjection(),e=this.getResolution(),r=this.getRotation(),n=this.getCenterInternal(),i=this.padding;if(i){var o=this.getViewportSizeMinusPadding_();n=Ts(n,this.getViewportSize_(),[o[0]/2+i[3],o[1]/2+i[0]],e,r)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,rotation:r,zoom:this.getZoom()}},e.prototype.getZoom=function(){var t,e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t},e.prototype.getZoomForResolution=function(t){var e,r,n=this.minZoom_||0;if(this.resolutions_){var i=y(this.resolutions_,t,1);n=i,e=this.resolutions_[i],r=i==this.resolutions_.length-1?2:e/this.resolutions_[i+1]}else e=this.maxResolution_,r=this.zoomFactor_;return n+Math.log(e/t)/Math.log(r)},e.prototype.getResolutionForZoom=function(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;var e=Ne(Math.floor(t),0,this.resolutions_.length-2),r=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(r,Ne(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)},e.prototype.fit=function(t,e){var r;if(pt(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t))pt(!Ie(t),25),r=gi(n=on(t,this.getProjection()));else if(t.getType()===bt.CIRCLE){var n;(r=gi(n=on(t.getExtent(),this.getProjection()))).rotate(this.getRotation(),xe(n))}else{var i=tn();r=i?t.clone().transform(i,this.getProjection()):t}this.fitInternal(r,e)},e.prototype.fitInternal=function(t,e){var r=e||{},n=r.size;n||(n=this.getViewportSizeMinusPadding_());var i,o=void 0!==r.padding?r.padding:[0,0,0,0],a=void 0!==r.nearest&&r.nearest;i=void 0!==r.minResolution?r.minResolution:void 0!==r.maxZoom?this.getResolutionForZoom(r.maxZoom):0;for(var s=t.getFlatCoordinates(),l=this.getRotation(),u=Math.cos(-l),c=Math.sin(-l),h=1/0,p=1/0,f=-1/0,d=-1/0,g=t.getStride(),y=0,m=s.length;y0&&t[1]>0}function Rs(t,e,r){return void 0===r&&(r=[0,0]),r[0]=t[0]*e+.5|0,r[1]=t[1]*e+.5|0,r}function Is(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}var Ls=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();var Ms=function(t){function e(e){var r=t.call(this)||this,n=function(t){var e=null;void 0!==t.keyboardEventTarget&&(e="string"==typeof t.keyboardEventTarget?document.getElementById(t.keyboardEventTarget):t.keyboardEventTarget);var r,n,i,o={},a=t.layers&&"function"==typeof t.layers.getLayers?t.layers:new Aa({layers:t.layers});o[Ka]=a,o[$a]=t.target,o[Ja]=void 0!==t.view?t.view:new Cs,void 0!==t.controls&&(Array.isArray(t.controls)?r=new ht(t.controls.slice()):(pt("function"==typeof t.controls.getArray,47),r=t.controls));void 0!==t.interactions&&(Array.isArray(t.interactions)?n=new ht(t.interactions.slice()):(pt("function"==typeof t.interactions.getArray,48),n=t.interactions));void 0!==t.overlays?Array.isArray(t.overlays)?i=new ht(t.overlays.slice()):(pt("function"==typeof t.overlays.getArray,49),i=t.overlays):i=new ht;return{controls:r,interactions:n,keyboardEventTarget:e,overlays:i,values:o}}(e);return r.boundHandleBrowserEvent_=r.handleBrowserEvent.bind(r),r.maxTilesLoading_=void 0!==e.maxTilesLoading?e.maxTilesLoading:16,r.pixelRatio_=void 0!==e.pixelRatio?e.pixelRatio:Vi,r.postRenderTimeoutHandle_,r.animationDelayKey_,r.animationDelay_=function(){this.animationDelayKey_=void 0,this.renderFrame_(Date.now())}.bind(r),r.coordinateToPixelTransform_=[1,0,0,1,0,0],r.pixelToCoordinateTransform_=[1,0,0,1,0,0],r.frameIndex_=0,r.frameState_=null,r.previousExtent_=null,r.viewPropertyListenerKey_=null,r.viewChangeListenerKey_=null,r.layerGroupPropertyListenerKeys_=null,r.viewport_=document.createElement("div"),r.viewport_.className="ol-viewport"+("ontouchstart"in window?" ol-touch":""),r.viewport_.style.position="relative",r.viewport_.style.overflow="hidden",r.viewport_.style.width="100%",r.viewport_.style.height="100%",r.overlayContainer_=document.createElement("div"),r.overlayContainer_.style.position="absolute",r.overlayContainer_.style.zIndex="0",r.overlayContainer_.style.width="100%",r.overlayContainer_.style.height="100%",r.overlayContainer_.style.pointerEvents="none",r.overlayContainer_.className="ol-overlaycontainer",r.viewport_.appendChild(r.overlayContainer_),r.overlayContainerStopEvent_=document.createElement("div"),r.overlayContainerStopEvent_.style.position="absolute",r.overlayContainerStopEvent_.style.zIndex="0",r.overlayContainerStopEvent_.style.width="100%",r.overlayContainerStopEvent_.style.height="100%",r.overlayContainerStopEvent_.style.pointerEvents="none",r.overlayContainerStopEvent_.className="ol-overlaycontainer-stopevent",r.viewport_.appendChild(r.overlayContainerStopEvent_),r.mapBrowserEventHandler_=null,r.moveTolerance_=e.moveTolerance,r.keyboardEventTarget_=n.keyboardEventTarget,r.keyHandlerKeys_=null,r.controls=n.controls||new ht,r.interactions=n.interactions||new ht,r.overlays_=n.overlays,r.overlayIdIndex_={},r.renderer_=null,r.handleResize_,r.postRenderFunctions_=[],r.tileQueue_=new es(r.getTilePriority.bind(r),r.handleTileChange_.bind(r)),r.addEventListener(it(Ka),r.handleLayerGroupChanged_),r.addEventListener(it(Ja),r.handleViewChanged_),r.addEventListener(it(Ha),r.handleSizeChanged_),r.addEventListener(it($a),r.handleTargetChanged_),r.setProperties(n.values),r.controls.forEach(function(t){t.setMap(this)}.bind(r)),r.controls.addEventListener(at,function(t){t.element.setMap(this)}.bind(r)),r.controls.addEventListener(st,function(t){t.element.setMap(null)}.bind(r)),r.interactions.forEach(function(t){t.setMap(this)}.bind(r)),r.interactions.addEventListener(at,function(t){t.element.setMap(this)}.bind(r)),r.interactions.addEventListener(st,function(t){t.element.setMap(null)}.bind(r)),r.overlays_.forEach(r.addOverlayInternal_.bind(r)),r.overlays_.addEventListener(at,function(t){this.addOverlayInternal_(t.element)}.bind(r)),r.overlays_.addEventListener(st,function(t){var e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}.bind(r)),r}return Ls(e,t),e.prototype.createRenderer=function(){throw new Error("Use a map type that has a createRenderer method")},e.prototype.addControl=function(t){this.getControls().push(t)},e.prototype.addInteraction=function(t){this.getInteractions().push(t)},e.prototype.addLayer=function(t){this.getLayerGroup().getLayers().push(t)},e.prototype.addOverlay=function(t){this.getOverlays().push(t)},e.prototype.addOverlayInternal_=function(t){var e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)},e.prototype.disposeInternal=function(){this.setTarget(null),t.prototype.disposeInternal.call(this)},e.prototype.forEachFeatureAtPixel=function(t,e,r){if(this.frameState_){var n=this.getCoordinateFromPixelInternal(t),i=void 0!==(r=void 0!==r?r:{}).hitTolerance?r.hitTolerance:0,o=void 0!==r.layerFilter?r.layerFilter:S,a=!1!==r.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,i,a,e,null,o,null)}},e.prototype.getFeaturesAtPixel=function(t,e){var r=[];return this.forEachFeatureAtPixel(t,(function(t){r.push(t)}),e),r},e.prototype.forEachLayerAtPixel=function(t,e,r){if(this.frameState_){var n=r||{},i=void 0!==n.hitTolerance?n.hitTolerance:0,o=n.layerFilter||S;return this.renderer_.forEachLayerAtPixel(t,this.frameState_,i,e,o)}},e.prototype.hasFeatureAtPixel=function(t,e){if(!this.frameState_)return!1;var r=this.getCoordinateFromPixelInternal(t),n=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:S,i=void 0!==e.hitTolerance?e.hitTolerance:0,o=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(r,this.frameState_,i,o,n,null)},e.prototype.getEventCoordinate=function(t){return this.getCoordinateFromPixel(this.getEventPixel(t))},e.prototype.getEventCoordinateInternal=function(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))},e.prototype.getEventPixel=function(t){var e=this.viewport_.getBoundingClientRect(),r="changedTouches"in t?t.changedTouches[0]:t;return[r.clientX-e.left,r.clientY-e.top]},e.prototype.getTarget=function(){return this.get($a)},e.prototype.getTargetElement=function(){var t=this.getTarget();return void 0!==t?"string"==typeof t?document.getElementById(t):t:null},e.prototype.getCoordinateFromPixel=function(t){return en(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())},e.prototype.getCoordinateFromPixelInternal=function(t){var e=this.frameState_;return e?It(e.pixelToCoordinateTransform,t.slice()):null},e.prototype.getControls=function(){return this.controls},e.prototype.getOverlays=function(){return this.overlays_},e.prototype.getOverlayById=function(t){var e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null},e.prototype.getInteractions=function(){return this.interactions},e.prototype.getLayerGroup=function(){return this.get(Ka)},e.prototype.getLayers=function(){return this.getLayerGroup().getLayers()},e.prototype.getLoading=function(){for(var t=this.getLayerGroup().getLayerStatesArray(),e=0,r=t.length;e=0;s--){var l=a[s];if(l.getMap()===this&&l.getActive()&&this.getTargetElement())if(!l.handleEvent(t)||t.propagationStopped)break}}},e.prototype.handlePostRender=function(){var t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){var r=this.maxTilesLoading_,n=r;if(t){var i=t.viewHints;if(i[ns]||i[is]){var o=!Wi&&Date.now()-t.time>8;r=o?0:8,n=o?0:2}}e.getTilesLoading()0;if(this.renderedVisible_!=r&&(this.element.style.display=r?"":"none",this.renderedVisible_=r),!b(e,this.renderedAttributions_)){go(this.ulElement_);for(var n=0,i=e.length;n0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:io}):t.setRotation(0))}},e.prototype.render=function(t){var e=t.frameState;if(e){var r=e.viewState.rotation;if(r!=this.rotation_){var n="rotate("+r+"rad)";if(this.autoHide_){var i=this.element.classList.contains("ol-hidden");i||0!==r?i&&0!==r&&this.element.classList.remove("ol-hidden"):this.element.classList.add("ol-hidden")}this.label_.style.transform=n}this.rotation_=r}},e}(As),Gs=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),zs=function(t){function e(e){var r=this,n=e||{};r=t.call(this,{element:document.createElement("div"),target:n.target})||this;var i=void 0!==n.className?n.className:"ol-zoom",o=void 0!==n.delta?n.delta:1,a=void 0!==n.zoomInClassName?n.zoomInClassName:i+"-in",s=void 0!==n.zoomOutClassName?n.zoomOutClassName:i+"-out",l=void 0!==n.zoomInLabel?n.zoomInLabel:"+",u=void 0!==n.zoomOutLabel?n.zoomOutLabel:"−",c=void 0!==n.zoomInTipLabel?n.zoomInTipLabel:"Zoom in",h=void 0!==n.zoomOutTipLabel?n.zoomOutTipLabel:"Zoom out",p=document.createElement("button");p.className=a,p.setAttribute("type","button"),p.title=c,p.appendChild("string"==typeof l?document.createTextNode(l):l),p.addEventListener(N,r.handleClick_.bind(r,o),!1);var f=document.createElement("button");f.className=s,f.setAttribute("type","button"),f.title=h,f.appendChild("string"==typeof u?document.createTextNode(u):u),f.addEventListener(N,r.handleClick_.bind(r,-o),!1);var d=i+" ol-unselectable ol-control",g=r.element;return g.className=d,g.appendChild(p),g.appendChild(f),r.duration_=void 0!==n.duration?n.duration:250,r}return Gs(e,t),e.prototype.handleClick_=function(t,e){e.preventDefault(),this.zoomByDelta_(t)},e.prototype.zoomByDelta_=function(t){var e=this.getMap().getView();if(e){var r=e.getZoom();if(void 0!==r){var n=e.getConstrainedZoom(r+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:n,duration:this.duration_,easing:io})):e.setZoom(n)}}},e}(As);function Us(t){var e=t||{},r=new ht;return(void 0===e.zoom||e.zoom)&&r.push(new zs(e.zoomOptions)),(void 0===e.rotate||e.rotate)&&r.push(new Ds(e.rotateOptions)),(void 0===e.attribution||e.attribution)&&r.push(new js(e.attributionOptions)),r}var Bs="active",Vs=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function Ys(t,e,r){var n=t.getCenterInternal();if(n){var i=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==r?r:250,easing:ao,center:t.getConstrainedCenter(i)})}}function Ws(t,e,r,n){var i=t.getZoom();if(void 0!==i){var o=t.getConstrainedZoom(i+e),a=t.getResolutionForZoom(o);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:a,anchor:r,duration:void 0!==n?n:250,easing:io})}}var qs=function(t){function e(e){var r=t.call(this)||this;return e&&e.handleEvent&&(r.handleEvent=e.handleEvent),r.map_=null,r.setActive(!0),r}return Vs(e,t),e.prototype.getActive=function(){return this.get(Bs)},e.prototype.getMap=function(){return this.map_},e.prototype.handleEvent=function(t){return!0},e.prototype.setActive=function(t){this.set(Bs,t)},e.prototype.setMap=function(t){this.map_=t},e}(ot),Xs=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Zs=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.delta_=n.delta?n.delta:1,r.duration_=void 0!==n.duration?n.duration:250,r}return Xs(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==Ga.DBLCLICK){var r=t.originalEvent,n=t.map,i=t.coordinate,o=r.shiftKey?-this.delta_:this.delta_;Ws(n.getView(),o,i,this.duration_),r.preventDefault(),e=!0}return!e},e}(qs),Ks=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function Hs(t){for(var e=t.length,r=0,n=0,i=0;i0}}else if(t.type==Ga.POINTERDOWN){var n=this.handleDownEvent(t);this.handlingDownUpSequence=n,e=this.stopDown(n)}else t.type==Ga.POINTERMOVE&&this.handleMoveEvent(t);return!e},e.prototype.handleMoveEvent=function(t){},e.prototype.handleUpEvent=function(t){return!1},e.prototype.stopDown=function(t){return t},e.prototype.updateTrackedPointers_=function(t){if(function(t){var e=t.type;return e===Ga.POINTERDOWN||e===Ga.POINTERDRAG||e===Ga.POINTERUP}(t)){var e=t.originalEvent,r=e.pointerId.toString();t.type==Ga.POINTERUP?delete this.trackedPointers_[r]:(t.type==Ga.POINTERDOWN||r in this.trackedPointers_)&&(this.trackedPointers_[r]=e),this.targetPointers=R(this.trackedPointers_)}},e}(qs);function Js(t){var e=arguments;return function(t){for(var r=!0,n=0,i=e.length;n0&&this.condition_(t)){var e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1},e}($s),dl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),gl=function(t){function e(e){var r=this,n=e||{};return(r=t.call(this,{stopDown:E})||this).condition_=n.condition?n.condition:tl,r.lastAngle_=void 0,r.duration_=void 0!==n.duration?n.duration:250,r}return dl(e,t),e.prototype.handleDragEvent=function(t){if(cl(t)){var e=t.map,r=e.getView();if(r.getConstraints().rotation!==gs){var n=e.getSize(),i=t.pixel,o=Math.atan2(n[1]/2-i[1],i[0]-n[0]/2);if(void 0!==this.lastAngle_){var a=o-this.lastAngle_;r.adjustRotationInternal(-a)}this.lastAngle_=o}}},e.prototype.handleUpEvent=function(t){return!cl(t)||(t.map.getView().endInteraction(this.duration_),!1)},e.prototype.handleDownEvent=function(t){return!!cl(t)&&(!(!il(t)||!this.condition_(t))&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0))},e}($s),yl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),ml=function(t){function e(e){var r=t.call(this)||this;return r.geometry_=null,r.element_=document.createElement("div"),r.element_.style.position="absolute",r.element_.style.pointerEvents="auto",r.element_.className="ol-box "+e,r.map_=null,r.startPixel_=null,r.endPixel_=null,r}return yl(e,t),e.prototype.disposeInternal=function(){this.setMap(null)},e.prototype.render_=function(){var t=this.startPixel_,e=this.endPixel_,r=this.element_.style;r.left=Math.min(t[0],e[0])+"px",r.top=Math.min(t[1],e[1])+"px",r.width=Math.abs(e[0]-t[0])+"px",r.height=Math.abs(e[1]-t[1])+"px"},e.prototype.setMap=function(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);var e=this.element_.style;e.left="inherit",e.top="inherit",e.width="inherit",e.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)},e.prototype.setPixels=function(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()},e.prototype.createOrUpdateGeometry=function(){var t=this.startPixel_,e=this.endPixel_,r=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new fi([r])},e.prototype.getGeometry=function(){return this.geometry_},e}(p),vl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),_l="boxstart",bl="boxdrag",xl="boxend",wl="boxcancel",Sl=function(t){function e(e,r,n){var i=t.call(this,e)||this;return i.coordinate=r,i.mapBrowserEvent=n,i}return vl(e,t),e}(c),El=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.box_=new ml(n.className||"ol-dragbox"),r.minArea_=void 0!==n.minArea?n.minArea:64,n.onBoxEnd&&(r.onBoxEnd=n.onBoxEnd),r.startPixel_=null,r.condition_=n.condition?n.condition:il,r.boxEndCondition_=n.boxEndCondition?n.boxEndCondition:r.defaultBoxEndCondition,r}return vl(e,t),e.prototype.defaultBoxEndCondition=function(t,e,r){var n=r[0]-e[0],i=r[1]-e[1];return n*n+i*i>=this.minArea_},e.prototype.getGeometry=function(){return this.box_.getGeometry()},e.prototype.handleDragEvent=function(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new Sl(bl,t.coordinate,t))},e.prototype.handleUpEvent=function(t){this.box_.setMap(null);var e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new Sl(e?xl:wl,t.coordinate,t)),!1},e.prototype.handleDownEvent=function(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Sl(_l,t.coordinate,t)),!0)},e.prototype.onBoxEnd=function(t){},e}($s),Tl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Cl=function(t){function e(e){var r=this,n=e||{},i=n.condition?n.condition:ll;return(r=t.call(this,{condition:i,className:n.className||"ol-dragzoom",minArea:n.minArea})||this).duration_=void 0!==n.duration?n.duration:200,r.out_=void 0!==n.out&&n.out,r}return Tl(e,t),e.prototype.onBoxEnd=function(t){var e=this.getMap(),r=e.getView(),n=e.getSize(),i=this.getGeometry().getExtent();if(this.out_){var o=r.calculateExtentInternal(n),a=se([e.getPixelFromCoordinateInternal(_e(i)),e.getPixelFromCoordinateInternal(Oe(i))]);Me(o,1/r.getResolutionForExtentInternal(a,n)),i=o}var s=r.getConstrainedResolution(r.getResolutionForExtentInternal(i,n)),l=r.getConstrainedCenter(xe(i),s);r.animateInternal({resolution:s,center:l,duration:this.duration_,easing:io})},e}(El),Ol=37,Pl=38,Rl=39,Il=40,Ll=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ml=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.defaultCondition_=function(t){return sl(t)&&ul(t)},r.condition_=void 0!==n.condition?n.condition:r.defaultCondition_,r.duration_=void 0!==n.duration?n.duration:100,r.pixelDelta_=void 0!==n.pixelDelta?n.pixelDelta:128,r}return Ll(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==B){var r=t.originalEvent,n=r.keyCode;if(this.condition_(t)&&(n==Il||n==Ol||n==Rl||n==Pl)){var i=t.map.getView(),o=i.getResolution()*this.pixelDelta_,a=0,s=0;n==Il?s=-o:n==Ol?a=-o:n==Rl?a=o:s=o;var l=[a,s];Or(l,i.getRotation()),Ys(i,l,this.duration_),r.preventDefault(),e=!0}}return!e},e}(qs),Fl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Al=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.condition_=n.condition?n.condition:ul,r.delta_=n.delta?n.delta:1,r.duration_=void 0!==n.duration?n.duration:100,r}return Fl(e,t),e.prototype.handleEvent=function(t){var e=!1;if(t.type==B||t.type==V){var r=t.originalEvent,n=r.charCode;if(this.condition_(t)&&(n=="+".charCodeAt(0)||n=="-".charCodeAt(0))){var i=t.map,o=n=="+".charCodeAt(0)?this.delta_:-this.delta_;Ws(i.getView(),o,void 0,this.duration_),r.preventDefault(),e=!0}}return!e},e}(qs),kl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),jl="trackpad",Nl="wheel",Dl=function(t){function e(e){var r=this,n=e||{};(r=t.call(this,n)||this).totalDelta_=0,r.lastDelta_=0,r.maxDelta_=void 0!==n.maxDelta?n.maxDelta:1,r.duration_=void 0!==n.duration?n.duration:250,r.timeout_=void 0!==n.timeout?n.timeout:80,r.useAnchor_=void 0===n.useAnchor||n.useAnchor,r.constrainResolution_=void 0!==n.constrainResolution&&n.constrainResolution;var i=n.condition?n.condition:nl;return r.condition_=n.onFocusOnly?Js(rl,i):i,r.lastAnchor_=null,r.startTime_=void 0,r.timeoutId_,r.mode_=void 0,r.trackpadEventGap_=400,r.trackpadTimeoutId_,r.deltaPerZoom_=300,r}return kl(e,t),e.prototype.endInteraction_=function(){this.trackpadTimeoutId_=void 0,this.getMap().getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;if(t.type!==X)return!0;var e,r=t.map,n=t.originalEvent;if(n.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==X&&(e=n.deltaY,Gi&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(e/=Vi),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(e*=40)),0===e)return!1;this.lastDelta_=e;var i=Date.now();void 0===this.startTime_&&(this.startTime_=i),(!this.mode_||i-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(e)<4?jl:Nl);var o=r.getView();if(this.mode_===jl&&!o.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),o.adjustZoom(-e/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=i,!1;this.totalDelta_+=e;var a=Math.max(this.timeout_-(i-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),a),!1},e.prototype.handleWheelZoom_=function(t){var e=t.getView();e.getAnimating()&&e.cancelAnimations();var r=-Ne(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(r=r?r>0?1:-1:0),Ws(e,r,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0},e.prototype.setMouseAnchor=function(t){this.useAnchor_=t,t||(this.lastAnchor_=null)},e}(qs),Gl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),zl=function(t){function e(e){var r=this,n=e||{},i=n;return i.stopDown||(i.stopDown=E),(r=t.call(this,i)||this).anchor_=null,r.lastAngle_=void 0,r.rotating_=!1,r.rotationDelta_=0,r.threshold_=void 0!==n.threshold?n.threshold:.3,r.duration_=void 0!==n.duration?n.duration:250,r}return Gl(e,t),e.prototype.handleDragEvent=function(t){var e=0,r=this.targetPointers[0],n=this.targetPointers[1],i=Math.atan2(n.clientY-r.clientY,n.clientX-r.clientX);if(void 0!==this.lastAngle_){var o=i-this.lastAngle_;this.rotationDelta_+=o,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=o}this.lastAngle_=i;var a=t.map,s=a.getView();if(s.getConstraints().rotation!==gs){var l=a.getViewport().getBoundingClientRect(),u=Hs(this.targetPointers);u[0]-=l.left,u[1]-=l.top,this.anchor_=a.getCoordinateFromPixelInternal(u),this.rotating_&&(a.render(),s.adjustRotationInternal(e,this.anchor_))}},e.prototype.handleUpEvent=function(t){return!(this.targetPointers.length<2)||(t.map.getView().endInteraction(this.duration_),!1)},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1},e}($s),Ul=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Bl=function(t){function e(e){var r=this,n=e||{},i=n;return i.stopDown||(i.stopDown=E),(r=t.call(this,i)||this).anchor_=null,r.duration_=void 0!==n.duration?n.duration:400,r.lastDistance_=void 0,r.lastScaleDelta_=1,r}return Ul(e,t),e.prototype.handleDragEvent=function(t){var e=1,r=this.targetPointers[0],n=this.targetPointers[1],i=r.clientX-n.clientX,o=r.clientY-n.clientY,a=Math.sqrt(i*i+o*o);void 0!==this.lastDistance_&&(e=this.lastDistance_/a),this.lastDistance_=a;var s=t.map,l=s.getView();1!=e&&(this.lastScaleDelta_=e);var u=s.getViewport().getBoundingClientRect(),c=Hs(this.targetPointers);c[0]-=u.left,c[1]-=u.top,this.anchor_=s.getCoordinateFromPixelInternal(c),s.render(),l.adjustResolutionInternal(e,this.anchor_)},e.prototype.handleUpEvent=function(t){if(this.targetPointers.length<2){var e=t.map.getView(),r=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,r),!1}return!0},e.prototype.handleDownEvent=function(t){if(this.targetPointers.length>=2){var e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1},e}($s);function Vl(t){var e=t||{},r=new ht,n=new _o(-.005,.05,100);return(void 0===e.altShiftDragRotate||e.altShiftDragRotate)&&r.push(new gl),(void 0===e.doubleClickZoom||e.doubleClickZoom)&&r.push(new Zs({delta:e.zoomDelta,duration:e.zoomDuration})),(void 0===e.dragPan||e.dragPan)&&r.push(new fl({onFocusOnly:e.onFocusOnly,kinetic:n})),(void 0===e.pinchRotate||e.pinchRotate)&&r.push(new zl),(void 0===e.pinchZoom||e.pinchZoom)&&r.push(new Bl({duration:e.zoomDuration})),(void 0===e.keyboard||e.keyboard)&&(r.push(new Ml),r.push(new Al({delta:e.zoomDelta,duration:e.zoomDuration}))),(void 0===e.mouseWheelZoom||e.mouseWheelZoom)&&r.push(new Dl({onFocusOnly:e.onFocusOnly,duration:e.zoomDuration})),(void 0===e.shiftDragZoom||e.shiftDragZoom)&&r.push(new Cl({duration:e.zoomDuration})),r}var Yl=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Wl=function(t){function e(e){return(e=O({},e)).controls||(e.controls=Us()),e.interactions||(e.interactions=Vl({onFocusOnly:!0})),t.call(this,e)||this}return Yl(e,t),e.prototype.createRenderer=function(){return new La(this)},e}(Ms),ql="bottom-left",Xl="bottom-center",Zl="bottom-right",Kl="center-left",Hl="center-center",$l="center-right",Jl="top-left",Ql="top-center",tu="top-right",eu=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),ru="element",nu="map",iu="offset",ou="position",au="positioning",su=function(t){function e(e){var r=t.call(this)||this;r.options=e,r.id=e.id,r.insertFirst=void 0===e.insertFirst||e.insertFirst,r.stopEvent=void 0===e.stopEvent||e.stopEvent,r.element=document.createElement("div"),r.element.className=void 0!==e.className?e.className:"ol-overlay-container ol-selectable",r.element.style.position="absolute",r.element.style.pointerEvents="auto";var n=e.autoPan;return n&&"object"!=typeof n&&(n={animation:e.autoPanAnimation,margin:e.autoPanMargin}),r.autoPan=n||!1,r.rendered={transform_:"",visible:!0},r.mapPostrenderListenerKey=null,r.addEventListener(it(ru),r.handleElementChanged),r.addEventListener(it(nu),r.handleMapChanged),r.addEventListener(it(iu),r.handleOffsetChanged),r.addEventListener(it(ou),r.handlePositionChanged),r.addEventListener(it(au),r.handlePositioningChanged),void 0!==e.element&&r.setElement(e.element),r.setOffset(void 0!==e.offset?e.offset:[0,0]),r.setPositioning(void 0!==e.positioning?e.positioning:Jl),void 0!==e.position&&r.setPosition(e.position),r}return eu(e,t),e.prototype.getElement=function(){return this.get(ru)},e.prototype.getId=function(){return this.id},e.prototype.getMap=function(){return this.get(nu)},e.prototype.getOffset=function(){return this.get(iu)},e.prototype.getPosition=function(){return this.get(ou)},e.prototype.getPositioning=function(){return this.get(au)},e.prototype.handleElementChanged=function(){go(this.element);var t=this.getElement();t&&this.element.appendChild(t)},e.prototype.handleMapChanged=function(){this.mapPostrenderListenerKey&&(fo(this.element),H(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);var t=this.getMap();if(t){this.mapPostrenderListenerKey=Z(t,qa,this.render,this),this.updatePixelPosition();var e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}},e.prototype.render=function(){this.updatePixelPosition()},e.prototype.handleOffsetChanged=function(){this.updatePixelPosition()},e.prototype.handlePositionChanged=function(){this.updatePixelPosition(),this.performAutoPan()},e.prototype.handlePositioningChanged=function(){this.updatePixelPosition()},e.prototype.setElement=function(t){this.set(ru,t)},e.prototype.setMap=function(t){this.set(nu,t)},e.prototype.setOffset=function(t){this.set(iu,t)},e.prototype.setPosition=function(t){this.set(ou,t)},e.prototype.performAutoPan=function(){this.autoPan&&this.panIntoView(this.autoPan)},e.prototype.panIntoView=function(t){var e=this.getMap();if(e&&e.getTargetElement()&&this.get(ou)){var r=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),i=this.getRect(n,[co(n),ho(n)]),o=t||{},a=void 0===o.margin?20:o.margin;if(!te(r,i)){var s=i[0]-r[0],l=r[2]-i[2],u=i[1]-r[1],c=r[3]-i[3],h=[0,0];if(s<0?h[0]=s-a:l<0&&(h[0]=Math.abs(l)+a),u<0?h[1]=u-a:c<0&&(h[1]=Math.abs(c)+a),0!==h[0]||0!==h[1]){var p=e.getView().getCenterInternal(),f=e.getPixelFromCoordinateInternal(p);if(!f)return;var d=[f[0]+h[0],f[1]+h[1]],g=o.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(d),duration:g.duration,easing:g.easing})}}}},e.prototype.getRect=function(t,e){var r=t.getBoundingClientRect(),n=r.left+window.pageXOffset,i=r.top+window.pageYOffset;return[n,i,n+e[0],i+e[1]]},e.prototype.setPositioning=function(t){this.set(au,t)},e.prototype.setVisible=function(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)},e.prototype.updatePixelPosition=function(){var t=this.getMap(),e=this.getPosition();if(t&&t.isRendered()&&e){var r=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(r,n)}else this.setVisible(!1)},e.prototype.updateRenderedPosition=function(t,e){var r=this.element.style,n=this.getOffset(),i=this.getPositioning();this.setVisible(!0);var o=Math.round(t[0]+n[0])+"px",a=Math.round(t[1]+n[1])+"px",s="0%",l="0%";i==Zl||i==$l||i==tu?s="-100%":i!=Xl&&i!=Hl&&i!=Ql||(s="-50%"),i==ql||i==Xl||i==Zl?l="-100%":i!=Kl&&i!=Hl&&i!=$l||(l="-50%");var u="translate("+s+", "+l+") translate("+o+", "+a+")";this.rendered.transform_!=u&&(this.rendered.transform_=u,r.transform=u,r.msTransform=u)},e.prototype.getOptions=function(){return this.options},e}(ot),lu=function(){function t(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}return t.prototype.canExpireCache=function(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark},t.prototype.clear=function(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null},t.prototype.containsKey=function(t){return this.entries_.hasOwnProperty(t)},t.prototype.forEach=function(t){for(var e=this.oldest_;e;)t(e.value_,e.key_,this),e=e.newer},t.prototype.get=function(t,e){var r=this.entries_[t];return pt(void 0!==r,15),r===this.newest_||(r===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(r.newer.older=r.older,r.older.newer=r.newer),r.newer=null,r.older=this.newest_,this.newest_.newer=r,this.newest_=r),r.value_},t.prototype.remove=function(t){var e=this.entries_[t];return pt(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_},t.prototype.getCount=function(){return this.count_},t.prototype.getKeys=function(){var t,e=new Array(this.count_),r=0;for(t=this.newest_;t;t=t.older)e[r++]=t.key_;return e},t.prototype.getValues=function(){var t,e=new Array(this.count_),r=0;for(t=this.newest_;t;t=t.older)e[r++]=t.value_;return e},t.prototype.peekLast=function(){return this.oldest_.value_},t.prototype.peekLastKey=function(){return this.oldest_.key_},t.prototype.peekFirstKey=function(){return this.newest_.key_},t.prototype.pop=function(){var t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_},t.prototype.replace=function(t,e){this.get(t),this.entries_[t].value_=e},t.prototype.set=function(t,e){pt(!(t in this.entries_),16);var r={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=r:this.oldest_=r,this.newest_=r,this.entries_[t]=r,++this.count_},t.prototype.setSize=function(t){this.highWaterMark=t},t}();function uu(t,e,r,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=r,n):[t,e,r]}function cu(t,e,r){return t+"/"+e+"/"+r}function hu(t){return cu(t[0],t[1],t[2])}function pu(t){return t.split("/").map(Number)}function fu(t){return(t[1]<r||r>e.getMaxZoom())return!1;var o=e.getFullTileRange(r);return!o||o.containsXY(n,i)}var gu=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),yu=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gu(e,t),e.prototype.expireCache=function(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}},e.prototype.pruneExceptNewestZ=function(){if(0!==this.getCount()){var t=pu(this.peekFirstKey())[0];this.forEach(function(e){e.tileCoord[0]!==t&&(this.remove(hu(e.tileCoord)),e.release())}.bind(this))}},e}(lu),mu=function(){function t(t,e,r,n){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}return t.prototype.contains=function(t){return this.containsXY(t[1],t[2])},t.prototype.containsTileRange=function(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY},t.prototype.containsXY=function(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY},t.prototype.equals=function(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY},t.prototype.extend=function(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)},t.prototype.getHeight=function(){return this.maxY-this.minY+1},t.prototype.getSize=function(){return[this.getWidth(),this.getHeight()]},t.prototype.getWidth=function(){return this.maxX-this.minX+1},t.prototype.intersects=function(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY},t}();function vu(t,e,r,n,i){return void 0!==i?(i.minX=t,i.maxX=e,i.minY=r,i.maxY=n,i):new mu(t,e,r,n)}var _u=mu,bu=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),xu=[],wu=function(t){function e(e,r,n,i){var o=t.call(this,e,r,{transition:0})||this;return o.context_={},o.executorGroups={},o.declutterExecutorGroups={},o.loadingSourceTiles=0,o.errorSourceTileKeys={},o.hitDetectionImageData={},o.replayState_={},o.sourceTiles=null,o.wantedResolution,o.getSourceTiles=i.bind(void 0,o),o.sourceZ=-1,o.hifi=!1,o.wrappedTileCoord=n,o}return bu(e,t),e.prototype.getContext=function(t){var e=o(t);return e in this.context_||(this.context_[e]=uo(1,1,xu)),this.context_[e]},e.prototype.hasContext=function(t){return o(t)in this.context_},e.prototype.getImage=function(t){return this.hasContext(t)?this.getContext(t).canvas:null},e.prototype.getReplayState=function(t){var e=o(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedZ:-1,renderedTileZ:-1}),this.replayState_[e]},e.prototype.load=function(){this.getSourceTiles()},e.prototype.release=function(){for(var e in this.context_)xu.push(this.context_[e].canvas),delete this.context_[e];t.prototype.release.call(this)},e}(lo),Su=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Eu=function(t){function e(e,r,n,i,o,a){var s=t.call(this,e,r,a)||this;return s.extent=null,s.format_=i,s.features_=null,s.loader_,s.projection=null,s.resolution,s.tileLoadFunction_=o,s.url_=n,s.key=n,s}return Su(e,t),e.prototype.getFormat=function(){return this.format_},e.prototype.getFeatures=function(){return this.features_},e.prototype.load=function(){this.state==Ji&&(this.setState(Qi),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))},e.prototype.onLoad=function(t,e){this.setFeatures(t)},e.prototype.onError=function(){this.setState(eo)},e.prototype.setFeatures=function(t){this.features_=t,this.setState(to)},e.prototype.setLoader=function(t){this.loader_=t},e}(lo);function Tu(t){return Array.isArray(t)?Ro(t):t}var Cu="arraybuffer",Ou="json",Pu="text",Ru="xml",Iu=!1;function Lu(t,e,r,n,i,o,a){var s=new XMLHttpRequest;s.open("GET","function"==typeof t?t(r,n,i):t,!0),e.getType()==Cu&&(s.responseType="arraybuffer"),s.withCredentials=Iu,s.onload=function(t){if(!s.status||s.status>=200&&s.status<300){var n=e.getType(),l=void 0;n==Ou||n==Pu?l=s.responseText:n==Ru?(l=s.responseXML)||(l=(new DOMParser).parseFromString(s.responseText,"application/xml")):n==Cu&&(l=s.response),l?o(e.readFeatures(l,{extent:r,featureProjection:i}),e.readProjection(l)):a()}else a()},s.onerror=a,s.send()}function Mu(t,e){return function(r,n,i,o,a){var s=this;Lu(t,e,r,n,i,(function(t,e){void 0!==o&&o(t),s.addFeatures(t)}),a||T)}}function Fu(t,e){return[[-1/0,-1/0,1/0,1/0]]}function Au(t,e,r,n){var i=document.createElement("script"),a="olc_"+o(e);function s(){delete window[a],i.parentNode.removeChild(i)}i.async=!0,i.src=t+(-1==t.indexOf("?")?"?":"&")+(n||"callback")+"="+a;var l=setTimeout((function(){s(),r&&r()}),1e4);window[a]=function(t){clearTimeout(l),s(),e(t)},document.getElementsByTagName("head")[0].appendChild(i)}var ku=function(){function t(){}return t.prototype.drawCustom=function(t,e,r){},t.prototype.drawGeometry=function(t){},t.prototype.setStyle=function(t){},t.prototype.drawCircle=function(t,e){},t.prototype.drawFeature=function(t,e){},t.prototype.drawGeometryCollection=function(t,e){},t.prototype.drawLineString=function(t,e){},t.prototype.drawMultiLineString=function(t,e){},t.prototype.drawMultiPoint=function(t,e){},t.prototype.drawMultiPolygon=function(t,e){},t.prototype.drawPoint=function(t,e){},t.prototype.drawPolygon=function(t,e){},t.prototype.drawText=function(t,e){},t.prototype.setFillStrokeStyle=function(t,e){},t.prototype.setImageStyle=function(t,e){},t.prototype.setTextStyle=function(t,e){},t}(),ju=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Nu=function(t){function e(e,r,n,i,o,a,s){var l=t.call(this)||this;return l.context_=e,l.pixelRatio_=r,l.extent_=n,l.transform_=i,l.viewRotation_=o,l.squaredTolerance_=a,l.userTransform_=s,l.contextFillState_=null,l.contextStrokeState_=null,l.contextTextState_=null,l.fillState_=null,l.strokeState_=null,l.image_=null,l.imageAnchorX_=0,l.imageAnchorY_=0,l.imageHeight_=0,l.imageOpacity_=0,l.imageOriginX_=0,l.imageOriginY_=0,l.imageRotateWithView_=!1,l.imageRotation_=0,l.imageScale_=[0,0],l.imageWidth_=0,l.text_="",l.textOffsetX_=0,l.textOffsetY_=0,l.textRotateWithView_=!1,l.textRotation_=0,l.textScale_=[0,0],l.textFillState_=null,l.textStrokeState_=null,l.textState_=null,l.pixelCoordinates_=[],l.tmpLocalTransform_=[1,0,0,1,0,0],l}return ju(e,t),e.prototype.drawImages_=function(t,e,r,n){if(this.image_){var i=ln(t,e,r,2,this.transform_,this.pixelCoordinates_),o=this.context_,a=this.tmpLocalTransform_,s=o.globalAlpha;1!=this.imageOpacity_&&(o.globalAlpha=s*this.imageOpacity_);var l=this.imageRotation_;this.imageRotateWithView_&&(l+=this.viewRotation_);for(var u=0,c=i.length;u2||Math.abs(t[4*e+3]-191.25)>2}function tc(t,e,r,n){var i=Hr(r,e,t),o=zr(e,n,r),a=e.getMetersPerUnit();void 0!==a&&(o*=a);var s=t.getMetersPerUnit();void 0!==s&&(o/=s);var l=t.getExtent();if(!l||Qt(l,i)){var u=zr(t,o,i)/o;isFinite(u)&&u>0&&(o/=u)}return o}function ec(t,e,r,n){var i=xe(r),o=tc(t,e,i,n);return(!isFinite(o)||o<=0)&&me(r,(function(r){return o=tc(t,e,r,n),isFinite(o)&&o>0})),o}function rc(t,e,r,n,i,o,a,s,l,u,c,h){var p=uo(Math.round(r*t),Math.round(r*e));if(O(p,h),0===l.length)return p.canvas;function f(t){return Math.round(t*r)/r}p.scale(r,r),p.globalCompositeOperation="lighter";var d=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,r){he(d,t.extent)}));var g=Pe(d),y=Ee(d),m=uo(Math.round(r*g/n),Math.round(r*y/n));O(m,h);var v=r/n;l.forEach((function(t,e,r){var n=t.extent[0]-d[0],i=-(t.extent[3]-d[3]),o=Pe(t.extent),a=Ee(t.extent);t.image.width>0&&t.image.height>0&&m.drawImage(t.image,u,u,t.image.width-2*u,t.image.height-2*u,n*v,i*v,o*v,a*v)}));var _=Ce(a);return s.getTriangles().forEach((function(t,e,i){var a=t.source,s=t.target,l=a[0][0],u=a[0][1],c=a[1][0],g=a[1][1],y=a[2][0],v=a[2][1],b=f((s[0][0]-_[0])/o),x=f(-(s[0][1]-_[1])/o),w=f((s[1][0]-_[0])/o),S=f(-(s[1][1]-_[1])/o),E=f((s[2][0]-_[0])/o),T=f(-(s[2][1]-_[1])/o),C=l,O=u;l=0,u=0;var P=Be([[c-=C,g-=O,0,0,w-b],[y-=C,v-=O,0,0,E-b],[0,0,c,g,S-x],[0,0,y,v,T-x]]);if(P){if(p.save(),p.beginPath(),function(){if(void 0===Hu){var t=document.createElement("canvas").getContext("2d");t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Ju(t,4,5,4,0),Ju(t,4,5,0,5);var e=t.getImageData(0,0,3,3).data;Hu=Qu(e,0)||Qu(e,4)||Qu(e,8)}return Hu}()||h===$u){p.moveTo(w,S);for(var R=b-w,I=x-S,L=0;L<4;L++)p.lineTo(w+f((L+1)*R/4),S+f(L*I/3)),3!=L&&p.lineTo(w+f((L+1)*R/4),S+f((L+1)*I/3));p.lineTo(E,T)}else p.moveTo(w,S),p.lineTo(b,x),p.lineTo(E,T);p.clip(),p.transform(P[0],P[2],P[1],P[3],b,x),p.translate(d[0]-C,d[3]-O),p.scale(n/r,-n/r),p.drawImage(m.canvas,0,0),p.restore()}})),c&&(p.save(),p.globalCompositeOperation="source-over",p.strokeStyle="black",p.lineWidth=1,s.getTriangles().forEach((function(t,e,r){var n=t.target,i=(n[0][0]-_[0])/o,a=-(n[0][1]-_[1])/o,s=(n[1][0]-_[0])/o,l=-(n[1][1]-_[1])/o,u=(n[2][0]-_[0])/o,c=-(n[2][1]-_[1])/o;p.beginPath(),p.moveTo(s,l),p.lineTo(i,a),p.lineTo(u,c),p.closePath(),p.stroke()})),p.restore()),p.canvas}var nc=[0,0,0],ic=function(){function t(t){var e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,pt(w(this.resolutions_,(function(t,e){return e-t}),!0),17),!t.origins)for(var r=0,n=this.resolutions_.length-1;r=this.minZoom;){if(e(s,2===this.zoomFactor_?vu(i=Math.floor(i/2),i,o=Math.floor(o/2),o,r):this.getTileRangeForExtentAndZ(a,s,r)))return!0;--s}return!1},t.prototype.getExtent=function(){return this.extent_},t.prototype.getMaxZoom=function(){return this.maxZoom},t.prototype.getMinZoom=function(){return this.minZoom},t.prototype.getOrigin=function(t){return this.origin_?this.origin_:this.origins_[t]},t.prototype.getResolution=function(t){return this.resolutions_[t]},t.prototype.getResolutions=function(){return this.resolutions_},t.prototype.getTileCoordChildTileRange=function(t,e,r){if(t[0]0?n:Math.max(a/s[0],o/s[1]),u=i+1,c=new Array(u),h=0;h=0;o--)this.postProcessPasses_[o].init(t);e.bindTexture(e.TEXTURE_2D,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),e.useProgram(this.currentProgram_),this.applyFrameState(t),this.applyUniforms(t)},e.prototype.prepareDrawToRenderTarget=function(t,e,r){var n=this.getGL(),i=e.getSize();n.bindFramebuffer(n.FRAMEBUFFER,e.getFramebuffer()),n.viewport(0,0,i[0],i[1]),n.bindTexture(n.TEXTURE_2D,e.getTexture()),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.ONE,r?n.ZERO:n.ONE_MINUS_SRC_ALPHA),n.useProgram(this.currentProgram_),this.applyFrameState(t),this.applyUniforms(t)},e.prototype.drawElements=function(t,e){var r=this.getGL(),n=r.UNSIGNED_INT,i=e-t,o=4*t;r.drawElements(r.TRIANGLES,i,n,o)},e.prototype.finalizeDraw=function(t){for(var e=0;ethis.size_[0]||e>=this.size_[1])return yh[0]=0,yh[1]=0,yh[2]=0,yh[3]=0,yh;this.readAll();var r=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return yh[0]=this.data_[4*r],yh[1]=this.data_[4*r+1],yh[2]=this.data_[4*r+2],yh[3]=this.data_[4*r+3],yh},t.prototype.getTexture=function(){return this.texture_},t.prototype.getFramebuffer=function(){return this.framebuffer_},t.prototype.updateSize_=function(){var t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),this.data_=new Uint8Array(t[0]*t[1]*4)},t}(),vh=1,_h=2,bh=4,xh=8,wh=16,Sh=31,Eh={};function Th(t){if("number"==typeof t)return vh;if("boolean"==typeof t)return xh;if("string"==typeof t)return Io(t)?bh|_h:_h;if(!Array.isArray(t))throw new Error("Unhandled value type: "+JSON.stringify(t));var e=t;if(e.every((function(t){return"number"==typeof t})))return 3===e.length||4===e.length?bh|wh:wh;if("string"!=typeof e[0])throw new Error("Expected an expression operator but received: "+JSON.stringify(e));var r=Eh[e[0]];if(void 0===r)throw new Error("Unrecognized expression operator: "+JSON.stringify(e));return r.getReturnType(e.slice(1))}function Ch(t){return Math.log2(t)%1==0}function Oh(t){var e=t.toString();return-1===e.indexOf(".")?e+".0":e}function Ph(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return"vec"+t.length+"("+t.map(Oh).join(", ")+")"}function Rh(t){var e=Oo(t).slice();return e.length<4&&e.push(1),Ph(e.map((function(t,e){return e<3?t/255:t})))}function Ih(t,e){return void 0===t.stringLiteralsMap[e]&&(t.stringLiteralsMap[e]=Object.keys(t.stringLiteralsMap).length),t.stringLiteralsMap[e]}function Lh(t,e){return Oh(Ih(t,e))}function Mh(t,e,r){if(Array.isArray(e)&&"string"==typeof e[0]){var n=Eh[e[0]];if(void 0===n)throw new Error("Unrecognized expression operator: "+JSON.stringify(e));return n.toGlsl(t,e.slice(1),r)}var i=Th(e);return(i&vh)>0?Oh(e):(i&xh)>0?e.toString():(i&_h)>0&&(void 0===r||r==_h)?Lh(t,e.toString()):(i&bh)>0&&(void 0===r||r==bh)?Rh(e):(i&wh)>0?Ph(e):void 0}function Fh(t){if(!(Th(t)&vh))throw new Error("A numeric value was expected, got "+JSON.stringify(t)+" instead")}function Ah(t){for(var e=0;ee)throw new Error("At most "+e+" arguments were expected, got "+t.length+" instead")}function zh(t){if(t.length%2!=0)throw new Error("An even amount of arguments was expected, got "+t+" instead")}function Uh(t,e){if(!Ch(e))throw new Error("Could not infer only one type from the following expression: "+JSON.stringify(t))}function Bh(t){return{getReturnType:function(t){return xh},toGlsl:function(e,r){Nh(r,2);for(var n=Sh,i=0;i"]={getReturnType:function(t){return xh},toGlsl:function(t,e){return Nh(e,2),Ah(e),"("+Mh(t,e[0])+" > "+Mh(t,e[1])+")"}},Eh[">="]={getReturnType:function(t){return xh},toGlsl:function(t,e){return Nh(e,2),Ah(e),"("+Mh(t,e[0])+" >= "+Mh(t,e[1])+")"}},Eh["<"]={getReturnType:function(t){return xh},toGlsl:function(t,e){return Nh(e,2),Ah(e),"("+Mh(t,e[0])+" < "+Mh(t,e[1])+")"}},Eh["<="]={getReturnType:function(t){return xh},toGlsl:function(t,e){return Nh(e,2),Ah(e),"("+Mh(t,e[0])+" <= "+Mh(t,e[1])+")"}},Eh["=="]=Bh("=="),Eh["!="]=Bh("!="),Eh["!"]={getReturnType:function(t){return xh},toGlsl:function(t,e){return Nh(e,1),jh(e[0]),"(!"+Mh(t,e[0])+")"}},Eh.all=Vh("&&"),Eh.any=Vh("||"),Eh.between={getReturnType:function(t){return xh},toGlsl:function(t,e){Nh(e,3),Ah(e);var r=Mh(t,e[1]),n=Mh(t,e[2]),i=Mh(t,e[0]);return"("+i+" >= "+r+" && "+i+" <= "+n+")"}},Eh.array={getReturnType:function(t){return wh},toGlsl:function(t,e){Dh(e,2),Gh(e,4),Ah(e);var r=e.map((function(e){return Mh(t,e,vh)}));return"vec"+e.length+"("+r.join(", ")+")"}},Eh.color={getReturnType:function(t){return bh},toGlsl:function(t,e){Dh(e,3),Gh(e,4),Ah(e);var r=e;3===e.length&&r.push(1);var n=e.map((function(e,r){return Mh(t,e,vh)+(r<3?" / 255.0":"")}));return"vec"+e.length+"("+n.join(", ")+")"}},Eh.interpolate={getReturnType:function(t){for(var e=bh|vh,r=3;r=1;l-=2){s="("+o+" == "+Mh(t,e[l])+" ? "+Mh(t,e[l+1],i)+" : "+(s||a)+")"}return s}},Eh.case={getReturnType:function(t){for(var e=Sh,r=1;r=0;o-=2){s="("+Mh(t,e[o])+" ? "+Mh(t,e[o+1],i)+" : "+(s||a)+")"}return s}};var Yh=function(){function t(){this.uniforms=[],this.attributes=[],this.varyings=[],this.sizeExpression="vec2(1.0)",this.rotationExpression="0.0",this.offsetExpression="vec2(0.0)",this.colorExpression="vec4(1.0)",this.texCoordExpression="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression="false",this.rotateWithView=!1}return t.prototype.addUniform=function(t){return this.uniforms.push(t),this},t.prototype.addAttribute=function(t){return this.attributes.push(t),this},t.prototype.addVarying=function(t,e,r){return this.varyings.push({name:t,type:e,expression:r}),this},t.prototype.setSizeExpression=function(t){return this.sizeExpression=t,this},t.prototype.setRotationExpression=function(t){return this.rotationExpression=t,this},t.prototype.setSymbolOffsetExpression=function(t){return this.offsetExpression=t,this},t.prototype.setColorExpression=function(t){return this.colorExpression=t,this},t.prototype.setTextureCoordinateExpression=function(t){return this.texCoordExpression=t,this},t.prototype.setFragmentDiscardExpression=function(t){return this.discardExpression=t,this},t.prototype.setSymbolRotateWithView=function(t){return this.rotateWithView=t,this},t.prototype.getSizeExpression=function(){return this.sizeExpression},t.prototype.getOffsetExpression=function(){return this.offsetExpression},t.prototype.getColorExpression=function(){return this.colorExpression},t.prototype.getTextureCoordinateExpression=function(){return this.texCoordExpression},t.prototype.getFragmentDiscardExpression=function(){return this.discardExpression},t.prototype.getSymbolVertexShader=function(t){var e=this.rotateWithView?"u_offsetScaleMatrix * u_offsetRotateMatrix":"u_offsetScaleMatrix",r=this.attributes,n=this.varyings;return t&&(r=r.concat("vec4 a_hitColor"),n=n.concat({name:"v_hitColor",type:"vec4",expression:"a_hitColor"})),"precision mediump float;\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_offsetScaleMatrix;\nuniform mat4 u_offsetRotateMatrix;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n"+this.uniforms.map((function(t){return"uniform "+t+";"})).join("\n")+"\nattribute vec2 a_position;\nattribute float a_index;\n"+r.map((function(t){return"attribute "+t+";"})).join("\n")+"\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n"+n.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")+"\nvoid main(void) {\n mat4 offsetMatrix = "+e+";\n vec2 halfSize = "+this.sizeExpression+" * 0.5;\n vec2 offset = "+this.offsetExpression+";\n float angle = "+this.rotationExpression+";\n float offsetX;\n float offsetY;\n if (a_index == 0.0) {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n } else if (a_index == 1.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y - halfSize.y) * sin(angle);\n offsetY = (offset.y - halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else if (a_index == 2.0) {\n offsetX = (offset.x + halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x + halfSize.x) * sin(angle);\n } else {\n offsetX = (offset.x - halfSize.x) * cos(angle) + (offset.y + halfSize.y) * sin(angle);\n offsetY = (offset.y + halfSize.y) * cos(angle) - (offset.x - halfSize.x) * sin(angle);\n }\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n vec4 texCoord = "+this.texCoordExpression+";\n float u = a_index == 0.0 || a_index == 3.0 ? texCoord.s : texCoord.p;\n float v = a_index == 2.0 || a_index == 3.0 ? texCoord.t : texCoord.q;\n v_texCoord = vec2(u, v);\n u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n v = a_index == 2.0 || a_index == 3.0 ? 0.0 : 1.0;\n v_quadCoord = vec2(u, v);\n"+n.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")+"\n}"},t.prototype.getSymbolFragmentShader=function(t){var e=t?" if (gl_FragColor.a < 0.1) { discard; } gl_FragColor = v_hitColor;":"",r=this.varyings;return t&&(r=r.concat({name:"v_hitColor",type:"vec4",expression:"a_hitColor"})),"precision mediump float;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\n"+this.uniforms.map((function(t){return"uniform "+t+";"})).join("\n")+"\nvarying vec2 v_texCoord;\nvarying vec2 v_quadCoord;\n"+r.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")+"\nvoid main(void) {\n if ("+this.discardExpression+") { discard; }\n gl_FragColor = "+this.colorExpression+";\n gl_FragColor.rgb *= gl_FragColor.a;\n"+e+"\n}"},t}();function Wh(t){var e=t.symbol,r=void 0!==e.size?e.size:1,n=e.color||"white",i=e.textureCoord||[0,0,1,1],o=e.offset||[0,0],a=void 0!==e.opacity?e.opacity:1,s=void 0!==e.rotation?e.rotation:0,l={inFragmentShader:!1,variables:[],attributes:[],stringLiteralsMap:{}},u=Mh(l,r,wh|vh),c=Mh(l,o,wh),h=Mh(l,i,wh),p=Mh(l,s,vh),f={inFragmentShader:!0,variables:l.variables,attributes:[],stringLiteralsMap:l.stringLiteralsMap},d=Mh(f,n,bh),g=Mh(f,a,vh),y="1.0",m="vec2("+Mh(f,r,wh|vh)+").x";switch(e.symbolType){case"square":case"image":break;case"circle":y="(1.0-smoothstep(1.-4./"+m+",1.,dot(v_quadCoord-.5,v_quadCoord-.5)*4.))";break;case"triangle":var v="(v_quadCoord*2.-1.)",_="(atan("+v+".x,"+v+".y))";y="(1.0-smoothstep(.5-3./"+m+",.5,cos(floor(.5+"+_+"/2.094395102)*2.094395102-"+_+")*length("+v+")))";break;default:throw new Error("Unexpected symbol type: "+e.symbolType)}var b=(new Yh).setSizeExpression("vec2("+u+")").setRotationExpression(p).setSymbolOffsetExpression(c).setTextureCoordinateExpression(h).setSymbolRotateWithView(!!e.rotateWithView).setColorExpression("vec4("+d+".rgb, "+d+".a * "+g+" * "+y+")");if(t.filter){var x=Mh(f,t.filter,xh);b.setFragmentDiscardExpression("!"+x)}var w={};if(f.variables.forEach((function(e){b.addUniform("float u_"+e),w["u_"+e]=function(){if(!t.variables||void 0===t.variables[e])throw new Error("The following variable is missing from the style: "+e);var r=t.variables[e];return"string"==typeof r&&(r=Ih(l,r)),void 0!==r?r:-9999999}})),"image"===e.symbolType&&e.src){var S=new Image;S.src=e.src,b.addUniform("sampler2D u_texture").setColorExpression(b.getColorExpression()+" * texture2D(u_texture, v_texCoord)"),w.u_texture=S}return f.attributes.forEach((function(t){-1===l.attributes.indexOf(t)&&l.attributes.push(t),b.addVarying("v_"+t,"float","a_"+t)})),l.attributes.forEach((function(t){b.addAttribute("float a_"+t)})),{builder:b,attributes:l.attributes.map((function(t){return{name:t,callback:function(e,r){var n=r[t];return"string"==typeof n&&(n=Ih(l,n)),void 0!==n?n:-9999999}}})),uniforms:w}}var qh=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Xh=function(t){function e(e){var r=t.call(this,{extent:e.extent,origin:e.origin,origins:e.origins,resolutions:e.resolutions,tileSize:e.tileSize,tileSizes:e.tileSizes,sizes:e.sizes})||this;return r.matrixIds_=e.matrixIds,r}return qh(e,t),e.prototype.getMatrixId=function(t){return this.matrixIds_[t]},e.prototype.getMatrixIds=function(){return this.matrixIds_},e}(ic),Zh=Xh;function Kh(t,e,r){var n=[],i=[],o=[],a=[],s=[],l=void 0!==r?r:[],u=Gr(t.SupportedCRS),c=u.getMetersPerUnit(),h="ne"==u.getAxisOrientation().substr(0,2);return t.TileMatrix.sort((function(t,e){return e.ScaleDenominator-t.ScaleDenominator})),t.TileMatrix.forEach((function(e){if(!(l.length>0)||_(l,(function(r){return e.Identifier==r.TileMatrix||-1===e.Identifier.indexOf(":")&&t.Identifier+":"+e.Identifier===r.TileMatrix}))){i.push(e.Identifier);var r=28e-5*e.ScaleDenominator/c,u=e.TileWidth,p=e.TileHeight;h?o.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):o.push(e.TopLeftCorner),n.push(r),a.push(u==p?u:[u,p]),s.push([e.MatrixWidth,e.MatrixHeight])}})),new Xh({extent:e,origins:o,resolutions:n,matrixIds:i,tileSizes:a,sizes:s})}var Hh=function(){function t(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=Is(t.scale),this.displacement_=t.displacement}return t.prototype.clone=function(){var e=this.getScale();return new t({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice()})},t.prototype.getOpacity=function(){return this.opacity_},t.prototype.getRotateWithView=function(){return this.rotateWithView_},t.prototype.getRotation=function(){return this.rotation_},t.prototype.getScale=function(){return this.scale_},t.prototype.getScaleArray=function(){return this.scaleArray_},t.prototype.getDisplacement=function(){return this.displacement_},t.prototype.getAnchor=function(){return n()},t.prototype.getImage=function(t){return n()},t.prototype.getHitDetectionImage=function(){return n()},t.prototype.getPixelRatio=function(t){return 1},t.prototype.getImageState=function(){return n()},t.prototype.getImageSize=function(){return n()},t.prototype.getHitDetectionImageSize=function(){return n()},t.prototype.getOrigin=function(){return n()},t.prototype.getSize=function(){return n()},t.prototype.setOpacity=function(t){this.opacity_=t},t.prototype.setRotateWithView=function(t){this.rotateWithView_=t},t.prototype.setRotation=function(t){this.rotation_=t},t.prototype.setScale=function(t){this.scale_=t,this.scaleArray_=Is(t)},t.prototype.listenImageChange=function(t){n()},t.prototype.load=function(){n()},t.prototype.unlistenImageChange=function(t){n()},t}(),$h=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Jh=function(t){function e(e){var r=this,n=void 0!==e.rotateWithView&&e.rotateWithView;return(r=t.call(this,{opacity:1,rotateWithView:n,rotation:void 0!==e.rotation?e.rotation:0,scale:void 0!==e.scale?e.scale:1,displacement:void 0!==e.displacement?e.displacement:[0,0]})||this).canvas_={},r.hitDetectionCanvas_=null,r.fill_=void 0!==e.fill?e.fill:null,r.origin_=[0,0],r.points_=e.points,r.radius_=void 0!==e.radius?e.radius:e.radius1,r.radius2_=e.radius2,r.angle_=void 0!==e.angle?e.angle:0,r.stroke_=void 0!==e.stroke?e.stroke:null,r.anchor_=null,r.size_=null,r.imageSize_=null,r.hitDetectionImageSize_=null,r.render(),r}return $h(e,t),e.prototype.clone=function(){var t=this.getScale(),r=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice()});return r.setOpacity(this.getOpacity()),r},e.prototype.getAnchor=function(){return this.anchor_},e.prototype.getAngle=function(){return this.angle_},e.prototype.getFill=function(){return this.fill_},e.prototype.getHitDetectionImage=function(){if(!this.hitDetectionCanvas_){var t=this.createRenderOptions();this.createHitDetectionCanvas_(t)}return this.hitDetectionCanvas_},e.prototype.getImage=function(t){if(!this.canvas_[t||1]){var e=this.createRenderOptions(),r=uo(e.size*t||1,e.size*t||1);this.draw_(e,r,0,0,t||1),this.canvas_[t||1]=r.canvas}return this.canvas_[t||1]},e.prototype.getPixelRatio=function(t){return t},e.prototype.getImageSize=function(){return this.imageSize_},e.prototype.getHitDetectionImageSize=function(){return this.hitDetectionImageSize_},e.prototype.getImageState=function(){return ki},e.prototype.getOrigin=function(){return this.origin_},e.prototype.getPoints=function(){return this.points_},e.prototype.getRadius=function(){return this.radius_},e.prototype.getRadius2=function(){return this.radius2_},e.prototype.getSize=function(){return this.size_},e.prototype.getStroke=function(){return this.stroke_},e.prototype.listenImageChange=function(t){},e.prototype.load=function(){},e.prototype.unlistenImageChange=function(t){},e.prototype.createRenderOptions=function(){var t,e="round",r="round",n=0,i=null,o=0,a=0;return this.stroke_&&(null===(t=this.stroke_.getColor())&&(t="#000"),t=Tu(t),void 0===(a=this.stroke_.getWidth())&&(a=1),i=this.stroke_.getLineDash(),o=this.stroke_.getLineDashOffset(),void 0===(r=this.stroke_.getLineJoin())&&(r="round"),void 0===(e=this.stroke_.getLineCap())&&(e="round"),void 0===(n=this.stroke_.getMiterLimit())&&(n=10)),{strokeStyle:t,strokeWidth:a,size:2*(this.radius_+a)+1,lineCap:e,lineDash:i,lineDashOffset:o,lineJoin:r,miterLimit:n}},e.prototype.render=function(){var t=this.createRenderOptions(),e=uo(t.size,t.size);this.draw_(t,e,0,0,1),this.canvas_={},this.canvas_[1]=e.canvas;var r=e.canvas.width,n=r,i=this.getDisplacement();this.hitDetectionImageSize_=[t.size,t.size],this.createHitDetectionCanvas_(t),this.anchor_=[r/2-i[0],r/2+i[1]],this.size_=[r,r],this.imageSize_=[n,n]},e.prototype.draw_=function(t,e,r,n,i){var o,a,s;e.setTransform(i,0,0,i,0,0),e.translate(r,n),e.beginPath();var l=this.points_;if(l===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var u=void 0!==this.radius2_?this.radius2_:this.radius_;for(u!==this.radius_&&(l*=2),o=0;o<=l;o++)a=2*o*Math.PI/l-Math.PI/2+this.angle_,s=o%2==0?this.radius_:u,e.lineTo(t.size/2+s*Math.cos(a),t.size/2+s*Math.sin(a))}if(this.fill_){var c=this.fill_.getColor();null===c&&(c="#000"),e.fillStyle=Tu(c),e.fill()}this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,e.setLineDash&&t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.miterLimit=t.miterLimit,e.stroke()),e.closePath()},e.prototype.createHitDetectionCanvas_=function(t){if(this.hitDetectionCanvas_=this.getImage(1),this.fill_){var e=this.fill_.getColor(),r=0;if("string"==typeof e&&(e=Oo(e)),null===e?r=1:Array.isArray(e)&&(r=4===e.length?e[3]:1),0===r){var n=uo(t.size,t.size);this.hitDetectionCanvas_=n.canvas,this.drawHitDetectionCanvas_(t,n,0,0)}}},e.prototype.drawHitDetectionCanvas_=function(t,e,r,n){e.translate(r,n),e.beginPath();var i=this.points_;if(i===1/0)e.arc(t.size/2,t.size/2,this.radius_,0,2*Math.PI,!0);else{var o=void 0!==this.radius2_?this.radius2_:this.radius_;o!==this.radius_&&(i*=2);var a=void 0,s=void 0,l=void 0;for(a=0;a<=i;a++)l=2*a*Math.PI/i-Math.PI/2+this.angle_,s=a%2==0?this.radius_:o,e.lineTo(t.size/2+s*Math.cos(l),t.size/2+s*Math.sin(l))}e.fillStyle="#000",e.fill(),this.stroke_&&(e.strokeStyle=t.strokeStyle,e.lineWidth=t.strokeWidth,t.lineDash&&(e.setLineDash(t.lineDash),e.lineDashOffset=t.lineDashOffset),e.stroke()),e.closePath()},e}(Hh),Qh=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),tp=function(t){function e(e){var r=e||{};return t.call(this,{points:1/0,fill:r.fill,radius:r.radius,stroke:r.stroke,scale:void 0!==r.scale?r.scale:1,rotation:void 0!==r.rotation?r.rotation:0,rotateWithView:void 0!==r.rotateWithView&&r.rotateWithView,displacement:void 0!==r.displacement?r.displacement:[0,0]})||this}return Qh(e,t),e.prototype.clone=function(){var t=this.getScale(),r=new e({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice()});return r.setOpacity(this.getOpacity()),r},e.prototype.setRadius=function(t){this.radius_=t,this.render()},e}(Jh),ep=function(){function t(t){var e=t||{};this.color_=void 0!==e.color?e.color:null}return t.prototype.clone=function(){var e=this.getColor();return new t({color:Array.isArray(e)?e.slice():e||void 0})},t.prototype.getColor=function(){return this.color_},t.prototype.setColor=function(t){this.color_=t},t}(),rp="fraction",np="pixels",ip="bottom-left",op="bottom-right",ap="top-left",sp="top-right",lp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),up=null,cp=function(t){function e(e,r,n,i,o,a){var s=t.call(this)||this;return s.hitDetectionImage_=null,s.image_=e||new Image,null!==i&&(s.image_.crossOrigin=i),s.canvas_={},s.color_=a,s.unlisten_=null,s.imageState_=o,s.size_=n,s.src_=r,s.tainted_,s}return lp(e,t),e.prototype.isTainted_=function(){if(void 0===this.tainted_&&this.imageState_===ki){up||(up=uo(1,1)),up.drawImage(this.image_,0,0);try{up.getImageData(0,0,1,1),this.tainted_=!1}catch(t){up=null,this.tainted_=!0}}return!0===this.tainted_},e.prototype.dispatchChangeEvent_=function(){this.dispatchEvent(F)},e.prototype.handleImageError_=function(){this.imageState_=ji,this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.handleImageLoad_=function(){this.imageState_=ki,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()},e.prototype.getImage=function(t){return this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_},e.prototype.getPixelRatio=function(t){return this.replaceColor_(t),this.canvas_[t]?t:1},e.prototype.getImageState=function(){return this.imageState_},e.prototype.getHitDetectionImage=function(){if(!this.hitDetectionImage_)if(this.isTainted_()){var t=this.size_[0],e=this.size_[1],r=uo(t,e);r.fillRect(0,0,t,e),this.hitDetectionImage_=r.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_},e.prototype.getSize=function(){return this.size_},e.prototype.getSrc=function(){return this.src_},e.prototype.load=function(){if(this.imageState_==Fi){this.imageState_=Ai;try{this.image_.src=this.src_}catch(t){this.handleImageError_()}this.unlisten_=Zi(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}},e.prototype.replaceColor_=function(t){if(this.color_&&!this.canvas_[t]){var e=document.createElement("canvas");this.canvas_[t]=e,e.width=Math.ceil(this.image_.width*t),e.height=Math.ceil(this.image_.height*t);var r=e.getContext("2d");if(r.scale(t,t),r.drawImage(this.image_,0,0),r.globalCompositeOperation="multiply","multiply"===r.globalCompositeOperation||this.isTainted_())r.fillStyle=wo(this.color_),r.fillRect(0,0,e.width,e.height),r.globalCompositeOperation="destination-in",r.drawImage(this.image_,0,0);else{for(var n=r.getImageData(0,0,e.width,e.height),i=n.data,o=this.color_[0]/255,a=this.color_[1]/255,s=this.color_[2]/255,l=this.color_[3],u=0,c=i.length;u0,6);var p=void 0!==n.src?Fi:ki;return r.color_=void 0!==n.color?Oo(n.color):null,r.iconImage_=hp(u,h,c,r.crossOrigin_,p,r.color_),r.offset_=void 0!==n.offset?n.offset:[0,0],r.offsetOrigin_=void 0!==n.offsetOrigin?n.offsetOrigin:ap,r.origin_=null,r.size_=void 0!==n.size?n.size:null,r}return fp(e,t),e.prototype.clone=function(){var t=this.getScale();return new e({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,crossOrigin:this.crossOrigin_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,src:this.getSrc(),offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,size:null!==this.size_?this.size_.slice():void 0,opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView()})},e.prototype.getAnchor=function(){if(this.normalizedAnchor_)return this.normalizedAnchor_;var t=this.anchor_,e=this.getSize();if(this.anchorXUnits_==rp||this.anchorYUnits_==rp){if(!e)return null;t=this.anchor_.slice(),this.anchorXUnits_==rp&&(t[0]*=e[0]),this.anchorYUnits_==rp&&(t[1]*=e[1])}if(this.anchorOrigin_!=ap){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),this.anchorOrigin_!=sp&&this.anchorOrigin_!=op||(t[0]=-t[0]+e[0]),this.anchorOrigin_!=ip&&this.anchorOrigin_!=op||(t[1]=-t[1]+e[1])}return this.normalizedAnchor_=t,this.normalizedAnchor_},e.prototype.setAnchor=function(t){this.anchor_=t,this.normalizedAnchor_=null},e.prototype.getColor=function(){return this.color_},e.prototype.getImage=function(t){return this.iconImage_.getImage(t)},e.prototype.getPixelRatio=function(t){return this.iconImage_.getPixelRatio(t)},e.prototype.getImageSize=function(){return this.iconImage_.getSize()},e.prototype.getHitDetectionImageSize=function(){return this.getImageSize()},e.prototype.getImageState=function(){return this.iconImage_.getImageState()},e.prototype.getHitDetectionImage=function(){return this.iconImage_.getHitDetectionImage()},e.prototype.getOrigin=function(){if(this.origin_)return this.origin_;var t=this.offset_,e=this.getDisplacement();if(this.offsetOrigin_!=ap){var r=this.getSize(),n=this.iconImage_.getSize();if(!r||!n)return null;t=t.slice(),this.offsetOrigin_!=sp&&this.offsetOrigin_!=op||(t[0]=n[0]-r[0]-t[0]),this.offsetOrigin_!=ip&&this.offsetOrigin_!=op||(t[1]=n[1]-r[1]-t[1])}return t[0]+=e[0],t[1]+=e[1],this.origin_=t,this.origin_},e.prototype.getSrc=function(){return this.iconImage_.getSrc()},e.prototype.getSize=function(){return this.size_?this.size_:this.iconImage_.getSize()},e.prototype.listenImageChange=function(t){this.iconImage_.addEventListener(F,t)},e.prototype.load=function(){this.iconImage_.load()},e.prototype.unlistenImageChange=function(t){this.iconImage_.removeEventListener(F,t)},e}(Hh),gp=function(){function t(t){var e=t||{};this.color_=void 0!==e.color?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=void 0!==e.lineDash?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}return t.prototype.clone=function(){var e=this.getColor();return new t({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})},t.prototype.getColor=function(){return this.color_},t.prototype.getLineCap=function(){return this.lineCap_},t.prototype.getLineDash=function(){return this.lineDash_},t.prototype.getLineDashOffset=function(){return this.lineDashOffset_},t.prototype.getLineJoin=function(){return this.lineJoin_},t.prototype.getMiterLimit=function(){return this.miterLimit_},t.prototype.getWidth=function(){return this.width_},t.prototype.setColor=function(t){this.color_=t},t.prototype.setLineCap=function(t){this.lineCap_=t},t.prototype.setLineDash=function(t){this.lineDash_=t},t.prototype.setLineDashOffset=function(t){this.lineDashOffset_=t},t.prototype.setLineJoin=function(t){this.lineJoin_=t},t.prototype.setMiterLimit=function(t){this.miterLimit_=t},t.prototype.setWidth=function(t){this.width_=t},t}(),yp=function(){function t(t){var e=t||{};this.geometry_=null,this.geometryFunction_=xp,void 0!==e.geometry&&this.setGeometry(e.geometry),this.fill_=void 0!==e.fill?e.fill:null,this.image_=void 0!==e.image?e.image:null,this.renderer_=void 0!==e.renderer?e.renderer:null,this.stroke_=void 0!==e.stroke?e.stroke:null,this.text_=void 0!==e.text?e.text:null,this.zIndex_=e.zIndex}return t.prototype.clone=function(){var e=this.getGeometry();return e&&"object"==typeof e&&(e=e.clone()),new t({geometry:e,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})},t.prototype.getRenderer=function(){return this.renderer_},t.prototype.setRenderer=function(t){this.renderer_=t},t.prototype.getGeometry=function(){return this.geometry_},t.prototype.getGeometryFunction=function(){return this.geometryFunction_},t.prototype.getFill=function(){return this.fill_},t.prototype.setFill=function(t){this.fill_=t},t.prototype.getImage=function(){return this.image_},t.prototype.setImage=function(t){this.image_=t},t.prototype.getStroke=function(){return this.stroke_},t.prototype.setStroke=function(t){this.stroke_=t},t.prototype.getText=function(){return this.text_},t.prototype.setText=function(t){this.text_=t},t.prototype.getZIndex=function(){return this.zIndex_},t.prototype.setGeometry=function(t){"function"==typeof t?this.geometryFunction_=t:"string"==typeof t?this.geometryFunction_=function(e){return e.get(t)}:t?void 0!==t&&(this.geometryFunction_=function(){return t}):this.geometryFunction_=xp,this.geometry_=t},t.prototype.setZIndex=function(t){this.zIndex_=t},t}();function mp(t){var e;if("function"==typeof t)e=t;else{var r;if(Array.isArray(t))r=t;else pt("function"==typeof t.getZIndex,41),r=[t];e=function(){return r}}return e}var vp=null;function _p(t,e){if(!vp){var r=new ep({color:"rgba(255,255,255,0.4)"}),n=new gp({color:"#3399CC",width:1.25});vp=[new yp({image:new tp({fill:r,stroke:n,radius:5}),fill:r,stroke:n})]}return vp}function bp(){var t={},e=[255,255,255,1],r=[0,153,255,1];return t[bt.POLYGON]=[new yp({fill:new ep({color:[255,255,255,.5]})})],t[bt.MULTI_POLYGON]=t[bt.POLYGON],t[bt.LINE_STRING]=[new yp({stroke:new gp({color:e,width:5})}),new yp({stroke:new gp({color:r,width:3})})],t[bt.MULTI_LINE_STRING]=t[bt.LINE_STRING],t[bt.CIRCLE]=t[bt.POLYGON].concat(t[bt.LINE_STRING]),t[bt.POINT]=[new yp({image:new tp({radius:6,fill:new ep({color:r}),stroke:new gp({color:e,width:1.5})}),zIndex:1/0})],t[bt.MULTI_POINT]=t[bt.POINT],t[bt.GEOMETRY_COLLECTION]=t[bt.POLYGON].concat(t[bt.LINE_STRING],t[bt.POINT]),t}function xp(t){return t.getGeometry()}var wp=yp,Sp="point",Ep="line",Tp=function(){function t(t){var e=t||{};this.font_=e.font,this.rotation_=e.rotation,this.rotateWithView_=e.rotateWithView,this.scale_=e.scale,this.scaleArray_=Is(void 0!==e.scale?e.scale:1),this.text_=e.text,this.textAlign_=e.textAlign,this.textBaseline_=e.textBaseline,this.fill_=void 0!==e.fill?e.fill:new ep({color:"#333"}),this.maxAngle_=void 0!==e.maxAngle?e.maxAngle:Math.PI/4,this.placement_=void 0!==e.placement?e.placement:Sp,this.overflow_=!!e.overflow,this.stroke_=void 0!==e.stroke?e.stroke:null,this.offsetX_=void 0!==e.offsetX?e.offsetX:0,this.offsetY_=void 0!==e.offsetY?e.offsetY:0,this.backgroundFill_=e.backgroundFill?e.backgroundFill:null,this.backgroundStroke_=e.backgroundStroke?e.backgroundStroke:null,this.padding_=void 0===e.padding?null:e.padding}return t.prototype.clone=function(){var e=this.getScale();return new t({font:this.getFont(),placement:this.getPlacement(),maxAngle:this.getMaxAngle(),overflow:this.getOverflow(),rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,text:this.getText(),textAlign:this.getTextAlign(),textBaseline:this.getTextBaseline(),fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,offsetX:this.getOffsetX(),offsetY:this.getOffsetY(),backgroundFill:this.getBackgroundFill()?this.getBackgroundFill().clone():void 0,backgroundStroke:this.getBackgroundStroke()?this.getBackgroundStroke().clone():void 0,padding:this.getPadding()})},t.prototype.getOverflow=function(){return this.overflow_},t.prototype.getFont=function(){return this.font_},t.prototype.getMaxAngle=function(){return this.maxAngle_},t.prototype.getPlacement=function(){return this.placement_},t.prototype.getOffsetX=function(){return this.offsetX_},t.prototype.getOffsetY=function(){return this.offsetY_},t.prototype.getFill=function(){return this.fill_},t.prototype.getRotateWithView=function(){return this.rotateWithView_},t.prototype.getRotation=function(){return this.rotation_},t.prototype.getScale=function(){return this.scale_},t.prototype.getScaleArray=function(){return this.scaleArray_},t.prototype.getStroke=function(){return this.stroke_},t.prototype.getText=function(){return this.text_},t.prototype.getTextAlign=function(){return this.textAlign_},t.prototype.getTextBaseline=function(){return this.textBaseline_},t.prototype.getBackgroundFill=function(){return this.backgroundFill_},t.prototype.getBackgroundStroke=function(){return this.backgroundStroke_},t.prototype.getPadding=function(){return this.padding_},t.prototype.setOverflow=function(t){this.overflow_=t},t.prototype.setFont=function(t){this.font_=t},t.prototype.setMaxAngle=function(t){this.maxAngle_=t},t.prototype.setOffsetX=function(t){this.offsetX_=t},t.prototype.setOffsetY=function(t){this.offsetY_=t},t.prototype.setPlacement=function(t){this.placement_=t},t.prototype.setRotateWithView=function(t){this.rotateWithView_=t},t.prototype.setFill=function(t){this.fill_=t},t.prototype.setRotation=function(t){this.rotation_=t},t.prototype.setScale=function(t){this.scale_=t,this.scaleArray_=Is(void 0!==t?t:1)},t.prototype.setStroke=function(t){this.stroke_=t},t.prototype.setText=function(t){this.text_=t},t.prototype.setTextAlign=function(t){this.textAlign_=t},t.prototype.setTextBaseline=function(t){this.textBaseline_=t},t.prototype.setBackgroundFill=function(t){this.backgroundFill_=t},t.prototype.setBackgroundStroke=function(t){this.backgroundStroke_=t},t.prototype.setPadding=function(t){this.padding_=t},t}(),Cp=function(){function t(t){this.first_,this.last_,this.head_,this.circular_=void 0===t||t,this.length_=0}return t.prototype.insertItem=function(t){var e={prev:void 0,next:void 0,data:t},r=this.head_;if(r){var n=r.next;e.prev=r,e.next=n,r.next=e,n&&(n.prev=e),r===this.last_&&(this.last_=e)}else this.first_=e,this.last_=e,this.circular_&&(e.next=e,e.prev=e);this.head_=e,this.length_++},t.prototype.removeItem=function(){var t=this.head_;if(t){var e=t.next,r=t.prev;e&&(e.prev=r),r&&(r.next=e),this.head_=e||r,this.first_===this.last_?(this.head_=void 0,this.first_=void 0,this.last_=void 0):this.first_===t?this.first_=this.head_:this.last_===t&&(this.last_=r?this.head_.prev:this.head_),this.length_--}},t.prototype.firstItem=function(){if(this.head_=this.first_,this.head_)return this.head_.data},t.prototype.lastItem=function(){if(this.head_=this.last_,this.head_)return this.head_.data},t.prototype.nextItem=function(){if(this.head_&&this.head_.next)return this.head_=this.head_.next,this.head_.data},t.prototype.getNextItem=function(){if(this.head_&&this.head_.next)return this.head_.next.data},t.prototype.prevItem=function(){if(this.head_&&this.head_.prev)return this.head_=this.head_.prev,this.head_.data},t.prototype.getPrevItem=function(){if(this.head_&&this.head_.prev)return this.head_.prev.data},t.prototype.getCurrItem=function(){if(this.head_)return this.head_.data},t.prototype.setFirstItem=function(){this.circular_&&this.head_&&(this.first_=this.head_,this.last_=this.head_.prev)},t.prototype.concat=function(t){if(t.head_){if(this.head_){var e=this.head_.next;this.head_.next=t.first_,t.first_.prev=this.head_,e.prev=t.last_,t.last_.next=e,this.length_+=t.length_}else this.head_=t.head_,this.first_=t.first_,this.last_=t.last_,this.length_=t.length_;t.head_=void 0,t.first_=void 0,t.last_=void 0,t.length_=0}},t.prototype.getLength=function(){return this.length_},t}(),Op=r(1),Pp=r.n(Op),Rp=function(){function t(t){this.rbush_=new Pp.a(t),this.items_={}}return t.prototype.insert=function(t,e){var r={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(r),this.items_[o(e)]=r},t.prototype.load=function(t,e){for(var r=new Array(e.length),n=0,i=e.length;nthis.sourceWorldWidth_/2){var e=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];e[0][0]-m>this.sourceWorldWidth_/2&&(e[0][0]-=this.sourceWorldWidth_),e[1][0]-m>this.sourceWorldWidth_/2&&(e[1][0]-=this.sourceWorldWidth_),e[2][0]-m>this.sourceWorldWidth_/2&&(e[2][0]-=this.sourceWorldWidth_);var r=Math.min(e[0][0],e[1][0],e[2][0]);Math.max(e[0][0],e[1][0],e[2][0])-r.5&&c<1,f=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_)f=Pe(Kt([t,e,r,n]))/this.targetWorldWidth_>.25||f;!p&&this.sourceProj_.isGlobal()&&c&&(f=c>.25||f)}if(!(!f&&this.maxSourceExtent_&&isFinite(u[0])&&isFinite(u[1])&&isFinite(u[2])&&isFinite(u[3]))||Re(u,this.maxSourceExtent_)){var d=0;if(!(f||isFinite(i[0])&&isFinite(i[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])&&isFinite(s[0])&&isFinite(s[1])))if(l>0)f=!0;else if(1!=(d=(isFinite(i[0])&&isFinite(i[1])?0:8)+(isFinite(o[0])&&isFinite(o[1])?0:4)+(isFinite(a[0])&&isFinite(a[1])?0:2)+(isFinite(s[0])&&isFinite(s[1])?0:1))&&2!=d&&4!=d&&8!=d)return;if(l>0){if(!f){var g=[(t[0]+r[0])/2,(t[1]+r[1])/2],y=this.transformInv_(g),m=void 0;if(p)m=(We(i[0],h)+We(a[0],h))/2-We(y[0],h);else m=(i[0]+a[0])/2-y[0];var v=(i[1]+a[1])/2-y[1];f=m*m+v*v>this.errorThresholdSquared_}if(f){if(Math.abs(t[0]-r[0])<=Math.abs(t[1]-r[1])){var _=[(e[0]+r[0])/2,(e[1]+r[1])/2],b=this.transformInv_(_),x=[(n[0]+t[0])/2,(n[1]+t[1])/2],w=this.transformInv_(x);this.addQuad_(t,e,_,x,i,o,b,w,l-1),this.addQuad_(x,_,r,n,w,b,a,s,l-1)}else{var S=[(t[0]+e[0])/2,(t[1]+e[1])/2],E=this.transformInv_(S),T=[(r[0]+n[0])/2,(r[1]+n[1])/2],C=this.transformInv_(T);this.addQuad_(t,S,T,n,i,E,C,s,l-1),this.addQuad_(S,e,r,T,E,o,a,C,l-1)}return}}if(p){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&d)&&this.addTriangle_(t,r,n,i,a,s),0==(14&d)&&this.addTriangle_(t,r,e,i,a,o),d&&(0==(13&d)&&this.addTriangle_(e,n,t,o,s,i),0==(7&d)&&this.addTriangle_(e,n,r,o,s,a))}},t.prototype.calculateSourceExtent=function(){var t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,r,n){var i=e.source;pe(t,i[0]),pe(t,i[1]),pe(t,i[2])})),t},t.prototype.getTriangles=function(){return this.triangles_},t}(),Lp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Mp=function(t){function e(e,r,n,i,o,a,s,l,u,c,h,p){var f=t.call(this,o,Ji)||this;f.renderEdges_=void 0!==h&&h,f.contextOptions_=p,f.pixelRatio_=s,f.gutter_=l,f.canvas_=null,f.sourceTileGrid_=r,f.targetTileGrid_=i,f.wrappedTileCoord_=a||o,f.sourceTiles_=[],f.sourcesListenerKeys_=null,f.sourceZ_=0;var d=i.getTileCoordExtent(f.wrappedTileCoord_),g=f.targetTileGrid_.getExtent(),y=f.sourceTileGrid_.getExtent(),m=g?Te(d,g):d;if(0===ve(m))return f.state=ro,f;var v=e.getExtent();v&&(y=y?Te(y,v):v);var _=i.getResolution(f.wrappedTileCoord_[0]),b=ec(e,n,m,_);if(!isFinite(b)||b<=0)return f.state=ro,f;var x=void 0!==c?c:.5;if(f.triangulation_=new Ip(e,n,m,y,b*x,_),0===f.triangulation_.getTriangles().length)return f.state=ro,f;f.sourceZ_=r.getZForResolution(b);var w=f.triangulation_.calculateSourceExtent();if(y&&(e.canWrapX()?(w[1]=Ne(w[1],y[1],y[3]),w[3]=Ne(w[3],y[1],y[3])):w=Te(w,y)),ve(w)){for(var S=r.getTileRangeForExtentAndZ(w,f.sourceZ_),E=S.minX;E<=S.maxX;E++)for(var T=S.minY;T<=S.maxY;T++){var C=u(f.sourceZ_,E,T,s);C&&f.sourceTiles_.push(C)}0===f.sourceTiles_.length&&(f.state=ro)}else f.state=ro;return f}return Lp(e,t),e.prototype.getImage=function(){return this.canvas_},e.prototype.reproject_=function(){var t=[];if(this.sourceTiles_.forEach(function(e,r,n){e&&e.getState()==to&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}.bind(this)),this.sourceTiles_.length=0,0===t.length)this.state=eo;else{var e=this.wrappedTileCoord_[0],r=this.targetTileGrid_.getTileSize(e),n="number"==typeof r?r:r[0],i="number"==typeof r?r:r[1],o=this.targetTileGrid_.getResolution(e),a=this.sourceTileGrid_.getResolution(this.sourceZ_),s=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=rc(n,i,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),o,s,this.triangulation_,t,this.gutter_,this.renderEdges_,this.contextOptions_),this.state=to}this.changed()},e.prototype.load=function(){if(this.state==Ji){this.state=Qi,this.changed();var t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(function(e,r,n){var i=e.getState();if(i==Ji||i==Qi){t++;var o=Z(e,F,(function(r){var n=e.getState();n!=to&&n!=eo&&n!=ro||(H(o),0===--t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(o)}}.bind(this)),this.sourceTiles_.forEach((function(t,e,r){t.getState()==Ji&&t.load()})),0===t&&setTimeout(this.reproject_.bind(this),0)}},e.prototype.unlistenSources_=function(){this.sourcesListenerKeys_.forEach(H),this.sourcesListenerKeys_=null},e}(lo),Fp="tileloadstart",Ap="tileloadend",kp="tileloaderror",jp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function Np(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}var Dp=function(t){function e(e){var r=t.call(this)||this;return r.projection_=Gr(e.projection),r.attributions_=Np(e.attributions),r.attributionsCollapsible_=void 0===e.attributionsCollapsible||e.attributionsCollapsible,r.loading=!1,r.state_=void 0!==e.state?e.state:Qo,r.wrapX_=void 0!==e.wrapX&&e.wrapX,r}return jp(e,t),e.prototype.getAttributions=function(){return this.attributions_},e.prototype.getAttributionsCollapsible=function(){return this.attributionsCollapsible_},e.prototype.getProjection=function(){return this.projection_},e.prototype.getResolutions=function(){return n()},e.prototype.getState=function(){return this.state_},e.prototype.getWrapX=function(){return this.wrapX_},e.prototype.getContextOptions=function(){},e.prototype.refresh=function(){this.changed()},e.prototype.setAttributions=function(t){this.attributions_=Np(t),this.changed()},e.prototype.setState=function(t){this.state_=t,this.changed()},e}(ot),Gp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),zp=function(t){function e(e){var r=t.call(this,{attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:e.projection,state:e.state,wrapX:e.wrapX})||this;r.opaque_=void 0!==e.opaque&&e.opaque,r.tilePixelRatio_=void 0!==e.tilePixelRatio?e.tilePixelRatio:1,r.tileGrid=void 0!==e.tileGrid?e.tileGrid:null;var n=e.tileGrid;return n&&Is(n.getTileSize(n.getMinZoom()),[256,256]),r.tileCache=new yu(e.cacheSize||0),r.tmpSize=[0,0],r.key_=e.key||"",r.tileOptions={transition:e.transition},r.zDirection=e.zDirection?e.zDirection:0,r}return Gp(e,t),e.prototype.canExpireCache=function(){return this.tileCache.canExpireCache()},e.prototype.expireCache=function(t,e){var r=this.getTileCacheForProjection(t);r&&r.expireCache(e)},e.prototype.forEachLoadedTile=function(t,e,r,n){var i=this.getTileCacheForProjection(t);if(!i)return!1;for(var o,a,s,l=!0,u=r.minX;u<=r.maxX;++u)for(var c=r.minY;c<=r.maxY;++c)a=cu(e,u,c),s=!1,i.containsKey(a)&&(s=(o=i.get(a)).getState()===to)&&(s=!1!==n(o)),s||(l=!1);return l},e.prototype.getGutterForProjection=function(t){return 0},e.prototype.getKey=function(){return this.key_},e.prototype.setKey=function(t){this.key_!==t&&(this.key_=t,this.changed())},e.prototype.getOpaque=function(t){return this.opaque_},e.prototype.getResolutions=function(){return this.tileGrid.getResolutions()},e.prototype.getTile=function(t,e,r,i,o){return n()},e.prototype.getTileGrid=function(){return this.tileGrid},e.prototype.getTileGridForProjection=function(t){return this.tileGrid?this.tileGrid:oc(t)},e.prototype.getTileCacheForProjection=function(t){return pt(Xr(this.getProjection(),t),68),this.tileCache},e.prototype.getTilePixelRatio=function(t){return this.tilePixelRatio_},e.prototype.getTilePixelSize=function(t,e,r){var n=this.getTileGridForProjection(r),i=this.getTilePixelRatio(e),o=Is(n.getTileSize(t),this.tmpSize);return 1==i?o:Rs(o,i,this.tmpSize)},e.prototype.getTileCoordForTileUrlFunction=function(t,e){var r=void 0!==e?e:this.getProjection(),n=this.getTileGridForProjection(r);return this.getWrapX()&&r.isGlobal()&&(t=ac(n,t,r)),du(t,n)?t:null},e.prototype.clear=function(){this.tileCache.clear()},e.prototype.refresh=function(){this.clear(),t.prototype.refresh.call(this)},e.prototype.updateCacheSize=function(t,e){var r=this.getTileCacheForProjection(e);t>r.highWaterMark&&(r.highWaterMark=t)},e.prototype.useTile=function(t,e,r,n){},e}(Dp),Up=function(t){function e(e,r){var n=t.call(this,e)||this;return n.tile=r,n}return Gp(e,t),e}(c),Bp=zp,Vp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Yp=function(t){function e(r){var n=t.call(this,{attributions:r.attributions,cacheSize:r.cacheSize,opaque:r.opaque,projection:r.projection,state:r.state,tileGrid:r.tileGrid,tilePixelRatio:r.tilePixelRatio,wrapX:r.wrapX,transition:r.transition,key:r.key,attributionsCollapsible:r.attributionsCollapsible,zDirection:r.zDirection})||this;return n.generateTileUrlFunction_=n.tileUrlFunction===e.prototype.tileUrlFunction,n.tileLoadFunction=r.tileLoadFunction,r.tileUrlFunction&&(n.tileUrlFunction=r.tileUrlFunction),n.urls=null,r.urls?n.setUrls(r.urls):r.url&&n.setUrl(r.url),n.tileLoadingKeys_={},n}return Vp(e,t),e.prototype.getTileLoadFunction=function(){return this.tileLoadFunction},e.prototype.getTileUrlFunction=function(){return Object.getPrototypeOf(this).tileUrlFunction===this.tileUrlFunction?this.tileUrlFunction.bind(this):this.tileUrlFunction},e.prototype.getUrls=function(){return this.urls},e.prototype.handleTileChange=function(t){var e,r=t.target,n=o(r),i=r.getState();i==Qi?(this.tileLoadingKeys_[n]=!0,e=Fp):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],e=i==eo?kp:i==to?Ap:void 0),null!=e&&this.dispatchEvent(new Up(e,r))},e.prototype.setTileLoadFunction=function(t){this.tileCache.clear(),this.tileLoadFunction=t,this.changed()},e.prototype.setTileUrlFunction=function(t,e){this.tileUrlFunction=t,this.tileCache.pruneExceptNewestZ(),void 0!==e?this.setKey(e):this.changed()},e.prototype.setUrl=function(t){var e=yc(t);this.urls=e,this.setUrls(e)},e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.generateTileUrlFunction_?this.setTileUrlFunction(fc(t,this.tileGrid),e):this.setKey(e)},e.prototype.tileUrlFunction=function(t,e,r){},e.prototype.useTile=function(t,e,r){var n=cu(t,e,r);this.tileCache.containsKey(n)&&this.tileCache.get(n)},e}(Bp),Wp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function qp(t,e){t.getImage().src=e}var Xp=function(t){function e(e){var r=t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,opaque:e.opaque,projection:e.projection,state:e.state,tileGrid:e.tileGrid,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:qp,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX,transition:e.transition,key:e.key,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection})||this;return r.crossOrigin=void 0!==e.crossOrigin?e.crossOrigin:null,r.tileClass=void 0!==e.tileClass?e.tileClass:vo,r.tileCacheForProjection={},r.tileGridForProjection={},r.reprojectionErrorThreshold_=e.reprojectionErrorThreshold,r.contextOptions_=!1===e.imageSmoothing?$u:void 0,r.renderReprojectionEdges_=!1,r}return Wp(e,t),e.prototype.canExpireCache=function(){if(this.tileCache.canExpireCache())return!0;for(var t in this.tileCacheForProjection)if(this.tileCacheForProjection[t].canExpireCache())return!0;return!1},e.prototype.expireCache=function(t,e){var r=this.getTileCacheForProjection(t);for(var n in this.tileCache.expireCache(this.tileCache==r?e:{}),this.tileCacheForProjection){var i=this.tileCacheForProjection[n];i.expireCache(i==r?e:{})}},e.prototype.getContextOptions=function(){return this.contextOptions_},e.prototype.getGutterForProjection=function(t){return this.getProjection()&&t&&!Xr(this.getProjection(),t)?0:this.getGutter()},e.prototype.getGutter=function(){return 0},e.prototype.getKey=function(){return t.prototype.getKey.call(this)+(this.contextOptions_?"\n"+JSON.stringify(this.contextOptions_):"")},e.prototype.getOpaque=function(e){return!(this.getProjection()&&e&&!Xr(this.getProjection(),e))&&t.prototype.getOpaque.call(this,e)},e.prototype.getTileGridForProjection=function(t){var e=this.getProjection();if(!this.tileGrid||e&&!Xr(e,t)){var r=o(t);return r in this.tileGridForProjection||(this.tileGridForProjection[r]=oc(t)),this.tileGridForProjection[r]}return this.tileGrid},e.prototype.getTileCacheForProjection=function(t){var e=this.getProjection();if(!e||Xr(e,t))return this.tileCache;var r=o(t);return r in this.tileCacheForProjection||(this.tileCacheForProjection[r]=new yu(this.tileCache.highWaterMark)),this.tileCacheForProjection[r]},e.prototype.createTile_=function(t,e,r,n,i,o){var a=[t,e,r],s=this.getTileCoordForTileUrlFunction(a,i),l=s?this.tileUrlFunction(s,n,i):void 0,u=new this.tileClass(a,void 0!==l?Ji:ro,void 0!==l?l:"",this.crossOrigin,this.tileLoadFunction,this.tileOptions);return u.key=o,u.addEventListener(F,this.handleTileChange.bind(this)),u},e.prototype.getTile=function(t,e,r,n,i){var o=this.getProjection();if(o&&i&&!Xr(o,i)){var a=this.getTileCacheForProjection(i),s=[t,e,r],l=void 0,u=hu(s);a.containsKey(u)&&(l=a.get(u));var c=this.getKey();if(l&&l.key==c)return l;var h=this.getTileGridForProjection(o),p=this.getTileGridForProjection(i),f=this.getTileCoordForTileUrlFunction(s,i),d=new Mp(o,h,i,p,s,f,this.getTilePixelRatio(n),this.getGutter(),function(t,e,r,n){return this.getTileInternal(t,e,r,n,o)}.bind(this),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.contextOptions_);return d.key=c,l?(d.interimTile=l,d.refreshInterimChain(),a.replace(u,d)):a.set(u,d),d}return this.getTileInternal(t,e,r,n,o||i)},e.prototype.getTileInternal=function(t,e,r,n,i){var o=null,a=cu(t,e,r),s=this.getKey();if(this.tileCache.containsKey(a)){if((o=this.tileCache.get(a)).key!=s){var l=o;o=this.createTile_(t,e,r,n,i,s),l.getState()==Ji?o.interimTile=l.interimTile:o.interimTile=l,o.refreshInterimChain(),this.tileCache.replace(a,o)}}else o=this.createTile_(t,e,r,n,i,s),this.tileCache.set(a,o);return o},e.prototype.setRenderReprojectionEdges=function(t){if(this.renderReprojectionEdges_!=t){for(var e in this.renderReprojectionEdges_=t,this.tileCacheForProjection)this.tileCacheForProjection[e].clear();this.changed()}},e.prototype.setTileGridForProjection=function(t,e){var r=Gr(t);if(r){var n=o(r);n in this.tileGridForProjection||(this.tileGridForProjection[n]=e)}},e}(Yp),Zp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function Kp(t){var e,r,n=t[0],i=new Array(n),o=1<>=1;return i.join("")}var Hp=function(t){function e(e){var r=this,n=void 0!==e.hidpi&&e.hidpi;return(r=t.call(this,{cacheSize:e.cacheSize,crossOrigin:"anonymous",imageSmoothing:e.imageSmoothing,opaque:!0,projection:Gr("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:Jo,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:n?2:1,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition})||this).hidpi_=n,r.culture_=void 0!==e.culture?e.culture:"en-us",r.maxZoom_=void 0!==e.maxZoom?e.maxZoom:-1,r.apiKey_=e.key,r.imagerySet_=e.imagerySet,Au("https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+r.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+r.apiKey_+"&c="+r.culture_,r.handleImageryMetadataResponse.bind(r),void 0,"jsonp"),r}return Zp(e,t),e.prototype.getApiKey=function(){return this.apiKey_},e.prototype.getImagerySet=function(){return this.imagerySet_},e.prototype.handleImageryMetadataResponse=function(t){if(200==t.statusCode&&"OK"==t.statusDescription&&"ValidCredentials"==t.authenticationResultCode&&1==t.resourceSets.length&&1==t.resourceSets[0].resources.length){var e=t.resourceSets[0].resources[0],r=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,n=hc(this.getProjection()),i=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/i:[e.imageWidth/i,e.imageHeight/i],a=lc({extent:n,minZoom:e.zoomMin,maxZoom:r,tileSize:o});this.tileGrid=a;var s=this.culture_,l=this.hidpi_;if(this.tileUrlFunction=dc(e.imageUrlSubdomains.map((function(t){var r=[0,0,0],n=e.imageUrl.replace("{subdomain}",t).replace("{culture}",s);return function(t,e,i){if(t){uu(t[0],t[1],t[2],r);var o=n;return l&&(o+="&dpi=d1&device=mobile"),o.replace("{quadkey}",Kp(r))}}}))),e.imageryProviders){var u=Zr(Gr("EPSG:4326"),this.getProjection());this.setAttributions(function(t){var r=[],n=t.viewState,i=this.getTileGrid(),o=i.getZForResolution(n.resolution,this.zDirection),a=i.getTileCoordForCoordAndZ(n.center,o)[0];return e.imageryProviders.map((function(e){for(var n=!1,i=e.coverageAreas,o=0,s=i.length;o=l.zoomMin&&a<=l.zoomMax){var c=l.bbox;if(Re(Ae([c[1],c[0],c[3],c[2]],u),t.extent)){n=!0;break}}}n&&r.push(e.attribution)})),r.push('Terms of Use'),r}.bind(this))}this.setState(Qo)}else this.setState(ta)},e}(Xp),$p=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Jp=function(t){function e(e){var r=e||{},n=void 0!==r.projection?r.projection:"EPSG:3857",i=void 0!==r.tileGrid?r.tileGrid:lc({extent:hc(n),maxResolution:r.maxResolution,maxZoom:r.maxZoom,minZoom:r.minZoom,tileSize:r.tileSize});return t.call(this,{attributions:r.attributions,cacheSize:r.cacheSize,crossOrigin:r.crossOrigin,imageSmoothing:r.imageSmoothing,opaque:r.opaque,projection:n,reprojectionErrorThreshold:r.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:r.tileLoadFunction,tilePixelRatio:r.tilePixelRatio,tileUrlFunction:r.tileUrlFunction,url:r.url,urls:r.urls,wrapX:void 0===r.wrapX||r.wrapX,transition:r.transition,attributionsCollapsible:r.attributionsCollapsible,zDirection:r.zDirection})||this}return $p(e,t),e}(Xp),Qp=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),tf=function(t){function e(e){var r=t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,maxZoom:void 0!==e.maxZoom?e.maxZoom:18,minZoom:e.minZoom,projection:e.projection,transition:e.transition,wrapX:e.wrapX})||this;return r.account_=e.account,r.mapId_=e.map||"",r.config_=e.config||{},r.templateCache_={},r.initializeMap_(),r}return Qp(e,t),e.prototype.getConfig=function(){return this.config_},e.prototype.updateConfig=function(t){O(this.config_,t),this.initializeMap_()},e.prototype.setConfig=function(t){this.config_=t||{},this.initializeMap_()},e.prototype.initializeMap_=function(){var t=JSON.stringify(this.config_);if(this.templateCache_[t])this.applyTemplate_(this.templateCache_[t]);else{var e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);var r=new XMLHttpRequest;r.addEventListener("load",this.handleInitResponse_.bind(this,t)),r.addEventListener("error",this.handleInitError_.bind(this)),r.open("POST",e),r.setRequestHeader("Content-type","application/json"),r.send(JSON.stringify(this.config_))}},e.prototype.handleInitResponse_=function(t,e){var r=e.target;if(!r.status||r.status>=200&&r.status<300){var n=void 0;try{n=JSON.parse(r.responseText)}catch(t){return void this.setState(ta)}this.applyTemplate_(n),this.templateCache_[t]=n,this.setState(Qo)}else this.setState(ta)},e.prototype.handleInitError_=function(t){this.setState(ta)},e.prototype.applyTemplate_=function(t){var e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)},e}(Jp),ef="addfeature",rf="changefeature",nf="clear",of="removefeature",af="featuresloadstart",sf="featuresloadend",lf="featuresloaderror",uf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),cf=function(t){function e(e,r,n){var i=t.call(this,e)||this;return i.feature=r,i.features=n,i}return uf(e,t),e}(c),hf=function(t){function e(e){var r=this,n=e||{};(r=t.call(this,{attributions:n.attributions,projection:void 0,state:Qo,wrapX:void 0===n.wrapX||n.wrapX})||this).loader_=T,r.format_=n.format,r.overlaps_=void 0===n.overlaps||n.overlaps,r.url_=n.url,void 0!==n.loader?r.loader_=n.loader:void 0!==r.url_&&(pt(r.format_,7),r.loader_=Mu(r.url_,r.format_)),r.strategy_=void 0!==n.strategy?n.strategy:Fu;var i,o,a=void 0===n.useSpatialIndex||n.useSpatialIndex;return r.featuresRtree_=a?new Rp:null,r.loadedExtentsRtree_=new Rp,r.nullGeometryFeatures_={},r.idIndex_={},r.uidIndex_={},r.featureChangeKeys_={},r.featuresCollection_=null,Array.isArray(n.features)?o=n.features:n.features&&(o=(i=n.features).getArray()),a||void 0!==i||(i=new ht(o)),void 0!==o&&r.addFeaturesInternal(o),void 0!==i&&r.bindFeaturesCollection_(i),r}return uf(e,t),e.prototype.addFeature=function(t){this.addFeatureInternal(t),this.changed()},e.prototype.addFeatureInternal=function(t){var e=o(t);if(this.addToIndex_(e,t)){this.setupChangeEvents_(e,t);var r=t.getGeometry();if(r){var n=r.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(n,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new cf(ef,t))}else this.featuresCollection_&&this.featuresCollection_.remove(t)},e.prototype.setupChangeEvents_=function(t,e){this.featureChangeKeys_[t]=[Z(e,F,this.handleFeatureChange_,this),Z(e,h,this.handleFeatureChange_,this)]},e.prototype.addToIndex_=function(t,e){var r=!0,n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?r=!1:this.idIndex_[n.toString()]=e),r&&(pt(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),r},e.prototype.addFeatures=function(t){this.addFeaturesInternal(t),this.changed()},e.prototype.addFeaturesInternal=function(t){for(var e=[],r=[],n=[],i=0,a=t.length;i=0;--r){var n=this.geometryFunction(t[r]);n?xr(e,n.getCoordinates()):t.splice(r,1)}Pr(e,1/t.length);var i=new gt(new qn(e));return i.set("features",t),i},e}(hf),df=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),gf="default",yf="truncated",mf=function(t){function e(e,r,n,i,o,a,s){var l=t.call(this,r,n,i,o,a,s)||this;return l.zoomifyImage_=null,l.tileSize_=e,l}return df(e,t),e.prototype.getImage=function(){if(this.zoomifyImage_)return this.zoomifyImage_;var e=t.prototype.getImage.call(this);if(this.state==to){var r=this.tileSize_;if(e.width==r[0]&&e.height==r[1])return this.zoomifyImage_=e,e;var n=uo(r[0],r[1]);return n.drawImage(e,0,0),this.zoomifyImage_=n.canvas,n.canvas}return e},e}(vo),vf=function(t){function e(e){var r=this,n=e,i=n.size,o=void 0!==n.tierSizeCalculation?n.tierSizeCalculation:gf,a=n.tilePixelRatio||1,s=i[0],l=i[1],u=[],c=n.tileSize||256,h=c*a;switch(o){case gf:for(;s>h||l>h;)u.push([Math.ceil(s/h),Math.ceil(l/h)]),h+=h;break;case yf:for(var p=s,f=l;p>h||f>h;)u.push([Math.ceil(p/h),Math.ceil(f/h)]),p>>=1,f>>=1;break;default:pt(!1,53)}u.push([1,1]),u.reverse();for(var d=[a],g=[0],y=1,m=u.length;y1,n=r&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],i=r&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],o=r&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:_f(e.supports,n),formats:_f(e.formats,i),qualities:_f(e.qualities,o)}},Of[wf]=function(t){var e=t.getComplianceLevelSupportedFeatures(),r=void 0===t.imageInfo.extraFormats?e.formats:_f(e.formats,t.imageInfo.extraFormats),n=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&r.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:_f(e.supports,t.imageInfo.extraFeatures),formats:r,qualities:void 0===t.imageInfo.extraQualities?e.qualities:_f(e.qualities,t.imageInfo.extraQualities),preferredFormat:n}};var Pf=function(){function t(t){this.setImageInfo(t)}return t.prototype.setImageInfo=function(t){this.imageInfo="string"==typeof t?JSON.parse(t):t},t.prototype.getImageApiVersion=function(){if(void 0!==this.imageInfo){var t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(var e=0;e0&&"string"==typeof this.imageInfo.profile[0]&&Tf.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}},t.prototype.getComplianceLevelFromProfile=function(t){var e=this.getComplianceLevelEntryFromProfile(t);if(void 0!==e){var r=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(r)?r[0].replace(".json",""):void 0}},t.prototype.getComplianceLevelSupportedFeatures=function(){if(void 0!==this.imageInfo){var t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?Sf.none.none:Sf[t][e]}},t.prototype.getTileSourceOptions=function(t){var e=t||{},r=this.getImageApiVersion();if(void 0!==r){var n=void 0===r?void 0:Of[r](this);if(void 0!==n)return{url:n.url,version:r,size:[this.imageInfo.width,this.imageInfo.height],sizes:n.sizes,format:void 0!==e.format&&n.formats.includes(e.format)?e.format:void 0!==n.preferredFormat?n.preferredFormat:"jpg",supports:n.supports,quality:e.quality&&n.qualities.includes(e.quality)?e.quality:n.qualities.includes("native")?"native":"default",resolutions:Array.isArray(n.resolutions)?n.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:n.tileSize}}},t}(),Rf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function If(t){return t.toLocaleString("en",{maximumFractionDigits:10})}var Lf=function(t){function e(e){var r=this,n=e||{},i=n.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";var o=n.version||xf,a=n.sizes||[],s=n.size;pt(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,60);var l,u,c,h=s[0],p=s[1],f=n.tileSize,d=n.tilePixelRatio||1,g=n.format||"jpg",y=n.quality||(n.version==bf?"native":"default"),m=n.resolutions||[],v=n.supports||[],_=n.extent||[0,-p,h,0],b=null!=a&&Array.isArray(a)&&a.length>0,x=void 0!==f&&("number"==typeof f&&Number.isInteger(f)&&f>0||Array.isArray(f)&&f.length>0),w=null!=v&&Array.isArray(v)&&(v.includes("regionByPx")||v.includes("regionByPct"))&&(v.includes("sizeByWh")||v.includes("sizeByH")||v.includes("sizeByW")||v.includes("sizeByPct"));if(m.sort((function(t,e){return e-t})),x||w)if(null!=f&&("number"==typeof f&&Number.isInteger(f)&&f>0?(l=f,u=f):Array.isArray(f)&&f.length>0&&((1==f.length||null==f[1]&&Number.isInteger(f[0]))&&(l=f[0],u=f[0]),2==f.length&&(Number.isInteger(f[0])&&Number.isInteger(f[1])?(l=f[0],u=f[1]):null==f[0]&&Number.isInteger(f[1])&&(l=f[1],u=f[1])))),void 0!==l&&void 0!==u||(l=256,u=256),0==m.length)for(var S=c=Math.max(Math.ceil(Math.log(h/l)/Math.LN2),Math.ceil(Math.log(p/u)/Math.LN2));S>=0;S--)m.push(Math.pow(2,S));else{var E=Math.max.apply(Math,m);c=Math.round(Math.log(E)/Math.LN2)}else if(l=h,u=p,m=[],b){a.sort((function(t,e){return t[0]-e[0]})),c=-1;var T=[];for(S=0;S0&&m[m.length-1]==C?T.push(S):(m.push(C),c++)}if(T.length>0)for(S=0;Sc)){var d=t[1],_=t[2],S=m[f];if(!(void 0===d||void 0===_||void 0===S||d<0||Math.ceil(h/S/l)<=d||_<0||Math.ceil(p/S/u)<=_)){if(w||x){var E=d*l*S,T=_*u*S,C=l*S,O=u*S,P=l,R=u;if(E+C>h&&(C=h-E),T+O>p&&(O=p-T),E+l*S>h&&(P=Math.floor((h-E+S-1)/S)),T+u*S>p&&(R=Math.floor((p-T+S-1)/S)),0==E&&C==h&&0==T&&O==p)n="full";else if(!w||v.includes("regionByPx"))n=E+","+T+","+C+","+O;else if(v.includes("regionByPct")){n="pct:"+If(E/h*100)+","+If(T/p*100)+","+If(C/h*100)+","+If(O/p*100)}o!=wf||w&&!v.includes("sizeByWh")?!w||v.includes("sizeByW")?s=P+",":v.includes("sizeByH")?s=","+R:v.includes("sizeByWh")?s=P+","+R:v.includes("sizeByPct")&&(s="pct:"+If(100/S)):s=P+","+R}else if(n="full",b){var I=a[f][0],L=a[f][1];s=o==wf?I==h&&L==p?"max":I+","+L:I==h?"full":I+","}else s=o==wf?"max":"full";return i+n+"/"+s+"/0/"+y+"."+g}}},transition:n.transition})||this).zDirection=n.zDirection,r}return Rf(e,t),e}(Xp),Mf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ff=function(t){function e(e,r,n,i,o,a,s){var l=this,u=e.getExtent(),c=r.getExtent(),h=c?Te(n,c):n,p=tc(e,r,xe(h),i),f=new Ip(e,r,h,u,.5*p,i),d=a(f.calculateSourceExtent(),p,o),g=d?Fi:Ni,y=d?d.getPixelRatio():1;return(l=t.call(this,n,i,y,g)||this).targetProj_=r,l.maxSourceExtent_=u,l.triangulation_=f,l.targetResolution_=i,l.targetExtent_=n,l.sourceImage_=d,l.sourcePixelRatio_=y,l.contextOptions_=s,l.canvas_=null,l.sourceListenerKey_=null,l}return Mf(e,t),e.prototype.disposeInternal=function(){this.state==Ai&&this.unlistenSource_(),t.prototype.disposeInternal.call(this)},e.prototype.getImage=function(){return this.canvas_},e.prototype.getProjection=function(){return this.targetProj_},e.prototype.reproject_=function(){var t=this.sourceImage_.getState();if(t==ki){var e=Pe(this.targetExtent_)/this.targetResolution_,r=Ee(this.targetExtent_)/this.targetResolution_;this.canvas_=rc(e,r,this.sourcePixelRatio_,this.sourceImage_.getResolution(),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.contextOptions_)}this.state=t,this.changed()},e.prototype.load=function(){if(this.state==Fi){this.state=Ai,this.changed();var t=this.sourceImage_.getState();t==ki||t==ji?this.reproject_():(this.sourceListenerKey_=Z(this.sourceImage_,F,(function(t){var e=this.sourceImage_.getState();e!=ki&&e!=ji||(this.unlistenSource_(),this.reproject_())}),this),this.sourceImage_.load())}},e.prototype.unlistenSource_=function(){H(this.sourceListenerKey_),this.sourceListenerKey_=null},e}(Mi),Af=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),kf="imageloadstart",jf="imageloadend",Nf="imageloaderror",Df=function(t){function e(e,r){var n=t.call(this,e)||this;return n.image=r,n}return Af(e,t),e}(c);function Gf(t,e){t.getImage().src=e}var zf=function(t){function e(e){var r=t.call(this,{attributions:e.attributions,projection:e.projection,state:e.state})||this;return r.resolutions_=void 0!==e.resolutions?e.resolutions:null,r.reprojectedImage_=null,r.reprojectedRevision_=0,r.contextOptions_=!1===e.imageSmoothing?$u:void 0,r}return Af(e,t),e.prototype.getResolutions=function(){return this.resolutions_},e.prototype.getContextOptions=function(){return this.contextOptions_},e.prototype.findNearestResolution=function(t){if(this.resolutions_){var e=y(this.resolutions_,t,0);t=this.resolutions_[e]}return t},e.prototype.getImage=function(t,e,r,n){var i=this.getProjection();if(i&&n&&!Xr(i,n)){if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&Xr(this.reprojectedImage_.getProjection(),n)&&this.reprojectedImage_.getResolution()==e&&ue(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new Ff(i,n,t,e,r,function(t,e,r){return this.getImageInternal(t,e,r,i)}.bind(this),this.contextOptions_),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}return i&&(n=i),this.getImageInternal(t,e,r,n)},e.prototype.getImageInternal=function(t,e,r,i){return n()},e.prototype.handleImageChange=function(t){var e=t.target;switch(e.getState()){case Ai:this.loading=!0,this.dispatchEvent(new Df(kf,e));break;case ki:this.loading=!1,this.dispatchEvent(new Df(jf,e));break;case ji:this.loading=!1,this.dispatchEvent(new Df(Nf,e))}},e}(Dp),Uf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Bf=function(t){function e(e){var r=this,n=e||{};return(r=t.call(this,{attributions:n.attributions,imageSmoothing:n.imageSmoothing,projection:n.projection,resolutions:n.resolutions})||this).crossOrigin_=void 0!==n.crossOrigin?n.crossOrigin:null,r.hidpi_=void 0===n.hidpi||n.hidpi,r.url_=n.url,r.imageLoadFunction_=void 0!==n.imageLoadFunction?n.imageLoadFunction:Gf,r.params_=n.params||{},r.image_=null,r.imageSize_=[0,0],r.renderedRevision_=0,r.ratio_=void 0!==n.ratio?n.ratio:1.5,r}return Uf(e,t),e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,r,n){if(void 0===this.url_)return null;e=this.findNearestResolution(e),r=this.hidpi_?r:1;var i=this.image_;if(i&&this.renderedRevision_==this.getRevision()&&i.getResolution()==e&&i.getPixelRatio()==r&&te(i.getExtent(),t))return i;var o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};O(o,this.params_);var a=((t=t.slice())[0]+t[2])/2,s=(t[1]+t[3])/2;if(1!=this.ratio_){var l=this.ratio_*Pe(t)/2,u=this.ratio_*Ee(t)/2;t[0]=a-l,t[1]=s-u,t[2]=a+l,t[3]=s+u}var c=e/r,h=Math.ceil(Pe(t)/c),p=Math.ceil(Ee(t)/c);t[0]=a-c*h/2,t[2]=a+c*h/2,t[1]=s-c*p/2,t[3]=s+c*p/2,this.imageSize_[0]=h,this.imageSize_[1]=p;var f=this.getRequestUrl_(t,this.imageSize_,r,n,o);return this.image_=new Ki(t,e,r,f,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(F,this.handleImageChange.bind(this)),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,r,n,i){var o=n.getCode().split(":").pop();i.SIZE=e[0]+","+e[1],i.BBOX=t.join(","),i.BBOXSR=o,i.IMAGESR=o,i.DPI=Math.round(90*r);var a=this.url_,s=a.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return s==a&&pt(!1,50),mc(s,i)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){O(this.params_,t),this.image_=null,this.changed()},e}(zf),Vf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Yf=function(t){function e(e){var r=this,n=e||{};return(r=t.call(this,{attributions:n.attributions,imageSmoothing:n.imageSmoothing,projection:n.projection,resolutions:n.resolutions,state:n.state})||this).canvasFunction_=n.canvasFunction,r.canvas_=null,r.renderedRevision_=0,r.ratio_=void 0!==n.ratio?n.ratio:1.5,r}return Vf(e,t),e.prototype.getImageInternal=function(t,e,r,n){e=this.findNearestResolution(e);var i=this.canvas_;if(i&&this.renderedRevision_==this.getRevision()&&i.getResolution()==e&&i.getPixelRatio()==r&&te(i.getExtent(),t))return i;Me(t=t.slice(),this.ratio_);var o=[Pe(t)/e*r,Ee(t)/e*r],a=this.canvasFunction_.call(this,t,e,r,o,n);return a&&(i=new $i(t,e,r,a)),this.canvas_=i,this.renderedRevision_=this.getRevision(),i},e}(zf),Wf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();var qf=function(t){function e(e){var r=t.call(this,{imageSmoothing:e.imageSmoothing,projection:e.projection,resolutions:e.resolutions})||this;return r.crossOrigin_=void 0!==e.crossOrigin?e.crossOrigin:null,r.displayDpi_=void 0!==e.displayDpi?e.displayDpi:96,r.params_=e.params||{},r.url_=e.url,r.imageLoadFunction_=void 0!==e.imageLoadFunction?e.imageLoadFunction:Gf,r.hidpi_=void 0===e.hidpi||e.hidpi,r.metersPerUnit_=void 0!==e.metersPerUnit?e.metersPerUnit:1,r.ratio_=void 0!==e.ratio?e.ratio:1,r.useOverlay_=void 0!==e.useOverlay&&e.useOverlay,r.image_=null,r.renderedRevision_=0,r}return Wf(e,t),e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,r,n){e=this.findNearestResolution(e),r=this.hidpi_?r:1;var i=this.image_;if(i&&this.renderedRevision_==this.getRevision()&&i.getResolution()==e&&i.getPixelRatio()==r&&te(i.getExtent(),t))return i;1!=this.ratio_&&Me(t=t.slice(),this.ratio_);var o=[Pe(t)/e*r,Ee(t)/e*r];if(void 0!==this.url_){var a=this.getUrl(this.url_,this.params_,t,o,n);(i=new Ki(t,e,r,a,this.crossOrigin_,this.imageLoadFunction_)).addEventListener(F,this.handleImageChange.bind(this))}else i=null;return this.image_=i,this.renderedRevision_=this.getRevision(),i},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.updateParams=function(t){O(this.params_,t),this.changed()},e.prototype.getUrl=function(t,e,r,n,i){var o=function(t,e,r,n){var i=Pe(t),o=Ee(t),a=e[0],s=e[1],l=.0254/n;return s*i>a*o?i*r/(a*l):o*r/(s*l)}(r,n,this.metersPerUnit_,this.displayDpi_),a=xe(r),s={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(n[0]),SETDISPLAYHEIGHT:Math.round(n[1]),SETVIEWSCALE:o,SETVIEWCENTERX:a[0],SETVIEWCENTERY:a[1]};return O(s,e),mc(t,s)},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e}(zf),Xf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Zf=function(t){function e(e){var r=this,n=void 0!==e.crossOrigin?e.crossOrigin:null,i=void 0!==e.imageLoadFunction?e.imageLoadFunction:Gf;return(r=t.call(this,{attributions:e.attributions,imageSmoothing:e.imageSmoothing,projection:Gr(e.projection)})||this).url_=e.url,r.imageExtent_=e.imageExtent,r.image_=new Ki(r.imageExtent_,void 0,1,r.url_,n,i),r.imageSize_=e.imageSize?e.imageSize:null,r.image_.addEventListener(F,r.handleImageChange.bind(r)),r}return Xf(e,t),e.prototype.getImageExtent=function(){return this.imageExtent_},e.prototype.getImageInternal=function(t,e,r,n){return Re(t,this.image_.getExtent())?this.image_:null},e.prototype.getUrl=function(){return this.url_},e.prototype.handleImageChange=function(e){if(this.image_.getState()==ki){var r=this.image_.getExtent(),n=this.image_.getImage(),i=void 0,o=void 0;this.imageSize_?(i=this.imageSize_[0],o=this.imageSize_[1]):(i=n.width,o=n.height);var a=Ee(r)/o,s=Math.ceil(Pe(r)/a);if(s!=i){var l=uo(s,o);O(l,this.getContextOptions());var u=l.canvas;l.drawImage(n,0,0,i,o,0,0,u.width,u.height),this.image_.setImage(u)}}t.prototype.handleImageChange.call(this,e)},e}(zf),Kf="carmentaserver",Hf="geoserver",$f="mapserver",Jf="qgis",Qf=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),td=[101,101],ed=function(t){function e(e){var r=this,n=e||{};return(r=t.call(this,{attributions:n.attributions,imageSmoothing:n.imageSmoothing,projection:n.projection,resolutions:n.resolutions})||this).crossOrigin_=void 0!==n.crossOrigin?n.crossOrigin:null,r.url_=n.url,r.imageLoadFunction_=void 0!==n.imageLoadFunction?n.imageLoadFunction:Gf,r.params_=n.params||{},r.v13_=!0,r.updateV13_(),r.serverType_=n.serverType,r.hidpi_=void 0===n.hidpi||n.hidpi,r.image_=null,r.imageSize_=[0,0],r.renderedRevision_=0,r.ratio_=void 0!==n.ratio?n.ratio:1.5,r}return Qf(e,t),e.prototype.getFeatureInfoUrl=function(t,e,r,n){if(void 0!==this.url_){var i=Gr(r),o=this.getProjection();o&&o!==i&&(e=tc(o,i,t,e),t=Hr(t,i,o));var a=Se(t,e,0,td),s={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};O(s,this.params_,n);var l=Math.floor((t[0]-a[0])/e),u=Math.floor((a[3]-t[1])/e);return s[this.v13_?"I":"X"]=l,s[this.v13_?"J":"Y"]=u,this.getRequestUrl_(a,td,1,o||i,s)}},e.prototype.getLegendUrl=function(t,e){if(void 0!==this.url_){var r={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){var n=this.params_.LAYERS;if(!(!Array.isArray(n)||1===n.length))return;r.LAYER=n}if(void 0!==t){var i=this.getProjection()?this.getProjection().getMetersPerUnit():1;r.SCALE=t*i/28e-5}return O(r,e),mc(this.url_,r)}},e.prototype.getParams=function(){return this.params_},e.prototype.getImageInternal=function(t,e,r,n){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==r||this.hidpi_&&void 0!==this.serverType_||(r=1);var i=e/r,o=xe(t),a=Se(o,i,0,[Math.ceil(Pe(t)/i),Math.ceil(Ee(t)/i)]),s=Se(o,i,0,[Math.ceil(this.ratio_*Pe(t)/i),Math.ceil(this.ratio_*Ee(t)/i)]),l=this.image_;if(l&&this.renderedRevision_==this.getRevision()&&l.getResolution()==e&&l.getPixelRatio()==r&&te(l.getExtent(),a))return l;var u={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};O(u,this.params_),this.imageSize_[0]=Math.round(Pe(s)/i),this.imageSize_[1]=Math.round(Ee(s)/i);var c=this.getRequestUrl_(s,this.imageSize_,r,n,u);return this.image_=new Ki(s,e,r,c,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(F,this.handleImageChange.bind(this)),this.image_},e.prototype.getImageLoadFunction=function(){return this.imageLoadFunction_},e.prototype.getRequestUrl_=function(t,e,r,n,i){if(pt(void 0!==this.url_,9),i[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(i.STYLES=""),1!=r)switch(this.serverType_){case Hf:var o=90*r+.5|0;"FORMAT_OPTIONS"in i?i.FORMAT_OPTIONS+=";dpi:"+o:i.FORMAT_OPTIONS="dpi:"+o;break;case $f:i.MAP_RESOLUTION=90*r;break;case Kf:case Jf:i.DPI=90*r;break;default:pt(!1,8)}i.WIDTH=e[0],i.HEIGHT=e[1];var a,s=n.getAxisOrientation();return a=this.v13_&&"ne"==s.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,i.BBOX=a.join(","),mc(this.url_,i)},e.prototype.getUrl=function(){return this.url_},e.prototype.setImageLoadFunction=function(t){this.image_=null,this.imageLoadFunction_=t,this.changed()},e.prototype.setUrl=function(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())},e.prototype.updateParams=function(t){O(this.params_,t),this.updateV13_(),this.image_=null,this.changed()},e.prototype.updateV13_=function(){var t=this.params_.VERSION||"1.3.0";this.v13_=br(t,"1.3")>=0},e}(zf),rd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),nd='© OpenStreetMap contributors.',id=function(t){function e(e){var r,n=e||{};r=void 0!==n.attributions?n.attributions:[nd];var i=void 0!==n.crossOrigin?n.crossOrigin:"anonymous",o=void 0!==n.url?n.url:"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png";return t.call(this,{attributions:r,attributionsCollapsible:!1,cacheSize:n.cacheSize,crossOrigin:i,imageSmoothing:n.imageSmoothing,maxZoom:void 0!==n.maxZoom?n.maxZoom:19,opaque:void 0===n.opaque||n.opaque,reprojectionErrorThreshold:n.reprojectionErrorThreshold,tileLoadFunction:n.tileLoadFunction,transition:n.transition,url:o,wrapX:n.wrapX})||this}return rd(e,t),e}(Jp),od=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),ad=function(t){function e(e){var r=e||{};return t.call(this,r)||this}return od(e,t),e}(na),sd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),ld=function(t){function e(e){var r=t.call(this)||this;return r.boundHandleImageChange_=r.handleImageChange_.bind(r),r.layer_=e,r.declutterExecutorGroup=null,r}return sd(e,t),e.prototype.getFeatures=function(t){return n()},e.prototype.prepareFrame=function(t){return n()},e.prototype.renderFrame=function(t,e){return n()},e.prototype.loadedTileCallback=function(t,e,r){t[e]||(t[e]={}),t[e][r.tileCoord.toString()]=r},e.prototype.createLoadedTileFinder=function(t,e,r){return function(n,i){var o=this.loadedTileCallback.bind(this,r,n);return t.forEachLoadedTile(e,n,i,o)}.bind(this)},e.prototype.forEachFeatureAtCoordinate=function(t,e,r,n,i){},e.prototype.getDataAtPixel=function(t,e,r){return n()},e.prototype.getLayer=function(){return this.layer_},e.prototype.handleFontsChanged=function(){},e.prototype.handleImageChange_=function(t){t.target.getState()===ki&&this.renderIfReadyAndVisible()},e.prototype.loadImage=function(t){var e=t.getState();return e!=ki&&e!=ji&&t.addEventListener(F,this.boundHandleImageChange_),e==Fi&&(t.load(),e=t.getState()),e==ki},e.prototype.renderIfReadyAndVisible=function(){var t=this.getLayer();t.getVisible()&&t.getSourceState()==Qo&&t.changed()},e}(Q),ud=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),cd=function(t){function e(e){var r=t.call(this,e)||this;return r.container=null,r.renderedResolution,r.tempTransform=[1,0,0,1,0,0],r.pixelTransform=[1,0,0,1,0,0],r.inversePixelTransform=[1,0,0,1,0,0],r.context=null,r.containerReused=!1,r}return ud(e,t),e.prototype.useContainer=function(t,e,r){var n,i,o=this.getLayer().getClassName();t&&""===t.style.opacity&&t.className===o&&((s=t.firstElementChild)instanceof HTMLCanvasElement&&(i=s.getContext("2d")));if(!i||0!==i.canvas.width&&i.canvas.style.transform!==e?this.containerReused&&(this.container=null,this.context=null,this.containerReused=!1):(this.container=t,this.context=i,this.containerReused=!0),!this.container){(n=document.createElement("div")).className=o;var a=n.style;a.position="absolute",a.width="100%",a.height="100%";var s=(i=uo()).canvas;n.appendChild(s),(a=s.style).position="absolute",a.left="0",a.transformOrigin="top left",this.container=n,this.context=i}},e.prototype.clip=function(t,e,r){var n=e.pixelRatio,i=e.size[0]*n/2,o=e.size[1]*n/2,a=e.viewState.rotation,s=Ce(r),l=Oe(r),u=be(r),c=_e(r);It(e.coordinateToPixelTransform,s),It(e.coordinateToPixelTransform,l),It(e.coordinateToPixelTransform,u),It(e.coordinateToPixelTransform,c),t.save(),Ca(t,-a,i,o),t.beginPath(),t.moveTo(s[0]*n,s[1]*n),t.lineTo(l[0]*n,l[1]*n),t.lineTo(u[0]*n,u[1]*n),t.lineTo(c[0]*n,c[1]*n),t.clip(),Ca(t,a,i,o)},e.prototype.clipUnrotated=function(t,e,r){var n=Ce(r),i=Oe(r),o=be(r),a=_e(r);It(e.coordinateToPixelTransform,n),It(e.coordinateToPixelTransform,i),It(e.coordinateToPixelTransform,o),It(e.coordinateToPixelTransform,a);var s=this.inversePixelTransform;It(s,n),It(s,i),It(s,o),It(s,a),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(i[0]),Math.round(i[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.lineTo(Math.round(a[0]),Math.round(a[1])),t.clip()},e.prototype.dispatchRenderEvent_=function(t,e,r){var n=this.getLayer();if(n.hasListener(t)){var i=new la(t,this.inversePixelTransform,r,e);n.dispatchEvent(i)}},e.prototype.preRender=function(t,e){this.dispatchRenderEvent_(qo,t,e)},e.prototype.postRender=function(t,e){this.dispatchRenderEvent_(Xo,t,e)},e.prototype.getRenderTransform=function(t,e,r,n,i,o,a){var s=i/2,l=o/2,u=n/e,c=-u,h=-t[0]+a,p=-t[1];return kt(this.tempTransform,s,l,u,c,-r,h,p)},e.prototype.getDataAtPixel=function(t,e,r){var n,i=It(this.inversePixelTransform,t.slice()),o=this.context,a=this.getLayer().getExtent();if(a&&!Qt(a,It(e.pixelToCoordinateTransform,t.slice())))return null;try{var s=Math.round(i[0]),l=Math.round(i[1]),u=document.createElement("canvas"),c=u.getContext("2d");u.width=1,u.height=1,c.clearRect(0,0,1,1),c.drawImage(o.canvas,s,l,1,1,0,0,1,1),n=c.getImageData(0,0,1,1).data}catch(t){return"SecurityError"===t.name?new Uint8Array:n}return 0===n[3]?null:n},e}(ld),hd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),pd=function(t){function e(e){var r=t.call(this,e)||this;return r.image_=null,r}return hd(e,t),e.prototype.getImage=function(){return this.image_?this.image_.getImage():null},e.prototype.prepareFrame=function(t){var e=t.layerStatesArray[t.layerIndex],r=t.pixelRatio,n=t.viewState,i=n.resolution,o=this.getLayer().getSource(),a=t.viewHints,s=t.extent;if(void 0!==e.extent&&(s=Te(s,on(e.extent,n.projection))),!a[ns]&&!a[is]&&!Ie(s))if(o){var l=n.projection,u=o.getImage(s,i,r,l);u&&this.loadImage(u)&&(this.image_=u)}else this.image_=null;return!!this.image_},e.prototype.renderFrame=function(t,e){var r=this.image_,n=r.getExtent(),i=r.getResolution(),o=r.getPixelRatio(),a=t.layerStatesArray[t.layerIndex],s=t.pixelRatio,l=t.viewState,u=l.center,c=l.resolution,h=t.size,p=s*i/(c*o),f=Math.round(h[0]*s),d=Math.round(h[1]*s),g=l.rotation;if(g){var y=Math.round(Math.sqrt(f*f+d*d));f=y,d=y}kt(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/s,1/s,g,-f/2,-d/2),jt(this.inversePixelTransform,this.pixelTransform);var m=Ra(this.pixelTransform);this.useContainer(e,m,a.opacity);var v=this.context,_=v.canvas;_.width!=f||_.height!=d?(_.width=f,_.height=d):this.containerReused||v.clearRect(0,0,f,d);var b=!1;if(a.extent){var x=on(a.extent,l.projection);(b=!te(x,t.extent)&&Re(x,t.extent))&&this.clipUnrotated(v,t,x)}var w=r.getImage(),S=kt(this.tempTransform,f/2,d/2,p,p,0,o*(n[0]-u[0])/i,o*(u[1]-n[3])/i);this.renderedResolution=i*s/o;var E=S[4],T=S[5],C=w.width*S[0],P=w.height*S[3];if(O(v,this.getLayer().getSource().getContextOptions()),this.preRender(v,t),C>=.5&&P>=.5){var R=a.opacity,I=void 0;1!==R&&(I=this.context.globalAlpha,this.context.globalAlpha=R),this.context.drawImage(w,0,0,+w.width,+w.height,Math.round(E),Math.round(T),Math.round(C),Math.round(P)),1!==R&&(this.context.globalAlpha=I)}return this.postRender(v,t),b&&v.restore(),m!==_.style.transform&&(_.style.transform=m),this.container},e}(cd),fd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),dd=function(t){function e(e){return t.call(this,e)||this}return fd(e,t),e.prototype.createRenderer=function(){return new pd(this)},e}(ad),gd="preload",yd="useInterimTilesOnError",md=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),vd=function(t){function e(e){var r=this,n=e||{},i=O({},n);return delete i.preload,delete i.useInterimTilesOnError,(r=t.call(this,i)||this).setPreload(void 0!==n.preload?n.preload:0),r.setUseInterimTilesOnError(void 0===n.useInterimTilesOnError||n.useInterimTilesOnError),r}return md(e,t),e.prototype.getPreload=function(){return this.get(gd)},e.prototype.setPreload=function(t){this.set(gd,t)},e.prototype.getUseInterimTilesOnError=function(){return this.get(yd)},e.prototype.setUseInterimTilesOnError=function(t){this.set(yd,t)},e}(na),_d=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),bd=function(t){function e(e){var r=t.call(this,e)||this;return r.extentChanged=!0,r.renderedExtent_=null,r.renderedPixelRatio,r.renderedProjection=null,r.renderedRevision,r.renderedTiles=[],r.newTiles_=!1,r.tmpExtent=[1/0,1/0,-1/0,-1/0],r.tmpTileRange_=new _u(0,0,0,0),r}return _d(e,t),e.prototype.isDrawableTile=function(t){var e=this.getLayer(),r=t.getState(),n=e.getUseInterimTilesOnError();return r==to||r==ro||r==eo&&!n},e.prototype.getTile=function(t,e,r,n){var i=n.pixelRatio,o=n.viewState.projection,a=this.getLayer(),s=a.getSource().getTile(t,e,r,i,o);return s.getState()==eo&&(a.getUseInterimTilesOnError()?a.getPreload()>0&&(this.newTiles_=!0):s.setState(to)),this.isDrawableTile(s)||(s=s.getInterimTile()),s},e.prototype.loadedTileCallback=function(e,r,n){return!!this.isDrawableTile(n)&&t.prototype.loadedTileCallback.call(this,e,r,n)},e.prototype.prepareFrame=function(t){return!!this.getLayer().getSource()},e.prototype.renderFrame=function(t,e){var r=t.layerStatesArray[t.layerIndex],n=t.viewState,i=n.projection,a=n.resolution,s=n.center,l=n.rotation,u=t.pixelRatio,c=this.getLayer(),h=c.getSource(),p=h.getRevision(),f=h.getTileGridForProjection(i),g=f.getZForResolution(a,h.zDirection),y=f.getResolution(g),m=t.extent,v=r.extent&&on(r.extent,i);v&&(m=Te(m,on(r.extent,i)));var _=h.getTilePixelRatio(u),b=Math.round(t.size[0]*_),x=Math.round(t.size[1]*_);if(l){var w=Math.round(Math.sqrt(b*b+x*x));b=w,x=w}var S=y*b/2/_,E=y*x/2/_,T=[s[0]-S,s[1]-E,s[0]+S,s[1]+E],C=f.getTileRangeForExtentAndZ(m,g),P={};P[g]={};var R=this.createLoadedTileFinder(h,i,P),I=this.tmpExtent,L=this.tmpTileRange_;this.newTiles_=!1;for(var M=C.minX;M<=C.maxX;++M)for(var F=C.minY;F<=C.maxY;++F){var A=this.getTile(g,M,F,t);if(this.isDrawableTile(A)){var k=o(this);if(A.getState()==to){P[g][A.tileCoord.toString()]=A;var j=A.inTransition(k);this.newTiles_||!j&&-1!==this.renderedTiles.indexOf(A)||(this.newTiles_=!0)}if(1===A.getAlpha(k,t.time))continue}var N=f.getTileCoordChildTileRange(A.tileCoord,L,I),D=!1;N&&(D=R(g+1,N)),D||f.forEachTileCoordParentTileRange(A.tileCoord,R,L,I)}var G=y/a;kt(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/_,1/_,l,-b/2,-x/2);var z=Ra(this.pixelTransform);this.useContainer(e,z,r.opacity);var U=this.context,B=U.canvas;jt(this.inversePixelTransform,this.pixelTransform),kt(this.tempTransform,b/2,x/2,G,G,0,-b/2,-x/2),B.width!=b||B.height!=x?(B.width=b,B.height=x):this.containerReused||U.clearRect(0,0,b,x),v&&this.clipUnrotated(U,t,v),O(U,h.getContextOptions()),this.preRender(U,t),this.renderedTiles.length=0;var V,Y,W,q=Object.keys(P).map(Number);q.sort(d),1!==r.opacity||this.containerReused&&!h.getOpaque(t.viewState.projection)?(V=[],Y=[]):q=q.reverse();for(var X=q.length-1;X>=0;--X){var Z=q[X],K=h.getTilePixelSize(Z,u,i),H=f.getResolution(Z)/y,$=K[0]*H*G,J=K[1]*H*G,Q=f.getTileCoordForCoordAndZ(Ce(T),Z),tt=f.getTileCoordExtent(Q),et=It(this.tempTransform,[_*(tt[0]-T[0])/y,_*(T[3]-tt[3])/y]),rt=_*h.getGutterForProjection(i),nt=P[Z];for(var it in nt){var ot=(A=nt[it]).tileCoord,at=et[0]-(Q[1]-ot[1])*$,st=Math.round(at+$),lt=et[1]-(Q[2]-ot[2])*J,ut=Math.round(lt+J),ct=st-(M=Math.round(at)),ht=ut-(F=Math.round(lt)),pt=g===Z;if(!(j=pt&&1!==A.getAlpha(o(this),t.time)))if(V){U.save(),W=[M,F,M+ct,F,M+ct,F+ht,M,F+ht];for(var ft=0,dt=V.length;ftthis._maxQueueLength;)this._queue.shift().callback(null,null)},e.prototype._dispatch=function(){if(0===this._running&&this._queue.length>0){var t=this._queue.shift();this._job=t;var e=t.inputs[0].width,r=t.inputs[0].height,n=t.inputs.map((function(t){return t.data.buffer})),i=this._workers.length;if(this._running=i,1===i)this._workers[0].postMessage({buffers:n,meta:t.meta,imageOps:this._imageOps,width:e,height:r},n);else for(var o=t.inputs[0].data.length,a=4*Math.ceil(o/4/i),s=0;sStamen Design, under CC BY 3.0.',nd],Vd={terrain:{extension:"jpg",opaque:!0},"terrain-background":{extension:"jpg",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Yd={terrain:{minZoom:0,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:0,maxZoom:18}},Wd=function(t){function e(e){var r=e.layer.indexOf("-"),n=-1==r?e.layer:e.layer.slice(0,r),i=Yd[n],o=Vd[e.layer],a=void 0!==e.url?e.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+e.layer+"/{z}/{x}/{y}."+o.extension;return t.call(this,{attributions:Bd,cacheSize:e.cacheSize,crossOrigin:"anonymous",imageSmoothing:e.imageSmoothing,maxZoom:null!=e.maxZoom?e.maxZoom:i.maxZoom,minZoom:null!=e.minZoom?e.minZoom:i.minZoom,opaque:o.opaque,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:a,wrapX:e.wrapX})||this}return Ud(e,t),e}(Jp),qd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Xd=function(t){function e(e){var r=this,n=e||{};return(r=t.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,crossOrigin:n.crossOrigin,imageSmoothing:n.imageSmoothing,projection:n.projection,reprojectionErrorThreshold:n.reprojectionErrorThreshold,tileGrid:n.tileGrid,tileLoadFunction:n.tileLoadFunction,url:n.url,urls:n.urls,wrapX:void 0===n.wrapX||n.wrapX,transition:n.transition})||this).params_=n.params||{},r.hidpi_=void 0===n.hidpi||n.hidpi,r.tmpExtent_=[1/0,1/0,-1/0,-1/0],r.setKey(r.getKeyForParams_()),r}return qd(e,t),e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var r in this.params_)e[t++]=r+"-"+this.params_[r];return e.join("/")},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,r,n,i,o){var a=this.urls;if(a){var s,l=i.getCode().split(":").pop();if(o.SIZE=e[0]+","+e[1],o.BBOX=r.join(","),o.BBOXSR=l,o.IMAGESR=l,o.DPI=Math.round(o.DPI?o.DPI*n:90*n),1==a.length)s=a[0];else s=a[We(fu(t),a.length)];return mc(s.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_?t:1},e.prototype.updateParams=function(t){O(this.params_,t),this.setKey(this.getKeyForParams_())},e.prototype.tileUrlFunction=function(t,e,r){var n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(r)),!(n.getResolutions().length<=t[0])){1==e||this.hidpi_||(e=1);var i=n.getTileCoordExtent(t,this.tmpExtent_),o=Is(n.getTileSize(t[0]),this.tmpSize);1!=e&&(o=Rs(o,e,this.tmpSize));var a={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return O(a,this.params_),this.getRequestUrl_(t,o,i,e,r,a)}},e}(Xp),Zd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Kd=function(t){function e(e,r,n){var i=t.call(this,e,to)||this;return i.tileSize_=r,i.text_=n,i.canvas_=null,i}return Zd(e,t),e.prototype.getImage=function(){if(this.canvas_)return this.canvas_;var t=this.tileSize_,e=uo(t[0],t[1]);return e.strokeStyle="grey",e.strokeRect(.5,.5,t[0]+.5,t[1]+.5),e.fillStyle="grey",e.strokeStyle="white",e.textAlign="center",e.textBaseline="middle",e.font="24px sans-serif",e.lineWidth=4,e.strokeText(this.text_,t[0]/2,t[1]/2,t[0]),e.fillText(this.text_,t[0]/2,t[1]/2,t[0]),this.canvas_=e.canvas,e.canvas},e.prototype.load=function(){},e}(lo),Hd=function(t){function e(e){var r=e||{};return t.call(this,{opaque:!1,projection:r.projection,tileGrid:r.tileGrid,wrapX:void 0===r.wrapX||r.wrapX,zDirection:r.zDirection})||this}return Zd(e,t),e.prototype.getTile=function(t,e,r){var n=cu(t,e,r);if(this.tileCache.containsKey(n))return this.tileCache.get(n);var i=Is(this.tileGrid.getTileSize(t)),o=[t,e,r],a=this.getTileCoordForTileUrlFunction(o),s=void 0;s=a?"z:"+a[0]+" x:"+a[1]+" y:"+a[2]:"none";var l=new Kd(o,i,s);return this.tileCache.set(n,l),l},e}(Jp),$d=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Jd=function(t){function e(e){var r=t.call(this,{attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,imageSmoothing:e.imageSmoothing,projection:Gr("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:Jo,tileLoadFunction:e.tileLoadFunction,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition})||this;if(r.tileJSON_=null,r.tileSize_=e.tileSize,e.url)if(e.jsonp)Au(e.url,r.handleTileJSONResponse.bind(r),r.handleTileJSONError.bind(r));else{var n=new XMLHttpRequest;n.addEventListener("load",r.onXHRLoad_.bind(r)),n.addEventListener("error",r.onXHRError_.bind(r)),n.open("GET",e.url),n.send()}else e.tileJSON?r.handleTileJSONResponse(e.tileJSON):pt(!1,51);return r}return $d(e,t),e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var r=void 0;try{r=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(r)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTileJSON=function(){return this.tileJSON_},e.prototype.handleTileJSONResponse=function(t){var e,r=Gr("EPSG:4326"),n=this.getProjection();if(void 0!==t.bounds){var i=Zr(r,n);e=Ae(t.bounds,i)}var o=t.minzoom||0,a=t.maxzoom||22,s=lc({extent:hc(n),maxZoom:a,minZoom:o,tileSize:this.tileSize_});if(this.tileGrid=s,this.tileUrlFunction=fc(t.tiles,s),void 0!==t.attribution&&!this.getAttributions()){var l=void 0!==e?e:r.getExtent();this.setAttributions((function(e){return Re(l,e.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState(Qo)},e.prototype.handleTileJSONError=function(){this.setState(ta)},e}(Xp),Qd=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),tg=function(t){function e(e){var r=this,n=e||{},i=n.params||{},o=!("TRANSPARENT"in i)||i.TRANSPARENT;return(r=t.call(this,{attributions:n.attributions,cacheSize:n.cacheSize,crossOrigin:n.crossOrigin,imageSmoothing:n.imageSmoothing,opaque:!o,projection:n.projection,reprojectionErrorThreshold:n.reprojectionErrorThreshold,tileClass:n.tileClass,tileGrid:n.tileGrid,tileLoadFunction:n.tileLoadFunction,url:n.url,urls:n.urls,wrapX:void 0===n.wrapX||n.wrapX,transition:n.transition})||this).gutter_=void 0!==n.gutter?n.gutter:0,r.params_=i,r.v13_=!0,r.serverType_=n.serverType,r.hidpi_=void 0===n.hidpi||n.hidpi,r.tmpExtent_=[1/0,1/0,-1/0,-1/0],r.updateV13_(),r.setKey(r.getKeyForParams_()),r}return Qd(e,t),e.prototype.getFeatureInfoUrl=function(t,e,r,n){var i=Gr(r),o=this.getProjection(),a=this.getTileGrid();a||(a=this.getTileGridForProjection(i));var s=a.getZForResolution(e,this.zDirection),l=a.getTileCoordForCoordAndZ(t,s);if(!(a.getResolutions().length<=l[0])){var u=a.getResolution(l[0]),c=a.getTileCoordExtent(l,this.tmpExtent_),h=Is(a.getTileSize(l[0]),this.tmpSize),p=this.gutter_;0!==p&&(h=Os(h,p,this.tmpSize),c=Ht(c,u*p,c)),o&&o!==i&&(u=tc(o,i,t,u),c=$r(c,i,o),t=Hr(t,i,o));var f={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};O(f,this.params_,n);var d=Math.floor((t[0]-c[0])/u),g=Math.floor((c[3]-t[1])/u);return f[this.v13_?"I":"X"]=d,f[this.v13_?"J":"Y"]=g,this.getRequestUrl_(l,h,c,1,o||i,f)}},e.prototype.getLegendUrl=function(t,e){if(void 0!==this.urls[0]){var r={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){var n=this.params_.LAYERS;if(!(!Array.isArray(n)||1===n.length))return;r.LAYER=n}if(void 0!==t){var i=this.getProjection()?this.getProjection().getMetersPerUnit():1;r.SCALE=t*i/28e-5}return O(r,e),mc(this.urls[0],r)}},e.prototype.getGutter=function(){return this.gutter_},e.prototype.getParams=function(){return this.params_},e.prototype.getRequestUrl_=function(t,e,r,n,i,o){var a=this.urls;if(a){if(o.WIDTH=e[0],o.HEIGHT=e[1],o[this.v13_?"CRS":"SRS"]=i.getCode(),"STYLES"in this.params_||(o.STYLES=""),1!=n)switch(this.serverType_){case Hf:var s=90*n+.5|0;"FORMAT_OPTIONS"in o?o.FORMAT_OPTIONS+=";dpi:"+s:o.FORMAT_OPTIONS="dpi:"+s;break;case $f:o.MAP_RESOLUTION=90*n;break;case Kf:case Jf:o.DPI=90*n;break;default:pt(!1,52)}var l,u=i.getAxisOrientation(),c=r;if(this.v13_&&"ne"==u.substr(0,2)){var h=void 0;h=r[0],c[0]=r[1],c[1]=h,h=r[2],c[2]=r[3],c[3]=h}if(o.BBOX=c.join(","),1==a.length)l=a[0];else l=a[We(fu(t),a.length)];return mc(l,o)}},e.prototype.getTilePixelRatio=function(t){return this.hidpi_&&void 0!==this.serverType_?t:1},e.prototype.getKeyForParams_=function(){var t=0,e=[];for(var r in this.params_)e[t++]=r+"-"+this.params_[r];return e.join("/")},e.prototype.updateParams=function(t){O(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())},e.prototype.updateV13_=function(){var t=this.params_.VERSION||"1.3.0";this.v13_=br(t,"1.3")>=0},e.prototype.tileUrlFunction=function(t,e,r){var n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(r)),!(n.getResolutions().length<=t[0])){1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);var i=n.getResolution(t[0]),o=n.getTileCoordExtent(t,this.tmpExtent_),a=Is(n.getTileSize(t[0]),this.tmpSize),s=this.gutter_;0!==s&&(a=Os(a,s,this.tmpSize),o=Ht(o,i*s,o)),1!=e&&(a=Rs(a,e,this.tmpSize));var l={SERVICE:"WMS",VERSION:"1.3.0",REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return O(l,this.params_),this.getRequestUrl_(t,a,o,e,r,l)}},e}(Xp),eg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),rg=function(t){function e(e,r,n,i,o,a){var s=t.call(this,e,r)||this;return s.src_=n,s.extent_=i,s.preemptive_=o,s.grid_=null,s.keys_=null,s.data_=null,s.jsonp_=a,s}return eg(e,t),e.prototype.getImage=function(){return null},e.prototype.getData=function(t){if(!this.grid_||!this.keys_)return null;var e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),r=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),n=this.grid_[Math.floor((1-r)*this.grid_.length)];if("string"!=typeof n)return null;var i=n.charCodeAt(Math.floor(e*n.length));i>=93&&i--,i>=35&&i--;var o=null;if((i-=32)in this.keys_){var a=this.keys_[i];o=this.data_&&a in this.data_?this.data_[a]:a}return o},e.prototype.forDataAtCoordinate=function(t,e,r){this.state==ro&&!0===r?(this.state=Ji,K(this,F,(function(r){e(this.getData(t))}),this),this.loadInternal_()):!0===r?setTimeout(function(){e(this.getData(t))}.bind(this),0):e(this.getData(t))},e.prototype.getKey=function(){return this.src_},e.prototype.handleError_=function(){this.state=eo,this.changed()},e.prototype.handleLoad_=function(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=to,this.changed()},e.prototype.loadInternal_=function(){if(this.state==Ji)if(this.state=Qi,this.jsonp_)Au(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{var t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}},e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var r=void 0;try{r=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(r)}else this.handleError_()},e.prototype.onXHRError_=function(t){this.handleError_()},e.prototype.load=function(){this.preemptive_?this.loadInternal_():this.setState(ro)},e}(lo),ng=function(t){function e(e){var r=t.call(this,{projection:Gr("EPSG:3857"),state:Jo})||this;if(r.preemptive_=void 0===e.preemptive||e.preemptive,r.tileUrlFunction_=gc,r.template_=void 0,r.jsonp_=e.jsonp||!1,e.url)if(r.jsonp_)Au(e.url,r.handleTileJSONResponse.bind(r),r.handleTileJSONError.bind(r));else{var n=new XMLHttpRequest;n.addEventListener("load",r.onXHRLoad_.bind(r)),n.addEventListener("error",r.onXHRError_.bind(r)),n.open("GET",e.url),n.send()}else e.tileJSON?r.handleTileJSONResponse(e.tileJSON):pt(!1,51);return r}return eg(e,t),e.prototype.onXHRLoad_=function(t){var e=t.target;if(!e.status||e.status>=200&&e.status<300){var r=void 0;try{r=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(r)}else this.handleTileJSONError()},e.prototype.onXHRError_=function(t){this.handleTileJSONError()},e.prototype.getTemplate=function(){return this.template_},e.prototype.forDataAtCoordinateAndResolution=function(t,e,r,n){if(this.tileGrid){var i=this.tileGrid.getZForResolution(e,this.zDirection),o=this.tileGrid.getTileCoordForCoordAndZ(t,i);this.getTile(o[0],o[1],o[2],1,this.getProjection()).forDataAtCoordinate(t,r,n)}else!0===n?setTimeout((function(){r(null)}),0):r(null)},e.prototype.handleTileJSONError=function(){this.setState(ta)},e.prototype.handleTileJSONResponse=function(t){var e,r=Gr("EPSG:4326"),n=this.getProjection();if(void 0!==t.bounds){var i=Zr(r,n);e=Ae(t.bounds,i)}var o=t.minzoom||0,a=t.maxzoom||22,s=lc({extent:hc(n),maxZoom:a,minZoom:o});this.tileGrid=s,this.template_=t.template;var l=t.grids;if(l){if(this.tileUrlFunction_=fc(l,s),void 0!==t.attribution){var u=void 0!==e?e:r.getExtent();this.setAttributions((function(e){return Re(u,e.extent)?[t.attribution]:null}))}this.setState(Qo)}else this.setState(ta)},e.prototype.getTile=function(t,e,r,n,i){var o=cu(t,e,r);if(this.tileCache.containsKey(o))return this.tileCache.get(o);var a=[t,e,r],s=this.getTileCoordForTileUrlFunction(a,i),l=this.tileUrlFunction_(s,n,i),u=new rg(a,void 0!==l?Ji:ro,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(a),this.preemptive_,this.jsonp_);return this.tileCache.set(o,u),u},e.prototype.useTile=function(t,e,r){var n=cu(t,e,r);this.tileCache.containsKey(n)&&this.tileCache.get(n)},e}(Bp),ig=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),og=function(t){function e(e){var r=this,n=e.projection||"EPSG:3857",i=e.extent||hc(n),o=e.tileGrid||lc({extent:i,maxResolution:e.maxResolution,maxZoom:void 0!==e.maxZoom?e.maxZoom:22,minZoom:e.minZoom,tileSize:e.tileSize||512});return(r=t.call(this,{attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,opaque:!1,projection:n,state:e.state,tileGrid:o,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:ag,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:void 0===e.wrapX||e.wrapX,transition:e.transition,zDirection:void 0===e.zDirection?1:e.zDirection})||this).format_=e.format?e.format:null,r.loadingTiles_={},r.sourceTileCache=new yu(r.tileCache.highWaterMark),r.overlaps_=null==e.overlaps||e.overlaps,r.tileClass=e.tileClass?e.tileClass:Eu,r.tileGrids_={},r}return ig(e,t),e.prototype.getFeaturesInExtent=function(t){var e=[],r=this.tileCache;if(0===r.getCount())return e;var n=pu(r.peekFirstKey())[0],i=this.tileGrid;return r.forEach((function(r){if(r.tileCoord[0]===n&&r.getState()===to)for(var o=r.getSourceTiles(),a=0,s=o.length;a0&&g[0].tileCoord[0]===f)c=g,h=!0,p=f;else{c=[],p=f+1;do{--p,h=!0,l.forEachTileCoord(o,p,function(n){var i,o=this.tileUrlFunction(n,t,e);if(void 0!==o)if(this.sourceTileCache.containsKey(o)){var a=(i=this.sourceTileCache.get(o)).getState();if(a===to||a===eo||a===ro)return void c.push(i)}else p===f&&((i=new this.tileClass(n,Ji,o,this.format_,this.tileLoadFunction)).extent=l.getTileCoordExtent(n),i.projection=e,i.resolution=l.getResolution(n[0]),this.sourceTileCache.set(o,i),i.addEventListener(F,this.handleTileChange.bind(this)),i.load());h=h&&i&&i.getState()===to,i&&i.getState()!==ro&&r.getState()===Ji&&(r.loadingSourceTiles++,i.addEventListener(F,(function t(){var e=i.getState(),n=i.getKey();if(e===to||e===eo){e===to?(i.removeEventListener(F,t),r.loadingSourceTiles--,delete r.errorSourceTileKeys[n]):e===eo&&(r.errorSourceTileKeys[n]=!0);var o=Object.keys(r.errorSourceTileKeys).length;r.loadingSourceTiles-o==0&&(r.hifi=0===o,r.sourceZ=f,r.setState(to))}})))}.bind(this)),h||(c.length=0)}while(!h&&p>d)}return r.getState()===Ji&&r.setState(Qi),h&&(r.hifi=f===p,r.sourceZ=p,r.getState()0&&(r.tileUrlFunction=dc(o.map(r.createFromWMTSTemplate.bind(r)))),r}return ug(e,t),e.prototype.setUrls=function(t){this.urls=t;var e=t.join("\n");this.setTileUrlFunction(dc(t.map(this.createFromWMTSTemplate.bind(this))),e)},e.prototype.getDimensions=function(){return this.dimensions_},e.prototype.getFormat=function(){return this.format_},e.prototype.getLayer=function(){return this.layer_},e.prototype.getMatrixSet=function(){return this.matrixSet_},e.prototype.getRequestEncoding=function(){return this.requestEncoding_},e.prototype.getStyle=function(){return this.style_},e.prototype.getVersion=function(){return this.version_},e.prototype.getKeyForDimensions_=function(){var t=0,e=[];for(var r in this.dimensions_)e[t++]=r+"-"+this.dimensions_[r];return e.join("/")},e.prototype.updateDimensions=function(t){O(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())},e.prototype.createFromWMTSTemplate=function(t){var e=this.requestEncoding_,r={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};e==sg&&O(r,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t=e==sg?mc(t,r):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in r?r[e.toLowerCase()]:t}));var n=this.tileGrid,i=this.dimensions_;return function(r,o,a){if(r){var s={TileMatrix:n.getMatrixId(r[0]),TileCol:r[1],TileRow:r[2]};O(s,i);var l=t;return l=e==sg?mc(l,s):l.replace(/\{(\w+?)\}/g,(function(t,e){return s[e]}))}}},e}(Xp);var hg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),pg="GENERATE_BUFFERS",fg=function(t){function e(e,r){var n=t.call(this,e)||this,i=r||{};return n.helper=new gh({postProcesses:i.postProcesses,uniforms:i.uniforms}),void 0!==i.className&&(n.helper.getCanvas().className=i.className),n}return hg(e,t),e.prototype.disposeInternal=function(){this.helper.dispose(),t.prototype.disposeInternal.call(this)},e.prototype.getShaderCompileErrors=function(){return this.helper.getShaderCompileErrors()},e.prototype.dispatchRenderEvent_=function(t,e){var r=this.getLayer();if(r.hasListener(t)){var n=new la(t,null,e,null);r.dispatchEvent(n)}},e.prototype.preRender=function(t){this.dispatchRenderEvent_(qo,t)},e.prototype.postRender=function(t){this.dispatchRenderEvent_(Xo,t)},e}(ld),dg=[],gg={vertexPosition:0,indexPosition:0};function yg(t,e,r,n,i){t[e+0]=r,t[e+1]=n,t[e+2]=i}function mg(t,e){var r=e||[];return r[0]=Math.floor(t/256/256/256)/255,r[1]=Math.floor(t/256/256)%256/255,r[2]=Math.floor(t/256)%256/255,r[3]=t%256/255,r}function vg(t){var e=0;return e+=Math.round(256*t[0]*256*256*255),e+=Math.round(256*t[1]*256*255),e+=Math.round(256*t[2]*255),e+=Math.round(255*t[3])}var _g=fg,bg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),xg="renderOrder",wg=function(t){function e(e){var r=this,n=e||{},i=O({},n);return delete i.style,delete i.renderBuffer,delete i.updateWhileAnimating,delete i.updateWhileInteracting,(r=t.call(this,i)||this).declutter_=void 0!==n.declutter&&n.declutter,r.renderBuffer_=void 0!==n.renderBuffer?n.renderBuffer:100,r.style_=null,r.styleFunction_=void 0,r.setStyle(n.style),r.updateWhileAnimating_=void 0!==n.updateWhileAnimating&&n.updateWhileAnimating,r.updateWhileInteracting_=void 0!==n.updateWhileInteracting&&n.updateWhileInteracting,r}return bg(e,t),e.prototype.getDeclutter=function(){return this.declutter_},e.prototype.getFeatures=function(e){return t.prototype.getFeatures.call(this,e)},e.prototype.getRenderBuffer=function(){return this.renderBuffer_},e.prototype.getRenderOrder=function(){return this.get(xg)},e.prototype.getStyle=function(){return this.style_},e.prototype.getStyleFunction=function(){return this.styleFunction_},e.prototype.getUpdateWhileAnimating=function(){return this.updateWhileAnimating_},e.prototype.getUpdateWhileInteracting=function(){return this.updateWhileInteracting_},e.prototype.renderDeclutter=function(t){t.declutterTree||(t.declutterTree=new Pp.a(9)),this.getRenderer().renderDeclutter(t)},e.prototype.setRenderOrder=function(t){this.set(xg,t)},e.prototype.setStyle=function(t){this.style_=void 0!==t?t:_p,this.styleFunction_=null===t?void 0:mp(this.style_),this.changed()},e}(na),Sg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Eg=function(t){function e(e,r){var n=this,i=r.uniforms||{},a=[1,0,0,1,0,0];i[ah]=a,(n=t.call(this,e,{className:r.className,uniforms:i,postProcesses:r.postProcesses})||this).sourceRevision_=-1,n.verticesBuffer_=new Qc(34962,35048),n.hitVerticesBuffer_=new Qc(34962,35048),n.indicesBuffer_=new Qc(34963,35048),n.program_=n.helper.getProgram(r.fragmentShader,r.vertexShader),n.hitDetectionEnabled_=!(!r.hitFragmentShader||!r.hitVertexShader),n.hitProgram_=n.hitDetectionEnabled_&&n.helper.getProgram(r.hitFragmentShader,r.hitVertexShader);var s=r.attributes?r.attributes.map((function(t){return{name:"a_"+t.name,size:1,type:ph.FLOAT}})):[];n.attributes=[{name:"a_position",size:2,type:ph.FLOAT},{name:"a_index",size:1,type:ph.FLOAT}].concat(s),n.hitDetectionAttributes=[{name:"a_position",size:2,type:ph.FLOAT},{name:"a_index",size:1,type:ph.FLOAT},{name:"a_hitColor",size:4,type:ph.FLOAT},{name:"a_featureUid",size:1,type:ph.FLOAT}].concat(s),n.customAttributes=r.attributes?r.attributes:[],n.previousExtent_=[1/0,1/0,-1/0,-1/0],n.currentTransform_=a,n.renderTransform_=[1,0,0,1,0,0],n.invertRenderTransform_=[1,0,0,1,0,0],n.renderInstructions_=new Float32Array(0),n.hitRenderInstructions_=new Float32Array(0),n.hitRenderTarget_=n.hitDetectionEnabled_&&new mh(n.helper),n.worker_=new Worker(Hc),n.worker_.addEventListener("message",function(t){var e=t.data;if(e.type===pg){var r=e.projectionTransform;e.hitDetection?(this.hitVerticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.hitVerticesBuffer_)):(this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_)),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=r,jt(this.invertRenderTransform_,this.renderTransform_),e.hitDetection?this.hitRenderInstructions_=new Float32Array(t.data.renderInstructions):this.renderInstructions_=new Float32Array(t.data.renderInstructions),this.getLayer().changed()}}.bind(n)),n.featureCache_={},n.featureCount_=0;var l=n.getLayer().getSource();return n.sourceListenKeys_=[Z(l,ef,n.handleSourceFeatureAdded_,n),Z(l,rf,n.handleSourceFeatureChanged_,n),Z(l,of,n.handleSourceFeatureDelete_,n),Z(l,nf,n.handleSourceFeatureClear_,n)],l.forEachFeature(function(t){this.featureCache_[o(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++}.bind(n)),n}return Sg(e,t),e.prototype.handleSourceFeatureAdded_=function(t){var e=t.feature;this.featureCache_[o(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++},e.prototype.handleSourceFeatureChanged_=function(t){var e=t.feature;this.featureCache_[o(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}},e.prototype.handleSourceFeatureDelete_=function(t){var e=t.feature;delete this.featureCache_[o(e)],this.featureCount_--},e.prototype.handleSourceFeatureClear_=function(){this.featureCache_={},this.featureCount_=0},e.prototype.renderFrame=function(t){this.preRender(t);var e=this.indicesBuffer_.getSize();this.helper.drawElements(0,e),this.helper.finalizeDraw(t);var r=this.helper.getCanvas(),n=t.layerStatesArray[t.layerIndex].opacity;return n!==parseFloat(r.style.opacity)&&(r.style.opacity=String(n)),this.hitDetectionEnabled_&&(this.renderHitDetection(t),this.hitRenderTarget_.clearCachedData()),this.postRender(t),r},e.prototype.prepareFrame=function(t){var e=this.getLayer(),r=e.getSource(),n=t.viewState,i=!t.viewHints[ns]&&!t.viewHints[is],o=!ue(this.previousExtent_,t.extent),a=this.sourceRevision_c&&this.instructions.push([Ig.CUSTOM,c,i,t,r,Nn])):l==bt.POINT&&(n=t.getFlatCoordinates(),this.coordinates.push(n[0],n[1]),i=this.coordinates.length,this.instructions.push([Ig.CUSTOM,c,i,t,r]));this.endGeometry(e)},e.prototype.beginGeometry=function(t,e){this.beginGeometryInstruction1_=[Ig.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[Ig.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)},e.prototype.finish=function(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}},e.prototype.reverseHitDetectionInstructions=function(){var t,e=this.hitDetectionInstructions;e.reverse();var r,n,i=e.length,o=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=r.lineWidth,this.bufferedMaxExtent_=null)}else r.strokeStyle=void 0,r.lineCap=void 0,r.lineDash=null,r.lineDashOffset=void 0,r.lineJoin=void 0,r.lineWidth=void 0,r.miterLimit=void 0},e.prototype.createFill=function(t){var e=t.fillStyle,r=[Ig.SET_FILL_STYLE,e];return"string"!=typeof e&&r.push(!0),r},e.prototype.applyStroke=function(t){this.instructions.push(this.createStroke(t))},e.prototype.createStroke=function(t){return[Ig.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]},e.prototype.updateFillStyle=function(t,e){var r=t.fillStyle;"string"==typeof r&&t.currentFillStyle==r||(void 0!==r&&this.instructions.push(e.call(this,t)),t.currentFillStyle=r)},e.prototype.updateStrokeStyle=function(t,e){var r=t.strokeStyle,n=t.lineCap,i=t.lineDash,o=t.lineDashOffset,a=t.lineJoin,s=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=r||t.currentLineCap!=n||i!=t.currentLineDash&&!b(t.currentLineDash,i)||t.currentLineDashOffset!=o||t.currentLineJoin!=a||t.currentLineWidth!=s||t.currentMiterLimit!=l)&&(void 0!==r&&e.call(this,t),t.currentStrokeStyle=r,t.currentLineCap=n,t.currentLineDash=i,t.currentLineDashOffset=o,t.currentLineJoin=a,t.currentLineWidth=s,t.currentMiterLimit=l)},e.prototype.endGeometry=function(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;var e=[Ig.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)},e.prototype.getBufferedMaxExtent=function(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=$t(this.maxExtent),this.maxLineWidth>0)){var t=this.resolution*(this.maxLineWidth+1)/2;Ht(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_},e}(ku),Fg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ag=function(t){function e(e,r,n,i){var o=t.call(this,e,r,n,i)||this;return o.hitDetectionImage_=null,o.image_=null,o.imagePixelRatio_=void 0,o.anchorX_=void 0,o.anchorY_=void 0,o.height_=void 0,o.opacity_=void 0,o.originX_=void 0,o.originY_=void 0,o.rotateWithView_=void 0,o.rotation_=void 0,o.scale_=void 0,o.width_=void 0,o.declutterImageWithText_=void 0,o}return Fg(e,t),e.prototype.drawPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var r=t.getFlatCoordinates(),n=t.getStride(),i=this.coordinates.length,o=this.appendFlatPointCoordinates(r,n);this.instructions.push([Ig.DRAW_IMAGE,i,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterImageWithText_]),this.hitDetectionInstructions.push([Ig.DRAW_IMAGE,i,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterImageWithText_]),this.endGeometry(e)}},e.prototype.drawMultiPoint=function(t,e){if(this.image_){this.beginGeometry(t,e);var r=t.getFlatCoordinates(),n=t.getStride(),i=this.coordinates.length,o=this.appendFlatPointCoordinates(r,n);this.instructions.push([Ig.DRAW_IMAGE,i,o,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterImageWithText_]),this.hitDetectionInstructions.push([Ig.DRAW_IMAGE,i,o,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterImageWithText_]),this.endGeometry(e)}},e.prototype.finish=function(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,t.prototype.finish.call(this)},e.prototype.setImageStyle=function(t,e){var r=t.getAnchor(),n=t.getSize(),i=t.getHitDetectionImage(),o=t.getImage(this.pixelRatio),a=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=r[0],this.anchorY_=r[1],this.hitDetectionImage_=i,this.image_=o,this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=a[0],this.originY_=a[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterImageWithText_=e},e}(Mg),kg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),jg=function(t){function e(e,r,n,i){return t.call(this,e,r,n,i)||this}return kg(e,t),e.prototype.drawFlatCoordinates_=function(t,e,r,n){var i=this.coordinates.length,o=this.appendFlatLineCoordinates(t,e,r,n,!1,!1),a=[Ig.MOVE_TO_LINE_TO,i,o];return this.instructions.push(a),this.hitDetectionInstructions.push(a),r},e.prototype.drawLineString=function(t,e){var r=this.state,n=r.strokeStyle,i=r.lineWidth;if(void 0!==n&&void 0!==i){this.updateStrokeStyle(r,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE,r.strokeStyle,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,r.lineDash,r.lineDashOffset],Pg);var o=t.getFlatCoordinates(),a=t.getStride();this.drawFlatCoordinates_(o,0,o.length,a),this.hitDetectionInstructions.push(Og),this.endGeometry(e)}},e.prototype.drawMultiLineString=function(t,e){var r=this.state,n=r.strokeStyle,i=r.lineWidth;if(void 0!==n&&void 0!==i){this.updateStrokeStyle(r,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Ig.SET_STROKE_STYLE,r.strokeStyle,r.lineWidth,r.lineCap,r.lineJoin,r.miterLimit,r.lineDash,r.lineDashOffset],Pg);for(var o=t.getEnds(),a=t.getFlatCoordinates(),s=t.getStride(),l=0,u=0,c=o.length;ut&&(m>y&&(y=m,d=v,g=o),m=0,v=o-i)),a=s,c=p,h=f),l=_,u=b}return(m+=s)>y?[v,o]:[d,g]}var zg=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Ug={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},Bg=function(t){function e(e,r,n,i){var o=t.call(this,e,r,n,i)||this;return o.labels_=null,o.text_="",o.textOffsetX_=0,o.textOffsetY_=0,o.textRotateWithView_=void 0,o.textRotation_=0,o.textFillState_=null,o.fillStates={},o.textStrokeState_=null,o.strokeStates={},o.textState_={},o.textStates={},o.textKey_="",o.fillKey_="",o.strokeKey_="",o.declutterImageWithText_=void 0,o}return zg(e,t),e.prototype.finish=function(){var e=t.prototype.finish.call(this);return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e},e.prototype.drawText=function(t,e){var r=this.textFillState_,n=this.textStrokeState_,i=this.textState_;if(""!==this.text_&&i&&(r||n)){var o=this.coordinates,a=o.length,s=t.getType(),l=null,u=t.getStride();if(i.placement!==Ep||s!=bt.LINE_STRING&&s!=bt.MULTI_LINE_STRING&&s!=bt.POLYGON&&s!=bt.MULTI_POLYGON){var c=i.overflow?null:[];switch(s){case bt.POINT:case bt.MULTI_POINT:l=t.getFlatCoordinates();break;case bt.LINE_STRING:l=t.getFlatMidpoint();break;case bt.CIRCLE:l=t.getCenter();break;case bt.MULTI_LINE_STRING:l=t.getFlatMidpoints(),u=2;break;case bt.POLYGON:l=t.getFlatInteriorPoint(),i.overflow||c.push(l[2]/this.resolution),u=3;break;case bt.MULTI_POLYGON:var h=t.getFlatInteriorPoints();l=[];for(x=0,w=h.length;xP[2]}else T=b>C;var R,I=Math.PI,L=[],M=w+n===e;if(y=0,m=S,p=t[e=w],f=t[e+1],M){v();var F=Math.atan2(f-g,p-d);T&&(F+=F>0?-I:I);var A=(C+b)/2,k=(O+x)/2;return L[0]=[A,k,(E-o)/2,F,i],L}for(var j=0,N=i.length;j0?-I:I),void 0!==R){var G=D-R;if(G+=G>I?-2*I:G<-I?2*I:0,Math.abs(G)>a)return null}R=D;for(var z=j,U=0;jt?t-l:i,b=o+u>e?e-u:o,x=f[3]+_*h[0]+f[1],w=f[0]+b*h[1]+f[2],S=m-f[3],E=v-f[0];return(d||0!==c)&&(Zg[0]=S,$g[0]=S,Zg[1]=E,Kg[1]=E,Kg[0]=S+x,Hg[0]=Kg[0],Hg[1]=E+w,$g[1]=Hg[1]),0!==c?(It(y=kt([1,0,0,1,0,0],r,n,1,1,c,-r,-n),Zg),It(y,Kg),It(y,Hg),It(y,$g),ie(Math.min(Zg[0],Kg[0],Hg[0],$g[0]),Math.min(Zg[1],Kg[1],Hg[1],$g[1]),Math.max(Zg[0],Kg[0],Hg[0],$g[0]),Math.max(Zg[1],Kg[1],Hg[1],$g[1]),Xg)):ie(Math.min(S,S+x),Math.min(E,E+w),Math.max(S,S+x),Math.max(E,E+w),Xg),p&&(m=Math.round(m),v=Math.round(v)),{drawImageX:m,drawImageY:v,drawImageW:_,drawImageH:b,originX:l,originY:u,declutterBox:{minX:Xg[0],minY:Xg[1],maxX:Xg[2],maxY:Xg[3],value:g},canvasTransform:y,scale:h}},t.prototype.replayImageOrLabel_=function(t,e,r,n,i,o,a){var s=!(!o&&!a),l=n.declutterBox,u=t.canvas,c=a?a[2]*n.scale[0]/2:0;return l.minX-c<=u.width/e&&l.maxX+c>=0&&l.minY-c<=u.height/e&&l.maxY+c>=0&&(s&&this.replayTextBackground_(t,Zg,Kg,Hg,$g,o,a),Oa(t,n.canvasTransform,i,r,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0},t.prototype.fill_=function(t){if(this.alignFill_){var e=It(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;t.save(),t.translate(e[0]%r,e[1]%r),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()},t.prototype.setStrokeStyle_=function(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.setLineDash&&(t.lineDashOffset=e[7],t.setLineDash(e[6]))},t.prototype.drawLabelWithPointPlacement_=function(t,e,r,n){var i=this.textStates[e],o=this.createLabel(t,e,n,r),a=this.strokeStates[r],s=this.pixelRatio,l=ty(t,i.textAlign||"center"),u=Ug[i.textBaseline||"middle"],c=a&&a.lineWidth?a.lineWidth:0;return{label:o,anchorX:l*(o.width/s-2*i.scale[0])+2*(.5-l)*c,anchorY:u*o.height/s+2*(.5-u)*c}},t.prototype.execute_=function(t,e,r,n,i,o,a,s){var l;this.pixelCoordinates_&&b(r,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=ln(this.coordinates,0,this.coordinates.length,2,r,this.pixelCoordinates_),Rt(this.renderedTransform_,r));for(var u,c,h,p,f,d,g,y,m,v,_,x,w,S,E,T,C=0,O=n.length,P=0,R=0,I=0,L=null,M=null,F=this.coordinateCache_,A=this.viewRotation_,k=Math.round(1e12*Math.atan2(-r[1],r[0]))/1e12,j={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:A},N=this.instructions!=n||this.overlaps?0:200;CN&&(this.fill_(t),R=0),I>N&&(t.stroke(),I=0),R||I||(t.beginPath(),p=NaN,f=NaN),++C;break;case Ig.CIRCLE:var G=l[P=D[1]],z=l[P+1],U=l[P+2]-G,B=l[P+3]-z,V=Math.sqrt(U*U+B*B);t.moveTo(G+V,z),t.arc(G,z,V,0,2*Math.PI,!0),++C;break;case Ig.CLOSE_PATH:t.closePath(),++C;break;case Ig.CUSTOM:P=D[1],u=D[2];var Y=D[3],W=D[4],q=6==D.length?D[5]:void 0;j.geometry=Y,j.feature=w,C in F||(F[C]=[]);var X=F[C];q?q(l,P,u,2,X):(X[0]=l[P],X[1]=l[P+1],X.length=2),W(X,j),++C;break;case Ig.DRAW_IMAGE:P=D[1],u=D[2],y=D[3],c=D[4],h=D[5];var Z=D[6],K=D[7],H=D[8],$=D[9],J=D[10],Q=D[11],tt=D[12],et=D[13],rt=D[14];if(!y&&D.length>=19){m=D[18],v=D[19],_=D[20],x=D[21];var nt=this.drawLabelWithPointPlacement_(m,v,_,x);y=nt.label,D[3]=y;var it=D[22];c=(nt.anchorX-it)*this.pixelRatio,D[4]=c;var ot=D[23];h=(nt.anchorY-ot)*this.pixelRatio,D[5]=h,Z=y.height,D[6]=Z,et=y.width,D[13]=et}var at=void 0;D.length>24&&(at=D[24]);var st=void 0,lt=void 0,ut=void 0;D.length>16?(st=D[15],lt=D[16],ut=D[17]):(st=fa,lt=!1,ut=!1),J&&k?Q+=A:J||k||(Q-=A);for(var ct=0;P0){if(!o||h!==zu&&h!==Vu||-1!==o.indexOf(t)){var u=(p[s]-3)/4,f=n-u%a,d=n-(u/a|0),g=i(t,e,f*f+d*d);if(g)return g}c.clearRect(0,0,a,a);break}}var g,y,m,v,_,b=Object.keys(this.executorsByZIndex_).map(Number);for(b.sort(d),g=b.length-1;g>=0;--g){var x=b[g].toString();for(m=this.executorsByZIndex_[x],y=ry.length-1;y>=0;--y)if(void 0!==(v=m[h=ry[y]])&&(_=v.executeHitDetection(c,s,r,f,u)))return _}},t.prototype.getClipCoords=function(t){var e=this.maxExtent_;if(!e)return null;var r=e[0],n=e[1],i=e[2],o=e[3],a=[r,n,r,o,i,o,i,n];return ln(a,0,8,2,t,a),a},t.prototype.isEmpty=function(){return I(this.executorsByZIndex_)},t.prototype.execute=function(t,e,r,n,i,o,a){var s=Object.keys(this.executorsByZIndex_).map(Number);s.sort(d),this.maxExtent_&&(t.save(),this.clip(t,r));var l,u,c,h,p,f,g=o||ry;for(a&&s.reverse(),l=0,u=s.length;lr)break;var s=n[a];s||(s=[],n[a]=s),s.push(4*((t+i)*e+(t+o))+3),i>0&&s.push(4*((t-i)*e+(t+o))+3),o>0&&(s.push(4*((t+i)*e+(t-o))+3),i>0&&s.push(4*((t-i)*e+(t-o))+3))}for(var l=[],u=(i=0,n.length);i0&&(a.width=0),this.container;var u=Math.round(t.size[0]*r),c=Math.round(t.size[1]*r);a.width!=u||a.height!=c?(a.width=u,a.height=c,a.style.transform!==i&&(a.style.transform=i)):this.containerReused||o.clearRect(0,0,u,c),this.preRender(o,t);var h=t.viewState,p=h.projection,f=!1;if(n.extent&&this.clipping){var d=on(n.extent,p);(f=!te(d,t.extent)&&Re(d,t.extent))&&this.clipUnrotated(o,t,d)}this.renderWorlds(s,t),f&&o.restore(),this.postRender(o,t);var g=n.opacity,y=this.container;return g!==parseFloat(y.style.opacity)&&(y.style.opacity=1===g?"":String(g)),this.renderedRotation_!==h.rotation&&(this.renderedRotation_=h.rotation,this.hitDetectionImageData_=null),this.container},e.prototype.getFeatures=function(t){return new Promise(function(e){if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){var r=[this.context.canvas.width,this.context.canvas.height];It(this.pixelTransform,r);var n=this.renderedCenter_,i=this.renderedResolution_,o=this.renderedRotation_,a=this.renderedProjection_,s=this.renderedExtent_,l=this.getLayer(),u=[],c=r[0]/2,h=r[1]/2;u.push(this.getRenderTransform(n,i,o,.5,c,h,0).slice());var p=l.getSource(),f=a.getExtent();if(p.getWrapX()&&a.canWrapX()&&!te(f,s)){for(var d=s[0],g=Pe(f),y=0,m=void 0;df[2];)m=g*++y,u.push(this.getRenderTransform(n,i,o,.5,c,h,m).slice()),d-=g}this.hitDetectionImageData_=sy(r,u,this.renderedFeatures_,l.getStyleFunction(),s,i,o)}e(ly(t,this.renderedFeatures_,this.hitDetectionImageData_))}.bind(this))},e.prototype.forEachFeatureAtCoordinate=function(t,e,r,n,i){var a=this;if(this.replayGroup_){var s,l=e.viewState.resolution,u=e.viewState.rotation,c=this.getLayer(),h={},p=function(t,e,r){var a=o(t),s=h[a];if(s){if(!0!==s&&rv[0]&&x[2]>v[2]&&m.push([x[0]-_,x[1],x[2]-_,x[3]])}if(!this.dirty_&&this.renderedResolution_==c&&this.renderedRevision_==p&&this.renderedRenderOrder_==d&&te(this.renderedExtent_,y))return this.replayGroupChanged=!1,!0;this.replayGroup_=null,this.dirty_=!1;var w,S=new Yg(Xu(c,h),y,c,h);this.getLayer().getDeclutter()&&(w=new Yg(Xu(c,h),y,c,h));var E,T=tn();if(T){for(var C=0,O=m.length;C0)e([]);else{var m=Ce(h.getTileCoordExtent(n.wrappedTileCoord)),v=[(p[0]-m[0])/c,(m[1]-p[1])/c],_=n.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]),b=n.hitDetectionImageData[a];if(!b&&!this.animatingOrInteracting_){var x=Is(h.getTileSize(h.getZForResolution(c))),w=[x[0]/2,x[1]/2],S=this.renderedRotation_;b=sy(x,[this.getRenderTransform(h.getTileCoordCenter(n.wrappedTileCoord),c,0,.5,w[0],w[1],0)],_,i.getStyleFunction(),h.getTileCoordExtent(n.wrappedTileCoord),n.getReplayState(i).renderedResolution,S),n.hitDetectionImageData[a]=b}e(ly(v,_,b))}}.bind(this))},e.prototype.handleFontsChanged=function(){P(this.renderTileImageQueue_);var t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()},e.prototype.handleStyleImageChange_=function(t){this.renderIfReadyAndVisible()},e.prototype.renderDeclutter=function(t){for(var e=t.viewHints,r=!(e[ns]||e[is]),n=this.renderedTiles,i=0,a=n.length;i=0;--u)l[u].execute(this.context,1,this.getTileRenderTransform(s,t),t.viewState.rotation,r,void 0,t.declutterTree)}},e.prototype.getTileRenderTransform=function(t,e){var r=e.pixelRatio,n=e.viewState,i=n.center,o=n.resolution,a=n.rotation,s=e.size,l=Math.round(s[0]*r),u=Math.round(s[1]*r),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),h=t.tileCoord,p=c.getTileCoordExtent(t.wrappedTileCoord),f=c.getTileCoordExtent(h,this.tmpExtent)[0]-p[0];return Ot(Mt(this.inversePixelTransform.slice(),1/r,1/r),this.getRenderTransform(i,o,a,r,l,u,f))},e.prototype.renderFrame=function(e,r){var n=e.viewHints,i=!(n[ns]||n[is]);this.renderQueuedTileImages_(i,e),t.prototype.renderFrame.call(this,e,r),this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;var a=this.getLayer(),s=a.getRenderMode();if(s===fy)return this.container;var l=a.getSource(),u=e.usedTiles[o(l)];for(var c in this.renderTileImageQueue_)u&&c in u||delete this.renderTileImageQueue_[c];for(var h=this.context,p=vy[s],f=e.viewState.rotation,d=this.renderedTiles,g=[],y=[],m=d.length-1;m>=0;--m)for(var v=d[m],_=this.getTileRenderTransform(v,e),b=v.executorGroups[o(a)],x=!1,w=0,S=b.length;w8){e.animate=!0;break}var n=this.renderTileImageQueue_[r];delete this.renderTileImageQueue_[r],this.renderTileImage_(n,e)}},e.prototype.renderFeature=function(t,e,r,n,i){if(!r)return!1;var o=!1;if(Array.isArray(r))for(var a=0,s=r.length;a1?a:2,x=o||new Array(b);for(g=0;g>1;i0&&y.length>0;)o=y.pop(),c=d.pop(),p=g.pop(),(l=o.toString())in m||(u.push(p[0],p[1]),m[l]=!0),a=y.pop(),h=d.pop(),f=g.pop(),ze((i=e(n=t(s=(o+a)/2)))[0],i[1],p[0],p[1],f[0],f[1])this.featurePool_.length;)s=new gt,this.featurePool_.push(s);var u=n.getFeaturesCollection();u.clear();var c,h,p=0;for(c=0,h=this.meridians_.length;cMath.PI/2);for(var y=Ku(t),m=h;m<=p;++m){var v=this.meridians_.length+this.parallels_.length,_=void 0,b=void 0,x=void 0,w=void 0;if(this.meridiansLabels_)for(b=0,x=this.meridiansLabels_.length;b=s?(t[0]=a[0],t[2]=a[2]):o=!0);var l=[Ne(e[0],this.minX_,this.maxX_),Ne(e[1],this.minY_,this.maxY_)],u=this.toLonLatTransform_(l);isNaN(u[1])&&(u[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);var c,h,p,f,d=Ne(u[0],this.minLon_,this.maxLon_),g=Ne(u[1],this.minLat_,this.maxLat_),y=this.maxLines_,m=t;o||(m=[Ne(t[0],this.minX_,this.maxX_),Ne(t[1],this.minY_,this.maxY_),Ne(t[2],this.minX_,this.maxX_),Ne(t[3],this.minY_,this.maxY_)]);var v=Ae(m,this.toLonLatTransform_,void 0,8),_=v[3],b=v[2],x=v[1],w=v[0];if(o||(Qt(m,this.bottomLeft_)&&(w=this.minLon_,x=this.minLat_),Qt(m,this.bottomRight_)&&(b=this.maxLon_,x=this.minLat_),Qt(m,this.topLeft_)&&(w=this.minLon_,_=this.maxLat_),Qt(m,this.topRight_)&&(b=this.maxLon_,_=this.maxLat_),_=Ne(_,g,this.maxLat_),b=Ne(b,d,this.maxLon_),x=Ne(x,this.minLat_,g),w=Ne(w,this.minLon_,d)),f=Ne(d=Math.floor(d/i)*i,this.minLon_,this.maxLon_),h=this.addMeridian_(f,x,_,n,t,0),c=0,o)for(;(f-=i)>=w&&c++n[o]&&(i=o,o=1);var a=Math.max(e[1],n[i]),s=Math.min(e[3],n[o]),l=Ne(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,a,s),u=[n[i-1]+(n[o-1]-n[i-1])*(l-n[i])/(n[o]-n[i]),l],c=this.meridiansLabels_[r].geom;return c.setCoordinates(u),c},e.prototype.getMeridians=function(){return this.meridians_},e.prototype.getParallel_=function(t,e,r,n,i){var o=Fy(t,e,r,this.projection_,n),a=this.parallels_[i];return a?(a.setFlatCoordinates(yt,o),a.changed()):a=new Py(o,yt),a},e.prototype.getParallelPoint_=function(t,e,r){var n=t.getFlatCoordinates(),i=0,o=n.length-2;n[i]>n[o]&&(i=o,o=0);var a=Math.max(e[0],n[i]),s=Math.min(e[2],n[o]),l=Ne(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,a,s),u=[l,n[i+1]+(n[o+1]-n[i+1])*(l-n[i])/(n[o]-n[i])],c=this.parallelsLabels_[r].geom;return c.setCoordinates(u),c},e.prototype.getParallels=function(){return this.parallels_},e.prototype.updateProjectionInfo_=function(t){var e=Gr("EPSG:4326"),r=t.getWorldExtent();this.maxLat_=r[3],this.maxLon_=r[2],this.minLat_=r[1],this.minLon_=r[0];var n=Kr(t,e);if(this.minLon_=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t},e}(Iy),Dy=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Gy="blur",zy="gradient",Uy="radius",By=["#00f","#0ff","#0f0","#ff0","#f00"];var Vy=function(t){function e(e){var r=this,n=e||{},i=O({},n);delete i.gradient,delete i.radius,delete i.blur,delete i.weight,(r=t.call(this,i)||this).gradient_=null,r.addEventListener(it(zy),r.handleGradientChanged_),r.setGradient(n.gradient?n.gradient:By),r.setBlur(void 0!==n.blur?n.blur:15),r.setRadius(void 0!==n.radius?n.radius:8);var o=n.weight?n.weight:"weight";return r.weightFunction_="string"==typeof o?function(t){return t.get(o)}:o,r.setRenderOrder(null),r}return Dy(e,t),e.prototype.getBlur=function(){return this.get(Gy)},e.prototype.getGradient=function(){return this.get(zy)},e.prototype.getRadius=function(){return this.get(Uy)},e.prototype.handleGradientChanged_=function(){this.gradient_=function(t){for(var e=uo(1,256),r=e.createLinearGradient(0,0,1,256),n=1/(t.length-1),i=0,o=t.length;i>3)?r.readString():2===t?r.readFloat():3===t?r.readDouble():4===t?r.readVarint64():5===t?r.readVarint():6===t?r.readSVarint():7===t?r.readBoolean():null;e.values.push(n)}}function im(t,e,r){if(1==t)e.id=r.readVarint();else if(2==t)for(var n=r.readVarint()+r.pos;r.pos>3}a--,1===o||2===o?(s+=t.readSVarint(),l+=t.readSVarint(),1===o&&u>c&&(n.push(u),c=u),r.push(s,l),u+=2):7===o?u>c&&(r.push(r[c],r[c+1]),u+=2):pt(!1,59)}u>c&&(n.push(u),c=u)},e.prototype.createFeature_=function(t,e,r){var n,i=e.type;if(0===i)return null;var o,a=e.properties;this.idProperty_?(o=a[this.idProperty_],delete a[this.idProperty_]):o=e.id,a[this.layerName_]=e.layer.name;var s=[],l=[];this.readRawGeometry_(t,e,s,l);var u=function(t,e){var r;1===t?r=1===e?bt.POINT:bt.MULTI_POINT:2===t?r=1===e?bt.LINE_STRING:bt.MULTI_LINE_STRING:3===t&&(r=bt.POLYGON);return r}(i,l.length);if(this.featureClass_===Cy)(n=new this.featureClass_(u,s,l,a,o)).transform(r.dataProjection);else{var c=void 0;if(u==bt.POLYGON){for(var h=[],p=0,f=0,d=0,g=l.length;d1?new Jy(s,yt,h):new fi(s,yt,l)}else c=u===bt.POINT?new qn(s,yt):u===bt.LINE_STRING?new Py(s,yt):u===bt.POLYGON?new fi(s,yt,l):u===bt.MULTI_POINT?new Hy(s,yt):u===bt.MULTI_LINE_STRING?new Zy(s,yt,l):null;n=new(0,this.featureClass_),this.geometryName_&&n.setGeometryName(this.geometryName_);var m=Wy(c,!1,r);n.setGeometry(m),n.setId(o),n.setProperties(a,!0)}return n},e.prototype.getType=function(){return Cu},e.prototype.readFeatures=function(t,e){var r=this.layers_,n=this.adaptOptions(e),i=Gr(n.dataProjection);i.setWorldExtent(n.extent),n.dataProjection=i;var o=new tm.a(t),a=o.readFields(rm,{}),s=[];for(var l in a)if(!r||-1!=r.indexOf(l)){var u=a[l],c=u?[0,0,u.extent,u.extent]:null;i.setExtent(c);for(var h=0,p=u.length;h=.05){for(var r="",n=t.split("\n"),i=ym.slice(0,Math.round(e/.1)),o=0,a=n.length;o0&&(r+="\n"),r+=n[o].split("").join(i);return r}return t}function vm(){return gm||(gm=dm(1,1).getContext("2d")),gm}function _m(t,e){return vm().measureText(t).width+(t.length-1)*e}var bm={};ga&&Z(ga,k,(function(){bm={}}));var xm,wm,Sm=hm.e.isFunction,Em=hm.e.convertFunction,Tm=hm.c.isExpression,Cm=hm.c.createPropertyExpression,Om={Point:1,MultiPoint:1,LineString:2,MultiLineString:2,Polygon:3,MultiPolygon:3},Pm={center:[.5,.5],left:[0,.5],right:[1,.5],top:[.5,0],bottom:[.5,1],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},Rm={},Im={zoom:0},Lm={};function Mm(t,e,r,n,i){var o=t.id;Lm[o]||(Lm[o]={});var a=Lm[o];if(!a[r]){var s=(t[e]||Rm)[r],l=hm.f[e+"_"+t.type][r];void 0===s&&(s=l.default);var u=Tm(s);if(!u&&Sm(s)&&(s=Em(s,l),u=!0),u){var c=function(t,e){var r=Cm(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}(s,l);a[r]=c.evaluate.bind(c)}else"color"==l.type&&(s=hm.a.parse(s)),a[r]=function(){return s}}return Im.zoom=n,a[r](Im,i)}var Fm={};function Am(t,e){if(t){if(0===t.a||0===e)return;var r=t.a;return e=void 0===e?1:e,"rgba("+Math.round(255*t.r/r)+","+Math.round(255*t.g/r)+","+Math.round(255*t.b/r)+","+r*e+")"}return t}var km=/^([^]*)\{(.*)\}([^]*)$/;function jm(t,e){var r;do{if(r=t.match(km)){var n=e[r[2]]||"";t=r[1]+n+r[3]}}while(r);return t}var Nm=!1;var Dm=function(t,e,r,n,i,o,a){if(void 0===n&&(n=fm),"string"==typeof e&&(e=JSON.parse(e)),8!=e.version)throw new Error("glStyle version 8 required.");var s,l;if(o)if("undefined"!=typeof Image){var u=new Image;u.crossOrigin="anonymous",u.onload=function(){s=u,l=[u.width,u.height],t.changed(),u.onload=null},u.src=o}else if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope){var c=self;c.postMessage({action:"loadImage",src:o}),c.addEventListener("message",(function(t){"imageLoaded"===t.data.action&&t.data.src===o&&(s=t.data.image,l=[s.width,s.height])}))}for(var h,p=Object(hm.b)(e.layers),f={},d=[],g=0,y=p.length;g=y.maxzoom)return"continue";var b=y.filter;if(!b||function(t,e,r,n){return t in Fm||(Fm[t]=Object(hm.d)(e).filter),Im.zoom=n,Fm[t](Im,r)}(m,b,p,u)){c=y;var x=void 0,w=void 0,P=void 0,R=void 0,I=void 0,L=void 0,M=g.index;if(3==h&&("fill"==y.type||"fill-extrusion"==y.type))if(w=Mm(y,"paint",y.type+"-opacity",u,p),y.type+"-pattern"in _){var F=Mm(y,"paint",y.type+"-pattern",u,p);if(F){var A="string"==typeof F?jm(F,r):F.toString();if(s&&i&&i[A]){++d,(L=O[d])&&L.getFill()&&!L.getStroke()&&!L.getText()||(L=O[d]=new wp({fill:new ep})),P=L.getFill(),L.setZIndex(M);var k=C[ut=A+"."+w];if(!k)(pt=(ht=dm((ct=i[A]).width,ct.height)).getContext("2d")).globalAlpha=w,pt.drawImage(s,ct.x,ct.y,ct.width,ct.height,0,0,ct.width,ct.height),k=pt.createPattern(ht,"repeat"),C[ut]=k;P.setColor(k)}}}else(x=Am(Mm(y,"paint",y.type+"-color",u,p),w))&&(y.type+"-outline-color"in _&&(I=Am(Mm(y,"paint",y.type+"-outline-color",u,p),w)),I||(I=x),++d,(L=O[d])&&L.getFill()&&L.getStroke()&&!L.getText()||(L=O[d]=new wp({fill:new ep,stroke:new gp})),(P=L.getFill()).setColor(x),(R=L.getStroke()).setColor(I),R.setWidth(1),L.setZIndex(M));if(1!=h&&"line"==y.type){x=!("line-pattern"in _)&&"line-color"in _?Am(Mm(y,"paint","line-color",u,p),Mm(y,"paint","line-opacity",u,p)):void 0;var j=Mm(y,"paint","line-width",u,p);x&&j>0&&(++d,(L=O[d])&&L.getStroke()&&!L.getFill()&&!L.getText()||(L=O[d]=new wp({stroke:new gp})),(R=L.getStroke()).setLineCap(Mm(y,"layout","line-cap",u,p)),R.setLineJoin(Mm(y,"layout","line-join",u,p)),R.setMiterLimit(Mm(y,"layout","line-miter-limit",u,p)),R.setColor(x),R.setWidth(j),R.setLineDash(_["line-dasharray"]?Mm(y,"paint","line-dasharray",u,p).map((function(t){return t*j})):null),L.setZIndex(M))}var N=!1,D=null,G=0,z=void 0,U=void 0,B=void 0;if((1==h||2==h)&&"icon-image"in v){var V=Mm(y,"layout","icon-image",u,p);if(V){z="string"==typeof V?jm(V,r):V.toString();var Y=void 0;if(s&&i&&i[z]){var W=Mm(y,"layout","icon-rotation-alignment",u,p);if(2==h){var q=t.getGeometry();if(q.getFlatMidpoint||q.getFlatMidpoints){var X=q.getExtent();if(Math.sqrt(Math.max(Math.pow((X[2]-X[0])/e,2),Math.pow((X[3]-X[1])/e,2)))>150){var Z="MultiLineString"===q.getType()?q.getFlatMidpoints():q.getFlatMidpoint();if(wm||(wm=new Cy("Point",xm=[NaN,NaN],[],{},null)),Y=wm,xm[0]=Z[0],xm[1]=Z[1],"line"===(Mt=Mm(y,"layout","symbol-placement",u,p))&&"map"===W)for(var K=q.getStride(),H=q.getFlatCoordinates(),$=0,J=H.length-K;$=nt&&Z[0]<=ot&&Z[1]>=it&&Z[1]<=at){G=Math.atan2(tt-rt,et-Q);break}}}}}if(2!==h||Y){++d,(L=O[d])&&L.getImage()&&!L.getFill()&&!L.getStroke()||(L=O[d]=new wp),L.setGeometry(Y);var st=Mm(y,"layout","icon-size",u,p),lt=void 0!==_["icon-color"]?Mm(y,"paint","icon-color",u,p):null,ut=z+"."+st;if(null!==lt&&(ut+="."+lt),!(U=T[ut])){var ct=i[z];if(null!==lt){var ht,pt;(pt=(ht=dm(ct.width,ct.height)).getContext("2d")).drawImage(s,ct.x,ct.y,ct.width,ct.height,0,0,ct.width,ct.height);for(var ft=pt.getImageData(0,0,ht.width,ht.height),dt=0,gt=ft.data.length;dt0?new gp({width:bt,color:vt}):void 0,fill:_t?new ep({color:_t}):void 0})),L.setImage(U),D=L.getText(),L.setText(void 0),L.setGeometry(void 0),L.setZIndex(M),N=!0}var wt=void 0;if("text-field"in v)wt=jm(Mm(y,"layout","text-field",u,p).toString(),r).trim(),w=Mm(y,"paint","text-opacity",u,p);if(wt&&w&&!B){N||(++d,(L=O[d])&&L.getText()&&!L.getFill()&&!L.getStroke()||(L=O[d]=new wp),L.setImage(void 0),L.setGeometry(void 0)),L.getText()||L.setText(D||new Tp({padding:[2,2,2,2]})),D=L.getText();var St=Math.round(Mm(y,"layout","text-size",u,p)),Et=Mm(y,"layout","text-font",u,p),Tt=Mm(y,"layout","text-line-height",u,p),Ct=cm()(a?a(Et):Et,St,Tt),Ot=v["text-transform"];"uppercase"==Ot?wt=wt.toUpperCase():"lowercase"==Ot&&(wt=wt.toLowerCase());var Pt=Mm(y,"layout","text-max-width",u,p),Rt=Mm(y,"layout","text-letter-spacing",u,p),It=2==h?mm(wt,Rt):function t(e,r,n,i){if(-1!==e.indexOf("\n")){for(var o=e.split("\n"),a=[],s=0,l=o.length;s1){var p=vm();p.font=r;var f=p.measureText("M").width*n,d="";for(a=[],s=0,l=h.length;s1;++s){var m=a[s];if(_m(m,i)<.35*f){var v=s>0?_m(a[s-1],i):1/0,_=s.7*f&&_m(x,i)<.6*f){var w=b.split(" "),S=w.pop();_m(S,i)<.2*f&&(a[s]=w.join(" "),a[s+1]=S+" "+x),l-=1}}c=a.join("\n")}else c=e;c=mm(c,i),bm[u]=c}return c}(wt,Ct,Pt,Rt);D.setText(It),D.setFont(Ct),D.setRotation(pm(Mm(y,"layout","text-rotate",u,p)));var Lt=Mm(y,"layout","text-anchor",u,p),Mt=N||1==h?"point":Mm(y,"layout","symbol-placement",u,p);D.setPlacement(Mt);var Ft=Mm(y,"paint","text-halo-width",u,p),At=Mm(y,"layout","text-offset",u,p),kt=Mm(y,"paint","text-translate",u,p),jt=0,Nt=0;if("point"==Mt){var Dt="center";-1!==Lt.indexOf("left")?(Dt="left",Nt=Ft):-1!==Lt.indexOf("right")&&(Dt="right",Nt=-Ft),D.setTextAlign(Dt);var Gt=Mm(y,"layout","text-rotation-alignment",u,p);D.setRotateWithView("map"==Gt)}else D.setMaxAngle(pm(Mm(y,"layout","text-max-angle",u,p))*wt.length/It.length),D.setTextAlign(),D.setRotateWithView(!1);var zt="middle";0==Lt.indexOf("bottom")?(zt="bottom",jt=-Ft-.5*(Tt-1)*St):0==Lt.indexOf("top")&&(zt="top",jt=Ft+.5*(Tt-1)*St),D.setTextBaseline(zt),D.setOffsetX(At[0]*St+Nt+kt[0]),D.setOffsetY(At[1]*St+jt+kt[1]),E.setColor(Am(Mm(y,"paint","text-color",u,p),w)),D.setFill(E);var Ut=Am(Mm(y,"paint","text-halo-color",u,p),w);if(Ut){S.setColor(Ut),Ft*=2;var Bt=.5*St;S.setWidth(Ft<=Bt?Ft:Bt),D.setStroke(S)}else D.setStroke(void 0);var Vt=Mm(y,"layout","text-padding",u,p),Yt=D.getPadding();Vt!==Yt[0]&&(Yt[0]=Yt[1]=Yt[2]=Yt[3]=Vt),L.setZIndex(M)}}},y=0,m=o.length;y-1?(O.length=d+1,Nm&&("function"==typeof t.set?t.set("mapbox-layer",c):t.getProperties()["mapbox-layer"]=c),O):void 0}};return t.setStyle(P),t.set("mapbox-source",h),t.set("mapbox-layers",d),P},Gm=r(6),zm=r.n(Gm),Um=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function Bm(t){for(var e=[],r=0,n=t.length;r2?n[2]:""):t+r}function sv(t,e,r,n,i){return new Promise((function(o,a){if("object"!=typeof e&&(e=JSON.parse(e)),8!=e.version)return a(new Error("glStyle version 8 required."));if(!(t instanceof Iy||t instanceof lm))return a(new Error("Can only apply to VectorLayer or VectorTileLayer"));var s,l,u;function c(){u||e.sprite&&!s?u?(t.setStyle(u),o()):a(new Error("Something went wrong trying to apply style.")):(u=Dm(t,e,r,i,s,l,nv),t.getStyle()?o():a(new Error("Nothing to show for source ["+r+"]")))}if(e.sprite){var h=.5==(window.devicePixelRatio>=1.5?.5:1)?"@2x":"",p=av(e.sprite,n,h+".json");fetch(p,{credentials:"same-origin"}).then((function(t){return t.ok||""===h?t:(p=av(e.sprite,n,".json"),fetch(p,{credentials:"same-origin"}))})).then((function(t){if(t.ok)return t.json();a(new Error("Problem fetching sprite from "+p+": "+t.statusText))})).then((function(t){if(void 0===t)return a(new Error("No sprites found."));s=t,l=av(e.sprite,n,h+".png"),c()})).catch((function(t){a(new Error("Sprites cannot be loaded: "+p+": "+t.message))}))}else c()}))}new $m;var lv=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function uv(t){return 0!==t.indexOf("mapbox://")?"":t.slice("mapbox://".length)}function cv(t,e){var r=uv(t);if(!r)return t;if(0!==r.indexOf("sprites/"))throw new Error("unexpected sprites url: "+t);return"https://api.mapbox.com/styles/v1/"+r.slice("sprites/".length)+"/sprite?access_token="+e}function hv(t,e){var r=uv(t);if(!r)return t;if(0!==r.indexOf("fonts/"))throw new Error("unexpected fonts url: "+t);return"https://api.mapbox.com/fonts/v1/"+r.slice("fonts/".length)+"/0-255.pbf?access_token="+e}function pv(t,e){var r=uv(t);if(!r)return t;if(0!==r.indexOf("styles/"))throw new Error("unexpected style url: "+t);return"https://api.mapbox.com/styles/v1/"+r.slice("styles/".length)+"?&access_token="+e}function fv(t,e){var r=uv(t);return r?"https://{a-d}.tiles.mapbox.com/v4/"+r+"/{z}/{x}/{y}.vector.pbf?access_token="+e:t}var dv=function(t){function e(e){var r=t.call(this,A)||this;return r.error=e,r}return lv(e,t),e}(c),gv="vector",yv=function(t){function e(e){var r=this,n=!("declutter"in e)||e.declutter,i=new og({state:Jo,format:new am});return(r=t.call(this,{source:i,declutter:n,className:e.className,opacity:e.opacity,visible:e.visible,zIndex:e.zIndex,minResolution:e.minResolution,maxResolution:e.maxResolution,minZoom:e.minZoom,maxZoom:e.maxZoom,renderOrder:e.renderOrder,renderBuffer:e.renderBuffer,renderMode:e.renderMode,map:e.map,updateWhileAnimating:e.updateWhileAnimating,updateWhileInteracting:e.updateWhileInteracting,preload:e.preload,useInterimTilesOnError:e.useInterimTilesOnError})||this).sourceId=e.source,r.layers=e.layers,r.accessToken=e.accessToken,r.fetchStyle(e.styleUrl),r}return lv(e,t),e.prototype.fetchStyle=function(t){var e=this,r=pv(t,this.accessToken);fetch(r).then((function(t){if(!t.ok)throw new Error("unexpected response when fetching style: "+t.status);return t.json()})).then((function(t){e.onStyleLoad(t)})).catch((function(t){e.handleError(t)}))},e.prototype.onStyleLoad=function(t){var e,r,n=this;if(this.layers){for(var i={},o=0;o0){this.source_&&(this.source_.clear(),this.source_.addFeatures(h)),this.dispatchEvent(new Sv(wv,t,h,o));break}}},e.prototype.registerListeners_=function(){var t=this.getMap();if(t){var e=this.target?this.target:t.getViewport();this.dropListenKeys_=[Z(e,U,this.handleDrop,this),Z(e,G,this.handleStop,this),Z(e,z,this.handleStop,this),Z(e,U,this.handleStop,this)]}},e.prototype.setActive=function(e){!this.getActive()&&e&&this.registerListeners_(),this.getActive()&&!e&&this.unregisterListeners_(),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.unregisterListeners_(),t.prototype.setMap.call(this,e),this.getActive()&&this.registerListeners_()},e.prototype.tryReadFeatures_=function(t,e,r){try{return t.readFeatures(e,r)}catch(t){return null}},e.prototype.unregisterListeners_=function(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(H),this.dropListenKeys_=null)},e.prototype.handleDrop=function(t){for(var e=t.dataTransfer.files,r=0,n=e.length;r1?1:-1;return e.endInteraction(this.duration_,r),this.lastScaleDelta_=0,!1},e.prototype.handleDownEvent=function(t){return!!cl(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))},e}($s),Ov=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Pv=function(t){function e(e,r,n){var i=t.call(this)||this;if(void 0!==n&&void 0===r)i.setFlatCoordinates(n,e);else{var o=r||0;i.setCenterAndRadius(e,o,n)}return i}return Ov(e,t),e.prototype.clone=function(){var t=new e(this.flatCoordinates.slice(),void 0,this.layout);return t.applyProperties(this),t},e.prototype.closestPointXY=function(t,e,r,n){var i=this.flatCoordinates,o=t-i[0],a=e-i[1],s=o*o+a*a;if(s=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||me(t,this.intersectsCoordinate.bind(this)))}return!1},e.prototype.setCenter=function(t){var e=this.stride,r=this.flatCoordinates[e]-this.flatCoordinates[0],n=t.slice();n[e]=n[0]+r;for(var i=1;i=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,r=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0));return this.freehand_&&e.type===Ga.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(e.coordinate),n=!1):this.freehand_&&e.type===Ga.POINTERDOWN?n=!1:r&&this.getPointerCount()<2?(n=e.type===Ga.POINTERMOVE)&&this.freehand_?(this.handlePointerMove_(e),this.shouldHandle_&&e.originalEvent.preventDefault()):("mouse"===e.originalEvent.pointerType||e.type===Ga.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(e):e.type===Ga.DBLCLICK&&(n=!1),t.prototype.handleEvent.call(this,e)&&n},e.prototype.handleDownEvent=function(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(function(){this.handlePointerMove_(new Da(Ga.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))}.bind(this),this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)},e.prototype.handleUpEvent=function(t){var e=!0;if(0===this.getPointerCount())if(this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0),this.handlePointerMove_(t),this.shouldHandle_){switch(!0){case!this.finishCoordinate_:if(this.startDrawing_(t.coordinate),this.mode_!==Lv)break;case this.freehand_||this.atFinish_(t.pixel)&&this.finishCondition_(t):this.finishDrawing();break;case!this.freehand_:this.addToDrawing_(t.coordinate)}e=!1}else this.freehand_&&this.abortDrawing();return!e&&this.stopClick_&&t.originalEvent.stopPropagation(),e},e.prototype.handlePointerMove_=function(t){if(this.pointerType_=t.originalEvent.pointerType,this.downPx_&&(!this.freehand_&&this.shouldHandle_||this.freehand_&&!this.shouldHandle_)){var e=this.downPx_,r=t.pixel,n=e[0]-r[0],i=e[1]-r[1],o=n*n+i*i;if(this.shouldHandle_=this.freehand_?o>this.squaredClickTolerance_:o<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?this.modifyDrawing_(t.coordinate):this.createOrUpdateSketchPoint_(t)},e.prototype.atFinish_=function(t){var e=!1;if(this.sketchFeature_){var r=!1,n=[this.finishCoordinate_],i=this.mode_;if(i===Lv)e=!0;else if(i===Av)e=2===this.sketchCoords_.length;else if(i===Mv)r=this.sketchCoords_.length>this.minPoints_;else if(i===Fv){var o=this.sketchCoords_;r=o[0].length>this.minPoints_,n=[o[0][0],o[0][o[0].length-2]]}if(r)for(var a=this.getMap(),s=0,l=n.length;s=this.maxPoints_&&(this.freehand_?r.pop():e=!0),r.push(t.slice()),this.geometryFunction_(r,n,i)):o===Fv&&((r=this.sketchCoords_[0]).length>=this.maxPoints_&&(this.freehand_?r.pop():e=!0),r.push(t.slice()),e&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,n,i)),this.updateSketchFeatures_(),e&&this.finishDrawing()},e.prototype.removeLastPoint=function(){if(this.sketchFeature_){var t,e=this.sketchFeature_.getGeometry(),r=this.getMap().getView().getProjection(),n=this.mode_;if(n===Mv||n===Av){if((t=this.sketchCoords_).splice(-2,1),t.length>=2){this.finishCoordinate_=t[t.length-2].slice();var i=this.finishCoordinate_.slice();t[t.length-1]=i,this.sketchPoint_.setGeometry(new qn(i))}this.geometryFunction_(t,e,r),e.getType()===bt.POLYGON&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if(n===Fv){(t=this.sketchCoords_[0]).splice(-2,1);var o=this.sketchLine_.getGeometry();if(t.length>=2){i=t[t.length-2].slice();t[t.length-1]=i,this.sketchPoint_.setGeometry(new qn(i))}o.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,r)}1===t.length&&this.abortDrawing(),this.updateSketchFeatures_()}},e.prototype.finishDrawing=function(){var t=this.abortDrawing_();if(t){var e=this.sketchCoords_,r=t.getGeometry(),n=this.getMap().getView().getProjection();this.mode_===Mv?(e.pop(),this.geometryFunction_(e,r,n)):this.mode_===Fv&&(e[0].pop(),this.geometryFunction_(e,r,n),e=r.getCoordinates()),this.type_===bt.MULTI_POINT?t.setGeometry(new Hy([e])):this.type_===bt.MULTI_LINE_STRING?t.setGeometry(new Zy([e])):this.type_===bt.MULTI_POLYGON&&t.setGeometry(new Jy([e])),this.dispatchEvent(new Dv(jv,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}},e.prototype.abortDrawing_=function(){this.finishCoordinate_=null;var t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),t},e.prototype.abortDrawing=function(){var t=this.abortDrawing_();t&&this.dispatchEvent(new Dv(Nv,t))},e.prototype.appendCoordinates=function(t){var e,r=this.mode_,n=!this.sketchFeature_;if(n&&this.startDrawing_(t[0]),r===Mv||r===Av)e=this.sketchCoords_;else{if(r!==Fv)return;e=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}n&&e.shift(),e.pop();for(var i=0;ih?o[1]:o[0]),a}}return null},e.prototype.handlePointerMove_=function(t){var e=t.pixel,r=t.map,n=this.snapToVertex_(e,r);n||(n=r.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(n)},e.prototype.createOrUpdateExtentFeature_=function(t){var e=this.extentFeature_;return e?t?e.setGeometry(gi(t)):e.setGeometry(void 0):(e=new gt(t?gi(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e},e.prototype.createOrUpdatePointerFeature_=function(t){var e=this.vertexFeature_;e?e.getGeometry().setCoordinates(t):(e=new gt(new qn(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e));return e},e.prototype.handleEvent=function(e){return!e.originalEvent||!this.condition_(e)||(e.type!=Ga.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(e),t.prototype.handleEvent.call(this,e),!1)},e.prototype.handleDownEvent=function(t){var e=t.pixel,r=t.map,n=this.getExtentInternal(),i=this.snapToVertex_(e,r),o=function(t){var e=null,r=null;return t[0]==n[0]?e=n[2]:t[0]==n[2]&&(e=n[0]),t[1]==n[1]?r=n[3]:t[1]==n[3]&&(r=n[1]),null!==e&&null!==r?[e,r]:null};if(i&&n){var a=i[0]==n[0]||i[0]==n[2]?i[0]:null,s=i[1]==n[1]||i[1]==n[3]?i[1]:null;null!==a&&null!==s?this.pointerHandler_=Yv(o(i)):null!==a?this.pointerHandler_=Wv(o([a,n[1]]),o([a,n[3]])):null!==s&&(this.pointerHandler_=Wv(o([n[0],s]),o([n[2],s])))}else i=r.getCoordinateFromPixelInternal(e),this.setExtent([i[0],i[1],i[0],i[1]]),this.pointerHandler_=Yv(i);return!0},e.prototype.handleDragEvent=function(t){if(this.pointerHandler_){var e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}},e.prototype.handleUpEvent=function(t){this.pointerHandler_=null;var e=this.getExtentInternal();return e&&0!==ve(e)||this.setExtent(null),!1},e.prototype.setMap=function(e){this.extentOverlay_.setMap(e),this.vertexOverlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getExtent=function(){return nn(this.getExtentInternal(),this.getMap().getView().getProjection())},e.prototype.getExtentInternal=function(){return this.extent_},e.prototype.setExtent=function(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new Bv(this.extent_))},e}($s),Xv=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),Zv=[0,0,0,0],Kv=[],Hv="modifystart",$v="modifyend",Jv=function(t){function e(e,r,n){var i=t.call(this,e)||this;return i.features=r,i.mapBrowserEvent=n,i}return Xv(e,t),e}(c);function Qv(t,e){return t.index-e.index}function t_(t,e,r){var n=e.geometry;if(n.getType()===bt.CIRCLE){var i=n;if(1===e.index){var o=tn();o&&(i=i.clone().transform(o,r));var a=Rr(i.getCenter(),rn(t,r)),s=Math.sqrt(a)-i.getRadius();return s*s}}var l=rn(t,r);return Kv[0]=rn(e.segment[0],r),Kv[1]=rn(e.segment[1],r),Lr(l,Kv)}function e_(t,e,r){var n=e.geometry;if(n.getType()===bt.CIRCLE&&1===e.index){var i=n,o=tn();return o&&(i=i.clone().transform(o,r)),en(i.getClosestPoint(rn(t,r)),r)}var a=rn(t,r);return Kv[0]=rn(e.segment[0],r),Kv[1]=rn(e.segment[1],r),en(Sr(a,Kv),r)}var r_=function(t){function e(e){var r,n,i=t.call(this,e)||this;if(i.boundHandleFeatureChange_=i.handleFeatureChange_.bind(i),i.condition_=e.condition?e.condition:hl,i.defaultDeleteCondition_=function(t){return Qs(t)&&al(t)},i.deleteCondition_=e.deleteCondition?e.deleteCondition:i.defaultDeleteCondition_,i.insertVertexCondition_=e.insertVertexCondition?e.insertVertexCondition:nl,i.vertexFeature_=null,i.vertexSegments_=null,i.lastPixel_=[0,0],i.ignoreNextSingleClick_=!1,i.featuresBeingModified_=null,i.rBush_=new Rp,i.pixelTolerance_=void 0!==e.pixelTolerance?e.pixelTolerance:10,i.snappedToVertex_=!1,i.changingFeature_=!1,i.dragSegments_=[],i.overlay_=new Iy({source:new hf({useSpatialIndex:!1,wrapX:!!e.wrapX}),style:e.style?e.style:(r=bp(),function(t,e){return r[bt.POINT]}),updateWhileAnimating:!0,updateWhileInteracting:!0}),i.SEGMENT_WRITERS_={Point:i.writePointGeometry_.bind(i),LineString:i.writeLineStringGeometry_.bind(i),LinearRing:i.writeLineStringGeometry_.bind(i),Polygon:i.writePolygonGeometry_.bind(i),MultiPoint:i.writeMultiPointGeometry_.bind(i),MultiLineString:i.writeMultiLineStringGeometry_.bind(i),MultiPolygon:i.writeMultiPolygonGeometry_.bind(i),Circle:i.writeCircleGeometry_.bind(i),GeometryCollection:i.writeGeometryCollectionGeometry_.bind(i)},i.source_=null,i.hitDetection_=null,e.features?n=e.features:e.source&&(i.source_=e.source,n=new ht(i.source_.getFeatures()),i.source_.addEventListener(ef,i.handleSourceAdd_.bind(i)),i.source_.addEventListener(of,i.handleSourceRemove_.bind(i))),!n)throw new Error("The modify interaction requires features, a source or a layer");return e.hitDetection&&(i.hitDetection_=e.hitDetection),i.features_=n,i.features_.forEach(i.addFeature_.bind(i)),i.features_.addEventListener(at,i.handleFeatureAdd_.bind(i)),i.features_.addEventListener(st,i.handleFeatureRemove_.bind(i)),i.lastPointerEvent_=null,i.delta_=[0,0],i}return Xv(e,t),e.prototype.addFeature_=function(t){var e=t.getGeometry();if(e){var r=this.SEGMENT_WRITERS_[e.getType()];r&&r(t,e)}var n=this.getMap();n&&n.isRendered()&&this.getActive()&&this.handlePointerAtPixel_(this.lastPixel_,n),t.addEventListener(F,this.boundHandleFeatureChange_)},e.prototype.willModifyFeatures_=function(t,e){if(!this.featuresBeingModified_){this.featuresBeingModified_=new ht;for(var r=this.featuresBeingModified_.getArray(),n=0,i=e.length;n=0;--n){for(var i=r[n],o=this.dragSegments_.length-1;o>=0;--o)this.dragSegments_[o][0]===i&&this.dragSegments_.splice(o,1);e.remove(i)}},e.prototype.setActive=function(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.prototype.setActive.call(this,e)},e.prototype.setMap=function(e){this.overlay_.setMap(e),t.prototype.setMap.call(this,e)},e.prototype.getOverlay=function(){return this.overlay_},e.prototype.handleSourceAdd_=function(t){t.feature&&this.features_.push(t.feature)},e.prototype.handleSourceRemove_=function(t){t.feature&&this.features_.remove(t.feature)},e.prototype.handleFeatureAdd_=function(t){this.addFeature_(t.element)},e.prototype.handleFeatureChange_=function(t){if(!this.changingFeature_){var e=t.target;this.removeFeature_(e),this.addFeature_(e)}},e.prototype.handleFeatureRemove_=function(t){var e=t.element;this.removeFeature_(e)},e.prototype.writePointGeometry_=function(t,e){var r=e.getCoordinates(),n={feature:t,geometry:e,segment:[r,r]};this.rBush_.insert(e.getExtent(),n)},e.prototype.writeMultiPointGeometry_=function(t,e){for(var r=e.getCoordinates(),n=0,i=r.length;n=0;--y)this.insertVertex_(i[y],a)}return!!this.vertexFeature_},e.prototype.handleUpEvent=function(t){for(var e=this.dragSegments_.length-1;e>=0;--e){var r=this.dragSegments_[e][0],n=r.geometry;if(n.getType()===bt.CIRCLE){var i=n.getCenter(),o=r.featureSegments[0],a=r.featureSegments[1];o.segment[0]=i,o.segment[1]=i,a.segment[0]=i,a.segment[1]=i,this.rBush_.update(ae(i),o);var s=n,l=tn();if(l){var u=t.map.getView().getProjection();s=yi(s=s.clone().transform(l,u)).transform(u,l)}this.rBush_.update(s.getExtent(),a)}else this.rBush_.update(Kt(r.segment),r)}return this.featuresBeingModified_&&(this.dispatchEvent(new Jv($v,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1},e.prototype.handlePointerMove_=function(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)},e.prototype.handlePointerAtPixel_=function(t,e,r){var n,i,a=this,s=r||e.getCoordinateFromPixel(t),l=e.getView().getProjection();if(this.hitDetection_){var u="object"==typeof this.hitDetection_?function(t){return t===a.hitDetection_}:void 0;e.forEachFeatureAtPixel(t,(function(t,e,r){if((r=r||t.getGeometry()).getType()===bt.POINT){i=r;var o=r.getCoordinates();n=[{feature:t,geometry:r,segment:[o,o]}]}return!0}),{layerFilter:u})}if(!n){var c=nn(Ht(on(ae(s,Zv),l),e.getView().getResolution()*this.pixelTolerance_,Zv),l);n=this.rBush_.getInExtent(c)}if(n&&n.length>0){var h=n.sort((function(t,e){return t_(s,t,l)-t_(s,e,l)}))[0],p=h.segment,f=e_(s,h,l),d=e.getPixelFromCoordinate(f),g=Ir(t,d);if(i||g<=this.pixelTolerance_){var y={};if(y[o(p)]=!0,this.delta_[0]=f[0]-s[0],this.delta_[1]=f[1]-s[1],h.geometry.getType()===bt.CIRCLE&&1===h.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(f,[h.feature],[h.geometry]);else{var m=e.getPixelFromCoordinate(p[0]),v=e.getPixelFromCoordinate(p[1]),_=Rr(d,m),b=Rr(d,v);g=Math.sqrt(Math.min(_,b)),this.snappedToVertex_=g<=this.pixelTolerance_,this.snappedToVertex_&&(f=_>b?p[1]:p[0]),this.createOrUpdateVertexFeature_(f,[h.feature],[h.geometry]);var x={};x[o(h.geometry)]=!0;for(var w=1,S=n.length;w=0;--i)h=o((c=(r=p[i])[0]).feature),c.depth&&(h+="-"+c.depth.join("-")),h in f||(f[h]={}),0===r[1]?(f[h].right=c,f[h].index=c.index):1==r[1]&&(f[h].left=c,f[h].index=c.index+1);for(h in f){switch(u=f[h].right,s=f[h].left,(l=(a=f[h].index)-1)<0&&(l=0),t=e=(n=(c=void 0!==s?s:u).geometry).getCoordinates(),d=!1,n.getType()){case bt.MULTI_LINE_STRING:e[c.depth[0]].length>2&&(e[c.depth[0]].splice(a,1),d=!0);break;case bt.LINE_STRING:e.length>2&&(e.splice(a,1),d=!0);break;case bt.MULTI_POLYGON:t=t[c.depth[1]];case bt.POLYGON:(t=t[c.depth[0]]).length>4&&(a==t.length-1&&(a=0),t.splice(a,1),d=!0,0===a&&(t.pop(),t.push(t[0]),l=t.length-1))}if(d){this.setGeometryCoordinates_(n,e);var g=[];if(void 0!==s&&(this.rBush_.remove(s),g.push(s.segment[0])),void 0!==u&&(this.rBush_.remove(u),g.push(u.segment[1])),void 0!==s&&void 0!==u){var y={depth:c.depth,feature:c.feature,geometry:c.geometry,index:l,segment:g};this.rBush_.insert(Kt(y.segment),y)}this.updateSegmentIndices_(n,a,c.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),p.length=0}}return d},e.prototype.setGeometryCoordinates_=function(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1},e.prototype.updateSegmentIndices_=function(t,e,r,n){this.rBush_.forEachInExtent(t.getExtent(),(function(i){i.geometry===t&&(void 0===r||void 0===i.depth||b(i.depth,r))&&i.index>e&&(i.index+=n)}))},e}($s),n_=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),i_="select",o_=function(t){function e(e,r,n,i){var o=t.call(this,e)||this;return o.selected=r,o.deselected=n,o.mapBrowserEvent=i,o}return n_(e,t),e}(c),a_={};var s_=function(t){function e(e){var r,n,i=t.call(this)||this,o=e||{};if(i.boundAddFeature_=i.addFeature_.bind(i),i.boundRemoveFeature_=i.removeFeature_.bind(i),i.condition_=o.condition?o.condition:al,i.addCondition_=o.addCondition?o.addCondition:ol,i.removeCondition_=o.removeCondition?o.removeCondition:ol,i.toggleCondition_=o.toggleCondition?o.toggleCondition:ll,i.multi_=!!o.multi&&o.multi,i.filter_=o.filter?o.filter:S,i.hitTolerance_=o.hitTolerance?o.hitTolerance:0,i.style_=void 0!==o.style?o.style:(v((r=bp())[bt.POLYGON],r[bt.LINE_STRING]),v(r[bt.GEOMETRY_COLLECTION],r[bt.LINE_STRING]),function(t){return t.getGeometry()?r[t.getGeometry().getType()]:null}),i.features_=o.features||new ht,o.layers)if("function"==typeof o.layers)n=o.layers;else{var a=o.layers;n=function(t){return g(a,t)}}else n=S;return i.layerFilter_=n,i.featureLayerAssociation_={},i}return n_(e,t),e.prototype.addFeatureLayerAssociation_=function(t,e){this.featureLayerAssociation_[o(t)]=e},e.prototype.getFeatures=function(){return this.features_},e.prototype.getHitTolerance=function(){return this.hitTolerance_},e.prototype.getLayer=function(t){return this.featureLayerAssociation_[o(t)]},e.prototype.setHitTolerance=function(t){this.hitTolerance_=t},e.prototype.setMap=function(e){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),t.prototype.setMap.call(this,e),e?(this.features_.addEventListener(at,this.boundAddFeature_),this.features_.addEventListener(st,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(at,this.boundAddFeature_),this.features_.removeEventListener(st,this.boundRemoveFeature_))},e.prototype.addFeature_=function(t){var e=t.element;this.style_&&this.applySelectedStyle_(e)},e.prototype.removeFeature_=function(t){var e=t.element;this.style_&&this.restorePreviousStyle_(e)},e.prototype.getStyle=function(){return this.style_},e.prototype.applySelectedStyle_=function(t){var e=o(t);e in a_||(a_[e]=t.getStyle()),t.setStyle(this.style_)},e.prototype.restorePreviousStyle_=function(t){for(var r=this.getMap().getInteractions().getArray(),n=r.length-1;n>=0;--n){var i=r[n];if(i!==this&&i instanceof e&&i.getStyle()&&-1!==i.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(i.getStyle())}var a=o(t);t.setStyle(a_[a]),delete a_[a]},e.prototype.removeFeatureLayerAssociation_=function(t){delete this.featureLayerAssociation_[o(t)]},e.prototype.handleEvent=function(t){if(!this.condition_(t))return!0;var e=this.addCondition_(t),r=this.removeCondition_(t),n=this.toggleCondition_(t),i=!e&&!r&&!n,o=t.map,a=this.getFeatures(),s=[],l=[];if(i){P(this.featureLayerAssociation_),o.forEachFeatureAtPixel(t.pixel,function(t,e){if(this.filter_(t,e))return l.push(t),this.addFeatureLayerAssociation_(t,e),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var u=a.getLength()-1;u>=0;--u){var c=a.item(u),h=l.indexOf(c);h>-1?l.splice(h,1):(a.remove(c),s.push(c))}0!==l.length&&a.extend(l)}else{o.forEachFeatureAtPixel(t.pixel,function(t,i){if(this.filter_(t,i))return!e&&!n||g(a.getArray(),t)?(r||n)&&g(a.getArray(),t)&&(s.push(t),this.removeFeatureLayerAssociation_(t)):(l.push(t),this.addFeatureLayerAssociation_(t,i)),!this.multi_}.bind(this),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(var p=s.length-1;p>=0;--p)a.remove(s[p]);a.extend(l)}return(l.length>0||s.length>0)&&this.dispatchEvent(new o_(i_,l,s,t)),!0},e}(qs),l_=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}();function u_(t){return t.feature?t.feature:t.element?t.element:void 0}var c_=[],h_=function(t){function e(e){var r=this,n=e||{},i=n;return i.handleDownEvent||(i.handleDownEvent=S),i.stopDown||(i.stopDown=E),(r=t.call(this,i)||this).source_=n.source?n.source:null,r.vertex_=void 0===n.vertex||n.vertex,r.edge_=void 0===n.edge||n.edge,r.features_=n.features?n.features:null,r.featuresListenerKeys_=[],r.featureChangeListenerKeys_={},r.indexedFeaturesExtents_={},r.pendingFeatures_={},r.pixelTolerance_=void 0!==n.pixelTolerance?n.pixelTolerance:10,r.rBush_=new Rp,r.SEGMENT_WRITERS_={Point:r.writePointGeometry_.bind(r),LineString:r.writeLineStringGeometry_.bind(r),LinearRing:r.writeLineStringGeometry_.bind(r),Polygon:r.writePolygonGeometry_.bind(r),MultiPoint:r.writeMultiPointGeometry_.bind(r),MultiLineString:r.writeMultiLineStringGeometry_.bind(r),MultiPolygon:r.writeMultiPolygonGeometry_.bind(r),GeometryCollection:r.writeGeometryCollectionGeometry_.bind(r),Circle:r.writeCircleGeometry_.bind(r)},r}return l_(e,t),e.prototype.addFeature=function(t,e){var r=void 0===e||e,n=o(t),i=t.getGeometry();if(i){var a=this.SEGMENT_WRITERS_[i.getType()];a&&(this.indexedFeaturesExtents_[n]=i.getExtent([1/0,1/0,-1/0,-1/0]),a(t,i))}r&&(this.featureChangeListenerKeys_[n]=Z(t,F,this.handleFeatureChange_,this))},e.prototype.forEachFeatureAdd_=function(t){this.addFeature(t)},e.prototype.forEachFeatureRemove_=function(t){this.removeFeature(t)},e.prototype.getFeatures_=function(){var t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t},e.prototype.handleEvent=function(e){var r=this.snapTo(e.pixel,e.coordinate,e.map);return r.snapped&&(e.coordinate=r.vertex.slice(0,2),e.pixel=r.vertexPixel),t.prototype.handleEvent.call(this,e)},e.prototype.handleFeatureAdd_=function(t){var e=u_(t);this.addFeature(e)},e.prototype.handleFeatureRemove_=function(t){var e=u_(t);this.removeFeature(e)},e.prototype.handleFeatureChange_=function(t){var e=t.target;if(this.handlingDownUpSequence){var r=o(e);r in this.pendingFeatures_||(this.pendingFeatures_[r]=e)}else this.updateFeature_(e)},e.prototype.handleUpEvent=function(t){var e=R(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1},e.prototype.removeFeature=function(t,e){var r=void 0===e||e,n=o(t),i=this.indexedFeaturesExtents_[n];if(i){var a=this.rBush_,s=[];a.forEachInExtent(i,(function(e){t===e.feature&&s.push(e)}));for(var l=s.length-1;l>=0;--l)a.remove(s[l])}r&&(H(this.featureChangeListenerKeys_[n]),delete this.featureChangeListenerKeys_[n])},e.prototype.setMap=function(e){var r=this.getMap(),n=this.featuresListenerKeys_,i=this.getFeatures_();r&&(n.forEach(H),n.length=0,i.forEach(this.forEachFeatureRemove_.bind(this))),t.prototype.setMap.call(this,e),e&&(this.features_?n.push(Z(this.features_,at,this.handleFeatureAdd_,this),Z(this.features_,st,this.handleFeatureRemove_,this)):this.source_&&n.push(Z(this.source_,ef,this.handleFeatureAdd_,this),Z(this.source_,of,this.handleFeatureRemove_,this)),i.forEach(this.forEachFeatureAdd_.bind(this)))},e.prototype.snapTo=function(t,e,r){var n=Kt([r.getCoordinateFromPixel([t[0]-this.pixelTolerance_,t[1]+this.pixelTolerance_]),r.getCoordinateFromPixel([t[0]+this.pixelTolerance_,t[1]-this.pixelTolerance_])]),i=this.rBush_.getInExtent(n);this.vertex_&&!this.edge_&&(i=i.filter((function(t){return t.feature.getGeometry().getType()!==bt.CIRCLE})));var o=!1,a=null,s=null;if(0===i.length)return{snapped:o,vertex:a,vertexPixel:s};for(var l,u=r.getView().getProjection(),c=rn(e,u),h=1/0,p=0;p_?g[1]:g[0],s=r.getPixelFromCoordinate(a))}else if(this.edge_){var b=l.feature.getGeometry().getType()===bt.CIRCLE;if(b){var x=l.feature.getGeometry(),w=tn();w&&(x=x.clone().transform(w,u)),a=en(wr(c,x),u)}else c_[0]=rn(g[0],u),c_[1]=rn(g[1],u),a=en(Sr(c,c_),u);if(Ir(t,s=r.getPixelFromCoordinate(a))<=this.pixelTolerance_&&(o=!0,this.vertex_&&!b)){y=r.getPixelFromCoordinate(g[0]),m=r.getPixelFromCoordinate(g[1]),v=Rr(s,y),_=Rr(s,m);Math.sqrt(Math.min(v,_))<=this.pixelTolerance_&&(a=v>_?g[1]:g[0],s=r.getPixelFromCoordinate(a))}}return o&&(s=[Math.round(s[0]),Math.round(s[1])]),{snapped:o,vertex:a,vertexPixel:s}},e.prototype.updateFeature_=function(t){this.removeFeature(t,!1),this.addFeature(t,!1)},e.prototype.writeCircleGeometry_=function(t,e){var r=this.getMap().getView().getProjection(),n=e,i=tn();i&&(n=n.clone().transform(i,r));var o=yi(n);i&&o.transform(r,i);for(var a=o.getCoordinates()[0],s=0,l=a.length-1;s=0;r--){var u=o[r][0];if(te(new Yn(u).getExtent(),new Yn(s).getExtent())){o[r].push(s),l=!0;break}}l||o.push([s.reverse()])}return o}(o.rings,a);1===s.length?(i=bt.POLYGON,t=O({},t,((r={}).rings=s[0],r))):(i=bt.MULTI_POLYGON,t=O({},t,((n={}).rings=s,n)))}return Wy((0,b_[i])(t),!1,e)}function S_(t){var e=yt;return!0===t.hasZ&&!0===t.hasM?e=_t:!0===t.hasZ?e=mt:!0===t.hasM&&(e=vt),e}function E_(t){var e=t.getLayout();return{hasZ:e===mt||e===_t,hasM:e===vt||e===_t}}function T_(t,e){return(0,x_[t.getType()])(Wy(t,!0,e),e)}x_[bt.POINT]=function(t,e){var r,n=t.getCoordinates(),i=t.getLayout();i===mt?r={x:n[0],y:n[1],z:n[2]}:i===vt?r={x:n[0],y:n[1],m:n[2]}:i===_t?r={x:n[0],y:n[1],z:n[2],m:n[3]}:i===yt?r={x:n[0],y:n[1]}:pt(!1,34);return r},x_[bt.LINE_STRING]=function(t,e){var r=E_(t);return{hasZ:r.hasZ,hasM:r.hasM,paths:[t.getCoordinates()]}},x_[bt.POLYGON]=function(t,e){var r=E_(t);return{hasZ:r.hasZ,hasM:r.hasM,rings:t.getCoordinates(!1)}},x_[bt.MULTI_POINT]=function(t,e){var r=E_(t);return{hasZ:r.hasZ,hasM:r.hasM,points:t.getCoordinates()}},x_[bt.MULTI_LINE_STRING]=function(t,e){var r=E_(t);return{hasZ:r.hasZ,hasM:r.hasM,paths:t.getCoordinates()}},x_[bt.MULTI_POLYGON]=function(t,e){for(var r=E_(t),n=t.getCoordinates(!1),i=[],o=0;o=0;a--)i.push(n[o][a]);return{hasZ:r.hasZ,hasM:r.hasM,rings:i}};var C_=function(t){function e(e){var r=this,n=e||{};return(r=t.call(this)||this).geometryName_=n.geometryName,r}return __(e,t),e.prototype.readFeatureFromObject=function(t,e,r){var n=t,i=w_(n.geometry,e),o=new gt;if(this.geometryName_&&o.setGeometryName(this.geometryName_),o.setGeometry(i),n.attributes){o.setProperties(n.attributes,!0);var a=n.attributes[r];void 0!==a&&o.setId(a)}return o},e.prototype.readFeaturesFromObject=function(t,e){var r=e||{};if(t.features){for(var n=[],i=t.features,o=0,a=i.length;o0?r[0]:null},e.prototype.readFeatureFromNode=function(t,e){return null},e.prototype.readFeatures=function(t,e){if(t){if("string"==typeof t){var r=Pc(t);return this.readFeaturesFromDocument(r,e)}return Cc(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}return[]},e.prototype.readFeaturesFromDocument=function(t,e){for(var r=[],n=t.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&v(r,this.readFeaturesFromNode(n,e));return r},e.prototype.readFeaturesFromNode=function(t,e){return n()},e.prototype.readGeometry=function(t,e){if(t){if("string"==typeof t){var r=Pc(t);return this.readGeometryFromDocument(r,e)}return Cc(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}return null},e.prototype.readGeometryFromDocument=function(t,e){return null},e.prototype.readGeometryFromNode=function(t,e){return null},e.prototype.readProjection=function(t){if(t){if("string"==typeof t){var e=Pc(t);return this.readProjectionFromDocument(e)}return Cc(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}return null},e.prototype.readProjectionFromDocument=function(t){return this.dataProjection},e.prototype.readProjectionFromNode=function(t){return this.dataProjection},e.prototype.writeFeature=function(t,e){var r=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(r)},e.prototype.writeFeatureNode=function(t,e){return null},e.prototype.writeFeatures=function(t,e){var r=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(r)},e.prototype.writeFeaturesNode=function(t,e){return null},e.prototype.writeGeometry=function(t,e){var r=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(r)},e.prototype.writeGeometryNode=function(t,e){return null},e}(Yy),R_=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),I_="http://www.opengis.net/gml",L_=/^[\s\xa0]*$/,M_=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.featureType=n.featureType,r.featureNS=n.featureNS,r.srsName=n.srsName,r.schemaLocation="",r.FEATURE_COLLECTION_PARSERS={},r.FEATURE_COLLECTION_PARSERS[r.namespace]={featureMember:Ic(r.readFeaturesInternal),featureMembers:Lc(r.readFeaturesInternal)},r}return R_(e,t),e.prototype.readFeaturesInternal=function(t,e){var r=t.localName,n=null;if("FeatureCollection"==r)n=Uc([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==r||"featureMember"==r||"member"==r){var i=e[0],o=i.featureType,a=i.featureNS;if(!o&&t.childNodes){o=[],a={};for(var s=0,l=t.childNodes.length;s0){i[s]={_content_:i[s]};for(var u=0;u0:h===bt.POINT||h===bt.MULTI_POINT}}s&&(l=o.get("name"),(s=s&&!!l)&&l.search(/&[^&]+;/)>-1&&(Tx||(Tx=document.createElement("textarea")),Tx.innerHTML=l,l=Tx.value));var p=r;if(t?p=t:e&&(p=function t(e,r,n){return Array.isArray(e)?e:"string"==typeof e?t(n[e],r,n):r}(e,r,n)),s){var f=function(t,e){var r=[0,0],n="start",i=t.getImage();if(i){var o=i.getImageSize();if(null===o&&(o=Kb),2==o.length){var a=i.getScaleArray();r[0]=a[0]*o[0]/2,r[1]=-a[1]*o[1]/2,n="left"}}var s=t.getText();s?((s=s.clone()).setFont(s.getFont()||Sx.getFont()),s.setScale(s.getScale()||Sx.getScale()),s.setFill(s.getFill()||Sx.getFill()),s.setStroke(s.getStroke()||xx)):s=Sx.clone();return s.setText(e),s.setOffsetX(r[0]),s.setOffsetY(r[1]),s.setTextAlign(n),new wp({image:i,text:s})}(p[0],l);return u.length>0?(f.setGeometry(new Vm(u)),[f,new wp({geometry:p[0].getGeometry(),image:null,fill:p[0].getFill(),stroke:p[0].getStroke(),text:null})].concat(p.slice(1))):f}return p}}(r.Style,r.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);n.setStyle(s)}return delete r.Style,n.setProperties(r,!0),n}},e.prototype.readSharedStyle_=function(t,e){var r=t.getAttribute("id");if(null!==r){var n=nw.call(this,t,e);if(n){var i=void 0,o=t.baseURI;if(o&&"about:blank"!=o||(o=window.location.href),o)i=new URL("#"+r,o).href;else i="#"+r;this.sharedStyles_[i]=n}}},e.prototype.readSharedStyleMap_=function(t,e){var r=t.getAttribute("id");if(null!==r){var n=kx.call(this,t,e);if(n){var i,o=t.baseURI;if(o&&"about:blank"!=o||(o=window.location.href),o)i=new URL("#"+r,o).href;else i="#"+r;this.sharedStyles_[i]=n}}},e.prototype.readFeatureFromNode=function(t,e){if(!g(cx,t.namespaceURI))return null;var r=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return r||null},e.prototype.readFeaturesFromNode=function(t,e){if(!g(cx,t.namespaceURI))return[];var r,n=t.localName;if("Document"==n||"Folder"==n)return(r=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]))||[];if("Placemark"==n){var i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==n){r=[];for(var o=t.firstElementChild;o;o=o.nextElementSibling){var a=this.readFeaturesFromNode(o,e);a&&v(r,a)}return r}return[]},e.prototype.readName=function(t){if(t){if("string"==typeof t){var e=Pc(t);return this.readNameFromDocument(e)}return Cc(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}},e.prototype.readNameFromDocument=function(t){for(var e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){var r=this.readNameFromNode(e);if(r)return r}},e.prototype.readNameFromNode=function(t){for(var e=t.firstElementChild;e;e=e.nextElementSibling)if(g(cx,e.namespaceURI)&&"name"==e.localName)return U_(e);for(e=t.firstElementChild;e;e=e.nextElementSibling){var r=e.localName;if(g(cx,e.namespaceURI)&&("Document"==r||"Folder"==r||"Placemark"==r||"kml"==r)){var n=this.readNameFromNode(e);if(n)return n}}},e.prototype.readNetworkLinks=function(t){var e=[];if("string"==typeof t){var r=Pc(t);v(e,this.readNetworkLinksFromDocument(r))}else Cc(t)?v(e,this.readNetworkLinksFromDocument(t)):v(e,this.readNetworkLinksFromNode(t));return e},e.prototype.readNetworkLinksFromDocument=function(t){for(var e=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&v(e,this.readNetworkLinksFromNode(r));return e},e.prototype.readNetworkLinksFromNode=function(t){for(var e=[],r=t.firstElementChild;r;r=r.nextElementSibling)if(g(cx,r.namespaceURI)&&"NetworkLink"==r.localName){var n=Uc({},fx,r,[]);e.push(n)}for(r=t.firstElementChild;r;r=r.nextElementSibling){var i=r.localName;!g(cx,r.namespaceURI)||"Document"!=i&&"Folder"!=i&&"kml"!=i||v(e,this.readNetworkLinksFromNode(r))}return e},e.prototype.readRegion=function(t){var e=[];if("string"==typeof t){var r=Pc(t);v(e,this.readRegionFromDocument(r))}else Cc(t)?v(e,this.readRegionFromDocument(t)):v(e,this.readRegionFromNode(t));return e},e.prototype.readRegionFromDocument=function(t){for(var e=[],r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&v(e,this.readRegionFromNode(r));return e},e.prototype.readRegionFromNode=function(t){for(var e=[],r=t.firstElementChild;r;r=r.nextElementSibling)if(g(cx,r.namespaceURI)&&"Region"==r.localName){var n=Uc({},gx,r,[]);e.push(n)}for(r=t.firstElementChild;r;r=r.nextElementSibling){var i=r.localName;!g(cx,r.namespaceURI)||"Document"!=i&&"Folder"!=i&&"kml"!=i||v(e,this.readRegionFromNode(r))}return e},e.prototype.writeFeaturesNode=function(t,e){e=this.adaptOptions(e);var r=Sc(cx[4],"kml"),n="http://www.w3.org/2000/xmlns/";r.setAttributeNS(n,"xmlns:gx",ux[0]),r.setAttributeNS(n,"xmlns:xsi",wc),r.setAttributeNS(wc,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");var i={node:r},o={};t.length>1?o.Document=t:1==t.length&&(o.Placemark=t[0]);var a=yx[r.namespaceURI],s=Dc(o,a);return Vc(i,mx,Nc,s,[e],a,this),r},e}(P_);function Rx(t){var e=Ec(t,!1),r=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(r){var n=r[1];return[parseInt(n.substr(6,2),16),parseInt(n.substr(4,2),16),parseInt(n.substr(2,2),16),parseInt(n.substr(0,2),16)/255]}}function Ix(t){var e=Ec(t,!1),r=[];e=e.replace(/\s*,\s*/g,",");for(var n,i=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i;n=i.exec(e);){var o=parseFloat(n[1]),a=parseFloat(n[2]),s=n[3]?parseFloat(n[3]):0;r.push(o,a,s),e=e.substr(n[0].length)}if(""===e)return r}function Lx(t){var e=Ec(t,!1).trim(),r=t.baseURI;return r&&"about:blank"!=r||(r=window.location.href),r?new URL(e,r).href:e}function Mx(t){var e=Ec(t,!1).trim().replace(/^(?!.*#)/,"#"),r=t.baseURI;return r&&"about:blank"!=r||(r=window.location.href),r?new URL(e,r).href:e}function Fx(t){return N_(t)}var Ax=Gc(cx,{Pair:function(t,e){var r=Uc({},uw,t,e,this);if(!r)return;var n=r.key;if(n&&"normal"==n){var i=r.styleUrl;i&&(e[e.length-1]=i);var o=r.Style;o&&(e[e.length-1]=o)}}});function kx(t,e){return Uc(void 0,Ax,t,e,this)}var jx=Gc(cx,{Icon:Fc((function(t,e){var r=Uc({},Wx,t,e);return r||null})),color:Fc(Rx),heading:Fc(N_),hotSpot:Fc((function(t){var e,r=t.getAttribute("xunits"),n=t.getAttribute("yunits");return e="insetPixels"!==r?"insetPixels"!==n?ip:ap:"insetPixels"!==n?op:sp,{x:parseFloat(t.getAttribute("x")),xunits:hx[r],y:parseFloat(t.getAttribute("y")),yunits:hx[n],origin:e}})),scale:Fc(Fx)});var Nx=Gc(cx,{color:Fc(Rx),scale:Fc(Fx)});var Dx=Gc(cx,{color:Fc(Rx),width:Fc(N_)});var Gx=Gc(cx,{color:Fc(Rx),fill:Fc(A_),outline:Fc(A_)});var zx=Gc(cx,{coordinates:Lc(Ix)});function Ux(t,e){return Uc(null,zx,t,e)}var Bx=Gc(ux,{Track:Ic(Yx)});var Vx=Gc(cx,{when:function(t,e){var r=e[e.length-1].whens,n=Ec(t,!1),i=Date.parse(n);r.push(isNaN(i)?0:i)}},Gc(ux,{coord:function(t,e){var r=e[e.length-1].flatCoordinates,n=Ec(t,!1),i=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(n);if(i){var o=parseFloat(i[1]),a=parseFloat(i[2]),s=parseFloat(i[3]);r.push(o,a,s,0)}else r.push(0,0,0,0)}}));function Yx(t,e){var r=Uc({flatCoordinates:[],whens:[]},Vx,t,e);if(r){for(var n=r.flatCoordinates,i=r.whens,o=0,a=Math.min(n.length,i.length);o0,c=l.href;c?n=c:u&&(n=Hb);var h,p=ip,f=r.hotSpot;f?(i=[f.x,f.y],o=f.xunits,a=f.yunits,p=f.origin):n===Hb?(i=qb,o=Xb,a=Zb):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(n)&&(i=[.5,0],o=rp,a=rp);var d,g=l.x,y=l.y;void 0!==g&&void 0!==y&&(h=[g,y]);var m,v=l.w,_=l.h;void 0!==v&&void 0!==_&&(d=[v,_]);var b=r.heading;void 0!==b&&(m=Ye(b));var x=r.scale,w=r.color;if(u){n==Hb&&(d=Kb,void 0===x&&(x=$b));var S=new dp({anchor:i,anchorOrigin:p,anchorXUnits:o,anchorYUnits:a,crossOrigin:this.crossOrigin_,offset:h,offsetOrigin:ip,rotation:m,scale:x,size:d,src:this.iconUrlFunction_(n),color:w});s.imageStyle=S}else s.imageStyle=_x}},LabelStyle:function(t,e){var r=Uc({},Nx,t,e);if(r){var n=e[e.length-1],i=new Tp({fill:new ep({color:"color"in r?r.color:Wb}),scale:r.scale});n.textStyle=i}},LineStyle:function(t,e){var r=Uc({},Dx,t,e);if(r){var n=e[e.length-1],i=new gp({color:"color"in r?r.color:Wb,width:"width"in r?r.width:1});n.strokeStyle=i}},PolyStyle:function(t,e){var r=Uc({},Gx,t,e);if(r){var n=e[e.length-1],i=new ep({color:"color"in r?r.color:Wb});n.fillStyle=i;var o=r.fill;void 0!==o&&(n.fill=o);var a=r.outline;void 0!==a&&(n.outline=a)}}});function nw(t,e){var r=Uc({},rw,t,e,this);if(!r)return null;var n,i="fillStyle"in r?r.fillStyle:vx,o=r.fill;void 0===o||o||(i=null),"imageStyle"in r?r.imageStyle!=_x&&(n=r.imageStyle):n=bx;var a="textStyle"in r?r.textStyle:Sx,s="strokeStyle"in r?r.strokeStyle:wx,l=r.outline;return void 0===l||l?[new wp({fill:i,image:n,stroke:s,text:a,zIndex:void 0})]:[new wp({geometry:function(t){var e=t.getGeometry(),r=e.getType();return r===bt.GEOMETRY_COLLECTION?new Vm(e.getGeometriesArrayRecursive().filter((function(t){var e=t.getType();return e!==bt.POLYGON&&e!==bt.MULTI_POLYGON}))):r!==bt.POLYGON&&r!==bt.MULTI_POLYGON?e:void 0},fill:i,image:n,stroke:s,text:a,zIndex:void 0}),new wp({geometry:function(t){var e=t.getGeometry(),r=e.getType();return r===bt.GEOMETRY_COLLECTION?new Vm(e.getGeometriesArrayRecursive().filter((function(t){var e=t.getType();return e===bt.POLYGON||e===bt.MULTI_POLYGON}))):r===bt.POLYGON||r===bt.MULTI_POLYGON?e:void 0},fill:i,stroke:null,zIndex:void 0})]}function iw(t,e){var r,n,i,o=e.length,a=new Array(e.length),s=new Array(e.length),l=new Array(e.length);r=!1,n=!1,i=!1;for(var u=0;u0){var m=Dc(i,a);Vc(n,Gw,Uw,[{names:a,values:m}],r)}var v=r[0],_=e.getGeometry();_&&(_=Wy(_,!0,v)),Vc(n,Gw,Iw,[_],r)}var Vw=Gc(cx,["extrude","tessellate","altitudeMode","coordinates"]),Yw=Gc(cx,{extrude:Ac(B_),tessellate:Ac(B_),altitudeMode:Ac(X_),coordinates:Ac((function(t,e,r){var n,i=r[r.length-1],o=i.layout,a=i.stride;o==yt||o==vt?n=2:o==mt||o==_t?n=3:pt(!1,34);var s=e.length,l="";if(s>0){l+=e[0];for(var u=1;u>1):i>>1}return e}function NS(t){for(var e="",r=0,n=t.length;r=32;)e=63+(32|31&t),r+=String.fromCharCode(e),t>>=5;return e=t+63,r+=String.fromCharCode(e)}var zS=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.dataProjection=Gr("EPSG:4326"),r.factor_=n.factor?n.factor:1e5,r.geometryLayout_=n.geometryLayout?n.geometryLayout:yt,r}return IS(e,t),e.prototype.readFeatureFromText=function(t,e){var r=this.readGeometryFromText(t,e);return new gt(r)},e.prototype.readFeaturesFromText=function(t,e){return[this.readFeatureFromText(t,e)]},e.prototype.readGeometryFromText=function(t,e){var r=yn(this.geometryLayout_),n=MS(t,r,this.factor_);v_(n,0,n.length,r,n);var i=Nn(n,0,n.length,r);return Wy(new Py(i,this.geometryLayout_),!1,this.adaptOptions(e))},e.prototype.writeFeatureText=function(t,e){var r=t.getGeometry();return r?this.writeGeometryText(r,e):(pt(!1,40),"")},e.prototype.writeFeaturesText=function(t,e){return this.writeFeatureText(t[0],e)},e.prototype.writeGeometryText=function(t,e){var r=(t=Wy(t,!0,this.adaptOptions(e))).getFlatCoordinates(),n=t.getStride();return v_(r,0,r.length,n,r),LS(r,n,this.factor_)},e}(Jb),US=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),BS=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.layerName_=n.layerName,r.layers_=n.layers?n.layers:null,r.dataProjection=Gr(n.dataProjection?n.dataProjection:"EPSG:4326"),r}return US(e,t),e.prototype.readFeaturesFromObject=function(t,e){if("Topology"==t.type){var r=t,n=void 0,i=null,o=null;r.transform&&(i=(n=r.transform).scale,o=n.translate);var a=r.arcs;n&&function(t,e,r){for(var n=0,i=t.length;n0&&i.pop(),n=r>=0?e[r]:e[~r].slice().reverse(),i.push.apply(i,n);for(var s=0,l=i.length;s=2,57),n}return $S(e,t),e}(HS),QS=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),tE=function(t){function e(e){return t.call(this,"And",Array.prototype.slice.call(arguments))||this}return QS(e,t),e}(JS),eE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),rE=function(t){function e(e,r,n){var i=t.call(this,"BBOX")||this;if(i.geometryName=e,i.extent=r,4!==r.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");return i.srsName=n,i}return eE(e,t),e}(HS),nE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),iE=function(t){function e(e,r,n,i){var o=t.call(this,e)||this;return o.geometryName=r||"the_geom",o.geometry=n,o.srsName=i,o}return nE(e,t),e}(HS),oE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),aE=function(t){function e(e,r,n){return t.call(this,"Contains",e,r,n)||this}return oE(e,t),e}(iE),sE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),lE=function(t){function e(e,r,n,i,o){var a=t.call(this,"DWithin",e,r,o)||this;return a.distance=n,a.unit=i,a}return sE(e,t),e}(iE),uE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),cE=function(t){function e(e,r,n){return t.call(this,"Disjoint",e,r,n)||this}return uE(e,t),e}(iE),hE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),pE=function(t){function e(e,r){var n=t.call(this,e)||this;return n.propertyName=r,n}return hE(e,t),e}(HS),fE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),dE=function(t){function e(e,r,n){var i=t.call(this,"During",e)||this;return i.begin=r,i.end=n,i}return fE(e,t),e}(pE),gE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),yE=function(t){function e(e,r,n,i){var o=t.call(this,e,r)||this;return o.expression=n,o.matchCase=i,o}return gE(e,t),e}(pE),mE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),vE=function(t){function e(e,r,n){return t.call(this,"PropertyIsEqualTo",e,r,n)||this}return mE(e,t),e}(yE),_E=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),bE=function(t){function e(e,r){return t.call(this,"PropertyIsGreaterThan",e,r)||this}return _E(e,t),e}(yE),xE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),wE=function(t){function e(e,r){return t.call(this,"PropertyIsGreaterThanOrEqualTo",e,r)||this}return xE(e,t),e}(yE),SE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),EE=function(t){function e(e,r,n){return t.call(this,"Intersects",e,r,n)||this}return SE(e,t),e}(iE),TE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),CE=function(t){function e(e,r,n){var i=t.call(this,"PropertyIsBetween",e)||this;return i.lowerBoundary=r,i.upperBoundary=n,i}return TE(e,t),e}(pE),OE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),PE=function(t){function e(e,r,n,i,o,a){var s=t.call(this,"PropertyIsLike",e)||this;return s.pattern=r,s.wildCard=void 0!==n?n:"*",s.singleChar=void 0!==i?i:".",s.escapeChar=void 0!==o?o:"!",s.matchCase=a,s}return OE(e,t),e}(pE),RE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),IE=function(t){function e(e){return t.call(this,"PropertyIsNull",e)||this}return RE(e,t),e}(pE),LE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),ME=function(t){function e(e,r){return t.call(this,"PropertyIsLessThan",e,r)||this}return LE(e,t),e}(yE),FE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),AE=function(t){function e(e,r){return t.call(this,"PropertyIsLessThanOrEqualTo",e,r)||this}return FE(e,t),e}(yE),kE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),jE=function(t){function e(e){var r=t.call(this,"Not")||this;return r.condition=e,r}return kE(e,t),e}(HS),NE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),DE=function(t){function e(e,r,n){return t.call(this,"PropertyIsNotEqualTo",e,r,n)||this}return NE(e,t),e}(yE),GE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),zE=function(t){function e(e){return t.call(this,"Or",Array.prototype.slice.call(arguments))||this}return GE(e,t),e}(JS),UE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),BE=function(t){function e(e){var r=t.call(this,"ResourceId")||this;return r.rid=e,r}return UE(e,t),e}(HS),VE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),YE=function(t){function e(e,r,n){return t.call(this,"Within",e,r,n)||this}return VE(e,t),e}(iE);function WE(t){var e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(tE,e))}function qE(t,e,r){return new rE(t,e,r)}var XE=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),ZE={"http://www.opengis.net/gml":{boundedBy:Fc(F_.prototype.readGeometryElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:Ic(F_.prototype.readFeaturesInternal)}},KE={"http://www.opengis.net/wfs":{totalInserted:Fc(G_),totalUpdated:Fc(G_),totalDeleted:Fc(G_)},"http://www.opengis.net/wfs/2.0":{totalInserted:Fc(G_),totalUpdated:Fc(G_),totalDeleted:Fc(G_)}},HE={"http://www.opengis.net/wfs":{TransactionSummary:Fc(sT,"transactionSummary"),InsertResults:Fc(hT,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:Fc(sT,"transactionSummary"),InsertResults:Fc(hT,"insertIds")}},$E={"http://www.opengis.net/wfs":{PropertyName:Ac(X_)},"http://www.opengis.net/wfs/2.0":{PropertyName:Ac(X_)}},JE={"http://www.opengis.net/wfs":{Insert:Ac(pT),Update:Ac(yT),Delete:Ac(gT),Property:Ac(mT),Native:Ac(vT)},"http://www.opengis.net/wfs/2.0":{Insert:Ac(pT),Update:Ac(yT),Delete:Ac(gT),Property:Ac(mT),Native:Ac(vT)}},QE="http://www.w3.org/2000/xmlns/",tT={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},eT={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},rT={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},nT={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},iT={"2.0.0":ab,"1.1.0":eb,"1.0.0":$_},oT=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.version_=n.version?n.version:"1.1.0",r.featureType_=n.featureType,r.featureNS_=n.featureNS,r.gmlFormat_=n.gmlFormat?n.gmlFormat:new iT[r.version_],r.schemaLocation_=n.schemaLocation?n.schemaLocation:nT[r.version_],r}return XE(e,t),e.prototype.getFeatureType=function(){return this.featureType_},e.prototype.setFeatureType=function(t){this.featureType_=t},e.prototype.readFeaturesFromNode=function(t,e){var r={node:t};O(r,{featureType:this.featureType_,featureNS:this.featureNS_}),O(r,this.getReadOptions(t,e||{}));var n=[r],i=Uc([],"2.0.0"===this.version_?ZE:this.gmlFormat_.FEATURE_COLLECTION_PARSERS,t,n,this.gmlFormat_);return i||(i=[]),i},e.prototype.readTransactionResponse=function(t){if(t){if("string"==typeof t){var e=Pc(t);return this.readTransactionResponseFromDocument(e)}return Cc(t)?this.readTransactionResponseFromDocument(t):this.readTransactionResponseFromNode(t)}},e.prototype.readFeatureCollectionMetadata=function(t){if(t){if("string"==typeof t){var e=Pc(t);return this.readFeatureCollectionMetadataFromDocument(e)}return Cc(t)?this.readFeatureCollectionMetadataFromDocument(t):this.readFeatureCollectionMetadataFromNode(t)}},e.prototype.readFeatureCollectionMetadataFromDocument=function(t){for(var e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readFeatureCollectionMetadataFromNode(e)},e.prototype.readFeatureCollectionMetadataFromNode=function(t){var e={},r=z_(t.getAttribute("numberOfFeatures"));return e.numberOfFeatures=r,Uc(e,ZE,t,[],this.gmlFormat_)},e.prototype.readTransactionResponseFromDocument=function(t){for(var e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readTransactionResponseFromNode(e)},e.prototype.readTransactionResponseFromNode=function(t){return Uc({},HE,t,[])},e.prototype.writeGetFeature=function(t){var e=this,r=Sc(eT[this.version_],"GetFeature");r.setAttribute("service","WFS"),r.setAttribute("version",this.version_),t.handle&&r.setAttribute("handle",t.handle),t.outputFormat&&r.setAttribute("outputFormat",t.outputFormat),void 0!==t.maxFeatures&&r.setAttribute("maxFeatures",String(t.maxFeatures)),t.resultType&&r.setAttribute("resultType",t.resultType),void 0!==t.startIndex&&r.setAttribute("startIndex",String(t.startIndex)),void 0!==t.count&&r.setAttribute("count",String(t.count)),void 0!==t.viewParams&&r.setAttribute("viewParams",t.viewParams),r.setAttributeNS(wc,"xsi:schemaLocation",this.schemaLocation_);var n={node:r};if(O(n,{version:this.version_,srsName:t.srsName,featureNS:t.featureNS?t.featureNS:this.featureNS_,featurePrefix:t.featurePrefix,propertyNames:t.propertyNames?t.propertyNames:[]}),pt(Array.isArray(t.featureTypes),11),"string"==typeof t.featureTypes[0]){var i=t.filter;t.bbox&&(pt(t.geometryName,12),i=this.combineBboxAndFilter(t.geometryName,t.bbox,t.srsName,i)),O(n,{geometryName:t.geometryName,filter:i}),jT(r,t.featureTypes,[n])}else t.featureTypes.forEach((function(i){var o=e.combineBboxAndFilter(i.geometryName,i.bbox,t.srsName,t.filter);O(n,{geometryName:i.geometryName,filter:o}),jT(r,[i.name],[n])}));return r},e.prototype.combineBboxAndFilter=function(t,e,r,n){var i=qE(t,e,r);return n?WE(n,i):i},e.prototype.writeTransaction=function(t,e,r,n){var i,o=[],a=n.version?n.version:this.version_,s=Sc(eT[a],"Transaction");s.setAttribute("service","WFS"),s.setAttribute("version",a),n&&(i=n.gmlOptions?n.gmlOptions:{},n.handle&&s.setAttribute("handle",n.handle)),s.setAttributeNS(wc,"xsi:schemaLocation",nT[a]);var l=function(t,e,r,n){var i,o=n.featurePrefix?n.featurePrefix:"feature";"1.0.0"===r?i=2:"1.1.0"===r?i=3:"2.0.0"===r&&(i=3.2);return O({node:t},{version:r,featureNS:n.featureNS,featureType:n.featureType,featurePrefix:o,gmlVersion:i,hasZ:n.hasZ,srsName:n.srsName},e)}(s,i,a,n);return t&&aT("Insert",t,o,l),e&&aT("Update",e,o,l),r&&aT("Delete",r,o,l),n.nativeElements&&aT("Native",n.nativeElements,o,l),s},e.prototype.readProjectionFromDocument=function(t){for(var e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null},e.prototype.readProjectionFromNode=function(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(var e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){var r=[{}];return this.gmlFormat_.readGeometryElement(e,r),Gr(r.pop().srsName)}return null},e}(P_);function aT(t,e,r,n){Vc(n,JE,jc(t),e,r)}function sT(t,e){return Uc({},KE,t,e)}var lT={"http://www.opengis.net/ogc":{FeatureId:Ic((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:Ic((function(t,e){return t.getAttribute("fid")}))}};function uT(t,e){zc(lT,t,e)}var cT={"http://www.opengis.net/wfs":{Feature:uT},"http://www.opengis.net/wfs/2.0":{Feature:uT}};function hT(t,e){return Uc([],cT,t,e)}function pT(t,e,r){var n=r[r.length-1],i=n.featureType,o=n.featureNS,a=n.gmlVersion,s=Sc(o,i);t.appendChild(s),2===a?$_.prototype.writeFeatureElement(s,e,r):3===a?eb.prototype.writeFeatureElement(s,e,r):ab.prototype.writeFeatureElement(s,e,r)}function fT(t,e,r){var n=r[r.length-1].version,i=tT[n],o=Sc(i,"Filter"),a=Sc(i,"FeatureId");o.appendChild(a),a.setAttribute("fid",e),t.appendChild(o)}function dT(t,e){var r=(t=t||"feature")+":";return 0===e.indexOf(r)?e:r+e}function gT(t,e,r){var n=r[r.length-1];pt(void 0!==e.getId(),26);var i=n.featureType,o=n.featurePrefix,a=n.featureNS,s=dT(o,i);t.setAttribute("typeName",s),t.setAttributeNS(QE,"xmlns:"+o,a);var l=e.getId();void 0!==l&&fT(t,l,r)}function yT(t,e,r){var n=r[r.length-1];pt(void 0!==e.getId(),27);var i=n.version,o=n.featureType,a=n.featurePrefix,s=n.featureNS,l=dT(a,o),u=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(QE,"xmlns:"+a,s);var c=e.getId();if(void 0!==c){for(var h=e.getKeys(),p=[],f=0,d=h.length;f="a"&&t<="z"||t>="A"&&t<="Z"},t.prototype.isNumeric_=function(t,e){return t>="0"&&t<="9"||"."==t&&!(void 0!==e&&e)},t.prototype.isWhiteSpace_=function(t){return" "==t||"\t"==t||"\r"==t||"\n"==t},t.prototype.nextChar_=function(){return this.wkt.charAt(++this.index_)},t.prototype.nextToken=function(){var t,e=this.nextChar_(),r=this.index_,n=e;if("("==e)t=BT;else if(","==e)t=WT;else if(")"==e)t=VT;else if(this.isNumeric_(e)||"-"==e)t=YT,n=this.readNumber_();else if(this.isAlpha_(e))t=UT,n=this.readText_();else{if(this.isWhiteSpace_(e))return this.nextToken();if(""!==e)throw new Error("Unexpected character: "+e);t=qT}return{position:r,value:n,type:t}},t.prototype.readNumber_=function(){var t,e=this.index_,r=!1,n=!1;do{"."==t?r=!0:"e"!=t&&"E"!=t||(n=!0),t=this.nextChar_()}while(this.isNumeric_(t,r)||!n&&("e"==t||"E"==t)||n&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))},t.prototype.readText_=function(){var t,e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()},t}(),HT=function(){function t(t){this.lexer_=t,this.token_,this.layout_=yt}return t.prototype.consume_=function(){this.token_=this.lexer_.nextToken()},t.prototype.isTokenType=function(t){return this.token_.type==t},t.prototype.match=function(t){var e=this.isTokenType(t);return e&&this.consume_(),e},t.prototype.parse=function(){return this.consume_(),this.parseGeometry_()},t.prototype.parseGeometryLayout_=function(){var t=yt,e=this.token_;if(this.isTokenType(UT)){var r=e.value;"Z"===r?t=mt:"M"===r?t=vt:"ZM"===r&&(t=_t),t!==yt&&this.consume_()}return t},t.prototype.parseGeometryCollectionText_=function(){if(this.match(BT)){var t=[];do{t.push(this.parseGeometry_())}while(this.match(WT));if(this.match(VT))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())},t.prototype.parsePointText_=function(){if(this.match(BT)){var t=this.parsePoint_();if(this.match(VT))return t}else if(this.isEmptyGeometry_())return null;throw new Error(this.formatErrorMessage_())},t.prototype.parseLineStringText_=function(){if(this.match(BT)){var t=this.parsePointList_();if(this.match(VT))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())},t.prototype.parsePolygonText_=function(){if(this.match(BT)){var t=this.parseLineStringTextList_();if(this.match(VT))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())},t.prototype.parseMultiPointText_=function(){if(this.match(BT)){var t=void 0;if(t=this.token_.type==BT?this.parsePointTextList_():this.parsePointList_(),this.match(VT))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())},t.prototype.parseMultiLineStringText_=function(){if(this.match(BT)){var t=this.parseLineStringTextList_();if(this.match(VT))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())},t.prototype.parseMultiPolygonText_=function(){if(this.match(BT)){var t=this.parsePolygonTextList_();if(this.match(VT))return t}else if(this.isEmptyGeometry_())return[];throw new Error(this.formatErrorMessage_())},t.prototype.parsePoint_=function(){for(var t=[],e=this.layout_.length,r=0;r0&&(e+=" "+n)}return 0===r.length?e+" EMPTY":e+"("+r+")"}var nC=$T,iC=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),oC=[null,"http://www.opengis.net/wms"],aC=Gc(oC,{Service:Fc((function(t,e){return Uc({},uC,t,e)})),Capability:Fc((function(t,e){return Uc({},sC,t,e)}))}),sC=Gc(oC,{Request:Fc((function(t,e){return Uc({},mC,t,e)})),Exception:Fc((function(t,e){return Uc([],fC,t,e)})),Layer:Fc((function(t,e){var r=Uc({},dC,t,e);if(void 0===r.Layer)return Object.assign(r,EC(t,e));return r}))}),lC=function(t){function e(){var e=t.call(this)||this;return e.version=void 0,e}return iC(e,t),e.prototype.readFromNode=function(t){this.version=t.getAttribute("version").trim();var e=Uc({version:this.version},aC,t,[]);return e||null},e}(cS),uC=Gc(oC,{Name:Fc(U_),Title:Fc(U_),Abstract:Fc(U_),KeywordList:Fc(PC),OnlineResource:Fc(hS),ContactInformation:Fc((function(t,e){return Uc({},cC,t,e)})),Fees:Fc(U_),AccessConstraints:Fc(U_),LayerLimit:Fc(G_),MaxWidth:Fc(G_),MaxHeight:Fc(G_)}),cC=Gc(oC,{ContactPersonPrimary:Fc((function(t,e){return Uc({},hC,t,e)})),ContactPosition:Fc(U_),ContactAddress:Fc((function(t,e){return Uc({},pC,t,e)})),ContactVoiceTelephone:Fc(U_),ContactFacsimileTelephone:Fc(U_),ContactElectronicMailAddress:Fc(U_)}),hC=Gc(oC,{ContactPerson:Fc(U_),ContactOrganization:Fc(U_)}),pC=Gc(oC,{AddressType:Fc(U_),Address:Fc(U_),City:Fc(U_),StateOrProvince:Fc(U_),PostCode:Fc(U_),Country:Fc(U_)}),fC=Gc(oC,{Format:Ic(U_)}),dC=Gc(oC,{Name:Fc(U_),Title:Fc(U_),Abstract:Fc(U_),KeywordList:Fc(PC),CRS:Mc(U_),EX_GeographicBoundingBox:Fc((function(t,e){var r=Uc({},yC,t,e);if(!r)return;var n=r.westBoundLongitude,i=r.southBoundLatitude,o=r.eastBoundLongitude,a=r.northBoundLatitude;if(void 0===n||void 0===i||void 0===o||void 0===a)return;return[n,i,o,a]})),BoundingBox:Mc((function(t,e){var r=[D_(t.getAttribute("minx")),D_(t.getAttribute("miny")),D_(t.getAttribute("maxx")),D_(t.getAttribute("maxy"))],n=[D_(t.getAttribute("resx")),D_(t.getAttribute("resy"))];return{crs:t.getAttribute("CRS"),extent:r,res:n}})),Dimension:Mc((function(t,e){return{name:t.getAttribute("name"),units:t.getAttribute("units"),unitSymbol:t.getAttribute("unitSymbol"),default:t.getAttribute("default"),multipleValues:k_(t.getAttribute("multipleValues")),nearestValue:k_(t.getAttribute("nearestValue")),current:k_(t.getAttribute("current")),values:U_(t)}})),Attribution:Fc((function(t,e){return Uc({},gC,t,e)})),AuthorityURL:Mc((function(t,e){var r=TC(t,e);if(r)return r.name=t.getAttribute("name"),r;return})),Identifier:Mc(U_),MetadataURL:Mc((function(t,e){var r=TC(t,e);if(r)return r.type=t.getAttribute("type"),r;return})),DataURL:Mc(TC),FeatureListURL:Mc(TC),Style:Mc((function(t,e){return Uc({},xC,t,e)})),MinScaleDenominator:Fc(N_),MaxScaleDenominator:Fc(N_),Layer:Mc(EC)}),gC=Gc(oC,{Title:Fc(U_),OnlineResource:Fc(hS),LogoURL:Fc(OC)}),yC=Gc(oC,{westBoundLongitude:Fc(N_),eastBoundLongitude:Fc(N_),southBoundLatitude:Fc(N_),northBoundLatitude:Fc(N_)}),mC=Gc(oC,{GetCapabilities:Fc(CC),GetMap:Fc(CC),GetFeatureInfo:Fc(CC)}),vC=Gc(oC,{Format:Mc(U_),DCPType:Mc((function(t,e){return Uc({},_C,t,e)}))}),_C=Gc(oC,{HTTP:Fc((function(t,e){return Uc({},bC,t,e)}))}),bC=Gc(oC,{Get:Fc(TC),Post:Fc(TC)}),xC=Gc(oC,{Name:Fc(U_),Title:Fc(U_),Abstract:Fc(U_),LegendURL:Mc(OC),StyleSheetURL:Fc(TC),StyleURL:Fc(TC)}),wC=Gc(oC,{Format:Fc(U_),OnlineResource:Fc(hS)}),SC=Gc(oC,{Keyword:Ic(U_)});function EC(t,e){var r=e[e.length-1],n=Uc({},dC,t,e);if(n){var i=k_(t.getAttribute("queryable"));void 0===i&&(i=r.queryable),n.queryable=void 0!==i&&i;var o=z_(t.getAttribute("cascaded"));void 0===o&&(o=r.cascaded),n.cascaded=o;var a=k_(t.getAttribute("opaque"));void 0===a&&(a=r.opaque),n.opaque=void 0!==a&&a;var s=k_(t.getAttribute("noSubsets"));void 0===s&&(s=r.noSubsets),n.noSubsets=void 0!==s&&s;var l=D_(t.getAttribute("fixedWidth"));l||(l=r.fixedWidth),n.fixedWidth=l;var u=D_(t.getAttribute("fixedHeight"));u||(u=r.fixedHeight),n.fixedHeight=u;["Style","CRS","AuthorityURL"].forEach((function(t){if(t in r){var e=n[t]||[];n[t]=e.concat(r[t])}}));return["EX_GeographicBoundingBox","BoundingBox","Dimension","Attribution","MinScaleDenominator","MaxScaleDenominator"].forEach((function(t){if(!(t in n)){var e=r[t];n[t]=e}})),n}}function TC(t,e){return Uc({},wC,t,e)}function CC(t,e){return Uc({},vC,t,e)}function OC(t,e){var r=TC(t,e);if(r){var n=[z_(t.getAttribute("width")),z_(t.getAttribute("height"))];return r.size=n,r}}function PC(t,e){return Uc([],SC,t,e)}var RC=lC,IC=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),LC=function(t){function e(e){var r=t.call(this)||this,n=e||{};return r.featureNS_="http://mapserver.gis.umn.edu/mapserver",r.gmlFormat_=new $_,r.layers_=n.layers?n.layers:null,r}return IC(e,t),e.prototype.getLayers=function(){return this.layers_},e.prototype.setLayers=function(t){this.layers_=t},e.prototype.readFeatures_=function(t,e){t.setAttribute("namespaceURI",this.featureNS_);var r=t.localName,n=[];if(0===t.childNodes.length)return n;if("msGMLOutput"==r)for(var i=0,o=t.childNodes.length;i.75*c||u>.75*h?this.resetExtent_():te(o,n)||this.recenter_()}}},e.prototype.resetExtent_=function(){var t=this.getMap(),e=this.ovmap_,r=t.getSize(),n=t.getView().calculateExtentInternal(r),i=e.getView(),o=Math.log(7.5)/Math.LN2;Me(n,1/(.1*Math.pow(2,o/2))),i.fitInternal(gi(n))},e.prototype.recenter_=function(){var t=this.getMap(),e=this.ovmap_,r=t.getView();e.getView().setCenterInternal(r.getCenterInternal())},e.prototype.updateBox_=function(){var t=this.getMap(),e=this.ovmap_;if(t.isRendered()&&e.isRendered()){var r=t.getSize(),n=t.getView(),i=e.getView(),o=this.rotateWithView_?0:-n.getRotation(),a=this.boxOverlay_,s=this.boxOverlay_.getElement(),l=n.getCenterInternal(),u=n.getResolution(),c=i.getResolution(),h=r[0]*u/c,p=r[1]*u/c;if(a.setPosition(l),s){s.style.width=h+"px",s.style.height=p+"px";var f="rotate("+o+"rad)";s.style.transform=f}}},e.prototype.handleClick_=function(t){t.preventDefault(),this.handleToggle_()},e.prototype.handleToggle_=function(){this.element.classList.toggle("ol-collapsed"),this.collapsed_?po(this.collapseLabel_,this.label_):po(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;var t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),K(t,qa,(function(t){this.updateBox_()}),this)}},e.prototype.getCollapsible=function(){return this.collapsible_},e.prototype.setCollapsible=function(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())},e.prototype.setCollapsed=function(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()},e.prototype.getCollapsed=function(){return this.collapsed_},e.prototype.getRotateWithView=function(){return this.rotateWithView_},e.prototype.setRotateWithView=function(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))},e.prototype.getOverviewMap=function(){return this.ovmap_},e.prototype.render=function(t){this.validateExtent_(),this.updateBox_()},e}(As),lO=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),uO="degrees",cO="imperial",hO="nautical",pO="metric",fO="us",dO=[1,2,5],gO=function(t){function e(e){var r=this,n=e||{},i=void 0!==n.className?n.className:n.bar?"ol-scale-bar":"ol-scale-line";return(r=t.call(this,{element:document.createElement("div"),render:n.render,target:n.target})||this).innerElement_=document.createElement("div"),r.innerElement_.className=i+"-inner",r.element.className=i+" ol-unselectable",r.element.appendChild(r.innerElement_),r.viewState_=null,r.minWidth_=void 0!==n.minWidth?n.minWidth:64,r.renderedVisible_=!1,r.renderedWidth_=void 0,r.renderedHTML_="",r.addEventListener(it("units"),r.handleUnitsChanged_),r.setUnits(n.units||pO),r.scaleBar_=n.bar||!1,r.scaleBarSteps_=n.steps||4,r.scaleBarText_=n.text||!1,r.dpi_=n.dpi||void 0,r}return lO(e,t),e.prototype.getUnits=function(){return this.get("units")},e.prototype.handleUnitsChanged_=function(){this.updateElement_()},e.prototype.setUnits=function(t){this.set("units",t)},e.prototype.setDpi=function(t){this.dpi_=t},e.prototype.updateElement_=function(){var t=this.viewState_;if(t){var e=t.center,r=t.projection,n=this.getUnits(),i=n==uO?St.DEGREES:St.METERS,o=zr(r,t.resolution,e,i),a=this.minWidth_*(this.dpi_||25.4/.28)/(25.4/.28),s=a*o,l="";if(n==uO){var u=wt[St.DEGREES];(s*=u)=a)break;++d}f=this.scaleBar_?this.createScaleBar(h,c,l):c.toFixed(p<0?-p:0)+" "+l,this.renderedHTML_!=f&&(this.innerElement_.innerHTML=f,this.renderedHTML_=f),this.renderedWidth_!=h&&(this.innerElement_.style.width=h+"px",this.renderedWidth_=h),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}else this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1)},e.prototype.createScaleBar=function(t,e,r){for(var n="1 : "+Math.round(this.getScaleForResolution()).toLocaleString(),i=[],o=t/this.scaleBarSteps_,a="#ffffff",s=0;s
'+this.createMarker("relative",s)+(s%2==0||2===this.scaleBarSteps_?this.createStepText(s,t,!1,e,r):"")+""),s===this.scaleBarSteps_-1&&i.push(this.createStepText(s+1,t,!0,e,r)),a="#ffffff"===a?"#000000":"#ffffff";return'
'+(this.scaleBarText_?'
'+n+"
":"")+i.join("")+"
"},e.prototype.createMarker=function(t,e){return'
'},e.prototype.createStepText=function(t,e,r,n,i){var o=(0===t?0:Math.round(n/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+i);return'
'+o+"
"},e.prototype.getScaleForResolution=function(){var t=zr(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center),e=this.dpi_||25.4/.28,r=this.viewState_.projection.getMetersPerUnit();return parseFloat(t.toString())*r*(1e3/25.4)*e},e.prototype.render=function(t){var e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()},e}(As),yO=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),mO=0,vO=1,_O=function(t){function e(e){var r=this,n=e||{};(r=t.call(this,{element:document.createElement("div"),render:n.render})||this).dragListenerKeys_=[],r.currentResolution_=void 0,r.direction_=mO,r.dragging_,r.heightLimit_=0,r.widthLimit_=0,r.startX_,r.startY_,r.thumbSize_=null,r.sliderInitialized_=!1,r.duration_=void 0!==n.duration?n.duration:200;var i=void 0!==n.className?n.className:"ol-zoomslider",o=document.createElement("button");o.setAttribute("type","button"),o.className=i+"-thumb ol-unselectable";var a=r.element;return a.className=i+" ol-unselectable ol-control",a.appendChild(o),a.addEventListener(Ua,r.handleDraggerStart_.bind(r),!1),a.addEventListener(za,r.handleDraggerDrag_.bind(r),!1),a.addEventListener(Ba,r.handleDraggerEnd_.bind(r),!1),a.addEventListener(N,r.handleContainerClick_.bind(r),!1),o.addEventListener(N,u,!1),r}return yO(e,t),e.prototype.setMap=function(e){t.prototype.setMap.call(this,e),e&&e.render()},e.prototype.initSlider_=function(){var t=this.element,e=t.offsetWidth,r=t.offsetHeight;if(0===e&&0===r)return this.sliderInitialized_=!1;var n=t.firstElementChild,i=getComputedStyle(n),o=n.offsetWidth+parseFloat(i.marginRight)+parseFloat(i.marginLeft),a=n.offsetHeight+parseFloat(i.marginTop)+parseFloat(i.marginBottom);return this.thumbSize_=[o,a],e>r?(this.direction_=vO,this.widthLimit_=e-o):(this.direction_=mO,this.heightLimit_=r-a),this.sliderInitialized_=!0},e.prototype.handleContainerClick_=function(t){var e=this.getMap().getView(),r=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),n=this.getResolutionForPosition_(r),i=e.getConstrainedZoom(e.getZoomForResolution(n));e.animateInternal({zoom:i,duration:this.duration_,easing:io})},e.prototype.handleDraggerStart_=function(t){if(!this.dragging_&&t.target===this.element.firstElementChild){var e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){var r=this.handleDraggerDrag_,n=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(Z(i,za,r,this),Z(i,Ba,n,this))}}},e.prototype.handleDraggerDrag_=function(t){if(this.dragging_){var e=t.clientX-this.startX_,r=t.clientY-this.startY_,n=this.getRelativePosition_(e,r);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_)}},e.prototype.handleDraggerEnd_=function(t){this.dragging_&&(this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(H),this.dragListenerKeys_.length=0)},e.prototype.setThumbPosition_=function(t){var e=this.getPositionForResolution_(t),r=this.element.firstElementChild;this.direction_==vO?r.style.left=this.widthLimit_*e+"px":r.style.top=this.heightLimit_*e+"px"},e.prototype.getRelativePosition_=function(t,e){return Ne(this.direction_===vO?t/this.widthLimit_:e/this.heightLimit_,0,1)},e.prototype.getResolutionForPosition_=function(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)},e.prototype.getPositionForResolution_=function(t){return Ne(1-this.getMap().getView().getValueForResolutionFunction()(t),0,1)},e.prototype.render=function(t){if(t.frameState&&(this.sliderInitialized_||this.initSlider_())){var e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}},e}(As),bO=function(){var t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(e,r)};return function(e,r){function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),xO=function(t){function e(e){var r=this,n=e||{};(r=t.call(this,{element:document.createElement("div"),target:n.target})||this).extent=n.extent?n.extent:null;var i=void 0!==n.className?n.className:"ol-zoom-extent",o=void 0!==n.label?n.label:"E",a=void 0!==n.tipLabel?n.tipLabel:"Fit to extent",s=document.createElement("button");s.setAttribute("type","button"),s.title=a,s.appendChild("string"==typeof o?document.createTextNode(o):o),s.addEventListener(N,r.handleClick_.bind(r),!1);var l=i+" ol-unselectable ol-control",u=r.element;return u.className=l,u.appendChild(s),r}return bO(e,t),e.prototype.handleClick_=function(t){t.preventDefault(),this.handleZoomToExtent()},e.prototype.handleZoomToExtent=function(){var t=this.getMap().getView(),e=this.extent?this.extent:t.getProjection().getExtent();t.fitInternal(gi(e))},e}(As),wO={};wO.AssertionError=l||{},wO.Collection=ht||{},wO.Collection.CollectionEvent=ct||{},wO.Disposable=p||{},wO.Feature=gt||{},wO.Feature.createStyleFunction=dt||{},wO.Geolocation=Ii||{},wO.Image=Ki||{},wO.Image.listenImage=Zi||{},wO.ImageBase=Mi||{},wO.ImageCanvas=$i||{},wO.ImageTile=vo||{},wO.Kinetic=_o||{},wO.Map=Wl||{},wO.MapBrowserEvent=Da||{},wO.MapBrowserEventHandler=Wa||{},wO.MapEvent=ja||{},wO.Object=ot||{},wO.Object.ObjectEvent=et||{},wO.Object.getChangeEventType=it||{},wO.Observable=Q||{},wO.Observable.unByKey=J||{},wO.Overlay=su||{},wO.PluggableMap=Ms||{},wO.Tile=lo||{},wO.TileCache=yu||{},wO.TileQueue=es||{},wO.TileQueue.getTilePriority=rs||{},wO.TileRange=_u||{},wO.TileRange.createOrUpdate=vu||{},wO.VectorRenderTile=wu||{},wO.VectorTile=Eu||{},wO.View=Cs||{},wO.View.createCenterConstraint=xs||{},wO.View.createResolutionConstraint=ws||{},wO.View.createRotationConstraint=Ss||{},wO.View.isNoopAnimation=Es||{},wO.array={},wO.array.binarySearch=f||{},wO.array.equals=b||{},wO.array.extend=v||{},wO.array.find=_||{},wO.array.findIndex=x||{},wO.array.includes=g||{},wO.array.isSorted=w||{},wO.array.linearFindNearest=y||{},wO.array.numberSafeCompareFunction=d||{},wO.array.remove=function(t,e){var r=t.indexOf(e),n=r>-1;return n&&t.splice(r,1),n}||{},wO.array.reverseSubArray=m||{},wO.array.stableSort=function(t,e){var r,n=t.length,i=Array(t.length);for(r=0;r3&&!!zn(t,e,r,n)}||{},wO.geom.flat.transform={},wO.geom.flat.transform.rotate=un||{},wO.geom.flat.transform.scale=cn||{},wO.geom.flat.transform.transform2D=ln||{},wO.geom.flat.transform.translate=hn||{},wO.has={},wO.has.DEVICE_PIXEL_RATIO=Vi||{},wO.has.FIREFOX=Gi||{},wO.has.IMAGE_DECODE=Wi||{},wO.has.MAC=Bi||{},wO.has.PASSIVE_EVENT_LISTENERS=qi||{},wO.has.SAFARI=zi||{},wO.has.WEBKIT=Ui||{},wO.has.WORKER_OFFSCREEN_CANVAS=Yi||{},wO.interaction={},wO.interaction.DoubleClickZoom=Zs||{},wO.interaction.DragAndDrop=Ev||{},wO.interaction.DragAndDrop.DragAndDropEvent=Sv||{},wO.interaction.DragBox=El||{},wO.interaction.DragBox.DragBoxEvent=Sl||{},wO.interaction.DragPan=fl||{},wO.interaction.DragRotate=gl||{},wO.interaction.DragRotateAndZoom=Cv||{},wO.interaction.DragZoom=Cl||{},wO.interaction.Draw=Gv||{},wO.interaction.Draw.DrawEvent=Dv||{},wO.interaction.Draw.createBox=function(){return function(t,e,r){var n=Kt([t[0],t[t.length-1]].map((function(t){return rn(t,r)}))),i=[[_e(n),be(n),Oe(n),Ce(n),_e(n)]],o=e;o?o.setCoordinates(i):o=new fi(i);var a=tn();return a&&o.transform(r,a),o}}||{},wO.interaction.Draw.createRegularPolygon=function(t,e){return function(r,n,i){var o=rn(r[0],i),a=rn(r[r.length-1],i),s=Math.sqrt(Rr(o,a)),l=n||yi(new Rv(o),t),u=e;if(!e&&0!==e){var c=a[0]-o[0],h=a[1]-o[1];u=Math.atan2(h,c)}mi(l,o,s,u);var p=tn();return p&&l.transform(i,p),l}}||{},wO.interaction.Extent=qv||{},wO.interaction.Extent.ExtentEvent=Bv||{},wO.interaction.Interaction=qs||{},wO.interaction.Interaction.pan=Ys||{},wO.interaction.Interaction.zoomByDelta=Ws||{},wO.interaction.KeyboardPan=Ml||{},wO.interaction.KeyboardZoom=Al||{},wO.interaction.Modify=r_||{},wO.interaction.Modify.ModifyEvent=Jv||{},wO.interaction.MouseWheelZoom=Dl||{},wO.interaction.PinchRotate=zl||{},wO.interaction.PinchZoom=Bl||{},wO.interaction.Pointer=$s||{},wO.interaction.Pointer.centroid=Hs||{},wO.interaction.Select=s_||{},wO.interaction.Select.SelectEvent=o_||{},wO.interaction.Snap=h_||{},wO.interaction.Translate=m_||{},wO.interaction.Translate.TranslateEvent=y_||{},wO.interaction.defaults=Vl||{},wO.layer={},wO.layer.Base=Wo||{},wO.layer.BaseImage=ad||{},wO.layer.BaseTile=vd||{},wO.layer.BaseVector=wg||{},wO.layer.Graticule=Ny||{},wO.layer.Group=Aa||{},wO.layer.Heatmap=Vy||{},wO.layer.Image=dd||{},wO.layer.Layer=na||{},wO.layer.Layer.inView=ra||{},wO.layer.MapboxVector=yv||{},wO.layer.MapboxVector.getMapboxPath=uv||{},wO.layer.MapboxVector.normalizeGlyphsUrl=hv||{},wO.layer.MapboxVector.normalizeSourceUrl=fv||{},wO.layer.MapboxVector.normalizeSpriteUrl=cv||{},wO.layer.MapboxVector.normalizeStyleUrl=pv||{},wO.layer.Tile=Sd||{},wO.layer.Vector=Iy||{},wO.layer.VectorImage=vv||{},wO.layer.VectorTile=lm||{},wO.layer.WebGLPoints=bv||{},wO.loadingstrategy={},wO.loadingstrategy.all=Fu||{},wO.loadingstrategy.bbox=function(t,e){return[t]}||{},wO.loadingstrategy.tile=function(t){return function(e,r){var n=t.getZForResolution(r),i=t.getTileRangeForExtentAndZ(e,n),o=[],a=[n,0,0];for(a[1]=i.minX;a[1]<=i.maxX;++a[1])for(a[2]=i.minY;a[2]<=i.maxY;++a[2])o.push(t.getTileCoordExtent(a));return o}}||{},wO.math={},wO.math.clamp=Ne||{},wO.math.cosh=De||{},wO.math.lerp=qe||{},wO.math.log2=Ge||{},wO.math.modulo=We||{},wO.math.solveLinearSystem=Be||{},wO.math.squaredDistance=Ue||{},wO.math.squaredSegmentDistance=ze||{},wO.math.toDegrees=Ve||{},wO.math.toRadians=Ye||{},wO.net={},wO.net.jsonp=Au||{},wO.obj={},wO.obj.assign=O||{},wO.obj.clear=P||{},wO.obj.getValues=R||{},wO.obj.isEmpty=I||{},wO.proj={},wO.proj.Projection=je||{},wO.proj.Units=St||{},wO.proj.Units.METERS_PER_UNIT=wt||{},wO.proj.addCommon=sn||{},wO.proj.addCoordinateTransforms=Wr||{},wO.proj.addEquivalentProjections=Ur||{},wO.proj.addEquivalentTransforms=Br||{},wO.proj.addProjection=Nr||{},wO.proj.addProjections=Dr||{},wO.proj.clearAllProjections=function(){lr(),pr()}||{},wO.proj.clearUserProjection=function(){Jr=null}||{},wO.proj.cloneTransform=kr||{},wO.proj.createProjection=Vr||{},wO.proj.createSafeCoordinateTransform=an||{},wO.proj.createTransformFromCoordinateTransform=Yr||{},wO.proj.epsg3857={},wO.proj.epsg3857.EXTENT=Ke||{},wO.proj.epsg3857.HALF_SIZE=Ze||{},wO.proj.epsg3857.MAX_SAFE_Y=$e||{},wO.proj.epsg3857.PROJECTIONS=Qe||{},wO.proj.epsg3857.RADIUS=6378137,wO.proj.epsg3857.WORLD_EXTENT=He||{},wO.proj.epsg3857.fromEPSG4326=tr||{},wO.proj.epsg3857.toEPSG4326=er||{},wO.proj.epsg4326={},wO.proj.epsg4326.EXTENT=nr||{},wO.proj.epsg4326.METERS_PER_UNIT=ir||{},wO.proj.epsg4326.PROJECTIONS=ar||{},wO.proj.epsg4326.RADIUS=6378137,wO.proj.equivalent=Xr||{},wO.proj.fromLonLat=qr||{},wO.proj.fromUserCoordinate=rn||{},wO.proj.fromUserExtent=on||{},wO.proj.get=Gr||{},wO.proj.getPointResolution=zr||{},wO.proj.getTransform=Kr||{},wO.proj.getTransformFromProjections=Zr||{},wO.proj.getUserProjection=tn||{},wO.proj.identityTransform=jr||{},wO.proj.proj4={},wO.proj.proj4.register=function(t){var e,r,n=Object.keys(t.defs),i=n.length;for(e=0;e180)&&(r[0]=We(n+180,360)-180),r}||{},wO.proj.toUserCoordinate=en||{},wO.proj.toUserExtent=nn||{},wO.proj.transform=Hr||{},wO.proj.transformExtent=$r||{},wO.proj.transformWithProjections=function(t,e,r){return Zr(e,r)(t)}||{},wO.proj.transforms={},wO.proj.transforms.add=fr||{},wO.proj.transforms.clear=pr||{},wO.proj.transforms.get=dr||{},wO.proj.transforms.remove=function(t,e){var r=t.getCode(),n=e.getCode(),i=hr[r][n];return delete hr[r][n],I(hr[r])&&delete hr[r],i}||{},wO.proj.useGeographic=function(){Qr("EPSG:4326")}||{},wO.render={},wO.render.Box=ml||{},wO.render.Event=la||{},wO.render.Feature=Cy||{},wO.render.VectorContext=ku||{},wO.render.canvas={},wO.render.canvas.Builder=Mg||{},wO.render.canvas.BuilderGroup=Yg||{},wO.render.canvas.Executor=ey||{},wO.render.canvas.ExecutorGroup=ay||{},wO.render.canvas.ExecutorGroup.getPixelIndexArray=oy||{},wO.render.canvas.ImageBuilder=Ag||{},wO.render.canvas.Immediate=Nu||{},wO.render.canvas.Instruction=Ig||{},wO.render.canvas.Instruction.beginPathInstruction=Pg||{},wO.render.canvas.Instruction.closePathInstruction=Rg||{},wO.render.canvas.Instruction.fillInstruction=Cg||{},wO.render.canvas.Instruction.strokeInstruction=Og||{},wO.render.canvas.LineStringBuilder=jg||{},wO.render.canvas.PolygonBuilder=Dg||{},wO.render.canvas.TextBuilder=Bg||{},wO.render.canvas.checkedFonts=da||{},wO.render.canvas.createTransformString=Ra||{},wO.render.canvas.defaultFillStyle="#000",wO.render.canvas.defaultFont="10px sans-serif",wO.render.canvas.defaultLineCap="round",wO.render.canvas.defaultLineDash=pa||{},wO.render.canvas.defaultLineDashOffset={},wO.render.canvas.defaultLineJoin="round",wO.render.canvas.defaultLineWidth=1,wO.render.canvas.defaultMiterLimit=10,wO.render.canvas.defaultPadding=fa||{},wO.render.canvas.defaultStrokeStyle="#000",wO.render.canvas.defaultTextAlign="center",wO.render.canvas.defaultTextBaseline="middle",wO.render.canvas.drawImageOrLabel=Oa||{},wO.render.canvas.hitdetect={},wO.render.canvas.hitdetect.createHitDetectionImageData=sy||{},wO.render.canvas.hitdetect.hitDetect=ly||{},wO.render.canvas.labelCache=ga||{},wO.render.canvas.measureAndCacheTextWidth=Ea||{},wO.render.canvas.measureTextHeight=xa||{},wO.render.canvas.measureTextWidth=Sa||{},wO.render.canvas.measureTextWidths=Ta||{},wO.render.canvas.registerFont=ba||{},wO.render.canvas.rotateAtOffset=Ca||{},wO.render.canvas.textHeights=_a||{},wO.render.getRenderPixel=function(t,e){var r=e.slice(0);return It(t.inversePixelTransform.slice(),r),r}||{},wO.render.getVectorContext=Ku||{},wO.render.toContext=function(t,e){var r=t.canvas,n=e||{},i=n.pixelRatio||Vi,o=n.size;o&&(r.width=o[0]*i,r.height=o[1]*i,r.style.width=o[0]+"px",r.style.height=o[1]+"px");var a=[0,0,r.width,r.height],s=Mt([1,0,0,1,0,0],i,i);return new Nu(t,i,a,s,0)}||{},wO.renderer={},wO.renderer.Composite=La||{},wO.renderer.Layer=ld||{},wO.renderer.Map=aa||{},wO.renderer.canvas={},wO.renderer.canvas.ImageLayer=pd||{},wO.renderer.canvas.Layer=cd||{},wO.renderer.canvas.TileLayer=xd||{},wO.renderer.canvas.VectorImageLayer=py||{},wO.renderer.canvas.VectorLayer=cy||{},wO.renderer.canvas.VectorTileLayer=_y||{},wO.renderer.vector={},wO.renderer.vector.defaultOrder=Wu||{},wO.renderer.vector.getSquaredTolerance=qu||{},wO.renderer.vector.getTolerance=Xu||{},wO.renderer.vector.renderFeature=Zu||{},wO.renderer.webgl={},wO.renderer.webgl.Layer=_g||{},wO.renderer.webgl.Layer.colorDecodeId=vg||{},wO.renderer.webgl.Layer.colorEncodeId=mg||{},wO.renderer.webgl.Layer.getBlankImageData=function(){var t=document.createElement("canvas").getContext("2d").createImageData(1,1);return t.data[0]=255,t.data[1]=255,t.data[2]=255,t.data[3]=255,t}||{},wO.renderer.webgl.Layer.writePointFeatureToBuffers=function(t,e,r,n,i,o){var a=3+i,s=t[e+0],l=t[e+1],u=dg;u.length=i;for(var c=0;c1?x(r.TileMatrixSetLink,"projection"in e?function(t,r,n){var o=_(i,(function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,a=Gr(o),s=Gr(e.projection);return a&&s?Xr(a,s):o==e.projection}:function(t,r,n){return t.TileMatrixSet==e.matrixSet}):0)<0&&(n=0);var o=r.TileMatrixSetLink[n].TileMatrixSet,a=r.TileMatrixSetLink[n].TileMatrixSetLimits,s=r.Format[0];"format"in e&&(s=e.format),(n=x(r.Style,(function(t,r,n){return"style"in e?t.Title==e.style:t.isDefault})))<0&&(n=0);var l=r.Style[n].Identifier,u={};"Dimension"in r&&r.Dimension.forEach((function(t,e,r){var n=t.Identifier,i=t.Default;void 0===i&&(i=t.Value[0]),u[n]=i}));var c,h=_(t.Contents.TileMatrixSet,(function(t,e,r){return t.Identifier==o})),p=h.SupportedCRS;if(p&&(c=Gr(p)),"projection"in e){var f=Gr(e.projection);f&&(c&&!Xr(f,c)||(c=f))}var d="ne"==c.getAxisOrientation().substr(0,2),y=h.TileMatrix[0],m={MinTileCol:0,MinTileRow:0,MaxTileCol:y.MatrixWidth-1,MaxTileRow:y.MatrixHeight-1};if(a){m=a[a.length-1];var v=_(h.TileMatrix,(function(t){return t.Identifier===m.TileMatrix||h.Identifier+":"+t.Identifier===m.TileMatrix}));v&&(y=v)}var b=28e-5*y.ScaleDenominator/c.getMetersPerUnit(),w=d?[y.TopLeftCorner[1],y.TopLeftCorner[0]]:y.TopLeftCorner,S=y.TileWidth*b,E=y.TileHeight*b,T=[w[0]+S*m.MinTileCol,w[1]-E*(1+m.MaxTileRow),w[0]+S*(1+m.MaxTileCol),w[1]-E*m.MinTileRow];null===c.getExtent()&&c.setExtent(T);var C=Kh(h,T,a),O=[],P=e.requestEncoding;if(P=void 0!==P?P:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata)for(var R=t.OperationsMetadata.GetTile.DCP.HTTP.Get,I=0,L=R.length;I