diff --git a/js/dist/admin.js b/js/dist/admin.js
index 9696a68..255890e 100644
--- a/js/dist/admin.js
+++ b/js/dist/admin.js
@@ -1,2 +1,2 @@
-module.exports=function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=12)}({1:function(t,e){t.exports=flarum.core.compat["common/extend"]},12:function(t,e,o){"use strict";o.r(e);var n=o(4),r=o.n(n),a=o(1),i=o(9),u=o.n(i);r.a.initializers.add("justoverclock/users-map-location",(function(){r.a.extensionData.for("justoverclock-users-map-location").registerSetting({setting:"justoverclock-users-map-location.mapBox-api-key",name:"justoverclock-users-map-location.mapBox-api-key",type:"text",label:r.a.translator.trans("justoverclock-users-map-location.admin.mapBox-api-key"),help:r.a.translator.trans("justoverclock-users-map-location.admin.mapBox-api-key-help")}),Object(a.extend)(u.a.prototype,"columns",(function(t){t.add("location",{name:r.a.translator.trans("justoverclock-users-map-location.admin.adminLocationField"),content:function(t){return m("div",null,t.data.attributes.location)}},-50)}))}))},4:function(t,e){t.exports=flarum.core.compat["admin/app"]},9:function(t,e){t.exports=flarum.core.compat["admin/components/UserListPage"]}});
+module.exports=function(t){var e={};function o(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=t,o.c=e,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=11)}([,function(t,e){t.exports=flarum.core.compat["common/extend"]},function(t,e){t.exports=flarum.core.compat["admin/app"]},,,,,,function(t,e){t.exports=flarum.core.compat["admin/components/UserListPage"]},,,function(t,e,o){"use strict";o.r(e);var n=o(2),r=o.n(n),a=o(1),i=o(8),u=o.n(i);r.a.initializers.add("justoverclock/users-map-location",(function(){r.a.extensionData.for("justoverclock-users-map-location").registerSetting({setting:"justoverclock-users-map-location.mapBox-api-key",name:"justoverclock-users-map-location.mapBox-api-key",type:"text",label:r.a.translator.trans("justoverclock-users-map-location.admin.mapBox-api-key"),help:r.a.translator.trans("justoverclock-users-map-location.admin.mapBox-api-key-help")}),Object(a.extend)(u.a.prototype,"columns",(function(t){t.add("location",{name:r.a.translator.trans("justoverclock-users-map-location.admin.adminLocationField"),content:function(t){return m("div",null,t.data.attributes.location)}},-50)}))}))}]);
//# sourceMappingURL=admin.js.map
\ No newline at end of file
diff --git a/js/dist/admin.js.map b/js/dist/admin.js.map
index 5e05540..f9a30bb 100644
--- a/js/dist/admin.js.map
+++ b/js/dist/admin.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://@justoverclock/users-map-location/webpack/bootstrap","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/extend']\"","webpack://@justoverclock/users-map-location/./src/admin/index.js","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['admin/app']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['admin/components/UserListPage']\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","app","initializers","add","extensionData","registerSetting","setting","type","label","translator","trans","help","extend","UserListPage","items","content","user","data","attributes","location"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,I,kBClFrDhC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,kB,kFCIpCC,IAAIC,aAAaC,IAAI,oCAAoC,WACvDF,IAAIG,cAAJ,IAAsB,oCAAoCC,gBAAgB,CACxEC,QAAS,kDACTjC,KAAM,kDACNkC,KAAM,OACNC,MAAOP,IAAIQ,WAAWC,MAAM,yDAC5BC,KAAMV,IAAIQ,WAAWC,MAAM,gEAE7BE,iBAAOC,IAAanB,UAAW,WAAW,SAAUoB,GAClDA,EAAMX,IACJ,WACA,CACE9B,KAAM4B,IAAIQ,WAAWC,MAAM,6DAC3BK,QAAS,SAACC,GAER,OAAO,aAAMA,EAAKC,KAAKC,WAAWC,aAGrC,W,gBCtBPtD,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,c,gBCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","module.exports = flarum.core.compat['common/extend'];","import app from 'flarum/admin/app';\nimport { extend } from 'flarum/common/extend';\nimport UserListPage from 'flarum/admin/components/UserListPage';\n\napp.initializers.add('justoverclock/users-map-location', () => {\n app.extensionData.for('justoverclock-users-map-location').registerSetting({\n setting: 'justoverclock-users-map-location.mapBox-api-key',\n name: 'justoverclock-users-map-location.mapBox-api-key',\n type: 'text',\n label: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key'),\n help: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key-help'),\n });\n extend(UserListPage.prototype, 'columns', function (items) {\n items.add(\n 'location',\n {\n name: app.translator.trans('justoverclock-users-map-location.admin.adminLocationField'),\n content: (user) => {\n\n return
{user.data.attributes.location}
;\n },\n },\n -50\n );\n });\n});\n","module.exports = flarum.core.compat['admin/app'];","module.exports = flarum.core.compat['admin/components/UserListPage'];"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://@justoverclock/users-map-location/webpack/bootstrap","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/extend']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['admin/app']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['admin/components/UserListPage']\"","webpack://@justoverclock/users-map-location/./src/admin/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","app","initializers","add","extensionData","registerSetting","setting","type","label","translator","trans","help","extend","UserListPage","items","content","user","data","attributes","location"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,I,iBClFrDhC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,kB,cCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,c,mBCApCnC,EAAOD,QAAUkC,OAAOC,KAAKC,OAAO,kC,iFCIpCC,IAAIC,aAAaC,IAAI,oCAAoC,WACvDF,IAAIG,cAAJ,IAAsB,oCAAoCC,gBAAgB,CACxEC,QAAS,kDACTjC,KAAM,kDACNkC,KAAM,OACNC,MAAOP,IAAIQ,WAAWC,MAAM,yDAC5BC,KAAMV,IAAIQ,WAAWC,MAAM,gEAE7BE,iBAAOC,IAAanB,UAAW,WAAW,SAAUoB,GAClDA,EAAMX,IACJ,WACA,CACE9B,KAAM4B,IAAIQ,WAAWC,MAAM,6DAC3BK,QAAS,SAACC,GAER,OAAO,aAAMA,EAAKC,KAAKC,WAAWC,aAGrC","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['admin/app'];","module.exports = flarum.core.compat['admin/components/UserListPage'];","import app from 'flarum/admin/app';\nimport { extend } from 'flarum/common/extend';\nimport UserListPage from 'flarum/admin/components/UserListPage';\n\napp.initializers.add('justoverclock/users-map-location', () => {\n app.extensionData.for('justoverclock-users-map-location').registerSetting({\n setting: 'justoverclock-users-map-location.mapBox-api-key',\n name: 'justoverclock-users-map-location.mapBox-api-key',\n type: 'text',\n label: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key'),\n help: app.translator.trans('justoverclock-users-map-location.admin.mapBox-api-key-help'),\n });\n extend(UserListPage.prototype, 'columns', function (items) {\n items.add(\n 'location',\n {\n name: app.translator.trans('justoverclock-users-map-location.admin.adminLocationField'),\n content: (user) => {\n\n return {user.data.attributes.location}
;\n },\n },\n -50\n );\n });\n});\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/dist/forum.js b/js/dist/forum.js
index 064a785..02b1fb3 100644
--- a/js/dist/forum.js
+++ b/js/dist/forum.js
@@ -1,7 +1,7 @@
-module.exports=function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=11)}([function(t,e){t.exports=flarum.core.compat["forum/app"]},function(t,e){t.exports=flarum.core.compat["common/extend"]},function(t,e){t.exports=flarum.core.compat["common/models/User"]},function(t,e){t.exports=flarum.core.compat["common/Model"]},,function(t,e){t.exports=flarum.core.compat["forum/components/UserCard"]},function(t,e){t.exports=flarum.core.compat["forum/components/SettingsPage"]},function(t,e){t.exports=flarum.core.compat.Component},function(t,e){t.exports=flarum.core.compat["common/components/Switch"]},,function(t,e,i){
+module.exports=function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=10)}([function(t,e){t.exports=flarum.core.compat["forum/app"]},function(t,e){t.exports=flarum.core.compat["common/extend"]},,function(t,e){t.exports=flarum.core.compat["forum/components/SettingsPage"]},function(t,e){t.exports=flarum.core.compat["forum/components/UserCard"]},function(t,e){t.exports=flarum.core.compat["common/models/User"]},function(t,e){t.exports=flarum.core.compat["common/Model"]},function(t,e){t.exports=flarum.core.compat.Component},,function(t,e,i){
/* @preserve
* Leaflet 1.7.1, a JS library for interactive maps. http://leafletjs.com
* (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
-!function(t){"use strict";function e(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function B(t,e,i){return t instanceof Z?t:f(t)?new Z(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new Z(t.x,t.y):new Z(t,e,i)}function A(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,a=o.y>=e.y&&n.y<=i.y;return s&&a},overlaps:function(t){t=I(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=R(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,a=o.lng>=e.lng&&n.lng<=i.lng;return s&&a},overlaps:function(t){t=R(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Tt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",h,e),window.removeEventListener("testPassiveEventSupport",h,e)}catch(t){}return t}(),Mt=!!document.createElement("canvas").getContext,zt=!(!document.createElementNS||!K("svg").createSVGRect),Ct=!zt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function kt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var St={ie:J,ielt9:$,edge:Q,webkit:tt,android:et,android23:it,androidStock:ot,opera:st,chrome:at,gecko:rt,safari:ht,phantom:lt,opera12:ut,win:ct,ie3d:dt,webkit3d:_t,gecko3d:pt,any3d:mt,mobile:ft,mobileWebkit:gt,mobileWebkit3d:vt,msPointer:yt,pointer:xt,touch:wt,mobileOpera:bt,mobileGecko:Lt,retina:Pt,passiveEvents:Tt,canvas:Mt,svg:zt,vml:Ct},Zt=yt?"MSPointerDown":"pointerdown",Et=yt?"MSPointerMove":"pointermove",Bt=yt?"MSPointerUp":"pointerup",At=yt?"MSPointerCancel":"pointercancel",It={},Ot=!1;function Rt(t,e,i,o){return"touchstart"===e?function(t,e,i){var o=n((function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Ae(t),Wt(t,e)}));t["_leaflet_touchstart"+i]=o,t.addEventListener(Zt,o,!1),Ot||(document.addEventListener(Zt,Nt,!0),document.addEventListener(Et,jt,!0),document.addEventListener(Bt,Dt,!0),document.addEventListener(At,Dt,!0),Ot=!0)}(t,i,o):"touchmove"===e?function(t,e,i){var n=function(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Wt(t,e)};t["_leaflet_touchmove"+i]=n,t.addEventListener(Et,n,!1)}(t,i,o):"touchend"===e&&function(t,e,i){var n=function(t){Wt(t,e)};t["_leaflet_touchend"+i]=n,t.addEventListener(Bt,n,!1),t.addEventListener(At,n,!1)}(t,i,o),this}function Nt(t){It[t.pointerId]=t}function jt(t){It[t.pointerId]&&(It[t.pointerId]=t)}function Dt(t){delete It[t.pointerId]}function Wt(t,e){for(var i in t.touches=[],It)t.touches.push(It[i]);t.changedTouches=[t],e(t)}var Ht,Ft,Ut,Vt,qt,Gt=yt?"MSPointerDown":xt?"pointerdown":"touchstart",Kt=yt?"MSPointerUp":xt?"pointerup":"touchend",Yt="_leaflet_",Xt=de(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Jt=de(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),$t="webkitTransition"===Jt||"OTransition"===Jt?Jt+"End":"transitionend";function Qt(t){return"string"==typeof t?document.getElementById(t):t}function te(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function ee(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function ie(t){var e=t.parentNode;e&&e.removeChild(t)}function ne(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function oe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function se(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ae(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=ue(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function re(t,e){if(void 0!==t.classList)for(var i=c(e),n=0,o=i.length;n1)return;var e=Date.now(),i=e-(n||e);o=t.touches?t.touches[0]:t,s=i>0&&i<=250,n=e}function r(t){if(s&&!o.cancelBubble){if(xt){if("mouse"===t.pointerType)return;var i,a,r={};for(a in o)i=o[a],r[a]=i&&i.bind?i.bind(o):i;o=r}o.type="dblclick",o.button=0,e(o),n=null}}t[Yt+Gt+i]=a,t[Yt+Kt+i]=r,t[Yt+"dblclick"+i]=e,t.addEventListener(Gt,a,!!Tt&&{passive:!1}),t.addEventListener(Kt,r,!!Tt&&{passive:!1}),t.addEventListener("dblclick",e,!1)}(t,a,o):"addEventListener"in t?"touchstart"===e||"touchmove"===e||"wheel"===e||"mousewheel"===e?t.addEventListener(Ce[e]||e,a,!!Tt&&{passive:!1}):"mouseenter"===e||"mouseleave"===e?(a=function(e){e=e||window.event,He(t,e)&&r(e)},t.addEventListener(Ce[e],a,!1)):t.addEventListener(e,r,!1):"attachEvent"in t&&t.attachEvent("on"+e,a),t[Te]=t[Te]||{},t[Te][o]=a}function Se(t,e,i,n){var o=e+s(i)+(n?"_"+s(n):""),a=t[Te]&&t[Te][o];if(!a)return this;xt&&0===e.indexOf("touch")?function(t,e,i){var n=t["_leaflet_"+e+i];"touchstart"===e?t.removeEventListener(Zt,n,!1):"touchmove"===e?t.removeEventListener(Et,n,!1):"touchend"===e&&(t.removeEventListener(Bt,n,!1),t.removeEventListener(At,n,!1))}(t,e,o):wt&&"dblclick"===e&&!ze()?function(t,e){var i=t[Yt+Gt+e],n=t[Yt+Kt+e],o=t[Yt+"dblclick"+e];t.removeEventListener(Gt,i,!!Tt&&{passive:!1}),t.removeEventListener(Kt,n,!!Tt&&{passive:!1}),t.removeEventListener("dblclick",o,!1)}(t,o):"removeEventListener"in t?t.removeEventListener(Ce[e]||e,a,!1):"detachEvent"in t&&t.detachEvent("on"+e,a),t[Te][o]=null}function Ze(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,We(t),this}function Ee(t){return ke(t,"wheel",Ze),this}function Be(t){return Pe(t,"mousedown touchstart dblclick",Ze),ke(t,"click",De),this}function Ae(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Ie(t){return Ae(t),Ze(t),this}function Oe(t,e){if(!e)return new Z(t.clientX,t.clientY);var i=be(e),n=i.boundingClientRect;return new Z((t.clientX-n.left)/i.x-e.clientLeft,(t.clientY-n.top)/i.y-e.clientTop)}var Re=ct&&at?2*window.devicePixelRatio:rt?window.devicePixelRatio:1;function Ne(t){return Q?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Re:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var je={};function De(t){je[t.type]=!0}function We(t){var e=je[t.type];return je[t.type]=!1,e}function He(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var Fe={on:Pe,off:Me,stopPropagation:Ze,disableScrollPropagation:Ee,disableClickPropagation:Be,preventDefault:Ae,stop:Ie,getMousePosition:Oe,getWheelDelta:Ne,fakeStop:De,skipped:We,isExternalTarget:He,addListener:Pe,removeListener:Me},Ue=S.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=me(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,R(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=B((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=B(e.paddingBottomRight||e.padding||[0,0]),o=this.getCenter(),s=this.project(o),a=this.project(t),r=this.getPixelBounds(),h=r.getSize().divideBy(2),l=I([r.min.add(i),r.max.subtract(n)]);if(!l.contains(a)){this._enforcingBounds=!0;var u=s.subtract(a),c=B(a.x+u.x,a.y+u.y);(a.xl.max.x)&&(c.x=s.x-u.x,u.x>0?c.x+=h.x-i.x:c.x-=h.x-n.x),(a.yl.max.y)&&(c.y=s.y-u.y,u.y>0?c.y+=h.y-i.y:c.y-=h.y-n.y),this.panTo(this.unproject(c),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=i.divideBy(2).round(),a=o.divideBy(2).round(),r=s.subtract(a);return r.x||r.y?(t.animate&&t.pan?this.panBy(r):(t.pan&&this._rawPanBy(r),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,o,t):navigator.geolocation.getCurrentPosition(i,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=new N(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var a in t.coords)"number"==typeof t.coords[a]&&(s[a]=t.coords[a]);this.fire("locationfound",s)},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ie(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(M(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ie(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=ee("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new O(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=R(t),i=B(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),a=t.getNorthWest(),r=t.getSouthEast(),h=this.getSize().subtract(i),l=I(this.project(r,n),this.project(a,n)).getSize(),u=mt?this.options.zoomSnap:1,c=h.x/l.x,d=h.y/l.y,_=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),u&&(n=Math.round(n/(u/100))*(u/100),n=e?Math.ceil(n/u)*u:Math.floor(n/u)*u),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new Z(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new A(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(j(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(B(t),e)},layerPointToLatLng:function(t){var e=B(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(j(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(j(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(R(t))},distance:function(t,e){return this.options.crs.distance(j(t),j(e))},containerPointToLayerPoint:function(t){return B(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return B(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(B(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(j(t)))},mouseEventToContainerPoint:function(t){return Oe(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=Qt(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Pe(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&mt,re(t,"leaflet-container"+(wt?" leaflet-touch":"")+(Pt?" leaflet-retina":"")+($?" leaflet-oldie":"")+(ht?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=te(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),pe(this._mapPane,new Z(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(re(t.markerPane,"leaflet-zoom-hide"),re(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){pe(this._mapPane,new Z(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i){void 0===e&&(e=this._zoom);var n=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return M(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){pe(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Me:Pe;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),mt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){M(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,a=t.target||t.srcElement,r=!1;a;){if((i=this._targets[s(a)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!He(a,t))break;if(n.push(i),o)break}if(a===this._container)break;a=a.parentNode}return n.length||r||o||!He(a,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!We(t)){var e=t.type;"mousedown"!==e&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||ye(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,i))).length){var s=n[0];"contextmenu"===i&&s.listens(i,!0)&&Ae(t);var a={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var r=s.getLatLng&&(!s._radius||s._radius<=10);a.containerPoint=r?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),a.layerPoint=this.containerPointToLayerPoint(a.containerPoint),a.latlng=r?s.getLatLng():this.layerPointToLatLng(a.layerPoint)}for(var h=0;h0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=mt?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){he(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=ee("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=Xt,i=this._proxy.style[e];_e(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ie(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();_e(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(T((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,re(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&he(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),T((function(){this._moveEnd(!0)}),this))}}),qe=C.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return re(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ie(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Ge=function(t){return new qe(t)};Ve.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=ee("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=ee("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ie(this._controlCorners[t]);ie(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ke=qe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+s(this),n),this._layerControlInputs.push(e),e.layerId=s(t.layer),Pe(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var a=document.createElement("div");return i.appendChild(a),a.appendChild(e),a.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ye=qe.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=ee("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=ee("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Be(s),Pe(s,"click",Ie),Pe(s,"click",o,this),Pe(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";he(this._zoomInButton,e),he(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&re(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&re(this._zoomInButton,e)}});Ve.mergeOptions({zoomControl:!0}),Ve.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Ye,this.addControl(this.zoomControl))}));var Xe=qe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=ee("div","leaflet-control-scale"),i=this.options;return this._addScales(i,"leaflet-control-scale-line",e),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=ee("div",e,i)),t.imperial&&(this._iScale=ee("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),Je=qe.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=ee("div","leaflet-control-attribution"),Be(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}});Ve.mergeOptions({attributionControl:!0}),Ve.addInitHook((function(){this.options.attributionControl&&(new Je).addTo(this)})),qe.Layers=Ke,qe.Zoom=Ye,qe.Scale=Xe,qe.Attribution=Je,Ge.layers=function(t,e,i){return new Ke(t,e,i)},Ge.zoom=function(t){return new Ye(t)},Ge.scale=function(t){return new Xe(t)},Ge.attribution=function(t){return new Je(t)};var $e=C.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});$e.addTo=function(t,e){return t.addHandler(e,this),this};var Qe,ti={Events:k},ei=wt?"touchstart mousedown":"mousedown",ii={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},ni={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},oi=S.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){d(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Pe(this._dragStartTarget,ei,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(oi._dragging===this&&this.finishDrag(),Me(this._dragStartTarget,ei,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!ae(this._element,"leaflet-zoom-anim")&&!(oi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(oi._dragging=this,this._preventOutline&&ye(this._element),ge(),Ht(),this._moving)))){this.fire("down");var e=t.touches?t.touches[0]:t,i=we(this._element);this._startPoint=new Z(e.clientX,e.clientY),this._parentScale=be(i),Pe(document,ni[t.type],this._onMove,this),Pe(document,ii[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new Z(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)l&&(a=r,l=h);l>n&&(i[a]=1,t(e,i,n,o,a),t(e,i,n,a,s))}(t,n,e,0,i-1);var o,s=[];for(o=0;oe&&(i.push(t[n]),o=n);var a,r,h,l;return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ui(t,e,i,n){var o,s=e.x,a=e.y,r=i.x-s,h=i.y-a,l=r*r+h*h;return l>0&&((o=((t.x-s)*r+(t.y-a)*h)/l)>1?(s=i.x,a=i.y):o>0&&(s+=r*o,a+=h*o)),r=t.x-s,h=t.y-a,n?r*r+h*h:new Z(s,a)}function ci(t){return!f(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function di(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ci(t)}var _i={simplify:si,pointToSegmentDistance:ai,closestPointOnSegment:function(t,e,i){return ui(t,e,i)},clipSegment:ri,_getEdgeIntersection:hi,_getBitCode:li,_sqClosestPointOnSegment:ui,isFlat:ci,_flat:di};function pi(t,e,i){var n,o,s,a,r,h,l,u,c,d=[1,4,2,8];for(o=0,l=t.length;o1e-7;h++)e=s*Math.sin(r),e=Math.pow((1-e)/(1+e),s/2),r+=l=Math.PI/2-2*Math.atan(a*e)-r;return new N(r*i,t.x*i/n)}},vi={LonLat:fi,Mercator:gi,SphericalMercator:F},yi=e({},H,{code:"EPSG:3395",projection:gi,transformation:function(){var t=.5/(Math.PI*gi.R);return V(t,.5,-t,.5)}()}),xi=e({},H,{code:"EPSG:4326",projection:fi,transformation:V(1/180,1,-1/180,.5)}),wi=e({},W,{projection:fi,transformation:V(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});W.Earth=H,W.EPSG3395=yi,W.EPSG3857=q,W.EPSG900913=G,W.EPSG4326=xi,W.Simple=wi;var bi=S.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}});Ve.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&s(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return a=(n-e)/i,this._map.layerPointToLatLng([s.x-a*(s.x-o.x),s.y-a*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=j(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new O,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ci(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=ci(t),n=0,o=t.length;n=2&&e[0]instanceof N&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){Ei.prototype._setLatLngs.call(this,t),ci(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ci(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new Z(e,e);if(t=new A(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||Ei.prototype._containsPoint.call(this,t,!0)}}),Ai=Pi.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=f(t)?t:t.features;if(o){for(e=0,i=o.length;e0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted;for(var a=0;ao?(e.height=o+"px",re(t,"leaflet-popup-scrolled")):he(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();pe(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,e=parseInt(te(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new Z(this._containerLeft,-i-this._containerBottom);o._add(me(this._container));var s=t.layerPointToContainerPoint(o),a=B(this.options.autoPanPadding),r=B(this.options.autoPanPaddingTopLeft||a),h=B(this.options.autoPanPaddingBottomRight||a),l=t.getSize(),u=0,c=0;s.x+n+h.x>l.x&&(u=s.x+n-l.x+h.x),s.x-u-r.x<0&&(u=s.x-r.x),s.y+i+h.y>l.y&&(c=s.y+i-l.y+h.y),s.y-c-r.y<0&&(c=s.y-r.y),(u||c)&&t.fire("autopanstart").panBy([u,c])}},_onCloseButtonClick:function(t){this._close(),Ie(t)},_getAnchor:function(){return B(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ve.mergeOptions({closePopupOnClick:!0}),Ve.include({openPopup:function(t,e,i){return t instanceof Xi||(t=new Xi(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),bi.include({bindPopup:function(t,e){return t instanceof Xi?(d(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new Xi(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(Ie(t),e instanceof ki?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Ji=Yi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){Yi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){Yi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=Yi.prototype.getEvents.call(this);return wt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ee("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),a=n.layerPointToContainerPoint(t),r=this.options.direction,h=o.offsetWidth,l=o.offsetHeight,u=B(this.options.offset),c=this._getAnchor();"top"===r?(e=h/2,i=l):"bottom"===r?(e=h/2,i=0):"center"===r?(e=h/2,i=l/2):"right"===r?(e=0,i=l/2):"left"===r?(e=h,i=l/2):a.xthis.options.maxZoom||in&&this._retainParent(o,s,a,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var a=new Z(o,s);a.z=i+1;var r=this._tileCoordsToKey(a),h=this._tiles[r];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new Z(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:a.push(_)}}if(a.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==a.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return R(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new O(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new Z(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(ie(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){re(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=h,t.onmousemove=h,$&&this.options.opacity<1&&ce(t,this.options.opacity),et&&!it&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),pe(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(ce(i.el,0),M(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(re(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),$||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new Z(this._wrapX?r(t.x,this._wrapX):t.x,this._wrapY?r(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new A(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),tn=Qi.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&Pt&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),et||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Pe(i,"load",n(this._tileOnLoad,this,e,i)),Pe(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:Pt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return m(this._url,e(i,this.options))},_tileOnLoad:function(t,e){$?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=h,e.onerror=h,e.complete||(e.src=v,ie(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t];if(e)return ot||e.el.setAttribute("src",v),Qi.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==v))return Qi.prototype._tileReady.call(this,t,e,i)}});function en(t,e){return new tn(t,e)}var nn=tn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=d(this,i)).detectRetina&&Pt?2:1,a=this.getTileSize();n.width=a.x*s,n.height=a.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,tn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=I(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,a=(this._wmsVersion>=1.3&&this._crs===xi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),r=tn.prototype.getTileUrl.call(this,t);return r+_(this.wmsParams,r,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+a},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});tn.WMS=nn,en.wms=function(t,e){return new nn(t,e)};var on=bi.extend({options:{padding:.1,tolerance:0},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&re(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=me(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),a=this._map.project(t,e).subtract(s),r=o.multiplyBy(-i).add(n).add(o).subtract(a);mt?_e(this._container,r,i):pe(this._container,r)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new A(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),sn=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){on.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Pe(t,"mousemove",this._onMouseMove,this),Pe(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Pe(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){M(this._redrawRequest),delete this._ctx,ie(this._container),Me(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Pt?2:1;pe(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Pt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){on.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),hn={_initContainer:function(){this._container=ee("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(on.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=rn("shape");re(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=rn("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ie(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=rn("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=rn("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){oe(t._container)},_bringToBack:function(t){se(t._container)}},ln=Ct?rn:K,un=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=ln("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=ln("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ie(this._container),Me(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),pe(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=ln("path");t.options.className&&re(e,t.options.className),t.options.interactive&&re(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ie(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,Y(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){oe(t._path)},_bringToBack:function(t){se(t._path)}});function cn(t){return zt||Ct?new un(t):null}Ct&&un.include(hn),Ve.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&an(t)||cn(t)}});var dn=Bi.extend({initialize:function(t,e){Bi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=R(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});un.create=ln,un.pointsToPath=Y,Ai.geometryToLayer=Ii,Ai.coordsToLatLng=Ri,Ai.coordsToLatLngs=Ni,Ai.latLngToCoords=ji,Ai.latLngsToCoords=Di,Ai.getFeature=Wi,Ai.asFeature=Hi,Ve.mergeOptions({boxZoom:!0});var _n=$e.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Pe(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Me(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ie(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Ht(),ge(),this._startPoint=this._map.mouseEventToContainerPoint(t),Pe(document,{contextmenu:Ie,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ee("div","leaflet-zoom-box",this._container),re(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new A(this._point,this._startPoint),i=e.getSize();pe(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(ie(this._box),he(this._container,"leaflet-crosshair")),Ft(),ve(),Me(document,{contextmenu:Ie,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new O(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ve.addInitHook("addHandler","boxZoom",_n),Ve.mergeOptions({doubleClickZoom:!0});var pn=$e.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Ve.addInitHook("addHandler","doubleClickZoom",pn),Ve.mergeOptions({dragging:!0,inertia:!it,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var mn=$e.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new oi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}re(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){he(this._map._container,"leaflet-grab"),he(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=R(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,a=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,a&&("center"===t.options.scrollWheelZoom?t.setZoom(e+a):t.setZoomAround(this._lastMousePos,e+a))}});Ve.addInitHook("addHandler","scrollWheelZoom",gn),Ve.mergeOptions({tap:!0,tapTolerance:15});var vn=$e.extend({addHooks:function(){Pe(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Me(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Ae(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],i=e.target;this._startPos=this._newPos=new Z(e.clientX,e.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&re(i,"leaflet-active"),this._holdTimeout=setTimeout(n((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))}),this),1e3),this._simulateEvent("mousedown",e),Pe(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Me(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],i=e.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&he(i,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new Z(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var i=document.createEvent("MouseEvents");i._simulated=!0,e.target._simulatedClick=!0,i.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}});!wt||xt&&!ht||Ve.addInitHook("addHandler","tap",vn),Ve.mergeOptions({touchZoom:wt&&!it,bounceAtZoomLimits:!0});var yn=$e.extend({addHooks:function(){re(this._map._container,"leaflet-touch-zoom"),Pe(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){he(this._map._container,"leaflet-touch-zoom"),Me(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Pe(document,"touchmove",this._onTouchMove,this),Pe(document,"touchend",this._onTouchEnd,this),Ae(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var a=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===a.x&&0===a.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(a),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),M(this._animRequest);var r=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=T(r,this,!0),Ae(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,M(this._animRequest),Me(document,"touchmove",this._onTouchMove,this),Me(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ve.addInitHook("addHandler","touchZoom",yn),Ve.BoxZoom=_n,Ve.DoubleClickZoom=pn,Ve.Drag=mn,Ve.Keyboard=fn,Ve.ScrollWheelZoom=gn,Ve.Tap=vn,Ve.TouchZoom=yn,t.version="1.7.1",t.Control=qe,t.control=Ge,t.Browser=St,t.Evented=S,t.Mixin=ti,t.Util=z,t.Class=C,t.Handler=$e,t.extend=e,t.bind=n,t.stamp=s,t.setOptions=d,t.DomEvent=Fe,t.DomUtil=Le,t.PosAnimation=Ue,t.Draggable=oi,t.LineUtil=_i,t.PolyUtil=mi,t.Point=Z,t.point=B,t.Bounds=A,t.bounds=I,t.Transformation=U,t.transformation=V,t.Projection=vi,t.LatLng=N,t.latLng=j,t.LatLngBounds=O,t.latLngBounds=R,t.CRS=W,t.GeoJSON=Ai,t.geoJSON=Ui,t.geoJson=Vi,t.Layer=bi,t.LayerGroup=Li,t.layerGroup=function(t,e){return new Li(t,e)},t.FeatureGroup=Pi,t.featureGroup=function(t,e){return new Pi(t,e)},t.ImageOverlay=qi,t.imageOverlay=function(t,e,i){return new qi(t,e,i)},t.VideoOverlay=Gi,t.videoOverlay=function(t,e,i){return new Gi(t,e,i)},t.SVGOverlay=Ki,t.svgOverlay=function(t,e,i){return new Ki(t,e,i)},t.DivOverlay=Yi,t.Popup=Xi,t.popup=function(t,e){return new Xi(t,e)},t.Tooltip=Ji,t.tooltip=function(t,e){return new Ji(t,e)},t.Icon=Ti,t.icon=function(t){return new Ti(t)},t.DivIcon=$i,t.divIcon=function(t){return new $i(t)},t.Marker=Ci,t.marker=function(t,e){return new Ci(t,e)},t.TileLayer=tn,t.tileLayer=en,t.GridLayer=Qi,t.gridLayer=function(t){return new Qi(t)},t.SVG=un,t.svg=cn,t.Renderer=on,t.Canvas=sn,t.canvas=an,t.Path=ki,t.CircleMarker=Si,t.circleMarker=function(t,e){return new Si(t,e)},t.Circle=Zi,t.circle=function(t,e,i){return new Zi(t,e,i)},t.Polyline=Ei,t.polyline=function(t,e){return new Ei(t,e)},t.Polygon=Bi,t.polygon=function(t,e){return new Bi(t,e)},t.Rectangle=dn,t.rectangle=function(t,e){return new dn(t,e)},t.Map=Ve,t.map=function(t,e){return new Ve(t,e)};var xn=window.L;t.noConflict=function(){return window.L=xn,this},window.L=t}(e)},function(t,e,i){"use strict";i.r(e),i.d(e,"AddLocationComponent",(function(){return v}));var n=i(0),o=i.n(n),s=i(1),a=i(6),r=i.n(a),h=i(2),l=i.n(h),u=i(3),c=i.n(u);function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var _=i(7),p=i.n(_),f=i(8),g=i.n(f),v=function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,d(e,i);var s=n.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e),this.search_country=o.a.session.user.location_country()||"France",this.search_city=((o.a.session.user.location_postcode()||"")+" "+(o.a.session.user.location_city()||"")).trim(),this.location=o.a.session.user.location_latitude()?{lat:o.a.session.user.location_latitude(),lon:o.a.session.user.location_longitude()}:null,this.enableLocation=null!=this.location,this.map=null,this.locationMarker=null},s.view=function(t){var e=this;return m("fieldset",{className:"Settings-theme"},m("legend",null,o.a.translator.trans("justoverclock-users-map-location.forum.location")),m(g.a,{state:this.enableLocation,onchange:function(t){return e.setEnableLocation(t)}},o.a.translator.trans("justoverclock-users-map-location.forum.enableLocation")),m("div",{className:"fieldset-separator"}),this.enableLocation?m("div",null,m("label",{for:"search-country"},o.a.translator.trans("justoverclock-users-map-location.forum.locationCountry")),m("input",{type:"text",className:"FormControl search-country",id:"search-country",name:"search-country",value:this.search_country,onblur:this.countryChanged.bind(this)}),m("div",{className:"fieldset-separator"}),m("label",{for:"search-city"},o.a.translator.trans("justoverclock-users-map-location.forum.locationCity")),m("p",{className:"helpText"},o.a.translator.trans("justoverclock-users-map-location.forum.locationCityDescription")),m("input",{type:"text",className:"FormControl search-city",id:"search-city",name:"search-city",value:this.search_city,onblur:this.cityChanged.bind(this)}),m("div",{className:"fieldset-separator"}),this.location?m("div",{className:"location-map"}):[]):[])},s.setEnableLocation=function(t){this.enableLocation=t,this.location&&!this.enableLocation&&(this.search_country="",this.search_city="",this.save())},s.oncreate=function(t){this.onupdate(t)},s.onupdate=function(t){var e=t.dom.getElementsByClassName("location-map");if(e.length>0){if(!this.map){var i=e[0],n=o.a.forum.attribute("justoverclock-users-map-location.mapBox-api-key"),s=o.a.forum.attribute("baseUrl")+"/assets/extensions/justoverclock-users-map-location/marker-icon.png",a=L.icon({iconUrl:s,iconSize:[25,41],iconAnchor:[13,40]});this.map=L.map(i),this.locationMarker=L.marker([this.location.lat,this.location.lon],{icon:a}).addTo(this.map);L.tileLayer("https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}",{attribution:'Map data © OpenStreetMap contributors, Imagery © Mapbox, Developed by Marco Colia',maxZoom:18,id:"mapbox/streets-v11",tileSize:512,zoomOffset:-1,accessToken:n}).addTo(this.map);this.updateMap()}}else this.map=null,this.locationMarker=null},s.updateMap=function(){this.map&&this.location&&(this.map.setView([this.location.lat,this.location.lon],7),this.locationMarker.setLatLng([this.location.lat,this.location.lon]))},s.countryChanged=function(t){this.search_country=t.target.value.trim(),this.save()},s.cityChanged=function(t){this.search_city=t.target.value.trim(),this.save()},s.save=function(){var t=this;if(""!=this.search_country&&""!=this.search_city){for(var e=["([0-9]{5})","([0-9]{2} [0-9]{3})","([A-Z0-9]{3} [A-Z0-9]{3})","([0-9]{4})"],i="",n="",s=0;sOpenStreetMap contributors, Imagery © Mapbox, Developed by Marco Colia',maxZoom:18,id:"mapbox/streets-v11",tileSize:512,zoomOffset:-1,accessToken:a}).addTo(h)}})),Object(s.extend)(r.a.prototype,"settingsItems",(function(t){t.add("location",m(v,null))}))}))}]);
+!function(t){"use strict";function e(t){var e,i,n,o;for(i=1,n=arguments.length;i0?Math.floor(t):Math.ceil(t)};function B(t,e,i){return t instanceof Z?t:f(t)?new Z(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new Z(t.x,t.y):new Z(t,e,i)}function I(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=A(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>=e.x&&n.x<=i.x,r=o.y>=e.y&&n.y<=i.y;return s&&r},overlaps:function(t){t=A(t);var e=this.min,i=this.max,n=t.min,o=t.max,s=o.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=R(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=e.lat&&n.lat<=i.lat,r=o.lng>=e.lng&&n.lng<=i.lng;return s&&r},overlaps:function(t){t=R(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>e.lat&&n.late.lng&&n.lng1,Tt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",h,e),window.removeEventListener("testPassiveEventSupport",h,e)}catch(t){}return t}(),Mt=!!document.createElement("canvas").getContext,zt=!(!document.createElementNS||!K("svg").createSVGRect),Ct=!zt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function St(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var kt={ie:J,ielt9:$,edge:Q,webkit:tt,android:et,android23:it,androidStock:ot,opera:st,chrome:rt,gecko:at,safari:ht,phantom:ut,opera12:lt,win:ct,ie3d:dt,webkit3d:_t,gecko3d:pt,any3d:mt,mobile:ft,mobileWebkit:gt,mobileWebkit3d:vt,msPointer:yt,pointer:xt,touch:wt,mobileOpera:bt,mobileGecko:Pt,retina:Lt,passiveEvents:Tt,canvas:Mt,svg:zt,vml:Ct},Zt=yt?"MSPointerDown":"pointerdown",Et=yt?"MSPointerMove":"pointermove",Bt=yt?"MSPointerUp":"pointerup",It=yt?"MSPointerCancel":"pointercancel",At={},Ot=!1;function Rt(t,e,i,o){return"touchstart"===e?function(t,e,i){var o=n((function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Ie(t),Wt(t,e)}));t["_leaflet_touchstart"+i]=o,t.addEventListener(Zt,o,!1),Ot||(document.addEventListener(Zt,Nt,!0),document.addEventListener(Et,jt,!0),document.addEventListener(Bt,Dt,!0),document.addEventListener(It,Dt,!0),Ot=!0)}(t,i,o):"touchmove"===e?function(t,e,i){var n=function(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Wt(t,e)};t["_leaflet_touchmove"+i]=n,t.addEventListener(Et,n,!1)}(t,i,o):"touchend"===e&&function(t,e,i){var n=function(t){Wt(t,e)};t["_leaflet_touchend"+i]=n,t.addEventListener(Bt,n,!1),t.addEventListener(It,n,!1)}(t,i,o),this}function Nt(t){At[t.pointerId]=t}function jt(t){At[t.pointerId]&&(At[t.pointerId]=t)}function Dt(t){delete At[t.pointerId]}function Wt(t,e){for(var i in t.touches=[],At)t.touches.push(At[i]);t.changedTouches=[t],e(t)}var Ht,Ft,Ut,Vt,qt,Gt=yt?"MSPointerDown":xt?"pointerdown":"touchstart",Kt=yt?"MSPointerUp":xt?"pointerup":"touchend",Yt="_leaflet_",Xt=de(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Jt=de(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),$t="webkitTransition"===Jt||"OTransition"===Jt?Jt+"End":"transitionend";function Qt(t){return"string"==typeof t?document.getElementById(t):t}function te(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!i||"auto"===i)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);i=n?n[e]:null}return"auto"===i?null:i}function ee(t,e,i){var n=document.createElement(t);return n.className=e||"",i&&i.appendChild(n),n}function ie(t){var e=t.parentNode;e&&e.removeChild(t)}function ne(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function oe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function se(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function re(t,e){if(void 0!==t.classList)return t.classList.contains(e);var i=le(t);return i.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)}function ae(t,e){if(void 0!==t.classList)for(var i=c(e),n=0,o=i.length;n1)return;var e=Date.now(),i=e-(n||e);o=t.touches?t.touches[0]:t,s=i>0&&i<=250,n=e}function a(t){if(s&&!o.cancelBubble){if(xt){if("mouse"===t.pointerType)return;var i,r,a={};for(r in o)i=o[r],a[r]=i&&i.bind?i.bind(o):i;o=a}o.type="dblclick",o.button=0,e(o),n=null}}t[Yt+Gt+i]=r,t[Yt+Kt+i]=a,t[Yt+"dblclick"+i]=e,t.addEventListener(Gt,r,!!Tt&&{passive:!1}),t.addEventListener(Kt,a,!!Tt&&{passive:!1}),t.addEventListener("dblclick",e,!1)}(t,r,o):"addEventListener"in t?"touchstart"===e||"touchmove"===e||"wheel"===e||"mousewheel"===e?t.addEventListener(Ce[e]||e,r,!!Tt&&{passive:!1}):"mouseenter"===e||"mouseleave"===e?(r=function(e){e=e||window.event,He(t,e)&&a(e)},t.addEventListener(Ce[e],r,!1)):t.addEventListener(e,a,!1):"attachEvent"in t&&t.attachEvent("on"+e,r),t[Te]=t[Te]||{},t[Te][o]=r}function ke(t,e,i,n){var o=e+s(i)+(n?"_"+s(n):""),r=t[Te]&&t[Te][o];if(!r)return this;xt&&0===e.indexOf("touch")?function(t,e,i){var n=t["_leaflet_"+e+i];"touchstart"===e?t.removeEventListener(Zt,n,!1):"touchmove"===e?t.removeEventListener(Et,n,!1):"touchend"===e&&(t.removeEventListener(Bt,n,!1),t.removeEventListener(It,n,!1))}(t,e,o):wt&&"dblclick"===e&&!ze()?function(t,e){var i=t[Yt+Gt+e],n=t[Yt+Kt+e],o=t[Yt+"dblclick"+e];t.removeEventListener(Gt,i,!!Tt&&{passive:!1}),t.removeEventListener(Kt,n,!!Tt&&{passive:!1}),t.removeEventListener("dblclick",o,!1)}(t,o):"removeEventListener"in t?t.removeEventListener(Ce[e]||e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r),t[Te][o]=null}function Ze(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,We(t),this}function Ee(t){return Se(t,"wheel",Ze),this}function Be(t){return Le(t,"mousedown touchstart dblclick",Ze),Se(t,"click",De),this}function Ie(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Ae(t){return Ie(t),Ze(t),this}function Oe(t,e){if(!e)return new Z(t.clientX,t.clientY);var i=be(e),n=i.boundingClientRect;return new Z((t.clientX-n.left)/i.x-e.clientLeft,(t.clientY-n.top)/i.y-e.clientTop)}var Re=ct&&rt?2*window.devicePixelRatio:at?window.devicePixelRatio:1;function Ne(t){return Q?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Re:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var je={};function De(t){je[t.type]=!0}function We(t){var e=je[t.type];return je[t.type]=!1,e}function He(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var Fe={on:Le,off:Me,stopPropagation:Ze,disableScrollPropagation:Ee,disableClickPropagation:Be,preventDefault:Ie,stop:Ae,getMousePosition:Oe,getWheelDelta:Ne,fakeStop:De,skipped:We,isExternalTarget:He,addListener:Le,removeListener:Me},Ue=k.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=me(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=T(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,R(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=B((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=B(e.paddingBottomRight||e.padding||[0,0]),o=this.getCenter(),s=this.project(o),r=this.project(t),a=this.getPixelBounds(),h=a.getSize().divideBy(2),u=A([a.min.add(i),a.max.subtract(n)]);if(!u.contains(r)){this._enforcingBounds=!0;var l=s.subtract(r),c=B(r.x+l.x,r.y+l.y);(r.xu.max.x)&&(c.x=s.x-l.x,l.x>0?c.x+=h.x-i.x:c.x-=h.x-n.x),(r.yu.max.y)&&(c.y=s.y-l.y,l.y>0?c.y+=h.y-i.y:c.y-=h.y-n.y),this.panTo(this.unproject(c),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=i.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(n(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=n(this._handleGeolocationResponse,this),o=n(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,o,t):navigator.geolocation.getCurrentPosition(i,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=new N(t.coords.latitude,t.coords.longitude),i=e.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(i);this.setView(e,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:e,bounds:i,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ie(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(M(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ie(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var i=ee("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=i),i},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new O(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=R(t),i=B(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(i),u=A(this.project(a,n),this.project(r,n)).getSize(),l=mt?this.options.zoomSnap:1,c=h.x/u.x,d=h.y/u.y,_=e?Math.max(c,d):Math.min(c,d);return n=this.getScaleZoom(_,n),l&&(n=Math.round(n/(l/100))*(l/100),n=e?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new Z(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new I(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(j(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(B(t),e)},layerPointToLatLng:function(t){var e=B(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(j(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(j(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(R(t))},distance:function(t,e){return this.options.crs.distance(j(t),j(e))},containerPointToLayerPoint:function(t){return B(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return B(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(B(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(j(t)))},mouseEventToContainerPoint:function(t){return Oe(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=Qt(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Le(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&mt,ae(t,"leaflet-container"+(wt?" leaflet-touch":"")+(Lt?" leaflet-retina":"")+($?" leaflet-oldie":"")+(ht?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=te(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),pe(this._mapPane,new Z(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ae(t.markerPane,"leaflet-zoom-hide"),ae(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){pe(this._mapPane,new Z(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n,!1)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i){void 0===e&&(e=this._zoom);var n=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return M(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){pe(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Me:Le;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),mt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){M(this._resizeRequest),this._resizeRequest=T((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,a=!1;r;){if((i=this._targets[s(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(o&&!He(r,t))break;if(n.push(i),o)break}if(r===this._container)break;r=r.parentNode}return n.length||a||o||!He(r,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!We(t)){var e=t.type;"mousedown"!==e&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||ye(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,n){if("click"===t.type){var o=e({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,i))).length){var s=n[0];"contextmenu"===i&&s.listens(i,!0)&&Ie(t);var r={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=mt?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){he(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var i=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(i)||(this.panBy(i,e),0))},_createAnimProxy:function(){var t=this._proxy=ee("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=Xt,i=this._proxy.style[e];_e(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ie(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();_e(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==i.animate&&!this.getSize().contains(o)||(T((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,i,o){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,ae(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:o}),setTimeout(n(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&he(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),T((function(){this._moveEnd(!0)}),this))}}),qe=C.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),n=t._controlCorners[i];return ae(e,"leaflet-control"),-1!==i.indexOf("bottom")?n.insertBefore(e,n.firstChild):n.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ie(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Ge=function(t){return new qe(t)};Ve.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",i=this._controlContainer=ee("div",e+"control-container",this._container);function n(n,o){var s=e+n+" "+e+o;t[n+o]=ee("div",s,i)}n("top","left"),n("top","right"),n("bottom","left"),n("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ie(this._controlCorners[t]);ie(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Ke=qe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+s(this),n),this._layerControlInputs.push(e),e.layerId=s(t.layer),Le(e,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var r=document.createElement("div");return i.appendChild(r),r.appendChild(e),r.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;s>=0;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ye=qe.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=ee("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){var s=ee("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Be(s),Le(s,"click",Ae),Le(s,"click",o,this),Le(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";he(this._zoomInButton,e),he(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&ae(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&ae(this._zoomInButton,e)}});Ve.mergeOptions({zoomControl:!0}),Ve.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Ye,this.addControl(this.zoomControl))}));var Xe=qe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=ee("div","leaflet-control-scale"),i=this.options;return this._addScales(i,"leaflet-control-scale-line",e),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=ee("div",e,i)),t.imperial&&(this._iScale=ee("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return e*(i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1)}}),Je=qe.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=ee("div","leaflet-control-attribution"),Be(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}});Ve.mergeOptions({attributionControl:!0}),Ve.addInitHook((function(){this.options.attributionControl&&(new Je).addTo(this)})),qe.Layers=Ke,qe.Zoom=Ye,qe.Scale=Xe,qe.Attribution=Je,Ge.layers=function(t,e,i){return new Ke(t,e,i)},Ge.zoom=function(t){return new Ye(t)},Ge.scale=function(t){return new Xe(t)},Ge.attribution=function(t){return new Je(t)};var $e=C.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});$e.addTo=function(t,e){return t.addHandler(e,this),this};var Qe,ti={Events:S},ei=wt?"touchstart mousedown":"mousedown",ii={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},ni={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},oi=k.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){d(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(Le(this._dragStartTarget,ei,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(oi._dragging===this&&this.finishDrag(),Me(this._dragStartTarget,ei,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!re(this._element,"leaflet-zoom-anim")&&!(oi._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(oi._dragging=this,this._preventOutline&&ye(this._element),ge(),Ht(),this._moving)))){this.fire("down");var e=t.touches?t.touches[0]:t,i=we(this._element);this._startPoint=new Z(e.clientX,e.clientY),this._parentScale=be(i),Le(document,ni[t.type],this._onMove,this),Le(document,ii[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new Z(e.clientX,e.clientY)._subtract(this._startPoint);(i.x||i.y)&&(Math.abs(i.x)+Math.abs(i.y)u&&(r=a,u=h);u>n&&(i[r]=1,t(e,i,n,o,r),t(e,i,n,r,s))}(t,n,e,0,i-1);var o,s=[];for(o=0;oe&&(i.push(t[n]),o=n);var r,a,h,u;return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function li(t,e,i,n){var o,s=e.x,r=e.y,a=i.x-s,h=i.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=i.x,r=i.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new Z(s,r)}function ci(t){return!f(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function di(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ci(t)}var _i={simplify:si,pointToSegmentDistance:ri,closestPointOnSegment:function(t,e,i){return li(t,e,i)},clipSegment:ai,_getEdgeIntersection:hi,_getBitCode:ui,_sqClosestPointOnSegment:li,isFlat:ci,_flat:di};function pi(t,e,i){var n,o,s,r,a,h,u,l,c,d=[1,4,2,8];for(o=0,u=t.length;o1e-7;h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=u=Math.PI/2-2*Math.atan(r*e)-a;return new N(a*i,t.x*i/n)}},vi={LonLat:fi,Mercator:gi,SphericalMercator:F},yi=e({},H,{code:"EPSG:3395",projection:gi,transformation:function(){var t=.5/(Math.PI*gi.R);return V(t,.5,-t,.5)}()}),xi=e({},H,{code:"EPSG:4326",projection:fi,transformation:V(1/180,1,-1/180,.5)}),wi=e({},W,{projection:fi,transformation:V(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,n=e.lat-t.lat;return Math.sqrt(i*i+n*n)},infinite:!0});W.Earth=H,W.EPSG3395=yi,W.EPSG3857=q,W.EPSG900913=G,W.EPSG4326=xi,W.Simple=wi;var bi=k.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",(function(){e.off(i,this)}),this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}});Ve.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&s(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?f(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(n-e)/i,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=j(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new O,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ci(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=ci(t),n=0,o=t.length;n=2&&e[0]instanceof N&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){Ei.prototype._setLatLngs.call(this,t),ci(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ci(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new Z(e,e);if(t=new I(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;ot.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(u=!u);return u||Ei.prototype._containsPoint.call(this,t,!0)}}),Ii=Li.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=f(t)?t:t.features;if(o){for(e=0,i=o.length;e0?o:[e.src]}else{f(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted;for(var r=0;ro?(e.height=o+"px",ae(t,"leaflet-popup-scrolled")):he(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();pe(this._container,e.add(i))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,e=parseInt(te(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,o=new Z(this._containerLeft,-i-this._containerBottom);o._add(me(this._container));var s=t.layerPointToContainerPoint(o),r=B(this.options.autoPanPadding),a=B(this.options.autoPanPaddingTopLeft||r),h=B(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+i+h.y>u.y&&(c=s.y+i-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Ae(t)},_getAnchor:function(){return B(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Ve.mergeOptions({closePopupOnClick:!0}),Ve.include({openPopup:function(t,e,i){return t instanceof Xi||(t=new Xi(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),bi.include({bindPopup:function(t,e){return t instanceof Xi?(d(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new Xi(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(Ae(t),e instanceof Si?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Ji=Yi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){Yi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){Yi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=Yi.prototype.getEvents.call(this);return wt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ee("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i,n=this._map,o=this._container,s=n.latLngToContainerPoint(n.getCenter()),r=n.layerPointToContainerPoint(t),a=this.options.direction,h=o.offsetWidth,u=o.offsetHeight,l=B(this.options.offset),c=this._getAnchor();"top"===a?(e=h/2,i=u):"bottom"===a?(e=h/2,i=0):"center"===a?(e=h/2,i=u/2):"right"===a?(e=0,i=u/2):"left"===a?(e=h,i=u/2):r.xthis.options.maxZoom||in&&this._retainParent(o,s,r,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new Z(o,s);r.z=i+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)this._setView(t,i);else{for(var c=o.min.y;c<=o.max.y;c++)for(var d=o.min.x;d<=o.max.x;d++){var _=new Z(d,c);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:r.push(_)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;di.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return R(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),o=n.add(i);return[e.unproject(n,t.z),e.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),i=new O(e[0],e[1]);return this.options.noWrap||(i=this._map.wrapLatLngBounds(i)),i},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new Z(+e[0],+e[1]);return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(ie(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ae(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=h,t.onmousemove=h,$&&this.options.opacity<1&&ce(t,this.options.opacity),et&&!it&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),n(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&T(n(this._tileReady,this,t,null,s)),pe(s,i),this._tiles[o]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var o=this._tileCoordsToKey(t);(i=this._tiles[o])&&(i.loaded=+new Date,this._map._fadeAnimated?(ce(i.el,0),M(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(ae(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),$||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(n(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new Z(this._wrapX?a(t.x,this._wrapX):t.x,this._wrapY?a(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new I(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),tn=Qi.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&Lt&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),et||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return Le(i,"load",n(this._tileOnLoad,this,e,i)),Le(i,"error",n(this._tileOnError,this,e,i)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),i.alt="",i.setAttribute("role","presentation"),i.src=this.getTileUrl(t),i},getTileUrl:function(t){var i={r:Lt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return m(this._url,e(i,this.options))},_tileOnLoad:function(t,e){$?setTimeout(n(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=h,e.onerror=h,e.complete||(e.src=v,ie(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t];if(e)return ot||e.el.setAttribute("src",v),Qi.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==v))return Qi.prototype._tileReady.call(this,t,e,i)}});function en(t,e){return new tn(t,e)}var nn=tn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var n=e({},this.defaultWmsParams);for(var o in i)o in this.options||(n[o]=i[o]);var s=(i=d(this,i)).detectRetina&&Lt?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,tn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,n=A(i.project(e[0]),i.project(e[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===xi?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=tn.prototype.getTileUrl.call(this,t);return a+_(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return e(this.wmsParams,t),i||this.redraw(),this}});tn.WMS=nn,en.wms=function(t,e){return new nn(t,e)};var on=bi.extend({options:{padding:.1,tolerance:0},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&ae(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=me(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),r=this._map.project(t,e).subtract(s),a=o.multiplyBy(-i).add(n).add(o).subtract(r);mt?_e(this._container,a,i):pe(this._container,a)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new I(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),sn=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){on.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Le(t,"mousemove",this._onMouseMove,this),Le(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Le(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){M(this._redrawRequest),delete this._ctx,ie(this._container),Me(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=Lt?2:1;pe(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",Lt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){on.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,n=e.prev;i?i.prev=n:this._drawLast=n,n?n.next=i:this._drawFirst=i,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,i,n=t.options.dashArray.split(/[, ]+/),o=[];for(i=0;i')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),hn={_initContainer:function(){this._container=ee("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(on.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=an("shape");ae(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=an("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ie(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e||(e=t._stroke=an("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=f(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=an("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){oe(t._container)},_bringToBack:function(t){se(t._container)}},un=Ct?an:K,ln=on.extend({getEvents:function(){var t=on.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=un("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=un("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ie(this._container),Me(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){on.prototype._update.call(this);var t=this._bounds,e=t.getSize(),i=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),pe(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=un("path");t.options.className&&ae(e,t.options.className),t.options.interactive&&ae(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ie(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,i=t.options;e&&(i.stroke?(e.setAttribute("stroke",i.color),e.setAttribute("stroke-opacity",i.opacity),e.setAttribute("stroke-width",i.weight),e.setAttribute("stroke-linecap",i.lineCap),e.setAttribute("stroke-linejoin",i.lineJoin),i.dashArray?e.setAttribute("stroke-dasharray",i.dashArray):e.removeAttribute("stroke-dasharray"),i.dashOffset?e.setAttribute("stroke-dashoffset",i.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),i.fill?(e.setAttribute("fill",i.fillColor||i.color),e.setAttribute("fill-opacity",i.fillOpacity),e.setAttribute("fill-rule",i.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,Y(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){oe(t._path)},_bringToBack:function(t){se(t._path)}});function cn(t){return zt||Ct?new ln(t):null}Ct&&ln.include(hn),Ve.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&rn(t)||cn(t)}});var dn=Bi.extend({initialize:function(t,e){Bi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=R(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});ln.create=un,ln.pointsToPath=Y,Ii.geometryToLayer=Ai,Ii.coordsToLatLng=Ri,Ii.coordsToLatLngs=Ni,Ii.latLngToCoords=ji,Ii.latLngsToCoords=Di,Ii.getFeature=Wi,Ii.asFeature=Hi,Ve.mergeOptions({boxZoom:!0});var _n=$e.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Le(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Me(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ie(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Ht(),ge(),this._startPoint=this._map.mouseEventToContainerPoint(t),Le(document,{contextmenu:Ae,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ee("div","leaflet-zoom-box",this._container),ae(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new I(this._point,this._startPoint),i=e.getSize();pe(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(ie(this._box),he(this._container,"leaflet-crosshair")),Ft(),ve(),Me(document,{contextmenu:Ae,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(n(this._resetState,this),0);var e=new O(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Ve.addInitHook("addHandler","boxZoom",_n),Ve.mergeOptions({doubleClickZoom:!0});var pn=$e.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,o=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(o):e.setZoomAround(t.containerPoint,o)}});Ve.addInitHook("addHandler","doubleClickZoom",pn),Ve.mergeOptions({dragging:!0,inertia:!it,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var mn=$e.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new oi(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}ae(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){he(this._map._container,"leaflet-grab"),he(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=R(this._map.options.maxBounds);this._offsetLimit=A(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(i),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,s=(n+e+i)%t-e-i,r=Math.abs(o+i)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});Ve.addInitHook("addHandler","scrollWheelZoom",gn),Ve.mergeOptions({tap:!0,tapTolerance:15});var vn=$e.extend({addHooks:function(){Le(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Me(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Ie(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],i=e.target;this._startPos=this._newPos=new Z(e.clientX,e.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&ae(i,"leaflet-active"),this._holdTimeout=setTimeout(n((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))}),this),1e3),this._simulateEvent("mousedown",e),Le(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Me(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],i=e.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&he(i,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new Z(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var i=document.createEvent("MouseEvents");i._simulated=!0,e.target._simulatedClick=!0,i.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}});!wt||xt&&!ht||Ve.addInitHook("addHandler","tap",vn),Ve.mergeOptions({touchZoom:wt&&!it,bounceAtZoomLimits:!0});var yn=$e.extend({addHooks:function(){ae(this._map._container,"leaflet-touch-zoom"),Le(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){he(this._map._container,"leaflet-touch-zoom"),Me(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Le(document,"touchmove",this._onTouchMove,this),Le(document,"touchend",this._onTouchEnd,this),Ie(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),o=e.mouseEventToContainerPoint(t.touches[1]),s=i.distanceTo(o)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=i._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),M(this._animRequest);var a=n(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=T(a,this,!0),Ie(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,M(this._animRequest),Me(document,"touchmove",this._onTouchMove,this),Me(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Ve.addInitHook("addHandler","touchZoom",yn),Ve.BoxZoom=_n,Ve.DoubleClickZoom=pn,Ve.Drag=mn,Ve.Keyboard=fn,Ve.ScrollWheelZoom=gn,Ve.Tap=vn,Ve.TouchZoom=yn,t.version="1.7.1",t.Control=qe,t.control=Ge,t.Browser=kt,t.Evented=k,t.Mixin=ti,t.Util=z,t.Class=C,t.Handler=$e,t.extend=e,t.bind=n,t.stamp=s,t.setOptions=d,t.DomEvent=Fe,t.DomUtil=Pe,t.PosAnimation=Ue,t.Draggable=oi,t.LineUtil=_i,t.PolyUtil=mi,t.Point=Z,t.point=B,t.Bounds=I,t.bounds=A,t.Transformation=U,t.transformation=V,t.Projection=vi,t.LatLng=N,t.latLng=j,t.LatLngBounds=O,t.latLngBounds=R,t.CRS=W,t.GeoJSON=Ii,t.geoJSON=Ui,t.geoJson=Vi,t.Layer=bi,t.LayerGroup=Pi,t.layerGroup=function(t,e){return new Pi(t,e)},t.FeatureGroup=Li,t.featureGroup=function(t,e){return new Li(t,e)},t.ImageOverlay=qi,t.imageOverlay=function(t,e,i){return new qi(t,e,i)},t.VideoOverlay=Gi,t.videoOverlay=function(t,e,i){return new Gi(t,e,i)},t.SVGOverlay=Ki,t.svgOverlay=function(t,e,i){return new Ki(t,e,i)},t.DivOverlay=Yi,t.Popup=Xi,t.popup=function(t,e){return new Xi(t,e)},t.Tooltip=Ji,t.tooltip=function(t,e){return new Ji(t,e)},t.Icon=Ti,t.icon=function(t){return new Ti(t)},t.DivIcon=$i,t.divIcon=function(t){return new $i(t)},t.Marker=Ci,t.marker=function(t,e){return new Ci(t,e)},t.TileLayer=tn,t.tileLayer=en,t.GridLayer=Qi,t.gridLayer=function(t){return new Qi(t)},t.SVG=ln,t.svg=cn,t.Renderer=on,t.Canvas=sn,t.canvas=rn,t.Path=Si,t.CircleMarker=ki,t.circleMarker=function(t,e){return new ki(t,e)},t.Circle=Zi,t.circle=function(t,e,i){return new Zi(t,e,i)},t.Polyline=Ei,t.polyline=function(t,e){return new Ei(t,e)},t.Polygon=Bi,t.polygon=function(t,e){return new Bi(t,e)},t.Rectangle=dn,t.rectangle=function(t,e){return new dn(t,e)},t.Map=Ve,t.map=function(t,e){return new Ve(t,e)};var xn=window.L;t.noConflict=function(){return window.L=xn,this},window.L=t}(e)},function(t,e,i){"use strict";i.r(e);var n=i(0),o=i.n(n),s=i(1),r=i(3),a=i.n(r),h=i(5),u=i.n(h),l=i(6),c=i.n(l);function d(t,e){return(d=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var _=i(7),p=function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,d(e,i);var s=n.prototype;return s.oninit=function(e){t.prototype.oninit.call(this,e),this.location=o.a.session.user.location()},s.view=function(t){return m("fieldset",{className:"Settings-theme"},m("legend",null,o.a.translator.trans("justoverclock-users-map-location.forum.location")),m("p",{className:"location-description"},o.a.translator.trans("justoverclock-users-map-location.forum.locationDescription")),m("input",{type:"text",className:"FormControl location",id:"location",name:"location",value:this.location,onblur:this.saveValue.bind(this)}))},s.saveValue=function(t){o.a.session.user.save({location:t.target.value}).then(o.a.alerts.show({type:"success"},o.a.translator.trans("justoverclock-users-map-location.forum.locationSaved")))},n}(i.n(_).a),f=i(4),g=i.n(f);i(9);o.a.initializers.add("justoverclock/users-map-location",(function(){u.a.prototype.location=c.a.attribute("location"),Object(s.extend)(g.a.prototype,"oncreate",(function(){var t=this,e=this.attrs.user.location(),i=o.a.forum.attribute("justoverclock-users-map-location.mapBox-api-key");if(""!==e)fetch("https://nominatim.openstreetmap.org/search?city="+e+"&format=json").then((function(t){return t.json()})).then((function(e){t.latitude=e[0].lat,t.longitude=e[0].lon;var n=o.a.forum.attribute("baseUrl")+"/assets/extensions/justoverclock-users-map-location/marker-icon.png",s=(L.icon({iconUrl:n,iconSize:[28,45]}),L.map("map2").setView([t.latitude,t.longitude],13));L.tileLayer("https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}",{attribution:'Map data © OpenStreetMap contributors, Imagery © Mapbox, Developed by Marco Colia',maxZoom:18,id:"mapbox/streets-v11",tileSize:512,zoomOffset:-1,accessToken:i}).addTo(s)}))})),Object(s.extend)(a.a.prototype,"oncreate",(function(){var t=this,e=o.a.session.user.location(),i=o.a.forum.attribute("justoverclock-users-map-location.mapBox-api-key");if(""!==e)fetch("https://nominatim.openstreetmap.org/search?city="+e+"&format=json").then((function(t){return t.json()})).then((function(e){t.latitude=e[0].lat,t.longitude=e[0].lon;var n=o.a.forum.attribute("baseUrl")+"/assets/extensions/justoverclock-users-map-location/marker-icon.png",s=L.icon({iconUrl:n,iconSize:[28,45]}),r=L.map("map").setView([t.latitude,t.longitude],13);L.marker([t.latitude,t.longitude],{icon:s}).addTo(r),L.tileLayer("https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}",{attribution:'Map data © OpenStreetMap contributors, Imagery © Mapbox, Developed by Marco Colia',maxZoom:18,id:"mapbox/streets-v11",tileSize:512,zoomOffset:-1,accessToken:i}).addTo(r)}))})),Object(s.extend)(a.a.prototype,"settingsItems",(function(t){t.add("location",m(p,null)),t.add("mapDiv",m("div",{className:"map-div",id:"map"}))})),Object(s.extend)(g.a.prototype,"infoItems",(function(t){""!==this.attrs.user.location()&&t.add("mapLocation",m("div",{className:"map-div",id:"map2"}),-100)}))}))}]);
//# sourceMappingURL=forum.js.map
\ No newline at end of file
diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map
index e89a285..15a6cc3 100644
--- a/js/dist/forum.js.map
+++ b/js/dist/forum.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://@justoverclock/users-map-location/webpack/bootstrap","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/app']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/extend']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/models/User']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/Model']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/components/UserCard']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['forum/components/SettingsPage']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['Component']\"","webpack://@justoverclock/users-map-location/external \"flarum.core.compat['common/components/Switch']\"","webpack://@justoverclock/users-map-location/../src/core/Util.js","webpack://@justoverclock/users-map-location/../src/core/Class.js","webpack://@justoverclock/users-map-location/../src/core/Events.js","webpack://@justoverclock/users-map-location/../src/geometry/Point.js","webpack://@justoverclock/users-map-location/../src/geometry/Bounds.js","webpack://@justoverclock/users-map-location/../src/geo/LatLngBounds.js","webpack://@justoverclock/users-map-location/../src/geo/LatLng.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.js","webpack://@justoverclock/users-map-location/../src/geo/projection/Projection.SphericalMercator.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.Earth.js","webpack://@justoverclock/users-map-location/../src/geometry/Transformation.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.EPSG3857.js","webpack://@justoverclock/users-map-location/../src/layer/vector/SVG.Util.js","webpack://@justoverclock/users-map-location/../src/core/Browser.js","webpack://@justoverclock/users-map-location/../src/dom/DomEvent.Pointer.js","webpack://@justoverclock/users-map-location/../src/dom/DomEvent.DoubleTap.js","webpack://@justoverclock/users-map-location/../src/dom/DomUtil.js","webpack://@justoverclock/users-map-location/../src/dom/DomEvent.js","webpack://@justoverclock/users-map-location/../src/dom/PosAnimation.js","webpack://@justoverclock/users-map-location/../src/map/Map.js","webpack://@justoverclock/users-map-location/../src/control/Control.js","webpack://@justoverclock/users-map-location/../src/control/Control.Layers.js","webpack://@justoverclock/users-map-location/../src/control/Control.Zoom.js","webpack://@justoverclock/users-map-location/../src/control/Control.Scale.js","webpack://@justoverclock/users-map-location/../src/control/Control.Attribution.js","webpack://@justoverclock/users-map-location/../src/control/index.js","webpack://@justoverclock/users-map-location/../src/core/Handler.js","webpack://@justoverclock/users-map-location/../src/core/index.js","webpack://@justoverclock/users-map-location/../src/geometry/LineUtil.js","webpack://@justoverclock/users-map-location/../src/dom/Draggable.js","webpack://@justoverclock/users-map-location/../src/geometry/PolyUtil.js","webpack://@justoverclock/users-map-location/../src/geo/projection/Projection.LonLat.js","webpack://@justoverclock/users-map-location/../src/geo/projection/Projection.Mercator.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.EPSG3395.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.EPSG4326.js","webpack://@justoverclock/users-map-location/../src/geo/crs/CRS.Simple.js","webpack://@justoverclock/users-map-location/../src/geo/crs/index.js","webpack://@justoverclock/users-map-location/../src/layer/Layer.js","webpack://@justoverclock/users-map-location/../src/layer/LayerGroup.js","webpack://@justoverclock/users-map-location/../src/layer/FeatureGroup.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Icon.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Icon.Default.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Marker.Drag.js","webpack://@justoverclock/users-map-location/../src/layer/marker/Marker.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Path.js","webpack://@justoverclock/users-map-location/../src/layer/vector/CircleMarker.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Circle.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Polyline.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Polygon.js","webpack://@justoverclock/users-map-location/../src/layer/GeoJSON.js","webpack://@justoverclock/users-map-location/../src/layer/ImageOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/VideoOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/SVGOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/DivOverlay.js","webpack://@justoverclock/users-map-location/../src/layer/Popup.js","webpack://@justoverclock/users-map-location/../src/layer/Tooltip.js","webpack://@justoverclock/users-map-location/../src/layer/marker/DivIcon.js","webpack://@justoverclock/users-map-location/../src/layer/marker/index.js","webpack://@justoverclock/users-map-location/../src/layer/tile/GridLayer.js","webpack://@justoverclock/users-map-location/../src/layer/tile/TileLayer.js","webpack://@justoverclock/users-map-location/../src/layer/tile/TileLayer.WMS.js","webpack://@justoverclock/users-map-location/../src/layer/tile/index.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Renderer.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Canvas.js","webpack://@justoverclock/users-map-location/../src/layer/vector/SVG.VML.js","webpack://@justoverclock/users-map-location/../src/layer/vector/SVG.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Renderer.getRenderer.js","webpack://@justoverclock/users-map-location/../src/layer/vector/Rectangle.js","webpack://@justoverclock/users-map-location/../src/layer/vector/index.js","webpack://@justoverclock/users-map-location/../src/layer/index.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.BoxZoom.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.DoubleClickZoom.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.Drag.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.Keyboard.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.ScrollWheelZoom.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.Tap.js","webpack://@justoverclock/users-map-location/../src/map/handler/Map.TouchZoom.js","webpack://@justoverclock/users-map-location/../src/map/index.js","webpack://@justoverclock/users-map-location/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@justoverclock/users-map-location/./src/forum/components/AddLocationComponent.js","webpack://@justoverclock/users-map-location/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@justoverclock/users-map-location/./src/forum/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","extend","dest","j","len","src","arguments","length","F","proto","fn","obj","slice","Array","apply","args","concat","lastId","stamp","_leaflet_id","throttle","time","context","lock","wrapperFn","later","setTimeout","wrapNum","x","range","includeMax","max","min","falseFn","formatNum","num","digits","pow","Math","undefined","round","trim","str","replace","splitWords","split","setOptions","options","getParamString","existingUrl","uppercase","params","push","encodeURIComponent","toUpperCase","indexOf","join","templateRe","template","data","Error","isArray","toString","array","el","emptyImageUrl","getPrefixed","window","lastTime","timeoutDefer","Date","timeToCall","requestFn","requestAnimationFrame","cancelFn","cancelAnimationFrame","id","clearTimeout","requestAnimFrame","immediate","cancelAnimFrame","Class","props","NewClass","this","initialize","callInitHooks","parentProto","__super__","Util.create","constructor","statics","Util.extend","includes","L","Mixin","Util.isArray","Events","console","warn","stack","checkDeprecatedMixinEvents","_initHooks","_initHooksCalled","include","mergeOptions","addInitHook","init","on","types","type","_on","Util.splitWords","off","_off","_events","typeListeners","newListener","ctx","listeners","Util.falseFn","_firingCount","splice","fire","propagate","listens","event","target","sourceTarget","_propagateEvent","_eventParents","once","handler","Util.bind","addEventParent","Util.stamp","removeEventParent","e","layer","propagatedFrom","addEventListener","removeEventListener","clearAllEventListeners","addOneTimeEventListener","fireEvent","hasEventListeners","Evented","Point","y","trunc","v","floor","ceil","toPoint","Bounds","a","b","points","toBounds","LatLngBounds","corner1","corner2","latlngs","toLatLngBounds","LatLng","lat","lng","alt","isNaN","toLatLng","lon","clone","add","point","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","sqrt","equals","contains","abs","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","getSize","intersects","bounds","min2","max2","xIntersects","yIntersects","overlaps","xOverlaps","yOverlaps","isValid","sw2","ne2","sw","_southWest","ne","_northEast","pad","bufferRatio","heightBuffer","widthBuffer","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","latIntersects","lngIntersects","latOverlaps","lngOverlaps","toBBoxString","maxMargin","precision","Util.formatNum","other","Earth","distance","wrap","wrapLatLng","sizeInMeters","latAccuracy","lngAccuracy","cos","PI","CRS","latLngToPoint","latlng","zoom","projectedPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransformedPoint","untransform","unproject","log","LN2","getProjectedBounds","infinite","transform","wrapLng","Util.wrapNum","wrapLat","wrapLatLngBounds","center","newCenter","latShift","lngShift","R","latlng1","latlng2","rad","lat1","lat2","sinDLat","sin","sinDLon","atan2","SphericalMercator","MAX_LATITUDE","atan","exp","Transformation","_a","_b","_c","_d","toTransformation","EPSG3857","code","EPSG900913","svgCreate","document","createElementNS","pointsToPath","rings","closed","len2","Browser.svg","style","documentElement","ie","ielt9","edge","navigator","webkit","userAgentContains","android","android23","webkitVer","parseInt","exec","userAgent","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","platform","ie3d","webkit3d","WebKitCSSMatrix","gecko3d","any3d","L_DISABLE_3D","mobile","orientation","mobileWebkit","mobileWebkit3d","msPointer","PointerEvent","MSPointerEvent","pointer","touch","L_NO_TOUCH","DocumentTouch","mobileOpera","mobileGecko","retina","devicePixelRatio","screen","deviceXDPI","logicalXDPI","passiveEvents","supportsPassiveOption","opts","canvas","createElement","getContext","svg","createSVGRect","vml","div","innerHTML","shape","firstChild","behavior","adj","toLowerCase","POINTER_DOWN","Browser.msPointer","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","_pointers","_pointerDocListener","addPointerListener","onDown","MSPOINTER_TYPE_TOUCH","pointerType","DomEvent.preventDefault","_handlePointer","_globalPointerDown","_globalPointerMove","_globalPointerUp","_addPointerStart","onMove","MSPOINTER_TYPE_MOUSE","buttons","_addPointerMove","onUp","_addPointerEnd","pointerId","touches","changedTouches","disableTextSelection","enableTextSelection","_userSelect","_outlineElement","_outlineStyle","_touchstart","Browser.pointer","_touchend","_pre","TRANSFORM","testProp","TRANSITION","TRANSITION_END","getElementById","getStyle","currentStyle","defaultView","css","getComputedStyle","tagName","className","container","appendChild","remove","parent","parentNode","removeChild","empty","toFront","lastChild","toBack","insertBefore","hasClass","classList","getClass","RegExp","test","addClass","classes","setClass","removeClass","Util.trim","baseVal","correspondingElement","setOpacity","opacity","filter","filterName","filters","item","Enabled","Opacity","_setOpacityIE","setTransform","offset","pos","Browser.ie3d","setPosition","_leaflet_pos","Browser.any3d","left","top","getPosition","DomEvent.on","DomEvent.off","userSelectProperty","disableImageDrag","enableImageDrag","preventOutline","element","tabIndex","restoreOutline","outline","getSizedParentNode","offsetWidth","offsetHeight","body","getScale","rect","getBoundingClientRect","width","height","boundingClientRect","addOne","eventsKey","removeOne","browserFiresNativeDblClick","Browser.edge","Browser.safari","mouseSubst","mouseenter","mouseleave","wheel","originalHandler","Browser.touch","last","doubleTap","onTouchStart","isPrimary","now","delta","onTouchEnd","cancelBubble","prop","newTouch","button","Browser.passiveEvents","passive","addDoubleTapListener","isExternalTarget","attachEvent","removePointerListener","touchstart","touchend","dblclick","removeDoubleTapListener","detachEvent","stopPropagation","originalEvent","_stopped","skipped","disableScrollPropagation","disableClickPropagation","fakeStop","preventDefault","returnValue","stop","getMousePosition","clientX","clientY","clientLeft","clientTop","wheelPxFactor","Browser.win","Browser.chrome","Browser.gecko","getWheelDelta","wheelDeltaY","deltaY","deltaMode","deltaX","deltaZ","wheelDelta","detail","skipEvents","events","related","relatedTarget","err","PosAnimation","run","newPos","duration","easeLinearity","_el","_inProgress","_duration","_easeOutPower","_startPos","DomUtil.getPosition","_offset","_startTime","_animate","_step","_complete","_animId","Util.requestAnimFrame","elapsed","_runFrame","_easeOut","progress","DomUtil.setPosition","Util.cancelAnimFrame","Map","crs","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","Util.setOptions","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","reset","_zoomAnimated","DomUtil.TRANSITION","Browser.mobileOpera","_createAnimProxy","_proxy","DomUtil.TRANSITION_END","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","viewHalf","centerOffset","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","getBounds","paddingTL","paddingTopLeft","padding","paddingBR","paddingBottomRight","getBoundsZoom","Infinity","paddingOffset","swPoint","nePoint","fitBounds","fitWorld","panTo","panBy","getZoom","_panAnim","_onPanTransitionStep","_onPanTransitionEnd","noMoveStart","DomUtil.addClass","_mapPane","_getMapPanePos","_rawPanBy","flyTo","targetCenter","targetZoom","from","to","size","startZoom","w0","w1","u1","rho","sq","sinh","cosh","r0","u","start","S","_moveStart","frame","easeOut","_flyToFrame","_move","getScaleZoom","w","_moveEnd","flyToBounds","_panInsideMaxBounds","setMinZoom","oldZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","pixelCenter","pixelPoint","pixelBounds","getPixelBounds","halfPixelBounds","paddedBounds","diff","invalidateSize","oldSize","_lastCenter","newSize","oldCenter","debounceMoveend","locate","_locateOptions","timeout","watch","_handleGeolocationError","message","onResponse","_handleGeolocationResponse","onError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","error","coords","latitude","longitude","accuracy","timestamp","addHandler","HandlerClass","enable","_containerId","_container","DomUtil.remove","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","pane","DomUtil.create","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","inside","nw","se","boundsSize","snap","scalex","scaley","_size","clientWidth","clientHeight","topLeftPoint","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","getContainer","toZoom","fromZoom","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","layerPoint","mouseEventToContainerPoint","DomEvent.getMousePosition","mouseEventToLayerPoint","mouseEventToLatLng","DomUtil.get","_onScroll","_fadeAnimated","Browser.retina","Browser.ielt9","position","DomUtil.getStyle","_initPanes","_initControlPos","panes","_paneRenderers","markerPane","shadowPane","loading","zoomChanged","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","onOff","_handleDOMEvent","_onMoveEnd","scrollTop","scrollLeft","_findEventTargets","targets","isHover","srcElement","dragging","_simulated","_draggableMoved","DomEvent.isExternalTarget","DomEvent.skipped","DomUtil.preventOutline","_fireDOMEvent","_mouseEvents","synth","isMarker","getLatLng","_radius","containerPoint","bubblingMouseEvents","Util.indexOf","enabled","moved","boxZoom","disable","whenReady","callback","_latLngToNewLayerPoint","topLeft","_latLngBoundsToNewLayerBounds","latLngBounds","_getCenterOffset","centerPoint","viewBounds","_getBoundsOffset","_limitOffset","newBounds","pxBounds","projectedMaxBounds","minOffset","maxOffset","_rebound","right","DomUtil.removeClass","proxy","mapPane","DomUtil.TRANSFORM","DomUtil.setTransform","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","z","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","startAnim","noUpdate","_animateToCenter","_animateToZoom","Control","map","_map","removeControl","addControl","addTo","onAdd","corner","_controlCorners","onRemove","_refocusOnMap","screenX","screenY","focus","control","corners","_controlContainer","createCorner","vSide","hSide","Layers","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","layerA","layerB","nameA","nameB","baseLayers","overlays","_layerControlInputs","_lastZIndex","_handlingClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","expand","_section","acceptableHeight","offsetTop","collapse","setAttribute","DomEvent.disableClickPropagation","DomEvent.disableScrollPropagation","section","Browser.android","link","_layersLink","href","title","DomEvent.stop","_baseLayersList","_separator","_overlaysList","overlay","sort","setZIndex","DomUtil.empty","baseLayersPresent","overlaysPresent","baseLayersCount","_addItem","display","_createRadioElement","checked","radioHtml","radioFragment","input","label","hasLayer","defaultChecked","layerId","_onInputClick","holder","inputs","addedLayers","removedLayers","addLayer","disabled","_expand","_collapse","Zoom","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","zoomName","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","shiftKey","html","zoomControl","Scale","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","maxMeters","_updateScales","_updateMetric","_updateImperial","meters","_getRoundNum","_updateScale","maxMiles","miles","feet","maxFeet","text","ratio","pow10","Attribution","prefix","_attributions","attributionControl","getAttribution","addAttribution","setPrefix","removeAttribution","attribs","prefixAndAttribs","attribution","Handler","_enabled","addHooks","removeHooks","_lastCode","START","END","mousedown","pointerdown","MSPointerDown","MOVE","Draggable","clickTolerance","dragStartTarget","_element","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","DomUtil.hasClass","which","DomUtil.disableImageDrag","DomUtil.disableTextSelection","_moving","first","sizedParent","DomUtil.getSizedParentNode","_startPoint","_parentScale","DomUtil.getScale","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_animRequest","_lastEvent","_updatePosition","DomUtil.enableImageDrag","DomUtil.enableTextSelection","simplify","tolerance","sqTolerance","markers","Uint8Array","_simplifyDPStep","index","sqDist","maxSqDist","_sqClosestPointOnSegment","newPoints","_simplifyDP","reducedPoints","prev","p1","p2","dx","dy","_reducePoints","pointToSegmentDistance","clipSegment","useLastCode","codeOut","newCode","codeA","_getBitCode","codeB","_getEdgeIntersection","dot","isFlat","_flat","clipPolygon","clippedPoints","k","edges","_code","LineUtil._getBitCode","LineUtil._getEdgeIntersection","LonLat","Mercator","R_MINOR","tmp","con","ts","tan","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","removeFrom","_mapToAdd","addInteractiveTarget","targetEl","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","eachLayer","method","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","oldZoomSpan","LayerGroup","getLayerId","clearLayers","invoke","methodName","getLayer","getLayers","zIndex","FeatureGroup","setStyle","bringToFront","bringToBack","Icon","popupAnchor","tooltipAnchor","createIcon","oldIcon","_createIcon","createShadow","_getIconUrl","img","_createImg","_setIconStyles","sizeOption","anchor","shadowAnchor","iconAnchor","marginLeft","marginTop","IconDefault","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","path","MarkerDrag","marker","_marker","icon","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","speed","autoPanSpeed","autoPanPadding","iconPos","origin","panBounds","movement","_panRequest","_oldLatLng","closePopup","autoPan","shadow","_shadow","_latlng","oldLatLng","Marker","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","draggable","latLng","_initIcon","update","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","getElement","_setPos","classToAdd","addIcon","mouseover","_bringToFront","mouseout","_resetZIndex","newShadow","addShadow","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","opt","DomUtil.setOpacity","_getPopupAnchor","_getTooltipAnchor","Path","stroke","color","weight","lineCap","lineJoin","dashArray","dashOffset","fill","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","CircleMarker","radius","setRadius","getRadius","_point","r2","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","Circle","legacyOptions","_mRadius","half","latR","bottom","lngR","acos","Polyline","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","isEmpty","closestLayerPoint","minDistance","minPoint","closest","LineUtil._sqClosestPointOnSegment","jLen","_parts","halfDist","segDist","dist","_rings","addLatLng","_defaultShape","_convertLatLngs","LineUtil.isFlat","result","flat","_projectLatlngs","_rawPxBounds","projectedBounds","ring","_clipPoints","segment","parts","LineUtil.clipSegment","_simplifyPoints","LineUtil.simplify","_updatePoly","part","LineUtil.pointToSegmentDistance","LineUtil._flat","Polygon","f","area","pop","clipped","PolyUtil.clipPolygon","GeoJSON","geojson","addData","feature","features","geometries","geometry","coordinates","geometryToLayer","asFeature","defaultOptions","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","properties","pointToLayerFn","markersInheritOptions","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","toGeoJSON","geoJSON","multi","holes","toMultiPoint","isGeometryCollection","jsons","json","geoJson","ImageOverlay","crossOrigin","errorOverlayUrl","url","_url","_image","_initImage","styleOpts","DomUtil.toFront","DomUtil.toBack","setUrl","setBounds","zoomanim","wasElementSupplied","onselectstart","onmousemove","onload","onerror","_overlayOnError","image","errorUrl","VideoOverlay","autoplay","loop","keepAspectRatio","muted","vid","onloadeddata","sourceElements","getElementsByTagName","sources","source","SVGOverlay","DivOverlay","_source","_removeTimeout","getContent","_content","setContent","content","visibility","_updateContent","_updateLayout","isOpen","_prepareOpen","node","_contentNode","hasChildNodes","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Popup","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","openOn","openPopup","popup","DomEvent.stopPropagation","closeOnClick","closePopupOnClick","preclick","_close","moveend","wrapper","_wrapper","_tipContainer","_tip","_closeButton","_onCloseButtonClick","whiteSpace","marginBottom","containerHeight","containerWidth","layerPos","containerPos","_popupHandlersAdded","click","_openPopup","keypress","_onKeyPress","move","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","keyCode","Tooltip","direction","permanent","sticky","tooltip","closeTooltip","_setPosition","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","openTooltip","bindTooltip","_tooltip","_initTooltipInteractions","unbindTooltip","_tooltipHandlersAdded","_moveTooltip","_openTooltip","mousemove","toggleTooltip","isTooltipOpen","setTooltipContent","getTooltip","DivIcon","bgPos","Element","backgroundPosition","Default","GridLayer","tileSize","Browser.mobile","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","viewprereset","_invalidateAll","Util.throttle","createTile","getTileSize","compare","children","edgeZIndex","isFinite","nextFrame","willPrune","tile","current","loaded","fade","active","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_updateLevels","Number","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","level","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","x2","y2","z2","coords2","_tileCoordsToKey","animating","_setView","_clampZoom","noPrune","tileZoom","tileZoomChanged","_abortLoading","_resetGrid","_setZoomTransforms","translate","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","mapZoom","halfSize","tileRange","tileCenter","queue","margin","noPruneRange","_isValidTile","fragment","createDocumentFragment","_addTile","tileBounds","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","nwPoint","sePoint","bp","_initTile","Browser.android23","WebkitBackfaceVisibility","tilePos","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","newCoords","TileLayer","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","_onTileRemove","noRedraw","done","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","invertedY","Util.template","getAttribute","tilePoint","complete","Util.emptyImageUrl","Browser.androidStock","tileLayer","TileLayerWMS","defaultWmsParams","service","request","styles","format","transparent","version","wmsParams","realRetina","_crs","_wmsVersion","parseFloat","projectionKey","bbox","setParams","WMS","wms","Renderer","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","ev","_updateTransform","currentCenterPoint","_center","topLeftOffset","Canvas","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_ctx","_redrawRequest","_redrawBounds","_redraw","_updateDashArray","order","_order","_drawLast","next","_drawFirst","_requestRedraw","_extendRedrawBounds","dashValue","_dashArray","_clear","clearRect","save","restore","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","clickedLayer","DomEvent.fakeStop","_fireEvent","moving","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","candidateHoveredLayer","Browser.canvas","vmlCreate","namespaces","vmlMixin","coordsize","_stroke","_fill","stroked","filled","dashStyle","endcap","joinstyle","_setPath","Browser.vml","SVG","zoomstart","_onZoomStart","_rootGroup","_svgSize","removeAttribute","_getPaneRenderer","_createRenderer","preferCanvas","Rectangle","_boundsToLatLngs","BoxZoom","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","keydown","_onKeyDown","_box","_finish","boxZoomBounds","doubleClickZoom","DoubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","Drag","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","shift","pxCenter","pxWorldCenter","_initialWorldOffset","_worldWidth","_viscousLimit","threshold","limit","worldWidth","halfWidth","newX1","newX2","newX","noInertia","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","keyboardPanDelta","Keyboard","keyCodes","down","up","_setPanDelta","_setZoomDelta","_onFocus","blur","_onBlur","_addHooks","_removeHooks","_focused","docEl","scrollTo","panDelta","keys","_panKeys","codes","_zoomKeys","altKey","ctrlKey","metaKey","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","ScrollWheelZoom","_onWheelScroll","_delta","DomEvent.getWheelDelta","debounce","_lastMousePos","_timer","_performZoom","d2","d3","d4","tap","tapTolerance","Tap","_fireClick","_holdTimeout","_isTapValid","_simulateEvent","touchmove","simulatedEvent","createEvent","_simulatedClick","initMouseEvent","dispatchEvent","touchZoom","bounceAtZoomLimits","TouchZoom","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","moveFn","video","_setPrototypeOf","setPrototypeOf","__proto__","AddLocationComponent","subClass","superClass","oninit","vnode","search_country","app","session","user","location_country","search_city","location_postcode","location_city","location","location_latitude","location_longitude","enableLocation","locationMarker","view","translator","trans","state","onchange","val","setEnableLocation","for","onblur","countryChanged","cityChanged","oncreate","onupdate","mapElements","dom","mapElement","publicToken","forum","attribute","markerIconPath","markerIcon","accessToken","updateMap","postcodeRegexps","postcode","city","postcodeReIdx","postcodeRe","re","match","encodeURI","query","fetch","then","responseText","response","foundResult","idx","attributes","address","country","location_countrycode","country_code","village","town","administrative","alerts","show","Component","initializers","User","Model","UserCard","items","attrs","originalResult","SettingsPage"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n","module.exports = flarum.core.compat['forum/app'];","module.exports = flarum.core.compat['common/extend'];","module.exports = flarum.core.compat['common/models/User'];","module.exports = flarum.core.compat['common/Model'];","module.exports = flarum.core.compat['forum/components/UserCard'];","module.exports = flarum.core.compat['forum/components/SettingsPage'];","module.exports = flarum.core.compat['Component'];","module.exports = flarum.core.compat['common/components/Switch'];","/*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n// @function extend(dest: Object, src?: Object): Object\r\n// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\nexport function extend(dest) {\r\n\tvar i, j, len, src;\r\n\r\n\tfor (j = 1, len = arguments.length; j < len; j++) {\r\n\t\tsrc = arguments[j];\r\n\t\tfor (i in src) {\r\n\t\t\tdest[i] = src[i];\r\n\t\t}\r\n\t}\r\n\treturn dest;\r\n}\r\n\r\n// @function create(proto: Object, properties?: Object): Object\r\n// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\nexport var create = Object.create || (function () {\r\n\tfunction F() {}\r\n\treturn function (proto) {\r\n\t\tF.prototype = proto;\r\n\t\treturn new F();\r\n\t};\r\n})();\r\n\r\n// @function bind(fn: Function, …): Function\r\n// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n// Has a `L.bind()` shortcut.\r\nexport function bind(fn, obj) {\r\n\tvar slice = Array.prototype.slice;\r\n\r\n\tif (fn.bind) {\r\n\t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n\t}\r\n\r\n\tvar args = slice.call(arguments, 2);\r\n\r\n\treturn function () {\r\n\t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n\t};\r\n}\r\n\r\n// @property lastId: Number\r\n// Last unique ID used by [`stamp()`](#util-stamp)\r\nexport var lastId = 0;\r\n\r\n// @function stamp(obj: Object): Number\r\n// Returns the unique ID of an object, assigning it one if it doesn't have it.\r\nexport function stamp(obj) {\r\n\t/*eslint-disable */\r\n\tobj._leaflet_id = obj._leaflet_id || ++lastId;\r\n\treturn obj._leaflet_id;\r\n\t/* eslint-enable */\r\n}\r\n\r\n// @function throttle(fn: Function, time: Number, context: Object): Function\r\n// Returns a function which executes function `fn` with the given scope `context`\r\n// (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n// `fn` will be called no more than one time per given amount of `time`. The arguments\r\n// received by the bound function will be any arguments passed when binding the\r\n// function, followed by any arguments passed when invoking the bound function.\r\n// Has an `L.throttle` shortcut.\r\nexport function throttle(fn, time, context) {\r\n\tvar lock, args, wrapperFn, later;\r\n\r\n\tlater = function () {\r\n\t\t// reset lock and call if queued\r\n\t\tlock = false;\r\n\t\tif (args) {\r\n\t\t\twrapperFn.apply(context, args);\r\n\t\t\targs = false;\r\n\t\t}\r\n\t};\r\n\r\n\twrapperFn = function () {\r\n\t\tif (lock) {\r\n\t\t\t// called too soon, queue to call later\r\n\t\t\targs = arguments;\r\n\r\n\t\t} else {\r\n\t\t\t// call and lock until later\r\n\t\t\tfn.apply(context, arguments);\r\n\t\t\tsetTimeout(later, time);\r\n\t\t\tlock = true;\r\n\t\t}\r\n\t};\r\n\r\n\treturn wrapperFn;\r\n}\r\n\r\n// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n// Returns the number `num` modulo `range` in such a way so it lies within\r\n// `range[0]` and `range[1]`. The returned value will be always smaller than\r\n// `range[1]` unless `includeMax` is set to `true`.\r\nexport function wrapNum(x, range, includeMax) {\r\n\tvar max = range[1],\r\n\t min = range[0],\r\n\t d = max - min;\r\n\treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n}\r\n\r\n// @function falseFn(): Function\r\n// Returns a function which always returns `false`.\r\nexport function falseFn() { return false; }\r\n\r\n// @function formatNum(num: Number, digits?: Number): Number\r\n// Returns the number `num` rounded to `digits` decimals, or to 6 decimals by default.\r\nexport function formatNum(num, digits) {\r\n\tvar pow = Math.pow(10, (digits === undefined ? 6 : digits));\r\n\treturn Math.round(num * pow) / pow;\r\n}\r\n\r\n// @function trim(str: String): String\r\n// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\nexport function trim(str) {\r\n\treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n}\r\n\r\n// @function splitWords(str: String): String[]\r\n// Trims and splits the string on whitespace and returns the array of parts.\r\nexport function splitWords(str) {\r\n\treturn trim(str).split(/\\s+/);\r\n}\r\n\r\n// @function setOptions(obj: Object, options: Object): Object\r\n// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\nexport function setOptions(obj, options) {\r\n\tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n\t\tobj.options = obj.options ? create(obj.options) : {};\r\n\t}\r\n\tfor (var i in options) {\r\n\t\tobj.options[i] = options[i];\r\n\t}\r\n\treturn obj.options;\r\n}\r\n\r\n// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n// Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n// be appended at the end. If `uppercase` is `true`, the parameter names will\r\n// be uppercased (e.g. `'?A=foo&B=bar'`)\r\nexport function getParamString(obj, existingUrl, uppercase) {\r\n\tvar params = [];\r\n\tfor (var i in obj) {\r\n\t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n\t}\r\n\treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n}\r\n\r\nvar templateRe = /\\{ *([\\w_-]+) *\\}/g;\r\n\r\n// @function template(str: String, data: Object): String\r\n// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n// `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n// data values — they will be evaluated passing `data` as an argument.\r\nexport function template(str, data) {\r\n\treturn str.replace(templateRe, function (str, key) {\r\n\t\tvar value = data[key];\r\n\r\n\t\tif (value === undefined) {\r\n\t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n\t\t} else if (typeof value === 'function') {\r\n\t\t\tvalue = value(data);\r\n\t\t}\r\n\t\treturn value;\r\n\t});\r\n}\r\n\r\n// @function isArray(obj): Boolean\r\n// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\nexport var isArray = Array.isArray || function (obj) {\r\n\treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n};\r\n\r\n// @function indexOf(array: Array, el: Object): Number\r\n// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\nexport function indexOf(array, el) {\r\n\tfor (var i = 0; i < array.length; i++) {\r\n\t\tif (array[i] === el) { return i; }\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n// @property emptyImageUrl: String\r\n// Data URI string containing a base64-encoded empty GIF image.\r\n// Used as a hack to free memory from unused images on WebKit-powered\r\n// mobile devices (by setting image `src` to this string).\r\nexport var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n// inspired by http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\nfunction getPrefixed(name) {\r\n\treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n}\r\n\r\nvar lastTime = 0;\r\n\r\n// fallback for IE 7-8\r\nfunction timeoutDefer(fn) {\r\n\tvar time = +new Date(),\r\n\t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n\tlastTime = time + timeToCall;\r\n\treturn window.setTimeout(fn, timeToCall);\r\n}\r\n\r\nexport var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\nexport var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n\t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n// Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n// `context` if given. When `immediate` is set, `fn` is called immediately if\r\n// the browser doesn't have native support for\r\n// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n// otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\nexport function requestAnimFrame(fn, context, immediate) {\r\n\tif (immediate && requestFn === timeoutDefer) {\r\n\t\tfn.call(context);\r\n\t} else {\r\n\t\treturn requestFn.call(window, bind(fn, context));\r\n\t}\r\n}\r\n\r\n// @function cancelAnimFrame(id: Number): undefined\r\n// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\nexport function cancelAnimFrame(id) {\r\n\tif (id) {\r\n\t\tcancelFn.call(window, id);\r\n\t}\r\n}\r\n","import * as Util from './Util';\r\n\r\n// @class Class\r\n// @aka L.Class\r\n\r\n// @section\r\n// @uninheritable\r\n\r\n// Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\nexport function Class() {}\r\n\r\nClass.extend = function (props) {\r\n\r\n\t// @function extend(props: Object): Function\r\n\t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n\t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n\tvar NewClass = function () {\r\n\r\n\t\t// call the constructor\r\n\t\tif (this.initialize) {\r\n\t\t\tthis.initialize.apply(this, arguments);\r\n\t\t}\r\n\r\n\t\t// call all constructor hooks\r\n\t\tthis.callInitHooks();\r\n\t};\r\n\r\n\tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n\tvar proto = Util.create(parentProto);\r\n\tproto.constructor = NewClass;\r\n\r\n\tNewClass.prototype = proto;\r\n\r\n\t// inherit parent's statics\r\n\tfor (var i in this) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n\t\t\tNewClass[i] = this[i];\r\n\t\t}\r\n\t}\r\n\r\n\t// mix static properties into the class\r\n\tif (props.statics) {\r\n\t\tUtil.extend(NewClass, props.statics);\r\n\t\tdelete props.statics;\r\n\t}\r\n\r\n\t// mix includes into the prototype\r\n\tif (props.includes) {\r\n\t\tcheckDeprecatedMixinEvents(props.includes);\r\n\t\tUtil.extend.apply(null, [proto].concat(props.includes));\r\n\t\tdelete props.includes;\r\n\t}\r\n\r\n\t// merge options\r\n\tif (proto.options) {\r\n\t\tprops.options = Util.extend(Util.create(proto.options), props.options);\r\n\t}\r\n\r\n\t// mix given properties into the prototype\r\n\tUtil.extend(proto, props);\r\n\r\n\tproto._initHooks = [];\r\n\r\n\t// add method for calling all hooks\r\n\tproto.callInitHooks = function () {\r\n\r\n\t\tif (this._initHooksCalled) { return; }\r\n\r\n\t\tif (parentProto.callInitHooks) {\r\n\t\t\tparentProto.callInitHooks.call(this);\r\n\t\t}\r\n\r\n\t\tthis._initHooksCalled = true;\r\n\r\n\t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n\t\t\tproto._initHooks[i].call(this);\r\n\t\t}\r\n\t};\r\n\r\n\treturn NewClass;\r\n};\r\n\r\n\r\n// @function include(properties: Object): this\r\n// [Includes a mixin](#class-includes) into the current class.\r\nClass.include = function (props) {\r\n\tUtil.extend(this.prototype, props);\r\n\treturn this;\r\n};\r\n\r\n// @function mergeOptions(options: Object): this\r\n// [Merges `options`](#class-options) into the defaults of the class.\r\nClass.mergeOptions = function (options) {\r\n\tUtil.extend(this.prototype.options, options);\r\n\treturn this;\r\n};\r\n\r\n// @function addInitHook(fn: Function): this\r\n// Adds a [constructor hook](#class-constructor-hooks) to the class.\r\nClass.addInitHook = function (fn) { // (Function) || (String, args...)\r\n\tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n\tvar init = typeof fn === 'function' ? fn : function () {\r\n\t\tthis[fn].apply(this, args);\r\n\t};\r\n\r\n\tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n\tthis.prototype._initHooks.push(init);\r\n\treturn this;\r\n};\r\n\r\nfunction checkDeprecatedMixinEvents(includes) {\r\n\tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n\tincludes = Util.isArray(includes) ? includes : [includes];\r\n\r\n\tfor (var i = 0; i < includes.length; i++) {\r\n\t\tif (includes[i] === L.Mixin.Events) {\r\n\t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n\t\t\t\t'this property will be removed in future releases, ' +\r\n\t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n\t\t}\r\n\t}\r\n}\r\n","import {Class} from './Class';\r\nimport * as Util from './Util';\r\n\r\n/*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\nexport var Events = {\r\n\t/* @method on(type: String, fn: Function, context?: Object): this\r\n\t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n\t *\r\n\t * @alternative\r\n\t * @method on(eventMap: Object): this\r\n\t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\t */\r\n\ton: function (types, fn, context) {\r\n\r\n\t\t// types can be a map of types/handlers\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\t// we don't process space-separated events here for performance;\r\n\t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n\t\t\t\tthis._on(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t// types can be a string of space-separated words\r\n\t\t\ttypes = Util.splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._on(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t/* @method off(type: String, fn?: Function, context?: Object): this\r\n\t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n\t *\r\n\t * @alternative\r\n\t * @method off(eventMap: Object): this\r\n\t * Removes a set of type/listener pairs.\r\n\t *\r\n\t * @alternative\r\n\t * @method off: this\r\n\t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n\t */\r\n\toff: function (types, fn, context) {\r\n\r\n\t\tif (!types) {\r\n\t\t\t// clear all listeners if called without arguments\r\n\t\t\tdelete this._events;\r\n\r\n\t\t} else if (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis._off(type, types[type], fn);\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\ttypes = Util.splitWords(types);\r\n\r\n\t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n\t\t\t\tthis._off(types[i], fn, context);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// attach listener (without syntactic sugar now)\r\n\t_on: function (type, fn, context) {\r\n\t\tthis._events = this._events || {};\r\n\r\n\t\t/* get/init listeners for type */\r\n\t\tvar typeListeners = this._events[type];\r\n\t\tif (!typeListeners) {\r\n\t\t\ttypeListeners = [];\r\n\t\t\tthis._events[type] = typeListeners;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\t// Less memory footprint.\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\t\tvar newListener = {fn: fn, ctx: context},\r\n\t\t listeners = typeListeners;\r\n\r\n\t\t// check if fn already there\r\n\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlisteners.push(newListener);\r\n\t},\r\n\r\n\t_off: function (type, fn, context) {\r\n\t\tvar listeners,\r\n\t\t i,\r\n\t\t len;\r\n\r\n\t\tif (!this._events) { return; }\r\n\r\n\t\tlisteners = this._events[type];\r\n\r\n\t\tif (!listeners) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!fn) {\r\n\t\t\t// Set all removed listeners to noop so they are not called if remove happens in fire\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tlisteners[i].fn = Util.falseFn;\r\n\t\t\t}\r\n\t\t\t// clear all listeners for a type if function isn't specified\r\n\t\t\tdelete this._events[type];\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (context === this) {\r\n\t\t\tcontext = undefined;\r\n\t\t}\r\n\r\n\t\tif (listeners) {\r\n\r\n\t\t\t// find fn and remove it\r\n\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\tvar l = listeners[i];\r\n\t\t\t\tif (l.ctx !== context) { continue; }\r\n\t\t\t\tif (l.fn === fn) {\r\n\r\n\t\t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n\t\t\t\t\tl.fn = Util.falseFn;\r\n\r\n\t\t\t\t\tif (this._firingCount) {\r\n\t\t\t\t\t\t/* copy array in case events are being fired */\r\n\t\t\t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlisteners.splice(i, 1);\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n\t// Fires an event of the specified type. You can optionally provide an data\r\n\t// object — the first argument of the listener function will contain its\r\n\t// properties. The event can optionally be propagated to event parents.\r\n\tfire: function (type, data, propagate) {\r\n\t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n\t\tvar event = Util.extend({}, data, {\r\n\t\t\ttype: type,\r\n\t\t\ttarget: this,\r\n\t\t\tsourceTarget: data && data.sourceTarget || this\r\n\t\t});\r\n\r\n\t\tif (this._events) {\r\n\t\t\tvar listeners = this._events[type];\r\n\r\n\t\t\tif (listeners) {\r\n\t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n\t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n\t\t\t\t\tvar l = listeners[i];\r\n\t\t\t\t\tl.fn.call(l.ctx || this, event);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._firingCount--;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// propagate the event to parents (set with addEventParent)\r\n\t\t\tthis._propagateEvent(event);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method listens(type: String): Boolean\r\n\t// Returns `true` if a particular event type has any listeners attached to it.\r\n\tlistens: function (type, propagate) {\r\n\t\tvar listeners = this._events && this._events[type];\r\n\t\tif (listeners && listeners.length) { return true; }\r\n\r\n\t\tif (propagate) {\r\n\t\t\t// also check parents for listeners if event propagates\r\n\t\t\tfor (var id in this._eventParents) {\r\n\t\t\t\tif (this._eventParents[id].listens(type, propagate)) { return true; }\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t// @method once(…): this\r\n\t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n\tonce: function (types, fn, context) {\r\n\r\n\t\tif (typeof types === 'object') {\r\n\t\t\tfor (var type in types) {\r\n\t\t\t\tthis.once(type, types[type], fn);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tvar handler = Util.bind(function () {\r\n\t\t\tthis\r\n\t\t\t .off(types, fn, context)\r\n\t\t\t .off(types, handler, context);\r\n\t\t}, this);\r\n\r\n\t\t// add a listener that's executed once and removed after that\r\n\t\treturn this\r\n\t\t .on(types, fn, context)\r\n\t\t .on(types, handler, context);\r\n\t},\r\n\r\n\t// @method addEventParent(obj: Evented): this\r\n\t// Adds an event parent - an `Evented` that will receive propagated events\r\n\taddEventParent: function (obj) {\r\n\t\tthis._eventParents = this._eventParents || {};\r\n\t\tthis._eventParents[Util.stamp(obj)] = obj;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method removeEventParent(obj: Evented): this\r\n\t// Removes an event parent, so it will stop receiving propagated events\r\n\tremoveEventParent: function (obj) {\r\n\t\tif (this._eventParents) {\r\n\t\t\tdelete this._eventParents[Util.stamp(obj)];\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t_propagateEvent: function (e) {\r\n\t\tfor (var id in this._eventParents) {\r\n\t\t\tthis._eventParents[id].fire(e.type, Util.extend({\r\n\t\t\t\tlayer: e.target,\r\n\t\t\t\tpropagatedFrom: e.target\r\n\t\t\t}, e), true);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// aliases; we should ditch those eventually\r\n\r\n// @method addEventListener(…): this\r\n// Alias to [`on(…)`](#evented-on)\r\nEvents.addEventListener = Events.on;\r\n\r\n// @method removeEventListener(…): this\r\n// Alias to [`off(…)`](#evented-off)\r\n\r\n// @method clearAllEventListeners(…): this\r\n// Alias to [`off()`](#evented-off)\r\nEvents.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n// @method addOneTimeEventListener(…): this\r\n// Alias to [`once(…)`](#evented-once)\r\nEvents.addOneTimeEventListener = Events.once;\r\n\r\n// @method fireEvent(…): this\r\n// Alias to [`fire(…)`](#evented-fire)\r\nEvents.fireEvent = Events.fire;\r\n\r\n// @method hasEventListeners(…): Boolean\r\n// Alias to [`listens(…)`](#evented-listens)\r\nEvents.hasEventListeners = Events.listens;\r\n\r\nexport var Evented = Class.extend(Events);\r\n","import {isArray, formatNum} from '../core/Util';\r\n\r\n/*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function Point(x, y, round) {\r\n\t// @property x: Number; The `x` coordinate of the point\r\n\tthis.x = (round ? Math.round(x) : x);\r\n\t// @property y: Number; The `y` coordinate of the point\r\n\tthis.y = (round ? Math.round(y) : y);\r\n}\r\n\r\nvar trunc = Math.trunc || function (v) {\r\n\treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n};\r\n\r\nPoint.prototype = {\r\n\r\n\t// @method clone(): Point\r\n\t// Returns a copy of the current point.\r\n\tclone: function () {\r\n\t\treturn new Point(this.x, this.y);\r\n\t},\r\n\r\n\t// @method add(otherPoint: Point): Point\r\n\t// Returns the result of addition of the current and the given points.\r\n\tadd: function (point) {\r\n\t\t// non-destructive, returns a new point\r\n\t\treturn this.clone()._add(toPoint(point));\r\n\t},\r\n\r\n\t_add: function (point) {\r\n\t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n\t\tthis.x += point.x;\r\n\t\tthis.y += point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method subtract(otherPoint: Point): Point\r\n\t// Returns the result of subtraction of the given point from the current.\r\n\tsubtract: function (point) {\r\n\t\treturn this.clone()._subtract(toPoint(point));\r\n\t},\r\n\r\n\t_subtract: function (point) {\r\n\t\tthis.x -= point.x;\r\n\t\tthis.y -= point.y;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method divideBy(num: Number): Point\r\n\t// Returns the result of division of the current point by the given number.\r\n\tdivideBy: function (num) {\r\n\t\treturn this.clone()._divideBy(num);\r\n\t},\r\n\r\n\t_divideBy: function (num) {\r\n\t\tthis.x /= num;\r\n\t\tthis.y /= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method multiplyBy(num: Number): Point\r\n\t// Returns the result of multiplication of the current point by the given number.\r\n\tmultiplyBy: function (num) {\r\n\t\treturn this.clone()._multiplyBy(num);\r\n\t},\r\n\r\n\t_multiplyBy: function (num) {\r\n\t\tthis.x *= num;\r\n\t\tthis.y *= num;\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method scaleBy(scale: Point): Point\r\n\t// Multiply each coordinate of the current point by each coordinate of\r\n\t// `scale`. In linear algebra terms, multiply the point by the\r\n\t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n\t// defined by `scale`.\r\n\tscaleBy: function (point) {\r\n\t\treturn new Point(this.x * point.x, this.y * point.y);\r\n\t},\r\n\r\n\t// @method unscaleBy(scale: Point): Point\r\n\t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n\t// each coordinate of `scale`.\r\n\tunscaleBy: function (point) {\r\n\t\treturn new Point(this.x / point.x, this.y / point.y);\r\n\t},\r\n\r\n\t// @method round(): Point\r\n\t// Returns a copy of the current point with rounded coordinates.\r\n\tround: function () {\r\n\t\treturn this.clone()._round();\r\n\t},\r\n\r\n\t_round: function () {\r\n\t\tthis.x = Math.round(this.x);\r\n\t\tthis.y = Math.round(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method floor(): Point\r\n\t// Returns a copy of the current point with floored coordinates (rounded down).\r\n\tfloor: function () {\r\n\t\treturn this.clone()._floor();\r\n\t},\r\n\r\n\t_floor: function () {\r\n\t\tthis.x = Math.floor(this.x);\r\n\t\tthis.y = Math.floor(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method ceil(): Point\r\n\t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n\tceil: function () {\r\n\t\treturn this.clone()._ceil();\r\n\t},\r\n\r\n\t_ceil: function () {\r\n\t\tthis.x = Math.ceil(this.x);\r\n\t\tthis.y = Math.ceil(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method trunc(): Point\r\n\t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n\ttrunc: function () {\r\n\t\treturn this.clone()._trunc();\r\n\t},\r\n\r\n\t_trunc: function () {\r\n\t\tthis.x = trunc(this.x);\r\n\t\tthis.y = trunc(this.y);\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method distanceTo(otherPoint: Point): Number\r\n\t// Returns the cartesian distance between the current and the given points.\r\n\tdistanceTo: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\tvar x = point.x - this.x,\r\n\t\t y = point.y - this.y;\r\n\r\n\t\treturn Math.sqrt(x * x + y * y);\r\n\t},\r\n\r\n\t// @method equals(otherPoint: Point): Boolean\r\n\t// Returns `true` if the given point has the same coordinates.\r\n\tequals: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn point.x === this.x &&\r\n\t\t point.y === this.y;\r\n\t},\r\n\r\n\t// @method contains(otherPoint: Point): Boolean\r\n\t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n\tcontains: function (point) {\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n\t\t Math.abs(point.y) <= Math.abs(this.y);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point for debugging purposes.\r\n\ttoString: function () {\r\n\t\treturn 'Point(' +\r\n\t\t formatNum(this.x) + ', ' +\r\n\t\t formatNum(this.y) + ')';\r\n\t}\r\n};\r\n\r\n// @factory L.point(x: Number, y: Number, round?: Boolean)\r\n// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Number[])\r\n// Expects an array of the form `[x, y]` instead.\r\n\r\n// @alternative\r\n// @factory L.point(coords: Object)\r\n// Expects a plain object of the form `{x: Number, y: Number}` instead.\r\nexport function toPoint(x, y, round) {\r\n\tif (x instanceof Point) {\r\n\t\treturn x;\r\n\t}\r\n\tif (isArray(x)) {\r\n\t\treturn new Point(x[0], x[1]);\r\n\t}\r\n\tif (x === undefined || x === null) {\r\n\t\treturn x;\r\n\t}\r\n\tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n\t\treturn new Point(x.x, x.y);\r\n\t}\r\n\treturn new Point(x, y, round);\r\n}\r\n","import {Point, toPoint} from './Point';\r\n\r\n/*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function Bounds(a, b) {\r\n\tif (!a) { return; }\r\n\r\n\tvar points = b ? [a, b] : a;\r\n\r\n\tfor (var i = 0, len = points.length; i < len; i++) {\r\n\t\tthis.extend(points[i]);\r\n\t}\r\n}\r\n\r\nBounds.prototype = {\r\n\t// @method extend(point: Point): this\r\n\t// Extends the bounds to contain the given point.\r\n\textend: function (point) { // (Point)\r\n\t\tpoint = toPoint(point);\r\n\r\n\t\t// @property min: Point\r\n\t\t// The top left corner of the rectangle.\r\n\t\t// @property max: Point\r\n\t\t// The bottom right corner of the rectangle.\r\n\t\tif (!this.min && !this.max) {\r\n\t\t\tthis.min = point.clone();\r\n\t\t\tthis.max = point.clone();\r\n\t\t} else {\r\n\t\t\tthis.min.x = Math.min(point.x, this.min.x);\r\n\t\t\tthis.max.x = Math.max(point.x, this.max.x);\r\n\t\t\tthis.min.y = Math.min(point.y, this.min.y);\r\n\t\t\tthis.max.y = Math.max(point.y, this.max.y);\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method getCenter(round?: Boolean): Point\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function (round) {\r\n\t\treturn new Point(\r\n\t\t (this.min.x + this.max.x) / 2,\r\n\t\t (this.min.y + this.max.y) / 2, round);\r\n\t},\r\n\r\n\t// @method getBottomLeft(): Point\r\n\t// Returns the bottom-left point of the bounds.\r\n\tgetBottomLeft: function () {\r\n\t\treturn new Point(this.min.x, this.max.y);\r\n\t},\r\n\r\n\t// @method getTopRight(): Point\r\n\t// Returns the top-right point of the bounds.\r\n\tgetTopRight: function () { // -> Point\r\n\t\treturn new Point(this.max.x, this.min.y);\r\n\t},\r\n\r\n\t// @method getTopLeft(): Point\r\n\t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n\tgetTopLeft: function () {\r\n\t\treturn this.min; // left, top\r\n\t},\r\n\r\n\t// @method getBottomRight(): Point\r\n\t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n\tgetBottomRight: function () {\r\n\t\treturn this.max; // right, bottom\r\n\t},\r\n\r\n\t// @method getSize(): Point\r\n\t// Returns the size of the given bounds\r\n\tgetSize: function () {\r\n\t\treturn this.max.subtract(this.min);\r\n\t},\r\n\r\n\t// @method contains(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\t// @alternative\r\n\t// @method contains(point: Point): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) {\r\n\t\tvar min, max;\r\n\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n\t\t\tobj = toPoint(obj);\r\n\t\t} else {\r\n\t\t\tobj = toBounds(obj);\r\n\t\t}\r\n\r\n\t\tif (obj instanceof Bounds) {\r\n\t\t\tmin = obj.min;\r\n\t\t\tmax = obj.max;\r\n\t\t} else {\r\n\t\t\tmin = max = obj;\r\n\t\t}\r\n\r\n\t\treturn (min.x >= this.min.x) &&\r\n\t\t (max.x <= this.max.x) &&\r\n\t\t (min.y >= this.min.y) &&\r\n\t\t (max.y <= this.max.y);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n\t// intersect if they have at least one point in common.\r\n\tintersects: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n\t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n\t\treturn xIntersects && yIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: Bounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n\t// overlap if their intersection is an area.\r\n\toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n\t\tbounds = toBounds(bounds);\r\n\r\n\t\tvar min = this.min,\r\n\t\t max = this.max,\r\n\t\t min2 = bounds.min,\r\n\t\t max2 = bounds.max,\r\n\t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n\t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n\t\treturn xOverlaps && yOverlaps;\r\n\t},\r\n\r\n\tisValid: function () {\r\n\t\treturn !!(this.min && this.max);\r\n\t}\r\n};\r\n\r\n\r\n// @factory L.bounds(corner1: Point, corner2: Point)\r\n// Creates a Bounds object from two corners coordinate pairs.\r\n// @alternative\r\n// @factory L.bounds(points: Point[])\r\n// Creates a Bounds object from the given array of points.\r\nexport function toBounds(a, b) {\r\n\tif (!a || a instanceof Bounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new Bounds(a, b);\r\n}\r\n","import {LatLng, toLatLng} from './LatLng';\r\n\r\n/*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n\tif (!corner1) { return; }\r\n\r\n\tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n\tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n\t\tthis.extend(latlngs[i]);\r\n\t}\r\n}\r\n\r\nLatLngBounds.prototype = {\r\n\r\n\t// @method extend(latlng: LatLng): this\r\n\t// Extend the bounds to contain the given point\r\n\r\n\t// @alternative\r\n\t// @method extend(otherBounds: LatLngBounds): this\r\n\t// Extend the bounds to contain the given bounds\r\n\textend: function (obj) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLng) {\r\n\t\t\tsw2 = obj;\r\n\t\t\tne2 = obj;\r\n\r\n\t\t} else if (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj._southWest;\r\n\t\t\tne2 = obj._northEast;\r\n\r\n\t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n\t\t} else {\r\n\t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n\t\t}\r\n\r\n\t\tif (!sw && !ne) {\r\n\t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n\t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n\t\t} else {\r\n\t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n\t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n\t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n\t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\t// @method pad(bufferRatio: Number): LatLngBounds\r\n\t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n\t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n\t// Negative values will retract the bounds.\r\n\tpad: function (bufferRatio) {\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n\t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n\t\treturn new LatLngBounds(\r\n\t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n\t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n\t},\r\n\r\n\t// @method getCenter(): LatLng\r\n\t// Returns the center point of the bounds.\r\n\tgetCenter: function () {\r\n\t\treturn new LatLng(\r\n\t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n\t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n\t},\r\n\r\n\t// @method getSouthWest(): LatLng\r\n\t// Returns the south-west point of the bounds.\r\n\tgetSouthWest: function () {\r\n\t\treturn this._southWest;\r\n\t},\r\n\r\n\t// @method getNorthEast(): LatLng\r\n\t// Returns the north-east point of the bounds.\r\n\tgetNorthEast: function () {\r\n\t\treturn this._northEast;\r\n\t},\r\n\r\n\t// @method getNorthWest(): LatLng\r\n\t// Returns the north-west point of the bounds.\r\n\tgetNorthWest: function () {\r\n\t\treturn new LatLng(this.getNorth(), this.getWest());\r\n\t},\r\n\r\n\t// @method getSouthEast(): LatLng\r\n\t// Returns the south-east point of the bounds.\r\n\tgetSouthEast: function () {\r\n\t\treturn new LatLng(this.getSouth(), this.getEast());\r\n\t},\r\n\r\n\t// @method getWest(): Number\r\n\t// Returns the west longitude of the bounds\r\n\tgetWest: function () {\r\n\t\treturn this._southWest.lng;\r\n\t},\r\n\r\n\t// @method getSouth(): Number\r\n\t// Returns the south latitude of the bounds\r\n\tgetSouth: function () {\r\n\t\treturn this._southWest.lat;\r\n\t},\r\n\r\n\t// @method getEast(): Number\r\n\t// Returns the east longitude of the bounds\r\n\tgetEast: function () {\r\n\t\treturn this._northEast.lng;\r\n\t},\r\n\r\n\t// @method getNorth(): Number\r\n\t// Returns the north latitude of the bounds\r\n\tgetNorth: function () {\r\n\t\treturn this._northEast.lat;\r\n\t},\r\n\r\n\t// @method contains(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle contains the given one.\r\n\r\n\t// @alternative\r\n\t// @method contains (latlng: LatLng): Boolean\r\n\t// Returns `true` if the rectangle contains the given point.\r\n\tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n\t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n\t\t\tobj = toLatLng(obj);\r\n\t\t} else {\r\n\t\t\tobj = toLatLngBounds(obj);\r\n\t\t}\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2, ne2;\r\n\r\n\t\tif (obj instanceof LatLngBounds) {\r\n\t\t\tsw2 = obj.getSouthWest();\r\n\t\t\tne2 = obj.getNorthEast();\r\n\t\t} else {\r\n\t\t\tsw2 = ne2 = obj;\r\n\t\t}\r\n\r\n\t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n\t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n\t},\r\n\r\n\t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n\tintersects: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n\t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n\t\treturn latIntersects && lngIntersects;\r\n\t},\r\n\r\n\t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n\t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n\toverlaps: function (bounds) {\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\tvar sw = this._southWest,\r\n\t\t ne = this._northEast,\r\n\t\t sw2 = bounds.getSouthWest(),\r\n\t\t ne2 = bounds.getNorthEast(),\r\n\r\n\t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n\t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n\t\treturn latOverlaps && lngOverlaps;\r\n\t},\r\n\r\n\t// @method toBBoxString(): String\r\n\t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n\ttoBBoxString: function () {\r\n\t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n\t},\r\n\r\n\t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (bounds, maxMargin) {\r\n\t\tif (!bounds) { return false; }\r\n\r\n\t\tbounds = toLatLngBounds(bounds);\r\n\r\n\t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n\t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n\t},\r\n\r\n\t// @method isValid(): Boolean\r\n\t// Returns `true` if the bounds are properly initialized.\r\n\tisValid: function () {\r\n\t\treturn !!(this._southWest && this._northEast);\r\n\t}\r\n};\r\n\r\n// TODO International date line?\r\n\r\n// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n// @alternative\r\n// @factory L.latLngBounds(latlngs: LatLng[])\r\n// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\nexport function toLatLngBounds(a, b) {\r\n\tif (a instanceof LatLngBounds) {\r\n\t\treturn a;\r\n\t}\r\n\treturn new LatLngBounds(a, b);\r\n}\r\n","import * as Util from '../core/Util';\r\nimport {Earth} from './crs/CRS.Earth';\r\nimport {toLatLngBounds} from './LatLngBounds';\r\n\r\n/* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\nexport function LatLng(lat, lng, alt) {\r\n\tif (isNaN(lat) || isNaN(lng)) {\r\n\t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n\t}\r\n\r\n\t// @property lat: Number\r\n\t// Latitude in degrees\r\n\tthis.lat = +lat;\r\n\r\n\t// @property lng: Number\r\n\t// Longitude in degrees\r\n\tthis.lng = +lng;\r\n\r\n\t// @property alt: Number\r\n\t// Altitude in meters (optional)\r\n\tif (alt !== undefined) {\r\n\t\tthis.alt = +alt;\r\n\t}\r\n}\r\n\r\nLatLng.prototype = {\r\n\t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n\t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n\tequals: function (obj, maxMargin) {\r\n\t\tif (!obj) { return false; }\r\n\r\n\t\tobj = toLatLng(obj);\r\n\r\n\t\tvar margin = Math.max(\r\n\t\t Math.abs(this.lat - obj.lat),\r\n\t\t Math.abs(this.lng - obj.lng));\r\n\r\n\t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n\t},\r\n\r\n\t// @method toString(): String\r\n\t// Returns a string representation of the point (for debugging purposes).\r\n\ttoString: function (precision) {\r\n\t\treturn 'LatLng(' +\r\n\t\t Util.formatNum(this.lat, precision) + ', ' +\r\n\t\t Util.formatNum(this.lng, precision) + ')';\r\n\t},\r\n\r\n\t// @method distanceTo(otherLatLng: LatLng): Number\r\n\t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n\tdistanceTo: function (other) {\r\n\t\treturn Earth.distance(this, toLatLng(other));\r\n\t},\r\n\r\n\t// @method wrap(): LatLng\r\n\t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n\twrap: function () {\r\n\t\treturn Earth.wrapLatLng(this);\r\n\t},\r\n\r\n\t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n\t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n\ttoBounds: function (sizeInMeters) {\r\n\t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n\t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n\t\treturn toLatLngBounds(\r\n\t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n\t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n\t},\r\n\r\n\tclone: function () {\r\n\t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n\t}\r\n};\r\n\r\n\r\n\r\n// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Array): LatLng\r\n// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n// @alternative\r\n// @factory L.latLng(coords: Object): LatLng\r\n// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\nexport function toLatLng(a, b, c) {\r\n\tif (a instanceof LatLng) {\r\n\t\treturn a;\r\n\t}\r\n\tif (Util.isArray(a) && typeof a[0] !== 'object') {\r\n\t\tif (a.length === 3) {\r\n\t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n\t\t}\r\n\t\tif (a.length === 2) {\r\n\t\t\treturn new LatLng(a[0], a[1]);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\tif (a === undefined || a === null) {\r\n\t\treturn a;\r\n\t}\r\n\tif (typeof a === 'object' && 'lat' in a) {\r\n\t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n\t}\r\n\tif (b === undefined) {\r\n\t\treturn null;\r\n\t}\r\n\treturn new LatLng(a, b, c);\r\n}\r\n","\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {LatLng} from '../LatLng';\r\nimport {LatLngBounds} from '../LatLngBounds';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](http://en.wikipedia.org/wiki/Coordinate_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\nexport var CRS = {\r\n\t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n\t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n\tlatLngToPoint: function (latlng, zoom) {\r\n\t\tvar projectedPoint = this.projection.project(latlng),\r\n\t\t scale = this.scale(zoom);\r\n\r\n\t\treturn this.transformation._transform(projectedPoint, scale);\r\n\t},\r\n\r\n\t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n\t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n\t// zoom into geographical coordinates.\r\n\tpointToLatLng: function (point, zoom) {\r\n\t\tvar scale = this.scale(zoom),\r\n\t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n\t\treturn this.projection.unproject(untransformedPoint);\r\n\t},\r\n\r\n\t// @method project(latlng: LatLng): Point\r\n\t// Projects geographical coordinates into coordinates in units accepted for\r\n\t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n\tproject: function (latlng) {\r\n\t\treturn this.projection.project(latlng);\r\n\t},\r\n\r\n\t// @method unproject(point: Point): LatLng\r\n\t// Given a projected coordinate returns the corresponding LatLng.\r\n\t// The inverse of `project`.\r\n\tunproject: function (point) {\r\n\t\treturn this.projection.unproject(point);\r\n\t},\r\n\r\n\t// @method scale(zoom: Number): Number\r\n\t// Returns the scale used when transforming projected coordinates into\r\n\t// pixel coordinates for a particular zoom. For example, it returns\r\n\t// `256 * 2^zoom` for Mercator-based CRS.\r\n\tscale: function (zoom) {\r\n\t\treturn 256 * Math.pow(2, zoom);\r\n\t},\r\n\r\n\t// @method zoom(scale: Number): Number\r\n\t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n\t// factor of `scale`.\r\n\tzoom: function (scale) {\r\n\t\treturn Math.log(scale / 256) / Math.LN2;\r\n\t},\r\n\r\n\t// @method getProjectedBounds(zoom: Number): Bounds\r\n\t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n\tgetProjectedBounds: function (zoom) {\r\n\t\tif (this.infinite) { return null; }\r\n\r\n\t\tvar b = this.projection.bounds,\r\n\t\t s = this.scale(zoom),\r\n\t\t min = this.transformation.transform(b.min, s),\r\n\t\t max = this.transformation.transform(b.max, s);\r\n\r\n\t\treturn new Bounds(min, max);\r\n\t},\r\n\r\n\t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n\t// Returns the distance between two geographical coordinates.\r\n\r\n\t// @property code: String\r\n\t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n\t//\r\n\t// @property wrapLng: Number[]\r\n\t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n\t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n\t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n\t//\r\n\t// @property wrapLat: Number[]\r\n\t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n\t// wrapLng: [min, max],\r\n\t// wrapLat: [min, max],\r\n\r\n\t// @property infinite: Boolean\r\n\t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n\tinfinite: false,\r\n\r\n\t// @method wrapLatLng(latlng: LatLng): LatLng\r\n\t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n\t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n\twrapLatLng: function (latlng) {\r\n\t\tvar lng = this.wrapLng ? Util.wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n\t\t lat = this.wrapLat ? Util.wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n\t\t alt = latlng.alt;\r\n\r\n\t\treturn new LatLng(lat, lng, alt);\r\n\t},\r\n\r\n\t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n\t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n\t// that its center is within the CRS's bounds.\r\n\t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n\twrapLatLngBounds: function (bounds) {\r\n\t\tvar center = bounds.getCenter(),\r\n\t\t newCenter = this.wrapLatLng(center),\r\n\t\t latShift = center.lat - newCenter.lat,\r\n\t\t lngShift = center.lng - newCenter.lng;\r\n\r\n\t\tif (latShift === 0 && lngShift === 0) {\r\n\t\t\treturn bounds;\r\n\t\t}\r\n\r\n\t\tvar sw = bounds.getSouthWest(),\r\n\t\t ne = bounds.getNorthEast(),\r\n\t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n\t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n\t\treturn new LatLngBounds(newSw, newNe);\r\n\t}\r\n};\r\n","import {LatLng} from '../LatLng';\r\nimport {Bounds} from '../../geometry/Bounds';\r\nimport {Point} from '../../geometry/Point';\r\n\r\n/*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\nvar earthRadius = 6378137;\r\n\r\nexport var SphericalMercator = {\r\n\r\n\tR: earthRadius,\r\n\tMAX_LATITUDE: 85.0511287798,\r\n\r\n\tproject: function (latlng) {\r\n\t\tvar d = Math.PI / 180,\r\n\t\t max = this.MAX_LATITUDE,\r\n\t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n\t\t sin = Math.sin(lat * d);\r\n\r\n\t\treturn new Point(\r\n\t\t\tthis.R * latlng.lng * d,\r\n\t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n\t},\r\n\r\n\tunproject: function (point) {\r\n\t\tvar d = 180 / Math.PI;\r\n\r\n\t\treturn new LatLng(\r\n\t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n\t\t\tpoint.x * d / this.R);\r\n\t},\r\n\r\n\tbounds: (function () {\r\n\t\tvar d = earthRadius * Math.PI;\r\n\t\treturn new Bounds([-d, -d], [d, d]);\r\n\t})()\r\n};\r\n","import {CRS} from './CRS';\nimport * as Util from '../../core/Util';\n\n/*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\nexport var Earth = Util.extend({}, CRS, {\n\twrapLng: [-180, 180],\n\n\t// Mean Earth Radius, as recommended for use by\n\t// the International Union of Geodesy and Geophysics,\n\t// see http://rosettacode.org/wiki/Haversine_formula\n\tR: 6371000,\n\n\t// distance between two geographical points using spherical law of cosines approximation\n\tdistance: function (latlng1, latlng2) {\n\t\tvar rad = Math.PI / 180,\n\t\t lat1 = latlng1.lat * rad,\n\t\t lat2 = latlng2.lat * rad,\n\t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n\t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n\t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n\t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n\t\treturn this.R * c;\n\t}\n});\n","import {Point} from './Point';\r\nimport * as Util from '../core/Util';\r\n\r\n/*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Creates a `Transformation` object with the given coefficients.\r\nexport function Transformation(a, b, c, d) {\r\n\tif (Util.isArray(a)) {\r\n\t\t// use array properties\r\n\t\tthis._a = a[0];\r\n\t\tthis._b = a[1];\r\n\t\tthis._c = a[2];\r\n\t\tthis._d = a[3];\r\n\t\treturn;\r\n\t}\r\n\tthis._a = a;\r\n\tthis._b = b;\r\n\tthis._c = c;\r\n\tthis._d = d;\r\n}\r\n\r\nTransformation.prototype = {\r\n\t// @method transform(point: Point, scale?: Number): Point\r\n\t// Returns a transformed point, optionally multiplied by the given scale.\r\n\t// Only accepts actual `L.Point` instances, not arrays.\r\n\ttransform: function (point, scale) { // (Point, Number) -> Point\r\n\t\treturn this._transform(point.clone(), scale);\r\n\t},\r\n\r\n\t// destructive transform (faster)\r\n\t_transform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\tpoint.x = scale * (this._a * point.x + this._b);\r\n\t\tpoint.y = scale * (this._c * point.y + this._d);\r\n\t\treturn point;\r\n\t},\r\n\r\n\t// @method untransform(point: Point, scale?: Number): Point\r\n\t// Returns the reverse transformation of the given point, optionally divided\r\n\t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n\tuntransform: function (point, scale) {\r\n\t\tscale = scale || 1;\r\n\t\treturn new Point(\r\n\t\t (point.x / scale - this._b) / this._a,\r\n\t\t (point.y / scale - this._d) / this._c);\r\n\t}\r\n};\r\n\r\n// factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n// @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n// Instantiates a Transformation object with the given coefficients.\r\n\r\n// @alternative\r\n// @factory L.transformation(coefficients: Array): Transformation\r\n// Expects an coefficients array of the form\r\n// `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\nexport function toTransformation(a, b, c, d) {\r\n\treturn new Transformation(a, b, c, d);\r\n}\r\n","import {Earth} from './CRS.Earth';\r\nimport {SphericalMercator} from '../projection/Projection.SphericalMercator';\r\nimport {toTransformation} from '../../geometry/Transformation';\r\nimport * as Util from '../../core/Util';\r\n\r\n/*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\nexport var EPSG3857 = Util.extend({}, Earth, {\r\n\tcode: 'EPSG:3857',\r\n\tprojection: SphericalMercator,\r\n\r\n\ttransformation: (function () {\r\n\t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n\t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n\t}())\r\n});\r\n\r\nexport var EPSG900913 = Util.extend({}, EPSG3857, {\r\n\tcode: 'EPSG:900913'\r\n});\r\n","import * as Browser from '../../core/Browser';\n\n// @namespace SVG; @section\n// There are several static functions which can be called without instantiating L.SVG:\n\n// @function create(name: String): SVGElement\n// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n// corresponding to the class name passed. For example, using 'line' will return\n// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\nexport function svgCreate(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\n// @function pointsToPath(rings: Point[], closed: Boolean): String\n// Generates a SVG path string for multiple rings, with each ring turning\n// into \"M..L..L..\" instructions\nexport function pointsToPath(rings, closed) {\n\tvar str = '',\n\ti, j, len, len2, points, p;\n\n\tfor (i = 0, len = rings.length; i < len; i++) {\n\t\tpoints = rings[i];\n\n\t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n\t\t\tp = points[j];\n\t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n\t\t}\n\n\t\t// closes the ring for polygons; \"x\" is VML syntax\n\t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n\t}\n\n\t// SVG complains about empty path strings\n\treturn str || 'M0 0';\n}\n\n\n\n\n","import * as Util from './Util';\r\nimport {svgCreate} from '../layer/vector/SVG.Util';\r\n\r\n/*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\nvar style = document.documentElement.style;\r\n\r\n// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\nexport var ie = 'ActiveXObject' in window;\r\n\r\n// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\nexport var ielt9 = ie && !document.addEventListener;\r\n\r\n// @property edge: Boolean; `true` for the Edge web browser.\r\nexport var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n// @property webkit: Boolean;\r\n// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\nexport var webkit = userAgentContains('webkit');\r\n\r\n// @property android: Boolean\r\n// `true` for any browser running on an Android platform.\r\nexport var android = userAgentContains('android');\r\n\r\n// @property android23: Boolean; `true` for browsers running on Android 2 or Android 3.\r\nexport var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\nvar webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n// @property androidStock: Boolean; `true` for the Android stock browser (i.e. not Chrome)\r\nexport var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n// @property opera: Boolean; `true` for the Opera browser\r\nexport var opera = !!window.opera;\r\n\r\n// @property chrome: Boolean; `true` for the Chrome browser.\r\nexport var chrome = !edge && userAgentContains('chrome');\r\n\r\n// @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\nexport var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n// @property safari: Boolean; `true` for the Safari browser.\r\nexport var safari = !chrome && userAgentContains('safari');\r\n\r\nexport var phantom = userAgentContains('phantom');\r\n\r\n// @property opera12: Boolean\r\n// `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\nexport var opera12 = 'OTransition' in style;\r\n\r\n// @property win: Boolean; `true` when the browser is running in a Windows platform\r\nexport var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\nexport var ie3d = ie && ('transition' in style);\r\n\r\n// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\nexport var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\nexport var gecko3d = 'MozPerspective' in style;\r\n\r\n// @property any3d: Boolean\r\n// `true` for all browsers supporting CSS transforms.\r\nexport var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n// @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\nexport var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\nexport var mobileWebkit = mobile && webkit;\r\n\r\n// @property mobileWebkit3d: Boolean\r\n// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\nexport var mobileWebkit3d = mobile && webkit3d;\r\n\r\n// @property msPointer: Boolean\r\n// `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\nexport var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n// @property pointer: Boolean\r\n// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\nexport var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n// @property touch: Boolean\r\n// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n// This does not necessarily mean that the browser is running in a computer with\r\n// a touchscreen, it only means that the browser is capable of understanding\r\n// touch events.\r\nexport var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||\r\n\t\t(window.DocumentTouch && document instanceof window.DocumentTouch));\r\n\r\n// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\nexport var mobileOpera = mobile && opera;\r\n\r\n// @property mobileGecko: Boolean\r\n// `true` for gecko-based browsers running in a mobile device.\r\nexport var mobileGecko = mobile && gecko;\r\n\r\n// @property retina: Boolean\r\n// `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\nexport var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n// @property passiveEvents: Boolean\r\n// `true` for browsers that support passive events.\r\nexport var passiveEvents = (function () {\r\n\tvar supportsPassiveOption = false;\r\n\ttry {\r\n\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\tget: function () { // eslint-disable-line getter-return\r\n\t\t\t\tsupportsPassiveOption = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('testPassiveEventSupport', Util.falseFn, opts);\r\n\t\twindow.removeEventListener('testPassiveEventSupport', Util.falseFn, opts);\r\n\t} catch (e) {\r\n\t\t// Errors can safely be ignored since this is only a browser support test.\r\n\t}\r\n\treturn supportsPassiveOption;\r\n}());\r\n\r\n// @property canvas: Boolean\r\n// `true` when the browser supports [`